fabric 5.3.0 → 6.0.0-beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintignore +3 -0
  5. package/.eslintrc.js +43 -0
  6. package/.eslintrc.json +38 -46
  7. package/.eslintrc_tests +12 -0
  8. package/.gitattributes +2 -0
  9. package/.gitpod.yml +17 -1
  10. package/.prettierignore +19 -0
  11. package/.prettierrc +4 -0
  12. package/CHANGELOG.md +532 -189
  13. package/CONTRIBUTING.md +224 -59
  14. package/README.md +200 -235
  15. package/bower.json +1 -3
  16. package/dist/fabric.d.ts +42 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +27582 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.min.js +1 -0
  21. package/dist/index.mjs +27519 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/index.node.cjs +27663 -0
  24. package/dist/index.node.cjs.map +1 -0
  25. package/dist/index.node.d.ts +14 -0
  26. package/dist/index.node.mjs +27606 -0
  27. package/dist/index.node.mjs.map +1 -0
  28. package/dist/src/ClassRegistry.d.ts +13 -0
  29. package/dist/src/Collection.d.ts +136 -0
  30. package/dist/src/CommonMethods.d.ts +32 -0
  31. package/dist/src/EventTypeDefs.d.ts +227 -0
  32. package/dist/src/Intersection.d.ts +112 -0
  33. package/dist/src/Observable.d.ts +60 -0
  34. package/dist/src/Pattern.d.ts +113 -0
  35. package/dist/src/Point.d.ts +232 -0
  36. package/dist/src/Shadow.d.ts +97 -0
  37. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  38. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  39. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  40. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  41. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  42. package/dist/src/cache.d.ts +47 -0
  43. package/dist/src/canvas/Canvas.d.ts +548 -0
  44. package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
  45. package/dist/src/canvas/StaticCanvas.d.ts +778 -0
  46. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  47. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  48. package/dist/src/color/Color.d.ts +174 -0
  49. package/dist/src/color/color_map.d.ts +155 -0
  50. package/dist/src/color/constants.d.ts +22 -0
  51. package/dist/src/color/util.d.ts +12 -0
  52. package/dist/src/config.d.ts +115 -0
  53. package/dist/src/constants.d.ts +14 -0
  54. package/dist/src/controls/Control.d.ts +228 -0
  55. package/dist/src/controls/changeWidth.d.ts +13 -0
  56. package/dist/src/controls/commonControls.d.ts +28 -0
  57. package/dist/src/controls/controlRendering.d.ts +29 -0
  58. package/dist/src/controls/drag.d.ts +12 -0
  59. package/dist/src/controls/index.d.ts +13 -0
  60. package/dist/src/controls/polyControl.d.ts +5 -0
  61. package/dist/src/controls/rotate.d.ts +12 -0
  62. package/dist/src/controls/scale.d.ts +47 -0
  63. package/dist/src/controls/scaleSkew.d.ts +39 -0
  64. package/dist/src/controls/skew.d.ts +33 -0
  65. package/dist/src/controls/util.d.ts +41 -0
  66. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  67. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  68. package/dist/src/env/browser.d.ts +3 -0
  69. package/dist/src/env/index.d.ts +15 -0
  70. package/dist/src/env/node.d.ts +5 -0
  71. package/dist/src/env/types.d.ts +15 -0
  72. package/dist/src/filters/BaseFilter.d.ts +153 -0
  73. package/dist/src/filters/BlendColor.d.ts +80 -0
  74. package/dist/src/filters/BlendImage.d.ts +92 -0
  75. package/dist/src/filters/Blur.d.ts +51 -0
  76. package/dist/src/filters/Boilerplate.d.ts +48 -0
  77. package/dist/src/filters/Brightness.d.ts +47 -0
  78. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  79. package/dist/src/filters/ColorMatrix.d.ts +63 -0
  80. package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
  81. package/dist/src/filters/Composed.d.ts +45 -0
  82. package/dist/src/filters/Contrast.d.ts +45 -0
  83. package/dist/src/filters/Convolute.d.ts +82 -0
  84. package/dist/src/filters/FilterBackend.d.ts +14 -0
  85. package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
  86. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  87. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  88. package/dist/src/filters/Gamma.d.ts +54 -0
  89. package/dist/src/filters/Grayscale.d.ts +46 -0
  90. package/dist/src/filters/HueRotation.d.ts +24 -0
  91. package/dist/src/filters/Invert.d.ts +55 -0
  92. package/dist/src/filters/Noise.d.ts +54 -0
  93. package/dist/src/filters/Pixelate.d.ts +44 -0
  94. package/dist/src/filters/RemoveColor.d.ts +63 -0
  95. package/dist/src/filters/Resize.d.ts +136 -0
  96. package/dist/src/filters/Saturation.d.ts +48 -0
  97. package/dist/src/filters/Vibrance.d.ts +48 -0
  98. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  99. package/dist/src/filters/filters.d.ts +21 -0
  100. package/dist/src/filters/index.d.ts +5 -0
  101. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  102. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  103. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  104. package/dist/src/filters/shaders/blur.d.ts +2 -0
  105. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  106. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  107. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  108. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  109. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  110. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  111. package/dist/src/filters/shaders/invert.d.ts +2 -0
  112. package/dist/src/filters/shaders/noise.d.ts +2 -0
  113. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  114. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  115. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  116. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  117. package/dist/src/filters/typedefs.d.ts +49 -0
  118. package/dist/src/gradient/Gradient.d.ts +149 -0
  119. package/dist/src/gradient/constants.d.ts +15 -0
  120. package/dist/src/gradient/parser/index.d.ts +4 -0
  121. package/dist/src/gradient/parser/misc.d.ts +4 -0
  122. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  123. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  124. package/dist/src/gradient/typedefs.d.ts +93 -0
  125. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  126. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  127. package/dist/src/parkinglot/straighten.d.ts +2 -0
  128. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  129. package/dist/src/parser/attributes.d.ts +6 -0
  130. package/dist/src/parser/constants.d.ts +53 -0
  131. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  132. package/dist/src/parser/elementById.d.ts +6 -0
  133. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  134. package/dist/src/parser/elements_parser.d.ts +3 -0
  135. package/dist/src/parser/getCSSRules.d.ts +7 -0
  136. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  137. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  138. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  139. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  140. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  141. package/dist/src/parser/index.d.ts +10 -0
  142. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  143. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  144. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  145. package/dist/src/parser/normalizeValue.d.ts +2 -0
  146. package/dist/src/parser/parseAttributes.d.ts +9 -0
  147. package/dist/src/parser/parseElements.d.ts +11 -0
  148. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  149. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  150. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  151. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  152. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  153. package/dist/src/parser/parseStyleString.d.ts +2 -0
  154. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  155. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  156. package/dist/src/parser/percent.d.ts +9 -0
  157. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  158. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  159. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  160. package/dist/src/parser/selectorMatches.d.ts +2 -0
  161. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  162. package/dist/src/parser/skewMatrix.d.ts +2 -0
  163. package/dist/src/parser/translateMatrix.d.ts +2 -0
  164. package/dist/src/shapes/ActiveSelection.d.ts +82 -0
  165. package/dist/src/shapes/Circle.d.ts +99 -0
  166. package/dist/src/shapes/Ellipse.d.ts +84 -0
  167. package/dist/src/shapes/Group.d.ts +408 -0
  168. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  169. package/dist/src/shapes/IText/IText.d.ts +335 -0
  170. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  171. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
  172. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  173. package/dist/src/shapes/IText/constants.d.ts +13 -0
  174. package/dist/src/shapes/Image.d.ts +311 -0
  175. package/dist/src/shapes/Line.d.ts +126 -0
  176. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  177. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  178. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  179. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  180. package/dist/src/shapes/Object/Object.d.ts +594 -0
  181. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  182. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  183. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  184. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  185. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  186. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  187. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  188. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  189. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  190. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  191. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  192. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  193. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  194. package/dist/src/shapes/Path.d.ts +130 -0
  195. package/dist/src/shapes/Polygon.d.ts +9 -0
  196. package/dist/src/shapes/Polyline.d.ts +140 -0
  197. package/dist/src/shapes/Rect.d.ts +76 -0
  198. package/dist/src/shapes/Text/StyledText.d.ts +119 -0
  199. package/dist/src/shapes/Text/Text.d.ts +673 -0
  200. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  201. package/dist/src/shapes/Text/constants.d.ts +7 -0
  202. package/dist/src/shapes/Textbox.d.ts +185 -0
  203. package/dist/src/shapes/Triangle.d.ts +25 -0
  204. package/dist/src/typedefs.d.ts +90 -0
  205. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  206. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  207. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  208. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  209. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  210. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  211. package/dist/src/util/animation/animate.d.ts +37 -0
  212. package/dist/src/util/animation/easing.d.ts +130 -0
  213. package/dist/src/util/animation/types.d.ts +87 -0
  214. package/dist/src/util/applyMixins.d.ts +8 -0
  215. package/dist/src/util/dom_event.d.ts +5 -0
  216. package/dist/src/util/dom_misc.d.ts +39 -0
  217. package/dist/src/util/dom_request.d.ts +14 -0
  218. package/dist/src/util/dom_style.d.ts +7 -0
  219. package/dist/src/util/fireEvent.d.ts +3 -0
  220. package/dist/src/util/index.d.ts +35 -0
  221. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  222. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  223. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  224. package/dist/src/util/internals/index.d.ts +4 -0
  225. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  226. package/dist/src/util/internals/uid.d.ts +2 -0
  227. package/dist/src/util/lang_string.d.ts +22 -0
  228. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  229. package/dist/src/util/misc/capValue.d.ts +2 -0
  230. package/dist/src/util/misc/cos.d.ts +10 -0
  231. package/dist/src/util/misc/dom.d.ts +28 -0
  232. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  233. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  234. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  235. package/dist/src/util/misc/matrix.d.ts +92 -0
  236. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  237. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  238. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  239. package/dist/src/util/misc/pick.d.ts +9 -0
  240. package/dist/src/util/misc/planeChange.d.ts +84 -0
  241. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  242. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  243. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  244. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  245. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  246. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  247. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  248. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  249. package/dist/src/util/misc/sin.d.ts +10 -0
  250. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  251. package/dist/src/util/misc/textStyles.d.ts +32 -0
  252. package/dist/src/util/misc/toFixed.d.ts +8 -0
  253. package/dist/src/util/misc/vectors.d.ts +57 -0
  254. package/dist/src/util/path/index.d.ts +96 -0
  255. package/dist/src/util/path/regex.d.ts +3 -0
  256. package/dist/src/util/path/typechecks.d.ts +24 -0
  257. package/dist/src/util/path/typedefs.d.ts +220 -0
  258. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  259. package/dist/src/util/types.d.ts +19 -0
  260. package/fabric.ts +51 -0
  261. package/index.node.ts +37 -0
  262. package/index.ts +1 -0
  263. package/package.json +100 -40
  264. package/publish.js +0 -26
  265. package/rollup.config.mjs +91 -0
  266. package/rollup.test.config.js +24 -0
  267. package/scripts/build.mjs +50 -0
  268. package/scripts/buildLock.mjs +115 -0
  269. package/scripts/buildReporter.mjs +15 -0
  270. package/scripts/buildStats.mjs +139 -0
  271. package/scripts/dirname.mjs +14 -0
  272. package/scripts/git.mjs +36 -0
  273. package/scripts/index.mjs +564 -0
  274. package/scripts/sandbox.mjs +149 -0
  275. package/src/ClassRegistry.ts +56 -0
  276. package/src/Collection.ts +346 -0
  277. package/src/CommonMethods.ts +63 -0
  278. package/src/EventTypeDefs.ts +296 -0
  279. package/src/Intersection.ts +302 -0
  280. package/src/Observable.ts +181 -0
  281. package/src/Pattern.ts +227 -0
  282. package/src/Point.ts +388 -0
  283. package/src/Shadow.ts +214 -0
  284. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  285. package/src/brushes/CircleBrush.ts +145 -0
  286. package/src/brushes/PatternBrush.ts +70 -0
  287. package/src/brushes/PencilBrush.ts +300 -0
  288. package/src/brushes/SprayBrush.ts +219 -0
  289. package/src/cache.ts +90 -0
  290. package/src/canvas/Canvas.ts +1607 -0
  291. package/src/canvas/SelectableCanvas.ts +1608 -0
  292. package/src/canvas/StaticCanvas.ts +1734 -0
  293. package/src/canvas/TextEditingManager.ts +48 -0
  294. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  295. package/src/color/Color.ts +404 -0
  296. package/src/color/color_map.ts +154 -0
  297. package/src/color/constants.ts +26 -0
  298. package/src/color/util.ts +32 -0
  299. package/src/config.ts +159 -0
  300. package/src/constants.ts +20 -0
  301. package/src/controls/Control.ts +380 -0
  302. package/src/controls/changeWidth.ts +52 -0
  303. package/src/controls/commonControls.ts +105 -0
  304. package/src/controls/controlRendering.ts +138 -0
  305. package/src/controls/drag.ts +31 -0
  306. package/src/controls/index.ts +22 -0
  307. package/src/controls/polyControl.ts +135 -0
  308. package/src/controls/rotate.ts +87 -0
  309. package/src/controls/scale.ts +277 -0
  310. package/src/controls/scaleSkew.ts +92 -0
  311. package/src/controls/skew.ts +242 -0
  312. package/src/controls/util.ts +154 -0
  313. package/src/controls/wrapWithFireEvent.ts +25 -0
  314. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  315. package/src/env/browser.ts +32 -0
  316. package/src/env/index.ts +24 -0
  317. package/src/env/node.ts +56 -0
  318. package/src/env/types.ts +15 -0
  319. package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
  320. package/src/filters/BlendColor.ts +217 -0
  321. package/src/filters/BlendImage.ts +228 -0
  322. package/src/filters/Blur.ts +179 -0
  323. package/src/filters/Boilerplate.ts +94 -0
  324. package/src/filters/Brightness.ts +83 -0
  325. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  326. package/src/filters/ColorMatrix.ts +145 -0
  327. package/src/filters/ColorMatrixFilters.ts +77 -0
  328. package/src/filters/Composed.ts +76 -0
  329. package/src/filters/Contrast.ts +82 -0
  330. package/src/filters/Convolute.ts +184 -0
  331. package/src/filters/FilterBackend.ts +34 -0
  332. package/src/filters/GLProbes/GLProbe.ts +11 -0
  333. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  334. package/src/filters/GLProbes/WebGLProbe.ts +46 -0
  335. package/src/filters/Gamma.ts +110 -0
  336. package/src/filters/Grayscale.ts +102 -0
  337. package/src/filters/HueRotation.ts +62 -0
  338. package/src/filters/Invert.ts +99 -0
  339. package/src/filters/Noise.ts +94 -0
  340. package/src/filters/Pixelate.ts +96 -0
  341. package/src/filters/RemoveColor.ts +135 -0
  342. package/src/filters/Resize.ts +538 -0
  343. package/src/filters/Saturation.ts +87 -0
  344. package/src/filters/Vibrance.ts +88 -0
  345. package/src/filters/WebGLFilterBackend.ts +430 -0
  346. package/src/filters/filters.ts +28 -0
  347. package/src/filters/index.ts +5 -0
  348. package/src/filters/shaders/baseFilter.ts +19 -0
  349. package/src/filters/shaders/blendColor.ts +33 -0
  350. package/src/filters/shaders/blendImage.ts +32 -0
  351. package/src/filters/shaders/blur.ts +24 -0
  352. package/src/filters/shaders/brightness.ts +11 -0
  353. package/src/filters/shaders/colorMatrix.ts +12 -0
  354. package/src/filters/shaders/constrast.ts +11 -0
  355. package/src/filters/shaders/convolute.ts +154 -0
  356. package/src/filters/shaders/gamma.ts +15 -0
  357. package/src/filters/shaders/grayscale.ts +36 -0
  358. package/src/filters/shaders/invert.ts +19 -0
  359. package/src/filters/shaders/noise.ts +16 -0
  360. package/src/filters/shaders/pixelate.ts +19 -0
  361. package/src/filters/shaders/removeColor.ts +13 -0
  362. package/src/filters/shaders/saturation.ts +15 -0
  363. package/src/filters/shaders/vibrance.ts +16 -0
  364. package/src/filters/typedefs.ts +65 -0
  365. package/src/gradient/Gradient.ts +406 -0
  366. package/src/gradient/constants.ts +12 -0
  367. package/src/gradient/parser/index.ts +3 -0
  368. package/src/gradient/parser/misc.ts +13 -0
  369. package/src/gradient/parser/parseColorStops.ts +56 -0
  370. package/src/gradient/parser/parseCoords.ts +73 -0
  371. package/src/gradient/typedefs.ts +104 -0
  372. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  373. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  374. package/src/parkinglot/straighten.ts +58 -0
  375. package/src/parser/applyViewboxTransform.ts +157 -0
  376. package/src/parser/attributes.ts +25 -0
  377. package/src/parser/constants.ts +115 -0
  378. package/src/parser/doesSomeParentMatch.ts +19 -0
  379. package/src/parser/elementById.ts +21 -0
  380. package/src/parser/elementMatchesRule.ts +16 -0
  381. package/src/parser/elements_parser.ts +191 -0
  382. package/src/parser/getCSSRules.ts +62 -0
  383. package/src/parser/getGlobalStylesForElement.ts +19 -0
  384. package/src/parser/getGradientDefs.ts +31 -0
  385. package/src/parser/getMultipleNodes.ts +15 -0
  386. package/src/parser/getSvgRegex.ts +5 -0
  387. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  388. package/src/parser/index.ts +9 -0
  389. package/src/parser/loadSVGFromString.ts +26 -0
  390. package/src/parser/loadSVGFromURL.ts +40 -0
  391. package/src/parser/normalizeAttr.ts +10 -0
  392. package/src/parser/normalizeValue.ts +63 -0
  393. package/src/parser/parseAttributes.ts +90 -0
  394. package/src/parser/parseElements.ts +28 -0
  395. package/src/parser/parseFontDeclaration.ts +44 -0
  396. package/src/parser/parsePointsAttribute.ts +34 -0
  397. package/src/parser/parseSVGDocument.ts +93 -0
  398. package/src/parser/parseStyleAttribute.ts +27 -0
  399. package/src/parser/parseStyleObject.ts +15 -0
  400. package/src/parser/parseStyleString.ts +16 -0
  401. package/src/parser/parseTransformAttribute.ts +155 -0
  402. package/src/parser/parseUseDirectives.ts +78 -0
  403. package/src/parser/percent.ts +27 -0
  404. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  405. package/src/parser/rotateMatrix.ts +21 -0
  406. package/src/parser/scaleMatrix.ts +9 -0
  407. package/src/parser/selectorMatches.ts +25 -0
  408. package/src/parser/setStrokeFillOpacity.ts +40 -0
  409. package/src/parser/skewMatrix.ts +6 -0
  410. package/src/parser/translateMatrix.ts +8 -0
  411. package/src/shapes/ActiveSelection.ts +189 -0
  412. package/src/shapes/Circle.ts +242 -0
  413. package/src/shapes/Ellipse.ts +179 -0
  414. package/src/shapes/Group.ts +1100 -0
  415. package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
  416. package/src/shapes/IText/IText.ts +693 -0
  417. package/src/shapes/IText/ITextBehavior.ts +1064 -0
  418. package/src/shapes/IText/ITextClickBehavior.ts +325 -0
  419. package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
  420. package/src/shapes/IText/constants.ts +47 -0
  421. package/src/shapes/Image.ts +841 -0
  422. package/src/shapes/Line.ts +346 -0
  423. package/src/shapes/Object/AnimatableObject.ts +106 -0
  424. package/src/shapes/Object/FabricObject.ts +29 -0
  425. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  426. package/src/shapes/Object/InteractiveObject.ts +672 -0
  427. package/src/shapes/Object/Object.ts +1561 -0
  428. package/src/shapes/Object/ObjectGeometry.ts +813 -0
  429. package/src/shapes/Object/ObjectOrigin.ts +276 -0
  430. package/src/shapes/Object/StackedObject.ts +206 -0
  431. package/src/shapes/Object/defaultValues.ts +108 -0
  432. package/src/shapes/Object/types/BaseProps.ts +96 -0
  433. package/src/shapes/Object/types/BorderProps.ts +40 -0
  434. package/src/shapes/Object/types/ControlProps.ts +69 -0
  435. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  436. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  437. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  438. package/src/shapes/Object/types/ObjectProps.ts +46 -0
  439. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  440. package/src/shapes/Object/types/index.ts +8 -0
  441. package/src/shapes/Path.ts +416 -0
  442. package/src/shapes/Polygon.ts +20 -0
  443. package/src/shapes/Polyline.ts +359 -0
  444. package/src/shapes/Rect.ts +233 -0
  445. package/src/shapes/Text/StyledText.ts +329 -0
  446. package/src/shapes/Text/Text.ts +1884 -0
  447. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  448. package/src/shapes/Text/constants.ts +91 -0
  449. package/src/shapes/Textbox.ts +477 -0
  450. package/src/shapes/Triangle.ts +60 -0
  451. package/src/typedefs.ts +115 -0
  452. package/src/util/animation/AnimationBase.ts +166 -0
  453. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  454. package/src/util/animation/AnimationRegistry.ts +58 -0
  455. package/src/util/animation/ArrayAnimation.ts +27 -0
  456. package/src/util/animation/ColorAnimation.ts +74 -0
  457. package/src/util/animation/ValueAnimation.ts +29 -0
  458. package/src/util/animation/animate.ts +74 -0
  459. package/src/util/animation/easing.ts +327 -0
  460. package/src/util/animation/types.ts +136 -0
  461. package/src/util/applyMixins.ts +22 -0
  462. package/src/util/dom_event.ts +28 -0
  463. package/src/util/dom_misc.ts +121 -0
  464. package/src/util/dom_request.ts +64 -0
  465. package/src/util/dom_style.ts +20 -0
  466. package/src/util/fireEvent.ts +15 -0
  467. package/src/util/index.ts +102 -0
  468. package/src/util/internals/cloneDeep.ts +2 -0
  469. package/src/util/internals/getRandomInt.ts +8 -0
  470. package/src/util/internals/ifNaN.ts +9 -0
  471. package/src/util/internals/index.ts +3 -0
  472. package/src/util/internals/removeFromArray.ts +14 -0
  473. package/src/util/internals/uid.ts +3 -0
  474. package/src/util/lang_string.ts +79 -0
  475. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  476. package/src/util/misc/capValue.ts +2 -0
  477. package/src/util/misc/cos.ts +24 -0
  478. package/src/util/misc/dom.ts +50 -0
  479. package/src/util/misc/findScaleTo.ts +44 -0
  480. package/src/util/misc/groupSVGElements.ts +15 -0
  481. package/src/util/misc/isTransparent.ts +28 -0
  482. package/src/util/misc/matrix.ts +207 -0
  483. package/src/util/misc/mergeClipPaths.ts +40 -0
  484. package/src/util/misc/objectEnlive.ts +189 -0
  485. package/src/util/misc/objectTransforms.ts +129 -0
  486. package/src/util/misc/pick.ts +29 -0
  487. package/src/util/misc/planeChange.ts +136 -0
  488. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  489. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
  490. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  491. package/src/util/misc/projectStroke/index.ts +53 -0
  492. package/src/util/misc/projectStroke/types.ts +24 -0
  493. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  494. package/src/util/misc/resolveOrigin.ts +22 -0
  495. package/src/util/misc/rotatePoint.ts +15 -0
  496. package/src/util/misc/sin.ts +26 -0
  497. package/src/util/misc/svgParsing.ts +181 -0
  498. package/src/util/misc/textStyles.ts +134 -0
  499. package/src/util/misc/toFixed.ts +8 -0
  500. package/src/util/misc/vectors.ts +82 -0
  501. package/src/util/path/index.ts +1038 -0
  502. package/src/util/path/regex.ts +41 -0
  503. package/src/util/path/typechecks.ts +145 -0
  504. package/src/util/path/typedefs.ts +305 -0
  505. package/src/util/transform_matrix_removal.ts +60 -0
  506. package/src/util/types.ts +78 -0
  507. package/tsconfig.json +106 -0
  508. package/HEADER.js +0 -203
  509. package/build.js +0 -287
  510. package/dist/fabric.js +0 -31187
  511. package/dist/fabric.min.js +0 -1
  512. package/old-travis-reference.yml +0 -97
  513. package/src/brushes/circle_brush.class.js +0 -144
  514. package/src/brushes/pattern_brush.class.js +0 -61
  515. package/src/brushes/pencil_brush.class.js +0 -310
  516. package/src/brushes/spray_brush.class.js +0 -219
  517. package/src/canvas.class.js +0 -1312
  518. package/src/color.class.js +0 -636
  519. package/src/control.class.js +0 -339
  520. package/src/controls.actions.js +0 -740
  521. package/src/controls.render.js +0 -99
  522. package/src/elements_parser.js +0 -152
  523. package/src/filters/2d_backend.class.js +0 -65
  524. package/src/filters/blendcolor_filter.class.js +0 -251
  525. package/src/filters/blendimage_filter.class.js +0 -247
  526. package/src/filters/blur_filter.class.js +0 -217
  527. package/src/filters/brightness_filter.class.js +0 -113
  528. package/src/filters/colormatrix_filter.class.js +0 -159
  529. package/src/filters/composed_filter.class.js +0 -72
  530. package/src/filters/contrast_filter.class.js +0 -113
  531. package/src/filters/convolute_filter.class.js +0 -352
  532. package/src/filters/filter_boilerplate.js +0 -111
  533. package/src/filters/filter_generator.js +0 -85
  534. package/src/filters/gamma_filter.class.js +0 -136
  535. package/src/filters/grayscale_filter.class.js +0 -154
  536. package/src/filters/hue_rotation.class.js +0 -107
  537. package/src/filters/invert_filter.class.js +0 -111
  538. package/src/filters/noise_filter.class.js +0 -134
  539. package/src/filters/pixelate_filter.class.js +0 -137
  540. package/src/filters/removecolor_filter.class.js +0 -173
  541. package/src/filters/resize_filter.class.js +0 -490
  542. package/src/filters/saturate_filter.class.js +0 -119
  543. package/src/filters/vibrance_filter.class.js +0 -122
  544. package/src/filters/webgl_backend.class.js +0 -396
  545. package/src/globalFabric.js +0 -4
  546. package/src/gradient.class.js +0 -490
  547. package/src/intersection.class.js +0 -172
  548. package/src/log.js +0 -11
  549. package/src/mixins/animation.mixin.js +0 -231
  550. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  551. package/src/mixins/canvas_events.mixin.js +0 -974
  552. package/src/mixins/canvas_gestures.mixin.js +0 -149
  553. package/src/mixins/canvas_grouping.mixin.js +0 -177
  554. package/src/mixins/canvas_serialization.mixin.js +0 -228
  555. package/src/mixins/collection.mixin.js +0 -170
  556. package/src/mixins/default_controls.js +0 -114
  557. package/src/mixins/itext.svg_export.js +0 -241
  558. package/src/mixins/itext_behavior.mixin.js +0 -940
  559. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  560. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  561. package/src/mixins/object.svg_export.js +0 -258
  562. package/src/mixins/object_geometry.mixin.js +0 -683
  563. package/src/mixins/object_interactivity.mixin.js +0 -314
  564. package/src/mixins/object_origin.mixin.js +0 -255
  565. package/src/mixins/object_stacking.mixin.js +0 -80
  566. package/src/mixins/object_straightening.mixin.js +0 -80
  567. package/src/mixins/observable.mixin.js +0 -141
  568. package/src/mixins/shared_methods.mixin.js +0 -94
  569. package/src/mixins/stateful.mixin.js +0 -107
  570. package/src/mixins/text_style.mixin.js +0 -324
  571. package/src/parser.js +0 -1090
  572. package/src/pattern.class.js +0 -189
  573. package/src/point.class.js +0 -337
  574. package/src/shadow.class.js +0 -195
  575. package/src/shapes/active_selection.class.js +0 -155
  576. package/src/shapes/circle.class.js +0 -210
  577. package/src/shapes/ellipse.class.js +0 -181
  578. package/src/shapes/group.class.js +0 -593
  579. package/src/shapes/image.class.js +0 -764
  580. package/src/shapes/itext.class.js +0 -526
  581. package/src/shapes/line.class.js +0 -324
  582. package/src/shapes/object.class.js +0 -2008
  583. package/src/shapes/path.class.js +0 -384
  584. package/src/shapes/polygon.class.js +0 -81
  585. package/src/shapes/polyline.class.js +0 -268
  586. package/src/shapes/rect.class.js +0 -187
  587. package/src/shapes/text.class.js +0 -1696
  588. package/src/shapes/textbox.class.js +0 -461
  589. package/src/shapes/triangle.class.js +0 -93
  590. package/src/static_canvas.class.js +0 -1881
  591. package/src/util/anim_ease.js +0 -398
  592. package/src/util/animate.js +0 -254
  593. package/src/util/animate_color.js +0 -74
  594. package/src/util/dom_event.js +0 -50
  595. package/src/util/dom_misc.js +0 -300
  596. package/src/util/dom_request.js +0 -54
  597. package/src/util/dom_style.js +0 -70
  598. package/src/util/lang_array.js +0 -94
  599. package/src/util/lang_class.js +0 -115
  600. package/src/util/lang_object.js +0 -75
  601. package/src/util/lang_string.js +0 -110
  602. package/src/util/misc.js +0 -1330
  603. package/src/util/named_accessors.mixin.js +0 -428
  604. package/src/util/path.js +0 -829
@@ -0,0 +1,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 { TDegree } from '../../../typedefs';
2
+ import { BorderProps } from './BorderProps';
3
+ import { ControlProps } from './ControlProps';
4
+ import { LockInteractionProps } from './LockInteractionProps';
5
+ import { 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 { 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 { TFiller } from '../../../typedefs';
5
+ import type { FabricObject } from '../Object';
6
+ import { 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 { Shadow } from '../../../Shadow';
2
+ import { BaseProps } from './BaseProps';
3
+ import { 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 { FabricObjectProps } from './FabricObjectProps';
2
+ export { SerializedObjectProps } from './SerializedObjectProps';
3
+ export { 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,130 @@
1
+ import { Point } from '../Point';
2
+ import { FabricObject } from './Object/FabricObject';
3
+ import { TPathSegmentInfo, TSimplePathData } from '../util/path/typedefs';
4
+ import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
5
+ import type { ObjectEvents } from '../EventTypeDefs';
6
+ import { 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 declare class Path<Props extends TProps<PathProps> = Partial<PathProps>, SProps extends SerializedPathProps = SerializedPathProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> {
16
+ /**
17
+ * Array of path points
18
+ * @type Array
19
+ * @default
20
+ */
21
+ path: TSimplePathData;
22
+ pathOffset: Point;
23
+ fromSVG?: boolean;
24
+ sourcePath?: string;
25
+ segmentsInfo?: TPathSegmentInfo[];
26
+ static cacheProperties: string[];
27
+ /**
28
+ * Constructor
29
+ * @param {TSimplePathData} path Path data (sequence of coordinates and corresponding "command" tokens)
30
+ * @param {Object} [options] Options object
31
+ * @return {Path} thisArg
32
+ */
33
+ constructor(path: TSimplePathData | string, { path, left, top, ...options }?: Props);
34
+ /**
35
+ * @private
36
+ * @param {TSimplePathData | string} path Path data (sequence of coordinates and corresponding "command" tokens)
37
+ * @param {boolean} [adjustPosition] pass true to reposition the object according to the bounding box
38
+ * @returns {Point} top left position of the bounding box, useful for complementary positioning
39
+ */
40
+ _setPath(path: TSimplePathData | string, adjustPosition?: boolean): Point;
41
+ /**
42
+ * @private
43
+ * @param {CanvasRenderingContext2D} ctx context to render path on
44
+ */
45
+ _renderPathCommands(ctx: CanvasRenderingContext2D): void;
46
+ /**
47
+ * @private
48
+ * @param {CanvasRenderingContext2D} ctx context to render path on
49
+ */
50
+ _render(ctx: CanvasRenderingContext2D): void;
51
+ /**
52
+ * Returns string representation of an instance
53
+ * @return {string} string representation of an instance
54
+ */
55
+ toString(): string;
56
+ /**
57
+ * Returns object representation of an instance
58
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
59
+ * @return {Object} object representation of an instance
60
+ */
61
+ toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
62
+ /**
63
+ * Returns dataless object representation of an instance
64
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
65
+ * @return {Object} object representation of an instance
66
+ */
67
+ toDatalessObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
68
+ /**
69
+ * Returns svg representation of an instance
70
+ * @return {Array} an array of strings with the specific svg representation
71
+ * of the instance
72
+ */
73
+ _toSVG(): string[];
74
+ _getOffsetTransform(): string;
75
+ /**
76
+ * Returns svg clipPath representation of an instance
77
+ * @param {Function} [reviver] Method for further parsing of svg representation.
78
+ * @return {string} svg representation of an instance
79
+ */
80
+ toClipPathSVG(reviver: TSVGReviver): string;
81
+ /**
82
+ * Returns svg representation of an instance
83
+ * @param {Function} [reviver] Method for further parsing of svg representation.
84
+ * @return {string} svg representation of an instance
85
+ */
86
+ toSVG(reviver: TSVGReviver): string;
87
+ /**
88
+ * Returns number representation of an instance complexity
89
+ * @return {number} complexity of this instance
90
+ */
91
+ complexity(): number;
92
+ setDimensions(): Point;
93
+ /**
94
+ * @private
95
+ */
96
+ _calcDimensions(): {
97
+ left: number;
98
+ top: number;
99
+ pathOffset: Point;
100
+ width: number;
101
+ height: number;
102
+ };
103
+ /**
104
+ * List of attribute names to account for when parsing SVG element (used by `Path.fromElement`)
105
+ * @static
106
+ * @memberOf Path
107
+ * @see http://www.w3.org/TR/SVG/paths.html#PathElement
108
+ */
109
+ static ATTRIBUTE_NAMES: string[];
110
+ /**
111
+ * Creates an instance of Path from an object
112
+ * @static
113
+ * @memberOf Path
114
+ * @param {Object} object
115
+ * @returns {Promise<Path>}
116
+ */
117
+ static fromObject<T extends TProps<SerializedPathProps>>(object: T): Promise<Path<Partial<PathProps>, SerializedPathProps, ObjectEvents>>;
118
+ /**
119
+ * Creates an instance of Path from an SVG <path> element
120
+ * @static
121
+ * @memberOf Path
122
+ * @param {SVGElement} element to parse
123
+ * @param {Function} callback Callback to invoke when an Path instance is created
124
+ * @param {Object} [options] Options object
125
+ * @param {Function} [callback] Options callback invoked after parsing is finished
126
+ */
127
+ static fromElement(element: SVGElement, callback: (path: Path) => void, options: any): void;
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=Path.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { Polyline } from './Polyline';
2
+ export declare class Polygon extends Polyline {
3
+ static ownDefaults: Record<string, any>;
4
+ static getDefaults(): {
5
+ [x: string]: any;
6
+ };
7
+ protected isOpen(): boolean;
8
+ }
9
+ //# sourceMappingURL=Polygon.d.ts.map