fabric 5.3.0 → 6.0.0-beta3

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 (604) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintignore +3 -0
  5. package/.eslintrc.js +43 -0
  6. package/.eslintrc.json +38 -46
  7. package/.eslintrc_tests +12 -0
  8. package/.gitattributes +2 -0
  9. package/.gitpod.yml +17 -1
  10. package/.prettierignore +19 -0
  11. package/.prettierrc +4 -0
  12. package/CHANGELOG.md +532 -189
  13. package/CONTRIBUTING.md +224 -59
  14. package/README.md +200 -235
  15. package/bower.json +1 -3
  16. package/dist/fabric.d.ts +42 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +27582 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.min.js +1 -0
  21. package/dist/index.mjs +27519 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/index.node.cjs +27663 -0
  24. package/dist/index.node.cjs.map +1 -0
  25. package/dist/index.node.d.ts +14 -0
  26. package/dist/index.node.mjs +27606 -0
  27. package/dist/index.node.mjs.map +1 -0
  28. package/dist/src/ClassRegistry.d.ts +13 -0
  29. package/dist/src/Collection.d.ts +136 -0
  30. package/dist/src/CommonMethods.d.ts +32 -0
  31. package/dist/src/EventTypeDefs.d.ts +227 -0
  32. package/dist/src/Intersection.d.ts +112 -0
  33. package/dist/src/Observable.d.ts +60 -0
  34. package/dist/src/Pattern.d.ts +113 -0
  35. package/dist/src/Point.d.ts +232 -0
  36. package/dist/src/Shadow.d.ts +97 -0
  37. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  38. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  39. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  40. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  41. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  42. package/dist/src/cache.d.ts +47 -0
  43. package/dist/src/canvas/Canvas.d.ts +548 -0
  44. package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
  45. package/dist/src/canvas/StaticCanvas.d.ts +778 -0
  46. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  47. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  48. package/dist/src/color/Color.d.ts +174 -0
  49. package/dist/src/color/color_map.d.ts +155 -0
  50. package/dist/src/color/constants.d.ts +22 -0
  51. package/dist/src/color/util.d.ts +12 -0
  52. package/dist/src/config.d.ts +115 -0
  53. package/dist/src/constants.d.ts +14 -0
  54. package/dist/src/controls/Control.d.ts +228 -0
  55. package/dist/src/controls/changeWidth.d.ts +13 -0
  56. package/dist/src/controls/commonControls.d.ts +28 -0
  57. package/dist/src/controls/controlRendering.d.ts +29 -0
  58. package/dist/src/controls/drag.d.ts +12 -0
  59. package/dist/src/controls/index.d.ts +13 -0
  60. package/dist/src/controls/polyControl.d.ts +5 -0
  61. package/dist/src/controls/rotate.d.ts +12 -0
  62. package/dist/src/controls/scale.d.ts +47 -0
  63. package/dist/src/controls/scaleSkew.d.ts +39 -0
  64. package/dist/src/controls/skew.d.ts +33 -0
  65. package/dist/src/controls/util.d.ts +41 -0
  66. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  67. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  68. package/dist/src/env/browser.d.ts +3 -0
  69. package/dist/src/env/index.d.ts +15 -0
  70. package/dist/src/env/node.d.ts +5 -0
  71. package/dist/src/env/types.d.ts +15 -0
  72. package/dist/src/filters/BaseFilter.d.ts +153 -0
  73. package/dist/src/filters/BlendColor.d.ts +80 -0
  74. package/dist/src/filters/BlendImage.d.ts +92 -0
  75. package/dist/src/filters/Blur.d.ts +51 -0
  76. package/dist/src/filters/Boilerplate.d.ts +48 -0
  77. package/dist/src/filters/Brightness.d.ts +47 -0
  78. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  79. package/dist/src/filters/ColorMatrix.d.ts +63 -0
  80. package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
  81. package/dist/src/filters/Composed.d.ts +45 -0
  82. package/dist/src/filters/Contrast.d.ts +45 -0
  83. package/dist/src/filters/Convolute.d.ts +82 -0
  84. package/dist/src/filters/FilterBackend.d.ts +14 -0
  85. package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
  86. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  87. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  88. package/dist/src/filters/Gamma.d.ts +54 -0
  89. package/dist/src/filters/Grayscale.d.ts +46 -0
  90. package/dist/src/filters/HueRotation.d.ts +24 -0
  91. package/dist/src/filters/Invert.d.ts +55 -0
  92. package/dist/src/filters/Noise.d.ts +54 -0
  93. package/dist/src/filters/Pixelate.d.ts +44 -0
  94. package/dist/src/filters/RemoveColor.d.ts +63 -0
  95. package/dist/src/filters/Resize.d.ts +136 -0
  96. package/dist/src/filters/Saturation.d.ts +48 -0
  97. package/dist/src/filters/Vibrance.d.ts +48 -0
  98. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  99. package/dist/src/filters/filters.d.ts +21 -0
  100. package/dist/src/filters/index.d.ts +5 -0
  101. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  102. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  103. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  104. package/dist/src/filters/shaders/blur.d.ts +2 -0
  105. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  106. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  107. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  108. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  109. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  110. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  111. package/dist/src/filters/shaders/invert.d.ts +2 -0
  112. package/dist/src/filters/shaders/noise.d.ts +2 -0
  113. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  114. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  115. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  116. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  117. package/dist/src/filters/typedefs.d.ts +49 -0
  118. package/dist/src/gradient/Gradient.d.ts +149 -0
  119. package/dist/src/gradient/constants.d.ts +15 -0
  120. package/dist/src/gradient/parser/index.d.ts +4 -0
  121. package/dist/src/gradient/parser/misc.d.ts +4 -0
  122. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  123. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  124. package/dist/src/gradient/typedefs.d.ts +93 -0
  125. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  126. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  127. package/dist/src/parkinglot/straighten.d.ts +2 -0
  128. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  129. package/dist/src/parser/attributes.d.ts +6 -0
  130. package/dist/src/parser/constants.d.ts +53 -0
  131. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  132. package/dist/src/parser/elementById.d.ts +6 -0
  133. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  134. package/dist/src/parser/elements_parser.d.ts +3 -0
  135. package/dist/src/parser/getCSSRules.d.ts +7 -0
  136. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  137. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  138. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  139. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  140. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  141. package/dist/src/parser/index.d.ts +10 -0
  142. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  143. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  144. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  145. package/dist/src/parser/normalizeValue.d.ts +2 -0
  146. package/dist/src/parser/parseAttributes.d.ts +9 -0
  147. package/dist/src/parser/parseElements.d.ts +11 -0
  148. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  149. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  150. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  151. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  152. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  153. package/dist/src/parser/parseStyleString.d.ts +2 -0
  154. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  155. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  156. package/dist/src/parser/percent.d.ts +9 -0
  157. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  158. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  159. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  160. package/dist/src/parser/selectorMatches.d.ts +2 -0
  161. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  162. package/dist/src/parser/skewMatrix.d.ts +2 -0
  163. package/dist/src/parser/translateMatrix.d.ts +2 -0
  164. package/dist/src/shapes/ActiveSelection.d.ts +82 -0
  165. package/dist/src/shapes/Circle.d.ts +99 -0
  166. package/dist/src/shapes/Ellipse.d.ts +84 -0
  167. package/dist/src/shapes/Group.d.ts +408 -0
  168. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  169. package/dist/src/shapes/IText/IText.d.ts +335 -0
  170. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  171. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
  172. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  173. package/dist/src/shapes/IText/constants.d.ts +13 -0
  174. package/dist/src/shapes/Image.d.ts +311 -0
  175. package/dist/src/shapes/Line.d.ts +126 -0
  176. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  177. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  178. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  179. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  180. package/dist/src/shapes/Object/Object.d.ts +594 -0
  181. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  182. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  183. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  184. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  185. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  186. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  187. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  188. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  189. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  190. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  191. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  192. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  193. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  194. package/dist/src/shapes/Path.d.ts +130 -0
  195. package/dist/src/shapes/Polygon.d.ts +9 -0
  196. package/dist/src/shapes/Polyline.d.ts +140 -0
  197. package/dist/src/shapes/Rect.d.ts +76 -0
  198. package/dist/src/shapes/Text/StyledText.d.ts +119 -0
  199. package/dist/src/shapes/Text/Text.d.ts +673 -0
  200. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  201. package/dist/src/shapes/Text/constants.d.ts +7 -0
  202. package/dist/src/shapes/Textbox.d.ts +185 -0
  203. package/dist/src/shapes/Triangle.d.ts +25 -0
  204. package/dist/src/typedefs.d.ts +90 -0
  205. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  206. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  207. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  208. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  209. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  210. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  211. package/dist/src/util/animation/animate.d.ts +37 -0
  212. package/dist/src/util/animation/easing.d.ts +130 -0
  213. package/dist/src/util/animation/types.d.ts +87 -0
  214. package/dist/src/util/applyMixins.d.ts +8 -0
  215. package/dist/src/util/dom_event.d.ts +5 -0
  216. package/dist/src/util/dom_misc.d.ts +39 -0
  217. package/dist/src/util/dom_request.d.ts +14 -0
  218. package/dist/src/util/dom_style.d.ts +7 -0
  219. package/dist/src/util/fireEvent.d.ts +3 -0
  220. package/dist/src/util/index.d.ts +35 -0
  221. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  222. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  223. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  224. package/dist/src/util/internals/index.d.ts +4 -0
  225. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  226. package/dist/src/util/internals/uid.d.ts +2 -0
  227. package/dist/src/util/lang_string.d.ts +22 -0
  228. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  229. package/dist/src/util/misc/capValue.d.ts +2 -0
  230. package/dist/src/util/misc/cos.d.ts +10 -0
  231. package/dist/src/util/misc/dom.d.ts +28 -0
  232. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  233. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  234. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  235. package/dist/src/util/misc/matrix.d.ts +92 -0
  236. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  237. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  238. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  239. package/dist/src/util/misc/pick.d.ts +9 -0
  240. package/dist/src/util/misc/planeChange.d.ts +84 -0
  241. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  242. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  243. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  244. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  245. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  246. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  247. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  248. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  249. package/dist/src/util/misc/sin.d.ts +10 -0
  250. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  251. package/dist/src/util/misc/textStyles.d.ts +32 -0
  252. package/dist/src/util/misc/toFixed.d.ts +8 -0
  253. package/dist/src/util/misc/vectors.d.ts +57 -0
  254. package/dist/src/util/path/index.d.ts +96 -0
  255. package/dist/src/util/path/regex.d.ts +3 -0
  256. package/dist/src/util/path/typechecks.d.ts +24 -0
  257. package/dist/src/util/path/typedefs.d.ts +220 -0
  258. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  259. package/dist/src/util/types.d.ts +19 -0
  260. package/fabric.ts +51 -0
  261. package/index.node.ts +37 -0
  262. package/index.ts +1 -0
  263. package/package.json +100 -40
  264. package/publish.js +0 -26
  265. package/rollup.config.mjs +91 -0
  266. package/rollup.test.config.js +24 -0
  267. package/scripts/build.mjs +50 -0
  268. package/scripts/buildLock.mjs +115 -0
  269. package/scripts/buildReporter.mjs +15 -0
  270. package/scripts/buildStats.mjs +139 -0
  271. package/scripts/dirname.mjs +14 -0
  272. package/scripts/git.mjs +36 -0
  273. package/scripts/index.mjs +564 -0
  274. package/scripts/sandbox.mjs +149 -0
  275. package/src/ClassRegistry.ts +56 -0
  276. package/src/Collection.ts +346 -0
  277. package/src/CommonMethods.ts +63 -0
  278. package/src/EventTypeDefs.ts +296 -0
  279. package/src/Intersection.ts +302 -0
  280. package/src/Observable.ts +181 -0
  281. package/src/Pattern.ts +227 -0
  282. package/src/Point.ts +388 -0
  283. package/src/Shadow.ts +214 -0
  284. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  285. package/src/brushes/CircleBrush.ts +145 -0
  286. package/src/brushes/PatternBrush.ts +70 -0
  287. package/src/brushes/PencilBrush.ts +300 -0
  288. package/src/brushes/SprayBrush.ts +219 -0
  289. package/src/cache.ts +90 -0
  290. package/src/canvas/Canvas.ts +1607 -0
  291. package/src/canvas/SelectableCanvas.ts +1608 -0
  292. package/src/canvas/StaticCanvas.ts +1734 -0
  293. package/src/canvas/TextEditingManager.ts +48 -0
  294. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  295. package/src/color/Color.ts +404 -0
  296. package/src/color/color_map.ts +154 -0
  297. package/src/color/constants.ts +26 -0
  298. package/src/color/util.ts +32 -0
  299. package/src/config.ts +159 -0
  300. package/src/constants.ts +20 -0
  301. package/src/controls/Control.ts +380 -0
  302. package/src/controls/changeWidth.ts +52 -0
  303. package/src/controls/commonControls.ts +105 -0
  304. package/src/controls/controlRendering.ts +138 -0
  305. package/src/controls/drag.ts +31 -0
  306. package/src/controls/index.ts +22 -0
  307. package/src/controls/polyControl.ts +135 -0
  308. package/src/controls/rotate.ts +87 -0
  309. package/src/controls/scale.ts +277 -0
  310. package/src/controls/scaleSkew.ts +92 -0
  311. package/src/controls/skew.ts +242 -0
  312. package/src/controls/util.ts +154 -0
  313. package/src/controls/wrapWithFireEvent.ts +25 -0
  314. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  315. package/src/env/browser.ts +32 -0
  316. package/src/env/index.ts +24 -0
  317. package/src/env/node.ts +56 -0
  318. package/src/env/types.ts +15 -0
  319. package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
  320. package/src/filters/BlendColor.ts +217 -0
  321. package/src/filters/BlendImage.ts +228 -0
  322. package/src/filters/Blur.ts +179 -0
  323. package/src/filters/Boilerplate.ts +94 -0
  324. package/src/filters/Brightness.ts +83 -0
  325. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  326. package/src/filters/ColorMatrix.ts +145 -0
  327. package/src/filters/ColorMatrixFilters.ts +77 -0
  328. package/src/filters/Composed.ts +76 -0
  329. package/src/filters/Contrast.ts +82 -0
  330. package/src/filters/Convolute.ts +184 -0
  331. package/src/filters/FilterBackend.ts +34 -0
  332. package/src/filters/GLProbes/GLProbe.ts +11 -0
  333. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  334. package/src/filters/GLProbes/WebGLProbe.ts +46 -0
  335. package/src/filters/Gamma.ts +110 -0
  336. package/src/filters/Grayscale.ts +102 -0
  337. package/src/filters/HueRotation.ts +62 -0
  338. package/src/filters/Invert.ts +99 -0
  339. package/src/filters/Noise.ts +94 -0
  340. package/src/filters/Pixelate.ts +96 -0
  341. package/src/filters/RemoveColor.ts +135 -0
  342. package/src/filters/Resize.ts +538 -0
  343. package/src/filters/Saturation.ts +87 -0
  344. package/src/filters/Vibrance.ts +88 -0
  345. package/src/filters/WebGLFilterBackend.ts +430 -0
  346. package/src/filters/filters.ts +28 -0
  347. package/src/filters/index.ts +5 -0
  348. package/src/filters/shaders/baseFilter.ts +19 -0
  349. package/src/filters/shaders/blendColor.ts +33 -0
  350. package/src/filters/shaders/blendImage.ts +32 -0
  351. package/src/filters/shaders/blur.ts +24 -0
  352. package/src/filters/shaders/brightness.ts +11 -0
  353. package/src/filters/shaders/colorMatrix.ts +12 -0
  354. package/src/filters/shaders/constrast.ts +11 -0
  355. package/src/filters/shaders/convolute.ts +154 -0
  356. package/src/filters/shaders/gamma.ts +15 -0
  357. package/src/filters/shaders/grayscale.ts +36 -0
  358. package/src/filters/shaders/invert.ts +19 -0
  359. package/src/filters/shaders/noise.ts +16 -0
  360. package/src/filters/shaders/pixelate.ts +19 -0
  361. package/src/filters/shaders/removeColor.ts +13 -0
  362. package/src/filters/shaders/saturation.ts +15 -0
  363. package/src/filters/shaders/vibrance.ts +16 -0
  364. package/src/filters/typedefs.ts +65 -0
  365. package/src/gradient/Gradient.ts +406 -0
  366. package/src/gradient/constants.ts +12 -0
  367. package/src/gradient/parser/index.ts +3 -0
  368. package/src/gradient/parser/misc.ts +13 -0
  369. package/src/gradient/parser/parseColorStops.ts +56 -0
  370. package/src/gradient/parser/parseCoords.ts +73 -0
  371. package/src/gradient/typedefs.ts +104 -0
  372. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  373. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  374. package/src/parkinglot/straighten.ts +58 -0
  375. package/src/parser/applyViewboxTransform.ts +157 -0
  376. package/src/parser/attributes.ts +25 -0
  377. package/src/parser/constants.ts +115 -0
  378. package/src/parser/doesSomeParentMatch.ts +19 -0
  379. package/src/parser/elementById.ts +21 -0
  380. package/src/parser/elementMatchesRule.ts +16 -0
  381. package/src/parser/elements_parser.ts +191 -0
  382. package/src/parser/getCSSRules.ts +62 -0
  383. package/src/parser/getGlobalStylesForElement.ts +19 -0
  384. package/src/parser/getGradientDefs.ts +31 -0
  385. package/src/parser/getMultipleNodes.ts +15 -0
  386. package/src/parser/getSvgRegex.ts +5 -0
  387. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  388. package/src/parser/index.ts +9 -0
  389. package/src/parser/loadSVGFromString.ts +26 -0
  390. package/src/parser/loadSVGFromURL.ts +40 -0
  391. package/src/parser/normalizeAttr.ts +10 -0
  392. package/src/parser/normalizeValue.ts +63 -0
  393. package/src/parser/parseAttributes.ts +90 -0
  394. package/src/parser/parseElements.ts +28 -0
  395. package/src/parser/parseFontDeclaration.ts +44 -0
  396. package/src/parser/parsePointsAttribute.ts +34 -0
  397. package/src/parser/parseSVGDocument.ts +93 -0
  398. package/src/parser/parseStyleAttribute.ts +27 -0
  399. package/src/parser/parseStyleObject.ts +15 -0
  400. package/src/parser/parseStyleString.ts +16 -0
  401. package/src/parser/parseTransformAttribute.ts +155 -0
  402. package/src/parser/parseUseDirectives.ts +78 -0
  403. package/src/parser/percent.ts +27 -0
  404. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  405. package/src/parser/rotateMatrix.ts +21 -0
  406. package/src/parser/scaleMatrix.ts +9 -0
  407. package/src/parser/selectorMatches.ts +25 -0
  408. package/src/parser/setStrokeFillOpacity.ts +40 -0
  409. package/src/parser/skewMatrix.ts +6 -0
  410. package/src/parser/translateMatrix.ts +8 -0
  411. package/src/shapes/ActiveSelection.ts +189 -0
  412. package/src/shapes/Circle.ts +242 -0
  413. package/src/shapes/Ellipse.ts +179 -0
  414. package/src/shapes/Group.ts +1100 -0
  415. package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
  416. package/src/shapes/IText/IText.ts +693 -0
  417. package/src/shapes/IText/ITextBehavior.ts +1064 -0
  418. package/src/shapes/IText/ITextClickBehavior.ts +325 -0
  419. package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
  420. package/src/shapes/IText/constants.ts +47 -0
  421. package/src/shapes/Image.ts +841 -0
  422. package/src/shapes/Line.ts +346 -0
  423. package/src/shapes/Object/AnimatableObject.ts +106 -0
  424. package/src/shapes/Object/FabricObject.ts +29 -0
  425. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  426. package/src/shapes/Object/InteractiveObject.ts +672 -0
  427. package/src/shapes/Object/Object.ts +1561 -0
  428. package/src/shapes/Object/ObjectGeometry.ts +813 -0
  429. package/src/shapes/Object/ObjectOrigin.ts +276 -0
  430. package/src/shapes/Object/StackedObject.ts +206 -0
  431. package/src/shapes/Object/defaultValues.ts +108 -0
  432. package/src/shapes/Object/types/BaseProps.ts +96 -0
  433. package/src/shapes/Object/types/BorderProps.ts +40 -0
  434. package/src/shapes/Object/types/ControlProps.ts +69 -0
  435. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  436. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  437. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  438. package/src/shapes/Object/types/ObjectProps.ts +46 -0
  439. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  440. package/src/shapes/Object/types/index.ts +8 -0
  441. package/src/shapes/Path.ts +416 -0
  442. package/src/shapes/Polygon.ts +20 -0
  443. package/src/shapes/Polyline.ts +359 -0
  444. package/src/shapes/Rect.ts +233 -0
  445. package/src/shapes/Text/StyledText.ts +329 -0
  446. package/src/shapes/Text/Text.ts +1884 -0
  447. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  448. package/src/shapes/Text/constants.ts +91 -0
  449. package/src/shapes/Textbox.ts +477 -0
  450. package/src/shapes/Triangle.ts +60 -0
  451. package/src/typedefs.ts +115 -0
  452. package/src/util/animation/AnimationBase.ts +166 -0
  453. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  454. package/src/util/animation/AnimationRegistry.ts +58 -0
  455. package/src/util/animation/ArrayAnimation.ts +27 -0
  456. package/src/util/animation/ColorAnimation.ts +74 -0
  457. package/src/util/animation/ValueAnimation.ts +29 -0
  458. package/src/util/animation/animate.ts +74 -0
  459. package/src/util/animation/easing.ts +327 -0
  460. package/src/util/animation/types.ts +136 -0
  461. package/src/util/applyMixins.ts +22 -0
  462. package/src/util/dom_event.ts +28 -0
  463. package/src/util/dom_misc.ts +121 -0
  464. package/src/util/dom_request.ts +64 -0
  465. package/src/util/dom_style.ts +20 -0
  466. package/src/util/fireEvent.ts +15 -0
  467. package/src/util/index.ts +102 -0
  468. package/src/util/internals/cloneDeep.ts +2 -0
  469. package/src/util/internals/getRandomInt.ts +8 -0
  470. package/src/util/internals/ifNaN.ts +9 -0
  471. package/src/util/internals/index.ts +3 -0
  472. package/src/util/internals/removeFromArray.ts +14 -0
  473. package/src/util/internals/uid.ts +3 -0
  474. package/src/util/lang_string.ts +79 -0
  475. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  476. package/src/util/misc/capValue.ts +2 -0
  477. package/src/util/misc/cos.ts +24 -0
  478. package/src/util/misc/dom.ts +50 -0
  479. package/src/util/misc/findScaleTo.ts +44 -0
  480. package/src/util/misc/groupSVGElements.ts +15 -0
  481. package/src/util/misc/isTransparent.ts +28 -0
  482. package/src/util/misc/matrix.ts +207 -0
  483. package/src/util/misc/mergeClipPaths.ts +40 -0
  484. package/src/util/misc/objectEnlive.ts +189 -0
  485. package/src/util/misc/objectTransforms.ts +129 -0
  486. package/src/util/misc/pick.ts +29 -0
  487. package/src/util/misc/planeChange.ts +136 -0
  488. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  489. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
  490. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  491. package/src/util/misc/projectStroke/index.ts +53 -0
  492. package/src/util/misc/projectStroke/types.ts +24 -0
  493. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  494. package/src/util/misc/resolveOrigin.ts +22 -0
  495. package/src/util/misc/rotatePoint.ts +15 -0
  496. package/src/util/misc/sin.ts +26 -0
  497. package/src/util/misc/svgParsing.ts +181 -0
  498. package/src/util/misc/textStyles.ts +134 -0
  499. package/src/util/misc/toFixed.ts +8 -0
  500. package/src/util/misc/vectors.ts +82 -0
  501. package/src/util/path/index.ts +1038 -0
  502. package/src/util/path/regex.ts +41 -0
  503. package/src/util/path/typechecks.ts +145 -0
  504. package/src/util/path/typedefs.ts +305 -0
  505. package/src/util/transform_matrix_removal.ts +60 -0
  506. package/src/util/types.ts +78 -0
  507. package/tsconfig.json +106 -0
  508. package/HEADER.js +0 -203
  509. package/build.js +0 -287
  510. package/dist/fabric.js +0 -31187
  511. package/dist/fabric.min.js +0 -1
  512. package/old-travis-reference.yml +0 -97
  513. package/src/brushes/circle_brush.class.js +0 -144
  514. package/src/brushes/pattern_brush.class.js +0 -61
  515. package/src/brushes/pencil_brush.class.js +0 -310
  516. package/src/brushes/spray_brush.class.js +0 -219
  517. package/src/canvas.class.js +0 -1312
  518. package/src/color.class.js +0 -636
  519. package/src/control.class.js +0 -339
  520. package/src/controls.actions.js +0 -740
  521. package/src/controls.render.js +0 -99
  522. package/src/elements_parser.js +0 -152
  523. package/src/filters/2d_backend.class.js +0 -65
  524. package/src/filters/blendcolor_filter.class.js +0 -251
  525. package/src/filters/blendimage_filter.class.js +0 -247
  526. package/src/filters/blur_filter.class.js +0 -217
  527. package/src/filters/brightness_filter.class.js +0 -113
  528. package/src/filters/colormatrix_filter.class.js +0 -159
  529. package/src/filters/composed_filter.class.js +0 -72
  530. package/src/filters/contrast_filter.class.js +0 -113
  531. package/src/filters/convolute_filter.class.js +0 -352
  532. package/src/filters/filter_boilerplate.js +0 -111
  533. package/src/filters/filter_generator.js +0 -85
  534. package/src/filters/gamma_filter.class.js +0 -136
  535. package/src/filters/grayscale_filter.class.js +0 -154
  536. package/src/filters/hue_rotation.class.js +0 -107
  537. package/src/filters/invert_filter.class.js +0 -111
  538. package/src/filters/noise_filter.class.js +0 -134
  539. package/src/filters/pixelate_filter.class.js +0 -137
  540. package/src/filters/removecolor_filter.class.js +0 -173
  541. package/src/filters/resize_filter.class.js +0 -490
  542. package/src/filters/saturate_filter.class.js +0 -119
  543. package/src/filters/vibrance_filter.class.js +0 -122
  544. package/src/filters/webgl_backend.class.js +0 -396
  545. package/src/globalFabric.js +0 -4
  546. package/src/gradient.class.js +0 -490
  547. package/src/intersection.class.js +0 -172
  548. package/src/log.js +0 -11
  549. package/src/mixins/animation.mixin.js +0 -231
  550. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  551. package/src/mixins/canvas_events.mixin.js +0 -974
  552. package/src/mixins/canvas_gestures.mixin.js +0 -149
  553. package/src/mixins/canvas_grouping.mixin.js +0 -177
  554. package/src/mixins/canvas_serialization.mixin.js +0 -228
  555. package/src/mixins/collection.mixin.js +0 -170
  556. package/src/mixins/default_controls.js +0 -114
  557. package/src/mixins/itext.svg_export.js +0 -241
  558. package/src/mixins/itext_behavior.mixin.js +0 -940
  559. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  560. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  561. package/src/mixins/object.svg_export.js +0 -258
  562. package/src/mixins/object_geometry.mixin.js +0 -683
  563. package/src/mixins/object_interactivity.mixin.js +0 -314
  564. package/src/mixins/object_origin.mixin.js +0 -255
  565. package/src/mixins/object_stacking.mixin.js +0 -80
  566. package/src/mixins/object_straightening.mixin.js +0 -80
  567. package/src/mixins/observable.mixin.js +0 -141
  568. package/src/mixins/shared_methods.mixin.js +0 -94
  569. package/src/mixins/stateful.mixin.js +0 -107
  570. package/src/mixins/text_style.mixin.js +0 -324
  571. package/src/parser.js +0 -1090
  572. package/src/pattern.class.js +0 -189
  573. package/src/point.class.js +0 -337
  574. package/src/shadow.class.js +0 -195
  575. package/src/shapes/active_selection.class.js +0 -155
  576. package/src/shapes/circle.class.js +0 -210
  577. package/src/shapes/ellipse.class.js +0 -181
  578. package/src/shapes/group.class.js +0 -593
  579. package/src/shapes/image.class.js +0 -764
  580. package/src/shapes/itext.class.js +0 -526
  581. package/src/shapes/line.class.js +0 -324
  582. package/src/shapes/object.class.js +0 -2008
  583. package/src/shapes/path.class.js +0 -384
  584. package/src/shapes/polygon.class.js +0 -81
  585. package/src/shapes/polyline.class.js +0 -268
  586. package/src/shapes/rect.class.js +0 -187
  587. package/src/shapes/text.class.js +0 -1696
  588. package/src/shapes/textbox.class.js +0 -461
  589. package/src/shapes/triangle.class.js +0 -93
  590. package/src/static_canvas.class.js +0 -1881
  591. package/src/util/anim_ease.js +0 -398
  592. package/src/util/animate.js +0 -254
  593. package/src/util/animate_color.js +0 -74
  594. package/src/util/dom_event.js +0 -50
  595. package/src/util/dom_misc.js +0 -300
  596. package/src/util/dom_request.js +0 -54
  597. package/src/util/dom_style.js +0 -70
  598. package/src/util/lang_array.js +0 -94
  599. package/src/util/lang_class.js +0 -115
  600. package/src/util/lang_object.js +0 -75
  601. package/src/util/lang_string.js +0 -110
  602. package/src/util/misc.js +0 -1330
  603. package/src/util/named_accessors.mixin.js +0 -428
  604. package/src/util/path.js +0 -829
@@ -0,0 +1,84 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { FabricObject } from './Object/FabricObject';
3
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
4
+ import type { ObjectEvents } from '../EventTypeDefs';
5
+ export declare const ellipseDefaultValues: UniqueEllipseProps;
6
+ interface UniqueEllipseProps {
7
+ rx: number;
8
+ ry: number;
9
+ }
10
+ export interface SerializedEllipseProps extends SerializedObjectProps, UniqueEllipseProps {
11
+ }
12
+ export interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {
13
+ }
14
+ export declare class Ellipse<Props extends TProps<EllipseProps> = Partial<EllipseProps>, SProps extends SerializedEllipseProps = SerializedEllipseProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> implements EllipseProps {
15
+ /**
16
+ * Horizontal radius
17
+ * @type Number
18
+ * @default
19
+ */
20
+ rx: number;
21
+ /**
22
+ * Vertical radius
23
+ * @type Number
24
+ * @default
25
+ */
26
+ ry: number;
27
+ static cacheProperties: string[];
28
+ static ownDefaults: Record<string, any>;
29
+ static getDefaults(): {
30
+ [x: string]: any;
31
+ };
32
+ /**
33
+ * @private
34
+ * @param {String} key
35
+ * @param {*} value
36
+ * @return {Ellipse} thisArg
37
+ */
38
+ _set(key: string, value: any): this;
39
+ /**
40
+ * Returns horizontal radius of an object (according to how an object is scaled)
41
+ * @return {Number}
42
+ */
43
+ getRx(): number;
44
+ /**
45
+ * Returns Vertical radius of an object (according to how an object is scaled)
46
+ * @return {Number}
47
+ */
48
+ getRy(): number;
49
+ /**
50
+ * Returns object representation of an instance
51
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
52
+ * @return {Object} object representation of an instance
53
+ */
54
+ toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
55
+ /**
56
+ * Returns svg representation of an instance
57
+ * @return {Array} an array of strings with the specific svg representation
58
+ * of the instance
59
+ */
60
+ _toSVG(): (string | number)[];
61
+ /**
62
+ * @private
63
+ * @param {CanvasRenderingContext2D} ctx context to render on
64
+ */
65
+ _render(ctx: CanvasRenderingContext2D): void;
66
+ /**
67
+ * List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})
68
+ * @static
69
+ * @memberOf Ellipse
70
+ * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement
71
+ */
72
+ static ATTRIBUTE_NAMES: string[];
73
+ /**
74
+ * Returns {@link Ellipse} instance from an SVG element
75
+ * @static
76
+ * @memberOf Ellipse
77
+ * @param {SVGElement} element Element to parse
78
+ * @param {Function} [callback] Options callback invoked after parsing is finished
79
+ * @return {Ellipse}
80
+ */
81
+ static fromElement(element: SVGElement, callback: (ellipse: Ellipse) => void): void;
82
+ }
83
+ export {};
84
+ //# sourceMappingURL=Ellipse.d.ts.map
@@ -0,0 +1,408 @@
1
+ import type { CollectionEvents, ObjectEvents } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import type { TClassProperties, TSVGReviver } from '../typedefs';
4
+ import { FabricObject } from './Object/FabricObject';
5
+ import { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
6
+ export type LayoutContextType = 'initialization' | 'object_modified' | 'added' | 'removed' | 'layout_change' | 'imperative';
7
+ export type LayoutContext = {
8
+ type: LayoutContextType;
9
+ /**
10
+ * array of objects starting from the object that triggered the call to the current one
11
+ */
12
+ path?: Group[];
13
+ [key: string]: any;
14
+ };
15
+ export type GroupEvents = ObjectEvents & CollectionEvents & {
16
+ layout: {
17
+ context: LayoutContext;
18
+ result: LayoutResult;
19
+ diff: Point;
20
+ };
21
+ };
22
+ export type LayoutStrategy = 'fit-content' | 'fit-content-lazy' | 'fixed' | 'clip-path';
23
+ /**
24
+ * positioning and layout data **relative** to instance's parent
25
+ */
26
+ export type LayoutResult = {
27
+ /**
28
+ * new centerX as measured by the containing plane (same as `left` with `originX` set to `center`)
29
+ */
30
+ centerX: number;
31
+ /**
32
+ * new centerY as measured by the containing plane (same as `top` with `originY` set to `center`)
33
+ */
34
+ centerY: number;
35
+ /**
36
+ * correctionX to translate objects by, measured as `centerX`
37
+ */
38
+ correctionX?: number;
39
+ /**
40
+ * correctionY to translate objects by, measured as `centerY`
41
+ */
42
+ correctionY?: number;
43
+ width: number;
44
+ height: number;
45
+ };
46
+ export interface GroupOwnProps {
47
+ layout: LayoutStrategy;
48
+ subTargetCheck: boolean;
49
+ interactive: boolean;
50
+ }
51
+ export interface SerializedGroupProps extends SerializedObjectProps, GroupOwnProps {
52
+ objects: SerializedObjectProps[];
53
+ }
54
+ export interface GroupProps extends FabricObjectProps, GroupOwnProps {
55
+ }
56
+ export declare const groupDefaultValues: {
57
+ layout: string;
58
+ strokeWidth: number;
59
+ subTargetCheck: boolean;
60
+ interactive: boolean;
61
+ };
62
+ declare const Group_base: {
63
+ new (...args: any[]): {
64
+ _objects: import("../EventTypeDefs").BaseFabricObject[];
65
+ _onObjectAdded(object: import("../EventTypeDefs").BaseFabricObject): void;
66
+ _onObjectRemoved(object: import("../EventTypeDefs").BaseFabricObject): void;
67
+ _onStackOrderChanged(object: import("../EventTypeDefs").BaseFabricObject): void;
68
+ add(...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
69
+ insertAt(index: number, ...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
70
+ remove(...objects: import("../EventTypeDefs").BaseFabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
71
+ forEachObject(callback: (object: import("../EventTypeDefs").BaseFabricObject, index: number, array: import("../EventTypeDefs").BaseFabricObject[]) => any): void;
72
+ getObjects(...types: string[]): import("../EventTypeDefs").BaseFabricObject[];
73
+ item(index: number): import("../EventTypeDefs").BaseFabricObject;
74
+ isEmpty(): boolean;
75
+ size(): number;
76
+ contains(object: import("../EventTypeDefs").BaseFabricObject, deep?: boolean | undefined): boolean;
77
+ complexity(): number;
78
+ sendObjectToBack(object: import("../EventTypeDefs").BaseFabricObject): boolean;
79
+ bringObjectToFront(object: import("../EventTypeDefs").BaseFabricObject): boolean;
80
+ sendObjectBackwards(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
81
+ bringObjectForward(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
82
+ moveObjectTo(object: import("../EventTypeDefs").BaseFabricObject, index: number): boolean;
83
+ findNewLowerIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
84
+ findNewUpperIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
85
+ collectObjects({ left, top, width, height }: import("../typedefs").TBBox, { includeIntersecting }?: {
86
+ includeIntersecting?: boolean | undefined;
87
+ }): import("./Object/InteractiveObject").InteractiveFabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[];
88
+ };
89
+ } & {
90
+ new (options?: GroupProps): FabricObject<GroupProps, SerializedGroupProps, GroupEvents>;
91
+ ownDefaults: Record<string, any>;
92
+ getDefaults(): Record<string, any>;
93
+ stateProperties: string[];
94
+ cacheProperties: string[];
95
+ _fromObject<S extends import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>>(object: Record<string, unknown>, { extraParam, ...options }?: {
96
+ extraParam?: string | undefined;
97
+ signal?: AbortSignal | undefined;
98
+ }): Promise<S>;
99
+ fromObject<T extends TProps<SerializedObjectProps>>(object: T, options?: {
100
+ signal?: AbortSignal | undefined;
101
+ } | undefined): Promise<import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>>;
102
+ };
103
+ /**
104
+ * @fires object:added
105
+ * @fires object:removed
106
+ * @fires layout once layout completes
107
+ */
108
+ export declare class Group extends Group_base {
109
+ /**
110
+ * Specifies the **layout strategy** for instance
111
+ * Used by `getLayoutStrategyResult` to calculate layout
112
+ * `fit-content`, `fit-content-lazy`, `fixed`, `clip-path` are supported out of the box
113
+ * @default
114
+ */
115
+ layout: LayoutStrategy;
116
+ /**
117
+ * Used to optimize performance
118
+ * set to `false` if you don't need contained objects to be targets of events
119
+ * @default
120
+ * @type boolean
121
+ */
122
+ subTargetCheck: boolean;
123
+ /**
124
+ * Used to allow targeting of object inside groups.
125
+ * set to true if you want to select an object inside a group.\
126
+ * **REQUIRES** `subTargetCheck` set to true
127
+ * @default
128
+ * @type boolean
129
+ */
130
+ interactive: boolean;
131
+ /**
132
+ * Used internally to optimize performance
133
+ * Once an object is selected, instance is rendered without the selected object.
134
+ * This way instance is cached only once for the entire interaction with the selected object.
135
+ * @private
136
+ */
137
+ protected _activeObjects: FabricObject[];
138
+ static stateProperties: string[];
139
+ static ownDefaults: Record<string, any>;
140
+ private __objectSelectionTracker;
141
+ private __objectSelectionDisposer;
142
+ private _firstLayoutDone;
143
+ static getDefaults(): Record<string, any>;
144
+ /**
145
+ * Constructor
146
+ *
147
+ * @param {FabricObject[]} [objects] instance objects
148
+ * @param {Object} [options] Options object
149
+ * @param {boolean} [objectsRelativeToGroup] true if objects exist in group coordinate plane
150
+ */
151
+ constructor(objects?: FabricObject[], options?: Partial<GroupProps>, objectsRelativeToGroup?: boolean);
152
+ /**
153
+ * Checks if object can enter group and logs relevant warnings
154
+ * @private
155
+ * @param {FabricObject} object
156
+ * @returns
157
+ */
158
+ canEnterGroup(object: FabricObject): boolean;
159
+ /**
160
+ * Override this method to enhance performance (for groups with a lot of objects).
161
+ * If Overriding, be sure not pass illegal objects to group - it will break your app.
162
+ * @private
163
+ */
164
+ protected _filterObjectsBeforeEnteringGroup(objects: FabricObject[]): FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[];
165
+ /**
166
+ * Add objects
167
+ * @param {...FabricObject[]} objects
168
+ */
169
+ add(...objects: FabricObject[]): number;
170
+ /**
171
+ * Inserts an object into collection at specified index
172
+ * @param {FabricObject[]} objects Object to insert
173
+ * @param {Number} index Index to insert object at
174
+ */
175
+ insertAt(index: number, ...objects: FabricObject[]): number;
176
+ /**
177
+ * Remove objects
178
+ * @param {...FabricObject[]} objects
179
+ * @returns {FabricObject[]} removed objects
180
+ */
181
+ remove(...objects: FabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
182
+ _onObjectAdded(object: FabricObject): void;
183
+ _onRelativeObjectAdded(object: FabricObject): void;
184
+ /**
185
+ * @private
186
+ * @param {FabricObject} object
187
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
188
+ */
189
+ _onObjectRemoved(object: FabricObject, removeParentTransform?: boolean): void;
190
+ /**
191
+ * @private
192
+ * @param {'added'|'removed'} type
193
+ * @param {FabricObject[]} targets
194
+ */
195
+ _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]): void;
196
+ _onStackOrderChanged(): void;
197
+ /**
198
+ * @private
199
+ * @param {string} key
200
+ * @param {*} value
201
+ */
202
+ _set(key: string, value: any): this;
203
+ /**
204
+ * @private
205
+ */
206
+ _shouldSetNestedCoords(): boolean;
207
+ /**
208
+ * Remove all objects
209
+ * @returns {FabricObject[]} removed objects
210
+ */
211
+ removeAll(): import("../EventTypeDefs").BaseFabricObject[];
212
+ /**
213
+ * invalidates layout on object modified
214
+ * @private
215
+ */
216
+ __objectMonitor(ev: ObjectEvents['modified']): void;
217
+ /**
218
+ * keeps track of the selected objects
219
+ * @private
220
+ */
221
+ __objectSelectionMonitor<T extends boolean>(selected: T, { target: object }: ObjectEvents[T extends true ? 'selected' : 'deselected']): void;
222
+ /**
223
+ * @private
224
+ * @param {boolean} watch
225
+ * @param {FabricObject} object
226
+ */
227
+ _watchObject(watch: boolean, object: FabricObject): void;
228
+ /**
229
+ * @private
230
+ * @param {FabricObject} object
231
+ * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
232
+ * @returns {boolean} true if object entered group
233
+ */
234
+ enterGroup(object: FabricObject, removeParentTransform?: boolean): boolean;
235
+ /**
236
+ * @private
237
+ * @param {FabricObject} object
238
+ * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
239
+ */
240
+ _enterGroup(object: FabricObject, removeParentTransform?: boolean): void;
241
+ /**
242
+ * @private
243
+ * @param {FabricObject} object
244
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
245
+ */
246
+ exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
247
+ /**
248
+ * @private
249
+ * @param {FabricObject} object
250
+ * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
251
+ */
252
+ _exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
253
+ /**
254
+ * Decide if the object should cache or not. Create its own cache level
255
+ * needsItsOwnCache should be used when the object drawing method requires
256
+ * a cache step. None of the fabric classes requires it.
257
+ * Generally you do not cache objects in groups because the group is already cached.
258
+ * @return {Boolean}
259
+ */
260
+ shouldCache(): boolean;
261
+ /**
262
+ * Check if this object or a child object will cast a shadow
263
+ * @return {Boolean}
264
+ */
265
+ willDrawShadow(): boolean;
266
+ /**
267
+ * Check if instance or its group are caching, recursively up
268
+ * @return {Boolean}
269
+ */
270
+ isOnACache(): boolean;
271
+ /**
272
+ * Execute the drawing operation for an object on a specified context
273
+ * @param {CanvasRenderingContext2D} ctx Context to render on
274
+ */
275
+ drawObject(ctx: CanvasRenderingContext2D): void;
276
+ /**
277
+ * @override
278
+ * @return {Boolean}
279
+ */
280
+ setCoords(): void;
281
+ /**
282
+ * Renders instance on a given context
283
+ * @param {CanvasRenderingContext2D} ctx context to render instance on
284
+ */
285
+ render(ctx: CanvasRenderingContext2D): void;
286
+ /**
287
+ * @public
288
+ * @param {Partial<LayoutResult> & { layout?: string }} [context] pass values to use for layout calculations
289
+ */
290
+ triggerLayout<T extends this['layout']>(context?: Partial<LayoutResult> & {
291
+ layout?: T;
292
+ }): void;
293
+ /**
294
+ * @private
295
+ * @param {FabricObject} object
296
+ * @param {Point} diff
297
+ */
298
+ _adjustObjectPosition(object: FabricObject, diff: Point): void;
299
+ /**
300
+ * initial layout logic:
301
+ * calculate bbox of objects (if necessary) and translate it according to options received from the constructor (left, top, width, height)
302
+ * so it is placed in the center of the bbox received from the constructor
303
+ *
304
+ * @private
305
+ * @param {LayoutContext} context
306
+ */
307
+ _applyLayoutStrategy(context: LayoutContext): void;
308
+ /**
309
+ * Override this method to customize layout.
310
+ * If you need to run logic once layout completes use `onLayout`
311
+ * @public
312
+ * @param {string} layoutDirective
313
+ * @param {FabricObject[]} objects
314
+ * @param {LayoutContext} context
315
+ * @returns {LayoutResult | undefined}
316
+ */
317
+ getLayoutStrategyResult<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): any;
318
+ /**
319
+ * Override this method to customize layout.
320
+ * A wrapper around {@link Group#getObjectsBoundingBox}
321
+ * @public
322
+ * @param {string} layoutDirective
323
+ * @param {FabricObject[]} objects
324
+ * @param {LayoutContext} context
325
+ * @returns {LayoutResult | undefined}
326
+ */
327
+ prepareBoundingBox<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): any;
328
+ /**
329
+ * Calculates center taking into account originX, originY while not being sure that width/height are initialized
330
+ * @public
331
+ * @param {string} layoutDirective
332
+ * @param {FabricObject[]} objects
333
+ * @param {LayoutContext} context
334
+ * @returns {LayoutResult | undefined}
335
+ */
336
+ prepareInitialBoundingBox<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): {
337
+ centerX: number;
338
+ centerY: number;
339
+ correctionX: number;
340
+ correctionY: number;
341
+ width: number;
342
+ height: number;
343
+ } | undefined;
344
+ /**
345
+ * Calculate the bbox of objects relative to instance's containing plane
346
+ * @public
347
+ * @param {FabricObject[]} objects
348
+ * @returns {LayoutResult | null} bounding box
349
+ */
350
+ getObjectsBoundingBox(objects: FabricObject[], ignoreOffset?: boolean): LayoutResult | null;
351
+ /**
352
+ * Hook that is called once layout has completed.
353
+ * Provided for layout customization, override if necessary.
354
+ * Complements `getLayoutStrategyResult`, which is called at the beginning of layout.
355
+ * @public
356
+ * @param {LayoutContext} context layout context
357
+ * @param {LayoutResult} result layout result
358
+ */
359
+ onLayout(context: LayoutContext, result: LayoutResult): void;
360
+ /**
361
+ *
362
+ * @private
363
+ * @param {'toObject'|'toDatalessObject'} [method]
364
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
365
+ * @returns {FabricObject[]} serialized objects
366
+ */
367
+ __serializeObjects(method: 'toObject' | 'toDatalessObject', propertiesToInclude?: string[]): any[];
368
+ /**
369
+ * Returns object representation of an instance
370
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
371
+ * @return {Object} object representation of an instance
372
+ */
373
+ toObject<T extends Omit<GroupProps & TClassProperties<this>, keyof SerializedGroupProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SerializedGroupProps;
374
+ toString(): string;
375
+ dispose(): void;
376
+ /**
377
+ * @private
378
+ */
379
+ _createSVGBgRect(reviver?: TSVGReviver): string;
380
+ /**
381
+ * Returns svg representation of an instance
382
+ * @param {TSVGReviver} [reviver] Method for further parsing of svg representation.
383
+ * @return {String} svg representation of an instance
384
+ */
385
+ _toSVG(reviver?: TSVGReviver): string[];
386
+ /**
387
+ * Returns styles-string for svg-export, specific version for group
388
+ * @return {String}
389
+ */
390
+ getSvgStyles(): string;
391
+ /**
392
+ * Returns svg clipPath representation of an instance
393
+ * @param {Function} [reviver] Method for further parsing of svg representation.
394
+ * @return {String} svg representation of an instance
395
+ */
396
+ toClipPathSVG(reviver?: TSVGReviver): string;
397
+ /**
398
+ * @todo support loading from svg
399
+ * @private
400
+ * @static
401
+ * @memberOf Group
402
+ * @param {Object} object Object to create a group from
403
+ * @returns {Promise<Group>}
404
+ */
405
+ static fromObject<T extends TProps<SerializedGroupProps>>({ objects, ...options }: T): Promise<Group>;
406
+ }
407
+ export {};
408
+ //# 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