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