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,40 @@
|
|
|
1
|
+
export interface BorderProps {
|
|
2
|
+
/**
|
|
3
|
+
* Color of controlling borders of an object (when it's active)
|
|
4
|
+
* @type String
|
|
5
|
+
* @default rgb(178,204,255)
|
|
6
|
+
*/
|
|
7
|
+
borderColor: string;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Array specifying dash pattern of an object's borders (hasBorder must be true)
|
|
11
|
+
* @since 1.6.2
|
|
12
|
+
* @type Array | null
|
|
13
|
+
* default null;
|
|
14
|
+
*/
|
|
15
|
+
borderDashArray: number[] | null;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* When set to `false`, object's controlling borders are not rendered
|
|
19
|
+
* @type Boolean
|
|
20
|
+
* @default
|
|
21
|
+
*/
|
|
22
|
+
hasBorders: boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Opacity of object's controlling borders when object is active and moving
|
|
26
|
+
* @type Number
|
|
27
|
+
* @default 0.4
|
|
28
|
+
*/
|
|
29
|
+
borderOpacityWhenMoving: number;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Scale factor of object's controlling borders
|
|
33
|
+
* bigger number will make a thicker border
|
|
34
|
+
* border is 1, so this is basically a border thickness
|
|
35
|
+
* since there is no way to change the border itself.
|
|
36
|
+
* @type Number
|
|
37
|
+
* @default 1
|
|
38
|
+
*/
|
|
39
|
+
borderScaleFactor: number;
|
|
40
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface ControlProps {
|
|
2
|
+
/**
|
|
3
|
+
* Size of object's controlling corners (in pixels)
|
|
4
|
+
* @type Number
|
|
5
|
+
* @default 13
|
|
6
|
+
*/
|
|
7
|
+
cornerSize: number;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Size of object's controlling corners when touch interaction is detected
|
|
11
|
+
* @type Number
|
|
12
|
+
* @default 24
|
|
13
|
+
*/
|
|
14
|
+
touchCornerSize: number;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)
|
|
18
|
+
* @type Boolean
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
transparentCorners: boolean;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Color of controlling corners of an object (when it's active)
|
|
25
|
+
* @type String
|
|
26
|
+
* @default rgb(178,204,255)
|
|
27
|
+
*/
|
|
28
|
+
cornerColor: string;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Color of controlling corners of an object (when it's active and transparentCorners false)
|
|
32
|
+
* @since 1.6.2
|
|
33
|
+
* @type String
|
|
34
|
+
* @default null
|
|
35
|
+
*/
|
|
36
|
+
cornerStrokeColor: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Specify style of control, 'rect' or 'circle'
|
|
40
|
+
* This is deprecated. In the future there will be a standard control render
|
|
41
|
+
* And you can swap it with one of the alternative proposed with the control api
|
|
42
|
+
* @since 1.6.2
|
|
43
|
+
* @type 'rect' | 'circle'
|
|
44
|
+
* @default rect
|
|
45
|
+
* @deprecated
|
|
46
|
+
*/
|
|
47
|
+
cornerStyle: 'rect' | 'circle';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Array specifying dash pattern of an object's control (hasBorder must be true)
|
|
51
|
+
* @since 1.6.2
|
|
52
|
+
* @type Array | null
|
|
53
|
+
*/
|
|
54
|
+
cornerDashArray: number[] | null;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Padding between object and its controlling borders (in pixels)
|
|
58
|
+
* @type Number
|
|
59
|
+
* @default 0
|
|
60
|
+
*/
|
|
61
|
+
padding: number;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* When set to `false`, object's controls are not displayed and can not be used to manipulate object
|
|
65
|
+
* @type Boolean
|
|
66
|
+
* @default
|
|
67
|
+
*/
|
|
68
|
+
hasControls: boolean;
|
|
69
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { TDegree } from '../../../typedefs';
|
|
2
|
+
import { BorderProps } from './BorderProps';
|
|
3
|
+
import { ControlProps } from './ControlProps';
|
|
4
|
+
import { LockInteractionProps } from './LockInteractionProps';
|
|
5
|
+
import { ObjectProps } from './ObjectProps';
|
|
6
|
+
|
|
7
|
+
export interface FabricObjectProps
|
|
8
|
+
extends ObjectProps,
|
|
9
|
+
ControlProps,
|
|
10
|
+
BorderProps,
|
|
11
|
+
LockInteractionProps {
|
|
12
|
+
/**
|
|
13
|
+
* When `true`, cache does not get updated during scaling. The picture will get blocky if scaled
|
|
14
|
+
* too much and will be redrawn with correct details at the end of scaling.
|
|
15
|
+
* this setting is performance and application dependant.
|
|
16
|
+
* default to true
|
|
17
|
+
* since 1.7.0
|
|
18
|
+
* @type Boolean
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
noScaleCache?: boolean;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* When true, this object will use center point as the origin of transformation
|
|
25
|
+
* when being scaled via the controls.
|
|
26
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
27
|
+
* @since 1.3.4
|
|
28
|
+
* @type Boolean
|
|
29
|
+
* @default
|
|
30
|
+
*/
|
|
31
|
+
centeredScaling: false;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* When true, this object will use center point as the origin of transformation
|
|
35
|
+
* when being rotated via the controls.
|
|
36
|
+
* <b>Backwards incompatibility note:</b> This property replaces "centerTransform" (Boolean).
|
|
37
|
+
* @since 1.3.4
|
|
38
|
+
* @type Boolean
|
|
39
|
+
* @default
|
|
40
|
+
*/
|
|
41
|
+
centeredRotation: boolean;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* The angle that an object will lock to while rotating.
|
|
45
|
+
* @type [TDegree]
|
|
46
|
+
*/
|
|
47
|
+
snapAngle?: TDegree;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The angle difference from the current snapped angle in which snapping should occur.
|
|
51
|
+
* When undefined, the snapThreshold will default to the snapAngle.
|
|
52
|
+
* @type [TDegree]
|
|
53
|
+
*/
|
|
54
|
+
snapThreshold?: TDegree;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Default cursor value used when hovering over this object on canvas
|
|
58
|
+
* @type CSSStyleDeclaration['cursor'] | null
|
|
59
|
+
* @default null
|
|
60
|
+
*/
|
|
61
|
+
hoverCursor: CSSStyleDeclaration['cursor'] | null;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Default cursor value used when moving this object on canvas
|
|
65
|
+
* @type CSSStyleDeclaration['cursor'] | null
|
|
66
|
+
* @default null
|
|
67
|
+
*/
|
|
68
|
+
moveCursor: CSSStyleDeclaration['cursor'] | null;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Selection Background color of an object. colored layer behind the object when it is active.
|
|
72
|
+
* does not mix good with globalCompositeOperation methods.
|
|
73
|
+
* @type String
|
|
74
|
+
* @deprecated
|
|
75
|
+
* @default
|
|
76
|
+
*/
|
|
77
|
+
selectionBackgroundColor: string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box
|
|
81
|
+
* @type Boolean
|
|
82
|
+
* @default
|
|
83
|
+
*/
|
|
84
|
+
perPixelTargetFind: boolean;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).
|
|
88
|
+
* But events still fire on it.
|
|
89
|
+
* @type Boolean
|
|
90
|
+
* @default
|
|
91
|
+
*/
|
|
92
|
+
selectable: boolean;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4
|
|
96
|
+
* @type Boolean
|
|
97
|
+
* @default
|
|
98
|
+
*/
|
|
99
|
+
evented: boolean;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* When 'down', object is set to active on mousedown/touchstart
|
|
103
|
+
* When 'up', object is set to active on mouseup/touchend
|
|
104
|
+
* Experimental. Let's see if this breaks anything before supporting officially
|
|
105
|
+
* @private
|
|
106
|
+
* since 4.4.0
|
|
107
|
+
* @type String
|
|
108
|
+
* @default 'down'
|
|
109
|
+
*/
|
|
110
|
+
activeOn: 'down' | 'up';
|
|
111
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { TFiller } from '../../../typedefs';
|
|
2
|
+
|
|
3
|
+
export interface FillStrokeProps {
|
|
4
|
+
/**
|
|
5
|
+
* Determines if the fill or the stroke is drawn first (one of "fill" or "stroke")
|
|
6
|
+
* @type String
|
|
7
|
+
* @default
|
|
8
|
+
*/
|
|
9
|
+
paintFirst: 'fill' | 'stroke';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Color of object's fill
|
|
13
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
14
|
+
* @type String
|
|
15
|
+
* @default rgb(0,0,0)
|
|
16
|
+
*/
|
|
17
|
+
fill: ReturnType<TFiller['toObject']> | string | null;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Fill rule used to fill an object
|
|
21
|
+
* accepted values are nonzero, evenodd
|
|
22
|
+
* <b>Backwards incompatibility note:</b> This property was used for setting globalCompositeOperation until v1.4.12 (use `globalCompositeOperation` instead)
|
|
23
|
+
* @type String
|
|
24
|
+
* @default nonzero
|
|
25
|
+
*/
|
|
26
|
+
fillRule: CanvasFillRule;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* When defined, an object is rendered via stroke and this property specifies its color
|
|
30
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
31
|
+
* @type String
|
|
32
|
+
* @default null
|
|
33
|
+
*/
|
|
34
|
+
stroke: ReturnType<TFiller['toObject']> | string | null;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Width of a stroke used to render this object
|
|
38
|
+
* @type Number
|
|
39
|
+
* @default 1
|
|
40
|
+
*/
|
|
41
|
+
strokeWidth: number;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Array specifying dash pattern of an object's stroke (stroke must be defined)
|
|
45
|
+
* @type Array
|
|
46
|
+
* @default null;
|
|
47
|
+
*/
|
|
48
|
+
strokeDashArray: number[] | null;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Line offset of an object's stroke
|
|
52
|
+
* @type Number
|
|
53
|
+
* @default 0
|
|
54
|
+
*/
|
|
55
|
+
strokeDashOffset: number;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Line endings style of an object's stroke (one of "butt", "round", "square")
|
|
59
|
+
* @type String
|
|
60
|
+
* @default butt
|
|
61
|
+
*/
|
|
62
|
+
strokeLineCap: CanvasLineCap;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Corner style of an object's stroke (one of "bevel", "round", "miter")
|
|
66
|
+
* @type String
|
|
67
|
+
* @default
|
|
68
|
+
*/
|
|
69
|
+
strokeLineJoin: CanvasLineJoin;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke
|
|
73
|
+
* @type Number
|
|
74
|
+
* @default 4
|
|
75
|
+
*/
|
|
76
|
+
strokeMiterLimit: number;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* When `false`, the stoke width will scale with the object.
|
|
80
|
+
* When `true`, the stroke will always match the exact pixel size entered for stroke width.
|
|
81
|
+
* this Property does not work on Text classes or drawing call that uses strokeText,fillText methods
|
|
82
|
+
* default to false
|
|
83
|
+
* @since 2.6.0
|
|
84
|
+
* @type Boolean
|
|
85
|
+
* @default false
|
|
86
|
+
* @type Boolean
|
|
87
|
+
* @default false
|
|
88
|
+
*/
|
|
89
|
+
strokeUniform: boolean;
|
|
90
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface LockInteractionProps {
|
|
2
|
+
/**
|
|
3
|
+
* When `true`, object horizontal movement is locked
|
|
4
|
+
* @type Boolean
|
|
5
|
+
* @default
|
|
6
|
+
*/
|
|
7
|
+
lockMovementX: boolean;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* When `true`, object vertical movement is locked
|
|
11
|
+
* @type Boolean
|
|
12
|
+
* @default
|
|
13
|
+
*/
|
|
14
|
+
lockMovementY: boolean;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* When `true`, object rotation is locked
|
|
18
|
+
* @type Boolean
|
|
19
|
+
* @default
|
|
20
|
+
*/
|
|
21
|
+
lockRotation: boolean;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* When `true`, object horizontal scaling is locked
|
|
25
|
+
* @type Boolean
|
|
26
|
+
* @default
|
|
27
|
+
*/
|
|
28
|
+
lockScalingX: boolean;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* When `true`, object vertical scaling is locked
|
|
32
|
+
* @type Boolean
|
|
33
|
+
* @default
|
|
34
|
+
*/
|
|
35
|
+
lockScalingY: boolean;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* When `true`, object horizontal skewing is locked
|
|
39
|
+
* @type Boolean
|
|
40
|
+
* @default
|
|
41
|
+
*/
|
|
42
|
+
lockSkewingX: boolean;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* When `true`, object vertical skewing is locked
|
|
46
|
+
* @type Boolean
|
|
47
|
+
* @default
|
|
48
|
+
*/
|
|
49
|
+
lockSkewingY: boolean;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* When `true`, object cannot be flipped by scaling into negative values
|
|
53
|
+
* @type Boolean
|
|
54
|
+
* @default
|
|
55
|
+
*/
|
|
56
|
+
lockScalingFlip: boolean;
|
|
57
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Shadow } from '../../../Shadow';
|
|
2
|
+
import type { Canvas } from '../../../canvas/Canvas';
|
|
3
|
+
import type { StaticCanvas } from '../../../canvas/StaticCanvas';
|
|
4
|
+
import { TFiller } from '../../../typedefs';
|
|
5
|
+
import type { FabricObject } from '../Object';
|
|
6
|
+
import { ClipPathProps, SerializedObjectProps } from './SerializedObjectProps';
|
|
7
|
+
|
|
8
|
+
export interface ObjectProps extends SerializedObjectProps, ClipPathProps {
|
|
9
|
+
clipPath?: FabricObject;
|
|
10
|
+
fill: TFiller | string | null;
|
|
11
|
+
stroke: TFiller | string | null;
|
|
12
|
+
shadow: Shadow | null;
|
|
13
|
+
canvas?: StaticCanvas | Canvas;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Minimum allowed scale value of an object
|
|
17
|
+
* @type Number
|
|
18
|
+
* @default 0
|
|
19
|
+
*/
|
|
20
|
+
minScaleLimit: number;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* When `true`, object is cached on an additional canvas.
|
|
24
|
+
* When `false`, object is not cached unless necessary ( clipPath )
|
|
25
|
+
* default to true
|
|
26
|
+
* @since 1.7.0
|
|
27
|
+
* @type Boolean
|
|
28
|
+
* @default true
|
|
29
|
+
*/
|
|
30
|
+
objectCaching: boolean;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* When `false`, default object's values are not included in its serialization
|
|
34
|
+
* @type Boolean
|
|
35
|
+
* @default
|
|
36
|
+
*/
|
|
37
|
+
includeDefaultValues: boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* When `true`, object is not exported in OBJECT/JSON
|
|
41
|
+
* @since 1.6.3
|
|
42
|
+
* @type Boolean
|
|
43
|
+
* @default
|
|
44
|
+
*/
|
|
45
|
+
excludeFromExport: boolean;
|
|
46
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Shadow } from '../../../Shadow';
|
|
2
|
+
import { BaseProps } from './BaseProps';
|
|
3
|
+
import { FillStrokeProps } from './FillStrokeProps';
|
|
4
|
+
|
|
5
|
+
export interface SerializedObjectProps extends BaseProps, FillStrokeProps {
|
|
6
|
+
/**
|
|
7
|
+
* Opacity of an object
|
|
8
|
+
* @type Number
|
|
9
|
+
* @default 1
|
|
10
|
+
*/
|
|
11
|
+
opacity: number;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Composite rule used for canvas globalCompositeOperation
|
|
15
|
+
* @type String
|
|
16
|
+
* @default
|
|
17
|
+
*/
|
|
18
|
+
globalCompositeOperation: GlobalCompositeOperation;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Background color of an object.
|
|
22
|
+
* takes css colors https://www.w3.org/TR/css-color-3/
|
|
23
|
+
* @type String
|
|
24
|
+
* @default
|
|
25
|
+
*/
|
|
26
|
+
backgroundColor: string;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Shadow object representing shadow of this shape
|
|
30
|
+
* @type Shadow
|
|
31
|
+
* @default null
|
|
32
|
+
*/
|
|
33
|
+
shadow: ReturnType<Shadow['toObject']> | null;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* When set to `false`, an object is not rendered on canvas
|
|
37
|
+
* @type Boolean
|
|
38
|
+
* @default
|
|
39
|
+
*/
|
|
40
|
+
visible: boolean;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* a fabricObject that, without stroke define a clipping area with their shape. filled in black
|
|
44
|
+
* the clipPath object gets used when the object has rendered, and the context is placed in the center
|
|
45
|
+
* of the object cacheCanvas.
|
|
46
|
+
* If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'
|
|
47
|
+
* @type FabricObject
|
|
48
|
+
*/
|
|
49
|
+
clipPath?: Partial<SerializedObjectProps> & ClipPathProps;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface ClipPathProps {
|
|
53
|
+
/**
|
|
54
|
+
* Meaningful ONLY when the object is used as clipPath.
|
|
55
|
+
* if true, the clipPath will make the object clip to the outside of the clipPath
|
|
56
|
+
* since 2.4.0
|
|
57
|
+
* @type boolean
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
inverted: boolean;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Meaningful ONLY when the object is used as clipPath.
|
|
64
|
+
* if true, the clipPath will have its top and left relative to canvas, and will
|
|
65
|
+
* not be influenced by the object transform. This will make the clipPath relative
|
|
66
|
+
* to the canvas, but clipping just a particular object.
|
|
67
|
+
* WARNING this is beta, this feature may change or be renamed.
|
|
68
|
+
* since 2.4.0
|
|
69
|
+
* @type boolean
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
absolutePositioned: boolean;
|
|
73
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FabricObjectProps } from './FabricObjectProps';
|
|
2
|
+
|
|
3
|
+
export { SerializedObjectProps } from './SerializedObjectProps';
|
|
4
|
+
export { FabricObjectProps };
|
|
5
|
+
|
|
6
|
+
export type TProps<T> = Partial<T> & Record<string, any>;
|
|
7
|
+
|
|
8
|
+
export type TFabricObjectProps = TProps<FabricObjectProps>;
|