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,8 @@
|
|
|
1
|
+
import { Constructor } from '../typedefs';
|
|
2
|
+
/***
|
|
3
|
+
* https://www.typescriptlang.org/docs/handbook/mixins.html#alternative-pattern
|
|
4
|
+
*/
|
|
5
|
+
export declare function applyMixins<T extends Constructor, S extends Constructor>(derivedCtor: T, constructors: S[]): T & {
|
|
6
|
+
prototype: InstanceType<T & S>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=applyMixins.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps element with another element
|
|
3
|
+
* @param {HTMLElement} element Element to wrap
|
|
4
|
+
* @param {HTMLElement|String} wrapper Element to wrap with
|
|
5
|
+
* @param {Object} [attributes] Attributes to set on a wrapper
|
|
6
|
+
* @return {HTMLElement} wrapper
|
|
7
|
+
*/
|
|
8
|
+
export declare function wrapElement(element: HTMLElement, wrapper: HTMLDivElement): HTMLDivElement;
|
|
9
|
+
/**
|
|
10
|
+
* Returns element scroll offsets
|
|
11
|
+
* @param {HTMLElement} element Element to operate on
|
|
12
|
+
* @return {Object} Object with left/top values
|
|
13
|
+
*/
|
|
14
|
+
export declare function getScrollLeftTop(element: HTMLElement): {
|
|
15
|
+
left: number;
|
|
16
|
+
top: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Returns offset for a given element
|
|
20
|
+
* @param {HTMLElement} element Element to get offset for
|
|
21
|
+
* @return {Object} Object with "left" and "top" properties
|
|
22
|
+
*/
|
|
23
|
+
export declare function getElementOffset(element: HTMLElement): {
|
|
24
|
+
left: number;
|
|
25
|
+
top: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Makes element unselectable
|
|
29
|
+
* @param {HTMLElement} element Element to make unselectable
|
|
30
|
+
* @return {HTMLElement} Element that was passed in
|
|
31
|
+
*/
|
|
32
|
+
export declare function makeElementUnselectable(element: HTMLElement): HTMLElement;
|
|
33
|
+
/**
|
|
34
|
+
* Makes element selectable
|
|
35
|
+
* @param {HTMLElement} element Element to make selectable
|
|
36
|
+
* @return {HTMLElement} Element that was passed in
|
|
37
|
+
*/
|
|
38
|
+
export declare function makeElementSelectable(element: HTMLElement): HTMLElement;
|
|
39
|
+
//# sourceMappingURL=dom_misc.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-browser abstraction for sending XMLHttpRequest
|
|
3
|
+
* @deprecated this has to go away, we can use a modern browser method to do the same.
|
|
4
|
+
* @param {String} url URL to send XMLHttpRequest to
|
|
5
|
+
* @param {Object} [options] Options object
|
|
6
|
+
* @param {String} [options.method="GET"]
|
|
7
|
+
* @param {Record<string, string>} [options.parameters] parameters to append to url in GET or in body
|
|
8
|
+
* @param {String} [options.body] body to send with POST or PUT request
|
|
9
|
+
* @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
10
|
+
* @param {Function} options.onComplete Callback to invoke when request is completed
|
|
11
|
+
* @return {XMLHttpRequest} request
|
|
12
|
+
*/
|
|
13
|
+
export declare function request(url: any, options?: {}): any;
|
|
14
|
+
//# sourceMappingURL=dom_request.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { cos } from './misc/cos';
|
|
2
|
+
export { sin } from './misc/sin';
|
|
3
|
+
export { rotateVector, createVector, calcAngleBetweenVectors, getUnitVector, getBisector, } from './misc/vectors';
|
|
4
|
+
export { degreesToRadians, radiansToDegrees, } from './misc/radiansDegreesConversion';
|
|
5
|
+
export { rotatePoint } from './misc/rotatePoint';
|
|
6
|
+
export { projectStrokeOnPoints } from './misc/projectStroke';
|
|
7
|
+
export { transformPoint, invertTransform, composeMatrix, qrDecompose, calcDimensionsMatrix, calcRotateMatrix, multiplyTransformMatrices, isIdentityMatrix, } from './misc/matrix';
|
|
8
|
+
export { stylesFromArray, stylesToArray, hasStyleChanged, } from './misc/textStyles';
|
|
9
|
+
export { createCanvasElement, createImage, copyCanvasElement, toDataURL, } from './misc/dom';
|
|
10
|
+
export { toFixed } from './misc/toFixed';
|
|
11
|
+
export { matrixToSVG, parsePreserveAspectRatioAttribute, parseUnit, getSvgAttributes, } from './misc/svgParsing';
|
|
12
|
+
export { groupSVGElements } from './misc/groupSVGElements';
|
|
13
|
+
export { findScaleToFit, findScaleToCover } from './misc/findScaleTo';
|
|
14
|
+
export { capValue } from './misc/capValue';
|
|
15
|
+
export { saveObjectTransform, resetObjectTransform, addTransformToObject, applyTransformToObject, removeTransformFromObject, sizeAfterTransform, } from './misc/objectTransforms';
|
|
16
|
+
export { makeBoundingBoxFromPoints } from './misc/boundingBoxFromPoints';
|
|
17
|
+
export { calcPlaneChangeMatrix, sendPointToPlane, transformPointRelativeToCanvas, sendObjectToPlane, } from './misc/planeChange';
|
|
18
|
+
export * as string from './lang_string';
|
|
19
|
+
export { loadImage, enlivenObjects, enlivenObjectEnlivables, } from './misc/objectEnlive';
|
|
20
|
+
export { pick } from './misc/pick';
|
|
21
|
+
export { joinPath, parsePath, makePathSimpler, getSmoothPathFromPoints, getPathSegmentsInfo, getBoundsOfCurve, getPointOnPath, transformPath, getRegularPolygonPath, } from './path';
|
|
22
|
+
export { setStyle } from './dom_style';
|
|
23
|
+
export { isTouchEvent, getPointer } from './dom_event';
|
|
24
|
+
export { getElementOffset, makeElementUnselectable, makeElementSelectable, } from './dom_misc';
|
|
25
|
+
export { isTransparent } from './misc/isTransparent';
|
|
26
|
+
export { mergeClipPaths } from './misc/mergeClipPaths';
|
|
27
|
+
export { animate, animateColor } from './animation/animate';
|
|
28
|
+
export * as ease from './animation/easing';
|
|
29
|
+
export { requestAnimFrame, cancelAnimFrame, } from './animation/AnimationFrameProvider';
|
|
30
|
+
export { removeFromArray } from './internals/removeFromArray';
|
|
31
|
+
export { getRandomInt } from './internals/getRandomInt';
|
|
32
|
+
export { wrapElement } from './dom_misc';
|
|
33
|
+
export { request } from './dom_request';
|
|
34
|
+
export { removeTransformMatrixForSvgParsing } from './transform_matrix_removal';
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns random number between 2 specified ones.
|
|
3
|
+
* @param {Number} min lower limit
|
|
4
|
+
* @param {Number} max upper limit
|
|
5
|
+
* @return {Number} random value (between min and max)
|
|
6
|
+
*/
|
|
7
|
+
export declare const getRandomInt: (min: number, max: number) => number;
|
|
8
|
+
//# sourceMappingURL=getRandomInt.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes value from an array.
|
|
3
|
+
* Presence of value (and its position in an array) is determined via `Array.prototype.indexOf`
|
|
4
|
+
* @param {Array} array
|
|
5
|
+
* @param {*} value
|
|
6
|
+
* @return {Array} original array
|
|
7
|
+
*/
|
|
8
|
+
export declare const removeFromArray: <T>(array: T[], value: T) => T[];
|
|
9
|
+
//# sourceMappingURL=removeFromArray.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capitalizes a string
|
|
3
|
+
* @param {String} string String to capitalize
|
|
4
|
+
* @param {Boolean} [firstLetterOnly] If true only first letter is capitalized
|
|
5
|
+
* and other letters stay untouched, if false first letter is capitalized
|
|
6
|
+
* and other letters are converted to lowercase.
|
|
7
|
+
* @return {String} Capitalized version of a string
|
|
8
|
+
*/
|
|
9
|
+
export declare const capitalize: (string: string, firstLetterOnly?: boolean) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Escapes XML in a string
|
|
12
|
+
* @param {String} string String to escape
|
|
13
|
+
* @return {String} Escaped version of a string
|
|
14
|
+
*/
|
|
15
|
+
export declare const escapeXml: (string: string) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Divide a string in the user perceived single units
|
|
18
|
+
* @param {String} textstring String to escape
|
|
19
|
+
* @return {Array} array containing the graphemes
|
|
20
|
+
*/
|
|
21
|
+
export declare const graphemeSplit: (textstring: string) => string[];
|
|
22
|
+
//# sourceMappingURL=lang_string.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { XY } from '../../Point';
|
|
2
|
+
import { TBBox } from '../../typedefs';
|
|
3
|
+
/**
|
|
4
|
+
* Calculates bounding box (left, top, width, height) from given `points`
|
|
5
|
+
* @param {XY[]} points
|
|
6
|
+
* @return {Object} Object with left, top, width, height properties
|
|
7
|
+
*/
|
|
8
|
+
export declare const makeBoundingBoxFromPoints: (points: XY[]) => TBBox;
|
|
9
|
+
//# sourceMappingURL=boundingBoxFromPoints.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TRadian } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the cos of an angle, avoiding returning floats for known results
|
|
4
|
+
* This function is here just to avoid getting 0.999999999999999 when dealing
|
|
5
|
+
* with numbers that are really 1 or 0.
|
|
6
|
+
* @param {TRadian} angle the angle
|
|
7
|
+
* @return {Number} the cosin value for angle.
|
|
8
|
+
*/
|
|
9
|
+
export declare const cos: (angle: TRadian) => number;
|
|
10
|
+
//# sourceMappingURL=cos.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ImageFormat } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Creates canvas element
|
|
4
|
+
* @return {CanvasElement} initialized canvas element
|
|
5
|
+
*/
|
|
6
|
+
export declare const createCanvasElement: () => HTMLCanvasElement;
|
|
7
|
+
/**
|
|
8
|
+
* Creates image element (works on client and node)
|
|
9
|
+
* @return {HTMLImageElement} HTML image element
|
|
10
|
+
*/
|
|
11
|
+
export declare const createImage: () => HTMLImageElement;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a canvas element that is a copy of another and is also painted
|
|
14
|
+
* @param {CanvasElement} canvas to copy size and content of
|
|
15
|
+
* @return {CanvasElement} initialized canvas element
|
|
16
|
+
*/
|
|
17
|
+
export declare const copyCanvasElement: (canvas: HTMLCanvasElement) => HTMLCanvasElement;
|
|
18
|
+
/**
|
|
19
|
+
* since 2.6.0 moved from canvas instance to utility.
|
|
20
|
+
* possibly useless
|
|
21
|
+
* @param {CanvasElement} canvasEl to copy size and content of
|
|
22
|
+
* @param {String} format 'jpeg' or 'png', in some browsers 'webp' is ok too
|
|
23
|
+
* @param {Number} quality <= 1 and > 0
|
|
24
|
+
* @return {String} data url
|
|
25
|
+
*/
|
|
26
|
+
export declare const toDataURL: (canvasEl: HTMLCanvasElement, format: ImageFormat, quality: number) => string;
|
|
27
|
+
export declare const isHTMLCanvas: (canvas: HTMLCanvasElement | string) => canvas is HTMLCanvasElement;
|
|
28
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface IWithDimensions {
|
|
2
|
+
/**
|
|
3
|
+
* natural unscaled width of the object
|
|
4
|
+
*/
|
|
5
|
+
width: number;
|
|
6
|
+
/**
|
|
7
|
+
* natural unscaled height of the object
|
|
8
|
+
*/
|
|
9
|
+
height: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Finds the scale for the object source to fit inside the object destination,
|
|
13
|
+
* keeping aspect ratio intact.
|
|
14
|
+
* respect the total allowed area for the cache.
|
|
15
|
+
* @param {IWithDimensions} source
|
|
16
|
+
* @param {IWithDimensions} destination
|
|
17
|
+
* @return {Number} scale factor to apply to source to fit into destination
|
|
18
|
+
*/
|
|
19
|
+
export declare const findScaleToFit: (source: IWithDimensions, destination: IWithDimensions) => number;
|
|
20
|
+
/**
|
|
21
|
+
* Finds the scale for the object source to cover entirely the object destination,
|
|
22
|
+
* keeping aspect ratio intact.
|
|
23
|
+
* respect the total allowed area for the cache.
|
|
24
|
+
* @param {IWithDimensions} source
|
|
25
|
+
* @param {IWithDimensions} destination
|
|
26
|
+
* @return {Number} scale factor to apply to source to cover destination
|
|
27
|
+
*/
|
|
28
|
+
export declare const findScaleToCover: (source: IWithDimensions, destination: IWithDimensions) => number;
|
|
29
|
+
//# sourceMappingURL=findScaleTo.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FabricObject } from '../../shapes/Object/FabricObject';
|
|
2
|
+
/**
|
|
3
|
+
* Groups SVG elements (usually those retrieved from SVG document)
|
|
4
|
+
* @static
|
|
5
|
+
* @param {FabricObject[]} elements FabricObject(s) parsed from svg, to group
|
|
6
|
+
* @return {FabricObject | Group}
|
|
7
|
+
*/
|
|
8
|
+
export declare const groupSVGElements: (elements: FabricObject[]) => FabricObject<Partial<import("../../shapes/Object/types").FabricObjectProps>, import("../../shapes/Object/types").SerializedObjectProps, import("../../EventTypeDefs").ObjectEvents>;
|
|
9
|
+
//# sourceMappingURL=groupSVGElements.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns true if context has transparent pixel
|
|
3
|
+
* at specified location (taking tolerance into account)
|
|
4
|
+
* @param {CanvasRenderingContext2D} ctx context
|
|
5
|
+
* @param {Number} x x coordinate in canvasElementCoordinate, not fabric space. integer
|
|
6
|
+
* @param {Number} y y coordinate in canvasElementCoordinate, not fabric space. integer
|
|
7
|
+
* @param {Number} tolerance Tolerance pixels around the point, not alpha tolerance, integer
|
|
8
|
+
* @return {boolean} true if transparent
|
|
9
|
+
*/
|
|
10
|
+
export declare const isTransparent: (ctx: CanvasRenderingContext2D, x: number, y: number, tolerance: number) => boolean;
|
|
11
|
+
//# sourceMappingURL=isTransparent.d.ts.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { XY, Point } from '../../Point';
|
|
2
|
+
import { TDegree, TMat2D } from '../../typedefs';
|
|
3
|
+
type TRotateMatrixArgs = {
|
|
4
|
+
angle?: TDegree;
|
|
5
|
+
};
|
|
6
|
+
type TTranslateMatrixArgs = {
|
|
7
|
+
translateX?: number;
|
|
8
|
+
translateY?: number;
|
|
9
|
+
};
|
|
10
|
+
export type TScaleMatrixArgs = {
|
|
11
|
+
scaleX?: number;
|
|
12
|
+
scaleY?: number;
|
|
13
|
+
flipX?: boolean;
|
|
14
|
+
flipY?: boolean;
|
|
15
|
+
skewX?: TDegree;
|
|
16
|
+
skewY?: TDegree;
|
|
17
|
+
};
|
|
18
|
+
export type TComposeMatrixArgs = TTranslateMatrixArgs & TRotateMatrixArgs & TScaleMatrixArgs;
|
|
19
|
+
export type TQrDecomposeOut = Required<Omit<TComposeMatrixArgs, 'flipX' | 'flipY'>>;
|
|
20
|
+
export declare const isIdentityMatrix: (mat: TMat2D) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Apply transform t to point p
|
|
23
|
+
* @param {Point | XY} p The point to transform
|
|
24
|
+
* @param {Array} t The transform
|
|
25
|
+
* @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied
|
|
26
|
+
* @return {Point} The transformed point
|
|
27
|
+
*/
|
|
28
|
+
export declare const transformPoint: (p: XY, t: TMat2D, ignoreOffset?: boolean) => Point;
|
|
29
|
+
/**
|
|
30
|
+
* Invert transformation t
|
|
31
|
+
* @param {Array} t The transform
|
|
32
|
+
* @return {Array} The inverted transform
|
|
33
|
+
*/
|
|
34
|
+
export declare const invertTransform: (t: TMat2D) => TMat2D;
|
|
35
|
+
/**
|
|
36
|
+
* Multiply matrix A by matrix B to nest transformations
|
|
37
|
+
* @param {TMat2D} a First transformMatrix
|
|
38
|
+
* @param {TMat2D} b Second transformMatrix
|
|
39
|
+
* @param {Boolean} is2x2 flag to multiply matrices as 2x2 matrices
|
|
40
|
+
* @return {TMat2D} The product of the two transform matrices
|
|
41
|
+
*/
|
|
42
|
+
export declare const multiplyTransformMatrices: (a: TMat2D, b: TMat2D, is2x2?: boolean) => TMat2D;
|
|
43
|
+
/**
|
|
44
|
+
* Decomposes standard 2x3 matrix into transform components
|
|
45
|
+
* @param {TMat2D} a transformMatrix
|
|
46
|
+
* @return {Object} Components of transform
|
|
47
|
+
*/
|
|
48
|
+
export declare const qrDecompose: (a: TMat2D) => TQrDecomposeOut;
|
|
49
|
+
/**
|
|
50
|
+
* Returns a transform matrix starting from an object of the same kind of
|
|
51
|
+
* the one returned from qrDecompose, useful also if you want to calculate some
|
|
52
|
+
* transformations from an object that is not enlived yet
|
|
53
|
+
* @param {Object} options
|
|
54
|
+
* @param {Number} [options.angle] angle in degrees
|
|
55
|
+
* @return {TMat2D} transform matrix
|
|
56
|
+
*/
|
|
57
|
+
export declare const calcRotateMatrix: ({ angle }: TRotateMatrixArgs) => TMat2D;
|
|
58
|
+
/**
|
|
59
|
+
* Returns a transform matrix starting from an object of the same kind of
|
|
60
|
+
* the one returned from qrDecompose, useful also if you want to calculate some
|
|
61
|
+
* transformations from an object that is not enlived yet.
|
|
62
|
+
* is called DimensionsTransformMatrix because those properties are the one that influence
|
|
63
|
+
* the size of the resulting box of the object.
|
|
64
|
+
* @param {Object} options
|
|
65
|
+
* @param {Number} [options.scaleX]
|
|
66
|
+
* @param {Number} [options.scaleY]
|
|
67
|
+
* @param {Boolean} [options.flipX]
|
|
68
|
+
* @param {Boolean} [options.flipY]
|
|
69
|
+
* @param {Number} [options.skewX]
|
|
70
|
+
* @param {Number} [options.skewY]
|
|
71
|
+
* @return {Number[]} transform matrix
|
|
72
|
+
*/
|
|
73
|
+
export declare const calcDimensionsMatrix: ({ scaleX, scaleY, flipX, flipY, skewX, skewY, }: TScaleMatrixArgs) => TMat2D;
|
|
74
|
+
/**
|
|
75
|
+
* Returns a transform matrix starting from an object of the same kind of
|
|
76
|
+
* the one returned from qrDecompose, useful also if you want to calculate some
|
|
77
|
+
* transformations from an object that is not enlived yet
|
|
78
|
+
* @param {Object} options
|
|
79
|
+
* @param {Number} [options.angle]
|
|
80
|
+
* @param {Number} [options.scaleX]
|
|
81
|
+
* @param {Number} [options.scaleY]
|
|
82
|
+
* @param {Boolean} [options.flipX]
|
|
83
|
+
* @param {Boolean} [options.flipY]
|
|
84
|
+
* @param {Number} [options.skewX]
|
|
85
|
+
* @param {Number} [options.skewY]
|
|
86
|
+
* @param {Number} [options.translateX]
|
|
87
|
+
* @param {Number} [options.translateY]
|
|
88
|
+
* @return {Number[]} transform matrix
|
|
89
|
+
*/
|
|
90
|
+
export declare const composeMatrix: ({ translateX, translateY, angle, ...otherOptions }: TComposeMatrixArgs) => TMat2D;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=matrix.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { FabricObject } from '../../shapes/Object/FabricObject';
|
|
2
|
+
import { Group } from '../../shapes/Group';
|
|
3
|
+
/**
|
|
4
|
+
* Merges 2 clip paths into one visually equal clip path
|
|
5
|
+
*
|
|
6
|
+
* **IMPORTANT**:\
|
|
7
|
+
* Does **NOT** clone the arguments, clone them proir if necessary.
|
|
8
|
+
*
|
|
9
|
+
* Creates a wrapper (group) that contains one clip path and is clipped by the other so content is kept where both overlap.
|
|
10
|
+
* Use this method if both the clip paths may have nested clip paths of their own, so assigning one to the other's clip path property is not possible.
|
|
11
|
+
*
|
|
12
|
+
* In order to handle the `inverted` property we follow logic described in the following cases:\
|
|
13
|
+
* **(1)** both clip paths are inverted - the clip paths pass the inverted prop to the wrapper and loose it themselves.\
|
|
14
|
+
* **(2)** one is inverted and the other isn't - the wrapper shouldn't become inverted and the inverted clip path must clip the non inverted one to produce an identical visual effect.\
|
|
15
|
+
* **(3)** both clip paths are not inverted - wrapper and clip paths remain unchanged.
|
|
16
|
+
*
|
|
17
|
+
* @memberOf fabric.util
|
|
18
|
+
* @param {fabric.Object} c1
|
|
19
|
+
* @param {fabric.Object} c2
|
|
20
|
+
* @returns {fabric.Object} merged clip path
|
|
21
|
+
*/
|
|
22
|
+
export declare const mergeClipPaths: (c1: FabricObject, c2: FabricObject) => Group;
|
|
23
|
+
//# sourceMappingURL=mergeClipPaths.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FabricObject } from '../../shapes/Object/FabricObject';
|
|
2
|
+
import type { TCrossOrigin, TFiller } from '../../typedefs';
|
|
3
|
+
export type LoadImageOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
6
|
+
*/
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
/**
|
|
9
|
+
* cors value for the image loading, default to anonymous
|
|
10
|
+
*/
|
|
11
|
+
crossOrigin?: TCrossOrigin;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Loads image element from given url and resolve it, or catch.
|
|
15
|
+
* @param {String} url URL representing an image
|
|
16
|
+
* @param {LoadImageOptions} [options] image loading options
|
|
17
|
+
* @returns {Promise<HTMLImageElement>} the loaded image.
|
|
18
|
+
*/
|
|
19
|
+
export declare const loadImage: (url: string, { signal, crossOrigin }?: LoadImageOptions) => Promise<HTMLImageElement>;
|
|
20
|
+
export type EnlivenObjectOptions = {
|
|
21
|
+
/**
|
|
22
|
+
* handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
23
|
+
*/
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
/**
|
|
26
|
+
* Method for further parsing of object elements,
|
|
27
|
+
* called after each fabric object created.
|
|
28
|
+
*/
|
|
29
|
+
reviver?: (serializedObj: Record<string, any>, instance: FabricObject) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Namespace to get klass "Class" object from
|
|
32
|
+
*/
|
|
33
|
+
namespace?: any;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Creates corresponding fabric instances from their object representations
|
|
37
|
+
* @param {Object[]} objects Objects to enliven
|
|
38
|
+
* @param {EnlivenObjectOptions} [options]
|
|
39
|
+
* @param {object} [options.namespace] Namespace to get klass "Class" object from
|
|
40
|
+
* @param {(serializedObj: object, instance: FabricObject) => any} [options.reviver] Method for further parsing of object elements,
|
|
41
|
+
* called after each fabric object created.
|
|
42
|
+
* @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
43
|
+
* @returns {Promise<FabricObject[]>}
|
|
44
|
+
*/
|
|
45
|
+
export declare const enlivenObjects: (objects: any[], { signal, reviver }?: EnlivenObjectOptions) => Promise<FabricObject<Partial<import("../../shapes/Object/types").FabricObjectProps>, import("../../shapes/Object/types").SerializedObjectProps, import("../../EventTypeDefs").ObjectEvents>[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Creates corresponding fabric instances residing in an object, e.g. `clipPath`
|
|
48
|
+
* @param {Object} object with properties to enlive ( fill, stroke, clipPath, path )
|
|
49
|
+
* @param {object} [options]
|
|
50
|
+
* @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
51
|
+
* @returns {Promise<Record<string, FabricObject | TFiller | null>>} the input object with enlived values
|
|
52
|
+
*/
|
|
53
|
+
export declare const enlivenObjectEnlivables: <R = Record<string, FabricObject<Partial<import("../../shapes/Object/types").FabricObjectProps>, import("../../shapes/Object/types").SerializedObjectProps, import("../../EventTypeDefs").ObjectEvents> | TFiller | null>>(serializedObject: any, { signal }?: {
|
|
54
|
+
signal?: AbortSignal | undefined;
|
|
55
|
+
}) => Promise<R>;
|
|
56
|
+
//# sourceMappingURL=objectEnlive.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Point } from '../../Point';
|
|
2
|
+
import type { FabricObject } from '../../shapes/Object/Object';
|
|
3
|
+
import { TMat2D } from '../../typedefs';
|
|
4
|
+
import type { TScaleMatrixArgs } from './matrix';
|
|
5
|
+
/**
|
|
6
|
+
* given an object and a transform, apply the inverse transform to the object,
|
|
7
|
+
* this is equivalent to remove from that object that transformation, so that
|
|
8
|
+
* added in a space with the removed transform, the object will be the same as before.
|
|
9
|
+
* Removing from an object a transform that scale by 2 is like scaling it by 1/2.
|
|
10
|
+
* Removing from an object a transform that rotate by 30deg is like rotating by 30deg
|
|
11
|
+
* in the opposite direction.
|
|
12
|
+
* This util is used to add objects inside transformed groups or nested groups.
|
|
13
|
+
* @param {FabricObject} object the object you want to transform
|
|
14
|
+
* @param {TMat2D} transform the destination transform
|
|
15
|
+
*/
|
|
16
|
+
export declare const removeTransformFromObject: (object: FabricObject, transform: TMat2D) => void;
|
|
17
|
+
/**
|
|
18
|
+
* given an object and a transform, apply the transform to the object.
|
|
19
|
+
* this is equivalent to change the space where the object is drawn.
|
|
20
|
+
* Adding to an object a transform that scale by 2 is like scaling it by 2.
|
|
21
|
+
* This is used when removing an object from an active selection for example.
|
|
22
|
+
* @param {FabricObject} object the object you want to transform
|
|
23
|
+
* @param {Array} transform the destination transform
|
|
24
|
+
*/
|
|
25
|
+
export declare const addTransformToObject: (object: FabricObject, transform: TMat2D) => void;
|
|
26
|
+
/**
|
|
27
|
+
* discard an object transform state and apply the one from the matrix.
|
|
28
|
+
* @param {FabricObject} object the object you want to transform
|
|
29
|
+
* @param {Array} transform the destination transform
|
|
30
|
+
*/
|
|
31
|
+
export declare const applyTransformToObject: (object: FabricObject, transform: TMat2D) => void;
|
|
32
|
+
/**
|
|
33
|
+
* reset an object transform state to neutral. Top and left are not accounted for
|
|
34
|
+
* @param {FabricObject} target object to transform
|
|
35
|
+
*/
|
|
36
|
+
export declare const resetObjectTransform: (target: FabricObject) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Extract Object transform values
|
|
39
|
+
* @param {FabricObject} target object to read from
|
|
40
|
+
* @return {Object} Components of transform
|
|
41
|
+
*/
|
|
42
|
+
export declare const saveObjectTransform: (target: FabricObject) => {
|
|
43
|
+
scaleX: number;
|
|
44
|
+
scaleY: number;
|
|
45
|
+
skewX: number;
|
|
46
|
+
skewY: number;
|
|
47
|
+
angle: import("../../typedefs").TDegree;
|
|
48
|
+
left: number;
|
|
49
|
+
flipX: boolean;
|
|
50
|
+
flipY: boolean;
|
|
51
|
+
top: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* given a width and height, return the size of the bounding box
|
|
55
|
+
* that can contains the box with width/height with applied transform
|
|
56
|
+
* described in options.
|
|
57
|
+
* Use to calculate the boxes around objects for controls.
|
|
58
|
+
* @param {Number} width
|
|
59
|
+
* @param {Number} height
|
|
60
|
+
* @param {Object} options
|
|
61
|
+
* @param {Number} options.scaleX
|
|
62
|
+
* @param {Number} options.scaleY
|
|
63
|
+
* @param {Number} options.skewX
|
|
64
|
+
* @param {Number} options.skewY
|
|
65
|
+
* @returns {Point} size
|
|
66
|
+
*/
|
|
67
|
+
export declare const sizeAfterTransform: (width: number, height: number, options: TScaleMatrixArgs) => Point;
|
|
68
|
+
//# sourceMappingURL=objectTransforms.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Populates an object with properties of another object
|
|
3
|
+
* @param {Object} source Source object
|
|
4
|
+
* @param {string[]} properties Properties names to include
|
|
5
|
+
* @returns object populated with the picked keys
|
|
6
|
+
*/
|
|
7
|
+
export declare const pick: <T extends Record<string, any>>(source: T, keys?: (keyof T)[]) => Partial<T>;
|
|
8
|
+
export declare const pickBy: <T extends Record<string, any>>(source: T, predicate: <K extends keyof T>(value: T[K], key: K, collection: T) => boolean) => Partial<T>;
|
|
9
|
+
//# sourceMappingURL=pick.d.ts.map
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Point } from '../../Point';
|
|
2
|
+
import type { FabricObject } from '../../shapes/Object/Object';
|
|
3
|
+
import type { TMat2D } from '../../typedefs';
|
|
4
|
+
import type { StaticCanvas } from '../../canvas/StaticCanvas';
|
|
5
|
+
export declare const enum ObjectRelation {
|
|
6
|
+
sibling = "sibling",
|
|
7
|
+
child = "child"
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* We are actually looking for the transformation from the destination plane to the source plane (change of basis matrix)\
|
|
11
|
+
* The object will exist on the destination plane and we want it to seem unchanged by it so we invert the destination matrix (`to`) and then apply the source matrix (`from`)
|
|
12
|
+
* @param [from]
|
|
13
|
+
* @param [to]
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare const calcPlaneChangeMatrix: (from?: TMat2D, to?: TMat2D) => TMat2D;
|
|
17
|
+
/**
|
|
18
|
+
* Sends a point from the source coordinate plane to the destination coordinate plane.\
|
|
19
|
+
* From the canvas/viewer's perspective the point remains unchanged.
|
|
20
|
+
*
|
|
21
|
+
* @example <caption>Send point from canvas plane to group plane</caption>
|
|
22
|
+
* var obj = new Rect({ left: 20, top: 20, width: 60, height: 60, strokeWidth: 0 });
|
|
23
|
+
* var group = new Group([obj], { strokeWidth: 0 });
|
|
24
|
+
* var sentPoint1 = sendPointToPlane(new Point(50, 50), undefined, group.calcTransformMatrix());
|
|
25
|
+
* var sentPoint2 = sendPointToPlane(new Point(50, 50), iMatrix, group.calcTransformMatrix());
|
|
26
|
+
* console.log(sentPoint1, sentPoint2) // both points print (0,0) which is the center of group
|
|
27
|
+
*
|
|
28
|
+
* @see {transformPointRelativeToCanvas} for transforming relative to canvas
|
|
29
|
+
* @param {Point} point
|
|
30
|
+
* @param {TMat2D} [from] plane matrix containing object. Passing `undefined` is equivalent to passing the identity matrix, which means `point` exists in the canvas coordinate plane.
|
|
31
|
+
* @param {TMat2D} [to] destination plane matrix to contain object. Passing `undefined` means `point` should be sent to the canvas coordinate plane.
|
|
32
|
+
* @returns {Point} transformed point
|
|
33
|
+
*/
|
|
34
|
+
export declare const sendPointToPlane: (point: Point, from?: TMat2D, to?: TMat2D) => Point;
|
|
35
|
+
/**
|
|
36
|
+
* Transform point relative to canvas.
|
|
37
|
+
* From the viewport/viewer's perspective the point remains unchanged.
|
|
38
|
+
*
|
|
39
|
+
* `child` relation means `point` exists in the coordinate plane created by `canvas`.
|
|
40
|
+
* In other words point is measured according to canvas' top left corner
|
|
41
|
+
* meaning that if `point` is equal to (0,0) it is positioned at canvas' top left corner.
|
|
42
|
+
*
|
|
43
|
+
* `sibling` relation means `point` exists in the same coordinate plane as canvas.
|
|
44
|
+
* In other words they both relate to the same (0,0) and agree on every point, which is how an event relates to canvas.
|
|
45
|
+
*
|
|
46
|
+
* @param {Point} point
|
|
47
|
+
* @param {StaticCanvas} canvas
|
|
48
|
+
* @param {'sibling'|'child'} relationBefore current relation of point to canvas
|
|
49
|
+
* @param {'sibling'|'child'} relationAfter desired relation of point to canvas
|
|
50
|
+
* @returns {Point} transformed point
|
|
51
|
+
*/
|
|
52
|
+
export declare const transformPointRelativeToCanvas: (point: Point, canvas: StaticCanvas, relationBefore: ObjectRelation, relationAfter: ObjectRelation) => Point;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* A util that abstracts applying transform to objects.\
|
|
56
|
+
* Sends `object` to the destination coordinate plane by applying the relevant transformations.\
|
|
57
|
+
* Changes the space/plane where `object` is drawn.\
|
|
58
|
+
* From the canvas/viewer's perspective `object` remains unchanged.
|
|
59
|
+
*
|
|
60
|
+
* @example <caption>Move clip path from one object to another while preserving it's appearance as viewed by canvas/viewer</caption>
|
|
61
|
+
* let obj, obj2;
|
|
62
|
+
* let clipPath = new Circle({ radius: 50 });
|
|
63
|
+
* obj.clipPath = clipPath;
|
|
64
|
+
* // render
|
|
65
|
+
* sendObjectToPlane(clipPath, obj.calcTransformMatrix(), obj2.calcTransformMatrix());
|
|
66
|
+
* obj.clipPath = undefined;
|
|
67
|
+
* obj2.clipPath = clipPath;
|
|
68
|
+
* // render, clipPath now clips obj2 but seems unchanged from the eyes of the viewer
|
|
69
|
+
*
|
|
70
|
+
* @example <caption>Clip an object's clip path with an existing object</caption>
|
|
71
|
+
* let obj, existingObj;
|
|
72
|
+
* let clipPath = new Circle({ radius: 50 });
|
|
73
|
+
* obj.clipPath = clipPath;
|
|
74
|
+
* let transformTo = multiplyTransformMatrices(obj.calcTransformMatrix(), clipPath.calcTransformMatrix());
|
|
75
|
+
* sendObjectToPlane(existingObj, existingObj.group?.calcTransformMatrix(), transformTo);
|
|
76
|
+
* clipPath.clipPath = existingObj;
|
|
77
|
+
*
|
|
78
|
+
* @param {FabricObject} object
|
|
79
|
+
* @param {Matrix} [from] plane matrix containing object. Passing `undefined` is equivalent to passing the identity matrix, which means `object` is a direct child of canvas.
|
|
80
|
+
* @param {Matrix} [to] destination plane matrix to contain object. Passing `undefined` means `object` should be sent to the canvas coordinate plane.
|
|
81
|
+
* @returns {Matrix} the transform matrix that was applied to `object`
|
|
82
|
+
*/
|
|
83
|
+
export declare const sendObjectToPlane: (object: FabricObject, from?: TMat2D, to?: TMat2D) => TMat2D;
|
|
84
|
+
//# sourceMappingURL=planeChange.d.ts.map
|