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,84 @@
|
|
|
1
|
+
import { TClassProperties } from '../typedefs';
|
|
2
|
+
import { FabricObject } from './Object/FabricObject';
|
|
3
|
+
import type { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
|
|
4
|
+
import type { ObjectEvents } from '../EventTypeDefs';
|
|
5
|
+
export declare const ellipseDefaultValues: UniqueEllipseProps;
|
|
6
|
+
interface UniqueEllipseProps {
|
|
7
|
+
rx: number;
|
|
8
|
+
ry: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SerializedEllipseProps extends SerializedObjectProps, UniqueEllipseProps {
|
|
11
|
+
}
|
|
12
|
+
export interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {
|
|
13
|
+
}
|
|
14
|
+
export declare class Ellipse<Props extends TProps<EllipseProps> = Partial<EllipseProps>, SProps extends SerializedEllipseProps = SerializedEllipseProps, EventSpec extends ObjectEvents = ObjectEvents> extends FabricObject<Props, SProps, EventSpec> implements EllipseProps {
|
|
15
|
+
/**
|
|
16
|
+
* Horizontal radius
|
|
17
|
+
* @type Number
|
|
18
|
+
* @default
|
|
19
|
+
*/
|
|
20
|
+
rx: number;
|
|
21
|
+
/**
|
|
22
|
+
* Vertical radius
|
|
23
|
+
* @type Number
|
|
24
|
+
* @default
|
|
25
|
+
*/
|
|
26
|
+
ry: number;
|
|
27
|
+
static cacheProperties: string[];
|
|
28
|
+
static ownDefaults: Record<string, any>;
|
|
29
|
+
static getDefaults(): {
|
|
30
|
+
[x: string]: any;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @private
|
|
34
|
+
* @param {String} key
|
|
35
|
+
* @param {*} value
|
|
36
|
+
* @return {Ellipse} thisArg
|
|
37
|
+
*/
|
|
38
|
+
_set(key: string, value: any): this;
|
|
39
|
+
/**
|
|
40
|
+
* Returns horizontal radius of an object (according to how an object is scaled)
|
|
41
|
+
* @return {Number}
|
|
42
|
+
*/
|
|
43
|
+
getRx(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Returns Vertical radius of an object (according to how an object is scaled)
|
|
46
|
+
* @return {Number}
|
|
47
|
+
*/
|
|
48
|
+
getRy(): number;
|
|
49
|
+
/**
|
|
50
|
+
* Returns object representation of an instance
|
|
51
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
52
|
+
* @return {Object} object representation of an instance
|
|
53
|
+
*/
|
|
54
|
+
toObject<T extends Omit<Props & TClassProperties<this>, keyof SProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SProps;
|
|
55
|
+
/**
|
|
56
|
+
* Returns svg representation of an instance
|
|
57
|
+
* @return {Array} an array of strings with the specific svg representation
|
|
58
|
+
* of the instance
|
|
59
|
+
*/
|
|
60
|
+
_toSVG(): (string | number)[];
|
|
61
|
+
/**
|
|
62
|
+
* @private
|
|
63
|
+
* @param {CanvasRenderingContext2D} ctx context to render on
|
|
64
|
+
*/
|
|
65
|
+
_render(ctx: CanvasRenderingContext2D): void;
|
|
66
|
+
/**
|
|
67
|
+
* List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})
|
|
68
|
+
* @static
|
|
69
|
+
* @memberOf Ellipse
|
|
70
|
+
* @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement
|
|
71
|
+
*/
|
|
72
|
+
static ATTRIBUTE_NAMES: string[];
|
|
73
|
+
/**
|
|
74
|
+
* Returns {@link Ellipse} instance from an SVG element
|
|
75
|
+
* @static
|
|
76
|
+
* @memberOf Ellipse
|
|
77
|
+
* @param {SVGElement} element Element to parse
|
|
78
|
+
* @param {Function} [callback] Options callback invoked after parsing is finished
|
|
79
|
+
* @return {Ellipse}
|
|
80
|
+
*/
|
|
81
|
+
static fromElement(element: SVGElement, callback: (ellipse: Ellipse) => void): void;
|
|
82
|
+
}
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=Ellipse.d.ts.map
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import type { CollectionEvents, ObjectEvents } from '../EventTypeDefs';
|
|
2
|
+
import { Point } from '../Point';
|
|
3
|
+
import type { TClassProperties, TSVGReviver } from '../typedefs';
|
|
4
|
+
import { FabricObject } from './Object/FabricObject';
|
|
5
|
+
import { FabricObjectProps, SerializedObjectProps, TProps } from './Object/types';
|
|
6
|
+
export type LayoutContextType = 'initialization' | 'object_modified' | 'added' | 'removed' | 'layout_change' | 'imperative';
|
|
7
|
+
export type LayoutContext = {
|
|
8
|
+
type: LayoutContextType;
|
|
9
|
+
/**
|
|
10
|
+
* array of objects starting from the object that triggered the call to the current one
|
|
11
|
+
*/
|
|
12
|
+
path?: Group[];
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
export type GroupEvents = ObjectEvents & CollectionEvents & {
|
|
16
|
+
layout: {
|
|
17
|
+
context: LayoutContext;
|
|
18
|
+
result: LayoutResult;
|
|
19
|
+
diff: Point;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type LayoutStrategy = 'fit-content' | 'fit-content-lazy' | 'fixed' | 'clip-path';
|
|
23
|
+
/**
|
|
24
|
+
* positioning and layout data **relative** to instance's parent
|
|
25
|
+
*/
|
|
26
|
+
export type LayoutResult = {
|
|
27
|
+
/**
|
|
28
|
+
* new centerX as measured by the containing plane (same as `left` with `originX` set to `center`)
|
|
29
|
+
*/
|
|
30
|
+
centerX: number;
|
|
31
|
+
/**
|
|
32
|
+
* new centerY as measured by the containing plane (same as `top` with `originY` set to `center`)
|
|
33
|
+
*/
|
|
34
|
+
centerY: number;
|
|
35
|
+
/**
|
|
36
|
+
* correctionX to translate objects by, measured as `centerX`
|
|
37
|
+
*/
|
|
38
|
+
correctionX?: number;
|
|
39
|
+
/**
|
|
40
|
+
* correctionY to translate objects by, measured as `centerY`
|
|
41
|
+
*/
|
|
42
|
+
correctionY?: number;
|
|
43
|
+
width: number;
|
|
44
|
+
height: number;
|
|
45
|
+
};
|
|
46
|
+
export interface GroupOwnProps {
|
|
47
|
+
layout: LayoutStrategy;
|
|
48
|
+
subTargetCheck: boolean;
|
|
49
|
+
interactive: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface SerializedGroupProps extends SerializedObjectProps, GroupOwnProps {
|
|
52
|
+
objects: SerializedObjectProps[];
|
|
53
|
+
}
|
|
54
|
+
export interface GroupProps extends FabricObjectProps, GroupOwnProps {
|
|
55
|
+
}
|
|
56
|
+
export declare const groupDefaultValues: {
|
|
57
|
+
layout: string;
|
|
58
|
+
strokeWidth: number;
|
|
59
|
+
subTargetCheck: boolean;
|
|
60
|
+
interactive: boolean;
|
|
61
|
+
};
|
|
62
|
+
declare const Group_base: {
|
|
63
|
+
new (...args: any[]): {
|
|
64
|
+
_objects: import("../EventTypeDefs").BaseFabricObject[];
|
|
65
|
+
_onObjectAdded(object: import("../EventTypeDefs").BaseFabricObject): void;
|
|
66
|
+
_onObjectRemoved(object: import("../EventTypeDefs").BaseFabricObject): void;
|
|
67
|
+
_onStackOrderChanged(object: import("../EventTypeDefs").BaseFabricObject): void;
|
|
68
|
+
add(...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
|
|
69
|
+
insertAt(index: number, ...objects: import("../EventTypeDefs").BaseFabricObject[]): number;
|
|
70
|
+
remove(...objects: import("../EventTypeDefs").BaseFabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
|
|
71
|
+
forEachObject(callback: (object: import("../EventTypeDefs").BaseFabricObject, index: number, array: import("../EventTypeDefs").BaseFabricObject[]) => any): void;
|
|
72
|
+
getObjects(...types: string[]): import("../EventTypeDefs").BaseFabricObject[];
|
|
73
|
+
item(index: number): import("../EventTypeDefs").BaseFabricObject;
|
|
74
|
+
isEmpty(): boolean;
|
|
75
|
+
size(): number;
|
|
76
|
+
contains(object: import("../EventTypeDefs").BaseFabricObject, deep?: boolean | undefined): boolean;
|
|
77
|
+
complexity(): number;
|
|
78
|
+
sendObjectToBack(object: import("../EventTypeDefs").BaseFabricObject): boolean;
|
|
79
|
+
bringObjectToFront(object: import("../EventTypeDefs").BaseFabricObject): boolean;
|
|
80
|
+
sendObjectBackwards(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
|
|
81
|
+
bringObjectForward(object: import("../EventTypeDefs").BaseFabricObject, intersecting?: boolean | undefined): boolean;
|
|
82
|
+
moveObjectTo(object: import("../EventTypeDefs").BaseFabricObject, index: number): boolean;
|
|
83
|
+
findNewLowerIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
|
|
84
|
+
findNewUpperIndex(object: import("../EventTypeDefs").BaseFabricObject, idx: number, intersecting?: boolean | undefined): number;
|
|
85
|
+
collectObjects({ left, top, width, height }: import("../typedefs").TBBox, { includeIntersecting }?: {
|
|
86
|
+
includeIntersecting?: boolean | undefined;
|
|
87
|
+
}): import("./Object/InteractiveObject").InteractiveFabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[];
|
|
88
|
+
};
|
|
89
|
+
} & {
|
|
90
|
+
new (options?: GroupProps): FabricObject<GroupProps, SerializedGroupProps, GroupEvents>;
|
|
91
|
+
ownDefaults: Record<string, any>;
|
|
92
|
+
getDefaults(): Record<string, any>;
|
|
93
|
+
stateProperties: string[];
|
|
94
|
+
cacheProperties: string[];
|
|
95
|
+
_fromObject<S extends import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>>(object: Record<string, unknown>, { extraParam, ...options }?: {
|
|
96
|
+
extraParam?: string | undefined;
|
|
97
|
+
signal?: AbortSignal | undefined;
|
|
98
|
+
}): Promise<S>;
|
|
99
|
+
fromObject<T extends TProps<SerializedObjectProps>>(object: T, options?: {
|
|
100
|
+
signal?: AbortSignal | undefined;
|
|
101
|
+
} | undefined): Promise<import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>>;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* @fires object:added
|
|
105
|
+
* @fires object:removed
|
|
106
|
+
* @fires layout once layout completes
|
|
107
|
+
*/
|
|
108
|
+
export declare class Group extends Group_base {
|
|
109
|
+
/**
|
|
110
|
+
* Specifies the **layout strategy** for instance
|
|
111
|
+
* Used by `getLayoutStrategyResult` to calculate layout
|
|
112
|
+
* `fit-content`, `fit-content-lazy`, `fixed`, `clip-path` are supported out of the box
|
|
113
|
+
* @default
|
|
114
|
+
*/
|
|
115
|
+
layout: LayoutStrategy;
|
|
116
|
+
/**
|
|
117
|
+
* Used to optimize performance
|
|
118
|
+
* set to `false` if you don't need contained objects to be targets of events
|
|
119
|
+
* @default
|
|
120
|
+
* @type boolean
|
|
121
|
+
*/
|
|
122
|
+
subTargetCheck: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Used to allow targeting of object inside groups.
|
|
125
|
+
* set to true if you want to select an object inside a group.\
|
|
126
|
+
* **REQUIRES** `subTargetCheck` set to true
|
|
127
|
+
* @default
|
|
128
|
+
* @type boolean
|
|
129
|
+
*/
|
|
130
|
+
interactive: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Used internally to optimize performance
|
|
133
|
+
* Once an object is selected, instance is rendered without the selected object.
|
|
134
|
+
* This way instance is cached only once for the entire interaction with the selected object.
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
protected _activeObjects: FabricObject[];
|
|
138
|
+
static stateProperties: string[];
|
|
139
|
+
static ownDefaults: Record<string, any>;
|
|
140
|
+
private __objectSelectionTracker;
|
|
141
|
+
private __objectSelectionDisposer;
|
|
142
|
+
private _firstLayoutDone;
|
|
143
|
+
static getDefaults(): Record<string, any>;
|
|
144
|
+
/**
|
|
145
|
+
* Constructor
|
|
146
|
+
*
|
|
147
|
+
* @param {FabricObject[]} [objects] instance objects
|
|
148
|
+
* @param {Object} [options] Options object
|
|
149
|
+
* @param {boolean} [objectsRelativeToGroup] true if objects exist in group coordinate plane
|
|
150
|
+
*/
|
|
151
|
+
constructor(objects?: FabricObject[], options?: Partial<GroupProps>, objectsRelativeToGroup?: boolean);
|
|
152
|
+
/**
|
|
153
|
+
* Checks if object can enter group and logs relevant warnings
|
|
154
|
+
* @private
|
|
155
|
+
* @param {FabricObject} object
|
|
156
|
+
* @returns
|
|
157
|
+
*/
|
|
158
|
+
canEnterGroup(object: FabricObject): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Override this method to enhance performance (for groups with a lot of objects).
|
|
161
|
+
* If Overriding, be sure not pass illegal objects to group - it will break your app.
|
|
162
|
+
* @private
|
|
163
|
+
*/
|
|
164
|
+
protected _filterObjectsBeforeEnteringGroup(objects: FabricObject[]): FabricObject<Partial<FabricObjectProps>, SerializedObjectProps, ObjectEvents>[];
|
|
165
|
+
/**
|
|
166
|
+
* Add objects
|
|
167
|
+
* @param {...FabricObject[]} objects
|
|
168
|
+
*/
|
|
169
|
+
add(...objects: FabricObject[]): number;
|
|
170
|
+
/**
|
|
171
|
+
* Inserts an object into collection at specified index
|
|
172
|
+
* @param {FabricObject[]} objects Object to insert
|
|
173
|
+
* @param {Number} index Index to insert object at
|
|
174
|
+
*/
|
|
175
|
+
insertAt(index: number, ...objects: FabricObject[]): number;
|
|
176
|
+
/**
|
|
177
|
+
* Remove objects
|
|
178
|
+
* @param {...FabricObject[]} objects
|
|
179
|
+
* @returns {FabricObject[]} removed objects
|
|
180
|
+
*/
|
|
181
|
+
remove(...objects: FabricObject[]): import("../EventTypeDefs").BaseFabricObject[];
|
|
182
|
+
_onObjectAdded(object: FabricObject): void;
|
|
183
|
+
_onRelativeObjectAdded(object: FabricObject): void;
|
|
184
|
+
/**
|
|
185
|
+
* @private
|
|
186
|
+
* @param {FabricObject} object
|
|
187
|
+
* @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
|
|
188
|
+
*/
|
|
189
|
+
_onObjectRemoved(object: FabricObject, removeParentTransform?: boolean): void;
|
|
190
|
+
/**
|
|
191
|
+
* @private
|
|
192
|
+
* @param {'added'|'removed'} type
|
|
193
|
+
* @param {FabricObject[]} targets
|
|
194
|
+
*/
|
|
195
|
+
_onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]): void;
|
|
196
|
+
_onStackOrderChanged(): void;
|
|
197
|
+
/**
|
|
198
|
+
* @private
|
|
199
|
+
* @param {string} key
|
|
200
|
+
* @param {*} value
|
|
201
|
+
*/
|
|
202
|
+
_set(key: string, value: any): this;
|
|
203
|
+
/**
|
|
204
|
+
* @private
|
|
205
|
+
*/
|
|
206
|
+
_shouldSetNestedCoords(): boolean;
|
|
207
|
+
/**
|
|
208
|
+
* Remove all objects
|
|
209
|
+
* @returns {FabricObject[]} removed objects
|
|
210
|
+
*/
|
|
211
|
+
removeAll(): import("../EventTypeDefs").BaseFabricObject[];
|
|
212
|
+
/**
|
|
213
|
+
* invalidates layout on object modified
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
__objectMonitor(ev: ObjectEvents['modified']): void;
|
|
217
|
+
/**
|
|
218
|
+
* keeps track of the selected objects
|
|
219
|
+
* @private
|
|
220
|
+
*/
|
|
221
|
+
__objectSelectionMonitor<T extends boolean>(selected: T, { target: object }: ObjectEvents[T extends true ? 'selected' : 'deselected']): void;
|
|
222
|
+
/**
|
|
223
|
+
* @private
|
|
224
|
+
* @param {boolean} watch
|
|
225
|
+
* @param {FabricObject} object
|
|
226
|
+
*/
|
|
227
|
+
_watchObject(watch: boolean, object: FabricObject): void;
|
|
228
|
+
/**
|
|
229
|
+
* @private
|
|
230
|
+
* @param {FabricObject} object
|
|
231
|
+
* @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
|
|
232
|
+
* @returns {boolean} true if object entered group
|
|
233
|
+
*/
|
|
234
|
+
enterGroup(object: FabricObject, removeParentTransform?: boolean): boolean;
|
|
235
|
+
/**
|
|
236
|
+
* @private
|
|
237
|
+
* @param {FabricObject} object
|
|
238
|
+
* @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane
|
|
239
|
+
*/
|
|
240
|
+
_enterGroup(object: FabricObject, removeParentTransform?: boolean): void;
|
|
241
|
+
/**
|
|
242
|
+
* @private
|
|
243
|
+
* @param {FabricObject} object
|
|
244
|
+
* @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
|
|
245
|
+
*/
|
|
246
|
+
exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
|
|
247
|
+
/**
|
|
248
|
+
* @private
|
|
249
|
+
* @param {FabricObject} object
|
|
250
|
+
* @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it
|
|
251
|
+
*/
|
|
252
|
+
_exitGroup(object: FabricObject, removeParentTransform?: boolean): void;
|
|
253
|
+
/**
|
|
254
|
+
* Decide if the object should cache or not. Create its own cache level
|
|
255
|
+
* needsItsOwnCache should be used when the object drawing method requires
|
|
256
|
+
* a cache step. None of the fabric classes requires it.
|
|
257
|
+
* Generally you do not cache objects in groups because the group is already cached.
|
|
258
|
+
* @return {Boolean}
|
|
259
|
+
*/
|
|
260
|
+
shouldCache(): boolean;
|
|
261
|
+
/**
|
|
262
|
+
* Check if this object or a child object will cast a shadow
|
|
263
|
+
* @return {Boolean}
|
|
264
|
+
*/
|
|
265
|
+
willDrawShadow(): boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Check if instance or its group are caching, recursively up
|
|
268
|
+
* @return {Boolean}
|
|
269
|
+
*/
|
|
270
|
+
isOnACache(): boolean;
|
|
271
|
+
/**
|
|
272
|
+
* Execute the drawing operation for an object on a specified context
|
|
273
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
274
|
+
*/
|
|
275
|
+
drawObject(ctx: CanvasRenderingContext2D): void;
|
|
276
|
+
/**
|
|
277
|
+
* @override
|
|
278
|
+
* @return {Boolean}
|
|
279
|
+
*/
|
|
280
|
+
setCoords(): void;
|
|
281
|
+
/**
|
|
282
|
+
* Renders instance on a given context
|
|
283
|
+
* @param {CanvasRenderingContext2D} ctx context to render instance on
|
|
284
|
+
*/
|
|
285
|
+
render(ctx: CanvasRenderingContext2D): void;
|
|
286
|
+
/**
|
|
287
|
+
* @public
|
|
288
|
+
* @param {Partial<LayoutResult> & { layout?: string }} [context] pass values to use for layout calculations
|
|
289
|
+
*/
|
|
290
|
+
triggerLayout<T extends this['layout']>(context?: Partial<LayoutResult> & {
|
|
291
|
+
layout?: T;
|
|
292
|
+
}): void;
|
|
293
|
+
/**
|
|
294
|
+
* @private
|
|
295
|
+
* @param {FabricObject} object
|
|
296
|
+
* @param {Point} diff
|
|
297
|
+
*/
|
|
298
|
+
_adjustObjectPosition(object: FabricObject, diff: Point): void;
|
|
299
|
+
/**
|
|
300
|
+
* initial layout logic:
|
|
301
|
+
* calculate bbox of objects (if necessary) and translate it according to options received from the constructor (left, top, width, height)
|
|
302
|
+
* so it is placed in the center of the bbox received from the constructor
|
|
303
|
+
*
|
|
304
|
+
* @private
|
|
305
|
+
* @param {LayoutContext} context
|
|
306
|
+
*/
|
|
307
|
+
_applyLayoutStrategy(context: LayoutContext): void;
|
|
308
|
+
/**
|
|
309
|
+
* Override this method to customize layout.
|
|
310
|
+
* If you need to run logic once layout completes use `onLayout`
|
|
311
|
+
* @public
|
|
312
|
+
* @param {string} layoutDirective
|
|
313
|
+
* @param {FabricObject[]} objects
|
|
314
|
+
* @param {LayoutContext} context
|
|
315
|
+
* @returns {LayoutResult | undefined}
|
|
316
|
+
*/
|
|
317
|
+
getLayoutStrategyResult<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): any;
|
|
318
|
+
/**
|
|
319
|
+
* Override this method to customize layout.
|
|
320
|
+
* A wrapper around {@link Group#getObjectsBoundingBox}
|
|
321
|
+
* @public
|
|
322
|
+
* @param {string} layoutDirective
|
|
323
|
+
* @param {FabricObject[]} objects
|
|
324
|
+
* @param {LayoutContext} context
|
|
325
|
+
* @returns {LayoutResult | undefined}
|
|
326
|
+
*/
|
|
327
|
+
prepareBoundingBox<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): any;
|
|
328
|
+
/**
|
|
329
|
+
* Calculates center taking into account originX, originY while not being sure that width/height are initialized
|
|
330
|
+
* @public
|
|
331
|
+
* @param {string} layoutDirective
|
|
332
|
+
* @param {FabricObject[]} objects
|
|
333
|
+
* @param {LayoutContext} context
|
|
334
|
+
* @returns {LayoutResult | undefined}
|
|
335
|
+
*/
|
|
336
|
+
prepareInitialBoundingBox<T extends this['layout']>(layoutDirective: T, objects: FabricObject[], context: LayoutContext): {
|
|
337
|
+
centerX: number;
|
|
338
|
+
centerY: number;
|
|
339
|
+
correctionX: number;
|
|
340
|
+
correctionY: number;
|
|
341
|
+
width: number;
|
|
342
|
+
height: number;
|
|
343
|
+
} | undefined;
|
|
344
|
+
/**
|
|
345
|
+
* Calculate the bbox of objects relative to instance's containing plane
|
|
346
|
+
* @public
|
|
347
|
+
* @param {FabricObject[]} objects
|
|
348
|
+
* @returns {LayoutResult | null} bounding box
|
|
349
|
+
*/
|
|
350
|
+
getObjectsBoundingBox(objects: FabricObject[], ignoreOffset?: boolean): LayoutResult | null;
|
|
351
|
+
/**
|
|
352
|
+
* Hook that is called once layout has completed.
|
|
353
|
+
* Provided for layout customization, override if necessary.
|
|
354
|
+
* Complements `getLayoutStrategyResult`, which is called at the beginning of layout.
|
|
355
|
+
* @public
|
|
356
|
+
* @param {LayoutContext} context layout context
|
|
357
|
+
* @param {LayoutResult} result layout result
|
|
358
|
+
*/
|
|
359
|
+
onLayout(context: LayoutContext, result: LayoutResult): void;
|
|
360
|
+
/**
|
|
361
|
+
*
|
|
362
|
+
* @private
|
|
363
|
+
* @param {'toObject'|'toDatalessObject'} [method]
|
|
364
|
+
* @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
365
|
+
* @returns {FabricObject[]} serialized objects
|
|
366
|
+
*/
|
|
367
|
+
__serializeObjects(method: 'toObject' | 'toDatalessObject', propertiesToInclude?: string[]): any[];
|
|
368
|
+
/**
|
|
369
|
+
* Returns object representation of an instance
|
|
370
|
+
* @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
371
|
+
* @return {Object} object representation of an instance
|
|
372
|
+
*/
|
|
373
|
+
toObject<T extends Omit<GroupProps & TClassProperties<this>, keyof SerializedGroupProps>, K extends keyof T = never>(propertiesToInclude?: K[]): Pick<T, K> & SerializedGroupProps;
|
|
374
|
+
toString(): string;
|
|
375
|
+
dispose(): void;
|
|
376
|
+
/**
|
|
377
|
+
* @private
|
|
378
|
+
*/
|
|
379
|
+
_createSVGBgRect(reviver?: TSVGReviver): string;
|
|
380
|
+
/**
|
|
381
|
+
* Returns svg representation of an instance
|
|
382
|
+
* @param {TSVGReviver} [reviver] Method for further parsing of svg representation.
|
|
383
|
+
* @return {String} svg representation of an instance
|
|
384
|
+
*/
|
|
385
|
+
_toSVG(reviver?: TSVGReviver): string[];
|
|
386
|
+
/**
|
|
387
|
+
* Returns styles-string for svg-export, specific version for group
|
|
388
|
+
* @return {String}
|
|
389
|
+
*/
|
|
390
|
+
getSvgStyles(): string;
|
|
391
|
+
/**
|
|
392
|
+
* Returns svg clipPath representation of an instance
|
|
393
|
+
* @param {Function} [reviver] Method for further parsing of svg representation.
|
|
394
|
+
* @return {String} svg representation of an instance
|
|
395
|
+
*/
|
|
396
|
+
toClipPathSVG(reviver?: TSVGReviver): string;
|
|
397
|
+
/**
|
|
398
|
+
* @todo support loading from svg
|
|
399
|
+
* @private
|
|
400
|
+
* @static
|
|
401
|
+
* @memberOf Group
|
|
402
|
+
* @param {Object} object Object to create a group from
|
|
403
|
+
* @returns {Promise<Group>}
|
|
404
|
+
*/
|
|
405
|
+
static fromObject<T extends TProps<SerializedGroupProps>>({ objects, ...options }: T): Promise<Group>;
|
|
406
|
+
}
|
|
407
|
+
export {};
|
|
408
|
+
//# sourceMappingURL=Group.d.ts.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { DragEventData, DropEventData, TPointerEvent } from '../../EventTypeDefs';
|
|
2
|
+
import type { IText } from './IText';
|
|
3
|
+
/**
|
|
4
|
+
* #### Dragging IText/Textbox Lifecycle
|
|
5
|
+
* - {@link start} is called from `mousedown` {@link IText#_mouseDownHandler} and determines if dragging should start by testing {@link isPointerOverSelection}
|
|
6
|
+
* - if true `mousedown` {@link IText#_mouseDownHandler} is blocked to keep selection
|
|
7
|
+
* - if the pointer moves, canvas fires numerous mousemove {@link Canvas#_onMouseMove} that we make sure **aren't** prevented ({@link IText#shouldStartDragging}) in order for the window to start a drag session
|
|
8
|
+
* - once/if the session starts canvas calls {@link onDragStart} on the active object to determine if dragging should occur
|
|
9
|
+
* - canvas fires relevant drag events that are handled by the handlers defined in this scope
|
|
10
|
+
* - {@link end} is called from `mouseup` {@link IText#mouseUpHandler}, blocking IText default click behavior
|
|
11
|
+
* - in case the drag session didn't occur, {@link end} handles a click, since logic to do so was blocked during `mousedown`
|
|
12
|
+
*/
|
|
13
|
+
export declare class DraggableTextDelegate {
|
|
14
|
+
readonly target: IText;
|
|
15
|
+
private __mouseDownInPlace;
|
|
16
|
+
private __dragStartFired;
|
|
17
|
+
private __isDraggingOver;
|
|
18
|
+
private __dragStartSelection?;
|
|
19
|
+
private __dragImageDisposer?;
|
|
20
|
+
private _dispose?;
|
|
21
|
+
constructor(target: IText);
|
|
22
|
+
isPointerOverSelection(e: TPointerEvent): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @public override this method to disable dragging and default to mousedown logic
|
|
25
|
+
*/
|
|
26
|
+
start(e: TPointerEvent): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* @public override this method to disable dragging without discarding selection
|
|
29
|
+
*/
|
|
30
|
+
isActive(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Ends interaction and sets cursor in case of a click
|
|
33
|
+
* @returns true if was active
|
|
34
|
+
*/
|
|
35
|
+
end(e: TPointerEvent): boolean;
|
|
36
|
+
getDragStartSelection(): {
|
|
37
|
+
selectionStart: number;
|
|
38
|
+
selectionEnd: number;
|
|
39
|
+
} | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Override to customize the drag image
|
|
42
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setDragImage
|
|
43
|
+
*/
|
|
44
|
+
setDragImage(e: DragEvent, { selectionStart, selectionEnd, }: {
|
|
45
|
+
selectionStart: number;
|
|
46
|
+
selectionEnd: number;
|
|
47
|
+
}): void;
|
|
48
|
+
/**
|
|
49
|
+
* @returns {boolean} determines whether {@link target} should/shouldn't become a drag source
|
|
50
|
+
*/
|
|
51
|
+
onDragStart(e: DragEvent): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* use {@link targetCanDrop} to respect overriding
|
|
54
|
+
* @returns {boolean} determines whether {@link target} should/shouldn't become a drop target
|
|
55
|
+
*/
|
|
56
|
+
canDrop(e: DragEvent): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* in order to respect overriding {@link IText#canDrop} we call that instead of calling {@link canDrop} directly
|
|
59
|
+
*/
|
|
60
|
+
protected targetCanDrop(e: DragEvent): boolean;
|
|
61
|
+
dragEnterHandler({ e }: DragEventData): void;
|
|
62
|
+
dragOverHandler(ev: DragEventData): void;
|
|
63
|
+
dragLeaveHandler(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Override the `text/plain | application/fabric` types of {@link DragEvent#dataTransfer}
|
|
66
|
+
* in order to change the drop value or to customize styling respectively, by listening to the `drop:before` event
|
|
67
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#performing_a_drop
|
|
68
|
+
*/
|
|
69
|
+
dropHandler(ev: DropEventData): void;
|
|
70
|
+
/**
|
|
71
|
+
* fired only on the drag source after drop (if occurred)
|
|
72
|
+
* handle changes to the drag source in case of a drop on another object or a cancellation
|
|
73
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations#finishing_a_drag
|
|
74
|
+
*/
|
|
75
|
+
dragEndHandler({ e }: DragEventData): void;
|
|
76
|
+
dispose(): void;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=DraggableTextDelegate.d.ts.map
|