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.
- package/.babelrc +11 -0
- package/.babelrcAlt +19 -0
- package/.browserslistrc +5 -0
- package/.eslintignore +3 -0
- package/.eslintrc.js +43 -0
- package/.eslintrc.json +38 -46
- package/.eslintrc_tests +12 -0
- package/.gitattributes +2 -0
- package/.gitpod.yml +17 -1
- package/.prettierignore +19 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +532 -189
- package/CONTRIBUTING.md +224 -59
- package/README.md +200 -235
- package/bower.json +1 -3
- package/dist/fabric.d.ts +42 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +27582 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +1 -0
- package/dist/index.mjs +27519 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +27663 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +14 -0
- package/dist/index.node.mjs +27606 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/src/ClassRegistry.d.ts +13 -0
- package/dist/src/Collection.d.ts +136 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/EventTypeDefs.d.ts +227 -0
- package/dist/src/Intersection.d.ts +112 -0
- package/dist/src/Observable.d.ts +60 -0
- package/dist/src/Pattern.d.ts +113 -0
- package/dist/src/Point.d.ts +232 -0
- package/dist/src/Shadow.d.ts +97 -0
- package/dist/src/brushes/BaseBrush.d.ts +105 -0
- package/dist/src/brushes/CircleBrush.d.ts +49 -0
- package/dist/src/brushes/PatternBrush.d.ts +23 -0
- package/dist/src/brushes/PencilBrush.d.ts +92 -0
- package/dist/src/brushes/SprayBrush.d.ts +79 -0
- package/dist/src/cache.d.ts +47 -0
- package/dist/src/canvas/Canvas.d.ts +548 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
- package/dist/src/canvas/StaticCanvas.d.ts +778 -0
- package/dist/src/canvas/TextEditingManager.d.ts +17 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
- package/dist/src/color/Color.d.ts +174 -0
- package/dist/src/color/color_map.d.ts +155 -0
- package/dist/src/color/constants.d.ts +22 -0
- package/dist/src/color/util.d.ts +12 -0
- package/dist/src/config.d.ts +115 -0
- package/dist/src/constants.d.ts +14 -0
- package/dist/src/controls/Control.d.ts +228 -0
- package/dist/src/controls/changeWidth.d.ts +13 -0
- package/dist/src/controls/commonControls.d.ts +28 -0
- package/dist/src/controls/controlRendering.d.ts +29 -0
- package/dist/src/controls/drag.d.ts +12 -0
- package/dist/src/controls/index.d.ts +13 -0
- package/dist/src/controls/polyControl.d.ts +5 -0
- package/dist/src/controls/rotate.d.ts +12 -0
- package/dist/src/controls/scale.d.ts +47 -0
- package/dist/src/controls/scaleSkew.d.ts +39 -0
- package/dist/src/controls/skew.d.ts +33 -0
- package/dist/src/controls/util.d.ts +41 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
- package/dist/src/env/browser.d.ts +3 -0
- package/dist/src/env/index.d.ts +15 -0
- package/dist/src/env/node.d.ts +5 -0
- package/dist/src/env/types.d.ts +15 -0
- package/dist/src/filters/BaseFilter.d.ts +153 -0
- package/dist/src/filters/BlendColor.d.ts +80 -0
- package/dist/src/filters/BlendImage.d.ts +92 -0
- package/dist/src/filters/Blur.d.ts +51 -0
- package/dist/src/filters/Boilerplate.d.ts +48 -0
- package/dist/src/filters/Brightness.d.ts +47 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/ColorMatrix.d.ts +63 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
- package/dist/src/filters/Composed.d.ts +45 -0
- package/dist/src/filters/Contrast.d.ts +45 -0
- package/dist/src/filters/Convolute.d.ts +82 -0
- package/dist/src/filters/FilterBackend.d.ts +14 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
- package/dist/src/filters/Gamma.d.ts +54 -0
- package/dist/src/filters/Grayscale.d.ts +46 -0
- package/dist/src/filters/HueRotation.d.ts +24 -0
- package/dist/src/filters/Invert.d.ts +55 -0
- package/dist/src/filters/Noise.d.ts +54 -0
- package/dist/src/filters/Pixelate.d.ts +44 -0
- package/dist/src/filters/RemoveColor.d.ts +63 -0
- package/dist/src/filters/Resize.d.ts +136 -0
- package/dist/src/filters/Saturation.d.ts +48 -0
- package/dist/src/filters/Vibrance.d.ts +48 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
- package/dist/src/filters/filters.d.ts +21 -0
- package/dist/src/filters/index.d.ts +5 -0
- package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
- package/dist/src/filters/shaders/blendColor.d.ts +13 -0
- package/dist/src/filters/shaders/blendImage.d.ts +3 -0
- package/dist/src/filters/shaders/blur.d.ts +2 -0
- package/dist/src/filters/shaders/brightness.d.ts +2 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
- package/dist/src/filters/shaders/constrast.d.ts +2 -0
- package/dist/src/filters/shaders/convolute.d.ts +11 -0
- package/dist/src/filters/shaders/gamma.d.ts +2 -0
- package/dist/src/filters/shaders/grayscale.d.ts +3 -0
- package/dist/src/filters/shaders/invert.d.ts +2 -0
- package/dist/src/filters/shaders/noise.d.ts +2 -0
- package/dist/src/filters/shaders/pixelate.d.ts +2 -0
- package/dist/src/filters/shaders/removeColor.d.ts +2 -0
- package/dist/src/filters/shaders/saturation.d.ts +2 -0
- package/dist/src/filters/shaders/vibrance.d.ts +2 -0
- package/dist/src/filters/typedefs.d.ts +49 -0
- package/dist/src/gradient/Gradient.d.ts +149 -0
- package/dist/src/gradient/constants.d.ts +15 -0
- package/dist/src/gradient/parser/index.d.ts +4 -0
- package/dist/src/gradient/parser/misc.d.ts +4 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
- package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
- package/dist/src/gradient/typedefs.d.ts +93 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
- package/dist/src/parkinglot/straighten.d.ts +2 -0
- package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
- package/dist/src/parser/attributes.d.ts +6 -0
- package/dist/src/parser/constants.d.ts +53 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
- package/dist/src/parser/elementById.d.ts +6 -0
- package/dist/src/parser/elementMatchesRule.d.ts +5 -0
- package/dist/src/parser/elements_parser.d.ts +3 -0
- package/dist/src/parser/getCSSRules.d.ts +7 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
- package/dist/src/parser/getGradientDefs.d.ts +7 -0
- package/dist/src/parser/getMultipleNodes.d.ts +2 -0
- package/dist/src/parser/getSvgRegex.d.ts +2 -0
- package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
- package/dist/src/parser/index.d.ts +10 -0
- package/dist/src/parser/loadSVGFromString.d.ts +12 -0
- package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
- package/dist/src/parser/normalizeAttr.d.ts +2 -0
- package/dist/src/parser/normalizeValue.d.ts +2 -0
- package/dist/src/parser/parseAttributes.d.ts +9 -0
- package/dist/src/parser/parseElements.d.ts +11 -0
- package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
- package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
- package/dist/src/parser/parseSVGDocument.d.ts +15 -0
- package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
- package/dist/src/parser/parseStyleObject.d.ts +2 -0
- package/dist/src/parser/parseStyleString.d.ts +2 -0
- package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
- package/dist/src/parser/parseUseDirectives.d.ts +2 -0
- package/dist/src/parser/percent.d.ts +9 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
- package/dist/src/parser/rotateMatrix.d.ts +2 -0
- package/dist/src/parser/scaleMatrix.d.ts +2 -0
- package/dist/src/parser/selectorMatches.d.ts +2 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
- package/dist/src/parser/skewMatrix.d.ts +2 -0
- package/dist/src/parser/translateMatrix.d.ts +2 -0
- package/dist/src/shapes/ActiveSelection.d.ts +82 -0
- package/dist/src/shapes/Circle.d.ts +99 -0
- package/dist/src/shapes/Ellipse.d.ts +84 -0
- package/dist/src/shapes/Group.d.ts +408 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/IText.d.ts +335 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/Image.d.ts +311 -0
- package/dist/src/shapes/Line.d.ts +126 -0
- package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
- package/dist/src/shapes/Object/Object.d.ts +594 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
- package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
- package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
- package/dist/src/shapes/Object/types/index.d.ts +6 -0
- package/dist/src/shapes/Path.d.ts +130 -0
- package/dist/src/shapes/Polygon.d.ts +9 -0
- package/dist/src/shapes/Polyline.d.ts +140 -0
- package/dist/src/shapes/Rect.d.ts +76 -0
- package/dist/src/shapes/Text/StyledText.d.ts +119 -0
- package/dist/src/shapes/Text/Text.d.ts +673 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
- package/dist/src/shapes/Text/constants.d.ts +7 -0
- package/dist/src/shapes/Textbox.d.ts +185 -0
- package/dist/src/shapes/Triangle.d.ts +25 -0
- package/dist/src/typedefs.d.ts +90 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
- package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
- package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
- package/dist/src/util/animation/animate.d.ts +37 -0
- package/dist/src/util/animation/easing.d.ts +130 -0
- package/dist/src/util/animation/types.d.ts +87 -0
- package/dist/src/util/applyMixins.d.ts +8 -0
- package/dist/src/util/dom_event.d.ts +5 -0
- package/dist/src/util/dom_misc.d.ts +39 -0
- package/dist/src/util/dom_request.d.ts +14 -0
- package/dist/src/util/dom_style.d.ts +7 -0
- package/dist/src/util/fireEvent.d.ts +3 -0
- package/dist/src/util/index.d.ts +35 -0
- package/dist/src/util/internals/cloneDeep.d.ts +2 -0
- package/dist/src/util/internals/getRandomInt.d.ts +8 -0
- package/dist/src/util/internals/ifNaN.d.ts +8 -0
- package/dist/src/util/internals/index.d.ts +4 -0
- package/dist/src/util/internals/removeFromArray.d.ts +9 -0
- package/dist/src/util/internals/uid.d.ts +2 -0
- package/dist/src/util/lang_string.d.ts +22 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
- package/dist/src/util/misc/capValue.d.ts +2 -0
- package/dist/src/util/misc/cos.d.ts +10 -0
- package/dist/src/util/misc/dom.d.ts +28 -0
- package/dist/src/util/misc/findScaleTo.d.ts +29 -0
- package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
- package/dist/src/util/misc/isTransparent.d.ts +11 -0
- package/dist/src/util/misc/matrix.d.ts +92 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
- package/dist/src/util/misc/objectEnlive.d.ts +56 -0
- package/dist/src/util/misc/objectTransforms.d.ts +68 -0
- package/dist/src/util/misc/pick.d.ts +9 -0
- package/dist/src/util/misc/planeChange.d.ts +84 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
- package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
- package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
- package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
- package/dist/src/util/misc/rotatePoint.d.ts +12 -0
- package/dist/src/util/misc/sin.d.ts +10 -0
- package/dist/src/util/misc/svgParsing.d.ts +53 -0
- package/dist/src/util/misc/textStyles.d.ts +32 -0
- package/dist/src/util/misc/toFixed.d.ts +8 -0
- package/dist/src/util/misc/vectors.d.ts +57 -0
- package/dist/src/util/path/index.d.ts +96 -0
- package/dist/src/util/path/regex.d.ts +3 -0
- package/dist/src/util/path/typechecks.d.ts +24 -0
- package/dist/src/util/path/typedefs.d.ts +220 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/types.d.ts +19 -0
- package/fabric.ts +51 -0
- package/index.node.ts +37 -0
- package/index.ts +1 -0
- package/package.json +100 -40
- package/publish.js +0 -26
- package/rollup.config.mjs +91 -0
- package/rollup.test.config.js +24 -0
- package/scripts/build.mjs +50 -0
- package/scripts/buildLock.mjs +115 -0
- package/scripts/buildReporter.mjs +15 -0
- package/scripts/buildStats.mjs +139 -0
- package/scripts/dirname.mjs +14 -0
- package/scripts/git.mjs +36 -0
- package/scripts/index.mjs +564 -0
- package/scripts/sandbox.mjs +149 -0
- package/src/ClassRegistry.ts +56 -0
- package/src/Collection.ts +346 -0
- package/src/CommonMethods.ts +63 -0
- package/src/EventTypeDefs.ts +296 -0
- package/src/Intersection.ts +302 -0
- package/src/Observable.ts +181 -0
- package/src/Pattern.ts +227 -0
- package/src/Point.ts +388 -0
- package/src/Shadow.ts +214 -0
- package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
- package/src/brushes/CircleBrush.ts +145 -0
- package/src/brushes/PatternBrush.ts +70 -0
- package/src/brushes/PencilBrush.ts +300 -0
- package/src/brushes/SprayBrush.ts +219 -0
- package/src/cache.ts +90 -0
- package/src/canvas/Canvas.ts +1607 -0
- package/src/canvas/SelectableCanvas.ts +1608 -0
- package/src/canvas/StaticCanvas.ts +1734 -0
- package/src/canvas/TextEditingManager.ts +48 -0
- package/src/canvas/canvas_gestures.mixin.ts +207 -0
- package/src/color/Color.ts +404 -0
- package/src/color/color_map.ts +154 -0
- package/src/color/constants.ts +26 -0
- package/src/color/util.ts +32 -0
- package/src/config.ts +159 -0
- package/src/constants.ts +20 -0
- package/src/controls/Control.ts +380 -0
- package/src/controls/changeWidth.ts +52 -0
- package/src/controls/commonControls.ts +105 -0
- package/src/controls/controlRendering.ts +138 -0
- package/src/controls/drag.ts +31 -0
- package/src/controls/index.ts +22 -0
- package/src/controls/polyControl.ts +135 -0
- package/src/controls/rotate.ts +87 -0
- package/src/controls/scale.ts +277 -0
- package/src/controls/scaleSkew.ts +92 -0
- package/src/controls/skew.ts +242 -0
- package/src/controls/util.ts +154 -0
- package/src/controls/wrapWithFireEvent.ts +25 -0
- package/src/controls/wrapWithFixedAnchor.ts +20 -0
- package/src/env/browser.ts +32 -0
- package/src/env/index.ts +24 -0
- package/src/env/node.ts +56 -0
- package/src/env/types.ts +15 -0
- package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
- package/src/filters/BlendColor.ts +217 -0
- package/src/filters/BlendImage.ts +228 -0
- package/src/filters/Blur.ts +179 -0
- package/src/filters/Boilerplate.ts +94 -0
- package/src/filters/Brightness.ts +83 -0
- package/src/filters/Canvas2dFilterBackend.ts +65 -0
- package/src/filters/ColorMatrix.ts +145 -0
- package/src/filters/ColorMatrixFilters.ts +77 -0
- package/src/filters/Composed.ts +76 -0
- package/src/filters/Contrast.ts +82 -0
- package/src/filters/Convolute.ts +184 -0
- package/src/filters/FilterBackend.ts +34 -0
- package/src/filters/GLProbes/GLProbe.ts +11 -0
- package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
- package/src/filters/GLProbes/WebGLProbe.ts +46 -0
- package/src/filters/Gamma.ts +110 -0
- package/src/filters/Grayscale.ts +102 -0
- package/src/filters/HueRotation.ts +62 -0
- package/src/filters/Invert.ts +99 -0
- package/src/filters/Noise.ts +94 -0
- package/src/filters/Pixelate.ts +96 -0
- package/src/filters/RemoveColor.ts +135 -0
- package/src/filters/Resize.ts +538 -0
- package/src/filters/Saturation.ts +87 -0
- package/src/filters/Vibrance.ts +88 -0
- package/src/filters/WebGLFilterBackend.ts +430 -0
- package/src/filters/filters.ts +28 -0
- package/src/filters/index.ts +5 -0
- package/src/filters/shaders/baseFilter.ts +19 -0
- package/src/filters/shaders/blendColor.ts +33 -0
- package/src/filters/shaders/blendImage.ts +32 -0
- package/src/filters/shaders/blur.ts +24 -0
- package/src/filters/shaders/brightness.ts +11 -0
- package/src/filters/shaders/colorMatrix.ts +12 -0
- package/src/filters/shaders/constrast.ts +11 -0
- package/src/filters/shaders/convolute.ts +154 -0
- package/src/filters/shaders/gamma.ts +15 -0
- package/src/filters/shaders/grayscale.ts +36 -0
- package/src/filters/shaders/invert.ts +19 -0
- package/src/filters/shaders/noise.ts +16 -0
- package/src/filters/shaders/pixelate.ts +19 -0
- package/src/filters/shaders/removeColor.ts +13 -0
- package/src/filters/shaders/saturation.ts +15 -0
- package/src/filters/shaders/vibrance.ts +16 -0
- package/src/filters/typedefs.ts +65 -0
- package/src/gradient/Gradient.ts +406 -0
- package/src/gradient/constants.ts +12 -0
- package/src/gradient/parser/index.ts +3 -0
- package/src/gradient/parser/misc.ts +13 -0
- package/src/gradient/parser/parseColorStops.ts +56 -0
- package/src/gradient/parser/parseCoords.ts +73 -0
- package/src/gradient/typedefs.ts +104 -0
- package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
- package/src/parkinglot/canvas_animation.mixin.ts +121 -0
- package/src/parkinglot/straighten.ts +58 -0
- package/src/parser/applyViewboxTransform.ts +157 -0
- package/src/parser/attributes.ts +25 -0
- package/src/parser/constants.ts +115 -0
- package/src/parser/doesSomeParentMatch.ts +19 -0
- package/src/parser/elementById.ts +21 -0
- package/src/parser/elementMatchesRule.ts +16 -0
- package/src/parser/elements_parser.ts +191 -0
- package/src/parser/getCSSRules.ts +62 -0
- package/src/parser/getGlobalStylesForElement.ts +19 -0
- package/src/parser/getGradientDefs.ts +31 -0
- package/src/parser/getMultipleNodes.ts +15 -0
- package/src/parser/getSvgRegex.ts +5 -0
- package/src/parser/hasAncestorWithNodeName.ts +14 -0
- package/src/parser/index.ts +9 -0
- package/src/parser/loadSVGFromString.ts +26 -0
- package/src/parser/loadSVGFromURL.ts +40 -0
- package/src/parser/normalizeAttr.ts +10 -0
- package/src/parser/normalizeValue.ts +63 -0
- package/src/parser/parseAttributes.ts +90 -0
- package/src/parser/parseElements.ts +28 -0
- package/src/parser/parseFontDeclaration.ts +44 -0
- package/src/parser/parsePointsAttribute.ts +34 -0
- package/src/parser/parseSVGDocument.ts +93 -0
- package/src/parser/parseStyleAttribute.ts +27 -0
- package/src/parser/parseStyleObject.ts +15 -0
- package/src/parser/parseStyleString.ts +16 -0
- package/src/parser/parseTransformAttribute.ts +155 -0
- package/src/parser/parseUseDirectives.ts +78 -0
- package/src/parser/percent.ts +27 -0
- package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
- package/src/parser/rotateMatrix.ts +21 -0
- package/src/parser/scaleMatrix.ts +9 -0
- package/src/parser/selectorMatches.ts +25 -0
- package/src/parser/setStrokeFillOpacity.ts +40 -0
- package/src/parser/skewMatrix.ts +6 -0
- package/src/parser/translateMatrix.ts +8 -0
- package/src/shapes/ActiveSelection.ts +189 -0
- package/src/shapes/Circle.ts +242 -0
- package/src/shapes/Ellipse.ts +179 -0
- package/src/shapes/Group.ts +1100 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
- package/src/shapes/IText/IText.ts +693 -0
- package/src/shapes/IText/ITextBehavior.ts +1064 -0
- package/src/shapes/IText/ITextClickBehavior.ts +325 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
- package/src/shapes/IText/constants.ts +47 -0
- package/src/shapes/Image.ts +841 -0
- package/src/shapes/Line.ts +346 -0
- package/src/shapes/Object/AnimatableObject.ts +106 -0
- package/src/shapes/Object/FabricObject.ts +29 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
- package/src/shapes/Object/InteractiveObject.ts +672 -0
- package/src/shapes/Object/Object.ts +1561 -0
- package/src/shapes/Object/ObjectGeometry.ts +813 -0
- package/src/shapes/Object/ObjectOrigin.ts +276 -0
- package/src/shapes/Object/StackedObject.ts +206 -0
- package/src/shapes/Object/defaultValues.ts +108 -0
- package/src/shapes/Object/types/BaseProps.ts +96 -0
- package/src/shapes/Object/types/BorderProps.ts +40 -0
- package/src/shapes/Object/types/ControlProps.ts +69 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
- package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
- package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
- package/src/shapes/Object/types/ObjectProps.ts +46 -0
- package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
- package/src/shapes/Object/types/index.ts +8 -0
- package/src/shapes/Path.ts +416 -0
- package/src/shapes/Polygon.ts +20 -0
- package/src/shapes/Polyline.ts +359 -0
- package/src/shapes/Rect.ts +233 -0
- package/src/shapes/Text/StyledText.ts +329 -0
- package/src/shapes/Text/Text.ts +1884 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
- package/src/shapes/Text/constants.ts +91 -0
- package/src/shapes/Textbox.ts +477 -0
- package/src/shapes/Triangle.ts +60 -0
- package/src/typedefs.ts +115 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +9 -0
- package/src/util/animation/AnimationRegistry.ts +58 -0
- package/src/util/animation/ArrayAnimation.ts +27 -0
- package/src/util/animation/ColorAnimation.ts +74 -0
- package/src/util/animation/ValueAnimation.ts +29 -0
- package/src/util/animation/animate.ts +74 -0
- package/src/util/animation/easing.ts +327 -0
- package/src/util/animation/types.ts +136 -0
- package/src/util/applyMixins.ts +22 -0
- package/src/util/dom_event.ts +28 -0
- package/src/util/dom_misc.ts +121 -0
- package/src/util/dom_request.ts +64 -0
- package/src/util/dom_style.ts +20 -0
- package/src/util/fireEvent.ts +15 -0
- package/src/util/index.ts +102 -0
- package/src/util/internals/cloneDeep.ts +2 -0
- package/src/util/internals/getRandomInt.ts +8 -0
- package/src/util/internals/ifNaN.ts +9 -0
- package/src/util/internals/index.ts +3 -0
- package/src/util/internals/removeFromArray.ts +14 -0
- package/src/util/internals/uid.ts +3 -0
- package/src/util/lang_string.ts +79 -0
- package/src/util/misc/boundingBoxFromPoints.ts +37 -0
- package/src/util/misc/capValue.ts +2 -0
- package/src/util/misc/cos.ts +24 -0
- package/src/util/misc/dom.ts +50 -0
- package/src/util/misc/findScaleTo.ts +44 -0
- package/src/util/misc/groupSVGElements.ts +15 -0
- package/src/util/misc/isTransparent.ts +28 -0
- package/src/util/misc/matrix.ts +207 -0
- package/src/util/misc/mergeClipPaths.ts +40 -0
- package/src/util/misc/objectEnlive.ts +189 -0
- package/src/util/misc/objectTransforms.ts +129 -0
- package/src/util/misc/pick.ts +29 -0
- package/src/util/misc/planeChange.ts +136 -0
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
- package/src/util/misc/projectStroke/index.ts +53 -0
- package/src/util/misc/projectStroke/types.ts +24 -0
- package/src/util/misc/radiansDegreesConversion.ts +18 -0
- package/src/util/misc/resolveOrigin.ts +22 -0
- package/src/util/misc/rotatePoint.ts +15 -0
- package/src/util/misc/sin.ts +26 -0
- package/src/util/misc/svgParsing.ts +181 -0
- package/src/util/misc/textStyles.ts +134 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.ts +82 -0
- package/src/util/path/index.ts +1038 -0
- package/src/util/path/regex.ts +41 -0
- package/src/util/path/typechecks.ts +145 -0
- package/src/util/path/typedefs.ts +305 -0
- package/src/util/transform_matrix_removal.ts +60 -0
- package/src/util/types.ts +78 -0
- package/tsconfig.json +106 -0
- package/HEADER.js +0 -203
- package/build.js +0 -287
- package/dist/fabric.js +0 -31187
- package/dist/fabric.min.js +0 -1
- package/old-travis-reference.yml +0 -97
- package/src/brushes/circle_brush.class.js +0 -144
- package/src/brushes/pattern_brush.class.js +0 -61
- package/src/brushes/pencil_brush.class.js +0 -310
- package/src/brushes/spray_brush.class.js +0 -219
- package/src/canvas.class.js +0 -1312
- package/src/color.class.js +0 -636
- package/src/control.class.js +0 -339
- package/src/controls.actions.js +0 -740
- package/src/controls.render.js +0 -99
- package/src/elements_parser.js +0 -152
- package/src/filters/2d_backend.class.js +0 -65
- package/src/filters/blendcolor_filter.class.js +0 -251
- package/src/filters/blendimage_filter.class.js +0 -247
- package/src/filters/blur_filter.class.js +0 -217
- package/src/filters/brightness_filter.class.js +0 -113
- package/src/filters/colormatrix_filter.class.js +0 -159
- package/src/filters/composed_filter.class.js +0 -72
- package/src/filters/contrast_filter.class.js +0 -113
- package/src/filters/convolute_filter.class.js +0 -352
- package/src/filters/filter_boilerplate.js +0 -111
- package/src/filters/filter_generator.js +0 -85
- package/src/filters/gamma_filter.class.js +0 -136
- package/src/filters/grayscale_filter.class.js +0 -154
- package/src/filters/hue_rotation.class.js +0 -107
- package/src/filters/invert_filter.class.js +0 -111
- package/src/filters/noise_filter.class.js +0 -134
- package/src/filters/pixelate_filter.class.js +0 -137
- package/src/filters/removecolor_filter.class.js +0 -173
- package/src/filters/resize_filter.class.js +0 -490
- package/src/filters/saturate_filter.class.js +0 -119
- package/src/filters/vibrance_filter.class.js +0 -122
- package/src/filters/webgl_backend.class.js +0 -396
- package/src/globalFabric.js +0 -4
- package/src/gradient.class.js +0 -490
- package/src/intersection.class.js +0 -172
- package/src/log.js +0 -11
- package/src/mixins/animation.mixin.js +0 -231
- package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
- package/src/mixins/canvas_events.mixin.js +0 -974
- package/src/mixins/canvas_gestures.mixin.js +0 -149
- package/src/mixins/canvas_grouping.mixin.js +0 -177
- package/src/mixins/canvas_serialization.mixin.js +0 -228
- package/src/mixins/collection.mixin.js +0 -170
- package/src/mixins/default_controls.js +0 -114
- package/src/mixins/itext.svg_export.js +0 -241
- package/src/mixins/itext_behavior.mixin.js +0 -940
- package/src/mixins/itext_click_behavior.mixin.js +0 -278
- package/src/mixins/itext_key_behavior.mixin.js +0 -694
- package/src/mixins/object.svg_export.js +0 -258
- package/src/mixins/object_geometry.mixin.js +0 -683
- package/src/mixins/object_interactivity.mixin.js +0 -314
- package/src/mixins/object_origin.mixin.js +0 -255
- package/src/mixins/object_stacking.mixin.js +0 -80
- package/src/mixins/object_straightening.mixin.js +0 -80
- package/src/mixins/observable.mixin.js +0 -141
- package/src/mixins/shared_methods.mixin.js +0 -94
- package/src/mixins/stateful.mixin.js +0 -107
- package/src/mixins/text_style.mixin.js +0 -324
- package/src/parser.js +0 -1090
- package/src/pattern.class.js +0 -189
- package/src/point.class.js +0 -337
- package/src/shadow.class.js +0 -195
- package/src/shapes/active_selection.class.js +0 -155
- package/src/shapes/circle.class.js +0 -210
- package/src/shapes/ellipse.class.js +0 -181
- package/src/shapes/group.class.js +0 -593
- package/src/shapes/image.class.js +0 -764
- package/src/shapes/itext.class.js +0 -526
- package/src/shapes/line.class.js +0 -324
- package/src/shapes/object.class.js +0 -2008
- package/src/shapes/path.class.js +0 -384
- package/src/shapes/polygon.class.js +0 -81
- package/src/shapes/polyline.class.js +0 -268
- package/src/shapes/rect.class.js +0 -187
- package/src/shapes/text.class.js +0 -1696
- package/src/shapes/textbox.class.js +0 -461
- package/src/shapes/triangle.class.js +0 -93
- package/src/static_canvas.class.js +0 -1881
- package/src/util/anim_ease.js +0 -398
- package/src/util/animate.js +0 -254
- package/src/util/animate_color.js +0 -74
- package/src/util/dom_event.js +0 -50
- package/src/util/dom_misc.js +0 -300
- package/src/util/dom_request.js +0 -54
- package/src/util/dom_style.js +0 -70
- package/src/util/lang_array.js +0 -94
- package/src/util/lang_class.js +0 -115
- package/src/util/lang_object.js +0 -75
- package/src/util/lang_string.js +0 -110
- package/src/util/misc.js +0 -1330
- package/src/util/named_accessors.mixin.js +0 -428
- 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 <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 <?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
|