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,343 @@
1
+ import type { TBBox, TCornerPoint, TDegree, TMat2D, TOriginX, TOriginY } from '../../typedefs';
2
+ import { Point } from '../../Point';
3
+ import type { Canvas } from '../../canvas/Canvas';
4
+ import type { StaticCanvas } from '../../canvas/StaticCanvas';
5
+ import { ObjectOrigin } from './ObjectOrigin';
6
+ import { ObjectEvents } from '../../EventTypeDefs';
7
+ type TLineDescriptor = {
8
+ o: Point;
9
+ d: Point;
10
+ };
11
+ type TBBoxLines = {
12
+ topline: TLineDescriptor;
13
+ leftline: TLineDescriptor;
14
+ bottomline: TLineDescriptor;
15
+ rightline: TLineDescriptor;
16
+ };
17
+ type TMatrixCache = {
18
+ key: string;
19
+ value: TMat2D;
20
+ };
21
+ type TACoords = TCornerPoint;
22
+ export declare class ObjectGeometry<EventSpec extends ObjectEvents = ObjectEvents> extends ObjectOrigin<EventSpec> {
23
+ /**
24
+ * When true, an object is rendered as flipped horizontally
25
+ * @type Boolean
26
+ * @default false
27
+ */
28
+ flipX: boolean;
29
+ /**
30
+ * When true, an object is rendered as flipped vertically
31
+ * @type Boolean
32
+ * @default false
33
+ */
34
+ flipY: boolean;
35
+ /**
36
+ * Padding between object and its controlling borders (in pixels)
37
+ * @type Number
38
+ * @default 0
39
+ */
40
+ padding: number;
41
+ /**
42
+ * Describe object's corner position in canvas object absolute coordinates
43
+ * properties are tl,tr,bl,br and describe the four main corner.
44
+ * each property is an object with x, y, instance of Fabric.Point.
45
+ * The coordinates depends from this properties: width, height, scaleX, scaleY
46
+ * skewX, skewY, angle, strokeWidth, top, left.
47
+ * Those coordinates are useful to understand where an object is. They get updated
48
+ * with lineCoords or oCoords in interactive cases but they do not need to be updated when zoom or panning change.
49
+ * The coordinates get updated with @method setCoords.
50
+ * You can calculate them without updating with @method calcACoords();
51
+ */
52
+ aCoords: TACoords;
53
+ /**
54
+ * Describe object's corner position in canvas element coordinates.
55
+ * includes padding. Used of object detection.
56
+ * set and refreshed with setCoords.
57
+ * Those could go away
58
+ * @todo investigate how to get rid of those
59
+ */
60
+ lineCoords: TCornerPoint;
61
+ /**
62
+ * storage cache for object transform matrix
63
+ */
64
+ ownMatrixCache?: TMatrixCache;
65
+ /**
66
+ * storage cache for object full transform matrix
67
+ */
68
+ matrixCache?: TMatrixCache;
69
+ /**
70
+ * A Reference of the Canvas where the object is actually added
71
+ * @type StaticCanvas | Canvas;
72
+ * @default undefined
73
+ * @private
74
+ */
75
+ canvas?: StaticCanvas | Canvas;
76
+ /**
77
+ * @returns {number} x position according to object's {@link originX} property in canvas coordinate plane
78
+ */
79
+ getX(): number;
80
+ /**
81
+ * @param {number} value x position according to object's {@link originX} property in canvas coordinate plane
82
+ */
83
+ setX(value: number): void;
84
+ /**
85
+ * @returns {number} y position according to object's {@link originY} property in canvas coordinate plane
86
+ */
87
+ getY(): number;
88
+ /**
89
+ * @param {number} value y position according to object's {@link originY} property in canvas coordinate plane
90
+ */
91
+ setY(value: number): void;
92
+ /**
93
+ * @returns {number} x position according to object's {@link originX} property in parent's coordinate plane\
94
+ * if parent is canvas then this property is identical to {@link getX}
95
+ */
96
+ getRelativeX(): number;
97
+ /**
98
+ * @param {number} value x position according to object's {@link originX} property in parent's coordinate plane\
99
+ * if parent is canvas then this method is identical to {@link setX}
100
+ */
101
+ setRelativeX(value: number): void;
102
+ /**
103
+ * @returns {number} y position according to object's {@link originY} property in parent's coordinate plane\
104
+ * if parent is canvas then this property is identical to {@link getY}
105
+ */
106
+ getRelativeY(): number;
107
+ /**
108
+ * @param {number} value y position according to object's {@link originY} property in parent's coordinate plane\
109
+ * if parent is canvas then this property is identical to {@link setY}
110
+ */
111
+ setRelativeY(value: number): void;
112
+ /**
113
+ * @returns {Point} x position according to object's {@link originX} {@link originY} properties in canvas coordinate plane
114
+ */
115
+ getXY(): Point;
116
+ /**
117
+ * Set an object position to a particular point, the point is intended in absolute ( canvas ) coordinate.
118
+ * You can specify {@link originX} and {@link originY} values,
119
+ * that otherwise are the object's current values.
120
+ * @example <caption>Set object's bottom left corner to point (5,5) on canvas</caption>
121
+ * object.setXY(new Point(5, 5), 'left', 'bottom').
122
+ * @param {Point} point position in canvas coordinate plane
123
+ * @param {TOriginX} [originX] Horizontal origin: 'left', 'center' or 'right'
124
+ * @param {TOriginY} [originY] Vertical origin: 'top', 'center' or 'bottom'
125
+ */
126
+ setXY(point: Point, originX?: TOriginX, originY?: TOriginY): void;
127
+ /**
128
+ * @returns {Point} x,y position according to object's {@link originX} {@link originY} properties in parent's coordinate plane
129
+ */
130
+ getRelativeXY(): Point;
131
+ /**
132
+ * As {@link setXY}, but in current parent's coordinate plane (the current group if any or the canvas)
133
+ * @param {Point} point position according to object's {@link originX} {@link originY} properties in parent's coordinate plane
134
+ * @param {TOriginX} [originX] Horizontal origin: 'left', 'center' or 'right'
135
+ * @param {TOriginY} [originY] Vertical origin: 'top', 'center' or 'bottom'
136
+ */
137
+ setRelativeXY(point: Point, originX?: TOriginX, originY?: TOriginY): void;
138
+ /**
139
+ * return correct set of coordinates for intersection
140
+ * this will return either aCoords or lineCoords.
141
+ * @param {boolean} absolute will return aCoords if true or lineCoords
142
+ * @param {boolean} calculate will calculate the coords or use the one
143
+ * that are attached to the object instance
144
+ * @return {Object} {tl, tr, br, bl} points
145
+ */
146
+ _getCoords(absolute?: boolean, calculate?: boolean): TCornerPoint;
147
+ /**
148
+ * return correct set of coordinates for intersection
149
+ * this will return either aCoords or lineCoords.
150
+ * The coords are returned in an array.
151
+ * @param {boolean} absolute will return aCoords if true or lineCoords
152
+ * @param {boolean} calculate will return aCoords if true or lineCoords
153
+ * @return {Array} [tl, tr, br, bl] of points
154
+ */
155
+ getCoords(absolute?: boolean, calculate?: boolean): Point[];
156
+ /**
157
+ * Checks if object intersects with an area formed by 2 points
158
+ * @param {Object} pointTL top-left point of area
159
+ * @param {Object} pointBR bottom-right point of area
160
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
161
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored one
162
+ * @return {Boolean} true if object intersects with an area formed by 2 points
163
+ */
164
+ intersectsWithRect(pointTL: Point, pointBR: Point, absolute?: boolean, calculate?: boolean): boolean;
165
+ /**
166
+ * Checks if object intersects with another object
167
+ * @param {Object} other Object to test
168
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
169
+ * @param {Boolean} [calculate] use coordinates of current position instead of calculating them
170
+ * @return {Boolean} true if object intersects with another object
171
+ */
172
+ intersectsWithObject(other: ObjectGeometry, absolute?: boolean, calculate?: boolean): boolean;
173
+ /**
174
+ * Checks if object is fully contained within area of another object
175
+ * @param {Object} other Object to test
176
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
177
+ * @param {Boolean} [calculate] use coordinates of current position instead of store ones
178
+ * @return {Boolean} true if object is fully contained within area of another object
179
+ */
180
+ isContainedWithinObject(other: ObjectGeometry, absolute?: boolean, calculate?: boolean): boolean;
181
+ /**
182
+ * Checks if object is fully contained within area formed by 2 points
183
+ * @param {Object} pointTL top-left point of area
184
+ * @param {Object} pointBR bottom-right point of area
185
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
186
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored one
187
+ * @return {Boolean} true if object is fully contained within area formed by 2 points
188
+ */
189
+ isContainedWithinRect(pointTL: Point, pointBR: Point, absolute?: boolean, calculate?: boolean): boolean;
190
+ isOverlapping<T extends ObjectGeometry>(other: T): boolean;
191
+ /**
192
+ * Checks if point is inside the object
193
+ * @param {Point} point Point to check against
194
+ * @param {Object} [lines] object returned from @method _getImageLines
195
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
196
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored ones
197
+ * @return {Boolean} true if point is inside the object
198
+ */
199
+ containsPoint(point: Point, lines?: TBBoxLines, absolute?: boolean, calculate?: boolean): boolean;
200
+ /**
201
+ * Checks if object is contained within the canvas with current viewportTransform
202
+ * the check is done stopping at first point that appears on screen
203
+ * @param {Boolean} [calculate] use coordinates of current position instead of .aCoords
204
+ * @return {Boolean} true if object is fully or partially contained within canvas
205
+ */
206
+ isOnScreen(calculate?: boolean): boolean;
207
+ /**
208
+ * Checks if the object contains the midpoint between canvas extremities
209
+ * Does not make sense outside the context of isOnScreen and isPartiallyOnScreen
210
+ * @private
211
+ * @param {Point} pointTL Top Left point
212
+ * @param {Point} pointBR Top Right point
213
+ * @param {Boolean} calculate use coordinates of current position instead of stored ones
214
+ * @return {Boolean} true if the object contains the point
215
+ */
216
+ private _containsCenterOfCanvas;
217
+ /**
218
+ * Checks if object is partially contained within the canvas with current viewportTransform
219
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored ones
220
+ * @return {Boolean} true if object is partially contained within canvas
221
+ */
222
+ isPartiallyOnScreen(calculate?: boolean): boolean;
223
+ /**
224
+ * Method that returns an object with the object edges in it, given the coordinates of the corners
225
+ * @private
226
+ * @param {Object} lineCoords or aCoords Coordinates of the object corners
227
+ */
228
+ _getImageLines({ tl, tr, bl, br }: TCornerPoint): TBBoxLines;
229
+ /**
230
+ * Helper method to determine how many cross points are between the 4 object edges
231
+ * and the horizontal line determined by a point on canvas
232
+ * @private
233
+ * @param {Point} point Point to check
234
+ * @param {Object} lines Coordinates of the object being evaluated
235
+ * @return {number} number of crossPoint
236
+ */
237
+ _findCrossPoints(point: Point, lines: TBBoxLines): number;
238
+ /**
239
+ * Returns coordinates of object's bounding rectangle (left, top, width, height)
240
+ * the box is intended as aligned to axis of canvas.
241
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
242
+ * @param {Boolean} [calculate] use coordinates of current position instead of .lineCoords / .aCoords
243
+ * @return {Object} Object with left, top, width, height properties
244
+ */
245
+ getBoundingRect(absolute?: boolean, calculate?: boolean): TBBox;
246
+ /**
247
+ * Returns width of an object's bounding box counting transformations
248
+ * @todo shouldn't this account for group transform and return the actual size in canvas coordinate plane?
249
+ * @return {Number} width value
250
+ */
251
+ getScaledWidth(): number;
252
+ /**
253
+ * Returns height of an object bounding box counting transformations
254
+ * @todo shouldn't this account for group transform and return the actual size in canvas coordinate plane?
255
+ * @return {Number} height value
256
+ */
257
+ getScaledHeight(): number;
258
+ /**
259
+ * Scales an object (equally by x and y)
260
+ * @param {Number} value Scale factor
261
+ * @return {void}
262
+ */
263
+ scale(value: number): void;
264
+ /**
265
+ * Scales an object to a given width, with respect to bounding box (scaling by x/y equally)
266
+ * @param {Number} value New width value
267
+ * @param {Boolean} absolute ignore viewport
268
+ * @return {void}
269
+ */
270
+ scaleToWidth(value: number, absolute?: boolean): void;
271
+ /**
272
+ * Scales an object to a given height, with respect to bounding box (scaling by x/y equally)
273
+ * @param {Number} value New height value
274
+ * @param {Boolean} absolute ignore viewport
275
+ * @return {void}
276
+ */
277
+ scaleToHeight(value: number, absolute?: boolean): void;
278
+ getCanvasRetinaScaling(): number;
279
+ /**
280
+ * Returns the object angle relative to canvas counting also the group property
281
+ * @returns {TDegree}
282
+ */
283
+ getTotalAngle(): TDegree;
284
+ /**
285
+ * return the coordinate of the 4 corners of the bounding box in HTMLCanvasElement coordinates
286
+ * used for bounding box interactivity with the mouse
287
+ * @returns {TCornerPoint}
288
+ */
289
+ calcLineCoords(): TCornerPoint;
290
+ /**
291
+ * Retrieves viewportTransform from Object's canvas if possible
292
+ * @method getViewportTransform
293
+ * @memberOf FabricObject.prototype
294
+ * @return {TMat2D}
295
+ */
296
+ getViewportTransform(): TMat2D;
297
+ /**
298
+ * Calculates the coordinates of the 4 corner of the bbox, in absolute coordinates.
299
+ * those never change with zoom or viewport changes.
300
+ * @return {TCornerPoint}
301
+ */
302
+ calcACoords(): TCornerPoint;
303
+ /**
304
+ * Sets corner and controls position coordinates based on current angle, width and height, left and top.
305
+ * aCoords are used to quickly find an object on the canvas
306
+ * lineCoords are used to quickly find object during pointer events.
307
+ * See {@link https://github.com/fabricjs/fabric.js/wiki/When-to-call-setCoords} and {@link http://fabricjs.com/fabric-gotchas}
308
+ * @param {Boolean} [skipCorners] skip calculation of aCoord, lineCoords.
309
+ * @return {void}
310
+ */
311
+ setCoords(): void;
312
+ transformMatrixKey(skipGroup?: boolean): string;
313
+ /**
314
+ * calculate transform matrix that represents the current transformations from the
315
+ * object's properties.
316
+ * @param {Boolean} [skipGroup] return transform matrix for object not counting parent transformations
317
+ * There are some situation in which this is useful to avoid the fake rotation.
318
+ * @return {TMat2D} transform matrix for the object
319
+ */
320
+ calcTransformMatrix(skipGroup?: boolean): TMat2D;
321
+ /**
322
+ * calculate transform matrix that represents the current transformations from the
323
+ * object's properties, this matrix does not include the group transformation
324
+ * @return {TMat2D} transform matrix for the object
325
+ */
326
+ calcOwnMatrix(): TMat2D;
327
+ /**
328
+ * Calculate object dimensions from its properties
329
+ * @private
330
+ * @returns {Point} dimensions
331
+ */
332
+ _getNonTransformedDimensions(): Point;
333
+ /**
334
+ * Calculate object dimensions for controls box, including padding and canvas zoom.
335
+ * and active selection
336
+ * @private
337
+ * @param {object} [options] transform options
338
+ * @returns {Point} dimensions
339
+ */
340
+ _calculateCurrentDimensions(options?: any): Point;
341
+ }
342
+ export {};
343
+ //# sourceMappingURL=ObjectGeometry.d.ts.map
@@ -0,0 +1,178 @@
1
+ import { Point } from '../../Point';
2
+ import type { Group } from '../Group';
3
+ import { TDegree, TOriginX, TOriginY } from '../../typedefs';
4
+ import { CommonMethods } from '../../CommonMethods';
5
+ export declare class ObjectOrigin<EventSpec> extends CommonMethods<EventSpec> {
6
+ /**
7
+ * Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}
8
+ * @type Number
9
+ * @default 0
10
+ */
11
+ top: number;
12
+ /**
13
+ * Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}
14
+ * @type Number
15
+ * @default 0
16
+ */
17
+ left: number;
18
+ /**
19
+ * Object width
20
+ * @type Number
21
+ * @default
22
+ */
23
+ width: number;
24
+ /**
25
+ * Object height
26
+ * @type Number
27
+ * @default
28
+ */
29
+ height: number;
30
+ /**
31
+ * Object scale factor (horizontal)
32
+ * @type Number
33
+ * @default 1
34
+ */
35
+ scaleX: number;
36
+ /**
37
+ * Object scale factor (vertical)
38
+ * @type Number
39
+ * @default 1
40
+ */
41
+ scaleY: number;
42
+ /**
43
+ * Angle of skew on x axes of an object (in degrees)
44
+ * @type Number
45
+ * @default 0
46
+ */
47
+ skewX: number;
48
+ /**
49
+ * Angle of skew on y axes of an object (in degrees)
50
+ * @type Number
51
+ * @default 0
52
+ */
53
+ skewY: number;
54
+ /**
55
+ * Horizontal origin of transformation of an object (one of "left", "right", "center")
56
+ * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
57
+ * @type String
58
+ * @default 'left'
59
+ */
60
+ originX: TOriginX;
61
+ /**
62
+ * Vertical origin of transformation of an object (one of "top", "bottom", "center")
63
+ * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
64
+ * @type String
65
+ * @default 'top'
66
+ */
67
+ originY: TOriginY;
68
+ /**
69
+ * Angle of rotation of an object (in degrees)
70
+ * @type Number
71
+ * @default 0
72
+ */
73
+ angle: TDegree;
74
+ /**
75
+ * Width of a stroke used to render this object
76
+ * @type Number
77
+ * @default 1
78
+ */
79
+ strokeWidth: number;
80
+ /**
81
+ * When `false`, the stoke width will scale with the object.
82
+ * When `true`, the stroke will always match the exact pixel size entered for stroke width.
83
+ * this Property does not work on Text classes or drawing call that uses strokeText,fillText methods
84
+ * default to false
85
+ * @since 2.6.0
86
+ * @type Boolean
87
+ * @default false
88
+ * @type Boolean
89
+ * @default false
90
+ */
91
+ strokeUniform: boolean;
92
+ /**
93
+ * Object containing this object.
94
+ * can influence its size and position
95
+ */
96
+ group?: Group;
97
+ _originalOriginX?: TOriginX;
98
+ _originalOriginY?: TOriginY;
99
+ /**
100
+ * Calculate object bounding box dimensions from its properties scale, skew.
101
+ * @param {Object} [options]
102
+ * @param {Number} [options.scaleX]
103
+ * @param {Number} [options.scaleY]
104
+ * @param {Number} [options.skewX]
105
+ * @param {Number} [options.skewY]
106
+ * @private
107
+ * @returns {Point} dimensions
108
+ */
109
+ _getTransformedDimensions(options?: any): Point;
110
+ /**
111
+ * Translates the coordinates from a set of origin to another (based on the object's dimensions)
112
+ * @param {Point} point The point which corresponds to the originX and originY params
113
+ * @param {TOriginX} fromOriginX Horizontal origin: 'left', 'center' or 'right'
114
+ * @param {TOriginY} fromOriginY Vertical origin: 'top', 'center' or 'bottom'
115
+ * @param {TOriginX} toOriginX Horizontal origin: 'left', 'center' or 'right'
116
+ * @param {TOriginY} toOriginY Vertical origin: 'top', 'center' or 'bottom'
117
+ * @return {Point}
118
+ */
119
+ translateToGivenOrigin(point: Point, fromOriginX: TOriginX, fromOriginY: TOriginY, toOriginX: TOriginX, toOriginY: TOriginY): Point;
120
+ /**
121
+ * Translates the coordinates from origin to center coordinates (based on the object's dimensions)
122
+ * @param {Point} point The point which corresponds to the originX and originY params
123
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
124
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
125
+ * @return {Point}
126
+ */
127
+ translateToCenterPoint(point: Point, originX: TOriginX, originY: TOriginY): Point;
128
+ /**
129
+ * Translates the coordinates from center to origin coordinates (based on the object's dimensions)
130
+ * @param {Point} center The point which corresponds to center of the object
131
+ * @param {OriginX} originX Horizontal origin: 'left', 'center' or 'right'
132
+ * @param {OriginY} originY Vertical origin: 'top', 'center' or 'bottom'
133
+ * @return {Point}
134
+ */
135
+ translateToOriginPoint(center: Point, originX: TOriginX, originY: TOriginY): Point;
136
+ /**
137
+ * Returns the center coordinates of the object relative to canvas
138
+ * @return {Point}
139
+ */
140
+ getCenterPoint(): Point;
141
+ /**
142
+ * Returns the center coordinates of the object relative to it's parent
143
+ * @return {Point}
144
+ */
145
+ getRelativeCenterPoint(): Point;
146
+ /**
147
+ * Returns the coordinates of the object as if it has a different origin
148
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
149
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
150
+ * @return {Point}
151
+ */
152
+ getPointByOrigin(originX: TOriginX, originY: TOriginY): Point;
153
+ /**
154
+ * Sets the position of the object taking into consideration the object's origin
155
+ * @param {Point} pos The new position of the object
156
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
157
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
158
+ * @return {void}
159
+ */
160
+ setPositionByOrigin(pos: Point, originX: TOriginX, originY: TOriginY): void;
161
+ /**
162
+ * Sets the origin/position of the object to it's center point
163
+ * @private
164
+ * @return {void}
165
+ */
166
+ _setOriginToCenter(): void;
167
+ /**
168
+ * Resets the origin/position of the object to it's original origin
169
+ * @private
170
+ * @return {void}
171
+ */
172
+ _resetOrigin(): void;
173
+ /**
174
+ * @private
175
+ */
176
+ _getLeftTopCoords(): Point;
177
+ }
178
+ //# sourceMappingURL=ObjectOrigin.d.ts.map
@@ -0,0 +1,62 @@
1
+ import { ObjectEvents } from '../../EventTypeDefs';
2
+ import type { Group } from '../Group';
3
+ import type { Canvas } from '../../canvas/Canvas';
4
+ import { StaticCanvas } from '../../canvas/StaticCanvas';
5
+ import { ObjectGeometry } from './ObjectGeometry';
6
+ type TAncestor = StackedObject | Canvas | StaticCanvas;
7
+ /**
8
+ * Strict: only ancestors that are objects (without canvas)
9
+ */
10
+ export type Ancestors<Strict> = Strict extends true ? [StackedObject | Group] | [StackedObject | Group, ...Group[]] | Group[] : [StackedObject | Group | Canvas | StaticCanvas] | [StackedObject | Group, Canvas | StaticCanvas] | [StackedObject, ...Group[]] | Group[] | [StackedObject | Group, ...Group[], Canvas | StaticCanvas];
11
+ export type AncestryComparison<Strict> = {
12
+ /**
13
+ * common ancestors of `this` and`other`(may include`this` | `other`)
14
+ */
15
+ common: Ancestors<Strict>;
16
+ /**
17
+ * ancestors that are of `this` only
18
+ */
19
+ fork: Ancestors<Strict>;
20
+ /**
21
+ * ancestors that are of `other` only
22
+ */
23
+ otherFork: Ancestors<Strict>;
24
+ };
25
+ export declare class StackedObject<EventSpec extends ObjectEvents = ObjectEvents> extends ObjectGeometry<EventSpec> {
26
+ /**
27
+ * Checks if object is descendant of target
28
+ * Should be used instead of @link {Collection.contains} for performance reasons
29
+ * @param {TAncestor} target
30
+ * @returns {boolean}
31
+ */
32
+ isDescendantOf(target: TAncestor): boolean;
33
+ /**
34
+ *
35
+ * @param {boolean} [strict] returns only ancestors that are objects (without canvas)
36
+ * @returns {Ancestors} ancestors from bottom to top
37
+ */
38
+ getAncestors<T extends boolean>(strict?: T): Ancestors<T>;
39
+ /**
40
+ * Compare ancestors
41
+ *
42
+ * @param {StackedObject} other
43
+ * @param {boolean} [strict] finds only ancestors that are objects (without canvas)
44
+ * @returns {AncestryComparison} an object that represent the ancestry situation.
45
+ */
46
+ findCommonAncestors<T extends this, S extends boolean>(other: T, strict?: S): AncestryComparison<S>;
47
+ /**
48
+ *
49
+ * @param {StackedObject} other
50
+ * @param {boolean} [strict] checks only ancestors that are objects (without canvas)
51
+ * @returns {boolean}
52
+ */
53
+ hasCommonAncestors<T extends this>(other: T, strict?: boolean): boolean;
54
+ /**
55
+ *
56
+ * @param {FabricObject} other object to compare against
57
+ * @returns {boolean | undefined} if objects do not share a common ancestor or they are strictly equal it is impossible to determine which is in front of the other; in such cases the function returns `undefined`
58
+ */
59
+ isInFrontOf<T extends this>(other: T): boolean | undefined;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=StackedObject.d.ts.map
@@ -0,0 +1,77 @@
1
+ export declare const stateProperties: string[];
2
+ export declare const cacheProperties: string[];
3
+ export declare const fabricObjectDefaultValues: {
4
+ type: string;
5
+ originX: string;
6
+ originY: string;
7
+ top: number;
8
+ left: number;
9
+ width: number;
10
+ height: number;
11
+ scaleX: number;
12
+ scaleY: number;
13
+ flipX: boolean;
14
+ flipY: boolean;
15
+ opacity: number;
16
+ angle: number;
17
+ skewX: number;
18
+ skewY: number;
19
+ cornerSize: number;
20
+ touchCornerSize: number;
21
+ transparentCorners: boolean;
22
+ hoverCursor: null;
23
+ moveCursor: null;
24
+ padding: number;
25
+ borderColor: string;
26
+ borderDashArray: null;
27
+ cornerColor: string;
28
+ cornerStrokeColor: string;
29
+ cornerStyle: string;
30
+ cornerDashArray: null;
31
+ centeredScaling: boolean;
32
+ centeredRotation: boolean;
33
+ fill: string;
34
+ fillRule: string;
35
+ globalCompositeOperation: string;
36
+ backgroundColor: string;
37
+ selectionBackgroundColor: string;
38
+ stroke: null;
39
+ strokeWidth: number;
40
+ strokeDashArray: null;
41
+ strokeDashOffset: number;
42
+ strokeLineCap: string;
43
+ strokeLineJoin: string;
44
+ strokeMiterLimit: number;
45
+ shadow: null;
46
+ borderOpacityWhenMoving: number;
47
+ borderScaleFactor: number;
48
+ minScaleLimit: number;
49
+ selectable: boolean;
50
+ evented: boolean;
51
+ visible: boolean;
52
+ hasControls: boolean;
53
+ hasBorders: boolean;
54
+ perPixelTargetFind: boolean;
55
+ includeDefaultValues: boolean;
56
+ lockMovementX: boolean;
57
+ lockMovementY: boolean;
58
+ lockRotation: boolean;
59
+ lockScalingX: boolean;
60
+ lockScalingY: boolean;
61
+ lockSkewingX: boolean;
62
+ lockSkewingY: boolean;
63
+ lockScalingFlip: boolean;
64
+ excludeFromExport: boolean;
65
+ objectCaching: boolean;
66
+ noScaleCache: boolean;
67
+ strokeUniform: boolean;
68
+ dirty: boolean;
69
+ paintFirst: string;
70
+ activeOn: string;
71
+ colorProperties: string[];
72
+ clipPath: undefined;
73
+ inverted: boolean;
74
+ absolutePositioned: boolean;
75
+ FX_DURATION: number;
76
+ };
77
+ //# sourceMappingURL=defaultValues.d.ts.map