fabric 5.3.0 → 6.0.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintrc.js +43 -0
  5. package/.eslintrc.json +38 -46
  6. package/.eslintrc_tests +12 -0
  7. package/.gitattributes +2 -0
  8. package/.prettierignore +16 -0
  9. package/.prettierrc +4 -0
  10. package/CHANGELOG.md +491 -189
  11. package/CONTRIBUTING.md +226 -58
  12. package/README.md +188 -239
  13. package/bower.json +1 -3
  14. package/dist/fabric.d.ts +1021 -0
  15. package/dist/index.cjs +28027 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.min.js +1 -0
  19. package/dist/index.mjs +27964 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/index.node.cjs +28092 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.d.ts +15 -0
  24. package/dist/index.node.mjs +28035 -0
  25. package/dist/index.node.mjs.map +1 -0
  26. package/dist/src/Collection.d.ts +126 -0
  27. package/dist/src/CommonMethods.d.ts +32 -0
  28. package/dist/src/EventTypeDefs.d.ts +226 -0
  29. package/dist/src/Intersection.d.ts +100 -0
  30. package/dist/src/Observable.d.ts +54 -0
  31. package/dist/src/Pattern.d.ts +104 -0
  32. package/dist/src/Point.d.ts +232 -0
  33. package/dist/src/Shadow.d.ts +87 -0
  34. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  35. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  36. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  37. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  38. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  39. package/dist/src/cache.d.ts +46 -0
  40. package/dist/src/canvas/Canvas.d.ts +567 -0
  41. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  42. package/dist/src/canvas/StaticCanvas.d.ts +751 -0
  43. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  44. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  45. package/dist/src/color/Color.d.ts +174 -0
  46. package/dist/src/color/color_map.d.ts +155 -0
  47. package/dist/src/color/constants.d.ts +22 -0
  48. package/dist/src/color/util.d.ts +12 -0
  49. package/dist/src/config.d.ts +115 -0
  50. package/dist/src/constants.d.ts +14 -0
  51. package/dist/src/controls/Control.d.ts +228 -0
  52. package/dist/src/controls/changeWidth.d.ts +13 -0
  53. package/dist/src/controls/controls.render.d.ts +29 -0
  54. package/dist/src/controls/default_controls.d.ts +50 -0
  55. package/dist/src/controls/drag.d.ts +12 -0
  56. package/dist/src/controls/polyControl.d.ts +5 -0
  57. package/dist/src/controls/rotate.d.ts +12 -0
  58. package/dist/src/controls/scale.d.ts +47 -0
  59. package/dist/src/controls/scaleSkew.d.ts +39 -0
  60. package/dist/src/controls/skew.d.ts +33 -0
  61. package/dist/src/controls/util.d.ts +41 -0
  62. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  63. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  64. package/dist/src/env/browser.d.ts +3 -0
  65. package/dist/src/env/index.d.ts +7 -0
  66. package/dist/src/env/node.d.ts +3 -0
  67. package/dist/src/env/types.d.ts +15 -0
  68. package/dist/src/filters/BaseFilter.d.ts +156 -0
  69. package/dist/src/filters/BlendColor.d.ts +80 -0
  70. package/dist/src/filters/BlendImage.d.ts +90 -0
  71. package/dist/src/filters/Blur.d.ts +50 -0
  72. package/dist/src/filters/Boilerplate.d.ts +46 -0
  73. package/dist/src/filters/Brightness.d.ts +46 -0
  74. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  75. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  76. package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
  77. package/dist/src/filters/Composed.d.ts +47 -0
  78. package/dist/src/filters/Contrast.d.ts +44 -0
  79. package/dist/src/filters/Convolute.d.ts +82 -0
  80. package/dist/src/filters/FilterBackend.d.ts +14 -0
  81. package/dist/src/filters/Gamma.d.ts +53 -0
  82. package/dist/src/filters/Grayscale.d.ts +45 -0
  83. package/dist/src/filters/HueRotation.d.ts +24 -0
  84. package/dist/src/filters/Invert.d.ts +54 -0
  85. package/dist/src/filters/Noise.d.ts +53 -0
  86. package/dist/src/filters/Pixelate.d.ts +43 -0
  87. package/dist/src/filters/RemoveColor.d.ts +62 -0
  88. package/dist/src/filters/Resize.d.ts +134 -0
  89. package/dist/src/filters/Saturation.d.ts +47 -0
  90. package/dist/src/filters/Vibrance.d.ts +47 -0
  91. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  92. package/dist/src/filters/WebGLProbe.d.ts +28 -0
  93. package/dist/src/filters/typedefs.d.ts +49 -0
  94. package/dist/src/gradient/Gradient.d.ts +149 -0
  95. package/dist/src/gradient/constants.d.ts +15 -0
  96. package/dist/src/gradient/parser/index.d.ts +4 -0
  97. package/dist/src/gradient/parser/misc.d.ts +4 -0
  98. package/dist/src/gradient/parser/parseColorStops.d.ts +6 -0
  99. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  100. package/dist/src/gradient/typedefs.d.ts +93 -0
  101. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  102. package/dist/src/mixins/stateful.mixin.d.ts +18 -0
  103. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  104. package/dist/src/parkinglot/straighten.d.ts +2 -0
  105. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  106. package/dist/src/parser/attributes.d.ts +6 -0
  107. package/dist/src/parser/constants.d.ts +54 -0
  108. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  109. package/dist/src/parser/elementById.d.ts +6 -0
  110. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  111. package/dist/src/parser/elements_parser.d.ts +3 -0
  112. package/dist/src/parser/getCSSRules.d.ts +7 -0
  113. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  114. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  115. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  116. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  117. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  118. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  119. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  120. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  121. package/dist/src/parser/normalizeValue.d.ts +2 -0
  122. package/dist/src/parser/parseAttributes.d.ts +9 -0
  123. package/dist/src/parser/parseElements.d.ts +11 -0
  124. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  125. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  126. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  127. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  128. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  129. package/dist/src/parser/parseStyleString.d.ts +2 -0
  130. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  131. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  132. package/dist/src/parser/percent.d.ts +9 -0
  133. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  134. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  135. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  136. package/dist/src/parser/selectorMatches.d.ts +2 -0
  137. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  138. package/dist/src/parser/skewMatrix.d.ts +2 -0
  139. package/dist/src/parser/translateMatrix.d.ts +2 -0
  140. package/dist/src/shapes/ActiveSelection.d.ts +66 -0
  141. package/dist/src/shapes/Circle.d.ts +80 -0
  142. package/dist/src/shapes/Ellipse.d.ts +74 -0
  143. package/dist/src/shapes/Group.d.ts +381 -0
  144. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  145. package/dist/src/shapes/IText/IText.d.ts +322 -0
  146. package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
  147. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  148. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
  149. package/dist/src/shapes/IText/constants.d.ts +13 -0
  150. package/dist/src/shapes/Image.d.ts +283 -0
  151. package/dist/src/shapes/Line.d.ts +117 -0
  152. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  153. package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
  154. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  155. package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
  156. package/dist/src/shapes/Object/Object.d.ts +906 -0
  157. package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
  158. package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
  159. package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
  160. package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
  161. package/dist/src/shapes/Path.d.ts +123 -0
  162. package/dist/src/shapes/Polygon.d.ts +7 -0
  163. package/dist/src/shapes/Polyline.d.ts +130 -0
  164. package/dist/src/shapes/Rect.d.ts +62 -0
  165. package/dist/src/shapes/Text/StyledText.d.ts +118 -0
  166. package/dist/src/shapes/Text/Text.d.ts +656 -0
  167. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  168. package/dist/src/shapes/Textbox.d.ts +170 -0
  169. package/dist/src/shapes/Triangle.d.ts +17 -0
  170. package/dist/src/typedefs.d.ts +93 -0
  171. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  172. package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -0
  173. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  174. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  175. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  176. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  177. package/dist/src/util/animation/animate.d.ts +37 -0
  178. package/dist/src/util/animation/easing.d.ts +130 -0
  179. package/dist/src/util/animation/types.d.ts +87 -0
  180. package/dist/src/util/applyMixins.d.ts +8 -0
  181. package/dist/src/util/class_registry.d.ts +14 -0
  182. package/dist/src/util/dom_event.d.ts +5 -0
  183. package/dist/src/util/dom_misc.d.ts +40 -0
  184. package/dist/src/util/dom_request.d.ts +14 -0
  185. package/dist/src/util/dom_style.d.ts +7 -0
  186. package/dist/src/util/fireEvent.d.ts +3 -0
  187. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  188. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  189. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  190. package/dist/src/util/internals/index.d.ts +4 -0
  191. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  192. package/dist/src/util/internals/uid.d.ts +2 -0
  193. package/dist/src/util/lang_class.d.ts +12 -0
  194. package/dist/src/util/lang_string.d.ts +22 -0
  195. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  196. package/dist/src/util/misc/capValue.d.ts +2 -0
  197. package/dist/src/util/misc/cos.d.ts +10 -0
  198. package/dist/src/util/misc/dom.d.ts +28 -0
  199. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  200. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  201. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  202. package/dist/src/util/misc/matrix.d.ts +92 -0
  203. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  204. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  205. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  206. package/dist/src/util/misc/pick.d.ts +8 -0
  207. package/dist/src/util/misc/planeChange.d.ts +84 -0
  208. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  209. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  210. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  211. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  212. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  213. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  214. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  215. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  216. package/dist/src/util/misc/sin.d.ts +10 -0
  217. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  218. package/dist/src/util/misc/textStyles.d.ts +32 -0
  219. package/dist/src/util/misc/toFixed.d.ts +8 -0
  220. package/dist/src/util/misc/vectors.d.ts +57 -0
  221. package/dist/src/util/path.d.ts +108 -0
  222. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  223. package/dist/src/util/types.d.ts +19 -0
  224. package/fabric.ts +427 -0
  225. package/index.node.ts +43 -0
  226. package/index.ts +1 -0
  227. package/package.json +90 -39
  228. package/publish.js +0 -26
  229. package/rollup.config.mjs +79 -0
  230. package/rollup.test.config.js +24 -0
  231. package/scripts/build.mjs +50 -0
  232. package/scripts/buildLock.mjs +115 -0
  233. package/scripts/buildReporter.mjs +15 -0
  234. package/scripts/buildStats.mjs +139 -0
  235. package/scripts/dirname.mjs +14 -0
  236. package/scripts/index.mjs +679 -0
  237. package/scripts/transform_files.mjs +504 -0
  238. package/src/Collection.ts +311 -0
  239. package/src/CommonMethods.ts +63 -0
  240. package/src/EventTypeDefs.ts +294 -0
  241. package/src/Intersection.ts +273 -0
  242. package/src/Observable.ts +175 -0
  243. package/src/Pattern.ts +211 -0
  244. package/src/Point.ts +388 -0
  245. package/src/Shadow.ts +215 -0
  246. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  247. package/src/brushes/CircleBrush.ts +145 -0
  248. package/src/brushes/PatternBrush.ts +70 -0
  249. package/src/brushes/PencilBrush.ts +300 -0
  250. package/src/brushes/SprayBrush.ts +219 -0
  251. package/src/cache.ts +89 -0
  252. package/src/canvas/Canvas.ts +1672 -0
  253. package/src/canvas/SelectableCanvas.ts +1636 -0
  254. package/src/canvas/StaticCanvas.ts +1709 -0
  255. package/src/canvas/TextEditingManager.ts +48 -0
  256. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  257. package/src/color/Color.ts +404 -0
  258. package/src/color/color_map.ts +154 -0
  259. package/src/color/constants.ts +26 -0
  260. package/src/color/util.ts +32 -0
  261. package/src/config.ts +159 -0
  262. package/src/constants.ts +19 -0
  263. package/src/controls/Control.ts +377 -0
  264. package/src/controls/changeWidth.ts +52 -0
  265. package/src/controls/controls.render.ts +138 -0
  266. package/src/controls/default_controls.ts +132 -0
  267. package/src/controls/drag.ts +31 -0
  268. package/src/controls/polyControl.ts +135 -0
  269. package/src/controls/rotate.ts +87 -0
  270. package/src/controls/scale.ts +277 -0
  271. package/src/controls/scaleSkew.ts +92 -0
  272. package/src/controls/skew.ts +242 -0
  273. package/src/controls/util.ts +154 -0
  274. package/src/controls/wrapWithFireEvent.ts +25 -0
  275. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  276. package/src/env/browser.ts +28 -0
  277. package/src/env/index.ts +19 -0
  278. package/src/env/node.ts +52 -0
  279. package/src/env/types.ts +15 -0
  280. package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
  281. package/src/filters/BlendColor.ts +258 -0
  282. package/src/filters/BlendImage.ts +254 -0
  283. package/src/filters/Blur.ts +202 -0
  284. package/src/filters/Boilerplate.ts +91 -0
  285. package/src/filters/Brightness.ts +93 -0
  286. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  287. package/src/filters/ColorMatrix.ts +156 -0
  288. package/src/filters/ColorMatrixFilters.ts +106 -0
  289. package/src/filters/Composed.ts +85 -0
  290. package/src/filters/Contrast.ts +94 -0
  291. package/src/filters/Convolute.ts +341 -0
  292. package/src/filters/FilterBackend.ts +32 -0
  293. package/src/filters/Gamma.ts +127 -0
  294. package/src/filters/Grayscale.ts +137 -0
  295. package/src/filters/HueRotation.ts +66 -0
  296. package/src/filters/Invert.ts +117 -0
  297. package/src/filters/Noise.ts +109 -0
  298. package/src/filters/Pixelate.ts +114 -0
  299. package/src/filters/RemoveColor.ts +148 -0
  300. package/src/filters/Resize.ts +540 -0
  301. package/src/filters/Saturation.ts +100 -0
  302. package/src/filters/Vibrance.ts +103 -0
  303. package/src/filters/WebGLFilterBackend.ts +430 -0
  304. package/src/filters/WebGLProbe.ts +62 -0
  305. package/src/filters/typedefs.ts +65 -0
  306. package/src/gradient/Gradient.ts +401 -0
  307. package/src/gradient/constants.ts +12 -0
  308. package/src/gradient/parser/index.ts +3 -0
  309. package/src/gradient/parser/misc.ts +13 -0
  310. package/src/gradient/parser/parseColorStops.ts +55 -0
  311. package/src/gradient/parser/parseCoords.ts +73 -0
  312. package/src/gradient/typedefs.ts +104 -0
  313. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  314. package/src/mixins/stateful.mixin.ts +104 -0
  315. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  316. package/src/parkinglot/straighten.ts +58 -0
  317. package/src/parser/applyViewboxTransform.ts +162 -0
  318. package/src/parser/attributes.ts +25 -0
  319. package/src/parser/constants.ts +118 -0
  320. package/src/parser/doesSomeParentMatch.ts +19 -0
  321. package/src/parser/elementById.ts +23 -0
  322. package/src/parser/elementMatchesRule.ts +19 -0
  323. package/src/parser/elements_parser.ts +191 -0
  324. package/src/parser/getCSSRules.ts +62 -0
  325. package/src/parser/getGlobalStylesForElement.ts +19 -0
  326. package/src/parser/getGradientDefs.ts +32 -0
  327. package/src/parser/getMultipleNodes.ts +15 -0
  328. package/src/parser/getSvgRegex.ts +5 -0
  329. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  330. package/src/parser/loadSVGFromString.ts +26 -0
  331. package/src/parser/loadSVGFromURL.ts +40 -0
  332. package/src/parser/normalizeAttr.ts +10 -0
  333. package/src/parser/normalizeValue.ts +63 -0
  334. package/src/parser/parseAttributes.ts +90 -0
  335. package/src/parser/parseElements.ts +28 -0
  336. package/src/parser/parseFontDeclaration.ts +44 -0
  337. package/src/parser/parsePointsAttribute.ts +36 -0
  338. package/src/parser/parseSVGDocument.ts +106 -0
  339. package/src/parser/parseStyleAttribute.ts +27 -0
  340. package/src/parser/parseStyleObject.ts +15 -0
  341. package/src/parser/parseStyleString.ts +16 -0
  342. package/src/parser/parseTransformAttribute.ts +155 -0
  343. package/src/parser/parseUseDirectives.ts +79 -0
  344. package/src/parser/percent.ts +27 -0
  345. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  346. package/src/parser/rotateMatrix.ts +21 -0
  347. package/src/parser/scaleMatrix.ts +9 -0
  348. package/src/parser/selectorMatches.ts +25 -0
  349. package/src/parser/setStrokeFillOpacity.ts +40 -0
  350. package/src/parser/skewMatrix.ts +6 -0
  351. package/src/parser/translateMatrix.ts +8 -0
  352. package/src/shapes/ActiveSelection.ts +157 -0
  353. package/src/shapes/Circle.ts +205 -0
  354. package/src/shapes/Ellipse.ts +154 -0
  355. package/src/shapes/Group.ts +1053 -0
  356. package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
  357. package/src/shapes/IText/IText.ts +666 -0
  358. package/src/shapes/IText/ITextBehavior.ts +1055 -0
  359. package/src/shapes/IText/ITextClickBehavior.ts +321 -0
  360. package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
  361. package/src/shapes/IText/constants.ts +47 -0
  362. package/src/shapes/Image.ts +789 -0
  363. package/src/shapes/Line.ts +329 -0
  364. package/src/shapes/Object/AnimatableObject.ts +106 -0
  365. package/src/shapes/Object/FabricObject.ts +19 -0
  366. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  367. package/src/shapes/Object/InteractiveObject.ts +645 -0
  368. package/src/shapes/Object/Object.ts +1896 -0
  369. package/src/shapes/Object/ObjectGeometry.ts +830 -0
  370. package/src/shapes/Object/ObjectOrigin.ts +354 -0
  371. package/src/shapes/Object/StackedObject.ts +191 -0
  372. package/src/shapes/Object/defaultValues.ts +112 -0
  373. package/src/shapes/Path.ts +395 -0
  374. package/src/shapes/Polygon.ts +19 -0
  375. package/src/shapes/Polyline.ts +333 -0
  376. package/src/shapes/Rect.ts +199 -0
  377. package/src/shapes/Text/StyledText.ts +319 -0
  378. package/src/shapes/Text/Text.ts +1948 -0
  379. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  380. package/src/shapes/Textbox.ts +471 -0
  381. package/src/shapes/Triangle.ts +45 -0
  382. package/src/typedefs.ts +119 -0
  383. package/src/util/animation/AnimationBase.ts +166 -0
  384. package/src/util/animation/AnimationFrameProvider.ts +28 -0
  385. package/src/util/animation/AnimationRegistry.ts +58 -0
  386. package/src/util/animation/ArrayAnimation.ts +27 -0
  387. package/src/util/animation/ColorAnimation.ts +74 -0
  388. package/src/util/animation/ValueAnimation.ts +29 -0
  389. package/src/util/animation/animate.ts +74 -0
  390. package/src/util/animation/easing.ts +327 -0
  391. package/src/util/animation/types.ts +136 -0
  392. package/src/util/applyMixins.ts +22 -0
  393. package/src/util/class_registry.ts +54 -0
  394. package/src/util/dom_event.ts +28 -0
  395. package/src/util/dom_misc.ts +138 -0
  396. package/src/util/dom_request.ts +64 -0
  397. package/src/util/dom_style.ts +20 -0
  398. package/src/util/fireEvent.ts +15 -0
  399. package/src/util/internals/cloneDeep.ts +2 -0
  400. package/src/util/internals/getRandomInt.ts +8 -0
  401. package/src/util/internals/ifNaN.ts +9 -0
  402. package/src/util/internals/index.ts +3 -0
  403. package/src/util/internals/removeFromArray.ts +14 -0
  404. package/src/util/internals/uid.ts +3 -0
  405. package/src/util/lang_class.ts +90 -0
  406. package/src/util/lang_string.ts +79 -0
  407. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  408. package/src/util/misc/capValue.ts +2 -0
  409. package/src/util/misc/cos.ts +24 -0
  410. package/src/util/misc/dom.ts +50 -0
  411. package/src/util/misc/findScaleTo.ts +44 -0
  412. package/src/util/misc/groupSVGElements.ts +15 -0
  413. package/src/util/misc/isTransparent.ts +51 -0
  414. package/src/util/misc/matrix.ts +207 -0
  415. package/src/util/misc/mergeClipPaths.ts +40 -0
  416. package/src/util/misc/objectEnlive.ts +189 -0
  417. package/src/util/misc/objectTransforms.ts +129 -0
  418. package/src/util/misc/pick.ts +17 -0
  419. package/src/util/misc/planeChange.ts +136 -0
  420. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  421. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +231 -0
  422. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  423. package/src/util/misc/projectStroke/index.ts +53 -0
  424. package/src/util/misc/projectStroke/types.ts +24 -0
  425. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  426. package/src/util/misc/resolveOrigin.ts +22 -0
  427. package/src/util/misc/rotatePoint.ts +15 -0
  428. package/src/util/misc/sin.ts +26 -0
  429. package/src/util/misc/svgParsing.ts +181 -0
  430. package/src/util/misc/textStyles.ts +133 -0
  431. package/src/util/misc/toFixed.ts +8 -0
  432. package/src/util/misc/vectors.ts +82 -0
  433. package/src/util/path.ts +941 -0
  434. package/src/util/transform_matrix_removal.ts +60 -0
  435. package/src/util/types.ts +78 -0
  436. package/tsconfig.json +106 -0
  437. package/HEADER.js +0 -203
  438. package/build.js +0 -287
  439. package/dist/fabric.js +0 -31187
  440. package/dist/fabric.min.js +0 -1
  441. package/old-travis-reference.yml +0 -97
  442. package/src/brushes/circle_brush.class.js +0 -144
  443. package/src/brushes/pattern_brush.class.js +0 -61
  444. package/src/brushes/pencil_brush.class.js +0 -310
  445. package/src/brushes/spray_brush.class.js +0 -219
  446. package/src/canvas.class.js +0 -1312
  447. package/src/color.class.js +0 -636
  448. package/src/control.class.js +0 -339
  449. package/src/controls.actions.js +0 -740
  450. package/src/controls.render.js +0 -99
  451. package/src/elements_parser.js +0 -152
  452. package/src/filters/2d_backend.class.js +0 -65
  453. package/src/filters/blendcolor_filter.class.js +0 -251
  454. package/src/filters/blendimage_filter.class.js +0 -247
  455. package/src/filters/blur_filter.class.js +0 -217
  456. package/src/filters/brightness_filter.class.js +0 -113
  457. package/src/filters/colormatrix_filter.class.js +0 -159
  458. package/src/filters/composed_filter.class.js +0 -72
  459. package/src/filters/contrast_filter.class.js +0 -113
  460. package/src/filters/convolute_filter.class.js +0 -352
  461. package/src/filters/filter_boilerplate.js +0 -111
  462. package/src/filters/filter_generator.js +0 -85
  463. package/src/filters/gamma_filter.class.js +0 -136
  464. package/src/filters/grayscale_filter.class.js +0 -154
  465. package/src/filters/hue_rotation.class.js +0 -107
  466. package/src/filters/invert_filter.class.js +0 -111
  467. package/src/filters/noise_filter.class.js +0 -134
  468. package/src/filters/pixelate_filter.class.js +0 -137
  469. package/src/filters/removecolor_filter.class.js +0 -173
  470. package/src/filters/resize_filter.class.js +0 -490
  471. package/src/filters/saturate_filter.class.js +0 -119
  472. package/src/filters/vibrance_filter.class.js +0 -122
  473. package/src/filters/webgl_backend.class.js +0 -396
  474. package/src/globalFabric.js +0 -4
  475. package/src/gradient.class.js +0 -490
  476. package/src/intersection.class.js +0 -172
  477. package/src/log.js +0 -11
  478. package/src/mixins/animation.mixin.js +0 -231
  479. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  480. package/src/mixins/canvas_events.mixin.js +0 -974
  481. package/src/mixins/canvas_gestures.mixin.js +0 -149
  482. package/src/mixins/canvas_grouping.mixin.js +0 -177
  483. package/src/mixins/canvas_serialization.mixin.js +0 -228
  484. package/src/mixins/collection.mixin.js +0 -170
  485. package/src/mixins/default_controls.js +0 -114
  486. package/src/mixins/itext.svg_export.js +0 -241
  487. package/src/mixins/itext_behavior.mixin.js +0 -940
  488. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  489. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  490. package/src/mixins/object.svg_export.js +0 -258
  491. package/src/mixins/object_geometry.mixin.js +0 -683
  492. package/src/mixins/object_interactivity.mixin.js +0 -314
  493. package/src/mixins/object_origin.mixin.js +0 -255
  494. package/src/mixins/object_stacking.mixin.js +0 -80
  495. package/src/mixins/object_straightening.mixin.js +0 -80
  496. package/src/mixins/observable.mixin.js +0 -141
  497. package/src/mixins/shared_methods.mixin.js +0 -94
  498. package/src/mixins/stateful.mixin.js +0 -107
  499. package/src/mixins/text_style.mixin.js +0 -324
  500. package/src/parser.js +0 -1090
  501. package/src/pattern.class.js +0 -189
  502. package/src/point.class.js +0 -337
  503. package/src/shadow.class.js +0 -195
  504. package/src/shapes/active_selection.class.js +0 -155
  505. package/src/shapes/circle.class.js +0 -210
  506. package/src/shapes/ellipse.class.js +0 -181
  507. package/src/shapes/group.class.js +0 -593
  508. package/src/shapes/image.class.js +0 -764
  509. package/src/shapes/itext.class.js +0 -526
  510. package/src/shapes/line.class.js +0 -324
  511. package/src/shapes/object.class.js +0 -2008
  512. package/src/shapes/path.class.js +0 -384
  513. package/src/shapes/polygon.class.js +0 -81
  514. package/src/shapes/polyline.class.js +0 -268
  515. package/src/shapes/rect.class.js +0 -187
  516. package/src/shapes/text.class.js +0 -1696
  517. package/src/shapes/textbox.class.js +0 -461
  518. package/src/shapes/triangle.class.js +0 -93
  519. package/src/static_canvas.class.js +0 -1881
  520. package/src/util/anim_ease.js +0 -398
  521. package/src/util/animate.js +0 -254
  522. package/src/util/animate_color.js +0 -74
  523. package/src/util/dom_event.js +0 -50
  524. package/src/util/dom_misc.js +0 -300
  525. package/src/util/dom_request.js +0 -54
  526. package/src/util/dom_style.js +0 -70
  527. package/src/util/lang_array.js +0 -94
  528. package/src/util/lang_class.js +0 -115
  529. package/src/util/lang_object.js +0 -75
  530. package/src/util/lang_string.js +0 -110
  531. package/src/util/misc.js +0 -1330
  532. package/src/util/named_accessors.mixin.js +0 -428
  533. package/src/util/path.js +0 -829
@@ -0,0 +1,232 @@
1
+ import { TMat2D, TRadian } from './typedefs';
2
+ export interface IPoint {
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 IPoint {
10
+ x: number;
11
+ y: number;
12
+ constructor();
13
+ constructor(x: number, y: number);
14
+ constructor(point: IPoint);
15
+ /**
16
+ * Adds another point to this one and returns another one
17
+ * @param {IPoint} that
18
+ * @return {Point} new Point instance with added values
19
+ */
20
+ add(that: IPoint): Point;
21
+ /**
22
+ * Adds another point to this one
23
+ * @param {IPoint} that
24
+ * @return {Point} thisArg
25
+ * @chainable
26
+ * @deprecated
27
+ */
28
+ addEquals(that: IPoint): 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 {IPoint} that
46
+ * @return {Point} new Point object with subtracted values
47
+ */
48
+ subtract(that: IPoint): Point;
49
+ /**
50
+ * Subtracts another point from this point
51
+ * @param {IPoint} that
52
+ * @return {Point} thisArg
53
+ * @chainable
54
+ * @deprecated
55
+ */
56
+ subtractEquals(that: IPoint): 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 {IPoint} that
74
+ * @return {Point}
75
+ */
76
+ multiply(that: IPoint): 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 {IPoint} that
94
+ * @return {Point}
95
+ */
96
+ divide(that: IPoint): 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 {IPoint} that
114
+ * @return {Boolean}
115
+ */
116
+ eq(that: IPoint): boolean;
117
+ /**
118
+ * Returns true if this point is less than another one
119
+ * @param {IPoint} that
120
+ * @return {Boolean}
121
+ */
122
+ lt(that: IPoint): boolean;
123
+ /**
124
+ * Returns true if this point is less than or equal to another one
125
+ * @param {IPoint} that
126
+ * @return {Boolean}
127
+ */
128
+ lte(that: IPoint): boolean;
129
+ /**
130
+
131
+ * Returns true if this point is greater another one
132
+ * @param {IPoint} that
133
+ * @return {Boolean}
134
+ */
135
+ gt(that: IPoint): boolean;
136
+ /**
137
+ * Returns true if this point is greater than or equal to another one
138
+ * @param {IPoint} that
139
+ * @return {Boolean}
140
+ */
141
+ gte(that: IPoint): boolean;
142
+ /**
143
+ * Returns new point which is the result of linear interpolation with this one and another one
144
+ * @param {IPoint} that
145
+ * @param {Number} t , position of interpolation, between 0 and 1 default 0.5
146
+ * @return {Point}
147
+ */
148
+ lerp(that: IPoint, t?: number): Point;
149
+ /**
150
+ * Returns distance from this point and another one
151
+ * @param {IPoint} that
152
+ * @return {Number}
153
+ */
154
+ distanceFrom(that: IPoint): number;
155
+ /**
156
+ * Returns the point between this point and another one
157
+ * @param {IPoint} that
158
+ * @return {Point}
159
+ */
160
+ midPointFrom(that: IPoint): Point;
161
+ /**
162
+ * Returns a new point which is the min of this and another one
163
+ * @param {IPoint} that
164
+ * @return {Point}
165
+ */
166
+ min(that: IPoint): Point;
167
+ /**
168
+ * Returns a new point which is the max of this and another one
169
+ * @param {IPoint} that
170
+ * @return {Point}
171
+ */
172
+ max(that: IPoint): 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 {IPoint} that
200
+ * @chainable
201
+ */
202
+ setFromPoint(that: IPoint): this;
203
+ /**
204
+ * Swaps x/y of this point and another point
205
+ * @param {IPoint} that
206
+ */
207
+ swap(that: IPoint): 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 {IPoint} 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?: IPoint): 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,87 @@
1
+ import type { FabricObject } from './shapes/Object/FabricObject';
2
+ import { TClassProperties } from './typedefs';
3
+ export declare class Shadow {
4
+ /**
5
+ * Shadow color
6
+ * @type String
7
+ * @default
8
+ */
9
+ color: string;
10
+ /**
11
+ * Shadow blur
12
+ * @type Number
13
+ */
14
+ blur: number;
15
+ /**
16
+ * Shadow horizontal offset
17
+ * @type Number
18
+ * @default
19
+ */
20
+ offsetX: number;
21
+ /**
22
+ * Shadow vertical offset
23
+ * @type Number
24
+ * @default
25
+ */
26
+ offsetY: number;
27
+ /**
28
+ * Whether the shadow should affect stroke operations
29
+ * @type Boolean
30
+ * @default
31
+ */
32
+ affectStroke: boolean;
33
+ /**
34
+ * Indicates whether toObject should include default values
35
+ * @type Boolean
36
+ * @default
37
+ */
38
+ includeDefaultValues: boolean;
39
+ /**
40
+ * When `false`, the shadow will scale with the object.
41
+ * When `true`, the shadow's offsetX, offsetY, and blur will not be affected by the object's scale.
42
+ * default to false
43
+ * @type Boolean
44
+ * @default
45
+ */
46
+ nonScaling: boolean;
47
+ id: number;
48
+ /**
49
+ * @see {@link http://fabricjs.com/shadows|Shadow demo}
50
+ * @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")
51
+ */
52
+ constructor(options: Partial<TClassProperties<Shadow>>);
53
+ constructor(svgAttribute: string);
54
+ /**
55
+ * @param {String} value Shadow value to parse
56
+ * @return {Object} Shadow object with color, offsetX, offsetY and blur
57
+ */
58
+ static parseShadow(value: string): {
59
+ color: string;
60
+ offsetX: number;
61
+ offsetY: number;
62
+ blur: number;
63
+ };
64
+ /**
65
+ * Returns a string representation of an instance
66
+ * @see http://www.w3.org/TR/css-text-decor-3/#text-shadow
67
+ * @return {String} Returns CSS3 text-shadow declaration
68
+ */
69
+ toString(): string;
70
+ /**
71
+ * Returns SVG representation of a shadow
72
+ * @param {FabricObject} object
73
+ * @return {String} SVG representation of a shadow
74
+ */
75
+ toSVG(object: FabricObject): string;
76
+ /**
77
+ * Returns object representation of a shadow
78
+ * @return {Object} Object representation of a shadow instance
79
+ */
80
+ toObject(): Record<string, unknown>;
81
+ /**
82
+ * Regex matching shadow offsetX, offsetY and blur (ex: "2px 2px 10px rgba(0,0,0,0.2)", "rgb(0,255,0) 2px 2px")
83
+ */
84
+ static reOffsetsAndBlur: RegExp;
85
+ }
86
+ export declare const shadowDefaultValues: Partial<TClassProperties<Shadow>>;
87
+ //# 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 { PathData } from '../typedefs';
2
+ import type { Canvas } from '../canvas/Canvas';
3
+ import { PencilBrush } from './PencilBrush';
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: PathData): import("../..").Path;
22
+ }
23
+ //# sourceMappingURL=PatternBrush.d.ts.map
@@ -0,0 +1,92 @@
1
+ import { ModifierKey, TEvent } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import { Path } from '../shapes/Path';
4
+ import { PathData } from '../typedefs';
5
+ import type { Canvas } from '../canvas/Canvas';
6
+ import { BaseBrush } from './BaseBrush';
7
+ export declare class PencilBrush extends BaseBrush {
8
+ /**
9
+ * Discard points that are less than `decimate` pixel distant from each other
10
+ * @type Number
11
+ * @default 0.4
12
+ */
13
+ decimate: number;
14
+ /**
15
+ * Draws a straight line between last recorded point to current pointer
16
+ * Used for `shift` functionality
17
+ *
18
+ * @type boolean
19
+ * @default false
20
+ */
21
+ drawStraightLine: boolean;
22
+ /**
23
+ * The event modifier key that makes the brush draw a straight line.
24
+ * If `null` or 'none' or any other string that is not a modifier key the feature is disabled.
25
+ * @type {ModifierKey | undefined | null}
26
+ */
27
+ straightLineKey: ModifierKey | undefined | null;
28
+ private _points;
29
+ private _hasStraightLine;
30
+ private oldEnd?;
31
+ constructor(canvas: Canvas);
32
+ needsFullRender(): boolean;
33
+ static drawSegment(ctx: CanvasRenderingContext2D, p1: Point, p2: Point): Point;
34
+ /**
35
+ * Invoked on mouse down
36
+ * @param {Point} pointer
37
+ */
38
+ onMouseDown(pointer: Point, { e }: TEvent): void;
39
+ /**
40
+ * Invoked on mouse move
41
+ * @param {Point} pointer
42
+ */
43
+ onMouseMove(pointer: Point, { e }: TEvent): void;
44
+ /**
45
+ * Invoked on mouse up
46
+ */
47
+ onMouseUp({ e }: TEvent): boolean;
48
+ /**
49
+ * @private
50
+ * @param {Point} pointer Actual mouse position related to the canvas.
51
+ */
52
+ _prepareForDrawing(pointer: Point): void;
53
+ /**
54
+ * @private
55
+ * @param {Point} point Point to be added to points array
56
+ */
57
+ _addPoint(point: Point): boolean;
58
+ /**
59
+ * Clear points array and set contextTop canvas style.
60
+ * @private
61
+ */
62
+ _reset(): void;
63
+ /**
64
+ * Draw a smooth path on the topCanvas using quadraticCurveTo
65
+ * @private
66
+ * @param {CanvasRenderingContext2D} [ctx]
67
+ */
68
+ _render(ctx?: CanvasRenderingContext2D): void;
69
+ /**
70
+ * Converts points to SVG path
71
+ * @param {Array} points Array of points
72
+ * @return {PathData} SVG path commands
73
+ */
74
+ convertPointsToSVGPath(points: Point[]): PathData;
75
+ /**
76
+ * Creates a Path object to add on canvas
77
+ * @param {PathData} pathData Path data
78
+ * @return {Path} Path to add on canvas
79
+ */
80
+ createPath(pathData: PathData): Path;
81
+ /**
82
+ * Decimate points array with the decimate value
83
+ */
84
+ decimatePoints(points: Point[], distance: number): Point[];
85
+ /**
86
+ * On mouseup after drawing the path on contextTop canvas
87
+ * we use the points captured to create an new Path object
88
+ * and add it to the canvas.
89
+ */
90
+ _finalizeAndAddPath(): void;
91
+ }
92
+ //# sourceMappingURL=PencilBrush.d.ts.map
@@ -0,0 +1,79 @@
1
+ import { Point } from '../Point';
2
+ import type { Canvas } from '../canvas/Canvas';
3
+ import { BaseBrush } from './BaseBrush';
4
+ export type SprayBrushPoint = {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ opacity: number;
9
+ };
10
+ export declare class SprayBrush extends BaseBrush {
11
+ /**
12
+ * Width of a spray
13
+ * @type Number
14
+ * @default
15
+ */
16
+ width: number;
17
+ /**
18
+ * Density of a spray (number of dots per chunk)
19
+ * @type Number
20
+ * @default
21
+ */
22
+ density: number;
23
+ /**
24
+ * Width of spray dots
25
+ * @type Number
26
+ * @default
27
+ */
28
+ dotWidth: number;
29
+ /**
30
+ * Width variance of spray dots
31
+ * @type Number
32
+ * @default
33
+ */
34
+ dotWidthVariance: number;
35
+ /**
36
+ * Whether opacity of a dot should be random
37
+ * @type Boolean
38
+ * @default
39
+ */
40
+ randomOpacity: boolean;
41
+ /**
42
+ * Whether overlapping dots (rectangles) should be removed (for performance reasons)
43
+ * @type Boolean
44
+ * @default
45
+ */
46
+ optimizeOverlapping: boolean;
47
+ private sprayChunks;
48
+ private sprayChunk;
49
+ /**
50
+ * Constructor
51
+ * @param {Canvas} canvas
52
+ * @return {SprayBrush} Instance of a spray brush
53
+ */
54
+ constructor(canvas: Canvas);
55
+ /**
56
+ * Invoked on mouse down
57
+ * @param {Point} pointer
58
+ */
59
+ onMouseDown(pointer: Point): void;
60
+ /**
61
+ * Invoked on mouse move
62
+ * @param {Point} pointer
63
+ */
64
+ onMouseMove(pointer: Point): void;
65
+ /**
66
+ * Invoked on mouse up
67
+ */
68
+ onMouseUp(): void;
69
+ renderChunck(sprayChunck: SprayBrushPoint[]): void;
70
+ /**
71
+ * Render all spray chunks
72
+ */
73
+ _render(): void;
74
+ /**
75
+ * @param {Point} pointer
76
+ */
77
+ addSprayChunk(pointer: Point): void;
78
+ }
79
+ //# sourceMappingURL=SprayBrush.d.ts.map