fabric 5.3.0 → 6.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 (533) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintrc.js +43 -0
  5. package/.eslintrc.json +38 -46
  6. package/.eslintrc_tests +12 -0
  7. package/.gitattributes +2 -0
  8. package/.prettierignore +16 -0
  9. package/.prettierrc +4 -0
  10. package/CHANGELOG.md +491 -189
  11. package/CONTRIBUTING.md +226 -58
  12. package/README.md +188 -239
  13. package/bower.json +1 -3
  14. package/dist/fabric.d.ts +1021 -0
  15. package/dist/index.cjs +28027 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.min.js +1 -0
  19. package/dist/index.mjs +27964 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/index.node.cjs +28092 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.d.ts +15 -0
  24. package/dist/index.node.mjs +28035 -0
  25. package/dist/index.node.mjs.map +1 -0
  26. package/dist/src/Collection.d.ts +126 -0
  27. package/dist/src/CommonMethods.d.ts +32 -0
  28. package/dist/src/EventTypeDefs.d.ts +226 -0
  29. package/dist/src/Intersection.d.ts +100 -0
  30. package/dist/src/Observable.d.ts +54 -0
  31. package/dist/src/Pattern.d.ts +104 -0
  32. package/dist/src/Point.d.ts +232 -0
  33. package/dist/src/Shadow.d.ts +87 -0
  34. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  35. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  36. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  37. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  38. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  39. package/dist/src/cache.d.ts +46 -0
  40. package/dist/src/canvas/Canvas.d.ts +567 -0
  41. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  42. package/dist/src/canvas/StaticCanvas.d.ts +751 -0
  43. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  44. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  45. package/dist/src/color/Color.d.ts +174 -0
  46. package/dist/src/color/color_map.d.ts +155 -0
  47. package/dist/src/color/constants.d.ts +22 -0
  48. package/dist/src/color/util.d.ts +12 -0
  49. package/dist/src/config.d.ts +115 -0
  50. package/dist/src/constants.d.ts +14 -0
  51. package/dist/src/controls/Control.d.ts +228 -0
  52. package/dist/src/controls/changeWidth.d.ts +13 -0
  53. package/dist/src/controls/controls.render.d.ts +29 -0
  54. package/dist/src/controls/default_controls.d.ts +50 -0
  55. package/dist/src/controls/drag.d.ts +12 -0
  56. package/dist/src/controls/polyControl.d.ts +5 -0
  57. package/dist/src/controls/rotate.d.ts +12 -0
  58. package/dist/src/controls/scale.d.ts +47 -0
  59. package/dist/src/controls/scaleSkew.d.ts +39 -0
  60. package/dist/src/controls/skew.d.ts +33 -0
  61. package/dist/src/controls/util.d.ts +41 -0
  62. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  63. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  64. package/dist/src/env/browser.d.ts +3 -0
  65. package/dist/src/env/index.d.ts +7 -0
  66. package/dist/src/env/node.d.ts +3 -0
  67. package/dist/src/env/types.d.ts +15 -0
  68. package/dist/src/filters/BaseFilter.d.ts +156 -0
  69. package/dist/src/filters/BlendColor.d.ts +80 -0
  70. package/dist/src/filters/BlendImage.d.ts +90 -0
  71. package/dist/src/filters/Blur.d.ts +50 -0
  72. package/dist/src/filters/Boilerplate.d.ts +46 -0
  73. package/dist/src/filters/Brightness.d.ts +46 -0
  74. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  75. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  76. package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
  77. package/dist/src/filters/Composed.d.ts +47 -0
  78. package/dist/src/filters/Contrast.d.ts +44 -0
  79. package/dist/src/filters/Convolute.d.ts +82 -0
  80. package/dist/src/filters/FilterBackend.d.ts +14 -0
  81. package/dist/src/filters/Gamma.d.ts +53 -0
  82. package/dist/src/filters/Grayscale.d.ts +45 -0
  83. package/dist/src/filters/HueRotation.d.ts +24 -0
  84. package/dist/src/filters/Invert.d.ts +54 -0
  85. package/dist/src/filters/Noise.d.ts +53 -0
  86. package/dist/src/filters/Pixelate.d.ts +43 -0
  87. package/dist/src/filters/RemoveColor.d.ts +62 -0
  88. package/dist/src/filters/Resize.d.ts +134 -0
  89. package/dist/src/filters/Saturation.d.ts +47 -0
  90. package/dist/src/filters/Vibrance.d.ts +47 -0
  91. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  92. package/dist/src/filters/WebGLProbe.d.ts +28 -0
  93. package/dist/src/filters/typedefs.d.ts +49 -0
  94. package/dist/src/gradient/Gradient.d.ts +149 -0
  95. package/dist/src/gradient/constants.d.ts +15 -0
  96. package/dist/src/gradient/parser/index.d.ts +4 -0
  97. package/dist/src/gradient/parser/misc.d.ts +4 -0
  98. package/dist/src/gradient/parser/parseColorStops.d.ts +6 -0
  99. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  100. package/dist/src/gradient/typedefs.d.ts +93 -0
  101. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  102. package/dist/src/mixins/stateful.mixin.d.ts +18 -0
  103. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  104. package/dist/src/parkinglot/straighten.d.ts +2 -0
  105. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  106. package/dist/src/parser/attributes.d.ts +6 -0
  107. package/dist/src/parser/constants.d.ts +54 -0
  108. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  109. package/dist/src/parser/elementById.d.ts +6 -0
  110. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  111. package/dist/src/parser/elements_parser.d.ts +3 -0
  112. package/dist/src/parser/getCSSRules.d.ts +7 -0
  113. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  114. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  115. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  116. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  117. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  118. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  119. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  120. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  121. package/dist/src/parser/normalizeValue.d.ts +2 -0
  122. package/dist/src/parser/parseAttributes.d.ts +9 -0
  123. package/dist/src/parser/parseElements.d.ts +11 -0
  124. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  125. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  126. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  127. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  128. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  129. package/dist/src/parser/parseStyleString.d.ts +2 -0
  130. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  131. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  132. package/dist/src/parser/percent.d.ts +9 -0
  133. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  134. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  135. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  136. package/dist/src/parser/selectorMatches.d.ts +2 -0
  137. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  138. package/dist/src/parser/skewMatrix.d.ts +2 -0
  139. package/dist/src/parser/translateMatrix.d.ts +2 -0
  140. package/dist/src/shapes/ActiveSelection.d.ts +66 -0
  141. package/dist/src/shapes/Circle.d.ts +80 -0
  142. package/dist/src/shapes/Ellipse.d.ts +74 -0
  143. package/dist/src/shapes/Group.d.ts +381 -0
  144. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  145. package/dist/src/shapes/IText/IText.d.ts +322 -0
  146. package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
  147. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  148. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
  149. package/dist/src/shapes/IText/constants.d.ts +13 -0
  150. package/dist/src/shapes/Image.d.ts +283 -0
  151. package/dist/src/shapes/Line.d.ts +117 -0
  152. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  153. package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
  154. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  155. package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
  156. package/dist/src/shapes/Object/Object.d.ts +906 -0
  157. package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
  158. package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
  159. package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
  160. package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
  161. package/dist/src/shapes/Path.d.ts +123 -0
  162. package/dist/src/shapes/Polygon.d.ts +7 -0
  163. package/dist/src/shapes/Polyline.d.ts +130 -0
  164. package/dist/src/shapes/Rect.d.ts +62 -0
  165. package/dist/src/shapes/Text/StyledText.d.ts +118 -0
  166. package/dist/src/shapes/Text/Text.d.ts +656 -0
  167. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  168. package/dist/src/shapes/Textbox.d.ts +170 -0
  169. package/dist/src/shapes/Triangle.d.ts +17 -0
  170. package/dist/src/typedefs.d.ts +93 -0
  171. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  172. package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -0
  173. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  174. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  175. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  176. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  177. package/dist/src/util/animation/animate.d.ts +37 -0
  178. package/dist/src/util/animation/easing.d.ts +130 -0
  179. package/dist/src/util/animation/types.d.ts +87 -0
  180. package/dist/src/util/applyMixins.d.ts +8 -0
  181. package/dist/src/util/class_registry.d.ts +14 -0
  182. package/dist/src/util/dom_event.d.ts +5 -0
  183. package/dist/src/util/dom_misc.d.ts +40 -0
  184. package/dist/src/util/dom_request.d.ts +14 -0
  185. package/dist/src/util/dom_style.d.ts +7 -0
  186. package/dist/src/util/fireEvent.d.ts +3 -0
  187. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  188. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  189. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  190. package/dist/src/util/internals/index.d.ts +4 -0
  191. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  192. package/dist/src/util/internals/uid.d.ts +2 -0
  193. package/dist/src/util/lang_class.d.ts +12 -0
  194. package/dist/src/util/lang_string.d.ts +22 -0
  195. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  196. package/dist/src/util/misc/capValue.d.ts +2 -0
  197. package/dist/src/util/misc/cos.d.ts +10 -0
  198. package/dist/src/util/misc/dom.d.ts +28 -0
  199. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  200. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  201. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  202. package/dist/src/util/misc/matrix.d.ts +92 -0
  203. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  204. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  205. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  206. package/dist/src/util/misc/pick.d.ts +8 -0
  207. package/dist/src/util/misc/planeChange.d.ts +84 -0
  208. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  209. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  210. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  211. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  212. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  213. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  214. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  215. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  216. package/dist/src/util/misc/sin.d.ts +10 -0
  217. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  218. package/dist/src/util/misc/textStyles.d.ts +32 -0
  219. package/dist/src/util/misc/toFixed.d.ts +8 -0
  220. package/dist/src/util/misc/vectors.d.ts +57 -0
  221. package/dist/src/util/path.d.ts +108 -0
  222. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  223. package/dist/src/util/types.d.ts +19 -0
  224. package/fabric.ts +427 -0
  225. package/index.node.ts +43 -0
  226. package/index.ts +1 -0
  227. package/package.json +90 -39
  228. package/publish.js +0 -26
  229. package/rollup.config.mjs +79 -0
  230. package/rollup.test.config.js +24 -0
  231. package/scripts/build.mjs +50 -0
  232. package/scripts/buildLock.mjs +115 -0
  233. package/scripts/buildReporter.mjs +15 -0
  234. package/scripts/buildStats.mjs +139 -0
  235. package/scripts/dirname.mjs +14 -0
  236. package/scripts/index.mjs +679 -0
  237. package/scripts/transform_files.mjs +504 -0
  238. package/src/Collection.ts +311 -0
  239. package/src/CommonMethods.ts +63 -0
  240. package/src/EventTypeDefs.ts +294 -0
  241. package/src/Intersection.ts +273 -0
  242. package/src/Observable.ts +175 -0
  243. package/src/Pattern.ts +211 -0
  244. package/src/Point.ts +388 -0
  245. package/src/Shadow.ts +215 -0
  246. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  247. package/src/brushes/CircleBrush.ts +145 -0
  248. package/src/brushes/PatternBrush.ts +70 -0
  249. package/src/brushes/PencilBrush.ts +300 -0
  250. package/src/brushes/SprayBrush.ts +219 -0
  251. package/src/cache.ts +89 -0
  252. package/src/canvas/Canvas.ts +1672 -0
  253. package/src/canvas/SelectableCanvas.ts +1636 -0
  254. package/src/canvas/StaticCanvas.ts +1709 -0
  255. package/src/canvas/TextEditingManager.ts +48 -0
  256. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  257. package/src/color/Color.ts +404 -0
  258. package/src/color/color_map.ts +154 -0
  259. package/src/color/constants.ts +26 -0
  260. package/src/color/util.ts +32 -0
  261. package/src/config.ts +159 -0
  262. package/src/constants.ts +19 -0
  263. package/src/controls/Control.ts +377 -0
  264. package/src/controls/changeWidth.ts +52 -0
  265. package/src/controls/controls.render.ts +138 -0
  266. package/src/controls/default_controls.ts +132 -0
  267. package/src/controls/drag.ts +31 -0
  268. package/src/controls/polyControl.ts +135 -0
  269. package/src/controls/rotate.ts +87 -0
  270. package/src/controls/scale.ts +277 -0
  271. package/src/controls/scaleSkew.ts +92 -0
  272. package/src/controls/skew.ts +242 -0
  273. package/src/controls/util.ts +154 -0
  274. package/src/controls/wrapWithFireEvent.ts +25 -0
  275. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  276. package/src/env/browser.ts +28 -0
  277. package/src/env/index.ts +19 -0
  278. package/src/env/node.ts +52 -0
  279. package/src/env/types.ts +15 -0
  280. package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
  281. package/src/filters/BlendColor.ts +258 -0
  282. package/src/filters/BlendImage.ts +254 -0
  283. package/src/filters/Blur.ts +202 -0
  284. package/src/filters/Boilerplate.ts +91 -0
  285. package/src/filters/Brightness.ts +93 -0
  286. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  287. package/src/filters/ColorMatrix.ts +156 -0
  288. package/src/filters/ColorMatrixFilters.ts +106 -0
  289. package/src/filters/Composed.ts +85 -0
  290. package/src/filters/Contrast.ts +94 -0
  291. package/src/filters/Convolute.ts +341 -0
  292. package/src/filters/FilterBackend.ts +32 -0
  293. package/src/filters/Gamma.ts +127 -0
  294. package/src/filters/Grayscale.ts +137 -0
  295. package/src/filters/HueRotation.ts +66 -0
  296. package/src/filters/Invert.ts +117 -0
  297. package/src/filters/Noise.ts +109 -0
  298. package/src/filters/Pixelate.ts +114 -0
  299. package/src/filters/RemoveColor.ts +148 -0
  300. package/src/filters/Resize.ts +540 -0
  301. package/src/filters/Saturation.ts +100 -0
  302. package/src/filters/Vibrance.ts +103 -0
  303. package/src/filters/WebGLFilterBackend.ts +430 -0
  304. package/src/filters/WebGLProbe.ts +62 -0
  305. package/src/filters/typedefs.ts +65 -0
  306. package/src/gradient/Gradient.ts +401 -0
  307. package/src/gradient/constants.ts +12 -0
  308. package/src/gradient/parser/index.ts +3 -0
  309. package/src/gradient/parser/misc.ts +13 -0
  310. package/src/gradient/parser/parseColorStops.ts +55 -0
  311. package/src/gradient/parser/parseCoords.ts +73 -0
  312. package/src/gradient/typedefs.ts +104 -0
  313. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  314. package/src/mixins/stateful.mixin.ts +104 -0
  315. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  316. package/src/parkinglot/straighten.ts +58 -0
  317. package/src/parser/applyViewboxTransform.ts +162 -0
  318. package/src/parser/attributes.ts +25 -0
  319. package/src/parser/constants.ts +118 -0
  320. package/src/parser/doesSomeParentMatch.ts +19 -0
  321. package/src/parser/elementById.ts +23 -0
  322. package/src/parser/elementMatchesRule.ts +19 -0
  323. package/src/parser/elements_parser.ts +191 -0
  324. package/src/parser/getCSSRules.ts +62 -0
  325. package/src/parser/getGlobalStylesForElement.ts +19 -0
  326. package/src/parser/getGradientDefs.ts +32 -0
  327. package/src/parser/getMultipleNodes.ts +15 -0
  328. package/src/parser/getSvgRegex.ts +5 -0
  329. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  330. package/src/parser/loadSVGFromString.ts +26 -0
  331. package/src/parser/loadSVGFromURL.ts +40 -0
  332. package/src/parser/normalizeAttr.ts +10 -0
  333. package/src/parser/normalizeValue.ts +63 -0
  334. package/src/parser/parseAttributes.ts +90 -0
  335. package/src/parser/parseElements.ts +28 -0
  336. package/src/parser/parseFontDeclaration.ts +44 -0
  337. package/src/parser/parsePointsAttribute.ts +36 -0
  338. package/src/parser/parseSVGDocument.ts +106 -0
  339. package/src/parser/parseStyleAttribute.ts +27 -0
  340. package/src/parser/parseStyleObject.ts +15 -0
  341. package/src/parser/parseStyleString.ts +16 -0
  342. package/src/parser/parseTransformAttribute.ts +155 -0
  343. package/src/parser/parseUseDirectives.ts +79 -0
  344. package/src/parser/percent.ts +27 -0
  345. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  346. package/src/parser/rotateMatrix.ts +21 -0
  347. package/src/parser/scaleMatrix.ts +9 -0
  348. package/src/parser/selectorMatches.ts +25 -0
  349. package/src/parser/setStrokeFillOpacity.ts +40 -0
  350. package/src/parser/skewMatrix.ts +6 -0
  351. package/src/parser/translateMatrix.ts +8 -0
  352. package/src/shapes/ActiveSelection.ts +157 -0
  353. package/src/shapes/Circle.ts +205 -0
  354. package/src/shapes/Ellipse.ts +154 -0
  355. package/src/shapes/Group.ts +1053 -0
  356. package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
  357. package/src/shapes/IText/IText.ts +666 -0
  358. package/src/shapes/IText/ITextBehavior.ts +1055 -0
  359. package/src/shapes/IText/ITextClickBehavior.ts +321 -0
  360. package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
  361. package/src/shapes/IText/constants.ts +47 -0
  362. package/src/shapes/Image.ts +789 -0
  363. package/src/shapes/Line.ts +329 -0
  364. package/src/shapes/Object/AnimatableObject.ts +106 -0
  365. package/src/shapes/Object/FabricObject.ts +19 -0
  366. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  367. package/src/shapes/Object/InteractiveObject.ts +645 -0
  368. package/src/shapes/Object/Object.ts +1896 -0
  369. package/src/shapes/Object/ObjectGeometry.ts +830 -0
  370. package/src/shapes/Object/ObjectOrigin.ts +354 -0
  371. package/src/shapes/Object/StackedObject.ts +191 -0
  372. package/src/shapes/Object/defaultValues.ts +112 -0
  373. package/src/shapes/Path.ts +395 -0
  374. package/src/shapes/Polygon.ts +19 -0
  375. package/src/shapes/Polyline.ts +333 -0
  376. package/src/shapes/Rect.ts +199 -0
  377. package/src/shapes/Text/StyledText.ts +319 -0
  378. package/src/shapes/Text/Text.ts +1948 -0
  379. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  380. package/src/shapes/Textbox.ts +471 -0
  381. package/src/shapes/Triangle.ts +45 -0
  382. package/src/typedefs.ts +119 -0
  383. package/src/util/animation/AnimationBase.ts +166 -0
  384. package/src/util/animation/AnimationFrameProvider.ts +28 -0
  385. package/src/util/animation/AnimationRegistry.ts +58 -0
  386. package/src/util/animation/ArrayAnimation.ts +27 -0
  387. package/src/util/animation/ColorAnimation.ts +74 -0
  388. package/src/util/animation/ValueAnimation.ts +29 -0
  389. package/src/util/animation/animate.ts +74 -0
  390. package/src/util/animation/easing.ts +327 -0
  391. package/src/util/animation/types.ts +136 -0
  392. package/src/util/applyMixins.ts +22 -0
  393. package/src/util/class_registry.ts +54 -0
  394. package/src/util/dom_event.ts +28 -0
  395. package/src/util/dom_misc.ts +138 -0
  396. package/src/util/dom_request.ts +64 -0
  397. package/src/util/dom_style.ts +20 -0
  398. package/src/util/fireEvent.ts +15 -0
  399. package/src/util/internals/cloneDeep.ts +2 -0
  400. package/src/util/internals/getRandomInt.ts +8 -0
  401. package/src/util/internals/ifNaN.ts +9 -0
  402. package/src/util/internals/index.ts +3 -0
  403. package/src/util/internals/removeFromArray.ts +14 -0
  404. package/src/util/internals/uid.ts +3 -0
  405. package/src/util/lang_class.ts +90 -0
  406. package/src/util/lang_string.ts +79 -0
  407. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  408. package/src/util/misc/capValue.ts +2 -0
  409. package/src/util/misc/cos.ts +24 -0
  410. package/src/util/misc/dom.ts +50 -0
  411. package/src/util/misc/findScaleTo.ts +44 -0
  412. package/src/util/misc/groupSVGElements.ts +15 -0
  413. package/src/util/misc/isTransparent.ts +51 -0
  414. package/src/util/misc/matrix.ts +207 -0
  415. package/src/util/misc/mergeClipPaths.ts +40 -0
  416. package/src/util/misc/objectEnlive.ts +189 -0
  417. package/src/util/misc/objectTransforms.ts +129 -0
  418. package/src/util/misc/pick.ts +17 -0
  419. package/src/util/misc/planeChange.ts +136 -0
  420. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  421. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +231 -0
  422. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  423. package/src/util/misc/projectStroke/index.ts +53 -0
  424. package/src/util/misc/projectStroke/types.ts +24 -0
  425. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  426. package/src/util/misc/resolveOrigin.ts +22 -0
  427. package/src/util/misc/rotatePoint.ts +15 -0
  428. package/src/util/misc/sin.ts +26 -0
  429. package/src/util/misc/svgParsing.ts +181 -0
  430. package/src/util/misc/textStyles.ts +133 -0
  431. package/src/util/misc/toFixed.ts +8 -0
  432. package/src/util/misc/vectors.ts +82 -0
  433. package/src/util/path.ts +941 -0
  434. package/src/util/transform_matrix_removal.ts +60 -0
  435. package/src/util/types.ts +78 -0
  436. package/tsconfig.json +106 -0
  437. package/HEADER.js +0 -203
  438. package/build.js +0 -287
  439. package/dist/fabric.js +0 -31187
  440. package/dist/fabric.min.js +0 -1
  441. package/old-travis-reference.yml +0 -97
  442. package/src/brushes/circle_brush.class.js +0 -144
  443. package/src/brushes/pattern_brush.class.js +0 -61
  444. package/src/brushes/pencil_brush.class.js +0 -310
  445. package/src/brushes/spray_brush.class.js +0 -219
  446. package/src/canvas.class.js +0 -1312
  447. package/src/color.class.js +0 -636
  448. package/src/control.class.js +0 -339
  449. package/src/controls.actions.js +0 -740
  450. package/src/controls.render.js +0 -99
  451. package/src/elements_parser.js +0 -152
  452. package/src/filters/2d_backend.class.js +0 -65
  453. package/src/filters/blendcolor_filter.class.js +0 -251
  454. package/src/filters/blendimage_filter.class.js +0 -247
  455. package/src/filters/blur_filter.class.js +0 -217
  456. package/src/filters/brightness_filter.class.js +0 -113
  457. package/src/filters/colormatrix_filter.class.js +0 -159
  458. package/src/filters/composed_filter.class.js +0 -72
  459. package/src/filters/contrast_filter.class.js +0 -113
  460. package/src/filters/convolute_filter.class.js +0 -352
  461. package/src/filters/filter_boilerplate.js +0 -111
  462. package/src/filters/filter_generator.js +0 -85
  463. package/src/filters/gamma_filter.class.js +0 -136
  464. package/src/filters/grayscale_filter.class.js +0 -154
  465. package/src/filters/hue_rotation.class.js +0 -107
  466. package/src/filters/invert_filter.class.js +0 -111
  467. package/src/filters/noise_filter.class.js +0 -134
  468. package/src/filters/pixelate_filter.class.js +0 -137
  469. package/src/filters/removecolor_filter.class.js +0 -173
  470. package/src/filters/resize_filter.class.js +0 -490
  471. package/src/filters/saturate_filter.class.js +0 -119
  472. package/src/filters/vibrance_filter.class.js +0 -122
  473. package/src/filters/webgl_backend.class.js +0 -396
  474. package/src/globalFabric.js +0 -4
  475. package/src/gradient.class.js +0 -490
  476. package/src/intersection.class.js +0 -172
  477. package/src/log.js +0 -11
  478. package/src/mixins/animation.mixin.js +0 -231
  479. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  480. package/src/mixins/canvas_events.mixin.js +0 -974
  481. package/src/mixins/canvas_gestures.mixin.js +0 -149
  482. package/src/mixins/canvas_grouping.mixin.js +0 -177
  483. package/src/mixins/canvas_serialization.mixin.js +0 -228
  484. package/src/mixins/collection.mixin.js +0 -170
  485. package/src/mixins/default_controls.js +0 -114
  486. package/src/mixins/itext.svg_export.js +0 -241
  487. package/src/mixins/itext_behavior.mixin.js +0 -940
  488. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  489. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  490. package/src/mixins/object.svg_export.js +0 -258
  491. package/src/mixins/object_geometry.mixin.js +0 -683
  492. package/src/mixins/object_interactivity.mixin.js +0 -314
  493. package/src/mixins/object_origin.mixin.js +0 -255
  494. package/src/mixins/object_stacking.mixin.js +0 -80
  495. package/src/mixins/object_straightening.mixin.js +0 -80
  496. package/src/mixins/observable.mixin.js +0 -141
  497. package/src/mixins/shared_methods.mixin.js +0 -94
  498. package/src/mixins/stateful.mixin.js +0 -107
  499. package/src/mixins/text_style.mixin.js +0 -324
  500. package/src/parser.js +0 -1090
  501. package/src/pattern.class.js +0 -189
  502. package/src/point.class.js +0 -337
  503. package/src/shadow.class.js +0 -195
  504. package/src/shapes/active_selection.class.js +0 -155
  505. package/src/shapes/circle.class.js +0 -210
  506. package/src/shapes/ellipse.class.js +0 -181
  507. package/src/shapes/group.class.js +0 -593
  508. package/src/shapes/image.class.js +0 -764
  509. package/src/shapes/itext.class.js +0 -526
  510. package/src/shapes/line.class.js +0 -324
  511. package/src/shapes/object.class.js +0 -2008
  512. package/src/shapes/path.class.js +0 -384
  513. package/src/shapes/polygon.class.js +0 -81
  514. package/src/shapes/polyline.class.js +0 -268
  515. package/src/shapes/rect.class.js +0 -187
  516. package/src/shapes/text.class.js +0 -1696
  517. package/src/shapes/textbox.class.js +0 -461
  518. package/src/shapes/triangle.class.js +0 -93
  519. package/src/static_canvas.class.js +0 -1881
  520. package/src/util/anim_ease.js +0 -398
  521. package/src/util/animate.js +0 -254
  522. package/src/util/animate_color.js +0 -74
  523. package/src/util/dom_event.js +0 -50
  524. package/src/util/dom_misc.js +0 -300
  525. package/src/util/dom_request.js +0 -54
  526. package/src/util/dom_style.js +0 -70
  527. package/src/util/lang_array.js +0 -94
  528. package/src/util/lang_class.js +0 -115
  529. package/src/util/lang_object.js +0 -75
  530. package/src/util/lang_string.js +0 -110
  531. package/src/util/misc.js +0 -1330
  532. package/src/util/named_accessors.mixin.js +0 -428
  533. package/src/util/path.js +0 -829
@@ -0,0 +1,46 @@
1
+ export declare class Cache {
2
+ /**
3
+ * Cache of widths of chars in text rendering.
4
+ */
5
+ charWidthsCache: Record<
6
+ /** fontFamily */ string, Record<
7
+ /** fontStyleCacheKey */ string, Record</** char */ string, /** width */ number>>>;
8
+ /**
9
+ * @return {Object} reference to cache
10
+ */
11
+ getFontCache({ fontFamily, fontStyle, fontWeight, }: {
12
+ fontFamily: string;
13
+ fontStyle: string;
14
+ fontWeight: string | number;
15
+ }): Record<string, number>;
16
+ /**
17
+ * Clear char widths cache for the given font family or all the cache if no
18
+ * fontFamily is specified.
19
+ * Use it if you know you are loading fonts in a lazy way and you are not waiting
20
+ * for custom fonts to load properly when adding text objects to the canvas.
21
+ * If a text object is added when its own font is not loaded yet, you will get wrong
22
+ * measurement and so wrong bounding boxes.
23
+ * After the font cache is cleared, either change the textObject text content or call
24
+ * initDimensions() to trigger a recalculation
25
+ * @param {String} [fontFamily] font family to clear
26
+ */
27
+ clearFontCache(fontFamily?: string): void;
28
+ /**
29
+ * Given current aspect ratio, determines the max width and height that can
30
+ * respect the total allowed area for the cache.
31
+ * @param {number} ar aspect ratio
32
+ * @return {number[]} Limited dimensions X and Y
33
+ */
34
+ limitDimsByArea(ar: number): number[];
35
+ /**
36
+ * This object keeps the results of the boundsOfCurve calculation mapped by the joined arguments necessary to calculate it.
37
+ * It does speed up calculation, if you parse and add always the same paths, but in case of heavy usage of freedrawing
38
+ * you do not get any speed benefit and you get a big object in memory.
39
+ * The object was a private variable before, while now is appended to the lib so that you have access to it and you
40
+ * can eventually clear it.
41
+ * It was an internal variable, is accessible since version 2.3.4
42
+ */
43
+ boundsOfCurveCache: {};
44
+ }
45
+ export declare const cache: Cache;
46
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1,567 @@
1
+ import { CanvasEvents, DragEventData, ObjectEvents, TPointerEvent, TPointerEventInfo, TPointerEventNames, Transform } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import { Group } from '../shapes/Group';
4
+ import type { FabricObject } from '../shapes/Object/FabricObject';
5
+ import { SelectableCanvas } from './SelectableCanvas';
6
+ import { TextEditingManager } from './TextEditingManager';
7
+ type TSyntheticEventContext = {
8
+ mouse: {
9
+ e: TPointerEvent;
10
+ };
11
+ drag: DragEventData;
12
+ };
13
+ export declare class Canvas extends SelectableCanvas {
14
+ /**
15
+ * Contains the id of the touch event that owns the fabric transform
16
+ * @type Number
17
+ * @private
18
+ */
19
+ mainTouchId: null | number;
20
+ /**
21
+ * When the option is enabled, PointerEvent is used instead of TPointerEvent.
22
+ * @type Boolean
23
+ * @default
24
+ */
25
+ enablePointerEvents: boolean;
26
+ /**
27
+ * Holds a reference to a setTimeout timer for event synchronization
28
+ * @type number
29
+ * @private
30
+ */
31
+ private _willAddMouseDown;
32
+ /**
33
+ * Holds a reference to an object on the canvas that is receiving the drag over event.
34
+ * @type FabricObject
35
+ * @private
36
+ */
37
+ private _draggedoverTarget?;
38
+ /**
39
+ * Holds a reference to an object on the canvas from where the drag operation started
40
+ * @type FabricObject
41
+ * @private
42
+ */
43
+ private _dragSource?;
44
+ /**
45
+ * Holds a reference to an object on the canvas that is the current drop target
46
+ * May differ from {@link _draggedoverTarget}
47
+ * @todo inspect whether {@link _draggedoverTarget} and {@link _dropTarget} should be merged somehow
48
+ * @type FabricObject
49
+ * @private
50
+ */
51
+ private _dropTarget;
52
+ currentTarget?: FabricObject;
53
+ currentSubTargets?: FabricObject[];
54
+ /**
55
+ * Holds a reference to a pointer during mousedown to compare on mouse up and determine
56
+ * if it was a click event
57
+ * @type FabricObject
58
+ * @private
59
+ */
60
+ _previousPointer: Point;
61
+ private _isClick;
62
+ textEditingManager: TextEditingManager;
63
+ constructor(el: string | HTMLCanvasElement, options?: {});
64
+ /**
65
+ * return an event prefix pointer or mouse.
66
+ * @private
67
+ */
68
+ private _getEventPrefix;
69
+ addOrRemove(functor: any, eventjsFunctor: 'add' | 'remove'): void;
70
+ /**
71
+ * Removes all event listeners
72
+ */
73
+ removeListeners(): void;
74
+ /**
75
+ * @private
76
+ * @param {Event} [e] Event object fired on wheel event
77
+ */
78
+ private _onMouseWheel;
79
+ /**
80
+ * @private
81
+ * @param {Event} e Event object fired on mousedown
82
+ */
83
+ private _onMouseOut;
84
+ /**
85
+ * @private
86
+ * @param {Event} e Event object fired on mouseenter
87
+ */
88
+ private _onMouseEnter;
89
+ /**
90
+ * supports native like text dragging
91
+ * @private
92
+ * @param {DragEvent} e
93
+ */
94
+ private _onDragStart;
95
+ /**
96
+ * First we clear top context where the effects are being rendered.
97
+ * Then we render the effects.
98
+ * Doing so will render the correct effect for all cases including an overlap between `source` and `target`.
99
+ * @private
100
+ */
101
+ private _renderDragEffects;
102
+ /**
103
+ * supports native like text dragging
104
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#finishing_a_drag
105
+ * @private
106
+ * @param {DragEvent} e
107
+ */
108
+ private _onDragEnd;
109
+ /**
110
+ * fire `drag` event on canvas and drag source
111
+ * @private
112
+ * @param {DragEvent} e
113
+ */
114
+ private _onDragProgress;
115
+ /**
116
+ * As opposed to {@link findTarget} we want the top most object to be returned w/o the active object cutting in line.
117
+ * Override at will
118
+ */
119
+ protected findDragTargets(e: DragEvent): {
120
+ target: FabricObject<ObjectEvents> | undefined;
121
+ targets: FabricObject<ObjectEvents>[];
122
+ };
123
+ /**
124
+ * prevent default to allow drop event to be fired
125
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#specifying_drop_targets
126
+ * @private
127
+ * @param {DragEvent} [e] Event object fired on Event.js shake
128
+ */
129
+ private _onDragOver;
130
+ /**
131
+ * fire `dragleave` on `dragover` targets
132
+ * @private
133
+ * @param {Event} [e] Event object fired on Event.js shake
134
+ */
135
+ private _onDragEnter;
136
+ /**
137
+ * fire `dragleave` on `dragover` targets
138
+ * @private
139
+ * @param {Event} [e] Event object fired on Event.js shake
140
+ */
141
+ private _onDragLeave;
142
+ /**
143
+ * `drop:before` is a an event that allows you to schedule logic
144
+ * before the `drop` event. Prefer `drop` event always, but if you need
145
+ * to run some drop-disabling logic on an event, since there is no way
146
+ * to handle event handlers ordering, use `drop:before`
147
+ * @private
148
+ * @param {Event} e
149
+ */
150
+ private _onDrop;
151
+ /**
152
+ * @private
153
+ * @param {Event} e Event object fired on mousedown
154
+ */
155
+ private _onContextMenu;
156
+ /**
157
+ * @private
158
+ * @param {Event} e Event object fired on mousedown
159
+ */
160
+ private _onDoubleClick;
161
+ /**
162
+ * Return a the id of an event.
163
+ * returns either the pointerId or the identifier or 0 for the mouse event
164
+ * @private
165
+ * @param {Event} evt Event object
166
+ */
167
+ getPointerId(evt: TouchEvent | PointerEvent): number;
168
+ /**
169
+ * Determines if an event has the id of the event that is considered main
170
+ * @private
171
+ * @param {evt} event Event object
172
+ */
173
+ _isMainEvent(evt: TPointerEvent): boolean;
174
+ /**
175
+ * @private
176
+ * @param {Event} e Event object fired on mousedown
177
+ */
178
+ _onTouchStart(e: TouchEvent): void;
179
+ /**
180
+ * @private
181
+ * @param {Event} e Event object fired on mousedown
182
+ */
183
+ _onMouseDown(e: TPointerEvent): void;
184
+ /**
185
+ * @private
186
+ * @param {Event} e Event object fired on mousedown
187
+ */
188
+ _onTouchEnd(e: TouchEvent): void;
189
+ /**
190
+ * @private
191
+ * @param {Event} e Event object fired on mouseup
192
+ */
193
+ _onMouseUp(e: TPointerEvent): void;
194
+ /**
195
+ * @private
196
+ * @param {Event} e Event object fired on mousemove
197
+ */
198
+ _onMouseMove(e: TPointerEvent): void;
199
+ /**
200
+ * @private
201
+ */
202
+ _onResize(): void;
203
+ /**
204
+ * Decides whether the canvas should be redrawn in mouseup and mousedown events.
205
+ * @private
206
+ * @param {Object} target
207
+ */
208
+ _shouldRender(target: FabricObject | undefined): boolean;
209
+ /**
210
+ * Method that defines the actions when mouse is released on canvas.
211
+ * The method resets the currentTransform parameters, store the image corner
212
+ * position in the image object and render the canvas on top.
213
+ * @private
214
+ * @param {Event} e Event object fired on mouseup
215
+ */
216
+ __onMouseUp(e: TPointerEvent): void;
217
+ _basicEventHandler<T extends keyof (CanvasEvents | ObjectEvents)>(eventType: T, options: (CanvasEvents & ObjectEvents)[T]): (import("../EventTypeDefs").CollectionEvents & {
218
+ 'canvas:cleared': never;
219
+ 'before:render': {
220
+ ctx: CanvasRenderingContext2D;
221
+ };
222
+ 'after:render': {
223
+ ctx: CanvasRenderingContext2D;
224
+ };
225
+ } & Record<"mouse:down" | "mouse:down:before" | "mouse:move" | "mouse:move:before" | "mouse:up" | "mouse:up:before" | "mouse:dblclick", TPointerEventInfo<TPointerEvent>> & Record<"mouse:wheel", TPointerEventInfo<WheelEvent>> & Record<"mouse:over", import("../EventTypeDefs").TEvent<TPointerEvent> & {
226
+ target?: FabricObject<ObjectEvents> | undefined;
227
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
228
+ button?: number | undefined;
229
+ isClick: boolean;
230
+ pointer: Point;
231
+ transform?: Transform | null | undefined;
232
+ absolutePointer: Point;
233
+ currentSubTargets?: FabricObject<ObjectEvents>[] | undefined;
234
+ currentTarget?: FabricObject<ObjectEvents> | null | undefined;
235
+ } & {
236
+ previousTarget?: FabricObject<ObjectEvents> | undefined;
237
+ }> & Record<"mouse:out", import("../EventTypeDefs").TEvent<TPointerEvent> & {
238
+ target?: FabricObject<ObjectEvents> | undefined;
239
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
240
+ button?: number | undefined;
241
+ isClick: boolean;
242
+ pointer: Point;
243
+ transform?: Transform | null | undefined;
244
+ absolutePointer: Point;
245
+ currentSubTargets?: FabricObject<ObjectEvents>[] | undefined;
246
+ currentTarget?: FabricObject<ObjectEvents> | null | undefined;
247
+ } & {
248
+ nextTarget?: FabricObject<ObjectEvents> | undefined;
249
+ }> & {
250
+ dragstart: import("../EventTypeDefs").TEvent<DragEvent> & {
251
+ target: FabricObject<ObjectEvents>;
252
+ };
253
+ drag: DragEventData;
254
+ dragover: DragEventData;
255
+ dragenter: import("../EventTypeDefs").TEvent<DragEvent> & {
256
+ target?: FabricObject<ObjectEvents> | undefined;
257
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
258
+ dragSource?: FabricObject<ObjectEvents> | undefined;
259
+ canDrop?: boolean | undefined;
260
+ didDrop?: boolean | undefined;
261
+ dropTarget?: FabricObject<ObjectEvents> | undefined;
262
+ } & {
263
+ previousTarget?: FabricObject<ObjectEvents> | undefined;
264
+ };
265
+ dragleave: import("../EventTypeDefs").TEvent<DragEvent> & {
266
+ target?: FabricObject<ObjectEvents> | undefined;
267
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
268
+ dragSource?: FabricObject<ObjectEvents> | undefined;
269
+ canDrop?: boolean | undefined;
270
+ didDrop?: boolean | undefined;
271
+ dropTarget?: FabricObject<ObjectEvents> | undefined;
272
+ } & {
273
+ nextTarget?: FabricObject<ObjectEvents> | undefined;
274
+ };
275
+ dragend: DragEventData;
276
+ 'drop:before': import("../EventTypeDefs").DropEventData;
277
+ drop: import("../EventTypeDefs").DropEventData;
278
+ 'drop:after': import("../EventTypeDefs").DropEventData;
279
+ } & {
280
+ 'drag:enter': import("../EventTypeDefs").TEvent<DragEvent> & {
281
+ target?: FabricObject<ObjectEvents> | undefined;
282
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
283
+ dragSource?: FabricObject<ObjectEvents> | undefined;
284
+ canDrop?: boolean | undefined;
285
+ didDrop?: boolean | undefined;
286
+ dropTarget?: FabricObject<ObjectEvents> | undefined;
287
+ } & {
288
+ previousTarget?: FabricObject<ObjectEvents> | undefined;
289
+ };
290
+ 'drag:leave': import("../EventTypeDefs").TEvent<DragEvent> & {
291
+ target?: FabricObject<ObjectEvents> | undefined;
292
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
293
+ dragSource?: FabricObject<ObjectEvents> | undefined;
294
+ canDrop?: boolean | undefined;
295
+ didDrop?: boolean | undefined;
296
+ dropTarget?: FabricObject<ObjectEvents> | undefined;
297
+ } & {
298
+ nextTarget?: FabricObject<ObjectEvents> | undefined;
299
+ };
300
+ } & import("../EventTypeDefs").MiscEvents & Record<"object:moving" | "object:scaling" | "object:rotating" | "object:skewing" | "object:resizing", import("../EventTypeDefs").TEvent<TPointerEvent> & {
301
+ transform: Transform;
302
+ pointer: Point;
303
+ } & {
304
+ target: FabricObject<ObjectEvents>;
305
+ }> & Record<"object:modified", import("../EventTypeDefs").ModifiedEvent<TPointerEvent> | {
306
+ target: FabricObject<ObjectEvents>;
307
+ }> & {
308
+ 'before:transform': import("../EventTypeDefs").TEvent<TPointerEvent> & {
309
+ transform: Transform;
310
+ };
311
+ } & {
312
+ 'selection:created': Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
313
+ selected: FabricObject<ObjectEvents>[];
314
+ };
315
+ 'selection:updated': Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
316
+ selected: FabricObject<ObjectEvents>[];
317
+ deselected: FabricObject<ObjectEvents>[];
318
+ };
319
+ 'before:selection:cleared': Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
320
+ deselected: FabricObject<ObjectEvents>[];
321
+ };
322
+ 'selection:cleared': Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
323
+ deselected: FabricObject<ObjectEvents>[];
324
+ };
325
+ } & {
326
+ 'before:path:created': {
327
+ path: FabricObject<ObjectEvents>;
328
+ };
329
+ 'path:created': {
330
+ path: FabricObject<ObjectEvents>;
331
+ };
332
+ 'erasing:start': never;
333
+ 'erasing:end': {
334
+ path: FabricObject<ObjectEvents>;
335
+ targets: FabricObject<ObjectEvents>[];
336
+ subTargets: FabricObject<ObjectEvents>[];
337
+ drawables: {
338
+ backgroundImage?: FabricObject<ObjectEvents> | undefined;
339
+ overlayImage?: FabricObject<ObjectEvents> | undefined;
340
+ };
341
+ };
342
+ 'text:selection:changed': {
343
+ target: import("../..").IText<import("../shapes/IText/ITextBehavior").ITextEvents>;
344
+ };
345
+ 'text:changed': {
346
+ target: import("../..").IText<import("../shapes/IText/ITextBehavior").ITextEvents>;
347
+ };
348
+ 'text:editing:entered': {
349
+ target: import("../..").IText<import("../shapes/IText/ITextBehavior").ITextEvents>;
350
+ };
351
+ 'text:editing:exited': {
352
+ target: import("../..").IText<import("../shapes/IText/ITextBehavior").ITextEvents>;
353
+ };
354
+ } & Record<"mousedown" | "mousedown:before" | "mousemove" | "mousemove:before" | "mouseup" | "mouseup:before" | "mousedblclick", TPointerEventInfo<TPointerEvent>> & Record<"mousewheel", TPointerEventInfo<WheelEvent>> & Record<"mouseover", import("../EventTypeDefs").TEvent<TPointerEvent> & {
355
+ target?: FabricObject<ObjectEvents> | undefined;
356
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
357
+ button?: number | undefined;
358
+ isClick: boolean;
359
+ pointer: Point;
360
+ transform?: Transform | null | undefined;
361
+ absolutePointer: Point;
362
+ currentSubTargets?: FabricObject<ObjectEvents>[] | undefined;
363
+ currentTarget?: FabricObject<ObjectEvents> | null | undefined;
364
+ } & {
365
+ previousTarget?: FabricObject<ObjectEvents> | undefined;
366
+ }> & Record<"mouseout", import("../EventTypeDefs").TEvent<TPointerEvent> & {
367
+ target?: FabricObject<ObjectEvents> | undefined;
368
+ subTargets?: FabricObject<ObjectEvents>[] | undefined;
369
+ button?: number | undefined;
370
+ isClick: boolean;
371
+ pointer: Point;
372
+ transform?: Transform | null | undefined;
373
+ absolutePointer: Point;
374
+ currentSubTargets?: FabricObject<ObjectEvents>[] | undefined;
375
+ currentTarget?: FabricObject<ObjectEvents> | null | undefined;
376
+ } & {
377
+ nextTarget?: FabricObject<ObjectEvents> | undefined;
378
+ }> & Record<"moving" | "scaling" | "rotating" | "skewing" | "resizing", import("../EventTypeDefs").BasicTransformEvent<TPointerEvent>> & Record<"modified", import("../EventTypeDefs").ModifiedEvent<TPointerEvent>> & {
379
+ selected: Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
380
+ target: FabricObject<ObjectEvents>;
381
+ };
382
+ deselected: Partial<import("../EventTypeDefs").TEvent<TPointerEvent>> & {
383
+ target: FabricObject<ObjectEvents>;
384
+ };
385
+ added: {
386
+ target: import("./StaticCanvas").StaticCanvas<import("../EventTypeDefs").StaticCanvasEvents> | Canvas | Group;
387
+ };
388
+ removed: {
389
+ target: import("./StaticCanvas").StaticCanvas<import("../EventTypeDefs").StaticCanvasEvents> | Canvas | Group;
390
+ };
391
+ 'erasing:end': {
392
+ path: FabricObject<ObjectEvents>;
393
+ };
394
+ })[T];
395
+ /**
396
+ * @private
397
+ * Handle event firing for target and subtargets
398
+ * @param {Event} e event from mouse
399
+ * @param {String} eventType event to fire (up, down or move)
400
+ * @param {fabric.Object} targetObj receiving event
401
+ * @param {Number} [button] button used in the event 1 = left, 2 = middle, 3 = right
402
+ * @param {Boolean} isClick for left button only, indicates that the mouse up happened without move.
403
+ */
404
+ _handleEvent(e: TPointerEvent, eventType: TPointerEventNames, button?: number, isClick?: boolean): void;
405
+ /**
406
+ * End the current transform.
407
+ * You don't usually need to call this method unless you are interrupting a user initiated transform
408
+ * because of some other event ( a press of key combination, or something that block the user UX )
409
+ * @param {Event} [e] send the mouse event that generate the finalize down, so it can be used in the event
410
+ */
411
+ endCurrentTransform(e: TPointerEvent): void;
412
+ /**
413
+ * @private
414
+ * @param {Event} e send the mouse event that generate the finalize down, so it can be used in the event
415
+ */
416
+ _finalizeCurrentTransform(e: TPointerEvent): void;
417
+ /**
418
+ * @private
419
+ * @param {Event} e Event object fired on mousedown
420
+ */
421
+ _onMouseDownInDrawingMode(e: TPointerEvent): void;
422
+ /**
423
+ * @private
424
+ * @param {Event} e Event object fired on mousemove
425
+ */
426
+ _onMouseMoveInDrawingMode(e: TPointerEvent): void;
427
+ /**
428
+ * @private
429
+ * @param {Event} e Event object fired on mouseup
430
+ */
431
+ _onMouseUpInDrawingMode(e: TPointerEvent): void;
432
+ /**
433
+ * Method that defines the actions when mouse is clicked on canvas.
434
+ * The method inits the currentTransform parameters and renders all the
435
+ * canvas so the current image can be placed on the top canvas and the rest
436
+ * in on the container one.
437
+ * @private
438
+ * @param {Event} e Event object fired on mousedown
439
+ */
440
+ __onMouseDown(e: TPointerEvent): void;
441
+ /**
442
+ * reset cache form common information needed during event processing
443
+ * @private
444
+ */
445
+ _resetTransformEventData(): void;
446
+ /**
447
+ * Cache common information needed during event processing
448
+ * @private
449
+ * @param {Event} e Event object fired on event
450
+ */
451
+ _cacheTransformEventData(e: TPointerEvent): void;
452
+ /**
453
+ * @private
454
+ */
455
+ _beforeTransform(e: TPointerEvent): void;
456
+ /**
457
+ * Method that defines the actions when mouse is hovering the canvas.
458
+ * The currentTransform parameter will define whether the user is rotating/scaling/translating
459
+ * an image or neither of them (only hovering). A group selection is also possible and would cancel
460
+ * all any other type of action.
461
+ * In case of an image transformation only the top canvas will be rendered.
462
+ * @private
463
+ * @param {Event} e Event object fired on mousemove
464
+ */
465
+ __onMouseMove(e: TPointerEvent): void;
466
+ /**
467
+ * Manage the mouseout, mouseover events for the fabric object on the canvas
468
+ * @param {Fabric.Object} target the target where the target from the mousemove event
469
+ * @param {Event} e Event object fired on mousemove
470
+ * @private
471
+ */
472
+ _fireOverOutEvents(e: TPointerEvent, target?: FabricObject): void;
473
+ /**
474
+ * Manage the dragEnter, dragLeave events for the fabric objects on the canvas
475
+ * @param {Fabric.Object} target the target where the target from the onDrag event
476
+ * @param {Object} data Event object fired on dragover
477
+ * @private
478
+ */
479
+ _fireEnterLeaveEvents(target: FabricObject | undefined, data: DragEventData): void;
480
+ /**
481
+ * Manage the synthetic in/out events for the fabric objects on the canvas
482
+ * @param {Fabric.Object} target the target where the target from the supported events
483
+ * @param {Object} data Event object fired
484
+ * @param {Object} config configuration for the function to work
485
+ * @param {String} config.targetName property on the canvas where the old target is stored
486
+ * @param {String} [config.canvasEvtOut] name of the event to fire at canvas level for out
487
+ * @param {String} config.evtOut name of the event to fire for out
488
+ * @param {String} [config.canvasEvtIn] name of the event to fire at canvas level for in
489
+ * @param {String} config.evtIn name of the event to fire for in
490
+ * @private
491
+ */
492
+ fireSyntheticInOutEvents<T extends keyof TSyntheticEventContext>(type: T, { target, oldTarget, fireCanvas, e, ...data }: TSyntheticEventContext[T] & {
493
+ target?: FabricObject;
494
+ oldTarget?: FabricObject;
495
+ fireCanvas?: boolean;
496
+ }): void;
497
+ /**
498
+ * Method that defines actions when an Event Mouse Wheel
499
+ * @param {Event} e Event object fired on mouseup
500
+ */
501
+ __onMouseWheel(e: TPointerEvent): void;
502
+ /**
503
+ * @private
504
+ * @param {Event} e Event fired on mousemove
505
+ */
506
+ _transformObject(e: TPointerEvent): void;
507
+ /**
508
+ * @private
509
+ */
510
+ _performTransformAction(e: TPointerEvent, transform: Transform, pointer: Point): void;
511
+ /**
512
+ * Sets the cursor depending on where the canvas is being hovered.
513
+ * Note: very buggy in Opera
514
+ * @param {Event} e Event object
515
+ * @param {Object} target Object that the mouse is hovering, if so.
516
+ */
517
+ _setCursorFromEvent(e: TPointerEvent, target?: FabricObject): void;
518
+ /**
519
+ * Return true if the current mouse event that generated a new selection should generate a group
520
+ * @private
521
+ * @param {TPointerEvent} e Event object
522
+ * @param {FabricObject} target
523
+ * @return {Boolean}
524
+ */
525
+ _shouldGroup(e: TPointerEvent, target?: FabricObject): boolean;
526
+ /**
527
+ * Handles active selection creation for user event
528
+ * @private
529
+ * @param {TPointerEvent} e Event object
530
+ * @param {FabricObject} target
531
+ */
532
+ _handleGrouping(e: TPointerEvent, target: FabricObject): void;
533
+ /**
534
+ * @private
535
+ */
536
+ _updateActiveSelection(e: TPointerEvent, target: FabricObject): void;
537
+ /**
538
+ * Generates and set as active the active selection from user events
539
+ * @private
540
+ */
541
+ _createActiveSelection(e: TPointerEvent, target: FabricObject): void;
542
+ /**
543
+ * Finds objects inside the selection rectangle and group them
544
+ * @private
545
+ * @param {Event} e mouse event
546
+ */
547
+ _groupSelectedObjects(e: TPointerEvent): void;
548
+ /**
549
+ * @private
550
+ */
551
+ _collectObjects(e: TPointerEvent): FabricObject<ObjectEvents>[];
552
+ /**
553
+ * @private
554
+ */
555
+ _maybeGroupObjects(e: TPointerEvent): void;
556
+ exitTextEditing(): void;
557
+ /**
558
+ * @override clear {@link textEditingManager}
559
+ */
560
+ clear(): void;
561
+ /**
562
+ * @override clear {@link textEditingManager}
563
+ */
564
+ destroy(): void;
565
+ }
566
+ export {};
567
+ //# sourceMappingURL=Canvas.d.ts.map