fabric 5.3.0 → 6.0.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintrc.js +43 -0
  5. package/.eslintrc.json +38 -46
  6. package/.eslintrc_tests +12 -0
  7. package/.gitattributes +2 -0
  8. package/.prettierignore +16 -0
  9. package/.prettierrc +4 -0
  10. package/CHANGELOG.md +491 -189
  11. package/CONTRIBUTING.md +226 -58
  12. package/README.md +188 -239
  13. package/bower.json +1 -3
  14. package/dist/fabric.d.ts +1021 -0
  15. package/dist/index.cjs +28027 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.min.js +1 -0
  19. package/dist/index.mjs +27964 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/index.node.cjs +28092 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.d.ts +15 -0
  24. package/dist/index.node.mjs +28035 -0
  25. package/dist/index.node.mjs.map +1 -0
  26. package/dist/src/Collection.d.ts +126 -0
  27. package/dist/src/CommonMethods.d.ts +32 -0
  28. package/dist/src/EventTypeDefs.d.ts +226 -0
  29. package/dist/src/Intersection.d.ts +100 -0
  30. package/dist/src/Observable.d.ts +54 -0
  31. package/dist/src/Pattern.d.ts +104 -0
  32. package/dist/src/Point.d.ts +232 -0
  33. package/dist/src/Shadow.d.ts +87 -0
  34. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  35. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  36. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  37. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  38. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  39. package/dist/src/cache.d.ts +46 -0
  40. package/dist/src/canvas/Canvas.d.ts +567 -0
  41. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  42. package/dist/src/canvas/StaticCanvas.d.ts +751 -0
  43. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  44. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  45. package/dist/src/color/Color.d.ts +174 -0
  46. package/dist/src/color/color_map.d.ts +155 -0
  47. package/dist/src/color/constants.d.ts +22 -0
  48. package/dist/src/color/util.d.ts +12 -0
  49. package/dist/src/config.d.ts +115 -0
  50. package/dist/src/constants.d.ts +14 -0
  51. package/dist/src/controls/Control.d.ts +228 -0
  52. package/dist/src/controls/changeWidth.d.ts +13 -0
  53. package/dist/src/controls/controls.render.d.ts +29 -0
  54. package/dist/src/controls/default_controls.d.ts +50 -0
  55. package/dist/src/controls/drag.d.ts +12 -0
  56. package/dist/src/controls/polyControl.d.ts +5 -0
  57. package/dist/src/controls/rotate.d.ts +12 -0
  58. package/dist/src/controls/scale.d.ts +47 -0
  59. package/dist/src/controls/scaleSkew.d.ts +39 -0
  60. package/dist/src/controls/skew.d.ts +33 -0
  61. package/dist/src/controls/util.d.ts +41 -0
  62. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  63. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  64. package/dist/src/env/browser.d.ts +3 -0
  65. package/dist/src/env/index.d.ts +7 -0
  66. package/dist/src/env/node.d.ts +3 -0
  67. package/dist/src/env/types.d.ts +15 -0
  68. package/dist/src/filters/BaseFilter.d.ts +156 -0
  69. package/dist/src/filters/BlendColor.d.ts +80 -0
  70. package/dist/src/filters/BlendImage.d.ts +90 -0
  71. package/dist/src/filters/Blur.d.ts +50 -0
  72. package/dist/src/filters/Boilerplate.d.ts +46 -0
  73. package/dist/src/filters/Brightness.d.ts +46 -0
  74. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  75. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  76. package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
  77. package/dist/src/filters/Composed.d.ts +47 -0
  78. package/dist/src/filters/Contrast.d.ts +44 -0
  79. package/dist/src/filters/Convolute.d.ts +82 -0
  80. package/dist/src/filters/FilterBackend.d.ts +14 -0
  81. package/dist/src/filters/Gamma.d.ts +53 -0
  82. package/dist/src/filters/Grayscale.d.ts +45 -0
  83. package/dist/src/filters/HueRotation.d.ts +24 -0
  84. package/dist/src/filters/Invert.d.ts +54 -0
  85. package/dist/src/filters/Noise.d.ts +53 -0
  86. package/dist/src/filters/Pixelate.d.ts +43 -0
  87. package/dist/src/filters/RemoveColor.d.ts +62 -0
  88. package/dist/src/filters/Resize.d.ts +134 -0
  89. package/dist/src/filters/Saturation.d.ts +47 -0
  90. package/dist/src/filters/Vibrance.d.ts +47 -0
  91. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  92. package/dist/src/filters/WebGLProbe.d.ts +28 -0
  93. package/dist/src/filters/typedefs.d.ts +49 -0
  94. package/dist/src/gradient/Gradient.d.ts +149 -0
  95. package/dist/src/gradient/constants.d.ts +15 -0
  96. package/dist/src/gradient/parser/index.d.ts +4 -0
  97. package/dist/src/gradient/parser/misc.d.ts +4 -0
  98. package/dist/src/gradient/parser/parseColorStops.d.ts +6 -0
  99. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  100. package/dist/src/gradient/typedefs.d.ts +93 -0
  101. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  102. package/dist/src/mixins/stateful.mixin.d.ts +18 -0
  103. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  104. package/dist/src/parkinglot/straighten.d.ts +2 -0
  105. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  106. package/dist/src/parser/attributes.d.ts +6 -0
  107. package/dist/src/parser/constants.d.ts +54 -0
  108. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  109. package/dist/src/parser/elementById.d.ts +6 -0
  110. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  111. package/dist/src/parser/elements_parser.d.ts +3 -0
  112. package/dist/src/parser/getCSSRules.d.ts +7 -0
  113. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  114. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  115. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  116. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  117. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  118. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  119. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  120. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  121. package/dist/src/parser/normalizeValue.d.ts +2 -0
  122. package/dist/src/parser/parseAttributes.d.ts +9 -0
  123. package/dist/src/parser/parseElements.d.ts +11 -0
  124. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  125. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  126. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  127. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  128. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  129. package/dist/src/parser/parseStyleString.d.ts +2 -0
  130. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  131. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  132. package/dist/src/parser/percent.d.ts +9 -0
  133. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  134. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  135. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  136. package/dist/src/parser/selectorMatches.d.ts +2 -0
  137. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  138. package/dist/src/parser/skewMatrix.d.ts +2 -0
  139. package/dist/src/parser/translateMatrix.d.ts +2 -0
  140. package/dist/src/shapes/ActiveSelection.d.ts +66 -0
  141. package/dist/src/shapes/Circle.d.ts +80 -0
  142. package/dist/src/shapes/Ellipse.d.ts +74 -0
  143. package/dist/src/shapes/Group.d.ts +381 -0
  144. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  145. package/dist/src/shapes/IText/IText.d.ts +322 -0
  146. package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
  147. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  148. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
  149. package/dist/src/shapes/IText/constants.d.ts +13 -0
  150. package/dist/src/shapes/Image.d.ts +283 -0
  151. package/dist/src/shapes/Line.d.ts +117 -0
  152. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  153. package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
  154. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  155. package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
  156. package/dist/src/shapes/Object/Object.d.ts +906 -0
  157. package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
  158. package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
  159. package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
  160. package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
  161. package/dist/src/shapes/Path.d.ts +123 -0
  162. package/dist/src/shapes/Polygon.d.ts +7 -0
  163. package/dist/src/shapes/Polyline.d.ts +130 -0
  164. package/dist/src/shapes/Rect.d.ts +62 -0
  165. package/dist/src/shapes/Text/StyledText.d.ts +118 -0
  166. package/dist/src/shapes/Text/Text.d.ts +656 -0
  167. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  168. package/dist/src/shapes/Textbox.d.ts +170 -0
  169. package/dist/src/shapes/Triangle.d.ts +17 -0
  170. package/dist/src/typedefs.d.ts +93 -0
  171. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  172. package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -0
  173. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  174. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  175. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  176. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  177. package/dist/src/util/animation/animate.d.ts +37 -0
  178. package/dist/src/util/animation/easing.d.ts +130 -0
  179. package/dist/src/util/animation/types.d.ts +87 -0
  180. package/dist/src/util/applyMixins.d.ts +8 -0
  181. package/dist/src/util/class_registry.d.ts +14 -0
  182. package/dist/src/util/dom_event.d.ts +5 -0
  183. package/dist/src/util/dom_misc.d.ts +40 -0
  184. package/dist/src/util/dom_request.d.ts +14 -0
  185. package/dist/src/util/dom_style.d.ts +7 -0
  186. package/dist/src/util/fireEvent.d.ts +3 -0
  187. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  188. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  189. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  190. package/dist/src/util/internals/index.d.ts +4 -0
  191. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  192. package/dist/src/util/internals/uid.d.ts +2 -0
  193. package/dist/src/util/lang_class.d.ts +12 -0
  194. package/dist/src/util/lang_string.d.ts +22 -0
  195. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  196. package/dist/src/util/misc/capValue.d.ts +2 -0
  197. package/dist/src/util/misc/cos.d.ts +10 -0
  198. package/dist/src/util/misc/dom.d.ts +28 -0
  199. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  200. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  201. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  202. package/dist/src/util/misc/matrix.d.ts +92 -0
  203. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  204. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  205. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  206. package/dist/src/util/misc/pick.d.ts +8 -0
  207. package/dist/src/util/misc/planeChange.d.ts +84 -0
  208. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  209. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  210. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  211. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  212. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  213. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  214. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  215. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  216. package/dist/src/util/misc/sin.d.ts +10 -0
  217. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  218. package/dist/src/util/misc/textStyles.d.ts +32 -0
  219. package/dist/src/util/misc/toFixed.d.ts +8 -0
  220. package/dist/src/util/misc/vectors.d.ts +57 -0
  221. package/dist/src/util/path.d.ts +108 -0
  222. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  223. package/dist/src/util/types.d.ts +19 -0
  224. package/fabric.ts +427 -0
  225. package/index.node.ts +43 -0
  226. package/index.ts +1 -0
  227. package/package.json +90 -39
  228. package/publish.js +0 -26
  229. package/rollup.config.mjs +79 -0
  230. package/rollup.test.config.js +24 -0
  231. package/scripts/build.mjs +50 -0
  232. package/scripts/buildLock.mjs +115 -0
  233. package/scripts/buildReporter.mjs +15 -0
  234. package/scripts/buildStats.mjs +139 -0
  235. package/scripts/dirname.mjs +14 -0
  236. package/scripts/index.mjs +679 -0
  237. package/scripts/transform_files.mjs +504 -0
  238. package/src/Collection.ts +311 -0
  239. package/src/CommonMethods.ts +63 -0
  240. package/src/EventTypeDefs.ts +294 -0
  241. package/src/Intersection.ts +273 -0
  242. package/src/Observable.ts +175 -0
  243. package/src/Pattern.ts +211 -0
  244. package/src/Point.ts +388 -0
  245. package/src/Shadow.ts +215 -0
  246. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  247. package/src/brushes/CircleBrush.ts +145 -0
  248. package/src/brushes/PatternBrush.ts +70 -0
  249. package/src/brushes/PencilBrush.ts +300 -0
  250. package/src/brushes/SprayBrush.ts +219 -0
  251. package/src/cache.ts +89 -0
  252. package/src/canvas/Canvas.ts +1672 -0
  253. package/src/canvas/SelectableCanvas.ts +1636 -0
  254. package/src/canvas/StaticCanvas.ts +1709 -0
  255. package/src/canvas/TextEditingManager.ts +48 -0
  256. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  257. package/src/color/Color.ts +404 -0
  258. package/src/color/color_map.ts +154 -0
  259. package/src/color/constants.ts +26 -0
  260. package/src/color/util.ts +32 -0
  261. package/src/config.ts +159 -0
  262. package/src/constants.ts +19 -0
  263. package/src/controls/Control.ts +377 -0
  264. package/src/controls/changeWidth.ts +52 -0
  265. package/src/controls/controls.render.ts +138 -0
  266. package/src/controls/default_controls.ts +132 -0
  267. package/src/controls/drag.ts +31 -0
  268. package/src/controls/polyControl.ts +135 -0
  269. package/src/controls/rotate.ts +87 -0
  270. package/src/controls/scale.ts +277 -0
  271. package/src/controls/scaleSkew.ts +92 -0
  272. package/src/controls/skew.ts +242 -0
  273. package/src/controls/util.ts +154 -0
  274. package/src/controls/wrapWithFireEvent.ts +25 -0
  275. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  276. package/src/env/browser.ts +28 -0
  277. package/src/env/index.ts +19 -0
  278. package/src/env/node.ts +52 -0
  279. package/src/env/types.ts +15 -0
  280. package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
  281. package/src/filters/BlendColor.ts +258 -0
  282. package/src/filters/BlendImage.ts +254 -0
  283. package/src/filters/Blur.ts +202 -0
  284. package/src/filters/Boilerplate.ts +91 -0
  285. package/src/filters/Brightness.ts +93 -0
  286. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  287. package/src/filters/ColorMatrix.ts +156 -0
  288. package/src/filters/ColorMatrixFilters.ts +106 -0
  289. package/src/filters/Composed.ts +85 -0
  290. package/src/filters/Contrast.ts +94 -0
  291. package/src/filters/Convolute.ts +341 -0
  292. package/src/filters/FilterBackend.ts +32 -0
  293. package/src/filters/Gamma.ts +127 -0
  294. package/src/filters/Grayscale.ts +137 -0
  295. package/src/filters/HueRotation.ts +66 -0
  296. package/src/filters/Invert.ts +117 -0
  297. package/src/filters/Noise.ts +109 -0
  298. package/src/filters/Pixelate.ts +114 -0
  299. package/src/filters/RemoveColor.ts +148 -0
  300. package/src/filters/Resize.ts +540 -0
  301. package/src/filters/Saturation.ts +100 -0
  302. package/src/filters/Vibrance.ts +103 -0
  303. package/src/filters/WebGLFilterBackend.ts +430 -0
  304. package/src/filters/WebGLProbe.ts +62 -0
  305. package/src/filters/typedefs.ts +65 -0
  306. package/src/gradient/Gradient.ts +401 -0
  307. package/src/gradient/constants.ts +12 -0
  308. package/src/gradient/parser/index.ts +3 -0
  309. package/src/gradient/parser/misc.ts +13 -0
  310. package/src/gradient/parser/parseColorStops.ts +55 -0
  311. package/src/gradient/parser/parseCoords.ts +73 -0
  312. package/src/gradient/typedefs.ts +104 -0
  313. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  314. package/src/mixins/stateful.mixin.ts +104 -0
  315. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  316. package/src/parkinglot/straighten.ts +58 -0
  317. package/src/parser/applyViewboxTransform.ts +162 -0
  318. package/src/parser/attributes.ts +25 -0
  319. package/src/parser/constants.ts +118 -0
  320. package/src/parser/doesSomeParentMatch.ts +19 -0
  321. package/src/parser/elementById.ts +23 -0
  322. package/src/parser/elementMatchesRule.ts +19 -0
  323. package/src/parser/elements_parser.ts +191 -0
  324. package/src/parser/getCSSRules.ts +62 -0
  325. package/src/parser/getGlobalStylesForElement.ts +19 -0
  326. package/src/parser/getGradientDefs.ts +32 -0
  327. package/src/parser/getMultipleNodes.ts +15 -0
  328. package/src/parser/getSvgRegex.ts +5 -0
  329. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  330. package/src/parser/loadSVGFromString.ts +26 -0
  331. package/src/parser/loadSVGFromURL.ts +40 -0
  332. package/src/parser/normalizeAttr.ts +10 -0
  333. package/src/parser/normalizeValue.ts +63 -0
  334. package/src/parser/parseAttributes.ts +90 -0
  335. package/src/parser/parseElements.ts +28 -0
  336. package/src/parser/parseFontDeclaration.ts +44 -0
  337. package/src/parser/parsePointsAttribute.ts +36 -0
  338. package/src/parser/parseSVGDocument.ts +106 -0
  339. package/src/parser/parseStyleAttribute.ts +27 -0
  340. package/src/parser/parseStyleObject.ts +15 -0
  341. package/src/parser/parseStyleString.ts +16 -0
  342. package/src/parser/parseTransformAttribute.ts +155 -0
  343. package/src/parser/parseUseDirectives.ts +79 -0
  344. package/src/parser/percent.ts +27 -0
  345. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  346. package/src/parser/rotateMatrix.ts +21 -0
  347. package/src/parser/scaleMatrix.ts +9 -0
  348. package/src/parser/selectorMatches.ts +25 -0
  349. package/src/parser/setStrokeFillOpacity.ts +40 -0
  350. package/src/parser/skewMatrix.ts +6 -0
  351. package/src/parser/translateMatrix.ts +8 -0
  352. package/src/shapes/ActiveSelection.ts +157 -0
  353. package/src/shapes/Circle.ts +205 -0
  354. package/src/shapes/Ellipse.ts +154 -0
  355. package/src/shapes/Group.ts +1053 -0
  356. package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
  357. package/src/shapes/IText/IText.ts +666 -0
  358. package/src/shapes/IText/ITextBehavior.ts +1055 -0
  359. package/src/shapes/IText/ITextClickBehavior.ts +321 -0
  360. package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
  361. package/src/shapes/IText/constants.ts +47 -0
  362. package/src/shapes/Image.ts +789 -0
  363. package/src/shapes/Line.ts +329 -0
  364. package/src/shapes/Object/AnimatableObject.ts +106 -0
  365. package/src/shapes/Object/FabricObject.ts +19 -0
  366. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  367. package/src/shapes/Object/InteractiveObject.ts +645 -0
  368. package/src/shapes/Object/Object.ts +1896 -0
  369. package/src/shapes/Object/ObjectGeometry.ts +830 -0
  370. package/src/shapes/Object/ObjectOrigin.ts +354 -0
  371. package/src/shapes/Object/StackedObject.ts +191 -0
  372. package/src/shapes/Object/defaultValues.ts +112 -0
  373. package/src/shapes/Path.ts +395 -0
  374. package/src/shapes/Polygon.ts +19 -0
  375. package/src/shapes/Polyline.ts +333 -0
  376. package/src/shapes/Rect.ts +199 -0
  377. package/src/shapes/Text/StyledText.ts +319 -0
  378. package/src/shapes/Text/Text.ts +1948 -0
  379. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  380. package/src/shapes/Textbox.ts +471 -0
  381. package/src/shapes/Triangle.ts +45 -0
  382. package/src/typedefs.ts +119 -0
  383. package/src/util/animation/AnimationBase.ts +166 -0
  384. package/src/util/animation/AnimationFrameProvider.ts +28 -0
  385. package/src/util/animation/AnimationRegistry.ts +58 -0
  386. package/src/util/animation/ArrayAnimation.ts +27 -0
  387. package/src/util/animation/ColorAnimation.ts +74 -0
  388. package/src/util/animation/ValueAnimation.ts +29 -0
  389. package/src/util/animation/animate.ts +74 -0
  390. package/src/util/animation/easing.ts +327 -0
  391. package/src/util/animation/types.ts +136 -0
  392. package/src/util/applyMixins.ts +22 -0
  393. package/src/util/class_registry.ts +54 -0
  394. package/src/util/dom_event.ts +28 -0
  395. package/src/util/dom_misc.ts +138 -0
  396. package/src/util/dom_request.ts +64 -0
  397. package/src/util/dom_style.ts +20 -0
  398. package/src/util/fireEvent.ts +15 -0
  399. package/src/util/internals/cloneDeep.ts +2 -0
  400. package/src/util/internals/getRandomInt.ts +8 -0
  401. package/src/util/internals/ifNaN.ts +9 -0
  402. package/src/util/internals/index.ts +3 -0
  403. package/src/util/internals/removeFromArray.ts +14 -0
  404. package/src/util/internals/uid.ts +3 -0
  405. package/src/util/lang_class.ts +90 -0
  406. package/src/util/lang_string.ts +79 -0
  407. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  408. package/src/util/misc/capValue.ts +2 -0
  409. package/src/util/misc/cos.ts +24 -0
  410. package/src/util/misc/dom.ts +50 -0
  411. package/src/util/misc/findScaleTo.ts +44 -0
  412. package/src/util/misc/groupSVGElements.ts +15 -0
  413. package/src/util/misc/isTransparent.ts +51 -0
  414. package/src/util/misc/matrix.ts +207 -0
  415. package/src/util/misc/mergeClipPaths.ts +40 -0
  416. package/src/util/misc/objectEnlive.ts +189 -0
  417. package/src/util/misc/objectTransforms.ts +129 -0
  418. package/src/util/misc/pick.ts +17 -0
  419. package/src/util/misc/planeChange.ts +136 -0
  420. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  421. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +231 -0
  422. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  423. package/src/util/misc/projectStroke/index.ts +53 -0
  424. package/src/util/misc/projectStroke/types.ts +24 -0
  425. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  426. package/src/util/misc/resolveOrigin.ts +22 -0
  427. package/src/util/misc/rotatePoint.ts +15 -0
  428. package/src/util/misc/sin.ts +26 -0
  429. package/src/util/misc/svgParsing.ts +181 -0
  430. package/src/util/misc/textStyles.ts +133 -0
  431. package/src/util/misc/toFixed.ts +8 -0
  432. package/src/util/misc/vectors.ts +82 -0
  433. package/src/util/path.ts +941 -0
  434. package/src/util/transform_matrix_removal.ts +60 -0
  435. package/src/util/types.ts +78 -0
  436. package/tsconfig.json +106 -0
  437. package/HEADER.js +0 -203
  438. package/build.js +0 -287
  439. package/dist/fabric.js +0 -31187
  440. package/dist/fabric.min.js +0 -1
  441. package/old-travis-reference.yml +0 -97
  442. package/src/brushes/circle_brush.class.js +0 -144
  443. package/src/brushes/pattern_brush.class.js +0 -61
  444. package/src/brushes/pencil_brush.class.js +0 -310
  445. package/src/brushes/spray_brush.class.js +0 -219
  446. package/src/canvas.class.js +0 -1312
  447. package/src/color.class.js +0 -636
  448. package/src/control.class.js +0 -339
  449. package/src/controls.actions.js +0 -740
  450. package/src/controls.render.js +0 -99
  451. package/src/elements_parser.js +0 -152
  452. package/src/filters/2d_backend.class.js +0 -65
  453. package/src/filters/blendcolor_filter.class.js +0 -251
  454. package/src/filters/blendimage_filter.class.js +0 -247
  455. package/src/filters/blur_filter.class.js +0 -217
  456. package/src/filters/brightness_filter.class.js +0 -113
  457. package/src/filters/colormatrix_filter.class.js +0 -159
  458. package/src/filters/composed_filter.class.js +0 -72
  459. package/src/filters/contrast_filter.class.js +0 -113
  460. package/src/filters/convolute_filter.class.js +0 -352
  461. package/src/filters/filter_boilerplate.js +0 -111
  462. package/src/filters/filter_generator.js +0 -85
  463. package/src/filters/gamma_filter.class.js +0 -136
  464. package/src/filters/grayscale_filter.class.js +0 -154
  465. package/src/filters/hue_rotation.class.js +0 -107
  466. package/src/filters/invert_filter.class.js +0 -111
  467. package/src/filters/noise_filter.class.js +0 -134
  468. package/src/filters/pixelate_filter.class.js +0 -137
  469. package/src/filters/removecolor_filter.class.js +0 -173
  470. package/src/filters/resize_filter.class.js +0 -490
  471. package/src/filters/saturate_filter.class.js +0 -119
  472. package/src/filters/vibrance_filter.class.js +0 -122
  473. package/src/filters/webgl_backend.class.js +0 -396
  474. package/src/globalFabric.js +0 -4
  475. package/src/gradient.class.js +0 -490
  476. package/src/intersection.class.js +0 -172
  477. package/src/log.js +0 -11
  478. package/src/mixins/animation.mixin.js +0 -231
  479. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  480. package/src/mixins/canvas_events.mixin.js +0 -974
  481. package/src/mixins/canvas_gestures.mixin.js +0 -149
  482. package/src/mixins/canvas_grouping.mixin.js +0 -177
  483. package/src/mixins/canvas_serialization.mixin.js +0 -228
  484. package/src/mixins/collection.mixin.js +0 -170
  485. package/src/mixins/default_controls.js +0 -114
  486. package/src/mixins/itext.svg_export.js +0 -241
  487. package/src/mixins/itext_behavior.mixin.js +0 -940
  488. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  489. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  490. package/src/mixins/object.svg_export.js +0 -258
  491. package/src/mixins/object_geometry.mixin.js +0 -683
  492. package/src/mixins/object_interactivity.mixin.js +0 -314
  493. package/src/mixins/object_origin.mixin.js +0 -255
  494. package/src/mixins/object_stacking.mixin.js +0 -80
  495. package/src/mixins/object_straightening.mixin.js +0 -80
  496. package/src/mixins/observable.mixin.js +0 -141
  497. package/src/mixins/shared_methods.mixin.js +0 -94
  498. package/src/mixins/stateful.mixin.js +0 -107
  499. package/src/mixins/text_style.mixin.js +0 -324
  500. package/src/parser.js +0 -1090
  501. package/src/pattern.class.js +0 -189
  502. package/src/point.class.js +0 -337
  503. package/src/shadow.class.js +0 -195
  504. package/src/shapes/active_selection.class.js +0 -155
  505. package/src/shapes/circle.class.js +0 -210
  506. package/src/shapes/ellipse.class.js +0 -181
  507. package/src/shapes/group.class.js +0 -593
  508. package/src/shapes/image.class.js +0 -764
  509. package/src/shapes/itext.class.js +0 -526
  510. package/src/shapes/line.class.js +0 -324
  511. package/src/shapes/object.class.js +0 -2008
  512. package/src/shapes/path.class.js +0 -384
  513. package/src/shapes/polygon.class.js +0 -81
  514. package/src/shapes/polyline.class.js +0 -268
  515. package/src/shapes/rect.class.js +0 -187
  516. package/src/shapes/text.class.js +0 -1696
  517. package/src/shapes/textbox.class.js +0 -461
  518. package/src/shapes/triangle.class.js +0 -93
  519. package/src/static_canvas.class.js +0 -1881
  520. package/src/util/anim_ease.js +0 -398
  521. package/src/util/animate.js +0 -254
  522. package/src/util/animate_color.js +0 -74
  523. package/src/util/dom_event.js +0 -50
  524. package/src/util/dom_misc.js +0 -300
  525. package/src/util/dom_request.js +0 -54
  526. package/src/util/dom_style.js +0 -70
  527. package/src/util/lang_array.js +0 -94
  528. package/src/util/lang_class.js +0 -115
  529. package/src/util/lang_object.js +0 -75
  530. package/src/util/lang_string.js +0 -110
  531. package/src/util/misc.js +0 -1330
  532. package/src/util/named_accessors.mixin.js +0 -428
  533. package/src/util/path.js +0 -829
@@ -0,0 +1,193 @@
1
+ import { TPointerEvent } from '../../EventTypeDefs';
2
+ import { ITextBehavior, ITextEvents } from './ITextBehavior';
3
+ import type { TKeyMapIText } from './constants';
4
+ export declare abstract class ITextKeyBehavior<EventSpec extends ITextEvents = ITextEvents> extends ITextBehavior<EventSpec> {
5
+ /**
6
+ * For functionalities on keyDown
7
+ * Map a special key to a function of the instance/prototype
8
+ * If you need different behavior for ESC or TAB or arrows, you have to change
9
+ * this map setting the name of a function that you build on the IText or
10
+ * your prototype.
11
+ * the map change will affect all Instances unless you need for only some text Instances
12
+ * in that case you have to clone this object and assign your Instance.
13
+ * this.keysMap = Object.assign({}, this.keysMap);
14
+ * The function must be in IText.prototype.myFunction And will receive event as args[0]
15
+ */
16
+ keysMap: TKeyMapIText;
17
+ keysMapRtl: TKeyMapIText;
18
+ /**
19
+ * For functionalities on keyUp + ctrl || cmd
20
+ */
21
+ ctrlKeysMapUp: TKeyMapIText;
22
+ /**
23
+ * For functionalities on keyDown + ctrl || cmd
24
+ */
25
+ ctrlKeysMapDown: TKeyMapIText;
26
+ hiddenTextarea: HTMLTextAreaElement | null;
27
+ /**
28
+ * DOM container to append the hiddenTextarea.
29
+ * An alternative to attaching to the document.body.
30
+ * Useful to reduce laggish redraw of the full document.body tree and
31
+ * also with modals event capturing that won't let the textarea take focus.
32
+ * @type HTMLElement
33
+ * @default
34
+ */
35
+ hiddenTextareaContainer?: HTMLElement | null;
36
+ private _clickHandlerInitialized;
37
+ private _copyDone;
38
+ private fromPaste;
39
+ /**
40
+ * Initializes hidden textarea (needed to bring up keyboard in iOS)
41
+ */
42
+ initHiddenTextarea(): void;
43
+ onClick(): void;
44
+ /**
45
+ * Override this method to customize cursor behavior on textbox blur
46
+ */
47
+ blur(): void;
48
+ /**
49
+ * Handles keydown event
50
+ * only used for arrows and combination of modifier keys.
51
+ * @param {KeyboardEvent} e Event object
52
+ */
53
+ onKeyDown(e: KeyboardEvent): void;
54
+ /**
55
+ * Handles keyup event
56
+ * We handle KeyUp because ie11 and edge have difficulties copy/pasting
57
+ * if a copy/cut event fired, keyup is dismissed
58
+ * @param {KeyboardEvent} e Event object
59
+ */
60
+ onKeyUp(e: KeyboardEvent): void;
61
+ /**
62
+ * Handles onInput event
63
+ * @param {Event} e Event object
64
+ */
65
+ onInput(e: Event): void;
66
+ /**
67
+ * Composition start
68
+ */
69
+ onCompositionStart(): void;
70
+ /**
71
+ * Composition end
72
+ */
73
+ onCompositionEnd(): void;
74
+ onCompositionUpdate(e: any): void;
75
+ /**
76
+ * Copies selected text
77
+ */
78
+ copy(): void;
79
+ /**
80
+ * Pastes text
81
+ */
82
+ paste(): void;
83
+ /**
84
+ * Finds the width in pixels before the cursor on the same line
85
+ * @private
86
+ * @param {Number} lineIndex
87
+ * @param {Number} charIndex
88
+ * @return {Number} widthBeforeCursor width before cursor
89
+ */
90
+ _getWidthBeforeCursor(lineIndex: number, charIndex: number): number;
91
+ /**
92
+ * Gets start offset of a selection
93
+ * @param {TPointerEvent} e Event object
94
+ * @param {Boolean} isRight
95
+ * @return {Number}
96
+ */
97
+ getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number;
98
+ /**
99
+ * private
100
+ * Helps finding if the offset should be counted from Start or End
101
+ * @param {KeyboardEvent} e Event object
102
+ * @param {Boolean} isRight
103
+ * @return {Number}
104
+ */
105
+ _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number;
106
+ /**
107
+ * @param {KeyboardEvent} e Event object
108
+ * @param {Boolean} isRight
109
+ * @return {Number}
110
+ */
111
+ getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number;
112
+ /**
113
+ * for a given width it founds the matching character.
114
+ * @private
115
+ */
116
+ _getIndexOnLine(lineIndex: number, width: number): number;
117
+ /**
118
+ * Moves cursor down
119
+ * @param {TPointerEvent} e Event object
120
+ */
121
+ moveCursorDown(e: TPointerEvent): void;
122
+ /**
123
+ * Moves cursor up
124
+ * @param {TPointerEvent} e Event object
125
+ */
126
+ moveCursorUp(e: TPointerEvent): void;
127
+ /**
128
+ * Moves cursor up or down, fires the events
129
+ * @param {String} direction 'Up' or 'Down'
130
+ * @param {TPointerEvent} e Event object
131
+ */
132
+ _moveCursorUpOrDown(direction: 'Up' | 'Down', e: TPointerEvent): void;
133
+ /**
134
+ * Moves cursor with shift
135
+ * @param {Number} offset
136
+ */
137
+ moveCursorWithShift(offset: number): boolean;
138
+ /**
139
+ * Moves cursor up without shift
140
+ * @param {Number} offset
141
+ */
142
+ moveCursorWithoutShift(offset: number): boolean;
143
+ /**
144
+ * Moves cursor left
145
+ * @param {TPointerEvent} e Event object
146
+ */
147
+ moveCursorLeft(e: TPointerEvent): void;
148
+ /**
149
+ * @private
150
+ * @return {Boolean} true if a change happened
151
+ */
152
+ _move(e: any, prop: any, direction: any): boolean;
153
+ /**
154
+ * @private
155
+ */
156
+ _moveLeft(e: any, prop: any): boolean;
157
+ /**
158
+ * @private
159
+ */
160
+ _moveRight(e: any, prop: any): boolean;
161
+ /**
162
+ * Moves cursor left without keeping selection
163
+ * @param {TPointerEvent} e
164
+ */
165
+ moveCursorLeftWithoutShift(e: TPointerEvent): boolean;
166
+ /**
167
+ * Moves cursor left while keeping selection
168
+ * @param {TPointerEvent} e
169
+ */
170
+ moveCursorLeftWithShift(e: TPointerEvent): boolean | undefined;
171
+ /**
172
+ * Moves cursor right
173
+ * @param {TPointerEvent} e Event object
174
+ */
175
+ moveCursorRight(e: TPointerEvent): void;
176
+ /**
177
+ * Moves cursor right or Left, fires event
178
+ * @param {String} direction 'Left', 'Right'
179
+ * @param {TPointerEvent} e Event object
180
+ */
181
+ _moveCursorLeftOrRight(direction: string, e: TPointerEvent): void;
182
+ /**
183
+ * Moves cursor right while keeping selection
184
+ * @param {TPointerEvent} e
185
+ */
186
+ moveCursorRightWithShift(e: TPointerEvent): boolean | undefined;
187
+ /**
188
+ * Moves cursor right without keeping selection
189
+ * @param {TPointerEvent} e Event object
190
+ */
191
+ moveCursorRightWithoutShift(e: TPointerEvent): boolean;
192
+ }
193
+ //# sourceMappingURL=ITextKeyBehavior.d.ts.map
@@ -0,0 +1,13 @@
1
+ import type { IText } from './IText';
2
+ export type TKeyMapIText = Record<KeyboardEvent['keyCode'], keyof IText>;
3
+ export declare const keysMap: TKeyMapIText;
4
+ export declare const keysMapRtl: TKeyMapIText;
5
+ /**
6
+ * For functionalities on keyUp + ctrl || cmd
7
+ */
8
+ export declare const ctrlKeysMapUp: TKeyMapIText;
9
+ /**
10
+ * For functionalities on keyDown + ctrl || cmd
11
+ */
12
+ export declare const ctrlKeysMapDown: TKeyMapIText;
13
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,283 @@
1
+ import type { BaseFilter } from '../filters/BaseFilter';
2
+ import { TClassProperties, TSize } from '../typedefs';
3
+ import { LoadImageOptions } from '../util/misc/objectEnlive';
4
+ import { FabricObject } from './Object/FabricObject';
5
+ export type ImageSource = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement;
6
+ /**
7
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#images}
8
+ */
9
+ export declare class Image extends FabricObject {
10
+ /**
11
+ * When calling {@link Image.getSrc}, return value from element src with `element.getAttribute('src')`.
12
+ * This allows for relative urls as image src.
13
+ * @since 2.7.0
14
+ * @type Boolean
15
+ * @default false
16
+ */
17
+ srcFromAttribute: boolean;
18
+ /**
19
+ * private
20
+ * contains last value of scaleX to detect
21
+ * if the Image got resized after the last Render
22
+ * @type Number
23
+ */
24
+ protected _lastScaleX: number;
25
+ /**
26
+ * private
27
+ * contains last value of scaleY to detect
28
+ * if the Image got resized after the last Render
29
+ * @type Number
30
+ */
31
+ protected _lastScaleY: number;
32
+ /**
33
+ * private
34
+ * contains last value of scaling applied by the apply filter chain
35
+ * @type Number
36
+ */
37
+ protected _filterScalingX: number;
38
+ /**
39
+ * private
40
+ * contains last value of scaling applied by the apply filter chain
41
+ * @type Number
42
+ */
43
+ protected _filterScalingY: number;
44
+ /**
45
+ * minimum scale factor under which any resizeFilter is triggered to resize the image
46
+ * 0 will disable the automatic resize. 1 will trigger automatically always.
47
+ * number bigger than 1 are not implemented yet.
48
+ * @type Number
49
+ */
50
+ minimumScaleTrigger: number;
51
+ /**
52
+ * key used to retrieve the texture representing this image
53
+ * @since 2.0.0
54
+ * @type String
55
+ * @default
56
+ */
57
+ cacheKey: string;
58
+ /**
59
+ * Image crop in pixels from original image size.
60
+ * @since 2.0.0
61
+ * @type Number
62
+ * @default
63
+ */
64
+ cropX: number;
65
+ /**
66
+ * Image crop in pixels from original image size.
67
+ * @since 2.0.0
68
+ * @type Number
69
+ * @default
70
+ */
71
+ cropY: number;
72
+ /**
73
+ * Indicates whether this canvas will use image smoothing when painting this image.
74
+ * Also influence if the cacheCanvas for this image uses imageSmoothing
75
+ * @since 4.0.0-beta.11
76
+ * @type Boolean
77
+ * @default
78
+ */
79
+ imageSmoothing: boolean;
80
+ preserveAspectRatio: string;
81
+ protected src: string;
82
+ filters: BaseFilter[];
83
+ resizeFilter: BaseFilter;
84
+ protected _element: ImageSource;
85
+ protected _originalElement: ImageSource;
86
+ protected _filteredEl: ImageSource;
87
+ /**
88
+ * Constructor
89
+ * Image can be initialized with any canvas drawable or a string.
90
+ * The string should be a url and will be loaded as an image.
91
+ * Canvas and Image element work out of the box, while videos require extra code to work.
92
+ * Please check video element events for seeking.
93
+ * @param {ImageSource | string} element Image element
94
+ * @param {Object} [options] Options object
95
+ */
96
+ constructor(elementId: string, options?: any);
97
+ constructor(element: ImageSource, options?: any);
98
+ /**
99
+ * Returns image element which this instance if based on
100
+ */
101
+ getElement(): ImageSource;
102
+ /**
103
+ * Sets image element for this instance to a specified one.
104
+ * If filters defined they are applied to new image.
105
+ * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area.
106
+ * @param {HTMLImageElement} element
107
+ * @param {Partial<TSize>} [size] Options object
108
+ */
109
+ setElement(element: ImageSource, size?: Partial<TSize>): void;
110
+ /**
111
+ * Delete a single texture if in webgl mode
112
+ */
113
+ removeTexture(key: string): void;
114
+ /**
115
+ * Delete textures, reference to elements and eventually JSDOM cleanup
116
+ */
117
+ dispose(): void;
118
+ /**
119
+ * Get the crossOrigin value (of the corresponding image element)
120
+ */
121
+ getCrossOrigin(): any;
122
+ /**
123
+ * Returns original size of an image
124
+ */
125
+ getOriginalSize(): {
126
+ width: any;
127
+ height: any;
128
+ };
129
+ /**
130
+ * @private
131
+ * @param {CanvasRenderingContext2D} ctx Context to render on
132
+ */
133
+ _stroke(ctx: CanvasRenderingContext2D): void;
134
+ /**
135
+ * Returns object representation of an instance
136
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
137
+ * @return {Object} Object representation of an instance
138
+ */
139
+ toObject(propertiesToInclude?: (keyof this)[]): Record<string, any>;
140
+ /**
141
+ * Returns true if an image has crop applied, inspecting values of cropX,cropY,width,height.
142
+ * @return {Boolean}
143
+ */
144
+ hasCrop(): boolean;
145
+ /**
146
+ * Returns svg representation of an instance
147
+ * @return {string[]} an array of strings with the specific svg representation
148
+ * of the instance
149
+ */
150
+ _toSVG(): string[];
151
+ /**
152
+ * Returns source of an image
153
+ * @param {Boolean} filtered indicates if the src is needed for svg
154
+ * @return {String} Source of an image
155
+ */
156
+ getSrc(filtered?: boolean): any;
157
+ /**
158
+ * Alias for getSrc
159
+ * @param filtered
160
+ * @deprecated
161
+ */
162
+ getSvgSrc(filtered?: boolean): any;
163
+ /**
164
+ * Loads and sets source of an image\
165
+ * **IMPORTANT**: It is recommended to abort loading tasks before calling this method to prevent race conditions and unnecessary networking
166
+ * @param {String} src Source string (URL)
167
+ * @param {LoadImageOptions} [options] Options object
168
+ */
169
+ setSrc(src: string, { crossOrigin, signal }?: LoadImageOptions): Promise<void>;
170
+ /**
171
+ * Returns string representation of an instance
172
+ * @return {String} String representation of an instance
173
+ */
174
+ toString(): string;
175
+ applyResizeFilters(): void;
176
+ /**
177
+ * Applies filters assigned to this image (from "filters" array) or from filter param
178
+ * @method applyFilters
179
+ * @param {Array} filters to be applied
180
+ * @param {Boolean} forResizing specify if the filter operation is a resize operation
181
+ */
182
+ applyFilters(filters?: BaseFilter[]): void;
183
+ /**
184
+ * @private
185
+ * @param {CanvasRenderingContext2D} ctx Context to render on
186
+ */
187
+ _render(ctx: CanvasRenderingContext2D): void;
188
+ /**
189
+ * Paint the cached copy of the object on the target context.
190
+ * it will set the imageSmoothing for the draw operation
191
+ * @param {CanvasRenderingContext2D} ctx Context to render on
192
+ */
193
+ drawCacheOnCanvas(ctx: CanvasRenderingContext2D): void;
194
+ /**
195
+ * Decide if the object should cache or not. Create its own cache level
196
+ * needsItsOwnCache should be used when the object drawing method requires
197
+ * a cache step. None of the fabric classes requires it.
198
+ * Generally you do not cache objects in groups because the group outside is cached.
199
+ * This is the special image version where we would like to avoid caching where possible.
200
+ * Essentially images do not benefit from caching. They may require caching, and in that
201
+ * case we do it. Also caching an image usually ends in a loss of details.
202
+ * A full performance audit should be done.
203
+ * @return {Boolean}
204
+ */
205
+ shouldCache(): boolean;
206
+ _renderFill(ctx: CanvasRenderingContext2D): void;
207
+ /**
208
+ * needed to check if image needs resize
209
+ * @private
210
+ */
211
+ _needsResize(): boolean;
212
+ /**
213
+ * @private
214
+ * @deprecated unused
215
+ */
216
+ _resetWidthHeight(): void;
217
+ /**
218
+ * @private
219
+ * Set the width and the height of the image object, using the element or the
220
+ * options.
221
+ */
222
+ _setWidthHeight({ width, height }?: Partial<TSize>): void;
223
+ /**
224
+ * Calculate offset for center and scale factor for the image in order to respect
225
+ * the preserveAspectRatio attribute
226
+ * @private
227
+ */
228
+ parsePreserveAspectRatioAttribute(): {
229
+ width: number;
230
+ height: number;
231
+ scaleX: number;
232
+ scaleY: number;
233
+ offsetLeft: number;
234
+ offsetTop: number;
235
+ cropX: number;
236
+ cropY: number;
237
+ };
238
+ /**
239
+ * Default CSS class name for canvas
240
+ * @static
241
+ * @type String
242
+ * @default
243
+ */
244
+ static CSS_CANVAS: string;
245
+ /**
246
+ * List of attribute names to account for when parsing SVG element (used by {@link Image.fromElement})
247
+ * @static
248
+ * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement}
249
+ */
250
+ static ATTRIBUTE_NAMES: string[];
251
+ /**
252
+ * Creates an instance of Image from its object representation
253
+ * @static
254
+ * @param {Object} object Object to create an instance from
255
+ * @param {object} [options] Options object
256
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
257
+ * @returns {Promise<Image>}
258
+ */
259
+ static fromObject({ filters: f, resizeFilter: rf, src, crossOrigin, ...object }: any, options: {
260
+ signal: AbortSignal;
261
+ }): Promise<Image>;
262
+ /**
263
+ * Creates an instance of Image from an URL string
264
+ * @static
265
+ * @param {String} url URL to create an image from
266
+ * @param {LoadImageOptions} [options] Options object
267
+ * @returns {Promise<Image>}
268
+ */
269
+ static fromURL(url: string, options?: LoadImageOptions): Promise<Image>;
270
+ /**
271
+ * Returns {@link Image} instance from an SVG element
272
+ * @static
273
+ * @param {SVGElement} element Element to parse
274
+ * @param {Object} [options] Options object
275
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
276
+ * @param {Function} callback Callback to execute when Image object is created
277
+ */
278
+ static fromElement(element: SVGElement, callback: (image: Image) => any, options?: {
279
+ signal?: AbortSignal;
280
+ }): void;
281
+ }
282
+ export declare const imageDefaultValues: Partial<TClassProperties<Image>>;
283
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1,117 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { FabricObject } from './Object/FabricObject';
3
+ import { Point } from '../Point';
4
+ export declare class Line extends FabricObject {
5
+ /**
6
+ * x value or first line edge
7
+ * @type Number
8
+ * @default
9
+ */
10
+ x1: number;
11
+ /**
12
+ * y value or first line edge
13
+ * @type Number
14
+ * @default
15
+ */
16
+ y1: number;
17
+ /**
18
+ * x value or second line edge
19
+ * @type Number
20
+ * @default
21
+ */
22
+ x2: number;
23
+ /**
24
+ * y value or second line edge
25
+ * @type Number
26
+ * @default
27
+ */
28
+ y2: number;
29
+ /**
30
+ * Constructor
31
+ * @param {Array} [points] Array of points
32
+ * @param {Object} [options] Options object
33
+ * @return {Line} thisArg
34
+ */
35
+ constructor(points?: number[], options?: Partial<TClassProperties<Line>>);
36
+ /**
37
+ * @private
38
+ * @param {Object} [options] Options
39
+ */
40
+ _setWidthHeight({ left, top }?: Partial<TClassProperties<Line>>): void;
41
+ /**
42
+ * @private
43
+ * @param {String} key
44
+ * @param {*} value
45
+ */
46
+ _set(key: string, value: any): this;
47
+ /**
48
+ * @private
49
+ * @param {CanvasRenderingContext2D} ctx Context to render on
50
+ */
51
+ _render(ctx: CanvasRenderingContext2D): void;
52
+ /**
53
+ * This function is an helper for svg import. it returns the center of the object in the svg
54
+ * untransformed coordinates
55
+ * @private
56
+ * @return {Point} center point from element coordinates
57
+ */
58
+ _findCenterFromElement(): Point;
59
+ /**
60
+ * Returns object representation of an instance
61
+ * @method toObject
62
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
63
+ * @return {Object} object representation of an instance
64
+ */
65
+ toObject(propertiesToInclude: string[]): {
66
+ [x: string]: any;
67
+ };
68
+ _getNonTransformedDimensions(): Point;
69
+ /**
70
+ * Recalculates line points given width and height
71
+ * @private
72
+ */
73
+ calcLinePoints(): Record<string, number>;
74
+ private makeEdgeToOriginGetter;
75
+ /**
76
+ * @private
77
+ * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.
78
+ */
79
+ _getLeftToOriginX(): number;
80
+ /**
81
+ * @private
82
+ * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.
83
+ */
84
+ _getTopToOriginY(): number;
85
+ /**
86
+ * Returns svg representation of an instance
87
+ * @return {Array} an array of strings with the specific svg representation
88
+ * of the instance
89
+ */
90
+ _toSVG(): (string | number)[];
91
+ /**
92
+ * List of attribute names to account for when parsing SVG element (used by {@link Line.fromElement})
93
+ * @static
94
+ * @memberOf Line
95
+ * @see http://www.w3.org/TR/SVG/shapes.html#LineElement
96
+ */
97
+ static ATTRIBUTE_NAMES: string[];
98
+ /**
99
+ * Returns Line instance from an SVG element
100
+ * @static
101
+ * @memberOf Line
102
+ * @param {SVGElement} element Element to parse
103
+ * @param {Object} [options] Options object
104
+ * @param {Function} [callback] callback function invoked after parsing
105
+ */
106
+ static fromElement(element: SVGElement, callback: (line: Line) => any): void;
107
+ /**
108
+ * Returns Line instance from an object representation
109
+ * @static
110
+ * @memberOf Line
111
+ * @param {Object} object Object to create an instance from
112
+ * @returns {Promise<Line>}
113
+ */
114
+ static fromObject({ x1, y1, x2, y2, ...object }: Record<string, any>): Promise<import("./Object/Object").FabricObject<import("../EventTypeDefs").ObjectEvents>>;
115
+ }
116
+ export declare const lineDefaultValues: Partial<TClassProperties<Line>>;
117
+ //# sourceMappingURL=Line.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { TColorArg } from '../../color/Color';
2
+ import { ObjectEvents } from '../../EventTypeDefs';
3
+ import { TAnimation } from '../../util/animation/animate';
4
+ import type { AnimationOptions } from '../../util/animation/types';
5
+ import { StackedObject } from './StackedObject';
6
+ export declare abstract class AnimatableObject<EventSpec extends ObjectEvents = ObjectEvents> extends StackedObject<EventSpec> {
7
+ /**
8
+ * List of properties to consider for animating colors.
9
+ * @type String[]
10
+ */
11
+ colorProperties: string[];
12
+ /**
13
+ * Animates object's properties
14
+ * @param {Record<string, number | number[] | TColorArg>} animatable map of keys and end values
15
+ * @param {Partial<AnimationOptions<T>>} options
16
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#animation}
17
+ * @return {Record<string, TAnimation<T>>} map of animation contexts
18
+ *
19
+ * As object — multiple properties
20
+ *
21
+ * object.animate({ left: ..., top: ... });
22
+ * object.animate({ left: ..., top: ... }, { duration: ... });
23
+ */
24
+ animate<T extends number | number[] | TColorArg>(animatable: Record<string, T>, options?: Partial<AnimationOptions<T>>): Record<string, TAnimation<T>>;
25
+ /**
26
+ * @private
27
+ * @param {String} key Property to animate
28
+ * @param {String} to Value to animate to
29
+ * @param {Object} [options] Options object
30
+ */
31
+ _animate<T extends number | number[] | TColorArg>(key: string, endValue: T, options?: Partial<AnimationOptions<T>>): TAnimation<T>;
32
+ }
33
+ //# sourceMappingURL=AnimatableObject.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { ObjectEvents } from '../../EventTypeDefs';
2
+ import { FabricObjectSVGExportMixin } from './FabricObjectSVGExportMixin';
3
+ import { InteractiveFabricObject } from './InteractiveObject';
4
+ export interface FabricObject<EventSpec extends ObjectEvents = ObjectEvents> extends FabricObjectSVGExportMixin {
5
+ }
6
+ export declare class FabricObject<EventSpec extends ObjectEvents = ObjectEvents> extends InteractiveFabricObject<EventSpec> {
7
+ }
8
+ export { cacheProperties, stateProperties } from './defaultValues';
9
+ //# sourceMappingURL=FabricObject.d.ts.map