fabric 5.3.0-browser → 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 +142 -88
  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,74 @@
1
+ import { TSVGReviver } from '../../typedefs';
2
+ export declare class FabricObjectSVGExportMixin {
3
+ /**
4
+ * When an object is being exported as SVG as a clippath, a reference inside the SVG is needed.
5
+ * This reference is a UID in the fabric namespace and is temporary stored here.
6
+ * @type {String}
7
+ */
8
+ clipPathId?: string;
9
+ /**
10
+ * Returns styles-string for svg-export
11
+ * @param {Boolean} skipShadow a boolean to skip shadow filter output
12
+ * @return {String}
13
+ */
14
+ getSvgStyles(skipShadow?: boolean): string;
15
+ /**
16
+ * Returns styles-string for svg-export
17
+ * @param {Object} style the object from which to retrieve style properties
18
+ * @param {Boolean} useWhiteSpace a boolean to include an additional attribute in the style.
19
+ * @return {String}
20
+ */
21
+ getSvgSpanStyles(style: any, useWhiteSpace?: boolean): string;
22
+ /**
23
+ * Returns text-decoration property for svg-export
24
+ * @param {Object} style the object from which to retrieve style properties
25
+ * @return {String}
26
+ */
27
+ getSvgTextDecoration(style: any): string;
28
+ /**
29
+ * Returns filter for svg shadow
30
+ * @return {String}
31
+ */
32
+ getSvgFilter(): string;
33
+ /**
34
+ * Returns id attribute for svg output
35
+ * @return {String}
36
+ */
37
+ getSvgCommons(): string;
38
+ /**
39
+ * Returns transform-string for svg-export
40
+ * @param {Boolean} use the full transform or the single object one.
41
+ * @return {String}
42
+ */
43
+ getSvgTransform(full?: boolean, additionalTransform?: string): string;
44
+ /**
45
+ * Returns svg representation of an instance
46
+ * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.
47
+ * @return {String} svg representation of an instance
48
+ */
49
+ toSVG(reviver?: TSVGReviver): string;
50
+ /**
51
+ * Returns svg clipPath representation of an instance
52
+ * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.
53
+ * @return {String} svg representation of an instance
54
+ */
55
+ toClipPathSVG(reviver?: TSVGReviver): string;
56
+ /**
57
+ * @private
58
+ */
59
+ _createBaseClipPathSVGMarkup(objectMarkup: string[], { reviver, additionalTransform, }?: {
60
+ reviver?: TSVGReviver;
61
+ additionalTransform?: string;
62
+ }): string;
63
+ /**
64
+ * @private
65
+ */
66
+ _createBaseSVGMarkup(objectMarkup: string[], { noStyle, reviver, withShadow, additionalTransform, }?: {
67
+ noStyle?: boolean;
68
+ reviver?: TSVGReviver;
69
+ withShadow?: boolean;
70
+ additionalTransform?: string;
71
+ }): string;
72
+ addPaintOrder(): string;
73
+ }
74
+ //# sourceMappingURL=FabricObjectSVGExportMixin.d.ts.map
@@ -0,0 +1,282 @@
1
+ import { Point } from '../../Point';
2
+ import type { AssertKeys, TCornerPoint, TDegree } from '../../typedefs';
3
+ import { FabricObject } from './Object';
4
+ import { TQrDecomposeOut } from '../../util/misc/matrix';
5
+ import type { Control } from '../../controls/Control';
6
+ import { ObjectEvents, TPointerEvent } from '../../EventTypeDefs';
7
+ import type { Canvas } from '../../canvas/Canvas';
8
+ import type { ControlRenderingStyleOverride } from '../../controls/controls.render';
9
+ type TOCoord = Point & {
10
+ corner: TCornerPoint;
11
+ touchCorner: TCornerPoint;
12
+ };
13
+ type TControlSet = Record<string, Control>;
14
+ type TBorderRenderingStyleOverride = Partial<Pick<FabricObject, 'borderColor' | 'borderDashArray'>>;
15
+ type TStyleOverride = ControlRenderingStyleOverride & TBorderRenderingStyleOverride & Partial<Pick<FabricObject, 'hasBorders' | 'hasControls'> & {
16
+ forActiveSelection: boolean;
17
+ }>;
18
+ export interface DragMethods {
19
+ shouldStartDragging(): boolean;
20
+ onDragStart(e: DragEvent): boolean;
21
+ }
22
+ export type FabricObjectWithDragSupport = InteractiveFabricObject & DragMethods;
23
+ export declare class InteractiveFabricObject<EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<EventSpec> {
24
+ /**
25
+ * Describe object's corner position in canvas element coordinates.
26
+ * properties are depending on control keys and padding the main controls.
27
+ * each property is an object with x, y and corner.
28
+ * The `corner` property contains in a similar manner the 4 points of the
29
+ * interactive area of the corner.
30
+ * The coordinates depends from the controls positionHandler and are used
31
+ * to draw and locate controls
32
+ */
33
+ oCoords: Record<string, TOCoord>;
34
+ /**
35
+ * When `true`, cache does not get updated during scaling. The picture will get blocky if scaled
36
+ * too much and will be redrawn with correct details at the end of scaling.
37
+ * this setting is performance and application dependant.
38
+ * default to true
39
+ * since 1.7.0
40
+ * @type Boolean
41
+ * @default true
42
+ */
43
+ noScaleCache: boolean;
44
+ /**
45
+ * keeps the value of the last hovered corner during mouse move.
46
+ * 0 is no corner, or 'mt', 'ml', 'mtr' etc..
47
+ * It should be private, but there is no harm in using it as
48
+ * a read-only property.
49
+ * this isn't cleaned automatically. Non selected objects may have wrong values
50
+ * @type [string]
51
+ */
52
+ __corner?: string;
53
+ /**
54
+ * a map of control visibility for this object.
55
+ * this was left when controls were introduced to not break the api too much
56
+ * this takes priority over the generic control visibility
57
+ */
58
+ _controlsVisibility: Record<string, boolean>;
59
+ /**
60
+ * The angle that an object will lock to while rotating.
61
+ * @type [TDegree]
62
+ */
63
+ snapAngle?: TDegree;
64
+ /**
65
+ * The angle difference from the current snapped angle in which snapping should occur.
66
+ * When undefined, the snapThreshold will default to the snapAngle.
67
+ * @type [TDegree]
68
+ */
69
+ snapThreshold?: TDegree;
70
+ /**
71
+ * holds the controls for the object.
72
+ * controls are added by default_controls.js
73
+ */
74
+ controls: TControlSet;
75
+ /**
76
+ * internal boolean to signal the code that the object is
77
+ * part of the move action.
78
+ */
79
+ isMoving?: boolean;
80
+ /**
81
+ * A boolean used from the gesture module to keep tracking of a scaling
82
+ * action when there is no scaling transform in place.
83
+ * This is an edge case and is used twice in all codebase.
84
+ * Probably added to keep track of some performance issues
85
+ * @TODO use git blame to investigate why it was added
86
+ * DON'T USE IT. WE WILL TRY TO REMOVE IT
87
+ */
88
+ _scaling?: boolean;
89
+ canvas?: Canvas;
90
+ /**
91
+ * Constructor
92
+ * @param {Object} [options] Options object
93
+ */
94
+ constructor(options?: Record<string, unknown>);
95
+ /**
96
+ * Update width and height of the canvas for cache
97
+ * returns true or false if canvas needed resize.
98
+ * @private
99
+ * @return {Boolean} true if the canvas has been resized
100
+ */
101
+ _updateCacheCanvas(): boolean;
102
+ /**
103
+ * Determines which corner has been clicked
104
+ * @private
105
+ * @param {Object} pointer The pointer indicating the mouse position
106
+ * @param {boolean} forTouch indicates if we are looking for interaction area with a touch action
107
+ * @return {String|Boolean} corner code (tl, tr, bl, br, etc.), or false if nothing is found
108
+ */
109
+ _findTargetCorner(pointer: Point, forTouch?: boolean): 0 | string;
110
+ /**
111
+ * Calculates the coordinates of the center of each control plus the corners of the control itself
112
+ * This basically just delegates to each control positionHandler
113
+ * WARNING: changing what is passed to positionHandler is a breaking change, since position handler
114
+ * is a public api and should be done just if extremely necessary
115
+ * @return {Record<string, TOCoord>}
116
+ */
117
+ calcOCoords(): Record<string, TOCoord>;
118
+ /**
119
+ * Sets the coordinates that determine the interaction area of each control
120
+ * note: if we would switch to ROUND corner area, all of this would disappear.
121
+ * everything would resolve to a single point and a pythagorean theorem for the distance
122
+ * @todo evaluate simplification of code switching to circle interaction area at runtime
123
+ * @private
124
+ */
125
+ private _calcCornerCoords;
126
+ /**
127
+ * Sets corner and controls position coordinates based on current angle, width and height, left and top.
128
+ * oCoords are used to find the corners
129
+ * aCoords are used to quickly find an object on the canvas
130
+ * lineCoords are used to quickly find object during pointer events.
131
+ * See {@link https://github.com/fabricjs/fabric.js/wiki/When-to-call-setCoords} and {@link http://fabricjs.com/fabric-gotchas}
132
+ * @return {void}
133
+ */
134
+ setCoords(): void;
135
+ /**
136
+ * Calls a function for each control. The function gets called,
137
+ * with the control, the control's key and the object that is calling the iterator
138
+ * @param {Function} fn function to iterate over the controls over
139
+ */
140
+ forEachControl(fn: (control: Control, key: string, fabricObject: InteractiveFabricObject) => any): void;
141
+ /**
142
+ * Draws a colored layer behind the object, inside its selection borders.
143
+ * Requires public options: padding, selectionBackgroundColor
144
+ * this function is called when the context is transformed
145
+ * has checks to be skipped when the object is on a staticCanvas
146
+ * @todo evaluate if make this disappear in favor of a pre-render hook for objects
147
+ * this was added by Andrea Bogazzi to make possible some feature for work reasons
148
+ * it seemed a good option, now is an edge case
149
+ * @param {CanvasRenderingContext2D} ctx Context to draw on
150
+ */
151
+ drawSelectionBackground(ctx: CanvasRenderingContext2D): void;
152
+ /**
153
+ * @public override this function in order to customize the drawing of the control box, e.g. rounded corners, different border style.
154
+ * @param {CanvasRenderingContext2D} ctx ctx is rotated and translated so that (0,0) is at object's center
155
+ * @param {Point} size the control box size used
156
+ */
157
+ strokeBorders(ctx: CanvasRenderingContext2D, size: Point): void;
158
+ /**
159
+ * @private
160
+ * @param {CanvasRenderingContext2D} ctx Context to draw on
161
+ * @param {Point} size
162
+ * @param {TStyleOverride} styleOverride object to override the object style
163
+ */
164
+ _drawBorders(ctx: CanvasRenderingContext2D, size: Point, styleOverride?: TStyleOverride): void;
165
+ /**
166
+ * Renders controls and borders for the object
167
+ * the context here is not transformed
168
+ * @todo move to interactivity
169
+ * @param {CanvasRenderingContext2D} ctx Context to render on
170
+ * @param {TStyleOverride} [styleOverride] properties to override the object style
171
+ */
172
+ _renderControls(ctx: CanvasRenderingContext2D, styleOverride?: TStyleOverride): void;
173
+ /**
174
+ * Draws borders of an object's bounding box.
175
+ * Requires public properties: width, height
176
+ * Requires public options: padding, borderColor
177
+ * @param {CanvasRenderingContext2D} ctx Context to draw on
178
+ * @param {object} options object representing current object parameters
179
+ * @param {TStyleOverride} [styleOverride] object to override the object style
180
+ */
181
+ drawBorders(ctx: CanvasRenderingContext2D, options: TQrDecomposeOut, styleOverride: TStyleOverride): void;
182
+ /**
183
+ * Draws lines from a borders of an object's bounding box to controls that have `withConnection` property set.
184
+ * Requires public properties: width, height
185
+ * Requires public options: padding, borderColor
186
+ * @param {CanvasRenderingContext2D} ctx Context to draw on
187
+ * @param {Point} size object size x = width, y = height
188
+ */
189
+ drawControlsConnectingLines(ctx: CanvasRenderingContext2D, size: Point): void;
190
+ /**
191
+ * Draws corners of an object's bounding box.
192
+ * Requires public properties: width, height
193
+ * Requires public options: cornerSize, padding
194
+ * @param {CanvasRenderingContext2D} ctx Context to draw on
195
+ * @param {ControlRenderingStyleOverride} styleOverride object to override the object style
196
+ */
197
+ drawControls(ctx: CanvasRenderingContext2D, styleOverride?: ControlRenderingStyleOverride): void;
198
+ /**
199
+ * Returns true if the specified control is visible, false otherwise.
200
+ * @param {string} controlKey The key of the control. Possible values are usually 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr',
201
+ * but since the control api allow for any control name, can be any string.
202
+ * @returns {boolean} true if the specified control is visible, false otherwise
203
+ */
204
+ isControlVisible(controlKey: string): boolean;
205
+ /**
206
+ * Sets the visibility of the specified control.
207
+ * please do not use.
208
+ * @param {String} controlKey The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.
209
+ * but since the control api allow for any control name, can be any string.
210
+ * @param {Boolean} visible true to set the specified control visible, false otherwise
211
+ * @todo discuss this overlap of priority here with the team. Andrea Bogazzi for details
212
+ */
213
+ setControlVisible(controlKey: string, visible: boolean): void;
214
+ /**
215
+ * Sets the visibility state of object controls, this is just a bulk option for setControlVisible;
216
+ * @param {Record<string, boolean>} [options] with an optional key per control
217
+ * example: {Boolean} [options.bl] true to enable the bottom-left control, false to disable it
218
+ */
219
+ setControlsVisibility(options?: Record<string, boolean>): void;
220
+ /**
221
+ * Clears the canvas.contextTop in a specific area that corresponds to the object's bounding box
222
+ * that is in the canvas.contextContainer.
223
+ * This function is used to clear pieces of contextTop where we render ephemeral effects on top of the object.
224
+ * Example: blinking cursor text selection, drag effects.
225
+ * @todo discuss swapping restoreManually with a renderCallback, but think of async issues
226
+ * @param {Boolean} [restoreManually] When true won't restore the context after clear, in order to draw something else.
227
+ * @return {CanvasRenderingContext2D|undefined} canvas.contextTop that is either still transformed
228
+ * with the object transformMatrix, or restored to neutral transform
229
+ */
230
+ clearContextTop(restoreManually?: boolean): CanvasRenderingContext2D | undefined;
231
+ /**
232
+ * This callback function is called every time _discardActiveObject or _setActiveObject
233
+ * try to to deselect this object. If the function returns true, the process is cancelled
234
+ * @param {Object} [options] options sent from the upper functions
235
+ * @param {TPointerEvent} [options.e] event if the process is generated by an event
236
+ * @param {FabricObject} [options.object] next object we are setting as active, and reason why
237
+ * this is being deselected
238
+
239
+ */
240
+ onDeselect(options?: {
241
+ e?: TPointerEvent;
242
+ object?: FabricObject;
243
+ }): boolean;
244
+ /**
245
+ * This callback function is called every time _discardActiveObject or _setActiveObject
246
+ * try to to select this object. If the function returns true, the process is cancelled
247
+ * @param {Object} [options] options sent from the upper functions
248
+ * @param {Event} [options.e] event if the process is generated by an event
249
+ */
250
+ onSelect(options?: {
251
+ e?: TPointerEvent;
252
+ }): boolean;
253
+ /**
254
+ * Override to customize drag and drop behavior
255
+ * return true if the object currently dragged can be dropped on the target
256
+ * @public
257
+ * @param {DragEvent} e
258
+ * @returns {boolean}
259
+ */
260
+ canDrop(e: DragEvent): boolean;
261
+ /**
262
+ * Override to customize drag and drop behavior
263
+ * render a specific effect when an object is the source of a drag event
264
+ * example: render the selection status for the part of text that is being dragged from a text object
265
+ * @public
266
+ * @param {DragEvent} e
267
+ * @returns {boolean}
268
+ */
269
+ renderDragSourceEffect(this: AssertKeys<this, 'canvas'>, e: DragEvent): void;
270
+ /**
271
+ * Override to customize drag and drop behavior
272
+ * render a specific effect when an object is the target of a drag event
273
+ * used to show that the underly object can receive a drop, or to show how the
274
+ * object will change when dropping. example: show the cursor where the text is about to be dropped
275
+ * @public
276
+ * @param {DragEvent} e
277
+ * @returns {boolean}
278
+ */
279
+ renderDropTargetEffect(this: AssertKeys<this, 'canvas'>, e: DragEvent): void;
280
+ }
281
+ export {};
282
+ //# sourceMappingURL=InteractiveObject.d.ts.map