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,153 @@
|
|
|
1
|
+
import type { T2DPipelineState, TWebGLAttributeLocationMap, TWebGLPipelineState, TWebGLProgramCacheItem, TWebGLUniformLocationMap } from './typedefs';
|
|
2
|
+
export declare class BaseFilter {
|
|
3
|
+
/**
|
|
4
|
+
* Filter type
|
|
5
|
+
* @param {String} type
|
|
6
|
+
* @default
|
|
7
|
+
*/
|
|
8
|
+
get type(): string;
|
|
9
|
+
static defaults: Record<string, any>;
|
|
10
|
+
/**
|
|
11
|
+
* Array of attributes to send with buffers. do not modify
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
vertexSource: string;
|
|
15
|
+
/**
|
|
16
|
+
* Name of the parameter that can be changed in the filter.
|
|
17
|
+
* Some filters have more than one parameter and there is no
|
|
18
|
+
* mainParameter
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
mainParameter?: keyof this | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Constructor
|
|
24
|
+
* @param {Object} [options] Options object
|
|
25
|
+
*/
|
|
26
|
+
constructor({ ...options }?: Record<string, any>);
|
|
27
|
+
protected getFragmentSource(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Compile this filter's shader program.
|
|
30
|
+
*
|
|
31
|
+
* @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.
|
|
32
|
+
* @param {String} fragmentSource fragmentShader source for compilation
|
|
33
|
+
* @param {String} vertexSource vertexShader source for compilation
|
|
34
|
+
*/
|
|
35
|
+
createProgram(gl: WebGLRenderingContext, fragmentSource?: string, vertexSource?: string): {
|
|
36
|
+
program: WebGLProgram;
|
|
37
|
+
attributeLocations: TWebGLAttributeLocationMap;
|
|
38
|
+
uniformLocations: TWebGLUniformLocationMap;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Return a map of attribute names to WebGLAttributeLocation objects.
|
|
42
|
+
*
|
|
43
|
+
* @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
|
|
44
|
+
* @param {WebGLShaderProgram} program The shader program from which to take attribute locations.
|
|
45
|
+
* @returns {Object} A map of attribute names to attribute locations.
|
|
46
|
+
*/
|
|
47
|
+
getAttributeLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLAttributeLocationMap;
|
|
48
|
+
/**
|
|
49
|
+
* Return a map of uniform names to WebGLUniformLocation objects.
|
|
50
|
+
*
|
|
51
|
+
* Intended to be overridden by subclasses.
|
|
52
|
+
*
|
|
53
|
+
* @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
|
|
54
|
+
* @param {WebGLShaderProgram} program The shader program from which to take uniform locations.
|
|
55
|
+
* @returns {Object} A map of uniform names to uniform locations.
|
|
56
|
+
*/
|
|
57
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
58
|
+
/**
|
|
59
|
+
* Send attribute data from this filter to its shader program on the GPU.
|
|
60
|
+
*
|
|
61
|
+
* @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
|
|
62
|
+
* @param {Object} attributeLocations A map of shader attribute names to their locations.
|
|
63
|
+
*/
|
|
64
|
+
sendAttributeData(gl: WebGLRenderingContext, attributeLocations: Record<string, number>, aPositionData: Float32Array): void;
|
|
65
|
+
_setupFrameBuffer(options: TWebGLPipelineState): void;
|
|
66
|
+
_swapTextures(options: TWebGLPipelineState): void;
|
|
67
|
+
/**
|
|
68
|
+
* Generic isNeutral implementation for one parameter based filters.
|
|
69
|
+
* Used only in image applyFilters to discard filters that will not have an effect
|
|
70
|
+
* on the image
|
|
71
|
+
* Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )
|
|
72
|
+
* @param {Object} options
|
|
73
|
+
**/
|
|
74
|
+
isNeutralState(options?: any): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Apply this filter to the input image data provided.
|
|
77
|
+
*
|
|
78
|
+
* Determines whether to use WebGL or Canvas2D based on the options.webgl flag.
|
|
79
|
+
*
|
|
80
|
+
* @param {Object} options
|
|
81
|
+
* @param {Number} options.passes The number of filters remaining to be executed
|
|
82
|
+
* @param {Boolean} options.webgl Whether to use webgl to render the filter.
|
|
83
|
+
* @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
|
|
84
|
+
* @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
|
|
85
|
+
* @param {WebGLRenderingContext} options.context The GL context used for rendering.
|
|
86
|
+
* @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
|
|
87
|
+
*/
|
|
88
|
+
applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
|
|
89
|
+
applyTo2d(options: T2DPipelineState): void;
|
|
90
|
+
/**
|
|
91
|
+
* Returns a string that represent the current selected shader code for the filter.
|
|
92
|
+
* Used to force recompilation when parameters change or to retrieve the shader from cache
|
|
93
|
+
* @type string
|
|
94
|
+
**/
|
|
95
|
+
getCacheKey(): string;
|
|
96
|
+
/**
|
|
97
|
+
* Retrieves the cached shader.
|
|
98
|
+
* @param {Object} options
|
|
99
|
+
* @param {WebGLRenderingContext} options.context The GL context used for rendering.
|
|
100
|
+
* @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
|
|
101
|
+
* @return {WebGLProgram} the compiled program shader
|
|
102
|
+
*/
|
|
103
|
+
retrieveShader(options: TWebGLPipelineState): TWebGLProgramCacheItem;
|
|
104
|
+
/**
|
|
105
|
+
* Apply this filter using webgl.
|
|
106
|
+
*
|
|
107
|
+
* @param {Object} options
|
|
108
|
+
* @param {Number} options.passes The number of filters remaining to be executed
|
|
109
|
+
* @param {Boolean} options.webgl Whether to use webgl to render the filter.
|
|
110
|
+
* @param {WebGLTexture} options.originalTexture The texture of the original input image.
|
|
111
|
+
* @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
|
|
112
|
+
* @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
|
|
113
|
+
* @param {WebGLRenderingContext} options.context The GL context used for rendering.
|
|
114
|
+
* @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
|
|
115
|
+
*/
|
|
116
|
+
applyToWebGL(options: TWebGLPipelineState): void;
|
|
117
|
+
bindAdditionalTexture(gl: WebGLRenderingContext, texture: WebGLTexture, textureUnit: number): void;
|
|
118
|
+
unbindAdditionalTexture(gl: WebGLRenderingContext, textureUnit: number): void;
|
|
119
|
+
getMainParameter(): this[keyof this] | undefined;
|
|
120
|
+
setMainParameter(value: any): void;
|
|
121
|
+
/**
|
|
122
|
+
* Send uniform data from this filter to its shader program on the GPU.
|
|
123
|
+
*
|
|
124
|
+
* Intended to be overridden by subclasses.
|
|
125
|
+
*
|
|
126
|
+
* @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
|
|
127
|
+
* @param {Object} uniformLocations A map of shader uniform names to their locations.
|
|
128
|
+
*/
|
|
129
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
130
|
+
/**
|
|
131
|
+
* If needed by a 2d filter, this functions can create an helper canvas to be used
|
|
132
|
+
* remember that options.targetCanvas is available for use till end of chain.
|
|
133
|
+
*/
|
|
134
|
+
createHelpLayer(options: T2DPipelineState): void;
|
|
135
|
+
/**
|
|
136
|
+
* Returns object representation of an instance
|
|
137
|
+
* @return {Object} Object representation of an instance
|
|
138
|
+
*/
|
|
139
|
+
toObject(): {
|
|
140
|
+
type: string;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Returns a JSON representation of an instance
|
|
144
|
+
* @return {Object} JSON
|
|
145
|
+
*/
|
|
146
|
+
toJSON(): {
|
|
147
|
+
type: string;
|
|
148
|
+
};
|
|
149
|
+
static fromObject({ type, ...filterOptions }: Record<string, any>, options: {
|
|
150
|
+
signal: AbortSignal;
|
|
151
|
+
}): Promise<BaseFilter>;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=BaseFilter.d.ts.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
type TBlendMode = 'multiply' | 'add' | 'difference' | 'screen' | 'subtract' | 'darken' | 'lighten' | 'overlay' | 'exclusion' | 'tint';
|
|
5
|
+
export declare const blendColorDefaultValues: Partial<TClassProperties<BlendColor>>;
|
|
6
|
+
/**
|
|
7
|
+
* Color Blend filter class
|
|
8
|
+
* @example
|
|
9
|
+
* const filter = new BlendColor({
|
|
10
|
+
* color: '#000',
|
|
11
|
+
* mode: 'multiply'
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* const filter = new BlendImage({
|
|
15
|
+
* image: fabricImageObject,
|
|
16
|
+
* mode: 'multiply',
|
|
17
|
+
* alpha: 0.5
|
|
18
|
+
* });
|
|
19
|
+
* object.filters.push(filter);
|
|
20
|
+
* object.applyFilters();
|
|
21
|
+
* canvas.renderAll();
|
|
22
|
+
*/
|
|
23
|
+
export declare class BlendColor extends BaseFilter {
|
|
24
|
+
/**
|
|
25
|
+
* Color to make the blend operation with. default to a reddish color since black or white
|
|
26
|
+
* gives always strong result.
|
|
27
|
+
* @type String
|
|
28
|
+
* @default
|
|
29
|
+
**/
|
|
30
|
+
color: string;
|
|
31
|
+
/**
|
|
32
|
+
* Blend mode for the filter: one of multiply, add, difference, screen, subtract,
|
|
33
|
+
* darken, lighten, overlay, exclusion, tint.
|
|
34
|
+
* @type String
|
|
35
|
+
* @default
|
|
36
|
+
**/
|
|
37
|
+
mode: TBlendMode;
|
|
38
|
+
/**
|
|
39
|
+
* alpha value. represent the strength of the blend color operation.
|
|
40
|
+
* @type Number
|
|
41
|
+
* @default
|
|
42
|
+
**/
|
|
43
|
+
alpha: number;
|
|
44
|
+
static defaults: Partial<TClassProperties<BlendColor>>;
|
|
45
|
+
getCacheKey(): string;
|
|
46
|
+
protected getFragmentSource(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
|
|
49
|
+
*
|
|
50
|
+
* @param {Object} options
|
|
51
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
52
|
+
*/
|
|
53
|
+
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
54
|
+
/**
|
|
55
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
56
|
+
*
|
|
57
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
58
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
59
|
+
*/
|
|
60
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
61
|
+
/**
|
|
62
|
+
* Send data from this filter to its shader program's uniforms.
|
|
63
|
+
*
|
|
64
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
65
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
66
|
+
*/
|
|
67
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
68
|
+
/**
|
|
69
|
+
* Returns object representation of an instance
|
|
70
|
+
* @return {Object} Object representation of an instance
|
|
71
|
+
*/
|
|
72
|
+
toObject(): {
|
|
73
|
+
type: string;
|
|
74
|
+
color: string;
|
|
75
|
+
mode: TBlendMode;
|
|
76
|
+
alpha: number;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=BlendColor.d.ts.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Image } from '../shapes/Image';
|
|
2
|
+
import type { TClassProperties } from '../typedefs';
|
|
3
|
+
import { BaseFilter } from './BaseFilter';
|
|
4
|
+
import type { T2DPipelineState, TWebGLPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
5
|
+
import { WebGLFilterBackend } from './WebGLFilterBackend';
|
|
6
|
+
export type TBlendImageMode = 'multiply' | 'mask';
|
|
7
|
+
export declare const blendImageDefaultValues: Partial<TClassProperties<BlendImage>>;
|
|
8
|
+
/**
|
|
9
|
+
* Image Blend filter class
|
|
10
|
+
* @example
|
|
11
|
+
* const filter = new filters.BlendColor({
|
|
12
|
+
* color: '#000',
|
|
13
|
+
* mode: 'multiply'
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const filter = new BlendImage({
|
|
17
|
+
* image: fabricImageObject,
|
|
18
|
+
* mode: 'multiply',
|
|
19
|
+
* alpha: 0.5
|
|
20
|
+
* });
|
|
21
|
+
* object.filters.push(filter);
|
|
22
|
+
* object.applyFilters();
|
|
23
|
+
* canvas.renderAll();
|
|
24
|
+
*/
|
|
25
|
+
export declare class BlendImage extends BaseFilter {
|
|
26
|
+
/**
|
|
27
|
+
* Color to make the blend operation with. default to a reddish color since black or white
|
|
28
|
+
* gives always strong result.
|
|
29
|
+
**/
|
|
30
|
+
image: Image;
|
|
31
|
+
mode: TBlendImageMode;
|
|
32
|
+
/**
|
|
33
|
+
* alpha value. represent the strength of the blend image operation.
|
|
34
|
+
* not implemented.
|
|
35
|
+
**/
|
|
36
|
+
alpha: number;
|
|
37
|
+
static defaults: Partial<TClassProperties<BlendImage>>;
|
|
38
|
+
getCacheKey(): string;
|
|
39
|
+
getFragmentSource(): string;
|
|
40
|
+
applyToWebGL(options: TWebGLPipelineState): void;
|
|
41
|
+
createTexture(backend: WebGLFilterBackend, image: Image): any;
|
|
42
|
+
/**
|
|
43
|
+
* Calculate a transformMatrix to adapt the image to blend over
|
|
44
|
+
* @param {Object} options
|
|
45
|
+
* @param {WebGLRenderingContext} options.context The GL context used for rendering.
|
|
46
|
+
* @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
|
|
47
|
+
*/
|
|
48
|
+
calculateMatrix(): number[];
|
|
49
|
+
/**
|
|
50
|
+
* Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
|
|
51
|
+
*
|
|
52
|
+
* @param {Object} options
|
|
53
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
54
|
+
*/
|
|
55
|
+
applyTo2d({ imageData: { data, width, height }, filterBackend: { resources }, }: T2DPipelineState): void;
|
|
56
|
+
/**
|
|
57
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
58
|
+
*
|
|
59
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
60
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
61
|
+
*/
|
|
62
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
63
|
+
/**
|
|
64
|
+
* Send data from this filter to its shader program's uniforms.
|
|
65
|
+
*
|
|
66
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
67
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
68
|
+
*/
|
|
69
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
70
|
+
/**
|
|
71
|
+
* Returns object representation of an instance
|
|
72
|
+
* @return {Object} Object representation of an instance
|
|
73
|
+
*/
|
|
74
|
+
toObject(): {
|
|
75
|
+
type: string;
|
|
76
|
+
image: Pick<Omit<Partial<import("../shapes/Image").ImageProps> & TClassProperties<Image<Partial<import("../shapes/Image").ImageProps>, import("../shapes/Image").SerializedImageProps, import("../EventTypeDefs").ObjectEvents>>, keyof import("../shapes/Image").SerializedImageProps>, never> & import("../shapes/Image").SerializedImageProps;
|
|
77
|
+
mode: TBlendImageMode;
|
|
78
|
+
alpha: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Create filter instance from an object representation
|
|
82
|
+
* @static
|
|
83
|
+
* @param {object} object Object to create an instance from
|
|
84
|
+
* @param {object} [options]
|
|
85
|
+
* @param {AbortSignal} [options.signal] handle aborting image loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
86
|
+
* @returns {Promise<BlendImage>}
|
|
87
|
+
*/
|
|
88
|
+
static fromObject({ type, image, ...filterOptions }: Record<string, any>, options: {
|
|
89
|
+
signal: AbortSignal;
|
|
90
|
+
}): Promise<BaseFilter>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=BlendImage.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import type { TWebGLPipelineState, T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
export declare const blurDefaultValues: Partial<TClassProperties<Blur>>;
|
|
5
|
+
/**
|
|
6
|
+
* Blur filter class
|
|
7
|
+
* @example
|
|
8
|
+
* const filter = new Blur({
|
|
9
|
+
* blur: 0.5
|
|
10
|
+
* });
|
|
11
|
+
* object.filters.push(filter);
|
|
12
|
+
* object.applyFilters();
|
|
13
|
+
* canvas.renderAll();
|
|
14
|
+
*/
|
|
15
|
+
export declare class Blur extends BaseFilter {
|
|
16
|
+
/**
|
|
17
|
+
* blur value, in percentage of image dimensions.
|
|
18
|
+
* specific to keep the image blur constant at different resolutions
|
|
19
|
+
* range between 0 and 1.
|
|
20
|
+
* @type Number
|
|
21
|
+
* @default
|
|
22
|
+
*/
|
|
23
|
+
blur: number;
|
|
24
|
+
horizontal: boolean;
|
|
25
|
+
aspectRatio: number;
|
|
26
|
+
static defaults: Partial<TClassProperties<Blur>>;
|
|
27
|
+
getFragmentSource(): string;
|
|
28
|
+
applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
|
|
29
|
+
applyTo2d(options: T2DPipelineState): void;
|
|
30
|
+
simpleBlur({ ctx, imageData, filterBackend: { resources }, }: T2DPipelineState): ImageData;
|
|
31
|
+
/**
|
|
32
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
33
|
+
*
|
|
34
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
35
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
36
|
+
*/
|
|
37
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
38
|
+
/**
|
|
39
|
+
* Send data from this filter to its shader program's uniforms.
|
|
40
|
+
*
|
|
41
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
42
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
43
|
+
*/
|
|
44
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
45
|
+
/**
|
|
46
|
+
* choose right value of image percentage to blur with
|
|
47
|
+
* @returns {Array} a numeric array with delta values
|
|
48
|
+
*/
|
|
49
|
+
chooseRightDelta(): number[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=Blur.d.ts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
export declare const myFilterDefaultValues: Partial<TClassProperties<MyFilter>>;
|
|
5
|
+
/**
|
|
6
|
+
* MyFilter filter class
|
|
7
|
+
* @example
|
|
8
|
+
* const filter = new MyFilter({
|
|
9
|
+
* add here an example of how to use your filter
|
|
10
|
+
* });
|
|
11
|
+
* object.filters.push(filter);
|
|
12
|
+
* object.applyFilters();
|
|
13
|
+
*/
|
|
14
|
+
export declare class MyFilter extends BaseFilter {
|
|
15
|
+
/**
|
|
16
|
+
* MyFilter value, from -1 to 1.
|
|
17
|
+
* translated to -255 to 255 for 2d
|
|
18
|
+
* 0.0039215686 is the part of 1 that get translated to 1 in 2d
|
|
19
|
+
* @param {Number} myParameter
|
|
20
|
+
* @default
|
|
21
|
+
*/
|
|
22
|
+
myParameter: number;
|
|
23
|
+
static defaults: Partial<TClassProperties<MyFilter>>;
|
|
24
|
+
getFragmentSource(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Apply the MyFilter operation to a Uint8ClampedArray representing the pixels of an image.
|
|
27
|
+
*
|
|
28
|
+
* @param {Object} options
|
|
29
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
30
|
+
*/
|
|
31
|
+
applyTo2d(options: T2DPipelineState): void;
|
|
32
|
+
/**
|
|
33
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
34
|
+
*
|
|
35
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
36
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
37
|
+
*/
|
|
38
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
39
|
+
/**
|
|
40
|
+
* Send data from this filter to its shader program's uniforms.
|
|
41
|
+
*
|
|
42
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
43
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
44
|
+
*/
|
|
45
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
46
|
+
static fromObject(object: any): Promise<BaseFilter>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Boilerplate.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
|
+
export declare const brightnessDefaultValues: Partial<TClassProperties<Brightness>>;
|
|
5
|
+
/**
|
|
6
|
+
* Brightness filter class
|
|
7
|
+
* @example
|
|
8
|
+
* const filter = new Brightness({
|
|
9
|
+
* brightness: 0.05
|
|
10
|
+
* });
|
|
11
|
+
* object.filters.push(filter);
|
|
12
|
+
* object.applyFilters();
|
|
13
|
+
*/
|
|
14
|
+
export declare class Brightness extends BaseFilter {
|
|
15
|
+
/**
|
|
16
|
+
* Brightness value, from -1 to 1.
|
|
17
|
+
* translated to -255 to 255 for 2d
|
|
18
|
+
* 0.0039215686 is the part of 1 that get translated to 1 in 2d
|
|
19
|
+
* @param {Number} brightness
|
|
20
|
+
* @default
|
|
21
|
+
*/
|
|
22
|
+
brightness: number;
|
|
23
|
+
static defaults: Partial<TClassProperties<Brightness>>;
|
|
24
|
+
getFragmentSource(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
|
|
27
|
+
*
|
|
28
|
+
* @param {Object} options
|
|
29
|
+
* @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
|
|
30
|
+
*/
|
|
31
|
+
applyTo2d({ imageData: { data } }: T2DPipelineState): void;
|
|
32
|
+
/**
|
|
33
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
34
|
+
*
|
|
35
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
36
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
37
|
+
*/
|
|
38
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
39
|
+
/**
|
|
40
|
+
* Send data from this filter to its shader program's uniforms.
|
|
41
|
+
*
|
|
42
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
43
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
44
|
+
*/
|
|
45
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=Brightness.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas 2D filter backend.
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseFilter } from './BaseFilter';
|
|
5
|
+
import { T2DPipelineState, TPipelineResources } from './typedefs';
|
|
6
|
+
export declare class Canvas2dFilterBackend {
|
|
7
|
+
/**
|
|
8
|
+
* Experimental. This object is a sort of repository of help layers used to avoid
|
|
9
|
+
* of recreating them during frequent filtering. If you are previewing a filter with
|
|
10
|
+
* a slider you probably do not want to create help layers every filter step.
|
|
11
|
+
* in this object there will be appended some canvases, created once, resized sometimes
|
|
12
|
+
* cleared never. Clearing is left to the developer.
|
|
13
|
+
**/
|
|
14
|
+
resources: TPipelineResources;
|
|
15
|
+
/**
|
|
16
|
+
* Apply a set of filters against a source image and draw the filtered output
|
|
17
|
+
* to the provided destination canvas.
|
|
18
|
+
*
|
|
19
|
+
* @param {EnhancedFilter} filters The filter to apply.
|
|
20
|
+
* @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.
|
|
21
|
+
* @param {Number} sourceWidth The width of the source input.
|
|
22
|
+
* @param {Number} sourceHeight The height of the source input.
|
|
23
|
+
* @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
|
|
24
|
+
*/
|
|
25
|
+
applyFilters(filters: BaseFilter[], sourceElement: CanvasImageSource, sourceWidth: number, sourceHeight: number, targetCanvas: HTMLCanvasElement): T2DPipelineState | void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=Canvas2dFilterBackend.d.ts.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { TClassProperties } from '../typedefs';
|
|
2
|
+
import { BaseFilter } from './BaseFilter';
|
|
3
|
+
import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
|
|
4
|
+
export declare const colorMatrixDefaultValues: Partial<TClassProperties<ColorMatrix>>;
|
|
5
|
+
/**
|
|
6
|
+
* Color Matrix filter class
|
|
7
|
+
* @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
|
|
8
|
+
* @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}
|
|
9
|
+
* @example <caption>Kodachrome filter</caption>
|
|
10
|
+
* const filter = new ColorMatrix({
|
|
11
|
+
* matrix: [
|
|
12
|
+
1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,
|
|
13
|
+
-0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,
|
|
14
|
+
-0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,
|
|
15
|
+
0, 0, 0, 1, 0
|
|
16
|
+
]
|
|
17
|
+
* });
|
|
18
|
+
* object.filters.push(filter);
|
|
19
|
+
* object.applyFilters();
|
|
20
|
+
*/
|
|
21
|
+
export declare class ColorMatrix extends BaseFilter {
|
|
22
|
+
/**
|
|
23
|
+
* Colormatrix for pixels.
|
|
24
|
+
* array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning
|
|
25
|
+
* outside the -1, 1 range.
|
|
26
|
+
* 0.0039215686 is the part of 1 that get translated to 1 in 2d
|
|
27
|
+
* @param {Array} matrix array of 20 numbers.
|
|
28
|
+
* @default
|
|
29
|
+
*/
|
|
30
|
+
matrix: number[];
|
|
31
|
+
/**
|
|
32
|
+
* Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario
|
|
33
|
+
* to save some calculation
|
|
34
|
+
* @type Boolean
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
colorsOnly: boolean;
|
|
38
|
+
static defaults: Partial<TClassProperties<ColorMatrix>>;
|
|
39
|
+
setOptions({ matrix, ...options }: Record<string, any>): void;
|
|
40
|
+
getFragmentSource(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
|
|
43
|
+
*
|
|
44
|
+
* @param {Object} options
|
|
45
|
+
* @param {ImageData} options.imageData The Uint8Array to be filtered.
|
|
46
|
+
*/
|
|
47
|
+
applyTo2d(options: T2DPipelineState): void;
|
|
48
|
+
/**
|
|
49
|
+
* Return WebGL uniform locations for this filter's shader.
|
|
50
|
+
*
|
|
51
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
52
|
+
* @param {WebGLShaderProgram} program This filter's compiled shader program.
|
|
53
|
+
*/
|
|
54
|
+
getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
|
|
55
|
+
/**
|
|
56
|
+
* Send data from this filter to its shader program's uniforms.
|
|
57
|
+
*
|
|
58
|
+
* @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
|
|
59
|
+
* @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
|
|
60
|
+
*/
|
|
61
|
+
sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ColorMatrix.d.ts.map
|