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,7 @@
1
+ import { TClassProperties } from '../../typedefs';
2
+ import type { Text } from './Text';
3
+ export declare const textLayoutProperties: string[];
4
+ export declare const additionalProps: readonly [...string[], "underline", "overline", "linethrough", "textBackgroundColor", "direction"];
5
+ export declare const styleProperties: readonly ["fontSize", "fontWeight", "fontFamily", "fontStyle", "underline", "overline", "linethrough", "stroke", "strokeWidth", "fill", "deltaY", "textBackgroundColor"];
6
+ export declare const textDefaultValues: Partial<TClassProperties<Text>>;
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,185 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { IText } from './IText/IText';
3
+ export declare const textboxDefaultValues: Partial<TClassProperties<Textbox>>;
4
+ /**
5
+ * Textbox class, based on IText, allows the user to resize the text rectangle
6
+ * and wraps lines automatically. Textboxes have their Y scaling locked, the
7
+ * user can only change width. Height is adjusted automatically based on the
8
+ * wrapping of lines.
9
+ */
10
+ export declare class Textbox extends IText {
11
+ /**
12
+ * Minimum width of textbox, in pixels.
13
+ * @type Number
14
+ * @default
15
+ */
16
+ minWidth: number;
17
+ /**
18
+ * Minimum calculated width of a textbox, in pixels.
19
+ * fixed to 2 so that an empty textbox cannot go to 0
20
+ * and is still selectable without text.
21
+ * @type Number
22
+ * @default
23
+ */
24
+ dynamicMinWidth: number;
25
+ /**
26
+ * Use this boolean property in order to split strings that have no white space concept.
27
+ * this is a cheap way to help with chinese/japanese
28
+ * @type Boolean
29
+ * @since 2.6.0
30
+ */
31
+ splitByGrapheme: boolean;
32
+ static textLayoutProperties: string[];
33
+ static ownDefaults: Record<string, any>;
34
+ static getDefaults(): {
35
+ controls: {
36
+ mr: import("../..").Control;
37
+ ml: import("../..").Control;
38
+ mb: import("../..").Control;
39
+ mt: import("../..").Control;
40
+ tl: import("../..").Control;
41
+ tr: import("../..").Control;
42
+ bl: import("../..").Control;
43
+ br: import("../..").Control;
44
+ mtr: import("../..").Control;
45
+ };
46
+ };
47
+ /**
48
+ * Unlike superclass's version of this function, Textbox does not update
49
+ * its width.
50
+ * @private
51
+ * @override
52
+ */
53
+ initDimensions(): void;
54
+ /**
55
+ * Generate an object that translates the style object so that it is
56
+ * broken up by visual lines (new lines and automatic wrapping).
57
+ * The original text styles object is broken up by actual lines (new lines only),
58
+ * which is only sufficient for Text / IText
59
+ * @private
60
+ */
61
+ _generateStyleMap(textInfo: any): {};
62
+ /**
63
+ * Returns true if object has a style property or has it on a specified line
64
+ * @param {Number} lineIndex
65
+ * @return {Boolean}
66
+ */
67
+ styleHas(property: any, lineIndex: number): boolean;
68
+ /**
69
+ * Returns true if object has no styling or no styling in a line
70
+ * @param {Number} lineIndex , lineIndex is on wrapped lines.
71
+ * @return {Boolean}
72
+ */
73
+ isEmptyStyles(lineIndex: number): boolean;
74
+ /**
75
+ * @param {Number} lineIndex
76
+ * @param {Number} charIndex
77
+ * @private
78
+ */
79
+ _getStyleDeclaration(lineIndex: number, charIndex: number): import("./Text/StyledText").TextStyleDeclaration | null;
80
+ /**
81
+ * @param {Number} lineIndex
82
+ * @param {Number} charIndex
83
+ * @param {Object} style
84
+ * @private
85
+ */
86
+ _setStyleDeclaration(lineIndex: number, charIndex: number, style: object): void;
87
+ /**
88
+ * @param {Number} lineIndex
89
+ * @param {Number} charIndex
90
+ * @private
91
+ */
92
+ _deleteStyleDeclaration(lineIndex: number, charIndex: number): void;
93
+ /**
94
+ * probably broken need a fix
95
+ * Returns the real style line that correspond to the wrapped lineIndex line
96
+ * Used just to verify if the line does exist or not.
97
+ * @param {Number} lineIndex
98
+ * @returns {Boolean} if the line exists or not
99
+ * @private
100
+ */
101
+ _getLineStyle(lineIndex: number): boolean;
102
+ /**
103
+ * Set the line style to an empty object so that is initialized
104
+ * @param {Number} lineIndex
105
+ * @param {Object} style
106
+ * @private
107
+ */
108
+ _setLineStyle(lineIndex: number): void;
109
+ /**
110
+ * Wraps text using the 'width' property of Textbox. First this function
111
+ * splits text on newlines, so we preserve newlines entered by the user.
112
+ * Then it wraps each line using the width of the Textbox by calling
113
+ * _wrapLine().
114
+ * @param {Array} lines The string array of text that is split into lines
115
+ * @param {Number} desiredWidth width you want to wrap to
116
+ * @returns {Array} Array of lines
117
+ */
118
+ _wrapText(lines: Array<any>, desiredWidth: number): Array<any>;
119
+ /**
120
+ * Helper function to measure a string of text, given its lineIndex and charIndex offset
121
+ * It gets called when charBounds are not available yet.
122
+ * Override if necessary
123
+ * Use with {@link Textbox#wordSplit}
124
+ *
125
+ * @param {CanvasRenderingContext2D} ctx
126
+ * @param {String} text
127
+ * @param {number} lineIndex
128
+ * @param {number} charOffset
129
+ * @returns {number}
130
+ */
131
+ _measureWord(word: any, lineIndex: number, charOffset?: number): number;
132
+ /**
133
+ * Override this method to customize word splitting
134
+ * Use with {@link Textbox#_measureWord}
135
+ * @param {string} value
136
+ * @returns {string[]} array of words
137
+ */
138
+ wordSplit(value: string): string[];
139
+ /**
140
+ * Wraps a line of text using the width of the Textbox and a context.
141
+ * @param {Array} line The grapheme array that represent the line
142
+ * @param {Number} lineIndex
143
+ * @param {Number} desiredWidth width you want to wrap the line to
144
+ * @param {Number} reservedSpace space to remove from wrapping for custom functionalities
145
+ * @returns {Array} Array of line(s) into which the given text is wrapped
146
+ * to.
147
+ */
148
+ _wrapLine(_line: any, lineIndex: number, desiredWidth: number, reservedSpace?: number): Array<any>;
149
+ /**
150
+ * Detect if the text line is ended with an hard break
151
+ * text and itext do not have wrapping, return false
152
+ * @param {Number} lineIndex text to split
153
+ * @return {Boolean}
154
+ */
155
+ isEndOfWrapping(lineIndex: number): boolean;
156
+ /**
157
+ * Detect if a line has a linebreak and so we need to account for it when moving
158
+ * and counting style.
159
+ * @return Number
160
+ */
161
+ missingNewlineOffset(lineIndex: any): 1 | 0;
162
+ /**
163
+ * Gets lines of text to render in the Textbox. This function calculates
164
+ * text wrapping on the fly every time it is called.
165
+ * @param {String} text text to split
166
+ * @returns {Array} Array of lines in the Textbox.
167
+ * @override
168
+ */
169
+ _splitTextIntoLines(text: string): {
170
+ _unwrappedLines: string[][];
171
+ lines: string[];
172
+ graphemeText: string[];
173
+ graphemeLines: string[][];
174
+ };
175
+ getMinWidth(): number;
176
+ _removeExtraneousStyles(): void;
177
+ /**
178
+ * Returns object representation of an instance
179
+ * @method toObject
180
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
181
+ * @return {Object} object representation of an instance
182
+ */
183
+ toObject(propertiesToInclude: Array<any>): object;
184
+ }
185
+ //# sourceMappingURL=Textbox.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { FabricObject } from './Object/FabricObject';
2
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
3
+ import type { ObjectEvents } from '../EventTypeDefs';
4
+ export declare const triangleDefaultValues: {
5
+ width: number;
6
+ height: number;
7
+ };
8
+ export declare class Triangle<Props extends TProps<FabricObjectProps> = Partial<FabricObjectProps>, SProps extends SerializedObjectProps = SerializedObjectProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> implements FabricObjectProps {
9
+ static ownDefaults: Record<string, any>;
10
+ static getDefaults(): {
11
+ [x: string]: any;
12
+ };
13
+ /**
14
+ * @private
15
+ * @param {CanvasRenderingContext2D} ctx Context to render on
16
+ */
17
+ _render(ctx: CanvasRenderingContext2D): void;
18
+ /**
19
+ * Returns svg representation of an instance
20
+ * @return {Array} an array of strings with the specific svg representation
21
+ * of the instance
22
+ */
23
+ _toSVG(): string[];
24
+ }
25
+ //# sourceMappingURL=Triangle.d.ts.map
@@ -0,0 +1,90 @@
1
+ import { BaseFabricObject } from './EventTypeDefs';
2
+ import type { Gradient } from './gradient/Gradient';
3
+ import type { Pattern } from './Pattern';
4
+ import type { XY, Point } from './Point';
5
+ interface NominalTag<T> {
6
+ nominalTag?: T;
7
+ }
8
+ type Nominal<Type, Tag> = NominalTag<Tag> & Type;
9
+ type TNonFunctionPropertyNames<T> = {
10
+ [K in keyof T]: T[K] extends Function ? never : K;
11
+ }[keyof T];
12
+ export type TClassProperties<T> = Pick<T, TNonFunctionPropertyNames<T>>;
13
+ export type Constructor<T = object> = new (...args: any[]) => T;
14
+ declare const enum Degree {
15
+ }
16
+ declare const enum Radian {
17
+ }
18
+ export type TDegree = Nominal<number, Degree>;
19
+ export type TRadian = Nominal<number, Radian>;
20
+ export type TAxis = 'x' | 'y';
21
+ export type TAxisKey<T extends string> = `${T}${Capitalize<TAxis>}`;
22
+ export type TFiller = Gradient<'linear'> | Gradient<'radial'> | Pattern;
23
+ export type TSize = {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ export type TBBox = {
28
+ left: number;
29
+ top: number;
30
+ } & TSize;
31
+ export type Percent = `${number}%`;
32
+ export declare const enum ImageFormat {
33
+ jpeg = "jpeg",
34
+ jpg = "jpeg",
35
+ png = "png"
36
+ }
37
+ export declare const enum SVGElementName {
38
+ linearGradient = "linearGradient",
39
+ radialGradient = "radialGradient",
40
+ stop = "stop"
41
+ }
42
+ export declare const enum SupportedSVGUnit {
43
+ mm = "mm",
44
+ cm = "cm",
45
+ in = "in",
46
+ pt = "pt",
47
+ pc = "pc",
48
+ em = "em"
49
+ }
50
+ export type TMat2D = [number, number, number, number, number, number];
51
+ /**
52
+ * An invalid keyword and an empty string will be handled as the `anonymous` keyword.
53
+ * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes
54
+ */
55
+ export type TCrossOrigin = '' | 'anonymous' | 'use-credentials' | null;
56
+ export type TOriginX = 'center' | 'left' | 'right' | number;
57
+ export type TOriginY = 'center' | 'top' | 'bottom' | number;
58
+ export type TCornerPoint = {
59
+ tl: Point;
60
+ tr: Point;
61
+ bl: Point;
62
+ br: Point;
63
+ };
64
+ export type TSVGReviver = (markup: string) => string;
65
+ export type TValidToObjectMethod = 'toDatalessObject' | 'toObject';
66
+ export type TCacheCanvasDimensions = {
67
+ width: number;
68
+ height: number;
69
+ zoomX: number;
70
+ zoomY: number;
71
+ x: number;
72
+ y: number;
73
+ };
74
+ export type TRectBounds = [min: XY, max: XY];
75
+ export type TToCanvasElementOptions = {
76
+ left?: number;
77
+ top?: number;
78
+ width?: number;
79
+ height?: number;
80
+ filter?: (object: BaseFabricObject) => boolean;
81
+ };
82
+ export type TDataUrlOptions = TToCanvasElementOptions & {
83
+ multiplier: number;
84
+ format?: ImageFormat;
85
+ quality?: number;
86
+ enableRetinaScaling?: boolean;
87
+ };
88
+ export type AssertKeys<T, K extends keyof T> = T & Record<K, NonNullable<T[K]>>;
89
+ export {};
90
+ //# sourceMappingURL=typedefs.d.ts.map
@@ -0,0 +1,54 @@
1
+ import { AnimationState, TBaseAnimationOptions, TEasingFunction } from './types';
2
+ export declare abstract class AnimationBase<T extends number | number[] = number | number[]> {
3
+ readonly startValue: T;
4
+ readonly endValue: T;
5
+ readonly duration: number;
6
+ readonly delay: number;
7
+ protected readonly byValue: T;
8
+ protected readonly easing: TEasingFunction<T>;
9
+ private readonly _onStart;
10
+ private readonly _onChange;
11
+ private readonly _onComplete;
12
+ private readonly _abort;
13
+ /**
14
+ * Used to register the animation to a target object
15
+ * so that it can be cancelled within the object context
16
+ */
17
+ readonly target?: unknown;
18
+ private _state;
19
+ /**
20
+ * Time %, or the ratio of `timeElapsed / duration`
21
+ * @see tick
22
+ */
23
+ durationProgress: number;
24
+ /**
25
+ * Value %, or the ratio of `(currentValue - startValue) / (endValue - startValue)`
26
+ */
27
+ valueProgress: number;
28
+ /**
29
+ * Current value
30
+ */
31
+ value: T;
32
+ /**
33
+ * Animation start time ms
34
+ */
35
+ private startTime;
36
+ constructor({ startValue, byValue, duration, delay, easing, onStart, onChange, onComplete, abort, target, }: TBaseAnimationOptions<T>);
37
+ get state(): AnimationState;
38
+ isDone(): boolean;
39
+ /**
40
+ * Calculate the current value based on the easing parameters
41
+ * @param timeElapsed in ms
42
+ * @protected
43
+ */
44
+ protected abstract calculate(timeElapsed: number): {
45
+ value: T;
46
+ valueProgress: number;
47
+ };
48
+ start(): void;
49
+ private tick;
50
+ private register;
51
+ private unregister;
52
+ abort(): void;
53
+ }
54
+ //# sourceMappingURL=AnimationBase.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare function requestAnimFrame(callback: FrameRequestCallback): number;
2
+ export declare function cancelAnimFrame(handle: number): void;
3
+ //# sourceMappingURL=AnimationFrameProvider.d.ts.map
@@ -0,0 +1,29 @@
1
+ import type { Canvas } from '../../canvas/Canvas';
2
+ import type { AnimationBase } from './AnimationBase';
3
+ /**
4
+ * Array holding all running animations
5
+ */
6
+ declare class AnimationRegistry extends Array<AnimationBase> {
7
+ /**
8
+ * Remove a single animation using an animation context
9
+ * @param {AnimationBase} context
10
+ */
11
+ remove(context: AnimationBase): void;
12
+ /**
13
+ * Cancel all running animations on the next frame
14
+ */
15
+ cancelAll(): AnimationBase<number | number[]>[];
16
+ /**
17
+ * Cancel all running animations attached to a Canvas on the next frame
18
+ * @param {Canvas} canvas
19
+ */
20
+ cancelByCanvas(canvas: Canvas): AnimationBase<number | number[]>[];
21
+ /**
22
+ * Cancel all running animations for target on the next frame
23
+ * @param target
24
+ */
25
+ cancelByTarget(target: AnimationBase['target']): AnimationBase<number | number[]>[];
26
+ }
27
+ export declare const runningAnimations: AnimationRegistry;
28
+ export {};
29
+ //# sourceMappingURL=AnimationRegistry.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { AnimationBase } from './AnimationBase';
2
+ import { ArrayAnimationOptions } from './types';
3
+ export declare class ArrayAnimation extends AnimationBase<number[]> {
4
+ constructor({ startValue, endValue, ...options }: ArrayAnimationOptions);
5
+ protected calculate(timeElapsed: number): {
6
+ value: number[];
7
+ valueProgress: number;
8
+ };
9
+ }
10
+ //# sourceMappingURL=ArrayAnimation.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { TRGBAColorSource } from '../../color/Color';
2
+ import { AnimationBase } from './AnimationBase';
3
+ import type { ColorAnimationOptions } from './types';
4
+ export declare class ColorAnimation extends AnimationBase<TRGBAColorSource> {
5
+ constructor({ startValue, endValue, easing, onChange, onComplete, abort, ...options }: ColorAnimationOptions);
6
+ protected calculate(timeElapsed: number): {
7
+ value: TRGBAColorSource;
8
+ valueProgress: number;
9
+ };
10
+ }
11
+ //# sourceMappingURL=ColorAnimation.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { AnimationBase } from './AnimationBase';
2
+ import { ValueAnimationOptions } from './types';
3
+ export declare class ValueAnimation extends AnimationBase<number> {
4
+ constructor({ startValue, endValue, ...otherOptions }: ValueAnimationOptions);
5
+ protected calculate(timeElapsed: number): {
6
+ value: number;
7
+ valueProgress: number;
8
+ };
9
+ }
10
+ //# sourceMappingURL=ValueAnimation.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { ValueAnimation } from './ValueAnimation';
2
+ import { ArrayAnimation } from './ArrayAnimation';
3
+ import { ColorAnimation } from './ColorAnimation';
4
+ import { ValueAnimationOptions, ArrayAnimationOptions, ColorAnimationOptions } from './types';
5
+ import { TColorArg } from '../../color/Color';
6
+ export type TAnimation<T extends number | number[] | TColorArg> = T extends TColorArg ? ColorAnimation : T extends number[] ? ArrayAnimation : ValueAnimation;
7
+ /**
8
+ * Changes value(s) from startValue to endValue within a certain period of time,
9
+ * invoking callbacks as the value(s) change.
10
+ *
11
+ * @example
12
+ * animate({
13
+ * startValue: 1,
14
+ * endValue: 0,
15
+ * onChange: (v) => {
16
+ * obj.set('opacity', v);
17
+ * // since we are running in a requested frame we should call `renderAll` and not `requestRenderAll`
18
+ * canvas.renderAll();
19
+ * }
20
+ * });
21
+ *
22
+ * @example Using lists:
23
+ * animate({
24
+ * startValue: [1, 2, 3],
25
+ * endValue: [2, 4, 6],
26
+ * onChange: ([x, y, zoom]) => {
27
+ * canvas.zoomToPoint(new Point(x, y), zoom);
28
+ * canvas.renderAll();
29
+ * }
30
+ * });
31
+ *
32
+ */
33
+ export declare function animate(options: ArrayAnimationOptions): ArrayAnimation;
34
+ export declare function animate(options: ValueAnimationOptions): ValueAnimation;
35
+ export declare function animate<T extends ValueAnimationOptions | ArrayAnimationOptions>(options: T): T extends ArrayAnimationOptions ? ArrayAnimation : ValueAnimation;
36
+ export declare function animateColor(options: ColorAnimationOptions): ColorAnimation;
37
+ //# sourceMappingURL=animate.d.ts.map
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Easing functions
3
+ * @see {@link http://gizma.com/easing/ Easing Equations by Robert Penner}
4
+ */
5
+ import { TEasingFunction } from './types';
6
+ /**
7
+ * Default sinusoidal easing
8
+ */
9
+ export declare const defaultEasing: TEasingFunction;
10
+ /**
11
+ * Cubic easing in
12
+ */
13
+ export declare const easeInCubic: TEasingFunction;
14
+ /**
15
+ * Cubic easing out
16
+ */
17
+ export declare const easeOutCubic: TEasingFunction;
18
+ /**
19
+ * Cubic easing in and out
20
+ */
21
+ export declare const easeInOutCubic: TEasingFunction;
22
+ /**
23
+ * Quartic easing in
24
+ */
25
+ export declare const easeInQuart: TEasingFunction;
26
+ /**
27
+ * Quartic easing out
28
+ */
29
+ export declare const easeOutQuart: TEasingFunction;
30
+ /**
31
+ * Quartic easing in and out
32
+ */
33
+ export declare const easeInOutQuart: TEasingFunction;
34
+ /**
35
+ * Quintic easing in
36
+ */
37
+ export declare const easeInQuint: TEasingFunction;
38
+ /**
39
+ * Quintic easing out
40
+ */
41
+ export declare const easeOutQuint: TEasingFunction;
42
+ /**
43
+ * Quintic easing in and out
44
+ */
45
+ export declare const easeInOutQuint: TEasingFunction;
46
+ /**
47
+ * Sinusoidal easing in
48
+ */
49
+ export declare const easeInSine: TEasingFunction;
50
+ /**
51
+ * Sinusoidal easing out
52
+ */
53
+ export declare const easeOutSine: TEasingFunction;
54
+ /**
55
+ * Sinusoidal easing in and out
56
+ */
57
+ export declare const easeInOutSine: TEasingFunction;
58
+ /**
59
+ * Exponential easing in
60
+ */
61
+ export declare const easeInExpo: TEasingFunction;
62
+ /**
63
+ * Exponential easing out
64
+ */
65
+ export declare const easeOutExpo: TEasingFunction;
66
+ /**
67
+ * Exponential easing in and out
68
+ */
69
+ export declare const easeInOutExpo: TEasingFunction;
70
+ /**
71
+ * Circular easing in
72
+ */
73
+ export declare const easeInCirc: TEasingFunction;
74
+ /**
75
+ * Circular easing out
76
+ */
77
+ export declare const easeOutCirc: TEasingFunction;
78
+ /**
79
+ * Circular easing in and out
80
+ */
81
+ export declare const easeInOutCirc: TEasingFunction;
82
+ /**
83
+ * Elastic easing in
84
+ */
85
+ export declare const easeInElastic: TEasingFunction;
86
+ /**
87
+ * Elastic easing out
88
+ */
89
+ export declare const easeOutElastic: TEasingFunction;
90
+ /**
91
+ * Elastic easing in and out
92
+ */
93
+ export declare const easeInOutElastic: TEasingFunction;
94
+ /**
95
+ * Backwards easing in
96
+ */
97
+ export declare const easeInBack: TEasingFunction;
98
+ /**
99
+ * Backwards easing out
100
+ */
101
+ export declare const easeOutBack: TEasingFunction;
102
+ /**
103
+ * Backwards easing in and out
104
+ */
105
+ export declare const easeInOutBack: TEasingFunction;
106
+ /**
107
+ * Bouncing easing out
108
+ */
109
+ export declare const easeOutBounce: TEasingFunction;
110
+ /**
111
+ * Bouncing easing in
112
+ */
113
+ export declare const easeInBounce: TEasingFunction;
114
+ /**
115
+ * Bouncing easing in and out
116
+ */
117
+ export declare const easeInOutBounce: TEasingFunction;
118
+ /**
119
+ * Quadratic easing in
120
+ */
121
+ export declare const easeInQuad: TEasingFunction;
122
+ /**
123
+ * Quadratic easing out
124
+ */
125
+ export declare const easeOutQuad: TEasingFunction;
126
+ /**
127
+ * Quadratic easing in and out
128
+ */
129
+ export declare const easeInOutQuad: TEasingFunction;
130
+ //# sourceMappingURL=easing.d.ts.map
@@ -0,0 +1,87 @@
1
+ import { TColorArg } from '../../color/Color';
2
+ export type AnimationState = 'pending' | 'running' | 'completed' | 'aborted';
3
+ /**
4
+ * Callback called every frame
5
+ * @param {number | number[]} value current value of the animation.
6
+ * @param {number} valueProgress ∈ [0, 1], the current animation progress reflected on value, normalized.
7
+ * 0 is the starting value and 1 is the ending value.
8
+ * @param {number} durationProgress ∈ [0, 1], the current animation duration normalized to 1.
9
+ */
10
+ export type TOnAnimationChangeCallback<T, R = void> = (value: T, valueProgress: number, durationProgress: number) => R;
11
+ /**
12
+ * Called on each step to determine if animation should abort
13
+ * @returns truthy if animation should abort
14
+ */
15
+ export type TAbortCallback<T> = TOnAnimationChangeCallback<T, boolean>;
16
+ /**
17
+ * An easing function used to calculate the current value
18
+ * @see {@link AnimationBase['calculate']}
19
+ *
20
+ * @param timeElapsed ms elapsed since start
21
+ * @param startValue
22
+ * @param byValue
23
+ * @param duration in ms
24
+ * @returns next value
25
+ */
26
+ export type TEasingFunction<T = unknown> = T extends number[] ? (timeElapsed: number, startValue: number, byValue: number, duration: number, index: number) => number : (timeElapsed: number, startValue: number, byValue: number, duration: number) => number;
27
+ export type TAnimationBaseOptions<T> = {
28
+ /**
29
+ * Duration of the animation in ms
30
+ * @default 500
31
+ */
32
+ duration: number;
33
+ /**
34
+ * Delay to start the animation in ms
35
+ * @default 0
36
+ */
37
+ delay: number;
38
+ /**
39
+ * Easing function
40
+ * @default {defaultEasing}
41
+ */
42
+ easing: TEasingFunction<T>;
43
+ /**
44
+ * The object this animation is being performed on
45
+ */
46
+ target: unknown;
47
+ };
48
+ export type TAnimationCallbacks<T> = {
49
+ /**
50
+ * Called when the animation starts
51
+ */
52
+ onStart: VoidFunction;
53
+ /**
54
+ * Called at each frame of the animation
55
+ */
56
+ onChange: TOnAnimationChangeCallback<T>;
57
+ /**
58
+ * Called after the last frame of the animation
59
+ */
60
+ onComplete: TOnAnimationChangeCallback<T>;
61
+ /**
62
+ * Function called at each frame.
63
+ * If it returns true, abort
64
+ */
65
+ abort: TAbortCallback<T>;
66
+ };
67
+ export type TBaseAnimationOptions<T, TCallback = T, TEasing = T> = Partial<TAnimationBaseOptions<TEasing> & TAnimationCallbacks<TCallback>> & {
68
+ startValue: T;
69
+ byValue: T;
70
+ };
71
+ export type TAnimationOptions<T, TCallback = T, TEasing = T> = Partial<TAnimationBaseOptions<TEasing> & TAnimationCallbacks<TCallback> & {
72
+ /**
73
+ * Starting value(s)
74
+ * @default 0
75
+ */
76
+ startValue: T;
77
+ /**
78
+ * Ending value(s)
79
+ * @default 100
80
+ */
81
+ endValue: T;
82
+ }>;
83
+ export type ValueAnimationOptions = TAnimationOptions<number>;
84
+ export type ArrayAnimationOptions = TAnimationOptions<number[]>;
85
+ export type ColorAnimationOptions = TAnimationOptions<TColorArg, string, number[]>;
86
+ export type AnimationOptions<T extends number | number[] | TColorArg> = T extends TColorArg ? ColorAnimationOptions : T extends number[] ? ArrayAnimationOptions : ValueAnimationOptions;
87
+ //# sourceMappingURL=types.d.ts.map