@nasser-sw/fabric 7.0.0-beta1

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 (2504) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +8 -0
  4. package/.editorconfig +12 -0
  5. package/.gitattributes +2 -0
  6. package/.gitpod.yml +22 -0
  7. package/.prettierignore +22 -0
  8. package/.prettierrc +4 -0
  9. package/CHANGELOG.md +1993 -0
  10. package/CODE_OF_CONDUCT.md +15 -0
  11. package/CONTRIBUTING.md +277 -0
  12. package/LICENSE +16 -0
  13. package/OVERLAY_EDITOR_MIGRATION.md +432 -0
  14. package/README.md +253 -0
  15. package/SECURITY.md +5 -0
  16. package/debug/konva/CHANGELOG.md +1474 -0
  17. package/debug/konva/LICENSE +22 -0
  18. package/debug/konva/README.md +205 -0
  19. package/debug/konva/gulpfile.mjs +110 -0
  20. package/debug/konva/package.json +139 -0
  21. package/debug/konva/release.sh +65 -0
  22. package/debug/konva/resources/doc-includes/ContainerParams.txt +6 -0
  23. package/debug/konva/resources/doc-includes/NodeParams.txt +20 -0
  24. package/debug/konva/resources/doc-includes/ShapeParams.txt +53 -0
  25. package/debug/konva/resources/jsdoc.conf.json +28 -0
  26. package/debug/konva/rollup.config.mjs +32 -0
  27. package/debug/konva/src/Animation.ts +237 -0
  28. package/debug/konva/src/BezierFunctions.ts +826 -0
  29. package/debug/konva/src/Canvas.ts +193 -0
  30. package/debug/konva/src/Container.ts +649 -0
  31. package/debug/konva/src/Context.ts +1017 -0
  32. package/debug/konva/src/Core.ts +5 -0
  33. package/debug/konva/src/DragAndDrop.ts +173 -0
  34. package/debug/konva/src/Factory.ts +246 -0
  35. package/debug/konva/src/FastLayer.ts +29 -0
  36. package/debug/konva/src/Global.ts +210 -0
  37. package/debug/konva/src/Group.ts +31 -0
  38. package/debug/konva/src/Layer.ts +546 -0
  39. package/debug/konva/src/Node.ts +3477 -0
  40. package/debug/konva/src/PointerEvents.ts +67 -0
  41. package/debug/konva/src/Shape.ts +2081 -0
  42. package/debug/konva/src/Stage.ts +1000 -0
  43. package/debug/konva/src/Tween.ts +811 -0
  44. package/debug/konva/src/Util.ts +1123 -0
  45. package/debug/konva/src/Validators.ts +210 -0
  46. package/debug/konva/src/_CoreInternals.ts +85 -0
  47. package/debug/konva/src/_FullInternals.ts +171 -0
  48. package/debug/konva/src/canvas-backend.ts +36 -0
  49. package/debug/konva/src/filters/Blur.ts +388 -0
  50. package/debug/konva/src/filters/Brighten.ts +48 -0
  51. package/debug/konva/src/filters/Brightness.ts +30 -0
  52. package/debug/konva/src/filters/Contrast.ts +75 -0
  53. package/debug/konva/src/filters/Emboss.ts +207 -0
  54. package/debug/konva/src/filters/Enhance.ts +154 -0
  55. package/debug/konva/src/filters/Grayscale.ts +25 -0
  56. package/debug/konva/src/filters/HSL.ts +108 -0
  57. package/debug/konva/src/filters/HSV.ts +106 -0
  58. package/debug/konva/src/filters/Invert.ts +23 -0
  59. package/debug/konva/src/filters/Kaleidoscope.ts +274 -0
  60. package/debug/konva/src/filters/Mask.ts +220 -0
  61. package/debug/konva/src/filters/Noise.ts +44 -0
  62. package/debug/konva/src/filters/Pixelate.ts +107 -0
  63. package/debug/konva/src/filters/Posterize.ts +46 -0
  64. package/debug/konva/src/filters/RGB.ts +82 -0
  65. package/debug/konva/src/filters/RGBA.ts +103 -0
  66. package/debug/konva/src/filters/Sepia.ts +27 -0
  67. package/debug/konva/src/filters/Solarize.ts +29 -0
  68. package/debug/konva/src/filters/Threshold.ts +44 -0
  69. package/debug/konva/src/index.ts +3 -0
  70. package/debug/konva/src/shapes/Arc.ts +176 -0
  71. package/debug/konva/src/shapes/Arrow.ts +231 -0
  72. package/debug/konva/src/shapes/Circle.ts +76 -0
  73. package/debug/konva/src/shapes/Ellipse.ts +121 -0
  74. package/debug/konva/src/shapes/Image.ts +319 -0
  75. package/debug/konva/src/shapes/Label.ts +386 -0
  76. package/debug/konva/src/shapes/Line.ts +364 -0
  77. package/debug/konva/src/shapes/Path.ts +1013 -0
  78. package/debug/konva/src/shapes/Rect.ts +79 -0
  79. package/debug/konva/src/shapes/RegularPolygon.ts +167 -0
  80. package/debug/konva/src/shapes/Ring.ts +94 -0
  81. package/debug/konva/src/shapes/Sprite.ts +370 -0
  82. package/debug/konva/src/shapes/Star.ts +125 -0
  83. package/debug/konva/src/shapes/Text.ts +1065 -0
  84. package/debug/konva/src/shapes/TextPath.ts +583 -0
  85. package/debug/konva/src/shapes/Transformer.ts +1889 -0
  86. package/debug/konva/src/shapes/Wedge.ts +129 -0
  87. package/debug/konva/src/skia-backend.ts +35 -0
  88. package/debug/konva/src/types.ts +84 -0
  89. package/debug/konva/tsconfig.json +31 -0
  90. package/debug/konva/tsconfig.test.json +7 -0
  91. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +2 -0
  92. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +1 -0
  93. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +25 -0
  94. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
  95. package/dist/extensions/aligning_guidelines/constant.d.ts +3 -0
  96. package/dist/extensions/aligning_guidelines/constant.d.ts.map +1 -0
  97. package/dist/extensions/aligning_guidelines/index.d.ts +5 -0
  98. package/dist/extensions/aligning_guidelines/index.d.ts.map +1 -0
  99. package/dist/extensions/aligning_guidelines/typedefs.d.ts +33 -0
  100. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
  101. package/dist/extensions/aligning_guidelines/util/basic.d.ts +4 -0
  102. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
  103. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
  104. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
  105. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
  106. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
  107. package/dist/extensions/aligning_guidelines/util/draw.d.ts +6 -0
  108. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
  109. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
  110. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
  111. package/dist/extensions/data_updaters/gradient/index.d.ts +11 -0
  112. package/dist/extensions/data_updaters/gradient/index.d.ts.map +1 -0
  113. package/dist/extensions/data_updaters/origins/index.d.ts +21 -0
  114. package/dist/extensions/data_updaters/origins/index.d.ts.map +1 -0
  115. package/dist/extensions/index.d.ts +4 -0
  116. package/dist/extensions/index.d.ts.map +1 -0
  117. package/dist/fabric.d.ts +115 -0
  118. package/dist/fabric.d.ts.map +1 -0
  119. package/dist/fabric.min.mjs +2 -0
  120. package/dist/fabric.min.mjs.map +1 -0
  121. package/dist/fabric.mjs +60 -0
  122. package/dist/fabric.mjs.map +1 -0
  123. package/dist/index.d.ts +2 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +30983 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/index.min.js +2 -0
  128. package/dist/index.min.js.map +1 -0
  129. package/dist/index.min.mjs +2 -0
  130. package/dist/index.min.mjs.map +1 -0
  131. package/dist/index.mjs +30910 -0
  132. package/dist/index.mjs.map +1 -0
  133. package/dist/index.node.cjs +31067 -0
  134. package/dist/index.node.cjs.map +1 -0
  135. package/dist/index.node.d.ts +20 -0
  136. package/dist/index.node.d.ts.map +1 -0
  137. package/dist/index.node.mjs +31000 -0
  138. package/dist/index.node.mjs.map +1 -0
  139. package/dist/package.json.min.mjs +2 -0
  140. package/dist/package.json.min.mjs.map +1 -0
  141. package/dist/package.json.mjs +4 -0
  142. package/dist/package.json.mjs.map +1 -0
  143. package/dist/src/ClassRegistry.d.ts +14 -0
  144. package/dist/src/ClassRegistry.d.ts.map +1 -0
  145. package/dist/src/ClassRegistry.min.mjs +2 -0
  146. package/dist/src/ClassRegistry.min.mjs.map +1 -0
  147. package/dist/src/ClassRegistry.mjs +52 -0
  148. package/dist/src/ClassRegistry.mjs.map +1 -0
  149. package/dist/src/Collection.d.ts +141 -0
  150. package/dist/src/Collection.d.ts.map +1 -0
  151. package/dist/src/Collection.min.mjs +2 -0
  152. package/dist/src/Collection.min.mjs.map +1 -0
  153. package/dist/src/Collection.mjs +337 -0
  154. package/dist/src/Collection.mjs.map +1 -0
  155. package/dist/src/CommonMethods.d.ts +32 -0
  156. package/dist/src/CommonMethods.d.ts.map +1 -0
  157. package/dist/src/CommonMethods.min.mjs +2 -0
  158. package/dist/src/CommonMethods.min.mjs.map +1 -0
  159. package/dist/src/CommonMethods.mjs +65 -0
  160. package/dist/src/CommonMethods.mjs.map +1 -0
  161. package/dist/src/EventTypeDefs.d.ts +270 -0
  162. package/dist/src/EventTypeDefs.d.ts.map +1 -0
  163. package/dist/src/Intersection.d.ts +112 -0
  164. package/dist/src/Intersection.d.ts.map +1 -0
  165. package/dist/src/Intersection.min.mjs +2 -0
  166. package/dist/src/Intersection.min.mjs.map +1 -0
  167. package/dist/src/Intersection.mjs +257 -0
  168. package/dist/src/Intersection.mjs.map +1 -0
  169. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +22 -0
  170. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +1 -0
  171. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +2 -0
  172. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +1 -0
  173. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +50 -0
  174. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +1 -0
  175. package/dist/src/LayoutManager/LayoutManager.d.ts +56 -0
  176. package/dist/src/LayoutManager/LayoutManager.d.ts.map +1 -0
  177. package/dist/src/LayoutManager/LayoutManager.min.mjs +2 -0
  178. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +1 -0
  179. package/dist/src/LayoutManager/LayoutManager.mjs +266 -0
  180. package/dist/src/LayoutManager/LayoutManager.mjs.map +1 -0
  181. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +13 -0
  182. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +1 -0
  183. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +2 -0
  184. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +1 -0
  185. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +71 -0
  186. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +1 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +14 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +1 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +2 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +1 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +22 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +1 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +14 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +1 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +2 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +1 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +27 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +1 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +30 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +1 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +2 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +1 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +97 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +1 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +10 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +1 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +2 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +1 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +29 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +1 -0
  211. package/dist/src/LayoutManager/constants.d.ts +7 -0
  212. package/dist/src/LayoutManager/constants.d.ts.map +1 -0
  213. package/dist/src/LayoutManager/constants.min.mjs +2 -0
  214. package/dist/src/LayoutManager/constants.min.mjs.map +1 -0
  215. package/dist/src/LayoutManager/constants.mjs +9 -0
  216. package/dist/src/LayoutManager/constants.mjs.map +1 -0
  217. package/dist/src/LayoutManager/index.d.ts +7 -0
  218. package/dist/src/LayoutManager/index.d.ts.map +1 -0
  219. package/dist/src/LayoutManager/types.d.ts +106 -0
  220. package/dist/src/LayoutManager/types.d.ts.map +1 -0
  221. package/dist/src/Observable.d.ts +68 -0
  222. package/dist/src/Observable.d.ts.map +1 -0
  223. package/dist/src/Observable.min.mjs +2 -0
  224. package/dist/src/Observable.min.mjs.map +1 -0
  225. package/dist/src/Observable.mjs +159 -0
  226. package/dist/src/Observable.mjs.map +1 -0
  227. package/dist/src/Pattern/Pattern.d.ts +95 -0
  228. package/dist/src/Pattern/Pattern.d.ts.map +1 -0
  229. package/dist/src/Pattern/Pattern.min.mjs +2 -0
  230. package/dist/src/Pattern/Pattern.min.mjs.map +1 -0
  231. package/dist/src/Pattern/Pattern.mjs +183 -0
  232. package/dist/src/Pattern/Pattern.mjs.map +1 -0
  233. package/dist/src/Pattern/index.d.ts +3 -0
  234. package/dist/src/Pattern/index.d.ts.map +1 -0
  235. package/dist/src/Pattern/types.d.ts +12 -0
  236. package/dist/src/Pattern/types.d.ts.map +1 -0
  237. package/dist/src/Point.d.ts +219 -0
  238. package/dist/src/Point.d.ts.map +1 -0
  239. package/dist/src/Point.min.mjs +2 -0
  240. package/dist/src/Point.min.mjs.map +1 -0
  241. package/dist/src/Point.mjs +358 -0
  242. package/dist/src/Point.mjs.map +1 -0
  243. package/dist/src/Shadow.d.ts +89 -0
  244. package/dist/src/Shadow.d.ts.map +1 -0
  245. package/dist/src/Shadow.min.mjs +2 -0
  246. package/dist/src/Shadow.min.mjs.map +1 -0
  247. package/dist/src/Shadow.mjs +162 -0
  248. package/dist/src/Shadow.mjs.map +1 -0
  249. package/dist/src/brushes/BaseBrush.d.ts +94 -0
  250. package/dist/src/brushes/BaseBrush.d.ts.map +1 -0
  251. package/dist/src/brushes/BaseBrush.min.mjs +2 -0
  252. package/dist/src/brushes/BaseBrush.min.mjs.map +1 -0
  253. package/dist/src/brushes/BaseBrush.mjs +131 -0
  254. package/dist/src/brushes/BaseBrush.mjs.map +1 -0
  255. package/dist/src/brushes/CircleBrush.d.ts +43 -0
  256. package/dist/src/brushes/CircleBrush.d.ts.map +1 -0
  257. package/dist/src/brushes/CircleBrush.min.mjs +2 -0
  258. package/dist/src/brushes/CircleBrush.min.mjs.map +1 -0
  259. package/dist/src/brushes/CircleBrush.mjs +138 -0
  260. package/dist/src/brushes/CircleBrush.mjs.map +1 -0
  261. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  262. package/dist/src/brushes/PatternBrush.d.ts.map +1 -0
  263. package/dist/src/brushes/PatternBrush.min.mjs +2 -0
  264. package/dist/src/brushes/PatternBrush.min.mjs.map +1 -0
  265. package/dist/src/brushes/PatternBrush.mjs +59 -0
  266. package/dist/src/brushes/PatternBrush.mjs.map +1 -0
  267. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  268. package/dist/src/brushes/PencilBrush.d.ts.map +1 -0
  269. package/dist/src/brushes/PencilBrush.min.mjs +2 -0
  270. package/dist/src/brushes/PencilBrush.min.mjs.map +1 -0
  271. package/dist/src/brushes/PencilBrush.mjs +293 -0
  272. package/dist/src/brushes/PencilBrush.mjs.map +1 -0
  273. package/dist/src/brushes/SprayBrush.d.ts +68 -0
  274. package/dist/src/brushes/SprayBrush.d.ts.map +1 -0
  275. package/dist/src/brushes/SprayBrush.min.mjs +2 -0
  276. package/dist/src/brushes/SprayBrush.min.mjs.map +1 -0
  277. package/dist/src/brushes/SprayBrush.mjs +179 -0
  278. package/dist/src/brushes/SprayBrush.mjs.map +1 -0
  279. package/dist/src/brushes/typedefs.d.ts +18 -0
  280. package/dist/src/brushes/typedefs.d.ts.map +1 -0
  281. package/dist/src/cache.d.ts +47 -0
  282. package/dist/src/cache.d.ts.map +1 -0
  283. package/dist/src/cache.min.mjs +2 -0
  284. package/dist/src/cache.min.mjs.map +1 -0
  285. package/dist/src/cache.mjs +80 -0
  286. package/dist/src/cache.mjs.map +1 -0
  287. package/dist/src/canvas/Canvas.d.ts +334 -0
  288. package/dist/src/canvas/Canvas.d.ts.map +1 -0
  289. package/dist/src/canvas/Canvas.min.mjs +2 -0
  290. package/dist/src/canvas/Canvas.min.mjs.map +1 -0
  291. package/dist/src/canvas/Canvas.mjs +1366 -0
  292. package/dist/src/canvas/Canvas.mjs.map +1 -0
  293. package/dist/src/canvas/CanvasOptions.d.ts +210 -0
  294. package/dist/src/canvas/CanvasOptions.d.ts.map +1 -0
  295. package/dist/src/canvas/CanvasOptions.min.mjs +2 -0
  296. package/dist/src/canvas/CanvasOptions.min.mjs.map +1 -0
  297. package/dist/src/canvas/CanvasOptions.mjs +32 -0
  298. package/dist/src/canvas/CanvasOptions.mjs.map +1 -0
  299. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +30 -0
  300. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +1 -0
  301. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +2 -0
  302. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +1 -0
  303. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +125 -0
  304. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +1 -0
  305. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  306. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +1 -0
  307. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +2 -0
  308. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +1 -0
  309. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +75 -0
  310. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +1 -0
  311. package/dist/src/canvas/DOMManagers/util.d.ts +23 -0
  312. package/dist/src/canvas/DOMManagers/util.d.ts.map +1 -0
  313. package/dist/src/canvas/DOMManagers/util.min.mjs +2 -0
  314. package/dist/src/canvas/DOMManagers/util.min.mjs.map +1 -0
  315. package/dist/src/canvas/DOMManagers/util.mjs +76 -0
  316. package/dist/src/canvas/DOMManagers/util.mjs.map +1 -0
  317. package/dist/src/canvas/SelectableCanvas.d.ts +544 -0
  318. package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -0
  319. package/dist/src/canvas/SelectableCanvas.min.mjs +2 -0
  320. package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -0
  321. package/dist/src/canvas/SelectableCanvas.mjs +1196 -0
  322. package/dist/src/canvas/SelectableCanvas.mjs.map +1 -0
  323. package/dist/src/canvas/StaticCanvas.d.ts +596 -0
  324. package/dist/src/canvas/StaticCanvas.d.ts.map +1 -0
  325. package/dist/src/canvas/StaticCanvas.min.mjs +2 -0
  326. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -0
  327. package/dist/src/canvas/StaticCanvas.mjs +1238 -0
  328. package/dist/src/canvas/StaticCanvas.mjs.map +1 -0
  329. package/dist/src/canvas/StaticCanvasOptions.d.ts +142 -0
  330. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +1 -0
  331. package/dist/src/canvas/StaticCanvasOptions.min.mjs +2 -0
  332. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +1 -0
  333. package/dist/src/canvas/StaticCanvasOptions.mjs +26 -0
  334. package/dist/src/canvas/StaticCanvasOptions.mjs.map +1 -0
  335. package/dist/src/canvas/TextEditingManager.d.ts +21 -0
  336. package/dist/src/canvas/TextEditingManager.d.ts.map +1 -0
  337. package/dist/src/canvas/TextEditingManager.min.mjs +2 -0
  338. package/dist/src/canvas/TextEditingManager.min.mjs.map +1 -0
  339. package/dist/src/canvas/TextEditingManager.mjs +61 -0
  340. package/dist/src/canvas/TextEditingManager.mjs.map +1 -0
  341. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  342. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +1 -0
  343. package/dist/src/color/Color.d.ts +146 -0
  344. package/dist/src/color/Color.d.ts.map +1 -0
  345. package/dist/src/color/Color.min.mjs +2 -0
  346. package/dist/src/color/Color.min.mjs.map +1 -0
  347. package/dist/src/color/Color.mjs +305 -0
  348. package/dist/src/color/Color.mjs.map +1 -0
  349. package/dist/src/color/color_map.d.ts +155 -0
  350. package/dist/src/color/color_map.d.ts.map +1 -0
  351. package/dist/src/color/color_map.min.mjs +2 -0
  352. package/dist/src/color/color_map.min.mjs.map +1 -0
  353. package/dist/src/color/color_map.mjs +157 -0
  354. package/dist/src/color/color_map.mjs.map +1 -0
  355. package/dist/src/color/constants.d.ts +111 -0
  356. package/dist/src/color/constants.d.ts.map +1 -0
  357. package/dist/src/color/constants.min.mjs +2 -0
  358. package/dist/src/color/constants.min.mjs.map +1 -0
  359. package/dist/src/color/constants.mjs +115 -0
  360. package/dist/src/color/constants.mjs.map +1 -0
  361. package/dist/src/color/typedefs.d.ts +16 -0
  362. package/dist/src/color/typedefs.d.ts.map +1 -0
  363. package/dist/src/color/util.d.ts +27 -0
  364. package/dist/src/color/util.d.ts.map +1 -0
  365. package/dist/src/color/util.min.mjs +2 -0
  366. package/dist/src/color/util.min.mjs.map +1 -0
  367. package/dist/src/color/util.mjs +82 -0
  368. package/dist/src/color/util.mjs.map +1 -0
  369. package/dist/src/config.d.ts +113 -0
  370. package/dist/src/config.d.ts.map +1 -0
  371. package/dist/src/config.min.mjs +2 -0
  372. package/dist/src/config.min.mjs.map +1 -0
  373. package/dist/src/config.mjs +145 -0
  374. package/dist/src/config.mjs.map +1 -0
  375. package/dist/src/constants.d.ts +36 -0
  376. package/dist/src/constants.d.ts.map +1 -0
  377. package/dist/src/constants.min.mjs +2 -0
  378. package/dist/src/constants.min.mjs.map +1 -0
  379. package/dist/src/constants.mjs +43 -0
  380. package/dist/src/constants.mjs.map +1 -0
  381. package/dist/src/controls/Control.d.ts +229 -0
  382. package/dist/src/controls/Control.d.ts.map +1 -0
  383. package/dist/src/controls/Control.min.mjs +2 -0
  384. package/dist/src/controls/Control.min.mjs.map +1 -0
  385. package/dist/src/controls/Control.mjs +286 -0
  386. package/dist/src/controls/Control.mjs.map +1 -0
  387. package/dist/src/controls/changeHeight.d.ts +13 -0
  388. package/dist/src/controls/changeHeight.d.ts.map +1 -0
  389. package/dist/src/controls/changeWidth.d.ts +13 -0
  390. package/dist/src/controls/changeWidth.d.ts.map +1 -0
  391. package/dist/src/controls/changeWidth.min.mjs +2 -0
  392. package/dist/src/controls/changeWidth.min.mjs.map +1 -0
  393. package/dist/src/controls/changeWidth.mjs +36 -0
  394. package/dist/src/controls/changeWidth.mjs.map +1 -0
  395. package/dist/src/controls/commonControls.d.ts +26 -0
  396. package/dist/src/controls/commonControls.d.ts.map +1 -0
  397. package/dist/src/controls/commonControls.min.mjs +2 -0
  398. package/dist/src/controls/commonControls.min.mjs.map +1 -0
  399. package/dist/src/controls/commonControls.mjs +103 -0
  400. package/dist/src/controls/commonControls.mjs.map +1 -0
  401. package/dist/src/controls/controlRendering.d.ts +29 -0
  402. package/dist/src/controls/controlRendering.d.ts.map +1 -0
  403. package/dist/src/controls/controlRendering.min.mjs +2 -0
  404. package/dist/src/controls/controlRendering.min.mjs.map +1 -0
  405. package/dist/src/controls/controlRendering.mjs +87 -0
  406. package/dist/src/controls/controlRendering.mjs.map +1 -0
  407. package/dist/src/controls/drag.d.ts +12 -0
  408. package/dist/src/controls/drag.d.ts.map +1 -0
  409. package/dist/src/controls/drag.min.mjs +2 -0
  410. package/dist/src/controls/drag.min.mjs.map +1 -0
  411. package/dist/src/controls/drag.mjs +33 -0
  412. package/dist/src/controls/drag.mjs.map +1 -0
  413. package/dist/src/controls/fireEvent.d.ts +3 -0
  414. package/dist/src/controls/fireEvent.d.ts.map +1 -0
  415. package/dist/src/controls/fireEvent.min.mjs +2 -0
  416. package/dist/src/controls/fireEvent.min.mjs.map +1 -0
  417. package/dist/src/controls/fireEvent.mjs +16 -0
  418. package/dist/src/controls/fireEvent.mjs.map +1 -0
  419. package/dist/src/controls/index.d.ts +14 -0
  420. package/dist/src/controls/index.d.ts.map +1 -0
  421. package/dist/src/controls/index.min.mjs +2 -0
  422. package/dist/src/controls/index.min.mjs.map +1 -0
  423. package/dist/src/controls/index.mjs +14 -0
  424. package/dist/src/controls/index.mjs.map +1 -0
  425. package/dist/src/controls/pathControl.d.ts +12 -0
  426. package/dist/src/controls/pathControl.d.ts.map +1 -0
  427. package/dist/src/controls/pathControl.min.mjs +2 -0
  428. package/dist/src/controls/pathControl.min.mjs.map +1 -0
  429. package/dist/src/controls/pathControl.mjs +159 -0
  430. package/dist/src/controls/pathControl.mjs.map +1 -0
  431. package/dist/src/controls/polyControl.d.ts +30 -0
  432. package/dist/src/controls/polyControl.d.ts.map +1 -0
  433. package/dist/src/controls/polyControl.min.mjs +2 -0
  434. package/dist/src/controls/polyControl.min.mjs.map +1 -0
  435. package/dist/src/controls/polyControl.mjs +78 -0
  436. package/dist/src/controls/polyControl.mjs.map +1 -0
  437. package/dist/src/controls/rotate.d.ts +12 -0
  438. package/dist/src/controls/rotate.d.ts.map +1 -0
  439. package/dist/src/controls/rotate.min.mjs +2 -0
  440. package/dist/src/controls/rotate.min.mjs.map +1 -0
  441. package/dist/src/controls/rotate.mjs +73 -0
  442. package/dist/src/controls/rotate.mjs.map +1 -0
  443. package/dist/src/controls/scale.d.ts +47 -0
  444. package/dist/src/controls/scale.d.ts.map +1 -0
  445. package/dist/src/controls/scale.min.mjs +2 -0
  446. package/dist/src/controls/scale.min.mjs.map +1 -0
  447. package/dist/src/controls/scale.mjs +210 -0
  448. package/dist/src/controls/scale.mjs.map +1 -0
  449. package/dist/src/controls/scaleSkew.d.ts +39 -0
  450. package/dist/src/controls/scaleSkew.d.ts.map +1 -0
  451. package/dist/src/controls/scaleSkew.min.mjs +2 -0
  452. package/dist/src/controls/scaleSkew.min.mjs.map +1 -0
  453. package/dist/src/controls/scaleSkew.mjs +66 -0
  454. package/dist/src/controls/scaleSkew.mjs.map +1 -0
  455. package/dist/src/controls/skew.d.ts +33 -0
  456. package/dist/src/controls/skew.d.ts.map +1 -0
  457. package/dist/src/controls/skew.min.mjs +2 -0
  458. package/dist/src/controls/skew.min.mjs.map +1 -0
  459. package/dist/src/controls/skew.mjs +181 -0
  460. package/dist/src/controls/skew.mjs.map +1 -0
  461. package/dist/src/controls/util.d.ts +42 -0
  462. package/dist/src/controls/util.d.ts.map +1 -0
  463. package/dist/src/controls/util.min.mjs +2 -0
  464. package/dist/src/controls/util.min.mjs.map +1 -0
  465. package/dist/src/controls/util.mjs +105 -0
  466. package/dist/src/controls/util.mjs.map +1 -0
  467. package/dist/src/controls/wrapWithFireEvent.d.ts +10 -0
  468. package/dist/src/controls/wrapWithFireEvent.d.ts.map +1 -0
  469. package/dist/src/controls/wrapWithFireEvent.min.mjs +2 -0
  470. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +1 -0
  471. package/dist/src/controls/wrapWithFireEvent.mjs +25 -0
  472. package/dist/src/controls/wrapWithFireEvent.mjs.map +1 -0
  473. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  474. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +1 -0
  475. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +2 -0
  476. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +1 -0
  477. package/dist/src/controls/wrapWithFixedAnchor.mjs +25 -0
  478. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +1 -0
  479. package/dist/src/env/browser.d.ts +3 -0
  480. package/dist/src/env/browser.d.ts.map +1 -0
  481. package/dist/src/env/browser.min.mjs +2 -0
  482. package/dist/src/env/browser.min.mjs.map +1 -0
  483. package/dist/src/env/browser.mjs +19 -0
  484. package/dist/src/env/browser.mjs.map +1 -0
  485. package/dist/src/env/index.d.ts +34 -0
  486. package/dist/src/env/index.d.ts.map +1 -0
  487. package/dist/src/env/index.min.mjs +2 -0
  488. package/dist/src/env/index.min.mjs.map +1 -0
  489. package/dist/src/env/index.mjs +47 -0
  490. package/dist/src/env/index.mjs.map +1 -0
  491. package/dist/src/env/node.d.ts +6 -0
  492. package/dist/src/env/node.d.ts.map +1 -0
  493. package/dist/src/env/types.d.ts +16 -0
  494. package/dist/src/env/types.d.ts.map +1 -0
  495. package/dist/src/filters/BaseFilter.d.ts +153 -0
  496. package/dist/src/filters/BaseFilter.d.ts.map +1 -0
  497. package/dist/src/filters/BaseFilter.min.mjs +2 -0
  498. package/dist/src/filters/BaseFilter.min.mjs.map +1 -0
  499. package/dist/src/filters/BaseFilter.mjs +334 -0
  500. package/dist/src/filters/BaseFilter.mjs.map +1 -0
  501. package/dist/src/filters/BlendColor.d.ts +65 -0
  502. package/dist/src/filters/BlendColor.d.ts.map +1 -0
  503. package/dist/src/filters/BlendColor.min.mjs +2 -0
  504. package/dist/src/filters/BlendColor.min.mjs.map +1 -0
  505. package/dist/src/filters/BlendColor.mjs +164 -0
  506. package/dist/src/filters/BlendColor.mjs.map +1 -0
  507. package/dist/src/filters/BlendImage.d.ts +97 -0
  508. package/dist/src/filters/BlendImage.d.ts.map +1 -0
  509. package/dist/src/filters/BlendImage.min.mjs +2 -0
  510. package/dist/src/filters/BlendImage.min.mjs.map +1 -0
  511. package/dist/src/filters/BlendImage.mjs +185 -0
  512. package/dist/src/filters/BlendImage.mjs.map +1 -0
  513. package/dist/src/filters/Blur.d.ts +49 -0
  514. package/dist/src/filters/Blur.d.ts.map +1 -0
  515. package/dist/src/filters/Blur.min.mjs +2 -0
  516. package/dist/src/filters/Blur.min.mjs.map +1 -0
  517. package/dist/src/filters/Blur.mjs +194 -0
  518. package/dist/src/filters/Blur.mjs.map +1 -0
  519. package/dist/src/filters/Boilerplate.d.ts +45 -0
  520. package/dist/src/filters/Boilerplate.d.ts.map +1 -0
  521. package/dist/src/filters/Brightness.d.ts +45 -0
  522. package/dist/src/filters/Brightness.d.ts.map +1 -0
  523. package/dist/src/filters/Brightness.min.mjs +2 -0
  524. package/dist/src/filters/Brightness.min.mjs.map +1 -0
  525. package/dist/src/filters/Brightness.mjs +69 -0
  526. package/dist/src/filters/Brightness.mjs.map +1 -0
  527. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  528. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -0
  529. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +2 -0
  530. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -0
  531. package/dist/src/filters/Canvas2dFilterBackend.mjs +65 -0
  532. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -0
  533. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  534. package/dist/src/filters/ColorMatrix.d.ts.map +1 -0
  535. package/dist/src/filters/ColorMatrix.min.mjs +2 -0
  536. package/dist/src/filters/ColorMatrix.min.mjs.map +1 -0
  537. package/dist/src/filters/ColorMatrix.mjs +99 -0
  538. package/dist/src/filters/ColorMatrix.mjs.map +1 -0
  539. package/dist/src/filters/ColorMatrixFilters.d.ts +15 -0
  540. package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -0
  541. package/dist/src/filters/ColorMatrixFilters.min.mjs +2 -0
  542. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -0
  543. package/dist/src/filters/ColorMatrixFilters.mjs +30 -0
  544. package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -0
  545. package/dist/src/filters/Composed.d.ts +51 -0
  546. package/dist/src/filters/Composed.d.ts.map +1 -0
  547. package/dist/src/filters/Composed.min.mjs +2 -0
  548. package/dist/src/filters/Composed.min.mjs.map +1 -0
  549. package/dist/src/filters/Composed.mjs +65 -0
  550. package/dist/src/filters/Composed.mjs.map +1 -0
  551. package/dist/src/filters/Contrast.d.ts +44 -0
  552. package/dist/src/filters/Contrast.d.ts.map +1 -0
  553. package/dist/src/filters/Contrast.min.mjs +2 -0
  554. package/dist/src/filters/Contrast.min.mjs.map +1 -0
  555. package/dist/src/filters/Contrast.mjs +69 -0
  556. package/dist/src/filters/Contrast.mjs.map +1 -0
  557. package/dist/src/filters/Convolute.d.ts +81 -0
  558. package/dist/src/filters/Convolute.d.ts.map +1 -0
  559. package/dist/src/filters/Convolute.min.mjs +2 -0
  560. package/dist/src/filters/Convolute.min.mjs.map +1 -0
  561. package/dist/src/filters/Convolute.mjs +154 -0
  562. package/dist/src/filters/Convolute.mjs.map +1 -0
  563. package/dist/src/filters/FilterBackend.d.ts +15 -0
  564. package/dist/src/filters/FilterBackend.d.ts.map +1 -0
  565. package/dist/src/filters/FilterBackend.min.mjs +2 -0
  566. package/dist/src/filters/FilterBackend.min.mjs.map +1 -0
  567. package/dist/src/filters/FilterBackend.mjs +43 -0
  568. package/dist/src/filters/FilterBackend.mjs.map +1 -0
  569. package/dist/src/filters/GLProbes/GLProbe.d.ts +7 -0
  570. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +1 -0
  571. package/dist/src/filters/GLProbes/GLProbe.min.mjs +2 -0
  572. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +1 -0
  573. package/dist/src/filters/GLProbes/GLProbe.mjs +4 -0
  574. package/dist/src/filters/GLProbes/GLProbe.mjs.map +1 -0
  575. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  576. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +1 -0
  577. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  578. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +1 -0
  579. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +2 -0
  580. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +1 -0
  581. package/dist/src/filters/GLProbes/WebGLProbe.mjs +43 -0
  582. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +1 -0
  583. package/dist/src/filters/Gamma.d.ts +57 -0
  584. package/dist/src/filters/Gamma.d.ts.map +1 -0
  585. package/dist/src/filters/Gamma.min.mjs +2 -0
  586. package/dist/src/filters/Gamma.min.mjs.map +1 -0
  587. package/dist/src/filters/Gamma.mjs +101 -0
  588. package/dist/src/filters/Gamma.mjs.map +1 -0
  589. package/dist/src/filters/Grayscale.d.ts +44 -0
  590. package/dist/src/filters/Grayscale.d.ts.map +1 -0
  591. package/dist/src/filters/Grayscale.min.mjs +2 -0
  592. package/dist/src/filters/Grayscale.min.mjs.map +1 -0
  593. package/dist/src/filters/Grayscale.mjs +81 -0
  594. package/dist/src/filters/Grayscale.mjs.map +1 -0
  595. package/dist/src/filters/HueRotation.d.ts +34 -0
  596. package/dist/src/filters/HueRotation.d.ts.map +1 -0
  597. package/dist/src/filters/HueRotation.min.mjs +2 -0
  598. package/dist/src/filters/HueRotation.min.mjs.map +1 -0
  599. package/dist/src/filters/HueRotation.mjs +53 -0
  600. package/dist/src/filters/HueRotation.mjs.map +1 -0
  601. package/dist/src/filters/Invert.d.ts +51 -0
  602. package/dist/src/filters/Invert.d.ts.map +1 -0
  603. package/dist/src/filters/Invert.min.mjs +2 -0
  604. package/dist/src/filters/Invert.min.mjs.map +1 -0
  605. package/dist/src/filters/Invert.mjs +78 -0
  606. package/dist/src/filters/Invert.mjs.map +1 -0
  607. package/dist/src/filters/Noise.d.ts +43 -0
  608. package/dist/src/filters/Noise.d.ts.map +1 -0
  609. package/dist/src/filters/Noise.min.mjs +2 -0
  610. package/dist/src/filters/Noise.min.mjs.map +1 -0
  611. package/dist/src/filters/Noise.mjs +70 -0
  612. package/dist/src/filters/Noise.mjs.map +1 -0
  613. package/dist/src/filters/Pixelate.d.ts +41 -0
  614. package/dist/src/filters/Pixelate.d.ts.map +1 -0
  615. package/dist/src/filters/Pixelate.min.mjs +2 -0
  616. package/dist/src/filters/Pixelate.min.mjs.map +1 -0
  617. package/dist/src/filters/Pixelate.mjs +80 -0
  618. package/dist/src/filters/Pixelate.mjs.map +1 -0
  619. package/dist/src/filters/RemoveColor.d.ts +51 -0
  620. package/dist/src/filters/RemoveColor.d.ts.map +1 -0
  621. package/dist/src/filters/RemoveColor.min.mjs +2 -0
  622. package/dist/src/filters/RemoveColor.min.mjs.map +1 -0
  623. package/dist/src/filters/RemoveColor.mjs +84 -0
  624. package/dist/src/filters/RemoveColor.mjs.map +1 -0
  625. package/dist/src/filters/Resize.d.ts +134 -0
  626. package/dist/src/filters/Resize.d.ts.map +1 -0
  627. package/dist/src/filters/Resize.min.mjs +2 -0
  628. package/dist/src/filters/Resize.min.mjs.map +1 -0
  629. package/dist/src/filters/Resize.mjs +444 -0
  630. package/dist/src/filters/Resize.mjs.map +1 -0
  631. package/dist/src/filters/Saturation.d.ts +45 -0
  632. package/dist/src/filters/Saturation.d.ts.map +1 -0
  633. package/dist/src/filters/Saturation.min.mjs +2 -0
  634. package/dist/src/filters/Saturation.min.mjs.map +1 -0
  635. package/dist/src/filters/Saturation.mjs +74 -0
  636. package/dist/src/filters/Saturation.mjs.map +1 -0
  637. package/dist/src/filters/Vibrance.d.ts +45 -0
  638. package/dist/src/filters/Vibrance.d.ts.map +1 -0
  639. package/dist/src/filters/Vibrance.min.mjs +2 -0
  640. package/dist/src/filters/Vibrance.min.mjs.map +1 -0
  641. package/dist/src/filters/Vibrance.mjs +76 -0
  642. package/dist/src/filters/Vibrance.mjs.map +1 -0
  643. package/dist/src/filters/WebGLFilterBackend.d.ts +131 -0
  644. package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -0
  645. package/dist/src/filters/WebGLFilterBackend.min.mjs +2 -0
  646. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -0
  647. package/dist/src/filters/WebGLFilterBackend.mjs +312 -0
  648. package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -0
  649. package/dist/src/filters/filters.d.ts +23 -0
  650. package/dist/src/filters/filters.d.ts.map +1 -0
  651. package/dist/src/filters/filters.min.mjs +2 -0
  652. package/dist/src/filters/filters.min.mjs.map +1 -0
  653. package/dist/src/filters/filters.mjs +21 -0
  654. package/dist/src/filters/filters.mjs.map +1 -0
  655. package/dist/src/filters/index.d.ts +7 -0
  656. package/dist/src/filters/index.d.ts.map +1 -0
  657. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  658. package/dist/src/filters/shaders/baseFilter.d.ts.map +1 -0
  659. package/dist/src/filters/shaders/baseFilter.min.mjs +2 -0
  660. package/dist/src/filters/shaders/baseFilter.min.mjs.map +1 -0
  661. package/dist/src/filters/shaders/baseFilter.mjs +18 -0
  662. package/dist/src/filters/shaders/baseFilter.mjs.map +1 -0
  663. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  664. package/dist/src/filters/shaders/blendColor.d.ts.map +1 -0
  665. package/dist/src/filters/shaders/blendColor.min.mjs +2 -0
  666. package/dist/src/filters/shaders/blendColor.min.mjs.map +1 -0
  667. package/dist/src/filters/shaders/blendColor.mjs +34 -0
  668. package/dist/src/filters/shaders/blendColor.mjs.map +1 -0
  669. package/dist/src/filters/shaders/blendImage.d.ts +4 -0
  670. package/dist/src/filters/shaders/blendImage.d.ts.map +1 -0
  671. package/dist/src/filters/shaders/blendImage.min.mjs +2 -0
  672. package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -0
  673. package/dist/src/filters/shaders/blendImage.mjs +44 -0
  674. package/dist/src/filters/shaders/blendImage.mjs.map +1 -0
  675. package/dist/src/filters/shaders/blur.d.ts +2 -0
  676. package/dist/src/filters/shaders/blur.d.ts.map +1 -0
  677. package/dist/src/filters/shaders/blur.min.mjs +2 -0
  678. package/dist/src/filters/shaders/blur.min.mjs.map +1 -0
  679. package/dist/src/filters/shaders/blur.mjs +33 -0
  680. package/dist/src/filters/shaders/blur.mjs.map +1 -0
  681. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  682. package/dist/src/filters/shaders/brightness.d.ts.map +1 -0
  683. package/dist/src/filters/shaders/brightness.min.mjs +2 -0
  684. package/dist/src/filters/shaders/brightness.min.mjs.map +1 -0
  685. package/dist/src/filters/shaders/brightness.mjs +14 -0
  686. package/dist/src/filters/shaders/brightness.mjs.map +1 -0
  687. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  688. package/dist/src/filters/shaders/colorMatrix.d.ts.map +1 -0
  689. package/dist/src/filters/shaders/colorMatrix.min.mjs +2 -0
  690. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +1 -0
  691. package/dist/src/filters/shaders/colorMatrix.mjs +15 -0
  692. package/dist/src/filters/shaders/colorMatrix.mjs.map +1 -0
  693. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  694. package/dist/src/filters/shaders/constrast.d.ts.map +1 -0
  695. package/dist/src/filters/shaders/constrast.min.mjs +2 -0
  696. package/dist/src/filters/shaders/constrast.min.mjs.map +1 -0
  697. package/dist/src/filters/shaders/constrast.mjs +14 -0
  698. package/dist/src/filters/shaders/constrast.mjs.map +1 -0
  699. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  700. package/dist/src/filters/shaders/convolute.d.ts.map +1 -0
  701. package/dist/src/filters/shaders/convolute.min.mjs +2 -0
  702. package/dist/src/filters/shaders/convolute.min.mjs.map +1 -0
  703. package/dist/src/filters/shaders/convolute.mjs +157 -0
  704. package/dist/src/filters/shaders/convolute.mjs.map +1 -0
  705. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  706. package/dist/src/filters/shaders/gamma.d.ts.map +1 -0
  707. package/dist/src/filters/shaders/gamma.min.mjs +2 -0
  708. package/dist/src/filters/shaders/gamma.min.mjs.map +1 -0
  709. package/dist/src/filters/shaders/gamma.mjs +18 -0
  710. package/dist/src/filters/shaders/gamma.mjs.map +1 -0
  711. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  712. package/dist/src/filters/shaders/grayscale.d.ts.map +1 -0
  713. package/dist/src/filters/shaders/grayscale.min.mjs +2 -0
  714. package/dist/src/filters/shaders/grayscale.min.mjs.map +1 -0
  715. package/dist/src/filters/shaders/grayscale.mjs +37 -0
  716. package/dist/src/filters/shaders/grayscale.mjs.map +1 -0
  717. package/dist/src/filters/shaders/invert.d.ts +2 -0
  718. package/dist/src/filters/shaders/invert.d.ts.map +1 -0
  719. package/dist/src/filters/shaders/invert.min.mjs +2 -0
  720. package/dist/src/filters/shaders/invert.min.mjs.map +1 -0
  721. package/dist/src/filters/shaders/invert.mjs +22 -0
  722. package/dist/src/filters/shaders/invert.mjs.map +1 -0
  723. package/dist/src/filters/shaders/noise.d.ts +2 -0
  724. package/dist/src/filters/shaders/noise.d.ts.map +1 -0
  725. package/dist/src/filters/shaders/noise.min.mjs +2 -0
  726. package/dist/src/filters/shaders/noise.min.mjs.map +1 -0
  727. package/dist/src/filters/shaders/noise.mjs +19 -0
  728. package/dist/src/filters/shaders/noise.mjs.map +1 -0
  729. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  730. package/dist/src/filters/shaders/pixelate.d.ts.map +1 -0
  731. package/dist/src/filters/shaders/pixelate.min.mjs +2 -0
  732. package/dist/src/filters/shaders/pixelate.min.mjs.map +1 -0
  733. package/dist/src/filters/shaders/pixelate.mjs +22 -0
  734. package/dist/src/filters/shaders/pixelate.mjs.map +1 -0
  735. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  736. package/dist/src/filters/shaders/removeColor.d.ts.map +1 -0
  737. package/dist/src/filters/shaders/removeColor.min.mjs +2 -0
  738. package/dist/src/filters/shaders/removeColor.min.mjs.map +1 -0
  739. package/dist/src/filters/shaders/removeColor.mjs +16 -0
  740. package/dist/src/filters/shaders/removeColor.mjs.map +1 -0
  741. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  742. package/dist/src/filters/shaders/saturation.d.ts.map +1 -0
  743. package/dist/src/filters/shaders/saturation.min.mjs +2 -0
  744. package/dist/src/filters/shaders/saturation.min.mjs.map +1 -0
  745. package/dist/src/filters/shaders/saturation.mjs +18 -0
  746. package/dist/src/filters/shaders/saturation.mjs.map +1 -0
  747. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  748. package/dist/src/filters/shaders/vibrance.d.ts.map +1 -0
  749. package/dist/src/filters/shaders/vibrance.min.mjs +2 -0
  750. package/dist/src/filters/shaders/vibrance.min.mjs.map +1 -0
  751. package/dist/src/filters/shaders/vibrance.mjs +19 -0
  752. package/dist/src/filters/shaders/vibrance.mjs.map +1 -0
  753. package/dist/src/filters/typedefs.d.ts +70 -0
  754. package/dist/src/filters/typedefs.d.ts.map +1 -0
  755. package/dist/src/filters/utils.d.ts +10 -0
  756. package/dist/src/filters/utils.d.ts.map +1 -0
  757. package/dist/src/filters/utils.min.mjs +2 -0
  758. package/dist/src/filters/utils.min.mjs.map +1 -0
  759. package/dist/src/filters/utils.mjs +43 -0
  760. package/dist/src/filters/utils.mjs.map +1 -0
  761. package/dist/src/gradient/Gradient.d.ts +142 -0
  762. package/dist/src/gradient/Gradient.d.ts.map +1 -0
  763. package/dist/src/gradient/Gradient.min.mjs +2 -0
  764. package/dist/src/gradient/Gradient.min.mjs.map +1 -0
  765. package/dist/src/gradient/Gradient.mjs +328 -0
  766. package/dist/src/gradient/Gradient.mjs.map +1 -0
  767. package/dist/src/gradient/constants.d.ts +15 -0
  768. package/dist/src/gradient/constants.d.ts.map +1 -0
  769. package/dist/src/gradient/constants.min.mjs +2 -0
  770. package/dist/src/gradient/constants.min.mjs.map +1 -0
  771. package/dist/src/gradient/constants.mjs +14 -0
  772. package/dist/src/gradient/constants.mjs.map +1 -0
  773. package/dist/src/gradient/index.d.ts +3 -0
  774. package/dist/src/gradient/index.d.ts.map +1 -0
  775. package/dist/src/gradient/parser/misc.d.ts +4 -0
  776. package/dist/src/gradient/parser/misc.d.ts.map +1 -0
  777. package/dist/src/gradient/parser/misc.min.mjs +2 -0
  778. package/dist/src/gradient/parser/misc.min.mjs.map +1 -0
  779. package/dist/src/gradient/parser/misc.mjs +9 -0
  780. package/dist/src/gradient/parser/misc.mjs.map +1 -0
  781. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  782. package/dist/src/gradient/parser/parseColorStops.d.ts.map +1 -0
  783. package/dist/src/gradient/parser/parseColorStops.min.mjs +2 -0
  784. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +1 -0
  785. package/dist/src/gradient/parser/parseColorStops.mjs +44 -0
  786. package/dist/src/gradient/parser/parseColorStops.mjs.map +1 -0
  787. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  788. package/dist/src/gradient/parser/parseCoords.d.ts.map +1 -0
  789. package/dist/src/gradient/parser/parseCoords.min.mjs +2 -0
  790. package/dist/src/gradient/parser/parseCoords.min.mjs.map +1 -0
  791. package/dist/src/gradient/parser/parseCoords.mjs +65 -0
  792. package/dist/src/gradient/parser/parseCoords.mjs.map +1 -0
  793. package/dist/src/gradient/typedefs.d.ts +93 -0
  794. package/dist/src/gradient/typedefs.d.ts.map +1 -0
  795. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  796. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +1 -0
  797. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  798. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +1 -0
  799. package/dist/src/parkinglot/straighten.d.ts +12 -0
  800. package/dist/src/parkinglot/straighten.d.ts.map +1 -0
  801. package/dist/src/parser/applyViewboxTransform.d.ts +13 -0
  802. package/dist/src/parser/applyViewboxTransform.d.ts.map +1 -0
  803. package/dist/src/parser/applyViewboxTransform.min.mjs +2 -0
  804. package/dist/src/parser/applyViewboxTransform.min.mjs.map +1 -0
  805. package/dist/src/parser/applyViewboxTransform.mjs +127 -0
  806. package/dist/src/parser/applyViewboxTransform.mjs.map +1 -0
  807. package/dist/src/parser/attributes.d.ts +6 -0
  808. package/dist/src/parser/attributes.d.ts.map +1 -0
  809. package/dist/src/parser/attributes.min.mjs +2 -0
  810. package/dist/src/parser/attributes.min.mjs.map +1 -0
  811. package/dist/src/parser/attributes.mjs +10 -0
  812. package/dist/src/parser/attributes.mjs.map +1 -0
  813. package/dist/src/parser/constants.d.ts +42 -0
  814. package/dist/src/parser/constants.d.ts.map +1 -0
  815. package/dist/src/parser/constants.min.mjs +2 -0
  816. package/dist/src/parser/constants.min.mjs.map +1 -0
  817. package/dist/src/parser/constants.mjs +58 -0
  818. package/dist/src/parser/constants.mjs.map +1 -0
  819. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  820. package/dist/src/parser/doesSomeParentMatch.d.ts.map +1 -0
  821. package/dist/src/parser/doesSomeParentMatch.min.mjs +2 -0
  822. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +1 -0
  823. package/dist/src/parser/doesSomeParentMatch.mjs +17 -0
  824. package/dist/src/parser/doesSomeParentMatch.mjs.map +1 -0
  825. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  826. package/dist/src/parser/elementMatchesRule.d.ts.map +1 -0
  827. package/dist/src/parser/elementMatchesRule.min.mjs +2 -0
  828. package/dist/src/parser/elementMatchesRule.min.mjs.map +1 -0
  829. package/dist/src/parser/elementMatchesRule.mjs +19 -0
  830. package/dist/src/parser/elementMatchesRule.mjs.map +1 -0
  831. package/dist/src/parser/elements_parser.d.ts +33 -0
  832. package/dist/src/parser/elements_parser.d.ts.map +1 -0
  833. package/dist/src/parser/elements_parser.min.mjs +2 -0
  834. package/dist/src/parser/elements_parser.min.mjs.map +1 -0
  835. package/dist/src/parser/elements_parser.mjs +139 -0
  836. package/dist/src/parser/elements_parser.mjs.map +1 -0
  837. package/dist/src/parser/getCSSRules.d.ts +8 -0
  838. package/dist/src/parser/getCSSRules.d.ts.map +1 -0
  839. package/dist/src/parser/getCSSRules.min.mjs +2 -0
  840. package/dist/src/parser/getCSSRules.min.mjs.map +1 -0
  841. package/dist/src/parser/getCSSRules.mjs +60 -0
  842. package/dist/src/parser/getCSSRules.mjs.map +1 -0
  843. package/dist/src/parser/getGlobalStylesForElement.d.ts +6 -0
  844. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +1 -0
  845. package/dist/src/parser/getGlobalStylesForElement.min.mjs +2 -0
  846. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +1 -0
  847. package/dist/src/parser/getGlobalStylesForElement.mjs +22 -0
  848. package/dist/src/parser/getGlobalStylesForElement.mjs.map +1 -0
  849. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  850. package/dist/src/parser/getGradientDefs.d.ts.map +1 -0
  851. package/dist/src/parser/getGradientDefs.min.mjs +2 -0
  852. package/dist/src/parser/getGradientDefs.min.mjs.map +1 -0
  853. package/dist/src/parser/getGradientDefs.mjs +29 -0
  854. package/dist/src/parser/getGradientDefs.mjs.map +1 -0
  855. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  856. package/dist/src/parser/getMultipleNodes.d.ts.map +1 -0
  857. package/dist/src/parser/getMultipleNodes.min.mjs +2 -0
  858. package/dist/src/parser/getMultipleNodes.min.mjs.map +1 -0
  859. package/dist/src/parser/getMultipleNodes.mjs +16 -0
  860. package/dist/src/parser/getMultipleNodes.mjs.map +1 -0
  861. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  862. package/dist/src/parser/getSvgRegex.d.ts.map +1 -0
  863. package/dist/src/parser/getSvgRegex.min.mjs +2 -0
  864. package/dist/src/parser/getSvgRegex.min.mjs.map +1 -0
  865. package/dist/src/parser/getSvgRegex.mjs +6 -0
  866. package/dist/src/parser/getSvgRegex.mjs.map +1 -0
  867. package/dist/src/parser/getTagName.d.ts +2 -0
  868. package/dist/src/parser/getTagName.d.ts.map +1 -0
  869. package/dist/src/parser/getTagName.min.mjs +2 -0
  870. package/dist/src/parser/getTagName.min.mjs.map +1 -0
  871. package/dist/src/parser/getTagName.mjs +4 -0
  872. package/dist/src/parser/getTagName.mjs.map +1 -0
  873. package/dist/src/parser/hasInvalidAncestor.d.ts +2 -0
  874. package/dist/src/parser/hasInvalidAncestor.d.ts.map +1 -0
  875. package/dist/src/parser/hasInvalidAncestor.min.mjs +2 -0
  876. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +1 -0
  877. package/dist/src/parser/hasInvalidAncestor.mjs +17 -0
  878. package/dist/src/parser/hasInvalidAncestor.mjs.map +1 -0
  879. package/dist/src/parser/loadSVGFromString.d.ts +17 -0
  880. package/dist/src/parser/loadSVGFromString.d.ts.map +1 -0
  881. package/dist/src/parser/loadSVGFromString.min.mjs +2 -0
  882. package/dist/src/parser/loadSVGFromString.min.mjs.map +1 -0
  883. package/dist/src/parser/loadSVGFromString.mjs +25 -0
  884. package/dist/src/parser/loadSVGFromString.mjs.map +1 -0
  885. package/dist/src/parser/loadSVGFromURL.d.ts +18 -0
  886. package/dist/src/parser/loadSVGFromURL.d.ts.map +1 -0
  887. package/dist/src/parser/loadSVGFromURL.min.mjs +2 -0
  888. package/dist/src/parser/loadSVGFromURL.min.mjs.map +1 -0
  889. package/dist/src/parser/loadSVGFromURL.mjs +37 -0
  890. package/dist/src/parser/loadSVGFromURL.mjs.map +1 -0
  891. package/dist/src/parser/normalizeAttr.d.ts +3 -0
  892. package/dist/src/parser/normalizeAttr.d.ts.map +1 -0
  893. package/dist/src/parser/normalizeAttr.min.mjs +2 -0
  894. package/dist/src/parser/normalizeAttr.min.mjs.map +1 -0
  895. package/dist/src/parser/normalizeAttr.mjs +9 -0
  896. package/dist/src/parser/normalizeAttr.mjs.map +1 -0
  897. package/dist/src/parser/normalizeValue.d.ts +2 -0
  898. package/dist/src/parser/normalizeValue.d.ts.map +1 -0
  899. package/dist/src/parser/normalizeValue.min.mjs +2 -0
  900. package/dist/src/parser/normalizeValue.min.mjs.map +1 -0
  901. package/dist/src/parser/normalizeValue.mjs +63 -0
  902. package/dist/src/parser/normalizeValue.mjs.map +1 -0
  903. package/dist/src/parser/parseAttributes.d.ts +10 -0
  904. package/dist/src/parser/parseAttributes.d.ts.map +1 -0
  905. package/dist/src/parser/parseAttributes.min.mjs +2 -0
  906. package/dist/src/parser/parseAttributes.min.mjs.map +1 -0
  907. package/dist/src/parser/parseAttributes.mjs +73 -0
  908. package/dist/src/parser/parseAttributes.mjs.map +1 -0
  909. package/dist/src/parser/parseFontDeclaration.d.ts +7 -0
  910. package/dist/src/parser/parseFontDeclaration.d.ts.map +1 -0
  911. package/dist/src/parser/parseFontDeclaration.min.mjs +2 -0
  912. package/dist/src/parser/parseFontDeclaration.min.mjs.map +1 -0
  913. package/dist/src/parser/parseFontDeclaration.mjs +39 -0
  914. package/dist/src/parser/parseFontDeclaration.mjs.map +1 -0
  915. package/dist/src/parser/parsePointsAttribute.d.ts +8 -0
  916. package/dist/src/parser/parsePointsAttribute.d.ts.map +1 -0
  917. package/dist/src/parser/parsePointsAttribute.min.mjs +2 -0
  918. package/dist/src/parser/parsePointsAttribute.min.mjs.map +1 -0
  919. package/dist/src/parser/parsePointsAttribute.mjs +30 -0
  920. package/dist/src/parser/parsePointsAttribute.mjs.map +1 -0
  921. package/dist/src/parser/parseSVGDocument.d.ts +19 -0
  922. package/dist/src/parser/parseSVGDocument.d.ts.map +1 -0
  923. package/dist/src/parser/parseSVGDocument.min.mjs +2 -0
  924. package/dist/src/parser/parseSVGDocument.min.mjs.map +1 -0
  925. package/dist/src/parser/parseSVGDocument.mjs +79 -0
  926. package/dist/src/parser/parseSVGDocument.mjs.map +1 -0
  927. package/dist/src/parser/parseStyleAttribute.d.ts +7 -0
  928. package/dist/src/parser/parseStyleAttribute.d.ts.map +1 -0
  929. package/dist/src/parser/parseStyleAttribute.min.mjs +2 -0
  930. package/dist/src/parser/parseStyleAttribute.min.mjs.map +1 -0
  931. package/dist/src/parser/parseStyleAttribute.mjs +24 -0
  932. package/dist/src/parser/parseStyleAttribute.mjs.map +1 -0
  933. package/dist/src/parser/parseStyleObject.d.ts +8 -0
  934. package/dist/src/parser/parseStyleObject.d.ts.map +1 -0
  935. package/dist/src/parser/parseStyleObject.min.mjs +2 -0
  936. package/dist/src/parser/parseStyleObject.min.mjs.map +1 -0
  937. package/dist/src/parser/parseStyleObject.mjs +18 -0
  938. package/dist/src/parser/parseStyleObject.mjs.map +1 -0
  939. package/dist/src/parser/parseStyleString.d.ts +8 -0
  940. package/dist/src/parser/parseStyleString.d.ts.map +1 -0
  941. package/dist/src/parser/parseStyleString.min.mjs +2 -0
  942. package/dist/src/parser/parseStyleString.min.mjs.map +1 -0
  943. package/dist/src/parser/parseStyleString.mjs +16 -0
  944. package/dist/src/parser/parseStyleString.mjs.map +1 -0
  945. package/dist/src/parser/parseTransformAttribute.d.ts +8 -0
  946. package/dist/src/parser/parseTransformAttribute.d.ts.map +1 -0
  947. package/dist/src/parser/parseTransformAttribute.min.mjs +2 -0
  948. package/dist/src/parser/parseTransformAttribute.min.mjs.map +1 -0
  949. package/dist/src/parser/parseTransformAttribute.mjs +84 -0
  950. package/dist/src/parser/parseTransformAttribute.mjs.map +1 -0
  951. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  952. package/dist/src/parser/parseUseDirectives.d.ts.map +1 -0
  953. package/dist/src/parser/parseUseDirectives.min.mjs +2 -0
  954. package/dist/src/parser/parseUseDirectives.min.mjs.map +1 -0
  955. package/dist/src/parser/parseUseDirectives.mjs +88 -0
  956. package/dist/src/parser/parseUseDirectives.mjs.map +1 -0
  957. package/dist/src/parser/percent.d.ts +9 -0
  958. package/dist/src/parser/percent.d.ts.map +1 -0
  959. package/dist/src/parser/percent.min.mjs +2 -0
  960. package/dist/src/parser/percent.min.mjs.map +1 -0
  961. package/dist/src/parser/percent.mjs +21 -0
  962. package/dist/src/parser/percent.mjs.map +1 -0
  963. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  964. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +1 -0
  965. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +2 -0
  966. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +1 -0
  967. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +28 -0
  968. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +1 -0
  969. package/dist/src/parser/selectorMatches.d.ts +2 -0
  970. package/dist/src/parser/selectorMatches.d.ts.map +1 -0
  971. package/dist/src/parser/selectorMatches.min.mjs +2 -0
  972. package/dist/src/parser/selectorMatches.min.mjs.map +1 -0
  973. package/dist/src/parser/selectorMatches.mjs +26 -0
  974. package/dist/src/parser/selectorMatches.mjs.map +1 -0
  975. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  976. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +1 -0
  977. package/dist/src/parser/setStrokeFillOpacity.min.mjs +2 -0
  978. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +1 -0
  979. package/dist/src/parser/setStrokeFillOpacity.mjs +38 -0
  980. package/dist/src/parser/setStrokeFillOpacity.mjs.map +1 -0
  981. package/dist/src/parser/typedefs.d.ts +10 -0
  982. package/dist/src/parser/typedefs.d.ts.map +1 -0
  983. package/dist/src/shapes/ActiveSelection.d.ts +105 -0
  984. package/dist/src/shapes/ActiveSelection.d.ts.map +1 -0
  985. package/dist/src/shapes/ActiveSelection.min.mjs +2 -0
  986. package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -0
  987. package/dist/src/shapes/ActiveSelection.mjs +236 -0
  988. package/dist/src/shapes/ActiveSelection.mjs.map +1 -0
  989. package/dist/src/shapes/Circle.d.ts +107 -0
  990. package/dist/src/shapes/Circle.d.ts.map +1 -0
  991. package/dist/src/shapes/Circle.min.mjs +2 -0
  992. package/dist/src/shapes/Circle.min.mjs.map +1 -0
  993. package/dist/src/shapes/Circle.mjs +172 -0
  994. package/dist/src/shapes/Circle.mjs.map +1 -0
  995. package/dist/src/shapes/Ellipse.d.ts +82 -0
  996. package/dist/src/shapes/Ellipse.d.ts.map +1 -0
  997. package/dist/src/shapes/Ellipse.min.mjs +2 -0
  998. package/dist/src/shapes/Ellipse.min.mjs.map +1 -0
  999. package/dist/src/shapes/Ellipse.mjs +138 -0
  1000. package/dist/src/shapes/Ellipse.mjs.map +1 -0
  1001. package/dist/src/shapes/Group.d.ts +301 -0
  1002. package/dist/src/shapes/Group.d.ts.map +1 -0
  1003. package/dist/src/shapes/Group.min.mjs +2 -0
  1004. package/dist/src/shapes/Group.min.mjs.map +1 -0
  1005. package/dist/src/shapes/Group.mjs +601 -0
  1006. package/dist/src/shapes/Group.mjs.map +1 -0
  1007. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  1008. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -0
  1009. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +2 -0
  1010. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +1 -0
  1011. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +347 -0
  1012. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +1 -0
  1013. package/dist/src/shapes/IText/IText.d.ts +347 -0
  1014. package/dist/src/shapes/IText/IText.d.ts.map +1 -0
  1015. package/dist/src/shapes/IText/IText.min.mjs +2 -0
  1016. package/dist/src/shapes/IText/IText.min.mjs.map +1 -0
  1017. package/dist/src/shapes/IText/IText.mjs +699 -0
  1018. package/dist/src/shapes/IText/IText.mjs.map +1 -0
  1019. package/dist/src/shapes/IText/ITextBehavior.d.ts +321 -0
  1020. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
  1021. package/dist/src/shapes/IText/ITextBehavior.min.mjs +2 -0
  1022. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -0
  1023. package/dist/src/shapes/IText/ITextBehavior.mjs +989 -0
  1024. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -0
  1025. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +63 -0
  1026. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
  1027. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +2 -0
  1028. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -0
  1029. package/dist/src/shapes/IText/ITextClickBehavior.mjs +220 -0
  1030. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -0
  1031. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +197 -0
  1032. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -0
  1033. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +2 -0
  1034. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -0
  1035. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +602 -0
  1036. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -0
  1037. package/dist/src/shapes/IText/constants.d.ts +13 -0
  1038. package/dist/src/shapes/IText/constants.d.ts.map +1 -0
  1039. package/dist/src/shapes/IText/constants.min.mjs +2 -0
  1040. package/dist/src/shapes/IText/constants.min.mjs.map +1 -0
  1041. package/dist/src/shapes/IText/constants.mjs +52 -0
  1042. package/dist/src/shapes/IText/constants.mjs.map +1 -0
  1043. package/dist/src/shapes/Image.d.ts +296 -0
  1044. package/dist/src/shapes/Image.d.ts.map +1 -0
  1045. package/dist/src/shapes/Image.min.mjs +2 -0
  1046. package/dist/src/shapes/Image.min.mjs.map +1 -0
  1047. package/dist/src/shapes/Image.mjs +661 -0
  1048. package/dist/src/shapes/Image.mjs.map +1 -0
  1049. package/dist/src/shapes/Line.d.ts +118 -0
  1050. package/dist/src/shapes/Line.d.ts.map +1 -0
  1051. package/dist/src/shapes/Line.min.mjs +2 -0
  1052. package/dist/src/shapes/Line.min.mjs.map +1 -0
  1053. package/dist/src/shapes/Line.mjs +283 -0
  1054. package/dist/src/shapes/Line.mjs.map +1 -0
  1055. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  1056. package/dist/src/shapes/Object/FabricObject.d.ts.map +1 -0
  1057. package/dist/src/shapes/Object/FabricObject.min.mjs +2 -0
  1058. package/dist/src/shapes/Object/FabricObject.min.mjs.map +1 -0
  1059. package/dist/src/shapes/Object/FabricObject.mjs +17 -0
  1060. package/dist/src/shapes/Object/FabricObject.mjs.map +1 -0
  1061. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +72 -0
  1062. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -0
  1063. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +2 -0
  1064. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -0
  1065. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +166 -0
  1066. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -0
  1067. package/dist/src/shapes/Object/InteractiveObject.d.ts +317 -0
  1068. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -0
  1069. package/dist/src/shapes/Object/InteractiveObject.min.mjs +2 -0
  1070. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -0
  1071. package/dist/src/shapes/Object/InteractiveObject.mjs +556 -0
  1072. package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -0
  1073. package/dist/src/shapes/Object/Object.d.ts +716 -0
  1074. package/dist/src/shapes/Object/Object.d.ts.map +1 -0
  1075. package/dist/src/shapes/Object/Object.min.mjs +2 -0
  1076. package/dist/src/shapes/Object/Object.min.mjs.map +1 -0
  1077. package/dist/src/shapes/Object/Object.mjs +1531 -0
  1078. package/dist/src/shapes/Object/Object.mjs.map +1 -0
  1079. package/dist/src/shapes/Object/ObjectGeometry.d.ts +338 -0
  1080. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +1 -0
  1081. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +2 -0
  1082. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +1 -0
  1083. package/dist/src/shapes/Object/ObjectGeometry.mjs +657 -0
  1084. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +1 -0
  1085. package/dist/src/shapes/Object/defaultValues.d.ts +8 -0
  1086. package/dist/src/shapes/Object/defaultValues.d.ts.map +1 -0
  1087. package/dist/src/shapes/Object/defaultValues.min.mjs +2 -0
  1088. package/dist/src/shapes/Object/defaultValues.min.mjs.map +1 -0
  1089. package/dist/src/shapes/Object/defaultValues.mjs +81 -0
  1090. package/dist/src/shapes/Object/defaultValues.mjs.map +1 -0
  1091. package/dist/src/shapes/Object/types/BaseProps.d.ts +92 -0
  1092. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +1 -0
  1093. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  1094. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +1 -0
  1095. package/dist/src/shapes/Object/types/ControlProps.d.ts +63 -0
  1096. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +1 -0
  1097. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +62 -0
  1098. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
  1099. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +78 -0
  1100. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
  1101. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +43 -0
  1102. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
  1103. package/dist/src/shapes/Object/types/ObjectProps.d.ts +41 -0
  1104. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
  1105. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +32 -0
  1106. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
  1107. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +63 -0
  1108. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +1 -0
  1109. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  1110. package/dist/src/shapes/Object/types/index.d.ts.map +1 -0
  1111. package/dist/src/shapes/Path.d.ts +208 -0
  1112. package/dist/src/shapes/Path.d.ts.map +1 -0
  1113. package/dist/src/shapes/Path.min.mjs +2 -0
  1114. package/dist/src/shapes/Path.min.mjs.map +1 -0
  1115. package/dist/src/shapes/Path.mjs +318 -0
  1116. package/dist/src/shapes/Path.mjs.map +1 -0
  1117. package/dist/src/shapes/Polygon.d.ts +7 -0
  1118. package/dist/src/shapes/Polygon.d.ts.map +1 -0
  1119. package/dist/src/shapes/Polygon.min.mjs +2 -0
  1120. package/dist/src/shapes/Polygon.min.mjs.map +1 -0
  1121. package/dist/src/shapes/Polygon.mjs +16 -0
  1122. package/dist/src/shapes/Polygon.mjs.map +1 -0
  1123. package/dist/src/shapes/Polyline.d.ts +149 -0
  1124. package/dist/src/shapes/Polyline.d.ts.map +1 -0
  1125. package/dist/src/shapes/Polyline.min.mjs +2 -0
  1126. package/dist/src/shapes/Polyline.min.mjs.map +1 -0
  1127. package/dist/src/shapes/Polyline.mjs +358 -0
  1128. package/dist/src/shapes/Polyline.mjs.map +1 -0
  1129. package/dist/src/shapes/Rect.d.ts +77 -0
  1130. package/dist/src/shapes/Rect.d.ts.map +1 -0
  1131. package/dist/src/shapes/Rect.min.mjs +2 -0
  1132. package/dist/src/shapes/Rect.min.mjs.map +1 -0
  1133. package/dist/src/shapes/Rect.mjs +151 -0
  1134. package/dist/src/shapes/Rect.mjs.map +1 -0
  1135. package/dist/src/shapes/Text/StyledText.d.ts +126 -0
  1136. package/dist/src/shapes/Text/StyledText.d.ts.map +1 -0
  1137. package/dist/src/shapes/Text/StyledText.min.mjs +2 -0
  1138. package/dist/src/shapes/Text/StyledText.min.mjs.map +1 -0
  1139. package/dist/src/shapes/Text/StyledText.mjs +291 -0
  1140. package/dist/src/shapes/Text/StyledText.mjs.map +1 -0
  1141. package/dist/src/shapes/Text/Text.d.ts +761 -0
  1142. package/dist/src/shapes/Text/Text.d.ts.map +1 -0
  1143. package/dist/src/shapes/Text/Text.min.mjs +2 -0
  1144. package/dist/src/shapes/Text/Text.min.mjs.map +1 -0
  1145. package/dist/src/shapes/Text/Text.mjs +1475 -0
  1146. package/dist/src/shapes/Text/Text.mjs.map +1 -0
  1147. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +40 -0
  1148. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
  1149. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +2 -0
  1150. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -0
  1151. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +245 -0
  1152. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -0
  1153. package/dist/src/shapes/Text/constants.d.ts +14 -0
  1154. package/dist/src/shapes/Text/constants.d.ts.map +1 -0
  1155. package/dist/src/shapes/Text/constants.min.mjs +2 -0
  1156. package/dist/src/shapes/Text/constants.min.mjs.map +1 -0
  1157. package/dist/src/shapes/Text/constants.mjs +74 -0
  1158. package/dist/src/shapes/Text/constants.mjs.map +1 -0
  1159. package/dist/src/shapes/Textbox.d.ts +233 -0
  1160. package/dist/src/shapes/Textbox.d.ts.map +1 -0
  1161. package/dist/src/shapes/Textbox.min.mjs +2 -0
  1162. package/dist/src/shapes/Textbox.min.mjs.map +1 -0
  1163. package/dist/src/shapes/Textbox.mjs +585 -0
  1164. package/dist/src/shapes/Textbox.mjs.map +1 -0
  1165. package/dist/src/shapes/Triangle.d.ts +27 -0
  1166. package/dist/src/shapes/Triangle.d.ts.map +1 -0
  1167. package/dist/src/shapes/Triangle.min.mjs +2 -0
  1168. package/dist/src/shapes/Triangle.min.mjs.map +1 -0
  1169. package/dist/src/shapes/Triangle.mjs +60 -0
  1170. package/dist/src/shapes/Triangle.mjs.map +1 -0
  1171. package/dist/src/text/browserLines.d.ts +42 -0
  1172. package/dist/src/text/browserLines.d.ts.map +1 -0
  1173. package/dist/src/text/browserLines.min.mjs +2 -0
  1174. package/dist/src/text/browserLines.min.mjs.map +1 -0
  1175. package/dist/src/text/browserLines.mjs +168 -0
  1176. package/dist/src/text/browserLines.mjs.map +1 -0
  1177. package/dist/src/text/ellipsis.d.ts +47 -0
  1178. package/dist/src/text/ellipsis.d.ts.map +1 -0
  1179. package/dist/src/text/ellipsis.min.mjs +2 -0
  1180. package/dist/src/text/ellipsis.min.mjs.map +1 -0
  1181. package/dist/src/text/ellipsis.mjs +182 -0
  1182. package/dist/src/text/ellipsis.mjs.map +1 -0
  1183. package/dist/src/text/hitTest.d.ts +82 -0
  1184. package/dist/src/text/hitTest.d.ts.map +1 -0
  1185. package/dist/src/text/hitTest.min.mjs +2 -0
  1186. package/dist/src/text/hitTest.min.mjs.map +1 -0
  1187. package/dist/src/text/hitTest.mjs +309 -0
  1188. package/dist/src/text/hitTest.mjs.map +1 -0
  1189. package/dist/src/text/layout.d.ts +66 -0
  1190. package/dist/src/text/layout.d.ts.map +1 -0
  1191. package/dist/src/text/layout.min.mjs +2 -0
  1192. package/dist/src/text/layout.min.mjs.map +1 -0
  1193. package/dist/src/text/layout.mjs +454 -0
  1194. package/dist/src/text/layout.mjs.map +1 -0
  1195. package/dist/src/text/measure.d.ts +131 -0
  1196. package/dist/src/text/measure.d.ts.map +1 -0
  1197. package/dist/src/text/measure.min.mjs +2 -0
  1198. package/dist/src/text/measure.min.mjs.map +1 -0
  1199. package/dist/src/text/measure.mjs +316 -0
  1200. package/dist/src/text/measure.mjs.map +1 -0
  1201. package/dist/src/text/overlayEditor.d.ts +113 -0
  1202. package/dist/src/text/overlayEditor.d.ts.map +1 -0
  1203. package/dist/src/text/overlayEditor.min.mjs +2 -0
  1204. package/dist/src/text/overlayEditor.min.mjs.map +1 -0
  1205. package/dist/src/text/overlayEditor.mjs +553 -0
  1206. package/dist/src/text/overlayEditor.mjs.map +1 -0
  1207. package/dist/src/text/unicode.d.ts +106 -0
  1208. package/dist/src/text/unicode.d.ts.map +1 -0
  1209. package/dist/src/text/unicode.min.mjs +2 -0
  1210. package/dist/src/text/unicode.min.mjs.map +1 -0
  1211. package/dist/src/text/unicode.mjs +34 -0
  1212. package/dist/src/text/unicode.mjs.map +1 -0
  1213. package/dist/src/typedefs.d.ts +99 -0
  1214. package/dist/src/typedefs.d.ts.map +1 -0
  1215. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  1216. package/dist/src/util/animation/AnimationBase.d.ts.map +1 -0
  1217. package/dist/src/util/animation/AnimationBase.min.mjs +2 -0
  1218. package/dist/src/util/animation/AnimationBase.min.mjs.map +1 -0
  1219. package/dist/src/util/animation/AnimationBase.mjs +128 -0
  1220. package/dist/src/util/animation/AnimationBase.mjs.map +1 -0
  1221. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  1222. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +1 -0
  1223. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +2 -0
  1224. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +1 -0
  1225. package/dist/src/util/animation/AnimationFrameProvider.mjs +11 -0
  1226. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +1 -0
  1227. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  1228. package/dist/src/util/animation/AnimationRegistry.d.ts.map +1 -0
  1229. package/dist/src/util/animation/AnimationRegistry.min.mjs +2 -0
  1230. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +1 -0
  1231. package/dist/src/util/animation/AnimationRegistry.mjs +55 -0
  1232. package/dist/src/util/animation/AnimationRegistry.mjs.map +1 -0
  1233. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  1234. package/dist/src/util/animation/ArrayAnimation.d.ts.map +1 -0
  1235. package/dist/src/util/animation/ArrayAnimation.min.mjs +2 -0
  1236. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +1 -0
  1237. package/dist/src/util/animation/ArrayAnimation.mjs +26 -0
  1238. package/dist/src/util/animation/ArrayAnimation.mjs.map +1 -0
  1239. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  1240. package/dist/src/util/animation/ColorAnimation.d.ts.map +1 -0
  1241. package/dist/src/util/animation/ColorAnimation.min.mjs +2 -0
  1242. package/dist/src/util/animation/ColorAnimation.min.mjs.map +1 -0
  1243. package/dist/src/util/animation/ColorAnimation.mjs +47 -0
  1244. package/dist/src/util/animation/ColorAnimation.mjs.map +1 -0
  1245. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  1246. package/dist/src/util/animation/ValueAnimation.d.ts.map +1 -0
  1247. package/dist/src/util/animation/ValueAnimation.min.mjs +2 -0
  1248. package/dist/src/util/animation/ValueAnimation.min.mjs.map +1 -0
  1249. package/dist/src/util/animation/ValueAnimation.mjs +26 -0
  1250. package/dist/src/util/animation/ValueAnimation.mjs.map +1 -0
  1251. package/dist/src/util/animation/animate.d.ts +37 -0
  1252. package/dist/src/util/animation/animate.d.ts.map +1 -0
  1253. package/dist/src/util/animation/animate.min.mjs +2 -0
  1254. package/dist/src/util/animation/animate.min.mjs.map +1 -0
  1255. package/dist/src/util/animation/animate.mjs +48 -0
  1256. package/dist/src/util/animation/animate.mjs.map +1 -0
  1257. package/dist/src/util/animation/easing.d.ts +130 -0
  1258. package/dist/src/util/animation/easing.d.ts.map +1 -0
  1259. package/dist/src/util/animation/easing.min.mjs +2 -0
  1260. package/dist/src/util/animation/easing.min.mjs.map +1 -0
  1261. package/dist/src/util/animation/easing.mjs +315 -0
  1262. package/dist/src/util/animation/easing.mjs.map +1 -0
  1263. package/dist/src/util/animation/index.d.ts +3 -0
  1264. package/dist/src/util/animation/index.d.ts.map +1 -0
  1265. package/dist/src/util/animation/types.d.ts +87 -0
  1266. package/dist/src/util/animation/types.d.ts.map +1 -0
  1267. package/dist/src/util/applyMixins.d.ts +8 -0
  1268. package/dist/src/util/applyMixins.d.ts.map +1 -0
  1269. package/dist/src/util/applyMixins.min.mjs +2 -0
  1270. package/dist/src/util/applyMixins.min.mjs.map +1 -0
  1271. package/dist/src/util/applyMixins.mjs +14 -0
  1272. package/dist/src/util/applyMixins.mjs.map +1 -0
  1273. package/dist/src/util/dom_event.d.ts +6 -0
  1274. package/dist/src/util/dom_event.d.ts.map +1 -0
  1275. package/dist/src/util/dom_event.min.mjs +2 -0
  1276. package/dist/src/util/dom_event.min.mjs.map +1 -0
  1277. package/dist/src/util/dom_event.mjs +25 -0
  1278. package/dist/src/util/dom_event.mjs.map +1 -0
  1279. package/dist/src/util/dom_misc.d.ts +12 -0
  1280. package/dist/src/util/dom_misc.d.ts.map +1 -0
  1281. package/dist/src/util/dom_misc.min.mjs +2 -0
  1282. package/dist/src/util/dom_misc.min.mjs.map +1 -0
  1283. package/dist/src/util/dom_misc.mjs +51 -0
  1284. package/dist/src/util/dom_misc.mjs.map +1 -0
  1285. package/dist/src/util/index.d.ts +35 -0
  1286. package/dist/src/util/index.d.ts.map +1 -0
  1287. package/dist/src/util/index.min.mjs +2 -0
  1288. package/dist/src/util/index.min.mjs.map +1 -0
  1289. package/dist/src/util/index.mjs +33 -0
  1290. package/dist/src/util/index.mjs.map +1 -0
  1291. package/dist/src/util/internals/applyCanvasTransform.d.ts +11 -0
  1292. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +1 -0
  1293. package/dist/src/util/internals/applyCanvasTransform.min.mjs +2 -0
  1294. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +1 -0
  1295. package/dist/src/util/internals/applyCanvasTransform.mjs +17 -0
  1296. package/dist/src/util/internals/applyCanvasTransform.mjs.map +1 -0
  1297. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  1298. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +1 -0
  1299. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +2 -0
  1300. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +1 -0
  1301. package/dist/src/util/internals/cleanupSvgAttribute.mjs +9 -0
  1302. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +1 -0
  1303. package/dist/src/util/internals/cloneStyles.d.ts +3 -0
  1304. package/dist/src/util/internals/cloneStyles.d.ts.map +1 -0
  1305. package/dist/src/util/internals/cloneStyles.min.mjs +2 -0
  1306. package/dist/src/util/internals/cloneStyles.min.mjs.map +1 -0
  1307. package/dist/src/util/internals/cloneStyles.mjs +15 -0
  1308. package/dist/src/util/internals/cloneStyles.mjs.map +1 -0
  1309. package/dist/src/util/internals/console.d.ts +8 -0
  1310. package/dist/src/util/internals/console.d.ts.map +1 -0
  1311. package/dist/src/util/internals/console.min.mjs +2 -0
  1312. package/dist/src/util/internals/console.min.mjs.map +1 -0
  1313. package/dist/src/util/internals/console.mjs +22 -0
  1314. package/dist/src/util/internals/console.mjs.map +1 -0
  1315. package/dist/src/util/internals/dom_style.d.ts +7 -0
  1316. package/dist/src/util/internals/dom_style.d.ts.map +1 -0
  1317. package/dist/src/util/internals/dom_style.min.mjs +2 -0
  1318. package/dist/src/util/internals/dom_style.min.mjs.map +1 -0
  1319. package/dist/src/util/internals/dom_style.mjs +20 -0
  1320. package/dist/src/util/internals/dom_style.mjs.map +1 -0
  1321. package/dist/src/util/internals/findRight.d.ts +2 -0
  1322. package/dist/src/util/internals/findRight.d.ts.map +1 -0
  1323. package/dist/src/util/internals/findRight.min.mjs +2 -0
  1324. package/dist/src/util/internals/findRight.min.mjs.map +1 -0
  1325. package/dist/src/util/internals/findRight.mjs +11 -0
  1326. package/dist/src/util/internals/findRight.mjs.map +1 -0
  1327. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  1328. package/dist/src/util/internals/getRandomInt.d.ts.map +1 -0
  1329. package/dist/src/util/internals/getRandomInt.min.mjs +2 -0
  1330. package/dist/src/util/internals/getRandomInt.min.mjs.map +1 -0
  1331. package/dist/src/util/internals/getRandomInt.mjs +10 -0
  1332. package/dist/src/util/internals/getRandomInt.mjs.map +1 -0
  1333. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  1334. package/dist/src/util/internals/ifNaN.d.ts.map +1 -0
  1335. package/dist/src/util/internals/ifNaN.min.mjs +2 -0
  1336. package/dist/src/util/internals/ifNaN.min.mjs.map +1 -0
  1337. package/dist/src/util/internals/ifNaN.mjs +12 -0
  1338. package/dist/src/util/internals/ifNaN.mjs.map +1 -0
  1339. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  1340. package/dist/src/util/internals/removeFromArray.d.ts.map +1 -0
  1341. package/dist/src/util/internals/removeFromArray.min.mjs +2 -0
  1342. package/dist/src/util/internals/removeFromArray.min.mjs.map +1 -0
  1343. package/dist/src/util/internals/removeFromArray.mjs +17 -0
  1344. package/dist/src/util/internals/removeFromArray.mjs.map +1 -0
  1345. package/dist/src/util/internals/uid.d.ts +2 -0
  1346. package/dist/src/util/internals/uid.d.ts.map +1 -0
  1347. package/dist/src/util/internals/uid.min.mjs +2 -0
  1348. package/dist/src/util/internals/uid.min.mjs.map +1 -0
  1349. package/dist/src/util/internals/uid.mjs +5 -0
  1350. package/dist/src/util/internals/uid.mjs.map +1 -0
  1351. package/dist/src/util/lang_string.d.ts +22 -0
  1352. package/dist/src/util/lang_string.d.ts.map +1 -0
  1353. package/dist/src/util/lang_string.min.mjs +2 -0
  1354. package/dist/src/util/lang_string.min.mjs.map +1 -0
  1355. package/dist/src/util/lang_string.mjs +102 -0
  1356. package/dist/src/util/lang_string.mjs.map +1 -0
  1357. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  1358. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +1 -0
  1359. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +2 -0
  1360. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +1 -0
  1361. package/dist/src/util/misc/boundingBoxFromPoints.mjs +30 -0
  1362. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +1 -0
  1363. package/dist/src/util/misc/capValue.d.ts +2 -0
  1364. package/dist/src/util/misc/capValue.d.ts.map +1 -0
  1365. package/dist/src/util/misc/capValue.min.mjs +2 -0
  1366. package/dist/src/util/misc/capValue.min.mjs.map +1 -0
  1367. package/dist/src/util/misc/capValue.mjs +4 -0
  1368. package/dist/src/util/misc/capValue.mjs.map +1 -0
  1369. package/dist/src/util/misc/cos.d.ts +10 -0
  1370. package/dist/src/util/misc/cos.d.ts.map +1 -0
  1371. package/dist/src/util/misc/cos.min.mjs +2 -0
  1372. package/dist/src/util/misc/cos.min.mjs.map +1 -0
  1373. package/dist/src/util/misc/cos.mjs +26 -0
  1374. package/dist/src/util/misc/cos.mjs.map +1 -0
  1375. package/dist/src/util/misc/dom.d.ts +35 -0
  1376. package/dist/src/util/misc/dom.d.ts.map +1 -0
  1377. package/dist/src/util/misc/dom.min.mjs +2 -0
  1378. package/dist/src/util/misc/dom.min.mjs.map +1 -0
  1379. package/dist/src/util/misc/dom.mjs +63 -0
  1380. package/dist/src/util/misc/dom.mjs.map +1 -0
  1381. package/dist/src/util/misc/findScaleTo.d.ts +20 -0
  1382. package/dist/src/util/misc/findScaleTo.d.ts.map +1 -0
  1383. package/dist/src/util/misc/findScaleTo.min.mjs +2 -0
  1384. package/dist/src/util/misc/findScaleTo.min.mjs.map +1 -0
  1385. package/dist/src/util/misc/findScaleTo.mjs +22 -0
  1386. package/dist/src/util/misc/findScaleTo.mjs.map +1 -0
  1387. package/dist/src/util/misc/groupSVGElements.d.ts +10 -0
  1388. package/dist/src/util/misc/groupSVGElements.d.ts.map +1 -0
  1389. package/dist/src/util/misc/groupSVGElements.min.mjs +2 -0
  1390. package/dist/src/util/misc/groupSVGElements.min.mjs.map +1 -0
  1391. package/dist/src/util/misc/groupSVGElements.mjs +17 -0
  1392. package/dist/src/util/misc/groupSVGElements.mjs.map +1 -0
  1393. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  1394. package/dist/src/util/misc/isTransparent.d.ts.map +1 -0
  1395. package/dist/src/util/misc/isTransparent.min.mjs +2 -0
  1396. package/dist/src/util/misc/isTransparent.min.mjs.map +1 -0
  1397. package/dist/src/util/misc/isTransparent.mjs +28 -0
  1398. package/dist/src/util/misc/isTransparent.mjs.map +1 -0
  1399. package/dist/src/util/misc/matrix.d.ts +170 -0
  1400. package/dist/src/util/misc/matrix.d.ts.map +1 -0
  1401. package/dist/src/util/misc/matrix.min.mjs +2 -0
  1402. package/dist/src/util/misc/matrix.min.mjs.map +1 -0
  1403. package/dist/src/util/misc/matrix.mjs +249 -0
  1404. package/dist/src/util/misc/matrix.mjs.map +1 -0
  1405. package/dist/src/util/misc/mergeClipPaths.d.ts +22 -0
  1406. package/dist/src/util/misc/mergeClipPaths.d.ts.map +1 -0
  1407. package/dist/src/util/misc/mergeClipPaths.min.mjs +2 -0
  1408. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +1 -0
  1409. package/dist/src/util/misc/mergeClipPaths.mjs +46 -0
  1410. package/dist/src/util/misc/mergeClipPaths.mjs.map +1 -0
  1411. package/dist/src/util/misc/objectEnlive.d.ts +45 -0
  1412. package/dist/src/util/misc/objectEnlive.d.ts.map +1 -0
  1413. package/dist/src/util/misc/objectEnlive.min.mjs +2 -0
  1414. package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -0
  1415. package/dist/src/util/misc/objectEnlive.mjs +145 -0
  1416. package/dist/src/util/misc/objectEnlive.mjs.map +1 -0
  1417. package/dist/src/util/misc/objectTransforms.d.ts +62 -0
  1418. package/dist/src/util/misc/objectTransforms.d.ts.map +1 -0
  1419. package/dist/src/util/misc/objectTransforms.min.mjs +2 -0
  1420. package/dist/src/util/misc/objectTransforms.min.mjs.map +1 -0
  1421. package/dist/src/util/misc/objectTransforms.mjs +105 -0
  1422. package/dist/src/util/misc/objectTransforms.mjs.map +1 -0
  1423. package/dist/src/util/misc/pick.d.ts +9 -0
  1424. package/dist/src/util/misc/pick.d.ts.map +1 -0
  1425. package/dist/src/util/misc/pick.min.mjs +2 -0
  1426. package/dist/src/util/misc/pick.min.mjs.map +1 -0
  1427. package/dist/src/util/misc/pick.mjs +26 -0
  1428. package/dist/src/util/misc/pick.mjs.map +1 -0
  1429. package/dist/src/util/misc/planeChange.d.ts +64 -0
  1430. package/dist/src/util/misc/planeChange.d.ts.map +1 -0
  1431. package/dist/src/util/misc/planeChange.min.mjs +2 -0
  1432. package/dist/src/util/misc/planeChange.min.mjs.map +1 -0
  1433. package/dist/src/util/misc/planeChange.mjs +86 -0
  1434. package/dist/src/util/misc/planeChange.mjs.map +1 -0
  1435. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  1436. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +1 -0
  1437. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +2 -0
  1438. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +1 -0
  1439. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +111 -0
  1440. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +1 -0
  1441. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +90 -0
  1442. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +1 -0
  1443. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +2 -0
  1444. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +1 -0
  1445. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +230 -0
  1446. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +1 -0
  1447. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +27 -0
  1448. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +1 -0
  1449. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +2 -0
  1450. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +1 -0
  1451. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +44 -0
  1452. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +1 -0
  1453. package/dist/src/util/misc/projectStroke/index.d.ts +12 -0
  1454. package/dist/src/util/misc/projectStroke/index.d.ts.map +1 -0
  1455. package/dist/src/util/misc/projectStroke/index.min.mjs +2 -0
  1456. package/dist/src/util/misc/projectStroke/index.min.mjs.map +1 -0
  1457. package/dist/src/util/misc/projectStroke/index.mjs +60 -0
  1458. package/dist/src/util/misc/projectStroke/index.mjs.map +1 -0
  1459. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  1460. package/dist/src/util/misc/projectStroke/types.d.ts.map +1 -0
  1461. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  1462. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +1 -0
  1463. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +2 -0
  1464. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +1 -0
  1465. package/dist/src/util/misc/radiansDegreesConversion.mjs +18 -0
  1466. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +1 -0
  1467. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  1468. package/dist/src/util/misc/resolveOrigin.d.ts.map +1 -0
  1469. package/dist/src/util/misc/resolveOrigin.min.mjs +2 -0
  1470. package/dist/src/util/misc/resolveOrigin.min.mjs.map +1 -0
  1471. package/dist/src/util/misc/resolveOrigin.mjs +18 -0
  1472. package/dist/src/util/misc/resolveOrigin.mjs.map +1 -0
  1473. package/dist/src/util/misc/sin.d.ts +10 -0
  1474. package/dist/src/util/misc/sin.d.ts.map +1 -0
  1475. package/dist/src/util/misc/sin.min.mjs +2 -0
  1476. package/dist/src/util/misc/sin.min.mjs.map +1 -0
  1477. package/dist/src/util/misc/sin.mjs +28 -0
  1478. package/dist/src/util/misc/sin.mjs.map +1 -0
  1479. package/dist/src/util/misc/svgExport.d.ts +8 -0
  1480. package/dist/src/util/misc/svgExport.d.ts.map +1 -0
  1481. package/dist/src/util/misc/svgExport.min.mjs +2 -0
  1482. package/dist/src/util/misc/svgExport.min.mjs.map +1 -0
  1483. package/dist/src/util/misc/svgExport.mjs +12 -0
  1484. package/dist/src/util/misc/svgExport.mjs.map +1 -0
  1485. package/dist/src/util/misc/svgParsing.d.ts +40 -0
  1486. package/dist/src/util/misc/svgParsing.d.ts.map +1 -0
  1487. package/dist/src/util/misc/svgParsing.min.mjs +2 -0
  1488. package/dist/src/util/misc/svgParsing.min.mjs.map +1 -0
  1489. package/dist/src/util/misc/svgParsing.mjs +128 -0
  1490. package/dist/src/util/misc/svgParsing.mjs.map +1 -0
  1491. package/dist/src/util/misc/textStyles.d.ts +32 -0
  1492. package/dist/src/util/misc/textStyles.d.ts.map +1 -0
  1493. package/dist/src/util/misc/textStyles.min.mjs +2 -0
  1494. package/dist/src/util/misc/textStyles.min.mjs.map +1 -0
  1495. package/dist/src/util/misc/textStyles.mjs +107 -0
  1496. package/dist/src/util/misc/textStyles.mjs.map +1 -0
  1497. package/dist/src/util/misc/toFixed.d.ts +8 -0
  1498. package/dist/src/util/misc/toFixed.d.ts.map +1 -0
  1499. package/dist/src/util/misc/toFixed.min.mjs +2 -0
  1500. package/dist/src/util/misc/toFixed.min.mjs.map +1 -0
  1501. package/dist/src/util/misc/toFixed.mjs +10 -0
  1502. package/dist/src/util/misc/toFixed.mjs.map +1 -0
  1503. package/dist/src/util/misc/vectors.d.ts +72 -0
  1504. package/dist/src/util/misc/vectors.d.ts.map +1 -0
  1505. package/dist/src/util/misc/vectors.min.mjs +2 -0
  1506. package/dist/src/util/misc/vectors.min.mjs.map +1 -0
  1507. package/dist/src/util/misc/vectors.mjs +94 -0
  1508. package/dist/src/util/misc/vectors.mjs.map +1 -0
  1509. package/dist/src/util/path/index.d.ts +95 -0
  1510. package/dist/src/util/path/index.d.ts.map +1 -0
  1511. package/dist/src/util/path/index.min.mjs +2 -0
  1512. package/dist/src/util/path/index.min.mjs.map +1 -0
  1513. package/dist/src/util/path/index.mjs +826 -0
  1514. package/dist/src/util/path/index.mjs.map +1 -0
  1515. package/dist/src/util/path/regex.d.ts +3 -0
  1516. package/dist/src/util/path/regex.d.ts.map +1 -0
  1517. package/dist/src/util/path/regex.min.mjs +2 -0
  1518. package/dist/src/util/path/regex.min.mjs.map +1 -0
  1519. package/dist/src/util/path/regex.mjs +49 -0
  1520. package/dist/src/util/path/regex.mjs.map +1 -0
  1521. package/dist/src/util/path/typechecks.d.ts +24 -0
  1522. package/dist/src/util/path/typechecks.d.ts.map +1 -0
  1523. package/dist/src/util/path/typedefs.d.ts +222 -0
  1524. package/dist/src/util/path/typedefs.d.ts.map +1 -0
  1525. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  1526. package/dist/src/util/transform_matrix_removal.d.ts.map +1 -0
  1527. package/dist/src/util/transform_matrix_removal.min.mjs +2 -0
  1528. package/dist/src/util/transform_matrix_removal.min.mjs.map +1 -0
  1529. package/dist/src/util/transform_matrix_removal.mjs +55 -0
  1530. package/dist/src/util/transform_matrix_removal.mjs.map +1 -0
  1531. package/dist/src/util/typeAssertions.d.ts +13 -0
  1532. package/dist/src/util/typeAssertions.d.ts.map +1 -0
  1533. package/dist/src/util/typeAssertions.min.mjs +2 -0
  1534. package/dist/src/util/typeAssertions.min.mjs.map +1 -0
  1535. package/dist/src/util/typeAssertions.mjs +21 -0
  1536. package/dist/src/util/typeAssertions.mjs.map +1 -0
  1537. package/dist-extensions/aligning_guidelines/constant.mjs +11 -0
  1538. package/dist-extensions/aligning_guidelines/constant.mjs.map +1 -0
  1539. package/dist-extensions/aligning_guidelines/index.mjs +130 -0
  1540. package/dist-extensions/aligning_guidelines/index.mjs.map +1 -0
  1541. package/dist-extensions/aligning_guidelines/util/basic.mjs +11 -0
  1542. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +1 -0
  1543. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +193 -0
  1544. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +1 -0
  1545. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +102 -0
  1546. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +1 -0
  1547. package/dist-extensions/aligning_guidelines/util/draw.mjs +75 -0
  1548. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +1 -0
  1549. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +42 -0
  1550. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +1 -0
  1551. package/dist-extensions/data_updaters/gradient/index.mjs +54 -0
  1552. package/dist-extensions/data_updaters/gradient/index.mjs.map +1 -0
  1553. package/dist-extensions/data_updaters/origins/index.mjs +51 -0
  1554. package/dist-extensions/data_updaters/origins/index.mjs.map +1 -0
  1555. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +3 -0
  1556. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +1 -0
  1557. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +5 -0
  1558. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +1 -0
  1559. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +33 -0
  1560. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
  1561. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +4 -0
  1562. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
  1563. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
  1564. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
  1565. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
  1566. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
  1567. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +6 -0
  1568. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
  1569. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
  1570. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
  1571. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +11 -0
  1572. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +1 -0
  1573. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +21 -0
  1574. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +1 -0
  1575. package/dist-extensions/extensions/index.d.ts +4 -0
  1576. package/dist-extensions/extensions/index.d.ts.map +1 -0
  1577. package/dist-extensions/fabric-extensions.min.js +2 -0
  1578. package/dist-extensions/fabric-extensions.min.js.map +1 -0
  1579. package/dist-extensions/fabric.d.ts +115 -0
  1580. package/dist-extensions/fabric.d.ts.map +1 -0
  1581. package/dist-extensions/index.d.ts +2 -0
  1582. package/dist-extensions/index.d.ts.map +1 -0
  1583. package/dist-extensions/index.mjs +4 -0
  1584. package/dist-extensions/index.mjs.map +1 -0
  1585. package/dist-extensions/src/ClassRegistry.d.ts +14 -0
  1586. package/dist-extensions/src/ClassRegistry.d.ts.map +1 -0
  1587. package/dist-extensions/src/Collection.d.ts +141 -0
  1588. package/dist-extensions/src/Collection.d.ts.map +1 -0
  1589. package/dist-extensions/src/CommonMethods.d.ts +32 -0
  1590. package/dist-extensions/src/CommonMethods.d.ts.map +1 -0
  1591. package/dist-extensions/src/EventTypeDefs.d.ts +270 -0
  1592. package/dist-extensions/src/EventTypeDefs.d.ts.map +1 -0
  1593. package/dist-extensions/src/Intersection.d.ts +112 -0
  1594. package/dist-extensions/src/Intersection.d.ts.map +1 -0
  1595. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +22 -0
  1596. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +1 -0
  1597. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +56 -0
  1598. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +1 -0
  1599. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +13 -0
  1600. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +1 -0
  1601. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +14 -0
  1602. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +1 -0
  1603. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +14 -0
  1604. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +1 -0
  1605. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +30 -0
  1606. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +1 -0
  1607. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +10 -0
  1608. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +1 -0
  1609. package/dist-extensions/src/LayoutManager/constants.d.ts +7 -0
  1610. package/dist-extensions/src/LayoutManager/constants.d.ts.map +1 -0
  1611. package/dist-extensions/src/LayoutManager/index.d.ts +7 -0
  1612. package/dist-extensions/src/LayoutManager/index.d.ts.map +1 -0
  1613. package/dist-extensions/src/LayoutManager/types.d.ts +106 -0
  1614. package/dist-extensions/src/LayoutManager/types.d.ts.map +1 -0
  1615. package/dist-extensions/src/Observable.d.ts +68 -0
  1616. package/dist-extensions/src/Observable.d.ts.map +1 -0
  1617. package/dist-extensions/src/Pattern/Pattern.d.ts +95 -0
  1618. package/dist-extensions/src/Pattern/Pattern.d.ts.map +1 -0
  1619. package/dist-extensions/src/Pattern/index.d.ts +3 -0
  1620. package/dist-extensions/src/Pattern/index.d.ts.map +1 -0
  1621. package/dist-extensions/src/Pattern/types.d.ts +12 -0
  1622. package/dist-extensions/src/Pattern/types.d.ts.map +1 -0
  1623. package/dist-extensions/src/Point.d.ts +219 -0
  1624. package/dist-extensions/src/Point.d.ts.map +1 -0
  1625. package/dist-extensions/src/Shadow.d.ts +89 -0
  1626. package/dist-extensions/src/Shadow.d.ts.map +1 -0
  1627. package/dist-extensions/src/brushes/BaseBrush.d.ts +94 -0
  1628. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +1 -0
  1629. package/dist-extensions/src/brushes/CircleBrush.d.ts +43 -0
  1630. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +1 -0
  1631. package/dist-extensions/src/brushes/PatternBrush.d.ts +23 -0
  1632. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +1 -0
  1633. package/dist-extensions/src/brushes/PencilBrush.d.ts +92 -0
  1634. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +1 -0
  1635. package/dist-extensions/src/brushes/SprayBrush.d.ts +68 -0
  1636. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +1 -0
  1637. package/dist-extensions/src/brushes/typedefs.d.ts +18 -0
  1638. package/dist-extensions/src/brushes/typedefs.d.ts.map +1 -0
  1639. package/dist-extensions/src/cache.d.ts +47 -0
  1640. package/dist-extensions/src/cache.d.ts.map +1 -0
  1641. package/dist-extensions/src/canvas/Canvas.d.ts +334 -0
  1642. package/dist-extensions/src/canvas/Canvas.d.ts.map +1 -0
  1643. package/dist-extensions/src/canvas/CanvasOptions.d.ts +210 -0
  1644. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +1 -0
  1645. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +30 -0
  1646. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +1 -0
  1647. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  1648. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +1 -0
  1649. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +23 -0
  1650. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +1 -0
  1651. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +544 -0
  1652. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -0
  1653. package/dist-extensions/src/canvas/StaticCanvas.d.ts +596 -0
  1654. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -0
  1655. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +142 -0
  1656. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +1 -0
  1657. package/dist-extensions/src/canvas/TextEditingManager.d.ts +21 -0
  1658. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +1 -0
  1659. package/dist-extensions/src/color/Color.d.ts +146 -0
  1660. package/dist-extensions/src/color/Color.d.ts.map +1 -0
  1661. package/dist-extensions/src/color/color_map.d.ts +155 -0
  1662. package/dist-extensions/src/color/color_map.d.ts.map +1 -0
  1663. package/dist-extensions/src/color/constants.d.ts +111 -0
  1664. package/dist-extensions/src/color/constants.d.ts.map +1 -0
  1665. package/dist-extensions/src/color/typedefs.d.ts +16 -0
  1666. package/dist-extensions/src/color/typedefs.d.ts.map +1 -0
  1667. package/dist-extensions/src/color/util.d.ts +27 -0
  1668. package/dist-extensions/src/color/util.d.ts.map +1 -0
  1669. package/dist-extensions/src/config.d.ts +113 -0
  1670. package/dist-extensions/src/config.d.ts.map +1 -0
  1671. package/dist-extensions/src/constants.d.ts +36 -0
  1672. package/dist-extensions/src/constants.d.ts.map +1 -0
  1673. package/dist-extensions/src/controls/Control.d.ts +229 -0
  1674. package/dist-extensions/src/controls/Control.d.ts.map +1 -0
  1675. package/dist-extensions/src/controls/changeHeight.d.ts +13 -0
  1676. package/dist-extensions/src/controls/changeHeight.d.ts.map +1 -0
  1677. package/dist-extensions/src/controls/changeWidth.d.ts +13 -0
  1678. package/dist-extensions/src/controls/changeWidth.d.ts.map +1 -0
  1679. package/dist-extensions/src/controls/commonControls.d.ts +26 -0
  1680. package/dist-extensions/src/controls/commonControls.d.ts.map +1 -0
  1681. package/dist-extensions/src/controls/controlRendering.d.ts +29 -0
  1682. package/dist-extensions/src/controls/controlRendering.d.ts.map +1 -0
  1683. package/dist-extensions/src/controls/drag.d.ts +12 -0
  1684. package/dist-extensions/src/controls/drag.d.ts.map +1 -0
  1685. package/dist-extensions/src/controls/fireEvent.d.ts +3 -0
  1686. package/dist-extensions/src/controls/fireEvent.d.ts.map +1 -0
  1687. package/dist-extensions/src/controls/index.d.ts +14 -0
  1688. package/dist-extensions/src/controls/index.d.ts.map +1 -0
  1689. package/dist-extensions/src/controls/pathControl.d.ts +12 -0
  1690. package/dist-extensions/src/controls/pathControl.d.ts.map +1 -0
  1691. package/dist-extensions/src/controls/polyControl.d.ts +30 -0
  1692. package/dist-extensions/src/controls/polyControl.d.ts.map +1 -0
  1693. package/dist-extensions/src/controls/rotate.d.ts +12 -0
  1694. package/dist-extensions/src/controls/rotate.d.ts.map +1 -0
  1695. package/dist-extensions/src/controls/scale.d.ts +47 -0
  1696. package/dist-extensions/src/controls/scale.d.ts.map +1 -0
  1697. package/dist-extensions/src/controls/scaleSkew.d.ts +39 -0
  1698. package/dist-extensions/src/controls/scaleSkew.d.ts.map +1 -0
  1699. package/dist-extensions/src/controls/skew.d.ts +33 -0
  1700. package/dist-extensions/src/controls/skew.d.ts.map +1 -0
  1701. package/dist-extensions/src/controls/util.d.ts +42 -0
  1702. package/dist-extensions/src/controls/util.d.ts.map +1 -0
  1703. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +10 -0
  1704. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +1 -0
  1705. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  1706. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +1 -0
  1707. package/dist-extensions/src/env/browser.d.ts +3 -0
  1708. package/dist-extensions/src/env/browser.d.ts.map +1 -0
  1709. package/dist-extensions/src/env/index.d.ts +34 -0
  1710. package/dist-extensions/src/env/index.d.ts.map +1 -0
  1711. package/dist-extensions/src/env/types.d.ts +16 -0
  1712. package/dist-extensions/src/env/types.d.ts.map +1 -0
  1713. package/dist-extensions/src/filters/BaseFilter.d.ts +153 -0
  1714. package/dist-extensions/src/filters/BaseFilter.d.ts.map +1 -0
  1715. package/dist-extensions/src/filters/BlendColor.d.ts +65 -0
  1716. package/dist-extensions/src/filters/BlendColor.d.ts.map +1 -0
  1717. package/dist-extensions/src/filters/BlendImage.d.ts +97 -0
  1718. package/dist-extensions/src/filters/BlendImage.d.ts.map +1 -0
  1719. package/dist-extensions/src/filters/Blur.d.ts +49 -0
  1720. package/dist-extensions/src/filters/Blur.d.ts.map +1 -0
  1721. package/dist-extensions/src/filters/Brightness.d.ts +45 -0
  1722. package/dist-extensions/src/filters/Brightness.d.ts.map +1 -0
  1723. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  1724. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +1 -0
  1725. package/dist-extensions/src/filters/ColorMatrix.d.ts +62 -0
  1726. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +1 -0
  1727. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +15 -0
  1728. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +1 -0
  1729. package/dist-extensions/src/filters/Composed.d.ts +51 -0
  1730. package/dist-extensions/src/filters/Composed.d.ts.map +1 -0
  1731. package/dist-extensions/src/filters/Contrast.d.ts +44 -0
  1732. package/dist-extensions/src/filters/Contrast.d.ts.map +1 -0
  1733. package/dist-extensions/src/filters/Convolute.d.ts +81 -0
  1734. package/dist-extensions/src/filters/Convolute.d.ts.map +1 -0
  1735. package/dist-extensions/src/filters/FilterBackend.d.ts +15 -0
  1736. package/dist-extensions/src/filters/FilterBackend.d.ts.map +1 -0
  1737. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +7 -0
  1738. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +1 -0
  1739. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  1740. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +1 -0
  1741. package/dist-extensions/src/filters/Gamma.d.ts +57 -0
  1742. package/dist-extensions/src/filters/Gamma.d.ts.map +1 -0
  1743. package/dist-extensions/src/filters/Grayscale.d.ts +44 -0
  1744. package/dist-extensions/src/filters/Grayscale.d.ts.map +1 -0
  1745. package/dist-extensions/src/filters/HueRotation.d.ts +34 -0
  1746. package/dist-extensions/src/filters/HueRotation.d.ts.map +1 -0
  1747. package/dist-extensions/src/filters/Invert.d.ts +51 -0
  1748. package/dist-extensions/src/filters/Invert.d.ts.map +1 -0
  1749. package/dist-extensions/src/filters/Noise.d.ts +43 -0
  1750. package/dist-extensions/src/filters/Noise.d.ts.map +1 -0
  1751. package/dist-extensions/src/filters/Pixelate.d.ts +41 -0
  1752. package/dist-extensions/src/filters/Pixelate.d.ts.map +1 -0
  1753. package/dist-extensions/src/filters/RemoveColor.d.ts +51 -0
  1754. package/dist-extensions/src/filters/RemoveColor.d.ts.map +1 -0
  1755. package/dist-extensions/src/filters/Resize.d.ts +134 -0
  1756. package/dist-extensions/src/filters/Resize.d.ts.map +1 -0
  1757. package/dist-extensions/src/filters/Saturation.d.ts +45 -0
  1758. package/dist-extensions/src/filters/Saturation.d.ts.map +1 -0
  1759. package/dist-extensions/src/filters/Vibrance.d.ts +45 -0
  1760. package/dist-extensions/src/filters/Vibrance.d.ts.map +1 -0
  1761. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +131 -0
  1762. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +1 -0
  1763. package/dist-extensions/src/filters/filters.d.ts +23 -0
  1764. package/dist-extensions/src/filters/filters.d.ts.map +1 -0
  1765. package/dist-extensions/src/filters/index.d.ts +7 -0
  1766. package/dist-extensions/src/filters/index.d.ts.map +1 -0
  1767. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +4 -0
  1768. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +1 -0
  1769. package/dist-extensions/src/filters/shaders/blendColor.d.ts +13 -0
  1770. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +1 -0
  1771. package/dist-extensions/src/filters/shaders/blendImage.d.ts +4 -0
  1772. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +1 -0
  1773. package/dist-extensions/src/filters/shaders/blur.d.ts +2 -0
  1774. package/dist-extensions/src/filters/shaders/blur.d.ts.map +1 -0
  1775. package/dist-extensions/src/filters/shaders/brightness.d.ts +2 -0
  1776. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +1 -0
  1777. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +2 -0
  1778. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +1 -0
  1779. package/dist-extensions/src/filters/shaders/constrast.d.ts +2 -0
  1780. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +1 -0
  1781. package/dist-extensions/src/filters/shaders/convolute.d.ts +11 -0
  1782. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +1 -0
  1783. package/dist-extensions/src/filters/shaders/gamma.d.ts +2 -0
  1784. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +1 -0
  1785. package/dist-extensions/src/filters/shaders/grayscale.d.ts +3 -0
  1786. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +1 -0
  1787. package/dist-extensions/src/filters/shaders/invert.d.ts +2 -0
  1788. package/dist-extensions/src/filters/shaders/invert.d.ts.map +1 -0
  1789. package/dist-extensions/src/filters/shaders/noise.d.ts +2 -0
  1790. package/dist-extensions/src/filters/shaders/noise.d.ts.map +1 -0
  1791. package/dist-extensions/src/filters/shaders/pixelate.d.ts +2 -0
  1792. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +1 -0
  1793. package/dist-extensions/src/filters/shaders/removeColor.d.ts +2 -0
  1794. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +1 -0
  1795. package/dist-extensions/src/filters/shaders/saturation.d.ts +2 -0
  1796. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +1 -0
  1797. package/dist-extensions/src/filters/shaders/vibrance.d.ts +2 -0
  1798. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +1 -0
  1799. package/dist-extensions/src/filters/typedefs.d.ts +70 -0
  1800. package/dist-extensions/src/filters/typedefs.d.ts.map +1 -0
  1801. package/dist-extensions/src/filters/utils.d.ts +10 -0
  1802. package/dist-extensions/src/filters/utils.d.ts.map +1 -0
  1803. package/dist-extensions/src/gradient/Gradient.d.ts +142 -0
  1804. package/dist-extensions/src/gradient/Gradient.d.ts.map +1 -0
  1805. package/dist-extensions/src/gradient/constants.d.ts +15 -0
  1806. package/dist-extensions/src/gradient/constants.d.ts.map +1 -0
  1807. package/dist-extensions/src/gradient/index.d.ts +3 -0
  1808. package/dist-extensions/src/gradient/index.d.ts.map +1 -0
  1809. package/dist-extensions/src/gradient/parser/misc.d.ts +4 -0
  1810. package/dist-extensions/src/gradient/parser/misc.d.ts.map +1 -0
  1811. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +3 -0
  1812. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +1 -0
  1813. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +17 -0
  1814. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +1 -0
  1815. package/dist-extensions/src/gradient/typedefs.d.ts +93 -0
  1816. package/dist-extensions/src/gradient/typedefs.d.ts.map +1 -0
  1817. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +13 -0
  1818. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +1 -0
  1819. package/dist-extensions/src/parser/attributes.d.ts +6 -0
  1820. package/dist-extensions/src/parser/attributes.d.ts.map +1 -0
  1821. package/dist-extensions/src/parser/constants.d.ts +42 -0
  1822. package/dist-extensions/src/parser/constants.d.ts.map +1 -0
  1823. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +2 -0
  1824. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +1 -0
  1825. package/dist-extensions/src/parser/elementMatchesRule.d.ts +5 -0
  1826. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +1 -0
  1827. package/dist-extensions/src/parser/elements_parser.d.ts +33 -0
  1828. package/dist-extensions/src/parser/elements_parser.d.ts.map +1 -0
  1829. package/dist-extensions/src/parser/getCSSRules.d.ts +8 -0
  1830. package/dist-extensions/src/parser/getCSSRules.d.ts.map +1 -0
  1831. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +6 -0
  1832. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +1 -0
  1833. package/dist-extensions/src/parser/getGradientDefs.d.ts +7 -0
  1834. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +1 -0
  1835. package/dist-extensions/src/parser/getMultipleNodes.d.ts +2 -0
  1836. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +1 -0
  1837. package/dist-extensions/src/parser/getSvgRegex.d.ts +2 -0
  1838. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +1 -0
  1839. package/dist-extensions/src/parser/getTagName.d.ts +2 -0
  1840. package/dist-extensions/src/parser/getTagName.d.ts.map +1 -0
  1841. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +2 -0
  1842. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +1 -0
  1843. package/dist-extensions/src/parser/loadSVGFromString.d.ts +17 -0
  1844. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +1 -0
  1845. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +18 -0
  1846. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +1 -0
  1847. package/dist-extensions/src/parser/normalizeAttr.d.ts +3 -0
  1848. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +1 -0
  1849. package/dist-extensions/src/parser/normalizeValue.d.ts +2 -0
  1850. package/dist-extensions/src/parser/normalizeValue.d.ts.map +1 -0
  1851. package/dist-extensions/src/parser/parseAttributes.d.ts +10 -0
  1852. package/dist-extensions/src/parser/parseAttributes.d.ts.map +1 -0
  1853. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +7 -0
  1854. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +1 -0
  1855. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +8 -0
  1856. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +1 -0
  1857. package/dist-extensions/src/parser/parseSVGDocument.d.ts +19 -0
  1858. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +1 -0
  1859. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +7 -0
  1860. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +1 -0
  1861. package/dist-extensions/src/parser/parseStyleObject.d.ts +8 -0
  1862. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +1 -0
  1863. package/dist-extensions/src/parser/parseStyleString.d.ts +8 -0
  1864. package/dist-extensions/src/parser/parseStyleString.d.ts.map +1 -0
  1865. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +8 -0
  1866. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +1 -0
  1867. package/dist-extensions/src/parser/parseUseDirectives.d.ts +2 -0
  1868. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +1 -0
  1869. package/dist-extensions/src/parser/percent.d.ts +9 -0
  1870. package/dist-extensions/src/parser/percent.d.ts.map +1 -0
  1871. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  1872. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +1 -0
  1873. package/dist-extensions/src/parser/selectorMatches.d.ts +2 -0
  1874. package/dist-extensions/src/parser/selectorMatches.d.ts.map +1 -0
  1875. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +6 -0
  1876. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +1 -0
  1877. package/dist-extensions/src/parser/typedefs.d.ts +10 -0
  1878. package/dist-extensions/src/parser/typedefs.d.ts.map +1 -0
  1879. package/dist-extensions/src/shapes/ActiveSelection.d.ts +105 -0
  1880. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +1 -0
  1881. package/dist-extensions/src/shapes/Circle.d.ts +107 -0
  1882. package/dist-extensions/src/shapes/Circle.d.ts.map +1 -0
  1883. package/dist-extensions/src/shapes/Ellipse.d.ts +82 -0
  1884. package/dist-extensions/src/shapes/Ellipse.d.ts.map +1 -0
  1885. package/dist-extensions/src/shapes/Group.d.ts +301 -0
  1886. package/dist-extensions/src/shapes/Group.d.ts.map +1 -0
  1887. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  1888. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -0
  1889. package/dist-extensions/src/shapes/IText/IText.d.ts +347 -0
  1890. package/dist-extensions/src/shapes/IText/IText.d.ts.map +1 -0
  1891. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +321 -0
  1892. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
  1893. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +63 -0
  1894. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
  1895. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +197 -0
  1896. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -0
  1897. package/dist-extensions/src/shapes/IText/constants.d.ts +13 -0
  1898. package/dist-extensions/src/shapes/IText/constants.d.ts.map +1 -0
  1899. package/dist-extensions/src/shapes/Image.d.ts +296 -0
  1900. package/dist-extensions/src/shapes/Image.d.ts.map +1 -0
  1901. package/dist-extensions/src/shapes/Line.d.ts +118 -0
  1902. package/dist-extensions/src/shapes/Line.d.ts.map +1 -0
  1903. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +11 -0
  1904. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +1 -0
  1905. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +72 -0
  1906. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -0
  1907. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +317 -0
  1908. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +1 -0
  1909. package/dist-extensions/src/shapes/Object/Object.d.ts +716 -0
  1910. package/dist-extensions/src/shapes/Object/Object.d.ts.map +1 -0
  1911. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +338 -0
  1912. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +1 -0
  1913. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +8 -0
  1914. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +1 -0
  1915. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +92 -0
  1916. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +1 -0
  1917. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +37 -0
  1918. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +1 -0
  1919. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +63 -0
  1920. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +1 -0
  1921. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +62 -0
  1922. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
  1923. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +78 -0
  1924. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
  1925. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +43 -0
  1926. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
  1927. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +41 -0
  1928. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
  1929. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +32 -0
  1930. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
  1931. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +63 -0
  1932. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +1 -0
  1933. package/dist-extensions/src/shapes/Object/types/index.d.ts +6 -0
  1934. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +1 -0
  1935. package/dist-extensions/src/shapes/Path.d.ts +208 -0
  1936. package/dist-extensions/src/shapes/Path.d.ts.map +1 -0
  1937. package/dist-extensions/src/shapes/Polygon.d.ts +7 -0
  1938. package/dist-extensions/src/shapes/Polygon.d.ts.map +1 -0
  1939. package/dist-extensions/src/shapes/Polyline.d.ts +149 -0
  1940. package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -0
  1941. package/dist-extensions/src/shapes/Rect.d.ts +77 -0
  1942. package/dist-extensions/src/shapes/Rect.d.ts.map +1 -0
  1943. package/dist-extensions/src/shapes/Text/StyledText.d.ts +126 -0
  1944. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +1 -0
  1945. package/dist-extensions/src/shapes/Text/Text.d.ts +761 -0
  1946. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -0
  1947. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +40 -0
  1948. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
  1949. package/dist-extensions/src/shapes/Text/constants.d.ts +14 -0
  1950. package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -0
  1951. package/dist-extensions/src/shapes/Textbox.d.ts +233 -0
  1952. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -0
  1953. package/dist-extensions/src/shapes/Triangle.d.ts +27 -0
  1954. package/dist-extensions/src/shapes/Triangle.d.ts.map +1 -0
  1955. package/dist-extensions/src/text/browserLines.d.ts +42 -0
  1956. package/dist-extensions/src/text/browserLines.d.ts.map +1 -0
  1957. package/dist-extensions/src/text/ellipsis.d.ts +47 -0
  1958. package/dist-extensions/src/text/ellipsis.d.ts.map +1 -0
  1959. package/dist-extensions/src/text/hitTest.d.ts +82 -0
  1960. package/dist-extensions/src/text/hitTest.d.ts.map +1 -0
  1961. package/dist-extensions/src/text/layout.d.ts +66 -0
  1962. package/dist-extensions/src/text/layout.d.ts.map +1 -0
  1963. package/dist-extensions/src/text/measure.d.ts +131 -0
  1964. package/dist-extensions/src/text/measure.d.ts.map +1 -0
  1965. package/dist-extensions/src/text/overlayEditor.d.ts +113 -0
  1966. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -0
  1967. package/dist-extensions/src/text/unicode.d.ts +106 -0
  1968. package/dist-extensions/src/text/unicode.d.ts.map +1 -0
  1969. package/dist-extensions/src/typedefs.d.ts +99 -0
  1970. package/dist-extensions/src/typedefs.d.ts.map +1 -0
  1971. package/dist-extensions/src/util/animation/AnimationBase.d.ts +54 -0
  1972. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +1 -0
  1973. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  1974. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +1 -0
  1975. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +29 -0
  1976. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +1 -0
  1977. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +10 -0
  1978. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +1 -0
  1979. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +11 -0
  1980. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +1 -0
  1981. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +10 -0
  1982. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +1 -0
  1983. package/dist-extensions/src/util/animation/animate.d.ts +37 -0
  1984. package/dist-extensions/src/util/animation/animate.d.ts.map +1 -0
  1985. package/dist-extensions/src/util/animation/easing.d.ts +130 -0
  1986. package/dist-extensions/src/util/animation/easing.d.ts.map +1 -0
  1987. package/dist-extensions/src/util/animation/index.d.ts +3 -0
  1988. package/dist-extensions/src/util/animation/index.d.ts.map +1 -0
  1989. package/dist-extensions/src/util/animation/types.d.ts +87 -0
  1990. package/dist-extensions/src/util/animation/types.d.ts.map +1 -0
  1991. package/dist-extensions/src/util/applyMixins.d.ts +8 -0
  1992. package/dist-extensions/src/util/applyMixins.d.ts.map +1 -0
  1993. package/dist-extensions/src/util/dom_event.d.ts +6 -0
  1994. package/dist-extensions/src/util/dom_event.d.ts.map +1 -0
  1995. package/dist-extensions/src/util/dom_misc.d.ts +12 -0
  1996. package/dist-extensions/src/util/dom_misc.d.ts.map +1 -0
  1997. package/dist-extensions/src/util/index.d.ts +35 -0
  1998. package/dist-extensions/src/util/index.d.ts.map +1 -0
  1999. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +11 -0
  2000. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +1 -0
  2001. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  2002. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +1 -0
  2003. package/dist-extensions/src/util/internals/cloneStyles.d.ts +3 -0
  2004. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +1 -0
  2005. package/dist-extensions/src/util/internals/console.d.ts +8 -0
  2006. package/dist-extensions/src/util/internals/console.d.ts.map +1 -0
  2007. package/dist-extensions/src/util/internals/dom_style.d.ts +7 -0
  2008. package/dist-extensions/src/util/internals/dom_style.d.ts.map +1 -0
  2009. package/dist-extensions/src/util/internals/findRight.d.ts +2 -0
  2010. package/dist-extensions/src/util/internals/findRight.d.ts.map +1 -0
  2011. package/dist-extensions/src/util/internals/getRandomInt.d.ts +8 -0
  2012. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +1 -0
  2013. package/dist-extensions/src/util/internals/ifNaN.d.ts +8 -0
  2014. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +1 -0
  2015. package/dist-extensions/src/util/internals/removeFromArray.d.ts +9 -0
  2016. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +1 -0
  2017. package/dist-extensions/src/util/internals/uid.d.ts +2 -0
  2018. package/dist-extensions/src/util/internals/uid.d.ts.map +1 -0
  2019. package/dist-extensions/src/util/lang_string.d.ts +22 -0
  2020. package/dist-extensions/src/util/lang_string.d.ts.map +1 -0
  2021. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  2022. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +1 -0
  2023. package/dist-extensions/src/util/misc/capValue.d.ts +2 -0
  2024. package/dist-extensions/src/util/misc/capValue.d.ts.map +1 -0
  2025. package/dist-extensions/src/util/misc/cos.d.ts +10 -0
  2026. package/dist-extensions/src/util/misc/cos.d.ts.map +1 -0
  2027. package/dist-extensions/src/util/misc/dom.d.ts +35 -0
  2028. package/dist-extensions/src/util/misc/dom.d.ts.map +1 -0
  2029. package/dist-extensions/src/util/misc/findScaleTo.d.ts +20 -0
  2030. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +1 -0
  2031. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +10 -0
  2032. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +1 -0
  2033. package/dist-extensions/src/util/misc/isTransparent.d.ts +11 -0
  2034. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +1 -0
  2035. package/dist-extensions/src/util/misc/matrix.d.ts +170 -0
  2036. package/dist-extensions/src/util/misc/matrix.d.ts.map +1 -0
  2037. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +22 -0
  2038. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +1 -0
  2039. package/dist-extensions/src/util/misc/objectEnlive.d.ts +45 -0
  2040. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +1 -0
  2041. package/dist-extensions/src/util/misc/objectTransforms.d.ts +62 -0
  2042. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +1 -0
  2043. package/dist-extensions/src/util/misc/pick.d.ts +9 -0
  2044. package/dist-extensions/src/util/misc/pick.d.ts.map +1 -0
  2045. package/dist-extensions/src/util/misc/planeChange.d.ts +64 -0
  2046. package/dist-extensions/src/util/misc/planeChange.d.ts.map +1 -0
  2047. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  2048. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +1 -0
  2049. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +90 -0
  2050. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +1 -0
  2051. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +27 -0
  2052. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +1 -0
  2053. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +12 -0
  2054. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +1 -0
  2055. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +23 -0
  2056. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +1 -0
  2057. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  2058. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +1 -0
  2059. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +9 -0
  2060. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +1 -0
  2061. package/dist-extensions/src/util/misc/sin.d.ts +10 -0
  2062. package/dist-extensions/src/util/misc/sin.d.ts.map +1 -0
  2063. package/dist-extensions/src/util/misc/svgExport.d.ts +8 -0
  2064. package/dist-extensions/src/util/misc/svgExport.d.ts.map +1 -0
  2065. package/dist-extensions/src/util/misc/svgParsing.d.ts +40 -0
  2066. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +1 -0
  2067. package/dist-extensions/src/util/misc/textStyles.d.ts +32 -0
  2068. package/dist-extensions/src/util/misc/textStyles.d.ts.map +1 -0
  2069. package/dist-extensions/src/util/misc/toFixed.d.ts +8 -0
  2070. package/dist-extensions/src/util/misc/toFixed.d.ts.map +1 -0
  2071. package/dist-extensions/src/util/misc/vectors.d.ts +72 -0
  2072. package/dist-extensions/src/util/misc/vectors.d.ts.map +1 -0
  2073. package/dist-extensions/src/util/path/index.d.ts +95 -0
  2074. package/dist-extensions/src/util/path/index.d.ts.map +1 -0
  2075. package/dist-extensions/src/util/path/regex.d.ts +3 -0
  2076. package/dist-extensions/src/util/path/regex.d.ts.map +1 -0
  2077. package/dist-extensions/src/util/path/typedefs.d.ts +222 -0
  2078. package/dist-extensions/src/util/path/typedefs.d.ts.map +1 -0
  2079. package/dist-extensions/src/util/transform_matrix_removal.d.ts +14 -0
  2080. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +1 -0
  2081. package/dist-extensions/src/util/typeAssertions.d.ts +13 -0
  2082. package/dist-extensions/src/util/typeAssertions.d.ts.map +1 -0
  2083. package/docs/fabric-konva-gap-analysis.md +274 -0
  2084. package/docs/konva-text-behavior-spec.md +265 -0
  2085. package/docs/text-engine-design.md +698 -0
  2086. package/eslint.config.mjs +96 -0
  2087. package/examples/overlay-edit.html +417 -0
  2088. package/extensions/README.MD +27 -0
  2089. package/extensions/aligning_guidelines/README.MD +22 -0
  2090. package/extensions/aligning_guidelines/constant.ts +10 -0
  2091. package/extensions/aligning_guidelines/index.ts +166 -0
  2092. package/extensions/aligning_guidelines/typedefs.ts +36 -0
  2093. package/extensions/aligning_guidelines/util/basic.spec.ts +32 -0
  2094. package/extensions/aligning_guidelines/util/basic.ts +20 -0
  2095. package/extensions/aligning_guidelines/util/collect-line.ts +172 -0
  2096. package/extensions/aligning_guidelines/util/collect-point.ts +83 -0
  2097. package/extensions/aligning_guidelines/util/draw.ts +74 -0
  2098. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +45 -0
  2099. package/extensions/data_updaters/README.md +9 -0
  2100. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +75 -0
  2101. package/extensions/data_updaters/gradient/index.spec.ts +126 -0
  2102. package/extensions/data_updaters/gradient/index.ts +58 -0
  2103. package/extensions/data_updaters/origins/README.md +32 -0
  2104. package/extensions/data_updaters/origins/index.spec.ts +100 -0
  2105. package/extensions/data_updaters/origins/index.ts +71 -0
  2106. package/extensions/index.ts +14 -0
  2107. package/fabric.ts +182 -0
  2108. package/index.node.ts +49 -0
  2109. package/index.ts +1 -0
  2110. package/lib/aligning_guidelines.js +286 -0
  2111. package/lib/centering_guidelines.js +90 -0
  2112. package/lib/event.js +1963 -0
  2113. package/package.json +164 -0
  2114. package/playwright.config.ts +77 -0
  2115. package/playwright.setup.ts +87 -0
  2116. package/publish-next.js +15 -0
  2117. package/publish.js +17 -0
  2118. package/rollup.config.mjs +180 -0
  2119. package/scripts/bench-text.js +592 -0
  2120. package/scripts/build.mjs +49 -0
  2121. package/scripts/buildLock.mjs +115 -0
  2122. package/scripts/buildReporter.mjs +15 -0
  2123. package/scripts/buildStats.mjs +40 -0
  2124. package/scripts/dirname.mjs +14 -0
  2125. package/scripts/git.mjs +36 -0
  2126. package/scripts/index.mjs +201 -0
  2127. package/scripts/sandbox.mjs +149 -0
  2128. package/src/ClassRegistry.spec.ts +91 -0
  2129. package/src/ClassRegistry.ts +62 -0
  2130. package/src/Collection.spec.ts +463 -0
  2131. package/src/Collection.ts +355 -0
  2132. package/src/CommonMethods.ts +62 -0
  2133. package/src/EventTypeDefs.ts +351 -0
  2134. package/src/Intersection.spec.ts +753 -0
  2135. package/src/Intersection.ts +324 -0
  2136. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +189 -0
  2137. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +54 -0
  2138. package/src/LayoutManager/LayoutManager.spec.ts +866 -0
  2139. package/src/LayoutManager/LayoutManager.ts +358 -0
  2140. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +74 -0
  2141. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +21 -0
  2142. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +27 -0
  2143. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +109 -0
  2144. package/src/LayoutManager/LayoutStrategies/utils.ts +56 -0
  2145. package/src/LayoutManager/README.md +125 -0
  2146. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +71 -0
  2147. package/src/LayoutManager/constants.ts +6 -0
  2148. package/src/LayoutManager/index.ts +6 -0
  2149. package/src/LayoutManager/types.ts +149 -0
  2150. package/src/Observable.spec.ts +449 -0
  2151. package/src/Observable.ts +179 -0
  2152. package/src/Pattern/Pattern.spec.ts +190 -0
  2153. package/src/Pattern/Pattern.ts +216 -0
  2154. package/src/Pattern/index.ts +2 -0
  2155. package/src/Pattern/types.ts +20 -0
  2156. package/src/Point.spec.ts +573 -0
  2157. package/src/Point.ts +374 -0
  2158. package/src/Shadow.spec.ts +283 -0
  2159. package/src/Shadow.ts +236 -0
  2160. package/src/__snapshots__/Shadow.spec.ts.snap +27 -0
  2161. package/src/brushes/BaseBrush.spec.ts +17 -0
  2162. package/src/brushes/BaseBrush.ts +154 -0
  2163. package/src/brushes/CircleBrush.test.ts +13 -0
  2164. package/src/brushes/CircleBrush.ts +139 -0
  2165. package/src/brushes/PatternBrush.ts +70 -0
  2166. package/src/brushes/PencilBrush.spec.ts +275 -0
  2167. package/src/brushes/PencilBrush.ts +302 -0
  2168. package/src/brushes/SprayBrush.ts +207 -0
  2169. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +59 -0
  2170. package/src/brushes/typedefs.ts +18 -0
  2171. package/src/cache.spec.ts +67 -0
  2172. package/src/cache.ts +90 -0
  2173. package/src/canvas/Canvas-dispose.spec.ts +538 -0
  2174. package/src/canvas/Canvas-events.spec.ts +1735 -0
  2175. package/src/canvas/Canvas.spec.ts +2686 -0
  2176. package/src/canvas/Canvas.ts +1560 -0
  2177. package/src/canvas/CanvasOptions.ts +278 -0
  2178. package/src/canvas/DOMManagers/CanvasDOMManager.ts +129 -0
  2179. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +80 -0
  2180. package/src/canvas/DOMManagers/util.spec.ts +28 -0
  2181. package/src/canvas/DOMManagers/util.ts +85 -0
  2182. package/src/canvas/SelectableCanvas.spec.ts +504 -0
  2183. package/src/canvas/SelectableCanvas.ts +1459 -0
  2184. package/src/canvas/StaticCanvas.spec.ts +2385 -0
  2185. package/src/canvas/StaticCanvas.ts +1480 -0
  2186. package/src/canvas/StaticCanvasOptions.ts +187 -0
  2187. package/src/canvas/TextEditingManager.ts +68 -0
  2188. package/src/canvas/__tests__/SelectableCanvas.spec.ts +62 -0
  2189. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +743 -0
  2190. package/src/canvas/__tests__/eventData.test.ts +935 -0
  2191. package/src/canvas/canvas_gestures.mixin.ts +208 -0
  2192. package/src/color/Color.ts +333 -0
  2193. package/src/color/color.test.ts +329 -0
  2194. package/src/color/color_map.ts +154 -0
  2195. package/src/color/constants.ts +114 -0
  2196. package/src/color/typedefs.ts +18 -0
  2197. package/src/color/util.ts +93 -0
  2198. package/src/config.ts +158 -0
  2199. package/src/constants.ts +46 -0
  2200. package/src/controls/Control-cursor.spec.ts +65 -0
  2201. package/src/controls/Control-handlers.spec.ts +299 -0
  2202. package/src/controls/Control.spec.ts +70 -0
  2203. package/src/controls/Control.ts +382 -0
  2204. package/src/controls/changeHeight.ts +55 -0
  2205. package/src/controls/changeWidth.test.ts +147 -0
  2206. package/src/controls/changeWidth.ts +55 -0
  2207. package/src/controls/commonControls.ts +112 -0
  2208. package/src/controls/controlRendering.ts +136 -0
  2209. package/src/controls/drag.ts +32 -0
  2210. package/src/controls/fireEvent.ts +18 -0
  2211. package/src/controls/index.ts +23 -0
  2212. package/src/controls/pathControl.spec.ts +77 -0
  2213. package/src/controls/pathControl.ts +293 -0
  2214. package/src/controls/polyControl.spec.ts +51 -0
  2215. package/src/controls/polyControl.ts +131 -0
  2216. package/src/controls/rotate.ts +88 -0
  2217. package/src/controls/scale.test.ts +137 -0
  2218. package/src/controls/scale.ts +288 -0
  2219. package/src/controls/scaleSkew.ts +94 -0
  2220. package/src/controls/skew.ts +251 -0
  2221. package/src/controls/util.ts +162 -0
  2222. package/src/controls/wrapWithFireEvent.ts +34 -0
  2223. package/src/controls/wrapWithFixedAnchor.spec.ts +124 -0
  2224. package/src/controls/wrapWithFixedAnchor.ts +26 -0
  2225. package/src/env/browser.ts +21 -0
  2226. package/src/env/env.spec.ts +47 -0
  2227. package/src/env/index.ts +47 -0
  2228. package/src/env/node.ts +50 -0
  2229. package/src/env/types.ts +16 -0
  2230. package/src/filters/BaseFilter.spec.ts +16 -0
  2231. package/src/filters/BaseFilter.ts +416 -0
  2232. package/src/filters/BlendColor.ts +197 -0
  2233. package/src/filters/BlendImage.ts +220 -0
  2234. package/src/filters/Blur.ts +205 -0
  2235. package/src/filters/Boilerplate.ts +84 -0
  2236. package/src/filters/Brightness.ts +75 -0
  2237. package/src/filters/Canvas2dFilterBackend.ts +68 -0
  2238. package/src/filters/ColorMatrix.spec.ts +39 -0
  2239. package/src/filters/ColorMatrix.ts +141 -0
  2240. package/src/filters/ColorMatrixFilters.ts +84 -0
  2241. package/src/filters/Composed.ts +87 -0
  2242. package/src/filters/Contrast.ts +76 -0
  2243. package/src/filters/Convolute.ts +174 -0
  2244. package/src/filters/FilterBackend.ts +38 -0
  2245. package/src/filters/GLProbes/GLProbe.ts +7 -0
  2246. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  2247. package/src/filters/GLProbes/WebGLProbe.ts +49 -0
  2248. package/src/filters/Gamma.ts +119 -0
  2249. package/src/filters/Grayscale.ts +91 -0
  2250. package/src/filters/HueRotation.ts +95 -0
  2251. package/src/filters/Invert.ts +88 -0
  2252. package/src/filters/Noise.ts +76 -0
  2253. package/src/filters/Pixelate.ts +85 -0
  2254. package/src/filters/RemoveColor.ts +121 -0
  2255. package/src/filters/Resize.ts +545 -0
  2256. package/src/filters/Saturation.ts +80 -0
  2257. package/src/filters/Vibrance.ts +82 -0
  2258. package/src/filters/WebGLFilterBackend.spec.ts +50 -0
  2259. package/src/filters/WebGLFilterBackend.ts +416 -0
  2260. package/src/filters/filters.ts +30 -0
  2261. package/src/filters/index.ts +12 -0
  2262. package/src/filters/shaders/baseFilter.ts +17 -0
  2263. package/src/filters/shaders/blendColor.ts +33 -0
  2264. package/src/filters/shaders/blendImage.ts +44 -0
  2265. package/src/filters/shaders/blur.ts +30 -0
  2266. package/src/filters/shaders/brightness.ts +11 -0
  2267. package/src/filters/shaders/colorMatrix.ts +12 -0
  2268. package/src/filters/shaders/constrast.ts +11 -0
  2269. package/src/filters/shaders/convolute.ts +154 -0
  2270. package/src/filters/shaders/gamma.ts +15 -0
  2271. package/src/filters/shaders/grayscale.ts +36 -0
  2272. package/src/filters/shaders/invert.ts +19 -0
  2273. package/src/filters/shaders/noise.ts +16 -0
  2274. package/src/filters/shaders/pixelate.ts +19 -0
  2275. package/src/filters/shaders/removeColor.ts +13 -0
  2276. package/src/filters/shaders/saturation.ts +15 -0
  2277. package/src/filters/shaders/vibrance.ts +16 -0
  2278. package/src/filters/typedefs.ts +81 -0
  2279. package/src/filters/utils.ts +52 -0
  2280. package/src/gradient/Gradient.spec.ts +821 -0
  2281. package/src/gradient/Gradient.ts +404 -0
  2282. package/src/gradient/constants.ts +12 -0
  2283. package/src/gradient/index.ts +2 -0
  2284. package/src/gradient/parser/misc.ts +13 -0
  2285. package/src/gradient/parser/parseColorStops.ts +58 -0
  2286. package/src/gradient/parser/parseCoords.ts +76 -0
  2287. package/src/gradient/typedefs.ts +108 -0
  2288. package/src/mixins/eraser_brush.mixin.ts +869 -0
  2289. package/src/parkinglot/canvas_animation.mixin.ts +120 -0
  2290. package/src/parkinglot/straighten.ts +76 -0
  2291. package/src/parser/applyViewboxTransform.spec.ts +397 -0
  2292. package/src/parser/applyViewboxTransform.ts +174 -0
  2293. package/src/parser/attributes.ts +27 -0
  2294. package/src/parser/constants.spec.ts +36 -0
  2295. package/src/parser/constants.ts +88 -0
  2296. package/src/parser/doesSomeParentMatch.ts +21 -0
  2297. package/src/parser/elementMatchesRule.ts +19 -0
  2298. package/src/parser/elements_parser.ts +230 -0
  2299. package/src/parser/getCSSRules.spec.ts +51 -0
  2300. package/src/parser/getCSSRules.ts +68 -0
  2301. package/src/parser/getGlobalStylesForElement.ts +22 -0
  2302. package/src/parser/getGradientDefs.ts +33 -0
  2303. package/src/parser/getMultipleNodes.ts +19 -0
  2304. package/src/parser/getSvgRegex.ts +3 -0
  2305. package/src/parser/getTagName.ts +1 -0
  2306. package/src/parser/hasInvalidAncestor.ts +20 -0
  2307. package/src/parser/loadSVGFromString.test.ts +75 -0
  2308. package/src/parser/loadSVGFromString.ts +28 -0
  2309. package/src/parser/loadSVGFromURL.ts +42 -0
  2310. package/src/parser/normalizeAttr.ts +5 -0
  2311. package/src/parser/normalizeValue.ts +76 -0
  2312. package/src/parser/parseAttributes.ts +92 -0
  2313. package/src/parser/parseFontDeclaration.ts +43 -0
  2314. package/src/parser/parsePointsAttribute.ts +31 -0
  2315. package/src/parser/parseSVGDocument.ts +93 -0
  2316. package/src/parser/parseStyleAttribute.ts +26 -0
  2317. package/src/parser/parseStyleObject.ts +17 -0
  2318. package/src/parser/parseStyleString.ts +19 -0
  2319. package/src/parser/parseTransformAttribute.ts +92 -0
  2320. package/src/parser/parseUseDirectives.test.ts +115 -0
  2321. package/src/parser/parseUseDirectives.ts +91 -0
  2322. package/src/parser/parser.spec.ts +816 -0
  2323. package/src/parser/percent.ts +27 -0
  2324. package/src/parser/recursivelyParseGradientsXlink.ts +40 -0
  2325. package/src/parser/selectorMatches.ts +26 -0
  2326. package/src/parser/setStrokeFillOpacity.ts +41 -0
  2327. package/src/parser/typedefs.ts +15 -0
  2328. package/src/shapes/ActiveSelection.spec.ts +405 -0
  2329. package/src/shapes/ActiveSelection.ts +254 -0
  2330. package/src/shapes/Circle.spec.ts +307 -0
  2331. package/src/shapes/Circle.ts +257 -0
  2332. package/src/shapes/Ellipse.spec.ts +237 -0
  2333. package/src/shapes/Ellipse.ts +181 -0
  2334. package/src/shapes/Group.spec.ts +1805 -0
  2335. package/src/shapes/Group.ts +717 -0
  2336. package/src/shapes/IText/DraggableTextDelegate.ts +387 -0
  2337. package/src/shapes/IText/IText-click-behavior.spec.ts +443 -0
  2338. package/src/shapes/IText/IText.test.ts +1226 -0
  2339. package/src/shapes/IText/IText.ts +846 -0
  2340. package/src/shapes/IText/ITextBehavior.test.ts +251 -0
  2341. package/src/shapes/IText/ITextBehavior.ts +1177 -0
  2342. package/src/shapes/IText/ITextClickBehavior.ts +254 -0
  2343. package/src/shapes/IText/ITextKeyBehavior.test.ts +348 -0
  2344. package/src/shapes/IText/ITextKeyBehavior.ts +691 -0
  2345. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +50 -0
  2346. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +1110 -0
  2347. package/src/shapes/IText/constants.ts +65 -0
  2348. package/src/shapes/Image-filters.spec.ts +1904 -0
  2349. package/src/shapes/Image.spec.ts +1043 -0
  2350. package/src/shapes/Image.ts +846 -0
  2351. package/src/shapes/Line.spec.ts +208 -0
  2352. package/src/shapes/Line.ts +288 -0
  2353. package/src/shapes/Object/FabricObject.spec.ts +18 -0
  2354. package/src/shapes/Object/FabricObject.ts +33 -0
  2355. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +253 -0
  2356. package/src/shapes/Object/InteractiveObject.spec.ts +70 -0
  2357. package/src/shapes/Object/InteractiveObject.ts +727 -0
  2358. package/src/shapes/Object/Object-clip-path.spec.ts +197 -0
  2359. package/src/shapes/Object/Object-interactivity.spec.ts +833 -0
  2360. package/src/shapes/Object/Object.spec.ts +1873 -0
  2361. package/src/shapes/Object/Object.ts +1941 -0
  2362. package/src/shapes/Object/ObjectGeometry.spec.ts +1149 -0
  2363. package/src/shapes/Object/ObjectGeometry.ts +798 -0
  2364. package/src/shapes/Object/ObjectOrigin.spec.ts +469 -0
  2365. package/src/shapes/Object/ObjectSerialization.spec.ts +63 -0
  2366. package/src/shapes/Object/StackedObject.spec.ts +369 -0
  2367. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +75 -0
  2368. package/src/shapes/Object/defaultValues.ts +128 -0
  2369. package/src/shapes/Object/types/BaseProps.ts +104 -0
  2370. package/src/shapes/Object/types/BorderProps.ts +40 -0
  2371. package/src/shapes/Object/types/ControlProps.ts +70 -0
  2372. package/src/shapes/Object/types/FabricObjectProps.ts +73 -0
  2373. package/src/shapes/Object/types/FillStrokeProps.ts +88 -0
  2374. package/src/shapes/Object/types/LockInteractionProps.ts +49 -0
  2375. package/src/shapes/Object/types/ObjectProps.ts +51 -0
  2376. package/src/shapes/Object/types/ObjectTransformProps.ts +35 -0
  2377. package/src/shapes/Object/types/SerializedObjectProps.ts +70 -0
  2378. package/src/shapes/Object/types/index.ts +7 -0
  2379. package/src/shapes/Path.spec.ts +659 -0
  2380. package/src/shapes/Path.ts +414 -0
  2381. package/src/shapes/Polygon.spec.ts +566 -0
  2382. package/src/shapes/Polygon.ts +15 -0
  2383. package/src/shapes/Polyline.spec.ts +404 -0
  2384. package/src/shapes/Polyline.ts +429 -0
  2385. package/src/shapes/Rect.spec.ts +270 -0
  2386. package/src/shapes/Rect.ts +221 -0
  2387. package/src/shapes/Text/StyledText.spec.ts +61 -0
  2388. package/src/shapes/Text/StyledText.ts +335 -0
  2389. package/src/shapes/Text/Text.spec.ts +1315 -0
  2390. package/src/shapes/Text/Text.ts +2161 -0
  2391. package/src/shapes/Text/TextSVGExportMixin.spec.ts +104 -0
  2392. package/src/shapes/Text/TextSVGExportMixin.ts +384 -0
  2393. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +225 -0
  2394. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +53 -0
  2395. package/src/shapes/Text/constants.ts +134 -0
  2396. package/src/shapes/Textbox.spec.ts +975 -0
  2397. package/src/shapes/Textbox.ts +669 -0
  2398. package/src/shapes/Triangle.ts +69 -0
  2399. package/src/shapes/__snapshots__/Image.spec.ts.snap +22 -0
  2400. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +165 -0
  2401. package/src/text/browserLines.ts +234 -0
  2402. package/src/text/ellipsis.ts +517 -0
  2403. package/src/text/hitTest.ts +624 -0
  2404. package/src/text/layout.ts +587 -0
  2405. package/src/text/measure.ts +476 -0
  2406. package/src/text/overlayEditor.ts +637 -0
  2407. package/src/text/unicode.ts +455 -0
  2408. package/src/typedefs.ts +132 -0
  2409. package/src/util/__snapshots__/index.spec.ts.snap +124 -0
  2410. package/src/util/animation/AnimationBase.ts +166 -0
  2411. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  2412. package/src/util/animation/AnimationRegistry.ts +59 -0
  2413. package/src/util/animation/ArrayAnimation.ts +27 -0
  2414. package/src/util/animation/ColorAnimation.ts +74 -0
  2415. package/src/util/animation/ValueAnimation.ts +29 -0
  2416. package/src/util/animation/__snapshots__/animations.spec.ts.snap +2772 -0
  2417. package/src/util/animation/animate.ts +74 -0
  2418. package/src/util/animation/animations.spec.ts +488 -0
  2419. package/src/util/animation/easing.ts +327 -0
  2420. package/src/util/animation/index.ts +2 -0
  2421. package/src/util/animation/types.ts +136 -0
  2422. package/src/util/applyMixins.ts +22 -0
  2423. package/src/util/dom_event.spec.ts +23 -0
  2424. package/src/util/dom_event.ts +29 -0
  2425. package/src/util/dom_misc.ts +55 -0
  2426. package/src/util/index.spec.ts +24 -0
  2427. package/src/util/index.ts +116 -0
  2428. package/src/util/internals/applyCanvasTransform.ts +19 -0
  2429. package/src/util/internals/cleanupSvgAttribute.test.ts +17 -0
  2430. package/src/util/internals/cleanupSvgAttribute.ts +10 -0
  2431. package/src/util/internals/cloneStyles.spec.ts +48 -0
  2432. package/src/util/internals/cloneStyles.ts +12 -0
  2433. package/src/util/internals/console.ts +18 -0
  2434. package/src/util/internals/dom_style.spec.ts +17 -0
  2435. package/src/util/internals/dom_style.ts +16 -0
  2436. package/src/util/internals/findRight.ts +11 -0
  2437. package/src/util/internals/getRandomInt.test.ts +49 -0
  2438. package/src/util/internals/getRandomInt.ts +8 -0
  2439. package/src/util/internals/ifNaN.ts +9 -0
  2440. package/src/util/internals/removeFromArray.spec.ts +30 -0
  2441. package/src/util/internals/removeFromArray.ts +14 -0
  2442. package/src/util/internals/uid.ts +3 -0
  2443. package/src/util/lang_string.spec.ts +51 -0
  2444. package/src/util/lang_string.ts +106 -0
  2445. package/src/util/misc/boundingBoxFromPoints.spec.ts +25 -0
  2446. package/src/util/misc/boundingBoxFromPoints.ts +29 -0
  2447. package/src/util/misc/capValue.spec.ts +22 -0
  2448. package/src/util/misc/capValue.ts +2 -0
  2449. package/src/util/misc/cos.spec.ts +12 -0
  2450. package/src/util/misc/cos.ts +24 -0
  2451. package/src/util/misc/dom.spec.ts +75 -0
  2452. package/src/util/misc/dom.ts +77 -0
  2453. package/src/util/misc/findScaleTo.spec.ts +68 -0
  2454. package/src/util/misc/findScaleTo.ts +29 -0
  2455. package/src/util/misc/groupSVGElements.spec.ts +41 -0
  2456. package/src/util/misc/groupSVGElements.ts +19 -0
  2457. package/src/util/misc/isTransparent.ts +28 -0
  2458. package/src/util/misc/matrix.spec.ts +199 -0
  2459. package/src/util/misc/matrix.ts +323 -0
  2460. package/src/util/misc/mergeClipPaths.spec.ts +109 -0
  2461. package/src/util/misc/mergeClipPaths.ts +39 -0
  2462. package/src/util/misc/objectEnlive.spec.ts +129 -0
  2463. package/src/util/misc/objectEnlive.ts +192 -0
  2464. package/src/util/misc/objectTransforms.spec.ts +67 -0
  2465. package/src/util/misc/objectTransforms.ts +122 -0
  2466. package/src/util/misc/pick.spec.ts +32 -0
  2467. package/src/util/misc/pick.ts +29 -0
  2468. package/src/util/misc/planeChange.spec.ts +102 -0
  2469. package/src/util/misc/planeChange.ts +92 -0
  2470. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +148 -0
  2471. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +314 -0
  2472. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +66 -0
  2473. package/src/util/misc/projectStroke/index.ts +81 -0
  2474. package/src/util/misc/projectStroke/types.ts +24 -0
  2475. package/src/util/misc/radiansDegreesConversion.spec.ts +27 -0
  2476. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  2477. package/src/util/misc/resolveOrigin.ts +22 -0
  2478. package/src/util/misc/sin.ts +26 -0
  2479. package/src/util/misc/svgExport.ts +15 -0
  2480. package/src/util/misc/svgParsing.spec.ts +103 -0
  2481. package/src/util/misc/svgParsing.ts +167 -0
  2482. package/src/util/misc/textStyles.ts +137 -0
  2483. package/src/util/misc/toFixed.spec.ts +26 -0
  2484. package/src/util/misc/toFixed.ts +8 -0
  2485. package/src/util/misc/vectors.spec.ts +136 -0
  2486. package/src/util/misc/vectors.ts +100 -0
  2487. package/src/util/path/__snapshots__/index.spec.ts.snap +844 -0
  2488. package/src/util/path/index.spec.ts +165 -0
  2489. package/src/util/path/index.ts +1044 -0
  2490. package/src/util/path/regex.ts +46 -0
  2491. package/src/util/path/typechecks.ts +145 -0
  2492. package/src/util/path/typedefs.ts +326 -0
  2493. package/src/util/transform_matrix_removal.ts +61 -0
  2494. package/src/util/typeAssertions.spec.ts +127 -0
  2495. package/src/util/typeAssertions.ts +47 -0
  2496. package/tsconfig-extensions.json +108 -0
  2497. package/tsconfig.json +118 -0
  2498. package/tsconfig.spec.json +24 -0
  2499. package/typedoc.config.json +12 -0
  2500. package/vitest.config.ts +100 -0
  2501. package/vitest.d.ts +32 -0
  2502. package/vitest.env.d.ts +14 -0
  2503. package/vitest.extend.ts +195 -0
  2504. package/vitest.setup.ts +24 -0
@@ -0,0 +1,3477 @@
1
+ import type { Canvas } from './Canvas.ts';
2
+ import { HitCanvas, SceneCanvas } from './Canvas.ts';
3
+ import type { Container } from './Container.ts';
4
+ import type { Context } from './Context.ts';
5
+ import { isCSSFiltersSupported } from './Context.ts';
6
+ import { DD } from './DragAndDrop.ts';
7
+ import { Factory } from './Factory.ts';
8
+ import { Konva } from './Global.ts';
9
+ import type { Layer } from './Layer.ts';
10
+ import type { Shape } from './Shape.ts';
11
+ import type { Stage } from './Stage.ts';
12
+ import type { GetSet, IRect, Vector2d } from './types.ts';
13
+ import { Transform, Util } from './Util.ts';
14
+ import {
15
+ getBooleanValidator,
16
+ getNumberValidator,
17
+ getStringValidator,
18
+ } from './Validators.ts';
19
+
20
+ export type FilterFunction = (this: Node, imageData: ImageData) => void;
21
+ export type Filter = FilterFunction | string;
22
+ type Filters = Array<FilterFunction | string>;
23
+
24
+ // CSS filter parser for fallback to function filters
25
+ function parseCSSFilters(cssFilter: string): FilterFunction {
26
+ // Parse common CSS filter functions and map to Konva filters
27
+ const filterRegex = /(\w+)\(([^)]+)\)/g;
28
+ let match;
29
+
30
+ while ((match = filterRegex.exec(cssFilter)) !== null) {
31
+ const [, filterName, filterValue] = match;
32
+
33
+ switch (filterName) {
34
+ case 'blur': {
35
+ const blurRadius = parseFloat(filterValue.replace('px', ''));
36
+ return function (imageData) {
37
+ // CSS blur uses standard deviation, Stack Blur uses radius
38
+ // Empirical testing shows CSS blur needs ~0.5 scaling for visual match
39
+ (this as any).blurRadius(blurRadius * 0.5);
40
+ // Access filters through dynamic import to avoid circular dependency
41
+ const KonvaFilters = (Konva as any).Filters;
42
+ if (KonvaFilters && KonvaFilters.Blur) {
43
+ KonvaFilters.Blur.call(this, imageData);
44
+ }
45
+ };
46
+ }
47
+
48
+ case 'brightness': {
49
+ const brightness = filterValue.includes('%')
50
+ ? parseFloat(filterValue) / 100
51
+ : parseFloat(filterValue);
52
+ return function (imageData) {
53
+ (this as any).brightness(brightness); // CSS uses multiplier
54
+ const KonvaFilters = (Konva as any).Filters;
55
+ if (KonvaFilters && KonvaFilters.Brightness) {
56
+ KonvaFilters.Brightness.call(this, imageData);
57
+ }
58
+ };
59
+ }
60
+ case 'contrast': {
61
+ const contrast = parseFloat(filterValue);
62
+ return function (imageData) {
63
+ // Convert CSS contrast to Konva parameter using square root conversion
64
+ // to account for Konva's quadratic scaling: Math.pow((param + 100) / 100, 2)
65
+ const konvaContrast = 100 * (Math.sqrt(contrast) - 1);
66
+ (this as any).contrast(konvaContrast);
67
+ const KonvaFilters = (Konva as any).Filters;
68
+ if (KonvaFilters && KonvaFilters.Contrast) {
69
+ KonvaFilters.Contrast.call(this, imageData);
70
+ }
71
+ };
72
+ }
73
+ case 'grayscale': {
74
+ return function (imageData) {
75
+ const KonvaFilters = (Konva as any).Filters;
76
+ if (KonvaFilters && KonvaFilters.Grayscale) {
77
+ KonvaFilters.Grayscale.call(this, imageData);
78
+ }
79
+ };
80
+ }
81
+ case 'sepia': {
82
+ return function (imageData) {
83
+ const KonvaFilters = (Konva as any).Filters;
84
+ if (KonvaFilters && KonvaFilters.Sepia) {
85
+ KonvaFilters.Sepia.call(this, imageData);
86
+ }
87
+ };
88
+ }
89
+ case 'invert': {
90
+ return function (imageData) {
91
+ const KonvaFilters = (Konva as any).Filters;
92
+ if (KonvaFilters && KonvaFilters.Invert) {
93
+ KonvaFilters.Invert.call(this, imageData);
94
+ }
95
+ };
96
+ }
97
+ default:
98
+ Util.warn(
99
+ `CSS filter "${filterName}" is not supported in fallback mode. Consider using function filters for better compatibility.`
100
+ );
101
+ break;
102
+ }
103
+ }
104
+
105
+ return () => {};
106
+ }
107
+
108
+ type globalCompositeOperationType =
109
+ | ''
110
+ | 'source-over'
111
+ | 'source-in'
112
+ | 'source-out'
113
+ | 'source-atop'
114
+ | 'destination-over'
115
+ | 'destination-in'
116
+ | 'destination-out'
117
+ | 'destination-atop'
118
+ | 'lighter'
119
+ | 'copy'
120
+ | 'xor'
121
+ | 'multiply'
122
+ | 'screen'
123
+ | 'overlay'
124
+ | 'darken'
125
+ | 'lighten'
126
+ | 'color-dodge'
127
+ | 'color-burn'
128
+ | 'hard-light'
129
+ | 'soft-light'
130
+ | 'difference'
131
+ | 'exclusion'
132
+ | 'hue'
133
+ | 'saturation'
134
+ | 'color'
135
+ | 'luminosity';
136
+
137
+ export interface NodeConfig {
138
+ // allow any custom attribute
139
+ [index: string]: any;
140
+ x?: number;
141
+ y?: number;
142
+ width?: number;
143
+ height?: number;
144
+ visible?: boolean;
145
+ listening?: boolean;
146
+ id?: string;
147
+ name?: string;
148
+ opacity?: number;
149
+ scale?: Vector2d;
150
+ scaleX?: number;
151
+ skewX?: number;
152
+ skewY?: number;
153
+ scaleY?: number;
154
+ rotation?: number;
155
+ rotationDeg?: number;
156
+ offset?: Vector2d;
157
+ offsetX?: number;
158
+ offsetY?: number;
159
+ draggable?: boolean;
160
+ dragDistance?: number;
161
+ dragBoundFunc?: (this: Node, pos: Vector2d) => Vector2d;
162
+ preventDefault?: boolean;
163
+ globalCompositeOperation?: globalCompositeOperationType;
164
+ filters?: Filters;
165
+ }
166
+
167
+ // CONSTANTS
168
+ const ABSOLUTE_OPACITY = 'absoluteOpacity',
169
+ ALL_LISTENERS = 'allEventListeners',
170
+ ABSOLUTE_TRANSFORM = 'absoluteTransform',
171
+ ABSOLUTE_SCALE = 'absoluteScale',
172
+ CANVAS = 'canvas',
173
+ CHANGE = 'Change',
174
+ CHILDREN = 'children',
175
+ KONVA = 'konva',
176
+ LISTENING = 'listening',
177
+ MOUSEENTER = 'mouseenter',
178
+ MOUSELEAVE = 'mouseleave',
179
+ POINTERENTER = 'pointerenter',
180
+ POINTERLEAVE = 'pointerleave',
181
+ TOUCHENTER = 'touchenter',
182
+ TOUCHLEAVE = 'touchleave',
183
+ NAME = 'name',
184
+ SET = 'set',
185
+ SHAPE = 'Shape',
186
+ SPACE = ' ',
187
+ STAGE = 'stage',
188
+ TRANSFORM = 'transform',
189
+ UPPER_STAGE = 'Stage',
190
+ VISIBLE = 'visible',
191
+ TRANSFORM_CHANGE_STR = [
192
+ 'xChange.konva',
193
+ 'yChange.konva',
194
+ 'scaleXChange.konva',
195
+ 'scaleYChange.konva',
196
+ 'skewXChange.konva',
197
+ 'skewYChange.konva',
198
+ 'rotationChange.konva',
199
+ 'offsetXChange.konva',
200
+ 'offsetYChange.konva',
201
+ 'transformsEnabledChange.konva',
202
+ ].join(SPACE);
203
+
204
+ let idCounter = 1;
205
+
206
+ // create all the events here
207
+ type NodeEventMap = GlobalEventHandlersEventMap & {
208
+ [index: string]: any;
209
+ };
210
+
211
+ export interface KonvaEventObject<EventType, This = Node> {
212
+ type: string;
213
+ target: Shape | Stage;
214
+ evt: EventType;
215
+ pointerId: number;
216
+ currentTarget: This;
217
+ cancelBubble: boolean;
218
+ child?: Node;
219
+ }
220
+
221
+ export type KonvaEventListener<This, EventType> = (
222
+ this: This,
223
+ ev: KonvaEventObject<EventType, This>
224
+ ) => void;
225
+
226
+ /**
227
+ * Node constructor. Nodes are entities that can be transformed, layered,
228
+ * and have bound events. The stage, layers, groups, and shapes all extend Node.
229
+ * @constructor
230
+ * @memberof Konva
231
+ * @param {Object} config
232
+ * @@nodeParams
233
+ */
234
+ export abstract class Node<Config extends NodeConfig = NodeConfig> {
235
+ _id = idCounter++;
236
+ eventListeners: {
237
+ [index: string]: Array<{ name: string; handler: Function }>;
238
+ } = {};
239
+ attrs: any = {};
240
+ index = 0;
241
+ _allEventListeners: null | Array<Function> = null;
242
+ parent: Container | null = null;
243
+ _cache: Map<string, any> = new Map<string, any>();
244
+ _attachedDepsListeners: Map<string, boolean> = new Map<string, boolean>();
245
+ _lastPos: Vector2d | null = null;
246
+ _attrsAffectingSize!: string[];
247
+ _batchingTransformChange = false;
248
+ _needClearTransformCache = false;
249
+
250
+ _filterUpToDate = false;
251
+ _isUnderCache = false;
252
+ nodeType!: string;
253
+ className!: string;
254
+
255
+ _dragEventId: number | null = null;
256
+ _shouldFireChangeEvents = false;
257
+
258
+ constructor(config?: Config) {
259
+ // on initial set attrs wi don't need to fire change events
260
+ // because nobody is listening to them yet
261
+ this.setAttrs(config);
262
+ this._shouldFireChangeEvents = true;
263
+
264
+ // all change event listeners are attached to the prototype
265
+ }
266
+
267
+ hasChildren() {
268
+ return false;
269
+ }
270
+
271
+ _clearCache(attr?: string) {
272
+ // if we want to clear transform cache
273
+ // we don't really need to remove it from the cache
274
+ // but instead mark as "dirty"
275
+ // so we don't need to create a new instance next time
276
+ if (
277
+ (attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&
278
+ this._cache.get(attr)
279
+ ) {
280
+ (this._cache.get(attr) as Transform).dirty = true;
281
+ } else if (attr) {
282
+ this._cache.delete(attr);
283
+ } else {
284
+ this._cache.clear();
285
+ }
286
+ }
287
+ _getCache(attr: string, privateGetter: Function) {
288
+ let cache = this._cache.get(attr);
289
+
290
+ // for transform the cache can be NOT empty
291
+ // but we still need to recalculate it if it is dirty
292
+ const isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;
293
+ const invalid =
294
+ cache === undefined || (isTransform && cache.dirty === true);
295
+
296
+ // if not cached, we need to set it using the private getter method.
297
+ if (invalid) {
298
+ cache = privateGetter.call(this);
299
+ this._cache.set(attr, cache);
300
+ }
301
+
302
+ return cache;
303
+ }
304
+
305
+ _calculate(name: string, deps: Array<string>, getter: Function) {
306
+ // if we are trying to calculate function for the first time
307
+ // we need to attach listeners for change events
308
+ if (!this._attachedDepsListeners.get(name)) {
309
+ const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);
310
+ this.on(depsString, () => {
311
+ this._clearCache(name);
312
+ });
313
+ this._attachedDepsListeners.set(name, true);
314
+ }
315
+ // just use cache function
316
+ return this._getCache(name, getter);
317
+ }
318
+
319
+ _getCanvasCache() {
320
+ return this._cache.get(CANVAS);
321
+ }
322
+ /*
323
+ * when the logic for a cached result depends on ancestor propagation, use this
324
+ * method to clear self and children cache
325
+ */
326
+ _clearSelfAndDescendantCache(attr?: string) {
327
+ this._clearCache(attr);
328
+ // trigger clear cache, so transformer can use it
329
+ if (attr === ABSOLUTE_TRANSFORM) {
330
+ this.fire('absoluteTransformChange');
331
+ }
332
+ }
333
+ /**
334
+ * clear cached canvas
335
+ * @method
336
+ * @name Konva.Node#clearCache
337
+ * @returns {Konva.Node}
338
+ * @example
339
+ * node.clearCache();
340
+ */
341
+ clearCache() {
342
+ if (this._cache.has(CANVAS)) {
343
+ const { scene, filter, hit, buffer } = this._cache.get(CANVAS);
344
+ Util.releaseCanvas(scene, filter, hit, buffer);
345
+ this._cache.delete(CANVAS);
346
+ }
347
+
348
+ this._clearSelfAndDescendantCache();
349
+ this._requestDraw();
350
+ return this;
351
+ }
352
+ /**
353
+ * cache node to improve drawing performance, apply filters, or create more accurate
354
+ * hit regions. For all basic shapes size of cache canvas will be automatically detected.
355
+ * If you need to cache your custom `Konva.Shape` instance you have to pass shape's bounding box
356
+ * properties. Look at [https://konvajs.org/docs/performance/Shape_Caching.html](https://konvajs.org/docs/performance/Shape_Caching.html) for more information.
357
+ * @method
358
+ * @name Konva.Node#cache
359
+ * @param {Object} [config]
360
+ * @param {Number} [config.x]
361
+ * @param {Number} [config.y]
362
+ * @param {Number} [config.width]
363
+ * @param {Number} [config.height]
364
+ * @param {Number} [config.offset] increase canvas size by `offset` pixel in all directions.
365
+ * @param {Boolean} [config.drawBorder] when set to true, a red border will be drawn around the cached
366
+ * region for debugging purposes
367
+ * @param {Number} [config.pixelRatio] change quality (or pixel ratio) of cached image. pixelRatio = 2 will produce 2x sized cache.
368
+ * @param {Boolean} [config.imageSmoothingEnabled] control imageSmoothingEnabled property of created canvas for cache
369
+ * @param {Number} [config.hitCanvasPixelRatio] change quality (or pixel ratio) of cached hit canvas.
370
+ * @returns {Konva.Node}
371
+ * @example
372
+ * // cache a shape with the x,y position of the bounding box at the center and
373
+ * // the width and height of the bounding box equal to the width and height of
374
+ * // the shape obtained from shape.width() and shape.height()
375
+ * image.cache();
376
+ *
377
+ * // cache a node and define the bounding box position and size
378
+ * node.cache({
379
+ * x: -30,
380
+ * y: -30,
381
+ * width: 100,
382
+ * height: 200
383
+ * });
384
+ *
385
+ * // cache a node and draw a red border around the bounding box
386
+ * // for debugging purposes
387
+ * node.cache({
388
+ * x: -30,
389
+ * y: -30,
390
+ * width: 100,
391
+ * height: 200,
392
+ * offset : 10,
393
+ * drawBorder: true
394
+ * });
395
+ */
396
+ cache(config?: {
397
+ x?: number;
398
+ y?: number;
399
+ width?: number;
400
+ height?: number;
401
+ drawBorder?: boolean;
402
+ offset?: number;
403
+ pixelRatio?: number;
404
+ imageSmoothingEnabled?: boolean;
405
+ hitCanvasPixelRatio?: number;
406
+ }) {
407
+ const conf = config || {};
408
+ let rect = {} as IRect;
409
+
410
+ // don't call getClientRect if we have all attributes
411
+ // it means call it only if have one undefined
412
+ if (
413
+ conf.x === undefined ||
414
+ conf.y === undefined ||
415
+ conf.width === undefined ||
416
+ conf.height === undefined
417
+ ) {
418
+ rect = this.getClientRect({
419
+ skipTransform: true,
420
+ relativeTo: this.getParent() || undefined,
421
+ });
422
+ }
423
+ let width = Math.ceil(conf.width || rect.width),
424
+ height = Math.ceil(conf.height || rect.height),
425
+ pixelRatio = conf.pixelRatio,
426
+ x = conf.x === undefined ? Math.floor(rect.x) : conf.x,
427
+ y = conf.y === undefined ? Math.floor(rect.y) : conf.y,
428
+ offset = conf.offset || 0,
429
+ drawBorder = conf.drawBorder || false,
430
+ hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;
431
+
432
+ if (!width || !height) {
433
+ Util.error(
434
+ 'Can not cache the node. Width or height of the node equals 0. Caching is skipped.'
435
+ );
436
+ return;
437
+ }
438
+
439
+ // because using Math.floor on x, y position may shift drawing
440
+ // to avoid shift we need to increase size
441
+ // but we better to avoid it, for better filters flows
442
+ const extraPaddingX = Math.abs(Math.round(rect.x) - x) > 0.5 ? 1 : 0;
443
+ const extraPaddingY = Math.abs(Math.round(rect.y) - y) > 0.5 ? 1 : 0;
444
+ width += offset * 2 + extraPaddingX;
445
+ height += offset * 2 + extraPaddingY;
446
+
447
+ x -= offset;
448
+ y -= offset;
449
+
450
+ // if (Math.floor(x) < x) {
451
+ // x = Math.floor(x);
452
+ // // width += 1;
453
+ // }
454
+ // if (Math.floor(y) < y) {
455
+ // y = Math.floor(y);
456
+ // // height += 1;
457
+ // }
458
+
459
+ // console.log({ x, y, width, height }, rect);
460
+
461
+ const cachedSceneCanvas = new SceneCanvas({
462
+ pixelRatio: pixelRatio,
463
+ width: width,
464
+ height: height,
465
+ }),
466
+ cachedFilterCanvas = new SceneCanvas({
467
+ pixelRatio: pixelRatio,
468
+ width: 0,
469
+ height: 0,
470
+ willReadFrequently: true,
471
+ }),
472
+ cachedHitCanvas = new HitCanvas({
473
+ pixelRatio: hitCanvasPixelRatio,
474
+ width: width,
475
+ height: height,
476
+ }),
477
+ sceneContext = cachedSceneCanvas.getContext(),
478
+ hitContext = cachedHitCanvas.getContext();
479
+
480
+ const bufferCanvas = new SceneCanvas({
481
+ // width and height already multiplied by pixelRatio
482
+ // so we need to revert that
483
+ // also increase size by x nd y offset to make sure content fits canvas
484
+ width:
485
+ cachedSceneCanvas.width / cachedSceneCanvas.pixelRatio + Math.abs(x),
486
+ height:
487
+ cachedSceneCanvas.height / cachedSceneCanvas.pixelRatio + Math.abs(y),
488
+ pixelRatio: cachedSceneCanvas.pixelRatio,
489
+ }),
490
+ bufferContext = bufferCanvas.getContext();
491
+
492
+ cachedHitCanvas.isCache = true;
493
+ cachedSceneCanvas.isCache = true;
494
+
495
+ this._cache.delete(CANVAS);
496
+ this._filterUpToDate = false;
497
+
498
+ if (conf.imageSmoothingEnabled === false) {
499
+ cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;
500
+ cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;
501
+ }
502
+
503
+ sceneContext.save();
504
+ hitContext.save();
505
+ bufferContext.save();
506
+
507
+ sceneContext.translate(-x, -y);
508
+ hitContext.translate(-x, -y);
509
+ bufferContext.translate(-x, -y);
510
+ // hard-code offset to make sure content fits canvas
511
+ // @ts-ignore
512
+ bufferCanvas.x = x;
513
+ // @ts-ignore
514
+ bufferCanvas.y = y;
515
+
516
+ // extra flag to skip on getAbsolute opacity calc
517
+ this._isUnderCache = true;
518
+ this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
519
+ this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);
520
+
521
+ this.drawScene(cachedSceneCanvas, this, bufferCanvas);
522
+ this.drawHit(cachedHitCanvas, this);
523
+ this._isUnderCache = false;
524
+
525
+ sceneContext.restore();
526
+ hitContext.restore();
527
+
528
+ // this will draw a red border around the cached box for
529
+ // debugging purposes
530
+ if (drawBorder) {
531
+ sceneContext.save();
532
+ sceneContext.beginPath();
533
+ sceneContext.rect(0, 0, width, height);
534
+ sceneContext.closePath();
535
+ sceneContext.setAttr('strokeStyle', 'red');
536
+ sceneContext.setAttr('lineWidth', 5);
537
+ sceneContext.stroke();
538
+ sceneContext.restore();
539
+ }
540
+
541
+ this._cache.set(CANVAS, {
542
+ scene: cachedSceneCanvas,
543
+ filter: cachedFilterCanvas,
544
+ hit: cachedHitCanvas,
545
+ buffer: bufferCanvas,
546
+ x: x,
547
+ y: y,
548
+ });
549
+
550
+ this._requestDraw();
551
+
552
+ return this;
553
+ }
554
+
555
+ /**
556
+ * determine if node is currently cached
557
+ * @method
558
+ * @name Konva.Node#isCached
559
+ * @returns {Boolean}
560
+ */
561
+ isCached() {
562
+ return this._cache.has(CANVAS);
563
+ }
564
+
565
+ abstract drawScene(canvas?: Canvas, top?: Node, bufferCanvas?: Canvas): void;
566
+ abstract drawHit(canvas?: Canvas, top?: Node): void;
567
+ /**
568
+ * Return client rectangle {x, y, width, height} of node. This rectangle also include all styling (strokes, shadows, etc).
569
+ * The purpose of the method is similar to getBoundingClientRect API of the DOM.
570
+ * @method
571
+ * @name Konva.Node#getClientRect
572
+ * @param {Object} config
573
+ * @param {Boolean} [config.skipTransform] should we apply transform to node for calculating rect?
574
+ * @param {Boolean} [config.skipShadow] should we apply shadow to the node for calculating bound box?
575
+ * @param {Boolean} [config.skipStroke] should we apply stroke to the node for calculating bound box?
576
+ * @param {Object} [config.relativeTo] calculate client rect relative to one of the parents
577
+ * @returns {Object} rect with {x, y, width, height} properties
578
+ * @example
579
+ * var rect = new Konva.Rect({
580
+ * width : 100,
581
+ * height : 100,
582
+ * x : 50,
583
+ * y : 50,
584
+ * strokeWidth : 4,
585
+ * stroke : 'black',
586
+ * offsetX : 50,
587
+ * scaleY : 2
588
+ * });
589
+ *
590
+ * // get client rect without think off transformations (position, rotation, scale, offset, etc)
591
+ * rect.getClientRect({ skipTransform: true});
592
+ * // returns {
593
+ * // x : -2, // two pixels for stroke / 2
594
+ * // y : -2,
595
+ * // width : 104, // increased by 4 for stroke
596
+ * // height : 104
597
+ * //}
598
+ *
599
+ * // get client rect with transformation applied
600
+ * rect.getClientRect();
601
+ * // returns Object {x: -2, y: 46, width: 104, height: 208}
602
+ */
603
+ getClientRect(config?: {
604
+ skipTransform?: boolean;
605
+ skipShadow?: boolean;
606
+ skipStroke?: boolean;
607
+ relativeTo?: Container;
608
+ }): { x: number; y: number; width: number; height: number } {
609
+ // abstract method
610
+ // redefine in Container and Shape
611
+ throw new Error('abstract "getClientRect" method call');
612
+ }
613
+ _transformedRect(rect: IRect, top?: Node | null) {
614
+ const points = [
615
+ { x: rect.x, y: rect.y },
616
+ { x: rect.x + rect.width, y: rect.y },
617
+ { x: rect.x + rect.width, y: rect.y + rect.height },
618
+ { x: rect.x, y: rect.y + rect.height },
619
+ ];
620
+ let minX: number = Infinity,
621
+ minY: number = Infinity,
622
+ maxX: number = -Infinity,
623
+ maxY: number = -Infinity;
624
+ const trans = this.getAbsoluteTransform(top);
625
+ points.forEach(function (point) {
626
+ const transformed = trans.point(point);
627
+ if (minX === undefined) {
628
+ minX = maxX = transformed.x;
629
+ minY = maxY = transformed.y;
630
+ }
631
+ minX = Math.min(minX, transformed.x);
632
+ minY = Math.min(minY, transformed.y);
633
+ maxX = Math.max(maxX, transformed.x);
634
+ maxY = Math.max(maxY, transformed.y);
635
+ });
636
+ return {
637
+ x: minX,
638
+ y: minY,
639
+ width: maxX - minX,
640
+ height: maxY - minY,
641
+ };
642
+ }
643
+ _drawCachedSceneCanvas(context: Context) {
644
+ context.save();
645
+ context._applyOpacity(this);
646
+ context._applyGlobalCompositeOperation(this);
647
+
648
+ const canvasCache = this._getCanvasCache();
649
+ context.translate(canvasCache.x, canvasCache.y);
650
+
651
+ const cacheCanvas = this._getCachedSceneCanvas();
652
+ const ratio = cacheCanvas.pixelRatio;
653
+
654
+ context.drawImage(
655
+ cacheCanvas._canvas,
656
+ 0,
657
+ 0,
658
+ cacheCanvas.width / ratio,
659
+ cacheCanvas.height / ratio
660
+ );
661
+ context.restore();
662
+ }
663
+ _drawCachedHitCanvas(context: Context) {
664
+ const canvasCache = this._getCanvasCache(),
665
+ hitCanvas = canvasCache.hit;
666
+ context.save();
667
+ context.translate(canvasCache.x, canvasCache.y);
668
+ context.drawImage(
669
+ hitCanvas._canvas,
670
+ 0,
671
+ 0,
672
+ hitCanvas.width / hitCanvas.pixelRatio,
673
+ hitCanvas.height / hitCanvas.pixelRatio
674
+ );
675
+ context.restore();
676
+ }
677
+ _getCachedSceneCanvas() {
678
+ let filters = this.filters(),
679
+ cachedCanvas = this._getCanvasCache(),
680
+ sceneCanvas = cachedCanvas.scene as Canvas,
681
+ filterCanvas = cachedCanvas.filter as Canvas,
682
+ filterContext = filterCanvas.getContext(),
683
+ len,
684
+ imageData,
685
+ n,
686
+ filter;
687
+
688
+ if (!filters || filters.length === 0) {
689
+ return sceneCanvas;
690
+ }
691
+
692
+ if (this._filterUpToDate) {
693
+ return filterCanvas;
694
+ }
695
+
696
+ let useNativeOnly = true;
697
+ for (let i = 0; i < filters.length; i++) {
698
+ const fallbackRequired =
699
+ typeof filters[i] === 'string' && !isCSSFiltersSupported();
700
+ if (fallbackRequired) {
701
+ // Util.warn(
702
+ // `CSS filter "${filters[i]}" is not supported in native mode.`
703
+ // );
704
+ }
705
+ if (typeof filters[i] !== 'string' || !isCSSFiltersSupported()) {
706
+ useNativeOnly = false;
707
+ break;
708
+ }
709
+ }
710
+
711
+ const ratio = sceneCanvas.pixelRatio;
712
+ filterCanvas.setSize(
713
+ sceneCanvas.width / sceneCanvas.pixelRatio,
714
+ sceneCanvas.height / sceneCanvas.pixelRatio
715
+ );
716
+ if (useNativeOnly) {
717
+ const finalFilter = (filters as unknown as string[]).join(' ');
718
+ filterContext.save();
719
+ filterContext.setAttr('filter', finalFilter);
720
+ filterContext.drawImage(
721
+ sceneCanvas._canvas,
722
+ 0,
723
+ 0,
724
+ sceneCanvas.getWidth() / ratio,
725
+ sceneCanvas.getHeight() / ratio
726
+ );
727
+ filterContext.restore();
728
+ this._filterUpToDate = true;
729
+ return filterCanvas;
730
+ }
731
+
732
+ try {
733
+ len = filters.length;
734
+ filterContext.clear();
735
+
736
+ // copy cached canvas onto filter context
737
+ filterContext.drawImage(
738
+ sceneCanvas._canvas,
739
+ 0,
740
+ 0,
741
+ sceneCanvas.getWidth() / ratio,
742
+ sceneCanvas.getHeight() / ratio
743
+ );
744
+ imageData = filterContext.getImageData(
745
+ 0,
746
+ 0,
747
+ filterCanvas.getWidth(),
748
+ filterCanvas.getHeight()
749
+ );
750
+
751
+ // apply filters to filter context
752
+ for (n = 0; n < len; n++) {
753
+ filter = filters[n];
754
+ if (typeof filter === 'string') {
755
+ filter = parseCSSFilters(filter);
756
+ }
757
+ filter.call(this, imageData);
758
+ filterContext.putImageData(imageData, 0, 0);
759
+ }
760
+ } catch (e: any) {
761
+ Util.error(
762
+ 'Unable to apply filter. ' +
763
+ e.message +
764
+ ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.'
765
+ );
766
+ }
767
+
768
+ this._filterUpToDate = true;
769
+
770
+ return filterCanvas;
771
+ }
772
+ /**
773
+ * bind events to the node. KonvaJS supports mouseover, mousemove,
774
+ * mouseout, mouseenter, mouseleave, mousedown, mouseup, wheel, contextmenu, click, dblclick, touchstart, touchmove,
775
+ * touchend, tap, dbltap, dragstart, dragmove, and dragend events.
776
+ * Pass in a string of events delimited by a space to bind multiple events at once
777
+ * such as 'mousedown mouseup mousemove'. Include a namespace to bind an
778
+ * event by name such as 'click.foobar'.
779
+ * @method
780
+ * @name Konva.Node#on
781
+ * @param {String} evtStr e.g. 'click', 'mousedown touchstart', 'mousedown.foo touchstart.foo'
782
+ * @param {Function} handler The handler function. The first argument of that function is event object. Event object has `target` as main target of the event, `currentTarget` as current node listener and `evt` as native browser event.
783
+ * @returns {Konva.Node}
784
+ * @example
785
+ * // add click listener
786
+ * node.on('click', function() {
787
+ * console.log('you clicked me!');
788
+ * });
789
+ *
790
+ * // get the target node
791
+ * node.on('click', function(evt) {
792
+ * console.log(evt.target);
793
+ * });
794
+ *
795
+ * // stop event propagation
796
+ * node.on('click', function(evt) {
797
+ * evt.cancelBubble = true;
798
+ * });
799
+ *
800
+ * // bind multiple listeners
801
+ * node.on('click touchstart', function() {
802
+ * console.log('you clicked/touched me!');
803
+ * });
804
+ *
805
+ * // namespace listener
806
+ * node.on('click.foo', function() {
807
+ * console.log('you clicked/touched me!');
808
+ * });
809
+ *
810
+ * // get the event type
811
+ * node.on('click tap', function(evt) {
812
+ * var eventType = evt.type;
813
+ * });
814
+ *
815
+ * // get native event object
816
+ * node.on('click tap', function(evt) {
817
+ * var nativeEvent = evt.evt;
818
+ * });
819
+ *
820
+ * // for change events, get the old and new val
821
+ * node.on('xChange', function(evt) {
822
+ * var oldVal = evt.oldVal;
823
+ * var newVal = evt.newVal;
824
+ * });
825
+ *
826
+ * // get event targets
827
+ * // with event delegations
828
+ * layer.on('click', 'Group', function(evt) {
829
+ * var shape = evt.target;
830
+ * var group = evt.currentTarget;
831
+ * });
832
+ */
833
+ on<K extends keyof NodeEventMap>(
834
+ evtStr: K,
835
+ handler: KonvaEventListener<this, NodeEventMap[K]>
836
+ ) {
837
+ if (this._cache) {
838
+ this._cache.delete(ALL_LISTENERS);
839
+ }
840
+
841
+ if (arguments.length === 3) {
842
+ return this._delegate.apply(this, arguments as any);
843
+ }
844
+ const events = (evtStr as string).split(SPACE);
845
+
846
+ /*
847
+ * loop through types and attach event listeners to
848
+ * each one. eg. 'click mouseover.namespace mouseout'
849
+ * will create three event bindings
850
+ */
851
+ for (let n = 0; n < events.length; n++) {
852
+ const event = events[n];
853
+ const parts = event.split('.');
854
+ const baseEvent = parts[0];
855
+ const name = parts[1] || '';
856
+
857
+ // create events array if it doesn't exist
858
+ if (!this.eventListeners[baseEvent]) {
859
+ this.eventListeners[baseEvent] = [];
860
+ }
861
+
862
+ this.eventListeners[baseEvent].push({ name, handler });
863
+ }
864
+
865
+ return this;
866
+ }
867
+ /**
868
+ * remove event bindings from the node. Pass in a string of
869
+ * event types delimmited by a space to remove multiple event
870
+ * bindings at once such as 'mousedown mouseup mousemove'.
871
+ * include a namespace to remove an event binding by name
872
+ * such as 'click.foobar'. If you only give a name like '.foobar',
873
+ * all events in that namespace will be removed.
874
+ * @method
875
+ * @name Konva.Node#off
876
+ * @param {String} evtStr e.g. 'click', 'mousedown touchstart', '.foobar'
877
+ * @returns {Konva.Node}
878
+ * @example
879
+ * // remove listener
880
+ * node.off('click');
881
+ *
882
+ * // remove multiple listeners
883
+ * node.off('click touchstart');
884
+ *
885
+ * // remove listener by name
886
+ * node.off('click.foo');
887
+ */
888
+ off(evtStr?: string, callback?: Function) {
889
+ let events = (evtStr || '').split(SPACE),
890
+ len = events.length,
891
+ n,
892
+ t,
893
+ event,
894
+ parts,
895
+ baseEvent,
896
+ name;
897
+
898
+ this._cache && this._cache.delete(ALL_LISTENERS);
899
+
900
+ if (!evtStr) {
901
+ // remove all events
902
+ for (t in this.eventListeners) {
903
+ this._off(t);
904
+ }
905
+ }
906
+ for (n = 0; n < len; n++) {
907
+ event = events[n];
908
+ parts = event.split('.');
909
+ baseEvent = parts[0];
910
+ name = parts[1];
911
+
912
+ if (baseEvent) {
913
+ if (this.eventListeners[baseEvent]) {
914
+ this._off(baseEvent, name, callback);
915
+ }
916
+ } else {
917
+ for (t in this.eventListeners) {
918
+ this._off(t, name, callback);
919
+ }
920
+ }
921
+ }
922
+ return this;
923
+ }
924
+ // some event aliases for third party integration like HammerJS
925
+ dispatchEvent(evt: any) {
926
+ const e = {
927
+ target: this,
928
+ type: evt.type,
929
+ evt: evt,
930
+ };
931
+ this.fire(evt.type, e);
932
+ return this;
933
+ }
934
+ addEventListener(type: string, handler: (e: Event) => void) {
935
+ // we have to pass native event to handler
936
+ this.on(type, function (evt) {
937
+ handler.call(this, evt.evt);
938
+ });
939
+ return this;
940
+ }
941
+ removeEventListener(type: string) {
942
+ this.off(type);
943
+ return this;
944
+ }
945
+ // like node.on
946
+ _delegate(event: string, selector: string, handler: (e: Event) => void) {
947
+ const stopNode = this;
948
+ this.on(event, function (evt) {
949
+ const targets = evt.target.findAncestors(selector, true, stopNode);
950
+ for (let i = 0; i < targets.length; i++) {
951
+ evt = Util.cloneObject(evt);
952
+ evt.currentTarget = targets[i] as any;
953
+ handler.call(targets[i], evt as any);
954
+ }
955
+ });
956
+ }
957
+ /**
958
+ * remove a node from parent, but don't destroy. You can reuse the node later.
959
+ * @method
960
+ * @name Konva.Node#remove
961
+ * @returns {Konva.Node}
962
+ * @example
963
+ * node.remove();
964
+ */
965
+ remove() {
966
+ if (this.isDragging()) {
967
+ this.stopDrag();
968
+ }
969
+ // we can have drag element but that is not dragged yet
970
+ // so just clear it
971
+ DD._dragElements.delete(this._id);
972
+ this._remove();
973
+ return this;
974
+ }
975
+ _clearCaches() {
976
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
977
+ this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
978
+ this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);
979
+ this._clearSelfAndDescendantCache(STAGE);
980
+ this._clearSelfAndDescendantCache(VISIBLE);
981
+ this._clearSelfAndDescendantCache(LISTENING);
982
+ }
983
+ _remove() {
984
+ // every cached attr that is calculated via node tree
985
+ // traversal must be cleared when removing a node
986
+ this._clearCaches();
987
+
988
+ const parent = this.getParent();
989
+
990
+ if (parent && parent.children) {
991
+ parent.children.splice(this.index, 1);
992
+ parent._setChildrenIndices();
993
+ this.parent = null;
994
+ }
995
+ }
996
+ /**
997
+ * remove and destroy a node. Kill it and delete forever! You should not reuse node after destroy().
998
+ * If the node is a container (Group, Stage or Layer) it will destroy all children too.
999
+ * @method
1000
+ * @name Konva.Node#destroy
1001
+ * @example
1002
+ * node.destroy();
1003
+ */
1004
+ destroy() {
1005
+ this.remove();
1006
+ this.clearCache();
1007
+ return this;
1008
+ }
1009
+ /**
1010
+ * get attr
1011
+ * @method
1012
+ * @name Konva.Node#getAttr
1013
+ * @param {String} attr
1014
+ * @returns {Integer|String|Object|Array}
1015
+ * @example
1016
+ * var x = node.getAttr('x');
1017
+ */
1018
+ getAttr<T>(attr: string) {
1019
+ const method = 'get' + Util._capitalize(attr);
1020
+ if (Util._isFunction((this as any)[method])) {
1021
+ return (this as any)[method]();
1022
+ }
1023
+ // otherwise get directly
1024
+ return this.attrs[attr] as T | undefined;
1025
+ }
1026
+ /**
1027
+ * get ancestors
1028
+ * @method
1029
+ * @name Konva.Node#getAncestors
1030
+ * @returns {Array}
1031
+ * @example
1032
+ * shape.getAncestors().forEach(function(node) {
1033
+ * console.log(node.id());
1034
+ * })
1035
+ */
1036
+ getAncestors() {
1037
+ let parent = this.getParent(),
1038
+ ancestors: Array<Node> = [];
1039
+
1040
+ while (parent) {
1041
+ ancestors.push(parent);
1042
+ parent = parent.getParent();
1043
+ }
1044
+
1045
+ return ancestors;
1046
+ }
1047
+ /**
1048
+ * get attrs object literal
1049
+ * @method
1050
+ * @name Konva.Node#getAttrs
1051
+ * @returns {Object}
1052
+ */
1053
+ getAttrs() {
1054
+ return (this.attrs || {}) as Config & Record<string, any>;
1055
+ }
1056
+ /**
1057
+ * set multiple attrs at once using an object literal
1058
+ * @method
1059
+ * @name Konva.Node#setAttrs
1060
+ * @param {Object} config object containing key value pairs
1061
+ * @returns {Konva.Node}
1062
+ * @example
1063
+ * node.setAttrs({
1064
+ * x: 5,
1065
+ * fill: 'red'
1066
+ * });
1067
+ */
1068
+ setAttrs(config: any) {
1069
+ this._batchTransformChanges(() => {
1070
+ let key, method;
1071
+ if (!config) {
1072
+ return this;
1073
+ }
1074
+ for (key in config) {
1075
+ if (key === CHILDREN) {
1076
+ continue;
1077
+ }
1078
+ method = SET + Util._capitalize(key);
1079
+ // use setter if available
1080
+ if (Util._isFunction(this[method])) {
1081
+ this[method](config[key]);
1082
+ } else {
1083
+ // otherwise set directly
1084
+ this._setAttr(key, config[key]);
1085
+ }
1086
+ }
1087
+ });
1088
+
1089
+ return this;
1090
+ }
1091
+ /**
1092
+ * determine if node is listening for events by taking into account ancestors.
1093
+ *
1094
+ * Parent | Self | isListening
1095
+ * listening | listening |
1096
+ * ----------+-----------+------------
1097
+ * T | T | T
1098
+ * T | F | F
1099
+ * F | T | F
1100
+ * F | F | F
1101
+ *
1102
+ * @method
1103
+ * @name Konva.Node#isListening
1104
+ * @returns {Boolean}
1105
+ */
1106
+ isListening() {
1107
+ return this._getCache(LISTENING, this._isListening);
1108
+ }
1109
+ _isListening(relativeTo?: Node): boolean {
1110
+ const listening = this.listening();
1111
+ if (!listening) {
1112
+ return false;
1113
+ }
1114
+ const parent = this.getParent();
1115
+ if (parent && parent !== relativeTo && this !== relativeTo) {
1116
+ return parent._isListening(relativeTo);
1117
+ } else {
1118
+ return true;
1119
+ }
1120
+ }
1121
+ /**
1122
+ * determine if node is visible by taking into account ancestors.
1123
+ *
1124
+ * Parent | Self | isVisible
1125
+ * visible | visible |
1126
+ * ----------+-----------+------------
1127
+ * T | T | T
1128
+ * T | F | F
1129
+ * F | T | F
1130
+ * F | F | F
1131
+ * @method
1132
+ * @name Konva.Node#isVisible
1133
+ * @returns {Boolean}
1134
+ */
1135
+ isVisible() {
1136
+ return this._getCache(VISIBLE, this._isVisible);
1137
+ }
1138
+ _isVisible(relativeTo?: Node): boolean {
1139
+ const visible = this.visible();
1140
+ if (!visible) {
1141
+ return false;
1142
+ }
1143
+ const parent = this.getParent();
1144
+ if (parent && parent !== relativeTo && this !== relativeTo) {
1145
+ return parent._isVisible(relativeTo);
1146
+ } else {
1147
+ return true;
1148
+ }
1149
+ }
1150
+ shouldDrawHit(top?: Node, skipDragCheck = false) {
1151
+ if (top) {
1152
+ return this._isVisible(top) && this._isListening(top);
1153
+ }
1154
+ const layer = this.getLayer();
1155
+
1156
+ let layerUnderDrag = false;
1157
+ DD._dragElements.forEach((elem) => {
1158
+ if (elem.dragStatus !== 'dragging') {
1159
+ return;
1160
+ } else if (elem.node.nodeType === 'Stage') {
1161
+ layerUnderDrag = true;
1162
+ } else if (elem.node.getLayer() === layer) {
1163
+ layerUnderDrag = true;
1164
+ }
1165
+ });
1166
+
1167
+ const dragSkip =
1168
+ !skipDragCheck &&
1169
+ !Konva.hitOnDragEnabled &&
1170
+ (layerUnderDrag || Konva.isTransforming());
1171
+ return this.isListening() && this.isVisible() && !dragSkip;
1172
+ }
1173
+
1174
+ /**
1175
+ * show node. set visible = true
1176
+ * @method
1177
+ * @name Konva.Node#show
1178
+ * @returns {Konva.Node}
1179
+ */
1180
+ show() {
1181
+ this.visible(true);
1182
+ return this;
1183
+ }
1184
+ /**
1185
+ * hide node. Hidden nodes are no longer detectable
1186
+ * @method
1187
+ * @name Konva.Node#hide
1188
+ * @returns {Konva.Node}
1189
+ */
1190
+ hide() {
1191
+ this.visible(false);
1192
+ return this;
1193
+ }
1194
+ getZIndex() {
1195
+ return this.index || 0;
1196
+ }
1197
+ /**
1198
+ * get absolute z-index which takes into account sibling
1199
+ * and ancestor indices
1200
+ * @method
1201
+ * @name Konva.Node#getAbsoluteZIndex
1202
+ * @returns {Integer}
1203
+ */
1204
+ getAbsoluteZIndex() {
1205
+ let depth = this.getDepth(),
1206
+ that = this,
1207
+ index = 0,
1208
+ nodes,
1209
+ len,
1210
+ n,
1211
+ child;
1212
+
1213
+ function addChildren(children) {
1214
+ nodes = [];
1215
+ len = children.length;
1216
+ for (n = 0; n < len; n++) {
1217
+ child = children[n];
1218
+ index++;
1219
+
1220
+ if (child.nodeType !== SHAPE) {
1221
+ nodes = nodes.concat(child.getChildren().slice());
1222
+ }
1223
+
1224
+ if (child._id === that._id) {
1225
+ n = len;
1226
+ }
1227
+ }
1228
+
1229
+ if (nodes.length > 0 && nodes[0].getDepth() <= depth) {
1230
+ addChildren(nodes);
1231
+ }
1232
+ }
1233
+ const stage = this.getStage();
1234
+ if (that.nodeType !== UPPER_STAGE && stage) {
1235
+ addChildren(stage.getChildren());
1236
+ }
1237
+
1238
+ return index;
1239
+ }
1240
+ /**
1241
+ * get node depth in node tree. Returns an integer.
1242
+ * e.g. Stage depth will always be 0. Layers will always be 1. Groups and Shapes will always
1243
+ * be >= 2
1244
+ * @method
1245
+ * @name Konva.Node#getDepth
1246
+ * @returns {Integer}
1247
+ */
1248
+ getDepth() {
1249
+ let depth = 0,
1250
+ parent = this.parent;
1251
+
1252
+ while (parent) {
1253
+ depth++;
1254
+ parent = parent.parent;
1255
+ }
1256
+ return depth;
1257
+ }
1258
+
1259
+ // sometimes we do several attributes changes
1260
+ // like node.position(pos)
1261
+ // for performance reasons, lets batch transform reset
1262
+ // so it work faster
1263
+ _batchTransformChanges(func) {
1264
+ this._batchingTransformChange = true;
1265
+ func();
1266
+ this._batchingTransformChange = false;
1267
+ if (this._needClearTransformCache) {
1268
+ this._clearCache(TRANSFORM);
1269
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
1270
+ }
1271
+ this._needClearTransformCache = false;
1272
+ }
1273
+
1274
+ setPosition(pos: Vector2d) {
1275
+ this._batchTransformChanges(() => {
1276
+ this.x(pos.x);
1277
+ this.y(pos.y);
1278
+ });
1279
+ return this;
1280
+ }
1281
+ getPosition() {
1282
+ return {
1283
+ x: this.x(),
1284
+ y: this.y(),
1285
+ };
1286
+ }
1287
+ /**
1288
+ * get position of first pointer (like mouse or first touch) relative to local coordinates of current node
1289
+ * @method
1290
+ * @name Konva.Node#getRelativePointerPosition
1291
+ * @returns {Konva.Node}
1292
+ * @example
1293
+ *
1294
+ * // let's think we have a rectangle at position x = 10, y = 10
1295
+ * // now we clicked at x = 15, y = 15 of the stage
1296
+ * // if you want to know position of the click, related to the rectangle you can use
1297
+ * rect.getRelativePointerPosition();
1298
+ */
1299
+ getRelativePointerPosition() {
1300
+ const stage = this.getStage();
1301
+ if (!stage) {
1302
+ return null;
1303
+ }
1304
+ // get pointer (say mouse or touch) position
1305
+ const pos = stage.getPointerPosition();
1306
+ if (!pos) {
1307
+ return null;
1308
+ }
1309
+ const transform = this.getAbsoluteTransform().copy();
1310
+ // to detect relative position we need to invert transform
1311
+ transform.invert();
1312
+ // now we can find relative point
1313
+ return transform.point(pos);
1314
+ }
1315
+ /**
1316
+ * get absolute position of a node. That function can be used to calculate absolute position, but relative to any ancestor
1317
+ * @method
1318
+ * @name Konva.Node#getAbsolutePosition
1319
+ * @param {Object} Ancestor optional ancestor node
1320
+ * @returns {Konva.Node}
1321
+ * @example
1322
+ *
1323
+ * // returns absolute position relative to top-left corner of canvas
1324
+ * node.getAbsolutePosition();
1325
+ *
1326
+ * // calculate absolute position of node, inside stage
1327
+ * // so stage transforms are ignored
1328
+ * node.getAbsolutePosition(stage)
1329
+ */
1330
+ getAbsolutePosition(top?: Node) {
1331
+ let haveCachedParent = false;
1332
+ let parent = this.parent;
1333
+ while (parent) {
1334
+ if (parent.isCached()) {
1335
+ haveCachedParent = true;
1336
+ break;
1337
+ }
1338
+ parent = parent.parent;
1339
+ }
1340
+ if (haveCachedParent && !top) {
1341
+ // make fake top element
1342
+ // "true" is not a node, but it will just allow skip all caching
1343
+ top = true as any;
1344
+ }
1345
+ const absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(),
1346
+ absoluteTransform = new Transform(),
1347
+ offset = this.offset();
1348
+
1349
+ // clone the matrix array
1350
+ absoluteTransform.m = absoluteMatrix.slice();
1351
+ absoluteTransform.translate(offset.x, offset.y);
1352
+
1353
+ return absoluteTransform.getTranslation();
1354
+ }
1355
+ setAbsolutePosition(pos: Vector2d) {
1356
+ const { x, y, ...origTrans } = this._clearTransform();
1357
+
1358
+ // don't clear translation
1359
+ this.attrs.x = x;
1360
+ this.attrs.y = y;
1361
+
1362
+ // important, use non cached value
1363
+ this._clearCache(TRANSFORM);
1364
+ const it = this._getAbsoluteTransform().copy();
1365
+
1366
+ it.invert();
1367
+ it.translate(pos.x, pos.y);
1368
+ pos = {
1369
+ x: this.attrs.x + it.getTranslation().x,
1370
+ y: this.attrs.y + it.getTranslation().y,
1371
+ };
1372
+ this._setTransform(origTrans);
1373
+ this.setPosition({ x: pos.x, y: pos.y });
1374
+ this._clearCache(TRANSFORM);
1375
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
1376
+
1377
+ return this;
1378
+ }
1379
+ _setTransform(trans) {
1380
+ let key;
1381
+
1382
+ for (key in trans) {
1383
+ this.attrs[key] = trans[key];
1384
+ }
1385
+ // this._clearCache(TRANSFORM);
1386
+ // this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
1387
+ }
1388
+ _clearTransform() {
1389
+ const trans = {
1390
+ x: this.x(),
1391
+ y: this.y(),
1392
+ rotation: this.rotation(),
1393
+ scaleX: this.scaleX(),
1394
+ scaleY: this.scaleY(),
1395
+ offsetX: this.offsetX(),
1396
+ offsetY: this.offsetY(),
1397
+ skewX: this.skewX(),
1398
+ skewY: this.skewY(),
1399
+ };
1400
+
1401
+ this.attrs.x = 0;
1402
+ this.attrs.y = 0;
1403
+ this.attrs.rotation = 0;
1404
+ this.attrs.scaleX = 1;
1405
+ this.attrs.scaleY = 1;
1406
+ this.attrs.offsetX = 0;
1407
+ this.attrs.offsetY = 0;
1408
+ this.attrs.skewX = 0;
1409
+ this.attrs.skewY = 0;
1410
+
1411
+ // return original transform
1412
+ return trans;
1413
+ }
1414
+ /**
1415
+ * move node by an amount relative to its current position
1416
+ * @method
1417
+ * @name Konva.Node#move
1418
+ * @param {Object} change
1419
+ * @param {Number} change.x
1420
+ * @param {Number} change.y
1421
+ * @returns {Konva.Node}
1422
+ * @example
1423
+ * // move node in x direction by 1px and y direction by 2px
1424
+ * node.move({
1425
+ * x: 1,
1426
+ * y: 2
1427
+ * });
1428
+ */
1429
+ move(change: Vector2d) {
1430
+ let changeX = change.x,
1431
+ changeY = change.y,
1432
+ x = this.x(),
1433
+ y = this.y();
1434
+
1435
+ if (changeX !== undefined) {
1436
+ x += changeX;
1437
+ }
1438
+
1439
+ if (changeY !== undefined) {
1440
+ y += changeY;
1441
+ }
1442
+
1443
+ this.setPosition({ x: x, y: y });
1444
+ return this;
1445
+ }
1446
+ _eachAncestorReverse(func, top) {
1447
+ let family: Array<Node> = [],
1448
+ parent = this.getParent(),
1449
+ len,
1450
+ n;
1451
+
1452
+ // if top node is defined, and this node is top node,
1453
+ // there's no need to build a family tree. just execute
1454
+ // func with this because it will be the only node
1455
+ if (top && top._id === this._id) {
1456
+ // func(this);
1457
+ return;
1458
+ }
1459
+
1460
+ family.unshift(this);
1461
+
1462
+ while (parent && (!top || parent._id !== top._id)) {
1463
+ family.unshift(parent);
1464
+ parent = parent.parent;
1465
+ }
1466
+
1467
+ len = family.length;
1468
+ for (n = 0; n < len; n++) {
1469
+ func(family[n]);
1470
+ }
1471
+ }
1472
+ /**
1473
+ * rotate node by an amount in degrees relative to its current rotation
1474
+ * @method
1475
+ * @name Konva.Node#rotate
1476
+ * @param {Number} theta
1477
+ * @returns {Konva.Node}
1478
+ */
1479
+ rotate(theta: number) {
1480
+ this.rotation(this.rotation() + theta);
1481
+ return this;
1482
+ }
1483
+ /**
1484
+ * move node to the top of its siblings
1485
+ * @method
1486
+ * @name Konva.Node#moveToTop
1487
+ * @returns {Boolean}
1488
+ */
1489
+ moveToTop() {
1490
+ if (!this.parent) {
1491
+ Util.warn('Node has no parent. moveToTop function is ignored.');
1492
+ return false;
1493
+ }
1494
+ const index = this.index,
1495
+ len = this.parent.getChildren().length;
1496
+ if (index < len - 1) {
1497
+ this.parent.children.splice(index, 1);
1498
+ this.parent.children.push(this);
1499
+ this.parent._setChildrenIndices();
1500
+ return true;
1501
+ }
1502
+ return false;
1503
+ }
1504
+ /**
1505
+ * move node up
1506
+ * @method
1507
+ * @name Konva.Node#moveUp
1508
+ * @returns {Boolean} flag is moved or not
1509
+ */
1510
+ moveUp() {
1511
+ if (!this.parent) {
1512
+ Util.warn('Node has no parent. moveUp function is ignored.');
1513
+ return false;
1514
+ }
1515
+ const index = this.index,
1516
+ len = this.parent.getChildren().length;
1517
+ if (index < len - 1) {
1518
+ this.parent.children.splice(index, 1);
1519
+ this.parent.children.splice(index + 1, 0, this);
1520
+ this.parent._setChildrenIndices();
1521
+ return true;
1522
+ }
1523
+ return false;
1524
+ }
1525
+ /**
1526
+ * move node down
1527
+ * @method
1528
+ * @name Konva.Node#moveDown
1529
+ * @returns {Boolean}
1530
+ */
1531
+ moveDown() {
1532
+ if (!this.parent) {
1533
+ Util.warn('Node has no parent. moveDown function is ignored.');
1534
+ return false;
1535
+ }
1536
+ const index = this.index;
1537
+ if (index > 0) {
1538
+ this.parent.children.splice(index, 1);
1539
+ this.parent.children.splice(index - 1, 0, this);
1540
+ this.parent._setChildrenIndices();
1541
+ return true;
1542
+ }
1543
+ return false;
1544
+ }
1545
+ /**
1546
+ * move node to the bottom of its siblings
1547
+ * @method
1548
+ * @name Konva.Node#moveToBottom
1549
+ * @returns {Boolean}
1550
+ */
1551
+ moveToBottom() {
1552
+ if (!this.parent) {
1553
+ Util.warn('Node has no parent. moveToBottom function is ignored.');
1554
+ return false;
1555
+ }
1556
+ const index = this.index;
1557
+ if (index > 0) {
1558
+ this.parent.children.splice(index, 1);
1559
+ this.parent.children.unshift(this);
1560
+ this.parent._setChildrenIndices();
1561
+ return true;
1562
+ }
1563
+ return false;
1564
+ }
1565
+ setZIndex(zIndex) {
1566
+ if (!this.parent) {
1567
+ Util.warn('Node has no parent. zIndex parameter is ignored.');
1568
+ return this;
1569
+ }
1570
+ if (zIndex < 0 || zIndex >= this.parent.children.length) {
1571
+ Util.warn(
1572
+ 'Unexpected value ' +
1573
+ zIndex +
1574
+ ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +
1575
+ (this.parent.children.length - 1) +
1576
+ '.'
1577
+ );
1578
+ }
1579
+ const index = this.index;
1580
+ this.parent.children.splice(index, 1);
1581
+ this.parent.children.splice(zIndex, 0, this);
1582
+ this.parent._setChildrenIndices();
1583
+ return this;
1584
+ }
1585
+ /**
1586
+ * get absolute opacity
1587
+ * @method
1588
+ * @name Konva.Node#getAbsoluteOpacity
1589
+ * @returns {Number}
1590
+ */
1591
+ getAbsoluteOpacity() {
1592
+ return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);
1593
+ }
1594
+ _getAbsoluteOpacity() {
1595
+ let absOpacity = this.opacity();
1596
+ const parent = this.getParent();
1597
+ if (parent && !parent._isUnderCache) {
1598
+ absOpacity *= parent.getAbsoluteOpacity();
1599
+ }
1600
+ return absOpacity;
1601
+ }
1602
+ /**
1603
+ * move node to another container
1604
+ * @method
1605
+ * @name Konva.Node#moveTo
1606
+ * @param {Container} newContainer
1607
+ * @returns {Konva.Node}
1608
+ * @example
1609
+ * // move node from current layer into layer2
1610
+ * node.moveTo(layer2);
1611
+ */
1612
+ moveTo(newContainer: any) {
1613
+ // do nothing if new container is already parent
1614
+ if (this.getParent() !== newContainer) {
1615
+ this._remove();
1616
+ newContainer.add(this);
1617
+ }
1618
+ return this;
1619
+ }
1620
+ /**
1621
+ * convert Node into an object for serialization. Returns an object.
1622
+ * @method
1623
+ * @name Konva.Node#toObject
1624
+ * @returns {Object}
1625
+ */
1626
+ toObject() {
1627
+ let attrs = this.getAttrs() as any,
1628
+ key,
1629
+ val,
1630
+ getter,
1631
+ defaultValue,
1632
+ nonPlainObject;
1633
+
1634
+ const obj: {
1635
+ attrs: Config & Record<string, any>;
1636
+ className: string;
1637
+ children?: Array<any>;
1638
+ } = {
1639
+ attrs: {} as Config & Record<string, any>,
1640
+ className: this.getClassName(),
1641
+ };
1642
+
1643
+ for (key in attrs) {
1644
+ val = attrs[key];
1645
+ // if value is object and object is not plain
1646
+ // like class instance, we should skip it and to not include
1647
+ nonPlainObject =
1648
+ Util.isObject(val) && !Util._isPlainObject(val) && !Util._isArray(val);
1649
+ if (nonPlainObject) {
1650
+ continue;
1651
+ }
1652
+ getter = typeof this[key] === 'function' && this[key];
1653
+ // remove attr value so that we can extract the default value from the getter
1654
+ delete attrs[key];
1655
+ defaultValue = getter ? getter.call(this) : null;
1656
+ // restore attr value
1657
+ attrs[key] = val;
1658
+ if (defaultValue !== val) {
1659
+ (obj.attrs as any)[key] = val;
1660
+ }
1661
+ }
1662
+
1663
+ return Util._prepareToStringify(obj) as typeof obj;
1664
+ }
1665
+ /**
1666
+ * convert Node into a JSON string. Returns a JSON string.
1667
+ * @method
1668
+ * @name Konva.Node#toJSON
1669
+ * @returns {String}
1670
+ */
1671
+ toJSON() {
1672
+ return JSON.stringify(this.toObject());
1673
+ }
1674
+ /**
1675
+ * get parent container
1676
+ * @method
1677
+ * @name Konva.Node#getParent
1678
+ * @returns {Konva.Node}
1679
+ */
1680
+ getParent() {
1681
+ return this.parent;
1682
+ }
1683
+ /**
1684
+ * get all ancestors (parent then parent of the parent, etc) of the node
1685
+ * @method
1686
+ * @name Konva.Node#findAncestors
1687
+ * @param {String} selector selector for search
1688
+ * @param {Boolean} [includeSelf] show we think that node is ancestro itself?
1689
+ * @param {Konva.Node} [stopNode] optional node where we need to stop searching (one of ancestors)
1690
+ * @returns {Array} [ancestors]
1691
+ * @example
1692
+ * // get one of the parent group
1693
+ * var parentGroups = node.findAncestors('Group');
1694
+ */
1695
+ findAncestors(
1696
+ selector: string | Function,
1697
+ includeSelf?: boolean,
1698
+ stopNode?: Node
1699
+ ) {
1700
+ const res: Array<Node> = [];
1701
+
1702
+ if (includeSelf && this._isMatch(selector)) {
1703
+ res.push(this);
1704
+ }
1705
+ let ancestor = this.parent;
1706
+ while (ancestor) {
1707
+ if (ancestor === stopNode) {
1708
+ return res;
1709
+ }
1710
+ if (ancestor._isMatch(selector)) {
1711
+ res.push(ancestor);
1712
+ }
1713
+ ancestor = ancestor.parent;
1714
+ }
1715
+ return res;
1716
+ }
1717
+ isAncestorOf(node: Node) {
1718
+ return false;
1719
+ }
1720
+ /**
1721
+ * get ancestor (parent or parent of the parent, etc) of the node that match passed selector
1722
+ * @method
1723
+ * @name Konva.Node#findAncestor
1724
+ * @param {String} selector selector for search
1725
+ * @param {Boolean} [includeSelf] show we think that node is ancestro itself?
1726
+ * @param {Konva.Node} [stopNode] optional node where we need to stop searching (one of ancestors)
1727
+ * @returns {Konva.Node} ancestor
1728
+ * @example
1729
+ * // get one of the parent group
1730
+ * var group = node.findAncestors('.mygroup');
1731
+ */
1732
+ findAncestor(
1733
+ selector: string | Function,
1734
+ includeSelf?: boolean,
1735
+ stopNode?: Container
1736
+ ) {
1737
+ return this.findAncestors(selector, includeSelf, stopNode)[0];
1738
+ }
1739
+ // is current node match passed selector?
1740
+ _isMatch(selector: string | Function) {
1741
+ if (!selector) {
1742
+ return false;
1743
+ }
1744
+ if (typeof selector === 'function') {
1745
+ return selector(this);
1746
+ }
1747
+ let selectorArr = selector.replace(/ /g, '').split(','),
1748
+ len = selectorArr.length,
1749
+ n,
1750
+ sel;
1751
+
1752
+ for (n = 0; n < len; n++) {
1753
+ sel = selectorArr[n];
1754
+ if (!Util.isValidSelector(sel)) {
1755
+ Util.warn(
1756
+ 'Selector "' +
1757
+ sel +
1758
+ '" is invalid. Allowed selectors examples are "#foo", ".bar" or "Group".'
1759
+ );
1760
+ Util.warn(
1761
+ 'If you have a custom shape with such className, please change it to start with upper letter like "Triangle".'
1762
+ );
1763
+ Util.warn('Konva is awesome, right?');
1764
+ }
1765
+ // id selector
1766
+ if (sel.charAt(0) === '#') {
1767
+ if (this.id() === sel.slice(1)) {
1768
+ return true;
1769
+ }
1770
+ } else if (sel.charAt(0) === '.') {
1771
+ // name selector
1772
+ if (this.hasName(sel.slice(1))) {
1773
+ return true;
1774
+ }
1775
+ } else if (this.className === sel || this.nodeType === sel) {
1776
+ return true;
1777
+ }
1778
+ }
1779
+ return false;
1780
+ }
1781
+ /**
1782
+ * get layer ancestor
1783
+ * @method
1784
+ * @name Konva.Node#getLayer
1785
+ * @returns {Konva.Layer}
1786
+ */
1787
+ getLayer(): Layer | null {
1788
+ const parent = this.getParent();
1789
+ return parent ? parent.getLayer() : null;
1790
+ }
1791
+ /**
1792
+ * get stage ancestor
1793
+ * @method
1794
+ * @name Konva.Node#getStage
1795
+ * @returns {Konva.Stage}
1796
+ */
1797
+ getStage(): Stage | null {
1798
+ return this._getCache(STAGE, this._getStage);
1799
+ }
1800
+
1801
+ _getStage() {
1802
+ const parent = this.getParent();
1803
+ if (parent) {
1804
+ return parent.getStage();
1805
+ } else {
1806
+ return null;
1807
+ }
1808
+ }
1809
+ /**
1810
+ * fire event
1811
+ * @method
1812
+ * @name Konva.Node#fire
1813
+ * @param {String} eventType event type. can be a regular event, like click, mouseover, or mouseout, or it can be a custom event, like myCustomEvent
1814
+ * @param {Event} [evt] event object
1815
+ * @param {Boolean} [bubble] setting the value to false, or leaving it undefined, will result in the event
1816
+ * not bubbling. Setting the value to true will result in the event bubbling.
1817
+ * @returns {Konva.Node}
1818
+ * @example
1819
+ * // manually fire click event
1820
+ * node.fire('click');
1821
+ *
1822
+ * // fire custom event
1823
+ * node.fire('foo');
1824
+ *
1825
+ * // fire custom event with custom event object
1826
+ * node.fire('foo', {
1827
+ * bar: 10
1828
+ * });
1829
+ *
1830
+ * // fire click event that bubbles
1831
+ * node.fire('click', null, true);
1832
+ */
1833
+ fire(eventType: string, evt: any = {}, bubble?: boolean) {
1834
+ evt.target = evt.target || this;
1835
+ // bubble
1836
+ if (bubble) {
1837
+ this._fireAndBubble(eventType, evt);
1838
+ } else {
1839
+ // no bubble
1840
+ this._fire(eventType, evt);
1841
+ }
1842
+ return this;
1843
+ }
1844
+ /**
1845
+ * get absolute transform of the node which takes into
1846
+ * account its ancestor transforms
1847
+ * @method
1848
+ * @name Konva.Node#getAbsoluteTransform
1849
+ * @returns {Konva.Transform}
1850
+ */
1851
+ getAbsoluteTransform(top?: Node | null) {
1852
+ // if using an argument, we can't cache the result.
1853
+ if (top) {
1854
+ return this._getAbsoluteTransform(top);
1855
+ } else {
1856
+ // if no argument, we can cache the result
1857
+ return this._getCache(
1858
+ ABSOLUTE_TRANSFORM,
1859
+ this._getAbsoluteTransform
1860
+ ) as Transform;
1861
+ }
1862
+ }
1863
+ _getAbsoluteTransform(top?: Node) {
1864
+ let at: Transform;
1865
+ // we we need position relative to an ancestor, we will iterate for all
1866
+ if (top) {
1867
+ at = new Transform();
1868
+ // start with stage and traverse downwards to self
1869
+ this._eachAncestorReverse(function (node: Node) {
1870
+ const transformsEnabled = node.transformsEnabled();
1871
+
1872
+ if (transformsEnabled === 'all') {
1873
+ at.multiply(node.getTransform());
1874
+ } else if (transformsEnabled === 'position') {
1875
+ at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());
1876
+ }
1877
+ }, top);
1878
+ return at;
1879
+ } else {
1880
+ // try to use a cached value
1881
+ at = this._cache.get(ABSOLUTE_TRANSFORM) || new Transform();
1882
+ if (this.parent) {
1883
+ // transform will be cached
1884
+ this.parent.getAbsoluteTransform().copyInto(at);
1885
+ } else {
1886
+ at.reset();
1887
+ }
1888
+ const transformsEnabled = this.transformsEnabled();
1889
+ if (transformsEnabled === 'all') {
1890
+ at.multiply(this.getTransform());
1891
+ } else if (transformsEnabled === 'position') {
1892
+ // use "attrs" directly, because it is a bit faster
1893
+ const x = this.attrs.x || 0;
1894
+ const y = this.attrs.y || 0;
1895
+ const offsetX = this.attrs.offsetX || 0;
1896
+ const offsetY = this.attrs.offsetY || 0;
1897
+
1898
+ at.translate(x - offsetX, y - offsetY);
1899
+ }
1900
+ at.dirty = false;
1901
+ return at;
1902
+ }
1903
+ }
1904
+ /**
1905
+ * get absolute scale of the node which takes into
1906
+ * account its ancestor scales
1907
+ * @method
1908
+ * @name Konva.Node#getAbsoluteScale
1909
+ * @returns {Object}
1910
+ * @example
1911
+ * // get absolute scale x
1912
+ * var scaleX = node.getAbsoluteScale().x;
1913
+ */
1914
+ getAbsoluteScale(top?: Node) {
1915
+ // do not cache this calculations,
1916
+ // because it use cache transform
1917
+ // this is special logic for caching with some shapes with shadow
1918
+ let parent: Node | null = this;
1919
+ while (parent) {
1920
+ if (parent._isUnderCache) {
1921
+ top = parent;
1922
+ }
1923
+ parent = parent.getParent();
1924
+ }
1925
+
1926
+ const transform = this.getAbsoluteTransform(top);
1927
+ const attrs = transform.decompose();
1928
+
1929
+ return {
1930
+ x: attrs.scaleX,
1931
+ y: attrs.scaleY,
1932
+ };
1933
+ }
1934
+ /**
1935
+ * get absolute rotation of the node which takes into
1936
+ * account its ancestor rotations
1937
+ * @method
1938
+ * @name Konva.Node#getAbsoluteRotation
1939
+ * @returns {Number}
1940
+ * @example
1941
+ * // get absolute rotation
1942
+ * var rotation = node.getAbsoluteRotation();
1943
+ */
1944
+ getAbsoluteRotation() {
1945
+ // var parent: Node = this;
1946
+ // var rotation = 0;
1947
+
1948
+ // while (parent) {
1949
+ // rotation += parent.rotation();
1950
+ // parent = parent.getParent();
1951
+ // }
1952
+ // return rotation;
1953
+ return this.getAbsoluteTransform().decompose().rotation;
1954
+ }
1955
+ /**
1956
+ * get transform of the node
1957
+ * @method
1958
+ * @name Konva.Node#getTransform
1959
+ * @returns {Konva.Transform}
1960
+ */
1961
+ getTransform() {
1962
+ return this._getCache(TRANSFORM, this._getTransform) as Transform;
1963
+ }
1964
+ _getTransform(): Transform {
1965
+ const m: Transform = this._cache.get(TRANSFORM) || new Transform();
1966
+ m.reset();
1967
+
1968
+ // I was trying to use attributes directly here
1969
+ // but it doesn't work for Transformer well
1970
+ // because it overwrite x,y getters
1971
+ const x = this.x(),
1972
+ y = this.y(),
1973
+ rotation = Konva.getAngle(this.rotation()),
1974
+ scaleX = this.attrs.scaleX ?? 1,
1975
+ scaleY = this.attrs.scaleY ?? 1,
1976
+ skewX = this.attrs.skewX || 0,
1977
+ skewY = this.attrs.skewY || 0,
1978
+ offsetX = this.attrs.offsetX || 0,
1979
+ offsetY = this.attrs.offsetY || 0;
1980
+
1981
+ if (x !== 0 || y !== 0) {
1982
+ m.translate(x, y);
1983
+ }
1984
+ if (rotation !== 0) {
1985
+ m.rotate(rotation);
1986
+ }
1987
+ if (skewX !== 0 || skewY !== 0) {
1988
+ m.skew(skewX, skewY);
1989
+ }
1990
+ if (scaleX !== 1 || scaleY !== 1) {
1991
+ m.scale(scaleX, scaleY);
1992
+ }
1993
+ if (offsetX !== 0 || offsetY !== 0) {
1994
+ m.translate(-1 * offsetX, -1 * offsetY);
1995
+ }
1996
+
1997
+ m.dirty = false;
1998
+
1999
+ return m;
2000
+ }
2001
+ /**
2002
+ * clone node. Returns a new Node instance with identical attributes. You can also override
2003
+ * the node properties with an object literal, enabling you to use an existing node as a template
2004
+ * for another node
2005
+ * @method
2006
+ * @name Konva.Node#clone
2007
+ * @param {Object} obj override attrs
2008
+ * @returns {Konva.Node}
2009
+ * @example
2010
+ * // simple clone
2011
+ * var clone = node.clone();
2012
+ *
2013
+ * // clone a node and override the x position
2014
+ * var clone = rect.clone({
2015
+ * x: 5
2016
+ * });
2017
+ */
2018
+ clone(obj?: any) {
2019
+ // instantiate new node
2020
+ let attrs = Util.cloneObject(this.attrs),
2021
+ key,
2022
+ allListeners,
2023
+ len,
2024
+ n,
2025
+ listener;
2026
+ // apply attr overrides
2027
+ for (key in obj) {
2028
+ attrs[key] = obj[key];
2029
+ }
2030
+
2031
+ const node = new (this.constructor as any)(attrs);
2032
+ // copy over listeners
2033
+ for (key in this.eventListeners) {
2034
+ allListeners = this.eventListeners[key];
2035
+ len = allListeners.length;
2036
+ for (n = 0; n < len; n++) {
2037
+ listener = allListeners[n];
2038
+ /*
2039
+ * don't include konva namespaced listeners because
2040
+ * these are generated by the constructors
2041
+ */
2042
+ if (listener.name.indexOf(KONVA) < 0) {
2043
+ // if listeners array doesn't exist, then create it
2044
+ if (!node.eventListeners[key]) {
2045
+ node.eventListeners[key] = [];
2046
+ }
2047
+ node.eventListeners[key].push(listener);
2048
+ }
2049
+ }
2050
+ }
2051
+ return node;
2052
+ }
2053
+ _toKonvaCanvas(config) {
2054
+ config = config || {};
2055
+
2056
+ const box = this.getClientRect();
2057
+
2058
+ const stage = this.getStage(),
2059
+ x = config.x !== undefined ? config.x : Math.floor(box.x),
2060
+ y = config.y !== undefined ? config.y : Math.floor(box.y),
2061
+ pixelRatio = config.pixelRatio || 1,
2062
+ canvas = new SceneCanvas({
2063
+ width:
2064
+ config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),
2065
+ height:
2066
+ config.height ||
2067
+ Math.ceil(box.height) ||
2068
+ (stage ? stage.height() : 0),
2069
+ pixelRatio: pixelRatio,
2070
+ }),
2071
+ context = canvas.getContext();
2072
+
2073
+ const bufferCanvas = new SceneCanvas({
2074
+ // width and height already multiplied by pixelRatio
2075
+ // so we need to revert that
2076
+ // also increase size by x nd y offset to make sure content fits canvas
2077
+ width: canvas.width / canvas.pixelRatio + Math.abs(x),
2078
+ height: canvas.height / canvas.pixelRatio + Math.abs(y),
2079
+ pixelRatio: canvas.pixelRatio,
2080
+ });
2081
+
2082
+ if (config.imageSmoothingEnabled === false) {
2083
+ context._context.imageSmoothingEnabled = false;
2084
+ }
2085
+ context.save();
2086
+
2087
+ if (x || y) {
2088
+ context.translate(-1 * x, -1 * y);
2089
+ }
2090
+
2091
+ this.drawScene(canvas, undefined, bufferCanvas);
2092
+ context.restore();
2093
+
2094
+ return canvas;
2095
+ }
2096
+ /**
2097
+ * converts node into an canvas element.
2098
+ * @method
2099
+ * @name Konva.Node#toCanvas
2100
+ * @param {Object} config
2101
+ * @param {Function} config.callback function executed when the composite has completed
2102
+ * @param {Number} [config.x] x position of canvas section
2103
+ * @param {Number} [config.y] y position of canvas section
2104
+ * @param {Number} [config.width] width of canvas section
2105
+ * @param {Number} [config.height] height of canvas section
2106
+ * @param {Number} [config.pixelRatio] pixelRatio of output canvas. Default is 1.
2107
+ * You can use that property to increase quality of the image, for example for super hight quality exports
2108
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
2109
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
2110
+ * @param {Boolean} [config.imageSmoothingEnabled] set this to false if you want to disable imageSmoothing
2111
+ * @example
2112
+ * var canvas = node.toCanvas();
2113
+ */
2114
+ toCanvas(config?) {
2115
+ return this._toKonvaCanvas(config)._canvas;
2116
+ }
2117
+ /**
2118
+ * Creates a composite data URL (base64 string). If MIME type is not
2119
+ * specified, then "image/png" will result. For "image/jpeg", specify a quality
2120
+ * level as quality (range 0.0 - 1.0)
2121
+ * @method
2122
+ * @name Konva.Node#toDataURL
2123
+ * @param {Object} config
2124
+ * @param {String} [config.mimeType] can be "image/png" or "image/jpeg".
2125
+ * "image/png" is the default
2126
+ * @param {Number} [config.x] x position of canvas section
2127
+ * @param {Number} [config.y] y position of canvas section
2128
+ * @param {Number} [config.width] width of canvas section
2129
+ * @param {Number} [config.height] height of canvas section
2130
+ * @param {Number} [config.quality] jpeg quality. If using an "image/jpeg" mimeType,
2131
+ * you can specify the quality from 0 to 1, where 0 is very poor quality and 1
2132
+ * is very high quality
2133
+ * @param {Number} [config.pixelRatio] pixelRatio of output image url. Default is 1.
2134
+ * You can use that property to increase quality of the image, for example for super hight quality exports
2135
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
2136
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
2137
+ * @param {Boolean} [config.imageSmoothingEnabled] set this to false if you want to disable imageSmoothing
2138
+ * @returns {String}
2139
+ */
2140
+ toDataURL(config?: {
2141
+ x?: number;
2142
+ y?: number;
2143
+ width?: number;
2144
+ height?: number;
2145
+ pixelRatio?: number;
2146
+ mimeType?: string;
2147
+ quality?: number;
2148
+ callback?: (str: string) => void;
2149
+ }) {
2150
+ config = config || {};
2151
+ const mimeType = config.mimeType || null,
2152
+ quality = config.quality || null;
2153
+ const url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);
2154
+ if (config.callback) {
2155
+ config.callback(url);
2156
+ }
2157
+ return url;
2158
+ }
2159
+ /**
2160
+ * converts node into an image. Since the toImage
2161
+ * method is asynchronous, the resulting image can only be retrieved from the config callback
2162
+ * or the returned Promise. toImage is most commonly used
2163
+ * to cache complex drawings as an image so that they don't have to constantly be redrawn
2164
+ * @method
2165
+ * @name Konva.Node#toImage
2166
+ * @param {Object} config
2167
+ * @param {Function} [config.callback] function executed when the composite has completed
2168
+ * @param {String} [config.mimeType] can be "image/png" or "image/jpeg".
2169
+ * "image/png" is the default
2170
+ * @param {Number} [config.x] x position of canvas section
2171
+ * @param {Number} [config.y] y position of canvas section
2172
+ * @param {Number} [config.width] width of canvas section
2173
+ * @param {Number} [config.height] height of canvas section
2174
+ * @param {Number} [config.quality] jpeg quality. If using an "image/jpeg" mimeType,
2175
+ * you can specify the quality from 0 to 1, where 0 is very poor quality and 1
2176
+ * is very high quality
2177
+ * @param {Number} [config.pixelRatio] pixelRatio of output image. Default is 1.
2178
+ * You can use that property to increase quality of the image, for example for super hight quality exports
2179
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
2180
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
2181
+ * @param {Boolean} [config.imageSmoothingEnabled] set this to false if you want to disable imageSmoothing
2182
+ * @return {Promise<Image>}
2183
+ * @example
2184
+ * var image = node.toImage({
2185
+ * callback(img) {
2186
+ * // do stuff with img
2187
+ * }
2188
+ * });
2189
+ */
2190
+ toImage(config?: {
2191
+ x?: number;
2192
+ y?: number;
2193
+ width?: number;
2194
+ height?: number;
2195
+ pixelRatio?: number;
2196
+ mimeType?: string;
2197
+ quality?: number;
2198
+ callback?: (img: HTMLImageElement) => void;
2199
+ }) {
2200
+ return new Promise<HTMLImageElement>((resolve, reject) => {
2201
+ try {
2202
+ const callback = config?.callback;
2203
+ if (callback) delete config.callback;
2204
+ Util._urlToImage(this.toDataURL(config as any), function (img) {
2205
+ resolve(img);
2206
+ callback?.(img);
2207
+ });
2208
+ } catch (err) {
2209
+ reject(err);
2210
+ }
2211
+ });
2212
+ }
2213
+ /**
2214
+ * Converts node into a blob. Since the toBlob method is asynchronous,
2215
+ * the resulting blob can only be retrieved from the config callback
2216
+ * or the returned Promise.
2217
+ * @method
2218
+ * @name Konva.Node#toBlob
2219
+ * @param {Object} config
2220
+ * @param {Function} [config.callback] function executed when the composite has completed
2221
+ * @param {Number} [config.x] x position of canvas section
2222
+ * @param {Number} [config.y] y position of canvas section
2223
+ * @param {Number} [config.width] width of canvas section
2224
+ * @param {Number} [config.height] height of canvas section
2225
+ * @param {Number} [config.pixelRatio] pixelRatio of output canvas. Default is 1.
2226
+ * You can use that property to increase quality of the image, for example for super hight quality exports
2227
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
2228
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
2229
+ * @param {Boolean} [config.imageSmoothingEnabled] set this to false if you want to disable imageSmoothing
2230
+ * @example
2231
+ * var blob = await node.toBlob({});
2232
+ * @returns {Promise<Blob>}
2233
+ */
2234
+ toBlob(config?: {
2235
+ x?: number;
2236
+ y?: number;
2237
+ width?: number;
2238
+ height?: number;
2239
+ pixelRatio?: number;
2240
+ mimeType?: string;
2241
+ quality?: number;
2242
+ callback?: (blob: Blob | null) => void;
2243
+ }) {
2244
+ return new Promise((resolve, reject) => {
2245
+ try {
2246
+ const callback = config?.callback;
2247
+ if (callback) delete config.callback;
2248
+ this.toCanvas(config).toBlob(
2249
+ (blob) => {
2250
+ resolve(blob);
2251
+ callback?.(blob);
2252
+ },
2253
+ config?.mimeType,
2254
+ config?.quality
2255
+ );
2256
+ } catch (err) {
2257
+ reject(err);
2258
+ }
2259
+ });
2260
+ }
2261
+ setSize(size) {
2262
+ this.width(size.width);
2263
+ this.height(size.height);
2264
+ return this;
2265
+ }
2266
+ getSize() {
2267
+ return {
2268
+ width: this.width(),
2269
+ height: this.height(),
2270
+ };
2271
+ }
2272
+ /**
2273
+ * get class name, which may return Stage, Layer, Group, or shape class names like Rect, Circle, Text, etc.
2274
+ * @method
2275
+ * @name Konva.Node#getClassName
2276
+ * @returns {String}
2277
+ */
2278
+ getClassName() {
2279
+ return this.className || this.nodeType;
2280
+ }
2281
+ /**
2282
+ * get the node type, which may return Stage, Layer, Group, or Shape
2283
+ * @method
2284
+ * @name Konva.Node#getType
2285
+ * @returns {String}
2286
+ */
2287
+ getType() {
2288
+ return this.nodeType;
2289
+ }
2290
+ getDragDistance(): number {
2291
+ // compare with undefined because we need to track 0 value
2292
+ if (this.attrs.dragDistance !== undefined) {
2293
+ return this.attrs.dragDistance;
2294
+ } else if (this.parent) {
2295
+ return this.parent.getDragDistance();
2296
+ } else {
2297
+ return Konva.dragDistance;
2298
+ }
2299
+ }
2300
+ _off(type, name?, callback?) {
2301
+ let evtListeners = this.eventListeners[type],
2302
+ i,
2303
+ evtName,
2304
+ handler;
2305
+
2306
+ for (i = 0; i < evtListeners.length; i++) {
2307
+ evtName = evtListeners[i].name;
2308
+ handler = evtListeners[i].handler;
2309
+
2310
+ // the following two conditions must be true in order to remove a handler:
2311
+ // 1) the current event name cannot be konva unless the event name is konva
2312
+ // this enables developers to force remove a konva specific listener for whatever reason
2313
+ // 2) an event name is not specified, or if one is specified, it matches the current event name
2314
+ if (
2315
+ (evtName !== 'konva' || name === 'konva') &&
2316
+ (!name || evtName === name) &&
2317
+ (!callback || callback === handler)
2318
+ ) {
2319
+ evtListeners.splice(i, 1);
2320
+ if (evtListeners.length === 0) {
2321
+ delete this.eventListeners[type];
2322
+ break;
2323
+ }
2324
+ i--;
2325
+ }
2326
+ }
2327
+ }
2328
+ _fireChangeEvent(attr, oldVal, newVal) {
2329
+ this._fire(attr + CHANGE, {
2330
+ oldVal: oldVal,
2331
+ newVal: newVal,
2332
+ });
2333
+ }
2334
+ /**
2335
+ * add name to node
2336
+ * @method
2337
+ * @name Konva.Node#addName
2338
+ * @param {String} name
2339
+ * @returns {Konva.Node}
2340
+ * @example
2341
+ * node.name('red');
2342
+ * node.addName('selected');
2343
+ * node.name(); // return 'red selected'
2344
+ */
2345
+ addName(name: string) {
2346
+ if (!this.hasName(name)) {
2347
+ const oldName = this.name();
2348
+ const newName = oldName ? oldName + ' ' + name : name;
2349
+ this.name(newName);
2350
+ }
2351
+ return this;
2352
+ }
2353
+ /**
2354
+ * check is node has name
2355
+ * @method
2356
+ * @name Konva.Node#hasName
2357
+ * @param {String} name
2358
+ * @returns {Boolean}
2359
+ * @example
2360
+ * node.name('red');
2361
+ * node.hasName('red'); // return true
2362
+ * node.hasName('selected'); // return false
2363
+ * node.hasName(''); // return false
2364
+ */
2365
+ hasName(name) {
2366
+ if (!name) {
2367
+ return false;
2368
+ }
2369
+ const fullName = this.name();
2370
+ if (!fullName) {
2371
+ return false;
2372
+ }
2373
+ // if name is '' the "names" will be [''], so I added extra check above
2374
+ const names = (fullName || '').split(/\s/g);
2375
+ return names.indexOf(name) !== -1;
2376
+ }
2377
+ /**
2378
+ * remove name from node
2379
+ * @method
2380
+ * @name Konva.Node#removeName
2381
+ * @param {String} name
2382
+ * @returns {Konva.Node}
2383
+ * @example
2384
+ * node.name('red selected');
2385
+ * node.removeName('selected');
2386
+ * node.hasName('selected'); // return false
2387
+ * node.name(); // return 'red'
2388
+ */
2389
+ removeName(name) {
2390
+ const names = (this.name() || '').split(/\s/g);
2391
+ const index = names.indexOf(name);
2392
+ if (index !== -1) {
2393
+ names.splice(index, 1);
2394
+ this.name(names.join(' '));
2395
+ }
2396
+ return this;
2397
+ }
2398
+ /**
2399
+ * set attr
2400
+ * @method
2401
+ * @name Konva.Node#setAttr
2402
+ * @param {String} attr
2403
+ * @param {*} val
2404
+ * @returns {Konva.Node}
2405
+ * @example
2406
+ * node.setAttr('x', 5);
2407
+ */
2408
+ setAttr(attr: string, val) {
2409
+ const func = this[SET + Util._capitalize(attr)];
2410
+
2411
+ if (Util._isFunction(func)) {
2412
+ func.call(this, val);
2413
+ } else {
2414
+ // otherwise set directly
2415
+ this._setAttr(attr, val);
2416
+ }
2417
+ return this;
2418
+ }
2419
+ _requestDraw() {
2420
+ if (Konva.autoDrawEnabled) {
2421
+ const drawNode = this.getLayer() || this.getStage();
2422
+ drawNode?.batchDraw();
2423
+ }
2424
+ }
2425
+ _setAttr(key: string, val) {
2426
+ const oldVal = this.attrs[key];
2427
+ if (oldVal === val && !Util.isObject(val)) {
2428
+ return;
2429
+ }
2430
+ if (val === undefined || val === null) {
2431
+ delete this.attrs[key];
2432
+ } else {
2433
+ this.attrs[key] = val;
2434
+ }
2435
+ if (this._shouldFireChangeEvents) {
2436
+ this._fireChangeEvent(key, oldVal, val);
2437
+ }
2438
+ this._requestDraw();
2439
+ }
2440
+ _setComponentAttr(key, component, val) {
2441
+ let oldVal;
2442
+ if (val !== undefined) {
2443
+ oldVal = this.attrs[key];
2444
+
2445
+ if (!oldVal) {
2446
+ // set value to default value using getAttr
2447
+ this.attrs[key] = this.getAttr(key);
2448
+ }
2449
+
2450
+ this.attrs[key][component] = val;
2451
+ this._fireChangeEvent(key, oldVal, val);
2452
+ }
2453
+ }
2454
+ _fireAndBubble(eventType, evt, compareShape?) {
2455
+ if (evt && this.nodeType === SHAPE) {
2456
+ evt.target = this;
2457
+ }
2458
+
2459
+ const nonBubbling = [
2460
+ MOUSEENTER,
2461
+ MOUSELEAVE,
2462
+ POINTERENTER,
2463
+ POINTERLEAVE,
2464
+ TOUCHENTER,
2465
+ TOUCHLEAVE,
2466
+ ];
2467
+
2468
+ const shouldStop =
2469
+ nonBubbling.indexOf(eventType) !== -1 &&
2470
+ ((compareShape &&
2471
+ (this === compareShape ||
2472
+ (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||
2473
+ (this.nodeType === 'Stage' && !compareShape));
2474
+
2475
+ if (!shouldStop) {
2476
+ this._fire(eventType, evt);
2477
+
2478
+ // simulate event bubbling
2479
+ const stopBubble =
2480
+ nonBubbling.indexOf(eventType) !== -1 &&
2481
+ compareShape &&
2482
+ compareShape.isAncestorOf &&
2483
+ compareShape.isAncestorOf(this) &&
2484
+ !compareShape.isAncestorOf(this.parent);
2485
+ if (
2486
+ ((evt && !evt.cancelBubble) || !evt) &&
2487
+ this.parent &&
2488
+ this.parent.isListening() &&
2489
+ !stopBubble
2490
+ ) {
2491
+ if (compareShape && compareShape.parent) {
2492
+ this._fireAndBubble.call(this.parent, eventType, evt, compareShape);
2493
+ } else {
2494
+ this._fireAndBubble.call(this.parent, eventType, evt);
2495
+ }
2496
+ }
2497
+ }
2498
+ }
2499
+
2500
+ _getProtoListeners(eventType) {
2501
+ const allListeners = this._cache.get(ALL_LISTENERS) ?? {};
2502
+ let events = allListeners?.[eventType];
2503
+ if (events === undefined) {
2504
+ //recalculate cache
2505
+ events = [];
2506
+ let obj = Object.getPrototypeOf(this);
2507
+ while (obj) {
2508
+ const hierarchyEvents = obj.eventListeners?.[eventType] ?? [];
2509
+ events.push(...hierarchyEvents);
2510
+ obj = Object.getPrototypeOf(obj);
2511
+ }
2512
+ // update cache
2513
+ allListeners[eventType] = events;
2514
+ this._cache.set(ALL_LISTENERS, allListeners);
2515
+ }
2516
+
2517
+ return events;
2518
+ }
2519
+ _fire(eventType, evt) {
2520
+ evt = evt || {};
2521
+ evt.currentTarget = this;
2522
+ evt.type = eventType;
2523
+
2524
+ const topListeners = this._getProtoListeners(eventType);
2525
+ if (topListeners) {
2526
+ for (let i = 0; i < topListeners.length; i++) {
2527
+ topListeners[i].handler.call(this, evt);
2528
+ }
2529
+ }
2530
+
2531
+ // it is important to iterate over self listeners without cache
2532
+ // because events can be added/removed while firing
2533
+ const selfListeners = this.eventListeners[eventType];
2534
+ if (selfListeners) {
2535
+ for (let i = 0; i < selfListeners.length; i++) {
2536
+ selfListeners[i].handler.call(this, evt);
2537
+ }
2538
+ }
2539
+ }
2540
+ /**
2541
+ * draw both scene and hit graphs. If the node being drawn is the stage, all of the layers will be cleared and redrawn
2542
+ * @method
2543
+ * @name Konva.Node#draw
2544
+ * @returns {Konva.Node}
2545
+ */
2546
+ draw() {
2547
+ this.drawScene();
2548
+ this.drawHit();
2549
+ return this;
2550
+ }
2551
+
2552
+ // drag & drop
2553
+ _createDragElement(evt) {
2554
+ const pointerId = evt ? evt.pointerId : undefined;
2555
+ const stage = this.getStage();
2556
+ const ap = this.getAbsolutePosition();
2557
+ if (!stage) {
2558
+ return;
2559
+ }
2560
+ const pos =
2561
+ stage._getPointerById(pointerId) ||
2562
+ stage._changedPointerPositions[0] ||
2563
+ ap;
2564
+ DD._dragElements.set(this._id, {
2565
+ node: this,
2566
+ startPointerPos: pos,
2567
+ offset: {
2568
+ x: pos.x - ap.x,
2569
+ y: pos.y - ap.y,
2570
+ },
2571
+ dragStatus: 'ready',
2572
+ pointerId,
2573
+ });
2574
+ }
2575
+
2576
+ /**
2577
+ * initiate drag and drop.
2578
+ * @method
2579
+ * @name Konva.Node#startDrag
2580
+ */
2581
+ startDrag(evt?: any, bubbleEvent = true) {
2582
+ if (!DD._dragElements.has(this._id)) {
2583
+ this._createDragElement(evt);
2584
+ }
2585
+
2586
+ const elem = DD._dragElements.get(this._id)!;
2587
+ elem.dragStatus = 'dragging';
2588
+ this.fire(
2589
+ 'dragstart',
2590
+ {
2591
+ type: 'dragstart',
2592
+ target: this,
2593
+ evt: evt && evt.evt,
2594
+ },
2595
+ bubbleEvent
2596
+ );
2597
+ }
2598
+
2599
+ _setDragPosition(evt, elem) {
2600
+ // const pointers = this.getStage().getPointersPositions();
2601
+ // const pos = pointers.find(p => p.id === this._dragEventId);
2602
+ const pos = this.getStage()!._getPointerById(elem.pointerId);
2603
+
2604
+ if (!pos) {
2605
+ return;
2606
+ }
2607
+ let newNodePos = {
2608
+ x: pos.x - elem.offset.x,
2609
+ y: pos.y - elem.offset.y,
2610
+ };
2611
+
2612
+ const dbf = this.dragBoundFunc();
2613
+ if (dbf !== undefined) {
2614
+ const bounded = dbf.call(this, newNodePos, evt);
2615
+ if (!bounded) {
2616
+ Util.warn(
2617
+ 'dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.'
2618
+ );
2619
+ } else {
2620
+ newNodePos = bounded;
2621
+ }
2622
+ }
2623
+
2624
+ if (
2625
+ !this._lastPos ||
2626
+ this._lastPos.x !== newNodePos.x ||
2627
+ this._lastPos.y !== newNodePos.y
2628
+ ) {
2629
+ this.setAbsolutePosition(newNodePos);
2630
+ this._requestDraw();
2631
+ }
2632
+
2633
+ this._lastPos = newNodePos;
2634
+ }
2635
+
2636
+ /**
2637
+ * stop drag and drop
2638
+ * @method
2639
+ * @name Konva.Node#stopDrag
2640
+ */
2641
+ stopDrag(evt?) {
2642
+ const elem = DD._dragElements.get(this._id);
2643
+ if (elem) {
2644
+ elem.dragStatus = 'stopped';
2645
+ }
2646
+ DD._endDragBefore(evt);
2647
+ DD._endDragAfter(evt);
2648
+ }
2649
+
2650
+ setDraggable(draggable) {
2651
+ this._setAttr('draggable', draggable);
2652
+ this._dragChange();
2653
+ }
2654
+
2655
+ /**
2656
+ * determine if node is currently in drag and drop mode
2657
+ * @method
2658
+ * @name Konva.Node#isDragging
2659
+ */
2660
+ isDragging() {
2661
+ const elem = DD._dragElements.get(this._id);
2662
+ return elem ? elem.dragStatus === 'dragging' : false;
2663
+ }
2664
+
2665
+ _listenDrag() {
2666
+ this._dragCleanup();
2667
+
2668
+ this.on('mousedown.konva touchstart.konva', function (evt) {
2669
+ const shouldCheckButton = evt.evt['button'] !== undefined;
2670
+ const canDrag =
2671
+ !shouldCheckButton || Konva.dragButtons.indexOf(evt.evt['button']) >= 0;
2672
+ if (!canDrag) {
2673
+ return;
2674
+ }
2675
+ if (this.isDragging()) {
2676
+ return;
2677
+ }
2678
+
2679
+ let hasDraggingChild = false;
2680
+ DD._dragElements.forEach((elem) => {
2681
+ if (this.isAncestorOf(elem.node)) {
2682
+ hasDraggingChild = true;
2683
+ }
2684
+ });
2685
+ // nested drag can be started
2686
+ // in that case we don't need to start new drag
2687
+ if (!hasDraggingChild) {
2688
+ this._createDragElement(evt);
2689
+ }
2690
+ });
2691
+ }
2692
+
2693
+ _dragChange() {
2694
+ if (this.attrs.draggable) {
2695
+ this._listenDrag();
2696
+ } else {
2697
+ // remove event listeners
2698
+ this._dragCleanup();
2699
+
2700
+ /*
2701
+ * force drag and drop to end
2702
+ * if this node is currently in
2703
+ * drag and drop mode
2704
+ */
2705
+ const stage = this.getStage();
2706
+ if (!stage) {
2707
+ return;
2708
+ }
2709
+ const dragElement = DD._dragElements.get(this._id);
2710
+ const isDragging = dragElement && dragElement.dragStatus === 'dragging';
2711
+ const isReady = dragElement && dragElement.dragStatus === 'ready';
2712
+
2713
+ if (isDragging) {
2714
+ this.stopDrag();
2715
+ } else if (isReady) {
2716
+ DD._dragElements.delete(this._id);
2717
+ }
2718
+ }
2719
+ }
2720
+
2721
+ _dragCleanup() {
2722
+ this.off('mousedown.konva');
2723
+ this.off('touchstart.konva');
2724
+ }
2725
+
2726
+ /**
2727
+ * determine if node (at least partially) is currently in user-visible area
2728
+ * @method
2729
+ * @param {(Number | Object)} margin optional margin in pixels
2730
+ * @param {Number} margin.x
2731
+ * @param {Number} margin.y
2732
+ * @returns {Boolean}
2733
+ * @name Konva.Node#isClientRectOnScreen
2734
+ * @example
2735
+ * // get index
2736
+ * // default calculations
2737
+ * var isOnScreen = node.isClientRectOnScreen()
2738
+ * // increase object size (or screen size) for cases when objects close to the screen still need to be marked as "visible"
2739
+ * var isOnScreen = node.isClientRectOnScreen({ x: stage.width(), y: stage.height() })
2740
+ */
2741
+ isClientRectOnScreen(
2742
+ margin: { x: number; y: number } = { x: 0, y: 0 }
2743
+ ): boolean {
2744
+ const stage = this.getStage();
2745
+ if (!stage) {
2746
+ return false;
2747
+ }
2748
+ const screenRect = {
2749
+ x: -margin.x,
2750
+ y: -margin.y,
2751
+ width: stage.width() + 2 * margin.x,
2752
+ height: stage.height() + 2 * margin.y,
2753
+ };
2754
+ return Util.haveIntersection(screenRect, this.getClientRect());
2755
+ }
2756
+
2757
+ // @ts-ignore:
2758
+ preventDefault: GetSet<boolean, this>;
2759
+
2760
+ // from filters
2761
+ blue: GetSet<number, this>;
2762
+ brightness: GetSet<number, this>;
2763
+ contrast: GetSet<number, this>;
2764
+ blurRadius: GetSet<number, this>;
2765
+ luminance: GetSet<number, this>;
2766
+ green: GetSet<number, this>;
2767
+ alpha: GetSet<number, this>;
2768
+ hue: GetSet<number, this>;
2769
+ kaleidoscopeAngle: GetSet<number, this>;
2770
+ kaleidoscopePower: GetSet<number, this>;
2771
+ levels: GetSet<number, this>;
2772
+ noise: GetSet<number, this>;
2773
+ pixelSize: GetSet<number, this>;
2774
+ red: GetSet<number, this>;
2775
+ saturation: GetSet<number, this>;
2776
+ threshold: GetSet<number, this>;
2777
+ value: GetSet<number, this>;
2778
+
2779
+ dragBoundFunc: GetSet<
2780
+ (this: Node, pos: Vector2d, event: any) => Vector2d,
2781
+ this
2782
+ >;
2783
+ draggable: GetSet<boolean, this>;
2784
+ dragDistance: GetSet<number, this>;
2785
+ embossBlend: GetSet<boolean, this>;
2786
+ embossDirection: GetSet<string, this>;
2787
+ embossStrength: GetSet<number, this>;
2788
+ embossWhiteLevel: GetSet<number, this>;
2789
+ enhance: GetSet<number, this>;
2790
+ filters: GetSet<Filters, this>;
2791
+ position: GetSet<Vector2d, this>;
2792
+ absolutePosition: GetSet<Vector2d, this>;
2793
+ size: GetSet<{ width: number; height: number }, this>;
2794
+
2795
+ id: GetSet<string, this>;
2796
+
2797
+ listening: GetSet<boolean, this>;
2798
+ name: GetSet<string, this>;
2799
+ offset: GetSet<Vector2d, this>;
2800
+ offsetX: GetSet<number, this>;
2801
+ offsetY: GetSet<number, this>;
2802
+ opacity: GetSet<number, this>;
2803
+
2804
+ rotation: GetSet<number, this>;
2805
+ zIndex: GetSet<number, this>;
2806
+
2807
+ scale: GetSet<Vector2d, this>;
2808
+ scaleX: GetSet<number, this>;
2809
+ scaleY: GetSet<number, this>;
2810
+ skew: GetSet<Vector2d, this>;
2811
+ skewX: GetSet<number, this>;
2812
+ skewY: GetSet<number, this>;
2813
+
2814
+ to: (params: AnimTo) => void;
2815
+
2816
+ transformsEnabled: GetSet<string, this>;
2817
+
2818
+ visible: GetSet<boolean, this>;
2819
+ width: GetSet<number, this>;
2820
+ height: GetSet<number, this>;
2821
+
2822
+ x: GetSet<number, this>;
2823
+ y: GetSet<number, this>;
2824
+ globalCompositeOperation: GetSet<globalCompositeOperationType, this>;
2825
+
2826
+ /**
2827
+ * create node with JSON string or an Object. De-serializtion does not generate custom
2828
+ * shape drawing functions, images, or event handlers (this would make the
2829
+ * serialized object huge). If your app uses custom shapes, images, and
2830
+ * event handlers (it probably does), then you need to select the appropriate
2831
+ * shapes after loading the stage and set these properties via on(), setSceneFunc(),
2832
+ * and setImage() methods
2833
+ * @method
2834
+ * @memberof Konva.Node
2835
+ * @param {String|Object} json string or object
2836
+ * @param {Element} [container] optional container dom element used only if you're
2837
+ * creating a stage node
2838
+ */
2839
+ static create(data, container?) {
2840
+ if (Util._isString(data)) {
2841
+ data = JSON.parse(data);
2842
+ }
2843
+ return this._createNode(data, container);
2844
+ }
2845
+
2846
+ static _createNode(obj, container?) {
2847
+ let className = Node.prototype.getClassName.call(obj),
2848
+ children = obj.children,
2849
+ no,
2850
+ len,
2851
+ n;
2852
+
2853
+ // if container was passed in, add it to attrs
2854
+ if (container) {
2855
+ obj.attrs.container = container;
2856
+ }
2857
+
2858
+ if (!Konva[className]) {
2859
+ Util.warn(
2860
+ 'Can not find a node with class name "' +
2861
+ className +
2862
+ '". Fallback to "Shape".'
2863
+ );
2864
+ className = 'Shape';
2865
+ }
2866
+
2867
+ const Class = Konva[className];
2868
+
2869
+ no = new Class(obj.attrs);
2870
+ if (children) {
2871
+ len = children.length;
2872
+ for (n = 0; n < len; n++) {
2873
+ no.add(Node._createNode(children[n]));
2874
+ }
2875
+ }
2876
+
2877
+ return no;
2878
+ }
2879
+ }
2880
+
2881
+ interface AnimTo extends NodeConfig {
2882
+ onFinish?: Function;
2883
+ onUpdate?: Function;
2884
+ duration?: number;
2885
+ }
2886
+
2887
+ Node.prototype.nodeType = 'Node';
2888
+ Node.prototype._attrsAffectingSize = [];
2889
+
2890
+ // attache events listeners once into prototype
2891
+ // that way we don't spend too much time on making an new instance
2892
+ Node.prototype.eventListeners = {};
2893
+ Node.prototype.on.call(Node.prototype, TRANSFORM_CHANGE_STR, function () {
2894
+ if (this._batchingTransformChange) {
2895
+ this._needClearTransformCache = true;
2896
+ return;
2897
+ }
2898
+ this._clearCache(TRANSFORM);
2899
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
2900
+ });
2901
+
2902
+ Node.prototype.on.call(Node.prototype, 'visibleChange.konva', function () {
2903
+ this._clearSelfAndDescendantCache(VISIBLE);
2904
+ });
2905
+ Node.prototype.on.call(Node.prototype, 'listeningChange.konva', function () {
2906
+ this._clearSelfAndDescendantCache(LISTENING);
2907
+ });
2908
+ Node.prototype.on.call(Node.prototype, 'opacityChange.konva', function () {
2909
+ this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
2910
+ });
2911
+
2912
+ const addGetterSetter = Factory.addGetterSetter;
2913
+
2914
+ /**
2915
+ * get/set zIndex relative to the node's siblings who share the same parent.
2916
+ * Please remember that zIndex is not absolute (like in CSS). It is relative to parent element only.
2917
+ * @name Konva.Node#zIndex
2918
+ * @method
2919
+ * @param {Number} index
2920
+ * @returns {Number}
2921
+ * @example
2922
+ * // get index
2923
+ * var index = node.zIndex();
2924
+ *
2925
+ * // set index
2926
+ * node.zIndex(2);
2927
+ */
2928
+ addGetterSetter(Node, 'zIndex');
2929
+
2930
+ /**
2931
+ * get/set node absolute position
2932
+ * @name Konva.Node#absolutePosition
2933
+ * @method
2934
+ * @param {Object} pos
2935
+ * @param {Number} pos.x
2936
+ * @param {Number} pos.y
2937
+ * @returns {Object}
2938
+ * @example
2939
+ * // get position
2940
+ * var position = node.absolutePosition();
2941
+ *
2942
+ * // set position
2943
+ * node.absolutePosition({
2944
+ * x: 5,
2945
+ * y: 10
2946
+ * });
2947
+ */
2948
+ addGetterSetter(Node, 'absolutePosition');
2949
+
2950
+ addGetterSetter(Node, 'position');
2951
+ /**
2952
+ * get/set node position relative to parent
2953
+ * @name Konva.Node#position
2954
+ * @method
2955
+ * @param {Object} pos
2956
+ * @param {Number} pos.x
2957
+ * @param {Number} pos.y
2958
+ * @returns {Object}
2959
+ * @example
2960
+ * // get position
2961
+ * var position = node.position();
2962
+ *
2963
+ * // set position
2964
+ * node.position({
2965
+ * x: 5,
2966
+ * y: 10
2967
+ * });
2968
+ */
2969
+
2970
+ addGetterSetter(Node, 'x', 0, getNumberValidator());
2971
+
2972
+ /**
2973
+ * get/set x position
2974
+ * @name Konva.Node#x
2975
+ * @method
2976
+ * @param {Number} x
2977
+ * @returns {Object}
2978
+ * @example
2979
+ * // get x
2980
+ * var x = node.x();
2981
+ *
2982
+ * // set x
2983
+ * node.x(5);
2984
+ */
2985
+
2986
+ addGetterSetter(Node, 'y', 0, getNumberValidator());
2987
+
2988
+ /**
2989
+ * get/set y position
2990
+ * @name Konva.Node#y
2991
+ * @method
2992
+ * @param {Number} y
2993
+ * @returns {Integer}
2994
+ * @example
2995
+ * // get y
2996
+ * var y = node.y();
2997
+ *
2998
+ * // set y
2999
+ * node.y(5);
3000
+ */
3001
+
3002
+ addGetterSetter(
3003
+ Node,
3004
+ 'globalCompositeOperation',
3005
+ 'source-over',
3006
+ getStringValidator()
3007
+ );
3008
+
3009
+ /**
3010
+ * get/set globalCompositeOperation of a node. globalCompositeOperation DOESN'T affect hit graph of nodes. So they are still trigger to events as they have default "source-over" globalCompositeOperation.
3011
+ * @name Konva.Node#globalCompositeOperation
3012
+ * @method
3013
+ * @param {String} type
3014
+ * @returns {String}
3015
+ * @example
3016
+ * // get globalCompositeOperation
3017
+ * var globalCompositeOperation = shape.globalCompositeOperation();
3018
+ *
3019
+ * // set globalCompositeOperation
3020
+ * shape.globalCompositeOperation('source-in');
3021
+ */
3022
+ addGetterSetter(Node, 'opacity', 1, getNumberValidator());
3023
+
3024
+ /**
3025
+ * get/set opacity. Opacity values range from 0 to 1.
3026
+ * A node with an opacity of 0 is fully transparent, and a node
3027
+ * with an opacity of 1 is fully opaque
3028
+ * @name Konva.Node#opacity
3029
+ * @method
3030
+ * @param {Object} opacity
3031
+ * @returns {Number}
3032
+ * @example
3033
+ * // get opacity
3034
+ * var opacity = node.opacity();
3035
+ *
3036
+ * // set opacity
3037
+ * node.opacity(0.5);
3038
+ */
3039
+
3040
+ addGetterSetter(Node, 'name', '', getStringValidator());
3041
+
3042
+ /**
3043
+ * get/set name.
3044
+ * @name Konva.Node#name
3045
+ * @method
3046
+ * @param {String} name
3047
+ * @returns {String}
3048
+ * @example
3049
+ * // get name
3050
+ * var name = node.name();
3051
+ *
3052
+ * // set name
3053
+ * node.name('foo');
3054
+ *
3055
+ * // also node may have multiple names (as css classes)
3056
+ * node.name('foo bar');
3057
+ */
3058
+
3059
+ addGetterSetter(Node, 'id', '', getStringValidator());
3060
+
3061
+ /**
3062
+ * get/set id. Id is global for whole page.
3063
+ * @name Konva.Node#id
3064
+ * @method
3065
+ * @param {String} id
3066
+ * @returns {String}
3067
+ * @example
3068
+ * // get id
3069
+ * var name = node.id();
3070
+ *
3071
+ * // set id
3072
+ * node.id('foo');
3073
+ */
3074
+
3075
+ addGetterSetter(Node, 'rotation', 0, getNumberValidator());
3076
+
3077
+ /**
3078
+ * get/set rotation in degrees
3079
+ * @name Konva.Node#rotation
3080
+ * @method
3081
+ * @param {Number} rotation
3082
+ * @returns {Number}
3083
+ * @example
3084
+ * // get rotation in degrees
3085
+ * var rotation = node.rotation();
3086
+ *
3087
+ * // set rotation in degrees
3088
+ * node.rotation(45);
3089
+ */
3090
+
3091
+ Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);
3092
+
3093
+ /**
3094
+ * get/set scale
3095
+ * @name Konva.Node#scale
3096
+ * @param {Object} scale
3097
+ * @param {Number} scale.x
3098
+ * @param {Number} scale.y
3099
+ * @method
3100
+ * @returns {Object}
3101
+ * @example
3102
+ * // get scale
3103
+ * var scale = node.scale();
3104
+ *
3105
+ * // set scale
3106
+ * shape.scale({
3107
+ * x: 2,
3108
+ * y: 3
3109
+ * });
3110
+ */
3111
+
3112
+ addGetterSetter(Node, 'scaleX', 1, getNumberValidator());
3113
+
3114
+ /**
3115
+ * get/set scale x
3116
+ * @name Konva.Node#scaleX
3117
+ * @param {Number} x
3118
+ * @method
3119
+ * @returns {Number}
3120
+ * @example
3121
+ * // get scale x
3122
+ * var scaleX = node.scaleX();
3123
+ *
3124
+ * // set scale x
3125
+ * node.scaleX(2);
3126
+ */
3127
+
3128
+ addGetterSetter(Node, 'scaleY', 1, getNumberValidator());
3129
+
3130
+ /**
3131
+ * get/set scale y
3132
+ * @name Konva.Node#scaleY
3133
+ * @param {Number} y
3134
+ * @method
3135
+ * @returns {Number}
3136
+ * @example
3137
+ * // get scale y
3138
+ * var scaleY = node.scaleY();
3139
+ *
3140
+ * // set scale y
3141
+ * node.scaleY(2);
3142
+ */
3143
+
3144
+ Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);
3145
+
3146
+ /**
3147
+ * get/set skew
3148
+ * @name Konva.Node#skew
3149
+ * @param {Object} skew
3150
+ * @param {Number} skew.x
3151
+ * @param {Number} skew.y
3152
+ * @method
3153
+ * @returns {Object}
3154
+ * @example
3155
+ * // get skew
3156
+ * var skew = node.skew();
3157
+ *
3158
+ * // set skew
3159
+ * node.skew({
3160
+ * x: 20,
3161
+ * y: 10
3162
+ * });
3163
+ */
3164
+
3165
+ addGetterSetter(Node, 'skewX', 0, getNumberValidator());
3166
+
3167
+ /**
3168
+ * get/set skew x
3169
+ * @name Konva.Node#skewX
3170
+ * @param {Number} x
3171
+ * @method
3172
+ * @returns {Number}
3173
+ * @example
3174
+ * // get skew x
3175
+ * var skewX = node.skewX();
3176
+ *
3177
+ * // set skew x
3178
+ * node.skewX(3);
3179
+ */
3180
+
3181
+ addGetterSetter(Node, 'skewY', 0, getNumberValidator());
3182
+
3183
+ /**
3184
+ * get/set skew y
3185
+ * @name Konva.Node#skewY
3186
+ * @param {Number} y
3187
+ * @method
3188
+ * @returns {Number}
3189
+ * @example
3190
+ * // get skew y
3191
+ * var skewY = node.skewY();
3192
+ *
3193
+ * // set skew y
3194
+ * node.skewY(3);
3195
+ */
3196
+
3197
+ Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);
3198
+
3199
+ /**
3200
+ * get/set offset. Offsets the default position and rotation point
3201
+ * @method
3202
+ * @param {Object} offset
3203
+ * @param {Number} offset.x
3204
+ * @param {Number} offset.y
3205
+ * @returns {Object}
3206
+ * @example
3207
+ * // get offset
3208
+ * var offset = node.offset();
3209
+ *
3210
+ * // set offset
3211
+ * node.offset({
3212
+ * x: 20,
3213
+ * y: 10
3214
+ * });
3215
+ */
3216
+
3217
+ addGetterSetter(Node, 'offsetX', 0, getNumberValidator());
3218
+
3219
+ /**
3220
+ * get/set offset x
3221
+ * @name Konva.Node#offsetX
3222
+ * @method
3223
+ * @param {Number} x
3224
+ * @returns {Number}
3225
+ * @example
3226
+ * // get offset x
3227
+ * var offsetX = node.offsetX();
3228
+ *
3229
+ * // set offset x
3230
+ * node.offsetX(3);
3231
+ */
3232
+
3233
+ addGetterSetter(Node, 'offsetY', 0, getNumberValidator());
3234
+
3235
+ /**
3236
+ * get/set offset y
3237
+ * @name Konva.Node#offsetY
3238
+ * @method
3239
+ * @param {Number} y
3240
+ * @returns {Number}
3241
+ * @example
3242
+ * // get offset y
3243
+ * var offsetY = node.offsetY();
3244
+ *
3245
+ * // set offset y
3246
+ * node.offsetY(3);
3247
+ */
3248
+
3249
+ addGetterSetter(Node, 'dragDistance', undefined, getNumberValidator());
3250
+
3251
+ /**
3252
+ * get/set drag distance
3253
+ * @name Konva.Node#dragDistance
3254
+ * @method
3255
+ * @param {Number} distance
3256
+ * @returns {Number}
3257
+ * @example
3258
+ * // get drag distance
3259
+ * var dragDistance = node.dragDistance();
3260
+ *
3261
+ * // set distance
3262
+ * // node starts dragging only if pointer moved more then 3 pixels
3263
+ * node.dragDistance(3);
3264
+ * // or set globally
3265
+ * Konva.dragDistance = 3;
3266
+ */
3267
+
3268
+ addGetterSetter(Node, 'width', 0, getNumberValidator());
3269
+ /**
3270
+ * get/set width
3271
+ * @name Konva.Node#width
3272
+ * @method
3273
+ * @param {Number} width
3274
+ * @returns {Number}
3275
+ * @example
3276
+ * // get width
3277
+ * var width = node.width();
3278
+ *
3279
+ * // set width
3280
+ * node.width(100);
3281
+ */
3282
+
3283
+ addGetterSetter(Node, 'height', 0, getNumberValidator());
3284
+ /**
3285
+ * get/set height
3286
+ * @name Konva.Node#height
3287
+ * @method
3288
+ * @param {Number} height
3289
+ * @returns {Number}
3290
+ * @example
3291
+ * // get height
3292
+ * var height = node.height();
3293
+ *
3294
+ * // set height
3295
+ * node.height(100);
3296
+ */
3297
+
3298
+ addGetterSetter(Node, 'listening', true, getBooleanValidator());
3299
+ /**
3300
+ * get/set listening attr. If you need to determine if a node is listening or not
3301
+ * by taking into account its parents, use the isListening() method
3302
+ * nodes with listening set to false will not be detected in hit graph
3303
+ * so they will be ignored in container.getIntersection() method
3304
+ * @name Konva.Node#listening
3305
+ * @method
3306
+ * @param {Boolean} listening Can be true, or false. The default is true.
3307
+ * @returns {Boolean}
3308
+ * @example
3309
+ * // get listening attr
3310
+ * var listening = node.listening();
3311
+ *
3312
+ * // stop listening for events, remove node and all its children from hit graph
3313
+ * node.listening(false);
3314
+ *
3315
+ * // listen to events according to the parent
3316
+ * node.listening(true);
3317
+ */
3318
+
3319
+ /**
3320
+ * get/set preventDefault
3321
+ * By default all shapes will prevent default behavior
3322
+ * of a browser on a pointer move or tap.
3323
+ * that will prevent native scrolling when you are trying to drag&drop a node
3324
+ * but sometimes you may need to enable default actions
3325
+ * in that case you can set the property to false
3326
+ * @name Konva.Node#preventDefault
3327
+ * @method
3328
+ * @param {Boolean} preventDefault
3329
+ * @returns {Boolean}
3330
+ * @example
3331
+ * // get preventDefault
3332
+ * var shouldPrevent = shape.preventDefault();
3333
+ *
3334
+ * // set preventDefault
3335
+ * shape.preventDefault(false);
3336
+ */
3337
+
3338
+ addGetterSetter(Node, 'preventDefault', true, getBooleanValidator());
3339
+
3340
+ addGetterSetter(Node, 'filters', undefined, function (this: Node, val) {
3341
+ this._filterUpToDate = false;
3342
+ return val;
3343
+ });
3344
+ /**
3345
+ * get/set filters. Supports function filters, CSS filter strings, or mixed arrays.
3346
+ * CSS filters are applied using native browser performance when possible, function filters use ImageData manipulation.
3347
+ * CSS filters automatically fall back to function filters in unsupported browsers.
3348
+ * @name Konva.Node#filters
3349
+ * @method
3350
+ * @param {Array} filters array of filter functions and/or CSS filter strings
3351
+ * @returns {Array}
3352
+ * @example
3353
+ * // get filters
3354
+ * var filters = node.filters();
3355
+ *
3356
+ * // set CSS filters only (no caching required, uses native performance)
3357
+ * node.filters(['blur(5px)', 'brightness(1.2)', 'contrast(1.5)']);
3358
+ *
3359
+ * // set function filters only (caching required)
3360
+ * node.cache();
3361
+ * node.filters([Konva.Filters.Blur, Konva.Filters.Sepia, Konva.Filters.Invert]);
3362
+ *
3363
+ * // mix CSS and function filters (caching required, uses fallback strategy)
3364
+ * node.cache();
3365
+ * node.filters([
3366
+ * 'blur(3px)', // CSS filter
3367
+ * Konva.Filters.Invert, // function filter
3368
+ * 'brightness(1.5)' // CSS filter
3369
+ * ]);
3370
+ */
3371
+
3372
+ addGetterSetter(Node, 'visible', true, getBooleanValidator());
3373
+ /**
3374
+ * get/set visible attr. Can be true, or false. The default is true.
3375
+ * If you need to determine if a node is visible or not
3376
+ * by taking into account its parents, use the isVisible() method
3377
+ * @name Konva.Node#visible
3378
+ * @method
3379
+ * @param {Boolean} visible
3380
+ * @returns {Boolean}
3381
+ * @example
3382
+ * // get visible attr
3383
+ * var visible = node.visible();
3384
+ *
3385
+ * // make invisible
3386
+ * node.visible(false);
3387
+ *
3388
+ * // make visible (according to the parent)
3389
+ * node.visible(true);
3390
+ *
3391
+ */
3392
+
3393
+ addGetterSetter(Node, 'transformsEnabled', 'all', getStringValidator());
3394
+
3395
+ /**
3396
+ * get/set transforms that are enabled. Can be "all", "none", or "position". The default
3397
+ * is "all"
3398
+ * @name Konva.Node#transformsEnabled
3399
+ * @method
3400
+ * @param {String} enabled
3401
+ * @returns {String}
3402
+ * @example
3403
+ * // enable position transform only to improve draw performance
3404
+ * node.transformsEnabled('position');
3405
+ *
3406
+ * // enable all transforms
3407
+ * node.transformsEnabled('all');
3408
+ */
3409
+
3410
+ /**
3411
+ * get/set node size
3412
+ * @name Konva.Node#size
3413
+ * @method
3414
+ * @param {Object} size
3415
+ * @param {Number} size.width
3416
+ * @param {Number} size.height
3417
+ * @returns {Object}
3418
+ * @example
3419
+ * // get node size
3420
+ * var size = node.size();
3421
+ * var width = size.width;
3422
+ * var height = size.height;
3423
+ *
3424
+ * // set size
3425
+ * node.size({
3426
+ * width: 100,
3427
+ * height: 200
3428
+ * });
3429
+ */
3430
+ addGetterSetter(Node, 'size');
3431
+
3432
+ /**
3433
+ * get/set drag bound function. This is used to override the default
3434
+ * drag and drop position.
3435
+ * @name Konva.Node#dragBoundFunc
3436
+ * @method
3437
+ * @param {Function} dragBoundFunc
3438
+ * @returns {Function}
3439
+ * @example
3440
+ * // get drag bound function
3441
+ * var dragBoundFunc = node.dragBoundFunc();
3442
+ *
3443
+ * // create vertical drag and drop
3444
+ * node.dragBoundFunc(function(pos){
3445
+ * // important pos - is absolute position of the node
3446
+ * // you should return absolute position too
3447
+ * return {
3448
+ * x: this.absolutePosition().x,
3449
+ * y: pos.y
3450
+ * };
3451
+ * });
3452
+ */
3453
+ addGetterSetter(Node, 'dragBoundFunc');
3454
+
3455
+ /**
3456
+ * get/set draggable flag
3457
+ * @name Konva.Node#draggable
3458
+ * @method
3459
+ * @param {Boolean} draggable
3460
+ * @returns {Boolean}
3461
+ * @example
3462
+ * // get draggable flag
3463
+ * var draggable = node.draggable();
3464
+ *
3465
+ * // enable drag and drop
3466
+ * node.draggable(true);
3467
+ *
3468
+ * // disable drag and drop
3469
+ * node.draggable(false);
3470
+ */
3471
+ addGetterSetter(Node, 'draggable', false, getBooleanValidator());
3472
+
3473
+ Factory.backCompat(Node, {
3474
+ rotateDeg: 'rotate',
3475
+ setRotationDeg: 'setRotation',
3476
+ getRotationDeg: 'getRotation',
3477
+ });