fabric 6.2.0 → 6.3.0
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/.prettierignore +1 -0
- package/CHANGELOG.md +12 -4
- package/README.md +1 -1
- package/dist/extensions/aligning_guidelines/constant.d.ts +3 -0
- package/dist/extensions/aligning_guidelines/constant.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/index.d.ts +5 -0
- package/dist/extensions/aligning_guidelines/index.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/typedefs.d.ts +33 -0
- package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/util/basic.d.ts +4 -0
- package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
- package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
- package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/util/draw.d.ts +6 -0
- package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
- package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
- package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +2 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/index.js +140 -108
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +140 -108
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +140 -108
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +140 -108
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/ClassRegistry.min.mjs.map +1 -1
- package/dist/src/ClassRegistry.mjs.map +1 -1
- package/dist/src/Collection.min.mjs.map +1 -1
- package/dist/src/Collection.mjs.map +1 -1
- package/dist/src/Intersection.min.mjs.map +1 -1
- package/dist/src/Intersection.mjs.map +1 -1
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +1 -1
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.d.ts +1 -1
- package/dist/src/LayoutManager/LayoutManager.d.ts.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutManager.mjs +1 -1
- package/dist/src/LayoutManager/LayoutManager.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +1 -1
- package/dist/src/LayoutManager/types.d.ts.map +1 -1
- package/dist/src/Observable.min.mjs.map +1 -1
- package/dist/src/Observable.mjs.map +1 -1
- package/dist/src/Pattern/Pattern.d.ts +2 -2
- package/dist/src/Pattern/Pattern.d.ts.map +1 -1
- package/dist/src/Pattern/Pattern.min.mjs +1 -1
- package/dist/src/Pattern/Pattern.min.mjs.map +1 -1
- package/dist/src/Pattern/Pattern.mjs +14 -12
- package/dist/src/Pattern/Pattern.mjs.map +1 -1
- package/dist/src/Point.min.mjs.map +1 -1
- package/dist/src/Point.mjs.map +1 -1
- package/dist/src/Shadow.min.mjs.map +1 -1
- package/dist/src/Shadow.mjs.map +1 -1
- package/dist/src/brushes/CircleBrush.min.mjs.map +1 -1
- package/dist/src/brushes/CircleBrush.mjs.map +1 -1
- package/dist/src/brushes/PatternBrush.min.mjs.map +1 -1
- package/dist/src/brushes/PatternBrush.mjs.map +1 -1
- package/dist/src/brushes/PencilBrush.min.mjs.map +1 -1
- package/dist/src/brushes/PencilBrush.mjs.map +1 -1
- package/dist/src/brushes/SprayBrush.min.mjs.map +1 -1
- package/dist/src/brushes/SprayBrush.mjs.map +1 -1
- package/dist/src/canvas/Canvas.d.ts +1 -1
- package/dist/src/canvas/Canvas.d.ts.map +1 -1
- package/dist/src/canvas/Canvas.min.mjs.map +1 -1
- package/dist/src/canvas/Canvas.mjs +2 -1
- package/dist/src/canvas/Canvas.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/util.min.mjs.map +1 -1
- package/dist/src/canvas/DOMManagers/util.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.mjs +1 -1
- package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvasOptions.d.ts.map +1 -1
- package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvasOptions.mjs.map +1 -1
- package/dist/src/canvas/TextEditingManager.min.mjs.map +1 -1
- package/dist/src/canvas/TextEditingManager.mjs.map +1 -1
- package/dist/src/color/Color.d.ts.map +1 -1
- package/dist/src/color/Color.min.mjs.map +1 -1
- package/dist/src/color/Color.mjs +1 -0
- package/dist/src/color/Color.mjs.map +1 -1
- package/dist/src/color/util.min.mjs.map +1 -1
- package/dist/src/color/util.mjs.map +1 -1
- package/dist/src/config.min.mjs.map +1 -1
- package/dist/src/config.mjs.map +1 -1
- package/dist/src/controls/Control.min.mjs.map +1 -1
- package/dist/src/controls/Control.mjs.map +1 -1
- package/dist/src/controls/changeWidth.min.mjs.map +1 -1
- package/dist/src/controls/changeWidth.mjs.map +1 -1
- package/dist/src/controls/controlRendering.min.mjs.map +1 -1
- package/dist/src/controls/controlRendering.mjs.map +1 -1
- package/dist/src/controls/drag.min.mjs.map +1 -1
- package/dist/src/controls/drag.mjs.map +1 -1
- package/dist/src/controls/fireEvent.min.mjs.map +1 -1
- package/dist/src/controls/fireEvent.mjs.map +1 -1
- package/dist/src/controls/pathControl.min.mjs.map +1 -1
- package/dist/src/controls/pathControl.mjs.map +1 -1
- package/dist/src/controls/polyControl.min.mjs.map +1 -1
- package/dist/src/controls/polyControl.mjs.map +1 -1
- package/dist/src/controls/rotate.min.mjs.map +1 -1
- package/dist/src/controls/rotate.mjs.map +1 -1
- package/dist/src/controls/scale.min.mjs.map +1 -1
- package/dist/src/controls/scale.mjs.map +1 -1
- package/dist/src/controls/scaleSkew.min.mjs.map +1 -1
- package/dist/src/controls/scaleSkew.mjs.map +1 -1
- package/dist/src/controls/skew.min.mjs.map +1 -1
- package/dist/src/controls/skew.mjs.map +1 -1
- package/dist/src/controls/util.min.mjs.map +1 -1
- package/dist/src/controls/util.mjs.map +1 -1
- package/dist/src/controls/wrapWithFireEvent.min.mjs.map +1 -1
- package/dist/src/controls/wrapWithFireEvent.mjs.map +1 -1
- package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +1 -1
- package/dist/src/controls/wrapWithFixedAnchor.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.d.ts +5 -5
- package/dist/src/filters/BaseFilter.d.ts.map +1 -1
- package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.mjs +5 -5
- package/dist/src/filters/BaseFilter.mjs.map +1 -1
- package/dist/src/filters/BlendColor.min.mjs.map +1 -1
- package/dist/src/filters/BlendColor.mjs.map +1 -1
- package/dist/src/filters/BlendImage.min.mjs.map +1 -1
- package/dist/src/filters/BlendImage.mjs.map +1 -1
- package/dist/src/filters/Blur.min.mjs.map +1 -1
- package/dist/src/filters/Blur.mjs.map +1 -1
- package/dist/src/filters/Brightness.min.mjs.map +1 -1
- package/dist/src/filters/Brightness.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
- package/dist/src/filters/Composed.min.mjs.map +1 -1
- package/dist/src/filters/Composed.mjs.map +1 -1
- package/dist/src/filters/Contrast.min.mjs.map +1 -1
- package/dist/src/filters/Contrast.mjs.map +1 -1
- package/dist/src/filters/Convolute.min.mjs.map +1 -1
- package/dist/src/filters/Convolute.mjs.map +1 -1
- package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +1 -1
- package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +1 -1
- package/dist/src/filters/Gamma.min.mjs.map +1 -1
- package/dist/src/filters/Gamma.mjs.map +1 -1
- package/dist/src/filters/Grayscale.min.mjs.map +1 -1
- package/dist/src/filters/Grayscale.mjs.map +1 -1
- package/dist/src/filters/Invert.min.mjs.map +1 -1
- package/dist/src/filters/Invert.mjs.map +1 -1
- package/dist/src/filters/Noise.min.mjs.map +1 -1
- package/dist/src/filters/Noise.mjs.map +1 -1
- package/dist/src/filters/Pixelate.min.mjs.map +1 -1
- package/dist/src/filters/Pixelate.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.mjs.map +1 -1
- package/dist/src/filters/Resize.min.mjs.map +1 -1
- package/dist/src/filters/Resize.mjs.map +1 -1
- package/dist/src/filters/Saturation.min.mjs.map +1 -1
- package/dist/src/filters/Saturation.mjs.map +1 -1
- package/dist/src/filters/Vibrance.min.mjs.map +1 -1
- package/dist/src/filters/Vibrance.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
- package/dist/src/filters/typedefs.d.ts +0 -1
- package/dist/src/filters/typedefs.d.ts.map +1 -1
- package/dist/src/filters/utils.min.mjs.map +1 -1
- package/dist/src/filters/utils.mjs.map +1 -1
- package/dist/src/gradient/Gradient.d.ts +7 -3
- package/dist/src/gradient/Gradient.d.ts.map +1 -1
- package/dist/src/gradient/Gradient.min.mjs +1 -1
- package/dist/src/gradient/Gradient.min.mjs.map +1 -1
- package/dist/src/gradient/Gradient.mjs +36 -24
- package/dist/src/gradient/Gradient.mjs.map +1 -1
- package/dist/src/gradient/parser/parseColorStops.min.mjs.map +1 -1
- package/dist/src/gradient/parser/parseColorStops.mjs.map +1 -1
- package/dist/src/gradient/parser/parseCoords.d.ts.map +1 -1
- package/dist/src/gradient/parser/parseCoords.min.mjs.map +1 -1
- package/dist/src/gradient/parser/parseCoords.mjs.map +1 -1
- package/dist/src/parser/applyViewboxTransform.min.mjs.map +1 -1
- package/dist/src/parser/applyViewboxTransform.mjs.map +1 -1
- package/dist/src/parser/constants.min.mjs.map +1 -1
- package/dist/src/parser/constants.mjs.map +1 -1
- package/dist/src/parser/elements_parser.min.mjs.map +1 -1
- package/dist/src/parser/elements_parser.mjs.map +1 -1
- package/dist/src/parser/getCSSRules.min.mjs.map +1 -1
- package/dist/src/parser/getCSSRules.mjs.map +1 -1
- package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +1 -1
- package/dist/src/parser/getGlobalStylesForElement.mjs.map +1 -1
- package/dist/src/parser/getGradientDefs.min.mjs.map +1 -1
- package/dist/src/parser/getGradientDefs.mjs.map +1 -1
- package/dist/src/parser/getMultipleNodes.min.mjs.map +1 -1
- package/dist/src/parser/getMultipleNodes.mjs.map +1 -1
- package/dist/src/parser/loadSVGFromString.min.mjs.map +1 -1
- package/dist/src/parser/loadSVGFromString.mjs.map +1 -1
- package/dist/src/parser/loadSVGFromURL.min.mjs.map +1 -1
- package/dist/src/parser/loadSVGFromURL.mjs.map +1 -1
- package/dist/src/parser/normalizeAttr.min.mjs.map +1 -1
- package/dist/src/parser/normalizeAttr.mjs.map +1 -1
- package/dist/src/parser/normalizeValue.min.mjs.map +1 -1
- package/dist/src/parser/normalizeValue.mjs.map +1 -1
- package/dist/src/parser/parseAttributes.min.mjs.map +1 -1
- package/dist/src/parser/parseAttributes.mjs.map +1 -1
- package/dist/src/parser/parseFontDeclaration.min.mjs.map +1 -1
- package/dist/src/parser/parseFontDeclaration.mjs.map +1 -1
- package/dist/src/parser/parseSVGDocument.min.mjs.map +1 -1
- package/dist/src/parser/parseSVGDocument.mjs.map +1 -1
- package/dist/src/parser/parseStyleObject.min.mjs.map +1 -1
- package/dist/src/parser/parseStyleObject.mjs.map +1 -1
- package/dist/src/parser/parseStyleString.min.mjs.map +1 -1
- package/dist/src/parser/parseStyleString.mjs.map +1 -1
- package/dist/src/parser/parseTransformAttribute.min.mjs.map +1 -1
- package/dist/src/parser/parseTransformAttribute.mjs.map +1 -1
- package/dist/src/parser/parseUseDirectives.min.mjs.map +1 -1
- package/dist/src/parser/parseUseDirectives.mjs.map +1 -1
- package/dist/src/parser/percent.min.mjs.map +1 -1
- package/dist/src/parser/percent.mjs.map +1 -1
- package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +1 -1
- package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +1 -1
- package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +1 -1
- package/dist/src/parser/setStrokeFillOpacity.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
- package/dist/src/shapes/Circle.min.mjs.map +1 -1
- package/dist/src/shapes/Circle.mjs.map +1 -1
- package/dist/src/shapes/Ellipse.min.mjs.map +1 -1
- package/dist/src/shapes/Ellipse.mjs.map +1 -1
- package/dist/src/shapes/Group.d.ts +2 -2
- package/dist/src/shapes/Group.d.ts.map +1 -1
- package/dist/src/shapes/Group.min.mjs.map +1 -1
- package/dist/src/shapes/Group.mjs.map +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs +2 -2
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +1 -1
- package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
- package/dist/src/shapes/IText/IText.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
- package/dist/src/shapes/Image.min.mjs.map +1 -1
- package/dist/src/shapes/Image.mjs.map +1 -1
- package/dist/src/shapes/Line.min.mjs.map +1 -1
- package/dist/src/shapes/Line.mjs.map +1 -1
- package/dist/src/shapes/Object/AnimatableObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/AnimatableObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/AnimatableObject.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/FabricObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObject.mjs +2 -1
- package/dist/src/shapes/Object/FabricObject.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.d.ts +13 -13
- package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs +13 -13
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.d.ts +4 -4
- package/dist/src/shapes/Object/Object.d.ts.map +1 -1
- package/dist/src/shapes/Object/Object.min.mjs +1 -1
- package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.mjs +10 -14
- package/dist/src/shapes/Object/Object.mjs.map +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.mjs +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.mjs.map +1 -1
- package/dist/src/shapes/Object/ObjectOrigin.min.mjs.map +1 -1
- package/dist/src/shapes/Object/ObjectOrigin.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
- package/dist/src/shapes/Path.min.mjs.map +1 -1
- package/dist/src/shapes/Path.mjs.map +1 -1
- package/dist/src/shapes/Polyline.d.ts.map +1 -1
- package/dist/src/shapes/Polyline.min.mjs +1 -1
- package/dist/src/shapes/Polyline.min.mjs.map +1 -1
- package/dist/src/shapes/Polyline.mjs +10 -2
- package/dist/src/shapes/Polyline.mjs.map +1 -1
- package/dist/src/shapes/Rect.min.mjs.map +1 -1
- package/dist/src/shapes/Rect.mjs.map +1 -1
- package/dist/src/shapes/Text/StyledText.min.mjs.map +1 -1
- package/dist/src/shapes/Text/StyledText.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.mjs +1 -1
- package/dist/src/shapes/Text/Text.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/shapes/Triangle.min.mjs.map +1 -1
- package/dist/src/shapes/Triangle.mjs.map +1 -1
- package/dist/src/util/animation/AnimationBase.min.mjs.map +1 -1
- package/dist/src/util/animation/AnimationBase.mjs.map +1 -1
- package/dist/src/util/animation/AnimationRegistry.min.mjs.map +1 -1
- package/dist/src/util/animation/AnimationRegistry.mjs.map +1 -1
- package/dist/src/util/animation/ArrayAnimation.min.mjs.map +1 -1
- package/dist/src/util/animation/ArrayAnimation.mjs.map +1 -1
- package/dist/src/util/animation/ColorAnimation.min.mjs.map +1 -1
- package/dist/src/util/animation/ColorAnimation.mjs.map +1 -1
- package/dist/src/util/animation/ValueAnimation.min.mjs.map +1 -1
- package/dist/src/util/animation/ValueAnimation.mjs.map +1 -1
- package/dist/src/util/animation/animate.d.ts.map +1 -1
- package/dist/src/util/animation/animate.min.mjs.map +1 -1
- package/dist/src/util/animation/animate.mjs.map +1 -1
- package/dist/src/util/animation/easing.min.mjs.map +1 -1
- package/dist/src/util/animation/easing.mjs.map +1 -1
- package/dist/src/util/animation/types.d.ts.map +1 -1
- package/dist/src/util/applyMixins.min.mjs.map +1 -1
- package/dist/src/util/applyMixins.mjs.map +1 -1
- package/dist/src/util/dom_style.min.mjs.map +1 -1
- package/dist/src/util/dom_style.mjs.map +1 -1
- package/dist/src/util/internals/cloneDeep.d.ts +6 -0
- package/dist/src/util/internals/cloneDeep.d.ts.map +1 -1
- package/dist/src/util/internals/cloneStyles.d.ts +3 -0
- package/dist/src/util/internals/cloneStyles.d.ts.map +1 -0
- package/dist/src/util/internals/cloneStyles.min.mjs +2 -0
- package/dist/src/util/internals/cloneStyles.min.mjs.map +1 -0
- package/dist/src/util/internals/cloneStyles.mjs +15 -0
- package/dist/src/util/internals/cloneStyles.mjs.map +1 -0
- package/dist/src/util/internals/findRight.min.mjs.map +1 -1
- package/dist/src/util/internals/findRight.mjs.map +1 -1
- package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +1 -1
- package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +1 -1
- package/dist/src/util/misc/dom.min.mjs.map +1 -1
- package/dist/src/util/misc/dom.mjs.map +1 -1
- package/dist/src/util/misc/findScaleTo.min.mjs.map +1 -1
- package/dist/src/util/misc/findScaleTo.mjs.map +1 -1
- package/dist/src/util/misc/groupSVGElements.min.mjs.map +1 -1
- package/dist/src/util/misc/groupSVGElements.mjs.map +1 -1
- package/dist/src/util/misc/isTransparent.min.mjs.map +1 -1
- package/dist/src/util/misc/isTransparent.mjs.map +1 -1
- package/dist/src/util/misc/matrix.min.mjs.map +1 -1
- package/dist/src/util/misc/matrix.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
- package/dist/src/util/misc/objectTransforms.min.mjs.map +1 -1
- package/dist/src/util/misc/objectTransforms.mjs.map +1 -1
- package/dist/src/util/misc/pick.min.mjs.map +1 -1
- package/dist/src/util/misc/pick.mjs.map +1 -1
- package/dist/src/util/misc/planeChange.min.mjs.map +1 -1
- package/dist/src/util/misc/planeChange.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/index.min.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/index.mjs.map +1 -1
- package/dist/src/util/misc/resolveOrigin.min.mjs.map +1 -1
- package/dist/src/util/misc/resolveOrigin.mjs.map +1 -1
- package/dist/src/util/misc/rotatePoint.min.mjs.map +1 -1
- package/dist/src/util/misc/rotatePoint.mjs.map +1 -1
- package/dist/src/util/misc/svgParsing.min.mjs.map +1 -1
- package/dist/src/util/misc/svgParsing.mjs.map +1 -1
- package/dist/src/util/misc/textStyles.min.mjs +1 -1
- package/dist/src/util/misc/textStyles.min.mjs.map +1 -1
- package/dist/src/util/misc/textStyles.mjs +3 -3
- package/dist/src/util/misc/textStyles.mjs.map +1 -1
- package/dist/src/util/misc/vectors.min.mjs.map +1 -1
- package/dist/src/util/misc/vectors.mjs.map +1 -1
- package/dist/src/util/path/index.min.mjs.map +1 -1
- package/dist/src/util/path/index.mjs.map +1 -1
- package/dist/src/util/path/typedefs.d.ts.map +1 -1
- package/dist/src/util/transform_matrix_removal.min.mjs.map +1 -1
- package/dist/src/util/transform_matrix_removal.mjs.map +1 -1
- package/dist/src/util/typeAssertions.min.mjs.map +1 -1
- package/dist/src/util/typeAssertions.mjs.map +1 -1
- package/dist-extensions/aligning_guidelines/constant.mjs +11 -0
- package/dist-extensions/aligning_guidelines/constant.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/index.mjs +130 -0
- package/dist-extensions/aligning_guidelines/index.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/util/basic.mjs +11 -0
- package/dist-extensions/aligning_guidelines/util/basic.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/util/collect-line.mjs +193 -0
- package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/util/collect-point.mjs +102 -0
- package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/util/draw.mjs +75 -0
- package/dist-extensions/aligning_guidelines/util/draw.mjs.map +1 -0
- package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +42 -0
- package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +3 -0
- package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/index.d.ts +5 -0
- package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +33 -0
- package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +4 -0
- package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +6 -0
- package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
- package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
- package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
- package/dist-extensions/extensions/index.d.ts +2 -0
- package/dist-extensions/extensions/index.d.ts.map +1 -0
- package/dist-extensions/fabric-extensions.min.js +2 -0
- package/dist-extensions/fabric-extensions.min.js.map +1 -0
- package/dist-extensions/fabric.d.ts +119 -0
- package/dist-extensions/fabric.d.ts.map +1 -0
- package/dist-extensions/index.d.ts +2 -0
- package/dist-extensions/index.d.ts.map +1 -0
- package/dist-extensions/index.mjs +2 -0
- package/dist-extensions/index.mjs.map +1 -0
- package/dist-extensions/src/ClassRegistry.d.ts +14 -0
- package/dist-extensions/src/ClassRegistry.d.ts.map +1 -0
- package/dist-extensions/src/Collection.d.ts +141 -0
- package/dist-extensions/src/Collection.d.ts.map +1 -0
- package/dist-extensions/src/CommonMethods.d.ts +32 -0
- package/dist-extensions/src/CommonMethods.d.ts.map +1 -0
- package/dist-extensions/src/EventTypeDefs.d.ts +286 -0
- package/dist-extensions/src/EventTypeDefs.d.ts.map +1 -0
- package/dist-extensions/src/Intersection.d.ts +120 -0
- package/dist-extensions/src/Intersection.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +22 -0
- package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +56 -0
- package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +13 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +14 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +14 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +30 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +10 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/constants.d.ts +7 -0
- package/dist-extensions/src/LayoutManager/constants.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/index.d.ts +7 -0
- package/dist-extensions/src/LayoutManager/index.d.ts.map +1 -0
- package/dist-extensions/src/LayoutManager/types.d.ts +106 -0
- package/dist-extensions/src/LayoutManager/types.d.ts.map +1 -0
- package/dist-extensions/src/Observable.d.ts +68 -0
- package/dist-extensions/src/Observable.d.ts.map +1 -0
- package/dist-extensions/src/Pattern/Pattern.d.ts +99 -0
- package/dist-extensions/src/Pattern/Pattern.d.ts.map +1 -0
- package/dist-extensions/src/Pattern/index.d.ts +3 -0
- package/dist-extensions/src/Pattern/index.d.ts.map +1 -0
- package/dist-extensions/src/Pattern/types.d.ts +12 -0
- package/dist-extensions/src/Pattern/types.d.ts.map +1 -0
- package/dist-extensions/src/Point.d.ts +233 -0
- package/dist-extensions/src/Point.d.ts.map +1 -0
- package/dist-extensions/src/Shadow.d.ts +95 -0
- package/dist-extensions/src/Shadow.d.ts.map +1 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts +101 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/CircleBrush.d.ts +44 -0
- package/dist-extensions/src/brushes/CircleBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/PatternBrush.d.ts +23 -0
- package/dist-extensions/src/brushes/PatternBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/PencilBrush.d.ts +92 -0
- package/dist-extensions/src/brushes/PencilBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/SprayBrush.d.ts +74 -0
- package/dist-extensions/src/brushes/SprayBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/typedefs.d.ts +18 -0
- package/dist-extensions/src/brushes/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/cache.d.ts +47 -0
- package/dist-extensions/src/cache.d.ts.map +1 -0
- package/dist-extensions/src/canvas/Canvas.d.ts +339 -0
- package/dist-extensions/src/canvas/Canvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts +229 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +1 -0
- package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +29 -0
- package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +1 -0
- package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
- package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +1 -0
- package/dist-extensions/src/canvas/DOMManagers/util.d.ts +24 -0
- package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +1 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts +534 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts +639 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +153 -0
- package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +1 -0
- package/dist-extensions/src/canvas/TextEditingManager.d.ts +21 -0
- package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +1 -0
- package/dist-extensions/src/color/Color.d.ts +162 -0
- package/dist-extensions/src/color/Color.d.ts.map +1 -0
- package/dist-extensions/src/color/color_map.d.ts +155 -0
- package/dist-extensions/src/color/color_map.d.ts.map +1 -0
- package/dist-extensions/src/color/constants.d.ts +111 -0
- package/dist-extensions/src/color/constants.d.ts.map +1 -0
- package/dist-extensions/src/color/typedefs.d.ts +16 -0
- package/dist-extensions/src/color/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/color/util.d.ts +27 -0
- package/dist-extensions/src/color/util.d.ts.map +1 -0
- package/dist-extensions/src/config.d.ts +115 -0
- package/dist-extensions/src/config.d.ts.map +1 -0
- package/dist-extensions/src/constants.d.ts +35 -0
- package/dist-extensions/src/constants.d.ts.map +1 -0
- package/dist-extensions/src/controls/Control.d.ts +229 -0
- package/dist-extensions/src/controls/Control.d.ts.map +1 -0
- package/dist-extensions/src/controls/changeWidth.d.ts +13 -0
- package/dist-extensions/src/controls/changeWidth.d.ts.map +1 -0
- package/dist-extensions/src/controls/commonControls.d.ts +28 -0
- package/dist-extensions/src/controls/commonControls.d.ts.map +1 -0
- package/dist-extensions/src/controls/controlRendering.d.ts +29 -0
- package/dist-extensions/src/controls/controlRendering.d.ts.map +1 -0
- package/dist-extensions/src/controls/drag.d.ts +12 -0
- package/dist-extensions/src/controls/drag.d.ts.map +1 -0
- package/dist-extensions/src/controls/fireEvent.d.ts +3 -0
- package/dist-extensions/src/controls/fireEvent.d.ts.map +1 -0
- package/dist-extensions/src/controls/index.d.ts +14 -0
- package/dist-extensions/src/controls/index.d.ts.map +1 -0
- package/dist-extensions/src/controls/pathControl.d.ts +12 -0
- package/dist-extensions/src/controls/pathControl.d.ts.map +1 -0
- package/dist-extensions/src/controls/polyControl.d.ts +30 -0
- package/dist-extensions/src/controls/polyControl.d.ts.map +1 -0
- package/dist-extensions/src/controls/rotate.d.ts +12 -0
- package/dist-extensions/src/controls/rotate.d.ts.map +1 -0
- package/dist-extensions/src/controls/scale.d.ts +47 -0
- package/dist-extensions/src/controls/scale.d.ts.map +1 -0
- package/dist-extensions/src/controls/scaleSkew.d.ts +39 -0
- package/dist-extensions/src/controls/scaleSkew.d.ts.map +1 -0
- package/dist-extensions/src/controls/skew.d.ts +33 -0
- package/dist-extensions/src/controls/skew.d.ts.map +1 -0
- package/dist-extensions/src/controls/util.d.ts +41 -0
- package/dist-extensions/src/controls/util.d.ts.map +1 -0
- package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +10 -0
- package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +1 -0
- package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +9 -0
- package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +1 -0
- package/dist-extensions/src/env/browser.d.ts +3 -0
- package/dist-extensions/src/env/browser.d.ts.map +1 -0
- package/dist-extensions/src/env/index.d.ts +34 -0
- package/dist-extensions/src/env/index.d.ts.map +1 -0
- package/dist-extensions/src/env/types.d.ts +16 -0
- package/dist-extensions/src/env/types.d.ts.map +1 -0
- package/dist-extensions/src/filters/BaseFilter.d.ts +153 -0
- package/dist-extensions/src/filters/BaseFilter.d.ts.map +1 -0
- package/dist-extensions/src/filters/BlendColor.d.ts +68 -0
- package/dist-extensions/src/filters/BlendColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/BlendImage.d.ts +99 -0
- package/dist-extensions/src/filters/BlendImage.d.ts.map +1 -0
- package/dist-extensions/src/filters/Blur.d.ts +50 -0
- package/dist-extensions/src/filters/Blur.d.ts.map +1 -0
- package/dist-extensions/src/filters/Brightness.d.ts +46 -0
- package/dist-extensions/src/filters/Brightness.d.ts.map +1 -0
- package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +1 -0
- package/dist-extensions/src/filters/ColorMatrix.d.ts +66 -0
- package/dist-extensions/src/filters/ColorMatrix.d.ts.map +1 -0
- package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +15 -0
- package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +1 -0
- package/dist-extensions/src/filters/Composed.d.ts +47 -0
- package/dist-extensions/src/filters/Composed.d.ts.map +1 -0
- package/dist-extensions/src/filters/Contrast.d.ts +44 -0
- package/dist-extensions/src/filters/Contrast.d.ts.map +1 -0
- package/dist-extensions/src/filters/Convolute.d.ts +81 -0
- package/dist-extensions/src/filters/Convolute.d.ts.map +1 -0
- package/dist-extensions/src/filters/FilterBackend.d.ts +15 -0
- package/dist-extensions/src/filters/FilterBackend.d.ts.map +1 -0
- package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +7 -0
- package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +1 -0
- package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
- package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +1 -0
- package/dist-extensions/src/filters/Gamma.d.ts +58 -0
- package/dist-extensions/src/filters/Gamma.d.ts.map +1 -0
- package/dist-extensions/src/filters/Grayscale.d.ts +44 -0
- package/dist-extensions/src/filters/Grayscale.d.ts.map +1 -0
- package/dist-extensions/src/filters/HueRotation.d.ts +31 -0
- package/dist-extensions/src/filters/HueRotation.d.ts.map +1 -0
- package/dist-extensions/src/filters/Invert.d.ts +53 -0
- package/dist-extensions/src/filters/Invert.d.ts.map +1 -0
- package/dist-extensions/src/filters/Noise.d.ts +44 -0
- package/dist-extensions/src/filters/Noise.d.ts.map +1 -0
- package/dist-extensions/src/filters/Pixelate.d.ts +41 -0
- package/dist-extensions/src/filters/Pixelate.d.ts.map +1 -0
- package/dist-extensions/src/filters/RemoveColor.d.ts +53 -0
- package/dist-extensions/src/filters/RemoveColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/Resize.d.ts +137 -0
- package/dist-extensions/src/filters/Resize.d.ts.map +1 -0
- package/dist-extensions/src/filters/Saturation.d.ts +46 -0
- package/dist-extensions/src/filters/Saturation.d.ts.map +1 -0
- package/dist-extensions/src/filters/Vibrance.d.ts +46 -0
- package/dist-extensions/src/filters/Vibrance.d.ts.map +1 -0
- package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +131 -0
- package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +1 -0
- package/dist-extensions/src/filters/filters.d.ts +23 -0
- package/dist-extensions/src/filters/filters.d.ts.map +1 -0
- package/dist-extensions/src/filters/index.d.ts +7 -0
- package/dist-extensions/src/filters/index.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/baseFilter.d.ts +4 -0
- package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/blendColor.d.ts +13 -0
- package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/blendImage.d.ts +4 -0
- package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/blur.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/blur.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/brightness.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/brightness.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/constrast.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/constrast.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/convolute.d.ts +11 -0
- package/dist-extensions/src/filters/shaders/convolute.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/gamma.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/gamma.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/grayscale.d.ts +3 -0
- package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/invert.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/invert.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/noise.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/noise.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/pixelate.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/removeColor.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/saturation.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/saturation.d.ts.map +1 -0
- package/dist-extensions/src/filters/shaders/vibrance.d.ts +2 -0
- package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +1 -0
- package/dist-extensions/src/filters/typedefs.d.ts +70 -0
- package/dist-extensions/src/filters/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/filters/utils.d.ts +10 -0
- package/dist-extensions/src/filters/utils.d.ts.map +1 -0
- package/dist-extensions/src/gradient/Gradient.d.ts +156 -0
- package/dist-extensions/src/gradient/Gradient.d.ts.map +1 -0
- package/dist-extensions/src/gradient/constants.d.ts +15 -0
- package/dist-extensions/src/gradient/constants.d.ts.map +1 -0
- package/dist-extensions/src/gradient/index.d.ts +3 -0
- package/dist-extensions/src/gradient/index.d.ts.map +1 -0
- package/dist-extensions/src/gradient/parser/misc.d.ts +4 -0
- package/dist-extensions/src/gradient/parser/misc.d.ts.map +1 -0
- package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +3 -0
- package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +1 -0
- package/dist-extensions/src/gradient/parser/parseCoords.d.ts +17 -0
- package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +1 -0
- package/dist-extensions/src/gradient/typedefs.d.ts +93 -0
- package/dist-extensions/src/gradient/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/parser/applyViewboxTransform.d.ts +13 -0
- package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +1 -0
- package/dist-extensions/src/parser/attributes.d.ts +6 -0
- package/dist-extensions/src/parser/attributes.d.ts.map +1 -0
- package/dist-extensions/src/parser/constants.d.ts +41 -0
- package/dist-extensions/src/parser/constants.d.ts.map +1 -0
- package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +2 -0
- package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +1 -0
- package/dist-extensions/src/parser/elementMatchesRule.d.ts +5 -0
- package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +1 -0
- package/dist-extensions/src/parser/elements_parser.d.ts +33 -0
- package/dist-extensions/src/parser/elements_parser.d.ts.map +1 -0
- package/dist-extensions/src/parser/getCSSRules.d.ts +8 -0
- package/dist-extensions/src/parser/getCSSRules.d.ts.map +1 -0
- package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +6 -0
- package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +1 -0
- package/dist-extensions/src/parser/getGradientDefs.d.ts +7 -0
- package/dist-extensions/src/parser/getGradientDefs.d.ts.map +1 -0
- package/dist-extensions/src/parser/getMultipleNodes.d.ts +2 -0
- package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +1 -0
- package/dist-extensions/src/parser/getSvgRegex.d.ts +2 -0
- package/dist-extensions/src/parser/getSvgRegex.d.ts.map +1 -0
- package/dist-extensions/src/parser/getTagName.d.ts +2 -0
- package/dist-extensions/src/parser/getTagName.d.ts.map +1 -0
- package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +2 -0
- package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +1 -0
- package/dist-extensions/src/parser/loadSVGFromString.d.ts +18 -0
- package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +1 -0
- package/dist-extensions/src/parser/loadSVGFromURL.d.ts +19 -0
- package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +1 -0
- package/dist-extensions/src/parser/normalizeAttr.d.ts +3 -0
- package/dist-extensions/src/parser/normalizeAttr.d.ts.map +1 -0
- package/dist-extensions/src/parser/normalizeValue.d.ts +2 -0
- package/dist-extensions/src/parser/normalizeValue.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseAttributes.d.ts +10 -0
- package/dist-extensions/src/parser/parseAttributes.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseFontDeclaration.d.ts +10 -0
- package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +1 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts +10 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts +22 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseStyleAttribute.d.ts +9 -0
- package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseStyleObject.d.ts +8 -0
- package/dist-extensions/src/parser/parseStyleObject.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseStyleString.d.ts +8 -0
- package/dist-extensions/src/parser/parseStyleString.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseTransformAttribute.d.ts +11 -0
- package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseUseDirectives.d.ts +2 -0
- package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +1 -0
- package/dist-extensions/src/parser/percent.d.ts +9 -0
- package/dist-extensions/src/parser/percent.d.ts.map +1 -0
- package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
- package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +1 -0
- package/dist-extensions/src/parser/selectorMatches.d.ts +2 -0
- package/dist-extensions/src/parser/selectorMatches.d.ts.map +1 -0
- package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +6 -0
- package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +1 -0
- package/dist-extensions/src/parser/typedefs.d.ts +10 -0
- package/dist-extensions/src/parser/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/shapes/ActiveSelection.d.ts +109 -0
- package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Circle.d.ts +111 -0
- package/dist-extensions/src/shapes/Circle.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts +88 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Group.d.ts +303 -0
- package/dist-extensions/src/shapes/Group.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/IText.d.ts +314 -0
- package/dist-extensions/src/shapes/IText/IText.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +299 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +198 -0
- package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/constants.d.ts +13 -0
- package/dist-extensions/src/shapes/IText/constants.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Image.d.ts +312 -0
- package/dist-extensions/src/shapes/Image.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Line.d.ts +122 -0
- package/dist-extensions/src/shapes/Line.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist-extensions/src/shapes/Object/AnimatableObject.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/FabricObject.d.ts +11 -0
- package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +72 -0
- package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +317 -0
- package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/Object.d.ts +614 -0
- package/dist-extensions/src/shapes/Object/Object.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +237 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/ObjectOrigin.d.ts +96 -0
- package/dist-extensions/src/shapes/Object/ObjectOrigin.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/StackedObject.d.ts +60 -0
- package/dist-extensions/src/shapes/Object/StackedObject.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/defaultValues.d.ts +8 -0
- package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +88 -0
- package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +37 -0
- package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +63 -0
- package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +66 -0
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +43 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +34 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
- package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/index.d.ts +6 -0
- package/dist-extensions/src/shapes/Object/types/index.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Path.d.ts +215 -0
- package/dist-extensions/src/shapes/Path.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Polygon.d.ts +7 -0
- package/dist-extensions/src/shapes/Polygon.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Polyline.d.ts +156 -0
- package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Rect.d.ts +83 -0
- package/dist-extensions/src/shapes/Rect.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts +128 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts +697 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +47 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts +13 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Textbox.d.ts +226 -0
- package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Triangle.d.ts +27 -0
- package/dist-extensions/src/shapes/Triangle.d.ts.map +1 -0
- package/dist-extensions/src/typedefs.d.ts +97 -0
- package/dist-extensions/src/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +3 -0
- package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +29 -0
- package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +10 -0
- package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/ColorAnimation.d.ts +11 -0
- package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/ValueAnimation.d.ts +10 -0
- package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/animate.d.ts +37 -0
- package/dist-extensions/src/util/animation/animate.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/easing.d.ts +130 -0
- package/dist-extensions/src/util/animation/easing.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/index.d.ts +3 -0
- package/dist-extensions/src/util/animation/index.d.ts.map +1 -0
- package/dist-extensions/src/util/animation/types.d.ts +87 -0
- package/dist-extensions/src/util/animation/types.d.ts.map +1 -0
- package/dist-extensions/src/util/applyMixins.d.ts +8 -0
- package/dist-extensions/src/util/applyMixins.d.ts.map +1 -0
- package/dist-extensions/src/util/dom_event.d.ts +6 -0
- package/dist-extensions/src/util/dom_event.d.ts.map +1 -0
- package/dist-extensions/src/util/dom_misc.d.ts +12 -0
- package/dist-extensions/src/util/dom_misc.d.ts.map +1 -0
- package/dist-extensions/src/util/dom_style.d.ts +7 -0
- package/dist-extensions/src/util/dom_style.d.ts.map +1 -0
- package/dist-extensions/src/util/index.d.ts +37 -0
- package/dist-extensions/src/util/index.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
- package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/cloneStyles.d.ts +3 -0
- package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/console.d.ts +8 -0
- package/dist-extensions/src/util/internals/console.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/dom_request.d.ts +16 -0
- package/dist-extensions/src/util/internals/dom_request.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/findRight.d.ts +2 -0
- package/dist-extensions/src/util/internals/findRight.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/getRandomInt.d.ts +8 -0
- package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/ifNaN.d.ts +8 -0
- package/dist-extensions/src/util/internals/ifNaN.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/removeFromArray.d.ts +9 -0
- package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/uid.d.ts +2 -0
- package/dist-extensions/src/util/internals/uid.d.ts.map +1 -0
- package/dist-extensions/src/util/lang_string.d.ts +22 -0
- package/dist-extensions/src/util/lang_string.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
- package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/capValue.d.ts +2 -0
- package/dist-extensions/src/util/misc/capValue.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/cos.d.ts +10 -0
- package/dist-extensions/src/util/misc/cos.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/dom.d.ts +28 -0
- package/dist-extensions/src/util/misc/dom.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/findScaleTo.d.ts +20 -0
- package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/groupSVGElements.d.ts +11 -0
- package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/isTransparent.d.ts +11 -0
- package/dist-extensions/src/util/misc/isTransparent.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/matrix.d.ts +170 -0
- package/dist-extensions/src/util/misc/matrix.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +23 -0
- package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/objectEnlive.d.ts +45 -0
- package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/objectTransforms.d.ts +62 -0
- package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/pick.d.ts +9 -0
- package/dist-extensions/src/util/misc/pick.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/planeChange.d.ts +64 -0
- package/dist-extensions/src/util/misc/planeChange.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +90 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +27 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/projectStroke/index.d.ts +12 -0
- package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/projectStroke/types.d.ts +23 -0
- package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +14 -0
- package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/resolveOrigin.d.ts +9 -0
- package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/rotatePoint.d.ts +12 -0
- package/dist-extensions/src/util/misc/rotatePoint.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/sin.d.ts +10 -0
- package/dist-extensions/src/util/misc/sin.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/svgParsing.d.ts +46 -0
- package/dist-extensions/src/util/misc/svgParsing.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/textStyles.d.ts +32 -0
- package/dist-extensions/src/util/misc/textStyles.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/toFixed.d.ts +8 -0
- package/dist-extensions/src/util/misc/toFixed.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/vectors.d.ts +72 -0
- package/dist-extensions/src/util/misc/vectors.d.ts.map +1 -0
- package/dist-extensions/src/util/path/index.d.ts +95 -0
- package/dist-extensions/src/util/path/index.d.ts.map +1 -0
- package/dist-extensions/src/util/path/regex.d.ts +2 -0
- package/dist-extensions/src/util/path/regex.d.ts.map +1 -0
- package/dist-extensions/src/util/path/typedefs.d.ts +221 -0
- package/dist-extensions/src/util/path/typedefs.d.ts.map +1 -0
- package/dist-extensions/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +1 -0
- package/dist-extensions/src/util/typeAssertions.d.ts +13 -0
- package/dist-extensions/src/util/typeAssertions.d.ts.map +1 -0
- package/eslint.config.mjs +108 -0
- package/extensions/README.MD +27 -0
- package/extensions/aligning_guidelines/README.MD +22 -0
- package/extensions/aligning_guidelines/constant.ts +10 -0
- package/extensions/aligning_guidelines/index.ts +166 -0
- package/extensions/aligning_guidelines/typedefs.ts +36 -0
- package/extensions/aligning_guidelines/util/basic.spec.ts +31 -0
- package/extensions/aligning_guidelines/util/basic.ts +20 -0
- package/extensions/aligning_guidelines/util/collect-line.ts +172 -0
- package/extensions/aligning_guidelines/util/collect-point.ts +83 -0
- package/extensions/aligning_guidelines/util/draw.ts +74 -0
- package/extensions/aligning_guidelines/util/get-objects-by-target.ts +45 -0
- package/extensions/index.ts +4 -0
- package/jest.config.js +1 -1
- package/jest.extend.ts +14 -15
- package/package.json +17 -12
- package/playwright.setup.ts +5 -5
- package/rollup.config.mjs +46 -4
- package/scripts/build.mjs +1 -1
- package/scripts/buildLock.mjs +5 -5
- package/scripts/buildStats.mjs +2 -2
- package/scripts/git.mjs +1 -1
- package/scripts/index.mjs +34 -32
- package/scripts/sandbox.mjs +15 -15
- package/src/ClassRegistry.spec.ts +1 -1
- package/src/ClassRegistry.ts +1 -1
- package/src/Collection.ts +9 -9
- package/src/EventTypeDefs.ts +2 -2
- package/src/Intersection.spec.ts +2 -2
- package/src/Intersection.ts +11 -11
- package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +3 -3
- package/src/LayoutManager/ActiveSelectionLayoutManager.ts +2 -2
- package/src/LayoutManager/LayoutManager.spec.ts +17 -17
- package/src/LayoutManager/LayoutManager.ts +15 -15
- package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +3 -3
- package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +1 -1
- package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +4 -4
- package/src/LayoutManager/LayoutStrategies/utils.ts +4 -4
- package/src/LayoutManager/types.ts +12 -13
- package/src/Observable.ts +7 -7
- package/src/Pattern/Pattern.ts +20 -10
- package/src/Point.ts +3 -3
- package/src/Shadow.ts +7 -7
- package/src/brushes/CircleBrush.ts +1 -1
- package/src/brushes/PatternBrush.ts +1 -1
- package/src/brushes/PencilBrush.ts +1 -1
- package/src/brushes/SprayBrush.ts +3 -3
- package/src/canvas/Canvas.ts +38 -35
- package/src/canvas/DOMManagers/CanvasDOMManager.ts +2 -2
- package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +1 -1
- package/src/canvas/DOMManagers/util.ts +2 -2
- package/src/canvas/SelectableCanvas.spec.ts +8 -8
- package/src/canvas/SelectableCanvas.ts +20 -20
- package/src/canvas/StaticCanvas.ts +44 -43
- package/src/canvas/StaticCanvasOptions.ts +0 -1
- package/src/canvas/TextEditingManager.ts +1 -1
- package/src/canvas/__tests__/eventData.test.ts +17 -17
- package/src/color/Color.ts +3 -2
- package/src/color/color.test.ts +2 -2
- package/src/color/typedefs.ts +1 -1
- package/src/color/util.ts +1 -1
- package/src/config.ts +1 -1
- package/src/controls/Control.spec.ts +8 -8
- package/src/controls/Control.ts +14 -14
- package/src/controls/changeWidth.test.ts +2 -2
- package/src/controls/changeWidth.ts +4 -4
- package/src/controls/controlRendering.ts +4 -4
- package/src/controls/drag.ts +1 -1
- package/src/controls/fireEvent.ts +1 -1
- package/src/controls/pathControl.spec.ts +9 -9
- package/src/controls/pathControl.ts +20 -20
- package/src/controls/polyControl.spec.ts +6 -6
- package/src/controls/polyControl.ts +11 -11
- package/src/controls/rotate.ts +4 -4
- package/src/controls/scale.test.ts +9 -9
- package/src/controls/scale.ts +13 -13
- package/src/controls/scaleSkew.ts +3 -3
- package/src/controls/skew.ts +8 -8
- package/src/controls/util.ts +6 -6
- package/src/controls/wrapWithFireEvent.ts +2 -2
- package/src/controls/wrapWithFixedAnchor.spec.ts +5 -5
- package/src/controls/wrapWithFixedAnchor.ts +2 -2
- package/src/env/node.ts +2 -2
- package/src/filters/BaseFilter.ts +27 -25
- package/src/filters/BlendColor.ts +1 -1
- package/src/filters/BlendImage.ts +4 -4
- package/src/filters/Blur.ts +1 -1
- package/src/filters/Boilerplate.ts +1 -1
- package/src/filters/Brightness.ts +1 -1
- package/src/filters/Canvas2dFilterBackend.ts +1 -1
- package/src/filters/ColorMatrix.ts +2 -2
- package/src/filters/ColorMatrixFilters.ts +7 -7
- package/src/filters/Composed.ts +5 -5
- package/src/filters/Contrast.ts +1 -1
- package/src/filters/Convolute.ts +1 -1
- package/src/filters/GLProbes/WebGLProbe.ts +2 -2
- package/src/filters/Gamma.ts +1 -1
- package/src/filters/Grayscale.ts +1 -1
- package/src/filters/Invert.ts +1 -1
- package/src/filters/Noise.ts +1 -1
- package/src/filters/Pixelate.ts +1 -1
- package/src/filters/RemoveColor.ts +1 -1
- package/src/filters/Resize.ts +9 -9
- package/src/filters/Saturation.ts +1 -1
- package/src/filters/Vibrance.ts +1 -1
- package/src/filters/WebGLFilterBackend.ts +10 -10
- package/src/filters/typedefs.ts +1 -3
- package/src/filters/utils.ts +3 -3
- package/src/gradient/Gradient.spec.ts +19 -19
- package/src/gradient/Gradient.ts +51 -50
- package/src/gradient/parser/parseColorStops.ts +3 -3
- package/src/gradient/parser/parseCoords.ts +28 -25
- package/src/mixins/eraser_brush.mixin.ts +21 -21
- package/src/parkinglot/straighten.ts +1 -1
- package/src/parser/applyViewboxTransform.ts +2 -2
- package/src/parser/constants.ts +2 -2
- package/src/parser/elements_parser.ts +13 -13
- package/src/parser/getCSSRules.ts +1 -1
- package/src/parser/getGlobalStylesForElement.ts +1 -1
- package/src/parser/getGradientDefs.ts +1 -1
- package/src/parser/getMultipleNodes.ts +2 -2
- package/src/parser/loadSVGFromString.test.ts +1 -4
- package/src/parser/loadSVGFromString.ts +1 -1
- package/src/parser/loadSVGFromURL.ts +1 -1
- package/src/parser/normalizeAttr.ts +1 -1
- package/src/parser/normalizeValue.ts +2 -2
- package/src/parser/parseAttributes.ts +3 -3
- package/src/parser/parseFontDeclaration.ts +1 -1
- package/src/parser/parseSVGDocument.ts +3 -3
- package/src/parser/parseStyleObject.ts +1 -1
- package/src/parser/parseStyleString.ts +1 -1
- package/src/parser/parseTransformAttribute.ts +1 -1
- package/src/parser/parseUseDirectives.ts +1 -1
- package/src/parser/percent.ts +4 -4
- package/src/parser/recursivelyParseGradientsXlink.ts +1 -1
- package/src/parser/setStrokeFillOpacity.ts +1 -1
- package/src/parser/typedefs.ts +1 -1
- package/src/shapes/ActiveSelection.spec.ts +1 -1
- package/src/shapes/ActiveSelection.ts +4 -4
- package/src/shapes/Circle.ts +5 -5
- package/src/shapes/Ellipse.ts +4 -4
- package/src/shapes/Group.spec.ts +5 -5
- package/src/shapes/Group.ts +19 -17
- package/src/shapes/IText/DraggableTextDelegate.ts +9 -10
- package/src/shapes/IText/IText.test.ts +1 -1
- package/src/shapes/IText/IText.ts +12 -12
- package/src/shapes/IText/ITextBehavior.test.ts +2 -2
- package/src/shapes/IText/ITextBehavior.ts +21 -21
- package/src/shapes/IText/ITextClickBehavior.ts +2 -2
- package/src/shapes/IText/ITextKeyBehavior.test.ts +2 -2
- package/src/shapes/IText/ITextKeyBehavior.ts +13 -13
- package/src/shapes/Image.ts +16 -16
- package/src/shapes/Line.ts +4 -4
- package/src/shapes/Object/AnimatableObject.ts +13 -10
- package/src/shapes/Object/FabricObject.ts +7 -3
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +9 -9
- package/src/shapes/Object/InteractiveObject.spec.ts +3 -3
- package/src/shapes/Object/InteractiveObject.ts +32 -32
- package/src/shapes/Object/Object.ts +33 -31
- package/src/shapes/Object/ObjectGeometry.ts +9 -9
- package/src/shapes/Object/ObjectOrigin.ts +11 -11
- package/src/shapes/Object/StackedObject.ts +3 -4
- package/src/shapes/Path.ts +14 -14
- package/src/shapes/Polyline.spec.ts +1 -1
- package/src/shapes/Polyline.ts +15 -16
- package/src/shapes/Rect.ts +6 -6
- package/src/shapes/Text/StyledText.spec.ts +2 -2
- package/src/shapes/Text/StyledText.ts +7 -7
- package/src/shapes/Text/Text.spec.ts +1 -1
- package/src/shapes/Text/Text.ts +33 -33
- package/src/shapes/Text/TextSVGExportMixin.spec.ts +1 -1
- package/src/shapes/Text/TextSVGExportMixin.ts +23 -23
- package/src/shapes/Textbox.ts +7 -7
- package/src/shapes/Triangle.ts +1 -1
- package/src/typedefs.ts +3 -3
- package/src/util/animation/AnimationBase.ts +2 -2
- package/src/util/animation/AnimationRegistry.ts +1 -1
- package/src/util/animation/ArrayAnimation.ts +2 -2
- package/src/util/animation/ColorAnimation.ts +5 -5
- package/src/util/animation/ValueAnimation.ts +1 -1
- package/src/util/animation/animate.ts +6 -6
- package/src/util/animation/animations.spec.ts +7 -7
- package/src/util/animation/easing.ts +1 -1
- package/src/util/animation/types.ts +5 -6
- package/src/util/applyMixins.ts +2 -2
- package/src/util/dom_style.ts +2 -2
- package/src/util/internals/cloneDeep.ts +6 -0
- package/src/util/internals/cloneStyles.spec.ts +46 -0
- package/src/util/internals/cloneStyles.ts +12 -0
- package/src/util/internals/findRight.ts +1 -1
- package/src/util/internals/getRandomInt.test.ts +1 -1
- package/src/util/misc/boundingBoxFromPoints.ts +1 -1
- package/src/util/misc/dom.ts +3 -3
- package/src/util/misc/findScaleTo.ts +2 -2
- package/src/util/misc/groupSVGElements.ts +1 -1
- package/src/util/misc/isTransparent.ts +1 -1
- package/src/util/misc/matrix.ts +6 -6
- package/src/util/misc/objectEnlive.ts +9 -9
- package/src/util/misc/objectTransforms.ts +5 -5
- package/src/util/misc/pick.ts +2 -2
- package/src/util/misc/planeChange.spec.ts +9 -9
- package/src/util/misc/planeChange.ts +5 -5
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +7 -7
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +16 -16
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +2 -2
- package/src/util/misc/projectStroke/index.ts +7 -7
- package/src/util/misc/resolveOrigin.ts +1 -1
- package/src/util/misc/rotatePoint.ts +1 -1
- package/src/util/misc/svgParsing.ts +5 -5
- package/src/util/misc/textStyles.ts +6 -6
- package/src/util/misc/vectors.ts +1 -1
- package/src/util/path/index.spec.ts +3 -3
- package/src/util/path/index.ts +30 -30
- package/src/util/path/typechecks.ts +22 -22
- package/src/util/path/typedefs.ts +14 -17
- package/src/util/transform_matrix_removal.ts +3 -3
- package/src/util/typeAssertions.ts +4 -4
- package/tsconfig-extensions.json +108 -0
- package/tsconfig.json +4 -3
- package/.eslintignore +0 -3
- package/.eslintrc.js +0 -60
- package/.eslintrc.json +0 -143
- package/.eslintrc_tests +0 -58
- package/dist/src/util/internals/cloneDeep.min.mjs +0 -2
- package/dist/src/util/internals/cloneDeep.min.mjs.map +0 -1
- package/dist/src/util/internals/cloneDeep.mjs +0 -4
- package/dist/src/util/internals/cloneDeep.mjs.map +0 -1
- package/dist/src/util/internals/index.d.ts +0 -5
- package/dist/src/util/internals/index.d.ts.map +0 -1
- package/src/benchmarks/README.md +0 -7
- package/src/benchmarks/calcCornerCoords.mjs +0 -117
- package/src/benchmarks/calcTransformMatrix.mjs +0 -104
- package/src/benchmarks/pathCloning.mjs +0 -111
- package/src/benchmarks/pathData.mjs +0 -5
- package/src/benchmarks/raycasting.mjs +0 -152
- package/src/benchmarks/transformMatrixKey.mjs +0 -97
- package/src/util/internals/index.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorMatrix.min.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps
|
|
1
|
+
{"version":3,"file":"ColorMatrix.min.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps,\n> extends BaseFilter<Name, OwnProps> {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: ColorMatrixOwnProps['matrix'];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: ColorMatrixOwnProps['colorsOnly'];\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n static uniformLocations = ['uColorMatrix', 'uConstants'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n\n toObject() {\n return {\n ...super.toObject(),\n matrix: [...this.matrix] as TMatColorMatrix,\n };\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","colorsOnly","ColorMatrix","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","options","data","imageData","m","this","i","length","r","g","b","a","sendUniformData","gl","uniformLocations","constants","uniformMatrix4fv","uColorMatrix","uniform4fv","uConstants","toObject","_objectSpread","super","_defineProperty","classRegistry","setClass"],"mappings":"+QAcO,MAAMA,EAAgD,CAC3DC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClEC,YAAY,GAmBP,MAAMC,UAGHC,EAyBRC,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAAUC,GACR,MACEC,EADgBD,EAAQE,UACPD,KACjBE,EAAIC,KAAKX,OACTC,EAAaU,KAAKV,WAEpB,IAAK,IAAIW,EAAI,EAAGA,EAAIJ,EAAKK,OAAQD,GAAK,EAAG,CACvC,MAAME,EAAIN,EAAKI,GACTG,EAAIP,EAAKI,EAAI,GACbI,EAAIR,EAAKI,EAAI,GACnB,GAAIX,EACFO,EAAKI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GAC7CF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAY,IAAPA,EAAE,GACjDF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAc,IAARA,EAAE,QAC/C,CACL,MAAMO,EAAIT,EAAKI,EAAI,GACnBJ,EAAKI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAKO,EAAIP,EAAE,GAAY,IAAPA,EAAE,GACxDF,EAAKI,EAAI,GAAKE,EAAIJ,EAAE,GAAKK,EAAIL,EAAE,GAAKM,EAAIN,EAAE,GAAKO,EAAIP,EAAE,GAAY,IAAPA,EAAE,GAC5DF,EAAKI,EAAI,GACPE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAMO,EAAIP,EAAE,IAAc,IAARA,EAAE,IACpDF,EAAKI,EAAI,GACPE,EAAIJ,EAAE,IAAMK,EAAIL,EAAE,IAAMM,EAAIN,EAAE,IAAMO,EAAIP,EAAE,IAAc,IAARA,EAAE,GACtD,CACF,CACF,CAQAQ,eAAAA,CACEC,EACAC,GAEA,MAAMV,EAAIC,KAAKX,OACbA,EAAS,CACPU,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,IACFA,EAAE,KAEJW,EAAY,CAACX,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKA,EAAE,KACpCS,EAAGG,iBAAiBF,EAAiBG,cAAc,EAAOvB,GAC1DmB,EAAGK,WAAWJ,EAAiBK,WAAYJ,EAC7C,CAEAK,QAAAA,GACE,OAAAC,EAAAA,EAAA,CAAA,EACKC,MAAMF,YAAU,GAAA,CACnB1B,OAAQ,IAAIW,KAAKX,SAErB,EAzFA6B,EAdW3B,EAAW,OAsBR,eAAa2B,EAtBhB3B,EAAW,WAwBJH,GAAwB8B,EAxB/B3B,EAAW,mBA0BI,CAAC,eAAgB,eAgF7C4B,EAAcC,SAAS7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorMatrix.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps
|
|
1
|
+
{"version":3,"file":"ColorMatrix.mjs","sources":["../../../src/filters/ColorMatrix.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type {\n T2DPipelineState,\n TMatColorMatrix,\n TWebGLUniformLocationMap,\n} from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/colorMatrix';\n\ntype ColorMatrixOwnProps = {\n matrix: TMatColorMatrix;\n colorsOnly: boolean;\n};\n\nexport const colorMatrixDefaultValues: ColorMatrixOwnProps = {\n matrix: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\n colorsOnly: true,\n};\n\n/**\n * Color Matrix filter class\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}\n * @example <caption>Kodachrome filter</caption>\n * const filter = new ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class ColorMatrix<\n Name extends string = 'ColorMatrix',\n OwnProps extends object = ColorMatrixOwnProps,\n> extends BaseFilter<Name, OwnProps> {\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n declare matrix: ColorMatrixOwnProps['matrix'];\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario\n * to save some calculation\n * @type Boolean\n * @default true\n */\n declare colorsOnly: ColorMatrixOwnProps['colorsOnly'];\n\n static type = 'ColorMatrix';\n\n static defaults = colorMatrixDefaultValues;\n\n static uniformLocations = ['uColorMatrix', 'uConstants'];\n\n getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n m = this.matrix,\n colorsOnly = this.colorsOnly;\n\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i];\n const g = data[i + 1];\n const b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n } else {\n const a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] =\n r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] =\n r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n const m = this.matrix,\n matrix = [\n m[0],\n m[1],\n m[2],\n m[3],\n m[5],\n m[6],\n m[7],\n m[8],\n m[10],\n m[11],\n m[12],\n m[13],\n m[15],\n m[16],\n m[17],\n m[18],\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n }\n\n toObject() {\n return {\n ...super.toObject(),\n matrix: [...this.matrix] as TMatColorMatrix,\n };\n }\n}\n\nclassRegistry.setClass(ColorMatrix);\n"],"names":["colorMatrixDefaultValues","matrix","colorsOnly","ColorMatrix","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","options","imageData","data","m","i","length","r","g","b","a","sendUniformData","gl","uniformLocations","constants","uniformMatrix4fv","uColorMatrix","uniform4fv","uConstants","toObject","_objectSpread","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorMatrixFilters.min.mjs","sources":["../../../src/filters/ColorMatrixFilters.ts"],"sourcesContent":["import { ColorMatrix } from './ColorMatrix';\nimport { classRegistry } from '../ClassRegistry';\nimport type { TMatColorMatrix } from './typedefs';\n\ntype FixedFiltersOwnProps = {\n colorsOnly: boolean;\n};\n\nexport function createColorMatrixFilter(key: string, matrix: TMatColorMatrix) {\n const newClass = class extends ColorMatrix<typeof key, FixedFiltersOwnProps> {\n static type = key;\n\n static defaults = {\n colorsOnly: false,\n matrix,\n };\n\n //@ts-expect-error TS wants matrix to be exported.\n toObject(): { type: string } & FixedFiltersOwnProps {\n return { type: this.type, colorsOnly: this.colorsOnly };\n }\n };\n classRegistry.setClass(newClass, key);\n return newClass as typeof ColorMatrix<typeof key, FixedFiltersOwnProps>;\n}\n\nexport const Brownie = createColorMatrixFilter(\n 'Brownie',\n [\n 0.5997, 0.34553, -0.27082, 0, 0.186, -0.0377, 0.86095, 0.15059, 0, -0.1449,\n 0.24113, -0.07441, 0.44972, 0, -0.02965, 0, 0, 0, 1, 0,\n ]
|
|
1
|
+
{"version":3,"file":"ColorMatrixFilters.min.mjs","sources":["../../../src/filters/ColorMatrixFilters.ts"],"sourcesContent":["import { ColorMatrix } from './ColorMatrix';\nimport { classRegistry } from '../ClassRegistry';\nimport type { TMatColorMatrix } from './typedefs';\n\ntype FixedFiltersOwnProps = {\n colorsOnly: boolean;\n};\n\nexport function createColorMatrixFilter(key: string, matrix: TMatColorMatrix) {\n const newClass = class extends ColorMatrix<typeof key, FixedFiltersOwnProps> {\n static type = key;\n\n static defaults = {\n colorsOnly: false,\n matrix,\n };\n\n //@ts-expect-error TS wants matrix to be exported.\n toObject(): { type: string } & FixedFiltersOwnProps {\n return { type: this.type, colorsOnly: this.colorsOnly };\n }\n };\n classRegistry.setClass(newClass, key);\n return newClass as typeof ColorMatrix<typeof key, FixedFiltersOwnProps>;\n}\n\nexport const Brownie = createColorMatrixFilter(\n 'Brownie',\n [\n 0.5997, 0.34553, -0.27082, 0, 0.186, -0.0377, 0.86095, 0.15059, 0, -0.1449,\n 0.24113, -0.07441, 0.44972, 0, -0.02965, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Vintage = createColorMatrixFilter(\n 'Vintage',\n [\n 0.62793, 0.32021, -0.03965, 0, 0.03784, 0.02578, 0.64411, 0.03259, 0,\n 0.02926, 0.0466, -0.08512, 0.52416, 0, 0.02023, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Kodachrome = createColorMatrixFilter(\n 'Kodachrome',\n [\n 1.12855, -0.39673, -0.03992, 0, 0.24991, -0.16404, 1.08352, -0.05498, 0,\n 0.09698, -0.16786, -0.56034, 1.60148, 0, 0.13972, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Technicolor = createColorMatrixFilter(\n 'Technicolor',\n [\n 1.91252, -0.85453, -0.09155, 0, 0.04624, -0.30878, 1.76589, -0.10601, 0,\n -0.27589, -0.2311, -0.75018, 1.84759, 0, 0.12137, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Polaroid = createColorMatrixFilter(\n 'Polaroid',\n [\n 1.438, -0.062, -0.062, 0, 0, -0.122, 1.378, -0.122, 0, 0, -0.016, -0.016,\n 1.483, 0, 0, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Sepia = createColorMatrixFilter(\n 'Sepia',\n [\n 0.393, 0.769, 0.189, 0, 0, 0.349, 0.686, 0.168, 0, 0, 0.272, 0.534, 0.131,\n 0, 0, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const BlackWhite = createColorMatrixFilter(\n 'BlackWhite',\n [\n 1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 0, 0, 0,\n 1, 0,\n ],\n);\n"],"names":["createColorMatrixFilter","key","matrix","_Class","newClass","_defineProperty","ColorMatrix","toObject","type","this","colorsOnly","classRegistry","setClass","Brownie","Vintage","Kodachrome","Technicolor","Polaroid","Sepia","BlackWhite"],"mappings":"+LAQO,SAASA,EAAwBC,EAAaC,GAAyB,IAAAC,EAC5E,MAAMC,GAYLC,EAZaF,EAAG,cAAcG,EAS7BC,QAAAA,GACE,MAAO,CAAEC,KAAMC,KAAKD,KAAME,WAAYD,KAAKC,WAC7C,GACD,OAXeT,GAAGI,EAAAF,EAEC,WAAA,CAChBO,YAAY,EACZR,WACDC,GAQH,OADAQ,EAAcC,SAASR,EAAUH,GAC1BG,CACT,CAEO,MAAMS,EAAUb,EACrB,UACA,CACE,MAAQ,QAAU,OAAS,EAAG,MAAQ,MAAQ,OAAS,OAAS,GAAI,MACpE,QAAU,OAAS,OAAS,GAAI,OAAS,EAAG,EAAG,EAAG,EAAG,IAI5Cc,EAAUd,EACrB,UACA,CACE,OAAS,QAAU,OAAS,EAAG,OAAS,OAAS,OAAS,OAAS,EACnE,OAAS,OAAS,OAAS,OAAS,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,IAInDe,EAAaf,EACxB,aACA,CACE,SAAU,QAAU,OAAS,EAAG,QAAU,OAAS,SAAU,OAAS,EACtE,QAAU,QAAU,OAAS,QAAS,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,IAIrDgB,EAAchB,EACzB,cACA,CACE,SAAU,QAAU,OAAS,EAAG,QAAU,OAAS,SAAU,OAAS,GACrE,QAAU,OAAS,OAAS,QAAS,EAAG,OAAS,EAAG,EAAG,EAAG,EAAG,IAIrDiB,EAAWjB,EACtB,WACA,CACE,OAAQ,MAAQ,KAAO,EAAG,GAAI,KAAO,OAAQ,KAAO,EAAG,GAAI,MAAQ,KACnE,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAIhBkB,EAAQlB,EACnB,QACA,CACE,KAAO,KAAO,KAAO,EAAG,EAAG,KAAO,KAAO,KAAO,EAAG,EAAG,KAAO,KAAO,KACpE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAITmB,EAAanB,EACxB,aACA,CACE,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,EAAG,EACxE,EAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorMatrixFilters.mjs","sources":["../../../src/filters/ColorMatrixFilters.ts"],"sourcesContent":["import { ColorMatrix } from './ColorMatrix';\nimport { classRegistry } from '../ClassRegistry';\nimport type { TMatColorMatrix } from './typedefs';\n\ntype FixedFiltersOwnProps = {\n colorsOnly: boolean;\n};\n\nexport function createColorMatrixFilter(key: string, matrix: TMatColorMatrix) {\n const newClass = class extends ColorMatrix<typeof key, FixedFiltersOwnProps> {\n static type = key;\n\n static defaults = {\n colorsOnly: false,\n matrix,\n };\n\n //@ts-expect-error TS wants matrix to be exported.\n toObject(): { type: string } & FixedFiltersOwnProps {\n return { type: this.type, colorsOnly: this.colorsOnly };\n }\n };\n classRegistry.setClass(newClass, key);\n return newClass as typeof ColorMatrix<typeof key, FixedFiltersOwnProps>;\n}\n\nexport const Brownie = createColorMatrixFilter(\n 'Brownie',\n [\n 0.5997, 0.34553, -0.27082, 0, 0.186, -0.0377, 0.86095, 0.15059, 0, -0.1449,\n 0.24113, -0.07441, 0.44972, 0, -0.02965, 0, 0, 0, 1, 0,\n ]
|
|
1
|
+
{"version":3,"file":"ColorMatrixFilters.mjs","sources":["../../../src/filters/ColorMatrixFilters.ts"],"sourcesContent":["import { ColorMatrix } from './ColorMatrix';\nimport { classRegistry } from '../ClassRegistry';\nimport type { TMatColorMatrix } from './typedefs';\n\ntype FixedFiltersOwnProps = {\n colorsOnly: boolean;\n};\n\nexport function createColorMatrixFilter(key: string, matrix: TMatColorMatrix) {\n const newClass = class extends ColorMatrix<typeof key, FixedFiltersOwnProps> {\n static type = key;\n\n static defaults = {\n colorsOnly: false,\n matrix,\n };\n\n //@ts-expect-error TS wants matrix to be exported.\n toObject(): { type: string } & FixedFiltersOwnProps {\n return { type: this.type, colorsOnly: this.colorsOnly };\n }\n };\n classRegistry.setClass(newClass, key);\n return newClass as typeof ColorMatrix<typeof key, FixedFiltersOwnProps>;\n}\n\nexport const Brownie = createColorMatrixFilter(\n 'Brownie',\n [\n 0.5997, 0.34553, -0.27082, 0, 0.186, -0.0377, 0.86095, 0.15059, 0, -0.1449,\n 0.24113, -0.07441, 0.44972, 0, -0.02965, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Vintage = createColorMatrixFilter(\n 'Vintage',\n [\n 0.62793, 0.32021, -0.03965, 0, 0.03784, 0.02578, 0.64411, 0.03259, 0,\n 0.02926, 0.0466, -0.08512, 0.52416, 0, 0.02023, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Kodachrome = createColorMatrixFilter(\n 'Kodachrome',\n [\n 1.12855, -0.39673, -0.03992, 0, 0.24991, -0.16404, 1.08352, -0.05498, 0,\n 0.09698, -0.16786, -0.56034, 1.60148, 0, 0.13972, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Technicolor = createColorMatrixFilter(\n 'Technicolor',\n [\n 1.91252, -0.85453, -0.09155, 0, 0.04624, -0.30878, 1.76589, -0.10601, 0,\n -0.27589, -0.2311, -0.75018, 1.84759, 0, 0.12137, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Polaroid = createColorMatrixFilter(\n 'Polaroid',\n [\n 1.438, -0.062, -0.062, 0, 0, -0.122, 1.378, -0.122, 0, 0, -0.016, -0.016,\n 1.483, 0, 0, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const Sepia = createColorMatrixFilter(\n 'Sepia',\n [\n 0.393, 0.769, 0.189, 0, 0, 0.349, 0.686, 0.168, 0, 0, 0.272, 0.534, 0.131,\n 0, 0, 0, 0, 0, 1, 0,\n ],\n);\n\nexport const BlackWhite = createColorMatrixFilter(\n 'BlackWhite',\n [\n 1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 0, 0, 0,\n 1, 0,\n ],\n);\n"],"names":["createColorMatrixFilter","key","matrix","_Class","newClass","ColorMatrix","toObject","type","colorsOnly","_defineProperty","classRegistry","setClass","Brownie","Vintage","Kodachrome","Technicolor","Polaroid","Sepia","BlackWhite"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composed.min.mjs","sources":["../../../src/filters/Composed.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLPipelineState } from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\n\ntype ComposedOwnProps = {\n subFilters: BaseFilter<string, object>[];\n};\n\n/**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\nexport class Composed extends BaseFilter<'Composed', ComposedOwnProps> {\n /**\n * A non sparse array of filters to apply\n */\n declare subFilters: ComposedOwnProps['subFilters'];\n\n static type = 'Composed';\n\n constructor(\n options: { subFilters?: BaseFilter<string, object>[] } & Record<\n string,\n any\n > = {}
|
|
1
|
+
{"version":3,"file":"Composed.min.mjs","sources":["../../../src/filters/Composed.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLPipelineState } from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\n\ntype ComposedOwnProps = {\n subFilters: BaseFilter<string, object>[];\n};\n\n/**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\nexport class Composed extends BaseFilter<'Composed', ComposedOwnProps> {\n /**\n * A non sparse array of filters to apply\n */\n declare subFilters: ComposedOwnProps['subFilters'];\n\n static type = 'Composed';\n\n constructor(\n options: { subFilters?: BaseFilter<string, object>[] } & Record<\n string,\n any\n > = {},\n ) {\n super(options);\n this.subFilters = options.subFilters || [];\n }\n\n /**\n * Apply this container's filters to the input image provided.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be applied.\n */\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n if (isWebGLPipelineState(options)) {\n options.passes += this.subFilters.length - 1;\n }\n this.subFilters.forEach((filter) => {\n filter.applyTo(options);\n });\n }\n\n /**\n * Serialize this filter into JSON.\n * @returns {Object} A JSON representation of this filter.\n */\n //@ts-expect-error TS doesn't like this toObject\n toObject(): {\n type: 'Composed';\n subFilters: ReturnType<BaseFilter<string, object>['toObject']>[];\n } {\n return {\n type: this.type,\n subFilters: this.subFilters.map((filter) => filter.toObject()),\n };\n }\n\n isNeutralState() {\n return !this.subFilters.some((filter) => !filter.isNeutralState());\n }\n\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n * @static\n * @param {oject} object Object to create an instance from\n * @param {object} [options]\n * @param {AbortSignal} [options.signal] handle aborting `BlendImage` filter loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\n * @returns {Promise<Composed>}\n */\n static fromObject(\n object: Record<string, any>,\n options: { signal: AbortSignal },\n ): Promise<Composed> {\n return Promise.all(\n ((object.subFilters || []) as BaseFilter<string, object>[]).map(\n (filter) =>\n classRegistry\n .getClass<typeof BaseFilter>(filter.type)\n .fromObject(filter, options),\n ),\n ).then(\n (enlivedFilters) => new this({ subFilters: enlivedFilters }) as Composed,\n );\n }\n}\n\nclassRegistry.setClass(Composed);\n"],"names":["Composed","BaseFilter","constructor","options","arguments","length","undefined","super","this","subFilters","applyTo","isWebGLPipelineState","passes","forEach","filter","toObject","type","map","isNeutralState","some","fromObject","object","Promise","all","classRegistry","getClass","then","enlivedFilters","_defineProperty","setClass"],"mappings":"oPAYO,MAAMA,UAAiBC,EAQ5BC,WAAAA,GAKE,IAJAC,EAGCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAEJG,MAAMJ,GACNK,KAAKC,WAAaN,EAAQM,YAAc,EAC1C,CAQAC,OAAAA,CAAQP,GACFQ,EAAqBR,KACvBA,EAAQS,QAAUJ,KAAKC,WAAWJ,OAAS,GAE7CG,KAAKC,WAAWI,SAASC,IACvBA,EAAOJ,QAAQP,EAAQ,GAE3B,CAOAY,QAAAA,GAIE,MAAO,CACLC,KAAMR,KAAKQ,KACXP,WAAYD,KAAKC,WAAWQ,KAAKH,GAAWA,EAAOC,aAEvD,CAEAG,cAAAA,GACE,OAAQV,KAAKC,WAAWU,MAAML,IAAYA,EAAOI,kBACnD,CAUA,iBAAOE,CACLC,EACAlB,GAEA,OAAOmB,QAAQC,KACXF,EAAOZ,YAAc,IAAqCQ,KACzDH,GACCU,EACGC,SAA4BX,EAAOE,MACnCI,WAAWN,EAAQX,MAE1BuB,MACCC,GAAmB,IAAInB,KAAK,CAAEC,WAAYkB,KAE/C,EAzEAC,EADW5B,EAAQ,OAML,YAuEhBwB,EAAcK,SAAS7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composed.mjs","sources":["../../../src/filters/Composed.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLPipelineState } from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\n\ntype ComposedOwnProps = {\n subFilters: BaseFilter<string, object>[];\n};\n\n/**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\nexport class Composed extends BaseFilter<'Composed', ComposedOwnProps> {\n /**\n * A non sparse array of filters to apply\n */\n declare subFilters: ComposedOwnProps['subFilters'];\n\n static type = 'Composed';\n\n constructor(\n options: { subFilters?: BaseFilter<string, object>[] } & Record<\n string,\n any\n > = {}
|
|
1
|
+
{"version":3,"file":"Composed.mjs","sources":["../../../src/filters/Composed.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLPipelineState } from './typedefs';\nimport { isWebGLPipelineState } from './utils';\nimport { classRegistry } from '../ClassRegistry';\n\ntype ComposedOwnProps = {\n subFilters: BaseFilter<string, object>[];\n};\n\n/**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\nexport class Composed extends BaseFilter<'Composed', ComposedOwnProps> {\n /**\n * A non sparse array of filters to apply\n */\n declare subFilters: ComposedOwnProps['subFilters'];\n\n static type = 'Composed';\n\n constructor(\n options: { subFilters?: BaseFilter<string, object>[] } & Record<\n string,\n any\n > = {},\n ) {\n super(options);\n this.subFilters = options.subFilters || [];\n }\n\n /**\n * Apply this container's filters to the input image provided.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be applied.\n */\n applyTo(options: TWebGLPipelineState | T2DPipelineState) {\n if (isWebGLPipelineState(options)) {\n options.passes += this.subFilters.length - 1;\n }\n this.subFilters.forEach((filter) => {\n filter.applyTo(options);\n });\n }\n\n /**\n * Serialize this filter into JSON.\n * @returns {Object} A JSON representation of this filter.\n */\n //@ts-expect-error TS doesn't like this toObject\n toObject(): {\n type: 'Composed';\n subFilters: ReturnType<BaseFilter<string, object>['toObject']>[];\n } {\n return {\n type: this.type,\n subFilters: this.subFilters.map((filter) => filter.toObject()),\n };\n }\n\n isNeutralState() {\n return !this.subFilters.some((filter) => !filter.isNeutralState());\n }\n\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n * @static\n * @param {oject} object Object to create an instance from\n * @param {object} [options]\n * @param {AbortSignal} [options.signal] handle aborting `BlendImage` filter loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\n * @returns {Promise<Composed>}\n */\n static fromObject(\n object: Record<string, any>,\n options: { signal: AbortSignal },\n ): Promise<Composed> {\n return Promise.all(\n ((object.subFilters || []) as BaseFilter<string, object>[]).map(\n (filter) =>\n classRegistry\n .getClass<typeof BaseFilter>(filter.type)\n .fromObject(filter, options),\n ),\n ).then(\n (enlivedFilters) => new this({ subFilters: enlivedFilters }) as Composed,\n );\n }\n}\n\nclassRegistry.setClass(Composed);\n"],"names":["Composed","BaseFilter","constructor","options","arguments","length","undefined","subFilters","applyTo","isWebGLPipelineState","passes","forEach","filter","toObject","type","map","isNeutralState","some","fromObject","object","Promise","all","classRegistry","getClass","then","enlivedFilters","_defineProperty","setClass"],"mappings":";;;;;AASA;AACA;AACA;AACO,MAAMA,QAAQ,SAASC,UAAU,CAA+B;AAQrEC,EAAAA,WAAWA,GAKT;AAAA,IAAA,IAJAC,OAGC,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;IAEN,KAAK,CAACD,OAAO,CAAC,CAAA;AACd,IAAA,IAAI,CAACI,UAAU,GAAGJ,OAAO,CAACI,UAAU,IAAI,EAAE,CAAA;AAC5C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,OAAOA,CAACL,OAA+C,EAAE;AACvD,IAAA,IAAIM,oBAAoB,CAACN,OAAO,CAAC,EAAE;MACjCA,OAAO,CAACO,MAAM,IAAI,IAAI,CAACH,UAAU,CAACF,MAAM,GAAG,CAAC,CAAA;AAC9C,KAAA;AACA,IAAA,IAAI,CAACE,UAAU,CAACI,OAAO,CAAEC,MAAM,IAAK;AAClCA,MAAAA,MAAM,CAACJ,OAAO,CAACL,OAAO,CAAC,CAAA;AACzB,KAAC,CAAC,CAAA;AACJ,GAAA;;AAEA;AACF;AACA;AACA;AACE;AACAU,EAAAA,QAAQA,GAGN;IACA,OAAO;MACLC,IAAI,EAAE,IAAI,CAACA,IAAI;AACfP,MAAAA,UAAU,EAAE,IAAI,CAACA,UAAU,CAACQ,GAAG,CAAEH,MAAM,IAAKA,MAAM,CAACC,QAAQ,EAAE,CAAA;KAC9D,CAAA;AACH,GAAA;AAEAG,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,CAAC,IAAI,CAACT,UAAU,CAACU,IAAI,CAAEL,MAAM,IAAK,CAACA,MAAM,CAACI,cAAc,EAAE,CAAC,CAAA;AACpE,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE,EAAA,OAAOE,UAAUA,CACfC,MAA2B,EAC3BhB,OAAgC,EACb;AACnB,IAAA,OAAOiB,OAAO,CAACC,GAAG,CAChB,CAAEF,MAAM,CAACZ,UAAU,IAAI,EAAE,EAAmCQ,GAAG,CAC5DH,MAAM,IACLU,aAAa,CACVC,QAAQ,CAAoBX,MAAM,CAACE,IAAI,CAAC,CACxCI,UAAU,CAACN,MAAM,EAAET,OAAO,CACjC,CACF,CAAC,CAACqB,IAAI,CACHC,cAAc,IAAK,IAAI,IAAI,CAAC;AAAElB,MAAAA,UAAU,EAAEkB,cAAAA;AAAe,KAAC,CAC7D,CAAC,CAAA;AACH,GAAA;AACF,CAAA;AA1EE;AACF;AACA;AAFEC,eAAA,CADW1B,QAAQ,EAAA,MAAA,EAML,UAAU,CAAA,CAAA;AAuE1BsB,aAAa,CAACK,QAAQ,CAAC3B,QAAQ,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contrast.min.mjs","sources":["../../../src/filters/Contrast.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/constrast';\n\ntype ContrastOwnProps = {\n contrast: number;\n};\n\nexport const contrastDefaultValues: ContrastOwnProps = {\n contrast: 0,\n};\n\n/**\n * Contrast filter class\n * @example\n * const filter = new Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Contrast extends BaseFilter<'Contrast', ContrastOwnProps> {\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n declare contrast: ContrastOwnProps['contrast'];\n\n static type = 'Contrast';\n\n static defaults = contrastDefaultValues;\n\n static uniformLocations = ['uContrast'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n isNeutralState() {\n return this.contrast === 0;\n }\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const contrast = Math.floor(this.contrast * 255),\n contrastF = (259 * (contrast + 255)) / (255 * (259 - contrast));\n\n for (let i = 0; i < data.length; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Contrast.min.mjs","sources":["../../../src/filters/Contrast.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/constrast';\n\ntype ContrastOwnProps = {\n contrast: number;\n};\n\nexport const contrastDefaultValues: ContrastOwnProps = {\n contrast: 0,\n};\n\n/**\n * Contrast filter class\n * @example\n * const filter = new Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Contrast extends BaseFilter<'Contrast', ContrastOwnProps> {\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n declare contrast: ContrastOwnProps['contrast'];\n\n static type = 'Contrast';\n\n static defaults = contrastDefaultValues;\n\n static uniformLocations = ['uContrast'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n isNeutralState() {\n return this.contrast === 0;\n }\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const contrast = Math.floor(this.contrast * 255),\n contrastF = (259 * (contrast + 255)) / (255 * (259 - contrast));\n\n for (let i = 0; i < data.length; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\n }\n}\n\nclassRegistry.setClass(Contrast);\n"],"names":["contrastDefaultValues","contrast","Contrast","BaseFilter","getFragmentSource","fragmentSource","isNeutralState","this","applyTo2d","_ref","imageData","data","Math","floor","contrastF","i","length","sendUniformData","gl","uniformLocations","uniform1f","uContrast","_defineProperty","classRegistry","setClass"],"mappings":"0PASO,MAAMA,EAA0C,CACrDC,SAAU,GAYL,MAAMC,UAAiBC,EAc5BC,iBAAAA,GACE,OAAOC,CACT,CAEAC,cAAAA,GACE,OAAyB,IAAlBC,KAAKN,QACd,CAQAO,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,MAAMR,EAAWW,KAAKC,MAAsB,IAAhBN,KAAKN,UAC/Ba,EAAa,KAAOb,EAAW,MAAS,KAAO,IAAMA,IAEvD,IAAK,IAAIc,EAAI,EAAGA,EAAIJ,EAAKK,OAAQD,GAAK,EACpCJ,EAAKI,GAAKD,GAAaH,EAAKI,GAAK,KAAO,IACxCJ,EAAKI,EAAI,GAAKD,GAAaH,EAAKI,EAAI,GAAK,KAAO,IAChDJ,EAAKI,EAAI,GAAKD,GAAaH,EAAKI,EAAI,GAAK,KAAO,GAEpD,CAQAE,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,UAAWd,KAAKN,SAChD,EAjDAqB,EADWpB,EAAQ,OAQL,YAAUoB,EARbpB,EAAQ,WAUDF,GAAqBsB,EAV5BpB,EAYe,mBAAA,CAAC,cAyC7BqB,EAAcC,SAAStB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contrast.mjs","sources":["../../../src/filters/Contrast.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/constrast';\n\ntype ContrastOwnProps = {\n contrast: number;\n};\n\nexport const contrastDefaultValues: ContrastOwnProps = {\n contrast: 0,\n};\n\n/**\n * Contrast filter class\n * @example\n * const filter = new Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Contrast extends BaseFilter<'Contrast', ContrastOwnProps> {\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n declare contrast: ContrastOwnProps['contrast'];\n\n static type = 'Contrast';\n\n static defaults = contrastDefaultValues;\n\n static uniformLocations = ['uContrast'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n isNeutralState() {\n return this.contrast === 0;\n }\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const contrast = Math.floor(this.contrast * 255),\n contrastF = (259 * (contrast + 255)) / (255 * (259 - contrast));\n\n for (let i = 0; i < data.length; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Contrast.mjs","sources":["../../../src/filters/Contrast.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/constrast';\n\ntype ContrastOwnProps = {\n contrast: number;\n};\n\nexport const contrastDefaultValues: ContrastOwnProps = {\n contrast: 0,\n};\n\n/**\n * Contrast filter class\n * @example\n * const filter = new Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Contrast extends BaseFilter<'Contrast', ContrastOwnProps> {\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n declare contrast: ContrastOwnProps['contrast'];\n\n static type = 'Contrast';\n\n static defaults = contrastDefaultValues;\n\n static uniformLocations = ['uContrast'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n isNeutralState() {\n return this.contrast === 0;\n }\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const contrast = Math.floor(this.contrast * 255),\n contrastF = (259 * (contrast + 255)) / (255 * (259 - contrast));\n\n for (let i = 0; i < data.length; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\n }\n}\n\nclassRegistry.setClass(Contrast);\n"],"names":["contrastDefaultValues","contrast","Contrast","BaseFilter","getFragmentSource","fragmentSource","isNeutralState","applyTo2d","_ref","imageData","data","Math","floor","contrastF","i","length","sendUniformData","gl","uniformLocations","uniform1f","uContrast","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AASO,MAAMA,qBAAuC,GAAG;AACrDC,EAAAA,QAAQ,EAAE,CAAA;AACZ,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,QAAQ,SAASC,UAAU,CAA+B;AAcrEC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;AAEAC,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAACL,QAAQ,KAAK,CAAC,CAAA;AAC5B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEM,SAASA,CAAAC,IAAA,EAA4C;IAAA,IAA3C;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,IAAAA;AAAK,OAAA;AAAoB,KAAC,GAAAF,IAAA,CAAA;IACjD,MAAMP,QAAQ,GAAGU,IAAI,CAACC,KAAK,CAAC,IAAI,CAACX,QAAQ,GAAG,GAAG,CAAC;AAC9CY,MAAAA,SAAS,GAAI,GAAG,IAAIZ,QAAQ,GAAG,GAAG,CAAC,IAAK,GAAG,IAAI,GAAG,GAAGA,QAAQ,CAAC,CAAC,CAAA;AAEjE,IAAA,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,CAACK,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;AACvCJ,MAAAA,IAAI,CAACI,CAAC,CAAC,GAAGD,SAAS,IAAIH,IAAI,CAACI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AAC3CJ,MAAAA,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC,GAAGD,SAAS,IAAIH,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACnDJ,MAAAA,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC,GAAGD,SAAS,IAAIH,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACrD,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEE,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;IACAD,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,SAAS,EAAE,IAAI,CAACnB,QAAQ,CAAC,CAAA;AACzD,GAAA;AACF,CAAA;AAlDE;AACF;AACA;AACA;AACA;AAJEoB,eAAA,CADWnB,QAAQ,EAAA,MAAA,EAQL,UAAU,CAAA,CAAA;AAAAmB,eAAA,CARbnB,QAAQ,EAAA,UAAA,EAUDF,qBAAqB,CAAA,CAAA;AAAAqB,eAAA,CAV5BnB,QAAQ,EAYO,kBAAA,EAAA,CAAC,WAAW,CAAC,CAAA,CAAA;AAyCzCoB,aAAa,CAACC,QAAQ,CAACrB,QAAQ,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Convolute.min.mjs","sources":["../../../src/filters/Convolute.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/convolute';\n\nexport type ConvoluteOwnProps = {\n opaque: boolean;\n matrix: number[];\n};\n\nexport const convoluteDefaultValues: ConvoluteOwnProps = {\n opaque: false,\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n};\n\n/**\n * Adapted from <a href=\"http://www.html5rocks.com/en/tutorials/canvas/imagefilters/\">html5rocks article</a>\n * @example <caption>Sharpen filter</caption>\n * const filter = new Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Blur filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter with opaqueness</caption>\n * const filter = new Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Convolute extends BaseFilter<'Convolute', ConvoluteOwnProps> {\n /*\n * Opaque value (true/false)\n */\n declare opaque: ConvoluteOwnProps['opaque'];\n\n /*\n * matrix for the filter, max 9x9\n */\n declare matrix: ConvoluteOwnProps['matrix'];\n\n static type = 'Convolute';\n\n static defaults = convoluteDefaultValues;\n\n static uniformLocations = ['uMatrix', 'uOpaque', 'uHalfSize', 'uSize'];\n\n getCacheKey() {\n return `${this.type}_${Math.sqrt(this.matrix.length)}_${\n this.opaque ? 1 : 0\n }` as keyof typeof fragmentSource;\n }\n\n getFragmentSource() {\n return fragmentSource[this.getCacheKey()];\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0;\n let r, g, b, a, dstOff, scx, scy, srcOff, wt, x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n } else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Convolute.min.mjs","sources":["../../../src/filters/Convolute.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/convolute';\n\nexport type ConvoluteOwnProps = {\n opaque: boolean;\n matrix: number[];\n};\n\nexport const convoluteDefaultValues: ConvoluteOwnProps = {\n opaque: false,\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n};\n\n/**\n * Adapted from <a href=\"http://www.html5rocks.com/en/tutorials/canvas/imagefilters/\">html5rocks article</a>\n * @example <caption>Sharpen filter</caption>\n * const filter = new Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Blur filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter with opaqueness</caption>\n * const filter = new Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Convolute extends BaseFilter<'Convolute', ConvoluteOwnProps> {\n /*\n * Opaque value (true/false)\n */\n declare opaque: ConvoluteOwnProps['opaque'];\n\n /*\n * matrix for the filter, max 9x9\n */\n declare matrix: ConvoluteOwnProps['matrix'];\n\n static type = 'Convolute';\n\n static defaults = convoluteDefaultValues;\n\n static uniformLocations = ['uMatrix', 'uOpaque', 'uHalfSize', 'uSize'];\n\n getCacheKey() {\n return `${this.type}_${Math.sqrt(this.matrix.length)}_${\n this.opaque ? 1 : 0\n }` as keyof typeof fragmentSource;\n }\n\n getFragmentSource() {\n return fragmentSource[this.getCacheKey()];\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0;\n let r, g, b, a, dstOff, scx, scy, srcOff, wt, x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n } else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1fv(uniformLocations.uMatrix, this.matrix);\n }\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject() {\n return {\n ...super.toObject(),\n opaque: this.opaque,\n matrix: [...this.matrix],\n };\n }\n}\n\nclassRegistry.setClass(Convolute);\n"],"names":["convoluteDefaultValues","opaque","matrix","Convolute","BaseFilter","getCacheKey","concat","this","type","Math","sqrt","length","getFragmentSource","fragmentSource","applyTo2d","options","imageData","data","weights","side","round","halfSide","floor","sw","width","sh","height","output","ctx","createImageData","dst","alphaFac","r","g","b","a","dstOff","scx","scy","srcOff","wt","x","y","cx","cy","sendUniformData","gl","uniformLocations","uniform1fv","uMatrix","toObject","_objectSpread","super","_defineProperty","classRegistry","setClass"],"mappings":"6QAUO,MAAMA,EAA4C,CACvDC,QAAQ,EACRC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IA2C5B,MAAMC,UAAkBC,EAiB7BC,WAAAA,GACE,MAAAC,GAAAA,OAAUC,KAAKC,KAAIF,KAAAA,OAAIG,KAAKC,KAAKH,KAAKL,OAAOS,QAAO,KAAAL,OAClDC,KAAKN,OAAS,EAAI,EAEtB,CAEAW,iBAAAA,GACE,OAAOC,EAAeN,KAAKF,cAC7B,CAQAS,SAAAA,CAAUC,GACR,MAAMC,EAAYD,EAAQC,UACxBC,EAAOD,EAAUC,KACjBC,EAAUX,KAAKL,OACfiB,EAAOV,KAAKW,MAAMX,KAAKC,KAAKQ,EAAQP,SACpCU,EAAWZ,KAAKa,MAAMH,EAAO,GAC7BI,EAAKP,EAAUQ,MACfC,EAAKT,EAAUU,OACfC,EAASZ,EAAQa,IAAIC,gBAAgBN,EAAIE,GACzCK,EAAMH,EAAOV,KAEbc,EAAWxB,KAAKN,OAAS,EAAI,EAC/B,IAAI+B,EAAGC,EAAGC,EAAGC,EAAGC,EAAQC,EAAKC,EAAKC,EAAQC,EAAIC,EAAGC,EAAGC,EAAIC,EAExD,IAAKF,EAAI,EAAGA,EAAIjB,EAAIiB,IAClB,IAAKD,EAAI,EAAGA,EAAIlB,EAAIkB,IAAK,CASvB,IARAL,EAAwB,GAAdM,EAAInB,EAAKkB,GAGnBT,EAAI,EACJC,EAAI,EACJC,EAAI,EACJC,EAAI,EAECS,EAAK,EAAGA,EAAKzB,EAAMyB,IACtB,IAAKD,EAAK,EAAGA,EAAKxB,EAAMwB,IACtBL,EAAMI,EAAIE,EAAKvB,EACfgB,EAAMI,EAAIE,EAAKtB,EAGXiB,EAAM,GAAKA,GAAOb,GAAMY,EAAM,GAAKA,GAAOd,IAI9CgB,EAA4B,GAAlBD,EAAMf,EAAKc,GACrBG,EAAKtB,EAAQ0B,EAAKzB,EAAOwB,GAEzBX,GAAKf,EAAKsB,GAAUC,EACpBP,GAAKhB,EAAKsB,EAAS,GAAKC,EACxBN,GAAKjB,EAAKsB,EAAS,GAAKC,EAEnBT,IACHI,GAAKlB,EAAKsB,EAAS,GAAKC,IAI9BV,EAAIM,GAAUJ,EACdF,EAAIM,EAAS,GAAKH,EAClBH,EAAIM,EAAS,GAAKF,EAIhBJ,EAAIM,EAAS,GAHVL,EAGed,EAAKmB,EAAS,GAFdD,CAItB,CAEFpB,EAAQC,UAAYW,CACtB,CAQAkB,eAAAA,CACEC,EACAC,GAEAD,EAAGE,WAAWD,EAAiBE,QAAS1C,KAAKL,OAC/C,CAMAgD,QAAAA,GACE,OAAAC,EAAAA,EAAA,CAAA,EACKC,MAAMF,YAAU,GAAA,CACnBjD,OAAQM,KAAKN,OACbC,OAAQ,IAAIK,KAAKL,SAErB,EA7GAmD,EANWlD,EAAS,OAWN,aAAWkD,EAXdlD,EAAS,WAaFH,GAAsBqD,EAb7BlD,EAAS,mBAeM,CAAC,UAAW,UAAW,YAAa,UAuGhEmD,EAAcC,SAASpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Convolute.mjs","sources":["../../../src/filters/Convolute.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/convolute';\n\nexport type ConvoluteOwnProps = {\n opaque: boolean;\n matrix: number[];\n};\n\nexport const convoluteDefaultValues: ConvoluteOwnProps = {\n opaque: false,\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n};\n\n/**\n * Adapted from <a href=\"http://www.html5rocks.com/en/tutorials/canvas/imagefilters/\">html5rocks article</a>\n * @example <caption>Sharpen filter</caption>\n * const filter = new Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Blur filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter with opaqueness</caption>\n * const filter = new Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Convolute extends BaseFilter<'Convolute', ConvoluteOwnProps> {\n /*\n * Opaque value (true/false)\n */\n declare opaque: ConvoluteOwnProps['opaque'];\n\n /*\n * matrix for the filter, max 9x9\n */\n declare matrix: ConvoluteOwnProps['matrix'];\n\n static type = 'Convolute';\n\n static defaults = convoluteDefaultValues;\n\n static uniformLocations = ['uMatrix', 'uOpaque', 'uHalfSize', 'uSize'];\n\n getCacheKey() {\n return `${this.type}_${Math.sqrt(this.matrix.length)}_${\n this.opaque ? 1 : 0\n }` as keyof typeof fragmentSource;\n }\n\n getFragmentSource() {\n return fragmentSource[this.getCacheKey()];\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0;\n let r, g, b, a, dstOff, scx, scy, srcOff, wt, x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n } else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Convolute.mjs","sources":["../../../src/filters/Convolute.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/convolute';\n\nexport type ConvoluteOwnProps = {\n opaque: boolean;\n matrix: number[];\n};\n\nexport const convoluteDefaultValues: ConvoluteOwnProps = {\n opaque: false,\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n};\n\n/**\n * Adapted from <a href=\"http://www.html5rocks.com/en/tutorials/canvas/imagefilters/\">html5rocks article</a>\n * @example <caption>Sharpen filter</caption>\n * const filter = new Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Blur filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter</caption>\n * const filter = new Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example <caption>Emboss filter with opaqueness</caption>\n * const filter = new Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Convolute extends BaseFilter<'Convolute', ConvoluteOwnProps> {\n /*\n * Opaque value (true/false)\n */\n declare opaque: ConvoluteOwnProps['opaque'];\n\n /*\n * matrix for the filter, max 9x9\n */\n declare matrix: ConvoluteOwnProps['matrix'];\n\n static type = 'Convolute';\n\n static defaults = convoluteDefaultValues;\n\n static uniformLocations = ['uMatrix', 'uOpaque', 'uHalfSize', 'uSize'];\n\n getCacheKey() {\n return `${this.type}_${Math.sqrt(this.matrix.length)}_${\n this.opaque ? 1 : 0\n }` as keyof typeof fragmentSource;\n }\n\n getFragmentSource() {\n return fragmentSource[this.getCacheKey()];\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d(options: T2DPipelineState) {\n const imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0;\n let r, g, b, a, dstOff, scx, scy, srcOff, wt, x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0;\n g = 0;\n b = 0;\n a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n } else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1fv(uniformLocations.uMatrix, this.matrix);\n }\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject() {\n return {\n ...super.toObject(),\n opaque: this.opaque,\n matrix: [...this.matrix],\n };\n }\n}\n\nclassRegistry.setClass(Convolute);\n"],"names":["convoluteDefaultValues","opaque","matrix","Convolute","BaseFilter","getCacheKey","concat","type","Math","sqrt","length","getFragmentSource","fragmentSource","applyTo2d","options","imageData","data","weights","side","round","halfSide","floor","sw","width","sh","height","output","ctx","createImageData","dst","alphaFac","r","g","b","a","dstOff","scx","scy","srcOff","wt","x","y","cx","cy","sendUniformData","gl","uniformLocations","uniform1fv","uMatrix","toObject","_objectSpread","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGLProbe.min.mjs","sources":["../../../../src/filters/GLProbes/WebGLProbe.ts"],"sourcesContent":["import { log } from '../../util/internals/console';\nimport { GLProbe } from './GLProbe';\nimport type { GLPrecision } from './GLProbe';\n\n/**\n * Lazy initialize WebGL constants\n */\nexport class WebGLProbe extends GLProbe {\n declare maxTextureSize?: number;\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {GLPrecision} Precision to test can be any of following\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n private testPrecision(\n gl: WebGLRenderingContext,\n precision: GLPrecision
|
|
1
|
+
{"version":3,"file":"WebGLProbe.min.mjs","sources":["../../../../src/filters/GLProbes/WebGLProbe.ts"],"sourcesContent":["import { log } from '../../util/internals/console';\nimport { GLProbe } from './GLProbe';\nimport type { GLPrecision } from './GLProbe';\n\n/**\n * Lazy initialize WebGL constants\n */\nexport class WebGLProbe extends GLProbe {\n declare maxTextureSize?: number;\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {GLPrecision} Precision to test can be any of following\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n private testPrecision(\n gl: WebGLRenderingContext,\n precision: GLPrecision,\n ): boolean {\n const fragmentSource = `precision ${precision} float;\\nvoid main(){}`;\n const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n if (!fragmentShader) {\n return false;\n }\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n return !!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS);\n }\n\n /**\n * query browser for WebGL\n */\n queryWebGL(canvas: HTMLCanvasElement) {\n const gl = canvas.getContext('webgl');\n if (gl) {\n this.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n this.GLPrecision = (['highp', 'mediump', 'lowp'] as const).find(\n (precision) => this.testPrecision(gl, precision),\n );\n gl.getExtension('WEBGL_lose_context')!.loseContext();\n log('log', `WebGL: max texture size ${this.maxTextureSize}`);\n }\n }\n\n isSupported(textureSize: number) {\n return !!this.maxTextureSize && this.maxTextureSize >= textureSize;\n }\n}\n"],"names":["WebGLProbe","GLProbe","testPrecision","gl","precision","fragmentSource","concat","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","queryWebGL","canvas","getContext","this","maxTextureSize","getParameter","MAX_TEXTURE_SIZE","GLPrecision","find","getExtension","loseContext","log","isSupported","textureSize"],"mappings":"uGAOO,MAAMA,UAAmBC,EAStBC,aAAAA,CACNC,EACAC,GAEA,MAAMC,EAAc,aAAAC,OAAgBF,EAAiC,0BAC/DG,EAAiBJ,EAAGK,aAAaL,EAAGM,iBAC1C,QAAKF,IAGLJ,EAAGO,aAAaH,EAAgBF,GAChCF,EAAGQ,cAAcJ,KACRJ,EAAGS,mBAAmBL,EAAgBJ,EAAGU,gBACpD,CAKAC,UAAAA,CAAWC,GACT,MAAMZ,EAAKY,EAAOC,WAAW,SACzBb,IACFc,KAAKC,eAAiBf,EAAGgB,aAAahB,EAAGiB,kBACzCH,KAAKI,YAAe,CAAC,QAAS,UAAW,QAAkBC,MACxDlB,GAAca,KAAKf,cAAcC,EAAIC,KAExCD,EAAGoB,aAAa,sBAAuBC,cACvCC,EAAI,MAAKnB,2BAAAA,OAA6BW,KAAKC,iBAE/C,CAEAQ,WAAAA,CAAYC,GACV,QAASV,KAAKC,gBAAkBD,KAAKC,gBAAkBS,CACzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGLProbe.mjs","sources":["../../../../src/filters/GLProbes/WebGLProbe.ts"],"sourcesContent":["import { log } from '../../util/internals/console';\nimport { GLProbe } from './GLProbe';\nimport type { GLPrecision } from './GLProbe';\n\n/**\n * Lazy initialize WebGL constants\n */\nexport class WebGLProbe extends GLProbe {\n declare maxTextureSize?: number;\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {GLPrecision} Precision to test can be any of following\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n private testPrecision(\n gl: WebGLRenderingContext,\n precision: GLPrecision
|
|
1
|
+
{"version":3,"file":"WebGLProbe.mjs","sources":["../../../../src/filters/GLProbes/WebGLProbe.ts"],"sourcesContent":["import { log } from '../../util/internals/console';\nimport { GLProbe } from './GLProbe';\nimport type { GLPrecision } from './GLProbe';\n\n/**\n * Lazy initialize WebGL constants\n */\nexport class WebGLProbe extends GLProbe {\n declare maxTextureSize?: number;\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {GLPrecision} Precision to test can be any of following\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n private testPrecision(\n gl: WebGLRenderingContext,\n precision: GLPrecision,\n ): boolean {\n const fragmentSource = `precision ${precision} float;\\nvoid main(){}`;\n const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n if (!fragmentShader) {\n return false;\n }\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n return !!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS);\n }\n\n /**\n * query browser for WebGL\n */\n queryWebGL(canvas: HTMLCanvasElement) {\n const gl = canvas.getContext('webgl');\n if (gl) {\n this.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n this.GLPrecision = (['highp', 'mediump', 'lowp'] as const).find(\n (precision) => this.testPrecision(gl, precision),\n );\n gl.getExtension('WEBGL_lose_context')!.loseContext();\n log('log', `WebGL: max texture size ${this.maxTextureSize}`);\n }\n }\n\n isSupported(textureSize: number) {\n return !!this.maxTextureSize && this.maxTextureSize >= textureSize;\n }\n}\n"],"names":["WebGLProbe","GLProbe","testPrecision","gl","precision","fragmentSource","concat","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","queryWebGL","canvas","getContext","maxTextureSize","getParameter","MAX_TEXTURE_SIZE","GLPrecision","find","getExtension","loseContext","log","isSupported","textureSize"],"mappings":";;;AAIA;AACA;AACA;AACO,MAAMA,UAAU,SAASC,OAAO,CAAC;AAGtC;AACF;AACA;AACA;AACA;AACA;AACUC,EAAAA,aAAaA,CACnBC,EAAyB,EACzBC,SAAsB,EACb;AACT,IAAA,MAAMC,cAAc,GAAA,YAAA,CAAAC,MAAA,CAAgBF,SAAS,EAAwB,wBAAA,CAAA,CAAA;IACrE,MAAMG,cAAc,GAAGJ,EAAE,CAACK,YAAY,CAACL,EAAE,CAACM,eAAe,CAAC,CAAA;IAC1D,IAAI,CAACF,cAAc,EAAE;AACnB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACAJ,IAAAA,EAAE,CAACO,YAAY,CAACH,cAAc,EAAEF,cAAc,CAAC,CAAA;AAC/CF,IAAAA,EAAE,CAACQ,aAAa,CAACJ,cAAc,CAAC,CAAA;IAChC,OAAO,CAAC,CAACJ,EAAE,CAACS,kBAAkB,CAACL,cAAc,EAAEJ,EAAE,CAACU,cAAc,CAAC,CAAA;AACnE,GAAA;;AAEA;AACF;AACA;EACEC,UAAUA,CAACC,MAAyB,EAAE;AACpC,IAAA,MAAMZ,EAAE,GAAGY,MAAM,CAACC,UAAU,CAAC,OAAO,CAAC,CAAA;AACrC,IAAA,IAAIb,EAAE,EAAE;MACN,IAAI,CAACc,cAAc,GAAGd,EAAE,CAACe,YAAY,CAACf,EAAE,CAACgB,gBAAgB,CAAC,CAAA;MAC1D,IAAI,CAACC,WAAW,GAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAWC,IAAI,CAC5DjB,SAAS,IAAK,IAAI,CAACF,aAAa,CAACC,EAAE,EAAEC,SAAS,CACjD,CAAC,CAAA;MACDD,EAAE,CAACmB,YAAY,CAAC,oBAAoB,CAAC,CAAEC,WAAW,EAAE,CAAA;MACpDC,GAAG,CAAC,KAAK,EAAAlB,0BAAAA,CAAAA,MAAA,CAA6B,IAAI,CAACW,cAAc,CAAE,CAAC,CAAA;AAC9D,KAAA;AACF,GAAA;EAEAQ,WAAWA,CAACC,WAAmB,EAAE;IAC/B,OAAO,CAAC,CAAC,IAAI,CAACT,cAAc,IAAI,IAAI,CAACA,cAAc,IAAIS,WAAW,CAAA;AACpE,GAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gamma.min.mjs","sources":["../../../src/filters/Gamma.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/gamma';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\n\nconst GAMMA = 'Gamma' as const;\n\nexport type GammaInput = [number, number, number];\n\nexport type GammaOwnProps = {\n gamma: GammaInput;\n};\n\nexport const gammaDefaultValues: GammaOwnProps = {\n gamma: [1, 1, 1],\n};\n\n/**\n * Gamma filter class\n * @example\n * const filter = new Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Gamma extends BaseFilter<typeof GAMMA, GammaOwnProps> {\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n declare gamma: GammaOwnProps['gamma'];\n declare rgbValues?: {\n r: Uint8Array;\n g: Uint8Array;\n b: Uint8Array;\n };\n\n static type = GAMMA;\n\n static defaults = gammaDefaultValues;\n\n static uniformLocations = ['uGamma'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n constructor(options: { gamma?: GammaInput } = {}) {\n super(options);\n this.gamma =\n options.gamma ||\n ((\n this.constructor as typeof Gamma\n ).defaults.gamma.concat() as GammaInput);\n }\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const gamma = this.gamma,\n rInv = 1 / gamma[0],\n gInv = 1 / gamma[1],\n bInv = 1 / gamma[2];\n\n if (!this.rgbValues) {\n this.rgbValues = {\n r: new Uint8Array(256),\n g: new Uint8Array(256),\n b: new Uint8Array(256),\n };\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n const rgb = this.rgbValues;\n for (let i = 0; i < 256; i++) {\n rgb.r[i] = Math.pow(i / 255, rInv) * 255;\n rgb.g[i] = Math.pow(i / 255, gInv) * 255;\n rgb.b[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (let i = 0; i < data.length; i += 4) {\n data[i] = rgb.r[data[i]];\n data[i + 1] = rgb.g[data[i + 1]];\n data[i + 2] = rgb.b[data[i + 2]];\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Gamma.min.mjs","sources":["../../../src/filters/Gamma.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/gamma';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\n\nconst GAMMA = 'Gamma' as const;\n\nexport type GammaInput = [number, number, number];\n\nexport type GammaOwnProps = {\n gamma: GammaInput;\n};\n\nexport const gammaDefaultValues: GammaOwnProps = {\n gamma: [1, 1, 1],\n};\n\n/**\n * Gamma filter class\n * @example\n * const filter = new Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Gamma extends BaseFilter<typeof GAMMA, GammaOwnProps> {\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n declare gamma: GammaOwnProps['gamma'];\n declare rgbValues?: {\n r: Uint8Array;\n g: Uint8Array;\n b: Uint8Array;\n };\n\n static type = GAMMA;\n\n static defaults = gammaDefaultValues;\n\n static uniformLocations = ['uGamma'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n constructor(options: { gamma?: GammaInput } = {}) {\n super(options);\n this.gamma =\n options.gamma ||\n ((\n this.constructor as typeof Gamma\n ).defaults.gamma.concat() as GammaInput);\n }\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const gamma = this.gamma,\n rInv = 1 / gamma[0],\n gInv = 1 / gamma[1],\n bInv = 1 / gamma[2];\n\n if (!this.rgbValues) {\n this.rgbValues = {\n r: new Uint8Array(256),\n g: new Uint8Array(256),\n b: new Uint8Array(256),\n };\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n const rgb = this.rgbValues;\n for (let i = 0; i < 256; i++) {\n rgb.r[i] = Math.pow(i / 255, rInv) * 255;\n rgb.g[i] = Math.pow(i / 255, gInv) * 255;\n rgb.b[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (let i = 0; i < data.length; i += 4) {\n data[i] = rgb.r[data[i]];\n data[i + 1] = rgb.g[data[i + 1]];\n data[i + 2] = rgb.b[data[i + 2]];\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\n }\n\n isNeutralState() {\n const { gamma } = this;\n return gamma[0] === 1 && gamma[1] === 1 && gamma[2] === 1;\n }\n\n toObject(): { type: typeof GAMMA; gamma: GammaInput } {\n return {\n type: GAMMA,\n gamma: this.gamma.concat() as GammaInput,\n };\n }\n}\n\nclassRegistry.setClass(Gamma);\n"],"names":["GAMMA","gammaDefaultValues","gamma","Gamma","BaseFilter","getFragmentSource","fragmentSource","constructor","options","arguments","length","undefined","super","this","defaults","concat","applyTo2d","_ref","imageData","data","rInv","gInv","bInv","rgbValues","r","Uint8Array","g","b","rgb","i","Math","pow","sendUniformData","gl","uniformLocations","uniform3fv","uGamma","isNeutralState","toObject","type","_defineProperty","classRegistry","setClass"],"mappings":"sPAKA,MAAMA,EAAQ,QAQDC,EAAoC,CAC/CC,MAAO,CAAC,EAAG,EAAG,IAYT,MAAMC,UAAcC,EAmBzBC,iBAAAA,GACE,OAAOC,CACT,CAEAC,WAAAA,GAAkD,IAAtCC,EAA+BC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC5CG,MAAMJ,GACNK,KAAKX,MACHM,EAAQN,OAENW,KAAKN,YACLO,SAASZ,MAAMa,QACrB,CAQAC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,MAAMf,EAAQW,KAAKX,MACjBkB,EAAO,EAAIlB,EAAM,GACjBmB,EAAO,EAAInB,EAAM,GACjBoB,EAAO,EAAIpB,EAAM,GAEdW,KAAKU,YACRV,KAAKU,UAAY,CACfC,EAAG,IAAIC,WAAW,KAClBC,EAAG,IAAID,WAAW,KAClBE,EAAG,IAAIF,WAAW,OAMtB,MAAMG,EAAMf,KAAKU,UACjB,IAAK,IAAIM,EAAI,EAAGA,EAAI,IAAKA,IACvBD,EAAIJ,EAAEK,GAA+B,IAA1BC,KAAKC,IAAIF,EAAI,IAAKT,GAC7BQ,EAAIF,EAAEG,GAA+B,IAA1BC,KAAKC,IAAIF,EAAI,IAAKR,GAC7BO,EAAID,EAAEE,GAA+B,IAA1BC,KAAKC,IAAIF,EAAI,IAAKP,GAE/B,IAAK,IAAIO,EAAI,EAAGA,EAAIV,EAAKT,OAAQmB,GAAK,EACpCV,EAAKU,GAAKD,EAAIJ,EAAEL,EAAKU,IACrBV,EAAKU,EAAI,GAAKD,EAAIF,EAAEP,EAAKU,EAAI,IAC7BV,EAAKU,EAAI,GAAKD,EAAID,EAAER,EAAKU,EAAI,GAEjC,CAQAG,eAAAA,CACEC,EACAC,GAEAD,EAAGE,WAAWD,EAAiBE,OAAQvB,KAAKX,MAC9C,CAEAmC,cAAAA,GACE,MAAMnC,MAAEA,GAAUW,KAClB,OAAoB,IAAbX,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,EACnD,CAEAoC,QAAAA,GACE,MAAO,CACLC,KAAMvC,EACNE,MAAOW,KAAKX,MAAMa,SAEtB,EAzFAyB,EADWrC,EAAK,OAaFH,GAAKwC,EAbRrC,EAAK,WAeEF,GAAkBuC,EAfzBrC,EAiBe,mBAAA,CAAC,WA4E7BsC,EAAcC,SAASvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gamma.mjs","sources":["../../../src/filters/Gamma.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/gamma';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\n\nconst GAMMA = 'Gamma' as const;\n\nexport type GammaInput = [number, number, number];\n\nexport type GammaOwnProps = {\n gamma: GammaInput;\n};\n\nexport const gammaDefaultValues: GammaOwnProps = {\n gamma: [1, 1, 1],\n};\n\n/**\n * Gamma filter class\n * @example\n * const filter = new Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Gamma extends BaseFilter<typeof GAMMA, GammaOwnProps> {\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n declare gamma: GammaOwnProps['gamma'];\n declare rgbValues?: {\n r: Uint8Array;\n g: Uint8Array;\n b: Uint8Array;\n };\n\n static type = GAMMA;\n\n static defaults = gammaDefaultValues;\n\n static uniformLocations = ['uGamma'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n constructor(options: { gamma?: GammaInput } = {}) {\n super(options);\n this.gamma =\n options.gamma ||\n ((\n this.constructor as typeof Gamma\n ).defaults.gamma.concat() as GammaInput);\n }\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const gamma = this.gamma,\n rInv = 1 / gamma[0],\n gInv = 1 / gamma[1],\n bInv = 1 / gamma[2];\n\n if (!this.rgbValues) {\n this.rgbValues = {\n r: new Uint8Array(256),\n g: new Uint8Array(256),\n b: new Uint8Array(256),\n };\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n const rgb = this.rgbValues;\n for (let i = 0; i < 256; i++) {\n rgb.r[i] = Math.pow(i / 255, rInv) * 255;\n rgb.g[i] = Math.pow(i / 255, gInv) * 255;\n rgb.b[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (let i = 0; i < data.length; i += 4) {\n data[i] = rgb.r[data[i]];\n data[i + 1] = rgb.g[data[i + 1]];\n data[i + 2] = rgb.b[data[i + 2]];\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Gamma.mjs","sources":["../../../src/filters/Gamma.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/gamma';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\n\nconst GAMMA = 'Gamma' as const;\n\nexport type GammaInput = [number, number, number];\n\nexport type GammaOwnProps = {\n gamma: GammaInput;\n};\n\nexport const gammaDefaultValues: GammaOwnProps = {\n gamma: [1, 1, 1],\n};\n\n/**\n * Gamma filter class\n * @example\n * const filter = new Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Gamma extends BaseFilter<typeof GAMMA, GammaOwnProps> {\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n declare gamma: GammaOwnProps['gamma'];\n declare rgbValues?: {\n r: Uint8Array;\n g: Uint8Array;\n b: Uint8Array;\n };\n\n static type = GAMMA;\n\n static defaults = gammaDefaultValues;\n\n static uniformLocations = ['uGamma'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n constructor(options: { gamma?: GammaInput } = {}) {\n super(options);\n this.gamma =\n options.gamma ||\n ((\n this.constructor as typeof Gamma\n ).defaults.gamma.concat() as GammaInput);\n }\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const gamma = this.gamma,\n rInv = 1 / gamma[0],\n gInv = 1 / gamma[1],\n bInv = 1 / gamma[2];\n\n if (!this.rgbValues) {\n this.rgbValues = {\n r: new Uint8Array(256),\n g: new Uint8Array(256),\n b: new Uint8Array(256),\n };\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n const rgb = this.rgbValues;\n for (let i = 0; i < 256; i++) {\n rgb.r[i] = Math.pow(i / 255, rInv) * 255;\n rgb.g[i] = Math.pow(i / 255, gInv) * 255;\n rgb.b[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (let i = 0; i < data.length; i += 4) {\n data[i] = rgb.r[data[i]];\n data[i + 1] = rgb.g[data[i + 1]];\n data[i + 2] = rgb.b[data[i + 2]];\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\n }\n\n isNeutralState() {\n const { gamma } = this;\n return gamma[0] === 1 && gamma[1] === 1 && gamma[2] === 1;\n }\n\n toObject(): { type: typeof GAMMA; gamma: GammaInput } {\n return {\n type: GAMMA,\n gamma: this.gamma.concat() as GammaInput,\n };\n }\n}\n\nclassRegistry.setClass(Gamma);\n"],"names":["GAMMA","gammaDefaultValues","gamma","Gamma","BaseFilter","getFragmentSource","fragmentSource","constructor","options","arguments","length","undefined","defaults","concat","applyTo2d","_ref","imageData","data","rInv","gInv","bInv","rgbValues","r","Uint8Array","g","b","rgb","i","Math","pow","sendUniformData","gl","uniformLocations","uniform3fv","uGamma","isNeutralState","toObject","type","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grayscale.min.mjs","sources":["../../../src/filters/Grayscale.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/grayscale';\n\nexport type TGrayscaleMode = 'average' | 'lightness' | 'luminosity';\n\ntype GrayscaleOwnProps = {\n mode: TGrayscaleMode;\n};\n\nexport const grayscaleDefaultValues: GrayscaleOwnProps = {\n mode: 'average',\n};\n\n/**\n * Grayscale image filter class\n * @example\n * const filter = new Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Grayscale extends BaseFilter<'Grayscale', GrayscaleOwnProps> {\n declare mode: TGrayscaleMode;\n\n static type = 'Grayscale';\n\n static defaults = grayscaleDefaultValues;\n\n static uniformLocations = ['uMode'];\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0, value: number; i < data.length; i += 4) {\n switch (this.mode) {\n case 'average':\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n break;\n case 'lightness':\n value =\n (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) /\n 2;\n break;\n case 'luminosity':\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n break;\n }\n\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n }\n\n getCacheKey() {\n return `${this.type}_${this.mode}`;\n }\n\n getFragmentSource() {\n return fragmentSource[this.mode];\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Grayscale.min.mjs","sources":["../../../src/filters/Grayscale.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/grayscale';\n\nexport type TGrayscaleMode = 'average' | 'lightness' | 'luminosity';\n\ntype GrayscaleOwnProps = {\n mode: TGrayscaleMode;\n};\n\nexport const grayscaleDefaultValues: GrayscaleOwnProps = {\n mode: 'average',\n};\n\n/**\n * Grayscale image filter class\n * @example\n * const filter = new Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Grayscale extends BaseFilter<'Grayscale', GrayscaleOwnProps> {\n declare mode: TGrayscaleMode;\n\n static type = 'Grayscale';\n\n static defaults = grayscaleDefaultValues;\n\n static uniformLocations = ['uMode'];\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0, value: number; i < data.length; i += 4) {\n switch (this.mode) {\n case 'average':\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n break;\n case 'lightness':\n value =\n (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) /\n 2;\n break;\n case 'luminosity':\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n break;\n }\n\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n }\n\n getCacheKey() {\n return `${this.type}_${this.mode}`;\n }\n\n getFragmentSource() {\n return fragmentSource[this.mode];\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n const mode = 1;\n gl.uniform1i(uniformLocations.uMode, mode);\n }\n\n /**\n * Grayscale filter isNeutralState implementation\n * The filter is never neutral\n * on the image\n **/\n isNeutralState() {\n return false;\n }\n}\n\nclassRegistry.setClass(Grayscale);\n"],"names":["grayscaleDefaultValues","mode","Grayscale","BaseFilter","applyTo2d","_ref","imageData","data","value","i","length","this","Math","min","max","getCacheKey","concat","type","getFragmentSource","fragmentSource","sendUniformData","gl","uniformLocations","uniform1i","uMode","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":"0PAWO,MAAMA,EAA4C,CACvDC,KAAM,WAUD,MAAMC,UAAkBC,EAe7BC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,IAAK,IAAWG,EAAPC,EAAI,EAAkBA,EAAIF,EAAKG,OAAQD,GAAK,EAAG,CACtD,OAAQE,KAAKV,MACX,IAAK,UACHO,GAASD,EAAKE,GAAKF,EAAKE,EAAI,GAAKF,EAAKE,EAAI,IAAM,EAChD,MACF,IAAK,YACHD,GACGI,KAAKC,IAAIN,EAAKE,GAAIF,EAAKE,EAAI,GAAIF,EAAKE,EAAI,IACvCG,KAAKE,IAAIP,EAAKE,GAAIF,EAAKE,EAAI,GAAIF,EAAKE,EAAI,KAC1C,EACF,MACF,IAAK,aACHD,EAAQ,IAAOD,EAAKE,GAAK,IAAOF,EAAKE,EAAI,GAAK,IAAOF,EAAKE,EAAI,GAIlEF,EAAKE,GAAKD,EACVD,EAAKE,EAAI,GAAKD,EACdD,EAAKE,EAAI,GAAKD,CAChB,CACF,CAEAO,WAAAA,GACE,MAAAC,GAAAA,OAAUL,KAAKM,UAAID,OAAIL,KAAKV,KAC9B,CAEAiB,iBAAAA,GACE,OAAOC,EAAeR,KAAKV,KAC7B,CAQAmB,eAAAA,CACEC,EACAC,GAGAD,EAAGE,UAAUD,EAAiBE,MADjB,EAEf,CAOAC,cAAAA,GACE,OAAO,CACT,EACDC,EApEYxB,EAAS,OAGN,aAAWwB,EAHdxB,EAAS,WAKFF,GAAsB0B,EAL7BxB,EAOe,mBAAA,CAAC,UA+D7ByB,EAAcC,SAAS1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grayscale.mjs","sources":["../../../src/filters/Grayscale.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/grayscale';\n\nexport type TGrayscaleMode = 'average' | 'lightness' | 'luminosity';\n\ntype GrayscaleOwnProps = {\n mode: TGrayscaleMode;\n};\n\nexport const grayscaleDefaultValues: GrayscaleOwnProps = {\n mode: 'average',\n};\n\n/**\n * Grayscale image filter class\n * @example\n * const filter = new Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Grayscale extends BaseFilter<'Grayscale', GrayscaleOwnProps> {\n declare mode: TGrayscaleMode;\n\n static type = 'Grayscale';\n\n static defaults = grayscaleDefaultValues;\n\n static uniformLocations = ['uMode'];\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0, value: number; i < data.length; i += 4) {\n switch (this.mode) {\n case 'average':\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n break;\n case 'lightness':\n value =\n (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) /\n 2;\n break;\n case 'luminosity':\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n break;\n }\n\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n }\n\n getCacheKey() {\n return `${this.type}_${this.mode}`;\n }\n\n getFragmentSource() {\n return fragmentSource[this.mode];\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Grayscale.mjs","sources":["../../../src/filters/Grayscale.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/grayscale';\n\nexport type TGrayscaleMode = 'average' | 'lightness' | 'luminosity';\n\ntype GrayscaleOwnProps = {\n mode: TGrayscaleMode;\n};\n\nexport const grayscaleDefaultValues: GrayscaleOwnProps = {\n mode: 'average',\n};\n\n/**\n * Grayscale image filter class\n * @example\n * const filter = new Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\nexport class Grayscale extends BaseFilter<'Grayscale', GrayscaleOwnProps> {\n declare mode: TGrayscaleMode;\n\n static type = 'Grayscale';\n\n static defaults = grayscaleDefaultValues;\n\n static uniformLocations = ['uMode'];\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0, value: number; i < data.length; i += 4) {\n switch (this.mode) {\n case 'average':\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n break;\n case 'lightness':\n value =\n (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) /\n 2;\n break;\n case 'luminosity':\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n break;\n }\n\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n }\n\n getCacheKey() {\n return `${this.type}_${this.mode}`;\n }\n\n getFragmentSource() {\n return fragmentSource[this.mode];\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n const mode = 1;\n gl.uniform1i(uniformLocations.uMode, mode);\n }\n\n /**\n * Grayscale filter isNeutralState implementation\n * The filter is never neutral\n * on the image\n **/\n isNeutralState() {\n return false;\n }\n}\n\nclassRegistry.setClass(Grayscale);\n"],"names":["grayscaleDefaultValues","mode","Grayscale","BaseFilter","applyTo2d","_ref","imageData","data","i","value","length","Math","min","max","getCacheKey","concat","type","getFragmentSource","fragmentSource","sendUniformData","gl","uniformLocations","uniform1i","uMode","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invert.min.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Invert.min.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1i(uniformLocations.uInvert, Number(this.invert));\n gl.uniform1i(uniformLocations.uAlpha, Number(this.alpha));\n }\n}\n\nclassRegistry.setClass(Invert);\n"],"names":["invertDefaultValues","alpha","invert","Invert","BaseFilter","applyTo2d","_ref","imageData","data","i","length","this","getFragmentSource","fragmentSource","isNeutralState","sendUniformData","gl","uniformLocations","uniform1i","uInvert","Number","uAlpha","_defineProperty","classRegistry","setClass"],"mappings":"uPAUO,MAAMA,EAAsC,CACjDC,OAAO,EACPC,QAAQ,GASH,MAAMC,UAAeC,EA2B1BC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,IAAK,IAAIG,EAAI,EAAGA,EAAID,EAAKE,OAAQD,GAAK,EACpCD,EAAKC,GAAK,IAAMD,EAAKC,GACrBD,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAC7BD,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAEzBE,KAAKV,QACPO,EAAKC,EAAI,GAAK,IAAMD,EAAKC,EAAI,GAGnC,CAEUG,iBAAAA,GACR,OAAOC,CACT,CAQAC,cAAAA,GACE,OAAQH,KAAKT,MACf,CAQAa,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,QAASC,OAAOT,KAAKT,SACnDc,EAAGE,UAAUD,EAAiBI,OAAQD,OAAOT,KAAKV,OACpD,EAzDAqB,EARWnB,EAAM,OAeH,UAAQmB,EAfXnB,EAAM,WAiBCH,GAAmBsB,EAjB1BnB,EAAM,mBAmBS,CAAC,UAAW,WAiDxCoB,EAAcC,SAASrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invert.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Invert.mjs","sources":["../../../src/filters/Invert.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/invert';\n\nexport type InvertOwnProps = {\n alpha: boolean;\n invert: boolean;\n};\n\nexport const invertDefaultValues: InvertOwnProps = {\n alpha: false,\n invert: true,\n};\n\n/**\n * @example\n * const filter = new Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\nexport class Invert extends BaseFilter<'Invert', InvertOwnProps> {\n /**\n * Invert also alpha.\n * @param {Boolean} alpha\n * @default\n **/\n declare alpha: InvertOwnProps['alpha'];\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n declare invert: InvertOwnProps['invert'];\n\n static type = 'Invert';\n\n static defaults = invertDefaultValues;\n\n static uniformLocations = ['uInvert', 'uAlpha'];\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n for (let i = 0; i < data.length; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n\n if (this.alpha) {\n data[i + 3] = 255 - data[i + 3];\n }\n }\n }\n\n protected getFragmentSource(): string {\n return fragmentSource;\n }\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState() {\n return !this.invert;\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1i(uniformLocations.uInvert, Number(this.invert));\n gl.uniform1i(uniformLocations.uAlpha, Number(this.alpha));\n }\n}\n\nclassRegistry.setClass(Invert);\n"],"names":["invertDefaultValues","alpha","invert","Invert","BaseFilter","applyTo2d","_ref","imageData","data","i","length","getFragmentSource","fragmentSource","isNeutralState","sendUniformData","gl","uniformLocations","uniform1i","uInvert","Number","uAlpha","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AAUO,MAAMA,mBAAmC,GAAG;AACjDC,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,MAAM,EAAE,IAAA;AACV,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAM,SAASC,UAAU,CAA2B;AAqB/D;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAAC,IAAA,EAA4C;IAAA,IAA3C;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,IAAAA;AAAK,OAAA;AAAoB,KAAC,GAAAF,IAAA,CAAA;AACjD,IAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvCD,IAAI,CAACC,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,CAAC,CAAA;AACvBD,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC/BD,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;MAE/B,IAAI,IAAI,CAACR,KAAK,EAAE;AACdO,QAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGD,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,CAAA;AACjC,OAAA;AACF,KAAA;AACF,GAAA;AAEUE,EAAAA,iBAAiBA,GAAW;AACpC,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,cAAcA,GAAG;IACf,OAAO,CAAC,IAAI,CAACX,MAAM,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEY,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;AACAD,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,OAAO,EAAEC,MAAM,CAAC,IAAI,CAACjB,MAAM,CAAC,CAAC,CAAA;AAC3Da,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACI,MAAM,EAAED,MAAM,CAAC,IAAI,CAAClB,KAAK,CAAC,CAAC,CAAA;AAC3D,GAAA;AACF,CAAA;AAjEE;AACF;AACA;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AAJEoB,eAAA,CARWlB,MAAM,EAAA,MAAA,EAeH,QAAQ,CAAA,CAAA;AAAAkB,eAAA,CAfXlB,MAAM,EAAA,UAAA,EAiBCH,mBAAmB,CAAA,CAAA;AAAAqB,eAAA,CAjB1BlB,MAAM,EAAA,kBAAA,EAmBS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA,CAAA;AAiDjDmB,aAAa,CAACC,QAAQ,CAACpB,MAAM,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noise.min.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Noise.min.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n }\n\n isNeutralState() {\n return this.noise === 0;\n }\n}\n\nclassRegistry.setClass(Noise);\n"],"names":["noiseDefaultValues","noise","Noise","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","this","i","length","rand","Math","random","sendUniformData","gl","uniformLocations","uniform1f","uNoise","uSeed","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":"sPASO,MAAMA,EAAoC,CAC/CC,MAAO,GAaF,MAAMC,UAAcC,EAczBC,iBAAAA,GACE,OAAOC,CACT,CAQAC,SAAAA,CAASC,GAA4C,IAAzCC,WAAWC,KAAEA,IAA0BF,EACjD,MAAMN,EAAQS,KAAKT,MACnB,IAAK,IAAIU,EAAI,EAAGA,EAAIF,EAAKG,OAAQD,GAAK,EAAG,CACvC,MAAME,GAAQ,GAAMC,KAAKC,UAAYd,EACrCQ,EAAKE,IAAME,EACXJ,EAAKE,EAAI,IAAME,EACfJ,EAAKE,EAAI,IAAME,CACjB,CACF,CAQAG,eAAAA,CACEC,EACAC,GAEAD,EAAGE,UAAUD,EAAiBE,OAAQV,KAAKT,MAAQ,KACnDgB,EAAGE,UAAUD,EAAiBG,MAAOP,KAAKC,SAC5C,CAEAO,cAAAA,GACE,OAAsB,IAAfZ,KAAKT,KACd,EAjDAsB,EADWrB,EAAK,OAQF,SAAOqB,EARVrB,EAAK,WAUEF,GAAkBuB,EAVzBrB,EAAK,mBAYU,CAAC,SAAU,UAyCvCsB,EAAcC,SAASvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noise.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap
|
|
1
|
+
{"version":3,"file":"Noise.mjs","sources":["../../../src/filters/Noise.ts"],"sourcesContent":["import { BaseFilter } from './BaseFilter';\nimport type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { fragmentSource } from './shaders/noise';\n\nexport type NoiseOwnProps = {\n noise: number;\n};\n\nexport const noiseDefaultValues: NoiseOwnProps = {\n noise: 0,\n};\n\n/**\n * Noise filter class\n * @example\n * const filter = new Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\nexport class Noise extends BaseFilter<'Noise', NoiseOwnProps> {\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n declare noise: NoiseOwnProps['noise'];\n\n static type = 'Noise';\n\n static defaults = noiseDefaultValues;\n\n static uniformLocations = ['uNoise', 'uSeed'];\n\n getFragmentSource() {\n return fragmentSource;\n }\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d({ imageData: { data } }: T2DPipelineState) {\n const noise = this.noise;\n for (let i = 0; i < data.length; i += 4) {\n const rand = (0.5 - Math.random()) * noise;\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n }\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData(\n gl: WebGLRenderingContext,\n uniformLocations: TWebGLUniformLocationMap,\n ) {\n gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n }\n\n isNeutralState() {\n return this.noise === 0;\n }\n}\n\nclassRegistry.setClass(Noise);\n"],"names":["noiseDefaultValues","noise","Noise","BaseFilter","getFragmentSource","fragmentSource","applyTo2d","_ref","imageData","data","i","length","rand","Math","random","sendUniformData","gl","uniformLocations","uniform1f","uNoise","uSeed","isNeutralState","_defineProperty","classRegistry","setClass"],"mappings":";;;;;AASO,MAAMA,kBAAiC,GAAG;AAC/CC,EAAAA,KAAK,EAAE,CAAA;AACT,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAK,SAASC,UAAU,CAAyB;AAc5DC,EAAAA,iBAAiBA,GAAG;AAClB,IAAA,OAAOC,cAAc,CAAA;AACvB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,SAASA,CAAAC,IAAA,EAA4C;IAAA,IAA3C;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,IAAAA;AAAK,OAAA;AAAoB,KAAC,GAAAF,IAAA,CAAA;AACjD,IAAA,MAAMN,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;AACxB,IAAA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACvC,MAAME,IAAI,GAAG,CAAC,GAAG,GAAGC,IAAI,CAACC,MAAM,EAAE,IAAIb,KAAK,CAAA;AAC1CQ,MAAAA,IAAI,CAACC,CAAC,CAAC,IAAIE,IAAI,CAAA;AACfH,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,IAAIE,IAAI,CAAA;AACnBH,MAAAA,IAAI,CAACC,CAAC,GAAG,CAAC,CAAC,IAAIE,IAAI,CAAA;AACrB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEG,EAAAA,eAAeA,CACbC,EAAyB,EACzBC,gBAA0C,EAC1C;AACAD,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACE,MAAM,EAAE,IAAI,CAAClB,KAAK,GAAG,GAAG,CAAC,CAAA;AACvDe,IAAAA,EAAE,CAACE,SAAS,CAACD,gBAAgB,CAACG,KAAK,EAAEP,IAAI,CAACC,MAAM,EAAE,CAAC,CAAA;AACrD,GAAA;AAEAO,EAAAA,cAAcA,GAAG;AACf,IAAA,OAAO,IAAI,CAACpB,KAAK,KAAK,CAAC,CAAA;AACzB,GAAA;AACF,CAAA;AAlDE;AACF;AACA;AACA;AACA;AAJEqB,eAAA,CADWpB,KAAK,EAAA,MAAA,EAQF,OAAO,CAAA,CAAA;AAAAoB,eAAA,CARVpB,KAAK,EAAA,UAAA,EAUEF,kBAAkB,CAAA,CAAA;AAAAsB,eAAA,CAVzBpB,KAAK,EAAA,kBAAA,EAYU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA,CAAA;AAyC/CqB,aAAa,CAACC,QAAQ,CAACtB,KAAK,CAAC;;;;"}
|