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,195 @@
1
+ import { TPointerEvent } from '../../EventTypeDefs';
2
+ import { ITextBehavior, ITextEvents } from './ITextBehavior';
3
+ import type { TKeyMapIText } from './constants';
4
+ import { TProps } from '../Object/types';
5
+ import { TextProps, SerializedTextProps } from '../Text/Text';
6
+ export declare abstract class ITextKeyBehavior<Props extends TProps<TextProps> = Partial<TextProps>, SProps extends SerializedTextProps = SerializedTextProps, EventSpec extends ITextEvents = ITextEvents> extends ITextBehavior<Props, SProps, EventSpec> {
7
+ /**
8
+ * For functionalities on keyDown
9
+ * Map a special key to a function of the instance/prototype
10
+ * If you need different behavior for ESC or TAB or arrows, you have to change
11
+ * this map setting the name of a function that you build on the IText or
12
+ * your prototype.
13
+ * the map change will affect all Instances unless you need for only some text Instances
14
+ * in that case you have to clone this object and assign your Instance.
15
+ * this.keysMap = Object.assign({}, this.keysMap);
16
+ * The function must be in IText.prototype.myFunction And will receive event as args[0]
17
+ */
18
+ keysMap: TKeyMapIText;
19
+ keysMapRtl: TKeyMapIText;
20
+ /**
21
+ * For functionalities on keyUp + ctrl || cmd
22
+ */
23
+ ctrlKeysMapUp: TKeyMapIText;
24
+ /**
25
+ * For functionalities on keyDown + ctrl || cmd
26
+ */
27
+ ctrlKeysMapDown: TKeyMapIText;
28
+ hiddenTextarea: HTMLTextAreaElement | null;
29
+ /**
30
+ * DOM container to append the hiddenTextarea.
31
+ * An alternative to attaching to the document.body.
32
+ * Useful to reduce laggish redraw of the full document.body tree and
33
+ * also with modals event capturing that won't let the textarea take focus.
34
+ * @type HTMLElement
35
+ * @default
36
+ */
37
+ hiddenTextareaContainer?: HTMLElement | null;
38
+ private _clickHandlerInitialized;
39
+ private _copyDone;
40
+ private fromPaste;
41
+ /**
42
+ * Initializes hidden textarea (needed to bring up keyboard in iOS)
43
+ */
44
+ initHiddenTextarea(): void;
45
+ onClick(): void;
46
+ /**
47
+ * Override this method to customize cursor behavior on textbox blur
48
+ */
49
+ blur(): void;
50
+ /**
51
+ * Handles keydown event
52
+ * only used for arrows and combination of modifier keys.
53
+ * @param {KeyboardEvent} e Event object
54
+ */
55
+ onKeyDown(e: KeyboardEvent): void;
56
+ /**
57
+ * Handles keyup event
58
+ * We handle KeyUp because ie11 and edge have difficulties copy/pasting
59
+ * if a copy/cut event fired, keyup is dismissed
60
+ * @param {KeyboardEvent} e Event object
61
+ */
62
+ onKeyUp(e: KeyboardEvent): void;
63
+ /**
64
+ * Handles onInput event
65
+ * @param {Event} e Event object
66
+ */
67
+ onInput(e: Event): void;
68
+ /**
69
+ * Composition start
70
+ */
71
+ onCompositionStart(): void;
72
+ /**
73
+ * Composition end
74
+ */
75
+ onCompositionEnd(): void;
76
+ onCompositionUpdate(e: any): void;
77
+ /**
78
+ * Copies selected text
79
+ */
80
+ copy(): void;
81
+ /**
82
+ * Pastes text
83
+ */
84
+ paste(): void;
85
+ /**
86
+ * Finds the width in pixels before the cursor on the same line
87
+ * @private
88
+ * @param {Number} lineIndex
89
+ * @param {Number} charIndex
90
+ * @return {Number} widthBeforeCursor width before cursor
91
+ */
92
+ _getWidthBeforeCursor(lineIndex: number, charIndex: number): number;
93
+ /**
94
+ * Gets start offset of a selection
95
+ * @param {TPointerEvent} e Event object
96
+ * @param {Boolean} isRight
97
+ * @return {Number}
98
+ */
99
+ getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number;
100
+ /**
101
+ * private
102
+ * Helps finding if the offset should be counted from Start or End
103
+ * @param {KeyboardEvent} e Event object
104
+ * @param {Boolean} isRight
105
+ * @return {Number}
106
+ */
107
+ _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number;
108
+ /**
109
+ * @param {KeyboardEvent} e Event object
110
+ * @param {Boolean} isRight
111
+ * @return {Number}
112
+ */
113
+ getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number;
114
+ /**
115
+ * for a given width it founds the matching character.
116
+ * @private
117
+ */
118
+ _getIndexOnLine(lineIndex: number, width: number): number;
119
+ /**
120
+ * Moves cursor down
121
+ * @param {TPointerEvent} e Event object
122
+ */
123
+ moveCursorDown(e: TPointerEvent): void;
124
+ /**
125
+ * Moves cursor up
126
+ * @param {TPointerEvent} e Event object
127
+ */
128
+ moveCursorUp(e: TPointerEvent): void;
129
+ /**
130
+ * Moves cursor up or down, fires the events
131
+ * @param {String} direction 'Up' or 'Down'
132
+ * @param {TPointerEvent} e Event object
133
+ */
134
+ _moveCursorUpOrDown(direction: 'Up' | 'Down', e: TPointerEvent): void;
135
+ /**
136
+ * Moves cursor with shift
137
+ * @param {Number} offset
138
+ */
139
+ moveCursorWithShift(offset: number): boolean;
140
+ /**
141
+ * Moves cursor up without shift
142
+ * @param {Number} offset
143
+ */
144
+ moveCursorWithoutShift(offset: number): boolean;
145
+ /**
146
+ * Moves cursor left
147
+ * @param {TPointerEvent} e Event object
148
+ */
149
+ moveCursorLeft(e: TPointerEvent): void;
150
+ /**
151
+ * @private
152
+ * @return {Boolean} true if a change happened
153
+ */
154
+ _move(e: any, prop: any, direction: any): boolean;
155
+ /**
156
+ * @private
157
+ */
158
+ _moveLeft(e: any, prop: any): boolean;
159
+ /**
160
+ * @private
161
+ */
162
+ _moveRight(e: any, prop: any): boolean;
163
+ /**
164
+ * Moves cursor left without keeping selection
165
+ * @param {TPointerEvent} e
166
+ */
167
+ moveCursorLeftWithoutShift(e: TPointerEvent): boolean;
168
+ /**
169
+ * Moves cursor left while keeping selection
170
+ * @param {TPointerEvent} e
171
+ */
172
+ moveCursorLeftWithShift(e: TPointerEvent): boolean | undefined;
173
+ /**
174
+ * Moves cursor right
175
+ * @param {TPointerEvent} e Event object
176
+ */
177
+ moveCursorRight(e: TPointerEvent): void;
178
+ /**
179
+ * Moves cursor right or Left, fires event
180
+ * @param {String} direction 'Left', 'Right'
181
+ * @param {TPointerEvent} e Event object
182
+ */
183
+ _moveCursorLeftOrRight(direction: string, e: TPointerEvent): void;
184
+ /**
185
+ * Moves cursor right while keeping selection
186
+ * @param {TPointerEvent} e
187
+ */
188
+ moveCursorRightWithShift(e: TPointerEvent): boolean | undefined;
189
+ /**
190
+ * Moves cursor right without keeping selection
191
+ * @param {TPointerEvent} e Event object
192
+ */
193
+ moveCursorRightWithoutShift(e: TPointerEvent): boolean;
194
+ }
195
+ //# 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,311 @@
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
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
6
+ import type { ObjectEvents } from '../EventTypeDefs';
7
+ export type ImageSource = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement;
8
+ interface UniqueImageProps {
9
+ srcFromAttribute: boolean;
10
+ minimumScaleTrigger: number;
11
+ cropX: number;
12
+ cropY: number;
13
+ imageSmoothing: boolean;
14
+ crossOrigin: string | null;
15
+ filters: BaseFilter[];
16
+ resizeFilter?: BaseFilter;
17
+ }
18
+ export declare const imageDefaultValues: Partial<UniqueImageProps> & Partial<FabricObjectProps>;
19
+ export interface SerializedImageProps extends SerializedObjectProps {
20
+ src: string;
21
+ crossOrigin: string | null;
22
+ filters: any[];
23
+ resizeFilter?: any;
24
+ cropX: number;
25
+ cropY: number;
26
+ }
27
+ export interface ImageProps extends FabricObjectProps, UniqueImageProps {
28
+ }
29
+ /**
30
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#images}
31
+ */
32
+ export declare class Image<Props extends TProps<ImageProps> = Partial<ImageProps>, SProps extends SerializedImageProps = SerializedImageProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> implements ImageProps {
33
+ /**
34
+ * When calling {@link Image.getSrc}, return value from element src with `element.getAttribute('src')`.
35
+ * This allows for relative urls as image src.
36
+ * @since 2.7.0
37
+ * @type Boolean
38
+ * @default false
39
+ */
40
+ srcFromAttribute: boolean;
41
+ /**
42
+ * private
43
+ * contains last value of scaleX to detect
44
+ * if the Image got resized after the last Render
45
+ * @type Number
46
+ */
47
+ protected _lastScaleX: number;
48
+ /**
49
+ * private
50
+ * contains last value of scaleY to detect
51
+ * if the Image got resized after the last Render
52
+ * @type Number
53
+ */
54
+ protected _lastScaleY: number;
55
+ /**
56
+ * private
57
+ * contains last value of scaling applied by the apply filter chain
58
+ * @type Number
59
+ */
60
+ protected _filterScalingX: number;
61
+ /**
62
+ * private
63
+ * contains last value of scaling applied by the apply filter chain
64
+ * @type Number
65
+ */
66
+ protected _filterScalingY: number;
67
+ /**
68
+ * minimum scale factor under which any resizeFilter is triggered to resize the image
69
+ * 0 will disable the automatic resize. 1 will trigger automatically always.
70
+ * number bigger than 1 are not implemented yet.
71
+ * @type Number
72
+ */
73
+ minimumScaleTrigger: number;
74
+ /**
75
+ * key used to retrieve the texture representing this image
76
+ * @since 2.0.0
77
+ * @type String
78
+ * @default
79
+ */
80
+ cacheKey: string;
81
+ /**
82
+ * Image crop in pixels from original image size.
83
+ * @since 2.0.0
84
+ * @type Number
85
+ * @default
86
+ */
87
+ cropX: number;
88
+ /**
89
+ * Image crop in pixels from original image size.
90
+ * @since 2.0.0
91
+ * @type Number
92
+ * @default
93
+ */
94
+ cropY: number;
95
+ /**
96
+ * Indicates whether this canvas will use image smoothing when painting this image.
97
+ * Also influence if the cacheCanvas for this image uses imageSmoothing
98
+ * @since 4.0.0-beta.11
99
+ * @type Boolean
100
+ * @default
101
+ */
102
+ imageSmoothing: boolean;
103
+ preserveAspectRatio: string;
104
+ protected src: string;
105
+ filters: BaseFilter[];
106
+ resizeFilter: BaseFilter;
107
+ protected _element: ImageSource;
108
+ protected _originalElement: ImageSource;
109
+ protected _filteredEl: ImageSource;
110
+ static cacheProperties: string[];
111
+ static ownDefaults: Record<string, any>;
112
+ static getDefaults(): {
113
+ [x: string]: any;
114
+ };
115
+ /**
116
+ * Constructor
117
+ * Image can be initialized with any canvas drawable or a string.
118
+ * The string should be a url and will be loaded as an image.
119
+ * Canvas and Image element work out of the box, while videos require extra code to work.
120
+ * Please check video element events for seeking.
121
+ * @param {ImageSource | string} element Image element
122
+ * @param {Object} [options] Options object
123
+ */
124
+ constructor(elementId: string, options: Props);
125
+ constructor(element: ImageSource, options: Props);
126
+ /**
127
+ * Returns image element which this instance if based on
128
+ */
129
+ getElement(): ImageSource;
130
+ /**
131
+ * Sets image element for this instance to a specified one.
132
+ * If filters defined they are applied to new image.
133
+ * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area.
134
+ * @param {HTMLImageElement} element
135
+ * @param {Partial<TSize>} [size] Options object
136
+ */
137
+ setElement(element: ImageSource, size?: Partial<TSize>): void;
138
+ /**
139
+ * Delete a single texture if in webgl mode
140
+ */
141
+ removeTexture(key: string): void;
142
+ /**
143
+ * Delete textures, reference to elements and eventually JSDOM cleanup
144
+ */
145
+ dispose(): void;
146
+ /**
147
+ * Get the crossOrigin value (of the corresponding image element)
148
+ */
149
+ getCrossOrigin(): string | null;
150
+ /**
151
+ * Returns original size of an image
152
+ */
153
+ getOriginalSize(): {
154
+ width: any;
155
+ height: any;
156
+ };
157
+ /**
158
+ * @private
159
+ * @param {CanvasRenderingContext2D} ctx Context to render on
160
+ */
161
+ _stroke(ctx: CanvasRenderingContext2D): void;
162
+ /**
163
+ * Returns object representation of an instance
164
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
165
+ * @return {Object} Object representation of an instance
166
+ */
167
+ toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
168
+ /**
169
+ * Returns true if an image has crop applied, inspecting values of cropX,cropY,width,height.
170
+ * @return {Boolean}
171
+ */
172
+ hasCrop(): boolean;
173
+ /**
174
+ * Returns svg representation of an instance
175
+ * @return {string[]} an array of strings with the specific svg representation
176
+ * of the instance
177
+ */
178
+ _toSVG(): string[];
179
+ /**
180
+ * Returns source of an image
181
+ * @param {Boolean} filtered indicates if the src is needed for svg
182
+ * @return {String} Source of an image
183
+ */
184
+ getSrc(filtered?: boolean): string;
185
+ /**
186
+ * Alias for getSrc
187
+ * @param filtered
188
+ * @deprecated
189
+ */
190
+ getSvgSrc(filtered?: boolean): string;
191
+ /**
192
+ * Loads and sets source of an image\
193
+ * **IMPORTANT**: It is recommended to abort loading tasks before calling this method to prevent race conditions and unnecessary networking
194
+ * @param {String} src Source string (URL)
195
+ * @param {LoadImageOptions} [options] Options object
196
+ */
197
+ setSrc(src: string, { crossOrigin, signal }?: LoadImageOptions): Promise<void>;
198
+ /**
199
+ * Returns string representation of an instance
200
+ * @return {String} String representation of an instance
201
+ */
202
+ toString(): string;
203
+ applyResizeFilters(): void;
204
+ /**
205
+ * Applies filters assigned to this image (from "filters" array) or from filter param
206
+ * @method applyFilters
207
+ * @param {Array} filters to be applied
208
+ * @param {Boolean} forResizing specify if the filter operation is a resize operation
209
+ */
210
+ applyFilters(filters?: BaseFilter[]): void;
211
+ /**
212
+ * @private
213
+ * @param {CanvasRenderingContext2D} ctx Context to render on
214
+ */
215
+ _render(ctx: CanvasRenderingContext2D): void;
216
+ /**
217
+ * Paint the cached copy of the object on the target context.
218
+ * it will set the imageSmoothing for the draw operation
219
+ * @param {CanvasRenderingContext2D} ctx Context to render on
220
+ */
221
+ drawCacheOnCanvas(ctx: CanvasRenderingContext2D): void;
222
+ /**
223
+ * Decide if the object should cache or not. Create its own cache level
224
+ * needsItsOwnCache should be used when the object drawing method requires
225
+ * a cache step. None of the fabric classes requires it.
226
+ * Generally you do not cache objects in groups because the group outside is cached.
227
+ * This is the special image version where we would like to avoid caching where possible.
228
+ * Essentially images do not benefit from caching. They may require caching, and in that
229
+ * case we do it. Also caching an image usually ends in a loss of details.
230
+ * A full performance audit should be done.
231
+ * @return {Boolean}
232
+ */
233
+ shouldCache(): boolean;
234
+ _renderFill(ctx: CanvasRenderingContext2D): void;
235
+ /**
236
+ * needed to check if image needs resize
237
+ * @private
238
+ */
239
+ _needsResize(): boolean;
240
+ /**
241
+ * @private
242
+ * @deprecated unused
243
+ */
244
+ _resetWidthHeight(): void;
245
+ /**
246
+ * @private
247
+ * Set the width and the height of the image object, using the element or the
248
+ * options.
249
+ */
250
+ _setWidthHeight({ width, height }?: Partial<TSize>): void;
251
+ /**
252
+ * Calculate offset for center and scale factor for the image in order to respect
253
+ * the preserveAspectRatio attribute
254
+ * @private
255
+ */
256
+ parsePreserveAspectRatioAttribute(): {
257
+ width: number;
258
+ height: number;
259
+ scaleX: number;
260
+ scaleY: number;
261
+ offsetLeft: number;
262
+ offsetTop: number;
263
+ cropX: number;
264
+ cropY: number;
265
+ };
266
+ /**
267
+ * Default CSS class name for canvas
268
+ * @static
269
+ * @type String
270
+ * @default
271
+ */
272
+ static CSS_CANVAS: string;
273
+ /**
274
+ * List of attribute names to account for when parsing SVG element (used by {@link Image.fromElement})
275
+ * @static
276
+ * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement}
277
+ */
278
+ static ATTRIBUTE_NAMES: string[];
279
+ /**
280
+ * Creates an instance of Image from its object representation
281
+ * @static
282
+ * @param {Object} object Object to create an instance from
283
+ * @param {object} [options] Options object
284
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
285
+ * @returns {Promise<Image>}
286
+ */
287
+ static fromObject<T extends TProps<SerializedImageProps>>({ filters: f, resizeFilter: rf, src, crossOrigin, ...object }: T, options: {
288
+ signal: AbortSignal;
289
+ }): Promise<Image<TProps<ImageProps>, SerializedImageProps, ObjectEvents>>;
290
+ /**
291
+ * Creates an instance of Image from an URL string
292
+ * @static
293
+ * @param {String} url URL to create an image from
294
+ * @param {LoadImageOptions} [options] Options object
295
+ * @returns {Promise<Image>}
296
+ */
297
+ static fromURL<T extends TProps<SerializedImageProps>>(url: string, options?: T & LoadImageOptions): Promise<Image>;
298
+ /**
299
+ * Returns {@link Image} instance from an SVG element
300
+ * @static
301
+ * @param {SVGElement} element Element to parse
302
+ * @param {Object} [options] Options object
303
+ * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
304
+ * @param {Function} callback Callback to execute when Image object is created
305
+ */
306
+ static fromElement(element: SVGElement, callback: (image: Image) => any, options?: {
307
+ signal?: AbortSignal;
308
+ }): void;
309
+ }
310
+ export {};
311
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1,126 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { FabricObject } from './Object/FabricObject';
3
+ import { Point } from '../Point';
4
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
5
+ import type { ObjectEvents } from '../EventTypeDefs';
6
+ interface UniqueLineProps {
7
+ x1: number;
8
+ x2: number;
9
+ y1: number;
10
+ y2: number;
11
+ }
12
+ export interface SerializedLineProps extends SerializedObjectProps, UniqueLineProps {
13
+ }
14
+ export declare class Line<Props extends TProps<FabricObjectProps> = Partial<FabricObjectProps>, SProps extends SerializedLineProps = SerializedLineProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> implements UniqueLineProps {
15
+ /**
16
+ * x value or first line edge
17
+ * @type number
18
+ * @default
19
+ */
20
+ x1: number;
21
+ /**
22
+ * y value or first line edge
23
+ * @type number
24
+ * @default
25
+ */
26
+ y1: number;
27
+ /**
28
+ * x value or second line edge
29
+ * @type number
30
+ * @default
31
+ */
32
+ x2: number;
33
+ /**
34
+ * y value or second line edge
35
+ * @type number
36
+ * @default
37
+ */
38
+ y2: number;
39
+ static cacheProperties: string[];
40
+ /**
41
+ * Constructor
42
+ * @param {Array} [points] Array of points
43
+ * @param {Object} [options] Options object
44
+ * @return {Line} thisArg
45
+ */
46
+ constructor(points?: number[], options?: Props);
47
+ /**
48
+ * @private
49
+ * @param {Object} [options] Options
50
+ */
51
+ _setWidthHeight({ left, top }?: Partial<Props>): void;
52
+ /**
53
+ * @private
54
+ * @param {String} key
55
+ * @param {*} value
56
+ */
57
+ _set(key: string, value: any): this;
58
+ /**
59
+ * @private
60
+ * @param {CanvasRenderingContext2D} ctx Context to render on
61
+ */
62
+ _render(ctx: CanvasRenderingContext2D): void;
63
+ /**
64
+ * This function is an helper for svg import. it returns the center of the object in the svg
65
+ * untransformed coordinates
66
+ * @private
67
+ * @return {Point} center point from element coordinates
68
+ */
69
+ _findCenterFromElement(): Point;
70
+ /**
71
+ * Returns object representation of an instance
72
+ * @method toObject
73
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
74
+ * @return {Object} object representation of an instance
75
+ */
76
+ toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
77
+ _getNonTransformedDimensions(): Point;
78
+ /**
79
+ * Recalculates line points given width and height
80
+ * @private
81
+ */
82
+ calcLinePoints(): UniqueLineProps;
83
+ private makeEdgeToOriginGetter;
84
+ /**
85
+ * @private
86
+ * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.
87
+ */
88
+ _getLeftToOriginX(): number;
89
+ /**
90
+ * @private
91
+ * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.
92
+ */
93
+ _getTopToOriginY(): number;
94
+ /**
95
+ * Returns svg representation of an instance
96
+ * @return {Array} an array of strings with the specific svg representation
97
+ * of the instance
98
+ */
99
+ _toSVG(): (string | number)[];
100
+ /**
101
+ * List of attribute names to account for when parsing SVG element (used by {@link Line.fromElement})
102
+ * @static
103
+ * @memberOf Line
104
+ * @see http://www.w3.org/TR/SVG/shapes.html#LineElement
105
+ */
106
+ static ATTRIBUTE_NAMES: string[];
107
+ /**
108
+ * Returns Line instance from an SVG element
109
+ * @static
110
+ * @memberOf Line
111
+ * @param {SVGElement} element Element to parse
112
+ * @param {Object} [options] Options object
113
+ * @param {Function} [callback] callback function invoked after parsing
114
+ */
115
+ static fromElement(element: SVGElement, callback: (line: Line) => any): void;
116
+ /**
117
+ * Returns Line instance from an object representation
118
+ * @static
119
+ * @memberOf Line
120
+ * @param {Object} object Object to create an instance from
121
+ * @returns {Promise<Line>}
122
+ */
123
+ static fromObject<T extends TProps<SerializedLineProps>>({ x1, y1, x2, y2, ...object }: T): Promise<Line<Partial<FabricObjectProps>, SerializedLineProps, ObjectEvents>>;
124
+ }
125
+ export {};
126
+ //# 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,11 @@
1
+ import { ObjectEvents } from '../../EventTypeDefs';
2
+ import { FabricObjectSVGExportMixin } from './FabricObjectSVGExportMixin';
3
+ import { InteractiveFabricObject } from './InteractiveObject';
4
+ import { FabricObjectProps } from './types/FabricObjectProps';
5
+ import { TFabricObjectProps, SerializedObjectProps } from './types';
6
+ export interface FabricObject<Props extends TFabricObjectProps = Partial<FabricObjectProps>, SProps extends SerializedObjectProps = SerializedObjectProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObjectSVGExportMixin {
7
+ }
8
+ export declare class FabricObject<Props extends TFabricObjectProps = Partial<FabricObjectProps>, SProps extends SerializedObjectProps = SerializedObjectProps, EventSpec extends ObjectEvents = ObjectEvents> extends InteractiveFabricObject<Props, SProps, EventSpec> {
9
+ }
10
+ export { cacheProperties } from './defaultValues';
11
+ //# sourceMappingURL=FabricObject.d.ts.map