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,754 @@
|
|
|
1
|
+
import { Point } from '../Point';
|
|
2
|
+
import { FabricObject } from '../shapes/Object/FabricObject';
|
|
3
|
+
import { CanvasEvents, ModifierKey, TOptionalModifierKey, TPointerEvent, Transform } from '../EventTypeDefs';
|
|
4
|
+
import { StaticCanvas, TCanvasSizeOptions } from './StaticCanvas';
|
|
5
|
+
import { AssertKeys, TMat2D, TOriginX, TOriginY, TSize } from '../typedefs';
|
|
6
|
+
import type { BaseBrush } from '../brushes/BaseBrush';
|
|
7
|
+
import { TSVGReviver } from '../typedefs';
|
|
8
|
+
import { ActiveSelection } from '../shapes/ActiveSelection';
|
|
9
|
+
export declare const DefaultCanvasProperties: {
|
|
10
|
+
uniformScaling: boolean;
|
|
11
|
+
uniScaleKey: string;
|
|
12
|
+
centeredScaling: boolean;
|
|
13
|
+
centeredRotation: boolean;
|
|
14
|
+
centeredKey: string;
|
|
15
|
+
altActionKey: string;
|
|
16
|
+
selection: boolean;
|
|
17
|
+
selectionKey: string;
|
|
18
|
+
selectionColor: string;
|
|
19
|
+
selectionDashArray: never[];
|
|
20
|
+
selectionBorderColor: string;
|
|
21
|
+
selectionLineWidth: number;
|
|
22
|
+
selectionFullyContained: boolean;
|
|
23
|
+
hoverCursor: string;
|
|
24
|
+
moveCursor: string;
|
|
25
|
+
defaultCursor: string;
|
|
26
|
+
freeDrawingCursor: string;
|
|
27
|
+
notAllowedCursor: string;
|
|
28
|
+
containerClass: string;
|
|
29
|
+
perPixelTargetFind: boolean;
|
|
30
|
+
targetFindTolerance: number;
|
|
31
|
+
skipTargetFind: boolean;
|
|
32
|
+
preserveObjectStacking: boolean;
|
|
33
|
+
stopContextMenu: boolean;
|
|
34
|
+
fireRightClick: boolean;
|
|
35
|
+
fireMiddleClick: boolean;
|
|
36
|
+
enablePointerEvents: boolean;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Canvas class
|
|
40
|
+
* @class Canvas
|
|
41
|
+
* @extends StaticCanvas
|
|
42
|
+
* @tutorial {@link http://fabricjs.com/fabric-intro-part-1#canvas}
|
|
43
|
+
*
|
|
44
|
+
* @fires object:modified at the end of a transform
|
|
45
|
+
* @fires object:rotating while an object is being rotated from the control
|
|
46
|
+
* @fires object:scaling while an object is being scaled by controls
|
|
47
|
+
* @fires object:moving while an object is being dragged
|
|
48
|
+
* @fires object:skewing while an object is being skewed from the controls
|
|
49
|
+
*
|
|
50
|
+
* @fires before:transform before a transform is is started
|
|
51
|
+
* @fires before:selection:cleared
|
|
52
|
+
* @fires selection:cleared
|
|
53
|
+
* @fires selection:updated
|
|
54
|
+
* @fires selection:created
|
|
55
|
+
*
|
|
56
|
+
* @fires path:created after a drawing operation ends and the path is added
|
|
57
|
+
* @fires mouse:down
|
|
58
|
+
* @fires mouse:move
|
|
59
|
+
* @fires mouse:up
|
|
60
|
+
* @fires mouse:down:before on mouse down, before the inner fabric logic runs
|
|
61
|
+
* @fires mouse:move:before on mouse move, before the inner fabric logic runs
|
|
62
|
+
* @fires mouse:up:before on mouse up, before the inner fabric logic runs
|
|
63
|
+
* @fires mouse:over
|
|
64
|
+
* @fires mouse:out
|
|
65
|
+
* @fires mouse:dblclick whenever a native dbl click event fires on the canvas.
|
|
66
|
+
*
|
|
67
|
+
* @fires dragover
|
|
68
|
+
* @fires dragenter
|
|
69
|
+
* @fires dragleave
|
|
70
|
+
* @fires drag:enter object drag enter
|
|
71
|
+
* @fires drag:leave object drag leave
|
|
72
|
+
* @fires drop:before before drop event. Prepare for the drop event (same native event).
|
|
73
|
+
* @fires drop
|
|
74
|
+
* @fires drop:after after drop event. Run logic on canvas after event has been accepted/declined (same native event).
|
|
75
|
+
* @example
|
|
76
|
+
* let a: fabric.Object, b: fabric.Object;
|
|
77
|
+
* let flag = false;
|
|
78
|
+
* canvas.add(a, b);
|
|
79
|
+
* a.on('drop:before', opt => {
|
|
80
|
+
* // we want a to accept the drop even though it's below b in the stack
|
|
81
|
+
* flag = this.canDrop(opt.e);
|
|
82
|
+
* });
|
|
83
|
+
* b.canDrop = function(e) {
|
|
84
|
+
* !flag && this.draggableTextDelegate.canDrop(e);
|
|
85
|
+
* }
|
|
86
|
+
* b.on('dragover', opt => b.set('fill', opt.dropTarget === b ? 'pink' : 'black'));
|
|
87
|
+
* a.on('drop', opt => {
|
|
88
|
+
* opt.e.defaultPrevented // drop occurred
|
|
89
|
+
* opt.didDrop // drop occurred on canvas
|
|
90
|
+
* opt.target // drop target
|
|
91
|
+
* opt.target !== a && a.set('text', 'I lost');
|
|
92
|
+
* });
|
|
93
|
+
* canvas.on('drop:after', opt => {
|
|
94
|
+
* // inform user who won
|
|
95
|
+
* if(!opt.e.defaultPrevented) {
|
|
96
|
+
* // no winners
|
|
97
|
+
* }
|
|
98
|
+
* else if(!opt.didDrop) {
|
|
99
|
+
* // my objects didn't win, some other lucky object
|
|
100
|
+
* }
|
|
101
|
+
* else {
|
|
102
|
+
* // we have a winner it's opt.target!!
|
|
103
|
+
* }
|
|
104
|
+
* })
|
|
105
|
+
*
|
|
106
|
+
* @fires after:render at the end of the render process, receives the context in the callback
|
|
107
|
+
* @fires before:render at start the render process, receives the context in the callback
|
|
108
|
+
*
|
|
109
|
+
* @fires contextmenu:before
|
|
110
|
+
* @fires contextmenu
|
|
111
|
+
* @example
|
|
112
|
+
* let handler;
|
|
113
|
+
* targets.forEach(target => {
|
|
114
|
+
* target.on('contextmenu:before', opt => {
|
|
115
|
+
* // decide which target should handle the event before canvas hijacks it
|
|
116
|
+
* if (someCaseHappens && opt.targets.includes(target)) {
|
|
117
|
+
* handler = target;
|
|
118
|
+
* }
|
|
119
|
+
* });
|
|
120
|
+
* target.on('contextmenu', opt => {
|
|
121
|
+
* // do something fantastic
|
|
122
|
+
* });
|
|
123
|
+
* });
|
|
124
|
+
* canvas.on('contextmenu', opt => {
|
|
125
|
+
* if (!handler) {
|
|
126
|
+
* // no one takes responsibility, it's always left to me
|
|
127
|
+
* // let's show them how it's done!
|
|
128
|
+
* }
|
|
129
|
+
* });
|
|
130
|
+
*
|
|
131
|
+
*/
|
|
132
|
+
export declare class SelectableCanvas<EventSpec extends CanvasEvents = CanvasEvents> extends StaticCanvas<EventSpec> {
|
|
133
|
+
_objects: FabricObject[];
|
|
134
|
+
/**
|
|
135
|
+
* When true, objects can be transformed by one side (unproportionally)
|
|
136
|
+
* when dragged on the corners that normally would not do that.
|
|
137
|
+
* @type Boolean
|
|
138
|
+
* @default
|
|
139
|
+
* @since fabric 4.0 // changed name and default value
|
|
140
|
+
*/
|
|
141
|
+
uniformScaling: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Indicates which key switches uniform scaling.
|
|
144
|
+
* values: 'altKey', 'shiftKey', 'ctrlKey'.
|
|
145
|
+
* If `null` or 'none' or any other string that is not a modifier key
|
|
146
|
+
* feature is disabled.
|
|
147
|
+
* totally wrong named. this sounds like `uniform scaling`
|
|
148
|
+
* if Canvas.uniformScaling is true, pressing this will set it to false
|
|
149
|
+
* and viceversa.
|
|
150
|
+
* @since 1.6.2
|
|
151
|
+
* @type ModifierKey
|
|
152
|
+
* @default
|
|
153
|
+
*/
|
|
154
|
+
uniScaleKey: TOptionalModifierKey;
|
|
155
|
+
/**
|
|
156
|
+
* When true, objects use center point as the origin of scale transformation.
|
|
157
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
158
|
+
* @since 1.3.4
|
|
159
|
+
* @type Boolean
|
|
160
|
+
* @default
|
|
161
|
+
*/
|
|
162
|
+
centeredScaling: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* When true, objects use center point as the origin of rotate transformation.
|
|
165
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
166
|
+
* @since 1.3.4
|
|
167
|
+
* @type Boolean
|
|
168
|
+
* @default
|
|
169
|
+
*/
|
|
170
|
+
centeredRotation: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Indicates which key enable centered Transform
|
|
173
|
+
* values: 'altKey', 'shiftKey', 'ctrlKey'.
|
|
174
|
+
* If `null` or 'none' or any other string that is not a modifier key
|
|
175
|
+
* feature is disabled feature disabled.
|
|
176
|
+
* @since 1.6.2
|
|
177
|
+
* @type ModifierKey
|
|
178
|
+
* @default
|
|
179
|
+
*/
|
|
180
|
+
centeredKey: TOptionalModifierKey;
|
|
181
|
+
/**
|
|
182
|
+
* Indicates which key enable alternate action on corner
|
|
183
|
+
* values: 'altKey', 'shiftKey', 'ctrlKey'.
|
|
184
|
+
* If `null` or 'none' or any other string that is not a modifier key
|
|
185
|
+
* feature is disabled feature disabled.
|
|
186
|
+
* @since 1.6.2
|
|
187
|
+
* @type ModifierKey
|
|
188
|
+
* @default
|
|
189
|
+
*/
|
|
190
|
+
altActionKey: TOptionalModifierKey;
|
|
191
|
+
/**
|
|
192
|
+
* Indicates that canvas is interactive. This property should not be changed.
|
|
193
|
+
* @type Boolean
|
|
194
|
+
* @default
|
|
195
|
+
*/
|
|
196
|
+
interactive: boolean;
|
|
197
|
+
/**
|
|
198
|
+
* Indicates whether group selection should be enabled
|
|
199
|
+
* @type Boolean
|
|
200
|
+
* @default
|
|
201
|
+
*/
|
|
202
|
+
selection: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Indicates which key or keys enable multiple click selection
|
|
205
|
+
* Pass value as a string or array of strings
|
|
206
|
+
* values: 'altKey', 'shiftKey', 'ctrlKey'.
|
|
207
|
+
* If `null` or empty or containing any other string that is not a modifier key
|
|
208
|
+
* feature is disabled.
|
|
209
|
+
* @since 1.6.2
|
|
210
|
+
* @type ModifierKey|ModifierKey[]
|
|
211
|
+
* @default
|
|
212
|
+
*/
|
|
213
|
+
selectionKey: TOptionalModifierKey | ModifierKey[];
|
|
214
|
+
/**
|
|
215
|
+
* Indicates which key enable alternative selection
|
|
216
|
+
* in case of target overlapping with active object
|
|
217
|
+
* values: 'altKey', 'shiftKey', 'ctrlKey'.
|
|
218
|
+
* For a series of reason that come from the general expectations on how
|
|
219
|
+
* things should work, this feature works only for preserveObjectStacking true.
|
|
220
|
+
* If `null` or 'none' or any other string that is not a modifier key
|
|
221
|
+
* feature is disabled.
|
|
222
|
+
* @since 1.6.5
|
|
223
|
+
* @type null|ModifierKey
|
|
224
|
+
* @default
|
|
225
|
+
*/
|
|
226
|
+
altSelectionKey: TOptionalModifierKey;
|
|
227
|
+
/**
|
|
228
|
+
* Color of selection
|
|
229
|
+
* @type String
|
|
230
|
+
* @default
|
|
231
|
+
*/
|
|
232
|
+
selectionColor: string;
|
|
233
|
+
/**
|
|
234
|
+
* Default dash array pattern
|
|
235
|
+
* If not empty the selection border is dashed
|
|
236
|
+
* @type Array
|
|
237
|
+
*/
|
|
238
|
+
selectionDashArray: number[];
|
|
239
|
+
/**
|
|
240
|
+
* Color of the border of selection (usually slightly darker than color of selection itself)
|
|
241
|
+
* @type String
|
|
242
|
+
* @default
|
|
243
|
+
*/
|
|
244
|
+
selectionBorderColor: string;
|
|
245
|
+
/**
|
|
246
|
+
* Width of a line used in object/group selection
|
|
247
|
+
* @type Number
|
|
248
|
+
* @default
|
|
249
|
+
*/
|
|
250
|
+
selectionLineWidth: number;
|
|
251
|
+
/**
|
|
252
|
+
* Select only shapes that are fully contained in the dragged selection rectangle.
|
|
253
|
+
* @type Boolean
|
|
254
|
+
* @default
|
|
255
|
+
*/
|
|
256
|
+
selectionFullyContained: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Default cursor value used when hovering over an object on canvas
|
|
259
|
+
* @type CSSStyleDeclaration['cursor']
|
|
260
|
+
* @default move
|
|
261
|
+
*/
|
|
262
|
+
hoverCursor: CSSStyleDeclaration['cursor'];
|
|
263
|
+
/**
|
|
264
|
+
* Default cursor value used when moving an object on canvas
|
|
265
|
+
* @type CSSStyleDeclaration['cursor']
|
|
266
|
+
* @default move
|
|
267
|
+
*/
|
|
268
|
+
moveCursor: CSSStyleDeclaration['cursor'];
|
|
269
|
+
/**
|
|
270
|
+
* Default cursor value used for the entire canvas
|
|
271
|
+
* @type String
|
|
272
|
+
* @default default
|
|
273
|
+
*/
|
|
274
|
+
defaultCursor: CSSStyleDeclaration['cursor'];
|
|
275
|
+
/**
|
|
276
|
+
* Cursor value used during free drawing
|
|
277
|
+
* @type String
|
|
278
|
+
* @default crosshair
|
|
279
|
+
*/
|
|
280
|
+
freeDrawingCursor: CSSStyleDeclaration['cursor'];
|
|
281
|
+
/**
|
|
282
|
+
* Cursor value used for disabled elements ( corners with disabled action )
|
|
283
|
+
* @type String
|
|
284
|
+
* @since 2.0.0
|
|
285
|
+
* @default not-allowed
|
|
286
|
+
*/
|
|
287
|
+
notAllowedCursor: CSSStyleDeclaration['cursor'];
|
|
288
|
+
/**
|
|
289
|
+
* Default element class that's given to wrapper (div) element of canvas
|
|
290
|
+
* @type String
|
|
291
|
+
* @default
|
|
292
|
+
*/
|
|
293
|
+
containerClass: string;
|
|
294
|
+
/**
|
|
295
|
+
* When true, object detection happens on per-pixel basis rather than on per-bounding-box
|
|
296
|
+
* @type Boolean
|
|
297
|
+
* @default
|
|
298
|
+
*/
|
|
299
|
+
perPixelTargetFind: boolean;
|
|
300
|
+
/**
|
|
301
|
+
* Number of pixels around target pixel to tolerate (consider active) during object detection
|
|
302
|
+
* @type Number
|
|
303
|
+
* @default
|
|
304
|
+
*/
|
|
305
|
+
targetFindTolerance: number;
|
|
306
|
+
/**
|
|
307
|
+
* When true, target detection is skipped. Target detection will return always undefined.
|
|
308
|
+
* click selection won't work anymore, events will fire with no targets.
|
|
309
|
+
* if something is selected before setting it to true, it will be deselected at the first click.
|
|
310
|
+
* area selection will still work. check the `selection` property too.
|
|
311
|
+
* if you deactivate both, you should look into staticCanvas.
|
|
312
|
+
* @type Boolean
|
|
313
|
+
* @default
|
|
314
|
+
*/
|
|
315
|
+
skipTargetFind: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* When true, mouse events on canvas (mousedown/mousemove/mouseup) result in free drawing.
|
|
318
|
+
* After mousedown, mousemove creates a shape,
|
|
319
|
+
* and then mouseup finalizes it and adds an instance of `fabric.Path` onto canvas.
|
|
320
|
+
* @tutorial {@link http://fabricjs.com/fabric-intro-part-4#free_drawing}
|
|
321
|
+
* @type Boolean
|
|
322
|
+
* @default
|
|
323
|
+
*/
|
|
324
|
+
isDrawingMode: boolean;
|
|
325
|
+
/**
|
|
326
|
+
* Indicates whether objects should remain in current stack position when selected.
|
|
327
|
+
* When false objects are brought to top and rendered as part of the selection group
|
|
328
|
+
* @type Boolean
|
|
329
|
+
* @default
|
|
330
|
+
*/
|
|
331
|
+
preserveObjectStacking: boolean;
|
|
332
|
+
/**
|
|
333
|
+
* Indicates if the right click on canvas can output the context menu or not
|
|
334
|
+
* @type Boolean
|
|
335
|
+
* @since 1.6.5
|
|
336
|
+
* @default
|
|
337
|
+
*/
|
|
338
|
+
stopContextMenu: boolean;
|
|
339
|
+
/**
|
|
340
|
+
* Indicates if the canvas can fire right click events
|
|
341
|
+
* @type Boolean
|
|
342
|
+
* @since 1.6.5
|
|
343
|
+
* @default
|
|
344
|
+
*/
|
|
345
|
+
fireRightClick: boolean;
|
|
346
|
+
/**
|
|
347
|
+
* Indicates if the canvas can fire middle click events
|
|
348
|
+
* @type Boolean
|
|
349
|
+
* @since 1.7.8
|
|
350
|
+
* @default
|
|
351
|
+
*/
|
|
352
|
+
fireMiddleClick: boolean;
|
|
353
|
+
/**
|
|
354
|
+
* Keep track of the subTargets for Mouse Events
|
|
355
|
+
* @type FabricObject[]
|
|
356
|
+
*/
|
|
357
|
+
targets: FabricObject[];
|
|
358
|
+
/**
|
|
359
|
+
* Keep track of the hovered target
|
|
360
|
+
* @type FabricObject | null
|
|
361
|
+
* @private
|
|
362
|
+
*/
|
|
363
|
+
_hoveredTarget?: FabricObject;
|
|
364
|
+
/**
|
|
365
|
+
* hold the list of nested targets hovered
|
|
366
|
+
* @type FabricObject[]
|
|
367
|
+
* @private
|
|
368
|
+
*/
|
|
369
|
+
_hoveredTargets: FabricObject[];
|
|
370
|
+
/**
|
|
371
|
+
* hold the list of objects to render
|
|
372
|
+
* @type FabricObject[]
|
|
373
|
+
* @private
|
|
374
|
+
*/
|
|
375
|
+
_objectsToRender?: FabricObject[];
|
|
376
|
+
/**
|
|
377
|
+
* hold a referenfce to a data structure that contains information
|
|
378
|
+
* on the current on going transform
|
|
379
|
+
* @type
|
|
380
|
+
* @private
|
|
381
|
+
*/
|
|
382
|
+
_currentTransform: Transform | null;
|
|
383
|
+
/**
|
|
384
|
+
* hold a reference to a data structure used to track the selection
|
|
385
|
+
* box on canvas drag
|
|
386
|
+
* on the current on going transform
|
|
387
|
+
* @type
|
|
388
|
+
* @private
|
|
389
|
+
*/
|
|
390
|
+
protected _groupSelector: {
|
|
391
|
+
x: number;
|
|
392
|
+
y: number;
|
|
393
|
+
deltaX: number;
|
|
394
|
+
deltaY: number;
|
|
395
|
+
} | null;
|
|
396
|
+
/**
|
|
397
|
+
* internal flag used to understand if the context top requires a cleanup
|
|
398
|
+
* in case this is true, the contextTop will be cleared at the next render
|
|
399
|
+
* @type boolean
|
|
400
|
+
* @private
|
|
401
|
+
*/
|
|
402
|
+
contextTopDirty: boolean;
|
|
403
|
+
/**
|
|
404
|
+
* During a mouse event we may need the pointer multiple times in multiple functions.
|
|
405
|
+
* _absolutePointer holds a reference to the pointer in fabricCanvas/design coordinates that is valid for the event
|
|
406
|
+
* lifespan. Every fabricJS mouse event create and delete the cache every time
|
|
407
|
+
* We do this because there are some HTML DOM inspection functions to get the actual pointer coordinates
|
|
408
|
+
* @type {Point}
|
|
409
|
+
*/
|
|
410
|
+
protected _absolutePointer?: Point;
|
|
411
|
+
/**
|
|
412
|
+
* During a mouse event we may need the pointer multiple times in multiple functions.
|
|
413
|
+
* _pointer holds a reference to the pointer in html coordinates that is valid for the event
|
|
414
|
+
* lifespan. Every fabricJS mouse event create and delete the cache every time
|
|
415
|
+
* We do this because there are some HTML DOM inspection functions to get the actual pointer coordinates
|
|
416
|
+
* @type {Point}
|
|
417
|
+
*/
|
|
418
|
+
protected _pointer?: Point;
|
|
419
|
+
/**
|
|
420
|
+
* During a mouse event we may need the target multiple times in multiple functions.
|
|
421
|
+
* _target holds a reference to the target that is valid for the event
|
|
422
|
+
* lifespan. Every fabricJS mouse event create and delete the cache every time
|
|
423
|
+
* @type {FabricObject}
|
|
424
|
+
*/
|
|
425
|
+
protected _target?: FabricObject;
|
|
426
|
+
static ownDefaults: Record<string, any>;
|
|
427
|
+
static getDefaults(): Record<string, any>;
|
|
428
|
+
upperCanvasEl: HTMLCanvasElement;
|
|
429
|
+
contextTop: CanvasRenderingContext2D;
|
|
430
|
+
wrapperEl: HTMLDivElement;
|
|
431
|
+
private pixelFindCanvasEl;
|
|
432
|
+
private pixelFindContext;
|
|
433
|
+
protected _isCurrentlyDrawing: boolean;
|
|
434
|
+
freeDrawingBrush?: BaseBrush;
|
|
435
|
+
_activeObject?: FabricObject;
|
|
436
|
+
protected readonly _activeSelection: ActiveSelection;
|
|
437
|
+
constructor(el: string | HTMLCanvasElement, options?: {});
|
|
438
|
+
protected initElements(el: string | HTMLCanvasElement): void;
|
|
439
|
+
protected _initRetinaScaling(): void;
|
|
440
|
+
/**
|
|
441
|
+
* @private
|
|
442
|
+
* @param {FabricObject} obj Object that was added
|
|
443
|
+
*/
|
|
444
|
+
_onObjectAdded(obj: FabricObject): void;
|
|
445
|
+
/**
|
|
446
|
+
* @private
|
|
447
|
+
* @param {FabricObject} obj Object that was removed
|
|
448
|
+
*/
|
|
449
|
+
_onObjectRemoved(obj: FabricObject): void;
|
|
450
|
+
/**
|
|
451
|
+
* Divides objects in two groups, one to render immediately
|
|
452
|
+
* and one to render as activeGroup.
|
|
453
|
+
* @return {Array} objects to render immediately and pushes the other in the activeGroup.
|
|
454
|
+
*/
|
|
455
|
+
_chooseObjectsToRender(): FabricObject[];
|
|
456
|
+
/**
|
|
457
|
+
* Renders both the top canvas and the secondary container canvas.
|
|
458
|
+
*/
|
|
459
|
+
renderAll(): void;
|
|
460
|
+
/**
|
|
461
|
+
* text selection is rendered by the active text instance during the rendering cycle
|
|
462
|
+
*/
|
|
463
|
+
renderTopLayer(ctx: CanvasRenderingContext2D): void;
|
|
464
|
+
/**
|
|
465
|
+
* Method to render only the top canvas.
|
|
466
|
+
* Also used to render the group selection box.
|
|
467
|
+
* Does not render text selection.
|
|
468
|
+
*/
|
|
469
|
+
renderTop(): void;
|
|
470
|
+
/**
|
|
471
|
+
* Given a pointer on the canvas with a viewport applied,
|
|
472
|
+
* find out the pointer in object coordinates
|
|
473
|
+
* @private
|
|
474
|
+
*/
|
|
475
|
+
_normalizePointer(object: FabricObject, pointer: Point): Point;
|
|
476
|
+
/**
|
|
477
|
+
* Set the canvas tolerance value for pixel taret find.
|
|
478
|
+
* Use only integer numbers.
|
|
479
|
+
* @private
|
|
480
|
+
*/
|
|
481
|
+
setTargetFindTolerance(value: number): void;
|
|
482
|
+
/**
|
|
483
|
+
* Returns true if object is transparent at a certain location
|
|
484
|
+
* Clarification: this is `is target transparent at location X or are controls there`
|
|
485
|
+
* @TODO this seems dumb that we treat controls with transparency. we can find controls
|
|
486
|
+
* programmatically without painting them, the cache canvas optimization is always valid
|
|
487
|
+
* @param {FabricObject} target Object to check
|
|
488
|
+
* @param {Number} x Left coordinate
|
|
489
|
+
* @param {Number} y Top coordinate
|
|
490
|
+
* @return {Boolean}
|
|
491
|
+
*/
|
|
492
|
+
isTargetTransparent(target: FabricObject, x: number, y: number): boolean;
|
|
493
|
+
/**
|
|
494
|
+
* takes an event and determines if selection key has been pressed
|
|
495
|
+
* @private
|
|
496
|
+
* @param {TPointerEvent} e Event object
|
|
497
|
+
*/
|
|
498
|
+
_isSelectionKeyPressed(e: TPointerEvent): boolean;
|
|
499
|
+
/**
|
|
500
|
+
* @private
|
|
501
|
+
* @param {TPointerEvent} e Event object
|
|
502
|
+
* @param {FabricObject} target
|
|
503
|
+
*/
|
|
504
|
+
_shouldClearSelection(e: TPointerEvent, target?: FabricObject): target is undefined;
|
|
505
|
+
/**
|
|
506
|
+
* This method will take in consideration a modifier key pressed and the control we are
|
|
507
|
+
* about to drag, and try to guess the anchor point ( origin ) of the transormation.
|
|
508
|
+
* This should be really in the realm of controls, and we should remove specific code for legacy
|
|
509
|
+
* embedded actions.
|
|
510
|
+
* @TODO this probably deserve discussion/rediscovery and change/refactor
|
|
511
|
+
* @private
|
|
512
|
+
* @deprecated
|
|
513
|
+
* @param {FabricObject} target
|
|
514
|
+
* @param {string} action
|
|
515
|
+
* @param {boolean} altKey
|
|
516
|
+
* @returns {boolean} true if the transformation should be centered
|
|
517
|
+
*/
|
|
518
|
+
private _shouldCenterTransform;
|
|
519
|
+
/**
|
|
520
|
+
* Given the control clicked, determine the origin of the transform.
|
|
521
|
+
* This is bad because controls can totally have custom names
|
|
522
|
+
* should disappear before release 4.0
|
|
523
|
+
* @private
|
|
524
|
+
* @deprecated
|
|
525
|
+
*/
|
|
526
|
+
_getOriginFromCorner(target: FabricObject, controlName: string): {
|
|
527
|
+
x: TOriginX;
|
|
528
|
+
y: TOriginY;
|
|
529
|
+
};
|
|
530
|
+
/**
|
|
531
|
+
* @private
|
|
532
|
+
* @param {Event} e Event object
|
|
533
|
+
* @param {FaricObject} target
|
|
534
|
+
*/
|
|
535
|
+
_setupCurrentTransform(e: TPointerEvent, target: FabricObject, alreadySelected: boolean): void;
|
|
536
|
+
/**
|
|
537
|
+
* Set the cursor type of the canvas element
|
|
538
|
+
* @param {String} value Cursor type of the canvas element.
|
|
539
|
+
* @see http://www.w3.org/TR/css3-ui/#cursor
|
|
540
|
+
*/
|
|
541
|
+
setCursor(value: CSSStyleDeclaration['cursor']): void;
|
|
542
|
+
/**
|
|
543
|
+
* @private
|
|
544
|
+
* @param {CanvasRenderingContext2D} ctx to draw the selection on
|
|
545
|
+
*/
|
|
546
|
+
_drawSelection(ctx: CanvasRenderingContext2D): void;
|
|
547
|
+
/**
|
|
548
|
+
* Method that determines what object we are clicking on
|
|
549
|
+
* 11/09/2018 TODO: would be cool if findTarget could discern between being a full target
|
|
550
|
+
* or the outside part of the corner.
|
|
551
|
+
* @param {Event} e mouse event
|
|
552
|
+
* @return {FabricObject | null} the target found
|
|
553
|
+
*/
|
|
554
|
+
findTarget(e: TPointerEvent): FabricObject | undefined;
|
|
555
|
+
/**
|
|
556
|
+
* Checks point is inside the object.
|
|
557
|
+
* @param {Object} [pointer] x,y object of point coordinates we want to check.
|
|
558
|
+
* @param {FabricObject} obj Object to test against
|
|
559
|
+
* @param {Object} [globalPointer] x,y object of point coordinates relative to canvas used to search per pixel target.
|
|
560
|
+
* @return {Boolean} true if point is contained within an area of given object
|
|
561
|
+
* @private
|
|
562
|
+
*/
|
|
563
|
+
_checkTarget(pointer: Point, obj: FabricObject, globalPointer: Point): boolean;
|
|
564
|
+
/**
|
|
565
|
+
* Internal Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted
|
|
566
|
+
* @param {Array} [objects] objects array to look into
|
|
567
|
+
* @param {Object} [pointer] x,y object of point coordinates we want to check.
|
|
568
|
+
* @return {FabricObject} **top most object from given `objects`** that contains pointer
|
|
569
|
+
* @private
|
|
570
|
+
*/
|
|
571
|
+
_searchPossibleTargets(objects: FabricObject[], pointer: Point): FabricObject | undefined;
|
|
572
|
+
/**
|
|
573
|
+
* Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted
|
|
574
|
+
* @see {@link fabric.Canvas#_searchPossibleTargets}
|
|
575
|
+
* @param {FabricObject[]} [objects] objects array to look into
|
|
576
|
+
* @param {Object} [pointer] x,y object of point coordinates we want to check.
|
|
577
|
+
* @return {FabricObject} **top most object on screen** that contains pointer
|
|
578
|
+
*/
|
|
579
|
+
searchPossibleTargets(objects: FabricObject[], pointer: Point): FabricObject | undefined;
|
|
580
|
+
/**
|
|
581
|
+
* Returns pointer coordinates without the effect of the viewport
|
|
582
|
+
* @param {Object} pointer with "x" and "y" number values in canvas HTML coordinates
|
|
583
|
+
* @return {Object} object with "x" and "y" number values in fabricCanvas coordinates
|
|
584
|
+
*/
|
|
585
|
+
restorePointerVpt(pointer: Point): Point;
|
|
586
|
+
/**
|
|
587
|
+
* Returns pointer coordinates relative to canvas.
|
|
588
|
+
* Can return coordinates with or without viewportTransform.
|
|
589
|
+
* ignoreVpt false gives back coordinates that represent
|
|
590
|
+
* the point clicked on canvas element.
|
|
591
|
+
* ignoreVpt true gives back coordinates after being processed
|
|
592
|
+
* by the viewportTransform ( sort of coordinates of what is displayed
|
|
593
|
+
* on the canvas where you are clicking.
|
|
594
|
+
* ignoreVpt true = HTMLElement coordinates relative to top,left
|
|
595
|
+
* ignoreVpt false, default = fabric space coordinates, the same used for shape position
|
|
596
|
+
* To interact with your shapes top and left you want to use ignoreVpt true
|
|
597
|
+
* most of the time, while ignoreVpt false will give you coordinates
|
|
598
|
+
* compatible with the object.oCoords system.
|
|
599
|
+
* of the time.
|
|
600
|
+
* @param {Event} e
|
|
601
|
+
* @param {Boolean} ignoreVpt
|
|
602
|
+
* @return {Point}
|
|
603
|
+
*/
|
|
604
|
+
getPointer(e: TPointerEvent, ignoreVpt?: boolean): Point;
|
|
605
|
+
/**
|
|
606
|
+
* Internal use only
|
|
607
|
+
* @protected
|
|
608
|
+
*/
|
|
609
|
+
protected _setDimensionsImpl(dimensions: TSize, options?: TCanvasSizeOptions): void;
|
|
610
|
+
/**
|
|
611
|
+
* Helper for setting width/height
|
|
612
|
+
* @private
|
|
613
|
+
* @param {String} prop property (width|height)
|
|
614
|
+
* @param {Number} value value to set property to
|
|
615
|
+
*/
|
|
616
|
+
_setBackstoreDimension(prop: keyof TSize, value: number): void;
|
|
617
|
+
/**
|
|
618
|
+
* Helper for setting css width/height
|
|
619
|
+
* @private
|
|
620
|
+
* @param {String} prop property (width|height)
|
|
621
|
+
* @param {String} value value to set property to
|
|
622
|
+
*/
|
|
623
|
+
_setCssDimension(prop: keyof TSize, value: string): void;
|
|
624
|
+
/**
|
|
625
|
+
* @private
|
|
626
|
+
* @throws {CANVAS_INIT_ERROR} If canvas can not be initialized
|
|
627
|
+
*/
|
|
628
|
+
protected _createUpperCanvas(): void;
|
|
629
|
+
protected _createCacheCanvas(): void;
|
|
630
|
+
protected _initWrapperElement(): void;
|
|
631
|
+
/**
|
|
632
|
+
* @private
|
|
633
|
+
* @param {HTMLCanvasElement} element canvas element to apply styles on
|
|
634
|
+
*/
|
|
635
|
+
protected _applyCanvasStyle(element: HTMLCanvasElement): void;
|
|
636
|
+
/**
|
|
637
|
+
* Returns context of top canvas where interactions are drawn
|
|
638
|
+
* @returns {CanvasRenderingContext2D}
|
|
639
|
+
*/
|
|
640
|
+
getTopContext(): CanvasRenderingContext2D;
|
|
641
|
+
/**
|
|
642
|
+
* Returns context of canvas where object selection is drawn
|
|
643
|
+
* @alias
|
|
644
|
+
* @return {CanvasRenderingContext2D}
|
|
645
|
+
*/
|
|
646
|
+
getSelectionContext(): CanvasRenderingContext2D;
|
|
647
|
+
/**
|
|
648
|
+
* Returns <canvas> element on which object selection is drawn
|
|
649
|
+
* @return {HTMLCanvasElement}
|
|
650
|
+
*/
|
|
651
|
+
getSelectionElement(): HTMLCanvasElement;
|
|
652
|
+
/**
|
|
653
|
+
* Returns currently active object
|
|
654
|
+
* @return {FabricObject | null} active object
|
|
655
|
+
*/
|
|
656
|
+
getActiveObject(): FabricObject | undefined;
|
|
657
|
+
/**
|
|
658
|
+
* Returns instance's active selection
|
|
659
|
+
*/
|
|
660
|
+
getActiveSelection(): ActiveSelection;
|
|
661
|
+
/**
|
|
662
|
+
* Returns an array with the current selected objects
|
|
663
|
+
* @return {FabricObject[]} active objects array
|
|
664
|
+
*/
|
|
665
|
+
getActiveObjects(): FabricObject[];
|
|
666
|
+
/**
|
|
667
|
+
* @private
|
|
668
|
+
* Compares the old activeObject with the current one and fires correct events
|
|
669
|
+
* @param {FabricObject[]} oldObjects old activeObject
|
|
670
|
+
* @param {TPointerEvent} e mouse event triggering the selection events
|
|
671
|
+
*/
|
|
672
|
+
_fireSelectionEvents(oldObjects: FabricObject[], e?: TPointerEvent): void;
|
|
673
|
+
/**
|
|
674
|
+
* Sets given object as the only active object on canvas
|
|
675
|
+
* @param {FabricObject} object Object to set as an active one
|
|
676
|
+
* @param {TPointerEvent} [e] Event (passed along when firing "object:selected")
|
|
677
|
+
* @return {Boolean} true if the object has been selected
|
|
678
|
+
*/
|
|
679
|
+
setActiveObject(object: FabricObject, e?: TPointerEvent): this is AssertKeys<this, '_activeObject'>;
|
|
680
|
+
/**
|
|
681
|
+
* This is supposed to be equivalent to setActiveObject but without firing
|
|
682
|
+
* any event. There is commitment to have this stay this way.
|
|
683
|
+
* This is the functional part of setActiveObject.
|
|
684
|
+
* @param {Object} object to set as active
|
|
685
|
+
* @param {Event} [e] Event (passed along when firing "object:selected")
|
|
686
|
+
* @return {Boolean} true if the object has been selected
|
|
687
|
+
*/
|
|
688
|
+
_setActiveObject(object: FabricObject, e?: TPointerEvent): this is AssertKeys<this, '_activeObject'>;
|
|
689
|
+
/**
|
|
690
|
+
* This is supposed to be equivalent to discardActiveObject but without firing
|
|
691
|
+
* any selection events ( can still fire object transformation events ). There is commitment to have this stay this way.
|
|
692
|
+
* This is the functional part of discardActiveObject.
|
|
693
|
+
* @param {Event} [e] Event (passed along when firing "object:deselected")
|
|
694
|
+
* @param {Object} object the next object to set as active, reason why we are discarding this
|
|
695
|
+
* @return {Boolean} true if the active object has been discarded
|
|
696
|
+
*/
|
|
697
|
+
_discardActiveObject(e?: TPointerEvent, object?: FabricObject): this is {
|
|
698
|
+
_activeObject: undefined;
|
|
699
|
+
};
|
|
700
|
+
/**
|
|
701
|
+
* Discards currently active object and fire events. If the function is called by fabric
|
|
702
|
+
* as a consequence of a mouse event, the event is passed as a parameter and
|
|
703
|
+
* sent to the fire function for the custom events. When used as a method the
|
|
704
|
+
* e param does not have any application.
|
|
705
|
+
* @param {event} e
|
|
706
|
+
* @return {Boolean} true if the active object has been discarded
|
|
707
|
+
*/
|
|
708
|
+
discardActiveObject(e?: TPointerEvent): this is {
|
|
709
|
+
_activeObject: undefined;
|
|
710
|
+
};
|
|
711
|
+
/**
|
|
712
|
+
* Sets viewport transformation of this canvas instance
|
|
713
|
+
* @param {Array} vpt a Canvas 2D API transform matrix
|
|
714
|
+
*/
|
|
715
|
+
setViewportTransform(vpt: TMat2D): void;
|
|
716
|
+
/**
|
|
717
|
+
* Clears the canvas element, disposes objects, removes all event listeners and frees resources
|
|
718
|
+
*
|
|
719
|
+
* **CAUTION**:
|
|
720
|
+
*
|
|
721
|
+
* This method is **UNSAFE**.
|
|
722
|
+
* You may encounter a race condition using it if there's a requested render.
|
|
723
|
+
* Call this method only if you are sure rendering has settled.
|
|
724
|
+
* Consider using {@link dispose} as it is **SAFE**
|
|
725
|
+
*
|
|
726
|
+
* @private
|
|
727
|
+
*/
|
|
728
|
+
destroy(): void;
|
|
729
|
+
/**
|
|
730
|
+
* Clears all contexts (background, main, top) of an instance
|
|
731
|
+
*/
|
|
732
|
+
clear(): void;
|
|
733
|
+
/**
|
|
734
|
+
* Draws objects' controls (borders/controls)
|
|
735
|
+
* @param {CanvasRenderingContext2D} ctx Context to render controls on
|
|
736
|
+
*/
|
|
737
|
+
drawControls(ctx: CanvasRenderingContext2D): void;
|
|
738
|
+
/**
|
|
739
|
+
* @private
|
|
740
|
+
*/
|
|
741
|
+
_toObject(instance: FabricObject, methodName: 'toObject' | 'toDatalessObject', propertiesToInclude: string[]): Record<string, any>;
|
|
742
|
+
/**
|
|
743
|
+
* Realizes an object's group transformation on it
|
|
744
|
+
* @private
|
|
745
|
+
* @param {FabricObject} [instance] the object to transform (gets mutated)
|
|
746
|
+
* @returns the original values of instance which were changed
|
|
747
|
+
*/
|
|
748
|
+
_realizeGroupTransformOnObject(instance: FabricObject): Partial<typeof instance>;
|
|
749
|
+
/**
|
|
750
|
+
* @private
|
|
751
|
+
*/
|
|
752
|
+
_setSVGObject(markup: string[], instance: FabricObject, reviver: TSVGReviver): void;
|
|
753
|
+
}
|
|
754
|
+
//# sourceMappingURL=SelectableCanvas.d.ts.map
|