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,381 @@
1
+ import type { CollectionEvents, ObjectEvents } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import type { TClassProperties } from '../typedefs';
4
+ import { FabricObject } from './Object/FabricObject';
5
+ export type LayoutContextType = 'initialization' | 'object_modified' | 'added' | 'removed' | 'layout_change' | 'imperative';
6
+ export type LayoutContext = {
7
+ type: LayoutContextType;
8
+ /**
9
+ * array of objects starting from the object that triggered the call to the current one
10
+ */
11
+ path?: Group[];
12
+ [key: string]: any;
13
+ };
14
+ export type GroupEvents = ObjectEvents & CollectionEvents & {
15
+ layout: {
16
+ context: LayoutContext;
17
+ result: LayoutResult;
18
+ diff: Point;
19
+ };
20
+ };
21
+ export type LayoutStrategy = 'fit-content' | 'fit-content-lazy' | 'fixed' | 'clip-path';
22
+ /**
23
+ * positioning and layout data **relative** to instance's parent
24
+ */
25
+ export type LayoutResult = {
26
+ /**
27
+ * new centerX as measured by the containing plane (same as `left` with `originX` set to `center`)
28
+ */
29
+ centerX: number;
30
+ /**
31
+ * new centerY as measured by the containing plane (same as `top` with `originY` set to `center`)
32
+ */
33
+ centerY: number;
34
+ /**
35
+ * correctionX to translate objects by, measured as `centerX`
36
+ */
37
+ correctionX?: number;
38
+ /**
39
+ * correctionY to translate objects by, measured as `centerY`
40
+ */
41
+ correctionY?: number;
42
+ width: number;
43
+ height: number;
44
+ };
45
+ declare const Group_base: {
46
+ new (...args: any[]): {
47
+ _objects: import("../EventTypeDefs").BaseFabricObject[];
48
+ _onObjectAdded(object: import("../EventTypeDefs").BaseFabricObject): void;
49
+ _onObjectRemoved(object: import("../EventTypeDefs").BaseFabricObject): void;
50
+ _onStackOrderChanged(object: import("../EventTypeDefs").BaseFabricObject): void;
51
+ add(...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
52
+ insertAt(index: number, ...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
53
+ remove(...objects: import("../EventTypeDefs").BaseFabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
54
+ forEachObject(callback: (object: import("../EventTypeDefs").BaseFabricObject, index: number, array: import("../EventTypeDefs").BaseFabricObject[]) => any): void;
55
+ getObjects(...types: string[]): import("../EventTypeDefs").BaseFabricObject[];
56
+ item(index: number): import("../EventTypeDefs").BaseFabricObject;
57
+ isEmpty(): boolean;
58
+ size(): number;
59
+ contains(object: import("../EventTypeDefs").BaseFabricObject, deep?: boolean | undefined): boolean;
60
+ complexity(): number;
61
+ sendObjectToBack(object: import("../EventTypeDefs").BaseFabricObject): boolean;
62
+ bringObjectToFront(object: import("../EventTypeDefs").BaseFabricObject): boolean;
63
+ sendObjectBackwards(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
64
+ bringObjectForward(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
65
+ moveObjectTo(object: import("../EventTypeDefs").BaseFabricObject, index: number): boolean;
66
+ findNewLowerIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
67
+ findNewUpperIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
68
+ };
69
+ } & {
70
+ new (options?: Record<string, unknown> | undefined): FabricObject<GroupEvents>;
71
+ _fromObject(object: Record<string, unknown>, { extraParam, ...options }?: {
72
+ extraParam?: string | undefined;
73
+ signal?: AbortSignal | undefined;
74
+ }): Promise<import("./Object/Object").FabricObject<ObjectEvents>>;
75
+ fromObject(object: Record<string, unknown>, options?: {
76
+ signal?: AbortSignal | undefined;
77
+ } | undefined): Promise<import("./Object/Object").FabricObject<ObjectEvents>>;
78
+ };
79
+ /**
80
+ * @fires object:added
81
+ * @fires object:removed
82
+ * @fires layout once layout completes
83
+ */
84
+ export declare class Group extends Group_base {
85
+ /**
86
+ * Specifies the **layout strategy** for instance
87
+ * Used by `getLayoutStrategyResult` to calculate layout
88
+ * `fit-content`, `fit-content-lazy`, `fixed`, `clip-path` are supported out of the box
89
+ * @type LayoutStrategy
90
+ * @default
91
+ */
92
+ layout: LayoutStrategy;
93
+ /**
94
+ * Used to optimize performance
95
+ * set to `false` if you don't need contained objects to be targets of events
96
+ * @default
97
+ * @type boolean
98
+ */
99
+ subTargetCheck: boolean;
100
+ /**
101
+ * Used to allow targeting of object inside groups.
102
+ * set to true if you want to select an object inside a group.\
103
+ * **REQUIRES** `subTargetCheck` set to true
104
+ * @default
105
+ * @type boolean
106
+ */
107
+ interactive: boolean;
108
+ /**
109
+ * Used internally to optimize performance
110
+ * Once an object is selected, instance is rendered without the selected object.
111
+ * This way instance is cached only once for the entire interaction with the selected object.
112
+ * @private
113
+ */
114
+ protected _activeObjects: FabricObject[];
115
+ /**
116
+ * Constructor
117
+ *
118
+ * @param {FabricObject[]} [objects] instance objects
119
+ * @param {Object} [options] Options object
120
+ * @param {boolean} [objectsRelativeToGroup] true if objects exist in group coordinate plane
121
+ */
122
+ constructor(objects?: FabricObject[], options?: any, objectsRelativeToGroup?: boolean);
123
+ /**
124
+ * Checks if object can enter group and logs relevant warnings
125
+ * @private
126
+ * @param {FabricObject} object
127
+ * @returns
128
+ */
129
+ canEnterGroup(object: FabricObject): boolean;
130
+ /**
131
+ * Override this method to enhance performance (for groups with a lot of objects).
132
+ * If Overriding, be sure not pass illegal objects to group - it will break your app.
133
+ * @private
134
+ */
135
+ protected _filterObjectsBeforeEnteringGroup(objects: FabricObject[]): FabricObject<ObjectEvents>[];
136
+ /**
137
+ * Add objects
138
+ * @param {...FabricObject[]} objects
139
+ */
140
+ add(...objects: FabricObject[]): number;
141
+ /**
142
+ * Inserts an object into collection at specified index
143
+ * @param {FabricObject[]} objects Object to insert
144
+ * @param {Number} index Index to insert object at
145
+ */
146
+ insertAt(index: number, ...objects: FabricObject[]): number;
147
+ /**
148
+ * Remove objects
149
+ * @param {...FabricObject[]} objects
150
+ * @returns {FabricObject[]} removed objects
151
+ */
152
+ remove(...objects: FabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
153
+ _onObjectAdded(object: FabricObject): void;
154
+ _onRelativeObjectAdded(object: FabricObject): void;
155
+ /**
156
+ * @private
157
+ * @param {FabricObject} object
158
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
159
+ */
160
+ _onObjectRemoved(object: FabricObject, removeParentTransform?: boolean): void;
161
+ /**
162
+ * @private
163
+ * @param {'added'|'removed'} type
164
+ * @param {FabricObject[]} targets
165
+ */
166
+ _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]): void;
167
+ _onStackOrderChanged(): void;
168
+ /**
169
+ * @private
170
+ * @param {string} key
171
+ * @param {*} value
172
+ */
173
+ _set(key: string, value: any): this;
174
+ /**
175
+ * @private
176
+ */
177
+ _shouldSetNestedCoords(): boolean;
178
+ /**
179
+ * Remove all objects
180
+ * @returns {FabricObject[]} removed objects
181
+ */
182
+ removeAll(): import("../EventTypeDefs").BaseFabricObject[];
183
+ /**
184
+ * invalidates layout on object modified
185
+ * @private
186
+ */
187
+ __objectMonitor(opt: any): void;
188
+ /**
189
+ * keeps track of the selected objects
190
+ * @private
191
+ */
192
+ __objectSelectionMonitor(selected: boolean, opt: any): void;
193
+ /**
194
+ * @private
195
+ * @param {boolean} watch
196
+ * @param {FabricObject} object
197
+ */
198
+ _watchObject(watch: boolean, object: FabricObject): void;
199
+ /**
200
+ * @private
201
+ * @param {FabricObject} object
202
+ * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
203
+ * @returns {boolean} true if object entered group
204
+ */
205
+ enterGroup(object: FabricObject, removeParentTransform?: boolean): boolean;
206
+ /**
207
+ * @private
208
+ * @param {FabricObject} object
209
+ * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
210
+ */
211
+ _enterGroup(object: FabricObject, removeParentTransform?: boolean): void;
212
+ /**
213
+ * @private
214
+ * @param {FabricObject} object
215
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
216
+ */
217
+ exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
218
+ /**
219
+ * @private
220
+ * @param {FabricObject} object
221
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
222
+ */
223
+ _exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
224
+ /**
225
+ * Decide if the object should cache or not. Create its own cache level
226
+ * needsItsOwnCache should be used when the object drawing method requires
227
+ * a cache step. None of the fabric classes requires it.
228
+ * Generally you do not cache objects in groups because the group is already cached.
229
+ * @return {Boolean}
230
+ */
231
+ shouldCache(): boolean;
232
+ /**
233
+ * Check if this object or a child object will cast a shadow
234
+ * @return {Boolean}
235
+ */
236
+ willDrawShadow(): boolean;
237
+ /**
238
+ * Check if instance or its group are caching, recursively up
239
+ * @return {Boolean}
240
+ */
241
+ isOnACache(): boolean;
242
+ /**
243
+ * Execute the drawing operation for an object on a specified context
244
+ * @param {CanvasRenderingContext2D} ctx Context to render on
245
+ */
246
+ drawObject(ctx: CanvasRenderingContext2D): void;
247
+ /**
248
+ * @override
249
+ * @return {Boolean}
250
+ */
251
+ setCoords(): void;
252
+ /**
253
+ * Renders instance on a given context
254
+ * @param {CanvasRenderingContext2D} ctx context to render instance on
255
+ */
256
+ render(ctx: CanvasRenderingContext2D): void;
257
+ /**
258
+ * @public
259
+ * @param {Partial<LayoutResult> & { layout?: string }} [context] pass values to use for layout calculations
260
+ */
261
+ triggerLayout(context: any): void;
262
+ /**
263
+ * @private
264
+ * @param {FabricObject} object
265
+ * @param {Point} diff
266
+ */
267
+ _adjustObjectPosition(object: FabricObject, diff: Point): void;
268
+ /**
269
+ * initial layout logic:
270
+ * calculate bbox of objects (if necessary) and translate it according to options received from the constructor (left, top, width, height)
271
+ * so it is placed in the center of the bbox received from the constructor
272
+ *
273
+ * @private
274
+ * @param {LayoutContext} context
275
+ */
276
+ _applyLayoutStrategy(context: any): void;
277
+ /**
278
+ * Override this method to customize layout.
279
+ * If you need to run logic once layout completes use `onLayout`
280
+ * @public
281
+ * @param {string} layoutDirective
282
+ * @param {FabricObject[]} objects
283
+ * @param {LayoutContext} context
284
+ * @returns {LayoutResult | undefined}
285
+ */
286
+ getLayoutStrategyResult(layoutDirective: LayoutStrategy, objects: FabricObject[], context: LayoutContext): any;
287
+ /**
288
+ * Override this method to customize layout.
289
+ * A wrapper around {@link Group#getObjectsBoundingBox}
290
+ * @public
291
+ * @param {string} layoutDirective
292
+ * @param {FabricObject[]} objects
293
+ * @param {LayoutContext} context
294
+ * @returns {LayoutResult | undefined}
295
+ */
296
+ prepareBoundingBox(layoutDirective: LayoutStrategy, objects: FabricObject[], context: LayoutContext): any;
297
+ /**
298
+ * Calculates center taking into account originX, originY while not being sure that width/height are initialized
299
+ * @public
300
+ * @param {string} layoutDirective
301
+ * @param {FabricObject[]} objects
302
+ * @param {LayoutContext} context
303
+ * @returns {LayoutResult | undefined}
304
+ */
305
+ prepareInitialBoundingBox(layoutDirective: LayoutStrategy, objects: FabricObject[], context: LayoutContext): {
306
+ centerX: number;
307
+ centerY: number;
308
+ correctionX: number;
309
+ correctionY: number;
310
+ width: number;
311
+ height: number;
312
+ } | undefined;
313
+ /**
314
+ * Calculate the bbox of objects relative to instance's containing plane
315
+ * @public
316
+ * @param {FabricObject[]} objects
317
+ * @returns {LayoutResult | null} bounding box
318
+ */
319
+ getObjectsBoundingBox(objects: FabricObject[], ignoreOffset?: boolean): LayoutResult | null;
320
+ /**
321
+ * Hook that is called once layout has completed.
322
+ * Provided for layout customization, override if necessary.
323
+ * Complements `getLayoutStrategyResult`, which is called at the beginning of layout.
324
+ * @public
325
+ * @param {LayoutContext} context layout context
326
+ * @param {LayoutResult} result layout result
327
+ */
328
+ onLayout(context: LayoutContext, result: LayoutResult): void;
329
+ /**
330
+ *
331
+ * @private
332
+ * @param {'toObject'|'toDatalessObject'} [method]
333
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
334
+ * @returns {FabricObject[]} serialized objects
335
+ */
336
+ __serializeObjects(method: 'toObject' | 'toDatalessObject', propertiesToInclude?: string[]): Record<string, any>[];
337
+ /**
338
+ * Returns object representation of an instance
339
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
340
+ * @return {Object} object representation of an instance
341
+ */
342
+ toObject(propertiesToInclude?: (keyof this)[]): Record<string, any>;
343
+ toString(): string;
344
+ dispose(): void;
345
+ /**
346
+ * @private
347
+ */
348
+ _createSVGBgRect(reviver?: (markup: string) => any): string;
349
+ /**
350
+ * Returns svg representation of an instance
351
+ * @param {Function} [reviver] Method for further parsing of svg representation.
352
+ * @return {String} svg representation of an instance
353
+ */
354
+ _toSVG(reviver?: (markup: string) => any): string[];
355
+ /**
356
+ * Returns styles-string for svg-export, specific version for group
357
+ * @return {String}
358
+ */
359
+ getSvgStyles(): string;
360
+ /**
361
+ * Returns svg clipPath representation of an instance
362
+ * @param {Function} [reviver] Method for further parsing of svg representation.
363
+ * @return {String} svg representation of an instance
364
+ */
365
+ toClipPathSVG(reviver?: (markup: string) => any): string;
366
+ /**
367
+ * @todo support loading from svg
368
+ * @private
369
+ * @static
370
+ * @memberOf Group
371
+ * @param {Object} object Object to create a group from
372
+ * @returns {Promise<Group>}
373
+ */
374
+ static fromObject({ objects, ...options }: {
375
+ [x: string]: any;
376
+ objects?: never[] | undefined;
377
+ }): Promise<Group>;
378
+ }
379
+ export declare const groupDefaultValues: Partial<TClassProperties<Group>>;
380
+ export {};
381
+ //# sourceMappingURL=Group.d.ts.map
@@ -0,0 +1,78 @@
1
+ import { DragEventData, DropEventData, TPointerEvent } from '../../EventTypeDefs';
2
+ import type { IText } from './IText';
3
+ /**
4
+ * #### Dragging IText/Textbox Lifecycle
5
+ * - {@link start} is called from `mousedown` {@link IText#_mouseDownHandler} and determines if dragging should start by testing {@link isPointerOverSelection}
6
+ * - if true `mousedown` {@link IText#_mouseDownHandler} is blocked to keep selection
7
+ * - if the pointer moves, canvas fires numerous mousemove {@link Canvas#_onMouseMove} that we make sure **aren't** prevented ({@link IText#shouldStartDragging}) in order for the window to start a drag session
8
+ * - once/if the session starts canvas calls {@link onDragStart} on the active object to determine if dragging should occur
9
+ * - canvas fires relevant drag events that are handled by the handlers defined in this scope
10
+ * - {@link end} is called from `mouseup` {@link IText#mouseUpHandler}, blocking IText default click behavior
11
+ * - in case the drag session didn't occur, {@link end} handles a click, since logic to do so was blocked during `mousedown`
12
+ */
13
+ export declare class DraggableTextDelegate {
14
+ readonly target: IText;
15
+ private __mouseDownInPlace;
16
+ private __dragStartFired;
17
+ private __isDraggingOver;
18
+ private __dragStartSelection?;
19
+ private __dragImageDisposer?;
20
+ private _dispose?;
21
+ constructor(target: IText);
22
+ isPointerOverSelection(e: TPointerEvent): boolean;
23
+ /**
24
+ * @public override this method to disable dragging and default to mousedown logic
25
+ */
26
+ start(e: TPointerEvent): boolean;
27
+ /**
28
+ * @public override this method to disable dragging without discarding selection
29
+ */
30
+ isActive(): boolean;
31
+ /**
32
+ * Ends interaction and sets cursor in case of a click
33
+ * @returns true if was active
34
+ */
35
+ end(e: TPointerEvent): boolean;
36
+ getDragStartSelection(): {
37
+ selectionStart: number;
38
+ selectionEnd: number;
39
+ } | undefined;
40
+ /**
41
+ * Override to customize the drag image
42
+ * https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setDragImage
43
+ */
44
+ setDragImage(e: DragEvent, { selectionStart, selectionEnd, }: {
45
+ selectionStart: number;
46
+ selectionEnd: number;
47
+ }): void;
48
+ /**
49
+ * @returns {boolean} determines whether {@link target} should/shouldn't become a drag source
50
+ */
51
+ onDragStart(e: DragEvent): boolean;
52
+ /**
53
+ * use {@link targetCanDrop} to respect overriding
54
+ * @returns {boolean} determines whether {@link target} should/shouldn't become a drop target
55
+ */
56
+ canDrop(e: DragEvent): boolean;
57
+ /**
58
+ * in order to respect overriding {@link IText#canDrop} we call that instead of calling {@link canDrop} directly
59
+ */
60
+ protected targetCanDrop(e: DragEvent): boolean;
61
+ dragEnterHandler({ e }: DragEventData): void;
62
+ dragOverHandler(ev: DragEventData): void;
63
+ dragLeaveHandler(): void;
64
+ /**
65
+ * Override the `text/plain | application/fabric` types of {@link DragEvent#dataTransfer}
66
+ * in order to change the drop value or to customize styling respectively, by listening to the `drop:before` event
67
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#performing_a_drop
68
+ */
69
+ dropHandler(ev: DropEventData): void;
70
+ /**
71
+ * fired only on the drag source after drop (if occurred)
72
+ * handle changes to the drag source in case of a drop on another object or a cancellation
73
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#finishing_a_drag
74
+ */
75
+ dragEndHandler({ e }: DragEventData): void;
76
+ dispose(): void;
77
+ }
78
+ //# sourceMappingURL=DraggableTextDelegate.d.ts.map