fabric 5.3.0 → 6.0.0-beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintignore +3 -0
  5. package/.eslintrc.js +43 -0
  6. package/.eslintrc.json +38 -46
  7. package/.eslintrc_tests +12 -0
  8. package/.gitattributes +2 -0
  9. package/.gitpod.yml +17 -1
  10. package/.prettierignore +19 -0
  11. package/.prettierrc +4 -0
  12. package/CHANGELOG.md +532 -189
  13. package/CONTRIBUTING.md +224 -59
  14. package/README.md +200 -235
  15. package/bower.json +1 -3
  16. package/dist/fabric.d.ts +42 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +27582 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.min.js +1 -0
  21. package/dist/index.mjs +27519 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/index.node.cjs +27663 -0
  24. package/dist/index.node.cjs.map +1 -0
  25. package/dist/index.node.d.ts +14 -0
  26. package/dist/index.node.mjs +27606 -0
  27. package/dist/index.node.mjs.map +1 -0
  28. package/dist/src/ClassRegistry.d.ts +13 -0
  29. package/dist/src/Collection.d.ts +136 -0
  30. package/dist/src/CommonMethods.d.ts +32 -0
  31. package/dist/src/EventTypeDefs.d.ts +227 -0
  32. package/dist/src/Intersection.d.ts +112 -0
  33. package/dist/src/Observable.d.ts +60 -0
  34. package/dist/src/Pattern.d.ts +113 -0
  35. package/dist/src/Point.d.ts +232 -0
  36. package/dist/src/Shadow.d.ts +97 -0
  37. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  38. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  39. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  40. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  41. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  42. package/dist/src/cache.d.ts +47 -0
  43. package/dist/src/canvas/Canvas.d.ts +548 -0
  44. package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
  45. package/dist/src/canvas/StaticCanvas.d.ts +778 -0
  46. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  47. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  48. package/dist/src/color/Color.d.ts +174 -0
  49. package/dist/src/color/color_map.d.ts +155 -0
  50. package/dist/src/color/constants.d.ts +22 -0
  51. package/dist/src/color/util.d.ts +12 -0
  52. package/dist/src/config.d.ts +115 -0
  53. package/dist/src/constants.d.ts +14 -0
  54. package/dist/src/controls/Control.d.ts +228 -0
  55. package/dist/src/controls/changeWidth.d.ts +13 -0
  56. package/dist/src/controls/commonControls.d.ts +28 -0
  57. package/dist/src/controls/controlRendering.d.ts +29 -0
  58. package/dist/src/controls/drag.d.ts +12 -0
  59. package/dist/src/controls/index.d.ts +13 -0
  60. package/dist/src/controls/polyControl.d.ts +5 -0
  61. package/dist/src/controls/rotate.d.ts +12 -0
  62. package/dist/src/controls/scale.d.ts +47 -0
  63. package/dist/src/controls/scaleSkew.d.ts +39 -0
  64. package/dist/src/controls/skew.d.ts +33 -0
  65. package/dist/src/controls/util.d.ts +41 -0
  66. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  67. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  68. package/dist/src/env/browser.d.ts +3 -0
  69. package/dist/src/env/index.d.ts +15 -0
  70. package/dist/src/env/node.d.ts +5 -0
  71. package/dist/src/env/types.d.ts +15 -0
  72. package/dist/src/filters/BaseFilter.d.ts +153 -0
  73. package/dist/src/filters/BlendColor.d.ts +80 -0
  74. package/dist/src/filters/BlendImage.d.ts +92 -0
  75. package/dist/src/filters/Blur.d.ts +51 -0
  76. package/dist/src/filters/Boilerplate.d.ts +48 -0
  77. package/dist/src/filters/Brightness.d.ts +47 -0
  78. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  79. package/dist/src/filters/ColorMatrix.d.ts +63 -0
  80. package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
  81. package/dist/src/filters/Composed.d.ts +45 -0
  82. package/dist/src/filters/Contrast.d.ts +45 -0
  83. package/dist/src/filters/Convolute.d.ts +82 -0
  84. package/dist/src/filters/FilterBackend.d.ts +14 -0
  85. package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
  86. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  87. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  88. package/dist/src/filters/Gamma.d.ts +54 -0
  89. package/dist/src/filters/Grayscale.d.ts +46 -0
  90. package/dist/src/filters/HueRotation.d.ts +24 -0
  91. package/dist/src/filters/Invert.d.ts +55 -0
  92. package/dist/src/filters/Noise.d.ts +54 -0
  93. package/dist/src/filters/Pixelate.d.ts +44 -0
  94. package/dist/src/filters/RemoveColor.d.ts +63 -0
  95. package/dist/src/filters/Resize.d.ts +136 -0
  96. package/dist/src/filters/Saturation.d.ts +48 -0
  97. package/dist/src/filters/Vibrance.d.ts +48 -0
  98. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  99. package/dist/src/filters/filters.d.ts +21 -0
  100. package/dist/src/filters/index.d.ts +5 -0
  101. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  102. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  103. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  104. package/dist/src/filters/shaders/blur.d.ts +2 -0
  105. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  106. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  107. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  108. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  109. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  110. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  111. package/dist/src/filters/shaders/invert.d.ts +2 -0
  112. package/dist/src/filters/shaders/noise.d.ts +2 -0
  113. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  114. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  115. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  116. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  117. package/dist/src/filters/typedefs.d.ts +49 -0
  118. package/dist/src/gradient/Gradient.d.ts +149 -0
  119. package/dist/src/gradient/constants.d.ts +15 -0
  120. package/dist/src/gradient/parser/index.d.ts +4 -0
  121. package/dist/src/gradient/parser/misc.d.ts +4 -0
  122. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  123. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  124. package/dist/src/gradient/typedefs.d.ts +93 -0
  125. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  126. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  127. package/dist/src/parkinglot/straighten.d.ts +2 -0
  128. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  129. package/dist/src/parser/attributes.d.ts +6 -0
  130. package/dist/src/parser/constants.d.ts +53 -0
  131. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  132. package/dist/src/parser/elementById.d.ts +6 -0
  133. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  134. package/dist/src/parser/elements_parser.d.ts +3 -0
  135. package/dist/src/parser/getCSSRules.d.ts +7 -0
  136. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  137. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  138. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  139. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  140. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  141. package/dist/src/parser/index.d.ts +10 -0
  142. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  143. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  144. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  145. package/dist/src/parser/normalizeValue.d.ts +2 -0
  146. package/dist/src/parser/parseAttributes.d.ts +9 -0
  147. package/dist/src/parser/parseElements.d.ts +11 -0
  148. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  149. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  150. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  151. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  152. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  153. package/dist/src/parser/parseStyleString.d.ts +2 -0
  154. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  155. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  156. package/dist/src/parser/percent.d.ts +9 -0
  157. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  158. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  159. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  160. package/dist/src/parser/selectorMatches.d.ts +2 -0
  161. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  162. package/dist/src/parser/skewMatrix.d.ts +2 -0
  163. package/dist/src/parser/translateMatrix.d.ts +2 -0
  164. package/dist/src/shapes/ActiveSelection.d.ts +82 -0
  165. package/dist/src/shapes/Circle.d.ts +99 -0
  166. package/dist/src/shapes/Ellipse.d.ts +84 -0
  167. package/dist/src/shapes/Group.d.ts +408 -0
  168. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  169. package/dist/src/shapes/IText/IText.d.ts +335 -0
  170. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  171. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
  172. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  173. package/dist/src/shapes/IText/constants.d.ts +13 -0
  174. package/dist/src/shapes/Image.d.ts +311 -0
  175. package/dist/src/shapes/Line.d.ts +126 -0
  176. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  177. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  178. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  179. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  180. package/dist/src/shapes/Object/Object.d.ts +594 -0
  181. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  182. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  183. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  184. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  185. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  186. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  187. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  188. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  189. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  190. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  191. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  192. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  193. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  194. package/dist/src/shapes/Path.d.ts +130 -0
  195. package/dist/src/shapes/Polygon.d.ts +9 -0
  196. package/dist/src/shapes/Polyline.d.ts +140 -0
  197. package/dist/src/shapes/Rect.d.ts +76 -0
  198. package/dist/src/shapes/Text/StyledText.d.ts +119 -0
  199. package/dist/src/shapes/Text/Text.d.ts +673 -0
  200. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  201. package/dist/src/shapes/Text/constants.d.ts +7 -0
  202. package/dist/src/shapes/Textbox.d.ts +185 -0
  203. package/dist/src/shapes/Triangle.d.ts +25 -0
  204. package/dist/src/typedefs.d.ts +90 -0
  205. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  206. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  207. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  208. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  209. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  210. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  211. package/dist/src/util/animation/animate.d.ts +37 -0
  212. package/dist/src/util/animation/easing.d.ts +130 -0
  213. package/dist/src/util/animation/types.d.ts +87 -0
  214. package/dist/src/util/applyMixins.d.ts +8 -0
  215. package/dist/src/util/dom_event.d.ts +5 -0
  216. package/dist/src/util/dom_misc.d.ts +39 -0
  217. package/dist/src/util/dom_request.d.ts +14 -0
  218. package/dist/src/util/dom_style.d.ts +7 -0
  219. package/dist/src/util/fireEvent.d.ts +3 -0
  220. package/dist/src/util/index.d.ts +35 -0
  221. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  222. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  223. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  224. package/dist/src/util/internals/index.d.ts +4 -0
  225. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  226. package/dist/src/util/internals/uid.d.ts +2 -0
  227. package/dist/src/util/lang_string.d.ts +22 -0
  228. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  229. package/dist/src/util/misc/capValue.d.ts +2 -0
  230. package/dist/src/util/misc/cos.d.ts +10 -0
  231. package/dist/src/util/misc/dom.d.ts +28 -0
  232. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  233. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  234. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  235. package/dist/src/util/misc/matrix.d.ts +92 -0
  236. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  237. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  238. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  239. package/dist/src/util/misc/pick.d.ts +9 -0
  240. package/dist/src/util/misc/planeChange.d.ts +84 -0
  241. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  242. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  243. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  244. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  245. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  246. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  247. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  248. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  249. package/dist/src/util/misc/sin.d.ts +10 -0
  250. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  251. package/dist/src/util/misc/textStyles.d.ts +32 -0
  252. package/dist/src/util/misc/toFixed.d.ts +8 -0
  253. package/dist/src/util/misc/vectors.d.ts +57 -0
  254. package/dist/src/util/path/index.d.ts +96 -0
  255. package/dist/src/util/path/regex.d.ts +3 -0
  256. package/dist/src/util/path/typechecks.d.ts +24 -0
  257. package/dist/src/util/path/typedefs.d.ts +220 -0
  258. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  259. package/dist/src/util/types.d.ts +19 -0
  260. package/fabric.ts +51 -0
  261. package/index.node.ts +37 -0
  262. package/index.ts +1 -0
  263. package/package.json +100 -40
  264. package/publish.js +0 -26
  265. package/rollup.config.mjs +91 -0
  266. package/rollup.test.config.js +24 -0
  267. package/scripts/build.mjs +50 -0
  268. package/scripts/buildLock.mjs +115 -0
  269. package/scripts/buildReporter.mjs +15 -0
  270. package/scripts/buildStats.mjs +139 -0
  271. package/scripts/dirname.mjs +14 -0
  272. package/scripts/git.mjs +36 -0
  273. package/scripts/index.mjs +564 -0
  274. package/scripts/sandbox.mjs +149 -0
  275. package/src/ClassRegistry.ts +56 -0
  276. package/src/Collection.ts +346 -0
  277. package/src/CommonMethods.ts +63 -0
  278. package/src/EventTypeDefs.ts +296 -0
  279. package/src/Intersection.ts +302 -0
  280. package/src/Observable.ts +181 -0
  281. package/src/Pattern.ts +227 -0
  282. package/src/Point.ts +388 -0
  283. package/src/Shadow.ts +214 -0
  284. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  285. package/src/brushes/CircleBrush.ts +145 -0
  286. package/src/brushes/PatternBrush.ts +70 -0
  287. package/src/brushes/PencilBrush.ts +300 -0
  288. package/src/brushes/SprayBrush.ts +219 -0
  289. package/src/cache.ts +90 -0
  290. package/src/canvas/Canvas.ts +1607 -0
  291. package/src/canvas/SelectableCanvas.ts +1608 -0
  292. package/src/canvas/StaticCanvas.ts +1734 -0
  293. package/src/canvas/TextEditingManager.ts +48 -0
  294. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  295. package/src/color/Color.ts +404 -0
  296. package/src/color/color_map.ts +154 -0
  297. package/src/color/constants.ts +26 -0
  298. package/src/color/util.ts +32 -0
  299. package/src/config.ts +159 -0
  300. package/src/constants.ts +20 -0
  301. package/src/controls/Control.ts +380 -0
  302. package/src/controls/changeWidth.ts +52 -0
  303. package/src/controls/commonControls.ts +105 -0
  304. package/src/controls/controlRendering.ts +138 -0
  305. package/src/controls/drag.ts +31 -0
  306. package/src/controls/index.ts +22 -0
  307. package/src/controls/polyControl.ts +135 -0
  308. package/src/controls/rotate.ts +87 -0
  309. package/src/controls/scale.ts +277 -0
  310. package/src/controls/scaleSkew.ts +92 -0
  311. package/src/controls/skew.ts +242 -0
  312. package/src/controls/util.ts +154 -0
  313. package/src/controls/wrapWithFireEvent.ts +25 -0
  314. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  315. package/src/env/browser.ts +32 -0
  316. package/src/env/index.ts +24 -0
  317. package/src/env/node.ts +56 -0
  318. package/src/env/types.ts +15 -0
  319. package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
  320. package/src/filters/BlendColor.ts +217 -0
  321. package/src/filters/BlendImage.ts +228 -0
  322. package/src/filters/Blur.ts +179 -0
  323. package/src/filters/Boilerplate.ts +94 -0
  324. package/src/filters/Brightness.ts +83 -0
  325. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  326. package/src/filters/ColorMatrix.ts +145 -0
  327. package/src/filters/ColorMatrixFilters.ts +77 -0
  328. package/src/filters/Composed.ts +76 -0
  329. package/src/filters/Contrast.ts +82 -0
  330. package/src/filters/Convolute.ts +184 -0
  331. package/src/filters/FilterBackend.ts +34 -0
  332. package/src/filters/GLProbes/GLProbe.ts +11 -0
  333. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  334. package/src/filters/GLProbes/WebGLProbe.ts +46 -0
  335. package/src/filters/Gamma.ts +110 -0
  336. package/src/filters/Grayscale.ts +102 -0
  337. package/src/filters/HueRotation.ts +62 -0
  338. package/src/filters/Invert.ts +99 -0
  339. package/src/filters/Noise.ts +94 -0
  340. package/src/filters/Pixelate.ts +96 -0
  341. package/src/filters/RemoveColor.ts +135 -0
  342. package/src/filters/Resize.ts +538 -0
  343. package/src/filters/Saturation.ts +87 -0
  344. package/src/filters/Vibrance.ts +88 -0
  345. package/src/filters/WebGLFilterBackend.ts +430 -0
  346. package/src/filters/filters.ts +28 -0
  347. package/src/filters/index.ts +5 -0
  348. package/src/filters/shaders/baseFilter.ts +19 -0
  349. package/src/filters/shaders/blendColor.ts +33 -0
  350. package/src/filters/shaders/blendImage.ts +32 -0
  351. package/src/filters/shaders/blur.ts +24 -0
  352. package/src/filters/shaders/brightness.ts +11 -0
  353. package/src/filters/shaders/colorMatrix.ts +12 -0
  354. package/src/filters/shaders/constrast.ts +11 -0
  355. package/src/filters/shaders/convolute.ts +154 -0
  356. package/src/filters/shaders/gamma.ts +15 -0
  357. package/src/filters/shaders/grayscale.ts +36 -0
  358. package/src/filters/shaders/invert.ts +19 -0
  359. package/src/filters/shaders/noise.ts +16 -0
  360. package/src/filters/shaders/pixelate.ts +19 -0
  361. package/src/filters/shaders/removeColor.ts +13 -0
  362. package/src/filters/shaders/saturation.ts +15 -0
  363. package/src/filters/shaders/vibrance.ts +16 -0
  364. package/src/filters/typedefs.ts +65 -0
  365. package/src/gradient/Gradient.ts +406 -0
  366. package/src/gradient/constants.ts +12 -0
  367. package/src/gradient/parser/index.ts +3 -0
  368. package/src/gradient/parser/misc.ts +13 -0
  369. package/src/gradient/parser/parseColorStops.ts +56 -0
  370. package/src/gradient/parser/parseCoords.ts +73 -0
  371. package/src/gradient/typedefs.ts +104 -0
  372. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  373. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  374. package/src/parkinglot/straighten.ts +58 -0
  375. package/src/parser/applyViewboxTransform.ts +157 -0
  376. package/src/parser/attributes.ts +25 -0
  377. package/src/parser/constants.ts +115 -0
  378. package/src/parser/doesSomeParentMatch.ts +19 -0
  379. package/src/parser/elementById.ts +21 -0
  380. package/src/parser/elementMatchesRule.ts +16 -0
  381. package/src/parser/elements_parser.ts +191 -0
  382. package/src/parser/getCSSRules.ts +62 -0
  383. package/src/parser/getGlobalStylesForElement.ts +19 -0
  384. package/src/parser/getGradientDefs.ts +31 -0
  385. package/src/parser/getMultipleNodes.ts +15 -0
  386. package/src/parser/getSvgRegex.ts +5 -0
  387. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  388. package/src/parser/index.ts +9 -0
  389. package/src/parser/loadSVGFromString.ts +26 -0
  390. package/src/parser/loadSVGFromURL.ts +40 -0
  391. package/src/parser/normalizeAttr.ts +10 -0
  392. package/src/parser/normalizeValue.ts +63 -0
  393. package/src/parser/parseAttributes.ts +90 -0
  394. package/src/parser/parseElements.ts +28 -0
  395. package/src/parser/parseFontDeclaration.ts +44 -0
  396. package/src/parser/parsePointsAttribute.ts +34 -0
  397. package/src/parser/parseSVGDocument.ts +93 -0
  398. package/src/parser/parseStyleAttribute.ts +27 -0
  399. package/src/parser/parseStyleObject.ts +15 -0
  400. package/src/parser/parseStyleString.ts +16 -0
  401. package/src/parser/parseTransformAttribute.ts +155 -0
  402. package/src/parser/parseUseDirectives.ts +78 -0
  403. package/src/parser/percent.ts +27 -0
  404. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  405. package/src/parser/rotateMatrix.ts +21 -0
  406. package/src/parser/scaleMatrix.ts +9 -0
  407. package/src/parser/selectorMatches.ts +25 -0
  408. package/src/parser/setStrokeFillOpacity.ts +40 -0
  409. package/src/parser/skewMatrix.ts +6 -0
  410. package/src/parser/translateMatrix.ts +8 -0
  411. package/src/shapes/ActiveSelection.ts +189 -0
  412. package/src/shapes/Circle.ts +242 -0
  413. package/src/shapes/Ellipse.ts +179 -0
  414. package/src/shapes/Group.ts +1100 -0
  415. package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
  416. package/src/shapes/IText/IText.ts +693 -0
  417. package/src/shapes/IText/ITextBehavior.ts +1064 -0
  418. package/src/shapes/IText/ITextClickBehavior.ts +325 -0
  419. package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
  420. package/src/shapes/IText/constants.ts +47 -0
  421. package/src/shapes/Image.ts +841 -0
  422. package/src/shapes/Line.ts +346 -0
  423. package/src/shapes/Object/AnimatableObject.ts +106 -0
  424. package/src/shapes/Object/FabricObject.ts +29 -0
  425. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  426. package/src/shapes/Object/InteractiveObject.ts +672 -0
  427. package/src/shapes/Object/Object.ts +1561 -0
  428. package/src/shapes/Object/ObjectGeometry.ts +813 -0
  429. package/src/shapes/Object/ObjectOrigin.ts +276 -0
  430. package/src/shapes/Object/StackedObject.ts +206 -0
  431. package/src/shapes/Object/defaultValues.ts +108 -0
  432. package/src/shapes/Object/types/BaseProps.ts +96 -0
  433. package/src/shapes/Object/types/BorderProps.ts +40 -0
  434. package/src/shapes/Object/types/ControlProps.ts +69 -0
  435. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  436. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  437. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  438. package/src/shapes/Object/types/ObjectProps.ts +46 -0
  439. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  440. package/src/shapes/Object/types/index.ts +8 -0
  441. package/src/shapes/Path.ts +416 -0
  442. package/src/shapes/Polygon.ts +20 -0
  443. package/src/shapes/Polyline.ts +359 -0
  444. package/src/shapes/Rect.ts +233 -0
  445. package/src/shapes/Text/StyledText.ts +329 -0
  446. package/src/shapes/Text/Text.ts +1884 -0
  447. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  448. package/src/shapes/Text/constants.ts +91 -0
  449. package/src/shapes/Textbox.ts +477 -0
  450. package/src/shapes/Triangle.ts +60 -0
  451. package/src/typedefs.ts +115 -0
  452. package/src/util/animation/AnimationBase.ts +166 -0
  453. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  454. package/src/util/animation/AnimationRegistry.ts +58 -0
  455. package/src/util/animation/ArrayAnimation.ts +27 -0
  456. package/src/util/animation/ColorAnimation.ts +74 -0
  457. package/src/util/animation/ValueAnimation.ts +29 -0
  458. package/src/util/animation/animate.ts +74 -0
  459. package/src/util/animation/easing.ts +327 -0
  460. package/src/util/animation/types.ts +136 -0
  461. package/src/util/applyMixins.ts +22 -0
  462. package/src/util/dom_event.ts +28 -0
  463. package/src/util/dom_misc.ts +121 -0
  464. package/src/util/dom_request.ts +64 -0
  465. package/src/util/dom_style.ts +20 -0
  466. package/src/util/fireEvent.ts +15 -0
  467. package/src/util/index.ts +102 -0
  468. package/src/util/internals/cloneDeep.ts +2 -0
  469. package/src/util/internals/getRandomInt.ts +8 -0
  470. package/src/util/internals/ifNaN.ts +9 -0
  471. package/src/util/internals/index.ts +3 -0
  472. package/src/util/internals/removeFromArray.ts +14 -0
  473. package/src/util/internals/uid.ts +3 -0
  474. package/src/util/lang_string.ts +79 -0
  475. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  476. package/src/util/misc/capValue.ts +2 -0
  477. package/src/util/misc/cos.ts +24 -0
  478. package/src/util/misc/dom.ts +50 -0
  479. package/src/util/misc/findScaleTo.ts +44 -0
  480. package/src/util/misc/groupSVGElements.ts +15 -0
  481. package/src/util/misc/isTransparent.ts +28 -0
  482. package/src/util/misc/matrix.ts +207 -0
  483. package/src/util/misc/mergeClipPaths.ts +40 -0
  484. package/src/util/misc/objectEnlive.ts +189 -0
  485. package/src/util/misc/objectTransforms.ts +129 -0
  486. package/src/util/misc/pick.ts +29 -0
  487. package/src/util/misc/planeChange.ts +136 -0
  488. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  489. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
  490. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  491. package/src/util/misc/projectStroke/index.ts +53 -0
  492. package/src/util/misc/projectStroke/types.ts +24 -0
  493. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  494. package/src/util/misc/resolveOrigin.ts +22 -0
  495. package/src/util/misc/rotatePoint.ts +15 -0
  496. package/src/util/misc/sin.ts +26 -0
  497. package/src/util/misc/svgParsing.ts +181 -0
  498. package/src/util/misc/textStyles.ts +134 -0
  499. package/src/util/misc/toFixed.ts +8 -0
  500. package/src/util/misc/vectors.ts +82 -0
  501. package/src/util/path/index.ts +1038 -0
  502. package/src/util/path/regex.ts +41 -0
  503. package/src/util/path/typechecks.ts +145 -0
  504. package/src/util/path/typedefs.ts +305 -0
  505. package/src/util/transform_matrix_removal.ts +60 -0
  506. package/src/util/types.ts +78 -0
  507. package/tsconfig.json +106 -0
  508. package/HEADER.js +0 -203
  509. package/build.js +0 -287
  510. package/dist/fabric.js +0 -31187
  511. package/dist/fabric.min.js +0 -1
  512. package/old-travis-reference.yml +0 -97
  513. package/src/brushes/circle_brush.class.js +0 -144
  514. package/src/brushes/pattern_brush.class.js +0 -61
  515. package/src/brushes/pencil_brush.class.js +0 -310
  516. package/src/brushes/spray_brush.class.js +0 -219
  517. package/src/canvas.class.js +0 -1312
  518. package/src/color.class.js +0 -636
  519. package/src/control.class.js +0 -339
  520. package/src/controls.actions.js +0 -740
  521. package/src/controls.render.js +0 -99
  522. package/src/elements_parser.js +0 -152
  523. package/src/filters/2d_backend.class.js +0 -65
  524. package/src/filters/blendcolor_filter.class.js +0 -251
  525. package/src/filters/blendimage_filter.class.js +0 -247
  526. package/src/filters/blur_filter.class.js +0 -217
  527. package/src/filters/brightness_filter.class.js +0 -113
  528. package/src/filters/colormatrix_filter.class.js +0 -159
  529. package/src/filters/composed_filter.class.js +0 -72
  530. package/src/filters/contrast_filter.class.js +0 -113
  531. package/src/filters/convolute_filter.class.js +0 -352
  532. package/src/filters/filter_boilerplate.js +0 -111
  533. package/src/filters/filter_generator.js +0 -85
  534. package/src/filters/gamma_filter.class.js +0 -136
  535. package/src/filters/grayscale_filter.class.js +0 -154
  536. package/src/filters/hue_rotation.class.js +0 -107
  537. package/src/filters/invert_filter.class.js +0 -111
  538. package/src/filters/noise_filter.class.js +0 -134
  539. package/src/filters/pixelate_filter.class.js +0 -137
  540. package/src/filters/removecolor_filter.class.js +0 -173
  541. package/src/filters/resize_filter.class.js +0 -490
  542. package/src/filters/saturate_filter.class.js +0 -119
  543. package/src/filters/vibrance_filter.class.js +0 -122
  544. package/src/filters/webgl_backend.class.js +0 -396
  545. package/src/globalFabric.js +0 -4
  546. package/src/gradient.class.js +0 -490
  547. package/src/intersection.class.js +0 -172
  548. package/src/log.js +0 -11
  549. package/src/mixins/animation.mixin.js +0 -231
  550. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  551. package/src/mixins/canvas_events.mixin.js +0 -974
  552. package/src/mixins/canvas_gestures.mixin.js +0 -149
  553. package/src/mixins/canvas_grouping.mixin.js +0 -177
  554. package/src/mixins/canvas_serialization.mixin.js +0 -228
  555. package/src/mixins/collection.mixin.js +0 -170
  556. package/src/mixins/default_controls.js +0 -114
  557. package/src/mixins/itext.svg_export.js +0 -241
  558. package/src/mixins/itext_behavior.mixin.js +0 -940
  559. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  560. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  561. package/src/mixins/object.svg_export.js +0 -258
  562. package/src/mixins/object_geometry.mixin.js +0 -683
  563. package/src/mixins/object_interactivity.mixin.js +0 -314
  564. package/src/mixins/object_origin.mixin.js +0 -255
  565. package/src/mixins/object_stacking.mixin.js +0 -80
  566. package/src/mixins/object_straightening.mixin.js +0 -80
  567. package/src/mixins/observable.mixin.js +0 -141
  568. package/src/mixins/shared_methods.mixin.js +0 -94
  569. package/src/mixins/stateful.mixin.js +0 -107
  570. package/src/mixins/text_style.mixin.js +0 -324
  571. package/src/parser.js +0 -1090
  572. package/src/pattern.class.js +0 -189
  573. package/src/point.class.js +0 -337
  574. package/src/shadow.class.js +0 -195
  575. package/src/shapes/active_selection.class.js +0 -155
  576. package/src/shapes/circle.class.js +0 -210
  577. package/src/shapes/ellipse.class.js +0 -181
  578. package/src/shapes/group.class.js +0 -593
  579. package/src/shapes/image.class.js +0 -764
  580. package/src/shapes/itext.class.js +0 -526
  581. package/src/shapes/line.class.js +0 -324
  582. package/src/shapes/object.class.js +0 -2008
  583. package/src/shapes/path.class.js +0 -384
  584. package/src/shapes/polygon.class.js +0 -81
  585. package/src/shapes/polyline.class.js +0 -268
  586. package/src/shapes/rect.class.js +0 -187
  587. package/src/shapes/text.class.js +0 -1696
  588. package/src/shapes/textbox.class.js +0 -461
  589. package/src/shapes/triangle.class.js +0 -93
  590. package/src/static_canvas.class.js +0 -1881
  591. package/src/util/anim_ease.js +0 -398
  592. package/src/util/animate.js +0 -254
  593. package/src/util/animate_color.js +0 -74
  594. package/src/util/dom_event.js +0 -50
  595. package/src/util/dom_misc.js +0 -300
  596. package/src/util/dom_request.js +0 -54
  597. package/src/util/dom_style.js +0 -70
  598. package/src/util/lang_array.js +0 -94
  599. package/src/util/lang_class.js +0 -115
  600. package/src/util/lang_object.js +0 -75
  601. package/src/util/lang_string.js +0 -110
  602. package/src/util/misc.js +0 -1330
  603. package/src/util/named_accessors.mixin.js +0 -428
  604. package/src/util/path.js +0 -829
@@ -0,0 +1,327 @@
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
+ import { ControlProps } from './types/ControlProps';
8
+ type TLineDescriptor = {
9
+ o: Point;
10
+ d: Point;
11
+ };
12
+ type TBBoxLines = {
13
+ topline: TLineDescriptor;
14
+ leftline: TLineDescriptor;
15
+ bottomline: TLineDescriptor;
16
+ rightline: TLineDescriptor;
17
+ };
18
+ type TMatrixCache = {
19
+ key: string;
20
+ value: TMat2D;
21
+ };
22
+ type TACoords = TCornerPoint;
23
+ export declare class ObjectGeometry<EventSpec extends ObjectEvents = ObjectEvents> extends ObjectOrigin<EventSpec> implements Pick<ControlProps, 'padding'> {
24
+ padding: number;
25
+ /**
26
+ * Describe object's corner position in canvas object absolute coordinates
27
+ * properties are tl,tr,bl,br and describe the four main corner.
28
+ * each property is an object with x, y, instance of Fabric.Point.
29
+ * The coordinates depends from this properties: width, height, scaleX, scaleY
30
+ * skewX, skewY, angle, strokeWidth, top, left.
31
+ * Those coordinates are useful to understand where an object is. They get updated
32
+ * with lineCoords or oCoords in interactive cases but they do not need to be updated when zoom or panning change.
33
+ * The coordinates get updated with @method setCoords.
34
+ * You can calculate them without updating with @method calcACoords();
35
+ */
36
+ aCoords: TACoords;
37
+ /**
38
+ * Describe object's corner position in canvas element coordinates.
39
+ * includes padding. Used of object detection.
40
+ * set and refreshed with setCoords.
41
+ * Those could go away
42
+ * @todo investigate how to get rid of those
43
+ */
44
+ lineCoords: TCornerPoint;
45
+ /**
46
+ * storage cache for object transform matrix
47
+ */
48
+ ownMatrixCache?: TMatrixCache;
49
+ /**
50
+ * storage cache for object full transform matrix
51
+ */
52
+ matrixCache?: TMatrixCache;
53
+ /**
54
+ * A Reference of the Canvas where the object is actually added
55
+ * @type StaticCanvas | Canvas;
56
+ * @default undefined
57
+ * @private
58
+ */
59
+ canvas?: StaticCanvas | Canvas;
60
+ /**
61
+ * @returns {number} x position according to object's {@link originX} property in canvas coordinate plane
62
+ */
63
+ getX(): number;
64
+ /**
65
+ * @param {number} value x position according to object's {@link originX} property in canvas coordinate plane
66
+ */
67
+ setX(value: number): void;
68
+ /**
69
+ * @returns {number} y position according to object's {@link originY} property in canvas coordinate plane
70
+ */
71
+ getY(): number;
72
+ /**
73
+ * @param {number} value y position according to object's {@link originY} property in canvas coordinate plane
74
+ */
75
+ setY(value: number): void;
76
+ /**
77
+ * @returns {number} x position according to object's {@link originX} property in parent's coordinate plane\
78
+ * if parent is canvas then this property is identical to {@link getX}
79
+ */
80
+ getRelativeX(): number;
81
+ /**
82
+ * @param {number} value x position according to object's {@link originX} property in parent's coordinate plane\
83
+ * if parent is canvas then this method is identical to {@link setX}
84
+ */
85
+ setRelativeX(value: number): void;
86
+ /**
87
+ * @returns {number} y position according to object's {@link originY} property in parent's coordinate plane\
88
+ * if parent is canvas then this property is identical to {@link getY}
89
+ */
90
+ getRelativeY(): number;
91
+ /**
92
+ * @param {number} value y position according to object's {@link originY} property in parent's coordinate plane\
93
+ * if parent is canvas then this property is identical to {@link setY}
94
+ */
95
+ setRelativeY(value: number): void;
96
+ /**
97
+ * @returns {Point} x position according to object's {@link originX} {@link originY} properties in canvas coordinate plane
98
+ */
99
+ getXY(): Point;
100
+ /**
101
+ * Set an object position to a particular point, the point is intended in absolute ( canvas ) coordinate.
102
+ * You can specify {@link originX} and {@link originY} values,
103
+ * that otherwise are the object's current values.
104
+ * @example <caption>Set object's bottom left corner to point (5,5) on canvas</caption>
105
+ * object.setXY(new Point(5, 5), 'left', 'bottom').
106
+ * @param {Point} point position in canvas coordinate plane
107
+ * @param {TOriginX} [originX] Horizontal origin: 'left', 'center' or 'right'
108
+ * @param {TOriginY} [originY] Vertical origin: 'top', 'center' or 'bottom'
109
+ */
110
+ setXY(point: Point, originX?: TOriginX, originY?: TOriginY): void;
111
+ /**
112
+ * @returns {Point} x,y position according to object's {@link originX} {@link originY} properties in parent's coordinate plane
113
+ */
114
+ getRelativeXY(): Point;
115
+ /**
116
+ * As {@link setXY}, but in current parent's coordinate plane (the current group if any or the canvas)
117
+ * @param {Point} point position according to object's {@link originX} {@link originY} properties in parent's coordinate plane
118
+ * @param {TOriginX} [originX] Horizontal origin: 'left', 'center' or 'right'
119
+ * @param {TOriginY} [originY] Vertical origin: 'top', 'center' or 'bottom'
120
+ */
121
+ setRelativeXY(point: Point, originX?: TOriginX, originY?: TOriginY): void;
122
+ /**
123
+ * return correct set of coordinates for intersection
124
+ * this will return either aCoords or lineCoords.
125
+ * @param {boolean} absolute will return aCoords if true or lineCoords
126
+ * @param {boolean} calculate will calculate the coords or use the one
127
+ * that are attached to the object instance
128
+ * @return {Object} {tl, tr, br, bl} points
129
+ */
130
+ _getCoords(absolute?: boolean, calculate?: boolean): TCornerPoint;
131
+ /**
132
+ * return correct set of coordinates for intersection
133
+ * this will return either aCoords or lineCoords.
134
+ * The coords are returned in an array.
135
+ * @param {boolean} absolute will return aCoords if true or lineCoords
136
+ * @param {boolean} calculate will return aCoords if true or lineCoords
137
+ * @return {Array} [tl, tr, br, bl] of points
138
+ */
139
+ getCoords(absolute?: boolean, calculate?: boolean): Point[];
140
+ /**
141
+ * Checks if object intersects with an area formed by 2 points
142
+ * @param {Object} pointTL top-left point of area
143
+ * @param {Object} pointBR bottom-right point of area
144
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
145
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored one
146
+ * @return {Boolean} true if object intersects with an area formed by 2 points
147
+ */
148
+ intersectsWithRect(pointTL: Point, pointBR: Point, absolute?: boolean, calculate?: boolean): boolean;
149
+ /**
150
+ * Checks if object intersects with another object
151
+ * @param {Object} other Object to test
152
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
153
+ * @param {Boolean} [calculate] use coordinates of current position instead of calculating them
154
+ * @return {Boolean} true if object intersects with another object
155
+ */
156
+ intersectsWithObject(other: ObjectGeometry, absolute?: boolean, calculate?: boolean): boolean;
157
+ /**
158
+ * Checks if object is fully contained within area of another object
159
+ * @param {Object} other Object to test
160
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
161
+ * @param {Boolean} [calculate] use coordinates of current position instead of store ones
162
+ * @return {Boolean} true if object is fully contained within area of another object
163
+ */
164
+ isContainedWithinObject(other: ObjectGeometry, absolute?: boolean, calculate?: boolean): boolean;
165
+ /**
166
+ * Checks if object is fully contained within area formed by 2 points
167
+ * @param {Object} pointTL top-left point of area
168
+ * @param {Object} pointBR bottom-right point of area
169
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
170
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored one
171
+ * @return {Boolean} true if object is fully contained within area formed by 2 points
172
+ */
173
+ isContainedWithinRect(pointTL: Point, pointBR: Point, absolute?: boolean, calculate?: boolean): boolean;
174
+ isOverlapping<T extends ObjectGeometry>(other: T): boolean;
175
+ /**
176
+ * Checks if point is inside the object
177
+ * @param {Point} point Point to check against
178
+ * @param {Object} [lines] object returned from @method _getImageLines
179
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
180
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored ones
181
+ * @return {Boolean} true if point is inside the object
182
+ */
183
+ containsPoint(point: Point, lines?: TBBoxLines, absolute?: boolean, calculate?: boolean): boolean;
184
+ /**
185
+ * Checks if object is contained within the canvas with current viewportTransform
186
+ * the check is done stopping at first point that appears on screen
187
+ * @param {Boolean} [calculate] use coordinates of current position instead of .aCoords
188
+ * @return {Boolean} true if object is fully or partially contained within canvas
189
+ */
190
+ isOnScreen(calculate?: boolean): boolean;
191
+ /**
192
+ * Checks if the object contains the midpoint between canvas extremities
193
+ * Does not make sense outside the context of isOnScreen and isPartiallyOnScreen
194
+ * @private
195
+ * @param {Point} pointTL Top Left point
196
+ * @param {Point} pointBR Top Right point
197
+ * @param {Boolean} calculate use coordinates of current position instead of stored ones
198
+ * @return {Boolean} true if the object contains the point
199
+ */
200
+ private _containsCenterOfCanvas;
201
+ /**
202
+ * Checks if object is partially contained within the canvas with current viewportTransform
203
+ * @param {Boolean} [calculate] use coordinates of current position instead of stored ones
204
+ * @return {Boolean} true if object is partially contained within canvas
205
+ */
206
+ isPartiallyOnScreen(calculate?: boolean): boolean;
207
+ /**
208
+ * Method that returns an object with the object edges in it, given the coordinates of the corners
209
+ * @private
210
+ * @param {Object} lineCoords or aCoords Coordinates of the object corners
211
+ */
212
+ _getImageLines({ tl, tr, bl, br }: TCornerPoint): TBBoxLines;
213
+ /**
214
+ * Helper method to determine how many cross points are between the 4 object edges
215
+ * and the horizontal line determined by a point on canvas
216
+ * @private
217
+ * @param {Point} point Point to check
218
+ * @param {Object} lines Coordinates of the object being evaluated
219
+ * @return {number} number of crossPoint
220
+ */
221
+ _findCrossPoints(point: Point, lines: TBBoxLines): number;
222
+ /**
223
+ * Returns coordinates of object's bounding rectangle (left, top, width, height)
224
+ * the box is intended as aligned to axis of canvas.
225
+ * @param {Boolean} [absolute] use coordinates without viewportTransform
226
+ * @param {Boolean} [calculate] use coordinates of current position instead of .lineCoords / .aCoords
227
+ * @return {Object} Object with left, top, width, height properties
228
+ */
229
+ getBoundingRect(absolute?: boolean, calculate?: boolean): TBBox;
230
+ /**
231
+ * Returns width of an object's bounding box counting transformations
232
+ * @todo shouldn't this account for group transform and return the actual size in canvas coordinate plane?
233
+ * @return {Number} width value
234
+ */
235
+ getScaledWidth(): number;
236
+ /**
237
+ * Returns height of an object bounding box counting transformations
238
+ * @todo shouldn't this account for group transform and return the actual size in canvas coordinate plane?
239
+ * @return {Number} height value
240
+ */
241
+ getScaledHeight(): number;
242
+ /**
243
+ * Scales an object (equally by x and y)
244
+ * @param {Number} value Scale factor
245
+ * @return {void}
246
+ */
247
+ scale(value: number): void;
248
+ /**
249
+ * Scales an object to a given width, with respect to bounding box (scaling by x/y equally)
250
+ * @param {Number} value New width value
251
+ * @param {Boolean} absolute ignore viewport
252
+ * @return {void}
253
+ */
254
+ scaleToWidth(value: number, absolute?: boolean): void;
255
+ /**
256
+ * Scales an object to a given height, with respect to bounding box (scaling by x/y equally)
257
+ * @param {Number} value New height value
258
+ * @param {Boolean} absolute ignore viewport
259
+ * @return {void}
260
+ */
261
+ scaleToHeight(value: number, absolute?: boolean): void;
262
+ getCanvasRetinaScaling(): number;
263
+ /**
264
+ * Returns the object angle relative to canvas counting also the group property
265
+ * @returns {TDegree}
266
+ */
267
+ getTotalAngle(): TDegree;
268
+ /**
269
+ * return the coordinate of the 4 corners of the bounding box in HTMLCanvasElement coordinates
270
+ * used for bounding box interactivity with the mouse
271
+ * @returns {TCornerPoint}
272
+ */
273
+ calcLineCoords(): TCornerPoint;
274
+ /**
275
+ * Retrieves viewportTransform from Object's canvas if possible
276
+ * @method getViewportTransform
277
+ * @memberOf FabricObject.prototype
278
+ * @return {TMat2D}
279
+ */
280
+ getViewportTransform(): TMat2D;
281
+ /**
282
+ * Calculates the coordinates of the 4 corner of the bbox, in absolute coordinates.
283
+ * those never change with zoom or viewport changes.
284
+ * @return {TCornerPoint}
285
+ */
286
+ calcACoords(): TCornerPoint;
287
+ /**
288
+ * Sets corner and controls position coordinates based on current angle, width and height, left and top.
289
+ * aCoords are used to quickly find an object on the canvas
290
+ * lineCoords are used to quickly find object during pointer events.
291
+ * See {@link https://github.com/fabricjs/fabric.js/wiki/When-to-call-setCoords} and {@link http://fabricjs.com/fabric-gotchas}
292
+ * @param {Boolean} [skipCorners] skip calculation of aCoord, lineCoords.
293
+ * @return {void}
294
+ */
295
+ setCoords(): void;
296
+ transformMatrixKey(skipGroup?: boolean): string;
297
+ /**
298
+ * calculate transform matrix that represents the current transformations from the
299
+ * object's properties.
300
+ * @param {Boolean} [skipGroup] return transform matrix for object not counting parent transformations
301
+ * There are some situation in which this is useful to avoid the fake rotation.
302
+ * @return {TMat2D} transform matrix for the object
303
+ */
304
+ calcTransformMatrix(skipGroup?: boolean): TMat2D;
305
+ /**
306
+ * calculate transform matrix that represents the current transformations from the
307
+ * object's properties, this matrix does not include the group transformation
308
+ * @return {TMat2D} transform matrix for the object
309
+ */
310
+ calcOwnMatrix(): TMat2D;
311
+ /**
312
+ * Calculate object dimensions from its properties
313
+ * @private
314
+ * @returns {Point} dimensions
315
+ */
316
+ _getNonTransformedDimensions(): Point;
317
+ /**
318
+ * Calculate object dimensions for controls box, including padding and canvas zoom.
319
+ * and active selection
320
+ * @private
321
+ * @param {object} [options] transform options
322
+ * @returns {Point} dimensions
323
+ */
324
+ _calculateCurrentDimensions(options?: any): Point;
325
+ }
326
+ export {};
327
+ //# sourceMappingURL=ObjectGeometry.d.ts.map
@@ -0,0 +1,109 @@
1
+ import { Point } from '../../Point';
2
+ import type { Group } from '../Group';
3
+ import { TDegree, TOriginX, TOriginY } from '../../typedefs';
4
+ import { CommonMethods } from '../../CommonMethods';
5
+ import { BaseProps } from './types/BaseProps';
6
+ import { FillStrokeProps } from './types/FillStrokeProps';
7
+ export declare class ObjectOrigin<EventSpec> extends CommonMethods<EventSpec> implements BaseProps, Pick<FillStrokeProps, 'strokeWidth' | 'strokeUniform'> {
8
+ top: number;
9
+ left: number;
10
+ width: number;
11
+ height: number;
12
+ flipX: boolean;
13
+ flipY: boolean;
14
+ scaleX: number;
15
+ scaleY: number;
16
+ skewX: number;
17
+ skewY: number;
18
+ originX: TOriginX;
19
+ originY: TOriginY;
20
+ angle: TDegree;
21
+ strokeWidth: number;
22
+ strokeUniform: boolean;
23
+ /**
24
+ * Object containing this object.
25
+ * can influence its size and position
26
+ */
27
+ group?: Group;
28
+ _originalOriginX?: TOriginX;
29
+ _originalOriginY?: TOriginY;
30
+ /**
31
+ * Calculate object bounding box dimensions from its properties scale, skew.
32
+ * @param {Object} [options]
33
+ * @param {Number} [options.scaleX]
34
+ * @param {Number} [options.scaleY]
35
+ * @param {Number} [options.skewX]
36
+ * @param {Number} [options.skewY]
37
+ * @private
38
+ * @returns {Point} dimensions
39
+ */
40
+ _getTransformedDimensions(options?: any): Point;
41
+ /**
42
+ * Translates the coordinates from a set of origin to another (based on the object's dimensions)
43
+ * @param {Point} point The point which corresponds to the originX and originY params
44
+ * @param {TOriginX} fromOriginX Horizontal origin: 'left', 'center' or 'right'
45
+ * @param {TOriginY} fromOriginY Vertical origin: 'top', 'center' or 'bottom'
46
+ * @param {TOriginX} toOriginX Horizontal origin: 'left', 'center' or 'right'
47
+ * @param {TOriginY} toOriginY Vertical origin: 'top', 'center' or 'bottom'
48
+ * @return {Point}
49
+ */
50
+ translateToGivenOrigin(point: Point, fromOriginX: TOriginX, fromOriginY: TOriginY, toOriginX: TOriginX, toOriginY: TOriginY): Point;
51
+ /**
52
+ * Translates the coordinates from origin to center coordinates (based on the object's dimensions)
53
+ * @param {Point} point The point which corresponds to the originX and originY params
54
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
55
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
56
+ * @return {Point}
57
+ */
58
+ translateToCenterPoint(point: Point, originX: TOriginX, originY: TOriginY): Point;
59
+ /**
60
+ * Translates the coordinates from center to origin coordinates (based on the object's dimensions)
61
+ * @param {Point} center The point which corresponds to center of the object
62
+ * @param {OriginX} originX Horizontal origin: 'left', 'center' or 'right'
63
+ * @param {OriginY} originY Vertical origin: 'top', 'center' or 'bottom'
64
+ * @return {Point}
65
+ */
66
+ translateToOriginPoint(center: Point, originX: TOriginX, originY: TOriginY): Point;
67
+ /**
68
+ * Returns the center coordinates of the object relative to canvas
69
+ * @return {Point}
70
+ */
71
+ getCenterPoint(): Point;
72
+ /**
73
+ * Returns the center coordinates of the object relative to it's parent
74
+ * @return {Point}
75
+ */
76
+ getRelativeCenterPoint(): Point;
77
+ /**
78
+ * Returns the coordinates of the object as if it has a different origin
79
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
80
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
81
+ * @return {Point}
82
+ */
83
+ getPointByOrigin(originX: TOriginX, originY: TOriginY): Point;
84
+ /**
85
+ * Sets the position of the object taking into consideration the object's origin
86
+ * @param {Point} pos The new position of the object
87
+ * @param {TOriginX} originX Horizontal origin: 'left', 'center' or 'right'
88
+ * @param {TOriginY} originY Vertical origin: 'top', 'center' or 'bottom'
89
+ * @return {void}
90
+ */
91
+ setPositionByOrigin(pos: Point, originX: TOriginX, originY: TOriginY): void;
92
+ /**
93
+ * Sets the origin/position of the object to it's center point
94
+ * @private
95
+ * @return {void}
96
+ */
97
+ _setOriginToCenter(): void;
98
+ /**
99
+ * Resets the origin/position of the object to it's original origin
100
+ * @private
101
+ * @return {void}
102
+ */
103
+ _resetOrigin(): void;
104
+ /**
105
+ * @private
106
+ */
107
+ _getLeftTopCoords(): Point;
108
+ }
109
+ //# sourceMappingURL=ObjectOrigin.d.ts.map
@@ -0,0 +1,72 @@
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
+ * A reference to the parent of the object
28
+ * Used to keep the original parent ref when the object has been added to an ActiveSelection, hence loosing the `group` ref
29
+ */
30
+ __owningGroup?: Group;
31
+ /**
32
+ * Returns instance's parent **EXCLUDING** `ActiveSelection`
33
+ * @param {boolean} [strict] exclude canvas as well
34
+ */
35
+ getParent<T extends boolean>(strict?: T): TAncestor | undefined;
36
+ /**
37
+ * Checks if object is descendant of target
38
+ * Should be used instead of {@link Group.contains} or {@link StaticCanvas.contains} for performance reasons
39
+ * @param {TAncestor} target
40
+ * @returns {boolean}
41
+ */
42
+ isDescendantOf(target: TAncestor): boolean;
43
+ /**
44
+ *
45
+ * @param {boolean} [strict] returns only ancestors that are objects (without canvas)
46
+ * @returns {Ancestors} ancestors (excluding `ActiveSelection`) from bottom to top
47
+ */
48
+ getAncestors<T extends boolean>(strict?: T): Ancestors<T>;
49
+ /**
50
+ * Compare ancestors
51
+ *
52
+ * @param {StackedObject} other
53
+ * @param {boolean} [strict] finds only ancestors that are objects (without canvas)
54
+ * @returns {AncestryComparison} an object that represent the ancestry situation.
55
+ */
56
+ findCommonAncestors<T extends this, S extends boolean>(other: T, strict?: S): AncestryComparison<S>;
57
+ /**
58
+ *
59
+ * @param {StackedObject} other
60
+ * @param {boolean} [strict] checks only ancestors that are objects (without canvas)
61
+ * @returns {boolean}
62
+ */
63
+ hasCommonAncestors<T extends this>(other: T, strict?: boolean): boolean;
64
+ /**
65
+ *
66
+ * @param {FabricObject} other object to compare against
67
+ * @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`
68
+ */
69
+ isInFrontOf<T extends this>(other: T): boolean | undefined;
70
+ }
71
+ export {};
72
+ //# sourceMappingURL=StackedObject.d.ts.map
@@ -0,0 +1,76 @@
1
+ export declare const stateProperties: string[];
2
+ export declare const cacheProperties: string[];
3
+ export declare const fabricObjectDefaultValues: {
4
+ readonly originX: "left";
5
+ readonly originY: "top";
6
+ readonly top: 0;
7
+ readonly left: 0;
8
+ readonly width: 0;
9
+ readonly height: 0;
10
+ readonly scaleX: 1;
11
+ readonly scaleY: 1;
12
+ readonly flipX: false;
13
+ readonly flipY: false;
14
+ readonly opacity: 1;
15
+ readonly angle: 0;
16
+ readonly skewX: 0;
17
+ readonly skewY: 0;
18
+ readonly cornerSize: 13;
19
+ readonly touchCornerSize: 24;
20
+ readonly transparentCorners: true;
21
+ readonly hoverCursor: null;
22
+ readonly moveCursor: null;
23
+ readonly padding: 0;
24
+ readonly borderColor: "rgb(178,204,255)";
25
+ readonly borderDashArray: null;
26
+ readonly cornerColor: "rgb(178,204,255)";
27
+ readonly cornerStrokeColor: "";
28
+ readonly cornerStyle: "rect";
29
+ readonly cornerDashArray: null;
30
+ readonly centeredScaling: false;
31
+ readonly centeredRotation: true;
32
+ readonly fill: "rgb(0,0,0)";
33
+ readonly fillRule: "nonzero";
34
+ readonly globalCompositeOperation: "source-over";
35
+ readonly backgroundColor: "";
36
+ readonly selectionBackgroundColor: "";
37
+ readonly stroke: null;
38
+ readonly strokeWidth: 1;
39
+ readonly strokeDashArray: null;
40
+ readonly strokeDashOffset: 0;
41
+ readonly strokeLineCap: "butt";
42
+ readonly strokeLineJoin: "miter";
43
+ readonly strokeMiterLimit: 4;
44
+ readonly shadow: null;
45
+ readonly borderOpacityWhenMoving: 0.4;
46
+ readonly borderScaleFactor: 1;
47
+ readonly minScaleLimit: 0;
48
+ readonly selectable: true;
49
+ readonly evented: true;
50
+ readonly visible: true;
51
+ readonly hasControls: true;
52
+ readonly hasBorders: true;
53
+ readonly perPixelTargetFind: false;
54
+ readonly includeDefaultValues: true;
55
+ readonly lockMovementX: false;
56
+ readonly lockMovementY: false;
57
+ readonly lockRotation: false;
58
+ readonly lockScalingX: false;
59
+ readonly lockScalingY: false;
60
+ readonly lockSkewingX: false;
61
+ readonly lockSkewingY: false;
62
+ readonly lockScalingFlip: false;
63
+ readonly excludeFromExport: false;
64
+ readonly objectCaching: true;
65
+ readonly noScaleCache: true;
66
+ readonly strokeUniform: false;
67
+ readonly dirty: true;
68
+ readonly paintFirst: "fill";
69
+ readonly activeOn: "down";
70
+ readonly colorProperties: readonly ["fill", "stroke", "backgroundColor"];
71
+ readonly clipPath: undefined;
72
+ readonly inverted: false;
73
+ readonly absolutePositioned: false;
74
+ readonly FX_DURATION: 500;
75
+ };
76
+ //# sourceMappingURL=defaultValues.d.ts.map
@@ -0,0 +1,84 @@
1
+ import { TDegree, TOriginX, TOriginY } from '../../../typedefs';
2
+ export interface BaseProps {
3
+ /**
4
+ * 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}
5
+ * @type Number
6
+ * @default 0
7
+ */
8
+ top: number;
9
+ /**
10
+ * 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}
11
+ * @type Number
12
+ * @default 0
13
+ */
14
+ left: number;
15
+ /**
16
+ * Object width
17
+ * @type Number
18
+ * @default
19
+ */
20
+ width: number;
21
+ /**
22
+ * Object height
23
+ * @type Number
24
+ * @default
25
+ */
26
+ height: number;
27
+ /**
28
+ * When true, an object is rendered as flipped horizontally
29
+ * @type Boolean
30
+ * @default false
31
+ */
32
+ flipX: boolean;
33
+ /**
34
+ * When true, an object is rendered as flipped vertically
35
+ * @type Boolean
36
+ * @default false
37
+ */
38
+ flipY: boolean;
39
+ /**
40
+ * Object scale factor (horizontal)
41
+ * @type Number
42
+ * @default 1
43
+ */
44
+ scaleX: number;
45
+ /**
46
+ * Object scale factor (vertical)
47
+ * @type Number
48
+ * @default 1
49
+ */
50
+ scaleY: number;
51
+ /**
52
+ * Angle of skew on x axes of an object (in degrees)
53
+ * @type Number
54
+ * @default 0
55
+ */
56
+ skewX: number;
57
+ /**
58
+ * Angle of skew on y axes of an object (in degrees)
59
+ * @type Number
60
+ * @default 0
61
+ */
62
+ skewY: number;
63
+ /**
64
+ * Horizontal origin of transformation of an object (one of "left", "right", "center")
65
+ * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
66
+ * @type String
67
+ * @default 'left'
68
+ */
69
+ originX: TOriginX;
70
+ /**
71
+ * Vertical origin of transformation of an object (one of "top", "bottom", "center")
72
+ * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
73
+ * @type String
74
+ * @default 'top'
75
+ */
76
+ originY: TOriginY;
77
+ /**
78
+ * Angle of rotation of an object (in degrees)
79
+ * @type Number
80
+ * @default 0
81
+ */
82
+ angle: TDegree;
83
+ }
84
+ //# sourceMappingURL=BaseProps.d.ts.map