fabric 5.3.0 → 6.0.0-beta10

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 (634) 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 +51 -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 +615 -189
  13. package/CONTRIBUTING.md +233 -59
  14. package/README.md +200 -235
  15. package/babel-jest.config.js +6 -0
  16. package/bower.json +1 -3
  17. package/dist/fabric.d.ts +54 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +28452 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/index.min.js +1 -0
  22. package/dist/index.mjs +28385 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/dist/index.node.cjs +28538 -0
  25. package/dist/index.node.cjs.map +1 -0
  26. package/dist/index.node.d.ts +20 -0
  27. package/dist/index.node.mjs +28477 -0
  28. package/dist/index.node.mjs.map +1 -0
  29. package/dist/src/ClassRegistry.d.ts +13 -0
  30. package/dist/src/Collection.d.ts +136 -0
  31. package/dist/src/CommonMethods.d.ts +32 -0
  32. package/dist/src/EventTypeDefs.d.ts +227 -0
  33. package/dist/src/Intersection.d.ts +112 -0
  34. package/dist/src/Observable.d.ts +60 -0
  35. package/dist/src/Pattern/Pattern.d.ts +99 -0
  36. package/dist/src/Pattern/index.d.ts +3 -0
  37. package/dist/src/Pattern/types.d.ts +9 -0
  38. package/dist/src/Point.d.ts +232 -0
  39. package/dist/src/Shadow.d.ts +96 -0
  40. package/dist/src/brushes/BaseBrush.d.ts +101 -0
  41. package/dist/src/brushes/CircleBrush.d.ts +44 -0
  42. package/dist/src/brushes/CircleBrush.test.d.ts +2 -0
  43. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  44. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  45. package/dist/src/brushes/SprayBrush.d.ts +74 -0
  46. package/dist/src/brushes/typedefs.d.ts +18 -0
  47. package/dist/src/cache.d.ts +47 -0
  48. package/dist/src/canvas/Canvas.d.ts +364 -0
  49. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +29 -0
  50. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  51. package/dist/src/canvas/DOMManagers/util.d.ts +24 -0
  52. package/dist/src/canvas/DOMManagers/util.spec.d.ts +2 -0
  53. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  54. package/dist/src/canvas/StaticCanvas.d.ts +747 -0
  55. package/dist/src/canvas/TextEditingManager.d.ts +21 -0
  56. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  57. package/dist/src/color/Color.d.ts +152 -0
  58. package/dist/src/color/color_map.d.ts +155 -0
  59. package/dist/src/color/constants.d.ts +104 -0
  60. package/dist/src/color/typedefs.d.ts +16 -0
  61. package/dist/src/color/util.d.ts +27 -0
  62. package/dist/src/config.d.ts +115 -0
  63. package/dist/src/constants.d.ts +21 -0
  64. package/dist/src/controls/Control.d.ts +229 -0
  65. package/dist/src/controls/changeWidth.d.ts +13 -0
  66. package/dist/src/controls/commonControls.d.ts +28 -0
  67. package/dist/src/controls/controlRendering.d.ts +29 -0
  68. package/dist/src/controls/drag.d.ts +12 -0
  69. package/dist/src/controls/fireEvent.d.ts +3 -0
  70. package/dist/src/controls/index.d.ts +13 -0
  71. package/dist/src/controls/polyControl.d.ts +5 -0
  72. package/dist/src/controls/rotate.d.ts +12 -0
  73. package/dist/src/controls/scale.d.ts +47 -0
  74. package/dist/src/controls/scaleSkew.d.ts +39 -0
  75. package/dist/src/controls/skew.d.ts +33 -0
  76. package/dist/src/controls/util.d.ts +41 -0
  77. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  78. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  79. package/dist/src/env/browser.d.ts +3 -0
  80. package/dist/src/env/index.d.ts +28 -0
  81. package/dist/src/env/node.d.ts +6 -0
  82. package/dist/src/env/types.d.ts +15 -0
  83. package/dist/src/filters/BaseFilter.d.ts +160 -0
  84. package/dist/src/filters/BlendColor.d.ts +81 -0
  85. package/dist/src/filters/BlendImage.d.ts +93 -0
  86. package/dist/src/filters/Blur.d.ts +52 -0
  87. package/dist/src/filters/Boilerplate.d.ts +48 -0
  88. package/dist/src/filters/Brightness.d.ts +48 -0
  89. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  90. package/dist/src/filters/ColorMatrix.d.ts +64 -0
  91. package/dist/src/filters/ColorMatrixFilters.d.ts +537 -0
  92. package/dist/src/filters/Composed.d.ts +46 -0
  93. package/dist/src/filters/Contrast.d.ts +46 -0
  94. package/dist/src/filters/Convolute.d.ts +83 -0
  95. package/dist/src/filters/FilterBackend.d.ts +15 -0
  96. package/dist/src/filters/GLProbes/GLProbe.d.ts +7 -0
  97. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  98. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  99. package/dist/src/filters/Gamma.d.ts +55 -0
  100. package/dist/src/filters/Grayscale.d.ts +47 -0
  101. package/dist/src/filters/HueRotation.d.ts +25 -0
  102. package/dist/src/filters/Invert.d.ts +56 -0
  103. package/dist/src/filters/Noise.d.ts +55 -0
  104. package/dist/src/filters/Pixelate.d.ts +45 -0
  105. package/dist/src/filters/RemoveColor.d.ts +64 -0
  106. package/dist/src/filters/Resize.d.ts +137 -0
  107. package/dist/src/filters/Saturation.d.ts +49 -0
  108. package/dist/src/filters/Vibrance.d.ts +49 -0
  109. package/dist/src/filters/WebGLFilterBackend.d.ts +128 -0
  110. package/dist/src/filters/filters.d.ts +21 -0
  111. package/dist/src/filters/index.d.ts +7 -0
  112. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  113. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  114. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  115. package/dist/src/filters/shaders/blur.d.ts +2 -0
  116. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  117. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  118. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  119. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  120. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  121. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  122. package/dist/src/filters/shaders/invert.d.ts +2 -0
  123. package/dist/src/filters/shaders/noise.d.ts +2 -0
  124. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  125. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  126. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  127. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  128. package/dist/src/filters/typedefs.d.ts +48 -0
  129. package/dist/src/filters/utils.d.ts +3 -0
  130. package/dist/src/gradient/Gradient.d.ts +150 -0
  131. package/dist/src/gradient/constants.d.ts +15 -0
  132. package/dist/src/gradient/index.d.ts +3 -0
  133. package/dist/src/gradient/parser/index.d.ts +4 -0
  134. package/dist/src/gradient/parser/misc.d.ts +4 -0
  135. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  136. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  137. package/dist/src/gradient/typedefs.d.ts +93 -0
  138. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  139. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  140. package/dist/src/parkinglot/straighten.d.ts +2 -0
  141. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  142. package/dist/src/parser/attributes.d.ts +6 -0
  143. package/dist/src/parser/constants.d.ts +53 -0
  144. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  145. package/dist/src/parser/elementById.d.ts +6 -0
  146. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  147. package/dist/src/parser/elements_parser.d.ts +3 -0
  148. package/dist/src/parser/getCSSRules.d.ts +7 -0
  149. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  150. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  151. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  152. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  153. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  154. package/dist/src/parser/index.d.ts +9 -0
  155. package/dist/src/parser/loadSVGFromString.d.ts +18 -0
  156. package/dist/src/parser/loadSVGFromURL.d.ts +19 -0
  157. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  158. package/dist/src/parser/normalizeValue.d.ts +2 -0
  159. package/dist/src/parser/parseAttributes.d.ts +9 -0
  160. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  161. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  162. package/dist/src/parser/parseSVGDocument.d.ts +23 -0
  163. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  164. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  165. package/dist/src/parser/parseStyleString.d.ts +2 -0
  166. package/dist/src/parser/parseTransformAttribute.d.ts +11 -0
  167. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  168. package/dist/src/parser/percent.d.ts +9 -0
  169. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  170. package/dist/src/parser/selectorMatches.d.ts +2 -0
  171. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  172. package/dist/src/parser/typedefs.d.ts +9 -0
  173. package/dist/src/shapes/ActiveSelection.d.ts +83 -0
  174. package/dist/src/shapes/Circle.d.ts +99 -0
  175. package/dist/src/shapes/Ellipse.d.ts +84 -0
  176. package/dist/src/shapes/Group.d.ts +407 -0
  177. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  178. package/dist/src/shapes/IText/IText.d.ts +336 -0
  179. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  180. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +73 -0
  181. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  182. package/dist/src/shapes/IText/constants.d.ts +13 -0
  183. package/dist/src/shapes/Image.d.ts +309 -0
  184. package/dist/src/shapes/Line.d.ts +121 -0
  185. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  186. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  187. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  188. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  189. package/dist/src/shapes/Object/Object.d.ts +599 -0
  190. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  191. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  192. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  193. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  194. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  195. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  196. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  197. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  198. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  199. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  200. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  201. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  202. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  203. package/dist/src/shapes/Path.d.ts +214 -0
  204. package/dist/src/shapes/Polygon.d.ts +10 -0
  205. package/dist/src/shapes/Polyline.d.ts +147 -0
  206. package/dist/src/shapes/Rect.d.ts +82 -0
  207. package/dist/src/shapes/Text/StyledText.d.ts +123 -0
  208. package/dist/src/shapes/Text/Text.d.ts +688 -0
  209. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  210. package/dist/src/shapes/Text/constants.d.ts +13 -0
  211. package/dist/src/shapes/Textbox.d.ts +204 -0
  212. package/dist/src/shapes/Triangle.d.ts +26 -0
  213. package/dist/src/typedefs.d.ts +96 -0
  214. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  215. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  216. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  217. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  218. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  219. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  220. package/dist/src/util/animation/animate.d.ts +37 -0
  221. package/dist/src/util/animation/easing.d.ts +130 -0
  222. package/dist/src/util/animation/index.d.ts +3 -0
  223. package/dist/src/util/animation/types.d.ts +87 -0
  224. package/dist/src/util/applyMixins.d.ts +8 -0
  225. package/dist/src/util/dom_event.d.ts +5 -0
  226. package/dist/src/util/dom_misc.d.ts +12 -0
  227. package/dist/src/util/dom_request.d.ts +14 -0
  228. package/dist/src/util/dom_style.d.ts +7 -0
  229. package/dist/src/util/index.d.ts +36 -0
  230. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  231. package/dist/src/util/internals/cleanupSvgAttribute.test.d.ts +2 -0
  232. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  233. package/dist/src/util/internals/cloneDeep.test.d.ts +2 -0
  234. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  235. package/dist/src/util/internals/getRandomInt.test.d.ts +2 -0
  236. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  237. package/dist/src/util/internals/index.d.ts +4 -0
  238. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  239. package/dist/src/util/internals/uid.d.ts +2 -0
  240. package/dist/src/util/lang_string.d.ts +22 -0
  241. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  242. package/dist/src/util/misc/capValue.d.ts +2 -0
  243. package/dist/src/util/misc/cos.d.ts +10 -0
  244. package/dist/src/util/misc/dom.d.ts +28 -0
  245. package/dist/src/util/misc/findScaleTo.d.ts +20 -0
  246. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  247. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  248. package/dist/src/util/misc/matrix.d.ts +168 -0
  249. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  250. package/dist/src/util/misc/objectEnlive.d.ts +41 -0
  251. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  252. package/dist/src/util/misc/pick.d.ts +9 -0
  253. package/dist/src/util/misc/planeChange.d.ts +81 -0
  254. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  255. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +82 -0
  256. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +26 -0
  257. package/dist/src/util/misc/projectStroke/index.d.ts +12 -0
  258. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  259. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  260. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  261. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  262. package/dist/src/util/misc/sin.d.ts +10 -0
  263. package/dist/src/util/misc/svgParsing.d.ts +45 -0
  264. package/dist/src/util/misc/textStyles.d.ts +32 -0
  265. package/dist/src/util/misc/toFixed.d.ts +8 -0
  266. package/dist/src/util/misc/vectors.d.ts +58 -0
  267. package/dist/src/util/path/index.d.ts +96 -0
  268. package/dist/src/util/path/regex.d.ts +2 -0
  269. package/dist/src/util/path/typechecks.d.ts +24 -0
  270. package/dist/src/util/path/typedefs.d.ts +220 -0
  271. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  272. package/dist/src/util/typeAssertions.d.ts +19 -0
  273. package/e2e/site/index.html +25 -0
  274. package/e2e/utils/objects.ts +36 -0
  275. package/fabric.ts +72 -0
  276. package/index.node.ts +43 -0
  277. package/index.ts +1 -0
  278. package/jest.config.js +194 -0
  279. package/lib/aligning_guidelines.js +2 -2
  280. package/package.json +110 -40
  281. package/playwright.config.ts +64 -0
  282. package/publish.js +0 -26
  283. package/rollup.config.mjs +99 -0
  284. package/rollup.test.config.js +24 -0
  285. package/scripts/build.mjs +50 -0
  286. package/scripts/buildLock.mjs +115 -0
  287. package/scripts/buildReporter.mjs +15 -0
  288. package/scripts/buildStats.mjs +139 -0
  289. package/scripts/dirname.mjs +14 -0
  290. package/scripts/git.mjs +36 -0
  291. package/scripts/index.mjs +564 -0
  292. package/scripts/sandbox.mjs +149 -0
  293. package/src/ClassRegistry.ts +56 -0
  294. package/src/Collection.ts +346 -0
  295. package/src/CommonMethods.ts +63 -0
  296. package/src/EventTypeDefs.ts +298 -0
  297. package/src/Intersection.ts +302 -0
  298. package/src/Observable.ts +181 -0
  299. package/src/Pattern/Pattern.ts +207 -0
  300. package/src/Pattern/index.ts +2 -0
  301. package/src/Pattern/types.ts +17 -0
  302. package/src/Point.ts +388 -0
  303. package/src/Shadow.ts +214 -0
  304. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +63 -42
  305. package/src/brushes/CircleBrush.test.ts +11 -0
  306. package/src/brushes/CircleBrush.ts +140 -0
  307. package/src/brushes/PatternBrush.ts +70 -0
  308. package/src/brushes/PencilBrush.ts +300 -0
  309. package/src/brushes/SprayBrush.ts +214 -0
  310. package/src/brushes/typedefs.ts +18 -0
  311. package/src/cache.ts +90 -0
  312. package/src/canvas/Canvas.ts +1598 -0
  313. package/src/canvas/DOMManagers/CanvasDOMManager.ts +124 -0
  314. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +80 -0
  315. package/src/canvas/DOMManagers/util.spec.ts +26 -0
  316. package/src/canvas/DOMManagers/util.ts +98 -0
  317. package/src/canvas/SelectableCanvas.ts +1506 -0
  318. package/src/canvas/StaticCanvas.ts +1634 -0
  319. package/src/canvas/TextEditingManager.ts +70 -0
  320. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  321. package/src/color/Color.ts +320 -0
  322. package/src/color/color_map.ts +154 -0
  323. package/src/color/constants.ts +107 -0
  324. package/src/color/typedefs.ts +18 -0
  325. package/src/color/util.ts +93 -0
  326. package/src/config.ts +159 -0
  327. package/src/constants.ts +29 -0
  328. package/src/controls/Control.ts +385 -0
  329. package/src/controls/changeWidth.ts +53 -0
  330. package/src/controls/commonControls.ts +105 -0
  331. package/src/controls/controlRendering.ts +138 -0
  332. package/src/controls/drag.ts +32 -0
  333. package/src/controls/fireEvent.ts +18 -0
  334. package/src/controls/index.ts +22 -0
  335. package/src/controls/polyControl.ts +135 -0
  336. package/src/controls/rotate.ts +87 -0
  337. package/src/controls/scale.ts +277 -0
  338. package/src/controls/scaleSkew.ts +92 -0
  339. package/src/controls/skew.ts +243 -0
  340. package/src/controls/util.ts +155 -0
  341. package/src/controls/wrapWithFireEvent.ts +25 -0
  342. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  343. package/src/env/browser.ts +32 -0
  344. package/src/env/index.ts +38 -0
  345. package/src/env/node.ts +58 -0
  346. package/src/env/types.ts +15 -0
  347. package/src/filters/{base_filter.class.js → BaseFilter.ts} +203 -151
  348. package/src/filters/BlendColor.ts +219 -0
  349. package/src/filters/BlendImage.ts +230 -0
  350. package/src/filters/Blur.ts +181 -0
  351. package/src/filters/Boilerplate.ts +94 -0
  352. package/src/filters/Brightness.ts +85 -0
  353. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  354. package/src/filters/ColorMatrix.ts +147 -0
  355. package/src/filters/ColorMatrixFilters.ts +79 -0
  356. package/src/filters/Composed.ts +78 -0
  357. package/src/filters/Contrast.ts +84 -0
  358. package/src/filters/Convolute.ts +186 -0
  359. package/src/filters/FilterBackend.ts +38 -0
  360. package/src/filters/GLProbes/GLProbe.ts +7 -0
  361. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  362. package/src/filters/GLProbes/WebGLProbe.ts +47 -0
  363. package/src/filters/Gamma.ts +112 -0
  364. package/src/filters/Grayscale.ts +104 -0
  365. package/src/filters/HueRotation.ts +64 -0
  366. package/src/filters/Invert.ts +101 -0
  367. package/src/filters/Noise.ts +96 -0
  368. package/src/filters/Pixelate.ts +98 -0
  369. package/src/filters/RemoveColor.ts +137 -0
  370. package/src/filters/Resize.ts +540 -0
  371. package/src/filters/Saturation.ts +89 -0
  372. package/src/filters/Vibrance.ts +90 -0
  373. package/src/filters/WebGLFilterBackend.ts +456 -0
  374. package/src/filters/filters.ts +28 -0
  375. package/src/filters/index.ts +12 -0
  376. package/src/filters/shaders/baseFilter.ts +17 -0
  377. package/src/filters/shaders/blendColor.ts +33 -0
  378. package/src/filters/shaders/blendImage.ts +32 -0
  379. package/src/filters/shaders/blur.ts +24 -0
  380. package/src/filters/shaders/brightness.ts +11 -0
  381. package/src/filters/shaders/colorMatrix.ts +12 -0
  382. package/src/filters/shaders/constrast.ts +11 -0
  383. package/src/filters/shaders/convolute.ts +154 -0
  384. package/src/filters/shaders/gamma.ts +15 -0
  385. package/src/filters/shaders/grayscale.ts +36 -0
  386. package/src/filters/shaders/invert.ts +19 -0
  387. package/src/filters/shaders/noise.ts +16 -0
  388. package/src/filters/shaders/pixelate.ts +19 -0
  389. package/src/filters/shaders/removeColor.ts +13 -0
  390. package/src/filters/shaders/saturation.ts +15 -0
  391. package/src/filters/shaders/vibrance.ts +16 -0
  392. package/src/filters/typedefs.ts +59 -0
  393. package/src/filters/utils.ts +7 -0
  394. package/src/gradient/Gradient.ts +409 -0
  395. package/src/gradient/constants.ts +12 -0
  396. package/src/gradient/index.ts +2 -0
  397. package/src/gradient/parser/index.ts +3 -0
  398. package/src/gradient/parser/misc.ts +13 -0
  399. package/src/gradient/parser/parseColorStops.ts +56 -0
  400. package/src/gradient/parser/parseCoords.ts +73 -0
  401. package/src/gradient/typedefs.ts +104 -0
  402. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  403. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  404. package/src/parkinglot/straighten.ts +58 -0
  405. package/src/parser/applyViewboxTransform.ts +158 -0
  406. package/src/parser/attributes.ts +25 -0
  407. package/src/parser/constants.ts +116 -0
  408. package/src/parser/doesSomeParentMatch.ts +18 -0
  409. package/src/parser/elementById.ts +21 -0
  410. package/src/parser/elementMatchesRule.ts +16 -0
  411. package/src/parser/elements_parser.ts +158 -0
  412. package/src/parser/getCSSRules.ts +61 -0
  413. package/src/parser/getGlobalStylesForElement.ts +19 -0
  414. package/src/parser/getGradientDefs.ts +31 -0
  415. package/src/parser/getMultipleNodes.ts +15 -0
  416. package/src/parser/getSvgRegex.ts +3 -0
  417. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  418. package/src/parser/index.ts +8 -0
  419. package/src/parser/loadSVGFromString.ts +29 -0
  420. package/src/parser/loadSVGFromURL.ts +47 -0
  421. package/src/parser/normalizeAttr.ts +10 -0
  422. package/src/parser/normalizeValue.ts +64 -0
  423. package/src/parser/parseAttributes.ts +90 -0
  424. package/src/parser/parseFontDeclaration.ts +44 -0
  425. package/src/parser/parsePointsAttribute.ts +34 -0
  426. package/src/parser/parseSVGDocument.ts +118 -0
  427. package/src/parser/parseStyleAttribute.ts +27 -0
  428. package/src/parser/parseStyleObject.ts +15 -0
  429. package/src/parser/parseStyleString.ts +16 -0
  430. package/src/parser/parseTransformAttribute.ts +94 -0
  431. package/src/parser/parseUseDirectives.ts +78 -0
  432. package/src/parser/percent.ts +27 -0
  433. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  434. package/src/parser/selectorMatches.ts +25 -0
  435. package/src/parser/setStrokeFillOpacity.ts +40 -0
  436. package/src/parser/typedefs.ts +13 -0
  437. package/src/shapes/ActiveSelection.ts +192 -0
  438. package/src/shapes/Circle.ts +236 -0
  439. package/src/shapes/Ellipse.ts +177 -0
  440. package/src/shapes/Group.ts +1103 -0
  441. package/src/shapes/IText/DraggableTextDelegate.ts +385 -0
  442. package/src/shapes/IText/IText.ts +696 -0
  443. package/src/shapes/IText/ITextBehavior.ts +1073 -0
  444. package/src/shapes/IText/ITextClickBehavior.ts +292 -0
  445. package/src/shapes/IText/ITextKeyBehavior.ts +675 -0
  446. package/src/shapes/IText/constants.ts +53 -0
  447. package/src/shapes/Image.ts +848 -0
  448. package/src/shapes/Line.ts +285 -0
  449. package/src/shapes/Object/AnimatableObject.ts +103 -0
  450. package/src/shapes/Object/FabricObject.ts +29 -0
  451. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +278 -0
  452. package/src/shapes/Object/InteractiveObject.ts +669 -0
  453. package/src/shapes/Object/Object.ts +1589 -0
  454. package/src/shapes/Object/ObjectGeometry.ts +814 -0
  455. package/src/shapes/Object/ObjectOrigin.ts +277 -0
  456. package/src/shapes/Object/StackedObject.ts +206 -0
  457. package/src/shapes/Object/defaultValues.ts +110 -0
  458. package/src/shapes/Object/types/BaseProps.ts +96 -0
  459. package/src/shapes/Object/types/BorderProps.ts +40 -0
  460. package/src/shapes/Object/types/ControlProps.ts +69 -0
  461. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  462. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  463. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  464. package/src/shapes/Object/types/ObjectProps.ts +49 -0
  465. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  466. package/src/shapes/Object/types/index.ts +8 -0
  467. package/src/shapes/Path.ts +434 -0
  468. package/src/shapes/Polygon.ts +22 -0
  469. package/src/shapes/Polyline.ts +364 -0
  470. package/src/shapes/Rect.ts +230 -0
  471. package/src/shapes/Text/StyledText.ts +323 -0
  472. package/src/shapes/Text/Text.ts +1891 -0
  473. package/src/shapes/Text/TextSVGExportMixin.ts +289 -0
  474. package/src/shapes/Text/constants.ts +111 -0
  475. package/src/shapes/Textbox.ts +526 -0
  476. package/src/shapes/Triangle.ts +62 -0
  477. package/src/typedefs.ts +121 -0
  478. package/src/util/animation/AnimationBase.ts +166 -0
  479. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  480. package/src/util/animation/AnimationRegistry.ts +58 -0
  481. package/src/util/animation/ArrayAnimation.ts +27 -0
  482. package/src/util/animation/ColorAnimation.ts +74 -0
  483. package/src/util/animation/ValueAnimation.ts +29 -0
  484. package/src/util/animation/animate.ts +74 -0
  485. package/src/util/animation/easing.ts +327 -0
  486. package/src/util/animation/index.ts +2 -0
  487. package/src/util/animation/types.ts +136 -0
  488. package/src/util/applyMixins.ts +22 -0
  489. package/src/util/dom_event.ts +28 -0
  490. package/src/util/dom_misc.ts +44 -0
  491. package/src/util/dom_request.ts +64 -0
  492. package/src/util/dom_style.ts +20 -0
  493. package/src/util/index.ts +106 -0
  494. package/src/util/internals/cleanupSvgAttribute.test.ts +16 -0
  495. package/src/util/internals/cleanupSvgAttribute.ts +8 -0
  496. package/src/util/internals/cloneDeep.test.ts +16 -0
  497. package/src/util/internals/cloneDeep.ts +2 -0
  498. package/src/util/internals/getRandomInt.test.ts +33 -0
  499. package/src/util/internals/getRandomInt.ts +8 -0
  500. package/src/util/internals/ifNaN.ts +9 -0
  501. package/src/util/internals/index.ts +3 -0
  502. package/src/util/internals/removeFromArray.ts +14 -0
  503. package/src/util/internals/uid.ts +3 -0
  504. package/src/util/lang_string.ts +79 -0
  505. package/src/util/misc/boundingBoxFromPoints.ts +38 -0
  506. package/src/util/misc/capValue.ts +2 -0
  507. package/src/util/misc/cos.ts +24 -0
  508. package/src/util/misc/dom.ts +55 -0
  509. package/src/util/misc/findScaleTo.ts +29 -0
  510. package/src/util/misc/groupSVGElements.ts +15 -0
  511. package/src/util/misc/isTransparent.ts +28 -0
  512. package/src/util/misc/matrix.ts +313 -0
  513. package/src/util/misc/mergeClipPaths.ts +40 -0
  514. package/src/util/misc/objectEnlive.ts +174 -0
  515. package/src/util/misc/objectTransforms.ts +130 -0
  516. package/src/util/misc/pick.ts +29 -0
  517. package/src/util/misc/planeChange.ts +127 -0
  518. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +113 -0
  519. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +227 -0
  520. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +76 -0
  521. package/src/util/misc/projectStroke/index.ts +55 -0
  522. package/src/util/misc/projectStroke/types.ts +24 -0
  523. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  524. package/src/util/misc/resolveOrigin.ts +22 -0
  525. package/src/util/misc/rotatePoint.ts +15 -0
  526. package/src/util/misc/sin.ts +26 -0
  527. package/src/util/misc/svgParsing.ts +171 -0
  528. package/src/util/misc/textStyles.ts +132 -0
  529. package/src/util/misc/toFixed.ts +8 -0
  530. package/src/util/misc/vectors.ts +83 -0
  531. package/src/util/path/index.ts +1039 -0
  532. package/src/util/path/regex.ts +39 -0
  533. package/src/util/path/typechecks.ts +145 -0
  534. package/src/util/path/typedefs.ts +305 -0
  535. package/src/util/transform_matrix_removal.ts +61 -0
  536. package/src/util/typeAssertions.ts +78 -0
  537. package/tsconfig.json +106 -0
  538. package/HEADER.js +0 -203
  539. package/build.js +0 -287
  540. package/dist/fabric.js +0 -31187
  541. package/dist/fabric.min.js +0 -1
  542. package/old-travis-reference.yml +0 -97
  543. package/src/brushes/circle_brush.class.js +0 -144
  544. package/src/brushes/pattern_brush.class.js +0 -61
  545. package/src/brushes/pencil_brush.class.js +0 -310
  546. package/src/brushes/spray_brush.class.js +0 -219
  547. package/src/canvas.class.js +0 -1312
  548. package/src/color.class.js +0 -636
  549. package/src/control.class.js +0 -339
  550. package/src/controls.actions.js +0 -740
  551. package/src/controls.render.js +0 -99
  552. package/src/elements_parser.js +0 -152
  553. package/src/filters/2d_backend.class.js +0 -65
  554. package/src/filters/blendcolor_filter.class.js +0 -251
  555. package/src/filters/blendimage_filter.class.js +0 -247
  556. package/src/filters/blur_filter.class.js +0 -217
  557. package/src/filters/brightness_filter.class.js +0 -113
  558. package/src/filters/colormatrix_filter.class.js +0 -159
  559. package/src/filters/composed_filter.class.js +0 -72
  560. package/src/filters/contrast_filter.class.js +0 -113
  561. package/src/filters/convolute_filter.class.js +0 -352
  562. package/src/filters/filter_boilerplate.js +0 -111
  563. package/src/filters/filter_generator.js +0 -85
  564. package/src/filters/gamma_filter.class.js +0 -136
  565. package/src/filters/grayscale_filter.class.js +0 -154
  566. package/src/filters/hue_rotation.class.js +0 -107
  567. package/src/filters/invert_filter.class.js +0 -111
  568. package/src/filters/noise_filter.class.js +0 -134
  569. package/src/filters/pixelate_filter.class.js +0 -137
  570. package/src/filters/removecolor_filter.class.js +0 -173
  571. package/src/filters/resize_filter.class.js +0 -490
  572. package/src/filters/saturate_filter.class.js +0 -119
  573. package/src/filters/vibrance_filter.class.js +0 -122
  574. package/src/filters/webgl_backend.class.js +0 -396
  575. package/src/globalFabric.js +0 -4
  576. package/src/gradient.class.js +0 -490
  577. package/src/intersection.class.js +0 -172
  578. package/src/log.js +0 -11
  579. package/src/mixins/animation.mixin.js +0 -231
  580. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  581. package/src/mixins/canvas_events.mixin.js +0 -974
  582. package/src/mixins/canvas_gestures.mixin.js +0 -149
  583. package/src/mixins/canvas_grouping.mixin.js +0 -177
  584. package/src/mixins/canvas_serialization.mixin.js +0 -228
  585. package/src/mixins/collection.mixin.js +0 -170
  586. package/src/mixins/default_controls.js +0 -114
  587. package/src/mixins/itext.svg_export.js +0 -241
  588. package/src/mixins/itext_behavior.mixin.js +0 -940
  589. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  590. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  591. package/src/mixins/object.svg_export.js +0 -258
  592. package/src/mixins/object_geometry.mixin.js +0 -683
  593. package/src/mixins/object_interactivity.mixin.js +0 -314
  594. package/src/mixins/object_origin.mixin.js +0 -255
  595. package/src/mixins/object_stacking.mixin.js +0 -80
  596. package/src/mixins/object_straightening.mixin.js +0 -80
  597. package/src/mixins/observable.mixin.js +0 -141
  598. package/src/mixins/shared_methods.mixin.js +0 -94
  599. package/src/mixins/stateful.mixin.js +0 -107
  600. package/src/mixins/text_style.mixin.js +0 -324
  601. package/src/parser.js +0 -1090
  602. package/src/pattern.class.js +0 -189
  603. package/src/point.class.js +0 -337
  604. package/src/shadow.class.js +0 -195
  605. package/src/shapes/active_selection.class.js +0 -155
  606. package/src/shapes/circle.class.js +0 -210
  607. package/src/shapes/ellipse.class.js +0 -181
  608. package/src/shapes/group.class.js +0 -593
  609. package/src/shapes/image.class.js +0 -764
  610. package/src/shapes/itext.class.js +0 -526
  611. package/src/shapes/line.class.js +0 -324
  612. package/src/shapes/object.class.js +0 -2008
  613. package/src/shapes/path.class.js +0 -384
  614. package/src/shapes/polygon.class.js +0 -81
  615. package/src/shapes/polyline.class.js +0 -268
  616. package/src/shapes/rect.class.js +0 -187
  617. package/src/shapes/text.class.js +0 -1696
  618. package/src/shapes/textbox.class.js +0 -461
  619. package/src/shapes/triangle.class.js +0 -93
  620. package/src/static_canvas.class.js +0 -1881
  621. package/src/util/anim_ease.js +0 -398
  622. package/src/util/animate.js +0 -254
  623. package/src/util/animate_color.js +0 -74
  624. package/src/util/dom_event.js +0 -50
  625. package/src/util/dom_misc.js +0 -300
  626. package/src/util/dom_request.js +0 -54
  627. package/src/util/dom_style.js +0 -70
  628. package/src/util/lang_array.js +0 -94
  629. package/src/util/lang_class.js +0 -115
  630. package/src/util/lang_object.js +0 -75
  631. package/src/util/lang_string.js +0 -110
  632. package/src/util/misc.js +0 -1330
  633. package/src/util/named_accessors.mixin.js +0 -428
  634. package/src/util/path.js +0 -829
@@ -0,0 +1,37 @@
1
+ export interface BorderProps {
2
+ /**
3
+ * Color of controlling borders of an object (when it's active)
4
+ * @type String
5
+ * @default rgb(178,204,255)
6
+ */
7
+ borderColor: string;
8
+ /**
9
+ * Array specifying dash pattern of an object's borders (hasBorder must be true)
10
+ * @since 1.6.2
11
+ * @type Array | null
12
+ * default null;
13
+ */
14
+ borderDashArray: number[] | null;
15
+ /**
16
+ * When set to `false`, object's controlling borders are not rendered
17
+ * @type Boolean
18
+ * @default
19
+ */
20
+ hasBorders: boolean;
21
+ /**
22
+ * Opacity of object's controlling borders when object is active and moving
23
+ * @type Number
24
+ * @default 0.4
25
+ */
26
+ borderOpacityWhenMoving: number;
27
+ /**
28
+ * Scale factor of object's controlling borders
29
+ * bigger number will make a thicker border
30
+ * border is 1, so this is basically a border thickness
31
+ * since there is no way to change the border itself.
32
+ * @type Number
33
+ * @default 1
34
+ */
35
+ borderScaleFactor: number;
36
+ }
37
+ //# sourceMappingURL=BorderProps.d.ts.map
@@ -0,0 +1,62 @@
1
+ export interface ControlProps {
2
+ /**
3
+ * Size of object's controlling corners (in pixels)
4
+ * @type Number
5
+ * @default 13
6
+ */
7
+ cornerSize: number;
8
+ /**
9
+ * Size of object's controlling corners when touch interaction is detected
10
+ * @type Number
11
+ * @default 24
12
+ */
13
+ touchCornerSize: number;
14
+ /**
15
+ * When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)
16
+ * @type Boolean
17
+ * @default true
18
+ */
19
+ transparentCorners: boolean;
20
+ /**
21
+ * Color of controlling corners of an object (when it's active)
22
+ * @type String
23
+ * @default rgb(178,204,255)
24
+ */
25
+ cornerColor: string;
26
+ /**
27
+ * Color of controlling corners of an object (when it's active and transparentCorners false)
28
+ * @since 1.6.2
29
+ * @type String
30
+ * @default null
31
+ */
32
+ cornerStrokeColor: string;
33
+ /**
34
+ * Specify style of control, 'rect' or 'circle'
35
+ * This is deprecated. In the future there will be a standard control render
36
+ * And you can swap it with one of the alternative proposed with the control api
37
+ * @since 1.6.2
38
+ * @type 'rect' | 'circle'
39
+ * @default rect
40
+ * @deprecated
41
+ */
42
+ cornerStyle: 'rect' | 'circle';
43
+ /**
44
+ * Array specifying dash pattern of an object's control (hasBorder must be true)
45
+ * @since 1.6.2
46
+ * @type Array | null
47
+ */
48
+ cornerDashArray: number[] | null;
49
+ /**
50
+ * Padding between object and its controlling borders (in pixels)
51
+ * @type Number
52
+ * @default 0
53
+ */
54
+ padding: number;
55
+ /**
56
+ * When set to `false`, object's controls are not displayed and can not be used to manipulate object
57
+ * @type Boolean
58
+ * @default
59
+ */
60
+ hasControls: boolean;
61
+ }
62
+ //# sourceMappingURL=ControlProps.d.ts.map
@@ -0,0 +1,96 @@
1
+ import type { TDegree } from '../../../typedefs';
2
+ import type { BorderProps } from './BorderProps';
3
+ import type { ControlProps } from './ControlProps';
4
+ import type { LockInteractionProps } from './LockInteractionProps';
5
+ import type { ObjectProps } from './ObjectProps';
6
+ export interface FabricObjectProps extends ObjectProps, ControlProps, BorderProps, LockInteractionProps {
7
+ /**
8
+ * When `true`, cache does not get updated during scaling. The picture will get blocky if scaled
9
+ * too much and will be redrawn with correct details at the end of scaling.
10
+ * this setting is performance and application dependant.
11
+ * default to true
12
+ * since 1.7.0
13
+ * @type Boolean
14
+ * @default true
15
+ */
16
+ noScaleCache?: boolean;
17
+ /**
18
+ * When true, this object will use center point as the origin of transformation
19
+ * when being scaled via the controls.
20
+ * <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
21
+ * @since 1.3.4
22
+ * @type Boolean
23
+ * @default
24
+ */
25
+ centeredScaling: false;
26
+ /**
27
+ * When true, this object will use center point as the origin of transformation
28
+ * when being rotated via the controls.
29
+ * <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
30
+ * @since 1.3.4
31
+ * @type Boolean
32
+ * @default
33
+ */
34
+ centeredRotation: boolean;
35
+ /**
36
+ * The angle that an object will lock to while rotating.
37
+ * @type [TDegree]
38
+ */
39
+ snapAngle?: TDegree;
40
+ /**
41
+ * The angle difference from the current snapped angle in which snapping should occur.
42
+ * When undefined, the snapThreshold will default to the snapAngle.
43
+ * @type [TDegree]
44
+ */
45
+ snapThreshold?: TDegree;
46
+ /**
47
+ * Default cursor value used when hovering over this object on canvas
48
+ * @type CSSStyleDeclaration['cursor'] | null
49
+ * @default null
50
+ */
51
+ hoverCursor: CSSStyleDeclaration['cursor'] | null;
52
+ /**
53
+ * Default cursor value used when moving this object on canvas
54
+ * @type CSSStyleDeclaration['cursor'] | null
55
+ * @default null
56
+ */
57
+ moveCursor: CSSStyleDeclaration['cursor'] | null;
58
+ /**
59
+ * Selection Background color of an object. colored layer behind the object when it is active.
60
+ * does not mix good with globalCompositeOperation methods.
61
+ * @type String
62
+ * @deprecated
63
+ * @default
64
+ */
65
+ selectionBackgroundColor: string;
66
+ /**
67
+ * When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box
68
+ * @type Boolean
69
+ * @default
70
+ */
71
+ perPixelTargetFind: boolean;
72
+ /**
73
+ * When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).
74
+ * But events still fire on it.
75
+ * @type Boolean
76
+ * @default
77
+ */
78
+ selectable: boolean;
79
+ /**
80
+ * When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4
81
+ * @type Boolean
82
+ * @default
83
+ */
84
+ evented: boolean;
85
+ /**
86
+ * When 'down', object is set to active on mousedown/touchstart
87
+ * When 'up', object is set to active on mouseup/touchend
88
+ * Experimental. Let's see if this breaks anything before supporting officially
89
+ * @private
90
+ * since 4.4.0
91
+ * @type String
92
+ * @default 'down'
93
+ */
94
+ activeOn: 'down' | 'up';
95
+ }
96
+ //# sourceMappingURL=FabricObjectProps.d.ts.map
@@ -0,0 +1,80 @@
1
+ import type { TFiller } from '../../../typedefs';
2
+ export interface FillStrokeProps {
3
+ /**
4
+ * Determines if the fill or the stroke is drawn first (one of "fill" or "stroke")
5
+ * @type String
6
+ * @default
7
+ */
8
+ paintFirst: 'fill' | 'stroke';
9
+ /**
10
+ * Color of object's fill
11
+ * takes css colors https://www.w3.org/TR/css-color-3/
12
+ * @type String
13
+ * @default rgb(0,0,0)
14
+ */
15
+ fill: ReturnType<TFiller['toObject']> | string | null;
16
+ /**
17
+ * Fill rule used to fill an object
18
+ * accepted values are nonzero, evenodd
19
+ * <b>Backwards incompatibility note:</b> This property was used for setting globalCompositeOperation until v1.4.12 (use `globalCompositeOperation` instead)
20
+ * @type String
21
+ * @default nonzero
22
+ */
23
+ fillRule: CanvasFillRule;
24
+ /**
25
+ * When defined, an object is rendered via stroke and this property specifies its color
26
+ * takes css colors https://www.w3.org/TR/css-color-3/
27
+ * @type String
28
+ * @default null
29
+ */
30
+ stroke: ReturnType<TFiller['toObject']> | string | null;
31
+ /**
32
+ * Width of a stroke used to render this object
33
+ * @type Number
34
+ * @default 1
35
+ */
36
+ strokeWidth: number;
37
+ /**
38
+ * Array specifying dash pattern of an object's stroke (stroke must be defined)
39
+ * @type Array
40
+ * @default null;
41
+ */
42
+ strokeDashArray: number[] | null;
43
+ /**
44
+ * Line offset of an object's stroke
45
+ * @type Number
46
+ * @default 0
47
+ */
48
+ strokeDashOffset: number;
49
+ /**
50
+ * Line endings style of an object's stroke (one of "butt", "round", "square")
51
+ * @type String
52
+ * @default butt
53
+ */
54
+ strokeLineCap: CanvasLineCap;
55
+ /**
56
+ * Corner style of an object's stroke (one of "bevel", "round", "miter")
57
+ * @type String
58
+ * @default
59
+ */
60
+ strokeLineJoin: CanvasLineJoin;
61
+ /**
62
+ * Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke
63
+ * @type Number
64
+ * @default 4
65
+ */
66
+ strokeMiterLimit: number;
67
+ /**
68
+ * When `false`, the stoke width will scale with the object.
69
+ * When `true`, the stroke will always match the exact pixel size entered for stroke width.
70
+ * this Property does not work on Text classes or drawing call that uses strokeText,fillText methods
71
+ * default to false
72
+ * @since 2.6.0
73
+ * @type Boolean
74
+ * @default false
75
+ * @type Boolean
76
+ * @default false
77
+ */
78
+ strokeUniform: boolean;
79
+ }
80
+ //# sourceMappingURL=FillStrokeProps.d.ts.map
@@ -0,0 +1,51 @@
1
+ export interface LockInteractionProps {
2
+ /**
3
+ * When `true`, object horizontal movement is locked
4
+ * @type Boolean
5
+ * @default
6
+ */
7
+ lockMovementX: boolean;
8
+ /**
9
+ * When `true`, object vertical movement is locked
10
+ * @type Boolean
11
+ * @default
12
+ */
13
+ lockMovementY: boolean;
14
+ /**
15
+ * When `true`, object rotation is locked
16
+ * @type Boolean
17
+ * @default
18
+ */
19
+ lockRotation: boolean;
20
+ /**
21
+ * When `true`, object horizontal scaling is locked
22
+ * @type Boolean
23
+ * @default
24
+ */
25
+ lockScalingX: boolean;
26
+ /**
27
+ * When `true`, object vertical scaling is locked
28
+ * @type Boolean
29
+ * @default
30
+ */
31
+ lockScalingY: boolean;
32
+ /**
33
+ * When `true`, object horizontal skewing is locked
34
+ * @type Boolean
35
+ * @default
36
+ */
37
+ lockSkewingX: boolean;
38
+ /**
39
+ * When `true`, object vertical skewing is locked
40
+ * @type Boolean
41
+ * @default
42
+ */
43
+ lockSkewingY: boolean;
44
+ /**
45
+ * When `true`, object cannot be flipped by scaling into negative values
46
+ * @type Boolean
47
+ * @default
48
+ */
49
+ lockScalingFlip: boolean;
50
+ }
51
+ //# sourceMappingURL=LockInteractionProps.d.ts.map
@@ -0,0 +1,42 @@
1
+ import type { Shadow } from '../../../Shadow';
2
+ import type { Canvas } from '../../../canvas/Canvas';
3
+ import type { StaticCanvas } from '../../../canvas/StaticCanvas';
4
+ import type { TFiller } from '../../../typedefs';
5
+ import type { FabricObject } from '../Object';
6
+ import type { ClipPathProps, SerializedObjectProps } from './SerializedObjectProps';
7
+ export interface ObjectProps extends SerializedObjectProps, ClipPathProps {
8
+ clipPath?: FabricObject;
9
+ fill: TFiller | string | null;
10
+ stroke: TFiller | string | null;
11
+ shadow: Shadow | null;
12
+ canvas?: StaticCanvas | Canvas;
13
+ /**
14
+ * Minimum allowed scale value of an object
15
+ * @type Number
16
+ * @default 0
17
+ */
18
+ minScaleLimit: number;
19
+ /**
20
+ * When `true`, object is cached on an additional canvas.
21
+ * When `false`, object is not cached unless necessary ( clipPath )
22
+ * default to true
23
+ * @since 1.7.0
24
+ * @type Boolean
25
+ * @default true
26
+ */
27
+ objectCaching: boolean;
28
+ /**
29
+ * When `false`, default object's values are not included in its serialization
30
+ * @type Boolean
31
+ * @default
32
+ */
33
+ includeDefaultValues: boolean;
34
+ /**
35
+ * When `true`, object is not exported in OBJECT/JSON
36
+ * @since 1.6.3
37
+ * @type Boolean
38
+ * @default
39
+ */
40
+ excludeFromExport: boolean;
41
+ }
42
+ //# sourceMappingURL=ObjectProps.d.ts.map
@@ -0,0 +1,66 @@
1
+ import type { Shadow } from '../../../Shadow';
2
+ import type { BaseProps } from './BaseProps';
3
+ import type { FillStrokeProps } from './FillStrokeProps';
4
+ export interface SerializedObjectProps extends BaseProps, FillStrokeProps {
5
+ /**
6
+ * Opacity of an object
7
+ * @type Number
8
+ * @default 1
9
+ */
10
+ opacity: number;
11
+ /**
12
+ * Composite rule used for canvas globalCompositeOperation
13
+ * @type String
14
+ * @default
15
+ */
16
+ globalCompositeOperation: GlobalCompositeOperation;
17
+ /**
18
+ * Background color of an object.
19
+ * takes css colors https://www.w3.org/TR/css-color-3/
20
+ * @type String
21
+ * @default
22
+ */
23
+ backgroundColor: string;
24
+ /**
25
+ * Shadow object representing shadow of this shape
26
+ * @type Shadow
27
+ * @default null
28
+ */
29
+ shadow: ReturnType<Shadow['toObject']> | null;
30
+ /**
31
+ * When set to `false`, an object is not rendered on canvas
32
+ * @type Boolean
33
+ * @default
34
+ */
35
+ visible: boolean;
36
+ /**
37
+ * a fabricObject that, without stroke define a clipping area with their shape. filled in black
38
+ * the clipPath object gets used when the object has rendered, and the context is placed in the center
39
+ * of the object cacheCanvas.
40
+ * If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'
41
+ * @type FabricObject
42
+ */
43
+ clipPath?: Partial<SerializedObjectProps> & ClipPathProps;
44
+ }
45
+ export interface ClipPathProps {
46
+ /**
47
+ * Meaningful ONLY when the object is used as clipPath.
48
+ * if true, the clipPath will make the object clip to the outside of the clipPath
49
+ * since 2.4.0
50
+ * @type boolean
51
+ * @default false
52
+ */
53
+ inverted: boolean;
54
+ /**
55
+ * Meaningful ONLY when the object is used as clipPath.
56
+ * if true, the clipPath will have its top and left relative to canvas, and will
57
+ * not be influenced by the object transform. This will make the clipPath relative
58
+ * to the canvas, but clipping just a particular object.
59
+ * WARNING this is beta, this feature may change or be renamed.
60
+ * since 2.4.0
61
+ * @type boolean
62
+ * @default false
63
+ */
64
+ absolutePositioned: boolean;
65
+ }
66
+ //# sourceMappingURL=SerializedObjectProps.d.ts.map
@@ -0,0 +1,6 @@
1
+ import type { FabricObjectProps } from './FabricObjectProps';
2
+ export type { SerializedObjectProps } from './SerializedObjectProps';
3
+ export type { FabricObjectProps };
4
+ export type TProps<T> = Partial<T> & Record<string, any>;
5
+ export type TFabricObjectProps = TProps<FabricObjectProps>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,214 @@
1
+ import { Point } from '../Point';
2
+ import { FabricObject } from './Object/FabricObject';
3
+ import type { TComplexPathData, TPathSegmentInfo, TSimplePathData } from '../util/path/typedefs';
4
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
5
+ import type { ObjectEvents } from '../EventTypeDefs';
6
+ import type { TBBox, TClassProperties, TSVGReviver } from '../typedefs';
7
+ interface UniquePathProps {
8
+ sourcePath?: string;
9
+ path?: TSimplePathData;
10
+ }
11
+ export interface SerializedPathProps extends SerializedObjectProps, UniquePathProps {
12
+ }
13
+ export interface PathProps extends FabricObjectProps, UniquePathProps {
14
+ }
15
+ export interface IPathBBox extends TBBox {
16
+ left: number;
17
+ top: number;
18
+ pathOffset: Point;
19
+ }
20
+ export declare class Path<Props extends TProps<PathProps> = Partial<PathProps>, SProps extends SerializedPathProps = SerializedPathProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> {
21
+ /**
22
+ * Array of path points
23
+ * @type Array
24
+ * @default
25
+ */
26
+ path: TSimplePathData;
27
+ pathOffset: Point;
28
+ sourcePath?: string;
29
+ segmentsInfo?: TPathSegmentInfo[];
30
+ static type: string;
31
+ static cacheProperties: string[];
32
+ /**
33
+ * Constructor
34
+ * @param {TComplexPathData} path Path data (sequence of coordinates and corresponding "command" tokens)
35
+ * @param {Partial<PathProps>} [options] Options object
36
+ * @return {Path} thisArg
37
+ */
38
+ constructor(path: TComplexPathData | string, { path, left, top, ...options }?: Partial<Props>);
39
+ /**
40
+ * @private
41
+ * @param {TComplexPathData | string} path Path data (sequence of coordinates and corresponding "command" tokens)
42
+ * @param {boolean} [adjustPosition] pass true to reposition the object according to the bounding box
43
+ * @returns {Point} top left position of the bounding box, useful for complementary positioning
44
+ */
45
+ _setPath(path: TComplexPathData | string, adjustPosition?: boolean): void;
46
+ /**
47
+ * This function is an helper for svg import. it returns the center of the object in the svg
48
+ * untransformed coordinates, by look at the polyline/polygon points.
49
+ * @private
50
+ * @return {Point} center point from element coordinates
51
+ */
52
+ _findCenterFromElement(): Point;
53
+ /**
54
+ * @private
55
+ * @param {CanvasRenderingContext2D} ctx context to render path on
56
+ */
57
+ _renderPathCommands(ctx: CanvasRenderingContext2D): void;
58
+ /**
59
+ * @private
60
+ * @param {CanvasRenderingContext2D} ctx context to render path on
61
+ */
62
+ _render(ctx: CanvasRenderingContext2D): void;
63
+ /**
64
+ * Returns string representation of an instance
65
+ * @return {string} string representation of an instance
66
+ */
67
+ toString(): string;
68
+ /**
69
+ * Returns object representation of an instance
70
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
71
+ * @return {Object} object representation of an instance
72
+ */
73
+ toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
74
+ /**
75
+ * Returns dataless object representation of an instance
76
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
77
+ * @return {Object} object representation of an instance
78
+ */
79
+ toDatalessObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
80
+ /**
81
+ * Returns svg representation of an instance
82
+ * @return {Array} an array of strings with the specific svg representation
83
+ * of the instance
84
+ */
85
+ _toSVG(): string[];
86
+ /**
87
+ * @private
88
+ * @return the path command's translate transform attribute
89
+ */
90
+ _getOffsetTransform(): string;
91
+ /**
92
+ * Returns svg clipPath representation of an instance
93
+ * @param {Function} [reviver] Method for further parsing of svg representation.
94
+ * @return {string} svg representation of an instance
95
+ */
96
+ toClipPathSVG(reviver: TSVGReviver): string;
97
+ /**
98
+ * Returns svg representation of an instance
99
+ * @param {Function} [reviver] Method for further parsing of svg representation.
100
+ * @return {string} svg representation of an instance
101
+ */
102
+ toSVG(reviver: TSVGReviver): string;
103
+ /**
104
+ * Returns number representation of an instance complexity
105
+ * @return {number} complexity of this instance
106
+ */
107
+ complexity(): number;
108
+ setDimensions(): void;
109
+ setBoundingBox(adjustPosition?: boolean): void;
110
+ _calcBoundsFromPath(): TBBox;
111
+ /**
112
+ * @private
113
+ */
114
+ _calcDimensions(): IPathBBox;
115
+ /**
116
+ * List of attribute names to account for when parsing SVG element (used by `Path.fromElement`)
117
+ * @static
118
+ * @memberOf Path
119
+ * @see http://www.w3.org/TR/SVG/paths.html#PathElement
120
+ */
121
+ static ATTRIBUTE_NAMES: string[];
122
+ /**
123
+ * Creates an instance of Path from an object
124
+ * @static
125
+ * @memberOf Path
126
+ * @param {Object} object
127
+ * @returns {Promise<Path>}
128
+ */
129
+ static fromObject<T extends TProps<SerializedPathProps>>(object: T): Promise<Path<Partial<PathProps>, SerializedPathProps, ObjectEvents>>;
130
+ /**
131
+ * Creates an instance of Path from an SVG <path> element
132
+ * @static
133
+ * @memberOf Path
134
+ * @param {SVGElement} element to parse
135
+ * @param {Partial<PathProps>} [options] Options object
136
+ */
137
+ static fromElement(element: SVGElement, options: Partial<PathProps>): Promise<Path<{
138
+ left: undefined;
139
+ top: undefined;
140
+ noScaleCache: boolean;
141
+ centeredScaling: false;
142
+ centeredRotation: boolean;
143
+ snapAngle: import("../typedefs").TDegree;
144
+ snapThreshold: import("../typedefs").TDegree;
145
+ hoverCursor: string | null;
146
+ moveCursor: string | null;
147
+ selectionBackgroundColor: string;
148
+ perPixelTargetFind: boolean;
149
+ selectable: boolean;
150
+ evented: boolean;
151
+ activeOn: "down" | "up";
152
+ clipPath: import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>;
153
+ fill: string | import("../Pattern").Pattern | import("../gradient").Gradient<"linear", "linear"> | import("../gradient").Gradient<"radial", "radial"> | null;
154
+ stroke: string | import("../Pattern").Pattern | import("../gradient").Gradient<"linear", "linear"> | import("../gradient").Gradient<"radial", "radial"> | null;
155
+ shadow: import("../Shadow").Shadow | null;
156
+ canvas: import("../..").Canvas | import("../..").StaticCanvas<import("../EventTypeDefs").StaticCanvasEvents>;
157
+ minScaleLimit: number;
158
+ objectCaching: boolean;
159
+ includeDefaultValues: boolean;
160
+ excludeFromExport: boolean;
161
+ opacity: number;
162
+ globalCompositeOperation: "screen" | "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor";
163
+ backgroundColor: string;
164
+ visible: boolean;
165
+ width: number;
166
+ height: number;
167
+ flipX: boolean;
168
+ flipY: boolean;
169
+ scaleX: number;
170
+ scaleY: number;
171
+ skewX: number;
172
+ skewY: number;
173
+ originX: number | "center" | "left" | "right";
174
+ originY: number | "center" | "top" | "bottom";
175
+ angle: import("../typedefs").TDegree;
176
+ paintFirst: "fill" | "stroke";
177
+ fillRule: "evenodd" | "nonzero";
178
+ strokeWidth: number;
179
+ strokeDashArray: number[] | null;
180
+ strokeDashOffset: number;
181
+ strokeLineCap: "butt" | "round" | "square";
182
+ strokeLineJoin: "round" | "bevel" | "miter";
183
+ strokeMiterLimit: number;
184
+ strokeUniform: boolean;
185
+ inverted: boolean;
186
+ absolutePositioned: boolean;
187
+ cornerSize: number;
188
+ touchCornerSize: number;
189
+ transparentCorners: boolean;
190
+ cornerColor: string;
191
+ cornerStrokeColor: string;
192
+ cornerStyle: "rect" | "circle";
193
+ cornerDashArray: number[] | null;
194
+ padding: number;
195
+ hasControls: boolean;
196
+ borderColor: string;
197
+ borderDashArray: number[] | null;
198
+ hasBorders: boolean;
199
+ borderOpacityWhenMoving: number;
200
+ borderScaleFactor: number;
201
+ lockMovementX: boolean;
202
+ lockMovementY: boolean;
203
+ lockRotation: boolean;
204
+ lockScalingX: boolean;
205
+ lockScalingY: boolean;
206
+ lockSkewingX: boolean;
207
+ lockSkewingY: boolean;
208
+ lockScalingFlip: boolean;
209
+ sourcePath: string;
210
+ path: TSimplePathData;
211
+ }, SerializedPathProps, ObjectEvents>>;
212
+ }
213
+ export {};
214
+ //# sourceMappingURL=Path.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { Polyline } from './Polyline';
2
+ export declare class Polygon extends Polyline {
3
+ static ownDefaults: Record<string, any>;
4
+ static type: string;
5
+ static getDefaults(): {
6
+ [x: string]: any;
7
+ };
8
+ protected isOpen(): boolean;
9
+ }
10
+ //# sourceMappingURL=Polygon.d.ts.map