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,778 @@
1
+ import type { CanvasEvents, StaticCanvasEvents } from '../EventTypeDefs';
2
+ import { CommonMethods } from '../CommonMethods';
3
+ import { Point } from '../Point';
4
+ import type { BaseFabricObject as FabricObject } from '../EventTypeDefs';
5
+ import type { TCachedFabricObject } from '../shapes/Object/Object';
6
+ import { TCornerPoint, TDataUrlOptions, TFiller, TMat2D, TSize, TSVGReviver, TToCanvasElementOptions, TValidToObjectMethod } from '../typedefs';
7
+ import { EnlivenObjectOptions } from '../util/misc/objectEnlive';
8
+ type TDestroyed<T, K extends keyof any> = {
9
+ [R in K | keyof T]: R extends K ? T[R] | undefined | null : T[R];
10
+ };
11
+ export type TDestroyedCanvas<T extends StaticCanvas> = TDestroyed<T, 'contextTop' | 'pixelFindContext' | 'lowerCanvasEl' | 'upperCanvasEl' | 'pixelFindCanvasEl' | 'wrapperEl' | '_activeSelection'>;
12
+ export type TCanvasSizeOptions = {
13
+ backstoreOnly?: boolean;
14
+ cssOnly?: boolean;
15
+ };
16
+ export type TSVGExportOptions = {
17
+ suppressPreamble?: boolean;
18
+ viewBox?: {
19
+ x: number;
20
+ y: number;
21
+ width: number;
22
+ height: number;
23
+ };
24
+ encoding?: 'UTF-8';
25
+ width?: string;
26
+ height?: string;
27
+ reviver?: TSVGReviver;
28
+ };
29
+ type TCanvasHydrationOption = {
30
+ signal?: AbortSignal;
31
+ };
32
+ export declare const StaticCanvasDefaults: {
33
+ backgroundColor: string;
34
+ backgroundImage: null;
35
+ overlayColor: string;
36
+ overlayImage: null;
37
+ includeDefaultValues: boolean;
38
+ renderOnAddRemove: boolean;
39
+ controlsAboveOverlay: boolean;
40
+ allowTouchScrolling: boolean;
41
+ imageSmoothingEnabled: boolean;
42
+ viewportTransform: number[];
43
+ backgroundVpt: boolean;
44
+ overlayVpt: boolean;
45
+ enableRetinaScaling: boolean;
46
+ svgViewportTransformation: boolean;
47
+ skipOffscreen: boolean;
48
+ clipPath: undefined;
49
+ };
50
+ declare const StaticCanvas_base: {
51
+ new (...args: any[]): {
52
+ _objects: FabricObject[];
53
+ _onObjectAdded(object: FabricObject): void;
54
+ _onObjectRemoved(object: FabricObject): void;
55
+ _onStackOrderChanged(object: FabricObject): void;
56
+ add(...objects: FabricObject[]): number;
57
+ insertAt(index: number, ...objects: FabricObject[]): number;
58
+ remove(...objects: FabricObject[]): FabricObject[];
59
+ forEachObject(callback: (object: FabricObject, index: number, array: FabricObject[]) => any): void;
60
+ getObjects(...types: string[]): FabricObject[];
61
+ item(index: number): FabricObject;
62
+ isEmpty(): boolean;
63
+ size(): number;
64
+ contains(object: FabricObject, deep?: boolean | undefined): boolean;
65
+ complexity(): number;
66
+ sendObjectToBack(object: FabricObject): boolean;
67
+ bringObjectToFront(object: FabricObject): boolean;
68
+ sendObjectBackwards(object: FabricObject, intersecting?: boolean | undefined): boolean;
69
+ bringObjectForward(object: FabricObject, intersecting?: boolean | undefined): boolean;
70
+ moveObjectTo(object: FabricObject, index: number): boolean;
71
+ findNewLowerIndex(object: FabricObject, idx: number, intersecting?: boolean | undefined): number;
72
+ findNewUpperIndex(object: FabricObject, idx: number, intersecting?: boolean | undefined): number;
73
+ collectObjects({ left, top, width, height }: import("../typedefs").TBBox, { includeIntersecting }?: {
74
+ includeIntersecting?: boolean | undefined;
75
+ }): import("../shapes/Object/InteractiveObject").InteractiveFabricObject<Partial<import("../shapes/Object/types").FabricObjectProps>, import("../shapes/Object/types").SerializedObjectProps, import("../EventTypeDefs").ObjectEvents>[];
76
+ };
77
+ } & {
78
+ new (): CommonMethods<CanvasEvents>;
79
+ };
80
+ /**
81
+ * Static canvas class
82
+ * @see {@link http://fabricjs.com/static_canvas|StaticCanvas demo}
83
+ * @fires before:render
84
+ * @fires after:render
85
+ * @fires canvas:cleared
86
+ * @fires object:added
87
+ * @fires object:removed
88
+ */
89
+ export declare class StaticCanvas<EventSpec extends StaticCanvasEvents = StaticCanvasEvents> extends StaticCanvas_base {
90
+ /**
91
+ * Background color of canvas instance.
92
+ * @type {(String|TFiller)}
93
+ * @default
94
+ */
95
+ backgroundColor: TFiller | string;
96
+ /**
97
+ * Background image of canvas instance.
98
+ * since 2.4.0 image caching is active, please when putting an image as background, add to the
99
+ * canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom
100
+ * vale. As an alternative you can disable image objectCaching
101
+ * @type FabricObject
102
+ * @default
103
+ */
104
+ backgroundImage: FabricObject | null;
105
+ /**
106
+ * Overlay color of canvas instance.
107
+ * @since 1.3.9
108
+ * @type {(String|TFiller)}
109
+ * @default
110
+ */
111
+ overlayColor: TFiller | string;
112
+ /**
113
+ * Overlay image of canvas instance.
114
+ * since 2.4.0 image caching is active, please when putting an image as overlay, add to the
115
+ * canvas property a reference to the canvas it is on. Otherwise the image cannot detect the zoom
116
+ * vale. As an alternative you can disable image objectCaching
117
+ * @type FabricObject
118
+ * @default
119
+ */
120
+ overlayImage: FabricObject | null;
121
+ /**
122
+ * Indicates whether toObject/toDatalessObject should include default values
123
+ * if set to false, takes precedence over the object value.
124
+ * @type Boolean
125
+ * @default
126
+ */
127
+ includeDefaultValues: boolean;
128
+ /**
129
+ * Indicates whether {@link add}, {@link insertAt} and {@link remove},
130
+ * {@link moveTo}, {@link clear} and many more, should also re-render canvas.
131
+ * Disabling this option will not give a performance boost when adding/removing a lot of objects to/from canvas at once
132
+ * since the renders are queued and executed one per frame.
133
+ * Disabling is suggested anyway and managing the renders of the app manually is not a big effort ( canvas.requestRenderAll() )
134
+ * Left default to true to do not break documentation and old app, fiddles.
135
+ * @type Boolean
136
+ * @default
137
+ */
138
+ renderOnAddRemove: boolean;
139
+ /**
140
+ * Indicates whether object controls (borders/controls) are rendered above overlay image
141
+ * @type Boolean
142
+ * @default
143
+ */
144
+ controlsAboveOverlay: boolean;
145
+ /**
146
+ * Indicates whether the browser can be scrolled when using a touchscreen and dragging on the canvas
147
+ * @type Boolean
148
+ * @default
149
+ */
150
+ allowTouchScrolling: boolean;
151
+ /**
152
+ * Indicates whether this canvas will use image smoothing, this is on by default in browsers
153
+ * @type Boolean
154
+ * @default
155
+ */
156
+ imageSmoothingEnabled: boolean;
157
+ /**
158
+ * The transformation (a Canvas 2D API transform matrix) which focuses the viewport
159
+ * @type Array
160
+ * @example <caption>Default transform</caption>
161
+ * canvas.viewportTransform = [1, 0, 0, 1, 0, 0];
162
+ * @example <caption>Scale by 70% and translate toward bottom-right by 50, without skewing</caption>
163
+ * canvas.viewportTransform = [0.7, 0, 0, 0.7, 50, 50];
164
+ * @default
165
+ */
166
+ viewportTransform: TMat2D;
167
+ /**
168
+ * if set to false background image is not affected by viewport transform
169
+ * @since 1.6.3
170
+ * @type Boolean
171
+ * @todo we should really find a different way to do this
172
+ * @default
173
+ */
174
+ backgroundVpt: boolean;
175
+ /**
176
+ * if set to false overlya image is not affected by viewport transform
177
+ * @since 1.6.3
178
+ * @type Boolean
179
+ * @todo we should really find a different way to do this
180
+ * @default
181
+ */
182
+ overlayVpt: boolean;
183
+ /**
184
+ * When true, canvas is scaled by devicePixelRatio for better rendering on retina screens
185
+ * @type Boolean
186
+ * @default
187
+ */
188
+ enableRetinaScaling: boolean;
189
+ /**
190
+ * Describe canvas element extension over design
191
+ * properties are tl,tr,bl,br.
192
+ * if canvas is not zoomed/panned those points are the four corner of canvas
193
+ * if canvas is viewportTransformed you those points indicate the extension
194
+ * of canvas element in plain untrasformed coordinates
195
+ * The coordinates get updated with @method calcViewportBoundaries.
196
+ */
197
+ vptCoords: TCornerPoint;
198
+ /**
199
+ * Based on vptCoords and object.aCoords, skip rendering of objects that
200
+ * are not included in current viewport.
201
+ * May greatly help in applications with crowded canvas and use of zoom/pan
202
+ * If One of the corner of the bounding box of the object is on the canvas
203
+ * the objects get rendered.
204
+ * @type Boolean
205
+ * @default
206
+ */
207
+ skipOffscreen: boolean;
208
+ /**
209
+ * a fabricObject that, without stroke define a clipping area with their shape. filled in black
210
+ * the clipPath object gets used when the canvas has rendered, and the context is placed in the
211
+ * top left corner of the canvas.
212
+ * clipPath will clip away controls, if you do not want this to happen use controlsAboveOverlay = true
213
+ * @type FabricObject
214
+ */
215
+ clipPath: FabricObject;
216
+ /**
217
+ * A reference to the canvas actual HTMLCanvasElement.
218
+ * Can be use to read the raw pixels, but never write or manipulate
219
+ * @type HTMLCanvasElement
220
+ */
221
+ lowerCanvasEl: HTMLCanvasElement;
222
+ contextContainer: CanvasRenderingContext2D;
223
+ /**
224
+ * Width in virtual/logical pixels of the canvas.
225
+ * The canvas can be larger than width if retina scaling is active
226
+ * @type number
227
+ */
228
+ width: number;
229
+ /**
230
+ * Height in virtual/logical pixels of the canvas.
231
+ * The canvas can be taller than width if retina scaling is active
232
+ * @type height
233
+ */
234
+ height: number;
235
+ /**
236
+ * If true the Canvas is in the process or has been disposed/destroyed.
237
+ * No more rendering operation will be executed on this canvas.
238
+ * @type boolean
239
+ */
240
+ destroyed?: boolean;
241
+ /**
242
+ * Started the process of disposing but not done yet.
243
+ * WIll likely complete the render cycle already scheduled but stopping adding more.
244
+ * @type boolean
245
+ */
246
+ disposed?: boolean;
247
+ /**
248
+ * Keeps a copy of the canvas style before setting retina scaling and other potions
249
+ * in order to return it to original state on dispose
250
+ * @type string
251
+ */
252
+ _originalCanvasStyle?: string;
253
+ _offset: {
254
+ left: number;
255
+ top: number;
256
+ };
257
+ protected hasLostContext: boolean;
258
+ protected nextRenderHandle: number;
259
+ static ownDefaults: Record<string, any>;
260
+ protected __cleanupTask?: {
261
+ (): void;
262
+ kill: (reason?: any) => void;
263
+ };
264
+ static getDefaults(): Record<string, any>;
265
+ constructor(el: string | HTMLCanvasElement, options?: {});
266
+ protected initElements(el: string | HTMLCanvasElement): void;
267
+ add(...objects: FabricObject[]): number;
268
+ insertAt(index: number, ...objects: FabricObject[]): number;
269
+ remove(...objects: FabricObject[]): FabricObject[];
270
+ _onObjectAdded(obj: FabricObject): void;
271
+ _onObjectRemoved(obj: FabricObject): void;
272
+ _onStackOrderChanged(): void;
273
+ /**
274
+ * @private
275
+ */
276
+ _isRetinaScaling(): boolean;
277
+ /**
278
+ * @private
279
+ * @return {Number} retinaScaling if applied, otherwise 1;
280
+ */
281
+ getRetinaScaling(): number;
282
+ protected _initRetinaScaling(): void;
283
+ protected __initRetinaScaling(canvas: HTMLCanvasElement, context: CanvasRenderingContext2D): void;
284
+ /**
285
+ * Calculates canvas element offset relative to the document
286
+ * This method is also attached as "resize" event handler of window
287
+ */
288
+ calcOffset(): {
289
+ left: number;
290
+ top: number;
291
+ };
292
+ /**
293
+ * @private
294
+ */
295
+ protected _createCanvasElement(): HTMLCanvasElement;
296
+ /**
297
+ * Creates a bottom canvas
298
+ * @private
299
+ * @param {HTMLElement} [canvasEl]
300
+ */
301
+ protected _createLowerCanvas(canvasEl: HTMLCanvasElement | string): void;
302
+ /**
303
+ * Returns canvas width (in px)
304
+ * @return {Number}
305
+ */
306
+ getWidth(): number;
307
+ /**
308
+ * Returns canvas height (in px)
309
+ * @return {Number}
310
+ */
311
+ getHeight(): number;
312
+ /**
313
+ * Sets width of this canvas instance
314
+ * @param {Number|String} value Value to set width to
315
+ * @param {Object} [options] Options object
316
+ * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions
317
+ * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions
318
+ * @deprecated will be removed in 7.0
319
+ */
320
+ setWidth(value: number, options: TCanvasSizeOptions): void;
321
+ /**
322
+ * Sets height of this canvas instance
323
+ * @param {Number|String} value Value to set height to
324
+ * @param {Object} [options] Options object
325
+ * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions
326
+ * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions
327
+ * @deprecated will be removed in 7.0
328
+ */
329
+ setHeight(value: number, options: TCanvasSizeOptions): void;
330
+ /**
331
+ * Internal use only
332
+ * @protected
333
+ */
334
+ protected _setDimensionsImpl(dimensions: Partial<TSize>, { cssOnly, backstoreOnly }?: TCanvasSizeOptions): void;
335
+ /**
336
+ * Sets dimensions (width, height) of this canvas instance. when options.cssOnly flag active you should also supply the unit of measure (px/%/em)
337
+ * @param {Object} dimensions Object with width/height properties
338
+ * @param {Number|String} [dimensions.width] Width of canvas element
339
+ * @param {Number|String} [dimensions.height] Height of canvas element
340
+ * @param {Object} [options] Options object
341
+ * @param {Boolean} [options.backstoreOnly=false] Set the given dimensions only as canvas backstore dimensions
342
+ * @param {Boolean} [options.cssOnly=false] Set the given dimensions only as css dimensions
343
+ */
344
+ setDimensions(dimensions: Partial<TSize>, { cssOnly, backstoreOnly }?: TCanvasSizeOptions): void;
345
+ /**
346
+ * Helper for setting width/height
347
+ * @private
348
+ * @param {String} prop property (width|height)
349
+ * @param {Number} value value to set property to
350
+ * @todo subclass in canvas and handle upperCanvasEl there.
351
+ */
352
+ _setBackstoreDimension(prop: keyof TSize, value: number): void;
353
+ /**
354
+ * Helper for setting css width/height
355
+ * @private
356
+ * @param {String} prop property (width|height)
357
+ * @param {String} value value to set property to
358
+ * @todo subclass in canvas and handle upperCanvasEl there.
359
+ */
360
+ _setCssDimension(prop: keyof TSize, value: string): void;
361
+ /**
362
+ * Returns canvas zoom level
363
+ * @return {Number}
364
+ */
365
+ getZoom(): number;
366
+ /**
367
+ * Sets viewport transformation of this canvas instance
368
+ * @param {Array} vpt a Canvas 2D API transform matrix
369
+ */
370
+ setViewportTransform(vpt: TMat2D): void;
371
+ /**
372
+ * Sets zoom level of this canvas instance, the zoom centered around point
373
+ * meaning that following zoom to point with the same point will have the visual
374
+ * effect of the zoom originating from that point. The point won't move.
375
+ * It has nothing to do with canvas center or visual center of the viewport.
376
+ * @param {Point} point to zoom with respect to
377
+ * @param {Number} value to set zoom to, less than 1 zooms out
378
+ */
379
+ zoomToPoint(point: Point, value: number): void;
380
+ /**
381
+ * Sets zoom level of this canvas instance
382
+ * @param {Number} value to set zoom to, less than 1 zooms out
383
+ */
384
+ setZoom(value: number): void;
385
+ /**
386
+ * Pan viewport so as to place point at top left corner of canvas
387
+ * @param {Point} point to move to
388
+ */
389
+ absolutePan(point: Point): void;
390
+ /**
391
+ * Pans viewpoint relatively
392
+ * @param {Point} point (position vector) to move by
393
+ */
394
+ relativePan(point: Point): void;
395
+ /**
396
+ * Returns &lt;canvas> element corresponding to this instance
397
+ * @return {HTMLCanvasElement}
398
+ */
399
+ getElement(): HTMLCanvasElement;
400
+ /**
401
+ * Clears specified context of canvas element
402
+ * @param {CanvasRenderingContext2D} ctx Context to clear
403
+ */
404
+ clearContext(ctx: CanvasRenderingContext2D): void;
405
+ /**
406
+ * Returns context of canvas where objects are drawn
407
+ * @return {CanvasRenderingContext2D}
408
+ */
409
+ getContext(): CanvasRenderingContext2D;
410
+ /**
411
+ * Clears all contexts (background, main, top) of an instance
412
+ */
413
+ clear(): void;
414
+ /**
415
+ * Renders the canvas
416
+ */
417
+ renderAll(): void;
418
+ /**
419
+ * Function created to be instance bound at initialization
420
+ * used in requestAnimationFrame rendering
421
+ * Let the fabricJS call it. If you call it manually you could have more
422
+ * animationFrame stacking on to of each other
423
+ * for an imperative rendering, use canvas.renderAll
424
+ * @private
425
+ */
426
+ renderAndReset(): void;
427
+ /**
428
+ * Append a renderAll request to next animation frame.
429
+ * unless one is already in progress, in that case nothing is done
430
+ * a boolean flag will avoid appending more.
431
+ */
432
+ requestRenderAll(): void;
433
+ /**
434
+ * Calculate the position of the 4 corner of canvas with current viewportTransform.
435
+ * helps to determinate when an object is in the current rendering viewport using
436
+ * object absolute coordinates ( aCoords )
437
+ * @return {Object} points.tl
438
+ * @chainable
439
+ */
440
+ calcViewportBoundaries(): TCornerPoint;
441
+ cancelRequestedRender(): void;
442
+ drawControls(ctx: CanvasRenderingContext2D): void;
443
+ /**
444
+ * Renders background, objects, overlay and controls.
445
+ * @param {CanvasRenderingContext2D} ctx
446
+ * @param {Array} objects to render
447
+ */
448
+ renderCanvas(ctx: CanvasRenderingContext2D, objects: FabricObject[]): void;
449
+ /**
450
+ * Paint the cached clipPath on the lowerCanvasEl
451
+ * @param {CanvasRenderingContext2D} ctx Context to render on
452
+ */
453
+ drawClipPathOnCanvas(ctx: CanvasRenderingContext2D, clipPath: TCachedFabricObject): void;
454
+ /**
455
+ * @private
456
+ * @param {CanvasRenderingContext2D} ctx Context to render on
457
+ * @param {Array} objects to render
458
+ */
459
+ _renderObjects(ctx: CanvasRenderingContext2D, objects: FabricObject[]): void;
460
+ /**
461
+ * @private
462
+ * @param {CanvasRenderingContext2D} ctx Context to render on
463
+ * @param {string} property 'background' or 'overlay'
464
+ */
465
+ _renderBackgroundOrOverlay(ctx: CanvasRenderingContext2D, property: 'background' | 'overlay'): void;
466
+ /**
467
+ * @private
468
+ * @param {CanvasRenderingContext2D} ctx Context to render on
469
+ */
470
+ _renderBackground(ctx: CanvasRenderingContext2D): void;
471
+ /**
472
+ * @private
473
+ * @param {CanvasRenderingContext2D} ctx Context to render on
474
+ */
475
+ _renderOverlay(ctx: CanvasRenderingContext2D): void;
476
+ /**
477
+ * Returns coordinates of a center of canvas.
478
+ * Returned value is an object with top and left properties
479
+ * @return {Object} object with "top" and "left" number values
480
+ * @deprecated migrate to `getCenterPoint`
481
+ */
482
+ getCenter(): {
483
+ top: number;
484
+ left: number;
485
+ };
486
+ /**
487
+ * Returns coordinates of a center of canvas.
488
+ * @return {Point}
489
+ */
490
+ getCenterPoint(): Point;
491
+ /**
492
+ * Centers object horizontally in the canvas
493
+ */
494
+ centerObjectH(object: FabricObject): void;
495
+ /**
496
+ * Centers object vertically in the canvas
497
+ * @param {FabricObject} object Object to center vertically
498
+ */
499
+ centerObjectV(object: FabricObject): void;
500
+ /**
501
+ * Centers object vertically and horizontally in the canvas
502
+ * @param {FabricObject} object Object to center vertically and horizontally
503
+ */
504
+ centerObject(object: FabricObject): void;
505
+ /**
506
+ * Centers object vertically and horizontally in the viewport
507
+ * @param {FabricObject} object Object to center vertically and horizontally
508
+ */
509
+ viewportCenterObject(object: FabricObject): void;
510
+ /**
511
+ * Centers object horizontally in the viewport, object.top is unchanged
512
+ * @param {FabricObject} object Object to center vertically and horizontally
513
+ */
514
+ viewportCenterObjectH(object: FabricObject): void;
515
+ /**
516
+ * Centers object Vertically in the viewport, object.top is unchanged
517
+ * @param {FabricObject} object Object to center vertically and horizontally
518
+ */
519
+ viewportCenterObjectV(object: FabricObject): void;
520
+ /**
521
+ * Calculate the point in canvas that correspond to the center of actual viewport.
522
+ * @return {Point} vpCenter, viewport center
523
+ */
524
+ getVpCenter(): Point;
525
+ /**
526
+ * @private
527
+ * @param {FabricObject} object Object to center
528
+ * @param {Point} center Center point
529
+ */
530
+ _centerObject(object: FabricObject, center: Point): void;
531
+ /**
532
+ * Returns dataless JSON representation of canvas
533
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
534
+ * @return {String} json string
535
+ */
536
+ toDatalessJSON(propertiesToInclude?: string[]): any;
537
+ /**
538
+ * Returns object representation of canvas
539
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
540
+ * @return {Object} object representation of an instance
541
+ */
542
+ toObject(propertiesToInclude?: string[]): any;
543
+ /**
544
+ * Returns Object representation of canvas
545
+ * this alias is provided because if you call JSON.stringify on an instance,
546
+ * the toJSON object will be invoked if it exists.
547
+ * Having a toJSON method means you can do JSON.stringify(myCanvas)
548
+ * @return {Object} JSON compatible object
549
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}
550
+ * @see {@link http://jsfiddle.net/fabricjs/pec86/|jsFiddle demo}
551
+ * @example <caption>JSON without additional properties</caption>
552
+ * var json = canvas.toJSON();
553
+ * @example <caption>JSON with additional properties included</caption>
554
+ * var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY']);
555
+ * @example <caption>JSON without default values</caption>
556
+ * var json = canvas.toJSON();
557
+ */
558
+ toJSON(): any;
559
+ /**
560
+ * Returns dataless object representation of canvas
561
+ * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
562
+ * @return {Object} object representation of an instance
563
+ */
564
+ toDatalessObject(propertiesToInclude?: string[]): any;
565
+ /**
566
+ * @private
567
+ */
568
+ _toObjectMethod(methodName: TValidToObjectMethod, propertiesToInclude?: string[]): any;
569
+ /**
570
+ * @private
571
+ */
572
+ _toObject(instance: FabricObject, methodName: TValidToObjectMethod, propertiesToInclude?: string[]): any;
573
+ /**
574
+ * @private
575
+ */
576
+ __serializeBgOverlay(methodName: TValidToObjectMethod, propertiesToInclude?: string[]): any;
577
+ /**
578
+ * When true, getSvgTransform() will apply the StaticCanvas.viewportTransform to the SVG transformation. When true,
579
+ * a zoomed canvas will then produce zoomed SVG output.
580
+ * @type Boolean
581
+ * @default
582
+ */
583
+ svgViewportTransformation: boolean;
584
+ /**
585
+ * Returns SVG representation of canvas
586
+ * @function
587
+ * @param {Object} [options] Options object for SVG output
588
+ * @param {Boolean} [options.suppressPreamble=false] If true xml tag is not included
589
+ * @param {Object} [options.viewBox] SVG viewbox object
590
+ * @param {Number} [options.viewBox.x] x-coordinate of viewbox
591
+ * @param {Number} [options.viewBox.y] y-coordinate of viewbox
592
+ * @param {Number} [options.viewBox.width] Width of viewbox
593
+ * @param {Number} [options.viewBox.height] Height of viewbox
594
+ * @param {String} [options.encoding=UTF-8] Encoding of SVG output
595
+ * @param {String} [options.width] desired width of svg with or without units
596
+ * @param {String} [options.height] desired height of svg with or without units
597
+ * @param {Function} [reviver] Method for further parsing of svg elements, called after each fabric object converted into svg representation.
598
+ * @return {String} SVG string
599
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}
600
+ * @see {@link http://jsfiddle.net/fabricjs/jQ3ZZ/|jsFiddle demo}
601
+ * @example <caption>Normal SVG output</caption>
602
+ * var svg = canvas.toSVG();
603
+ * @example <caption>SVG output without preamble (without &lt;?xml ../>)</caption>
604
+ * var svg = canvas.toSVG({suppressPreamble: true});
605
+ * @example <caption>SVG output with viewBox attribute</caption>
606
+ * var svg = canvas.toSVG({
607
+ * viewBox: {
608
+ * x: 100,
609
+ * y: 100,
610
+ * width: 200,
611
+ * height: 300
612
+ * }
613
+ * });
614
+ * @example <caption>SVG output with different encoding (default: UTF-8)</caption>
615
+ * var svg = canvas.toSVG({encoding: 'ISO-8859-1'});
616
+ * @example <caption>Modify SVG output with reviver function</caption>
617
+ * var svg = canvas.toSVG(null, function(svg) {
618
+ * return svg.replace('stroke-dasharray: ; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; ', '');
619
+ * });
620
+ */
621
+ toSVG(options: TSVGExportOptions | undefined, reviver: TSVGReviver): string;
622
+ /**
623
+ * @private
624
+ */
625
+ _setSVGPreamble(markup: string[], options: TSVGExportOptions): void;
626
+ /**
627
+ * @private
628
+ */
629
+ _setSVGHeader(markup: string[], options: TSVGExportOptions): void;
630
+ createSVGClipPathMarkup(options: TSVGExportOptions): string;
631
+ /**
632
+ * Creates markup containing SVG referenced elements like patterns, gradients etc.
633
+ * @return {String}
634
+ */
635
+ createSVGRefElementsMarkup(): string;
636
+ /**
637
+ * Creates markup containing SVG font faces,
638
+ * font URLs for font faces must be collected by developers
639
+ * and are not extracted from the DOM by fabricjs
640
+ * @param {Array} objects Array of fabric objects
641
+ * @return {String}
642
+ */
643
+ createSVGFontFacesMarkup(): string;
644
+ /**
645
+ * @private
646
+ */
647
+ _setSVGObjects(markup: string[], reviver: TSVGReviver): void;
648
+ /**
649
+ * This is its own function because the Canvas ( non static ) requires extra code here
650
+ * @private
651
+ */
652
+ _setSVGObject(markup: string[], instance: FabricObject, reviver: TSVGReviver): void;
653
+ /**
654
+ * @private
655
+ */
656
+ _setSVGBgOverlayImage(markup: string[], property: 'overlayImage' | 'backgroundImage', reviver: TSVGReviver): void;
657
+ /**
658
+ * @TODO this seems to handle patterns but fail at gradients.
659
+ * @private
660
+ */
661
+ _setSVGBgOverlayColor(markup: string[], property: 'background' | 'overlay'): void;
662
+ /**
663
+ * Populates canvas with data from the specified JSON.
664
+ * JSON format must conform to the one of {@link fabric.Canvas#toJSON}
665
+ *
666
+ * **IMPORTANT**: It is recommended to abort loading tasks before calling this method to prevent race conditions and unnecessary networking
667
+ *
668
+ * @param {String|Object} json JSON string or object
669
+ * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created.
670
+ * @param {Object} [options] options
671
+ * @param {AbortSignal} [options.signal] see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
672
+ * @return {Promise<Canvas | StaticCanvas>} instance
673
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#deserialization}
674
+ * @see {@link http://jsfiddle.net/fabricjs/fmgXt/|jsFiddle demo}
675
+ * @example <caption>loadFromJSON</caption>
676
+ * canvas.loadFromJSON(json).then((canvas) => canvas.requestRenderAll());
677
+ * @example <caption>loadFromJSON with reviver</caption>
678
+ * canvas.loadFromJSON(json, function(o, object) {
679
+ * // `o` = json object
680
+ * // `object` = fabric.Object instance
681
+ * // ... do some stuff ...
682
+ * }).then((canvas) => {
683
+ * ... canvas is restored, add your code.
684
+ * });
685
+ *
686
+ */
687
+ loadFromJSON(json: string | Record<string, any>, reviver?: EnlivenObjectOptions['reviver'], { signal }?: TCanvasHydrationOption): Promise<this>;
688
+ /**
689
+ * Clones canvas instance
690
+ * @param {string[]} [properties] Array of properties to include in the cloned canvas and children
691
+ */
692
+ clone(properties: string[]): Promise<this>;
693
+ /**
694
+ * Clones canvas instance without cloning existing data.
695
+ * This essentially copies canvas dimensions since loadFromJSON does not affect canvas size.
696
+ */
697
+ cloneWithoutData(): this;
698
+ /**
699
+ * Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately
700
+ * @param {Object} [options] Options object
701
+ * @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png"
702
+ * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.
703
+ * @param {Number} [options.multiplier=1] Multiplier to scale by, to have consistent
704
+ * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
705
+ * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
706
+ * @param {Number} [options.width] Cropping width. Introduced in v1.2.14
707
+ * @param {Number} [options.height] Cropping height. Introduced in v1.2.14
708
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 2.0.0
709
+ * @param {(object: fabric.Object) => boolean} [options.filter] Function to filter objects.
710
+ * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format
711
+ * @see {@link https://jsfiddle.net/xsjua1rd/ demo}
712
+ * @example <caption>Generate jpeg dataURL with lower quality</caption>
713
+ * var dataURL = canvas.toDataURL({
714
+ * format: 'jpeg',
715
+ * quality: 0.8
716
+ * });
717
+ * @example <caption>Generate cropped png dataURL (clipping of canvas)</caption>
718
+ * var dataURL = canvas.toDataURL({
719
+ * format: 'png',
720
+ * left: 100,
721
+ * top: 100,
722
+ * width: 200,
723
+ * height: 200
724
+ * });
725
+ * @example <caption>Generate double scaled png dataURL</caption>
726
+ * var dataURL = canvas.toDataURL({
727
+ * format: 'png',
728
+ * multiplier: 2
729
+ * });
730
+ * @example <caption>Generate dataURL with objects that overlap a specified object</caption>
731
+ * var myObject;
732
+ * var dataURL = canvas.toDataURL({
733
+ * filter: (object) => object.isContainedWithinObject(myObject) || object.intersectsWithObject(myObject)
734
+ * });
735
+ */
736
+ toDataURL(options?: TDataUrlOptions): string;
737
+ /**
738
+ * Create a new HTMLCanvas element painted with the current canvas content.
739
+ * No need to resize the actual one or repaint it.
740
+ * Will transfer object ownership to a new canvas, paint it, and set everything back.
741
+ * This is an intermediary step used to get to a dataUrl but also it is useful to
742
+ * create quick image copies of a canvas without passing for the dataUrl string
743
+ * @param {Number} [multiplier] a zoom factor.
744
+ * @param {Object} [options] Cropping informations
745
+ * @param {Number} [options.left] Cropping left offset.
746
+ * @param {Number} [options.top] Cropping top offset.
747
+ * @param {Number} [options.width] Cropping width.
748
+ * @param {Number} [options.height] Cropping height.
749
+ * @param {(object: fabric.Object) => boolean} [options.filter] Function to filter objects.
750
+ */
751
+ toCanvasElement(multiplier?: number, { width, height, left, top, filter }?: TToCanvasElementOptions): HTMLCanvasElement;
752
+ /**
753
+ * Waits until rendering has settled to destroy the canvas
754
+ * @returns {Promise<boolean>} a promise resolving to `true` once the canvas has been destroyed or to `false` if the canvas has was already destroyed
755
+ * @throws if aborted by a consequent call
756
+ */
757
+ dispose(): Promise<boolean>;
758
+ /**
759
+ * Clears the canvas element, disposes objects and frees resources
760
+ *
761
+ * **CAUTION**:
762
+ *
763
+ * This method is **UNSAFE**.
764
+ * You may encounter a race condition using it if there's a requested render.
765
+ * Call this method only if you are sure rendering has settled.
766
+ * Consider using {@link dispose} as it is **SAFE**
767
+ *
768
+ * @private
769
+ */
770
+ destroy(): void;
771
+ /**
772
+ * Returns a string representation of an instance
773
+ * @return {String} string representation of an instance
774
+ */
775
+ toString(): string;
776
+ }
777
+ export {};
778
+ //# sourceMappingURL=StaticCanvas.d.ts.map