fabric 5.3.0 → 6.0.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +11 -0
- package/.babelrcAlt +19 -0
- package/.browserslistrc +5 -0
- package/.eslintrc.js +43 -0
- package/.eslintrc.json +38 -46
- package/.eslintrc_tests +12 -0
- package/.gitattributes +2 -0
- package/.prettierignore +16 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +491 -189
- package/CONTRIBUTING.md +226 -58
- package/README.md +188 -239
- package/bower.json +1 -3
- package/dist/fabric.d.ts +1021 -0
- package/dist/index.cjs +28027 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.min.js +1 -0
- package/dist/index.mjs +27964 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +28092 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +15 -0
- package/dist/index.node.mjs +28035 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/src/Collection.d.ts +126 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/EventTypeDefs.d.ts +226 -0
- package/dist/src/Intersection.d.ts +100 -0
- package/dist/src/Observable.d.ts +54 -0
- package/dist/src/Pattern.d.ts +104 -0
- package/dist/src/Point.d.ts +232 -0
- package/dist/src/Shadow.d.ts +87 -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 +46 -0
- package/dist/src/canvas/Canvas.d.ts +567 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
- package/dist/src/canvas/StaticCanvas.d.ts +751 -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/controls.render.d.ts +29 -0
- package/dist/src/controls/default_controls.d.ts +50 -0
- package/dist/src/controls/drag.d.ts +12 -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 +7 -0
- package/dist/src/env/node.d.ts +3 -0
- package/dist/src/env/types.d.ts +15 -0
- package/dist/src/filters/BaseFilter.d.ts +156 -0
- package/dist/src/filters/BlendColor.d.ts +80 -0
- package/dist/src/filters/BlendImage.d.ts +90 -0
- package/dist/src/filters/Blur.d.ts +50 -0
- package/dist/src/filters/Boilerplate.d.ts +46 -0
- package/dist/src/filters/Brightness.d.ts +46 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/ColorMatrix.d.ts +62 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
- package/dist/src/filters/Composed.d.ts +47 -0
- package/dist/src/filters/Contrast.d.ts +44 -0
- package/dist/src/filters/Convolute.d.ts +82 -0
- package/dist/src/filters/FilterBackend.d.ts +14 -0
- package/dist/src/filters/Gamma.d.ts +53 -0
- package/dist/src/filters/Grayscale.d.ts +45 -0
- package/dist/src/filters/HueRotation.d.ts +24 -0
- package/dist/src/filters/Invert.d.ts +54 -0
- package/dist/src/filters/Noise.d.ts +53 -0
- package/dist/src/filters/Pixelate.d.ts +43 -0
- package/dist/src/filters/RemoveColor.d.ts +62 -0
- package/dist/src/filters/Resize.d.ts +134 -0
- package/dist/src/filters/Saturation.d.ts +47 -0
- package/dist/src/filters/Vibrance.d.ts +47 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
- package/dist/src/filters/WebGLProbe.d.ts +28 -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 +6 -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/mixins/stateful.mixin.d.ts +18 -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 +54 -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/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 +66 -0
- package/dist/src/shapes/Circle.d.ts +80 -0
- package/dist/src/shapes/Ellipse.d.ts +74 -0
- package/dist/src/shapes/Group.d.ts +381 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/IText.d.ts +322 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/Image.d.ts +283 -0
- package/dist/src/shapes/Line.d.ts +117 -0
- package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
- package/dist/src/shapes/Object/Object.d.ts +906 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
- package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
- package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
- package/dist/src/shapes/Path.d.ts +123 -0
- package/dist/src/shapes/Polygon.d.ts +7 -0
- package/dist/src/shapes/Polyline.d.ts +130 -0
- package/dist/src/shapes/Rect.d.ts +62 -0
- package/dist/src/shapes/Text/StyledText.d.ts +118 -0
- package/dist/src/shapes/Text/Text.d.ts +656 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
- package/dist/src/shapes/Textbox.d.ts +170 -0
- package/dist/src/shapes/Triangle.d.ts +17 -0
- package/dist/src/typedefs.d.ts +93 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -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/class_registry.d.ts +14 -0
- package/dist/src/util/dom_event.d.ts +5 -0
- package/dist/src/util/dom_misc.d.ts +40 -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/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_class.d.ts +12 -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 +8 -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.d.ts +108 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/types.d.ts +19 -0
- package/fabric.ts +427 -0
- package/index.node.ts +43 -0
- package/index.ts +1 -0
- package/package.json +90 -39
- package/publish.js +0 -26
- package/rollup.config.mjs +79 -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/index.mjs +679 -0
- package/scripts/transform_files.mjs +504 -0
- package/src/Collection.ts +311 -0
- package/src/CommonMethods.ts +63 -0
- package/src/EventTypeDefs.ts +294 -0
- package/src/Intersection.ts +273 -0
- package/src/Observable.ts +175 -0
- package/src/Pattern.ts +211 -0
- package/src/Point.ts +388 -0
- package/src/Shadow.ts +215 -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 +89 -0
- package/src/canvas/Canvas.ts +1672 -0
- package/src/canvas/SelectableCanvas.ts +1636 -0
- package/src/canvas/StaticCanvas.ts +1709 -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 +19 -0
- package/src/controls/Control.ts +377 -0
- package/src/controls/changeWidth.ts +52 -0
- package/src/controls/controls.render.ts +138 -0
- package/src/controls/default_controls.ts +132 -0
- package/src/controls/drag.ts +31 -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 +28 -0
- package/src/env/index.ts +19 -0
- package/src/env/node.ts +52 -0
- package/src/env/types.ts +15 -0
- package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
- package/src/filters/BlendColor.ts +258 -0
- package/src/filters/BlendImage.ts +254 -0
- package/src/filters/Blur.ts +202 -0
- package/src/filters/Boilerplate.ts +91 -0
- package/src/filters/Brightness.ts +93 -0
- package/src/filters/Canvas2dFilterBackend.ts +65 -0
- package/src/filters/ColorMatrix.ts +156 -0
- package/src/filters/ColorMatrixFilters.ts +106 -0
- package/src/filters/Composed.ts +85 -0
- package/src/filters/Contrast.ts +94 -0
- package/src/filters/Convolute.ts +341 -0
- package/src/filters/FilterBackend.ts +32 -0
- package/src/filters/Gamma.ts +127 -0
- package/src/filters/Grayscale.ts +137 -0
- package/src/filters/HueRotation.ts +66 -0
- package/src/filters/Invert.ts +117 -0
- package/src/filters/Noise.ts +109 -0
- package/src/filters/Pixelate.ts +114 -0
- package/src/filters/RemoveColor.ts +148 -0
- package/src/filters/Resize.ts +540 -0
- package/src/filters/Saturation.ts +100 -0
- package/src/filters/Vibrance.ts +103 -0
- package/src/filters/WebGLFilterBackend.ts +430 -0
- package/src/filters/WebGLProbe.ts +62 -0
- package/src/filters/typedefs.ts +65 -0
- package/src/gradient/Gradient.ts +401 -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 +55 -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/mixins/stateful.mixin.ts +104 -0
- package/src/parkinglot/canvas_animation.mixin.ts +121 -0
- package/src/parkinglot/straighten.ts +58 -0
- package/src/parser/applyViewboxTransform.ts +162 -0
- package/src/parser/attributes.ts +25 -0
- package/src/parser/constants.ts +118 -0
- package/src/parser/doesSomeParentMatch.ts +19 -0
- package/src/parser/elementById.ts +23 -0
- package/src/parser/elementMatchesRule.ts +19 -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 +32 -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/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 +36 -0
- package/src/parser/parseSVGDocument.ts +106 -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 +79 -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 +157 -0
- package/src/shapes/Circle.ts +205 -0
- package/src/shapes/Ellipse.ts +154 -0
- package/src/shapes/Group.ts +1053 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
- package/src/shapes/IText/IText.ts +666 -0
- package/src/shapes/IText/ITextBehavior.ts +1055 -0
- package/src/shapes/IText/ITextClickBehavior.ts +321 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
- package/src/shapes/IText/constants.ts +47 -0
- package/src/shapes/Image.ts +789 -0
- package/src/shapes/Line.ts +329 -0
- package/src/shapes/Object/AnimatableObject.ts +106 -0
- package/src/shapes/Object/FabricObject.ts +19 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
- package/src/shapes/Object/InteractiveObject.ts +645 -0
- package/src/shapes/Object/Object.ts +1896 -0
- package/src/shapes/Object/ObjectGeometry.ts +830 -0
- package/src/shapes/Object/ObjectOrigin.ts +354 -0
- package/src/shapes/Object/StackedObject.ts +191 -0
- package/src/shapes/Object/defaultValues.ts +112 -0
- package/src/shapes/Path.ts +395 -0
- package/src/shapes/Polygon.ts +19 -0
- package/src/shapes/Polyline.ts +333 -0
- package/src/shapes/Rect.ts +199 -0
- package/src/shapes/Text/StyledText.ts +319 -0
- package/src/shapes/Text/Text.ts +1948 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
- package/src/shapes/Textbox.ts +471 -0
- package/src/shapes/Triangle.ts +45 -0
- package/src/typedefs.ts +119 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +28 -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/class_registry.ts +54 -0
- package/src/util/dom_event.ts +28 -0
- package/src/util/dom_misc.ts +138 -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/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_class.ts +90 -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 +51 -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 +17 -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 +231 -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 +133 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.ts +82 -0
- package/src/util/path.ts +941 -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,906 @@
|
|
|
1
|
+
import { ObjectEvents } from '../../EventTypeDefs';
|
|
2
|
+
import { AnimatableObject } from './AnimatableObject';
|
|
3
|
+
import { Point } from '../../Point';
|
|
4
|
+
import { Shadow } from '../../Shadow';
|
|
5
|
+
import type { TClassProperties, TDegree, TFiller, TSize, TCacheCanvasDimensions } from '../../typedefs';
|
|
6
|
+
import type { Group } from '../Group';
|
|
7
|
+
import type { Image } from '../Image';
|
|
8
|
+
export type TCachedFabricObject = FabricObject & Required<Pick<FabricObject, 'zoomX' | 'zoomY' | '_cacheCanvas' | '_cacheContext' | 'cacheTranslationX' | 'cacheTranslationY'>> & {
|
|
9
|
+
_cacheContext: CanvasRenderingContext2D;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Root object class from which all 2d shape classes inherit from
|
|
13
|
+
* @tutorial {@link http://fabricjs.com/fabric-intro-part-1#objects}
|
|
14
|
+
*
|
|
15
|
+
* @fires added
|
|
16
|
+
* @fires removed
|
|
17
|
+
*
|
|
18
|
+
* @fires selected
|
|
19
|
+
* @fires deselected
|
|
20
|
+
*
|
|
21
|
+
* @fires rotating
|
|
22
|
+
* @fires scaling
|
|
23
|
+
* @fires moving
|
|
24
|
+
* @fires skewing
|
|
25
|
+
* @fires modified
|
|
26
|
+
*
|
|
27
|
+
* @fires mousedown
|
|
28
|
+
* @fires mouseup
|
|
29
|
+
* @fires mouseover
|
|
30
|
+
* @fires mouseout
|
|
31
|
+
* @fires mousewheel
|
|
32
|
+
* @fires mousedblclick
|
|
33
|
+
*
|
|
34
|
+
* @fires dragover
|
|
35
|
+
* @fires dragenter
|
|
36
|
+
* @fires dragleave
|
|
37
|
+
* @fires drop
|
|
38
|
+
*/
|
|
39
|
+
export declare class FabricObject<EventSpec extends ObjectEvents = ObjectEvents> extends AnimatableObject<EventSpec> {
|
|
40
|
+
type: string;
|
|
41
|
+
/**
|
|
42
|
+
* Opacity of an object
|
|
43
|
+
* @type Number
|
|
44
|
+
* @default 1
|
|
45
|
+
*/
|
|
46
|
+
opacity: number;
|
|
47
|
+
/**
|
|
48
|
+
* Size of object's controlling corners (in pixels)
|
|
49
|
+
* @type Number
|
|
50
|
+
* @default 13
|
|
51
|
+
*/
|
|
52
|
+
cornerSize: number;
|
|
53
|
+
/**
|
|
54
|
+
* Size of object's controlling corners when touch interaction is detected
|
|
55
|
+
* @type Number
|
|
56
|
+
* @default 24
|
|
57
|
+
*/
|
|
58
|
+
touchCornerSize: number;
|
|
59
|
+
/**
|
|
60
|
+
* When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)
|
|
61
|
+
* @type Boolean
|
|
62
|
+
* @default true
|
|
63
|
+
*/
|
|
64
|
+
transparentCorners: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Default cursor value used when hovering over this object on canvas
|
|
67
|
+
* @type CSSStyleDeclaration['cursor'] | null
|
|
68
|
+
* @default null
|
|
69
|
+
*/
|
|
70
|
+
hoverCursor: CSSStyleDeclaration['cursor'] | null;
|
|
71
|
+
/**
|
|
72
|
+
* Default cursor value used when moving this object on canvas
|
|
73
|
+
* @type CSSStyleDeclaration['cursor'] | null
|
|
74
|
+
* @default null
|
|
75
|
+
*/
|
|
76
|
+
moveCursor: CSSStyleDeclaration['cursor'] | null;
|
|
77
|
+
/**
|
|
78
|
+
* Color of controlling borders of an object (when it's active)
|
|
79
|
+
* @type String
|
|
80
|
+
* @default rgb(178,204,255)
|
|
81
|
+
*/
|
|
82
|
+
borderColor: string;
|
|
83
|
+
/**
|
|
84
|
+
* Array specifying dash pattern of an object's borders (hasBorder must be true)
|
|
85
|
+
* @since 1.6.2
|
|
86
|
+
* @type Array | null
|
|
87
|
+
* default null;
|
|
88
|
+
*/
|
|
89
|
+
borderDashArray: number[] | null;
|
|
90
|
+
/**
|
|
91
|
+
* Color of controlling corners of an object (when it's active)
|
|
92
|
+
* @type String
|
|
93
|
+
* @default rgb(178,204,255)
|
|
94
|
+
*/
|
|
95
|
+
cornerColor: string;
|
|
96
|
+
/**
|
|
97
|
+
* Color of controlling corners of an object (when it's active and transparentCorners false)
|
|
98
|
+
* @since 1.6.2
|
|
99
|
+
* @type String
|
|
100
|
+
* @default null
|
|
101
|
+
*/
|
|
102
|
+
cornerStrokeColor: string;
|
|
103
|
+
/**
|
|
104
|
+
* Specify style of control, 'rect' or 'circle'
|
|
105
|
+
* This is deprecated. In the futuer there will be a standard control render
|
|
106
|
+
* And you can swap it with one of the alternative proposed with the control api
|
|
107
|
+
* @since 1.6.2
|
|
108
|
+
* @type 'rect' | 'circle'
|
|
109
|
+
* @default rect
|
|
110
|
+
* @deprecated
|
|
111
|
+
*/
|
|
112
|
+
cornerStyle: 'rect' | 'circle';
|
|
113
|
+
/**
|
|
114
|
+
* Array specifying dash pattern of an object's control (hasBorder must be true)
|
|
115
|
+
* @since 1.6.2
|
|
116
|
+
* @type Array | null
|
|
117
|
+
*/
|
|
118
|
+
cornerDashArray: number[] | null;
|
|
119
|
+
/**
|
|
120
|
+
* When true, this object will use center point as the origin of transformation
|
|
121
|
+
* when being scaled via the controls.
|
|
122
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
123
|
+
* @since 1.3.4
|
|
124
|
+
* @type Boolean
|
|
125
|
+
* @default
|
|
126
|
+
*/
|
|
127
|
+
centeredScaling: false;
|
|
128
|
+
/**
|
|
129
|
+
* When true, this object will use center point as the origin of transformation
|
|
130
|
+
* when being rotated via the controls.
|
|
131
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
132
|
+
* @since 1.3.4
|
|
133
|
+
* @type Boolean
|
|
134
|
+
* @default
|
|
135
|
+
*/
|
|
136
|
+
centeredRotation: true;
|
|
137
|
+
/**
|
|
138
|
+
* When defined, an object is rendered via stroke and this property specifies its color
|
|
139
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
140
|
+
* @type String
|
|
141
|
+
* @default null
|
|
142
|
+
*/
|
|
143
|
+
stroke: string | TFiller | null;
|
|
144
|
+
/**
|
|
145
|
+
* Color of object's fill
|
|
146
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
147
|
+
* @type String
|
|
148
|
+
* @default rgb(0,0,0)
|
|
149
|
+
*/
|
|
150
|
+
fill: string | TFiller | null;
|
|
151
|
+
/**
|
|
152
|
+
* Fill rule used to fill an object
|
|
153
|
+
* accepted values are nonzero, evenodd
|
|
154
|
+
* <b>Backwards incompatibility note:</b> This property was used for setting globalCompositeOperation until v1.4.12 (use `globalCompositeOperation` instead)
|
|
155
|
+
* @type String
|
|
156
|
+
* @default nonzero
|
|
157
|
+
*/
|
|
158
|
+
fillRule: CanvasFillRule;
|
|
159
|
+
/**
|
|
160
|
+
* Composite rule used for canvas globalCompositeOperation
|
|
161
|
+
* @type String
|
|
162
|
+
* @default
|
|
163
|
+
*/
|
|
164
|
+
globalCompositeOperation: GlobalCompositeOperation;
|
|
165
|
+
/**
|
|
166
|
+
* Background color of an object.
|
|
167
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
168
|
+
* @type String
|
|
169
|
+
* @default
|
|
170
|
+
*/
|
|
171
|
+
backgroundColor: string;
|
|
172
|
+
/**
|
|
173
|
+
* Selection Background color of an object. colored layer behind the object when it is active.
|
|
174
|
+
* does not mix good with globalCompositeOperation methods.
|
|
175
|
+
* @type String
|
|
176
|
+
* @deprecated
|
|
177
|
+
* @default
|
|
178
|
+
*/
|
|
179
|
+
selectionBackgroundColor: string;
|
|
180
|
+
/**
|
|
181
|
+
* Array specifying dash pattern of an object's stroke (stroke must be defined)
|
|
182
|
+
* @type Array
|
|
183
|
+
* @default null;
|
|
184
|
+
*/
|
|
185
|
+
strokeDashArray: number[] | null;
|
|
186
|
+
/**
|
|
187
|
+
* Line offset of an object's stroke
|
|
188
|
+
* @type Number
|
|
189
|
+
* @default 0
|
|
190
|
+
*/
|
|
191
|
+
strokeDashOffset: number;
|
|
192
|
+
/**
|
|
193
|
+
* Line endings style of an object's stroke (one of "butt", "round", "square")
|
|
194
|
+
* @type String
|
|
195
|
+
* @default butt
|
|
196
|
+
*/
|
|
197
|
+
strokeLineCap: CanvasLineCap;
|
|
198
|
+
/**
|
|
199
|
+
* Corner style of an object's stroke (one of "bevel", "round", "miter")
|
|
200
|
+
* @type String
|
|
201
|
+
* @default
|
|
202
|
+
*/
|
|
203
|
+
strokeLineJoin: CanvasLineJoin;
|
|
204
|
+
/**
|
|
205
|
+
* Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke
|
|
206
|
+
* @type Number
|
|
207
|
+
* @default 4
|
|
208
|
+
*/
|
|
209
|
+
strokeMiterLimit: number;
|
|
210
|
+
/**
|
|
211
|
+
* Shadow object representing shadow of this shape
|
|
212
|
+
* @type Shadow
|
|
213
|
+
* @default null
|
|
214
|
+
*/
|
|
215
|
+
shadow: Shadow | null;
|
|
216
|
+
/**
|
|
217
|
+
* Opacity of object's controlling borders when object is active and moving
|
|
218
|
+
* @type Number
|
|
219
|
+
* @default 0.4
|
|
220
|
+
*/
|
|
221
|
+
borderOpacityWhenMoving: number;
|
|
222
|
+
/**
|
|
223
|
+
* Scale factor of object's controlling borders
|
|
224
|
+
* bigger number will make a thicker border
|
|
225
|
+
* border is 1, so this is basically a border thickness
|
|
226
|
+
* since there is no way to change the border itself.
|
|
227
|
+
* @type Number
|
|
228
|
+
* @default 1
|
|
229
|
+
*/
|
|
230
|
+
borderScaleFactor: number;
|
|
231
|
+
/**
|
|
232
|
+
* Minimum allowed scale value of an object
|
|
233
|
+
* @type Number
|
|
234
|
+
* @default 0
|
|
235
|
+
*/
|
|
236
|
+
minScaleLimit: number;
|
|
237
|
+
/**
|
|
238
|
+
* When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).
|
|
239
|
+
* But events still fire on it.
|
|
240
|
+
* @type Boolean
|
|
241
|
+
* @default
|
|
242
|
+
*/
|
|
243
|
+
selectable: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4
|
|
246
|
+
* @type Boolean
|
|
247
|
+
* @default
|
|
248
|
+
*/
|
|
249
|
+
evented: boolean;
|
|
250
|
+
/**
|
|
251
|
+
* When set to `false`, an object is not rendered on canvas
|
|
252
|
+
* @type Boolean
|
|
253
|
+
* @default
|
|
254
|
+
*/
|
|
255
|
+
visible: boolean;
|
|
256
|
+
/**
|
|
257
|
+
* When set to `false`, object's controls are not displayed and can not be used to manipulate object
|
|
258
|
+
* @type Boolean
|
|
259
|
+
* @default
|
|
260
|
+
*/
|
|
261
|
+
hasControls: boolean;
|
|
262
|
+
/**
|
|
263
|
+
* When set to `false`, object's controlling borders are not rendered
|
|
264
|
+
* @type Boolean
|
|
265
|
+
* @default
|
|
266
|
+
*/
|
|
267
|
+
hasBorders: boolean;
|
|
268
|
+
/**
|
|
269
|
+
* When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box
|
|
270
|
+
* @type Boolean
|
|
271
|
+
* @default
|
|
272
|
+
*/
|
|
273
|
+
perPixelTargetFind: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* When `false`, default object's values are not included in its serialization
|
|
276
|
+
* @type Boolean
|
|
277
|
+
* @default
|
|
278
|
+
*/
|
|
279
|
+
includeDefaultValues: boolean;
|
|
280
|
+
/**
|
|
281
|
+
* When `true`, object horizontal movement is locked
|
|
282
|
+
* @type Boolean
|
|
283
|
+
* @default
|
|
284
|
+
*/
|
|
285
|
+
lockMovementX: boolean;
|
|
286
|
+
/**
|
|
287
|
+
* When `true`, object vertical movement is locked
|
|
288
|
+
* @type Boolean
|
|
289
|
+
* @default
|
|
290
|
+
*/
|
|
291
|
+
lockMovementY: boolean;
|
|
292
|
+
/**
|
|
293
|
+
* When `true`, object rotation is locked
|
|
294
|
+
* @type Boolean
|
|
295
|
+
* @default
|
|
296
|
+
*/
|
|
297
|
+
lockRotation: boolean;
|
|
298
|
+
/**
|
|
299
|
+
* When `true`, object horizontal scaling is locked
|
|
300
|
+
* @type Boolean
|
|
301
|
+
* @default
|
|
302
|
+
*/
|
|
303
|
+
lockScalingX: boolean;
|
|
304
|
+
/**
|
|
305
|
+
* When `true`, object vertical scaling is locked
|
|
306
|
+
* @type Boolean
|
|
307
|
+
* @default
|
|
308
|
+
*/
|
|
309
|
+
lockScalingY: boolean;
|
|
310
|
+
/**
|
|
311
|
+
* When `true`, object horizontal skewing is locked
|
|
312
|
+
* @type Boolean
|
|
313
|
+
* @default
|
|
314
|
+
*/
|
|
315
|
+
lockSkewingX: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* When `true`, object vertical skewing is locked
|
|
318
|
+
* @type Boolean
|
|
319
|
+
* @default
|
|
320
|
+
*/
|
|
321
|
+
lockSkewingY: boolean;
|
|
322
|
+
/**
|
|
323
|
+
* When `true`, object cannot be flipped by scaling into negative values
|
|
324
|
+
* @type Boolean
|
|
325
|
+
* @default
|
|
326
|
+
*/
|
|
327
|
+
lockScalingFlip: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* When `true`, object is not exported in OBJECT/JSON
|
|
330
|
+
* @since 1.6.3
|
|
331
|
+
* @type Boolean
|
|
332
|
+
* @default
|
|
333
|
+
*/
|
|
334
|
+
excludeFromExport: boolean;
|
|
335
|
+
/**
|
|
336
|
+
* When `true`, object is cached on an additional canvas.
|
|
337
|
+
* When `false`, object is not cached unless necessary ( clipPath )
|
|
338
|
+
* default to true
|
|
339
|
+
* @since 1.7.0
|
|
340
|
+
* @type Boolean
|
|
341
|
+
* @default true
|
|
342
|
+
*/
|
|
343
|
+
objectCaching: boolean;
|
|
344
|
+
/**
|
|
345
|
+
* When set to `true`, object's cache will be rerendered next render call.
|
|
346
|
+
* since 1.7.0
|
|
347
|
+
* @type Boolean
|
|
348
|
+
* @default true
|
|
349
|
+
*/
|
|
350
|
+
dirty: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* Determines if the fill or the stroke is drawn first (one of "fill" or "stroke")
|
|
353
|
+
* @type String
|
|
354
|
+
* @default
|
|
355
|
+
*/
|
|
356
|
+
paintFirst: 'fill' | 'stroke';
|
|
357
|
+
/**
|
|
358
|
+
* When 'down', object is set to active on mousedown/touchstart
|
|
359
|
+
* When 'up', object is set to active on mouseup/touchend
|
|
360
|
+
* Experimental. Let's see if this breaks anything before supporting officially
|
|
361
|
+
* @private
|
|
362
|
+
* since 4.4.0
|
|
363
|
+
* @type String
|
|
364
|
+
* @default 'down'
|
|
365
|
+
*/
|
|
366
|
+
activeOn: 'down' | 'up';
|
|
367
|
+
/**
|
|
368
|
+
* This list of properties is used to check if the state of an object is changed.
|
|
369
|
+
* This state change now is only used for children of groups to understand if a group
|
|
370
|
+
* needs its cache regenerated during a .set call
|
|
371
|
+
* @type Array
|
|
372
|
+
*/
|
|
373
|
+
stateProperties: string[];
|
|
374
|
+
/**
|
|
375
|
+
* List of properties to consider when checking if cache needs refresh
|
|
376
|
+
* Those properties are checked by
|
|
377
|
+
* calls to Object.set(key, value). If the key is in this list, the object is marked as dirty
|
|
378
|
+
* and refreshed at the next render
|
|
379
|
+
* @type Array
|
|
380
|
+
*/
|
|
381
|
+
cacheProperties: string[];
|
|
382
|
+
/**
|
|
383
|
+
* a fabricObject that, without stroke define a clipping area with their shape. filled in black
|
|
384
|
+
* the clipPath object gets used when the object has rendered, and the context is placed in the center
|
|
385
|
+
* of the object cacheCanvas.
|
|
386
|
+
* If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'
|
|
387
|
+
* @type FabricObject
|
|
388
|
+
*/
|
|
389
|
+
clipPath?: FabricObject;
|
|
390
|
+
/**
|
|
391
|
+
* Meaningful ONLY when the object is used as clipPath.
|
|
392
|
+
* if true, the clipPath will make the object clip to the outside of the clipPath
|
|
393
|
+
* since 2.4.0
|
|
394
|
+
* @type boolean
|
|
395
|
+
* @default false
|
|
396
|
+
*/
|
|
397
|
+
inverted: boolean;
|
|
398
|
+
/**
|
|
399
|
+
* Meaningful ONLY when the object is used as clipPath.
|
|
400
|
+
* if true, the clipPath will have its top and left relative to canvas, and will
|
|
401
|
+
* not be influenced by the object transform. This will make the clipPath relative
|
|
402
|
+
* to the canvas, but clipping just a particular object.
|
|
403
|
+
* WARNING this is beta, this feature may change or be renamed.
|
|
404
|
+
* since 2.4.0
|
|
405
|
+
* @type boolean
|
|
406
|
+
* @default false
|
|
407
|
+
*/
|
|
408
|
+
absolutePositioned: boolean;
|
|
409
|
+
/**
|
|
410
|
+
* Quick access for the _cacheCanvas rendering context
|
|
411
|
+
* This is part of the objectCaching feature
|
|
412
|
+
* since 1.7.0
|
|
413
|
+
* @type boolean
|
|
414
|
+
* @default undefined
|
|
415
|
+
* @private
|
|
416
|
+
*/
|
|
417
|
+
_cacheContext: CanvasRenderingContext2D | null;
|
|
418
|
+
/**
|
|
419
|
+
* A reference to the HTMLCanvasElement that is used to contain the cache of the object
|
|
420
|
+
* this canvas element is resized and cleared as needed
|
|
421
|
+
* Is marked private, you can read it, don't use it since it is handled by fabric
|
|
422
|
+
* since 1.7.0
|
|
423
|
+
* @type HTMLCanvasElement
|
|
424
|
+
* @default undefined
|
|
425
|
+
* @private
|
|
426
|
+
*/
|
|
427
|
+
_cacheCanvas?: HTMLCanvasElement;
|
|
428
|
+
/**
|
|
429
|
+
* Size of the cache canvas, width
|
|
430
|
+
* since 1.7.0
|
|
431
|
+
* @type number
|
|
432
|
+
* @default undefined
|
|
433
|
+
* @private
|
|
434
|
+
*/
|
|
435
|
+
cacheWidth?: number;
|
|
436
|
+
/**
|
|
437
|
+
* Size of the cache canvas, height
|
|
438
|
+
* since 1.7.0
|
|
439
|
+
* @type number
|
|
440
|
+
* @default undefined
|
|
441
|
+
* @private
|
|
442
|
+
*/
|
|
443
|
+
cacheHeight?: number;
|
|
444
|
+
/**
|
|
445
|
+
* zoom level used on the cacheCanvas to draw the cache, X axe
|
|
446
|
+
* since 1.7.0
|
|
447
|
+
* @type number
|
|
448
|
+
* @default undefined
|
|
449
|
+
* @private
|
|
450
|
+
*/
|
|
451
|
+
zoomX?: number;
|
|
452
|
+
/**
|
|
453
|
+
* zoom level used on the cacheCanvas to draw the cache, Y axe
|
|
454
|
+
* since 1.7.0
|
|
455
|
+
* @type number
|
|
456
|
+
* @default undefined
|
|
457
|
+
* @private
|
|
458
|
+
*/
|
|
459
|
+
zoomY?: number;
|
|
460
|
+
/**
|
|
461
|
+
* zoom level used on the cacheCanvas to draw the cache, Y axe
|
|
462
|
+
* since 1.7.0
|
|
463
|
+
* @type number
|
|
464
|
+
* @default undefined
|
|
465
|
+
* @private
|
|
466
|
+
*/
|
|
467
|
+
cacheTranslationX?: number;
|
|
468
|
+
/**
|
|
469
|
+
* translation of the cacheCanvas away from the center, for subpixel accuracy and crispness
|
|
470
|
+
* since 1.7.0
|
|
471
|
+
* @type number
|
|
472
|
+
* @default undefined
|
|
473
|
+
* @private
|
|
474
|
+
*/
|
|
475
|
+
cacheTranslationY?: number;
|
|
476
|
+
/**
|
|
477
|
+
* A reference to the parent of the object, usually a Group
|
|
478
|
+
* @type number
|
|
479
|
+
* @default undefined
|
|
480
|
+
* @private
|
|
481
|
+
*/
|
|
482
|
+
group?: Group;
|
|
483
|
+
/**
|
|
484
|
+
* A reference to the parent of the object
|
|
485
|
+
* Used to keep the original parent ref when the object has been added to an ActiveSelection, hence loosing the `group` ref
|
|
486
|
+
*/
|
|
487
|
+
__owningGroup?: Group;
|
|
488
|
+
/**
|
|
489
|
+
* Indicate if the object is sitting on a cache dedicated to it
|
|
490
|
+
* or is part of a larger cache for many object ( a group for example)
|
|
491
|
+
* @type number
|
|
492
|
+
* @default undefined
|
|
493
|
+
* @private
|
|
494
|
+
*/
|
|
495
|
+
ownCaching?: boolean;
|
|
496
|
+
/**
|
|
497
|
+
* Private. indicates if the object inside a group is on a transformed context or not
|
|
498
|
+
* or is part of a larger cache for many object ( a group for example)
|
|
499
|
+
* @type boolean
|
|
500
|
+
* @default undefined
|
|
501
|
+
* @private
|
|
502
|
+
*/
|
|
503
|
+
_transformDone?: boolean;
|
|
504
|
+
/**
|
|
505
|
+
* Constructor
|
|
506
|
+
* @param {Object} [options] Options object
|
|
507
|
+
*/
|
|
508
|
+
constructor(options?: Partial<TClassProperties<FabricObject>>);
|
|
509
|
+
/**
|
|
510
|
+
* Create a the canvas used to keep the cached copy of the object
|
|
511
|
+
* @private
|
|
512
|
+
*/
|
|
513
|
+
_createCacheCanvas(): void;
|
|
514
|
+
/**
|
|
515
|
+
* Limit the cache dimensions so that X * Y do not cross config.perfLimitSizeTotal
|
|
516
|
+
* and each side do not cross fabric.cacheSideLimit
|
|
517
|
+
* those numbers are configurable so that you can get as much detail as you want
|
|
518
|
+
* making bargain with performances.
|
|
519
|
+
* @param {Object} dims
|
|
520
|
+
* @param {Object} dims.width width of canvas
|
|
521
|
+
* @param {Object} dims.height height of canvas
|
|
522
|
+
* @param {Object} dims.zoomX zoomX zoom value to unscale the canvas before drawing cache
|
|
523
|
+
* @param {Object} dims.zoomY zoomY zoom value to unscale the canvas before drawing cache
|
|
524
|
+
* @return {Object}.width width of canvas
|
|
525
|
+
* @return {Object}.height height of canvas
|
|
526
|
+
* @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
|
|
527
|
+
* @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
|
|
528
|
+
*/
|
|
529
|
+
_limitCacheSize(dims: TSize & {
|
|
530
|
+
zoomX: number;
|
|
531
|
+
zoomY: number;
|
|
532
|
+
capped: boolean;
|
|
533
|
+
} & any): any;
|
|
534
|
+
/**
|
|
535
|
+
* Return the dimension and the zoom level needed to create a cache canvas
|
|
536
|
+
* big enough to host the object to be cached.
|
|
537
|
+
* @private
|
|
538
|
+
* @return {Object}.x width of object to be cached
|
|
539
|
+
* @return {Object}.y height of object to be cached
|
|
540
|
+
* @return {Object}.width width of canvas
|
|
541
|
+
* @return {Object}.height height of canvas
|
|
542
|
+
* @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
|
|
543
|
+
* @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
|
|
544
|
+
*/
|
|
545
|
+
_getCacheCanvasDimensions(): TCacheCanvasDimensions;
|
|
546
|
+
/**
|
|
547
|
+
* Update width and height of the canvas for cache
|
|
548
|
+
* returns true or false if canvas needed resize.
|
|
549
|
+
* @private
|
|
550
|
+
* @return {Boolean} true if the canvas has been resized
|
|
551
|
+
*/
|
|
552
|
+
_updateCacheCanvas(): boolean;
|
|
553
|
+
/**
|
|
554
|
+
* Sets object's properties from options, for class constructor only.
|
|
555
|
+
* Needs to be overridden for different defaults.
|
|
556
|
+
* @protected
|
|
557
|
+
* @param {Object} [options] Options object
|
|
558
|
+
*/
|
|
559
|
+
protected setOptions(options?: Record<string, any>): void;
|
|
560
|
+
/**
|
|
561
|
+
* Transforms context when rendering an object
|
|
562
|
+
* @param {CanvasRenderingContext2D} ctx Context
|
|
563
|
+
*/
|
|
564
|
+
transform(ctx: CanvasRenderingContext2D): void;
|
|
565
|
+
/**
|
|
566
|
+
* Returns an object representation of an instance
|
|
567
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
568
|
+
* @return {Object} Object representation of an instance
|
|
569
|
+
*/
|
|
570
|
+
toObject(propertiesToInclude?: string[]): Record<string, any>;
|
|
571
|
+
/**
|
|
572
|
+
* Returns (dataless) object representation of an instance
|
|
573
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
574
|
+
* @return {Object} Object representation of an instance
|
|
575
|
+
*/
|
|
576
|
+
toDatalessObject(propertiesToInclude?: string[]): Record<string, any>;
|
|
577
|
+
/**
|
|
578
|
+
* @private
|
|
579
|
+
* @param {Object} object
|
|
580
|
+
*/
|
|
581
|
+
_removeDefaultValues(object: Record<string, any>): Record<string, any>;
|
|
582
|
+
/**
|
|
583
|
+
* Returns a string representation of an instance
|
|
584
|
+
* @return {String}
|
|
585
|
+
*/
|
|
586
|
+
toString(): string;
|
|
587
|
+
/**
|
|
588
|
+
* Return the object scale factor counting also the group scaling
|
|
589
|
+
* @return {Point}
|
|
590
|
+
*/
|
|
591
|
+
getObjectScaling(): Point;
|
|
592
|
+
/**
|
|
593
|
+
* Return the object scale factor counting also the group scaling, zoom and retina
|
|
594
|
+
* @return {Object} object with scaleX and scaleY properties
|
|
595
|
+
*/
|
|
596
|
+
getTotalObjectScaling(): Point;
|
|
597
|
+
/**
|
|
598
|
+
* Return the object opacity counting also the group property
|
|
599
|
+
* @return {Number}
|
|
600
|
+
*/
|
|
601
|
+
getObjectOpacity(): number;
|
|
602
|
+
/**
|
|
603
|
+
* Makes sure the scale is valid and modifies it if necessary
|
|
604
|
+
* @todo: this is a control action issue, not a geometry one
|
|
605
|
+
* @private
|
|
606
|
+
* @param {Number} value, unconstrained
|
|
607
|
+
* @return {Number} constrained value;
|
|
608
|
+
*/
|
|
609
|
+
_constrainScale(value: number): number;
|
|
610
|
+
/**
|
|
611
|
+
* @private
|
|
612
|
+
* @param {String} key
|
|
613
|
+
* @param {*} value
|
|
614
|
+
*/
|
|
615
|
+
_set(key: string, value: any): this;
|
|
616
|
+
isNotVisible(): boolean;
|
|
617
|
+
/**
|
|
618
|
+
* Renders an object on a specified context
|
|
619
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
620
|
+
*/
|
|
621
|
+
render(ctx: CanvasRenderingContext2D): void;
|
|
622
|
+
drawSelectionBackground(ctx: CanvasRenderingContext2D): void;
|
|
623
|
+
renderCache(options?: any): void;
|
|
624
|
+
/**
|
|
625
|
+
* Remove cacheCanvas and its dimensions from the objects
|
|
626
|
+
*/
|
|
627
|
+
_removeCacheCanvas(): void;
|
|
628
|
+
/**
|
|
629
|
+
* return true if the object will draw a stroke
|
|
630
|
+
* Does not consider text styles. This is just a shortcut used at rendering time
|
|
631
|
+
* We want it to be an approximation and be fast.
|
|
632
|
+
* wrote to avoid extra caching, it has to return true when stroke happens,
|
|
633
|
+
* can guess when it will not happen at 100% chance, does not matter if it misses
|
|
634
|
+
* some use case where the stroke is invisible.
|
|
635
|
+
* @since 3.0.0
|
|
636
|
+
* @returns Boolean
|
|
637
|
+
*/
|
|
638
|
+
hasStroke(): boolean | "" | null;
|
|
639
|
+
/**
|
|
640
|
+
* return true if the object will draw a fill
|
|
641
|
+
* Does not consider text styles. This is just a shortcut used at rendering time
|
|
642
|
+
* We want it to be an approximation and be fast.
|
|
643
|
+
* wrote to avoid extra caching, it has to return true when fill happens,
|
|
644
|
+
* can guess when it will not happen at 100% chance, does not matter if it misses
|
|
645
|
+
* some use case where the fill is invisible.
|
|
646
|
+
* @since 3.0.0
|
|
647
|
+
* @returns Boolean
|
|
648
|
+
*/
|
|
649
|
+
hasFill(): boolean | "" | null;
|
|
650
|
+
/**
|
|
651
|
+
* When set to `true`, force the object to have its own cache, even if it is inside a group
|
|
652
|
+
* it may be needed when your object behave in a particular way on the cache and always needs
|
|
653
|
+
* its own isolated canvas to render correctly.
|
|
654
|
+
* Created to be overridden
|
|
655
|
+
* since 1.7.12
|
|
656
|
+
* @returns Boolean
|
|
657
|
+
*/
|
|
658
|
+
needsItsOwnCache(): boolean;
|
|
659
|
+
/**
|
|
660
|
+
* Decide if the object should cache or not. Create its own cache level
|
|
661
|
+
* objectCaching is a global flag, wins over everything
|
|
662
|
+
* needsItsOwnCache should be used when the object drawing method requires
|
|
663
|
+
* a cache step. None of the fabric classes requires it.
|
|
664
|
+
* Generally you do not cache objects in groups because the group outside is cached.
|
|
665
|
+
* Read as: cache if is needed, or if the feature is enabled but we are not already caching.
|
|
666
|
+
* @return {Boolean}
|
|
667
|
+
*/
|
|
668
|
+
shouldCache(): boolean;
|
|
669
|
+
/**
|
|
670
|
+
* Check if this object or a child object will cast a shadow
|
|
671
|
+
* used by Group.shouldCache to know if child has a shadow recursively
|
|
672
|
+
* @return {Boolean}
|
|
673
|
+
* @deprecated
|
|
674
|
+
*/
|
|
675
|
+
willDrawShadow(): boolean;
|
|
676
|
+
/**
|
|
677
|
+
* Execute the drawing operation for an object clipPath
|
|
678
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
679
|
+
* @param {FabricObject} clipPath
|
|
680
|
+
*/
|
|
681
|
+
drawClipPathOnCache(ctx: CanvasRenderingContext2D, clipPath: TCachedFabricObject): void;
|
|
682
|
+
/**
|
|
683
|
+
* Execute the drawing operation for an object on a specified context
|
|
684
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
685
|
+
* @param {boolean} forClipping apply clipping styles
|
|
686
|
+
*/
|
|
687
|
+
drawObject(ctx: CanvasRenderingContext2D, forClipping?: boolean): void;
|
|
688
|
+
/**
|
|
689
|
+
* Prepare clipPath state and cache and draw it on instance's cache
|
|
690
|
+
* @param {CanvasRenderingContext2D} ctx
|
|
691
|
+
* @param {FabricObject} clipPath
|
|
692
|
+
*/
|
|
693
|
+
_drawClipPath(ctx: CanvasRenderingContext2D, clipPath?: FabricObject): void;
|
|
694
|
+
/**
|
|
695
|
+
* Paint the cached copy of the object on the target context.
|
|
696
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
697
|
+
*/
|
|
698
|
+
drawCacheOnCanvas(this: TCachedFabricObject, ctx: CanvasRenderingContext2D): void;
|
|
699
|
+
/**
|
|
700
|
+
* Check if cache is dirty
|
|
701
|
+
* @param {Boolean} skipCanvas skip canvas checks because this object is painted
|
|
702
|
+
* on parent canvas.
|
|
703
|
+
*/
|
|
704
|
+
isCacheDirty(skipCanvas?: boolean): boolean;
|
|
705
|
+
/**
|
|
706
|
+
* Draws a background for the object big as its untransformed dimensions
|
|
707
|
+
* @private
|
|
708
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
709
|
+
*/
|
|
710
|
+
_renderBackground(ctx: CanvasRenderingContext2D): void;
|
|
711
|
+
/**
|
|
712
|
+
* @private
|
|
713
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
714
|
+
*/
|
|
715
|
+
_setOpacity(ctx: CanvasRenderingContext2D): void;
|
|
716
|
+
_setStrokeStyles(ctx: CanvasRenderingContext2D, decl: Pick<this, 'stroke' | 'strokeWidth' | 'strokeLineCap' | 'strokeDashOffset' | 'strokeLineJoin' | 'strokeMiterLimit'>): void;
|
|
717
|
+
_setFillStyles(ctx: CanvasRenderingContext2D, { fill }: Pick<this, 'fill'>): void;
|
|
718
|
+
_setClippingProperties(ctx: CanvasRenderingContext2D): void;
|
|
719
|
+
/**
|
|
720
|
+
* @private
|
|
721
|
+
* Sets line dash
|
|
722
|
+
* @param {CanvasRenderingContext2D} ctx Context to set the dash line on
|
|
723
|
+
* @param {Array} dashArray array representing dashes
|
|
724
|
+
*/
|
|
725
|
+
_setLineDash(ctx: CanvasRenderingContext2D, dashArray?: number[] | null): void;
|
|
726
|
+
/**
|
|
727
|
+
* @private
|
|
728
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
729
|
+
*/
|
|
730
|
+
_setShadow(ctx: CanvasRenderingContext2D): void;
|
|
731
|
+
/**
|
|
732
|
+
* @private
|
|
733
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
734
|
+
*/
|
|
735
|
+
_removeShadow(ctx: CanvasRenderingContext2D): void;
|
|
736
|
+
/**
|
|
737
|
+
* @private
|
|
738
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
739
|
+
* @param {TFiller} filler {@link Pattern} or {@link Gradient}
|
|
740
|
+
*/
|
|
741
|
+
_applyPatternGradientTransform(ctx: CanvasRenderingContext2D, filler: TFiller): {
|
|
742
|
+
offsetX: number;
|
|
743
|
+
offsetY: number;
|
|
744
|
+
};
|
|
745
|
+
/**
|
|
746
|
+
* @private
|
|
747
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
748
|
+
*/
|
|
749
|
+
_renderPaintInOrder(ctx: CanvasRenderingContext2D): void;
|
|
750
|
+
/**
|
|
751
|
+
* @private
|
|
752
|
+
* function that actually render something on the context.
|
|
753
|
+
* empty here to allow Obects to work on tests to benchmark fabric functionalites
|
|
754
|
+
* not related to rendering
|
|
755
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
756
|
+
*/
|
|
757
|
+
_render(ctx: CanvasRenderingContext2D): void;
|
|
758
|
+
/**
|
|
759
|
+
* @private
|
|
760
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
761
|
+
*/
|
|
762
|
+
_renderFill(ctx: CanvasRenderingContext2D): void;
|
|
763
|
+
/**
|
|
764
|
+
* @private
|
|
765
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
766
|
+
*/
|
|
767
|
+
_renderStroke(ctx: CanvasRenderingContext2D): void;
|
|
768
|
+
/**
|
|
769
|
+
* This function try to patch the missing gradientTransform on canvas gradients.
|
|
770
|
+
* transforming a context to transform the gradient, is going to transform the stroke too.
|
|
771
|
+
* we want to transform the gradient but not the stroke operation, so we create
|
|
772
|
+
* a transformed gradient on a pattern and then we use the pattern instead of the gradient.
|
|
773
|
+
* this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
|
|
774
|
+
* is limited.
|
|
775
|
+
* @private
|
|
776
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
777
|
+
* @param {Gradient} filler
|
|
778
|
+
*/
|
|
779
|
+
_applyPatternForTransformedGradient(ctx: CanvasRenderingContext2D, filler: TFiller): void;
|
|
780
|
+
/**
|
|
781
|
+
* This function is an helper for svg import. it returns the center of the object in the svg
|
|
782
|
+
* untransformed coordinates
|
|
783
|
+
* @private
|
|
784
|
+
* @return {Point} center point from element coordinates
|
|
785
|
+
*/
|
|
786
|
+
_findCenterFromElement(): Point;
|
|
787
|
+
/**
|
|
788
|
+
* Clones an instance.
|
|
789
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
790
|
+
* @returns {Promise<FabricObject>}
|
|
791
|
+
*/
|
|
792
|
+
clone(propertiesToInclude: string[]): any;
|
|
793
|
+
/**
|
|
794
|
+
* Creates an instance of Image out of an object
|
|
795
|
+
* makes use of toCanvasElement.
|
|
796
|
+
* Once this method was based on toDataUrl and loadImage, so it also had a quality
|
|
797
|
+
* and format option. toCanvasElement is faster and produce no loss of quality.
|
|
798
|
+
* If you need to get a real Jpeg or Png from an object, using toDataURL is the right way to do it.
|
|
799
|
+
* toCanvasElement and then toBlob from the obtained canvas is also a good option.
|
|
800
|
+
* @todo fix the export type, it could not be Image but the type that getClass return for 'image'.
|
|
801
|
+
* @param {Object} [options] for clone as image, passed to toDataURL
|
|
802
|
+
* @param {Number} [options.multiplier=1] Multiplier to scale by
|
|
803
|
+
* @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
|
|
804
|
+
* @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
|
|
805
|
+
* @param {Number} [options.width] Cropping width. Introduced in v1.2.14
|
|
806
|
+
* @param {Number} [options.height] Cropping height. Introduced in v1.2.14
|
|
807
|
+
* @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
|
|
808
|
+
* @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
|
|
809
|
+
* @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
|
|
810
|
+
* @return {Image} Object cloned as image.
|
|
811
|
+
*/
|
|
812
|
+
cloneAsImage(options: any): Image;
|
|
813
|
+
/**
|
|
814
|
+
* Converts an object into a HTMLCanvas element
|
|
815
|
+
* @param {Object} options Options object
|
|
816
|
+
* @param {Number} [options.multiplier=1] Multiplier to scale by
|
|
817
|
+
* @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
|
|
818
|
+
* @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
|
|
819
|
+
* @param {Number} [options.width] Cropping width. Introduced in v1.2.14
|
|
820
|
+
* @param {Number} [options.height] Cropping height. Introduced in v1.2.14
|
|
821
|
+
* @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
|
|
822
|
+
* @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
|
|
823
|
+
* @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
|
|
824
|
+
* @return {HTMLCanvasElement} Returns DOM element <canvas> with the FabricObject
|
|
825
|
+
*/
|
|
826
|
+
toCanvasElement(options?: any): HTMLCanvasElement;
|
|
827
|
+
/**
|
|
828
|
+
* Converts an object into a data-url-like string
|
|
829
|
+
* @param {Object} options Options object
|
|
830
|
+
* @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png"
|
|
831
|
+
* @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.
|
|
832
|
+
* @param {Number} [options.multiplier=1] Multiplier to scale by
|
|
833
|
+
* @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
|
|
834
|
+
* @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
|
|
835
|
+
* @param {Number} [options.width] Cropping width. Introduced in v1.2.14
|
|
836
|
+
* @param {Number} [options.height] Cropping height. Introduced in v1.2.14
|
|
837
|
+
* @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
|
|
838
|
+
* @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4
|
|
839
|
+
* @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2
|
|
840
|
+
* @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format
|
|
841
|
+
*/
|
|
842
|
+
toDataURL(options?: any): string;
|
|
843
|
+
/**
|
|
844
|
+
* Returns true if specified type is identical to the type of an instance
|
|
845
|
+
* @param {String} type Type to check against
|
|
846
|
+
* @return {Boolean}
|
|
847
|
+
*/
|
|
848
|
+
isType(...types: string[]): boolean;
|
|
849
|
+
/**
|
|
850
|
+
* Returns complexity of an instance
|
|
851
|
+
* @return {Number} complexity of this instance (is 1 unless subclassed)
|
|
852
|
+
*/
|
|
853
|
+
complexity(): number;
|
|
854
|
+
/**
|
|
855
|
+
* Returns a JSON representation of an instance
|
|
856
|
+
* @return {Object} JSON
|
|
857
|
+
*/
|
|
858
|
+
toJSON(): Record<string, any>;
|
|
859
|
+
/**
|
|
860
|
+
* Sets "angle" of an instance with centered rotation
|
|
861
|
+
* @param {TDegree} angle Angle value (in degrees)
|
|
862
|
+
*/
|
|
863
|
+
rotate(angle: TDegree): void;
|
|
864
|
+
/**
|
|
865
|
+
* This callback function is called by the parent group of an object every
|
|
866
|
+
* time a non-delegated property changes on the group. It is passed the key
|
|
867
|
+
* and value as parameters. Not adding in this function's signature to avoid
|
|
868
|
+
* Travis build error about unused variables.
|
|
869
|
+
*/
|
|
870
|
+
setOnGroup(): void;
|
|
871
|
+
/**
|
|
872
|
+
* Sets canvas globalCompositeOperation for specific object
|
|
873
|
+
* custom composition operation for the particular object can be specified using globalCompositeOperation property
|
|
874
|
+
* @param {CanvasRenderingContext2D} ctx Rendering canvas context
|
|
875
|
+
*/
|
|
876
|
+
_setupCompositeOperation(ctx: CanvasRenderingContext2D): void;
|
|
877
|
+
/**
|
|
878
|
+
* cancel instance's running animations
|
|
879
|
+
* override if necessary to dispose artifacts such as `clipPath`
|
|
880
|
+
*/
|
|
881
|
+
dispose(): void;
|
|
882
|
+
/**
|
|
883
|
+
*
|
|
884
|
+
* @param {Function} klass
|
|
885
|
+
* @param {object} object
|
|
886
|
+
* @param {object} [options]
|
|
887
|
+
* @param {string} [options.extraParam] property to pass as first argument to the constructor
|
|
888
|
+
* @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
889
|
+
* @returns {Promise<FabricObject>}
|
|
890
|
+
*/
|
|
891
|
+
static _fromObject(object: Record<string, unknown>, { extraParam, ...options }?: {
|
|
892
|
+
extraParam?: string;
|
|
893
|
+
signal?: AbortSignal;
|
|
894
|
+
}): Promise<FabricObject>;
|
|
895
|
+
/**
|
|
896
|
+
*
|
|
897
|
+
* @param {object} object
|
|
898
|
+
* @param {object} [options]
|
|
899
|
+
* @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
900
|
+
* @returns {Promise<FabricObject>}
|
|
901
|
+
*/
|
|
902
|
+
static fromObject(object: Record<string, unknown>, options?: {
|
|
903
|
+
signal?: AbortSignal;
|
|
904
|
+
}): Promise<FabricObject>;
|
|
905
|
+
}
|
|
906
|
+
//# sourceMappingURL=Object.d.ts.map
|