fabric 5.3.0 → 6.0.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintrc.js +43 -0
  5. package/.eslintrc.json +38 -46
  6. package/.eslintrc_tests +12 -0
  7. package/.gitattributes +2 -0
  8. package/.prettierignore +16 -0
  9. package/.prettierrc +4 -0
  10. package/CHANGELOG.md +491 -189
  11. package/CONTRIBUTING.md +226 -58
  12. package/README.md +188 -239
  13. package/bower.json +1 -3
  14. package/dist/fabric.d.ts +1021 -0
  15. package/dist/index.cjs +28027 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.min.js +1 -0
  19. package/dist/index.mjs +27964 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/index.node.cjs +28092 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.d.ts +15 -0
  24. package/dist/index.node.mjs +28035 -0
  25. package/dist/index.node.mjs.map +1 -0
  26. package/dist/src/Collection.d.ts +126 -0
  27. package/dist/src/CommonMethods.d.ts +32 -0
  28. package/dist/src/EventTypeDefs.d.ts +226 -0
  29. package/dist/src/Intersection.d.ts +100 -0
  30. package/dist/src/Observable.d.ts +54 -0
  31. package/dist/src/Pattern.d.ts +104 -0
  32. package/dist/src/Point.d.ts +232 -0
  33. package/dist/src/Shadow.d.ts +87 -0
  34. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  35. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  36. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  37. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  38. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  39. package/dist/src/cache.d.ts +46 -0
  40. package/dist/src/canvas/Canvas.d.ts +567 -0
  41. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  42. package/dist/src/canvas/StaticCanvas.d.ts +751 -0
  43. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  44. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  45. package/dist/src/color/Color.d.ts +174 -0
  46. package/dist/src/color/color_map.d.ts +155 -0
  47. package/dist/src/color/constants.d.ts +22 -0
  48. package/dist/src/color/util.d.ts +12 -0
  49. package/dist/src/config.d.ts +115 -0
  50. package/dist/src/constants.d.ts +14 -0
  51. package/dist/src/controls/Control.d.ts +228 -0
  52. package/dist/src/controls/changeWidth.d.ts +13 -0
  53. package/dist/src/controls/controls.render.d.ts +29 -0
  54. package/dist/src/controls/default_controls.d.ts +50 -0
  55. package/dist/src/controls/drag.d.ts +12 -0
  56. package/dist/src/controls/polyControl.d.ts +5 -0
  57. package/dist/src/controls/rotate.d.ts +12 -0
  58. package/dist/src/controls/scale.d.ts +47 -0
  59. package/dist/src/controls/scaleSkew.d.ts +39 -0
  60. package/dist/src/controls/skew.d.ts +33 -0
  61. package/dist/src/controls/util.d.ts +41 -0
  62. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  63. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  64. package/dist/src/env/browser.d.ts +3 -0
  65. package/dist/src/env/index.d.ts +7 -0
  66. package/dist/src/env/node.d.ts +3 -0
  67. package/dist/src/env/types.d.ts +15 -0
  68. package/dist/src/filters/BaseFilter.d.ts +156 -0
  69. package/dist/src/filters/BlendColor.d.ts +80 -0
  70. package/dist/src/filters/BlendImage.d.ts +90 -0
  71. package/dist/src/filters/Blur.d.ts +50 -0
  72. package/dist/src/filters/Boilerplate.d.ts +46 -0
  73. package/dist/src/filters/Brightness.d.ts +46 -0
  74. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  75. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  76. package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
  77. package/dist/src/filters/Composed.d.ts +47 -0
  78. package/dist/src/filters/Contrast.d.ts +44 -0
  79. package/dist/src/filters/Convolute.d.ts +82 -0
  80. package/dist/src/filters/FilterBackend.d.ts +14 -0
  81. package/dist/src/filters/Gamma.d.ts +53 -0
  82. package/dist/src/filters/Grayscale.d.ts +45 -0
  83. package/dist/src/filters/HueRotation.d.ts +24 -0
  84. package/dist/src/filters/Invert.d.ts +54 -0
  85. package/dist/src/filters/Noise.d.ts +53 -0
  86. package/dist/src/filters/Pixelate.d.ts +43 -0
  87. package/dist/src/filters/RemoveColor.d.ts +62 -0
  88. package/dist/src/filters/Resize.d.ts +134 -0
  89. package/dist/src/filters/Saturation.d.ts +47 -0
  90. package/dist/src/filters/Vibrance.d.ts +47 -0
  91. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  92. package/dist/src/filters/WebGLProbe.d.ts +28 -0
  93. package/dist/src/filters/typedefs.d.ts +49 -0
  94. package/dist/src/gradient/Gradient.d.ts +149 -0
  95. package/dist/src/gradient/constants.d.ts +15 -0
  96. package/dist/src/gradient/parser/index.d.ts +4 -0
  97. package/dist/src/gradient/parser/misc.d.ts +4 -0
  98. package/dist/src/gradient/parser/parseColorStops.d.ts +6 -0
  99. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  100. package/dist/src/gradient/typedefs.d.ts +93 -0
  101. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  102. package/dist/src/mixins/stateful.mixin.d.ts +18 -0
  103. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  104. package/dist/src/parkinglot/straighten.d.ts +2 -0
  105. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  106. package/dist/src/parser/attributes.d.ts +6 -0
  107. package/dist/src/parser/constants.d.ts +54 -0
  108. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  109. package/dist/src/parser/elementById.d.ts +6 -0
  110. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  111. package/dist/src/parser/elements_parser.d.ts +3 -0
  112. package/dist/src/parser/getCSSRules.d.ts +7 -0
  113. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  114. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  115. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  116. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  117. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  118. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  119. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  120. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  121. package/dist/src/parser/normalizeValue.d.ts +2 -0
  122. package/dist/src/parser/parseAttributes.d.ts +9 -0
  123. package/dist/src/parser/parseElements.d.ts +11 -0
  124. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  125. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  126. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  127. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  128. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  129. package/dist/src/parser/parseStyleString.d.ts +2 -0
  130. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  131. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  132. package/dist/src/parser/percent.d.ts +9 -0
  133. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  134. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  135. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  136. package/dist/src/parser/selectorMatches.d.ts +2 -0
  137. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  138. package/dist/src/parser/skewMatrix.d.ts +2 -0
  139. package/dist/src/parser/translateMatrix.d.ts +2 -0
  140. package/dist/src/shapes/ActiveSelection.d.ts +66 -0
  141. package/dist/src/shapes/Circle.d.ts +80 -0
  142. package/dist/src/shapes/Ellipse.d.ts +74 -0
  143. package/dist/src/shapes/Group.d.ts +381 -0
  144. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  145. package/dist/src/shapes/IText/IText.d.ts +322 -0
  146. package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
  147. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  148. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
  149. package/dist/src/shapes/IText/constants.d.ts +13 -0
  150. package/dist/src/shapes/Image.d.ts +283 -0
  151. package/dist/src/shapes/Line.d.ts +117 -0
  152. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  153. package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
  154. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  155. package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
  156. package/dist/src/shapes/Object/Object.d.ts +906 -0
  157. package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
  158. package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
  159. package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
  160. package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
  161. package/dist/src/shapes/Path.d.ts +123 -0
  162. package/dist/src/shapes/Polygon.d.ts +7 -0
  163. package/dist/src/shapes/Polyline.d.ts +130 -0
  164. package/dist/src/shapes/Rect.d.ts +62 -0
  165. package/dist/src/shapes/Text/StyledText.d.ts +118 -0
  166. package/dist/src/shapes/Text/Text.d.ts +656 -0
  167. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  168. package/dist/src/shapes/Textbox.d.ts +170 -0
  169. package/dist/src/shapes/Triangle.d.ts +17 -0
  170. package/dist/src/typedefs.d.ts +93 -0
  171. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  172. package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -0
  173. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  174. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  175. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  176. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  177. package/dist/src/util/animation/animate.d.ts +37 -0
  178. package/dist/src/util/animation/easing.d.ts +130 -0
  179. package/dist/src/util/animation/types.d.ts +87 -0
  180. package/dist/src/util/applyMixins.d.ts +8 -0
  181. package/dist/src/util/class_registry.d.ts +14 -0
  182. package/dist/src/util/dom_event.d.ts +5 -0
  183. package/dist/src/util/dom_misc.d.ts +40 -0
  184. package/dist/src/util/dom_request.d.ts +14 -0
  185. package/dist/src/util/dom_style.d.ts +7 -0
  186. package/dist/src/util/fireEvent.d.ts +3 -0
  187. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  188. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  189. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  190. package/dist/src/util/internals/index.d.ts +4 -0
  191. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  192. package/dist/src/util/internals/uid.d.ts +2 -0
  193. package/dist/src/util/lang_class.d.ts +12 -0
  194. package/dist/src/util/lang_string.d.ts +22 -0
  195. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  196. package/dist/src/util/misc/capValue.d.ts +2 -0
  197. package/dist/src/util/misc/cos.d.ts +10 -0
  198. package/dist/src/util/misc/dom.d.ts +28 -0
  199. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  200. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  201. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  202. package/dist/src/util/misc/matrix.d.ts +92 -0
  203. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  204. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  205. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  206. package/dist/src/util/misc/pick.d.ts +8 -0
  207. package/dist/src/util/misc/planeChange.d.ts +84 -0
  208. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  209. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  210. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  211. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  212. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  213. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  214. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  215. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  216. package/dist/src/util/misc/sin.d.ts +10 -0
  217. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  218. package/dist/src/util/misc/textStyles.d.ts +32 -0
  219. package/dist/src/util/misc/toFixed.d.ts +8 -0
  220. package/dist/src/util/misc/vectors.d.ts +57 -0
  221. package/dist/src/util/path.d.ts +108 -0
  222. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  223. package/dist/src/util/types.d.ts +19 -0
  224. package/fabric.ts +427 -0
  225. package/index.node.ts +43 -0
  226. package/index.ts +1 -0
  227. package/package.json +90 -39
  228. package/publish.js +0 -26
  229. package/rollup.config.mjs +79 -0
  230. package/rollup.test.config.js +24 -0
  231. package/scripts/build.mjs +50 -0
  232. package/scripts/buildLock.mjs +115 -0
  233. package/scripts/buildReporter.mjs +15 -0
  234. package/scripts/buildStats.mjs +139 -0
  235. package/scripts/dirname.mjs +14 -0
  236. package/scripts/index.mjs +679 -0
  237. package/scripts/transform_files.mjs +504 -0
  238. package/src/Collection.ts +311 -0
  239. package/src/CommonMethods.ts +63 -0
  240. package/src/EventTypeDefs.ts +294 -0
  241. package/src/Intersection.ts +273 -0
  242. package/src/Observable.ts +175 -0
  243. package/src/Pattern.ts +211 -0
  244. package/src/Point.ts +388 -0
  245. package/src/Shadow.ts +215 -0
  246. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  247. package/src/brushes/CircleBrush.ts +145 -0
  248. package/src/brushes/PatternBrush.ts +70 -0
  249. package/src/brushes/PencilBrush.ts +300 -0
  250. package/src/brushes/SprayBrush.ts +219 -0
  251. package/src/cache.ts +89 -0
  252. package/src/canvas/Canvas.ts +1672 -0
  253. package/src/canvas/SelectableCanvas.ts +1636 -0
  254. package/src/canvas/StaticCanvas.ts +1709 -0
  255. package/src/canvas/TextEditingManager.ts +48 -0
  256. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  257. package/src/color/Color.ts +404 -0
  258. package/src/color/color_map.ts +154 -0
  259. package/src/color/constants.ts +26 -0
  260. package/src/color/util.ts +32 -0
  261. package/src/config.ts +159 -0
  262. package/src/constants.ts +19 -0
  263. package/src/controls/Control.ts +377 -0
  264. package/src/controls/changeWidth.ts +52 -0
  265. package/src/controls/controls.render.ts +138 -0
  266. package/src/controls/default_controls.ts +132 -0
  267. package/src/controls/drag.ts +31 -0
  268. package/src/controls/polyControl.ts +135 -0
  269. package/src/controls/rotate.ts +87 -0
  270. package/src/controls/scale.ts +277 -0
  271. package/src/controls/scaleSkew.ts +92 -0
  272. package/src/controls/skew.ts +242 -0
  273. package/src/controls/util.ts +154 -0
  274. package/src/controls/wrapWithFireEvent.ts +25 -0
  275. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  276. package/src/env/browser.ts +28 -0
  277. package/src/env/index.ts +19 -0
  278. package/src/env/node.ts +52 -0
  279. package/src/env/types.ts +15 -0
  280. package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
  281. package/src/filters/BlendColor.ts +258 -0
  282. package/src/filters/BlendImage.ts +254 -0
  283. package/src/filters/Blur.ts +202 -0
  284. package/src/filters/Boilerplate.ts +91 -0
  285. package/src/filters/Brightness.ts +93 -0
  286. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  287. package/src/filters/ColorMatrix.ts +156 -0
  288. package/src/filters/ColorMatrixFilters.ts +106 -0
  289. package/src/filters/Composed.ts +85 -0
  290. package/src/filters/Contrast.ts +94 -0
  291. package/src/filters/Convolute.ts +341 -0
  292. package/src/filters/FilterBackend.ts +32 -0
  293. package/src/filters/Gamma.ts +127 -0
  294. package/src/filters/Grayscale.ts +137 -0
  295. package/src/filters/HueRotation.ts +66 -0
  296. package/src/filters/Invert.ts +117 -0
  297. package/src/filters/Noise.ts +109 -0
  298. package/src/filters/Pixelate.ts +114 -0
  299. package/src/filters/RemoveColor.ts +148 -0
  300. package/src/filters/Resize.ts +540 -0
  301. package/src/filters/Saturation.ts +100 -0
  302. package/src/filters/Vibrance.ts +103 -0
  303. package/src/filters/WebGLFilterBackend.ts +430 -0
  304. package/src/filters/WebGLProbe.ts +62 -0
  305. package/src/filters/typedefs.ts +65 -0
  306. package/src/gradient/Gradient.ts +401 -0
  307. package/src/gradient/constants.ts +12 -0
  308. package/src/gradient/parser/index.ts +3 -0
  309. package/src/gradient/parser/misc.ts +13 -0
  310. package/src/gradient/parser/parseColorStops.ts +55 -0
  311. package/src/gradient/parser/parseCoords.ts +73 -0
  312. package/src/gradient/typedefs.ts +104 -0
  313. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  314. package/src/mixins/stateful.mixin.ts +104 -0
  315. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  316. package/src/parkinglot/straighten.ts +58 -0
  317. package/src/parser/applyViewboxTransform.ts +162 -0
  318. package/src/parser/attributes.ts +25 -0
  319. package/src/parser/constants.ts +118 -0
  320. package/src/parser/doesSomeParentMatch.ts +19 -0
  321. package/src/parser/elementById.ts +23 -0
  322. package/src/parser/elementMatchesRule.ts +19 -0
  323. package/src/parser/elements_parser.ts +191 -0
  324. package/src/parser/getCSSRules.ts +62 -0
  325. package/src/parser/getGlobalStylesForElement.ts +19 -0
  326. package/src/parser/getGradientDefs.ts +32 -0
  327. package/src/parser/getMultipleNodes.ts +15 -0
  328. package/src/parser/getSvgRegex.ts +5 -0
  329. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  330. package/src/parser/loadSVGFromString.ts +26 -0
  331. package/src/parser/loadSVGFromURL.ts +40 -0
  332. package/src/parser/normalizeAttr.ts +10 -0
  333. package/src/parser/normalizeValue.ts +63 -0
  334. package/src/parser/parseAttributes.ts +90 -0
  335. package/src/parser/parseElements.ts +28 -0
  336. package/src/parser/parseFontDeclaration.ts +44 -0
  337. package/src/parser/parsePointsAttribute.ts +36 -0
  338. package/src/parser/parseSVGDocument.ts +106 -0
  339. package/src/parser/parseStyleAttribute.ts +27 -0
  340. package/src/parser/parseStyleObject.ts +15 -0
  341. package/src/parser/parseStyleString.ts +16 -0
  342. package/src/parser/parseTransformAttribute.ts +155 -0
  343. package/src/parser/parseUseDirectives.ts +79 -0
  344. package/src/parser/percent.ts +27 -0
  345. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  346. package/src/parser/rotateMatrix.ts +21 -0
  347. package/src/parser/scaleMatrix.ts +9 -0
  348. package/src/parser/selectorMatches.ts +25 -0
  349. package/src/parser/setStrokeFillOpacity.ts +40 -0
  350. package/src/parser/skewMatrix.ts +6 -0
  351. package/src/parser/translateMatrix.ts +8 -0
  352. package/src/shapes/ActiveSelection.ts +157 -0
  353. package/src/shapes/Circle.ts +205 -0
  354. package/src/shapes/Ellipse.ts +154 -0
  355. package/src/shapes/Group.ts +1053 -0
  356. package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
  357. package/src/shapes/IText/IText.ts +666 -0
  358. package/src/shapes/IText/ITextBehavior.ts +1055 -0
  359. package/src/shapes/IText/ITextClickBehavior.ts +321 -0
  360. package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
  361. package/src/shapes/IText/constants.ts +47 -0
  362. package/src/shapes/Image.ts +789 -0
  363. package/src/shapes/Line.ts +329 -0
  364. package/src/shapes/Object/AnimatableObject.ts +106 -0
  365. package/src/shapes/Object/FabricObject.ts +19 -0
  366. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  367. package/src/shapes/Object/InteractiveObject.ts +645 -0
  368. package/src/shapes/Object/Object.ts +1896 -0
  369. package/src/shapes/Object/ObjectGeometry.ts +830 -0
  370. package/src/shapes/Object/ObjectOrigin.ts +354 -0
  371. package/src/shapes/Object/StackedObject.ts +191 -0
  372. package/src/shapes/Object/defaultValues.ts +112 -0
  373. package/src/shapes/Path.ts +395 -0
  374. package/src/shapes/Polygon.ts +19 -0
  375. package/src/shapes/Polyline.ts +333 -0
  376. package/src/shapes/Rect.ts +199 -0
  377. package/src/shapes/Text/StyledText.ts +319 -0
  378. package/src/shapes/Text/Text.ts +1948 -0
  379. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  380. package/src/shapes/Textbox.ts +471 -0
  381. package/src/shapes/Triangle.ts +45 -0
  382. package/src/typedefs.ts +119 -0
  383. package/src/util/animation/AnimationBase.ts +166 -0
  384. package/src/util/animation/AnimationFrameProvider.ts +28 -0
  385. package/src/util/animation/AnimationRegistry.ts +58 -0
  386. package/src/util/animation/ArrayAnimation.ts +27 -0
  387. package/src/util/animation/ColorAnimation.ts +74 -0
  388. package/src/util/animation/ValueAnimation.ts +29 -0
  389. package/src/util/animation/animate.ts +74 -0
  390. package/src/util/animation/easing.ts +327 -0
  391. package/src/util/animation/types.ts +136 -0
  392. package/src/util/applyMixins.ts +22 -0
  393. package/src/util/class_registry.ts +54 -0
  394. package/src/util/dom_event.ts +28 -0
  395. package/src/util/dom_misc.ts +138 -0
  396. package/src/util/dom_request.ts +64 -0
  397. package/src/util/dom_style.ts +20 -0
  398. package/src/util/fireEvent.ts +15 -0
  399. package/src/util/internals/cloneDeep.ts +2 -0
  400. package/src/util/internals/getRandomInt.ts +8 -0
  401. package/src/util/internals/ifNaN.ts +9 -0
  402. package/src/util/internals/index.ts +3 -0
  403. package/src/util/internals/removeFromArray.ts +14 -0
  404. package/src/util/internals/uid.ts +3 -0
  405. package/src/util/lang_class.ts +90 -0
  406. package/src/util/lang_string.ts +79 -0
  407. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  408. package/src/util/misc/capValue.ts +2 -0
  409. package/src/util/misc/cos.ts +24 -0
  410. package/src/util/misc/dom.ts +50 -0
  411. package/src/util/misc/findScaleTo.ts +44 -0
  412. package/src/util/misc/groupSVGElements.ts +15 -0
  413. package/src/util/misc/isTransparent.ts +51 -0
  414. package/src/util/misc/matrix.ts +207 -0
  415. package/src/util/misc/mergeClipPaths.ts +40 -0
  416. package/src/util/misc/objectEnlive.ts +189 -0
  417. package/src/util/misc/objectTransforms.ts +129 -0
  418. package/src/util/misc/pick.ts +17 -0
  419. package/src/util/misc/planeChange.ts +136 -0
  420. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  421. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +231 -0
  422. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  423. package/src/util/misc/projectStroke/index.ts +53 -0
  424. package/src/util/misc/projectStroke/types.ts +24 -0
  425. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  426. package/src/util/misc/resolveOrigin.ts +22 -0
  427. package/src/util/misc/rotatePoint.ts +15 -0
  428. package/src/util/misc/sin.ts +26 -0
  429. package/src/util/misc/svgParsing.ts +181 -0
  430. package/src/util/misc/textStyles.ts +133 -0
  431. package/src/util/misc/toFixed.ts +8 -0
  432. package/src/util/misc/vectors.ts +82 -0
  433. package/src/util/path.ts +941 -0
  434. package/src/util/transform_matrix_removal.ts +60 -0
  435. package/src/util/types.ts +78 -0
  436. package/tsconfig.json +106 -0
  437. package/HEADER.js +0 -203
  438. package/build.js +0 -287
  439. package/dist/fabric.js +0 -31187
  440. package/dist/fabric.min.js +0 -1
  441. package/old-travis-reference.yml +0 -97
  442. package/src/brushes/circle_brush.class.js +0 -144
  443. package/src/brushes/pattern_brush.class.js +0 -61
  444. package/src/brushes/pencil_brush.class.js +0 -310
  445. package/src/brushes/spray_brush.class.js +0 -219
  446. package/src/canvas.class.js +0 -1312
  447. package/src/color.class.js +0 -636
  448. package/src/control.class.js +0 -339
  449. package/src/controls.actions.js +0 -740
  450. package/src/controls.render.js +0 -99
  451. package/src/elements_parser.js +0 -152
  452. package/src/filters/2d_backend.class.js +0 -65
  453. package/src/filters/blendcolor_filter.class.js +0 -251
  454. package/src/filters/blendimage_filter.class.js +0 -247
  455. package/src/filters/blur_filter.class.js +0 -217
  456. package/src/filters/brightness_filter.class.js +0 -113
  457. package/src/filters/colormatrix_filter.class.js +0 -159
  458. package/src/filters/composed_filter.class.js +0 -72
  459. package/src/filters/contrast_filter.class.js +0 -113
  460. package/src/filters/convolute_filter.class.js +0 -352
  461. package/src/filters/filter_boilerplate.js +0 -111
  462. package/src/filters/filter_generator.js +0 -85
  463. package/src/filters/gamma_filter.class.js +0 -136
  464. package/src/filters/grayscale_filter.class.js +0 -154
  465. package/src/filters/hue_rotation.class.js +0 -107
  466. package/src/filters/invert_filter.class.js +0 -111
  467. package/src/filters/noise_filter.class.js +0 -134
  468. package/src/filters/pixelate_filter.class.js +0 -137
  469. package/src/filters/removecolor_filter.class.js +0 -173
  470. package/src/filters/resize_filter.class.js +0 -490
  471. package/src/filters/saturate_filter.class.js +0 -119
  472. package/src/filters/vibrance_filter.class.js +0 -122
  473. package/src/filters/webgl_backend.class.js +0 -396
  474. package/src/globalFabric.js +0 -4
  475. package/src/gradient.class.js +0 -490
  476. package/src/intersection.class.js +0 -172
  477. package/src/log.js +0 -11
  478. package/src/mixins/animation.mixin.js +0 -231
  479. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  480. package/src/mixins/canvas_events.mixin.js +0 -974
  481. package/src/mixins/canvas_gestures.mixin.js +0 -149
  482. package/src/mixins/canvas_grouping.mixin.js +0 -177
  483. package/src/mixins/canvas_serialization.mixin.js +0 -228
  484. package/src/mixins/collection.mixin.js +0 -170
  485. package/src/mixins/default_controls.js +0 -114
  486. package/src/mixins/itext.svg_export.js +0 -241
  487. package/src/mixins/itext_behavior.mixin.js +0 -940
  488. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  489. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  490. package/src/mixins/object.svg_export.js +0 -258
  491. package/src/mixins/object_geometry.mixin.js +0 -683
  492. package/src/mixins/object_interactivity.mixin.js +0 -314
  493. package/src/mixins/object_origin.mixin.js +0 -255
  494. package/src/mixins/object_stacking.mixin.js +0 -80
  495. package/src/mixins/object_straightening.mixin.js +0 -80
  496. package/src/mixins/observable.mixin.js +0 -141
  497. package/src/mixins/shared_methods.mixin.js +0 -94
  498. package/src/mixins/stateful.mixin.js +0 -107
  499. package/src/mixins/text_style.mixin.js +0 -324
  500. package/src/parser.js +0 -1090
  501. package/src/pattern.class.js +0 -189
  502. package/src/point.class.js +0 -337
  503. package/src/shadow.class.js +0 -195
  504. package/src/shapes/active_selection.class.js +0 -155
  505. package/src/shapes/circle.class.js +0 -210
  506. package/src/shapes/ellipse.class.js +0 -181
  507. package/src/shapes/group.class.js +0 -593
  508. package/src/shapes/image.class.js +0 -764
  509. package/src/shapes/itext.class.js +0 -526
  510. package/src/shapes/line.class.js +0 -324
  511. package/src/shapes/object.class.js +0 -2008
  512. package/src/shapes/path.class.js +0 -384
  513. package/src/shapes/polygon.class.js +0 -81
  514. package/src/shapes/polyline.class.js +0 -268
  515. package/src/shapes/rect.class.js +0 -187
  516. package/src/shapes/text.class.js +0 -1696
  517. package/src/shapes/textbox.class.js +0 -461
  518. package/src/shapes/triangle.class.js +0 -93
  519. package/src/static_canvas.class.js +0 -1881
  520. package/src/util/anim_ease.js +0 -398
  521. package/src/util/animate.js +0 -254
  522. package/src/util/animate_color.js +0 -74
  523. package/src/util/dom_event.js +0 -50
  524. package/src/util/dom_misc.js +0 -300
  525. package/src/util/dom_request.js +0 -54
  526. package/src/util/dom_style.js +0 -70
  527. package/src/util/lang_array.js +0 -94
  528. package/src/util/lang_class.js +0 -115
  529. package/src/util/lang_object.js +0 -75
  530. package/src/util/lang_string.js +0 -110
  531. package/src/util/misc.js +0 -1330
  532. package/src/util/named_accessors.mixin.js +0 -428
  533. package/src/util/path.js +0 -829
@@ -0,0 +1,228 @@
1
+ import { ControlActionHandler, TPointerEvent, TransformActionHandler } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import type { FabricObject } from '../shapes/Object/Object';
4
+ import { TDegree, TMat2D } from '../typedefs';
5
+ import { ControlRenderingStyleOverride } from './controls.render';
6
+ export declare class Control {
7
+ /**
8
+ * keep track of control visibility.
9
+ * mainly for backward compatibility.
10
+ * if you do not want to see a control, you can remove it
11
+ * from the control set.
12
+ * @type {Boolean}
13
+ * @default true
14
+ */
15
+ visible: boolean;
16
+ /**
17
+ * Name of the action that the control will likely execute.
18
+ * This is optional. FabricJS uses to identify what the user is doing for some
19
+ * extra optimizations. If you are writing a custom control and you want to know
20
+ * somewhere else in the code what is going on, you can use this string here.
21
+ * you can also provide a custom getActionName if your control run multiple actions
22
+ * depending on some external state.
23
+ * default to scale since is the most common, used on 4 corners by default
24
+ * @type {String}
25
+ * @default 'scale'
26
+ */
27
+ actionName: string;
28
+ /**
29
+ * Drawing angle of the control.
30
+ * NOT used for now, but name marked as needed for internal logic
31
+ * example: to reuse the same drawing function for different rotated controls
32
+ * @type {Number}
33
+ * @default 0
34
+ */
35
+ angle: number;
36
+ /**
37
+ * Relative position of the control. X
38
+ * 0,0 is the center of the Object, while -0.5 (left) or 0.5 (right) are the extremities
39
+ * of the bounding box.
40
+ * @type {Number}
41
+ * @default 0
42
+ */
43
+ x: number;
44
+ /**
45
+ * Relative position of the control. Y
46
+ * 0,0 is the center of the Object, while -0.5 (top) or 0.5 (bottom) are the extremities
47
+ * of the bounding box.
48
+ * @type {Number}
49
+ * @default 0
50
+ */
51
+ y: number;
52
+ /**
53
+ * Horizontal offset of the control from the defined position. In pixels
54
+ * Positive offset moves the control to the right, negative to the left.
55
+ * It used when you want to have position of control that does not scale with
56
+ * the bounding box. Example: rotation control is placed at x:0, y: 0.5 on
57
+ * the boundind box, with an offset of 30 pixels vertically. Those 30 pixels will
58
+ * stay 30 pixels no matter how the object is big. Another example is having 2
59
+ * controls in the corner, that stay in the same position when the object scale.
60
+ * of the bounding box.
61
+ * @type {Number}
62
+ * @default 0
63
+ */
64
+ offsetX: number;
65
+ /**
66
+ * Vertical offset of the control from the defined position. In pixels
67
+ * Positive offset moves the control to the bottom, negative to the top.
68
+ * @type {Number}
69
+ * @default 0
70
+ */
71
+ offsetY: number;
72
+ /**
73
+ * Sets the length of the control. If null, defaults to object's cornerSize.
74
+ * Expects both sizeX and sizeY to be set when set.
75
+ * @type {?Number}
76
+ * @default null
77
+ */
78
+ sizeX: number | null;
79
+ /**
80
+ * Sets the height of the control. If null, defaults to object's cornerSize.
81
+ * Expects both sizeX and sizeY to be set when set.
82
+ * @type {?Number}
83
+ * @default null
84
+ */
85
+ sizeY: number | null;
86
+ /**
87
+ * Sets the length of the touch area of the control. If null, defaults to object's touchCornerSize.
88
+ * Expects both touchSizeX and touchSizeY to be set when set.
89
+ * @type {?Number}
90
+ * @default null
91
+ */
92
+ touchSizeX: number | null;
93
+ /**
94
+ * Sets the height of the touch area of the control. If null, defaults to object's touchCornerSize.
95
+ * Expects both touchSizeX and touchSizeY to be set when set.
96
+ * @type {?Number}
97
+ * @default null
98
+ */
99
+ touchSizeY: number | null;
100
+ /**
101
+ * Css cursor style to display when the control is hovered.
102
+ * if the method `cursorStyleHandler` is provided, this property is ignored.
103
+ * @type {String}
104
+ * @default 'crosshair'
105
+ */
106
+ cursorStyle: string;
107
+ /**
108
+ * If controls has an offsetY or offsetX, draw a line that connects
109
+ * the control to the bounding box
110
+ * @type {Boolean}
111
+ * @default false
112
+ */
113
+ withConnection: boolean;
114
+ constructor(options: Partial<Control>);
115
+ /**
116
+ * The control actionHandler, provide one to handle action ( control being moved )
117
+ * @param {Event} eventData the native mouse event
118
+ * @param {Transform} transformData properties of the current transform
119
+ * @param {Number} x x position of the cursor
120
+ * @param {Number} y y position of the cursor
121
+ * @return {Boolean} true if the action/event modified the object
122
+ */
123
+ actionHandler: TransformActionHandler;
124
+ /**
125
+ * The control handler for mouse down, provide one to handle mouse down on control
126
+ * @param {Event} eventData the native mouse event
127
+ * @param {Transform} transformData properties of the current transform
128
+ * @param {Number} x x position of the cursor
129
+ * @param {Number} y y position of the cursor
130
+ * @return {Boolean} true if the action/event modified the object
131
+ */
132
+ mouseDownHandler?: ControlActionHandler;
133
+ /**
134
+ * The control mouseUpHandler, provide one to handle an effect on mouse up.
135
+ * @param {Event} eventData the native mouse event
136
+ * @param {Transform} transformData properties of the current transform
137
+ * @param {Number} x x position of the cursor
138
+ * @param {Number} y y position of the cursor
139
+ * @return {Boolean} true if the action/event modified the object
140
+ */
141
+ mouseUpHandler?: ControlActionHandler;
142
+ /**
143
+ * Returns control actionHandler
144
+ * @param {Event} eventData the native mouse event
145
+ * @param {FabricObject} fabricObject on which the control is displayed
146
+ * @param {Control} control control for which the action handler is being asked
147
+ * @return {Function} the action handler
148
+ */
149
+ getActionHandler(eventData: TPointerEvent, fabricObject: FabricObject, control: Control): TransformActionHandler | undefined;
150
+ /**
151
+ * Returns control mouseDown handler
152
+ * @param {Event} eventData the native mouse event
153
+ * @param {FabricObject} fabricObject on which the control is displayed
154
+ * @param {Control} control control for which the action handler is being asked
155
+ * @return {Function} the action handler
156
+ */
157
+ getMouseDownHandler(eventData: TPointerEvent, fabricObject: FabricObject, control: Control): ControlActionHandler | undefined;
158
+ /**
159
+ * Returns control mouseUp handler.
160
+ * During actions the fabricObject or the control can be of different obj
161
+ * @param {Event} eventData the native mouse event
162
+ * @param {FabricObject} fabricObject on which the control is displayed
163
+ * @param {Control} control control for which the action handler is being asked
164
+ * @return {Function} the action handler
165
+ */
166
+ getMouseUpHandler(eventData: TPointerEvent, fabricObject: FabricObject, control: Control): ControlActionHandler | undefined;
167
+ /**
168
+ * Returns control cursorStyle for css using cursorStyle. If you need a more elaborate
169
+ * function you can pass one in the constructor
170
+ * the cursorStyle property
171
+ * @param {Event} eventData the native mouse event
172
+ * @param {Control} control the current control ( likely this)
173
+ * @param {FabricObject} object on which the control is displayed
174
+ * @return {String}
175
+ */
176
+ cursorStyleHandler(eventData: TPointerEvent, control: Control, fabricObject: FabricObject): string;
177
+ /**
178
+ * Returns the action name. The basic implementation just return the actionName property.
179
+ * @param {Event} eventData the native mouse event
180
+ * @param {Control} control the current control ( likely this)
181
+ * @param {FabricObject} object on which the control is displayed
182
+ * @return {String}
183
+ */
184
+ getActionName(eventData: TPointerEvent, control: Control, fabricObject: FabricObject): string;
185
+ /**
186
+ * Returns controls visibility
187
+ * @param {FabricObject} object on which the control is displayed
188
+ * @param {String} controlKey key where the control is memorized on the
189
+ * @return {Boolean}
190
+ */
191
+ getVisibility(fabricObject: FabricObject, controlKey: string): any;
192
+ /**
193
+ * Sets controls visibility
194
+ * @param {Boolean} visibility for the object
195
+ * @return {Void}
196
+ */
197
+ setVisibility(visibility: boolean, name: string, fabricObject: FabricObject): void;
198
+ positionHandler(dim: Point, finalMatrix: TMat2D, fabricObject: FabricObject, currentControl: Control): Point;
199
+ /**
200
+ * Returns the coords for this control based on object values.
201
+ * @param {Number} objectAngle angle from the fabric object holding the control
202
+ * @param {Number} objectCornerSize cornerSize from the fabric object holding the control (or touchCornerSize if
203
+ * isTouch is true)
204
+ * @param {Number} centerX x coordinate where the control center should be
205
+ * @param {Number} centerY y coordinate where the control center should be
206
+ * @param {boolean} isTouch true if touch corner, false if normal corner
207
+ */
208
+ calcCornerCoords(objectAngle: TDegree, objectCornerSize: number, centerX: number, centerY: number, isTouch: boolean): {
209
+ tl: Point;
210
+ tr: Point;
211
+ bl: Point;
212
+ br: Point;
213
+ };
214
+ /**
215
+ * Render function for the control.
216
+ * When this function runs the context is unscaled. unrotate. Just retina scaled.
217
+ * all the functions will have to translate to the point left,top before starting Drawing
218
+ * if they want to draw a control where the position is detected.
219
+ * left and top are the result of the positionHandler function
220
+ * @param {RenderingContext2D} ctx the context where the control will be drawn
221
+ * @param {Number} left position of the canvas where we are about to render the control.
222
+ * @param {Number} top position of the canvas where we are about to render the control.
223
+ * @param {Object} styleOverride
224
+ * @param {FabricObject} fabricObject the object where the control is about to be rendered
225
+ */
226
+ render(ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride | undefined, fabricObject: FabricObject): void;
227
+ }
228
+ //# sourceMappingURL=Control.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { TransformActionHandler } from '../EventTypeDefs';
2
+ /**
3
+ * Action handler to change object's width
4
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
5
+ * @param {Event} eventData javascript event that is doing the transform
6
+ * @param {Object} transform javascript object containing a series of information around the current transform
7
+ * @param {number} x current mouse x position, canvas normalized
8
+ * @param {number} y current mouse y position, canvas normalized
9
+ * @return {Boolean} true if some change happened
10
+ */
11
+ export declare const changeObjectWidth: TransformActionHandler;
12
+ export declare const changeWidth: TransformActionHandler<import("../EventTypeDefs").Transform>;
13
+ //# sourceMappingURL=changeWidth.d.ts.map
@@ -0,0 +1,29 @@
1
+ import type { FabricObject } from '../shapes/Object/Object';
2
+ import type { Control } from './Control';
3
+ export type ControlRenderingStyleOverride = Partial<Pick<FabricObject, 'cornerStyle' | 'cornerSize' | 'cornerColor' | 'cornerStrokeColor' | 'cornerDashArray' | 'transparentCorners'>>;
4
+ export type ControlRenderer = (ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: FabricObject) => void;
5
+ /**
6
+ * Render a round control, as per fabric features.
7
+ * This function is written to respect object properties like transparentCorners, cornerSize
8
+ * cornerColor, cornerStrokeColor
9
+ * plus the addition of offsetY and offsetX.
10
+ * @param {CanvasRenderingContext2D} ctx context to render on
11
+ * @param {Number} left x coordinate where the control center should be
12
+ * @param {Number} top y coordinate where the control center should be
13
+ * @param {Object} styleOverride override for FabricObject controls style
14
+ * @param {FabricObject} fabricObject the fabric object for which we are rendering controls
15
+ */
16
+ export declare function renderCircleControl(this: Control, ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: FabricObject): void;
17
+ /**
18
+ * Render a square control, as per fabric features.
19
+ * This function is written to respect object properties like transparentCorners, cornerSize
20
+ * cornerColor, cornerStrokeColor
21
+ * plus the addition of offsetY and offsetX.
22
+ * @param {CanvasRenderingContext2D} ctx context to render on
23
+ * @param {Number} left x coordinate where the control center should be
24
+ * @param {Number} top y coordinate where the control center should be
25
+ * @param {Object} styleOverride override for FabricObject controls style
26
+ * @param {FabricObject} fabricObject the fabric object for which we are rendering controls
27
+ */
28
+ export declare function renderSquareControl(this: Control, ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: FabricObject): void;
29
+ //# sourceMappingURL=controls.render.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { Control } from './Control';
2
+ export declare const createObjectDefaultControls: () => {
3
+ ml: Control;
4
+ mr: Control;
5
+ mb: Control;
6
+ mt: Control;
7
+ tl: Control;
8
+ tr: Control;
9
+ bl: Control;
10
+ br: Control;
11
+ mtr: Control;
12
+ };
13
+ export declare const createResizeControls: () => {
14
+ mr: Control;
15
+ ml: Control;
16
+ };
17
+ export declare const createTextboxDefaultControls: () => {
18
+ mr: Control;
19
+ ml: Control;
20
+ mb: Control;
21
+ mt: Control;
22
+ tl: Control;
23
+ tr: Control;
24
+ bl: Control;
25
+ br: Control;
26
+ mtr: Control;
27
+ };
28
+ export declare const defaultControls: {
29
+ ml: Control;
30
+ mr: Control;
31
+ mb: Control;
32
+ mt: Control;
33
+ tl: Control;
34
+ tr: Control;
35
+ bl: Control;
36
+ br: Control;
37
+ mtr: Control;
38
+ };
39
+ export declare const textboxDefaultControls: {
40
+ mr: Control;
41
+ ml: Control;
42
+ mb: Control;
43
+ mt: Control;
44
+ tl: Control;
45
+ tr: Control;
46
+ bl: Control;
47
+ br: Control;
48
+ mtr: Control;
49
+ };
50
+ //# sourceMappingURL=default_controls.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { TransformActionHandler } from '../EventTypeDefs';
2
+ /**
3
+ * Action handler
4
+ * @private
5
+ * @param {Event} eventData javascript event that is doing the transform
6
+ * @param {Object} transform javascript object containing a series of information around the current transform
7
+ * @param {number} x current mouse x position, canvas normalized
8
+ * @param {number} y current mouse y position, canvas normalized
9
+ * @return {Boolean} true if the translation occurred
10
+ */
11
+ export declare const dragHandler: TransformActionHandler;
12
+ //# sourceMappingURL=drag.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { Control } from './Control';
2
+ import type { Polyline } from '../shapes/Polyline';
3
+ export declare function createPolyControls(poly: Polyline, options?: Partial<Control>): Record<string, Control>;
4
+ export declare function createPolyControls(numOfControls: number, options?: Partial<Control>): Record<string, Control>;
5
+ //# sourceMappingURL=polyControl.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { ControlCursorCallback, TransformActionHandler } from '../EventTypeDefs';
2
+ /**
3
+ * Find the correct style for the control that is used for rotation.
4
+ * this function is very simple and it just take care of not-allowed or standard cursor
5
+ * @param {Event} eventData the javascript event that is causing the scale
6
+ * @param {Control} control the control that is interested in the action
7
+ * @param {FabricObject} fabricObject the fabric object that is interested in the action
8
+ * @return {String} a valid css string for the cursor
9
+ */
10
+ export declare const rotationStyleHandler: ControlCursorCallback;
11
+ export declare const rotationWithSnapping: TransformActionHandler<import("../EventTypeDefs").Transform>;
12
+ //# sourceMappingURL=rotate.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { ControlCursorCallback, TPointerEvent, Transform, TransformActionHandler } from '../EventTypeDefs';
2
+ import type { FabricObject } from '../shapes/Object/FabricObject';
3
+ import { TAxis } from '../typedefs';
4
+ type ScaleTransform = Transform & {
5
+ gestureScale?: number;
6
+ signX?: number;
7
+ signY?: number;
8
+ };
9
+ type ScaleBy = TAxis | 'equally' | '' | undefined;
10
+ /**
11
+ * Inspect event and fabricObject properties to understand if the scaling action
12
+ * @param {Event} eventData from the user action
13
+ * @param {FabricObject} fabricObject the fabric object about to scale
14
+ * @return {Boolean} true if scale is proportional
15
+ */
16
+ export declare function scaleIsProportional(eventData: TPointerEvent, fabricObject: FabricObject): boolean;
17
+ /**
18
+ * Inspect fabricObject to understand if the current scaling action is allowed
19
+ * @param {FabricObject} fabricObject the fabric object about to scale
20
+ * @param {String} by 'x' or 'y' or ''
21
+ * @param {Boolean} scaleProportionally true if we are trying to scale proportionally
22
+ * @return {Boolean} true if scaling is not allowed at current conditions
23
+ */
24
+ export declare function scalingIsForbidden(fabricObject: FabricObject, by: ScaleBy, scaleProportionally: boolean): boolean;
25
+ /**
26
+ * return the correct cursor style for the scale action
27
+ * @param {Event} eventData the javascript event that is causing the scale
28
+ * @param {Control} control the control that is interested in the action
29
+ * @param {FabricObject} fabricObject the fabric object that is interested in the action
30
+ * @return {String} a valid css string for the cursor
31
+ */
32
+ export declare const scaleCursorStyleHandler: ControlCursorCallback;
33
+ /**
34
+ * Generic scaling logic, to scale from corners either equally or freely.
35
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
36
+ * @param {Event} eventData javascript event that is doing the transform
37
+ * @param {Object} transform javascript object containing a series of information around the current transform
38
+ * @param {number} x current mouse x position, canvas normalized
39
+ * @param {number} y current mouse y position, canvas normalized
40
+ * @return {Boolean} true if some change happened
41
+ */
42
+ export declare const scaleObjectFromCorner: TransformActionHandler<ScaleTransform>;
43
+ export declare const scalingEqually: TransformActionHandler<ScaleTransform>;
44
+ export declare const scalingX: TransformActionHandler<ScaleTransform>;
45
+ export declare const scalingY: TransformActionHandler<ScaleTransform>;
46
+ export {};
47
+ //# sourceMappingURL=scale.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { ControlCallback, ControlCursorCallback, TransformActionHandler } from '../EventTypeDefs';
2
+ import { TAxisKey } from '../typedefs';
3
+ /**
4
+ * Inspect event, control and fabricObject to return the correct action name
5
+ * @param {Event} eventData the javascript event that is causing the scale
6
+ * @param {Control} control the control that is interested in the action
7
+ * @param {FabricObject} fabricObject the fabric object that is interested in the action
8
+ * @return {String} an action name
9
+ */
10
+ export declare const scaleOrSkewActionName: ControlCallback<TAxisKey<'skew' | 'scale'> | ''>;
11
+ /**
12
+ * Combine skew and scale style handlers to cover fabric standard use case
13
+ * @param {Event} eventData the javascript event that is causing the scale
14
+ * @param {Control} control the control that is interested in the action
15
+ * @param {FabricObject} fabricObject the fabric object that is interested in the action
16
+ * @return {String} a valid css string for the cursor
17
+ */
18
+ export declare const scaleSkewCursorStyleHandler: ControlCursorCallback;
19
+ /**
20
+ * Composed action handler to either scale X or skew Y
21
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
22
+ * @param {Event} eventData javascript event that is doing the transform
23
+ * @param {Object} transform javascript object containing a series of information around the current transform
24
+ * @param {number} x current mouse x position, canvas normalized
25
+ * @param {number} y current mouse y position, canvas normalized
26
+ * @return {Boolean} true if some change happened
27
+ */
28
+ export declare const scalingXOrSkewingY: TransformActionHandler;
29
+ /**
30
+ * Composed action handler to either scale Y or skew X
31
+ * Needs to be wrapped with `wrapWithFixedAnchor` to be effective
32
+ * @param {Event} eventData javascript event that is doing the transform
33
+ * @param {Object} transform javascript object containing a series of information around the current transform
34
+ * @param {number} x current mouse x position, canvas normalized
35
+ * @param {number} y current mouse y position, canvas normalized
36
+ * @return {Boolean} true if some change happened
37
+ */
38
+ export declare const scalingYOrSkewingX: TransformActionHandler;
39
+ //# sourceMappingURL=scaleSkew.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { ControlCursorCallback, Transform, TransformActionHandler } from '../EventTypeDefs';
2
+ export type SkewTransform = Transform & {
3
+ skewingSide: -1 | 1;
4
+ };
5
+ /**
6
+ * return the correct cursor style for the skew action
7
+ * @param {Event} eventData the javascript event that is causing the scale
8
+ * @param {Control} control the control that is interested in the action
9
+ * @param {FabricObject} fabricObject the fabric object that is interested in the action
10
+ * @return {String} a valid css string for the cursor
11
+ */
12
+ export declare const skewCursorStyleHandler: ControlCursorCallback;
13
+ /**
14
+ * Wrapped Action handler for skewing on the X axis, takes care of the
15
+ * skew direction and determines the correct transform origin for the anchor point
16
+ * @param {Event} eventData javascript event that is doing the transform
17
+ * @param {Object} transform javascript object containing a series of information around the current transform
18
+ * @param {number} x current mouse x position, canvas normalized
19
+ * @param {number} y current mouse y position, canvas normalized
20
+ * @return {Boolean} true if some change happened
21
+ */
22
+ export declare const skewHandlerX: TransformActionHandler;
23
+ /**
24
+ * Wrapped Action handler for skewing on the Y axis, takes care of the
25
+ * skew direction and determines the correct transform origin for the anchor point
26
+ * @param {Event} eventData javascript event that is doing the transform
27
+ * @param {Object} transform javascript object containing a series of information around the current transform
28
+ * @param {number} x current mouse x position, canvas normalized
29
+ * @param {number} y current mouse y position, canvas normalized
30
+ * @return {Boolean} true if some change happened
31
+ */
32
+ export declare const skewHandlerY: TransformActionHandler;
33
+ //# sourceMappingURL=skew.d.ts.map
@@ -0,0 +1,41 @@
1
+ import { TPointerEvent, Transform, TransformAction, BasicTransformEvent } from '../EventTypeDefs';
2
+ import { Point } from '../Point';
3
+ import type { FabricObject } from '../shapes/Object/FabricObject';
4
+ import { TOriginX, TOriginY } from '../typedefs';
5
+ import type { Control } from './Control';
6
+ export declare const NOT_ALLOWED_CURSOR = "not-allowed";
7
+ /**
8
+ * @param {Boolean} alreadySelected true if target is already selected
9
+ * @param {String} corner a string representing the corner ml, mr, tl ...
10
+ * @param {Event} e Event object
11
+ * @param {FabricObject} [target] inserted back to help overriding. Unused
12
+ */
13
+ export declare const getActionFromCorner: (alreadySelected: boolean, corner: string, e: TPointerEvent, target: FabricObject) => string;
14
+ /**
15
+ * Checks if transform is centered
16
+ * @param {Object} transform transform data
17
+ * @return {Boolean} true if transform is centered
18
+ */
19
+ export declare function isTransformCentered(transform: Transform): boolean;
20
+ export declare function invertOrigin(origin: TOriginX | TOriginY): number;
21
+ export declare const isLocked: (target: FabricObject, lockingKey: 'lockMovementX' | 'lockMovementY' | 'lockRotation' | 'lockScalingX' | 'lockScalingY' | 'lockSkewingX' | 'lockSkewingY' | 'lockScalingFlip') => boolean;
22
+ export declare const commonEventInfo: TransformAction<Transform, BasicTransformEvent>;
23
+ /**
24
+ * Combine control position and object angle to find the control direction compared
25
+ * to the object center.
26
+ * @param {FabricObject} fabricObject the fabric object for which we are rendering controls
27
+ * @param {Control} control the control class
28
+ * @return {Number} 0 - 7 a quadrant number
29
+ */
30
+ export declare function findCornerQuadrant(fabricObject: FabricObject, control: Control): number;
31
+ /**
32
+ * Transforms a point to the offset from the given origin
33
+ * @param {Object} transform
34
+ * @param {String} originX
35
+ * @param {String} originY
36
+ * @param {number} x
37
+ * @param {number} y
38
+ * @return {Fabric.Point} the normalized point
39
+ */
40
+ export declare function getLocalPoint({ target, corner }: Transform, originX: TOriginX, originY: TOriginY, x: number, y: number): Point;
41
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { TModificationEvents, Transform, TransformActionHandler } from '../EventTypeDefs';
2
+ /**
3
+ * Wrap an action handler with firing an event if the action is performed
4
+ * @param {Function} actionHandler the function to wrap
5
+ * @return {Function} a function with an action handler signature
6
+ */
7
+ export declare const wrapWithFireEvent: <T extends Transform>(eventName: TModificationEvents, actionHandler: TransformActionHandler<T>) => TransformActionHandler<T>;
8
+ //# sourceMappingURL=wrapWithFireEvent.d.ts.map
@@ -0,0 +1,9 @@
1
+ import { Transform, TransformActionHandler } from '../EventTypeDefs';
2
+ /**
3
+ * Wrap an action handler with saving/restoring object position on the transform.
4
+ * this is the code that permits to objects to keep their position while transforming.
5
+ * @param {Function} actionHandler the function to wrap
6
+ * @return {Function} a function with an action handler signature
7
+ */
8
+ export declare function wrapWithFixedAnchor<T extends Transform>(actionHandler: TransformActionHandler<T>): TransformActionHandler<T>;
9
+ //# sourceMappingURL=wrapWithFixedAnchor.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { TFabricEnv } from './types';
2
+ export declare const getEnv: () => TFabricEnv;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { TFabricEnv } from './types';
2
+ export declare const setEnv: (value: TFabricEnv) => void;
3
+ export declare const getEnv: () => TFabricEnv;
4
+ export declare const getDocument: () => Document;
5
+ export declare const getWindow: () => Window;
6
+ export declare const setEnvForTests: (window: Window) => void;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { TFabricEnv } from './types';
2
+ export declare const getEnv: () => TFabricEnv;
3
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1,15 @@
1
+ import type { Canvas } from 'canvas';
2
+ export type TCopyPasteData = {
3
+ copiedText?: string;
4
+ copiedStyle?: Record<string, string>;
5
+ };
6
+ export type TFabricEnv = {
7
+ document: Document;
8
+ window: Window;
9
+ isTouchSupported: boolean;
10
+ isLikelyNode: boolean;
11
+ nodeCanvas?: Canvas;
12
+ jsdomImplForWrapper?: any;
13
+ copyPasteData: TCopyPasteData;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map