fabric 5.3.0 → 6.0.0-beta1
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/.eslintrc.js +43 -0
- package/.eslintrc.json +38 -46
- package/.eslintrc_tests +12 -0
- package/.gitattributes +2 -0
- package/.prettierignore +16 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +491 -189
- package/CONTRIBUTING.md +226 -58
- package/README.md +188 -239
- package/bower.json +1 -3
- package/dist/fabric.d.ts +1021 -0
- package/dist/index.cjs +28027 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.min.js +1 -0
- package/dist/index.mjs +27964 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +28092 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +15 -0
- package/dist/index.node.mjs +28035 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/src/Collection.d.ts +126 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/EventTypeDefs.d.ts +226 -0
- package/dist/src/Intersection.d.ts +100 -0
- package/dist/src/Observable.d.ts +54 -0
- package/dist/src/Pattern.d.ts +104 -0
- package/dist/src/Point.d.ts +232 -0
- package/dist/src/Shadow.d.ts +87 -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 +46 -0
- package/dist/src/canvas/Canvas.d.ts +567 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
- package/dist/src/canvas/StaticCanvas.d.ts +751 -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/controls.render.d.ts +29 -0
- package/dist/src/controls/default_controls.d.ts +50 -0
- package/dist/src/controls/drag.d.ts +12 -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 +7 -0
- package/dist/src/env/node.d.ts +3 -0
- package/dist/src/env/types.d.ts +15 -0
- package/dist/src/filters/BaseFilter.d.ts +156 -0
- package/dist/src/filters/BlendColor.d.ts +80 -0
- package/dist/src/filters/BlendImage.d.ts +90 -0
- package/dist/src/filters/Blur.d.ts +50 -0
- package/dist/src/filters/Boilerplate.d.ts +46 -0
- package/dist/src/filters/Brightness.d.ts +46 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/ColorMatrix.d.ts +62 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
- package/dist/src/filters/Composed.d.ts +47 -0
- package/dist/src/filters/Contrast.d.ts +44 -0
- package/dist/src/filters/Convolute.d.ts +82 -0
- package/dist/src/filters/FilterBackend.d.ts +14 -0
- package/dist/src/filters/Gamma.d.ts +53 -0
- package/dist/src/filters/Grayscale.d.ts +45 -0
- package/dist/src/filters/HueRotation.d.ts +24 -0
- package/dist/src/filters/Invert.d.ts +54 -0
- package/dist/src/filters/Noise.d.ts +53 -0
- package/dist/src/filters/Pixelate.d.ts +43 -0
- package/dist/src/filters/RemoveColor.d.ts +62 -0
- package/dist/src/filters/Resize.d.ts +134 -0
- package/dist/src/filters/Saturation.d.ts +47 -0
- package/dist/src/filters/Vibrance.d.ts +47 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
- package/dist/src/filters/WebGLProbe.d.ts +28 -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 +6 -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/mixins/stateful.mixin.d.ts +18 -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 +54 -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/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 +66 -0
- package/dist/src/shapes/Circle.d.ts +80 -0
- package/dist/src/shapes/Ellipse.d.ts +74 -0
- package/dist/src/shapes/Group.d.ts +381 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/IText.d.ts +322 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/Image.d.ts +283 -0
- package/dist/src/shapes/Line.d.ts +117 -0
- package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
- package/dist/src/shapes/Object/Object.d.ts +906 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
- package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
- package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
- package/dist/src/shapes/Path.d.ts +123 -0
- package/dist/src/shapes/Polygon.d.ts +7 -0
- package/dist/src/shapes/Polyline.d.ts +130 -0
- package/dist/src/shapes/Rect.d.ts +62 -0
- package/dist/src/shapes/Text/StyledText.d.ts +118 -0
- package/dist/src/shapes/Text/Text.d.ts +656 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
- package/dist/src/shapes/Textbox.d.ts +170 -0
- package/dist/src/shapes/Triangle.d.ts +17 -0
- package/dist/src/typedefs.d.ts +93 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -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/class_registry.d.ts +14 -0
- package/dist/src/util/dom_event.d.ts +5 -0
- package/dist/src/util/dom_misc.d.ts +40 -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/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_class.d.ts +12 -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 +8 -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.d.ts +108 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/types.d.ts +19 -0
- package/fabric.ts +427 -0
- package/index.node.ts +43 -0
- package/index.ts +1 -0
- package/package.json +90 -39
- package/publish.js +0 -26
- package/rollup.config.mjs +79 -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/index.mjs +679 -0
- package/scripts/transform_files.mjs +504 -0
- package/src/Collection.ts +311 -0
- package/src/CommonMethods.ts +63 -0
- package/src/EventTypeDefs.ts +294 -0
- package/src/Intersection.ts +273 -0
- package/src/Observable.ts +175 -0
- package/src/Pattern.ts +211 -0
- package/src/Point.ts +388 -0
- package/src/Shadow.ts +215 -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 +89 -0
- package/src/canvas/Canvas.ts +1672 -0
- package/src/canvas/SelectableCanvas.ts +1636 -0
- package/src/canvas/StaticCanvas.ts +1709 -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 +19 -0
- package/src/controls/Control.ts +377 -0
- package/src/controls/changeWidth.ts +52 -0
- package/src/controls/controls.render.ts +138 -0
- package/src/controls/default_controls.ts +132 -0
- package/src/controls/drag.ts +31 -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 +28 -0
- package/src/env/index.ts +19 -0
- package/src/env/node.ts +52 -0
- package/src/env/types.ts +15 -0
- package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
- package/src/filters/BlendColor.ts +258 -0
- package/src/filters/BlendImage.ts +254 -0
- package/src/filters/Blur.ts +202 -0
- package/src/filters/Boilerplate.ts +91 -0
- package/src/filters/Brightness.ts +93 -0
- package/src/filters/Canvas2dFilterBackend.ts +65 -0
- package/src/filters/ColorMatrix.ts +156 -0
- package/src/filters/ColorMatrixFilters.ts +106 -0
- package/src/filters/Composed.ts +85 -0
- package/src/filters/Contrast.ts +94 -0
- package/src/filters/Convolute.ts +341 -0
- package/src/filters/FilterBackend.ts +32 -0
- package/src/filters/Gamma.ts +127 -0
- package/src/filters/Grayscale.ts +137 -0
- package/src/filters/HueRotation.ts +66 -0
- package/src/filters/Invert.ts +117 -0
- package/src/filters/Noise.ts +109 -0
- package/src/filters/Pixelate.ts +114 -0
- package/src/filters/RemoveColor.ts +148 -0
- package/src/filters/Resize.ts +540 -0
- package/src/filters/Saturation.ts +100 -0
- package/src/filters/Vibrance.ts +103 -0
- package/src/filters/WebGLFilterBackend.ts +430 -0
- package/src/filters/WebGLProbe.ts +62 -0
- package/src/filters/typedefs.ts +65 -0
- package/src/gradient/Gradient.ts +401 -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 +55 -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/mixins/stateful.mixin.ts +104 -0
- package/src/parkinglot/canvas_animation.mixin.ts +121 -0
- package/src/parkinglot/straighten.ts +58 -0
- package/src/parser/applyViewboxTransform.ts +162 -0
- package/src/parser/attributes.ts +25 -0
- package/src/parser/constants.ts +118 -0
- package/src/parser/doesSomeParentMatch.ts +19 -0
- package/src/parser/elementById.ts +23 -0
- package/src/parser/elementMatchesRule.ts +19 -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 +32 -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/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 +36 -0
- package/src/parser/parseSVGDocument.ts +106 -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 +79 -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 +157 -0
- package/src/shapes/Circle.ts +205 -0
- package/src/shapes/Ellipse.ts +154 -0
- package/src/shapes/Group.ts +1053 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
- package/src/shapes/IText/IText.ts +666 -0
- package/src/shapes/IText/ITextBehavior.ts +1055 -0
- package/src/shapes/IText/ITextClickBehavior.ts +321 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
- package/src/shapes/IText/constants.ts +47 -0
- package/src/shapes/Image.ts +789 -0
- package/src/shapes/Line.ts +329 -0
- package/src/shapes/Object/AnimatableObject.ts +106 -0
- package/src/shapes/Object/FabricObject.ts +19 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
- package/src/shapes/Object/InteractiveObject.ts +645 -0
- package/src/shapes/Object/Object.ts +1896 -0
- package/src/shapes/Object/ObjectGeometry.ts +830 -0
- package/src/shapes/Object/ObjectOrigin.ts +354 -0
- package/src/shapes/Object/StackedObject.ts +191 -0
- package/src/shapes/Object/defaultValues.ts +112 -0
- package/src/shapes/Path.ts +395 -0
- package/src/shapes/Polygon.ts +19 -0
- package/src/shapes/Polyline.ts +333 -0
- package/src/shapes/Rect.ts +199 -0
- package/src/shapes/Text/StyledText.ts +319 -0
- package/src/shapes/Text/Text.ts +1948 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
- package/src/shapes/Textbox.ts +471 -0
- package/src/shapes/Triangle.ts +45 -0
- package/src/typedefs.ts +119 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +28 -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/class_registry.ts +54 -0
- package/src/util/dom_event.ts +28 -0
- package/src/util/dom_misc.ts +138 -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/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_class.ts +90 -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 +51 -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 +17 -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 +231 -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 +133 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.ts +82 -0
- package/src/util/path.ts +941 -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,47 @@
|
|
|
1
|
+
import type { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
/**
|
|
5
|
+
* Saturate filter class
|
|
6
|
+
* @example
|
|
7
|
+
* const filter = new Saturation({
|
|
8
|
+
* saturation: 1
|
|
9
|
+
* });
|
|
10
|
+
* object.filters.push(filter);
|
|
11
|
+
* object.applyFilters();
|
|
12
|
+
*/
|
|
13
|
+
export declare class Saturation extends BaseFilter {
|
|
14
|
+
/**
|
|
15
|
+
* Saturation value, from -1 to 1.
|
|
16
|
+
* Increases/decreases the color saturation.
|
|
17
|
+
* A value of 0 has no effect.
|
|
18
|
+
*
|
|
19
|
+
* @param {Number} saturation
|
|
20
|
+
* @default
|
|
21
|
+
*/
|
|
22
|
+
saturation: number;
|
|
23
|
+
/**
|
|
24
|
+
* Apply the Saturation operation to a Uint8ClampedArray representing the pixels of an image.
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} options
|
|
27
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
28
|
+
*/
|
|
29
|
+
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
30
|
+
/**
|
|
31
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
32
|
+
*
|
|
33
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
34
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
35
|
+
*/
|
|
36
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
37
|
+
/**
|
|
38
|
+
* Send data from this filter to its shader program's uniforms.
|
|
39
|
+
*
|
|
40
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
41
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
42
|
+
*/
|
|
43
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
44
|
+
static fromObject(object: any): Promise<Saturation>;
|
|
45
|
+
}
|
|
46
|
+
export declare const saturationDefaultValues: Partial<TClassProperties<Saturation>>;
|
|
47
|
+
//# sourceMappingURL=Saturation.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
/**
|
|
5
|
+
* Vibrance filter class
|
|
6
|
+
* @example
|
|
7
|
+
* const filter = new Vibrance({
|
|
8
|
+
* vibrance: 1
|
|
9
|
+
* });
|
|
10
|
+
* object.filters.push(filter);
|
|
11
|
+
* object.applyFilters();
|
|
12
|
+
*/
|
|
13
|
+
export declare class Vibrance extends BaseFilter {
|
|
14
|
+
/**
|
|
15
|
+
* Vibrance value, from -1 to 1.
|
|
16
|
+
* Increases/decreases the saturation of more muted colors with less effect on saturated colors.
|
|
17
|
+
* A value of 0 has no effect.
|
|
18
|
+
*
|
|
19
|
+
* @param {Number} vibrance
|
|
20
|
+
* @default
|
|
21
|
+
*/
|
|
22
|
+
vibrance: number;
|
|
23
|
+
/**
|
|
24
|
+
* Apply the Vibrance operation to a Uint8ClampedArray representing the pixels of an image.
|
|
25
|
+
*
|
|
26
|
+
* @param {Object} options
|
|
27
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
28
|
+
*/
|
|
29
|
+
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
30
|
+
/**
|
|
31
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
32
|
+
*
|
|
33
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
34
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
35
|
+
*/
|
|
36
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
37
|
+
/**
|
|
38
|
+
* Send data from this filter to its shader program's uniforms.
|
|
39
|
+
*
|
|
40
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
41
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
42
|
+
*/
|
|
43
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
44
|
+
static fromObject(object: any): Promise<Vibrance>;
|
|
45
|
+
}
|
|
46
|
+
export declare const vibranceDefaultValues: Partial<TClassProperties<Vibrance>>;
|
|
47
|
+
//# sourceMappingURL=Vibrance.d.ts.map
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { TWebGLPipelineState, TProgramCache, TTextureCache, TPipelineResources } from './typedefs';
|
|
2
|
+
export declare class WebGLFilterBackend {
|
|
3
|
+
tileSize: number;
|
|
4
|
+
/**
|
|
5
|
+
* Define ...
|
|
6
|
+
**/
|
|
7
|
+
aPosition: Float32Array;
|
|
8
|
+
/**
|
|
9
|
+
* If GLPut data is the fastest operation, or if forced, this buffer will be used
|
|
10
|
+
* to transfer the data back in the 2d logic
|
|
11
|
+
**/
|
|
12
|
+
imageBuffer?: ArrayBuffer;
|
|
13
|
+
canvas: HTMLCanvasElement;
|
|
14
|
+
/**
|
|
15
|
+
* The Webgl context that will execute the operations for filtering
|
|
16
|
+
**/
|
|
17
|
+
gl: WebGLRenderingContext;
|
|
18
|
+
/**
|
|
19
|
+
* Keyed map for shader cache
|
|
20
|
+
**/
|
|
21
|
+
programCache: TProgramCache;
|
|
22
|
+
/**
|
|
23
|
+
* Keyed map for texture cache
|
|
24
|
+
**/
|
|
25
|
+
textureCache: TTextureCache;
|
|
26
|
+
/**
|
|
27
|
+
* Contains GPU info for debug
|
|
28
|
+
**/
|
|
29
|
+
gpuInfo: any;
|
|
30
|
+
/**
|
|
31
|
+
* Experimental. This object is a sort of repository of help layers used to avoid
|
|
32
|
+
* of recreating them during frequent filtering. If you are previewing a filter with
|
|
33
|
+
* a slider you probably do not want to create help layers every filter step.
|
|
34
|
+
* in this object there will be appended some canvases, created once, resized sometimes
|
|
35
|
+
* cleared never. Clearing is left to the developer.
|
|
36
|
+
**/
|
|
37
|
+
resources: TPipelineResources;
|
|
38
|
+
constructor({ tileSize }?: {
|
|
39
|
+
tileSize?: number | undefined;
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* Setup a WebGL context suitable for filtering, and bind any needed event handlers.
|
|
43
|
+
*/
|
|
44
|
+
setupGLContext(width: number, height: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Pick a method to copy data from GL context to 2d canvas. In some browsers using
|
|
47
|
+
* drawImage should be faster, but is also bugged for a small combination of old hardware
|
|
48
|
+
* and drivers.
|
|
49
|
+
* putImageData is faster than drawImage for that specific operation.
|
|
50
|
+
*/
|
|
51
|
+
chooseFastestCopyGLTo2DMethod(width: number, height: number): void;
|
|
52
|
+
/**
|
|
53
|
+
* Create a canvas element and associated WebGL context and attaches them as
|
|
54
|
+
* class properties to the GLFilterBackend class.
|
|
55
|
+
*/
|
|
56
|
+
createWebGLCanvas(width: number, height: number): void;
|
|
57
|
+
/**
|
|
58
|
+
* Attempts to apply the requested filters to the source provided, drawing the filtered output
|
|
59
|
+
* to the provided target canvas.
|
|
60
|
+
*
|
|
61
|
+
* @param {Array} filters The filters to apply.
|
|
62
|
+
* @param {TexImageSource} source The source to be filtered.
|
|
63
|
+
* @param {Number} width The width of the source input.
|
|
64
|
+
* @param {Number} height The height of the source input.
|
|
65
|
+
* @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
|
|
66
|
+
* @param {String|undefined} cacheKey A key used to cache resources related to the source. If
|
|
67
|
+
* omitted, caching will be skipped.
|
|
68
|
+
*/
|
|
69
|
+
applyFilters(filters: any[], source: TexImageSource, width: number, height: number, targetCanvas: HTMLCanvasElement, cacheKey?: string): TWebGLPipelineState | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Detach event listeners, remove references, and clean up caches.
|
|
72
|
+
*/
|
|
73
|
+
dispose(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Wipe out WebGL-related caches.
|
|
76
|
+
*/
|
|
77
|
+
clearWebGLCaches(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Create a WebGL texture object.
|
|
80
|
+
*
|
|
81
|
+
* Accepts specific dimensions to initialize the texture to or a source image.
|
|
82
|
+
*
|
|
83
|
+
* @param {WebGLRenderingContext} gl The GL context to use for creating the texture.
|
|
84
|
+
* @param {Number} width The width to initialize the texture at.
|
|
85
|
+
* @param {Number} height The height to initialize the texture.
|
|
86
|
+
* @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source for the texture data.
|
|
87
|
+
* @returns {WebGLTexture}
|
|
88
|
+
*/
|
|
89
|
+
createTexture(gl: WebGLRenderingContext, width: number, height: number, textureImageSource?: TexImageSource): WebGLTexture | null;
|
|
90
|
+
/**
|
|
91
|
+
* Can be optionally used to get a texture from the cache array
|
|
92
|
+
*
|
|
93
|
+
* If an existing texture is not found, a new texture is created and cached.
|
|
94
|
+
*
|
|
95
|
+
* @param {String} uniqueId A cache key to use to find an existing texture.
|
|
96
|
+
* @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source to use to create the
|
|
97
|
+
* texture cache entry if one does not already exist.
|
|
98
|
+
*/
|
|
99
|
+
getCachedTexture(uniqueId: string, textureImageSource: TexImageSource): any;
|
|
100
|
+
/**
|
|
101
|
+
* Clear out cached resources related to a source image that has been
|
|
102
|
+
* filtered previously.
|
|
103
|
+
*
|
|
104
|
+
* @param {String} cacheKey The cache key provided when the source image was filtered.
|
|
105
|
+
*/
|
|
106
|
+
evictCachesForKey(cacheKey: string): void;
|
|
107
|
+
/**
|
|
108
|
+
* Copy an input WebGL canvas on to an output 2D canvas.
|
|
109
|
+
*
|
|
110
|
+
* The WebGL canvas is assumed to be upside down, with the top-left pixel of the
|
|
111
|
+
* desired output image appearing in the bottom-left corner of the WebGL canvas.
|
|
112
|
+
*
|
|
113
|
+
* @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.
|
|
114
|
+
* @param {Object} pipelineState The 2D target canvas to copy on to.
|
|
115
|
+
*/
|
|
116
|
+
copyGLTo2D(gl: WebGLRenderingContext, pipelineState: TWebGLPipelineState): void;
|
|
117
|
+
/**
|
|
118
|
+
* Attempt to extract GPU information strings from a WebGL context.
|
|
119
|
+
*
|
|
120
|
+
* Useful information when debugging or blacklisting specific GPUs.
|
|
121
|
+
*
|
|
122
|
+
* @returns {Object} A GPU info object with renderer and vendor strings.
|
|
123
|
+
*/
|
|
124
|
+
captureGPUInfo(): any;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=WebGLFilterBackend.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare enum WebGLPrecision {
|
|
2
|
+
low = "lowp",
|
|
3
|
+
medium = "mediump",
|
|
4
|
+
high = "highp"
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Lazy initialize WebGL constants
|
|
8
|
+
*/
|
|
9
|
+
declare class WebGLProbe {
|
|
10
|
+
maxTextureSize?: number;
|
|
11
|
+
webGLPrecision: WebGLPrecision | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Tests if webgl supports certain precision
|
|
14
|
+
* @param {WebGL} Canvas WebGL context to test on
|
|
15
|
+
* @param {WebGLPrecision} Precision to test can be any of following
|
|
16
|
+
* @returns {Boolean} Whether the user's browser WebGL supports given precision.
|
|
17
|
+
*/
|
|
18
|
+
private testPrecision;
|
|
19
|
+
/**
|
|
20
|
+
* query browser for WebGL
|
|
21
|
+
* @returns config object if true
|
|
22
|
+
*/
|
|
23
|
+
queryWebGL(): void;
|
|
24
|
+
isSupported(textureSize: number): boolean | 0 | undefined;
|
|
25
|
+
}
|
|
26
|
+
export declare const webGLProbe: WebGLProbe;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=WebGLProbe.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { WebGLFilterBackend } from './WebGLFilterBackend';
|
|
2
|
+
import type { Canvas2dFilterBackend } from './Canvas2dFilterBackend';
|
|
3
|
+
export type TProgramCache = any;
|
|
4
|
+
export type TTextureCache = any;
|
|
5
|
+
export type TPipelineResources = {
|
|
6
|
+
blendImage?: HTMLCanvasElement;
|
|
7
|
+
blurLayer1?: HTMLCanvasElement;
|
|
8
|
+
blurLayer2?: HTMLCanvasElement;
|
|
9
|
+
} & Record<string, unknown>;
|
|
10
|
+
export type TWebGLPipelineState = {
|
|
11
|
+
filterBackend: WebGLFilterBackend;
|
|
12
|
+
originalWidth: number;
|
|
13
|
+
originalHeight: number;
|
|
14
|
+
sourceWidth: number;
|
|
15
|
+
sourceHeight: number;
|
|
16
|
+
destinationWidth: number;
|
|
17
|
+
destinationHeight: number;
|
|
18
|
+
context: WebGLRenderingContext;
|
|
19
|
+
sourceTexture: WebGLTexture | null;
|
|
20
|
+
targetTexture: WebGLTexture | null;
|
|
21
|
+
originalTexture: WebGLTexture;
|
|
22
|
+
passes: number;
|
|
23
|
+
webgl: boolean;
|
|
24
|
+
aPosition: Float32Array;
|
|
25
|
+
programCache: TProgramCache;
|
|
26
|
+
pass: number;
|
|
27
|
+
targetCanvas: HTMLCanvasElement;
|
|
28
|
+
};
|
|
29
|
+
export type T2DPipelineState = {
|
|
30
|
+
sourceWidth: number;
|
|
31
|
+
sourceHeight: number;
|
|
32
|
+
filterBackend: Canvas2dFilterBackend;
|
|
33
|
+
canvasEl: HTMLCanvasElement;
|
|
34
|
+
imageData: ImageData;
|
|
35
|
+
originalEl: CanvasImageSource;
|
|
36
|
+
originalImageData?: ImageData;
|
|
37
|
+
ctx: CanvasRenderingContext2D;
|
|
38
|
+
helpLayer?: HTMLCanvasElement;
|
|
39
|
+
};
|
|
40
|
+
export type TWebGLUniformLocationMap = Record<string, WebGLUniformLocation | null>;
|
|
41
|
+
export type TWebGLAttributeLocationMap = Record<string, number>;
|
|
42
|
+
export type TWebGLProgramCacheItem = {
|
|
43
|
+
program: WebGLProgram;
|
|
44
|
+
attributeLocations: TWebGLAttributeLocationMap;
|
|
45
|
+
uniformLocations: TWebGLUniformLocationMap;
|
|
46
|
+
};
|
|
47
|
+
export type TApplyFilterArgs = {};
|
|
48
|
+
export declare const isWebGLPipelineState: (options: TWebGLPipelineState | T2DPipelineState) => options is TWebGLPipelineState;
|
|
49
|
+
//# sourceMappingURL=typedefs.d.ts.map
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import type { FabricObject } from '../shapes/Object/FabricObject';
|
|
2
|
+
import { TMat2D } from '../typedefs';
|
|
3
|
+
import { ColorStop, GradientCoords, GradientOptions, GradientType, GradientUnits, SVGOptions } from './typedefs';
|
|
4
|
+
/**
|
|
5
|
+
* Gradient class
|
|
6
|
+
* @class Gradient
|
|
7
|
+
* @tutorial {@link http://fabricjs.com/fabric-intro-part-2#gradients}
|
|
8
|
+
*/
|
|
9
|
+
export declare class Gradient<S, T extends GradientType = S extends GradientType ? S : 'linear'> {
|
|
10
|
+
/**
|
|
11
|
+
* Horizontal offset for aligning gradients coming from SVG when outside pathgroups
|
|
12
|
+
* @type Number
|
|
13
|
+
* @default 0
|
|
14
|
+
*/
|
|
15
|
+
offsetX: number;
|
|
16
|
+
/**
|
|
17
|
+
* Vertical offset for aligning gradients coming from SVG when outside pathgroups
|
|
18
|
+
* @type Number
|
|
19
|
+
* @default 0
|
|
20
|
+
*/
|
|
21
|
+
offsetY: number;
|
|
22
|
+
/**
|
|
23
|
+
* A transform matrix to apply to the gradient before painting.
|
|
24
|
+
* Imported from svg gradients, is not applied with the current transform in the center.
|
|
25
|
+
* Before this transform is applied, the origin point is at the top left corner of the object
|
|
26
|
+
* plus the addition of offsetY and offsetX.
|
|
27
|
+
* @type Number[]
|
|
28
|
+
* @default null
|
|
29
|
+
*/
|
|
30
|
+
gradientTransform: TMat2D | null;
|
|
31
|
+
/**
|
|
32
|
+
* coordinates units for coords.
|
|
33
|
+
* If `pixels`, the number of coords are in the same unit of width / height.
|
|
34
|
+
* If set as `percentage` the coords are still a number, but 1 means 100% of width
|
|
35
|
+
* for the X and 100% of the height for the y. It can be bigger than 1 and negative.
|
|
36
|
+
* allowed values pixels or percentage.
|
|
37
|
+
* @type GradientUnits
|
|
38
|
+
* @default 'pixels'
|
|
39
|
+
*/
|
|
40
|
+
gradientUnits: GradientUnits;
|
|
41
|
+
/**
|
|
42
|
+
* Gradient type linear or radial
|
|
43
|
+
* @type GradientType
|
|
44
|
+
* @default 'linear'
|
|
45
|
+
*/
|
|
46
|
+
type: T;
|
|
47
|
+
/**
|
|
48
|
+
* Defines how the gradient is located in space and spread
|
|
49
|
+
* @type GradientCoords
|
|
50
|
+
*/
|
|
51
|
+
coords: GradientCoords<T>;
|
|
52
|
+
/**
|
|
53
|
+
* Defines how many colors a gradient has and how they are located on the axis
|
|
54
|
+
* defined by coords
|
|
55
|
+
* @type GradientCoords
|
|
56
|
+
*/
|
|
57
|
+
colorStops: ColorStop[];
|
|
58
|
+
/**
|
|
59
|
+
* If true, this object will not be exported during the serialization of a canvas
|
|
60
|
+
* @type boolean
|
|
61
|
+
*/
|
|
62
|
+
excludeFromExport?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* ID used for SVG export functionalities
|
|
65
|
+
* @type number | string
|
|
66
|
+
*/
|
|
67
|
+
readonly id: string | number;
|
|
68
|
+
constructor({ type, gradientUnits, coords, colorStops, offsetX, offsetY, gradientTransform, id, }: GradientOptions<T>);
|
|
69
|
+
/**
|
|
70
|
+
* Adds another colorStop
|
|
71
|
+
* @param {Record<string, string>} colorStop Object with offset and color
|
|
72
|
+
* @return {Gradient} thisArg
|
|
73
|
+
*/
|
|
74
|
+
addColorStop(colorStops: Record<string, string>): this;
|
|
75
|
+
/**
|
|
76
|
+
* Returns object representation of a gradient
|
|
77
|
+
* @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
78
|
+
* @return {object}
|
|
79
|
+
*/
|
|
80
|
+
toObject(propertiesToInclude?: (keyof this | string)[]): Partial<this> & {
|
|
81
|
+
type: T;
|
|
82
|
+
coords: GradientCoords<T>;
|
|
83
|
+
colorStops: ColorStop[];
|
|
84
|
+
offsetX: number;
|
|
85
|
+
offsetY: number;
|
|
86
|
+
gradientUnits: GradientUnits;
|
|
87
|
+
gradientTransform: number[] | null;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Returns SVG representation of an gradient
|
|
91
|
+
* @param {FabricObject} object Object to create a gradient for
|
|
92
|
+
* @return {String} SVG representation of an gradient (linear/radial)
|
|
93
|
+
*/
|
|
94
|
+
toSVG(object: FabricObject, { additionalTransform: preTransform }?: {
|
|
95
|
+
additionalTransform?: string;
|
|
96
|
+
}): string;
|
|
97
|
+
/**
|
|
98
|
+
* Returns an instance of CanvasGradient
|
|
99
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
100
|
+
* @return {CanvasGradient}
|
|
101
|
+
*/
|
|
102
|
+
toLive(ctx: CanvasRenderingContext2D): CanvasGradient;
|
|
103
|
+
/**
|
|
104
|
+
* Returns {@link Gradient} instance from an SVG element
|
|
105
|
+
* @static
|
|
106
|
+
* @memberOf Gradient
|
|
107
|
+
* @param {SVGGradientElement} el SVG gradient element
|
|
108
|
+
* @param {FabricObject} instance
|
|
109
|
+
* @param {String} opacity A fill-opacity or stroke-opacity attribute to multiply to each stop's opacity.
|
|
110
|
+
* @param {SVGOptions} svgOptions an object containing the size of the SVG in order to parse correctly gradients
|
|
111
|
+
* that uses gradientUnits as 'userSpaceOnUse' and percentages.
|
|
112
|
+
* @return {Gradient} Gradient instance
|
|
113
|
+
* @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement
|
|
114
|
+
* @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
*
|
|
118
|
+
* <linearGradient id="linearGrad1">
|
|
119
|
+
* <stop offset="0%" stop-color="white"/>
|
|
120
|
+
* <stop offset="100%" stop-color="black"/>
|
|
121
|
+
* </linearGradient>
|
|
122
|
+
*
|
|
123
|
+
* OR
|
|
124
|
+
*
|
|
125
|
+
* <linearGradient id="linearGrad2">
|
|
126
|
+
* <stop offset="0" style="stop-color:rgb(255,255,255)"/>
|
|
127
|
+
* <stop offset="1" style="stop-color:rgb(0,0,0)"/>
|
|
128
|
+
* </linearGradient>
|
|
129
|
+
*
|
|
130
|
+
* OR
|
|
131
|
+
*
|
|
132
|
+
* <radialGradient id="radialGrad1">
|
|
133
|
+
* <stop offset="0%" stop-color="white" stop-opacity="1" />
|
|
134
|
+
* <stop offset="50%" stop-color="black" stop-opacity="0.5" />
|
|
135
|
+
* <stop offset="100%" stop-color="white" stop-opacity="1" />
|
|
136
|
+
* </radialGradient>
|
|
137
|
+
*
|
|
138
|
+
* OR
|
|
139
|
+
*
|
|
140
|
+
* <radialGradient id="radialGrad2">
|
|
141
|
+
* <stop offset="0" stop-color="rgb(255,255,255)" />
|
|
142
|
+
* <stop offset="0.5" stop-color="rgb(0,0,0)" />
|
|
143
|
+
* <stop offset="1" stop-color="rgb(255,255,255)" />
|
|
144
|
+
* </radialGradient>
|
|
145
|
+
*
|
|
146
|
+
*/
|
|
147
|
+
static fromElement(el: SVGGradientElement, instance: FabricObject, svgOptions: SVGOptions): Gradient<GradientType>;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=Gradient.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const linearDefaultCoords: {
|
|
2
|
+
x1: number;
|
|
3
|
+
y1: number;
|
|
4
|
+
x2: number;
|
|
5
|
+
y2: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const radialDefaultCoords: {
|
|
8
|
+
r1: number;
|
|
9
|
+
r2: number;
|
|
10
|
+
x1: number;
|
|
11
|
+
y1: number;
|
|
12
|
+
x2: number;
|
|
13
|
+
y2: number;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TSize } from '../../typedefs';
|
|
2
|
+
export declare function parseLinearCoords(el: SVGGradientElement): {
|
|
3
|
+
x1: string | number;
|
|
4
|
+
y1: string | number;
|
|
5
|
+
x2: string;
|
|
6
|
+
y2: string | number;
|
|
7
|
+
};
|
|
8
|
+
export declare function parseRadialCoords(el: SVGGradientElement): {
|
|
9
|
+
x1: string;
|
|
10
|
+
y1: string;
|
|
11
|
+
r1: number;
|
|
12
|
+
x2: string;
|
|
13
|
+
y2: string;
|
|
14
|
+
r2: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function parseCoords(el: SVGGradientElement, size: TSize): Record<"x1" | "y1" | "x2" | "y2", number>;
|
|
17
|
+
//# sourceMappingURL=parseCoords.d.ts.map
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Percent, TMat2D } from '../typedefs';
|
|
2
|
+
export type GradientUnits = 'pixels' | 'percentage';
|
|
3
|
+
export type GradientType = 'linear' | 'radial';
|
|
4
|
+
export type GradientCoordValue = number | Percent | string;
|
|
5
|
+
export type ColorStop = {
|
|
6
|
+
color: string;
|
|
7
|
+
offset: number;
|
|
8
|
+
opacity?: number;
|
|
9
|
+
};
|
|
10
|
+
export type LinearGradientCoords<T extends GradientCoordValue> = {
|
|
11
|
+
/**
|
|
12
|
+
* X coordiante of the first point
|
|
13
|
+
*/
|
|
14
|
+
x1: T;
|
|
15
|
+
/**
|
|
16
|
+
* Y coordiante of the first point
|
|
17
|
+
*/
|
|
18
|
+
y1: T;
|
|
19
|
+
/**
|
|
20
|
+
* X coordiante of the second point
|
|
21
|
+
*/
|
|
22
|
+
x2: T;
|
|
23
|
+
/**
|
|
24
|
+
* Y coordiante of the second point
|
|
25
|
+
*/
|
|
26
|
+
y2: T;
|
|
27
|
+
};
|
|
28
|
+
export type RadialGradientCoords<T extends GradientCoordValue> = {
|
|
29
|
+
/**
|
|
30
|
+
* X coordiante of the first focal point
|
|
31
|
+
*/
|
|
32
|
+
x1: T;
|
|
33
|
+
/**
|
|
34
|
+
* Y coordiante of the first focal point
|
|
35
|
+
*/
|
|
36
|
+
y1: T;
|
|
37
|
+
/**
|
|
38
|
+
* X coordiante of the second focal point
|
|
39
|
+
*/
|
|
40
|
+
x2: T;
|
|
41
|
+
/**
|
|
42
|
+
* Y coordiante of the second focal point
|
|
43
|
+
*/
|
|
44
|
+
y2: T;
|
|
45
|
+
/**
|
|
46
|
+
* radius of the inner circle
|
|
47
|
+
*/
|
|
48
|
+
r1: T;
|
|
49
|
+
/**
|
|
50
|
+
* radius of the outer circle
|
|
51
|
+
*/
|
|
52
|
+
r2: T;
|
|
53
|
+
};
|
|
54
|
+
export type GradientCoords<T extends GradientType> = T extends 'linear' ? LinearGradientCoords<number> : RadialGradientCoords<number>;
|
|
55
|
+
export type GradientOptions<T extends GradientType> = {
|
|
56
|
+
type?: T;
|
|
57
|
+
gradientUnits?: GradientUnits;
|
|
58
|
+
colorStops?: ColorStop[];
|
|
59
|
+
coords: Partial<GradientCoords<T>>;
|
|
60
|
+
/**
|
|
61
|
+
* @todo rename?
|
|
62
|
+
*/
|
|
63
|
+
gradientTransform?: TMat2D;
|
|
64
|
+
id?: string;
|
|
65
|
+
/**
|
|
66
|
+
* SVG import compatibility
|
|
67
|
+
*/
|
|
68
|
+
offsetX?: number;
|
|
69
|
+
/**
|
|
70
|
+
* SVG import compatibility
|
|
71
|
+
*/
|
|
72
|
+
offsetY?: number;
|
|
73
|
+
};
|
|
74
|
+
export type SVGOptions = {
|
|
75
|
+
/**
|
|
76
|
+
* width part of the viewBox attribute on svg
|
|
77
|
+
*/
|
|
78
|
+
viewBoxWidth: number;
|
|
79
|
+
/**
|
|
80
|
+
* height part of the viewBox attribute on svg
|
|
81
|
+
*/
|
|
82
|
+
viewBoxHeight: number;
|
|
83
|
+
/**
|
|
84
|
+
* width part of the svg tag if viewBox is not specified
|
|
85
|
+
*/
|
|
86
|
+
width: number;
|
|
87
|
+
/**
|
|
88
|
+
* height part of the svg tag if viewBox is not specified
|
|
89
|
+
*/
|
|
90
|
+
height: number;
|
|
91
|
+
opacity: string | null;
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=typedefs.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class StatefulMixin {
|
|
2
|
+
/**
|
|
3
|
+
* Returns true if object state (one of its state properties) was changed
|
|
4
|
+
* @param {String} [propertySet] optional name for the set of property we want to save
|
|
5
|
+
* @return {Boolean} true if instance' state has changed since `{@link fabric.Object#saveState}` was called
|
|
6
|
+
*/
|
|
7
|
+
private hasStateChanged;
|
|
8
|
+
private saveProps;
|
|
9
|
+
/**
|
|
10
|
+
* Saves state of an object
|
|
11
|
+
* @param {Object} [options] Object with additional `stateProperties` array to include when saving state
|
|
12
|
+
* @param {string[]} [options.stateProperties] Object with additional `stateProperties` array to include when saving state
|
|
13
|
+
* @param {string} [options.propertySet] name for the property set to save
|
|
14
|
+
* @return {fabric.Object} thisArg
|
|
15
|
+
*/
|
|
16
|
+
private saveState;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=stateful.mixin.d.ts.map
|