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,228 @@
|
|
|
1
|
+
import { ControlActionHandler, TPointerEvent, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
import { Point } from '../Point';
|
|
3
|
+
import type { InteractiveFabricObject } from '../shapes/Object/InteractiveObject';
|
|
4
|
+
import { TDegree, TMat2D } from '../typedefs';
|
|
5
|
+
import { ControlRenderingStyleOverride } from './controlRendering';
|
|
6
|
+
export declare class Control {
|
|
7
|
+
/**
|
|
8
|
+
* keep track of control visibility.
|
|
9
|
+
* mainly for backward compatibility.
|
|
10
|
+
* if you do not want to see a control, you can remove it
|
|
11
|
+
* from the control set.
|
|
12
|
+
* @type {Boolean}
|
|
13
|
+
* @default true
|
|
14
|
+
*/
|
|
15
|
+
visible: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Name of the action that the control will likely execute.
|
|
18
|
+
* This is optional. FabricJS uses to identify what the user is doing for some
|
|
19
|
+
* extra optimizations. If you are writing a custom control and you want to know
|
|
20
|
+
* somewhere else in the code what is going on, you can use this string here.
|
|
21
|
+
* you can also provide a custom getActionName if your control run multiple actions
|
|
22
|
+
* depending on some external state.
|
|
23
|
+
* default to scale since is the most common, used on 4 corners by default
|
|
24
|
+
* @type {String}
|
|
25
|
+
* @default 'scale'
|
|
26
|
+
*/
|
|
27
|
+
actionName: string;
|
|
28
|
+
/**
|
|
29
|
+
* Drawing angle of the control.
|
|
30
|
+
* NOT used for now, but name marked as needed for internal logic
|
|
31
|
+
* example: to reuse the same drawing function for different rotated controls
|
|
32
|
+
* @type {Number}
|
|
33
|
+
* @default 0
|
|
34
|
+
*/
|
|
35
|
+
angle: number;
|
|
36
|
+
/**
|
|
37
|
+
* Relative position of the control. X
|
|
38
|
+
* 0,0 is the center of the Object, while -0.5 (left) or 0.5 (right) are the extremities
|
|
39
|
+
* of the bounding box.
|
|
40
|
+
* @type {Number}
|
|
41
|
+
* @default 0
|
|
42
|
+
*/
|
|
43
|
+
x: number;
|
|
44
|
+
/**
|
|
45
|
+
* Relative position of the control. Y
|
|
46
|
+
* 0,0 is the center of the Object, while -0.5 (top) or 0.5 (bottom) are the extremities
|
|
47
|
+
* of the bounding box.
|
|
48
|
+
* @type {Number}
|
|
49
|
+
* @default 0
|
|
50
|
+
*/
|
|
51
|
+
y: number;
|
|
52
|
+
/**
|
|
53
|
+
* Horizontal offset of the control from the defined position. In pixels
|
|
54
|
+
* Positive offset moves the control to the right, negative to the left.
|
|
55
|
+
* It used when you want to have position of control that does not scale with
|
|
56
|
+
* the bounding box. Example: rotation control is placed at x:0, y: 0.5 on
|
|
57
|
+
* the boundind box, with an offset of 30 pixels vertically. Those 30 pixels will
|
|
58
|
+
* stay 30 pixels no matter how the object is big. Another example is having 2
|
|
59
|
+
* controls in the corner, that stay in the same position when the object scale.
|
|
60
|
+
* of the bounding box.
|
|
61
|
+
* @type {Number}
|
|
62
|
+
* @default 0
|
|
63
|
+
*/
|
|
64
|
+
offsetX: number;
|
|
65
|
+
/**
|
|
66
|
+
* Vertical offset of the control from the defined position. In pixels
|
|
67
|
+
* Positive offset moves the control to the bottom, negative to the top.
|
|
68
|
+
* @type {Number}
|
|
69
|
+
* @default 0
|
|
70
|
+
*/
|
|
71
|
+
offsetY: number;
|
|
72
|
+
/**
|
|
73
|
+
* Sets the length of the control. If null, defaults to object's cornerSize.
|
|
74
|
+
* Expects both sizeX and sizeY to be set when set.
|
|
75
|
+
* @type {?Number}
|
|
76
|
+
* @default null
|
|
77
|
+
*/
|
|
78
|
+
sizeX: number | null;
|
|
79
|
+
/**
|
|
80
|
+
* Sets the height of the control. If null, defaults to object's cornerSize.
|
|
81
|
+
* Expects both sizeX and sizeY to be set when set.
|
|
82
|
+
* @type {?Number}
|
|
83
|
+
* @default null
|
|
84
|
+
*/
|
|
85
|
+
sizeY: number | null;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the length of the touch area of the control. If null, defaults to object's touchCornerSize.
|
|
88
|
+
* Expects both touchSizeX and touchSizeY to be set when set.
|
|
89
|
+
* @type {?Number}
|
|
90
|
+
* @default null
|
|
91
|
+
*/
|
|
92
|
+
touchSizeX: number | null;
|
|
93
|
+
/**
|
|
94
|
+
* Sets the height of the touch area of the control. If null, defaults to object's touchCornerSize.
|
|
95
|
+
* Expects both touchSizeX and touchSizeY to be set when set.
|
|
96
|
+
* @type {?Number}
|
|
97
|
+
* @default null
|
|
98
|
+
*/
|
|
99
|
+
touchSizeY: number | null;
|
|
100
|
+
/**
|
|
101
|
+
* Css cursor style to display when the control is hovered.
|
|
102
|
+
* if the method `cursorStyleHandler` is provided, this property is ignored.
|
|
103
|
+
* @type {String}
|
|
104
|
+
* @default 'crosshair'
|
|
105
|
+
*/
|
|
106
|
+
cursorStyle: string;
|
|
107
|
+
/**
|
|
108
|
+
* If controls has an offsetY or offsetX, draw a line that connects
|
|
109
|
+
* the control to the bounding box
|
|
110
|
+
* @type {Boolean}
|
|
111
|
+
* @default false
|
|
112
|
+
*/
|
|
113
|
+
withConnection: boolean;
|
|
114
|
+
constructor(options: Partial<Control>);
|
|
115
|
+
/**
|
|
116
|
+
* The control actionHandler, provide one to handle action ( control being moved )
|
|
117
|
+
* @param {Event} eventData the native mouse event
|
|
118
|
+
* @param {Transform} transformData properties of the current transform
|
|
119
|
+
* @param {Number} x x position of the cursor
|
|
120
|
+
* @param {Number} y y position of the cursor
|
|
121
|
+
* @return {Boolean} true if the action/event modified the object
|
|
122
|
+
*/
|
|
123
|
+
actionHandler: TransformActionHandler;
|
|
124
|
+
/**
|
|
125
|
+
* The control handler for mouse down, provide one to handle mouse down on control
|
|
126
|
+
* @param {Event} eventData the native mouse event
|
|
127
|
+
* @param {Transform} transformData properties of the current transform
|
|
128
|
+
* @param {Number} x x position of the cursor
|
|
129
|
+
* @param {Number} y y position of the cursor
|
|
130
|
+
* @return {Boolean} true if the action/event modified the object
|
|
131
|
+
*/
|
|
132
|
+
mouseDownHandler?: ControlActionHandler;
|
|
133
|
+
/**
|
|
134
|
+
* The control mouseUpHandler, provide one to handle an effect on mouse up.
|
|
135
|
+
* @param {Event} eventData the native mouse event
|
|
136
|
+
* @param {Transform} transformData properties of the current transform
|
|
137
|
+
* @param {Number} x x position of the cursor
|
|
138
|
+
* @param {Number} y y position of the cursor
|
|
139
|
+
* @return {Boolean} true if the action/event modified the object
|
|
140
|
+
*/
|
|
141
|
+
mouseUpHandler?: ControlActionHandler;
|
|
142
|
+
/**
|
|
143
|
+
* Returns control actionHandler
|
|
144
|
+
* @param {Event} eventData the native mouse event
|
|
145
|
+
* @param {FabricObject} fabricObject on which the control is displayed
|
|
146
|
+
* @param {Control} control control for which the action handler is being asked
|
|
147
|
+
* @return {Function} the action handler
|
|
148
|
+
*/
|
|
149
|
+
getActionHandler(eventData: TPointerEvent, fabricObject: InteractiveFabricObject, control: Control): TransformActionHandler | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Returns control mouseDown handler
|
|
152
|
+
* @param {Event} eventData the native mouse event
|
|
153
|
+
* @param {FabricObject} fabricObject on which the control is displayed
|
|
154
|
+
* @param {Control} control control for which the action handler is being asked
|
|
155
|
+
* @return {Function} the action handler
|
|
156
|
+
*/
|
|
157
|
+
getMouseDownHandler(eventData: TPointerEvent, fabricObject: InteractiveFabricObject, control: Control): ControlActionHandler | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Returns control mouseUp handler.
|
|
160
|
+
* During actions the fabricObject or the control can be of different obj
|
|
161
|
+
* @param {Event} eventData the native mouse event
|
|
162
|
+
* @param {FabricObject} fabricObject on which the control is displayed
|
|
163
|
+
* @param {Control} control control for which the action handler is being asked
|
|
164
|
+
* @return {Function} the action handler
|
|
165
|
+
*/
|
|
166
|
+
getMouseUpHandler(eventData: TPointerEvent, fabricObject: InteractiveFabricObject, control: Control): ControlActionHandler | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Returns control cursorStyle for css using cursorStyle. If you need a more elaborate
|
|
169
|
+
* function you can pass one in the constructor
|
|
170
|
+
* the cursorStyle property
|
|
171
|
+
* @param {Event} eventData the native mouse event
|
|
172
|
+
* @param {Control} control the current control ( likely this)
|
|
173
|
+
* @param {FabricObject} object on which the control is displayed
|
|
174
|
+
* @return {String}
|
|
175
|
+
*/
|
|
176
|
+
cursorStyleHandler(eventData: TPointerEvent, control: Control, fabricObject: InteractiveFabricObject): string;
|
|
177
|
+
/**
|
|
178
|
+
* Returns the action name. The basic implementation just return the actionName property.
|
|
179
|
+
* @param {Event} eventData the native mouse event
|
|
180
|
+
* @param {Control} control the current control ( likely this)
|
|
181
|
+
* @param {FabricObject} object on which the control is displayed
|
|
182
|
+
* @return {String}
|
|
183
|
+
*/
|
|
184
|
+
getActionName(eventData: TPointerEvent, control: Control, fabricObject: InteractiveFabricObject): string;
|
|
185
|
+
/**
|
|
186
|
+
* Returns controls visibility
|
|
187
|
+
* @param {FabricObject} object on which the control is displayed
|
|
188
|
+
* @param {String} controlKey key where the control is memorized on the
|
|
189
|
+
* @return {Boolean}
|
|
190
|
+
*/
|
|
191
|
+
getVisibility(fabricObject: InteractiveFabricObject, controlKey: string): boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Sets controls visibility
|
|
194
|
+
* @param {Boolean} visibility for the object
|
|
195
|
+
* @return {Void}
|
|
196
|
+
*/
|
|
197
|
+
setVisibility(visibility: boolean, name: string, fabricObject: InteractiveFabricObject): void;
|
|
198
|
+
positionHandler(dim: Point, finalMatrix: TMat2D, fabricObject: InteractiveFabricObject, currentControl: Control): Point;
|
|
199
|
+
/**
|
|
200
|
+
* Returns the coords for this control based on object values.
|
|
201
|
+
* @param {Number} objectAngle angle from the fabric object holding the control
|
|
202
|
+
* @param {Number} objectCornerSize cornerSize from the fabric object holding the control (or touchCornerSize if
|
|
203
|
+
* isTouch is true)
|
|
204
|
+
* @param {Number} centerX x coordinate where the control center should be
|
|
205
|
+
* @param {Number} centerY y coordinate where the control center should be
|
|
206
|
+
* @param {boolean} isTouch true if touch corner, false if normal corner
|
|
207
|
+
*/
|
|
208
|
+
calcCornerCoords(objectAngle: TDegree, objectCornerSize: number, centerX: number, centerY: number, isTouch: boolean): {
|
|
209
|
+
tl: Point;
|
|
210
|
+
tr: Point;
|
|
211
|
+
bl: Point;
|
|
212
|
+
br: Point;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Render function for the control.
|
|
216
|
+
* When this function runs the context is unscaled. unrotate. Just retina scaled.
|
|
217
|
+
* all the functions will have to translate to the point left,top before starting Drawing
|
|
218
|
+
* if they want to draw a control where the position is detected.
|
|
219
|
+
* left and top are the result of the positionHandler function
|
|
220
|
+
* @param {RenderingContext2D} ctx the context where the control will be drawn
|
|
221
|
+
* @param {Number} left position of the canvas where we are about to render the control.
|
|
222
|
+
* @param {Number} top position of the canvas where we are about to render the control.
|
|
223
|
+
* @param {Object} styleOverride
|
|
224
|
+
* @param {FabricObject} fabricObject the object where the control is about to be rendered
|
|
225
|
+
*/
|
|
226
|
+
render(ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride | undefined, fabricObject: InteractiveFabricObject): void;
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=Control.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
/**
|
|
3
|
+
* Action handler to change object's width
|
|
4
|
+
* Needs to be wrapped with `wrapWithFixedAnchor` to be effective
|
|
5
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
6
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
7
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
8
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
9
|
+
* @return {Boolean} true if some change happened
|
|
10
|
+
*/
|
|
11
|
+
export declare const changeObjectWidth: TransformActionHandler;
|
|
12
|
+
export declare const changeWidth: TransformActionHandler<import("../EventTypeDefs").Transform>;
|
|
13
|
+
//# sourceMappingURL=changeWidth.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Control } from './Control';
|
|
2
|
+
export declare const createObjectDefaultControls: () => {
|
|
3
|
+
ml: Control;
|
|
4
|
+
mr: Control;
|
|
5
|
+
mb: Control;
|
|
6
|
+
mt: Control;
|
|
7
|
+
tl: Control;
|
|
8
|
+
tr: Control;
|
|
9
|
+
bl: Control;
|
|
10
|
+
br: Control;
|
|
11
|
+
mtr: Control;
|
|
12
|
+
};
|
|
13
|
+
export declare const createResizeControls: () => {
|
|
14
|
+
mr: Control;
|
|
15
|
+
ml: Control;
|
|
16
|
+
};
|
|
17
|
+
export declare const createTextboxDefaultControls: () => {
|
|
18
|
+
mr: Control;
|
|
19
|
+
ml: Control;
|
|
20
|
+
mb: Control;
|
|
21
|
+
mt: Control;
|
|
22
|
+
tl: Control;
|
|
23
|
+
tr: Control;
|
|
24
|
+
bl: Control;
|
|
25
|
+
br: Control;
|
|
26
|
+
mtr: Control;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=commonControls.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { InteractiveFabricObject } from '../shapes/Object/InteractiveObject';
|
|
2
|
+
import type { Control } from './Control';
|
|
3
|
+
export type ControlRenderingStyleOverride = Partial<Pick<InteractiveFabricObject, 'cornerStyle' | 'cornerSize' | 'cornerColor' | 'cornerStrokeColor' | 'cornerDashArray' | 'transparentCorners'>>;
|
|
4
|
+
export type ControlRenderer = (ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: InteractiveFabricObject) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Render a round control, as per fabric features.
|
|
7
|
+
* This function is written to respect object properties like transparentCorners, cornerSize
|
|
8
|
+
* cornerColor, cornerStrokeColor
|
|
9
|
+
* plus the addition of offsetY and offsetX.
|
|
10
|
+
* @param {CanvasRenderingContext2D} ctx context to render on
|
|
11
|
+
* @param {Number} left x coordinate where the control center should be
|
|
12
|
+
* @param {Number} top y coordinate where the control center should be
|
|
13
|
+
* @param {Object} styleOverride override for FabricObject controls style
|
|
14
|
+
* @param {FabricObject} fabricObject the fabric object for which we are rendering controls
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderCircleControl(this: Control, ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: InteractiveFabricObject): void;
|
|
17
|
+
/**
|
|
18
|
+
* Render a square control, as per fabric features.
|
|
19
|
+
* This function is written to respect object properties like transparentCorners, cornerSize
|
|
20
|
+
* cornerColor, cornerStrokeColor
|
|
21
|
+
* plus the addition of offsetY and offsetX.
|
|
22
|
+
* @param {CanvasRenderingContext2D} ctx context to render on
|
|
23
|
+
* @param {Number} left x coordinate where the control center should be
|
|
24
|
+
* @param {Number} top y coordinate where the control center should be
|
|
25
|
+
* @param {Object} styleOverride override for FabricObject controls style
|
|
26
|
+
* @param {FabricObject} fabricObject the fabric object for which we are rendering controls
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderSquareControl(this: Control, ctx: CanvasRenderingContext2D, left: number, top: number, styleOverride: ControlRenderingStyleOverride, fabricObject: InteractiveFabricObject): void;
|
|
29
|
+
//# sourceMappingURL=controlRendering.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
/**
|
|
3
|
+
* Action handler
|
|
4
|
+
* @private
|
|
5
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
6
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
7
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
8
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
9
|
+
* @return {Boolean} true if the translation occurred
|
|
10
|
+
*/
|
|
11
|
+
export declare const dragHandler: TransformActionHandler;
|
|
12
|
+
//# sourceMappingURL=drag.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { changeWidth } from './changeWidth';
|
|
2
|
+
export { renderCircleControl, renderSquareControl } from './controlRendering';
|
|
3
|
+
export * from './commonControls';
|
|
4
|
+
export { dragHandler } from './drag';
|
|
5
|
+
export { createPolyControls } from './polyControl';
|
|
6
|
+
export { rotationStyleHandler, rotationWithSnapping } from './rotate';
|
|
7
|
+
export { scaleCursorStyleHandler, scalingEqually, scalingX, scalingY, } from './scale';
|
|
8
|
+
export { scaleOrSkewActionName, scaleSkewCursorStyleHandler, scalingXOrSkewingY, scalingYOrSkewingX, } from './scaleSkew';
|
|
9
|
+
export { skewCursorStyleHandler, skewHandlerX, skewHandlerY } from './skew';
|
|
10
|
+
export { getLocalPoint } from './util';
|
|
11
|
+
export { wrapWithFireEvent } from './wrapWithFireEvent';
|
|
12
|
+
export { wrapWithFixedAnchor } from './wrapWithFixedAnchor';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Control } from './Control';
|
|
2
|
+
import type { Polyline } from '../shapes/Polyline';
|
|
3
|
+
export declare function createPolyControls(poly: Polyline, options?: Partial<Control>): Record<string, Control>;
|
|
4
|
+
export declare function createPolyControls(numOfControls: number, options?: Partial<Control>): Record<string, Control>;
|
|
5
|
+
//# sourceMappingURL=polyControl.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ControlCursorCallback, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
/**
|
|
3
|
+
* Find the correct style for the control that is used for rotation.
|
|
4
|
+
* this function is very simple and it just take care of not-allowed or standard cursor
|
|
5
|
+
* @param {Event} eventData the javascript event that is causing the scale
|
|
6
|
+
* @param {Control} control the control that is interested in the action
|
|
7
|
+
* @param {FabricObject} fabricObject the fabric object that is interested in the action
|
|
8
|
+
* @return {String} a valid css string for the cursor
|
|
9
|
+
*/
|
|
10
|
+
export declare const rotationStyleHandler: ControlCursorCallback;
|
|
11
|
+
export declare const rotationWithSnapping: TransformActionHandler<import("../EventTypeDefs").Transform>;
|
|
12
|
+
//# sourceMappingURL=rotate.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ControlCursorCallback, TPointerEvent, Transform, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
import type { FabricObject } from '../shapes/Object/FabricObject';
|
|
3
|
+
import { TAxis } from '../typedefs';
|
|
4
|
+
type ScaleTransform = Transform & {
|
|
5
|
+
gestureScale?: number;
|
|
6
|
+
signX?: number;
|
|
7
|
+
signY?: number;
|
|
8
|
+
};
|
|
9
|
+
type ScaleBy = TAxis | 'equally' | '' | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Inspect event and fabricObject properties to understand if the scaling action
|
|
12
|
+
* @param {Event} eventData from the user action
|
|
13
|
+
* @param {FabricObject} fabricObject the fabric object about to scale
|
|
14
|
+
* @return {Boolean} true if scale is proportional
|
|
15
|
+
*/
|
|
16
|
+
export declare function scaleIsProportional(eventData: TPointerEvent, fabricObject: FabricObject): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Inspect fabricObject to understand if the current scaling action is allowed
|
|
19
|
+
* @param {FabricObject} fabricObject the fabric object about to scale
|
|
20
|
+
* @param {String} by 'x' or 'y' or ''
|
|
21
|
+
* @param {Boolean} scaleProportionally true if we are trying to scale proportionally
|
|
22
|
+
* @return {Boolean} true if scaling is not allowed at current conditions
|
|
23
|
+
*/
|
|
24
|
+
export declare function scalingIsForbidden(fabricObject: FabricObject, by: ScaleBy, scaleProportionally: boolean): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* return the correct cursor style for the scale action
|
|
27
|
+
* @param {Event} eventData the javascript event that is causing the scale
|
|
28
|
+
* @param {Control} control the control that is interested in the action
|
|
29
|
+
* @param {FabricObject} fabricObject the fabric object that is interested in the action
|
|
30
|
+
* @return {String} a valid css string for the cursor
|
|
31
|
+
*/
|
|
32
|
+
export declare const scaleCursorStyleHandler: ControlCursorCallback;
|
|
33
|
+
/**
|
|
34
|
+
* Generic scaling logic, to scale from corners either equally or freely.
|
|
35
|
+
* Needs to be wrapped with `wrapWithFixedAnchor` to be effective
|
|
36
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
37
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
38
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
39
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
40
|
+
* @return {Boolean} true if some change happened
|
|
41
|
+
*/
|
|
42
|
+
export declare const scaleObjectFromCorner: TransformActionHandler<ScaleTransform>;
|
|
43
|
+
export declare const scalingEqually: TransformActionHandler<ScaleTransform>;
|
|
44
|
+
export declare const scalingX: TransformActionHandler<ScaleTransform>;
|
|
45
|
+
export declare const scalingY: TransformActionHandler<ScaleTransform>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=scale.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ControlCallback, ControlCursorCallback, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
import { TAxisKey } from '../typedefs';
|
|
3
|
+
/**
|
|
4
|
+
* Inspect event, control and fabricObject to return the correct action name
|
|
5
|
+
* @param {Event} eventData the javascript event that is causing the scale
|
|
6
|
+
* @param {Control} control the control that is interested in the action
|
|
7
|
+
* @param {FabricObject} fabricObject the fabric object that is interested in the action
|
|
8
|
+
* @return {String} an action name
|
|
9
|
+
*/
|
|
10
|
+
export declare const scaleOrSkewActionName: ControlCallback<TAxisKey<'skew' | 'scale'> | ''>;
|
|
11
|
+
/**
|
|
12
|
+
* Combine skew and scale style handlers to cover fabric standard use case
|
|
13
|
+
* @param {Event} eventData the javascript event that is causing the scale
|
|
14
|
+
* @param {Control} control the control that is interested in the action
|
|
15
|
+
* @param {FabricObject} fabricObject the fabric object that is interested in the action
|
|
16
|
+
* @return {String} a valid css string for the cursor
|
|
17
|
+
*/
|
|
18
|
+
export declare const scaleSkewCursorStyleHandler: ControlCursorCallback;
|
|
19
|
+
/**
|
|
20
|
+
* Composed action handler to either scale X or skew Y
|
|
21
|
+
* Needs to be wrapped with `wrapWithFixedAnchor` to be effective
|
|
22
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
23
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
24
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
25
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
26
|
+
* @return {Boolean} true if some change happened
|
|
27
|
+
*/
|
|
28
|
+
export declare const scalingXOrSkewingY: TransformActionHandler;
|
|
29
|
+
/**
|
|
30
|
+
* Composed action handler to either scale Y or skew X
|
|
31
|
+
* Needs to be wrapped with `wrapWithFixedAnchor` to be effective
|
|
32
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
33
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
34
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
35
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
36
|
+
* @return {Boolean} true if some change happened
|
|
37
|
+
*/
|
|
38
|
+
export declare const scalingYOrSkewingX: TransformActionHandler;
|
|
39
|
+
//# sourceMappingURL=scaleSkew.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ControlCursorCallback, Transform, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
export type SkewTransform = Transform & {
|
|
3
|
+
skewingSide: -1 | 1;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* return the correct cursor style for the skew action
|
|
7
|
+
* @param {Event} eventData the javascript event that is causing the scale
|
|
8
|
+
* @param {Control} control the control that is interested in the action
|
|
9
|
+
* @param {FabricObject} fabricObject the fabric object that is interested in the action
|
|
10
|
+
* @return {String} a valid css string for the cursor
|
|
11
|
+
*/
|
|
12
|
+
export declare const skewCursorStyleHandler: ControlCursorCallback;
|
|
13
|
+
/**
|
|
14
|
+
* Wrapped Action handler for skewing on the X axis, takes care of the
|
|
15
|
+
* skew direction and determines the correct transform origin for the anchor point
|
|
16
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
17
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
18
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
19
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
20
|
+
* @return {Boolean} true if some change happened
|
|
21
|
+
*/
|
|
22
|
+
export declare const skewHandlerX: TransformActionHandler;
|
|
23
|
+
/**
|
|
24
|
+
* Wrapped Action handler for skewing on the Y axis, takes care of the
|
|
25
|
+
* skew direction and determines the correct transform origin for the anchor point
|
|
26
|
+
* @param {Event} eventData javascript event that is doing the transform
|
|
27
|
+
* @param {Object} transform javascript object containing a series of information around the current transform
|
|
28
|
+
* @param {number} x current mouse x position, canvas normalized
|
|
29
|
+
* @param {number} y current mouse y position, canvas normalized
|
|
30
|
+
* @return {Boolean} true if some change happened
|
|
31
|
+
*/
|
|
32
|
+
export declare const skewHandlerY: TransformActionHandler;
|
|
33
|
+
//# sourceMappingURL=skew.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { TPointerEvent, Transform, TransformAction, BasicTransformEvent } from '../EventTypeDefs';
|
|
2
|
+
import { Point } from '../Point';
|
|
3
|
+
import type { FabricObject } from '../shapes/Object/FabricObject';
|
|
4
|
+
import { TOriginX, TOriginY } from '../typedefs';
|
|
5
|
+
import type { Control } from './Control';
|
|
6
|
+
export declare const NOT_ALLOWED_CURSOR = "not-allowed";
|
|
7
|
+
/**
|
|
8
|
+
* @param {Boolean} alreadySelected true if target is already selected
|
|
9
|
+
* @param {String} corner a string representing the corner ml, mr, tl ...
|
|
10
|
+
* @param {Event} e Event object
|
|
11
|
+
* @param {FabricObject} [target] inserted back to help overriding. Unused
|
|
12
|
+
*/
|
|
13
|
+
export declare const getActionFromCorner: (alreadySelected: boolean, corner: string, e: TPointerEvent, target: FabricObject) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Checks if transform is centered
|
|
16
|
+
* @param {Object} transform transform data
|
|
17
|
+
* @return {Boolean} true if transform is centered
|
|
18
|
+
*/
|
|
19
|
+
export declare function isTransformCentered(transform: Transform): boolean;
|
|
20
|
+
export declare function invertOrigin(origin: TOriginX | TOriginY): number;
|
|
21
|
+
export declare const isLocked: (target: FabricObject, lockingKey: 'lockMovementX' | 'lockMovementY' | 'lockRotation' | 'lockScalingX' | 'lockScalingY' | 'lockSkewingX' | 'lockSkewingY' | 'lockScalingFlip') => boolean;
|
|
22
|
+
export declare const commonEventInfo: TransformAction<Transform, BasicTransformEvent>;
|
|
23
|
+
/**
|
|
24
|
+
* Combine control position and object angle to find the control direction compared
|
|
25
|
+
* to the object center.
|
|
26
|
+
* @param {FabricObject} fabricObject the fabric object for which we are rendering controls
|
|
27
|
+
* @param {Control} control the control class
|
|
28
|
+
* @return {Number} 0 - 7 a quadrant number
|
|
29
|
+
*/
|
|
30
|
+
export declare function findCornerQuadrant(fabricObject: FabricObject, control: Control): number;
|
|
31
|
+
/**
|
|
32
|
+
* Transforms a point to the offset from the given origin
|
|
33
|
+
* @param {Object} transform
|
|
34
|
+
* @param {String} originX
|
|
35
|
+
* @param {String} originY
|
|
36
|
+
* @param {number} x
|
|
37
|
+
* @param {number} y
|
|
38
|
+
* @return {Fabric.Point} the normalized point
|
|
39
|
+
*/
|
|
40
|
+
export declare function getLocalPoint({ target, corner }: Transform, originX: TOriginX, originY: TOriginY, x: number, y: number): Point;
|
|
41
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TModificationEvents, Transform, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap an action handler with firing an event if the action is performed
|
|
4
|
+
* @param {Function} actionHandler the function to wrap
|
|
5
|
+
* @return {Function} a function with an action handler signature
|
|
6
|
+
*/
|
|
7
|
+
export declare const wrapWithFireEvent: <T extends Transform>(eventName: TModificationEvents, actionHandler: TransformActionHandler<T>) => TransformActionHandler<T>;
|
|
8
|
+
//# sourceMappingURL=wrapWithFireEvent.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Transform, TransformActionHandler } from '../EventTypeDefs';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap an action handler with saving/restoring object position on the transform.
|
|
4
|
+
* this is the code that permits to objects to keep their position while transforming.
|
|
5
|
+
* @param {Function} actionHandler the function to wrap
|
|
6
|
+
* @return {Function} a function with an action handler signature
|
|
7
|
+
*/
|
|
8
|
+
export declare function wrapWithFixedAnchor<T extends Transform>(actionHandler: TransformActionHandler<T>): TransformActionHandler<T>;
|
|
9
|
+
//# sourceMappingURL=wrapWithFixedAnchor.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is consumed by fabric.
|
|
3
|
+
* The `./node` and `./browser` files define the env variable that is used by this module.
|
|
4
|
+
* The `./node` module sets the env at import time.
|
|
5
|
+
* The `./browser` module is defined to be the default env and doesn't set the env at all.
|
|
6
|
+
* This is done in order to support isomorphic usage for browser and node applications
|
|
7
|
+
* since window and document aren't defined at time of import in SSR, we can't set env so we avoid it by deferring to the default env.
|
|
8
|
+
*/
|
|
9
|
+
import { TFabricEnv } from './types';
|
|
10
|
+
import type { DOMWindow } from 'jsdom';
|
|
11
|
+
export declare const setEnv: (value: TFabricEnv) => void;
|
|
12
|
+
export declare const getEnv: () => TFabricEnv;
|
|
13
|
+
export declare const getDocument: () => Document;
|
|
14
|
+
export declare const getWindow: () => Window | DOMWindow;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GLProbe } from '../filters/GLProbes/GLProbe';
|
|
2
|
+
import type { DOMWindow } from 'jsdom';
|
|
3
|
+
export type TCopyPasteData = {
|
|
4
|
+
copiedText?: string;
|
|
5
|
+
copiedStyle?: Record<string, string>;
|
|
6
|
+
};
|
|
7
|
+
export type TFabricEnv = {
|
|
8
|
+
document: Document;
|
|
9
|
+
window: Window | DOMWindow;
|
|
10
|
+
isTouchSupported: boolean;
|
|
11
|
+
WebGLProbe: GLProbe;
|
|
12
|
+
dispose(element: Element): void;
|
|
13
|
+
copyPasteData: TCopyPasteData;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|