@nasser-sw/fabric 7.0.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +11 -0
- package/.babelrcAlt +19 -0
- package/.browserslistrc +8 -0
- package/.editorconfig +12 -0
- package/.gitattributes +2 -0
- package/.gitpod.yml +22 -0
- package/.prettierignore +22 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +1993 -0
- package/CODE_OF_CONDUCT.md +15 -0
- package/CONTRIBUTING.md +277 -0
- package/LICENSE +16 -0
- package/OVERLAY_EDITOR_MIGRATION.md +432 -0
- package/README.md +253 -0
- package/SECURITY.md +5 -0
- package/debug/konva/CHANGELOG.md +1474 -0
- package/debug/konva/LICENSE +22 -0
- package/debug/konva/README.md +205 -0
- package/debug/konva/gulpfile.mjs +110 -0
- package/debug/konva/package.json +139 -0
- package/debug/konva/release.sh +65 -0
- package/debug/konva/resources/doc-includes/ContainerParams.txt +6 -0
- package/debug/konva/resources/doc-includes/NodeParams.txt +20 -0
- package/debug/konva/resources/doc-includes/ShapeParams.txt +53 -0
- package/debug/konva/resources/jsdoc.conf.json +28 -0
- package/debug/konva/rollup.config.mjs +32 -0
- package/debug/konva/src/Animation.ts +237 -0
- package/debug/konva/src/BezierFunctions.ts +826 -0
- package/debug/konva/src/Canvas.ts +193 -0
- package/debug/konva/src/Container.ts +649 -0
- package/debug/konva/src/Context.ts +1017 -0
- package/debug/konva/src/Core.ts +5 -0
- package/debug/konva/src/DragAndDrop.ts +173 -0
- package/debug/konva/src/Factory.ts +246 -0
- package/debug/konva/src/FastLayer.ts +29 -0
- package/debug/konva/src/Global.ts +210 -0
- package/debug/konva/src/Group.ts +31 -0
- package/debug/konva/src/Layer.ts +546 -0
- package/debug/konva/src/Node.ts +3477 -0
- package/debug/konva/src/PointerEvents.ts +67 -0
- package/debug/konva/src/Shape.ts +2081 -0
- package/debug/konva/src/Stage.ts +1000 -0
- package/debug/konva/src/Tween.ts +811 -0
- package/debug/konva/src/Util.ts +1123 -0
- package/debug/konva/src/Validators.ts +210 -0
- package/debug/konva/src/_CoreInternals.ts +85 -0
- package/debug/konva/src/_FullInternals.ts +171 -0
- package/debug/konva/src/canvas-backend.ts +36 -0
- package/debug/konva/src/filters/Blur.ts +388 -0
- package/debug/konva/src/filters/Brighten.ts +48 -0
- package/debug/konva/src/filters/Brightness.ts +30 -0
- package/debug/konva/src/filters/Contrast.ts +75 -0
- package/debug/konva/src/filters/Emboss.ts +207 -0
- package/debug/konva/src/filters/Enhance.ts +154 -0
- package/debug/konva/src/filters/Grayscale.ts +25 -0
- package/debug/konva/src/filters/HSL.ts +108 -0
- package/debug/konva/src/filters/HSV.ts +106 -0
- package/debug/konva/src/filters/Invert.ts +23 -0
- package/debug/konva/src/filters/Kaleidoscope.ts +274 -0
- package/debug/konva/src/filters/Mask.ts +220 -0
- package/debug/konva/src/filters/Noise.ts +44 -0
- package/debug/konva/src/filters/Pixelate.ts +107 -0
- package/debug/konva/src/filters/Posterize.ts +46 -0
- package/debug/konva/src/filters/RGB.ts +82 -0
- package/debug/konva/src/filters/RGBA.ts +103 -0
- package/debug/konva/src/filters/Sepia.ts +27 -0
- package/debug/konva/src/filters/Solarize.ts +29 -0
- package/debug/konva/src/filters/Threshold.ts +44 -0
- package/debug/konva/src/index.ts +3 -0
- package/debug/konva/src/shapes/Arc.ts +176 -0
- package/debug/konva/src/shapes/Arrow.ts +231 -0
- package/debug/konva/src/shapes/Circle.ts +76 -0
- package/debug/konva/src/shapes/Ellipse.ts +121 -0
- package/debug/konva/src/shapes/Image.ts +319 -0
- package/debug/konva/src/shapes/Label.ts +386 -0
- package/debug/konva/src/shapes/Line.ts +364 -0
- package/debug/konva/src/shapes/Path.ts +1013 -0
- package/debug/konva/src/shapes/Rect.ts +79 -0
- package/debug/konva/src/shapes/RegularPolygon.ts +167 -0
- package/debug/konva/src/shapes/Ring.ts +94 -0
- package/debug/konva/src/shapes/Sprite.ts +370 -0
- package/debug/konva/src/shapes/Star.ts +125 -0
- package/debug/konva/src/shapes/Text.ts +1065 -0
- package/debug/konva/src/shapes/TextPath.ts +583 -0
- package/debug/konva/src/shapes/Transformer.ts +1889 -0
- package/debug/konva/src/shapes/Wedge.ts +129 -0
- package/debug/konva/src/skia-backend.ts +35 -0
- package/debug/konva/src/types.ts +84 -0
- package/debug/konva/tsconfig.json +31 -0
- package/debug/konva/tsconfig.test.json +7 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +2 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +1 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +25 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
- 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/data_updaters/gradient/index.d.ts +11 -0
- package/dist/extensions/data_updaters/gradient/index.d.ts.map +1 -0
- package/dist/extensions/data_updaters/origins/index.d.ts +21 -0
- package/dist/extensions/data_updaters/origins/index.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +4 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/fabric.d.ts +115 -0
- package/dist/fabric.d.ts.map +1 -0
- package/dist/fabric.min.mjs +2 -0
- package/dist/fabric.min.mjs.map +1 -0
- package/dist/fabric.mjs +60 -0
- package/dist/fabric.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30983 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/dist/index.min.mjs +2 -0
- package/dist/index.min.mjs.map +1 -0
- package/dist/index.mjs +30910 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +31067 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +20 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.mjs +31000 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/package.json.min.mjs +2 -0
- package/dist/package.json.min.mjs.map +1 -0
- package/dist/package.json.mjs +4 -0
- package/dist/package.json.mjs.map +1 -0
- package/dist/src/ClassRegistry.d.ts +14 -0
- package/dist/src/ClassRegistry.d.ts.map +1 -0
- package/dist/src/ClassRegistry.min.mjs +2 -0
- package/dist/src/ClassRegistry.min.mjs.map +1 -0
- package/dist/src/ClassRegistry.mjs +52 -0
- package/dist/src/ClassRegistry.mjs.map +1 -0
- package/dist/src/Collection.d.ts +141 -0
- package/dist/src/Collection.d.ts.map +1 -0
- package/dist/src/Collection.min.mjs +2 -0
- package/dist/src/Collection.min.mjs.map +1 -0
- package/dist/src/Collection.mjs +337 -0
- package/dist/src/Collection.mjs.map +1 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/CommonMethods.d.ts.map +1 -0
- package/dist/src/CommonMethods.min.mjs +2 -0
- package/dist/src/CommonMethods.min.mjs.map +1 -0
- package/dist/src/CommonMethods.mjs +65 -0
- package/dist/src/CommonMethods.mjs.map +1 -0
- package/dist/src/EventTypeDefs.d.ts +270 -0
- package/dist/src/EventTypeDefs.d.ts.map +1 -0
- package/dist/src/Intersection.d.ts +112 -0
- package/dist/src/Intersection.d.ts.map +1 -0
- package/dist/src/Intersection.min.mjs +2 -0
- package/dist/src/Intersection.min.mjs.map +1 -0
- package/dist/src/Intersection.mjs +257 -0
- package/dist/src/Intersection.mjs.map +1 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +22 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +1 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +2 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +1 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +50 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutManager.d.ts +56 -0
- package/dist/src/LayoutManager/LayoutManager.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutManager.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutManager.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutManager.mjs +266 -0
- package/dist/src/LayoutManager/LayoutManager.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +13 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +71 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +14 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +22 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +14 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +27 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +30 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +97 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +10 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +2 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +1 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +29 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +1 -0
- package/dist/src/LayoutManager/constants.d.ts +7 -0
- package/dist/src/LayoutManager/constants.d.ts.map +1 -0
- package/dist/src/LayoutManager/constants.min.mjs +2 -0
- package/dist/src/LayoutManager/constants.min.mjs.map +1 -0
- package/dist/src/LayoutManager/constants.mjs +9 -0
- package/dist/src/LayoutManager/constants.mjs.map +1 -0
- package/dist/src/LayoutManager/index.d.ts +7 -0
- package/dist/src/LayoutManager/index.d.ts.map +1 -0
- package/dist/src/LayoutManager/types.d.ts +106 -0
- package/dist/src/LayoutManager/types.d.ts.map +1 -0
- package/dist/src/Observable.d.ts +68 -0
- package/dist/src/Observable.d.ts.map +1 -0
- package/dist/src/Observable.min.mjs +2 -0
- package/dist/src/Observable.min.mjs.map +1 -0
- package/dist/src/Observable.mjs +159 -0
- package/dist/src/Observable.mjs.map +1 -0
- package/dist/src/Pattern/Pattern.d.ts +95 -0
- package/dist/src/Pattern/Pattern.d.ts.map +1 -0
- package/dist/src/Pattern/Pattern.min.mjs +2 -0
- package/dist/src/Pattern/Pattern.min.mjs.map +1 -0
- package/dist/src/Pattern/Pattern.mjs +183 -0
- package/dist/src/Pattern/Pattern.mjs.map +1 -0
- package/dist/src/Pattern/index.d.ts +3 -0
- package/dist/src/Pattern/index.d.ts.map +1 -0
- package/dist/src/Pattern/types.d.ts +12 -0
- package/dist/src/Pattern/types.d.ts.map +1 -0
- package/dist/src/Point.d.ts +219 -0
- package/dist/src/Point.d.ts.map +1 -0
- package/dist/src/Point.min.mjs +2 -0
- package/dist/src/Point.min.mjs.map +1 -0
- package/dist/src/Point.mjs +358 -0
- package/dist/src/Point.mjs.map +1 -0
- package/dist/src/Shadow.d.ts +89 -0
- package/dist/src/Shadow.d.ts.map +1 -0
- package/dist/src/Shadow.min.mjs +2 -0
- package/dist/src/Shadow.min.mjs.map +1 -0
- package/dist/src/Shadow.mjs +162 -0
- package/dist/src/Shadow.mjs.map +1 -0
- package/dist/src/brushes/BaseBrush.d.ts +94 -0
- package/dist/src/brushes/BaseBrush.d.ts.map +1 -0
- package/dist/src/brushes/BaseBrush.min.mjs +2 -0
- package/dist/src/brushes/BaseBrush.min.mjs.map +1 -0
- package/dist/src/brushes/BaseBrush.mjs +131 -0
- package/dist/src/brushes/BaseBrush.mjs.map +1 -0
- package/dist/src/brushes/CircleBrush.d.ts +43 -0
- package/dist/src/brushes/CircleBrush.d.ts.map +1 -0
- package/dist/src/brushes/CircleBrush.min.mjs +2 -0
- package/dist/src/brushes/CircleBrush.min.mjs.map +1 -0
- package/dist/src/brushes/CircleBrush.mjs +138 -0
- package/dist/src/brushes/CircleBrush.mjs.map +1 -0
- package/dist/src/brushes/PatternBrush.d.ts +23 -0
- package/dist/src/brushes/PatternBrush.d.ts.map +1 -0
- package/dist/src/brushes/PatternBrush.min.mjs +2 -0
- package/dist/src/brushes/PatternBrush.min.mjs.map +1 -0
- package/dist/src/brushes/PatternBrush.mjs +59 -0
- package/dist/src/brushes/PatternBrush.mjs.map +1 -0
- package/dist/src/brushes/PencilBrush.d.ts +92 -0
- package/dist/src/brushes/PencilBrush.d.ts.map +1 -0
- package/dist/src/brushes/PencilBrush.min.mjs +2 -0
- package/dist/src/brushes/PencilBrush.min.mjs.map +1 -0
- package/dist/src/brushes/PencilBrush.mjs +293 -0
- package/dist/src/brushes/PencilBrush.mjs.map +1 -0
- package/dist/src/brushes/SprayBrush.d.ts +68 -0
- package/dist/src/brushes/SprayBrush.d.ts.map +1 -0
- package/dist/src/brushes/SprayBrush.min.mjs +2 -0
- package/dist/src/brushes/SprayBrush.min.mjs.map +1 -0
- package/dist/src/brushes/SprayBrush.mjs +179 -0
- package/dist/src/brushes/SprayBrush.mjs.map +1 -0
- package/dist/src/brushes/typedefs.d.ts +18 -0
- package/dist/src/brushes/typedefs.d.ts.map +1 -0
- package/dist/src/cache.d.ts +47 -0
- package/dist/src/cache.d.ts.map +1 -0
- package/dist/src/cache.min.mjs +2 -0
- package/dist/src/cache.min.mjs.map +1 -0
- package/dist/src/cache.mjs +80 -0
- package/dist/src/cache.mjs.map +1 -0
- package/dist/src/canvas/Canvas.d.ts +334 -0
- package/dist/src/canvas/Canvas.d.ts.map +1 -0
- package/dist/src/canvas/Canvas.min.mjs +2 -0
- package/dist/src/canvas/Canvas.min.mjs.map +1 -0
- package/dist/src/canvas/Canvas.mjs +1366 -0
- package/dist/src/canvas/Canvas.mjs.map +1 -0
- package/dist/src/canvas/CanvasOptions.d.ts +210 -0
- package/dist/src/canvas/CanvasOptions.d.ts.map +1 -0
- package/dist/src/canvas/CanvasOptions.min.mjs +2 -0
- package/dist/src/canvas/CanvasOptions.min.mjs.map +1 -0
- package/dist/src/canvas/CanvasOptions.mjs +32 -0
- package/dist/src/canvas/CanvasOptions.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +30 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +1 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +2 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +125 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +1 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +2 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +75 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/util.d.ts +23 -0
- package/dist/src/canvas/DOMManagers/util.d.ts.map +1 -0
- package/dist/src/canvas/DOMManagers/util.min.mjs +2 -0
- package/dist/src/canvas/DOMManagers/util.min.mjs.map +1 -0
- package/dist/src/canvas/DOMManagers/util.mjs +76 -0
- package/dist/src/canvas/DOMManagers/util.mjs.map +1 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +544 -0
- package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -0
- package/dist/src/canvas/SelectableCanvas.min.mjs +2 -0
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -0
- package/dist/src/canvas/SelectableCanvas.mjs +1196 -0
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -0
- package/dist/src/canvas/StaticCanvas.d.ts +596 -0
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -0
- package/dist/src/canvas/StaticCanvas.min.mjs +2 -0
- package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -0
- package/dist/src/canvas/StaticCanvas.mjs +1238 -0
- package/dist/src/canvas/StaticCanvas.mjs.map +1 -0
- package/dist/src/canvas/StaticCanvasOptions.d.ts +142 -0
- package/dist/src/canvas/StaticCanvasOptions.d.ts.map +1 -0
- package/dist/src/canvas/StaticCanvasOptions.min.mjs +2 -0
- package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +1 -0
- package/dist/src/canvas/StaticCanvasOptions.mjs +26 -0
- package/dist/src/canvas/StaticCanvasOptions.mjs.map +1 -0
- package/dist/src/canvas/TextEditingManager.d.ts +21 -0
- package/dist/src/canvas/TextEditingManager.d.ts.map +1 -0
- package/dist/src/canvas/TextEditingManager.min.mjs +2 -0
- package/dist/src/canvas/TextEditingManager.min.mjs.map +1 -0
- package/dist/src/canvas/TextEditingManager.mjs +61 -0
- package/dist/src/canvas/TextEditingManager.mjs.map +1 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +1 -0
- package/dist/src/color/Color.d.ts +146 -0
- package/dist/src/color/Color.d.ts.map +1 -0
- package/dist/src/color/Color.min.mjs +2 -0
- package/dist/src/color/Color.min.mjs.map +1 -0
- package/dist/src/color/Color.mjs +305 -0
- package/dist/src/color/Color.mjs.map +1 -0
- package/dist/src/color/color_map.d.ts +155 -0
- package/dist/src/color/color_map.d.ts.map +1 -0
- package/dist/src/color/color_map.min.mjs +2 -0
- package/dist/src/color/color_map.min.mjs.map +1 -0
- package/dist/src/color/color_map.mjs +157 -0
- package/dist/src/color/color_map.mjs.map +1 -0
- package/dist/src/color/constants.d.ts +111 -0
- package/dist/src/color/constants.d.ts.map +1 -0
- package/dist/src/color/constants.min.mjs +2 -0
- package/dist/src/color/constants.min.mjs.map +1 -0
- package/dist/src/color/constants.mjs +115 -0
- package/dist/src/color/constants.mjs.map +1 -0
- package/dist/src/color/typedefs.d.ts +16 -0
- package/dist/src/color/typedefs.d.ts.map +1 -0
- package/dist/src/color/util.d.ts +27 -0
- package/dist/src/color/util.d.ts.map +1 -0
- package/dist/src/color/util.min.mjs +2 -0
- package/dist/src/color/util.min.mjs.map +1 -0
- package/dist/src/color/util.mjs +82 -0
- package/dist/src/color/util.mjs.map +1 -0
- package/dist/src/config.d.ts +113 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.min.mjs +2 -0
- package/dist/src/config.min.mjs.map +1 -0
- package/dist/src/config.mjs +145 -0
- package/dist/src/config.mjs.map +1 -0
- package/dist/src/constants.d.ts +36 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.min.mjs +2 -0
- package/dist/src/constants.min.mjs.map +1 -0
- package/dist/src/constants.mjs +43 -0
- package/dist/src/constants.mjs.map +1 -0
- package/dist/src/controls/Control.d.ts +229 -0
- package/dist/src/controls/Control.d.ts.map +1 -0
- package/dist/src/controls/Control.min.mjs +2 -0
- package/dist/src/controls/Control.min.mjs.map +1 -0
- package/dist/src/controls/Control.mjs +286 -0
- package/dist/src/controls/Control.mjs.map +1 -0
- package/dist/src/controls/changeHeight.d.ts +13 -0
- package/dist/src/controls/changeHeight.d.ts.map +1 -0
- package/dist/src/controls/changeWidth.d.ts +13 -0
- package/dist/src/controls/changeWidth.d.ts.map +1 -0
- package/dist/src/controls/changeWidth.min.mjs +2 -0
- package/dist/src/controls/changeWidth.min.mjs.map +1 -0
- package/dist/src/controls/changeWidth.mjs +36 -0
- package/dist/src/controls/changeWidth.mjs.map +1 -0
- package/dist/src/controls/commonControls.d.ts +26 -0
- package/dist/src/controls/commonControls.d.ts.map +1 -0
- package/dist/src/controls/commonControls.min.mjs +2 -0
- package/dist/src/controls/commonControls.min.mjs.map +1 -0
- package/dist/src/controls/commonControls.mjs +103 -0
- package/dist/src/controls/commonControls.mjs.map +1 -0
- package/dist/src/controls/controlRendering.d.ts +29 -0
- package/dist/src/controls/controlRendering.d.ts.map +1 -0
- package/dist/src/controls/controlRendering.min.mjs +2 -0
- package/dist/src/controls/controlRendering.min.mjs.map +1 -0
- package/dist/src/controls/controlRendering.mjs +87 -0
- package/dist/src/controls/controlRendering.mjs.map +1 -0
- package/dist/src/controls/drag.d.ts +12 -0
- package/dist/src/controls/drag.d.ts.map +1 -0
- package/dist/src/controls/drag.min.mjs +2 -0
- package/dist/src/controls/drag.min.mjs.map +1 -0
- package/dist/src/controls/drag.mjs +33 -0
- package/dist/src/controls/drag.mjs.map +1 -0
- package/dist/src/controls/fireEvent.d.ts +3 -0
- package/dist/src/controls/fireEvent.d.ts.map +1 -0
- package/dist/src/controls/fireEvent.min.mjs +2 -0
- package/dist/src/controls/fireEvent.min.mjs.map +1 -0
- package/dist/src/controls/fireEvent.mjs +16 -0
- package/dist/src/controls/fireEvent.mjs.map +1 -0
- package/dist/src/controls/index.d.ts +14 -0
- package/dist/src/controls/index.d.ts.map +1 -0
- package/dist/src/controls/index.min.mjs +2 -0
- package/dist/src/controls/index.min.mjs.map +1 -0
- package/dist/src/controls/index.mjs +14 -0
- package/dist/src/controls/index.mjs.map +1 -0
- package/dist/src/controls/pathControl.d.ts +12 -0
- package/dist/src/controls/pathControl.d.ts.map +1 -0
- package/dist/src/controls/pathControl.min.mjs +2 -0
- package/dist/src/controls/pathControl.min.mjs.map +1 -0
- package/dist/src/controls/pathControl.mjs +159 -0
- package/dist/src/controls/pathControl.mjs.map +1 -0
- package/dist/src/controls/polyControl.d.ts +30 -0
- package/dist/src/controls/polyControl.d.ts.map +1 -0
- package/dist/src/controls/polyControl.min.mjs +2 -0
- package/dist/src/controls/polyControl.min.mjs.map +1 -0
- package/dist/src/controls/polyControl.mjs +78 -0
- package/dist/src/controls/polyControl.mjs.map +1 -0
- package/dist/src/controls/rotate.d.ts +12 -0
- package/dist/src/controls/rotate.d.ts.map +1 -0
- package/dist/src/controls/rotate.min.mjs +2 -0
- package/dist/src/controls/rotate.min.mjs.map +1 -0
- package/dist/src/controls/rotate.mjs +73 -0
- package/dist/src/controls/rotate.mjs.map +1 -0
- package/dist/src/controls/scale.d.ts +47 -0
- package/dist/src/controls/scale.d.ts.map +1 -0
- package/dist/src/controls/scale.min.mjs +2 -0
- package/dist/src/controls/scale.min.mjs.map +1 -0
- package/dist/src/controls/scale.mjs +210 -0
- package/dist/src/controls/scale.mjs.map +1 -0
- package/dist/src/controls/scaleSkew.d.ts +39 -0
- package/dist/src/controls/scaleSkew.d.ts.map +1 -0
- package/dist/src/controls/scaleSkew.min.mjs +2 -0
- package/dist/src/controls/scaleSkew.min.mjs.map +1 -0
- package/dist/src/controls/scaleSkew.mjs +66 -0
- package/dist/src/controls/scaleSkew.mjs.map +1 -0
- package/dist/src/controls/skew.d.ts +33 -0
- package/dist/src/controls/skew.d.ts.map +1 -0
- package/dist/src/controls/skew.min.mjs +2 -0
- package/dist/src/controls/skew.min.mjs.map +1 -0
- package/dist/src/controls/skew.mjs +181 -0
- package/dist/src/controls/skew.mjs.map +1 -0
- package/dist/src/controls/util.d.ts +42 -0
- package/dist/src/controls/util.d.ts.map +1 -0
- package/dist/src/controls/util.min.mjs +2 -0
- package/dist/src/controls/util.min.mjs.map +1 -0
- package/dist/src/controls/util.mjs +105 -0
- package/dist/src/controls/util.mjs.map +1 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts +10 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts.map +1 -0
- package/dist/src/controls/wrapWithFireEvent.min.mjs +2 -0
- package/dist/src/controls/wrapWithFireEvent.min.mjs.map +1 -0
- package/dist/src/controls/wrapWithFireEvent.mjs +25 -0
- package/dist/src/controls/wrapWithFireEvent.mjs.map +1 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +1 -0
- package/dist/src/controls/wrapWithFixedAnchor.min.mjs +2 -0
- package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +1 -0
- package/dist/src/controls/wrapWithFixedAnchor.mjs +25 -0
- package/dist/src/controls/wrapWithFixedAnchor.mjs.map +1 -0
- package/dist/src/env/browser.d.ts +3 -0
- package/dist/src/env/browser.d.ts.map +1 -0
- package/dist/src/env/browser.min.mjs +2 -0
- package/dist/src/env/browser.min.mjs.map +1 -0
- package/dist/src/env/browser.mjs +19 -0
- package/dist/src/env/browser.mjs.map +1 -0
- package/dist/src/env/index.d.ts +34 -0
- package/dist/src/env/index.d.ts.map +1 -0
- package/dist/src/env/index.min.mjs +2 -0
- package/dist/src/env/index.min.mjs.map +1 -0
- package/dist/src/env/index.mjs +47 -0
- package/dist/src/env/index.mjs.map +1 -0
- package/dist/src/env/node.d.ts +6 -0
- package/dist/src/env/node.d.ts.map +1 -0
- package/dist/src/env/types.d.ts +16 -0
- package/dist/src/env/types.d.ts.map +1 -0
- package/dist/src/filters/BaseFilter.d.ts +153 -0
- package/dist/src/filters/BaseFilter.d.ts.map +1 -0
- package/dist/src/filters/BaseFilter.min.mjs +2 -0
- package/dist/src/filters/BaseFilter.min.mjs.map +1 -0
- package/dist/src/filters/BaseFilter.mjs +334 -0
- package/dist/src/filters/BaseFilter.mjs.map +1 -0
- package/dist/src/filters/BlendColor.d.ts +65 -0
- package/dist/src/filters/BlendColor.d.ts.map +1 -0
- package/dist/src/filters/BlendColor.min.mjs +2 -0
- package/dist/src/filters/BlendColor.min.mjs.map +1 -0
- package/dist/src/filters/BlendColor.mjs +164 -0
- package/dist/src/filters/BlendColor.mjs.map +1 -0
- package/dist/src/filters/BlendImage.d.ts +97 -0
- package/dist/src/filters/BlendImage.d.ts.map +1 -0
- package/dist/src/filters/BlendImage.min.mjs +2 -0
- package/dist/src/filters/BlendImage.min.mjs.map +1 -0
- package/dist/src/filters/BlendImage.mjs +185 -0
- package/dist/src/filters/BlendImage.mjs.map +1 -0
- package/dist/src/filters/Blur.d.ts +49 -0
- package/dist/src/filters/Blur.d.ts.map +1 -0
- package/dist/src/filters/Blur.min.mjs +2 -0
- package/dist/src/filters/Blur.min.mjs.map +1 -0
- package/dist/src/filters/Blur.mjs +194 -0
- package/dist/src/filters/Blur.mjs.map +1 -0
- package/dist/src/filters/Boilerplate.d.ts +45 -0
- package/dist/src/filters/Boilerplate.d.ts.map +1 -0
- package/dist/src/filters/Brightness.d.ts +45 -0
- package/dist/src/filters/Brightness.d.ts.map +1 -0
- package/dist/src/filters/Brightness.min.mjs +2 -0
- package/dist/src/filters/Brightness.min.mjs.map +1 -0
- package/dist/src/filters/Brightness.mjs +69 -0
- package/dist/src/filters/Brightness.mjs.map +1 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -0
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs +2 -0
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -0
- package/dist/src/filters/Canvas2dFilterBackend.mjs +65 -0
- package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -0
- package/dist/src/filters/ColorMatrix.d.ts +62 -0
- package/dist/src/filters/ColorMatrix.d.ts.map +1 -0
- package/dist/src/filters/ColorMatrix.min.mjs +2 -0
- package/dist/src/filters/ColorMatrix.min.mjs.map +1 -0
- package/dist/src/filters/ColorMatrix.mjs +99 -0
- package/dist/src/filters/ColorMatrix.mjs.map +1 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +15 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -0
- package/dist/src/filters/ColorMatrixFilters.min.mjs +2 -0
- package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -0
- package/dist/src/filters/ColorMatrixFilters.mjs +30 -0
- package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -0
- package/dist/src/filters/Composed.d.ts +51 -0
- package/dist/src/filters/Composed.d.ts.map +1 -0
- package/dist/src/filters/Composed.min.mjs +2 -0
- package/dist/src/filters/Composed.min.mjs.map +1 -0
- package/dist/src/filters/Composed.mjs +65 -0
- package/dist/src/filters/Composed.mjs.map +1 -0
- package/dist/src/filters/Contrast.d.ts +44 -0
- package/dist/src/filters/Contrast.d.ts.map +1 -0
- package/dist/src/filters/Contrast.min.mjs +2 -0
- package/dist/src/filters/Contrast.min.mjs.map +1 -0
- package/dist/src/filters/Contrast.mjs +69 -0
- package/dist/src/filters/Contrast.mjs.map +1 -0
- package/dist/src/filters/Convolute.d.ts +81 -0
- package/dist/src/filters/Convolute.d.ts.map +1 -0
- package/dist/src/filters/Convolute.min.mjs +2 -0
- package/dist/src/filters/Convolute.min.mjs.map +1 -0
- package/dist/src/filters/Convolute.mjs +154 -0
- package/dist/src/filters/Convolute.mjs.map +1 -0
- package/dist/src/filters/FilterBackend.d.ts +15 -0
- package/dist/src/filters/FilterBackend.d.ts.map +1 -0
- package/dist/src/filters/FilterBackend.min.mjs +2 -0
- package/dist/src/filters/FilterBackend.min.mjs.map +1 -0
- package/dist/src/filters/FilterBackend.mjs +43 -0
- package/dist/src/filters/FilterBackend.mjs.map +1 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts +7 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts.map +1 -0
- package/dist/src/filters/GLProbes/GLProbe.min.mjs +2 -0
- package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +1 -0
- package/dist/src/filters/GLProbes/GLProbe.mjs +4 -0
- package/dist/src/filters/GLProbes/GLProbe.mjs.map +1 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +1 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +1 -0
- package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +2 -0
- package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +1 -0
- package/dist/src/filters/GLProbes/WebGLProbe.mjs +43 -0
- package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +1 -0
- package/dist/src/filters/Gamma.d.ts +57 -0
- package/dist/src/filters/Gamma.d.ts.map +1 -0
- package/dist/src/filters/Gamma.min.mjs +2 -0
- package/dist/src/filters/Gamma.min.mjs.map +1 -0
- package/dist/src/filters/Gamma.mjs +101 -0
- package/dist/src/filters/Gamma.mjs.map +1 -0
- package/dist/src/filters/Grayscale.d.ts +44 -0
- package/dist/src/filters/Grayscale.d.ts.map +1 -0
- package/dist/src/filters/Grayscale.min.mjs +2 -0
- package/dist/src/filters/Grayscale.min.mjs.map +1 -0
- package/dist/src/filters/Grayscale.mjs +81 -0
- package/dist/src/filters/Grayscale.mjs.map +1 -0
- package/dist/src/filters/HueRotation.d.ts +34 -0
- package/dist/src/filters/HueRotation.d.ts.map +1 -0
- package/dist/src/filters/HueRotation.min.mjs +2 -0
- package/dist/src/filters/HueRotation.min.mjs.map +1 -0
- package/dist/src/filters/HueRotation.mjs +53 -0
- package/dist/src/filters/HueRotation.mjs.map +1 -0
- package/dist/src/filters/Invert.d.ts +51 -0
- package/dist/src/filters/Invert.d.ts.map +1 -0
- package/dist/src/filters/Invert.min.mjs +2 -0
- package/dist/src/filters/Invert.min.mjs.map +1 -0
- package/dist/src/filters/Invert.mjs +78 -0
- package/dist/src/filters/Invert.mjs.map +1 -0
- package/dist/src/filters/Noise.d.ts +43 -0
- package/dist/src/filters/Noise.d.ts.map +1 -0
- package/dist/src/filters/Noise.min.mjs +2 -0
- package/dist/src/filters/Noise.min.mjs.map +1 -0
- package/dist/src/filters/Noise.mjs +70 -0
- package/dist/src/filters/Noise.mjs.map +1 -0
- package/dist/src/filters/Pixelate.d.ts +41 -0
- package/dist/src/filters/Pixelate.d.ts.map +1 -0
- package/dist/src/filters/Pixelate.min.mjs +2 -0
- package/dist/src/filters/Pixelate.min.mjs.map +1 -0
- package/dist/src/filters/Pixelate.mjs +80 -0
- package/dist/src/filters/Pixelate.mjs.map +1 -0
- package/dist/src/filters/RemoveColor.d.ts +51 -0
- package/dist/src/filters/RemoveColor.d.ts.map +1 -0
- package/dist/src/filters/RemoveColor.min.mjs +2 -0
- package/dist/src/filters/RemoveColor.min.mjs.map +1 -0
- package/dist/src/filters/RemoveColor.mjs +84 -0
- package/dist/src/filters/RemoveColor.mjs.map +1 -0
- package/dist/src/filters/Resize.d.ts +134 -0
- package/dist/src/filters/Resize.d.ts.map +1 -0
- package/dist/src/filters/Resize.min.mjs +2 -0
- package/dist/src/filters/Resize.min.mjs.map +1 -0
- package/dist/src/filters/Resize.mjs +444 -0
- package/dist/src/filters/Resize.mjs.map +1 -0
- package/dist/src/filters/Saturation.d.ts +45 -0
- package/dist/src/filters/Saturation.d.ts.map +1 -0
- package/dist/src/filters/Saturation.min.mjs +2 -0
- package/dist/src/filters/Saturation.min.mjs.map +1 -0
- package/dist/src/filters/Saturation.mjs +74 -0
- package/dist/src/filters/Saturation.mjs.map +1 -0
- package/dist/src/filters/Vibrance.d.ts +45 -0
- package/dist/src/filters/Vibrance.d.ts.map +1 -0
- package/dist/src/filters/Vibrance.min.mjs +2 -0
- package/dist/src/filters/Vibrance.min.mjs.map +1 -0
- package/dist/src/filters/Vibrance.mjs +76 -0
- package/dist/src/filters/Vibrance.mjs.map +1 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +131 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -0
- package/dist/src/filters/WebGLFilterBackend.min.mjs +2 -0
- package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -0
- package/dist/src/filters/WebGLFilterBackend.mjs +312 -0
- package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -0
- package/dist/src/filters/filters.d.ts +23 -0
- package/dist/src/filters/filters.d.ts.map +1 -0
- package/dist/src/filters/filters.min.mjs +2 -0
- package/dist/src/filters/filters.min.mjs.map +1 -0
- package/dist/src/filters/filters.mjs +21 -0
- package/dist/src/filters/filters.mjs.map +1 -0
- package/dist/src/filters/index.d.ts +7 -0
- package/dist/src/filters/index.d.ts.map +1 -0
- package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
- package/dist/src/filters/shaders/baseFilter.d.ts.map +1 -0
- package/dist/src/filters/shaders/baseFilter.min.mjs +2 -0
- package/dist/src/filters/shaders/baseFilter.min.mjs.map +1 -0
- package/dist/src/filters/shaders/baseFilter.mjs +18 -0
- package/dist/src/filters/shaders/baseFilter.mjs.map +1 -0
- package/dist/src/filters/shaders/blendColor.d.ts +13 -0
- package/dist/src/filters/shaders/blendColor.d.ts.map +1 -0
- package/dist/src/filters/shaders/blendColor.min.mjs +2 -0
- package/dist/src/filters/shaders/blendColor.min.mjs.map +1 -0
- package/dist/src/filters/shaders/blendColor.mjs +34 -0
- package/dist/src/filters/shaders/blendColor.mjs.map +1 -0
- package/dist/src/filters/shaders/blendImage.d.ts +4 -0
- package/dist/src/filters/shaders/blendImage.d.ts.map +1 -0
- package/dist/src/filters/shaders/blendImage.min.mjs +2 -0
- package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -0
- package/dist/src/filters/shaders/blendImage.mjs +44 -0
- package/dist/src/filters/shaders/blendImage.mjs.map +1 -0
- package/dist/src/filters/shaders/blur.d.ts +2 -0
- package/dist/src/filters/shaders/blur.d.ts.map +1 -0
- package/dist/src/filters/shaders/blur.min.mjs +2 -0
- package/dist/src/filters/shaders/blur.min.mjs.map +1 -0
- package/dist/src/filters/shaders/blur.mjs +33 -0
- package/dist/src/filters/shaders/blur.mjs.map +1 -0
- package/dist/src/filters/shaders/brightness.d.ts +2 -0
- package/dist/src/filters/shaders/brightness.d.ts.map +1 -0
- package/dist/src/filters/shaders/brightness.min.mjs +2 -0
- package/dist/src/filters/shaders/brightness.min.mjs.map +1 -0
- package/dist/src/filters/shaders/brightness.mjs +14 -0
- package/dist/src/filters/shaders/brightness.mjs.map +1 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts.map +1 -0
- package/dist/src/filters/shaders/colorMatrix.min.mjs +2 -0
- package/dist/src/filters/shaders/colorMatrix.min.mjs.map +1 -0
- package/dist/src/filters/shaders/colorMatrix.mjs +15 -0
- package/dist/src/filters/shaders/colorMatrix.mjs.map +1 -0
- package/dist/src/filters/shaders/constrast.d.ts +2 -0
- package/dist/src/filters/shaders/constrast.d.ts.map +1 -0
- package/dist/src/filters/shaders/constrast.min.mjs +2 -0
- package/dist/src/filters/shaders/constrast.min.mjs.map +1 -0
- package/dist/src/filters/shaders/constrast.mjs +14 -0
- package/dist/src/filters/shaders/constrast.mjs.map +1 -0
- package/dist/src/filters/shaders/convolute.d.ts +11 -0
- package/dist/src/filters/shaders/convolute.d.ts.map +1 -0
- package/dist/src/filters/shaders/convolute.min.mjs +2 -0
- package/dist/src/filters/shaders/convolute.min.mjs.map +1 -0
- package/dist/src/filters/shaders/convolute.mjs +157 -0
- package/dist/src/filters/shaders/convolute.mjs.map +1 -0
- package/dist/src/filters/shaders/gamma.d.ts +2 -0
- package/dist/src/filters/shaders/gamma.d.ts.map +1 -0
- package/dist/src/filters/shaders/gamma.min.mjs +2 -0
- package/dist/src/filters/shaders/gamma.min.mjs.map +1 -0
- package/dist/src/filters/shaders/gamma.mjs +18 -0
- package/dist/src/filters/shaders/gamma.mjs.map +1 -0
- package/dist/src/filters/shaders/grayscale.d.ts +3 -0
- package/dist/src/filters/shaders/grayscale.d.ts.map +1 -0
- package/dist/src/filters/shaders/grayscale.min.mjs +2 -0
- package/dist/src/filters/shaders/grayscale.min.mjs.map +1 -0
- package/dist/src/filters/shaders/grayscale.mjs +37 -0
- package/dist/src/filters/shaders/grayscale.mjs.map +1 -0
- package/dist/src/filters/shaders/invert.d.ts +2 -0
- package/dist/src/filters/shaders/invert.d.ts.map +1 -0
- package/dist/src/filters/shaders/invert.min.mjs +2 -0
- package/dist/src/filters/shaders/invert.min.mjs.map +1 -0
- package/dist/src/filters/shaders/invert.mjs +22 -0
- package/dist/src/filters/shaders/invert.mjs.map +1 -0
- package/dist/src/filters/shaders/noise.d.ts +2 -0
- package/dist/src/filters/shaders/noise.d.ts.map +1 -0
- package/dist/src/filters/shaders/noise.min.mjs +2 -0
- package/dist/src/filters/shaders/noise.min.mjs.map +1 -0
- package/dist/src/filters/shaders/noise.mjs +19 -0
- package/dist/src/filters/shaders/noise.mjs.map +1 -0
- package/dist/src/filters/shaders/pixelate.d.ts +2 -0
- package/dist/src/filters/shaders/pixelate.d.ts.map +1 -0
- package/dist/src/filters/shaders/pixelate.min.mjs +2 -0
- package/dist/src/filters/shaders/pixelate.min.mjs.map +1 -0
- package/dist/src/filters/shaders/pixelate.mjs +22 -0
- package/dist/src/filters/shaders/pixelate.mjs.map +1 -0
- package/dist/src/filters/shaders/removeColor.d.ts +2 -0
- package/dist/src/filters/shaders/removeColor.d.ts.map +1 -0
- package/dist/src/filters/shaders/removeColor.min.mjs +2 -0
- package/dist/src/filters/shaders/removeColor.min.mjs.map +1 -0
- package/dist/src/filters/shaders/removeColor.mjs +16 -0
- package/dist/src/filters/shaders/removeColor.mjs.map +1 -0
- package/dist/src/filters/shaders/saturation.d.ts +2 -0
- package/dist/src/filters/shaders/saturation.d.ts.map +1 -0
- package/dist/src/filters/shaders/saturation.min.mjs +2 -0
- package/dist/src/filters/shaders/saturation.min.mjs.map +1 -0
- package/dist/src/filters/shaders/saturation.mjs +18 -0
- package/dist/src/filters/shaders/saturation.mjs.map +1 -0
- package/dist/src/filters/shaders/vibrance.d.ts +2 -0
- package/dist/src/filters/shaders/vibrance.d.ts.map +1 -0
- package/dist/src/filters/shaders/vibrance.min.mjs +2 -0
- package/dist/src/filters/shaders/vibrance.min.mjs.map +1 -0
- package/dist/src/filters/shaders/vibrance.mjs +19 -0
- package/dist/src/filters/shaders/vibrance.mjs.map +1 -0
- package/dist/src/filters/typedefs.d.ts +70 -0
- package/dist/src/filters/typedefs.d.ts.map +1 -0
- package/dist/src/filters/utils.d.ts +10 -0
- package/dist/src/filters/utils.d.ts.map +1 -0
- package/dist/src/filters/utils.min.mjs +2 -0
- package/dist/src/filters/utils.min.mjs.map +1 -0
- package/dist/src/filters/utils.mjs +43 -0
- package/dist/src/filters/utils.mjs.map +1 -0
- package/dist/src/gradient/Gradient.d.ts +142 -0
- package/dist/src/gradient/Gradient.d.ts.map +1 -0
- package/dist/src/gradient/Gradient.min.mjs +2 -0
- package/dist/src/gradient/Gradient.min.mjs.map +1 -0
- package/dist/src/gradient/Gradient.mjs +328 -0
- package/dist/src/gradient/Gradient.mjs.map +1 -0
- package/dist/src/gradient/constants.d.ts +15 -0
- package/dist/src/gradient/constants.d.ts.map +1 -0
- package/dist/src/gradient/constants.min.mjs +2 -0
- package/dist/src/gradient/constants.min.mjs.map +1 -0
- package/dist/src/gradient/constants.mjs +14 -0
- package/dist/src/gradient/constants.mjs.map +1 -0
- package/dist/src/gradient/index.d.ts +3 -0
- package/dist/src/gradient/index.d.ts.map +1 -0
- package/dist/src/gradient/parser/misc.d.ts +4 -0
- package/dist/src/gradient/parser/misc.d.ts.map +1 -0
- package/dist/src/gradient/parser/misc.min.mjs +2 -0
- package/dist/src/gradient/parser/misc.min.mjs.map +1 -0
- package/dist/src/gradient/parser/misc.mjs +9 -0
- package/dist/src/gradient/parser/misc.mjs.map +1 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts.map +1 -0
- package/dist/src/gradient/parser/parseColorStops.min.mjs +2 -0
- package/dist/src/gradient/parser/parseColorStops.min.mjs.map +1 -0
- package/dist/src/gradient/parser/parseColorStops.mjs +44 -0
- package/dist/src/gradient/parser/parseColorStops.mjs.map +1 -0
- package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
- package/dist/src/gradient/parser/parseCoords.d.ts.map +1 -0
- package/dist/src/gradient/parser/parseCoords.min.mjs +2 -0
- package/dist/src/gradient/parser/parseCoords.min.mjs.map +1 -0
- package/dist/src/gradient/parser/parseCoords.mjs +65 -0
- package/dist/src/gradient/parser/parseCoords.mjs.map +1 -0
- package/dist/src/gradient/typedefs.d.ts +93 -0
- package/dist/src/gradient/typedefs.d.ts.map +1 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts.map +1 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +1 -0
- package/dist/src/parkinglot/straighten.d.ts +12 -0
- package/dist/src/parkinglot/straighten.d.ts.map +1 -0
- package/dist/src/parser/applyViewboxTransform.d.ts +13 -0
- package/dist/src/parser/applyViewboxTransform.d.ts.map +1 -0
- package/dist/src/parser/applyViewboxTransform.min.mjs +2 -0
- package/dist/src/parser/applyViewboxTransform.min.mjs.map +1 -0
- package/dist/src/parser/applyViewboxTransform.mjs +127 -0
- package/dist/src/parser/applyViewboxTransform.mjs.map +1 -0
- package/dist/src/parser/attributes.d.ts +6 -0
- package/dist/src/parser/attributes.d.ts.map +1 -0
- package/dist/src/parser/attributes.min.mjs +2 -0
- package/dist/src/parser/attributes.min.mjs.map +1 -0
- package/dist/src/parser/attributes.mjs +10 -0
- package/dist/src/parser/attributes.mjs.map +1 -0
- package/dist/src/parser/constants.d.ts +42 -0
- package/dist/src/parser/constants.d.ts.map +1 -0
- package/dist/src/parser/constants.min.mjs +2 -0
- package/dist/src/parser/constants.min.mjs.map +1 -0
- package/dist/src/parser/constants.mjs +58 -0
- package/dist/src/parser/constants.mjs.map +1 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts.map +1 -0
- package/dist/src/parser/doesSomeParentMatch.min.mjs +2 -0
- package/dist/src/parser/doesSomeParentMatch.min.mjs.map +1 -0
- package/dist/src/parser/doesSomeParentMatch.mjs +17 -0
- package/dist/src/parser/doesSomeParentMatch.mjs.map +1 -0
- package/dist/src/parser/elementMatchesRule.d.ts +5 -0
- package/dist/src/parser/elementMatchesRule.d.ts.map +1 -0
- package/dist/src/parser/elementMatchesRule.min.mjs +2 -0
- package/dist/src/parser/elementMatchesRule.min.mjs.map +1 -0
- package/dist/src/parser/elementMatchesRule.mjs +19 -0
- package/dist/src/parser/elementMatchesRule.mjs.map +1 -0
- package/dist/src/parser/elements_parser.d.ts +33 -0
- package/dist/src/parser/elements_parser.d.ts.map +1 -0
- package/dist/src/parser/elements_parser.min.mjs +2 -0
- package/dist/src/parser/elements_parser.min.mjs.map +1 -0
- package/dist/src/parser/elements_parser.mjs +139 -0
- package/dist/src/parser/elements_parser.mjs.map +1 -0
- package/dist/src/parser/getCSSRules.d.ts +8 -0
- package/dist/src/parser/getCSSRules.d.ts.map +1 -0
- package/dist/src/parser/getCSSRules.min.mjs +2 -0
- package/dist/src/parser/getCSSRules.min.mjs.map +1 -0
- package/dist/src/parser/getCSSRules.mjs +60 -0
- package/dist/src/parser/getCSSRules.mjs.map +1 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts +6 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts.map +1 -0
- package/dist/src/parser/getGlobalStylesForElement.min.mjs +2 -0
- package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +1 -0
- package/dist/src/parser/getGlobalStylesForElement.mjs +22 -0
- package/dist/src/parser/getGlobalStylesForElement.mjs.map +1 -0
- package/dist/src/parser/getGradientDefs.d.ts +7 -0
- package/dist/src/parser/getGradientDefs.d.ts.map +1 -0
- package/dist/src/parser/getGradientDefs.min.mjs +2 -0
- package/dist/src/parser/getGradientDefs.min.mjs.map +1 -0
- package/dist/src/parser/getGradientDefs.mjs +29 -0
- package/dist/src/parser/getGradientDefs.mjs.map +1 -0
- package/dist/src/parser/getMultipleNodes.d.ts +2 -0
- package/dist/src/parser/getMultipleNodes.d.ts.map +1 -0
- package/dist/src/parser/getMultipleNodes.min.mjs +2 -0
- package/dist/src/parser/getMultipleNodes.min.mjs.map +1 -0
- package/dist/src/parser/getMultipleNodes.mjs +16 -0
- package/dist/src/parser/getMultipleNodes.mjs.map +1 -0
- package/dist/src/parser/getSvgRegex.d.ts +2 -0
- package/dist/src/parser/getSvgRegex.d.ts.map +1 -0
- package/dist/src/parser/getSvgRegex.min.mjs +2 -0
- package/dist/src/parser/getSvgRegex.min.mjs.map +1 -0
- package/dist/src/parser/getSvgRegex.mjs +6 -0
- package/dist/src/parser/getSvgRegex.mjs.map +1 -0
- package/dist/src/parser/getTagName.d.ts +2 -0
- package/dist/src/parser/getTagName.d.ts.map +1 -0
- package/dist/src/parser/getTagName.min.mjs +2 -0
- package/dist/src/parser/getTagName.min.mjs.map +1 -0
- package/dist/src/parser/getTagName.mjs +4 -0
- package/dist/src/parser/getTagName.mjs.map +1 -0
- package/dist/src/parser/hasInvalidAncestor.d.ts +2 -0
- package/dist/src/parser/hasInvalidAncestor.d.ts.map +1 -0
- package/dist/src/parser/hasInvalidAncestor.min.mjs +2 -0
- package/dist/src/parser/hasInvalidAncestor.min.mjs.map +1 -0
- package/dist/src/parser/hasInvalidAncestor.mjs +17 -0
- package/dist/src/parser/hasInvalidAncestor.mjs.map +1 -0
- package/dist/src/parser/loadSVGFromString.d.ts +17 -0
- package/dist/src/parser/loadSVGFromString.d.ts.map +1 -0
- package/dist/src/parser/loadSVGFromString.min.mjs +2 -0
- package/dist/src/parser/loadSVGFromString.min.mjs.map +1 -0
- package/dist/src/parser/loadSVGFromString.mjs +25 -0
- package/dist/src/parser/loadSVGFromString.mjs.map +1 -0
- package/dist/src/parser/loadSVGFromURL.d.ts +18 -0
- package/dist/src/parser/loadSVGFromURL.d.ts.map +1 -0
- package/dist/src/parser/loadSVGFromURL.min.mjs +2 -0
- package/dist/src/parser/loadSVGFromURL.min.mjs.map +1 -0
- package/dist/src/parser/loadSVGFromURL.mjs +37 -0
- package/dist/src/parser/loadSVGFromURL.mjs.map +1 -0
- package/dist/src/parser/normalizeAttr.d.ts +3 -0
- package/dist/src/parser/normalizeAttr.d.ts.map +1 -0
- package/dist/src/parser/normalizeAttr.min.mjs +2 -0
- package/dist/src/parser/normalizeAttr.min.mjs.map +1 -0
- package/dist/src/parser/normalizeAttr.mjs +9 -0
- package/dist/src/parser/normalizeAttr.mjs.map +1 -0
- package/dist/src/parser/normalizeValue.d.ts +2 -0
- package/dist/src/parser/normalizeValue.d.ts.map +1 -0
- package/dist/src/parser/normalizeValue.min.mjs +2 -0
- package/dist/src/parser/normalizeValue.min.mjs.map +1 -0
- package/dist/src/parser/normalizeValue.mjs +63 -0
- package/dist/src/parser/normalizeValue.mjs.map +1 -0
- package/dist/src/parser/parseAttributes.d.ts +10 -0
- package/dist/src/parser/parseAttributes.d.ts.map +1 -0
- package/dist/src/parser/parseAttributes.min.mjs +2 -0
- package/dist/src/parser/parseAttributes.min.mjs.map +1 -0
- package/dist/src/parser/parseAttributes.mjs +73 -0
- package/dist/src/parser/parseAttributes.mjs.map +1 -0
- package/dist/src/parser/parseFontDeclaration.d.ts +7 -0
- package/dist/src/parser/parseFontDeclaration.d.ts.map +1 -0
- package/dist/src/parser/parseFontDeclaration.min.mjs +2 -0
- package/dist/src/parser/parseFontDeclaration.min.mjs.map +1 -0
- package/dist/src/parser/parseFontDeclaration.mjs +39 -0
- package/dist/src/parser/parseFontDeclaration.mjs.map +1 -0
- package/dist/src/parser/parsePointsAttribute.d.ts +8 -0
- package/dist/src/parser/parsePointsAttribute.d.ts.map +1 -0
- package/dist/src/parser/parsePointsAttribute.min.mjs +2 -0
- package/dist/src/parser/parsePointsAttribute.min.mjs.map +1 -0
- package/dist/src/parser/parsePointsAttribute.mjs +30 -0
- package/dist/src/parser/parsePointsAttribute.mjs.map +1 -0
- package/dist/src/parser/parseSVGDocument.d.ts +19 -0
- package/dist/src/parser/parseSVGDocument.d.ts.map +1 -0
- package/dist/src/parser/parseSVGDocument.min.mjs +2 -0
- package/dist/src/parser/parseSVGDocument.min.mjs.map +1 -0
- package/dist/src/parser/parseSVGDocument.mjs +79 -0
- package/dist/src/parser/parseSVGDocument.mjs.map +1 -0
- package/dist/src/parser/parseStyleAttribute.d.ts +7 -0
- package/dist/src/parser/parseStyleAttribute.d.ts.map +1 -0
- package/dist/src/parser/parseStyleAttribute.min.mjs +2 -0
- package/dist/src/parser/parseStyleAttribute.min.mjs.map +1 -0
- package/dist/src/parser/parseStyleAttribute.mjs +24 -0
- package/dist/src/parser/parseStyleAttribute.mjs.map +1 -0
- package/dist/src/parser/parseStyleObject.d.ts +8 -0
- package/dist/src/parser/parseStyleObject.d.ts.map +1 -0
- package/dist/src/parser/parseStyleObject.min.mjs +2 -0
- package/dist/src/parser/parseStyleObject.min.mjs.map +1 -0
- package/dist/src/parser/parseStyleObject.mjs +18 -0
- package/dist/src/parser/parseStyleObject.mjs.map +1 -0
- package/dist/src/parser/parseStyleString.d.ts +8 -0
- package/dist/src/parser/parseStyleString.d.ts.map +1 -0
- package/dist/src/parser/parseStyleString.min.mjs +2 -0
- package/dist/src/parser/parseStyleString.min.mjs.map +1 -0
- package/dist/src/parser/parseStyleString.mjs +16 -0
- package/dist/src/parser/parseStyleString.mjs.map +1 -0
- package/dist/src/parser/parseTransformAttribute.d.ts +8 -0
- package/dist/src/parser/parseTransformAttribute.d.ts.map +1 -0
- package/dist/src/parser/parseTransformAttribute.min.mjs +2 -0
- package/dist/src/parser/parseTransformAttribute.min.mjs.map +1 -0
- package/dist/src/parser/parseTransformAttribute.mjs +84 -0
- package/dist/src/parser/parseTransformAttribute.mjs.map +1 -0
- package/dist/src/parser/parseUseDirectives.d.ts +2 -0
- package/dist/src/parser/parseUseDirectives.d.ts.map +1 -0
- package/dist/src/parser/parseUseDirectives.min.mjs +2 -0
- package/dist/src/parser/parseUseDirectives.min.mjs.map +1 -0
- package/dist/src/parser/parseUseDirectives.mjs +88 -0
- package/dist/src/parser/parseUseDirectives.mjs.map +1 -0
- package/dist/src/parser/percent.d.ts +9 -0
- package/dist/src/parser/percent.d.ts.map +1 -0
- package/dist/src/parser/percent.min.mjs +2 -0
- package/dist/src/parser/percent.min.mjs.map +1 -0
- package/dist/src/parser/percent.mjs +21 -0
- package/dist/src/parser/percent.mjs.map +1 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +1 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +2 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +1 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.mjs +28 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +1 -0
- package/dist/src/parser/selectorMatches.d.ts +2 -0
- package/dist/src/parser/selectorMatches.d.ts.map +1 -0
- package/dist/src/parser/selectorMatches.min.mjs +2 -0
- package/dist/src/parser/selectorMatches.min.mjs.map +1 -0
- package/dist/src/parser/selectorMatches.mjs +26 -0
- package/dist/src/parser/selectorMatches.mjs.map +1 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts.map +1 -0
- package/dist/src/parser/setStrokeFillOpacity.min.mjs +2 -0
- package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +1 -0
- package/dist/src/parser/setStrokeFillOpacity.mjs +38 -0
- package/dist/src/parser/setStrokeFillOpacity.mjs.map +1 -0
- package/dist/src/parser/typedefs.d.ts +10 -0
- package/dist/src/parser/typedefs.d.ts.map +1 -0
- package/dist/src/shapes/ActiveSelection.d.ts +105 -0
- package/dist/src/shapes/ActiveSelection.d.ts.map +1 -0
- package/dist/src/shapes/ActiveSelection.min.mjs +2 -0
- package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -0
- package/dist/src/shapes/ActiveSelection.mjs +236 -0
- package/dist/src/shapes/ActiveSelection.mjs.map +1 -0
- package/dist/src/shapes/Circle.d.ts +107 -0
- package/dist/src/shapes/Circle.d.ts.map +1 -0
- package/dist/src/shapes/Circle.min.mjs +2 -0
- package/dist/src/shapes/Circle.min.mjs.map +1 -0
- package/dist/src/shapes/Circle.mjs +172 -0
- package/dist/src/shapes/Circle.mjs.map +1 -0
- package/dist/src/shapes/Ellipse.d.ts +82 -0
- package/dist/src/shapes/Ellipse.d.ts.map +1 -0
- package/dist/src/shapes/Ellipse.min.mjs +2 -0
- package/dist/src/shapes/Ellipse.min.mjs.map +1 -0
- package/dist/src/shapes/Ellipse.mjs +138 -0
- package/dist/src/shapes/Ellipse.mjs.map +1 -0
- package/dist/src/shapes/Group.d.ts +301 -0
- package/dist/src/shapes/Group.d.ts.map +1 -0
- package/dist/src/shapes/Group.min.mjs +2 -0
- package/dist/src/shapes/Group.min.mjs.map +1 -0
- package/dist/src/shapes/Group.mjs +601 -0
- package/dist/src/shapes/Group.mjs.map +1 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +2 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +1 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs +347 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +1 -0
- package/dist/src/shapes/IText/IText.d.ts +347 -0
- package/dist/src/shapes/IText/IText.d.ts.map +1 -0
- package/dist/src/shapes/IText/IText.min.mjs +2 -0
- package/dist/src/shapes/IText/IText.min.mjs.map +1 -0
- package/dist/src/shapes/IText/IText.mjs +699 -0
- package/dist/src/shapes/IText/IText.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +321 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
- package/dist/src/shapes/IText/ITextBehavior.min.mjs +2 -0
- package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextBehavior.mjs +989 -0
- package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +63 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +2 -0
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextClickBehavior.mjs +220 -0
- package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +197 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +2 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.mjs +602 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/IText/constants.d.ts.map +1 -0
- package/dist/src/shapes/IText/constants.min.mjs +2 -0
- package/dist/src/shapes/IText/constants.min.mjs.map +1 -0
- package/dist/src/shapes/IText/constants.mjs +52 -0
- package/dist/src/shapes/IText/constants.mjs.map +1 -0
- package/dist/src/shapes/Image.d.ts +296 -0
- package/dist/src/shapes/Image.d.ts.map +1 -0
- package/dist/src/shapes/Image.min.mjs +2 -0
- package/dist/src/shapes/Image.min.mjs.map +1 -0
- package/dist/src/shapes/Image.mjs +661 -0
- package/dist/src/shapes/Image.mjs.map +1 -0
- package/dist/src/shapes/Line.d.ts +118 -0
- package/dist/src/shapes/Line.d.ts.map +1 -0
- package/dist/src/shapes/Line.min.mjs +2 -0
- package/dist/src/shapes/Line.min.mjs.map +1 -0
- package/dist/src/shapes/Line.mjs +283 -0
- package/dist/src/shapes/Line.mjs.map +1 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
- package/dist/src/shapes/Object/FabricObject.d.ts.map +1 -0
- package/dist/src/shapes/Object/FabricObject.min.mjs +2 -0
- package/dist/src/shapes/Object/FabricObject.min.mjs.map +1 -0
- package/dist/src/shapes/Object/FabricObject.mjs +17 -0
- package/dist/src/shapes/Object/FabricObject.mjs.map +1 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +72 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +2 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +166 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +317 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -0
- package/dist/src/shapes/Object/InteractiveObject.min.mjs +2 -0
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -0
- package/dist/src/shapes/Object/InteractiveObject.mjs +556 -0
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -0
- package/dist/src/shapes/Object/Object.d.ts +716 -0
- package/dist/src/shapes/Object/Object.d.ts.map +1 -0
- package/dist/src/shapes/Object/Object.min.mjs +2 -0
- package/dist/src/shapes/Object/Object.min.mjs.map +1 -0
- package/dist/src/shapes/Object/Object.mjs +1531 -0
- package/dist/src/shapes/Object/Object.mjs.map +1 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +338 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +1 -0
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs +2 -0
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +1 -0
- package/dist/src/shapes/Object/ObjectGeometry.mjs +657 -0
- package/dist/src/shapes/Object/ObjectGeometry.mjs.map +1 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +8 -0
- package/dist/src/shapes/Object/defaultValues.d.ts.map +1 -0
- package/dist/src/shapes/Object/defaultValues.min.mjs +2 -0
- package/dist/src/shapes/Object/defaultValues.min.mjs.map +1 -0
- package/dist/src/shapes/Object/defaultValues.mjs +81 -0
- package/dist/src/shapes/Object/defaultValues.mjs.map +1 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts +92 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts +63 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +62 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +78 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +43 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts +41 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +32 -0
- package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +63 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +1 -0
- package/dist/src/shapes/Object/types/index.d.ts +6 -0
- package/dist/src/shapes/Object/types/index.d.ts.map +1 -0
- package/dist/src/shapes/Path.d.ts +208 -0
- package/dist/src/shapes/Path.d.ts.map +1 -0
- package/dist/src/shapes/Path.min.mjs +2 -0
- package/dist/src/shapes/Path.min.mjs.map +1 -0
- package/dist/src/shapes/Path.mjs +318 -0
- package/dist/src/shapes/Path.mjs.map +1 -0
- package/dist/src/shapes/Polygon.d.ts +7 -0
- package/dist/src/shapes/Polygon.d.ts.map +1 -0
- package/dist/src/shapes/Polygon.min.mjs +2 -0
- package/dist/src/shapes/Polygon.min.mjs.map +1 -0
- package/dist/src/shapes/Polygon.mjs +16 -0
- package/dist/src/shapes/Polygon.mjs.map +1 -0
- package/dist/src/shapes/Polyline.d.ts +149 -0
- package/dist/src/shapes/Polyline.d.ts.map +1 -0
- package/dist/src/shapes/Polyline.min.mjs +2 -0
- package/dist/src/shapes/Polyline.min.mjs.map +1 -0
- package/dist/src/shapes/Polyline.mjs +358 -0
- package/dist/src/shapes/Polyline.mjs.map +1 -0
- package/dist/src/shapes/Rect.d.ts +77 -0
- package/dist/src/shapes/Rect.d.ts.map +1 -0
- package/dist/src/shapes/Rect.min.mjs +2 -0
- package/dist/src/shapes/Rect.min.mjs.map +1 -0
- package/dist/src/shapes/Rect.mjs +151 -0
- package/dist/src/shapes/Rect.mjs.map +1 -0
- package/dist/src/shapes/Text/StyledText.d.ts +126 -0
- package/dist/src/shapes/Text/StyledText.d.ts.map +1 -0
- package/dist/src/shapes/Text/StyledText.min.mjs +2 -0
- package/dist/src/shapes/Text/StyledText.min.mjs.map +1 -0
- package/dist/src/shapes/Text/StyledText.mjs +291 -0
- package/dist/src/shapes/Text/StyledText.mjs.map +1 -0
- package/dist/src/shapes/Text/Text.d.ts +761 -0
- package/dist/src/shapes/Text/Text.d.ts.map +1 -0
- package/dist/src/shapes/Text/Text.min.mjs +2 -0
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -0
- package/dist/src/shapes/Text/Text.mjs +1475 -0
- package/dist/src/shapes/Text/Text.mjs.map +1 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +40 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +2 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs +245 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -0
- package/dist/src/shapes/Text/constants.d.ts +14 -0
- package/dist/src/shapes/Text/constants.d.ts.map +1 -0
- package/dist/src/shapes/Text/constants.min.mjs +2 -0
- package/dist/src/shapes/Text/constants.min.mjs.map +1 -0
- package/dist/src/shapes/Text/constants.mjs +74 -0
- package/dist/src/shapes/Text/constants.mjs.map +1 -0
- package/dist/src/shapes/Textbox.d.ts +233 -0
- package/dist/src/shapes/Textbox.d.ts.map +1 -0
- package/dist/src/shapes/Textbox.min.mjs +2 -0
- package/dist/src/shapes/Textbox.min.mjs.map +1 -0
- package/dist/src/shapes/Textbox.mjs +585 -0
- package/dist/src/shapes/Textbox.mjs.map +1 -0
- package/dist/src/shapes/Triangle.d.ts +27 -0
- package/dist/src/shapes/Triangle.d.ts.map +1 -0
- package/dist/src/shapes/Triangle.min.mjs +2 -0
- package/dist/src/shapes/Triangle.min.mjs.map +1 -0
- package/dist/src/shapes/Triangle.mjs +60 -0
- package/dist/src/shapes/Triangle.mjs.map +1 -0
- package/dist/src/text/browserLines.d.ts +42 -0
- package/dist/src/text/browserLines.d.ts.map +1 -0
- package/dist/src/text/browserLines.min.mjs +2 -0
- package/dist/src/text/browserLines.min.mjs.map +1 -0
- package/dist/src/text/browserLines.mjs +168 -0
- package/dist/src/text/browserLines.mjs.map +1 -0
- package/dist/src/text/ellipsis.d.ts +47 -0
- package/dist/src/text/ellipsis.d.ts.map +1 -0
- package/dist/src/text/ellipsis.min.mjs +2 -0
- package/dist/src/text/ellipsis.min.mjs.map +1 -0
- package/dist/src/text/ellipsis.mjs +182 -0
- package/dist/src/text/ellipsis.mjs.map +1 -0
- package/dist/src/text/hitTest.d.ts +82 -0
- package/dist/src/text/hitTest.d.ts.map +1 -0
- package/dist/src/text/hitTest.min.mjs +2 -0
- package/dist/src/text/hitTest.min.mjs.map +1 -0
- package/dist/src/text/hitTest.mjs +309 -0
- package/dist/src/text/hitTest.mjs.map +1 -0
- package/dist/src/text/layout.d.ts +66 -0
- package/dist/src/text/layout.d.ts.map +1 -0
- package/dist/src/text/layout.min.mjs +2 -0
- package/dist/src/text/layout.min.mjs.map +1 -0
- package/dist/src/text/layout.mjs +454 -0
- package/dist/src/text/layout.mjs.map +1 -0
- package/dist/src/text/measure.d.ts +131 -0
- package/dist/src/text/measure.d.ts.map +1 -0
- package/dist/src/text/measure.min.mjs +2 -0
- package/dist/src/text/measure.min.mjs.map +1 -0
- package/dist/src/text/measure.mjs +316 -0
- package/dist/src/text/measure.mjs.map +1 -0
- package/dist/src/text/overlayEditor.d.ts +113 -0
- package/dist/src/text/overlayEditor.d.ts.map +1 -0
- package/dist/src/text/overlayEditor.min.mjs +2 -0
- package/dist/src/text/overlayEditor.min.mjs.map +1 -0
- package/dist/src/text/overlayEditor.mjs +553 -0
- package/dist/src/text/overlayEditor.mjs.map +1 -0
- package/dist/src/text/unicode.d.ts +106 -0
- package/dist/src/text/unicode.d.ts.map +1 -0
- package/dist/src/text/unicode.min.mjs +2 -0
- package/dist/src/text/unicode.min.mjs.map +1 -0
- package/dist/src/text/unicode.mjs +34 -0
- package/dist/src/text/unicode.mjs.map +1 -0
- package/dist/src/typedefs.d.ts +99 -0
- package/dist/src/typedefs.d.ts.map +1 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationBase.d.ts.map +1 -0
- package/dist/src/util/animation/AnimationBase.min.mjs +2 -0
- package/dist/src/util/animation/AnimationBase.min.mjs.map +1 -0
- package/dist/src/util/animation/AnimationBase.mjs +128 -0
- package/dist/src/util/animation/AnimationBase.mjs.map +1 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +1 -0
- package/dist/src/util/animation/AnimationFrameProvider.min.mjs +2 -0
- package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +1 -0
- package/dist/src/util/animation/AnimationFrameProvider.mjs +11 -0
- package/dist/src/util/animation/AnimationFrameProvider.mjs.map +1 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts.map +1 -0
- package/dist/src/util/animation/AnimationRegistry.min.mjs +2 -0
- package/dist/src/util/animation/AnimationRegistry.min.mjs.map +1 -0
- package/dist/src/util/animation/AnimationRegistry.mjs +55 -0
- package/dist/src/util/animation/AnimationRegistry.mjs.map +1 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts.map +1 -0
- package/dist/src/util/animation/ArrayAnimation.min.mjs +2 -0
- package/dist/src/util/animation/ArrayAnimation.min.mjs.map +1 -0
- package/dist/src/util/animation/ArrayAnimation.mjs +26 -0
- package/dist/src/util/animation/ArrayAnimation.mjs.map +1 -0
- package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
- package/dist/src/util/animation/ColorAnimation.d.ts.map +1 -0
- package/dist/src/util/animation/ColorAnimation.min.mjs +2 -0
- package/dist/src/util/animation/ColorAnimation.min.mjs.map +1 -0
- package/dist/src/util/animation/ColorAnimation.mjs +47 -0
- package/dist/src/util/animation/ColorAnimation.mjs.map +1 -0
- package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
- package/dist/src/util/animation/ValueAnimation.d.ts.map +1 -0
- package/dist/src/util/animation/ValueAnimation.min.mjs +2 -0
- package/dist/src/util/animation/ValueAnimation.min.mjs.map +1 -0
- package/dist/src/util/animation/ValueAnimation.mjs +26 -0
- package/dist/src/util/animation/ValueAnimation.mjs.map +1 -0
- package/dist/src/util/animation/animate.d.ts +37 -0
- package/dist/src/util/animation/animate.d.ts.map +1 -0
- package/dist/src/util/animation/animate.min.mjs +2 -0
- package/dist/src/util/animation/animate.min.mjs.map +1 -0
- package/dist/src/util/animation/animate.mjs +48 -0
- package/dist/src/util/animation/animate.mjs.map +1 -0
- package/dist/src/util/animation/easing.d.ts +130 -0
- package/dist/src/util/animation/easing.d.ts.map +1 -0
- package/dist/src/util/animation/easing.min.mjs +2 -0
- package/dist/src/util/animation/easing.min.mjs.map +1 -0
- package/dist/src/util/animation/easing.mjs +315 -0
- package/dist/src/util/animation/easing.mjs.map +1 -0
- package/dist/src/util/animation/index.d.ts +3 -0
- package/dist/src/util/animation/index.d.ts.map +1 -0
- package/dist/src/util/animation/types.d.ts +87 -0
- package/dist/src/util/animation/types.d.ts.map +1 -0
- package/dist/src/util/applyMixins.d.ts +8 -0
- package/dist/src/util/applyMixins.d.ts.map +1 -0
- package/dist/src/util/applyMixins.min.mjs +2 -0
- package/dist/src/util/applyMixins.min.mjs.map +1 -0
- package/dist/src/util/applyMixins.mjs +14 -0
- package/dist/src/util/applyMixins.mjs.map +1 -0
- package/dist/src/util/dom_event.d.ts +6 -0
- package/dist/src/util/dom_event.d.ts.map +1 -0
- package/dist/src/util/dom_event.min.mjs +2 -0
- package/dist/src/util/dom_event.min.mjs.map +1 -0
- package/dist/src/util/dom_event.mjs +25 -0
- package/dist/src/util/dom_event.mjs.map +1 -0
- package/dist/src/util/dom_misc.d.ts +12 -0
- package/dist/src/util/dom_misc.d.ts.map +1 -0
- package/dist/src/util/dom_misc.min.mjs +2 -0
- package/dist/src/util/dom_misc.min.mjs.map +1 -0
- package/dist/src/util/dom_misc.mjs +51 -0
- package/dist/src/util/dom_misc.mjs.map +1 -0
- package/dist/src/util/index.d.ts +35 -0
- package/dist/src/util/index.d.ts.map +1 -0
- package/dist/src/util/index.min.mjs +2 -0
- package/dist/src/util/index.min.mjs.map +1 -0
- package/dist/src/util/index.mjs +33 -0
- package/dist/src/util/index.mjs.map +1 -0
- package/dist/src/util/internals/applyCanvasTransform.d.ts +11 -0
- package/dist/src/util/internals/applyCanvasTransform.d.ts.map +1 -0
- package/dist/src/util/internals/applyCanvasTransform.min.mjs +2 -0
- package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +1 -0
- package/dist/src/util/internals/applyCanvasTransform.mjs +17 -0
- package/dist/src/util/internals/applyCanvasTransform.mjs.map +1 -0
- package/dist/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
- package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +1 -0
- package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +2 -0
- package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +1 -0
- package/dist/src/util/internals/cleanupSvgAttribute.mjs +9 -0
- package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +1 -0
- 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/console.d.ts +8 -0
- package/dist/src/util/internals/console.d.ts.map +1 -0
- package/dist/src/util/internals/console.min.mjs +2 -0
- package/dist/src/util/internals/console.min.mjs.map +1 -0
- package/dist/src/util/internals/console.mjs +22 -0
- package/dist/src/util/internals/console.mjs.map +1 -0
- package/dist/src/util/internals/dom_style.d.ts +7 -0
- package/dist/src/util/internals/dom_style.d.ts.map +1 -0
- package/dist/src/util/internals/dom_style.min.mjs +2 -0
- package/dist/src/util/internals/dom_style.min.mjs.map +1 -0
- package/dist/src/util/internals/dom_style.mjs +20 -0
- package/dist/src/util/internals/dom_style.mjs.map +1 -0
- package/dist/src/util/internals/findRight.d.ts +2 -0
- package/dist/src/util/internals/findRight.d.ts.map +1 -0
- package/dist/src/util/internals/findRight.min.mjs +2 -0
- package/dist/src/util/internals/findRight.min.mjs.map +1 -0
- package/dist/src/util/internals/findRight.mjs +11 -0
- package/dist/src/util/internals/findRight.mjs.map +1 -0
- package/dist/src/util/internals/getRandomInt.d.ts +8 -0
- package/dist/src/util/internals/getRandomInt.d.ts.map +1 -0
- package/dist/src/util/internals/getRandomInt.min.mjs +2 -0
- package/dist/src/util/internals/getRandomInt.min.mjs.map +1 -0
- package/dist/src/util/internals/getRandomInt.mjs +10 -0
- package/dist/src/util/internals/getRandomInt.mjs.map +1 -0
- package/dist/src/util/internals/ifNaN.d.ts +8 -0
- package/dist/src/util/internals/ifNaN.d.ts.map +1 -0
- package/dist/src/util/internals/ifNaN.min.mjs +2 -0
- package/dist/src/util/internals/ifNaN.min.mjs.map +1 -0
- package/dist/src/util/internals/ifNaN.mjs +12 -0
- package/dist/src/util/internals/ifNaN.mjs.map +1 -0
- package/dist/src/util/internals/removeFromArray.d.ts +9 -0
- package/dist/src/util/internals/removeFromArray.d.ts.map +1 -0
- package/dist/src/util/internals/removeFromArray.min.mjs +2 -0
- package/dist/src/util/internals/removeFromArray.min.mjs.map +1 -0
- package/dist/src/util/internals/removeFromArray.mjs +17 -0
- package/dist/src/util/internals/removeFromArray.mjs.map +1 -0
- package/dist/src/util/internals/uid.d.ts +2 -0
- package/dist/src/util/internals/uid.d.ts.map +1 -0
- package/dist/src/util/internals/uid.min.mjs +2 -0
- package/dist/src/util/internals/uid.min.mjs.map +1 -0
- package/dist/src/util/internals/uid.mjs +5 -0
- package/dist/src/util/internals/uid.mjs.map +1 -0
- package/dist/src/util/lang_string.d.ts +22 -0
- package/dist/src/util/lang_string.d.ts.map +1 -0
- package/dist/src/util/lang_string.min.mjs +2 -0
- package/dist/src/util/lang_string.min.mjs.map +1 -0
- package/dist/src/util/lang_string.mjs +102 -0
- package/dist/src/util/lang_string.mjs.map +1 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +1 -0
- package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +2 -0
- package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +1 -0
- package/dist/src/util/misc/boundingBoxFromPoints.mjs +30 -0
- package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +1 -0
- package/dist/src/util/misc/capValue.d.ts +2 -0
- package/dist/src/util/misc/capValue.d.ts.map +1 -0
- package/dist/src/util/misc/capValue.min.mjs +2 -0
- package/dist/src/util/misc/capValue.min.mjs.map +1 -0
- package/dist/src/util/misc/capValue.mjs +4 -0
- package/dist/src/util/misc/capValue.mjs.map +1 -0
- package/dist/src/util/misc/cos.d.ts +10 -0
- package/dist/src/util/misc/cos.d.ts.map +1 -0
- package/dist/src/util/misc/cos.min.mjs +2 -0
- package/dist/src/util/misc/cos.min.mjs.map +1 -0
- package/dist/src/util/misc/cos.mjs +26 -0
- package/dist/src/util/misc/cos.mjs.map +1 -0
- package/dist/src/util/misc/dom.d.ts +35 -0
- package/dist/src/util/misc/dom.d.ts.map +1 -0
- package/dist/src/util/misc/dom.min.mjs +2 -0
- package/dist/src/util/misc/dom.min.mjs.map +1 -0
- package/dist/src/util/misc/dom.mjs +63 -0
- package/dist/src/util/misc/dom.mjs.map +1 -0
- package/dist/src/util/misc/findScaleTo.d.ts +20 -0
- package/dist/src/util/misc/findScaleTo.d.ts.map +1 -0
- package/dist/src/util/misc/findScaleTo.min.mjs +2 -0
- package/dist/src/util/misc/findScaleTo.min.mjs.map +1 -0
- package/dist/src/util/misc/findScaleTo.mjs +22 -0
- package/dist/src/util/misc/findScaleTo.mjs.map +1 -0
- package/dist/src/util/misc/groupSVGElements.d.ts +10 -0
- package/dist/src/util/misc/groupSVGElements.d.ts.map +1 -0
- package/dist/src/util/misc/groupSVGElements.min.mjs +2 -0
- package/dist/src/util/misc/groupSVGElements.min.mjs.map +1 -0
- package/dist/src/util/misc/groupSVGElements.mjs +17 -0
- package/dist/src/util/misc/groupSVGElements.mjs.map +1 -0
- package/dist/src/util/misc/isTransparent.d.ts +11 -0
- package/dist/src/util/misc/isTransparent.d.ts.map +1 -0
- package/dist/src/util/misc/isTransparent.min.mjs +2 -0
- package/dist/src/util/misc/isTransparent.min.mjs.map +1 -0
- package/dist/src/util/misc/isTransparent.mjs +28 -0
- package/dist/src/util/misc/isTransparent.mjs.map +1 -0
- package/dist/src/util/misc/matrix.d.ts +170 -0
- package/dist/src/util/misc/matrix.d.ts.map +1 -0
- package/dist/src/util/misc/matrix.min.mjs +2 -0
- package/dist/src/util/misc/matrix.min.mjs.map +1 -0
- package/dist/src/util/misc/matrix.mjs +249 -0
- package/dist/src/util/misc/matrix.mjs.map +1 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts +22 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts.map +1 -0
- package/dist/src/util/misc/mergeClipPaths.min.mjs +2 -0
- package/dist/src/util/misc/mergeClipPaths.min.mjs.map +1 -0
- package/dist/src/util/misc/mergeClipPaths.mjs +46 -0
- package/dist/src/util/misc/mergeClipPaths.mjs.map +1 -0
- package/dist/src/util/misc/objectEnlive.d.ts +45 -0
- package/dist/src/util/misc/objectEnlive.d.ts.map +1 -0
- package/dist/src/util/misc/objectEnlive.min.mjs +2 -0
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -0
- package/dist/src/util/misc/objectEnlive.mjs +145 -0
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -0
- package/dist/src/util/misc/objectTransforms.d.ts +62 -0
- package/dist/src/util/misc/objectTransforms.d.ts.map +1 -0
- package/dist/src/util/misc/objectTransforms.min.mjs +2 -0
- package/dist/src/util/misc/objectTransforms.min.mjs.map +1 -0
- package/dist/src/util/misc/objectTransforms.mjs +105 -0
- package/dist/src/util/misc/objectTransforms.mjs.map +1 -0
- package/dist/src/util/misc/pick.d.ts +9 -0
- package/dist/src/util/misc/pick.d.ts.map +1 -0
- package/dist/src/util/misc/pick.min.mjs +2 -0
- package/dist/src/util/misc/pick.min.mjs.map +1 -0
- package/dist/src/util/misc/pick.mjs +26 -0
- package/dist/src/util/misc/pick.mjs.map +1 -0
- package/dist/src/util/misc/planeChange.d.ts +64 -0
- package/dist/src/util/misc/planeChange.d.ts.map +1 -0
- package/dist/src/util/misc/planeChange.min.mjs +2 -0
- package/dist/src/util/misc/planeChange.min.mjs.map +1 -0
- package/dist/src/util/misc/planeChange.mjs +86 -0
- package/dist/src/util/misc/planeChange.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +2 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +111 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +90 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +2 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +230 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +27 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +2 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +44 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/index.d.ts +12 -0
- package/dist/src/util/misc/projectStroke/index.d.ts.map +1 -0
- package/dist/src/util/misc/projectStroke/index.min.mjs +2 -0
- package/dist/src/util/misc/projectStroke/index.min.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/index.mjs +60 -0
- package/dist/src/util/misc/projectStroke/index.mjs.map +1 -0
- package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
- package/dist/src/util/misc/projectStroke/types.d.ts.map +1 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +1 -0
- package/dist/src/util/misc/radiansDegreesConversion.min.mjs +2 -0
- package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +1 -0
- package/dist/src/util/misc/radiansDegreesConversion.mjs +18 -0
- package/dist/src/util/misc/radiansDegreesConversion.mjs.map +1 -0
- package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
- package/dist/src/util/misc/resolveOrigin.d.ts.map +1 -0
- package/dist/src/util/misc/resolveOrigin.min.mjs +2 -0
- package/dist/src/util/misc/resolveOrigin.min.mjs.map +1 -0
- package/dist/src/util/misc/resolveOrigin.mjs +18 -0
- package/dist/src/util/misc/resolveOrigin.mjs.map +1 -0
- package/dist/src/util/misc/sin.d.ts +10 -0
- package/dist/src/util/misc/sin.d.ts.map +1 -0
- package/dist/src/util/misc/sin.min.mjs +2 -0
- package/dist/src/util/misc/sin.min.mjs.map +1 -0
- package/dist/src/util/misc/sin.mjs +28 -0
- package/dist/src/util/misc/sin.mjs.map +1 -0
- package/dist/src/util/misc/svgExport.d.ts +8 -0
- package/dist/src/util/misc/svgExport.d.ts.map +1 -0
- package/dist/src/util/misc/svgExport.min.mjs +2 -0
- package/dist/src/util/misc/svgExport.min.mjs.map +1 -0
- package/dist/src/util/misc/svgExport.mjs +12 -0
- package/dist/src/util/misc/svgExport.mjs.map +1 -0
- package/dist/src/util/misc/svgParsing.d.ts +40 -0
- package/dist/src/util/misc/svgParsing.d.ts.map +1 -0
- package/dist/src/util/misc/svgParsing.min.mjs +2 -0
- package/dist/src/util/misc/svgParsing.min.mjs.map +1 -0
- package/dist/src/util/misc/svgParsing.mjs +128 -0
- package/dist/src/util/misc/svgParsing.mjs.map +1 -0
- package/dist/src/util/misc/textStyles.d.ts +32 -0
- package/dist/src/util/misc/textStyles.d.ts.map +1 -0
- package/dist/src/util/misc/textStyles.min.mjs +2 -0
- package/dist/src/util/misc/textStyles.min.mjs.map +1 -0
- package/dist/src/util/misc/textStyles.mjs +107 -0
- package/dist/src/util/misc/textStyles.mjs.map +1 -0
- package/dist/src/util/misc/toFixed.d.ts +8 -0
- package/dist/src/util/misc/toFixed.d.ts.map +1 -0
- package/dist/src/util/misc/toFixed.min.mjs +2 -0
- package/dist/src/util/misc/toFixed.min.mjs.map +1 -0
- package/dist/src/util/misc/toFixed.mjs +10 -0
- package/dist/src/util/misc/toFixed.mjs.map +1 -0
- package/dist/src/util/misc/vectors.d.ts +72 -0
- package/dist/src/util/misc/vectors.d.ts.map +1 -0
- package/dist/src/util/misc/vectors.min.mjs +2 -0
- package/dist/src/util/misc/vectors.min.mjs.map +1 -0
- package/dist/src/util/misc/vectors.mjs +94 -0
- package/dist/src/util/misc/vectors.mjs.map +1 -0
- package/dist/src/util/path/index.d.ts +95 -0
- package/dist/src/util/path/index.d.ts.map +1 -0
- package/dist/src/util/path/index.min.mjs +2 -0
- package/dist/src/util/path/index.min.mjs.map +1 -0
- package/dist/src/util/path/index.mjs +826 -0
- package/dist/src/util/path/index.mjs.map +1 -0
- package/dist/src/util/path/regex.d.ts +3 -0
- package/dist/src/util/path/regex.d.ts.map +1 -0
- package/dist/src/util/path/regex.min.mjs +2 -0
- package/dist/src/util/path/regex.min.mjs.map +1 -0
- package/dist/src/util/path/regex.mjs +49 -0
- package/dist/src/util/path/regex.mjs.map +1 -0
- package/dist/src/util/path/typechecks.d.ts +24 -0
- package/dist/src/util/path/typechecks.d.ts.map +1 -0
- package/dist/src/util/path/typedefs.d.ts +222 -0
- package/dist/src/util/path/typedefs.d.ts.map +1 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/transform_matrix_removal.d.ts.map +1 -0
- package/dist/src/util/transform_matrix_removal.min.mjs +2 -0
- package/dist/src/util/transform_matrix_removal.min.mjs.map +1 -0
- package/dist/src/util/transform_matrix_removal.mjs +55 -0
- package/dist/src/util/transform_matrix_removal.mjs.map +1 -0
- package/dist/src/util/typeAssertions.d.ts +13 -0
- package/dist/src/util/typeAssertions.d.ts.map +1 -0
- package/dist/src/util/typeAssertions.min.mjs +2 -0
- package/dist/src/util/typeAssertions.min.mjs.map +1 -0
- package/dist/src/util/typeAssertions.mjs +21 -0
- package/dist/src/util/typeAssertions.mjs.map +1 -0
- 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/data_updaters/gradient/index.mjs +54 -0
- package/dist-extensions/data_updaters/gradient/index.mjs.map +1 -0
- package/dist-extensions/data_updaters/origins/index.mjs +51 -0
- package/dist-extensions/data_updaters/origins/index.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/data_updaters/gradient/index.d.ts +11 -0
- package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +1 -0
- package/dist-extensions/extensions/data_updaters/origins/index.d.ts +21 -0
- package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +1 -0
- package/dist-extensions/extensions/index.d.ts +4 -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 +115 -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 +4 -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 +270 -0
- package/dist-extensions/src/EventTypeDefs.d.ts.map +1 -0
- package/dist-extensions/src/Intersection.d.ts +112 -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 +95 -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 +219 -0
- package/dist-extensions/src/Point.d.ts.map +1 -0
- package/dist-extensions/src/Shadow.d.ts +89 -0
- package/dist-extensions/src/Shadow.d.ts.map +1 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts +94 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts.map +1 -0
- package/dist-extensions/src/brushes/CircleBrush.d.ts +43 -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 +68 -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 +334 -0
- package/dist-extensions/src/canvas/Canvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts +210 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +1 -0
- package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +30 -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 +23 -0
- package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +1 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts +544 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts +596 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -0
- package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +142 -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 +146 -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 +113 -0
- package/dist-extensions/src/config.d.ts.map +1 -0
- package/dist-extensions/src/constants.d.ts +36 -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/changeHeight.d.ts +13 -0
- package/dist-extensions/src/controls/changeHeight.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 +26 -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 +42 -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 +65 -0
- package/dist-extensions/src/filters/BlendColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/BlendImage.d.ts +97 -0
- package/dist-extensions/src/filters/BlendImage.d.ts.map +1 -0
- package/dist-extensions/src/filters/Blur.d.ts +49 -0
- package/dist-extensions/src/filters/Blur.d.ts.map +1 -0
- package/dist-extensions/src/filters/Brightness.d.ts +45 -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 +62 -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 +51 -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 +57 -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 +34 -0
- package/dist-extensions/src/filters/HueRotation.d.ts.map +1 -0
- package/dist-extensions/src/filters/Invert.d.ts +51 -0
- package/dist-extensions/src/filters/Invert.d.ts.map +1 -0
- package/dist-extensions/src/filters/Noise.d.ts +43 -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 +51 -0
- package/dist-extensions/src/filters/RemoveColor.d.ts.map +1 -0
- package/dist-extensions/src/filters/Resize.d.ts +134 -0
- package/dist-extensions/src/filters/Resize.d.ts.map +1 -0
- package/dist-extensions/src/filters/Saturation.d.ts +45 -0
- package/dist-extensions/src/filters/Saturation.d.ts.map +1 -0
- package/dist-extensions/src/filters/Vibrance.d.ts +45 -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 +142 -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 +42 -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 +17 -0
- package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +1 -0
- package/dist-extensions/src/parser/loadSVGFromURL.d.ts +18 -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 +7 -0
- package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +1 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts +8 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts +19 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +1 -0
- package/dist-extensions/src/parser/parseStyleAttribute.d.ts +7 -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 +8 -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 +105 -0
- package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Circle.d.ts +107 -0
- package/dist-extensions/src/shapes/Circle.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts +82 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Group.d.ts +301 -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 +347 -0
- package/dist-extensions/src/shapes/IText/IText.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +321 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +63 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
- package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +197 -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 +296 -0
- package/dist-extensions/src/shapes/Image.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Line.d.ts +118 -0
- package/dist-extensions/src/shapes/Line.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 +716 -0
- package/dist-extensions/src/shapes/Object/Object.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +338 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.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 +92 -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 +62 -0
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +78 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +43 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +41 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +32 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +63 -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 +208 -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 +149 -0
- package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Rect.d.ts +77 -0
- package/dist-extensions/src/shapes/Rect.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts +126 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts +761 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +40 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts +14 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Textbox.d.ts +233 -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/text/browserLines.d.ts +42 -0
- package/dist-extensions/src/text/browserLines.d.ts.map +1 -0
- package/dist-extensions/src/text/ellipsis.d.ts +47 -0
- package/dist-extensions/src/text/ellipsis.d.ts.map +1 -0
- package/dist-extensions/src/text/hitTest.d.ts +82 -0
- package/dist-extensions/src/text/hitTest.d.ts.map +1 -0
- package/dist-extensions/src/text/layout.d.ts +66 -0
- package/dist-extensions/src/text/layout.d.ts.map +1 -0
- package/dist-extensions/src/text/measure.d.ts +131 -0
- package/dist-extensions/src/text/measure.d.ts.map +1 -0
- package/dist-extensions/src/text/overlayEditor.d.ts +113 -0
- package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -0
- package/dist-extensions/src/text/unicode.d.ts +106 -0
- package/dist-extensions/src/text/unicode.d.ts.map +1 -0
- package/dist-extensions/src/typedefs.d.ts +99 -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/index.d.ts +35 -0
- package/dist-extensions/src/util/index.d.ts.map +1 -0
- package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +11 -0
- package/dist-extensions/src/util/internals/applyCanvasTransform.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_style.d.ts +7 -0
- package/dist-extensions/src/util/internals/dom_style.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 +35 -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 +10 -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 +22 -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/sin.d.ts +10 -0
- package/dist-extensions/src/util/misc/sin.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/svgExport.d.ts +8 -0
- package/dist-extensions/src/util/misc/svgExport.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/svgParsing.d.ts +40 -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 +3 -0
- package/dist-extensions/src/util/path/regex.d.ts.map +1 -0
- package/dist-extensions/src/util/path/typedefs.d.ts +222 -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/docs/fabric-konva-gap-analysis.md +274 -0
- package/docs/konva-text-behavior-spec.md +265 -0
- package/docs/text-engine-design.md +698 -0
- package/eslint.config.mjs +96 -0
- package/examples/overlay-edit.html +417 -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 +32 -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/data_updaters/README.md +9 -0
- package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +75 -0
- package/extensions/data_updaters/gradient/index.spec.ts +126 -0
- package/extensions/data_updaters/gradient/index.ts +58 -0
- package/extensions/data_updaters/origins/README.md +32 -0
- package/extensions/data_updaters/origins/index.spec.ts +100 -0
- package/extensions/data_updaters/origins/index.ts +71 -0
- package/extensions/index.ts +14 -0
- package/fabric.ts +182 -0
- package/index.node.ts +49 -0
- package/index.ts +1 -0
- package/lib/aligning_guidelines.js +286 -0
- package/lib/centering_guidelines.js +90 -0
- package/lib/event.js +1963 -0
- package/package.json +164 -0
- package/playwright.config.ts +77 -0
- package/playwright.setup.ts +87 -0
- package/publish-next.js +15 -0
- package/publish.js +17 -0
- package/rollup.config.mjs +180 -0
- package/scripts/bench-text.js +592 -0
- package/scripts/build.mjs +49 -0
- package/scripts/buildLock.mjs +115 -0
- package/scripts/buildReporter.mjs +15 -0
- package/scripts/buildStats.mjs +40 -0
- package/scripts/dirname.mjs +14 -0
- package/scripts/git.mjs +36 -0
- package/scripts/index.mjs +201 -0
- package/scripts/sandbox.mjs +149 -0
- package/src/ClassRegistry.spec.ts +91 -0
- package/src/ClassRegistry.ts +62 -0
- package/src/Collection.spec.ts +463 -0
- package/src/Collection.ts +355 -0
- package/src/CommonMethods.ts +62 -0
- package/src/EventTypeDefs.ts +351 -0
- package/src/Intersection.spec.ts +753 -0
- package/src/Intersection.ts +324 -0
- package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +189 -0
- package/src/LayoutManager/ActiveSelectionLayoutManager.ts +54 -0
- package/src/LayoutManager/LayoutManager.spec.ts +866 -0
- package/src/LayoutManager/LayoutManager.ts +358 -0
- package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +74 -0
- package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +21 -0
- package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +27 -0
- package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +109 -0
- package/src/LayoutManager/LayoutStrategies/utils.ts +56 -0
- package/src/LayoutManager/README.md +125 -0
- package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +71 -0
- package/src/LayoutManager/constants.ts +6 -0
- package/src/LayoutManager/index.ts +6 -0
- package/src/LayoutManager/types.ts +149 -0
- package/src/Observable.spec.ts +449 -0
- package/src/Observable.ts +179 -0
- package/src/Pattern/Pattern.spec.ts +190 -0
- package/src/Pattern/Pattern.ts +216 -0
- package/src/Pattern/index.ts +2 -0
- package/src/Pattern/types.ts +20 -0
- package/src/Point.spec.ts +573 -0
- package/src/Point.ts +374 -0
- package/src/Shadow.spec.ts +283 -0
- package/src/Shadow.ts +236 -0
- package/src/__snapshots__/Shadow.spec.ts.snap +27 -0
- package/src/brushes/BaseBrush.spec.ts +17 -0
- package/src/brushes/BaseBrush.ts +154 -0
- package/src/brushes/CircleBrush.test.ts +13 -0
- package/src/brushes/CircleBrush.ts +139 -0
- package/src/brushes/PatternBrush.ts +70 -0
- package/src/brushes/PencilBrush.spec.ts +275 -0
- package/src/brushes/PencilBrush.ts +302 -0
- package/src/brushes/SprayBrush.ts +207 -0
- package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +59 -0
- package/src/brushes/typedefs.ts +18 -0
- package/src/cache.spec.ts +67 -0
- package/src/cache.ts +90 -0
- package/src/canvas/Canvas-dispose.spec.ts +538 -0
- package/src/canvas/Canvas-events.spec.ts +1735 -0
- package/src/canvas/Canvas.spec.ts +2686 -0
- package/src/canvas/Canvas.ts +1560 -0
- package/src/canvas/CanvasOptions.ts +278 -0
- package/src/canvas/DOMManagers/CanvasDOMManager.ts +129 -0
- package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +80 -0
- package/src/canvas/DOMManagers/util.spec.ts +28 -0
- package/src/canvas/DOMManagers/util.ts +85 -0
- package/src/canvas/SelectableCanvas.spec.ts +504 -0
- package/src/canvas/SelectableCanvas.ts +1459 -0
- package/src/canvas/StaticCanvas.spec.ts +2385 -0
- package/src/canvas/StaticCanvas.ts +1480 -0
- package/src/canvas/StaticCanvasOptions.ts +187 -0
- package/src/canvas/TextEditingManager.ts +68 -0
- package/src/canvas/__tests__/SelectableCanvas.spec.ts +62 -0
- package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +743 -0
- package/src/canvas/__tests__/eventData.test.ts +935 -0
- package/src/canvas/canvas_gestures.mixin.ts +208 -0
- package/src/color/Color.ts +333 -0
- package/src/color/color.test.ts +329 -0
- package/src/color/color_map.ts +154 -0
- package/src/color/constants.ts +114 -0
- package/src/color/typedefs.ts +18 -0
- package/src/color/util.ts +93 -0
- package/src/config.ts +158 -0
- package/src/constants.ts +46 -0
- package/src/controls/Control-cursor.spec.ts +65 -0
- package/src/controls/Control-handlers.spec.ts +299 -0
- package/src/controls/Control.spec.ts +70 -0
- package/src/controls/Control.ts +382 -0
- package/src/controls/changeHeight.ts +55 -0
- package/src/controls/changeWidth.test.ts +147 -0
- package/src/controls/changeWidth.ts +55 -0
- package/src/controls/commonControls.ts +112 -0
- package/src/controls/controlRendering.ts +136 -0
- package/src/controls/drag.ts +32 -0
- package/src/controls/fireEvent.ts +18 -0
- package/src/controls/index.ts +23 -0
- package/src/controls/pathControl.spec.ts +77 -0
- package/src/controls/pathControl.ts +293 -0
- package/src/controls/polyControl.spec.ts +51 -0
- package/src/controls/polyControl.ts +131 -0
- package/src/controls/rotate.ts +88 -0
- package/src/controls/scale.test.ts +137 -0
- package/src/controls/scale.ts +288 -0
- package/src/controls/scaleSkew.ts +94 -0
- package/src/controls/skew.ts +251 -0
- package/src/controls/util.ts +162 -0
- package/src/controls/wrapWithFireEvent.ts +34 -0
- package/src/controls/wrapWithFixedAnchor.spec.ts +124 -0
- package/src/controls/wrapWithFixedAnchor.ts +26 -0
- package/src/env/browser.ts +21 -0
- package/src/env/env.spec.ts +47 -0
- package/src/env/index.ts +47 -0
- package/src/env/node.ts +50 -0
- package/src/env/types.ts +16 -0
- package/src/filters/BaseFilter.spec.ts +16 -0
- package/src/filters/BaseFilter.ts +416 -0
- package/src/filters/BlendColor.ts +197 -0
- package/src/filters/BlendImage.ts +220 -0
- package/src/filters/Blur.ts +205 -0
- package/src/filters/Boilerplate.ts +84 -0
- package/src/filters/Brightness.ts +75 -0
- package/src/filters/Canvas2dFilterBackend.ts +68 -0
- package/src/filters/ColorMatrix.spec.ts +39 -0
- package/src/filters/ColorMatrix.ts +141 -0
- package/src/filters/ColorMatrixFilters.ts +84 -0
- package/src/filters/Composed.ts +87 -0
- package/src/filters/Contrast.ts +76 -0
- package/src/filters/Convolute.ts +174 -0
- package/src/filters/FilterBackend.ts +38 -0
- package/src/filters/GLProbes/GLProbe.ts +7 -0
- package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
- package/src/filters/GLProbes/WebGLProbe.ts +49 -0
- package/src/filters/Gamma.ts +119 -0
- package/src/filters/Grayscale.ts +91 -0
- package/src/filters/HueRotation.ts +95 -0
- package/src/filters/Invert.ts +88 -0
- package/src/filters/Noise.ts +76 -0
- package/src/filters/Pixelate.ts +85 -0
- package/src/filters/RemoveColor.ts +121 -0
- package/src/filters/Resize.ts +545 -0
- package/src/filters/Saturation.ts +80 -0
- package/src/filters/Vibrance.ts +82 -0
- package/src/filters/WebGLFilterBackend.spec.ts +50 -0
- package/src/filters/WebGLFilterBackend.ts +416 -0
- package/src/filters/filters.ts +30 -0
- package/src/filters/index.ts +12 -0
- package/src/filters/shaders/baseFilter.ts +17 -0
- package/src/filters/shaders/blendColor.ts +33 -0
- package/src/filters/shaders/blendImage.ts +44 -0
- package/src/filters/shaders/blur.ts +30 -0
- package/src/filters/shaders/brightness.ts +11 -0
- package/src/filters/shaders/colorMatrix.ts +12 -0
- package/src/filters/shaders/constrast.ts +11 -0
- package/src/filters/shaders/convolute.ts +154 -0
- package/src/filters/shaders/gamma.ts +15 -0
- package/src/filters/shaders/grayscale.ts +36 -0
- package/src/filters/shaders/invert.ts +19 -0
- package/src/filters/shaders/noise.ts +16 -0
- package/src/filters/shaders/pixelate.ts +19 -0
- package/src/filters/shaders/removeColor.ts +13 -0
- package/src/filters/shaders/saturation.ts +15 -0
- package/src/filters/shaders/vibrance.ts +16 -0
- package/src/filters/typedefs.ts +81 -0
- package/src/filters/utils.ts +52 -0
- package/src/gradient/Gradient.spec.ts +821 -0
- package/src/gradient/Gradient.ts +404 -0
- package/src/gradient/constants.ts +12 -0
- package/src/gradient/index.ts +2 -0
- package/src/gradient/parser/misc.ts +13 -0
- package/src/gradient/parser/parseColorStops.ts +58 -0
- package/src/gradient/parser/parseCoords.ts +76 -0
- package/src/gradient/typedefs.ts +108 -0
- package/src/mixins/eraser_brush.mixin.ts +869 -0
- package/src/parkinglot/canvas_animation.mixin.ts +120 -0
- package/src/parkinglot/straighten.ts +76 -0
- package/src/parser/applyViewboxTransform.spec.ts +397 -0
- package/src/parser/applyViewboxTransform.ts +174 -0
- package/src/parser/attributes.ts +27 -0
- package/src/parser/constants.spec.ts +36 -0
- package/src/parser/constants.ts +88 -0
- package/src/parser/doesSomeParentMatch.ts +21 -0
- package/src/parser/elementMatchesRule.ts +19 -0
- package/src/parser/elements_parser.ts +230 -0
- package/src/parser/getCSSRules.spec.ts +51 -0
- package/src/parser/getCSSRules.ts +68 -0
- package/src/parser/getGlobalStylesForElement.ts +22 -0
- package/src/parser/getGradientDefs.ts +33 -0
- package/src/parser/getMultipleNodes.ts +19 -0
- package/src/parser/getSvgRegex.ts +3 -0
- package/src/parser/getTagName.ts +1 -0
- package/src/parser/hasInvalidAncestor.ts +20 -0
- package/src/parser/loadSVGFromString.test.ts +75 -0
- package/src/parser/loadSVGFromString.ts +28 -0
- package/src/parser/loadSVGFromURL.ts +42 -0
- package/src/parser/normalizeAttr.ts +5 -0
- package/src/parser/normalizeValue.ts +76 -0
- package/src/parser/parseAttributes.ts +92 -0
- package/src/parser/parseFontDeclaration.ts +43 -0
- package/src/parser/parsePointsAttribute.ts +31 -0
- package/src/parser/parseSVGDocument.ts +93 -0
- package/src/parser/parseStyleAttribute.ts +26 -0
- package/src/parser/parseStyleObject.ts +17 -0
- package/src/parser/parseStyleString.ts +19 -0
- package/src/parser/parseTransformAttribute.ts +92 -0
- package/src/parser/parseUseDirectives.test.ts +115 -0
- package/src/parser/parseUseDirectives.ts +91 -0
- package/src/parser/parser.spec.ts +816 -0
- package/src/parser/percent.ts +27 -0
- package/src/parser/recursivelyParseGradientsXlink.ts +40 -0
- package/src/parser/selectorMatches.ts +26 -0
- package/src/parser/setStrokeFillOpacity.ts +41 -0
- package/src/parser/typedefs.ts +15 -0
- package/src/shapes/ActiveSelection.spec.ts +405 -0
- package/src/shapes/ActiveSelection.ts +254 -0
- package/src/shapes/Circle.spec.ts +307 -0
- package/src/shapes/Circle.ts +257 -0
- package/src/shapes/Ellipse.spec.ts +237 -0
- package/src/shapes/Ellipse.ts +181 -0
- package/src/shapes/Group.spec.ts +1805 -0
- package/src/shapes/Group.ts +717 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +387 -0
- package/src/shapes/IText/IText-click-behavior.spec.ts +443 -0
- package/src/shapes/IText/IText.test.ts +1226 -0
- package/src/shapes/IText/IText.ts +846 -0
- package/src/shapes/IText/ITextBehavior.test.ts +251 -0
- package/src/shapes/IText/ITextBehavior.ts +1177 -0
- package/src/shapes/IText/ITextClickBehavior.ts +254 -0
- package/src/shapes/IText/ITextKeyBehavior.test.ts +348 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +691 -0
- package/src/shapes/IText/__snapshots__/IText.test.ts.snap +50 -0
- package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +1110 -0
- package/src/shapes/IText/constants.ts +65 -0
- package/src/shapes/Image-filters.spec.ts +1904 -0
- package/src/shapes/Image.spec.ts +1043 -0
- package/src/shapes/Image.ts +846 -0
- package/src/shapes/Line.spec.ts +208 -0
- package/src/shapes/Line.ts +288 -0
- package/src/shapes/Object/FabricObject.spec.ts +18 -0
- package/src/shapes/Object/FabricObject.ts +33 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +253 -0
- package/src/shapes/Object/InteractiveObject.spec.ts +70 -0
- package/src/shapes/Object/InteractiveObject.ts +727 -0
- package/src/shapes/Object/Object-clip-path.spec.ts +197 -0
- package/src/shapes/Object/Object-interactivity.spec.ts +833 -0
- package/src/shapes/Object/Object.spec.ts +1873 -0
- package/src/shapes/Object/Object.ts +1941 -0
- package/src/shapes/Object/ObjectGeometry.spec.ts +1149 -0
- package/src/shapes/Object/ObjectGeometry.ts +798 -0
- package/src/shapes/Object/ObjectOrigin.spec.ts +469 -0
- package/src/shapes/Object/ObjectSerialization.spec.ts +63 -0
- package/src/shapes/Object/StackedObject.spec.ts +369 -0
- package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +75 -0
- package/src/shapes/Object/defaultValues.ts +128 -0
- package/src/shapes/Object/types/BaseProps.ts +104 -0
- package/src/shapes/Object/types/BorderProps.ts +40 -0
- package/src/shapes/Object/types/ControlProps.ts +70 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +73 -0
- package/src/shapes/Object/types/FillStrokeProps.ts +88 -0
- package/src/shapes/Object/types/LockInteractionProps.ts +49 -0
- package/src/shapes/Object/types/ObjectProps.ts +51 -0
- package/src/shapes/Object/types/ObjectTransformProps.ts +35 -0
- package/src/shapes/Object/types/SerializedObjectProps.ts +70 -0
- package/src/shapes/Object/types/index.ts +7 -0
- package/src/shapes/Path.spec.ts +659 -0
- package/src/shapes/Path.ts +414 -0
- package/src/shapes/Polygon.spec.ts +566 -0
- package/src/shapes/Polygon.ts +15 -0
- package/src/shapes/Polyline.spec.ts +404 -0
- package/src/shapes/Polyline.ts +429 -0
- package/src/shapes/Rect.spec.ts +270 -0
- package/src/shapes/Rect.ts +221 -0
- package/src/shapes/Text/StyledText.spec.ts +61 -0
- package/src/shapes/Text/StyledText.ts +335 -0
- package/src/shapes/Text/Text.spec.ts +1315 -0
- package/src/shapes/Text/Text.ts +2161 -0
- package/src/shapes/Text/TextSVGExportMixin.spec.ts +104 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +384 -0
- package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +225 -0
- package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +53 -0
- package/src/shapes/Text/constants.ts +134 -0
- package/src/shapes/Textbox.spec.ts +975 -0
- package/src/shapes/Textbox.ts +669 -0
- package/src/shapes/Triangle.ts +69 -0
- package/src/shapes/__snapshots__/Image.spec.ts.snap +22 -0
- package/src/shapes/__snapshots__/Textbox.spec.ts.snap +165 -0
- package/src/text/browserLines.ts +234 -0
- package/src/text/ellipsis.ts +517 -0
- package/src/text/hitTest.ts +624 -0
- package/src/text/layout.ts +587 -0
- package/src/text/measure.ts +476 -0
- package/src/text/overlayEditor.ts +637 -0
- package/src/text/unicode.ts +455 -0
- package/src/typedefs.ts +132 -0
- package/src/util/__snapshots__/index.spec.ts.snap +124 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +9 -0
- package/src/util/animation/AnimationRegistry.ts +59 -0
- package/src/util/animation/ArrayAnimation.ts +27 -0
- package/src/util/animation/ColorAnimation.ts +74 -0
- package/src/util/animation/ValueAnimation.ts +29 -0
- package/src/util/animation/__snapshots__/animations.spec.ts.snap +2772 -0
- package/src/util/animation/animate.ts +74 -0
- package/src/util/animation/animations.spec.ts +488 -0
- package/src/util/animation/easing.ts +327 -0
- package/src/util/animation/index.ts +2 -0
- package/src/util/animation/types.ts +136 -0
- package/src/util/applyMixins.ts +22 -0
- package/src/util/dom_event.spec.ts +23 -0
- package/src/util/dom_event.ts +29 -0
- package/src/util/dom_misc.ts +55 -0
- package/src/util/index.spec.ts +24 -0
- package/src/util/index.ts +116 -0
- package/src/util/internals/applyCanvasTransform.ts +19 -0
- package/src/util/internals/cleanupSvgAttribute.test.ts +17 -0
- package/src/util/internals/cleanupSvgAttribute.ts +10 -0
- package/src/util/internals/cloneStyles.spec.ts +48 -0
- package/src/util/internals/cloneStyles.ts +12 -0
- package/src/util/internals/console.ts +18 -0
- package/src/util/internals/dom_style.spec.ts +17 -0
- package/src/util/internals/dom_style.ts +16 -0
- package/src/util/internals/findRight.ts +11 -0
- package/src/util/internals/getRandomInt.test.ts +49 -0
- package/src/util/internals/getRandomInt.ts +8 -0
- package/src/util/internals/ifNaN.ts +9 -0
- package/src/util/internals/removeFromArray.spec.ts +30 -0
- package/src/util/internals/removeFromArray.ts +14 -0
- package/src/util/internals/uid.ts +3 -0
- package/src/util/lang_string.spec.ts +51 -0
- package/src/util/lang_string.ts +106 -0
- package/src/util/misc/boundingBoxFromPoints.spec.ts +25 -0
- package/src/util/misc/boundingBoxFromPoints.ts +29 -0
- package/src/util/misc/capValue.spec.ts +22 -0
- package/src/util/misc/capValue.ts +2 -0
- package/src/util/misc/cos.spec.ts +12 -0
- package/src/util/misc/cos.ts +24 -0
- package/src/util/misc/dom.spec.ts +75 -0
- package/src/util/misc/dom.ts +77 -0
- package/src/util/misc/findScaleTo.spec.ts +68 -0
- package/src/util/misc/findScaleTo.ts +29 -0
- package/src/util/misc/groupSVGElements.spec.ts +41 -0
- package/src/util/misc/groupSVGElements.ts +19 -0
- package/src/util/misc/isTransparent.ts +28 -0
- package/src/util/misc/matrix.spec.ts +199 -0
- package/src/util/misc/matrix.ts +323 -0
- package/src/util/misc/mergeClipPaths.spec.ts +109 -0
- package/src/util/misc/mergeClipPaths.ts +39 -0
- package/src/util/misc/objectEnlive.spec.ts +129 -0
- package/src/util/misc/objectEnlive.ts +192 -0
- package/src/util/misc/objectTransforms.spec.ts +67 -0
- package/src/util/misc/objectTransforms.ts +122 -0
- package/src/util/misc/pick.spec.ts +32 -0
- package/src/util/misc/pick.ts +29 -0
- package/src/util/misc/planeChange.spec.ts +102 -0
- package/src/util/misc/planeChange.ts +92 -0
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +148 -0
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +314 -0
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +66 -0
- package/src/util/misc/projectStroke/index.ts +81 -0
- package/src/util/misc/projectStroke/types.ts +24 -0
- package/src/util/misc/radiansDegreesConversion.spec.ts +27 -0
- package/src/util/misc/radiansDegreesConversion.ts +18 -0
- package/src/util/misc/resolveOrigin.ts +22 -0
- package/src/util/misc/sin.ts +26 -0
- package/src/util/misc/svgExport.ts +15 -0
- package/src/util/misc/svgParsing.spec.ts +103 -0
- package/src/util/misc/svgParsing.ts +167 -0
- package/src/util/misc/textStyles.ts +137 -0
- package/src/util/misc/toFixed.spec.ts +26 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.spec.ts +136 -0
- package/src/util/misc/vectors.ts +100 -0
- package/src/util/path/__snapshots__/index.spec.ts.snap +844 -0
- package/src/util/path/index.spec.ts +165 -0
- package/src/util/path/index.ts +1044 -0
- package/src/util/path/regex.ts +46 -0
- package/src/util/path/typechecks.ts +145 -0
- package/src/util/path/typedefs.ts +326 -0
- package/src/util/transform_matrix_removal.ts +61 -0
- package/src/util/typeAssertions.spec.ts +127 -0
- package/src/util/typeAssertions.ts +47 -0
- package/tsconfig-extensions.json +108 -0
- package/tsconfig.json +118 -0
- package/tsconfig.spec.json +24 -0
- package/typedoc.config.json +12 -0
- package/vitest.config.ts +100 -0
- package/vitest.d.ts +32 -0
- package/vitest.env.d.ts +14 -0
- package/vitest.extend.ts +195 -0
- package/vitest.setup.ts +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IText.mjs","sources":["../../../../src/shapes/IText/IText.ts"],"sourcesContent":["import { Canvas } from '../../canvas/Canvas';\r\nimport type { ITextEvents } from './ITextBehavior';\r\nimport { ITextClickBehavior } from './ITextClickBehavior';\r\nimport { hitTest, getCursorRect, getSelectionRects } from '../../text/hitTest';\r\nimport type { HitTestResult, CursorRect } from '../../text/hitTest';\r\nimport {\r\n ctrlKeysMapDown,\r\n ctrlKeysMapUp,\r\n keysMap,\r\n keysMapRtl,\r\n} from './constants';\r\nimport type { TClassProperties, TFiller, TOptions } from '../../typedefs';\r\nimport type { TPointerEvent } from '../../EventTypeDefs';\r\nimport { classRegistry } from '../../ClassRegistry';\r\nimport type { SerializedTextProps, TextProps } from '../Text/Text';\r\nimport {\r\n JUSTIFY,\r\n JUSTIFY_CENTER,\r\n JUSTIFY_LEFT,\r\n JUSTIFY_RIGHT,\r\n} from '../Text/constants';\r\nimport { CENTER, FILL, LEFT, RIGHT } from '../../constants';\r\nimport type { ObjectToCanvasElementOptions } from '../Object/Object';\r\nimport type { FabricObject } from '../Object/FabricObject';\r\nimport { createCanvasElementFor } from '../../util/misc/dom';\r\nimport { applyCanvasTransform } from '../../util/internals/applyCanvasTransform';\r\nimport { Point } from '../../Point';\r\nimport { invertTransform } from '../../util/misc/matrix';\r\n\r\nexport type CursorBoundaries = {\r\n left: number;\r\n top: number;\r\n leftOffset: number;\r\n topOffset: number;\r\n};\r\n\r\nexport type CursorRenderingData = {\r\n color: string;\r\n opacity: number;\r\n left: number;\r\n top: number;\r\n width: number;\r\n height: number;\r\n};\r\n\r\n// Declare IText protected properties to workaround TS\r\nconst protectedDefaultValues = {\r\n _selectionDirection: null,\r\n _reSpace: /\\s|\\r?\\n/,\r\n inCompositionMode: false,\r\n};\r\n\r\nexport const iTextDefaultValues: Partial<TClassProperties<IText>> = {\r\n selectionStart: 0,\r\n selectionEnd: 0,\r\n selectionColor: 'rgba(17,119,255,0.3)',\r\n isEditing: false,\r\n editable: true,\r\n editingBorderColor: 'rgba(102,153,255,0.25)',\r\n cursorWidth: 2,\r\n cursorColor: '',\r\n cursorDelay: 1000,\r\n cursorDuration: 600,\r\n caching: true,\r\n hiddenTextareaContainer: null,\r\n keysMap,\r\n keysMapRtl,\r\n ctrlKeysMapDown,\r\n ctrlKeysMapUp,\r\n ...protectedDefaultValues,\r\n};\r\n\r\n// @TODO this is not complete\r\ninterface UniqueITextProps {\r\n selectionStart: number;\r\n selectionEnd: number;\r\n}\r\n\r\nexport interface SerializedITextProps\r\n extends SerializedTextProps,\r\n UniqueITextProps {}\r\n\r\nexport interface ITextProps extends TextProps, UniqueITextProps {}\r\n\r\n/**\r\n * @fires changed\r\n * @fires selection:changed\r\n * @fires editing:entered\r\n * @fires editing:exited\r\n * @fires dragstart\r\n * @fires drag drag event firing on the drag source\r\n * @fires dragend\r\n * @fires copy\r\n * @fires cut\r\n * @fires paste\r\n *\r\n * #### Supported key combinations\r\n * ```\r\n * Move cursor: left, right, up, down\r\n * Select character: shift + left, shift + right\r\n * Select text vertically: shift + up, shift + down\r\n * Move cursor by word: alt + left, alt + right\r\n * Select words: shift + alt + left, shift + alt + right\r\n * Move cursor to line start/end: cmd + left, cmd + right or home, end\r\n * Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end\r\n * Jump to start/end of text: cmd + up, cmd + down\r\n * Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown\r\n * Delete character: backspace\r\n * Delete word: alt + backspace\r\n * Delete line: cmd + backspace\r\n * Forward delete: delete\r\n * Copy text: ctrl/cmd + c\r\n * Paste text: ctrl/cmd + v\r\n * Cut text: ctrl/cmd + x\r\n * Select entire text: ctrl/cmd + a\r\n * Quit editing tab or esc\r\n * ```\r\n *\r\n * #### Supported mouse/touch combination\r\n * ```\r\n * Position cursor: click/touch\r\n * Create selection: click/touch & drag\r\n * Create selection: click & shift + click\r\n * Select word: double click\r\n * Select line: triple click\r\n * ```\r\n */\r\nexport class IText<\r\n Props extends TOptions<ITextProps> = Partial<ITextProps>,\r\n SProps extends SerializedITextProps = SerializedITextProps,\r\n EventSpec extends ITextEvents = ITextEvents,\r\n >\r\n extends ITextClickBehavior<Props, SProps, EventSpec>\r\n implements UniqueITextProps\r\n{\r\n /**\r\n * Index where text selection starts (or where cursor is when there is no selection)\r\n * @type Number\r\n */\r\n declare selectionStart: number;\r\n\r\n /**\r\n * Index where text selection ends\r\n * @type Number\r\n */\r\n declare selectionEnd: number;\r\n\r\n declare compositionStart: number;\r\n\r\n declare compositionEnd: number;\r\n\r\n /**\r\n * Color of text selection\r\n * @type String\r\n */\r\n declare selectionColor: string;\r\n\r\n /**\r\n * Indicates whether text is in editing mode\r\n * @type Boolean\r\n */\r\n declare isEditing: boolean;\r\n\r\n /**\r\n * Indicates whether a text can be edited\r\n * @type Boolean\r\n */\r\n declare editable: boolean;\r\n\r\n /**\r\n * Border color of text object while it's in editing mode\r\n * @type String\r\n */\r\n declare editingBorderColor: string;\r\n\r\n /**\r\n * Width of cursor (in px)\r\n * @type Number\r\n */\r\n declare cursorWidth: number;\r\n\r\n /**\r\n * Color of text cursor color in editing mode.\r\n * if not set (default) will take color from the text.\r\n * if set to a color value that fabric can understand, it will\r\n * be used instead of the color of the text at the current position.\r\n * @type String\r\n */\r\n declare cursorColor: string;\r\n\r\n /**\r\n * Delay between cursor blink (in ms)\r\n * @type Number\r\n */\r\n declare cursorDelay: number;\r\n\r\n /**\r\n * Duration of cursor fade in (in ms)\r\n * @type Number\r\n */\r\n declare cursorDuration: number;\r\n\r\n declare compositionColor: string;\r\n\r\n /**\r\n * Indicates whether internal text char widths can be cached\r\n * @type Boolean\r\n */\r\n declare caching: boolean;\r\n\r\n static ownDefaults = iTextDefaultValues;\r\n\r\n static getDefaults(): Record<string, any> {\r\n return { ...super.getDefaults(), ...IText.ownDefaults };\r\n }\r\n\r\n static type = 'IText';\r\n\r\n get type() {\r\n const type = super.type;\r\n // backward compatibility\r\n return type === 'itext' ? 'i-text' : type;\r\n }\r\n\r\n /**\r\n * Constructor\r\n * @param {String} text Text string\r\n * @param {Object} [options] Options object\r\n */\r\n constructor(text: string, options?: Props) {\r\n super(text, { ...IText.ownDefaults, ...options } as Props);\r\n this.initBehavior();\r\n }\r\n\r\n /**\r\n * While editing handle differently\r\n * @private\r\n * @param {string} key\r\n * @param {*} value\r\n */\r\n _set(key: string, value: any) {\r\n if (this.isEditing && this._savedProps && key in this._savedProps) {\r\n // @ts-expect-error irritating TS\r\n this._savedProps[key] = value;\r\n return this;\r\n }\r\n if (key === 'canvas') {\r\n this.canvas instanceof Canvas &&\r\n this.canvas.textEditingManager.remove(this);\r\n value instanceof Canvas && value.textEditingManager.add(this);\r\n }\r\n return super._set(key, value);\r\n }\r\n\r\n /**\r\n * Sets selection start (left boundary of a selection)\r\n * @param {Number} index Index to set selection start to\r\n */\r\n setSelectionStart(index: number) {\r\n index = Math.max(index, 0);\r\n this._updateAndFire('selectionStart', index);\r\n }\r\n\r\n /**\r\n * Sets selection end (right boundary of a selection)\r\n * @param {Number} index Index to set selection end to\r\n */\r\n setSelectionEnd(index: number) {\r\n index = Math.min(index, this.text.length);\r\n this._updateAndFire('selectionEnd', index);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {String} property 'selectionStart' or 'selectionEnd'\r\n * @param {Number} index new position of property\r\n */\r\n protected _updateAndFire(\r\n property: 'selectionStart' | 'selectionEnd',\r\n index: number,\r\n ) {\r\n if (this[property] !== index) {\r\n this._fireSelectionChanged();\r\n this[property] = index;\r\n }\r\n this._updateTextarea();\r\n }\r\n\r\n /**\r\n * Fires the even of selection changed\r\n * @private\r\n */\r\n _fireSelectionChanged() {\r\n this.fire('selection:changed');\r\n this.canvas && this.canvas.fire('text:selection:changed', { target: this });\r\n }\r\n\r\n /**\r\n * Initialize text dimensions. Render all text on given context\r\n * or on a offscreen canvas to get the text width with measureText.\r\n * Updates this.width and this.height with the proper values.\r\n * Does not return dimensions.\r\n * @private\r\n */\r\n initDimensions() {\r\n this.isEditing && this.initDelayedCursor();\r\n super.initDimensions();\r\n }\r\n\r\n /**\r\n * Gets style of a current selection/cursor (at the start position)\r\n * if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.\r\n * @param {Number} startIndex Start index to get styles at\r\n * @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1\r\n * @param {Boolean} [complete] get full style or not\r\n * @return {Array} styles an array with one, zero or more Style objects\r\n */\r\n getSelectionStyles(\r\n startIndex: number = this.selectionStart || 0,\r\n endIndex: number = this.selectionEnd,\r\n complete?: boolean,\r\n ) {\r\n return super.getSelectionStyles(startIndex, endIndex, complete);\r\n }\r\n\r\n /**\r\n * Sets style of a current selection, if no selection exist, do not set anything.\r\n * @param {Object} [styles] Styles object\r\n * @param {Number} [startIndex] Start index to get styles at\r\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\r\n */\r\n setSelectionStyles(\r\n styles: object,\r\n startIndex: number = this.selectionStart || 0,\r\n endIndex: number = this.selectionEnd,\r\n ) {\r\n return super.setSelectionStyles(styles, startIndex, endIndex);\r\n }\r\n\r\n /**\r\n * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)\r\n * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.\r\n * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.\r\n */\r\n get2DCursorLocation(\r\n selectionStart = this.selectionStart,\r\n skipWrapping?: boolean,\r\n ) {\r\n return super.get2DCursorLocation(selectionStart, skipWrapping);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n render(ctx: CanvasRenderingContext2D) {\r\n super.render(ctx);\r\n // clear the cursorOffsetCache, so we ensure to calculate once per renderCursor\r\n // the correct position but not at every cursor animation.\r\n this.cursorOffsetCache = {};\r\n this.renderCursorOrSelection();\r\n }\r\n\r\n /**\r\n * @override block cursor/selection logic while rendering the exported canvas\r\n * @todo this workaround should be replaced with a more robust solution\r\n */\r\n toCanvasElement(options?: ObjectToCanvasElementOptions): HTMLCanvasElement {\r\n const isEditing = this.isEditing;\r\n this.isEditing = false;\r\n const canvas = super.toCanvasElement(options);\r\n this.isEditing = isEditing;\r\n return canvas;\r\n }\r\n\r\n /**\r\n * Renders cursor or selection (depending on what exists)\r\n * it does on the contextTop. If contextTop is not available, do nothing.\r\n */\r\n renderCursorOrSelection() {\r\n if (!this.isEditing || !this.canvas) {\r\n return;\r\n }\r\n const ctx = this.clearContextTop(true);\r\n if (!ctx) {\r\n return;\r\n }\r\n const boundaries = this._getCursorBoundaries();\r\n\r\n const ancestors = this.findAncestorsWithClipPath();\r\n const hasAncestorsWithClipping = ancestors.length > 0;\r\n let drawingCtx: CanvasRenderingContext2D = ctx;\r\n let drawingCanvas: HTMLCanvasElement | undefined = undefined;\r\n if (hasAncestorsWithClipping) {\r\n // we have some clipPath, we need to draw the selection on an intermediate layer.\r\n drawingCanvas = createCanvasElementFor(ctx.canvas);\r\n drawingCtx = drawingCanvas.getContext('2d')!;\r\n applyCanvasTransform(drawingCtx, this.canvas);\r\n const m = this.calcTransformMatrix();\r\n drawingCtx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\r\n }\r\n\r\n if (this.selectionStart === this.selectionEnd && !this.inCompositionMode) {\r\n this.renderCursor(drawingCtx, boundaries);\r\n } else {\r\n this.renderSelection(drawingCtx, boundaries);\r\n }\r\n\r\n if (hasAncestorsWithClipping) {\r\n // we need a neutral context.\r\n // this won't work for nested clippaths in which a clippath\r\n // has its own clippath\r\n for (const ancestor of ancestors) {\r\n const clipPath = ancestor.clipPath!;\r\n const clippingCanvas = createCanvasElementFor(ctx.canvas);\r\n const clippingCtx = clippingCanvas.getContext('2d')!;\r\n applyCanvasTransform(clippingCtx, this.canvas);\r\n // position the ctx in the center of the outer ancestor\r\n if (!clipPath.absolutePositioned) {\r\n const m = ancestor.calcTransformMatrix();\r\n clippingCtx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\r\n }\r\n clipPath.transform(clippingCtx);\r\n // we assign an empty drawing context, we don't plan to have this working for nested clippaths for now\r\n clipPath.drawObject(clippingCtx, true, {});\r\n this.drawClipPathOnCache(drawingCtx, clipPath, clippingCanvas);\r\n }\r\n }\r\n\r\n if (hasAncestorsWithClipping) {\r\n ctx.setTransform(1, 0, 0, 1, 0, 0);\r\n ctx.drawImage(drawingCanvas!, 0, 0);\r\n }\r\n\r\n this.canvas.contextTopDirty = true;\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * Finds and returns an array of clip paths that are applied to the parent\r\n * group(s) of the current FabricObject instance. The object's hierarchy is\r\n * traversed upwards (from the current object towards the root of the canvas),\r\n * checking each parent object for the presence of a `clipPath` that is not\r\n * absolutely positioned.\r\n */\r\n findAncestorsWithClipPath(): FabricObject[] {\r\n const clipPathAncestors: FabricObject[] = [];\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n let obj: FabricObject | undefined = this;\r\n while (obj) {\r\n if (obj.clipPath) {\r\n clipPathAncestors.push(obj);\r\n }\r\n obj = obj.parent;\r\n }\r\n\r\n return clipPathAncestors;\r\n }\r\n\r\n /**\r\n * Returns cursor boundaries (left, top, leftOffset, topOffset)\r\n * left/top are left/top of entire text box\r\n * leftOffset/topOffset are offset from that left/top point of a text box\r\n * @private\r\n * @param {number} [index] index from start\r\n * @param {boolean} [skipCaching]\r\n */\r\n _getCursorBoundaries(\r\n index: number = this.selectionStart,\r\n skipCaching?: boolean,\r\n ): CursorBoundaries {\r\n // Use advanced cursor positioning if available\r\n if (this.enableAdvancedLayout) {\r\n return this._getCursorBoundariesAdvanced(index);\r\n }\r\n \r\n // Fall back to original method\r\n return this._getCursorBoundariesOriginal(index, skipCaching);\r\n }\r\n\r\n\r\n /**\r\n * Caches and returns cursor left/top offset relative to instance's center point\r\n * @private\r\n * @param {number} index index from start\r\n * @param {boolean} [skipCaching]\r\n */\r\n _getCursorBoundariesOffsets(\r\n index: number,\r\n skipCaching?: boolean,\r\n ): { left: number; top: number } {\r\n if (skipCaching) {\r\n return this.__getCursorBoundariesOffsets(index);\r\n }\r\n if (this.cursorOffsetCache && 'top' in this.cursorOffsetCache) {\r\n return this.cursorOffsetCache as { left: number; top: number };\r\n }\r\n return (this.cursorOffsetCache = this.__getCursorBoundariesOffsets(index));\r\n }\r\n\r\n /**\r\n * Enhanced cursor boundaries using advanced hit testing when available\r\n * @private\r\n */\r\n _getCursorBoundariesAdvanced(index: number): CursorBoundaries {\r\n if (!this.enableAdvancedLayout || !(this as any)._layoutTextAdvanced) {\r\n return this._getCursorBoundariesOriginal(index);\r\n }\r\n\r\n const layout = (this as any)._layoutTextAdvanced();\r\n const cursorRect = getCursorRect(index, layout, (this as any)._getAdvancedLayoutOptions());\r\n \r\n return {\r\n left: this._getLeftOffset(),\r\n top: this._getTopOffset(),\r\n leftOffset: cursorRect.x,\r\n topOffset: cursorRect.y,\r\n };\r\n }\r\n\r\n /**\r\n * Enhanced selection start from pointer using BiDi-aware hit testing\r\n * @override\r\n */\r\n getSelectionStartFromPointer(e: TPointerEvent): number {\r\n if (!this.enableAdvancedLayout || !(this as any)._layoutTextAdvanced) {\r\n return super.getSelectionStartFromPointer(e);\r\n }\r\n\r\n const mouseOffset = this.canvas!.getScenePoint(e)\r\n .transform(invertTransform(this.calcTransformMatrix()))\r\n .add(new Point(-this._getLeftOffset(), -this._getTopOffset()));\r\n\r\n // Use BiDi-aware hit testing instead of naive RTL coordinate flipping\r\n const layout = (this as any)._layoutTextAdvanced();\r\n const hitResult = hitTest(mouseOffset.x, mouseOffset.y, layout, (this as any)._getAdvancedLayoutOptions());\r\n \r\n return Math.min(hitResult.charIndex, this._text.length);\r\n }\r\n\r\n /**\r\n * Original cursor boundaries implementation\r\n * @private\r\n */\r\n _getCursorBoundariesOriginal(index: number, skipCaching?: boolean): CursorBoundaries {\r\n const left = this._getLeftOffset(),\r\n top = this._getTopOffset(),\r\n offsets = this._getCursorBoundariesOffsets(index, skipCaching);\r\n return {\r\n left: left,\r\n top: top,\r\n leftOffset: offsets.left,\r\n topOffset: offsets.top,\r\n };\r\n }\r\n\r\n /**\r\n * Calculates cursor left/top offset relative to instance's center point\r\n * @private\r\n * @param {number} index index from start\r\n */\r\n __getCursorBoundariesOffsets(index: number) {\r\n let topOffset = 0,\r\n leftOffset = 0;\r\n const { charIndex, lineIndex } = this.get2DCursorLocation(index);\r\n\r\n for (let i = 0; i < lineIndex; i++) {\r\n topOffset += this.getHeightOfLine(i);\r\n }\r\n const lineLeftOffset = this._getLineLeftOffset(lineIndex);\r\n const bound = this.__charBounds[lineIndex][charIndex];\r\n bound && (leftOffset = bound.left);\r\n if (\r\n this.charSpacing !== 0 &&\r\n charIndex === this._textLines[lineIndex].length\r\n ) {\r\n leftOffset -= this._getWidthOfCharSpacing();\r\n }\r\n const boundaries = {\r\n top: topOffset,\r\n left: lineLeftOffset + (leftOffset > 0 ? leftOffset : 0),\r\n };\r\n if (this.direction === 'rtl') {\r\n if (\r\n this.textAlign === RIGHT ||\r\n this.textAlign === JUSTIFY ||\r\n this.textAlign === JUSTIFY_RIGHT\r\n ) {\r\n boundaries.left *= -1;\r\n } else if (this.textAlign === LEFT || this.textAlign === JUSTIFY_LEFT) {\r\n boundaries.left = lineLeftOffset - (leftOffset > 0 ? leftOffset : 0);\r\n } else if (\r\n this.textAlign === CENTER ||\r\n this.textAlign === JUSTIFY_CENTER\r\n ) {\r\n boundaries.left = lineLeftOffset - (leftOffset > 0 ? leftOffset : 0);\r\n }\r\n }\r\n return boundaries;\r\n }\r\n\r\n /**\r\n * Renders cursor on context Top, outside the animation cycle, on request\r\n * Used for the drag/drop effect.\r\n * If contextTop is not available, do nothing.\r\n */\r\n renderCursorAt(selectionStart: number) {\r\n this._renderCursor(\r\n this.canvas!.contextTop,\r\n this._getCursorBoundaries(selectionStart, true),\r\n selectionStart,\r\n );\r\n }\r\n\r\n /**\r\n * Renders cursor\r\n * @param {Object} boundaries\r\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\r\n */\r\n renderCursor(ctx: CanvasRenderingContext2D, boundaries: CursorBoundaries) {\r\n this._renderCursor(ctx, boundaries, this.selectionStart);\r\n }\r\n\r\n /**\r\n * Return the data needed to render the cursor for given selection start\r\n * The left,top are relative to the object, while width and height are prescaled\r\n * to look think with canvas zoom and object scaling,\r\n * so they depend on canvas and object scaling\r\n */\r\n getCursorRenderingData(\r\n selectionStart: number = this.selectionStart,\r\n boundaries: CursorBoundaries = this._getCursorBoundaries(selectionStart),\r\n ): CursorRenderingData {\r\n const cursorLocation = this.get2DCursorLocation(selectionStart),\r\n lineIndex = cursorLocation.lineIndex,\r\n charIndex =\r\n cursorLocation.charIndex > 0 ? cursorLocation.charIndex - 1 : 0,\r\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize'),\r\n multiplier = this.getObjectScaling().x * this.canvas!.getZoom(),\r\n cursorWidth = this.cursorWidth / multiplier,\r\n dy = this.getValueOfPropertyAt(lineIndex, charIndex, 'deltaY'),\r\n topOffset =\r\n boundaries.topOffset +\r\n ((1 - this._fontSizeFraction) * this.getHeightOfLine(lineIndex)) /\r\n this.lineHeight -\r\n charHeight * (1 - this._fontSizeFraction);\r\n\r\n return {\r\n color:\r\n this.cursorColor ||\r\n (this.getValueOfPropertyAt(lineIndex, charIndex, 'fill') as string),\r\n opacity: this._currentCursorOpacity,\r\n left: boundaries.left + boundaries.leftOffset - cursorWidth / 2,\r\n top: topOffset + boundaries.top + dy,\r\n width: cursorWidth,\r\n height: charHeight,\r\n };\r\n }\r\n\r\n /**\r\n * Render the cursor at the given selectionStart.\r\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\r\n */\r\n _renderCursor(\r\n ctx: CanvasRenderingContext2D,\r\n boundaries: CursorBoundaries,\r\n selectionStart: number,\r\n ) {\r\n const { color, opacity, left, top, width, height } =\r\n this.getCursorRenderingData(selectionStart, boundaries);\r\n ctx.fillStyle = color;\r\n ctx.globalAlpha = opacity;\r\n ctx.fillRect(left, top, width, height);\r\n }\r\n\r\n /**\r\n * Renders text selection\r\n * @param {Object} boundaries Object with left/top/leftOffset/topOffset\r\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\r\n */\r\n renderSelection(ctx: CanvasRenderingContext2D, boundaries: CursorBoundaries) {\r\n const selection = {\r\n selectionStart: this.inCompositionMode\r\n ? this.hiddenTextarea!.selectionStart\r\n : this.selectionStart,\r\n selectionEnd: this.inCompositionMode\r\n ? this.hiddenTextarea!.selectionEnd\r\n : this.selectionEnd,\r\n };\r\n this._renderSelection(ctx, selection, boundaries);\r\n }\r\n\r\n /**\r\n * Renders drag start text selection\r\n */\r\n renderDragSourceEffect() {\r\n const dragStartSelection =\r\n this.draggableTextDelegate.getDragStartSelection()!;\r\n this._renderSelection(\r\n this.canvas!.contextTop,\r\n dragStartSelection,\r\n this._getCursorBoundaries(dragStartSelection.selectionStart, true),\r\n );\r\n }\r\n\r\n renderDropTargetEffect(e: DragEvent) {\r\n const dragSelection = this.getSelectionStartFromPointer(e);\r\n this.renderCursorAt(dragSelection);\r\n }\r\n\r\n /**\r\n * Renders text selection\r\n * @private\r\n * @param {{ selectionStart: number, selectionEnd: number }} selection\r\n * @param {Object} boundaries Object with left/top/leftOffset/topOffset\r\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\r\n */\r\n _renderSelection(\r\n ctx: CanvasRenderingContext2D,\r\n selection: { selectionStart: number; selectionEnd: number },\r\n boundaries: CursorBoundaries,\r\n ) {\r\n const selectionStart = selection.selectionStart,\r\n selectionEnd = selection.selectionEnd,\r\n isJustify = this.textAlign.includes(JUSTIFY),\r\n start = this.get2DCursorLocation(selectionStart),\r\n end = this.get2DCursorLocation(selectionEnd),\r\n startLine = start.lineIndex,\r\n endLine = end.lineIndex,\r\n startChar = start.charIndex < 0 ? 0 : start.charIndex,\r\n endChar = end.charIndex < 0 ? 0 : end.charIndex;\r\n\r\n for (let i = startLine; i <= endLine; i++) {\r\n const lineOffset = this._getLineLeftOffset(i) || 0;\r\n let lineHeight = this.getHeightOfLine(i),\r\n realLineHeight = 0,\r\n boxStart = 0,\r\n boxEnd = 0;\r\n \r\n // Simplified selection rendering that works for both LTR and RTL\r\n if (i === startLine) {\r\n boxStart = this.__charBounds[startLine][startChar].left;\r\n }\r\n if (i >= startLine && i < endLine) {\r\n boxEnd =\r\n isJustify && !this.isEndOfWrapping(i)\r\n ? this.width\r\n : this.getLineWidth(i) || 5;\r\n } else if (i === endLine) {\r\n if (endChar === 0) {\r\n boxEnd = this.__charBounds[endLine][endChar].left;\r\n } else {\r\n const charSpacing = this._getWidthOfCharSpacing();\r\n boxEnd =\r\n this.__charBounds[endLine][endChar - 1].left +\r\n this.__charBounds[endLine][endChar - 1].width -\r\n charSpacing;\r\n }\r\n }\r\n realLineHeight = lineHeight;\r\n if (this.lineHeight < 1 || (i === endLine && this.lineHeight > 1)) {\r\n lineHeight /= this.lineHeight;\r\n }\r\n let drawStart = boundaries.left + lineOffset + boxStart,\r\n drawHeight = lineHeight,\r\n extraTop = 0;\r\n const drawWidth = boxEnd - boxStart;\r\n if (this.inCompositionMode) {\r\n ctx.fillStyle = this.compositionColor || 'black';\r\n drawHeight = 1;\r\n extraTop = lineHeight;\r\n } else {\r\n ctx.fillStyle = this.selectionColor;\r\n }\r\n if (this.direction === 'rtl') {\r\n if (\r\n this.textAlign === RIGHT ||\r\n this.textAlign === JUSTIFY ||\r\n this.textAlign === JUSTIFY_RIGHT\r\n ) {\r\n drawStart = this.width - drawStart - drawWidth;\r\n } else if (this.textAlign === LEFT || this.textAlign === JUSTIFY_LEFT) {\r\n drawStart = boundaries.left + lineOffset - boxEnd;\r\n } else if (\r\n this.textAlign === CENTER ||\r\n this.textAlign === JUSTIFY_CENTER\r\n ) {\r\n drawStart = boundaries.left + lineOffset - boxEnd;\r\n }\r\n }\r\n ctx.fillRect(\r\n drawStart,\r\n boundaries.top + boundaries.topOffset + extraTop,\r\n drawWidth,\r\n drawHeight,\r\n );\r\n boundaries.topOffset += realLineHeight;\r\n }\r\n }\r\n\r\n /**\r\n * High level function to know the height of the cursor.\r\n * the currentChar is the one that precedes the cursor\r\n * Returns fontSize of char at the current cursor\r\n * Unused from the library, is for the end user\r\n * @return {Number} Character font size\r\n */\r\n getCurrentCharFontSize(): number {\r\n const cp = this._getCurrentCharIndex();\r\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');\r\n }\r\n\r\n /**\r\n * High level function to know the color of the cursor.\r\n * the currentChar is the one that precedes the cursor\r\n * Returns color (fill) of char at the current cursor\r\n * if the text object has a pattern or gradient for filler, it will return that.\r\n * Unused by the library, is for the end user\r\n * @return {String | TFiller} Character color (fill)\r\n */\r\n getCurrentCharColor(): string | TFiller | null {\r\n const cp = this._getCurrentCharIndex();\r\n return this.getValueOfPropertyAt(cp.l, cp.c, FILL);\r\n }\r\n\r\n /**\r\n * Returns the cursor position for the getCurrent.. functions\r\n * @private\r\n */\r\n _getCurrentCharIndex() {\r\n const cursorPosition = this.get2DCursorLocation(this.selectionStart, true),\r\n charIndex =\r\n cursorPosition.charIndex > 0 ? cursorPosition.charIndex - 1 : 0;\r\n return { l: cursorPosition.lineIndex, c: charIndex };\r\n }\r\n\r\n dispose() {\r\n this.exitEditingImpl();\r\n this.draggableTextDelegate.dispose();\r\n super.dispose();\r\n }\r\n}\r\n\r\nclassRegistry.setClass(IText);\r\n// legacy\r\nclassRegistry.setClass(IText, 'i-text');\r\n"],"names":["protectedDefaultValues","_selectionDirection","_reSpace","inCompositionMode","iTextDefaultValues","selectionStart","selectionEnd","selectionColor","isEditing","editable","editingBorderColor","cursorWidth","cursorColor","cursorDelay","cursorDuration","caching","hiddenTextareaContainer","keysMap","keysMapRtl","ctrlKeysMapDown","ctrlKeysMapUp","IText","ITextClickBehavior","getDefaults","ownDefaults","type","constructor","text","options","initBehavior","_set","key","value","_savedProps","canvas","Canvas","textEditingManager","remove","add","setSelectionStart","index","Math","max","_updateAndFire","setSelectionEnd","min","length","property","_fireSelectionChanged","_updateTextarea","fire","target","initDimensions","initDelayedCursor","getSelectionStyles","startIndex","arguments","undefined","endIndex","complete","setSelectionStyles","styles","get2DCursorLocation","skipWrapping","render","ctx","cursorOffsetCache","renderCursorOrSelection","toCanvasElement","clearContextTop","boundaries","_getCursorBoundaries","ancestors","findAncestorsWithClipPath","hasAncestorsWithClipping","drawingCtx","drawingCanvas","createCanvasElementFor","getContext","applyCanvasTransform","m","calcTransformMatrix","transform","renderCursor","renderSelection","ancestor","clipPath","clippingCanvas","clippingCtx","absolutePositioned","drawObject","drawClipPathOnCache","setTransform","drawImage","contextTopDirty","restore","clipPathAncestors","obj","push","parent","skipCaching","enableAdvancedLayout","_getCursorBoundariesAdvanced","_getCursorBoundariesOriginal","_getCursorBoundariesOffsets","__getCursorBoundariesOffsets","_layoutTextAdvanced","layout","cursorRect","getCursorRect","_getAdvancedLayoutOptions","left","_getLeftOffset","top","_getTopOffset","leftOffset","x","topOffset","y","getSelectionStartFromPointer","e","mouseOffset","getScenePoint","invertTransform","Point","hitResult","hitTest","charIndex","_text","offsets","lineIndex","i","getHeightOfLine","lineLeftOffset","_getLineLeftOffset","bound","__charBounds","charSpacing","_textLines","_getWidthOfCharSpacing","direction","textAlign","RIGHT","JUSTIFY","JUSTIFY_RIGHT","LEFT","JUSTIFY_LEFT","CENTER","JUSTIFY_CENTER","renderCursorAt","_renderCursor","contextTop","getCursorRenderingData","cursorLocation","charHeight","getValueOfPropertyAt","multiplier","getObjectScaling","getZoom","dy","_fontSizeFraction","lineHeight","color","opacity","_currentCursorOpacity","width","height","fillStyle","globalAlpha","fillRect","selection","hiddenTextarea","_renderSelection","renderDragSourceEffect","dragStartSelection","draggableTextDelegate","getDragStartSelection","renderDropTargetEffect","dragSelection","isJustify","includes","start","end","startLine","endLine","startChar","endChar","lineOffset","realLineHeight","boxStart","boxEnd","isEndOfWrapping","getLineWidth","drawStart","drawHeight","extraTop","drawWidth","compositionColor","getCurrentCharFontSize","cp","_getCurrentCharIndex","l","c","getCurrentCharColor","FILL","cursorPosition","dispose","exitEditingImpl","_defineProperty","classRegistry","setClass"],"mappings":"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"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import type { ObjectEvents, TPointerEvent } from '../../EventTypeDefs';
|
|
2
|
+
import type { FabricObject } from '../Object/FabricObject';
|
|
3
|
+
import { FabricText } from '../Text/Text';
|
|
4
|
+
import type { TOnAnimationChangeCallback } from '../../util/animation/types';
|
|
5
|
+
import type { ValueAnimation } from '../../util/animation/ValueAnimation';
|
|
6
|
+
import type { TextStyleDeclaration } from '../Text/StyledText';
|
|
7
|
+
import type { SerializedTextProps, TextProps } from '../Text/Text';
|
|
8
|
+
import type { TOptions } from '../../typedefs';
|
|
9
|
+
export type ITextEvents = ObjectEvents & {
|
|
10
|
+
'selection:changed': never;
|
|
11
|
+
changed: never | {
|
|
12
|
+
index: number;
|
|
13
|
+
action: string;
|
|
14
|
+
};
|
|
15
|
+
'editing:entered': never | {
|
|
16
|
+
e: TPointerEvent;
|
|
17
|
+
};
|
|
18
|
+
'editing:exited': never;
|
|
19
|
+
};
|
|
20
|
+
export declare abstract class ITextBehavior<Props extends TOptions<TextProps> = Partial<TextProps>, SProps extends SerializedTextProps = SerializedTextProps, EventSpec extends ITextEvents = ITextEvents> extends FabricText<Props, SProps, EventSpec> {
|
|
21
|
+
abstract isEditing: boolean;
|
|
22
|
+
abstract cursorDelay: number;
|
|
23
|
+
abstract selectionStart: number;
|
|
24
|
+
abstract selectionEnd: number;
|
|
25
|
+
abstract cursorDuration: number;
|
|
26
|
+
abstract editable: boolean;
|
|
27
|
+
abstract editingBorderColor: string;
|
|
28
|
+
abstract compositionStart: number;
|
|
29
|
+
abstract compositionEnd: number;
|
|
30
|
+
abstract hiddenTextarea: HTMLTextAreaElement | null;
|
|
31
|
+
/**
|
|
32
|
+
* Helps determining when the text is in composition, so that the cursor
|
|
33
|
+
* rendering is altered.
|
|
34
|
+
*/
|
|
35
|
+
protected inCompositionMode: boolean;
|
|
36
|
+
protected _reSpace: RegExp;
|
|
37
|
+
private _currentTickState?;
|
|
38
|
+
private _currentTickCompleteState?;
|
|
39
|
+
protected _currentCursorOpacity: number;
|
|
40
|
+
private _textBeforeEdit;
|
|
41
|
+
protected __selectionStartOnMouseDown: number;
|
|
42
|
+
/**
|
|
43
|
+
* Keeps track if the IText object was selected before the actual click.
|
|
44
|
+
* This because we want to delay enter editing by a click.
|
|
45
|
+
*/
|
|
46
|
+
protected selected: boolean;
|
|
47
|
+
protected cursorOffsetCache: {
|
|
48
|
+
left?: number;
|
|
49
|
+
top?: number;
|
|
50
|
+
};
|
|
51
|
+
protected _savedProps?: {
|
|
52
|
+
hasControls: boolean;
|
|
53
|
+
borderColor: string;
|
|
54
|
+
lockMovementX: boolean;
|
|
55
|
+
lockMovementY: boolean;
|
|
56
|
+
selectable: boolean;
|
|
57
|
+
hoverCursor: CSSStyleDeclaration['cursor'] | null;
|
|
58
|
+
defaultCursor?: CSSStyleDeclaration['cursor'];
|
|
59
|
+
moveCursor?: CSSStyleDeclaration['cursor'];
|
|
60
|
+
};
|
|
61
|
+
protected _selectionDirection: 'left' | 'right' | null;
|
|
62
|
+
abstract initHiddenTextarea(): void;
|
|
63
|
+
abstract _fireSelectionChanged(): void;
|
|
64
|
+
abstract renderCursorOrSelection(): void;
|
|
65
|
+
abstract getSelectionStartFromPointer(e: TPointerEvent): number;
|
|
66
|
+
abstract _getCursorBoundaries(index: number, skipCaching?: boolean): {
|
|
67
|
+
left: number;
|
|
68
|
+
top: number;
|
|
69
|
+
leftOffset: number;
|
|
70
|
+
topOffset: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Initializes all the interactive behavior of IText
|
|
74
|
+
*/
|
|
75
|
+
initBehavior(): void;
|
|
76
|
+
onDeselect(options?: {
|
|
77
|
+
e?: TPointerEvent;
|
|
78
|
+
object?: FabricObject;
|
|
79
|
+
}): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
_animateCursor({ toValue, duration, delay, onComplete, }: {
|
|
84
|
+
toValue: number;
|
|
85
|
+
duration: number;
|
|
86
|
+
delay?: number;
|
|
87
|
+
onComplete?: TOnAnimationChangeCallback<number>;
|
|
88
|
+
}): ValueAnimation;
|
|
89
|
+
/**
|
|
90
|
+
* changes the cursor from visible to invisible
|
|
91
|
+
*/
|
|
92
|
+
private _tick;
|
|
93
|
+
/**
|
|
94
|
+
* Changes the cursor from invisible to visible
|
|
95
|
+
*/
|
|
96
|
+
private _onTickComplete;
|
|
97
|
+
/**
|
|
98
|
+
* Initializes delayed cursor
|
|
99
|
+
*/
|
|
100
|
+
initDelayedCursor(restart?: boolean): void;
|
|
101
|
+
/**
|
|
102
|
+
* Aborts cursor animation, clears all timeouts and clear textarea context if necessary
|
|
103
|
+
*/
|
|
104
|
+
abortCursorAnimation(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Restart tue cursor animation if either is in complete state ( between animations )
|
|
107
|
+
* or if it never started before
|
|
108
|
+
*/
|
|
109
|
+
restartCursorIfNeeded(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Selects entire text
|
|
112
|
+
*/
|
|
113
|
+
selectAll(): this;
|
|
114
|
+
/**
|
|
115
|
+
* Selects entire text and updates the visual state
|
|
116
|
+
*/
|
|
117
|
+
cmdAll(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Returns selected text
|
|
120
|
+
* @return {String}
|
|
121
|
+
*/
|
|
122
|
+
getSelectedText(): string;
|
|
123
|
+
/**
|
|
124
|
+
* Find new selection index representing start of current word according to current selection index
|
|
125
|
+
* @param {Number} startFrom Current selection index
|
|
126
|
+
* @return {Number} New selection index
|
|
127
|
+
*/
|
|
128
|
+
findWordBoundaryLeft(startFrom: number): number;
|
|
129
|
+
/**
|
|
130
|
+
* Find new selection index representing end of current word according to current selection index
|
|
131
|
+
* @param {Number} startFrom Current selection index
|
|
132
|
+
* @return {Number} New selection index
|
|
133
|
+
*/
|
|
134
|
+
findWordBoundaryRight(startFrom: number): number;
|
|
135
|
+
/**
|
|
136
|
+
* Find new selection index representing start of current line according to current selection index
|
|
137
|
+
* @param {Number} startFrom Current selection index
|
|
138
|
+
* @return {Number} New selection index
|
|
139
|
+
*/
|
|
140
|
+
findLineBoundaryLeft(startFrom: number): number;
|
|
141
|
+
/**
|
|
142
|
+
* Find new selection index representing end of current line according to current selection index
|
|
143
|
+
* @param {Number} startFrom Current selection index
|
|
144
|
+
* @return {Number} New selection index
|
|
145
|
+
*/
|
|
146
|
+
findLineBoundaryRight(startFrom: number): number;
|
|
147
|
+
/**
|
|
148
|
+
* Finds index corresponding to beginning or end of a word
|
|
149
|
+
* @param {Number} selectionStart Index of a character
|
|
150
|
+
* @param {Number} direction 1 or -1
|
|
151
|
+
* @return {Number} Index of the beginning or end of a word
|
|
152
|
+
*/
|
|
153
|
+
searchWordBoundary(selectionStart: number, direction: 1 | -1): number;
|
|
154
|
+
/**
|
|
155
|
+
* Selects the word that contains the char at index selectionStart
|
|
156
|
+
* @param {Number} selectionStart Index of a character
|
|
157
|
+
*/
|
|
158
|
+
selectWord(selectionStart?: number): void;
|
|
159
|
+
/**
|
|
160
|
+
* Selects the line that contains selectionStart
|
|
161
|
+
* @param {Number} selectionStart Index of a character
|
|
162
|
+
*/
|
|
163
|
+
selectLine(selectionStart?: number): void;
|
|
164
|
+
/**
|
|
165
|
+
* Enters editing state
|
|
166
|
+
*/
|
|
167
|
+
enterEditing(e?: TPointerEvent): void;
|
|
168
|
+
/**
|
|
169
|
+
* runs the actual logic that enter from editing state, see {@link enterEditing}
|
|
170
|
+
*/
|
|
171
|
+
enterEditingImpl(): void;
|
|
172
|
+
/**
|
|
173
|
+
* Enter overlay editing mode using DOM textarea overlay
|
|
174
|
+
*/
|
|
175
|
+
private enterOverlayEditing;
|
|
176
|
+
/**
|
|
177
|
+
* Commit overlay editing changes
|
|
178
|
+
*/
|
|
179
|
+
private commitOverlayEdit;
|
|
180
|
+
/**
|
|
181
|
+
* Cancel overlay editing without changes
|
|
182
|
+
*/
|
|
183
|
+
private cancelOverlayEdit;
|
|
184
|
+
/**
|
|
185
|
+
* called by {@link Canvas#textEditingManager}
|
|
186
|
+
*/
|
|
187
|
+
updateSelectionOnMouseMove(e: TPointerEvent): void;
|
|
188
|
+
/**
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
_setEditingProps(): void;
|
|
192
|
+
/**
|
|
193
|
+
* convert from textarea to grapheme indexes
|
|
194
|
+
*/
|
|
195
|
+
fromStringToGraphemeSelection(start: number, end: number, text: string): {
|
|
196
|
+
selectionStart: number;
|
|
197
|
+
selectionEnd: number;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* convert from fabric to textarea values
|
|
201
|
+
*/
|
|
202
|
+
fromGraphemeToStringSelection(start: number, end: number, graphemes: string[]): {
|
|
203
|
+
selectionStart: number;
|
|
204
|
+
selectionEnd: number;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
_updateTextarea(): void;
|
|
210
|
+
/**
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
updateFromTextArea(): void;
|
|
214
|
+
/**
|
|
215
|
+
* @private
|
|
216
|
+
*/
|
|
217
|
+
updateTextareaPosition(): void;
|
|
218
|
+
/**
|
|
219
|
+
* @private
|
|
220
|
+
* @return {Object} style contains style for hiddenTextarea
|
|
221
|
+
*/
|
|
222
|
+
_calcTextareaPosition(): {
|
|
223
|
+
left: string;
|
|
224
|
+
top: string;
|
|
225
|
+
fontSize?: undefined;
|
|
226
|
+
charHeight?: undefined;
|
|
227
|
+
} | {
|
|
228
|
+
left: string;
|
|
229
|
+
top: string;
|
|
230
|
+
fontSize: string;
|
|
231
|
+
charHeight: number;
|
|
232
|
+
};
|
|
233
|
+
/**
|
|
234
|
+
* @private
|
|
235
|
+
*/
|
|
236
|
+
_saveEditingProps(): void;
|
|
237
|
+
/**
|
|
238
|
+
* @private
|
|
239
|
+
*/
|
|
240
|
+
_restoreEditingProps(): void;
|
|
241
|
+
/**
|
|
242
|
+
* runs the actual logic that exits from editing state, see {@link exitEditing}
|
|
243
|
+
* But it does not fire events
|
|
244
|
+
*/
|
|
245
|
+
exitEditingImpl(): void;
|
|
246
|
+
/**
|
|
247
|
+
* Exits from editing state and fires relevant events
|
|
248
|
+
*/
|
|
249
|
+
exitEditing(): this;
|
|
250
|
+
/**
|
|
251
|
+
* @private
|
|
252
|
+
*/
|
|
253
|
+
_removeExtraneousStyles(): void;
|
|
254
|
+
/**
|
|
255
|
+
* remove and reflow a style block from start to end.
|
|
256
|
+
* @param {Number} start linear start position for removal (included in removal)
|
|
257
|
+
* @param {Number} end linear end position for removal ( excluded from removal )
|
|
258
|
+
*/
|
|
259
|
+
removeStyleFromTo(start: number, end: number): void;
|
|
260
|
+
/**
|
|
261
|
+
* Shifts line styles up or down
|
|
262
|
+
* @param {Number} lineIndex Index of a line
|
|
263
|
+
* @param {Number} offset Can any number?
|
|
264
|
+
*/
|
|
265
|
+
shiftLineStyles(lineIndex: number, offset: number): void;
|
|
266
|
+
/**
|
|
267
|
+
* Handle insertion of more consecutive style lines for when one or more
|
|
268
|
+
* newlines gets added to the text. Since current style needs to be shifted
|
|
269
|
+
* first we shift the current style of the number lines needed, then we add
|
|
270
|
+
* new lines from the last to the first.
|
|
271
|
+
* @param {Number} lineIndex Index of a line
|
|
272
|
+
* @param {Number} charIndex Index of a char
|
|
273
|
+
* @param {Number} qty number of lines to add
|
|
274
|
+
* @param {Array} copiedStyle Array of objects styles
|
|
275
|
+
*/
|
|
276
|
+
insertNewlineStyleObject(lineIndex: number, charIndex: number, qty: number, copiedStyle?: {
|
|
277
|
+
[index: number]: TextStyleDeclaration;
|
|
278
|
+
}): void;
|
|
279
|
+
/**
|
|
280
|
+
* Inserts style object for a given line/char index
|
|
281
|
+
* @param {Number} lineIndex Index of a line
|
|
282
|
+
* @param {Number} charIndex Index of a char
|
|
283
|
+
* @param {Number} quantity number Style object to insert, if given
|
|
284
|
+
* @param {Array} copiedStyle array of style objects
|
|
285
|
+
*/
|
|
286
|
+
insertCharStyleObject(lineIndex: number, charIndex: number, quantity: number, copiedStyle?: TextStyleDeclaration[]): void;
|
|
287
|
+
/**
|
|
288
|
+
* Inserts style object(s)
|
|
289
|
+
* @param {Array} insertedText Characters at the location where style is inserted
|
|
290
|
+
* @param {Number} start cursor index for inserting style
|
|
291
|
+
* @param {Array} [copiedStyle] array of style objects to insert.
|
|
292
|
+
*/
|
|
293
|
+
insertNewStyleBlock(insertedText: string[], start: number, copiedStyle?: TextStyleDeclaration[]): void;
|
|
294
|
+
/**
|
|
295
|
+
* Removes characters from start/end
|
|
296
|
+
* start/end ar per grapheme position in _text array.
|
|
297
|
+
*
|
|
298
|
+
* @param {Number} start
|
|
299
|
+
* @param {Number} end default to start + 1
|
|
300
|
+
*/
|
|
301
|
+
removeChars(start: number, end?: number): void;
|
|
302
|
+
/**
|
|
303
|
+
* insert characters at start position, before start position.
|
|
304
|
+
* start equal 1 it means the text get inserted between actual grapheme 0 and 1
|
|
305
|
+
* if style array is provided, it must be as the same length of text in graphemes
|
|
306
|
+
* if end is provided and is bigger than start, old text is replaced.
|
|
307
|
+
* start/end ar per grapheme position in _text array.
|
|
308
|
+
*
|
|
309
|
+
* @param {String} text text to insert
|
|
310
|
+
* @param {Array} style array of style objects
|
|
311
|
+
* @param {Number} start
|
|
312
|
+
* @param {Number} end default to start + 1
|
|
313
|
+
*/
|
|
314
|
+
insertChars(text: string, style: TextStyleDeclaration[] | undefined, start: number, end?: number): void;
|
|
315
|
+
/**
|
|
316
|
+
* Set the selectionStart and selectionEnd according to the new position of cursor
|
|
317
|
+
* mimic the key - mouse navigation when shift is pressed.
|
|
318
|
+
*/
|
|
319
|
+
setSelectionStartEndWithShift(start: number, end: number, newSelection: number): void;
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=ITextBehavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITextBehavior.d.ts","sourceRoot":"","sources":["../../../../src/shapes/IText/ITextBehavior.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{Point as e}from"../../Point.min.mjs";import{FabricText as i}from"../Text/Text.min.mjs";import{animate as s}from"../../util/animation/animate.min.mjs";import{getDocumentFromElement as n}from"../../util/dom_misc.min.mjs";import{reNewline as r,MODIFIED as o,LEFT as h,RIGHT as l}from"../../constants.min.mjs";import{enterTextOverlayEdit as a}from"../../text/overlayEditor.min.mjs";import{extractLinesFromDOM as c,storeBrowserLines as d}from"../../text/browserLines.min.mjs";const u=/[ \n\.,;!\?\-]/;class m extends i{constructor(){super(...arguments),t(this,"_currentCursorOpacity",1)}initBehavior(){this._tick=this._tick.bind(this),this._onTickComplete=this._onTickComplete.bind(this),this.updateSelectionOnMouseMove=this.updateSelectionOnMouseMove.bind(this)}onDeselect(t){return this.isEditing&&this.exitEditing(),this.selected=!1,super.onDeselect(t)}_animateCursor(t){let{toValue:e,duration:i,delay:n,onComplete:r}=t;return s({startValue:this._currentCursorOpacity,endValue:e,duration:i,delay:n,onComplete:r,abort:()=>!this.canvas||this.selectionStart!==this.selectionEnd,onChange:t=>{this._currentCursorOpacity=t,this.renderCursorOrSelection()}})}_tick(t){this._currentTickState=this._animateCursor({toValue:0,duration:this.cursorDuration/2,delay:Math.max(t||0,100),onComplete:this._onTickComplete})}_onTickComplete(){var t;null===(t=this._currentTickCompleteState)||void 0===t||t.abort(),this._currentTickCompleteState=this._animateCursor({toValue:1,duration:this.cursorDuration,onComplete:this._tick})}initDelayedCursor(t){this.abortCursorAnimation(),this._tick(t?0:this.cursorDelay)}abortCursorAnimation(){let t=!1;[this._currentTickState,this._currentTickCompleteState].forEach(e=>{e&&!e.isDone()&&(t=!0,e.abort())}),this._currentCursorOpacity=1,t&&this.clearContextTop()}restartCursorIfNeeded(){[this._currentTickState,this._currentTickCompleteState].some(t=>!t||t.isDone())&&this.initDelayedCursor()}selectAll(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this}cmdAll(){this.selectAll(),this.renderCursorOrSelection()}getSelectedText(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")}findWordBoundaryLeft(t){let e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/S/.test(this._text[i])&&i>-1;)e++,i--;return t-e}findWordBoundaryRight(t){let e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/S/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e}findLineBoundaryLeft(t){let e=0,i=t-1;for(;!/\n/.test(this._text[i])&&i>-1;)e++,i--;return t-e}findLineBoundaryRight(t){let e=0,i=t;for(;!/\n/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e}searchWordBoundary(t,e){const i=this._text;let s=t>0&&this._reSpace.test(i[t])&&(-1===e||!r.test(i[t-1]))?t-1:t,n=i[s];for(;s>0&&s<i.length&&!u.test(n);)s+=e,n=i[s];return-1===e&&u.test(n)&&s++,s}selectWord(t){t=null!=t?t:this.selectionStart;const e=this.searchWordBoundary(t,-1),i=Math.max(e,this.searchWordBoundary(t,1));this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()}selectLine(t){t=null!=t?t:this.selectionStart;const e=this.findLineBoundaryLeft(t),i=this.findLineBoundaryRight(t);this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea()}enterEditing(t){!this.isEditing&&this.editable&&(this.enterEditingImpl(),this.fire("editing:entered",t?{e:t}:void 0),this._fireSelectionChanged(),this.canvas&&(this.canvas.fire("text:editing:entered",{target:this,e:t}),this.canvas.requestRenderAll()))}enterEditingImpl(){this.canvas&&(this.canvas.calcOffset(),this.canvas.textEditingManager.exitTextEditing()),this.isEditing=!0,this.useOverlayEditing?this.enterOverlayEditing():(this.initHiddenTextarea(),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick())}enterOverlayEditing(){this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this.canvas&&a(this.canvas,this,{onCommit:t=>{this.commitOverlayEdit(t)},onCancel:()=>{this.cancelOverlayEdit()}})}commitOverlayEdit(t){const e=this.__overlayEditor;if(e)try{const t=c(e.textareaElement);d(this,t.lines)}catch(t){console.warn("Failed to extract browser lines:",t)}this.text=t,this.dirty=!0,this.initDimensions(),this.setCoords(),this.exitEditing(),this.fire("changed"),this.canvas&&this.canvas.requestRenderAll()}cancelOverlayEdit(){this.text=this._textBeforeEdit||this.text,this.exitEditing()}updateSelectionOnMouseMove(t){if(this.getActiveControl())return;const e=this.hiddenTextarea;n(e).activeElement!==e&&e.focus();const i=this.getSelectionStartFromPointer(t),s=this.selectionStart,r=this.selectionEnd;if(!(i===this.__selectionStartOnMouseDown&&s!==r||s!==i&&r!==i))return;const o=Math.min(i,this.__selectionStartOnMouseDown),h=Math.max(i,this.__selectionStartOnMouseDown);this.selectionStart=o,this.selectionEnd=h,this.selectionStart===s&&this.selectionEnd===r||(this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection())}_setEditingProps(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0}fromStringToGraphemeSelection(t,e,i){const s=i.slice(0,t),n=this.graphemeSplit(s).length;if(t===e)return{selectionStart:n,selectionEnd:n};const r=i.slice(t,e);return{selectionStart:n,selectionEnd:n+this.graphemeSplit(r).length}}fromGraphemeToStringSelection(t,e,i){const s=i.slice(0,t).join("").length;if(t===e)return{selectionStart:s,selectionEnd:s};return{selectionStart:s,selectionEnd:s+i.slice(t,e).join("").length}}_updateTextarea(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){const t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}}updateFromTextArea(){if(!this.hiddenTextarea)return;this.cursorOffsetCache={};const t=this.hiddenTextarea;this.text=t.value,this.set("dirty",!0),this.initDimensions(),this.setCoords();const e=this.fromStringToGraphemeSelection(t.selectionStart,t.selectionEnd,t.value);this.selectionEnd=this.selectionStart=e.selectionEnd,this.inCompositionMode||(this.selectionStart=e.selectionStart),this.updateTextareaPosition()}updateTextareaPosition(){if(this.selectionStart===this.selectionEnd){const t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}}_calcTextareaPosition(){if(!this.canvas)return{left:"1px",top:"1px"};const t=this.inCompositionMode?this.compositionStart:this.selectionStart,i=this._getCursorBoundaries(t),s=this.get2DCursorLocation(t),n=s.lineIndex,r=s.charIndex,o=this.getValueOfPropertyAt(n,r,"fontSize")*this.lineHeight,h=i.leftOffset,l=this.getCanvasRetinaScaling(),a=this.canvas.upperCanvasEl,c=a.width/l,d=a.height/l,u=c-o,m=d-o,f=new e(i.left+h,i.top+i.topOffset+o).transform(this.calcTransformMatrix()).transform(this.canvas.viewportTransform).multiply(new e(a.clientWidth/c,a.clientHeight/d));return f.x<0&&(f.x=0),f.x>u&&(f.x=u),f.y<0&&(f.y=0),f.y>m&&(f.y=m),f.x+=this.canvas._offset.left,f.y+=this.canvas._offset.top,{left:`${f.x}px`,top:`${f.y}px`,fontSize:`${o}px`,charHeight:o}}_saveEditingProps(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:null,selectable:this.selectable,defaultCursor:"default",moveCursor:"move"}}_restoreEditingProps(){if(this._savedProps){var t,e;if(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas)this.canvas.defaultCursor=null!==(t=this._savedProps.defaultCursor)&&void 0!==t?t:"default",this.canvas.moveCursor=null!==(e=this._savedProps.moveCursor)&&void 0!==e?e:"move";delete this._savedProps}}exitEditingImpl(){const t=this.hiddenTextarea;this.selected=!1,this.isEditing=!1,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this.selectionStart!==this.selectionEnd&&this.clearContextTop(),this.selectionEnd=this.selectionStart,this._restoreEditingProps(),this._forceClearCache&&(this.initDimensions(),this.setCoords())}exitEditing(){const t=this._textBeforeEdit!==this.text;return this.exitEditingImpl(),this.fire("editing:exited"),t&&this.fire(o),this.canvas&&(this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this}_removeExtraneousStyles(){for(const t in this.styles)this._textLines[t]||delete this.styles[t]}removeStyleFromTo(t,e){const{lineIndex:i,charIndex:s}=this.get2DCursorLocation(t,!0),{lineIndex:n,charIndex:r}=this.get2DCursorLocation(e,!0);if(i!==n){if(this.styles[i])for(let t=s;t<this._unwrappedTextLines[i].length;t++)delete this.styles[i][t];if(this.styles[n])for(let t=r;t<this._unwrappedTextLines[n].length;t++){const e=this.styles[n][t];e&&(this.styles[i]||(this.styles[i]={}),this.styles[i][s+t-r]=e)}for(let t=i+1;t<=n;t++)delete this.styles[t];this.shiftLineStyles(n,i-n)}else if(this.styles[i]){const t=this.styles[i],e=r-s;for(let e=s;e<r;e++)delete t[e];for(const s in this.styles[i]){const i=parseInt(s,10);i>=r&&(t[i-e]=t[s],delete t[s])}}}shiftLineStyles(t,e){const i=Object.assign({},this.styles);for(const s in this.styles){const n=parseInt(s,10);n>t&&(this.styles[n+e]=i[n],i[n-e]||delete this.styles[n])}}insertNewlineStyleObject(t,e,i,s){const n={},r=this._unwrappedTextLines[t].length,o=r===e;let h=!1;i||(i=1),this.shiftLineStyles(t,i);const l=this.styles[t]?this.styles[t][0===e?e:e-1]:void 0;for(const i in this.styles[t]){const s=parseInt(i,10);s>=e&&(h=!0,n[s-e]=this.styles[t][i],o&&0===e||delete this.styles[t][i])}let a=!1;for(h&&!o&&(this.styles[t+i]=n,a=!0),(a||r>e)&&i--;i>0;)s&&s[i-1]?this.styles[t+i]={0:{...s[i-1]}}:l?this.styles[t+i]={0:{...l}}:delete this.styles[t+i],i--;this._forceClearCache=!0}insertCharStyleObject(t,e,i,s){this.styles||(this.styles={});const n=this.styles[t],r=n?{...n}:{};i||(i=1);for(const t in r){const s=parseInt(t,10);s>=e&&(n[s+i]=r[s],r[s-i]||delete n[s])}if(this._forceClearCache=!0,s){for(;i--;)Object.keys(s[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]={...s[i]});return}if(!n)return;const o=n[e?e-1:1];for(;o&&i--;)this.styles[t][e+i]={...o}}insertNewStyleBlock(t,e,i){const s=this.get2DCursorLocation(e,!0),n=[0];let r,o=0;for(let e=0;e<t.length;e++)"\n"===t[e]?(o++,n[o]=0):n[o]++;for(n[0]>0&&(this.insertCharStyleObject(s.lineIndex,s.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),o&&this.insertNewlineStyleObject(s.lineIndex,s.charIndex+n[0],o),r=1;r<o;r++)n[r]>0?this.insertCharStyleObject(s.lineIndex+r,0,n[r],i):i&&this.styles[s.lineIndex+r]&&i[0]&&(this.styles[s.lineIndex+r][0]=i[0]),i=i&&i.slice(n[r]+1);n[r]>0&&this.insertCharStyleObject(s.lineIndex+r,0,n[r],i)}removeChars(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t+1;this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}insertChars(t,e,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;s>i&&this.removeStyleFromTo(i,s);const n=this.graphemeSplit(t);this.insertNewStyleBlock(n,i,e),this._text=[...this._text.slice(0,i),...n,...this._text.slice(s)],this.text=this._text.join(""),this.set("dirty",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}setSelectionStartEndWithShift(t,e,i){i<=t?(e===t?this._selectionDirection=h:this._selectionDirection===l&&(this._selectionDirection=h,this.selectionEnd=t),this.selectionStart=i):i>t&&i<e?this._selectionDirection===l?this.selectionEnd=i:this.selectionStart=i:(e===t?this._selectionDirection=l:this._selectionDirection===h&&(this._selectionDirection=l,this.selectionStart=e),this.selectionEnd=i)}}export{m as ITextBehavior};
|
|
2
|
+
//# sourceMappingURL=ITextBehavior.min.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITextBehavior.min.mjs","sources":["../../../../src/shapes/IText/ITextBehavior.ts"],"sourcesContent":["import type { ObjectEvents, TPointerEvent } from '../../EventTypeDefs';\r\nimport { Point } from '../../Point';\r\nimport type { FabricObject } from '../Object/FabricObject';\r\nimport { FabricText } from '../Text/Text';\r\nimport { animate } from '../../util/animation/animate';\r\nimport type { TOnAnimationChangeCallback } from '../../util/animation/types';\r\nimport type { ValueAnimation } from '../../util/animation/ValueAnimation';\r\nimport type { TextStyleDeclaration } from '../Text/StyledText';\r\nimport type { SerializedTextProps, TextProps } from '../Text/Text';\r\nimport type { TOptions } from '../../typedefs';\r\nimport { getDocumentFromElement } from '../../util/dom_misc';\r\nimport { LEFT, MODIFIED, RIGHT, reNewline } from '../../constants';\r\nimport type { IText } from './IText';\r\nimport { enterTextOverlayEdit } from '../../text/overlayEditor';\r\nimport { extractLinesFromDOM, storeBrowserLines } from '../../text/browserLines';\r\n\r\n/**\r\n * extend this regex to support non english languages\r\n *\r\n * - ` ` Matches a SPACE character (char code 32).\r\n * - `\\n` Matches a LINE FEED character (char code 10).\r\n * - `.` Matches a \".\" character (char code 46).\r\n * - `,` Matches a \",\" character (char code 44).\r\n * - `;` Matches a \";\" character (char code 59).\r\n * - `!` Matches a \"!\" character (char code 33).\r\n * - `\\?` Matches a \"?\" character (char code 63).\r\n * - `\\-` Matches a \"-\" character (char code 45).\r\n */\r\n// eslint-disable-next-line no-useless-escape\r\nconst reNonWord = /[ \\n\\.,;!\\?\\-]/;\r\n\r\nexport type ITextEvents = ObjectEvents & {\r\n 'selection:changed': never;\r\n changed: never | { index: number; action: string };\r\n 'editing:entered': never | { e: TPointerEvent };\r\n 'editing:exited': never;\r\n};\r\n\r\nexport abstract class ITextBehavior<\r\n Props extends TOptions<TextProps> = Partial<TextProps>,\r\n SProps extends SerializedTextProps = SerializedTextProps,\r\n EventSpec extends ITextEvents = ITextEvents,\r\n> extends FabricText<Props, SProps, EventSpec> {\r\n declare abstract isEditing: boolean;\r\n declare abstract cursorDelay: number;\r\n declare abstract selectionStart: number;\r\n declare abstract selectionEnd: number;\r\n declare abstract cursorDuration: number;\r\n declare abstract editable: boolean;\r\n declare abstract editingBorderColor: string;\r\n\r\n declare abstract compositionStart: number;\r\n declare abstract compositionEnd: number;\r\n\r\n declare abstract hiddenTextarea: HTMLTextAreaElement | null;\r\n\r\n /**\r\n * Helps determining when the text is in composition, so that the cursor\r\n * rendering is altered.\r\n */\r\n declare protected inCompositionMode: boolean;\r\n\r\n declare protected _reSpace: RegExp;\r\n declare private _currentTickState?: ValueAnimation;\r\n declare private _currentTickCompleteState?: ValueAnimation;\r\n protected _currentCursorOpacity = 1;\r\n declare private _textBeforeEdit: string;\r\n declare protected __selectionStartOnMouseDown: number;\r\n\r\n /**\r\n * Keeps track if the IText object was selected before the actual click.\r\n * This because we want to delay enter editing by a click.\r\n */\r\n declare protected selected: boolean;\r\n declare protected cursorOffsetCache: { left?: number; top?: number };\r\n declare protected _savedProps?: {\r\n hasControls: boolean;\r\n borderColor: string;\r\n lockMovementX: boolean;\r\n lockMovementY: boolean;\r\n selectable: boolean;\r\n hoverCursor: CSSStyleDeclaration['cursor'] | null;\r\n defaultCursor?: CSSStyleDeclaration['cursor'];\r\n moveCursor?: CSSStyleDeclaration['cursor'];\r\n };\r\n declare protected _selectionDirection: 'left' | 'right' | null;\r\n\r\n abstract initHiddenTextarea(): void;\r\n abstract _fireSelectionChanged(): void;\r\n abstract renderCursorOrSelection(): void;\r\n abstract getSelectionStartFromPointer(e: TPointerEvent): number;\r\n abstract _getCursorBoundaries(\r\n index: number,\r\n skipCaching?: boolean,\r\n ): {\r\n left: number;\r\n top: number;\r\n leftOffset: number;\r\n topOffset: number;\r\n };\r\n\r\n /**\r\n * Initializes all the interactive behavior of IText\r\n */\r\n initBehavior() {\r\n this._tick = this._tick.bind(this);\r\n this._onTickComplete = this._onTickComplete.bind(this);\r\n this.updateSelectionOnMouseMove =\r\n this.updateSelectionOnMouseMove.bind(this);\r\n }\r\n\r\n onDeselect(options?: { e?: TPointerEvent; object?: FabricObject }) {\r\n this.isEditing && this.exitEditing();\r\n this.selected = false;\r\n return super.onDeselect(options);\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _animateCursor({\r\n toValue,\r\n duration,\r\n delay,\r\n onComplete,\r\n }: {\r\n toValue: number;\r\n duration: number;\r\n delay?: number;\r\n onComplete?: TOnAnimationChangeCallback<number>;\r\n }) {\r\n return animate({\r\n startValue: this._currentCursorOpacity,\r\n endValue: toValue,\r\n duration,\r\n delay,\r\n onComplete,\r\n abort: () =>\r\n !this.canvas ||\r\n // we do not want to animate a selection, only cursor\r\n this.selectionStart !== this.selectionEnd,\r\n onChange: (value) => {\r\n this._currentCursorOpacity = value;\r\n this.renderCursorOrSelection();\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * changes the cursor from visible to invisible\r\n */\r\n private _tick(delay?: number) {\r\n this._currentTickState = this._animateCursor({\r\n toValue: 0,\r\n duration: this.cursorDuration / 2,\r\n delay: Math.max(delay || 0, 100),\r\n onComplete: this._onTickComplete,\r\n });\r\n }\r\n\r\n /**\r\n * Changes the cursor from invisible to visible\r\n */\r\n private _onTickComplete() {\r\n this._currentTickCompleteState?.abort();\r\n this._currentTickCompleteState = this._animateCursor({\r\n toValue: 1,\r\n duration: this.cursorDuration,\r\n onComplete: this._tick,\r\n });\r\n }\r\n\r\n /**\r\n * Initializes delayed cursor\r\n */\r\n initDelayedCursor(restart?: boolean) {\r\n this.abortCursorAnimation();\r\n this._tick(restart ? 0 : this.cursorDelay);\r\n }\r\n\r\n /**\r\n * Aborts cursor animation, clears all timeouts and clear textarea context if necessary\r\n */\r\n abortCursorAnimation() {\r\n let shouldClear = false;\r\n [this._currentTickState, this._currentTickCompleteState].forEach(\r\n (cursorAnimation) => {\r\n if (cursorAnimation && !cursorAnimation.isDone()) {\r\n shouldClear = true;\r\n cursorAnimation.abort();\r\n }\r\n },\r\n );\r\n\r\n this._currentCursorOpacity = 1;\r\n\r\n // make sure we clear context even if instance is not editing\r\n if (shouldClear) {\r\n this.clearContextTop();\r\n }\r\n }\r\n\r\n /**\r\n * Restart tue cursor animation if either is in complete state ( between animations )\r\n * or if it never started before\r\n */\r\n restartCursorIfNeeded() {\r\n if (\r\n [this._currentTickState, this._currentTickCompleteState].some(\r\n (cursorAnimation) => !cursorAnimation || cursorAnimation.isDone(),\r\n )\r\n ) {\r\n this.initDelayedCursor();\r\n }\r\n }\r\n\r\n /**\r\n * Selects entire text\r\n */\r\n selectAll() {\r\n this.selectionStart = 0;\r\n this.selectionEnd = this._text.length;\r\n this._fireSelectionChanged();\r\n this._updateTextarea();\r\n return this;\r\n }\r\n\r\n /**\r\n * Selects entire text and updates the visual state\r\n */\r\n cmdAll() {\r\n this.selectAll();\r\n this.renderCursorOrSelection();\r\n }\r\n\r\n /**\r\n * Returns selected text\r\n * @return {String}\r\n */\r\n getSelectedText(): string {\r\n return this._text.slice(this.selectionStart, this.selectionEnd).join('');\r\n }\r\n\r\n /**\r\n * Find new selection index representing start of current word according to current selection index\r\n * @param {Number} startFrom Current selection index\r\n * @return {Number} New selection index\r\n */\r\n findWordBoundaryLeft(startFrom: number): number {\r\n let offset = 0,\r\n index = startFrom - 1;\r\n\r\n // remove space before cursor first\r\n if (this._reSpace.test(this._text[index])) {\r\n while (this._reSpace.test(this._text[index])) {\r\n offset++;\r\n index--;\r\n }\r\n }\r\n while (/S/.test(this._text[index]) && index > -1) {\r\n offset++;\r\n index--;\r\n }\r\n\r\n return startFrom - offset;\r\n }\r\n\r\n /**\r\n * Find new selection index representing end of current word according to current selection index\r\n * @param {Number} startFrom Current selection index\r\n * @return {Number} New selection index\r\n */\r\n findWordBoundaryRight(startFrom: number): number {\r\n let offset = 0,\r\n index = startFrom;\r\n\r\n // remove space after cursor first\r\n if (this._reSpace.test(this._text[index])) {\r\n while (this._reSpace.test(this._text[index])) {\r\n offset++;\r\n index++;\r\n }\r\n }\r\n while (/S/.test(this._text[index]) && index < this._text.length) {\r\n offset++;\r\n index++;\r\n }\r\n\r\n return startFrom + offset;\r\n }\r\n\r\n /**\r\n * Find new selection index representing start of current line according to current selection index\r\n * @param {Number} startFrom Current selection index\r\n * @return {Number} New selection index\r\n */\r\n findLineBoundaryLeft(startFrom: number): number {\r\n let offset = 0,\r\n index = startFrom - 1;\r\n\r\n while (!/\\n/.test(this._text[index]) && index > -1) {\r\n offset++;\r\n index--;\r\n }\r\n\r\n return startFrom - offset;\r\n }\r\n\r\n /**\r\n * Find new selection index representing end of current line according to current selection index\r\n * @param {Number} startFrom Current selection index\r\n * @return {Number} New selection index\r\n */\r\n findLineBoundaryRight(startFrom: number): number {\r\n let offset = 0,\r\n index = startFrom;\r\n\r\n while (!/\\n/.test(this._text[index]) && index < this._text.length) {\r\n offset++;\r\n index++;\r\n }\r\n\r\n return startFrom + offset;\r\n }\r\n\r\n /**\r\n * Finds index corresponding to beginning or end of a word\r\n * @param {Number} selectionStart Index of a character\r\n * @param {Number} direction 1 or -1\r\n * @return {Number} Index of the beginning or end of a word\r\n */\r\n searchWordBoundary(selectionStart: number, direction: 1 | -1): number {\r\n const text = this._text;\r\n // if we land on a space we move the cursor backwards\r\n // if we are searching boundary end we move the cursor backwards ONLY if we don't land on a line break\r\n let index =\r\n selectionStart > 0 &&\r\n this._reSpace.test(text[selectionStart]) &&\r\n (direction === -1 || !reNewline.test(text[selectionStart - 1]))\r\n ? selectionStart - 1\r\n : selectionStart,\r\n _char = text[index];\r\n while (index > 0 && index < text.length && !reNonWord.test(_char)) {\r\n index += direction;\r\n _char = text[index];\r\n }\r\n if (direction === -1 && reNonWord.test(_char)) {\r\n index++;\r\n }\r\n return index;\r\n }\r\n\r\n /**\r\n * Selects the word that contains the char at index selectionStart\r\n * @param {Number} selectionStart Index of a character\r\n */\r\n selectWord(selectionStart?: number) {\r\n selectionStart = selectionStart ?? this.selectionStart;\r\n // search backwards\r\n const newSelectionStart = this.searchWordBoundary(selectionStart, -1),\r\n // search forward\r\n newSelectionEnd = Math.max(\r\n newSelectionStart,\r\n this.searchWordBoundary(selectionStart, 1),\r\n );\r\n\r\n this.selectionStart = newSelectionStart;\r\n this.selectionEnd = newSelectionEnd;\r\n this._fireSelectionChanged();\r\n this._updateTextarea();\r\n // remove next major, for now it renders twice :(\r\n this.renderCursorOrSelection();\r\n }\r\n\r\n /**\r\n * Selects the line that contains selectionStart\r\n * @param {Number} selectionStart Index of a character\r\n */\r\n selectLine(selectionStart?: number) {\r\n selectionStart = selectionStart ?? this.selectionStart;\r\n const newSelectionStart = this.findLineBoundaryLeft(selectionStart),\r\n newSelectionEnd = this.findLineBoundaryRight(selectionStart);\r\n\r\n this.selectionStart = newSelectionStart;\r\n this.selectionEnd = newSelectionEnd;\r\n this._fireSelectionChanged();\r\n this._updateTextarea();\r\n }\r\n\r\n /**\r\n * Enters editing state\r\n */\r\n enterEditing(e?: TPointerEvent) {\r\n if (this.isEditing || !this.editable) {\r\n return;\r\n }\r\n this.enterEditingImpl();\r\n this.fire('editing:entered', e ? { e } : undefined);\r\n this._fireSelectionChanged();\r\n if (this.canvas) {\r\n this.canvas.fire('text:editing:entered', {\r\n target: this as unknown as IText,\r\n e,\r\n });\r\n this.canvas.requestRenderAll();\r\n }\r\n }\r\n\r\n /**\r\n * runs the actual logic that enter from editing state, see {@link enterEditing}\r\n */\r\n enterEditingImpl() {\r\n if (this.canvas) {\r\n this.canvas.calcOffset();\r\n this.canvas.textEditingManager.exitTextEditing();\r\n }\r\n\r\n this.isEditing = true;\r\n\r\n // Check if using overlay editing\r\n if ((this as any).useOverlayEditing) {\r\n this.enterOverlayEditing();\r\n } else {\r\n this.initHiddenTextarea();\r\n this.hiddenTextarea!.focus();\r\n this.hiddenTextarea!.value = this.text;\r\n this._updateTextarea();\r\n this._saveEditingProps();\r\n this._setEditingProps();\r\n this._textBeforeEdit = this.text;\r\n this._tick();\r\n }\r\n }\r\n\r\n /**\r\n * Enter overlay editing mode using DOM textarea overlay\r\n */\r\n private enterOverlayEditing() {\r\n this._saveEditingProps();\r\n this._setEditingProps();\r\n this._textBeforeEdit = this.text;\r\n\r\n if (!this.canvas) {\r\n return;\r\n }\r\n\r\n // Create overlay editor\r\n enterTextOverlayEdit(this.canvas, this as any, {\r\n onCommit: (text: string) => {\r\n this.commitOverlayEdit(text);\r\n },\r\n onCancel: () => {\r\n this.cancelOverlayEdit();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Commit overlay editing changes\r\n */\r\n private commitOverlayEdit(text: string) {\r\n \r\n const overlayEditor = (this as any).__overlayEditor;\r\n \r\n if (overlayEditor) {\r\n // Extract browser lines for pixel-perfect rendering\r\n try {\r\n const result = extractLinesFromDOM(overlayEditor.textareaElement);\r\n storeBrowserLines(this, result.lines);\r\n } catch (error) {\r\n console.warn('Failed to extract browser lines:', error);\r\n }\r\n }\r\n\r\n // Update text content and trigger layout recalculation\r\n this.text = text;\r\n this.dirty = true;\r\n this.initDimensions();\r\n this.setCoords();\r\n this.exitEditing();\r\n this.fire('changed');\r\n this.canvas && this.canvas.requestRenderAll();\r\n }\r\n\r\n /**\r\n * Cancel overlay editing without changes\r\n */\r\n private cancelOverlayEdit() {\r\n // Restore original text\r\n this.text = this._textBeforeEdit || this.text;\r\n this.exitEditing();\r\n }\r\n\r\n /**\r\n * called by {@link Canvas#textEditingManager}\r\n */\r\n updateSelectionOnMouseMove(e: TPointerEvent) {\r\n if (this.getActiveControl()) {\r\n return;\r\n }\r\n\r\n const el = this.hiddenTextarea!;\r\n // regain focus\r\n getDocumentFromElement(el).activeElement !== el && el.focus();\r\n\r\n const newSelectionStart = this.getSelectionStartFromPointer(e),\r\n currentStart = this.selectionStart,\r\n currentEnd = this.selectionEnd;\r\n if (\r\n (newSelectionStart !== this.__selectionStartOnMouseDown ||\r\n currentStart === currentEnd) &&\r\n (currentStart === newSelectionStart || currentEnd === newSelectionStart)\r\n ) {\r\n return;\r\n }\r\n\r\n // Always ensure selectionStart <= selectionEnd for proper text selection\r\n const startIndex = Math.min(\r\n newSelectionStart,\r\n this.__selectionStartOnMouseDown,\r\n );\r\n const endIndex = Math.max(\r\n newSelectionStart,\r\n this.__selectionStartOnMouseDown,\r\n );\r\n\r\n this.selectionStart = startIndex;\r\n this.selectionEnd = endIndex;\r\n\r\n if (\r\n this.selectionStart !== currentStart ||\r\n this.selectionEnd !== currentEnd\r\n ) {\r\n this._fireSelectionChanged();\r\n this._updateTextarea();\r\n this.renderCursorOrSelection();\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _setEditingProps() {\r\n this.hoverCursor = 'text';\r\n\r\n if (this.canvas) {\r\n this.canvas.defaultCursor = this.canvas.moveCursor = 'text';\r\n }\r\n\r\n this.borderColor = this.editingBorderColor;\r\n this.hasControls = this.selectable = false;\r\n this.lockMovementX = this.lockMovementY = true;\r\n }\r\n\r\n /**\r\n * convert from textarea to grapheme indexes\r\n */\r\n fromStringToGraphemeSelection(start: number, end: number, text: string) {\r\n const smallerTextStart = text.slice(0, start),\r\n graphemeStart = this.graphemeSplit(smallerTextStart).length;\r\n if (start === end) {\r\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\r\n }\r\n const smallerTextEnd = text.slice(start, end),\r\n graphemeEnd = this.graphemeSplit(smallerTextEnd).length;\r\n return {\r\n selectionStart: graphemeStart,\r\n selectionEnd: graphemeStart + graphemeEnd,\r\n };\r\n }\r\n\r\n /**\r\n * convert from fabric to textarea values\r\n */\r\n fromGraphemeToStringSelection(\r\n start: number,\r\n end: number,\r\n graphemes: string[],\r\n ) {\r\n const smallerTextStart = graphemes.slice(0, start),\r\n graphemeStart = smallerTextStart.join('').length;\r\n if (start === end) {\r\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\r\n }\r\n const smallerTextEnd = graphemes.slice(start, end),\r\n graphemeEnd = smallerTextEnd.join('').length;\r\n return {\r\n selectionStart: graphemeStart,\r\n selectionEnd: graphemeStart + graphemeEnd,\r\n };\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _updateTextarea() {\r\n this.cursorOffsetCache = {};\r\n if (!this.hiddenTextarea) {\r\n return;\r\n }\r\n if (!this.inCompositionMode) {\r\n const newSelection = this.fromGraphemeToStringSelection(\r\n this.selectionStart,\r\n this.selectionEnd,\r\n this._text,\r\n );\r\n this.hiddenTextarea.selectionStart = newSelection.selectionStart;\r\n this.hiddenTextarea.selectionEnd = newSelection.selectionEnd;\r\n }\r\n this.updateTextareaPosition();\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n updateFromTextArea() {\r\n if (!this.hiddenTextarea) {\r\n return;\r\n }\r\n this.cursorOffsetCache = {};\r\n const textarea = this.hiddenTextarea;\r\n this.text = textarea.value;\r\n this.set('dirty', true);\r\n this.initDimensions();\r\n this.setCoords();\r\n const newSelection = this.fromStringToGraphemeSelection(\r\n textarea.selectionStart,\r\n textarea.selectionEnd,\r\n textarea.value,\r\n );\r\n this.selectionEnd = this.selectionStart = newSelection.selectionEnd;\r\n if (!this.inCompositionMode) {\r\n this.selectionStart = newSelection.selectionStart;\r\n }\r\n this.updateTextareaPosition();\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n updateTextareaPosition() {\r\n if (this.selectionStart === this.selectionEnd) {\r\n const style = this._calcTextareaPosition();\r\n this.hiddenTextarea!.style.left = style.left;\r\n this.hiddenTextarea!.style.top = style.top;\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * @return {Object} style contains style for hiddenTextarea\r\n */\r\n _calcTextareaPosition() {\r\n if (!this.canvas) {\r\n return { left: '1px', top: '1px' };\r\n }\r\n const desiredPosition = this.inCompositionMode\r\n ? this.compositionStart\r\n : this.selectionStart,\r\n boundaries = this._getCursorBoundaries(desiredPosition),\r\n cursorLocation = this.get2DCursorLocation(desiredPosition),\r\n lineIndex = cursorLocation.lineIndex,\r\n charIndex = cursorLocation.charIndex,\r\n charHeight =\r\n this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize') *\r\n this.lineHeight,\r\n leftOffset = boundaries.leftOffset,\r\n retinaScaling = this.getCanvasRetinaScaling(),\r\n upperCanvas = this.canvas.upperCanvasEl,\r\n upperCanvasWidth = upperCanvas.width / retinaScaling,\r\n upperCanvasHeight = upperCanvas.height / retinaScaling,\r\n maxWidth = upperCanvasWidth - charHeight,\r\n maxHeight = upperCanvasHeight - charHeight;\r\n\r\n const p = new Point(\r\n boundaries.left + leftOffset,\r\n boundaries.top + boundaries.topOffset + charHeight,\r\n )\r\n .transform(this.calcTransformMatrix())\r\n .transform(this.canvas.viewportTransform)\r\n .multiply(\r\n new Point(\r\n upperCanvas.clientWidth / upperCanvasWidth,\r\n upperCanvas.clientHeight / upperCanvasHeight,\r\n ),\r\n );\r\n\r\n if (p.x < 0) {\r\n p.x = 0;\r\n }\r\n if (p.x > maxWidth) {\r\n p.x = maxWidth;\r\n }\r\n if (p.y < 0) {\r\n p.y = 0;\r\n }\r\n if (p.y > maxHeight) {\r\n p.y = maxHeight;\r\n }\r\n\r\n // add canvas offset on document\r\n p.x += this.canvas._offset.left;\r\n p.y += this.canvas._offset.top;\r\n\r\n return {\r\n left: `${p.x}px`,\r\n top: `${p.y}px`,\r\n fontSize: `${charHeight}px`,\r\n charHeight: charHeight,\r\n };\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _saveEditingProps() {\r\n this._savedProps = {\r\n hasControls: this.hasControls,\r\n borderColor: this.borderColor,\r\n lockMovementX: this.lockMovementX,\r\n lockMovementY: this.lockMovementY,\r\n // For textboxes, hoverCursor should be null when not editing (falls back to canvas hoverCursor = 'move')\r\n hoverCursor: null,\r\n selectable: this.selectable,\r\n // Always save known good defaults for canvas cursors instead of potentially corrupted current values\r\n defaultCursor: 'default',\r\n moveCursor: 'move',\r\n };\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _restoreEditingProps() {\r\n if (!this._savedProps) {\r\n return;\r\n }\r\n\r\n this.hoverCursor = this._savedProps.hoverCursor;\r\n this.hasControls = this._savedProps.hasControls;\r\n this.borderColor = this._savedProps.borderColor;\r\n this.selectable = this._savedProps.selectable;\r\n this.lockMovementX = this._savedProps.lockMovementX;\r\n this.lockMovementY = this._savedProps.lockMovementY;\r\n\r\n if (this.canvas) {\r\n this.canvas.defaultCursor =\r\n this._savedProps.defaultCursor ?? 'default';\r\n this.canvas.moveCursor =\r\n this._savedProps.moveCursor ?? 'move';\r\n }\r\n\r\n delete this._savedProps;\r\n }\r\n\r\n /**\r\n * runs the actual logic that exits from editing state, see {@link exitEditing}\r\n * But it does not fire events\r\n */\r\n exitEditingImpl() {\r\n const hiddenTextarea = this.hiddenTextarea;\r\n this.selected = false;\r\n this.isEditing = false;\r\n\r\n if (hiddenTextarea) {\r\n hiddenTextarea.blur && hiddenTextarea.blur();\r\n hiddenTextarea.parentNode &&\r\n hiddenTextarea.parentNode.removeChild(hiddenTextarea);\r\n }\r\n this.hiddenTextarea = null;\r\n this.abortCursorAnimation();\r\n this.selectionStart !== this.selectionEnd && this.clearContextTop();\r\n this.selectionEnd = this.selectionStart;\r\n this._restoreEditingProps();\r\n if (this._forceClearCache) {\r\n this.initDimensions();\r\n this.setCoords();\r\n }\r\n }\r\n\r\n /**\r\n * Exits from editing state and fires relevant events\r\n */\r\n exitEditing() {\r\n const isTextChanged = this._textBeforeEdit !== this.text;\r\n this.exitEditingImpl();\r\n\r\n this.fire('editing:exited');\r\n isTextChanged && this.fire(MODIFIED);\r\n if (this.canvas) {\r\n this.canvas.fire('text:editing:exited', {\r\n target: this as unknown as IText,\r\n });\r\n // todo: evaluate add an action to this event\r\n isTextChanged && this.canvas.fire('object:modified', { target: this });\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _removeExtraneousStyles() {\r\n for (const prop in this.styles) {\r\n if (!this._textLines[prop as unknown as number]) {\r\n delete this.styles[prop];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * remove and reflow a style block from start to end.\r\n * @param {Number} start linear start position for removal (included in removal)\r\n * @param {Number} end linear end position for removal ( excluded from removal )\r\n */\r\n removeStyleFromTo(start: number, end: number) {\r\n const { lineIndex: lineStart, charIndex: charStart } =\r\n this.get2DCursorLocation(start, true),\r\n { lineIndex: lineEnd, charIndex: charEnd } = this.get2DCursorLocation(\r\n end,\r\n true,\r\n );\r\n if (lineStart !== lineEnd) {\r\n // step1 remove the trailing of lineStart\r\n if (this.styles[lineStart]) {\r\n for (\r\n let i = charStart;\r\n i < this._unwrappedTextLines[lineStart].length;\r\n i++\r\n ) {\r\n delete this.styles[lineStart][i];\r\n }\r\n }\r\n // step2 move the trailing of lineEnd to lineStart if needed\r\n if (this.styles[lineEnd]) {\r\n for (\r\n let i = charEnd;\r\n i < this._unwrappedTextLines[lineEnd].length;\r\n i++\r\n ) {\r\n const styleObj = this.styles[lineEnd][i];\r\n if (styleObj) {\r\n this.styles[lineStart] || (this.styles[lineStart] = {});\r\n this.styles[lineStart][charStart + i - charEnd] = styleObj;\r\n }\r\n }\r\n }\r\n // step3 detects lines will be completely removed.\r\n for (let i = lineStart + 1; i <= lineEnd; i++) {\r\n delete this.styles[i];\r\n }\r\n // step4 shift remaining lines.\r\n this.shiftLineStyles(lineEnd, lineStart - lineEnd);\r\n } else {\r\n // remove and shift left on the same line\r\n if (this.styles[lineStart]) {\r\n const styleObj = this.styles[lineStart];\r\n const diff = charEnd - charStart;\r\n for (let i = charStart; i < charEnd; i++) {\r\n delete styleObj[i];\r\n }\r\n for (const char in this.styles[lineStart]) {\r\n const numericChar = parseInt(char, 10);\r\n if (numericChar >= charEnd) {\r\n styleObj[numericChar - diff] = styleObj[char];\r\n delete styleObj[char];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Shifts line styles up or down\r\n * @param {Number} lineIndex Index of a line\r\n * @param {Number} offset Can any number?\r\n */\r\n shiftLineStyles(lineIndex: number, offset: number) {\r\n const clonedStyles = Object.assign({}, this.styles);\r\n for (const line in this.styles) {\r\n const numericLine = parseInt(line, 10);\r\n if (numericLine > lineIndex) {\r\n this.styles[numericLine + offset] = clonedStyles[numericLine];\r\n if (!clonedStyles[numericLine - offset]) {\r\n delete this.styles[numericLine];\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Handle insertion of more consecutive style lines for when one or more\r\n * newlines gets added to the text. Since current style needs to be shifted\r\n * first we shift the current style of the number lines needed, then we add\r\n * new lines from the last to the first.\r\n * @param {Number} lineIndex Index of a line\r\n * @param {Number} charIndex Index of a char\r\n * @param {Number} qty number of lines to add\r\n * @param {Array} copiedStyle Array of objects styles\r\n */\r\n insertNewlineStyleObject(\r\n lineIndex: number,\r\n charIndex: number,\r\n qty: number,\r\n copiedStyle?: { [index: number]: TextStyleDeclaration },\r\n ) {\r\n const newLineStyles: { [index: number]: TextStyleDeclaration } = {};\r\n const originalLineLength = this._unwrappedTextLines[lineIndex].length;\r\n const isEndOfLine = originalLineLength === charIndex;\r\n\r\n let someStyleIsCarryingOver = false;\r\n qty || (qty = 1);\r\n this.shiftLineStyles(lineIndex, qty);\r\n const currentCharStyle = this.styles[lineIndex]\r\n ? this.styles[lineIndex][charIndex === 0 ? charIndex : charIndex - 1]\r\n : undefined;\r\n\r\n // we clone styles of all chars\r\n // after cursor onto the current line\r\n for (const index in this.styles[lineIndex]) {\r\n const numIndex = parseInt(index, 10);\r\n if (numIndex >= charIndex) {\r\n someStyleIsCarryingOver = true;\r\n newLineStyles[numIndex - charIndex] = this.styles[lineIndex][index];\r\n // remove lines from the previous line since they're on a new line now\r\n if (!(isEndOfLine && charIndex === 0)) {\r\n delete this.styles[lineIndex][index];\r\n }\r\n }\r\n }\r\n let styleCarriedOver = false;\r\n if (someStyleIsCarryingOver && !isEndOfLine) {\r\n // if is end of line, the extra style we copied\r\n // is probably not something we want\r\n this.styles[lineIndex + qty] = newLineStyles;\r\n styleCarriedOver = true;\r\n }\r\n if (styleCarriedOver || originalLineLength > charIndex) {\r\n // skip the last line of since we already prepared it.\r\n // or contains text without style that we don't want to style\r\n // just because it changed lines\r\n qty--;\r\n }\r\n // for the all the lines or all the other lines\r\n // we clone current char style onto the next (otherwise empty) line\r\n while (qty > 0) {\r\n if (copiedStyle && copiedStyle[qty - 1]) {\r\n this.styles[lineIndex + qty] = {\r\n 0: { ...copiedStyle[qty - 1] },\r\n };\r\n } else if (currentCharStyle) {\r\n this.styles[lineIndex + qty] = {\r\n 0: { ...currentCharStyle },\r\n };\r\n } else {\r\n delete this.styles[lineIndex + qty];\r\n }\r\n qty--;\r\n }\r\n this._forceClearCache = true;\r\n }\r\n\r\n /**\r\n * Inserts style object for a given line/char index\r\n * @param {Number} lineIndex Index of a line\r\n * @param {Number} charIndex Index of a char\r\n * @param {Number} quantity number Style object to insert, if given\r\n * @param {Array} copiedStyle array of style objects\r\n */\r\n insertCharStyleObject(\r\n lineIndex: number,\r\n charIndex: number,\r\n quantity: number,\r\n copiedStyle?: TextStyleDeclaration[],\r\n ) {\r\n if (!this.styles) {\r\n this.styles = {};\r\n }\r\n const currentLineStyles = this.styles[lineIndex],\r\n currentLineStylesCloned = currentLineStyles\r\n ? { ...currentLineStyles }\r\n : {};\r\n\r\n quantity || (quantity = 1);\r\n // shift all char styles by quantity forward\r\n // 0,1,2,3 -> (charIndex=2) -> 0,1,3,4 -> (insert 2) -> 0,1,2,3,4\r\n for (const index in currentLineStylesCloned) {\r\n const numericIndex = parseInt(index, 10);\r\n if (numericIndex >= charIndex) {\r\n currentLineStyles[numericIndex + quantity] =\r\n currentLineStylesCloned[numericIndex];\r\n // only delete the style if there was nothing moved there\r\n if (!currentLineStylesCloned[numericIndex - quantity]) {\r\n delete currentLineStyles[numericIndex];\r\n }\r\n }\r\n }\r\n this._forceClearCache = true;\r\n if (copiedStyle) {\r\n while (quantity--) {\r\n if (!Object.keys(copiedStyle[quantity]).length) {\r\n continue;\r\n }\r\n if (!this.styles[lineIndex]) {\r\n this.styles[lineIndex] = {};\r\n }\r\n this.styles[lineIndex][charIndex + quantity] = {\r\n ...copiedStyle[quantity],\r\n };\r\n }\r\n return;\r\n }\r\n if (!currentLineStyles) {\r\n return;\r\n }\r\n const newStyle = currentLineStyles[charIndex ? charIndex - 1 : 1];\r\n while (newStyle && quantity--) {\r\n this.styles[lineIndex][charIndex + quantity] = { ...newStyle };\r\n }\r\n }\r\n\r\n /**\r\n * Inserts style object(s)\r\n * @param {Array} insertedText Characters at the location where style is inserted\r\n * @param {Number} start cursor index for inserting style\r\n * @param {Array} [copiedStyle] array of style objects to insert.\r\n */\r\n insertNewStyleBlock(\r\n insertedText: string[],\r\n start: number,\r\n copiedStyle?: TextStyleDeclaration[],\r\n ) {\r\n const cursorLoc = this.get2DCursorLocation(start, true),\r\n addedLines = [0];\r\n let linesLength = 0;\r\n // get an array of how many char per lines are being added.\r\n for (let i = 0; i < insertedText.length; i++) {\r\n if (insertedText[i] === '\\n') {\r\n linesLength++;\r\n addedLines[linesLength] = 0;\r\n } else {\r\n addedLines[linesLength]++;\r\n }\r\n }\r\n // for the first line copy the style from the current char position.\r\n if (addedLines[0] > 0) {\r\n this.insertCharStyleObject(\r\n cursorLoc.lineIndex,\r\n cursorLoc.charIndex,\r\n addedLines[0],\r\n copiedStyle,\r\n );\r\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[0] + 1);\r\n }\r\n linesLength &&\r\n this.insertNewlineStyleObject(\r\n cursorLoc.lineIndex,\r\n cursorLoc.charIndex + addedLines[0],\r\n linesLength,\r\n );\r\n let i;\r\n for (i = 1; i < linesLength; i++) {\r\n if (addedLines[i] > 0) {\r\n this.insertCharStyleObject(\r\n cursorLoc.lineIndex + i,\r\n 0,\r\n addedLines[i],\r\n copiedStyle,\r\n );\r\n } else if (copiedStyle) {\r\n // this test is required in order to close #6841\r\n // when a pasted buffer begins with a newline then\r\n // this.styles[cursorLoc.lineIndex + i] and copiedStyle[0]\r\n // may be undefined for some reason\r\n if (this.styles[cursorLoc.lineIndex + i] && copiedStyle[0]) {\r\n this.styles[cursorLoc.lineIndex + i][0] = copiedStyle[0];\r\n }\r\n }\r\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[i] + 1);\r\n }\r\n if (addedLines[i] > 0) {\r\n this.insertCharStyleObject(\r\n cursorLoc.lineIndex + i,\r\n 0,\r\n addedLines[i],\r\n copiedStyle,\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Removes characters from start/end\r\n * start/end ar per grapheme position in _text array.\r\n *\r\n * @param {Number} start\r\n * @param {Number} end default to start + 1\r\n */\r\n removeChars(start: number, end: number = start + 1) {\r\n this.removeStyleFromTo(start, end);\r\n this._text.splice(start, end - start);\r\n this.text = this._text.join('');\r\n this.set('dirty', true);\r\n this.initDimensions();\r\n this.setCoords();\r\n this._removeExtraneousStyles();\r\n }\r\n\r\n /**\r\n * insert characters at start position, before start position.\r\n * start equal 1 it means the text get inserted between actual grapheme 0 and 1\r\n * if style array is provided, it must be as the same length of text in graphemes\r\n * if end is provided and is bigger than start, old text is replaced.\r\n * start/end ar per grapheme position in _text array.\r\n *\r\n * @param {String} text text to insert\r\n * @param {Array} style array of style objects\r\n * @param {Number} start\r\n * @param {Number} end default to start + 1\r\n */\r\n insertChars(\r\n text: string,\r\n style: TextStyleDeclaration[] | undefined,\r\n start: number,\r\n end: number = start,\r\n ) {\r\n if (end > start) {\r\n this.removeStyleFromTo(start, end);\r\n }\r\n const graphemes = this.graphemeSplit(text);\r\n this.insertNewStyleBlock(graphemes, start, style);\r\n this._text = [\r\n ...this._text.slice(0, start),\r\n ...graphemes,\r\n ...this._text.slice(end),\r\n ];\r\n this.text = this._text.join('');\r\n this.set('dirty', true);\r\n this.initDimensions();\r\n this.setCoords();\r\n this._removeExtraneousStyles();\r\n }\r\n\r\n /**\r\n * Set the selectionStart and selectionEnd according to the new position of cursor\r\n * mimic the key - mouse navigation when shift is pressed.\r\n */\r\n setSelectionStartEndWithShift(\r\n start: number,\r\n end: number,\r\n newSelection: number,\r\n ) {\r\n if (newSelection <= start) {\r\n if (end === start) {\r\n this._selectionDirection = LEFT;\r\n } else if (this._selectionDirection === RIGHT) {\r\n this._selectionDirection = LEFT;\r\n this.selectionEnd = start;\r\n }\r\n this.selectionStart = newSelection;\r\n } else if (newSelection > start && newSelection < end) {\r\n if (this._selectionDirection === RIGHT) {\r\n this.selectionEnd = newSelection;\r\n } else {\r\n this.selectionStart = newSelection;\r\n }\r\n } else {\r\n // newSelection is > selection start and end\r\n if (end === start) {\r\n this._selectionDirection = RIGHT;\r\n } else if (this._selectionDirection === LEFT) {\r\n this._selectionDirection = RIGHT;\r\n this.selectionStart = end;\r\n }\r\n this.selectionEnd = newSelection;\r\n }\r\n }\r\n}"],"names":["reNonWord","ITextBehavior","FabricText","constructor","super","arguments","_defineProperty","initBehavior","this","_tick","bind","_onTickComplete","updateSelectionOnMouseMove","onDeselect","options","isEditing","exitEditing","selected","_animateCursor","_ref","toValue","duration","delay","onComplete","animate","startValue","_currentCursorOpacity","endValue","abort","canvas","selectionStart","selectionEnd","onChange","value","renderCursorOrSelection","_currentTickState","cursorDuration","Math","max","_this$_currentTickCom","_currentTickCompleteState","initDelayedCursor","restart","abortCursorAnimation","cursorDelay","shouldClear","forEach","cursorAnimation","isDone","clearContextTop","restartCursorIfNeeded","some","selectAll","_text","length","_fireSelectionChanged","_updateTextarea","cmdAll","getSelectedText","slice","join","findWordBoundaryLeft","startFrom","offset","index","_reSpace","test","findWordBoundaryRight","findLineBoundaryLeft","findLineBoundaryRight","searchWordBoundary","direction","text","reNewline","_char","selectWord","newSelectionStart","newSelectionEnd","selectLine","enterEditing","e","editable","enterEditingImpl","fire","undefined","target","requestRenderAll","calcOffset","textEditingManager","exitTextEditing","useOverlayEditing","enterOverlayEditing","initHiddenTextarea","hiddenTextarea","focus","_saveEditingProps","_setEditingProps","_textBeforeEdit","enterTextOverlayEdit","onCommit","commitOverlayEdit","onCancel","cancelOverlayEdit","overlayEditor","__overlayEditor","result","extractLinesFromDOM","textareaElement","storeBrowserLines","lines","error","console","warn","dirty","initDimensions","setCoords","getActiveControl","el","getDocumentFromElement","activeElement","getSelectionStartFromPointer","currentStart","currentEnd","__selectionStartOnMouseDown","startIndex","min","endIndex","hoverCursor","defaultCursor","moveCursor","borderColor","editingBorderColor","hasControls","selectable","lockMovementX","lockMovementY","fromStringToGraphemeSelection","start","end","smallerTextStart","graphemeStart","graphemeSplit","smallerTextEnd","fromGraphemeToStringSelection","graphemes","cursorOffsetCache","inCompositionMode","newSelection","updateTextareaPosition","updateFromTextArea","textarea","set","style","_calcTextareaPosition","left","top","desiredPosition","compositionStart","boundaries","_getCursorBoundaries","cursorLocation","get2DCursorLocation","lineIndex","charIndex","charHeight","getValueOfPropertyAt","lineHeight","leftOffset","retinaScaling","getCanvasRetinaScaling","upperCanvas","upperCanvasEl","upperCanvasWidth","width","upperCanvasHeight","height","maxWidth","maxHeight","p","Point","topOffset","transform","calcTransformMatrix","viewportTransform","multiply","clientWidth","clientHeight","x","y","_offset","fontSize","_savedProps","_restoreEditingProps","_this$_savedProps$def","_this$_savedProps$mov","exitEditingImpl","blur","parentNode","removeChild","_forceClearCache","isTextChanged","MODIFIED","_removeExtraneousStyles","prop","styles","_textLines","removeStyleFromTo","lineStart","charStart","lineEnd","charEnd","i","_unwrappedTextLines","styleObj","shiftLineStyles","diff","char","numericChar","parseInt","clonedStyles","Object","assign","line","numericLine","insertNewlineStyleObject","qty","copiedStyle","newLineStyles","originalLineLength","isEndOfLine","someStyleIsCarryingOver","currentCharStyle","numIndex","styleCarriedOver","insertCharStyleObject","quantity","currentLineStyles","currentLineStylesCloned","numericIndex","keys","newStyle","insertNewStyleBlock","insertedText","cursorLoc","addedLines","linesLength","removeChars","splice","insertChars","setSelectionStartEndWithShift","_selectionDirection","LEFT","RIGHT"],"mappings":"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"}
|