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,594 @@
1
+ import { ObjectEvents } from '../../EventTypeDefs';
2
+ import { AnimatableObject } from './AnimatableObject';
3
+ import { Point } from '../../Point';
4
+ import { Shadow } from '../../Shadow';
5
+ import type { TDegree, TFiller, TSize, TCacheCanvasDimensions } from '../../typedefs';
6
+ import type { Group } from '../Group';
7
+ import type { Image } from '../Image';
8
+ import { SerializedObjectProps } from './types/SerializedObjectProps';
9
+ import { ObjectProps } from './types/ObjectProps';
10
+ import { TProps } from './types';
11
+ export type TCachedFabricObject = FabricObject & Required<Pick<FabricObject, 'zoomX' | 'zoomY' | '_cacheCanvas' | '_cacheContext' | 'cacheTranslationX' | 'cacheTranslationY'>> & {
12
+ _cacheContext: CanvasRenderingContext2D;
13
+ };
14
+ /**
15
+ * Root object class from which all 2d shape classes inherit from
16
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#objects}
17
+ *
18
+ * @fires added
19
+ * @fires removed
20
+ *
21
+ * @fires selected
22
+ * @fires deselected
23
+ *
24
+ * @fires rotating
25
+ * @fires scaling
26
+ * @fires moving
27
+ * @fires skewing
28
+ * @fires modified
29
+ *
30
+ * @fires mousedown
31
+ * @fires mouseup
32
+ * @fires mouseover
33
+ * @fires mouseout
34
+ * @fires mousewheel
35
+ * @fires mousedblclick
36
+ *
37
+ * @fires dragover
38
+ * @fires dragenter
39
+ * @fires dragleave
40
+ * @fires drop
41
+ */
42
+ export declare class FabricObject<Props extends TProps<ObjectProps> = Partial<ObjectProps>, SProps extends SerializedObjectProps = SerializedObjectProps, EventSpec extends ObjectEvents = ObjectEvents> extends AnimatableObject<EventSpec> implements ObjectProps {
43
+ minScaleLimit: number;
44
+ opacity: number;
45
+ paintFirst: 'fill' | 'stroke';
46
+ fill: string | TFiller | null;
47
+ fillRule: CanvasFillRule;
48
+ stroke: string | TFiller | null;
49
+ strokeDashArray: number[] | null;
50
+ strokeDashOffset: number;
51
+ strokeLineCap: CanvasLineCap;
52
+ strokeLineJoin: CanvasLineJoin;
53
+ strokeMiterLimit: number;
54
+ globalCompositeOperation: GlobalCompositeOperation;
55
+ backgroundColor: string;
56
+ shadow: Shadow | null;
57
+ visible: boolean;
58
+ includeDefaultValues: boolean;
59
+ excludeFromExport: boolean;
60
+ objectCaching: boolean;
61
+ clipPath?: FabricObject;
62
+ inverted: boolean;
63
+ absolutePositioned: boolean;
64
+ centeredRotation: boolean;
65
+ /**
66
+ * This list of properties is used to check if the state of an object is changed.
67
+ * This state change now is only used for children of groups to understand if a group
68
+ * needs its cache regenerated during a .set call
69
+ * @type Array
70
+ */
71
+ static stateProperties: string[];
72
+ /**
73
+ * List of properties to consider when checking if cache needs refresh
74
+ * Those properties are checked by
75
+ * calls to Object.set(key, value). If the key is in this list, the object is marked as dirty
76
+ * and refreshed at the next render
77
+ * @type Array
78
+ */
79
+ static cacheProperties: string[];
80
+ /**
81
+ * When set to `true`, object's cache will be rerendered next render call.
82
+ * since 1.7.0
83
+ * @type Boolean
84
+ * @default true
85
+ */
86
+ dirty: boolean;
87
+ /**
88
+ * Quick access for the _cacheCanvas rendering context
89
+ * This is part of the objectCaching feature
90
+ * since 1.7.0
91
+ * @type boolean
92
+ * @default undefined
93
+ * @private
94
+ */
95
+ _cacheContext: CanvasRenderingContext2D | null;
96
+ /**
97
+ * A reference to the HTMLCanvasElement that is used to contain the cache of the object
98
+ * this canvas element is resized and cleared as needed
99
+ * Is marked private, you can read it, don't use it since it is handled by fabric
100
+ * since 1.7.0
101
+ * @type HTMLCanvasElement
102
+ * @default undefined
103
+ * @private
104
+ */
105
+ _cacheCanvas?: HTMLCanvasElement;
106
+ /**
107
+ * Size of the cache canvas, width
108
+ * since 1.7.0
109
+ * @type number
110
+ * @default undefined
111
+ * @private
112
+ */
113
+ cacheWidth?: number;
114
+ /**
115
+ * Size of the cache canvas, height
116
+ * since 1.7.0
117
+ * @type number
118
+ * @default undefined
119
+ * @private
120
+ */
121
+ cacheHeight?: number;
122
+ /**
123
+ * zoom level used on the cacheCanvas to draw the cache, X axe
124
+ * since 1.7.0
125
+ * @type number
126
+ * @default undefined
127
+ * @private
128
+ */
129
+ zoomX?: number;
130
+ /**
131
+ * zoom level used on the cacheCanvas to draw the cache, Y axe
132
+ * since 1.7.0
133
+ * @type number
134
+ * @default undefined
135
+ * @private
136
+ */
137
+ zoomY?: number;
138
+ /**
139
+ * zoom level used on the cacheCanvas to draw the cache, Y axe
140
+ * since 1.7.0
141
+ * @type number
142
+ * @default undefined
143
+ * @private
144
+ */
145
+ cacheTranslationX?: number;
146
+ /**
147
+ * translation of the cacheCanvas away from the center, for subpixel accuracy and crispness
148
+ * since 1.7.0
149
+ * @type number
150
+ * @default undefined
151
+ * @private
152
+ */
153
+ cacheTranslationY?: number;
154
+ /**
155
+ * A reference to the parent of the object, usually a Group
156
+ * @type number
157
+ * @default undefined
158
+ * @private
159
+ */
160
+ group?: Group;
161
+ /**
162
+ * Indicate if the object is sitting on a cache dedicated to it
163
+ * or is part of a larger cache for many object ( a group for example)
164
+ * @type number
165
+ * @default undefined
166
+ * @private
167
+ */
168
+ ownCaching?: boolean;
169
+ /**
170
+ * Private. indicates if the object inside a group is on a transformed context or not
171
+ * or is part of a larger cache for many object ( a group for example)
172
+ * @type boolean
173
+ * @default undefined
174
+ * @private
175
+ */
176
+ _transformDone?: boolean;
177
+ static ownDefaults: Record<string, any>;
178
+ static getDefaults(): Record<string, any>;
179
+ /**
180
+ * Legacy identifier of the class. Prefer using utils like isType or instanceOf
181
+ * Will be removed in fabric 7 or 8.
182
+ * The setter exists because is very hard to catch all the ways in which a type value
183
+ * could be set in the instance
184
+ * @TODO add sustainable warning message
185
+ * @type string
186
+ * @deprecated
187
+ */
188
+ get type(): string;
189
+ set type(value: string);
190
+ /**
191
+ * Constructor
192
+ * @param {Object} [options] Options object
193
+ */
194
+ constructor(options?: Props);
195
+ /**
196
+ * Create a the canvas used to keep the cached copy of the object
197
+ * @private
198
+ */
199
+ _createCacheCanvas(): void;
200
+ /**
201
+ * Limit the cache dimensions so that X * Y do not cross config.perfLimitSizeTotal
202
+ * and each side do not cross fabric.cacheSideLimit
203
+ * those numbers are configurable so that you can get as much detail as you want
204
+ * making bargain with performances.
205
+ * @param {Object} dims
206
+ * @param {Object} dims.width width of canvas
207
+ * @param {Object} dims.height height of canvas
208
+ * @param {Object} dims.zoomX zoomX zoom value to unscale the canvas before drawing cache
209
+ * @param {Object} dims.zoomY zoomY zoom value to unscale the canvas before drawing cache
210
+ * @return {Object}.width width of canvas
211
+ * @return {Object}.height height of canvas
212
+ * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
213
+ * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
214
+ */
215
+ _limitCacheSize(dims: TSize & {
216
+ zoomX: number;
217
+ zoomY: number;
218
+ capped: boolean;
219
+ } & any): any;
220
+ /**
221
+ * Return the dimension and the zoom level needed to create a cache canvas
222
+ * big enough to host the object to be cached.
223
+ * @private
224
+ * @return {Object}.x width of object to be cached
225
+ * @return {Object}.y height of object to be cached
226
+ * @return {Object}.width width of canvas
227
+ * @return {Object}.height height of canvas
228
+ * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
229
+ * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
230
+ */
231
+ _getCacheCanvasDimensions(): TCacheCanvasDimensions;
232
+ /**
233
+ * Update width and height of the canvas for cache
234
+ * returns true or false if canvas needed resize.
235
+ * @private
236
+ * @return {Boolean} true if the canvas has been resized
237
+ */
238
+ _updateCacheCanvas(): boolean;
239
+ /**
240
+ * Sets object's properties from options, for class constructor only.
241
+ * Needs to be overridden for different defaults.
242
+ * @protected
243
+ * @param {Object} [options] Options object
244
+ */
245
+ protected setOptions(options?: Record<string, any>): void;
246
+ /**
247
+ * Transforms context when rendering an object
248
+ * @param {CanvasRenderingContext2D} ctx Context
249
+ */
250
+ transform(ctx: CanvasRenderingContext2D): void;
251
+ /**
252
+ * Returns an object representation of an instance
253
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
254
+ * @return {Object} Object representation of an instance
255
+ */
256
+ protected toObject(propertiesToInclude?: any[]): any;
257
+ /**
258
+ * Returns (dataless) object representation of an instance
259
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
260
+ * @return {Object} Object representation of an instance
261
+ */
262
+ toDatalessObject(propertiesToInclude?: any[]): any;
263
+ /**
264
+ * @private
265
+ * @param {Object} object
266
+ */
267
+ _removeDefaultValues<T extends object>(object: T): Partial<T>;
268
+ /**
269
+ * Returns a string representation of an instance
270
+ * @return {String}
271
+ */
272
+ toString(): string;
273
+ /**
274
+ * Return the object scale factor counting also the group scaling
275
+ * @return {Point}
276
+ */
277
+ getObjectScaling(): Point;
278
+ /**
279
+ * Return the object scale factor counting also the group scaling, zoom and retina
280
+ * @return {Object} object with scaleX and scaleY properties
281
+ */
282
+ getTotalObjectScaling(): Point;
283
+ /**
284
+ * Return the object opacity counting also the group property
285
+ * @return {Number}
286
+ */
287
+ getObjectOpacity(): number;
288
+ /**
289
+ * Makes sure the scale is valid and modifies it if necessary
290
+ * @todo: this is a control action issue, not a geometry one
291
+ * @private
292
+ * @param {Number} value, unconstrained
293
+ * @return {Number} constrained value;
294
+ */
295
+ _constrainScale(value: number): number;
296
+ /**
297
+ * Handles setting values on the instance and handling internal side effects
298
+ * @protected
299
+ * @param {String} key
300
+ * @param {*} value
301
+ */
302
+ _set(key: string, value: any): this;
303
+ isNotVisible(): boolean;
304
+ /**
305
+ * Renders an object on a specified context
306
+ * @param {CanvasRenderingContext2D} ctx Context to render on
307
+ */
308
+ render(ctx: CanvasRenderingContext2D): void;
309
+ drawSelectionBackground(ctx: CanvasRenderingContext2D): void;
310
+ renderCache(options?: any): void;
311
+ /**
312
+ * Remove cacheCanvas and its dimensions from the objects
313
+ */
314
+ _removeCacheCanvas(): void;
315
+ /**
316
+ * return true if the object will draw a stroke
317
+ * Does not consider text styles. This is just a shortcut used at rendering time
318
+ * We want it to be an approximation and be fast.
319
+ * wrote to avoid extra caching, it has to return true when stroke happens,
320
+ * can guess when it will not happen at 100% chance, does not matter if it misses
321
+ * some use case where the stroke is invisible.
322
+ * @since 3.0.0
323
+ * @returns Boolean
324
+ */
325
+ hasStroke(): boolean | "" | null;
326
+ /**
327
+ * return true if the object will draw a fill
328
+ * Does not consider text styles. This is just a shortcut used at rendering time
329
+ * We want it to be an approximation and be fast.
330
+ * wrote to avoid extra caching, it has to return true when fill happens,
331
+ * can guess when it will not happen at 100% chance, does not matter if it misses
332
+ * some use case where the fill is invisible.
333
+ * @since 3.0.0
334
+ * @returns Boolean
335
+ */
336
+ hasFill(): boolean | "" | null;
337
+ /**
338
+ * When set to `true`, force the object to have its own cache, even if it is inside a group
339
+ * it may be needed when your object behave in a particular way on the cache and always needs
340
+ * its own isolated canvas to render correctly.
341
+ * Created to be overridden
342
+ * since 1.7.12
343
+ * @returns Boolean
344
+ */
345
+ needsItsOwnCache(): boolean;
346
+ /**
347
+ * Decide if the object should cache or not. Create its own cache level
348
+ * objectCaching is a global flag, wins over everything
349
+ * needsItsOwnCache should be used when the object drawing method requires
350
+ * a cache step. None of the fabric classes requires it.
351
+ * Generally you do not cache objects in groups because the group outside is cached.
352
+ * Read as: cache if is needed, or if the feature is enabled but we are not already caching.
353
+ * @return {Boolean}
354
+ */
355
+ shouldCache(): boolean;
356
+ /**
357
+ * Check if this object or a child object will cast a shadow
358
+ * used by Group.shouldCache to know if child has a shadow recursively
359
+ * @return {Boolean}
360
+ * @deprecated
361
+ */
362
+ willDrawShadow(): boolean;
363
+ /**
364
+ * Execute the drawing operation for an object clipPath
365
+ * @param {CanvasRenderingContext2D} ctx Context to render on
366
+ * @param {FabricObject} clipPath
367
+ */
368
+ drawClipPathOnCache(ctx: CanvasRenderingContext2D, clipPath: TCachedFabricObject): void;
369
+ /**
370
+ * Execute the drawing operation for an object on a specified context
371
+ * @param {CanvasRenderingContext2D} ctx Context to render on
372
+ * @param {boolean} forClipping apply clipping styles
373
+ */
374
+ drawObject(ctx: CanvasRenderingContext2D, forClipping?: boolean): void;
375
+ /**
376
+ * Prepare clipPath state and cache and draw it on instance's cache
377
+ * @param {CanvasRenderingContext2D} ctx
378
+ * @param {FabricObject} clipPath
379
+ */
380
+ _drawClipPath(ctx: CanvasRenderingContext2D, clipPath?: FabricObject): void;
381
+ /**
382
+ * Paint the cached copy of the object on the target context.
383
+ * @param {CanvasRenderingContext2D} ctx Context to render on
384
+ */
385
+ drawCacheOnCanvas(this: TCachedFabricObject, ctx: CanvasRenderingContext2D): void;
386
+ /**
387
+ * Check if cache is dirty
388
+ * @param {Boolean} skipCanvas skip canvas checks because this object is painted
389
+ * on parent canvas.
390
+ */
391
+ isCacheDirty(skipCanvas?: boolean): boolean;
392
+ /**
393
+ * Draws a background for the object big as its untransformed dimensions
394
+ * @private
395
+ * @param {CanvasRenderingContext2D} ctx Context to render on
396
+ */
397
+ _renderBackground(ctx: CanvasRenderingContext2D): void;
398
+ /**
399
+ * @private
400
+ * @param {CanvasRenderingContext2D} ctx Context to render on
401
+ */
402
+ _setOpacity(ctx: CanvasRenderingContext2D): void;
403
+ _setStrokeStyles(ctx: CanvasRenderingContext2D, decl: Pick<this, 'stroke' | 'strokeWidth' | 'strokeLineCap' | 'strokeDashOffset' | 'strokeLineJoin' | 'strokeMiterLimit'>): void;
404
+ _setFillStyles(ctx: CanvasRenderingContext2D, { fill }: Pick<this, 'fill'>): void;
405
+ _setClippingProperties(ctx: CanvasRenderingContext2D): void;
406
+ /**
407
+ * @private
408
+ * Sets line dash
409
+ * @param {CanvasRenderingContext2D} ctx Context to set the dash line on
410
+ * @param {Array} dashArray array representing dashes
411
+ */
412
+ _setLineDash(ctx: CanvasRenderingContext2D, dashArray?: number[] | null): void;
413
+ /**
414
+ * @private
415
+ * @param {CanvasRenderingContext2D} ctx Context to render on
416
+ */
417
+ _setShadow(ctx: CanvasRenderingContext2D): void;
418
+ /**
419
+ * @private
420
+ * @param {CanvasRenderingContext2D} ctx Context to render on
421
+ */
422
+ _removeShadow(ctx: CanvasRenderingContext2D): void;
423
+ /**
424
+ * @private
425
+ * @param {CanvasRenderingContext2D} ctx Context to render on
426
+ * @param {TFiller} filler {@link Pattern} or {@link Gradient}
427
+ */
428
+ _applyPatternGradientTransform(ctx: CanvasRenderingContext2D, filler: TFiller): {
429
+ offsetX: number;
430
+ offsetY: number;
431
+ };
432
+ /**
433
+ * @private
434
+ * @param {CanvasRenderingContext2D} ctx Context to render on
435
+ */
436
+ _renderPaintInOrder(ctx: CanvasRenderingContext2D): void;
437
+ /**
438
+ * @private
439
+ * function that actually render something on the context.
440
+ * empty here to allow Obects to work on tests to benchmark fabric functionalites
441
+ * not related to rendering
442
+ * @param {CanvasRenderingContext2D} ctx Context to render on
443
+ */
444
+ _render(ctx: CanvasRenderingContext2D): void;
445
+ /**
446
+ * @private
447
+ * @param {CanvasRenderingContext2D} ctx Context to render on
448
+ */
449
+ _renderFill(ctx: CanvasRenderingContext2D): void;
450
+ /**
451
+ * @private
452
+ * @param {CanvasRenderingContext2D} ctx Context to render on
453
+ */
454
+ _renderStroke(ctx: CanvasRenderingContext2D): void;
455
+ /**
456
+ * This function try to patch the missing gradientTransform on canvas gradients.
457
+ * transforming a context to transform the gradient, is going to transform the stroke too.
458
+ * we want to transform the gradient but not the stroke operation, so we create
459
+ * a transformed gradient on a pattern and then we use the pattern instead of the gradient.
460
+ * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
461
+ * is limited.
462
+ * @private
463
+ * @param {CanvasRenderingContext2D} ctx Context to render on
464
+ * @param {Gradient} filler
465
+ */
466
+ _applyPatternForTransformedGradient(ctx: CanvasRenderingContext2D, filler: TFiller): void;
467
+ /**
468
+ * This function is an helper for svg import. it returns the center of the object in the svg
469
+ * untransformed coordinates
470
+ * @private
471
+ * @return {Point} center point from element coordinates
472
+ */
473
+ _findCenterFromElement(): Point;
474
+ /**
475
+ * Clones an instance.
476
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
477
+ * @returns {Promise<FabricObject>}
478
+ */
479
+ clone(propertiesToInclude: string[]): this;
480
+ /**
481
+ * Creates an instance of Image out of an object
482
+ * makes use of toCanvasElement.
483
+ * Once this method was based on toDataUrl and loadImage, so it also had a quality
484
+ * and format option. toCanvasElement is faster and produce no loss of quality.
485
+ * If you need to get a real Jpeg or Png from an object, using toDataURL is the right way to do it.
486
+ * toCanvasElement and then toBlob from the obtained canvas is also a good option.
487
+ * @todo fix the export type, it could not be Image but the type that getClass return for 'image'.
488
+ * @param {Object} [options] for clone as image, passed to toDataURL
489
+ * @param {Number} [options.multiplier=1] Multiplier to scale by
490
+ * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
491
+ * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
492
+ * @param {Number} [options.width] Cropping width. Introduced in v1.2.14
493
+ * @param {Number} [options.height] Cropping height. Introduced in v1.2.14
494
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
495
+ * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
496
+ * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
497
+ * @return {Image} Object cloned as image.
498
+ */
499
+ cloneAsImage(options: any): Image;
500
+ /**
501
+ * Converts an object into a HTMLCanvas element
502
+ * @param {Object} options Options object
503
+ * @param {Number} [options.multiplier=1] Multiplier to scale by
504
+ * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
505
+ * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
506
+ * @param {Number} [options.width] Cropping width. Introduced in v1.2.14
507
+ * @param {Number} [options.height] Cropping height. Introduced in v1.2.14
508
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
509
+ * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
510
+ * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
511
+ * @param {Boolean} [options.viewportTransform] Account for canvas viewport transform
512
+ * @return {HTMLCanvasElement} Returns DOM element <canvas> with the FabricObject
513
+ */
514
+ toCanvasElement(options?: any): HTMLCanvasElement;
515
+ /**
516
+ * Converts an object into a data-url-like string
517
+ * @param {Object} options Options object
518
+ * @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png"
519
+ * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.
520
+ * @param {Number} [options.multiplier=1] Multiplier to scale by
521
+ * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
522
+ * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
523
+ * @param {Number} [options.width] Cropping width. Introduced in v1.2.14
524
+ * @param {Number} [options.height] Cropping height. Introduced in v1.2.14
525
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
526
+ * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
527
+ * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
528
+ * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format
529
+ */
530
+ toDataURL(options?: any): string;
531
+ /**
532
+ * Returns true if any of the specified types is identical to the type of an instance
533
+ * @param {String} type Type to check against
534
+ * @return {Boolean}
535
+ */
536
+ isType(...types: string[]): boolean;
537
+ /**
538
+ * Returns complexity of an instance
539
+ * @return {Number} complexity of this instance (is 1 unless subclassed)
540
+ */
541
+ complexity(): number;
542
+ /**
543
+ * Returns a JSON representation of an instance
544
+ * @return {Object} JSON
545
+ */
546
+ toJSON(): any;
547
+ /**
548
+ * Sets "angle" of an instance with centered rotation
549
+ * @param {TDegree} angle Angle value (in degrees)
550
+ */
551
+ rotate(angle: TDegree): void;
552
+ /**
553
+ * This callback function is called by the parent group of an object every
554
+ * time a non-delegated property changes on the group. It is passed the key
555
+ * and value as parameters. Not adding in this function's signature to avoid
556
+ * Travis build error about unused variables.
557
+ */
558
+ setOnGroup(): void;
559
+ /**
560
+ * Sets canvas globalCompositeOperation for specific object
561
+ * custom composition operation for the particular object can be specified using globalCompositeOperation property
562
+ * @param {CanvasRenderingContext2D} ctx Rendering canvas context
563
+ */
564
+ _setupCompositeOperation(ctx: CanvasRenderingContext2D): void;
565
+ /**
566
+ * cancel instance's running animations
567
+ * override if necessary to dispose artifacts such as `clipPath`
568
+ */
569
+ dispose(): void;
570
+ /**
571
+ *
572
+ * @param {Function} klass
573
+ * @param {object} object
574
+ * @param {object} [options]
575
+ * @param {string} [options.extraParam] property to pass as first argument to the constructor
576
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
577
+ * @returns {Promise<FabricObject>}
578
+ */
579
+ static _fromObject<S extends FabricObject>(object: Record<string, unknown>, { extraParam, ...options }?: {
580
+ extraParam?: string;
581
+ signal?: AbortSignal;
582
+ }): Promise<S>;
583
+ /**
584
+ *
585
+ * @param {object} object
586
+ * @param {object} [options]
587
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
588
+ * @returns {Promise<FabricObject>}
589
+ */
590
+ static fromObject<T extends TProps<SerializedObjectProps>>(object: T, options?: {
591
+ signal?: AbortSignal;
592
+ }): Promise<FabricObject<Partial<ObjectProps>, SerializedObjectProps, ObjectEvents>>;
593
+ }
594
+ //# sourceMappingURL=Object.d.ts.map