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,113 @@
1
+ import { TCrossOrigin, TMat2D, TSize } from './typedefs';
2
+ export type TPatternRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
3
+ type TExportedKeys = 'crossOrigin' | 'offsetX' | 'offsetY' | 'patternTransform' | 'repeat' | 'source';
4
+ export type TPatternOptions = Partial<Pick<Pattern, TExportedKeys>>;
5
+ export type TPatternSerialized = TPatternOptions & {
6
+ source: string;
7
+ };
8
+ export type TPatternHydrationOptions = {
9
+ /**
10
+ * handle aborting
11
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
12
+ */
13
+ signal?: AbortSignal;
14
+ };
15
+ type TImageSource = {
16
+ source: HTMLImageElement;
17
+ };
18
+ type TCanvasSource = {
19
+ source: HTMLCanvasElement;
20
+ };
21
+ /**
22
+ * @see {@link http://fabricjs.com/patterns demo}
23
+ * @see {@link http://fabricjs.com/dynamic-patterns demo}
24
+ */
25
+ export declare class Pattern {
26
+ /**
27
+ * Legacy identifier of the class. Prefer using this.constructor.name 'Pattern'
28
+ * or utils like isPattern
29
+ * Will be removed in fabric 7 or 8.
30
+ * @TODO add sustainable warning message
31
+ * @type string
32
+ * @deprecated
33
+ */
34
+ get type(): string;
35
+ set type(value: string);
36
+ /**
37
+ * @type TPatternRepeat
38
+ * @defaults
39
+ */
40
+ repeat: TPatternRepeat;
41
+ /**
42
+ * Pattern horizontal offset from object's left/top corner
43
+ * @type Number
44
+ * @default
45
+ */
46
+ offsetX: number;
47
+ /**
48
+ * Pattern vertical offset from object's left/top corner
49
+ * @type Number
50
+ * @default
51
+ */
52
+ offsetY: number;
53
+ /**
54
+ * @type TCrossOrigin
55
+ * @default
56
+ */
57
+ crossOrigin: TCrossOrigin;
58
+ /**
59
+ * transform matrix to change the pattern, imported from svgs.
60
+ * @todo verify if using the identity matrix as default makes the rest of the code more easy
61
+ * @type Array
62
+ * @default
63
+ */
64
+ patternTransform: TMat2D | null;
65
+ /**
66
+ * The actual pixel source of the pattern
67
+ */
68
+ source: CanvasImageSource;
69
+ /**
70
+ * If true, this object will not be exported during the serialization of a canvas
71
+ * @type boolean
72
+ */
73
+ excludeFromExport?: boolean;
74
+ /**
75
+ * ID used for SVG export functionalities
76
+ * @type number
77
+ */
78
+ readonly id: number;
79
+ /**
80
+ * Constructor
81
+ * @param {Object} [options] Options object
82
+ * @param {option.source} [source] the pattern source, eventually empty or a drawable
83
+ */
84
+ constructor(options?: TPatternOptions);
85
+ /**
86
+ * @returns true if {@link source} is an <img> element
87
+ */
88
+ isImageSource(): this is TImageSource;
89
+ /**
90
+ * @returns true if {@link source} is a <canvas> element
91
+ */
92
+ isCanvasSource(): this is TCanvasSource;
93
+ sourceToString(): string;
94
+ /**
95
+ * Returns an instance of CanvasPattern
96
+ * @param {CanvasRenderingContext2D} ctx Context to create pattern
97
+ * @return {CanvasPattern}
98
+ */
99
+ toLive(ctx: CanvasRenderingContext2D): CanvasPattern | null;
100
+ /**
101
+ * Returns object representation of a pattern
102
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
103
+ * @return {object} Object representation of a pattern instance
104
+ */
105
+ toObject(propertiesToInclude?: string[]): Record<string, any>;
106
+ /**
107
+ * Returns SVG representation of a pattern
108
+ */
109
+ toSVG({ width, height }: TSize): string;
110
+ static fromObject({ source, ...serialized }: TPatternSerialized, options: TPatternHydrationOptions): Promise<Pattern>;
111
+ }
112
+ export {};
113
+ //# sourceMappingURL=Pattern.d.ts.map
@@ -0,0 +1,232 @@
1
+ import { TMat2D, TRadian } from './typedefs';
2
+ export interface XY {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ /**
7
+ * Adaptation of work of Kevin Lindsey(kevin@kevlindev.com)
8
+ */
9
+ export declare class Point implements XY {
10
+ x: number;
11
+ y: number;
12
+ constructor();
13
+ constructor(x: number, y: number);
14
+ constructor(point: XY);
15
+ /**
16
+ * Adds another point to this one and returns another one
17
+ * @param {XY} that
18
+ * @return {Point} new Point instance with added values
19
+ */
20
+ add(that: XY): Point;
21
+ /**
22
+ * Adds another point to this one
23
+ * @param {XY} that
24
+ * @return {Point} thisArg
25
+ * @chainable
26
+ * @deprecated
27
+ */
28
+ addEquals(that: XY): Point;
29
+ /**
30
+ * Adds value to this point and returns a new one
31
+ * @param {Number} scalar
32
+ * @return {Point} new Point with added value
33
+ */
34
+ scalarAdd(scalar: number): Point;
35
+ /**
36
+ * Adds value to this point
37
+ * @param {Number} scalar
38
+ * @return {Point} thisArg
39
+ * @chainable
40
+ * @deprecated
41
+ */
42
+ scalarAddEquals(scalar: number): Point;
43
+ /**
44
+ * Subtracts another point from this point and returns a new one
45
+ * @param {XY} that
46
+ * @return {Point} new Point object with subtracted values
47
+ */
48
+ subtract(that: XY): Point;
49
+ /**
50
+ * Subtracts another point from this point
51
+ * @param {XY} that
52
+ * @return {Point} thisArg
53
+ * @chainable
54
+ * @deprecated
55
+ */
56
+ subtractEquals(that: XY): Point;
57
+ /**
58
+ * Subtracts value from this point and returns a new one
59
+ * @param {Number} scalar
60
+ * @return {Point}
61
+ */
62
+ scalarSubtract(scalar: number): Point;
63
+ /**
64
+ * Subtracts value from this point
65
+ * @param {Number} scalar
66
+ * @return {Point} thisArg
67
+ * @chainable
68
+ * @deprecated
69
+ */
70
+ scalarSubtractEquals(scalar: number): Point;
71
+ /**
72
+ * Multiplies this point by another value and returns a new one
73
+ * @param {XY} that
74
+ * @return {Point}
75
+ */
76
+ multiply(that: XY): Point;
77
+ /**
78
+ * Multiplies this point by a value and returns a new one
79
+ * @param {Number} scalar
80
+ * @return {Point}
81
+ */
82
+ scalarMultiply(scalar: number): Point;
83
+ /**
84
+ * Multiplies this point by a value
85
+ * @param {Number} scalar
86
+ * @return {Point} thisArg
87
+ * @chainable
88
+ * @deprecated
89
+ */
90
+ scalarMultiplyEquals(scalar: number): Point;
91
+ /**
92
+ * Divides this point by another and returns a new one
93
+ * @param {XY} that
94
+ * @return {Point}
95
+ */
96
+ divide(that: XY): Point;
97
+ /**
98
+ * Divides this point by a value and returns a new one
99
+ * @param {Number} scalar
100
+ * @return {Point}
101
+ */
102
+ scalarDivide(scalar: number): Point;
103
+ /**
104
+ * Divides this point by a value
105
+ * @param {Number} scalar
106
+ * @return {Point} thisArg
107
+ * @chainable
108
+ * @deprecated
109
+ */
110
+ scalarDivideEquals(scalar: number): Point;
111
+ /**
112
+ * Returns true if this point is equal to another one
113
+ * @param {XY} that
114
+ * @return {Boolean}
115
+ */
116
+ eq(that: XY): boolean;
117
+ /**
118
+ * Returns true if this point is less than another one
119
+ * @param {XY} that
120
+ * @return {Boolean}
121
+ */
122
+ lt(that: XY): boolean;
123
+ /**
124
+ * Returns true if this point is less than or equal to another one
125
+ * @param {XY} that
126
+ * @return {Boolean}
127
+ */
128
+ lte(that: XY): boolean;
129
+ /**
130
+
131
+ * Returns true if this point is greater another one
132
+ * @param {XY} that
133
+ * @return {Boolean}
134
+ */
135
+ gt(that: XY): boolean;
136
+ /**
137
+ * Returns true if this point is greater than or equal to another one
138
+ * @param {XY} that
139
+ * @return {Boolean}
140
+ */
141
+ gte(that: XY): boolean;
142
+ /**
143
+ * Returns new point which is the result of linear interpolation with this one and another one
144
+ * @param {XY} that
145
+ * @param {Number} t , position of interpolation, between 0 and 1 default 0.5
146
+ * @return {Point}
147
+ */
148
+ lerp(that: XY, t?: number): Point;
149
+ /**
150
+ * Returns distance from this point and another one
151
+ * @param {XY} that
152
+ * @return {Number}
153
+ */
154
+ distanceFrom(that: XY): number;
155
+ /**
156
+ * Returns the point between this point and another one
157
+ * @param {XY} that
158
+ * @return {Point}
159
+ */
160
+ midPointFrom(that: XY): Point;
161
+ /**
162
+ * Returns a new point which is the min of this and another one
163
+ * @param {XY} that
164
+ * @return {Point}
165
+ */
166
+ min(that: XY): Point;
167
+ /**
168
+ * Returns a new point which is the max of this and another one
169
+ * @param {XY} that
170
+ * @return {Point}
171
+ */
172
+ max(that: XY): Point;
173
+ /**
174
+ * Returns string representation of this point
175
+ * @return {String}
176
+ */
177
+ toString(): string;
178
+ /**
179
+ * Sets x/y of this point
180
+ * @param {Number} x
181
+ * @param {Number} y
182
+ * @chainable
183
+ */
184
+ setXY(x: number, y: number): this;
185
+ /**
186
+ * Sets x of this point
187
+ * @param {Number} x
188
+ * @chainable
189
+ */
190
+ setX(x: number): this;
191
+ /**
192
+ * Sets y of this point
193
+ * @param {Number} y
194
+ * @chainable
195
+ */
196
+ setY(y: number): this;
197
+ /**
198
+ * Sets x/y of this point from another point
199
+ * @param {XY} that
200
+ * @chainable
201
+ */
202
+ setFromPoint(that: XY): this;
203
+ /**
204
+ * Swaps x/y of this point and another point
205
+ * @param {XY} that
206
+ */
207
+ swap(that: XY): void;
208
+ /**
209
+ * return a cloned instance of the point
210
+ * @return {Point}
211
+ */
212
+ clone(): Point;
213
+ /**
214
+ * Rotates `point` around `origin` with `radians`
215
+ * @static
216
+ * @memberOf fabric.util
217
+ * @param {XY} origin The origin of the rotation
218
+ * @param {TRadian} radians The radians of the angle for the rotation
219
+ * @return {Point} The new rotated point
220
+ */
221
+ rotate(radians: TRadian, origin?: XY): Point;
222
+ /**
223
+ * Apply transform t to point p
224
+ * @static
225
+ * @memberOf fabric.util
226
+ * @param {TMat2D} t The transform
227
+ * @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied
228
+ * @return {Point} The transformed point
229
+ */
230
+ transform(t: TMat2D, ignoreOffset?: boolean): Point;
231
+ }
232
+ //# sourceMappingURL=Point.d.ts.map
@@ -0,0 +1,97 @@
1
+ import type { FabricObject } from './shapes/Object/FabricObject';
2
+ import { TClassProperties } from './typedefs';
3
+ export declare const shadowDefaultValues: Partial<TClassProperties<Shadow>>;
4
+ type TShadowSerializedProps = {
5
+ color: string;
6
+ blur: number;
7
+ offsetX: number;
8
+ offsetY: number;
9
+ affectStroke: boolean;
10
+ nonScaling: boolean;
11
+ };
12
+ export declare class Shadow {
13
+ /**
14
+ * Shadow color
15
+ * @type String
16
+ * @default
17
+ */
18
+ color: string;
19
+ /**
20
+ * Shadow blur
21
+ * @type Number
22
+ */
23
+ blur: number;
24
+ /**
25
+ * Shadow horizontal offset
26
+ * @type Number
27
+ * @default
28
+ */
29
+ offsetX: number;
30
+ /**
31
+ * Shadow vertical offset
32
+ * @type Number
33
+ * @default
34
+ */
35
+ offsetY: number;
36
+ /**
37
+ * Whether the shadow should affect stroke operations
38
+ * @type Boolean
39
+ * @default
40
+ */
41
+ affectStroke: boolean;
42
+ /**
43
+ * Indicates whether toObject should include default values
44
+ * @type Boolean
45
+ * @default
46
+ */
47
+ includeDefaultValues: boolean;
48
+ /**
49
+ * When `false`, the shadow will scale with the object.
50
+ * When `true`, the shadow's offsetX, offsetY, and blur will not be affected by the object's scale.
51
+ * default to false
52
+ * @type Boolean
53
+ * @default
54
+ */
55
+ nonScaling: boolean;
56
+ id: number;
57
+ static ownDefaults: Partial<TClassProperties<Shadow>>;
58
+ /**
59
+ * @see {@link http://fabricjs.com/shadows|Shadow demo}
60
+ * @param {Object|String} [options] Options object with any of color, blur, offsetX, offsetY properties or string (e.g. "rgba(0,0,0,0.2) 2px 2px 10px")
61
+ */
62
+ constructor(options: Partial<TClassProperties<Shadow>>);
63
+ constructor(svgAttribute: string);
64
+ /**
65
+ * @param {String} value Shadow value to parse
66
+ * @return {Object} Shadow object with color, offsetX, offsetY and blur
67
+ */
68
+ static parseShadow(value: string): {
69
+ color: string;
70
+ offsetX: number;
71
+ offsetY: number;
72
+ blur: number;
73
+ };
74
+ /**
75
+ * Returns a string representation of an instance
76
+ * @see http://www.w3.org/TR/css-text-decor-3/#text-shadow
77
+ * @return {String} Returns CSS3 text-shadow declaration
78
+ */
79
+ toString(): string;
80
+ /**
81
+ * Returns SVG representation of a shadow
82
+ * @param {FabricObject} object
83
+ * @return {String} SVG representation of a shadow
84
+ */
85
+ toSVG(object: FabricObject): string;
86
+ /**
87
+ * Returns object representation of a shadow
88
+ * @return {Object} Object representation of a shadow instance
89
+ */
90
+ toObject(): Partial<TShadowSerializedProps>;
91
+ /**
92
+ * Regex matching shadow offsetX, offsetY and blur (ex: "2px 2px 10px rgba(0,0,0,0.2)", "rgb(0,255,0) 2px 2px")
93
+ */
94
+ static reOffsetsAndBlur: RegExp;
95
+ }
96
+ export {};
97
+ //# sourceMappingURL=Shadow.d.ts.map
@@ -0,0 +1,105 @@
1
+ import type { Point } from '../Point';
2
+ import { TEvent } from '../EventTypeDefs';
3
+ import type { Shadow } from '../Shadow';
4
+ import type { Canvas } from '../canvas/Canvas';
5
+ type TBrushEventData = TEvent & {
6
+ pointer: Point;
7
+ };
8
+ /**
9
+ * @see {@link http://fabricjs.com/freedrawing|Freedrawing demo}
10
+ */
11
+ export declare abstract class BaseBrush {
12
+ /**
13
+ * Color of a brush
14
+ * @type String
15
+ * @default
16
+ */
17
+ color: string;
18
+ /**
19
+ * Width of a brush, has to be a Number, no string literals
20
+ * @type Number
21
+ * @default
22
+ */
23
+ width: number;
24
+ /**
25
+ * Shadow object representing shadow of this shape.
26
+ * <b>Backwards incompatibility note:</b> This property replaces "shadowColor" (String), "shadowOffsetX" (Number),
27
+ * "shadowOffsetY" (Number) and "shadowBlur" (Number) since v1.2.12
28
+ * @type Shadow
29
+ * @default
30
+ */
31
+ shadow: Shadow | null;
32
+ /**
33
+ * Line endings style of a brush (one of "butt", "round", "square")
34
+ * @type String
35
+ * @default
36
+ */
37
+ strokeLineCap: CanvasLineCap;
38
+ /**
39
+ * Corner style of a brush (one of "bevel", "round", "miter")
40
+ * @type String
41
+ * @default
42
+ */
43
+ strokeLineJoin: CanvasLineJoin;
44
+ /**
45
+ * Maximum miter length (used for strokeLineJoin = "miter") of a brush's
46
+ * @type Number
47
+ * @default
48
+ */
49
+ strokeMiterLimit: number;
50
+ /**
51
+ * Stroke Dash Array.
52
+ * @type Array
53
+ * @default
54
+ */
55
+ strokeDashArray: number[] | null;
56
+ /**
57
+ * When `true`, the free drawing is limited to the whiteboard size. Default to false.
58
+ * @type Boolean
59
+ * @default false
60
+ */
61
+ limitedToCanvasSize: boolean;
62
+ /**
63
+ * @todo add type
64
+ */
65
+ canvas: Canvas;
66
+ constructor(canvas: Canvas);
67
+ abstract _render(): void;
68
+ abstract onMouseDown(pointer: Point, ev: TBrushEventData): void;
69
+ abstract onMouseMove(pointer: Point, ev: TBrushEventData): void;
70
+ /**
71
+ * @returns true if brush should continue blocking interaction
72
+ */
73
+ abstract onMouseUp(ev: TBrushEventData): boolean | void;
74
+ /**
75
+ * Sets brush styles
76
+ * @private
77
+ * @param {CanvasRenderingContext2D} ctx
78
+ */
79
+ _setBrushStyles(ctx: CanvasRenderingContext2D): void;
80
+ /**
81
+ * Sets the transformation on given context
82
+ * @param {CanvasRenderingContext2D} ctx context to render on
83
+ * @private
84
+ */
85
+ protected _saveAndTransform(ctx: CanvasRenderingContext2D): void;
86
+ protected needsFullRender(): boolean;
87
+ /**
88
+ * Sets brush shadow styles
89
+ * @private
90
+ */
91
+ protected _setShadow(): void;
92
+ /**
93
+ * Removes brush shadow styles
94
+ * @private
95
+ */
96
+ protected _resetShadow(): void;
97
+ /**
98
+ * Check is pointer is outside canvas boundaries
99
+ * @param {Object} pointer
100
+ * @private
101
+ */
102
+ protected _isOutSideCanvas(pointer: Point): boolean;
103
+ }
104
+ export {};
105
+ //# sourceMappingURL=BaseBrush.d.ts.map
@@ -0,0 +1,49 @@
1
+ import { Point } from '../Point';
2
+ import type { Canvas } from '../canvas/Canvas';
3
+ import { BaseBrush } from './BaseBrush';
4
+ export type CircleBrushPoint = {
5
+ x: number;
6
+ y: number;
7
+ radius: number;
8
+ fill: string;
9
+ };
10
+ export declare class CircleBrush extends BaseBrush {
11
+ /**
12
+ * Width of a brush
13
+ * @type Number
14
+ * @default
15
+ */
16
+ width: number;
17
+ points: CircleBrushPoint[];
18
+ constructor(canvas: Canvas);
19
+ /**
20
+ * Invoked inside on mouse down and mouse move
21
+ * @param {Point} pointer
22
+ */
23
+ drawDot(pointer: Point): void;
24
+ dot(ctx: CanvasRenderingContext2D, point: CircleBrushPoint): void;
25
+ /**
26
+ * Invoked on mouse down
27
+ */
28
+ onMouseDown(pointer: Point): void;
29
+ /**
30
+ * Render the full state of the brush
31
+ * @private
32
+ */
33
+ _render(): void;
34
+ /**
35
+ * Invoked on mouse move
36
+ * @param {Point} pointer
37
+ */
38
+ onMouseMove(pointer: Point): void;
39
+ /**
40
+ * Invoked on mouse up
41
+ */
42
+ onMouseUp(): void;
43
+ /**
44
+ * @param {Object} pointer
45
+ * @return {Point} Just added pointer point
46
+ */
47
+ addPoint({ x, y }: Point): CircleBrushPoint;
48
+ }
49
+ //# sourceMappingURL=CircleBrush.d.ts.map
@@ -0,0 +1,23 @@
1
+ import type { Canvas } from '../canvas/Canvas';
2
+ import { PencilBrush } from './PencilBrush';
3
+ import { TSimplePathData } from '../util/path/typedefs';
4
+ export declare class PatternBrush extends PencilBrush {
5
+ source?: CanvasImageSource;
6
+ constructor(canvas: Canvas);
7
+ getPatternSrc(): HTMLCanvasElement;
8
+ /**
9
+ * Creates "pattern" instance property
10
+ * @param {CanvasRenderingContext2D} ctx
11
+ */
12
+ getPattern(ctx: CanvasRenderingContext2D): CanvasPattern | null;
13
+ /**
14
+ * Sets brush styles
15
+ * @param {CanvasRenderingContext2D} ctx
16
+ */
17
+ _setBrushStyles(ctx: CanvasRenderingContext2D): void;
18
+ /**
19
+ * Creates path
20
+ */
21
+ createPath(pathData: TSimplePathData): import("../..").Path<Partial<import("../shapes/Path").PathProps>, import("../shapes/Path").SerializedPathProps, import("../EventTypeDefs").ObjectEvents>;
22
+ }
23
+ //# sourceMappingURL=PatternBrush.d.ts.map