@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":"overlayEditor.mjs","sources":["../../../src/text/overlayEditor.ts"],"sourcesContent":["/**\r\n * Canva/Polotno-style Overlay Text Editor\r\n *\r\n * Provides seamless inline text editing using an HTML textarea overlay\r\n * that matches canvas text positioning, styling, and transformations.\r\n */\r\n\r\nimport type { Canvas } from '../canvas/Canvas';\r\nimport type { FabricText } from '../shapes/Text/Text';\r\nimport type { IText } from '../shapes/IText/IText';\r\nimport type { Textbox } from '../shapes/Textbox';\r\nimport type { TPointerEventInfo } from '../EventTypeDefs';\r\nimport type { TMat2D } from '../typedefs';\r\nimport { transformPoint } from '../util/misc/matrix';\r\n\r\nexport interface OverlayEditorOptions {\r\n canvas: Canvas;\r\n target: FabricText | IText | Textbox;\r\n onCommit?: (text: string) => void;\r\n onCancel?: () => void;\r\n}\r\n\r\nexport interface ScreenTransform {\r\n translateX: number;\r\n translateY: number;\r\n scaleX: number;\r\n scaleY: number;\r\n angle: number; // in radians\r\n}\r\n\r\nexport class OverlayEditor {\r\n private canvas: Canvas;\r\n private target: FabricText | IText | Textbox;\r\n private container: HTMLElement;\r\n private textarea: HTMLTextAreaElement;\r\n private hostDiv: HTMLDivElement;\r\n private isDestroyed = false;\r\n private isComposing = false;\r\n private lastText: string;\r\n private onCommit?: (text: string) => void;\r\n private onCancel?: () => void;\r\n\r\n // Bound event handlers for cleanup\r\n private boundHandlers = {\r\n onInput: this.handleInput.bind(this),\r\n onKeyDown: this.handleKeyDown.bind(this),\r\n onBlur: this.handleBlur.bind(this),\r\n onCompositionStart: this.handleCompositionStart.bind(this),\r\n onCompositionEnd: this.handleCompositionEnd.bind(this),\r\n onAfterRender: this.handleAfterRender.bind(this),\r\n onMouseWheel: this.handleMouseWheel.bind(this),\r\n onFocus: this.handleFocus.bind(this),\r\n onMouseDown: this.handleMouseDown.bind(this),\r\n };\r\n\r\n constructor(options: OverlayEditorOptions) {\r\n this.canvas = options.canvas;\r\n this.target = options.target;\r\n this.onCommit = options.onCommit;\r\n this.onCancel = options.onCancel;\r\n this.lastText = this.target.text || '';\r\n\r\n this.container = this.getCanvasContainer();\r\n this.createOverlayDOM();\r\n this.attachEventListeners();\r\n this.refresh();\r\n this.focusTextarea();\r\n\r\n // Note: Don't manage object cursors since IText manages all cursors in _saveEditingProps/_restoreEditingProps\r\n // The IText editing system handles hoverCursor, moveCursor, and canvas cursors properly\r\n\r\n // Note: Canvas cursors are handled by IText's _saveEditingProps/_restoreEditingProps\r\n // We don't need to save/restore them here as it would conflict with IText's restoration\r\n }\r\n\r\n /**\r\n * Get the container element for the overlay (parent of upperCanvasEl)\r\n */\r\n private getCanvasContainer(): HTMLElement {\r\n const upperCanvas = this.canvas.upperCanvasEl;\r\n const container = upperCanvas.parentElement;\r\n if (!container) {\r\n throw new Error('Canvas must be mounted in DOM to use overlay editing');\r\n }\r\n \r\n // Ensure the container is positioned for absolute overlay positioning\r\n container.style.position = 'relative';\r\n \r\n return container;\r\n }\r\n\r\n /**\r\n * Create the overlay DOM structure\r\n */\r\n private createOverlayDOM(): void {\r\n // Host div for positioning and overflow control\r\n this.hostDiv = document.createElement('div');\r\n this.hostDiv.style.position = 'absolute';\r\n this.hostDiv.style.pointerEvents = 'none';\r\n this.hostDiv.style.zIndex = '1000';\r\n this.hostDiv.style.transformOrigin = 'left top';\r\n\r\n // Textarea for actual text input\r\n this.textarea = document.createElement('textarea');\r\n this.textarea.style.position = 'absolute';\r\n this.textarea.style.left = '0';\r\n this.textarea.style.top = '0';\r\n this.textarea.style.margin = '0';\r\n this.textarea.style.resize = 'none';\r\n this.textarea.style.pointerEvents = 'auto';\r\n // Set appropriate unicodeBidi based on content and direction\r\n const hasArabicText = /[\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/.test(this.target.text || '');\r\n const isLTRDirection = (this.target as any).direction === 'ltr';\r\n \r\n if (hasArabicText && isLTRDirection) {\r\n // For Arabic text in LTR mode, use embed to preserve shaping while respecting direction\r\n this.textarea.style.unicodeBidi = 'embed';\r\n } else {\r\n // Default to plaintext for natural text flow\r\n this.textarea.style.unicodeBidi = 'plaintext';\r\n }\r\n this.textarea.style.caretColor = 'auto';\r\n\r\n // Polotno-like base\r\n this.textarea.style.border = 'none';\r\n this.textarea.style.padding = '0';\r\n this.textarea.style.background = 'transparent'; // Transparent so Fabric text shows through\r\n this.textarea.style.outline = 'none';\r\n this.textarea.style.overflow = 'hidden'; // Prevent scrollbars\r\n this.textarea.style.whiteSpace = 'pre-wrap';\r\n this.textarea.style.wordBreak = 'normal';\r\n this.textarea.style.overflowWrap = 'break-word';\r\n this.textarea.style.userSelect = 'text';\r\n this.textarea.style.textTransform = 'none';\r\n\r\n // Start visible - we'll handle transitions differently\r\n this.textarea.style.opacity = '1';\r\n\r\n // Set initial text\r\n this.textarea.value = this.target.text || '';\r\n\r\n this.hostDiv.appendChild(this.textarea);\r\n document.body.appendChild(this.hostDiv);\r\n }\r\n\r\n /**\r\n * Attach all event listeners\r\n */\r\n private attachEventListeners(): void {\r\n // Textarea events\r\n this.textarea.addEventListener('input', this.boundHandlers.onInput);\r\n this.textarea.addEventListener('keydown', this.boundHandlers.onKeyDown);\r\n this.textarea.addEventListener('blur', this.boundHandlers.onBlur);\r\n this.textarea.addEventListener(\r\n 'compositionstart',\r\n this.boundHandlers.onCompositionStart,\r\n );\r\n this.textarea.addEventListener(\r\n 'compositionend',\r\n this.boundHandlers.onCompositionEnd,\r\n );\r\n this.textarea.addEventListener('focus', this.boundHandlers.onFocus);\r\n\r\n // Canvas events for synchronization\r\n this.canvas.on('after:render', this.boundHandlers.onAfterRender);\r\n this.canvas.on('mouse:wheel', this.boundHandlers.onMouseWheel);\r\n this.canvas.on('mouse:down', this.boundHandlers.onMouseDown);\r\n \r\n // Store original methods to detect viewport changes\r\n this.setupViewportChangeDetection();\r\n }\r\n\r\n /**\r\n * Remove all event listeners\r\n */\r\n private removeEventListeners(): void {\r\n this.textarea.removeEventListener('input', this.boundHandlers.onInput);\r\n this.textarea.removeEventListener('keydown', this.boundHandlers.onKeyDown);\r\n this.textarea.removeEventListener('blur', this.boundHandlers.onBlur);\r\n this.textarea.removeEventListener(\r\n 'compositionstart',\r\n this.boundHandlers.onCompositionStart,\r\n );\r\n this.textarea.removeEventListener(\r\n 'compositionend',\r\n this.boundHandlers.onCompositionEnd,\r\n );\r\n this.textarea.removeEventListener('focus', this.boundHandlers.onFocus);\r\n\r\n this.canvas.off('after:render', this.boundHandlers.onAfterRender);\r\n this.canvas.off('mouse:wheel', this.boundHandlers.onMouseWheel);\r\n this.canvas.off('mouse:down', this.boundHandlers.onMouseDown);\r\n \r\n // Restore original methods\r\n this.restoreViewportChangeDetection();\r\n }\r\n\r\n /**\r\n * Simple method to refresh positioning when canvas changes\r\n */\r\n private updatePosition(): void {\r\n this.applyOverlayStyle();\r\n }\r\n\r\n /**\r\n * Update the Fabric object bounds to match current textarea size\r\n * This ensures Fabric.js selection controls follow the growing textbox\r\n */\r\n private updateObjectBounds(): void {\r\n if (this.isDestroyed) return;\r\n\r\n const target = this.target;\r\n const zoom = this.canvas.getZoom();\r\n \r\n // Get current textbox dimensions from the host div (in canvas coordinates)\r\n const currentWidth = parseFloat(this.hostDiv.style.width) / zoom;\r\n const currentHeight = parseFloat(this.hostDiv.style.height) / zoom;\r\n \r\n // Only update if there's a meaningful change (avoid float precision issues)\r\n const heightDiff = Math.abs(currentHeight - target.height);\r\n const threshold = 1; // 1px threshold to avoid micro-changes\r\n \r\n if (heightDiff > threshold) {\r\n target.height = currentHeight;\r\n target.setCoords(); // Update control positions\r\n this.canvas.requestRenderAll(); // Re-render to show updated selection\r\n }\r\n }\r\n\r\n /**\r\n * Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)\r\n */\r\n private letterSpacingPx(charSpacing: number, fontSize: number): number {\r\n return (charSpacing / 1000) * fontSize;\r\n }\r\n\r\n /**\r\n * Detect text direction using first strong directional character\r\n */\r\n private firstStrongDir(text: string): 'ltr' | 'rtl' {\r\n // Hebrew: \\u0590-\\u05FF, Arabic: \\u0600-\\u06FF, \\u0750-\\u077F, \\uFB50-\\uFDFF, \\uFE70-\\uFEFF\r\n const rtlRegex =\r\n /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\r\n return rtlRegex.test(text) ? 'rtl' : 'ltr';\r\n }\r\n\r\n private applyOverlayStyle(): void {\r\n const target = this.target;\r\n const canvas = this.canvas;\r\n\r\n // 1. Freshen object's transformations - use aCoords like rtl-test.html\r\n target.setCoords();\r\n const aCoords = target.aCoords;\r\n \r\n // DEBUG: Log dimensions before edit\r\n console.log('BEFORE EDIT:');\r\n console.log(' target.width =', (target as any).width);\r\n console.log(' target.height =', target.height);\r\n console.log(' target.getScaledWidth() =', target.getScaledWidth());\r\n console.log(' target.getScaledHeight() =', target.getScaledHeight());\r\n console.log(' target.padding =', (target as any).padding);\r\n \r\n // 2. Get canvas position and scroll offsets (like rtl-test.html)\r\n const canvasEl = canvas.upperCanvasEl;\r\n const canvasRect = canvasEl.getBoundingClientRect();\r\n const scrollX = window.scrollX || window.pageXOffset;\r\n const scrollY = window.scrollY || window.pageYOffset;\r\n\r\n // 3. Position and dimensions accounting for Fabric Textbox padding and viewport transform\r\n const zoom = canvas.getZoom();\r\n const vpt = canvas.viewportTransform;\r\n const padding = (target as any).padding || 0;\r\n const paddingX = padding * (target.scaleX || 1) * zoom;\r\n const paddingY = padding * (target.scaleY || 1) * zoom;\r\n\r\n // Transform object's top-left corner coordinates to screen coordinates using viewport transform\r\n // aCoords.tl already accounts for object positioning and scaling, just need viewport transform\r\n const screenPoint = transformPoint({ x: aCoords.tl.x, y: aCoords.tl.y }, vpt);\r\n \r\n const left = canvasRect.left + scrollX + screenPoint.x;\r\n const top = canvasRect.top + scrollY + screenPoint.y;\r\n\r\n // 4. Get dimensions with zoom scaling - use target.width for text wrapping, scaled height for container\r\n const width = (target as any).width * (target.scaleX || 1) * zoom; // Account for object scale and viewport zoom\r\n const height = target.height * (target.scaleY || 1) * zoom;\r\n \r\n console.log('WIDTH CALCULATION:');\r\n console.log(' target.width =', (target as any).width);\r\n console.log(' scaledWidth =', target.getScaledWidth());\r\n console.log(' zoom =', zoom);\r\n console.log(' final width =', width);\r\n\r\n // 5. Apply styles to host DIV - absolute positioning like rtl-test.html\r\n this.hostDiv.style.position = 'absolute';\r\n this.hostDiv.style.left = `${left}px`;\r\n this.hostDiv.style.top = `${top}px`;\r\n this.hostDiv.style.width = `${width}px`;\r\n this.hostDiv.style.height = `${height}px`;\r\n this.hostDiv.style.overflow = 'hidden'; // Prevent scrollbars in host div\r\n // Apply rotation matching Fabric.js object transformation\r\n if (target.angle) {\r\n this.hostDiv.style.transform = `rotate(${target.angle}deg)`;\r\n this.hostDiv.style.transformOrigin = 'top left'; // Match Fabric Textbox behavior\r\n } else {\r\n this.hostDiv.style.transform = '';\r\n this.hostDiv.style.transformOrigin = '';\r\n }\r\n\r\n // 6. Style the textarea - match Fabric's exact rendering with padding\r\n const baseFontSize = (target.fontSize ?? 16);\r\n // Use scaleX for font scaling to match Fabric text scaling exactly\r\n const scaleX = target.scaleX || 1;\r\n const finalFontSize = baseFontSize * scaleX * zoom;\r\n const fabricLineHeight = target.lineHeight || 1.16;\r\n // Apply padding and dimensions to textarea\r\n const textareaWidth = paddingX > 0 ? `calc(100% - ${2 * paddingX}px)` : '100%';\r\n const textareaHeight = paddingY > 0 ? `calc(100% - ${2 * paddingY}px)` : '100%';\r\n \r\n this.textarea.style.width = textareaWidth;\r\n this.textarea.style.height = textareaHeight;\r\n this.textarea.style.padding = `${paddingY}px ${paddingX}px`;\r\n \r\n this.textarea.style.fontSize = `${finalFontSize}px`;\r\n this.textarea.style.lineHeight = String(fabricLineHeight); // Use unit-less multiplier\r\n this.textarea.style.fontFamily = target.fontFamily || 'Arial';\r\n this.textarea.style.fontWeight = String(target.fontWeight || 'normal');\r\n this.textarea.style.fontStyle = target.fontStyle || 'normal';\r\n this.textarea.style.textAlign = (target as any).textAlign || 'left';\r\n this.textarea.style.color = target.fill?.toString() || '#000';\r\n this.textarea.style.letterSpacing = `${((target.charSpacing || 0) / 1000)}em`;\r\n this.textarea.style.direction = (target as any).direction || this.firstStrongDir(this.textarea.value || '');\r\n \r\n // Ensure consistent font rendering between Fabric and CSS\r\n this.textarea.style.fontVariant = 'normal';\r\n this.textarea.style.fontStretch = 'normal';\r\n this.textarea.style.textRendering = 'auto';\r\n this.textarea.style.fontKerning = 'auto';\r\n this.textarea.style.boxSizing = 'content-box'; // Padding is added outside width/height\r\n this.textarea.style.margin = '0';\r\n this.textarea.style.border = 'none';\r\n this.textarea.style.outline = 'none';\r\n this.textarea.style.background = 'transparent';\r\n this.textarea.style.wordWrap = 'break-word';\r\n this.textarea.style.whiteSpace = 'pre-wrap';\r\n \r\n // DEBUG: Log final textarea dimensions\r\n console.log('TEXTAREA AFTER SETUP:');\r\n console.log(' textarea width =', this.textarea.style.width);\r\n console.log(' textarea height =', this.textarea.style.height);\r\n console.log(' textarea padding =', this.textarea.style.padding);\r\n console.log(' paddingX =', paddingX, 'paddingY =', paddingY);\r\n console.log(' baseFontSize =', baseFontSize);\r\n console.log(' scaleX =', scaleX);\r\n console.log(' zoom =', zoom);\r\n console.log(' finalFontSize =', finalFontSize);\r\n console.log(' fabricLineHeight =', fabricLineHeight);\r\n\r\n // Initial bounds are set correctly by Fabric.js - don't force update here\r\n\r\n \r\n }\r\n\r\n /**\r\n * Focus the textarea and position cursor at end\r\n */\r\n private focusTextarea(): void {\r\n \r\n\r\n // For overlay editing, we want to keep the object in \"selection mode\" not \"editing mode\"\r\n // This means keeping selected=true and isEditing=false to show boundaries\r\n \r\n // Hide the text content only (not the entire object)\r\n this.target.opacity = 0.01; // Nearly transparent but not fully hidden\r\n \r\n // Ensure object stays selected to show boundaries\r\n (this.target as any).selected = true;\r\n (this.target as any).isEditing = false; // Override any editing state\r\n \r\n // Make sure controls are enabled and movement is allowed during overlay editing\r\n this.target.set({\r\n hasControls: true,\r\n hasBorders: true,\r\n selectable: true,\r\n lockMovementX: false,\r\n lockMovementY: false\r\n });\r\n \r\n // Keep as active object\r\n this.canvas.setActiveObject(this.target);\r\n \r\n this.canvas.requestRenderAll();\r\n this.target.setCoords();\r\n this.applyOverlayStyle();\r\n\r\n \r\n\r\n this.textarea.focus();\r\n this.textarea.setSelectionRange(\r\n this.textarea.value.length,\r\n this.textarea.value.length,\r\n );\r\n \r\n // Ensure the object stays selected even after textarea focus\r\n this.canvas.setActiveObject(this.target);\r\n this.canvas.requestRenderAll();\r\n }\r\n\r\n /**\r\n * Refresh overlay positioning and styling\r\n */\r\n public refresh(): void {\r\n if (this.isDestroyed) return;\r\n this.updatePosition();\r\n // Don't update object bounds on every refresh - only when textarea actually resizes\r\n }\r\n\r\n /**\r\n * Destroy the overlay editor\r\n */\r\n public destroy(commit: boolean = true): void {\r\n if (this.isDestroyed) return;\r\n this.isDestroyed = true;\r\n\r\n this.removeEventListeners();\r\n\r\n // Restore target visibility before handling commit/cancel\r\n if ((this.target as any).__overlayEditor === this) {\r\n (this.target as any).__overlayEditor = undefined;\r\n\r\n // Restore original opacity\r\n if ((this.target as any).__overlayOriginalOpacity !== undefined) {\r\n this.target.opacity = (this.target as any).__overlayOriginalOpacity;\r\n delete (this.target as any).__overlayOriginalOpacity;\r\n }\r\n }\r\n\r\n // Remove DOM first\r\n if (this.hostDiv.parentNode) {\r\n this.hostDiv.parentNode.removeChild(this.hostDiv);\r\n }\r\n\r\n // Handle commit/cancel after restoring visibility\r\n if (commit && !this.isComposing) {\r\n const finalText = this.textarea.value;\r\n if (this.onCommit) {\r\n this.onCommit(finalText);\r\n }\r\n } else if (!commit && this.onCancel) {\r\n this.onCancel();\r\n }\r\n\r\n // Note: Don't restore object cursors since IText manages all cursors in _restoreEditingProps\r\n // Let the IText editing system handle proper restoration of all cursor properties\r\n\r\n // Note: Canvas cursors are restored by IText's _restoreEditingProps method\r\n // Force a cursor refresh by triggering _setCursorFromEvent\r\n setTimeout(() => {\r\n this.canvas.upperCanvasEl.style.cursor = '';\r\n // Trigger cursor refresh on next mouse move\r\n this.canvas.setCursor(this.canvas.defaultCursor);\r\n }, 0);\r\n\r\n // Request canvas re-render\r\n this.canvas.requestRenderAll();\r\n }\r\n\r\n // Event handlers\r\n private handleInput(): void {\r\n if (!this.isComposing && this.target.text !== this.textarea.value) {\r\n // Live update target text\r\n this.target.text = this.textarea.value;\r\n\r\n // Auto-resize textarea to match new content\r\n this.autoResizeTextarea();\r\n\r\n // Ensure object stays in selection mode (not editing mode) to show controls\r\n (this.target as any).selected = true;\r\n (this.target as any).isEditing = false;\r\n this.canvas.setActiveObject(this.target);\r\n this.canvas.requestRenderAll();\r\n }\r\n }\r\n\r\n private autoResizeTextarea(): void {\r\n // Allow both vertical growth and shrinking; host width stays fixed\r\n const oldHeight = parseFloat(window.getComputedStyle(this.textarea).height);\r\n \r\n // Reset height to measure actual needed height\r\n this.textarea.style.height = 'auto';\r\n const scrollHeight = this.textarea.scrollHeight;\r\n \r\n // Add extra padding to prevent text clipping (especially for line height)\r\n const lineHeightBuffer = 8; // Extra space to prevent clipping\r\n const newHeight = Math.max(scrollHeight + lineHeightBuffer, 25); // Minimum height with buffer\r\n const heightChanged = Math.abs(newHeight - oldHeight) > 2; // Only if meaningful change\r\n \r\n this.textarea.style.height = `${newHeight}px`;\r\n this.hostDiv.style.height = `${newHeight}px`; // Match exactly\r\n \r\n // Only update object bounds if height actually changed\r\n if (heightChanged) {\r\n this.updateObjectBounds();\r\n }\r\n }\r\n\r\n private handleKeyDown(e: KeyboardEvent): void {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n this.destroy(false); // Cancel\r\n } else if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {\r\n e.preventDefault();\r\n this.destroy(true); // Commit\r\n }\r\n }\r\n\r\n private handleFocus(): void {\r\n // Focus handler - could be used for future enhancements\r\n }\r\n\r\n private handleBlur(): void {\r\n // Commit on blur unless we're in composition mode\r\n if (!this.isComposing) {\r\n this.destroy(true);\r\n }\r\n }\r\n\r\n private handleCompositionStart(): void {\r\n this.isComposing = true;\r\n }\r\n\r\n private handleCompositionEnd(): void {\r\n this.isComposing = false;\r\n this.handleInput(); // Update text after composition\r\n }\r\n\r\n private handleAfterRender(): void {\r\n this.refresh();\r\n }\r\n\r\n private handleMouseWheel(): void {\r\n this.refresh();\r\n }\r\n\r\n private handleMouseDown(e: TPointerEventInfo): void {\r\n if (e.target !== this.target) {\r\n this.destroy(true);\r\n }\r\n }\r\n\r\n /**\r\n * Setup detection for viewport changes (zoom/pan)\r\n */\r\n private setupViewportChangeDetection(): void {\r\n // Store original methods\r\n (this.canvas as any).__originalSetZoom = this.canvas.setZoom;\r\n (this.canvas as any).__originalSetViewportTransform = this.canvas.setViewportTransform;\r\n (this.canvas as any).__overlayEditor = this;\r\n \r\n // Override setZoom to detect zoom changes\r\n const originalSetZoom = this.canvas.setZoom.bind(this.canvas);\r\n this.canvas.setZoom = (value: number) => {\r\n const result = originalSetZoom(value);\r\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\r\n this.refresh();\r\n }\r\n return result;\r\n };\r\n \r\n // Override setViewportTransform to detect pan changes\r\n const originalSetViewportTransform = this.canvas.setViewportTransform.bind(this.canvas);\r\n this.canvas.setViewportTransform = (vpt: TMat2D) => {\r\n const result = originalSetViewportTransform(vpt);\r\n if ((this.canvas as any).__overlayEditor && !this.isDestroyed) {\r\n this.refresh();\r\n }\r\n return result;\r\n };\r\n }\r\n \r\n /**\r\n * Restore original viewport methods\r\n */\r\n private restoreViewportChangeDetection(): void {\r\n if ((this.canvas as any).__originalSetZoom) {\r\n this.canvas.setZoom = (this.canvas as any).__originalSetZoom;\r\n delete (this.canvas as any).__originalSetZoom;\r\n }\r\n if ((this.canvas as any).__originalSetViewportTransform) {\r\n this.canvas.setViewportTransform = (this.canvas as any).__originalSetViewportTransform;\r\n delete (this.canvas as any).__originalSetViewportTransform;\r\n }\r\n delete (this.canvas as any).__overlayEditor;\r\n }\r\n\r\n \r\n}\r\n\r\n/**\r\n * Enter overlay text editing mode for a text object\r\n */\r\nexport function enterTextOverlayEdit(\r\n canvas: Canvas,\r\n target: FabricText | IText | Textbox,\r\n options?: {\r\n onCommit?: (text: string) => void;\r\n onCancel?: () => void;\r\n },\r\n): OverlayEditor {\r\n // If already in overlay editing, destroy existing editor first\r\n if ((target as any).__overlayEditor) {\r\n (target as any).__overlayEditor.destroy(false);\r\n }\r\n\r\n // Store original opacity so we can restore it later\r\n (target as any).__overlayOriginalOpacity = target.opacity;\r\n\r\n const editor = new OverlayEditor({\r\n canvas,\r\n target,\r\n onCommit: options?.onCommit,\r\n onCancel: options?.onCancel,\r\n });\r\n\r\n // We no longer change fill, so no need to store it\r\n \r\n // Store reference on target for cleanup\r\n (target as any).__overlayEditor = editor;\r\n\r\n return editor;\r\n}\r\n\r\n/**\r\n * Check if a text object is currently being edited with overlay editor\r\n */\r\nexport function isInOverlayEdit(target: FabricText | IText | Textbox): boolean {\r\n return !!(target as any).__overlayEditor?.isActive;\r\n}\r\n"],"names":["OverlayEditor","constructor","options","_defineProperty","onInput","handleInput","bind","onKeyDown","handleKeyDown","onBlur","handleBlur","onCompositionStart","handleCompositionStart","onCompositionEnd","handleCompositionEnd","onAfterRender","handleAfterRender","onMouseWheel","handleMouseWheel","onFocus","handleFocus","onMouseDown","handleMouseDown","canvas","target","onCommit","onCancel","lastText","text","container","getCanvasContainer","createOverlayDOM","attachEventListeners","refresh","focusTextarea","upperCanvas","upperCanvasEl","parentElement","Error","style","position","hostDiv","document","createElement","pointerEvents","zIndex","transformOrigin","textarea","left","top","margin","resize","hasArabicText","test","isLTRDirection","direction","unicodeBidi","caretColor","border","padding","background","outline","overflow","whiteSpace","wordBreak","overflowWrap","userSelect","textTransform","opacity","value","appendChild","body","addEventListener","boundHandlers","on","setupViewportChangeDetection","removeEventListeners","removeEventListener","off","restoreViewportChangeDetection","updatePosition","applyOverlayStyle","updateObjectBounds","isDestroyed","zoom","getZoom","parseFloat","width","currentHeight","height","heightDiff","Math","abs","threshold","setCoords","requestRenderAll","letterSpacingPx","charSpacing","fontSize","firstStrongDir","rtlRegex","_target$fontSize","_target$fill","aCoords","console","log","getScaledWidth","getScaledHeight","canvasEl","canvasRect","getBoundingClientRect","scrollX","window","pageXOffset","scrollY","pageYOffset","vpt","viewportTransform","paddingX","scaleX","paddingY","scaleY","screenPoint","transformPoint","x","tl","y","angle","transform","baseFontSize","finalFontSize","fabricLineHeight","lineHeight","textareaWidth","textareaHeight","String","fontFamily","fontWeight","fontStyle","textAlign","color","fill","toString","letterSpacing","fontVariant","fontStretch","textRendering","fontKerning","boxSizing","wordWrap","selected","isEditing","set","hasControls","hasBorders","selectable","lockMovementX","lockMovementY","setActiveObject","focus","setSelectionRange","length","destroy","commit","arguments","undefined","__overlayEditor","__overlayOriginalOpacity","parentNode","removeChild","isComposing","finalText","setTimeout","cursor","setCursor","defaultCursor","autoResizeTextarea","oldHeight","getComputedStyle","scrollHeight","lineHeightBuffer","newHeight","max","heightChanged","e","key","preventDefault","ctrlKey","metaKey","__originalSetZoom","setZoom","__originalSetViewportTransform","setViewportTransform","originalSetZoom","result","originalSetViewportTransform","enterTextOverlayEdit","editor"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unicode and Internationalization Support
|
|
3
|
+
*
|
|
4
|
+
* Enhanced Unicode handling for complex scripts, RTL/LTR text,
|
|
5
|
+
* and grapheme cluster boundary detection.
|
|
6
|
+
*/
|
|
7
|
+
export interface BiDiRun {
|
|
8
|
+
text: string;
|
|
9
|
+
direction: 'ltr' | 'rtl';
|
|
10
|
+
level: number;
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ScriptInfo {
|
|
15
|
+
script: string;
|
|
16
|
+
direction: 'ltr' | 'rtl';
|
|
17
|
+
needsShaping: boolean;
|
|
18
|
+
complexLayout: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Enhanced grapheme segmentation using Intl.Segmenter when available
|
|
22
|
+
* with fallback to existing graphemeSplit implementation
|
|
23
|
+
*/
|
|
24
|
+
export declare function segmentGraphemes(text: string): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Analyze text for bidirectional runs using Unicode BiDi algorithm (simplified)
|
|
27
|
+
*/
|
|
28
|
+
export declare function analyzeBiDi(text: string, baseDirection?: 'ltr' | 'rtl'): BiDiRun[];
|
|
29
|
+
/**
|
|
30
|
+
* Detect the primary script of text for font fallback and shaping
|
|
31
|
+
*/
|
|
32
|
+
export declare function detectScript(text: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get script information for layout decisions
|
|
35
|
+
*/
|
|
36
|
+
export declare function getScriptInfo(script: string): ScriptInfo;
|
|
37
|
+
/**
|
|
38
|
+
* Break words according to language-specific rules
|
|
39
|
+
*/
|
|
40
|
+
export declare function breakWords(text: string, locale?: string): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Character classification functions
|
|
43
|
+
*/
|
|
44
|
+
export declare function isWhitespace(grapheme: string): boolean;
|
|
45
|
+
export declare function isLineBreak(grapheme: string): boolean;
|
|
46
|
+
export declare function isWordSeparator(grapheme: string): boolean;
|
|
47
|
+
export declare function isPunctuation(grapheme: string): boolean;
|
|
48
|
+
export declare function isEmoji(grapheme: string): boolean;
|
|
49
|
+
export declare function isRTLCharacter(char: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Advanced grapheme cluster handling for complex scripts
|
|
52
|
+
*/
|
|
53
|
+
export declare function findGraphemeClusterBoundaries(text: string): number[];
|
|
54
|
+
/**
|
|
55
|
+
* Check if a position is at a grapheme cluster boundary
|
|
56
|
+
*/
|
|
57
|
+
export declare function isGraphemeClusterBoundary(text: string, position: number): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Find the next grapheme cluster boundary from a given position
|
|
60
|
+
*/
|
|
61
|
+
export declare function findNextGraphemeClusterBoundary(text: string, position: number): number;
|
|
62
|
+
/**
|
|
63
|
+
* Find the previous grapheme cluster boundary from a given position
|
|
64
|
+
*/
|
|
65
|
+
export declare function findPreviousGraphemeClusterBoundary(text: string, position: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Normalize text for consistent processing
|
|
68
|
+
*/
|
|
69
|
+
export declare function normalizeText(text: string, form?: 'NFC' | 'NFD' | 'NFKC' | 'NFKD'): string;
|
|
70
|
+
/**
|
|
71
|
+
* Detect if text contains complex script characters that need special handling
|
|
72
|
+
*/
|
|
73
|
+
export declare function needsComplexLayout(text: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Get text direction based on content analysis
|
|
76
|
+
*/
|
|
77
|
+
export declare function getTextDirection(text: string, fallback?: 'ltr' | 'rtl'): 'ltr' | 'rtl';
|
|
78
|
+
/**
|
|
79
|
+
* Split text into lines respecting complex script rules
|
|
80
|
+
*/
|
|
81
|
+
export declare function splitTextLines(text: string): string[];
|
|
82
|
+
/**
|
|
83
|
+
* Check if combining marks or modifiers should be kept with base character
|
|
84
|
+
*/
|
|
85
|
+
export declare function isCombiningMark(char: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Advanced word breaking for different scripts
|
|
88
|
+
*/
|
|
89
|
+
export declare function breakWordsAdvanced(text: string): string[];
|
|
90
|
+
/**
|
|
91
|
+
* Check if text needs right-to-left processing
|
|
92
|
+
*/
|
|
93
|
+
export declare function needsRTLProcessing(text: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Reverse text for RTL display (simplified - real RTL is more complex)
|
|
96
|
+
*/
|
|
97
|
+
export declare function reverseForRTL(text: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Get appropriate line breaking class for character
|
|
100
|
+
*/
|
|
101
|
+
export declare function getLineBreakClass(char: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* Check if line break is allowed between two characters
|
|
104
|
+
*/
|
|
105
|
+
export declare function isLineBreakAllowed(before: string, after: string): boolean;
|
|
106
|
+
//# sourceMappingURL=unicode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unicode.d.ts","sourceRoot":"","sources":["../../../src/text/unicode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{graphemeSplit as n}from"../util/lang_string.min.mjs";function e(e){if("undefined"!=typeof Intl&&"Segmenter"in Intl)try{const n=new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e);return Array.from(n,n=>n.segment)}catch(n){}return n(e)}export{e as segmentGraphemes};
|
|
2
|
+
//# sourceMappingURL=unicode.min.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unicode.min.mjs","sources":["../../../src/text/unicode.ts"],"sourcesContent":["/**\r\n * Unicode and Internationalization Support\r\n * \r\n * Enhanced Unicode handling for complex scripts, RTL/LTR text,\r\n * and grapheme cluster boundary detection.\r\n */\r\n\r\nimport { graphemeSplit } from '../util/lang_string';\r\n\r\nexport interface BiDiRun {\r\n text: string;\r\n direction: 'ltr' | 'rtl';\r\n level: number;\r\n start: number;\r\n end: number;\r\n}\r\n\r\nexport interface ScriptInfo {\r\n script: string;\r\n direction: 'ltr' | 'rtl';\r\n needsShaping: boolean;\r\n complexLayout: boolean;\r\n}\r\n\r\n// Unicode character categories for text processing\r\nconst UNICODE_CATEGORIES = {\r\n // Bidirectional types\r\n L: /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]/,\r\n R: /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0608\\u060B\\u060D]/,\r\n AL: /[\\u0627\\u0629-\\u063A\\u0641-\\u064A\\u066D-\\u066F\\u0671-\\u06D3\\u06D5]/,\r\n EN: /[\\u0030-\\u0039\\u00B2\\u00B3\\u00B9\\u06F0-\\u06F9]/,\r\n ES: /[\\u002B\\u002D]/,\r\n ET: /[\\u0023\\u0024\\u0025\\u00A2\\u00A3\\u00A4\\u00A5]/,\r\n AN: /[\\u0660-\\u0669\\u066B\\u066C]/,\r\n CS: /[\\u002C\\u002E\\u002F\\u003A\\u00A0]/,\r\n NSM: /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2]/,\r\n BN: /[\\u0000-\\u0008\\u000E-\\u001B\\u007F-\\u0084\\u0086-\\u009F]/,\r\n B: /[\\u000A\\u000D\\u001C-\\u001E\\u0085\\u2029]/,\r\n S: /[\\u0009\\u000B\\u001F]/,\r\n WS: /[\\u000C\\u0020\\u1680\\u2000-\\u200A\\u2028\\u205F\\u3000]/,\r\n ON: /[\\u0021\\u0022\\u0026-\\u002A\\u003B-\\u0040\\u005B-\\u0060\\u007B-\\u007E]/,\r\n};\r\n\r\n// Script detection patterns\r\nconst SCRIPT_PATTERNS = {\r\n latin: /[\\u0041-\\u005A\\u0061-\\u007A\\u00C0-\\u024F]/,\r\n arabic: /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF]/,\r\n hebrew: /[\\u0590-\\u05FF]/,\r\n cyrillic: /[\\u0400-\\u04FF\\u0500-\\u052F]/,\r\n greek: /[\\u0370-\\u03FF\\u1F00-\\u1FFF]/,\r\n cjk: /[\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]/,\r\n hiragana: /[\\u3040-\\u309F]/,\r\n katakana: /[\\u30A0-\\u30FF]/,\r\n hangul: /[\\uAC00-\\uD7AF\\u1100-\\u11FF\\u3130-\\u318F]/,\r\n thai: /[\\u0E00-\\u0E7F]/,\r\n devanagari: /[\\u0900-\\u097F]/,\r\n bengali: /[\\u0980-\\u09FF]/,\r\n emoji: /[\\u1F600-\\u1F64F\\u1F300-\\u1F5FF\\u1F680-\\u1F6FF\\u1F700-\\u1F77F]/,\r\n};\r\n\r\n/**\r\n * Enhanced grapheme segmentation using Intl.Segmenter when available\r\n * with fallback to existing graphemeSplit implementation\r\n */\r\nexport function segmentGraphemes(text: string): string[] {\r\n // Use native Intl.Segmenter if available\r\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\r\n try {\r\n const segmenter = new Intl.Segmenter(undefined, {\r\n granularity: 'grapheme',\r\n });\r\n \r\n const segments = segmenter.segment(text);\r\n return Array.from(segments, segment => segment.segment);\r\n } catch (e) {\r\n // Fallback if Intl.Segmenter fails\r\n }\r\n }\r\n \r\n // Use existing Fabric.js implementation as fallback\r\n return graphemeSplit(text);\r\n}\r\n\r\n/**\r\n * Analyze text for bidirectional runs using Unicode BiDi algorithm (simplified)\r\n */\r\nexport function analyzeBiDi(text: string, baseDirection: 'ltr' | 'rtl' = 'ltr'): BiDiRun[] {\r\n if (!text) return [];\r\n\r\n const runs: BiDiRun[] = [];\r\n const chars = Array.from(text);\r\n let currentRun: BiDiRun | null = null;\r\n\r\n for (let i = 0; i < chars.length; i++) {\r\n const char = chars[i];\r\n const charDirection = getBidiDirection(char, baseDirection);\r\n \r\n // Start new run if direction changes\r\n if (!currentRun || currentRun.direction !== charDirection) {\r\n if (currentRun) {\r\n runs.push(currentRun);\r\n }\r\n \r\n currentRun = {\r\n text: char,\r\n direction: charDirection,\r\n level: charDirection === 'rtl' ? 1 : 0,\r\n start: i,\r\n end: i + 1,\r\n };\r\n } else {\r\n // Continue current run\r\n currentRun.text += char;\r\n currentRun.end = i + 1;\r\n }\r\n }\r\n\r\n // Add final run\r\n if (currentRun) {\r\n runs.push(currentRun);\r\n }\r\n\r\n return runs.length > 0 ? runs : [{\r\n text,\r\n direction: baseDirection,\r\n level: baseDirection === 'rtl' ? 1 : 0,\r\n start: 0,\r\n end: text.length,\r\n }];\r\n}\r\n\r\n/**\r\n * Detect the primary script of text for font fallback and shaping\r\n */\r\nexport function detectScript(text: string): string {\r\n const charCounts: Record<string, number> = {};\r\n const chars = Array.from(text);\r\n\r\n // Count characters by script\r\n for (const char of chars) {\r\n for (const [script, pattern] of Object.entries(SCRIPT_PATTERNS)) {\r\n if (pattern.test(char)) {\r\n charCounts[script] = (charCounts[script] || 0) + 1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Find dominant script\r\n let maxCount = 0;\r\n let dominantScript = 'latin';\r\n\r\n for (const [script, count] of Object.entries(charCounts)) {\r\n if (count > maxCount) {\r\n maxCount = count;\r\n dominantScript = script;\r\n }\r\n }\r\n\r\n return dominantScript;\r\n}\r\n\r\n/**\r\n * Get script information for layout decisions\r\n */\r\nexport function getScriptInfo(script: string): ScriptInfo {\r\n const scriptMap: Record<string, ScriptInfo> = {\r\n latin: {\r\n script: 'latin',\r\n direction: 'ltr',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n arabic: {\r\n script: 'arabic',\r\n direction: 'rtl',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n hebrew: {\r\n script: 'hebrew',\r\n direction: 'rtl',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n thai: {\r\n script: 'thai',\r\n direction: 'ltr',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n devanagari: {\r\n script: 'devanagari',\r\n direction: 'ltr',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n cjk: {\r\n script: 'cjk',\r\n direction: 'ltr',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n };\r\n\r\n return scriptMap[script] || scriptMap.latin;\r\n}\r\n\r\n/**\r\n * Break words according to language-specific rules\r\n */\r\nexport function breakWords(text: string, locale?: string): string[] {\r\n // Use native word segmentation if available\r\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\r\n try {\r\n const segmenter = new Intl.Segmenter(locale, {\r\n granularity: 'word',\r\n });\r\n \r\n const segments = segmenter.segment(text);\r\n return Array.from(segments)\r\n .filter(segment => segment.isWordLike)\r\n .map(segment => segment.segment);\r\n } catch (e) {\r\n // Fallback if Intl.Segmenter fails\r\n }\r\n }\r\n\r\n // Simple fallback word breaking\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n}\r\n\r\n/**\r\n * Character classification functions\r\n */\r\nexport function isWhitespace(grapheme: string): boolean {\r\n return /\\s/.test(grapheme);\r\n}\r\n\r\nexport function isLineBreak(grapheme: string): boolean {\r\n return grapheme === '\\n' || grapheme === '\\r' || grapheme === '\\r\\n';\r\n}\r\n\r\nexport function isWordSeparator(grapheme: string): boolean {\r\n return /[\\s\\-\\u2010-\\u2015]/.test(grapheme);\r\n}\r\n\r\nexport function isPunctuation(grapheme: string): boolean {\r\n return /[\\p{P}]/u.test(grapheme);\r\n}\r\n\r\nexport function isEmoji(grapheme: string): boolean {\r\n return /[\\p{Emoji}]/u.test(grapheme);\r\n}\r\n\r\nexport function isRTLCharacter(char: string): boolean {\r\n return UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char);\r\n}\r\n\r\n/**\r\n * Advanced grapheme cluster handling for complex scripts\r\n */\r\nexport function findGraphemeClusterBoundaries(text: string): number[] {\r\n const boundaries: number[] = [0];\r\n const graphemes = segmentGraphemes(text);\r\n let position = 0;\r\n\r\n for (const grapheme of graphemes) {\r\n position += grapheme.length;\r\n boundaries.push(position);\r\n }\r\n\r\n return boundaries;\r\n}\r\n\r\n/**\r\n * Check if a position is at a grapheme cluster boundary\r\n */\r\nexport function isGraphemeClusterBoundary(text: string, position: number): boolean {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n return boundaries.includes(position);\r\n}\r\n\r\n/**\r\n * Find the next grapheme cluster boundary from a given position\r\n */\r\nexport function findNextGraphemeClusterBoundary(text: string, position: number): number {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n return boundaries.find(boundary => boundary > position) || text.length;\r\n}\r\n\r\n/**\r\n * Find the previous grapheme cluster boundary from a given position \r\n */\r\nexport function findPreviousGraphemeClusterBoundary(text: string, position: number): number {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n const reversedBoundaries = [...boundaries].reverse();\r\n return reversedBoundaries.find(boundary => boundary < position) || 0;\r\n}\r\n\r\n/**\r\n * Normalize text for consistent processing\r\n */\r\nexport function normalizeText(text: string, form: 'NFC' | 'NFD' | 'NFKC' | 'NFKD' = 'NFC'): string {\r\n if (typeof text.normalize === 'function') {\r\n return text.normalize(form);\r\n }\r\n return text;\r\n}\r\n\r\n/**\r\n * Detect if text contains complex script characters that need special handling\r\n */\r\nexport function needsComplexLayout(text: string): boolean {\r\n const complexScripts = ['arabic', 'hebrew', 'thai', 'devanagari', 'bengali'];\r\n const detectedScript = detectScript(text);\r\n return complexScripts.includes(detectedScript);\r\n}\r\n\r\n/**\r\n * Get text direction based on content analysis\r\n */\r\nexport function getTextDirection(text: string, fallback: 'ltr' | 'rtl' = 'ltr'): 'ltr' | 'rtl' {\r\n let rtlChars = 0;\r\n let ltrChars = 0;\r\n\r\n for (const char of text) {\r\n if (UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char)) {\r\n rtlChars++;\r\n } else if (UNICODE_CATEGORIES.L.test(char)) {\r\n ltrChars++;\r\n }\r\n }\r\n\r\n if (rtlChars > ltrChars) return 'rtl';\r\n if (ltrChars > rtlChars) return 'ltr';\r\n return fallback;\r\n}\r\n\r\n/**\r\n * Split text into lines respecting complex script rules\r\n */\r\nexport function splitTextLines(text: string): string[] {\r\n // Handle different line break types\r\n return text.split(/\\r\\n|\\r|\\n/);\r\n}\r\n\r\n/**\r\n * Check if combining marks or modifiers should be kept with base character\r\n */\r\nexport function isCombiningMark(char: string): boolean {\r\n return UNICODE_CATEGORIES.NSM.test(char);\r\n}\r\n\r\n/**\r\n * Get bidirectional character type\r\n */\r\nfunction getBidiDirection(char: string, baseDirection: 'ltr' | 'rtl'): 'ltr' | 'rtl' {\r\n // Strong RTL characters\r\n if (UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char)) {\r\n return 'rtl';\r\n }\r\n \r\n // Strong LTR characters \r\n if (UNICODE_CATEGORIES.L.test(char)) {\r\n return 'ltr';\r\n }\r\n \r\n // Numbers follow base direction in simplified algorithm\r\n if (UNICODE_CATEGORIES.EN.test(char) || UNICODE_CATEGORIES.AN.test(char)) {\r\n return baseDirection;\r\n }\r\n \r\n // Neutral characters follow context\r\n return baseDirection;\r\n}\r\n\r\n/**\r\n * Advanced word breaking for different scripts\r\n */\r\nexport function breakWordsAdvanced(text: string): string[] {\r\n const script = detectScript(text);\r\n \r\n switch (script) {\r\n case 'cjk':\r\n // CJK can break at most characters\r\n return Array.from(text);\r\n \r\n case 'thai':\r\n // Thai doesn't use spaces - would need dictionary-based breaking\r\n // For now, fall back to character-based breaking\r\n return Array.from(text);\r\n \r\n case 'arabic':\r\n case 'hebrew':\r\n // Handle RTL scripts\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n \r\n default:\r\n // Standard space-based word breaking\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n }\r\n}\r\n\r\n/**\r\n * Check if text needs right-to-left processing\r\n */\r\nexport function needsRTLProcessing(text: string): boolean {\r\n for (const char of text) {\r\n if (isRTLCharacter(char)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Reverse text for RTL display (simplified - real RTL is more complex)\r\n */\r\nexport function reverseForRTL(text: string): string {\r\n // This is a simplified implementation\r\n // Real RTL processing requires full BiDi algorithm\r\n const graphemes = segmentGraphemes(text);\r\n return graphemes.reverse().join('');\r\n}\r\n\r\n/**\r\n * Get appropriate line breaking class for character\r\n */\r\nexport function getLineBreakClass(char: string): string {\r\n // Simplified line breaking classes\r\n if (/\\s/.test(char)) return 'SP';\r\n if (/[!-\\/:-@\\[-`{-~]/.test(char)) return 'BA'; // Break after\r\n if (/[(\\[{]/.test(char)) return 'OP'; // Open punctuation\r\n if (/[)\\]}]/.test(char)) return 'CL'; // Close punctuation\r\n if (/\\d/.test(char)) return 'NU'; // Numeric\r\n if (/[A-Za-z]/.test(char)) return 'AL'; // Alphabetic\r\n \r\n return 'AL'; // Default to alphabetic\r\n}\r\n\r\n/**\r\n * Check if line break is allowed between two characters\r\n */\r\nexport function isLineBreakAllowed(before: string, after: string): boolean {\r\n const beforeClass = getLineBreakClass(before);\r\n const afterClass = getLineBreakClass(after);\r\n \r\n // Simplified line breaking rules\r\n if (beforeClass === 'OP') return false; // Don't break after opening\r\n if (afterClass === 'CL') return false; // Don't break before closing\r\n if (beforeClass === 'SP') return true; // Always allow break after space\r\n \r\n return true; // Default allow\r\n}"],"names":["segmentGraphemes","text","Intl","segments","Segmenter","undefined","granularity","segment","Array","from","e","graphemeSplit"],"mappings":"4DAgEO,SAASA,EAAiBC,GAE/B,GAAoB,oBAATC,MAAwB,cAAeA,KAChD,IACE,MAIMC,EAJY,IAAID,KAAKE,eAAUC,EAAW,CAC9CC,YAAa,aAGYC,QAAQN,GACnC,OAAOO,MAAMC,KAAKN,EAAUI,GAAWA,EAAQA,QACjD,CAAE,MAAOG,GACP,CAKJ,OAAOC,EAAcV,EACvB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { graphemeSplit } from '../util/lang_string.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Unicode and Internationalization Support
|
|
5
|
+
*
|
|
6
|
+
* Enhanced Unicode handling for complex scripts, RTL/LTR text,
|
|
7
|
+
* and grapheme cluster boundary detection.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Enhanced grapheme segmentation using Intl.Segmenter when available
|
|
13
|
+
* with fallback to existing graphemeSplit implementation
|
|
14
|
+
*/
|
|
15
|
+
function segmentGraphemes(text) {
|
|
16
|
+
// Use native Intl.Segmenter if available
|
|
17
|
+
if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {
|
|
18
|
+
try {
|
|
19
|
+
const segmenter = new Intl.Segmenter(undefined, {
|
|
20
|
+
granularity: 'grapheme'
|
|
21
|
+
});
|
|
22
|
+
const segments = segmenter.segment(text);
|
|
23
|
+
return Array.from(segments, segment => segment.segment);
|
|
24
|
+
} catch (e) {
|
|
25
|
+
// Fallback if Intl.Segmenter fails
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Use existing Fabric.js implementation as fallback
|
|
30
|
+
return graphemeSplit(text);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { segmentGraphemes };
|
|
34
|
+
//# sourceMappingURL=unicode.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unicode.mjs","sources":["../../../src/text/unicode.ts"],"sourcesContent":["/**\r\n * Unicode and Internationalization Support\r\n * \r\n * Enhanced Unicode handling for complex scripts, RTL/LTR text,\r\n * and grapheme cluster boundary detection.\r\n */\r\n\r\nimport { graphemeSplit } from '../util/lang_string';\r\n\r\nexport interface BiDiRun {\r\n text: string;\r\n direction: 'ltr' | 'rtl';\r\n level: number;\r\n start: number;\r\n end: number;\r\n}\r\n\r\nexport interface ScriptInfo {\r\n script: string;\r\n direction: 'ltr' | 'rtl';\r\n needsShaping: boolean;\r\n complexLayout: boolean;\r\n}\r\n\r\n// Unicode character categories for text processing\r\nconst UNICODE_CATEGORIES = {\r\n // Bidirectional types\r\n L: /[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]/,\r\n R: /[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05EA\\u05F0-\\u05F4\\u0608\\u060B\\u060D]/,\r\n AL: /[\\u0627\\u0629-\\u063A\\u0641-\\u064A\\u066D-\\u066F\\u0671-\\u06D3\\u06D5]/,\r\n EN: /[\\u0030-\\u0039\\u00B2\\u00B3\\u00B9\\u06F0-\\u06F9]/,\r\n ES: /[\\u002B\\u002D]/,\r\n ET: /[\\u0023\\u0024\\u0025\\u00A2\\u00A3\\u00A4\\u00A5]/,\r\n AN: /[\\u0660-\\u0669\\u066B\\u066C]/,\r\n CS: /[\\u002C\\u002E\\u002F\\u003A\\u00A0]/,\r\n NSM: /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2]/,\r\n BN: /[\\u0000-\\u0008\\u000E-\\u001B\\u007F-\\u0084\\u0086-\\u009F]/,\r\n B: /[\\u000A\\u000D\\u001C-\\u001E\\u0085\\u2029]/,\r\n S: /[\\u0009\\u000B\\u001F]/,\r\n WS: /[\\u000C\\u0020\\u1680\\u2000-\\u200A\\u2028\\u205F\\u3000]/,\r\n ON: /[\\u0021\\u0022\\u0026-\\u002A\\u003B-\\u0040\\u005B-\\u0060\\u007B-\\u007E]/,\r\n};\r\n\r\n// Script detection patterns\r\nconst SCRIPT_PATTERNS = {\r\n latin: /[\\u0041-\\u005A\\u0061-\\u007A\\u00C0-\\u024F]/,\r\n arabic: /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF]/,\r\n hebrew: /[\\u0590-\\u05FF]/,\r\n cyrillic: /[\\u0400-\\u04FF\\u0500-\\u052F]/,\r\n greek: /[\\u0370-\\u03FF\\u1F00-\\u1FFF]/,\r\n cjk: /[\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]/,\r\n hiragana: /[\\u3040-\\u309F]/,\r\n katakana: /[\\u30A0-\\u30FF]/,\r\n hangul: /[\\uAC00-\\uD7AF\\u1100-\\u11FF\\u3130-\\u318F]/,\r\n thai: /[\\u0E00-\\u0E7F]/,\r\n devanagari: /[\\u0900-\\u097F]/,\r\n bengali: /[\\u0980-\\u09FF]/,\r\n emoji: /[\\u1F600-\\u1F64F\\u1F300-\\u1F5FF\\u1F680-\\u1F6FF\\u1F700-\\u1F77F]/,\r\n};\r\n\r\n/**\r\n * Enhanced grapheme segmentation using Intl.Segmenter when available\r\n * with fallback to existing graphemeSplit implementation\r\n */\r\nexport function segmentGraphemes(text: string): string[] {\r\n // Use native Intl.Segmenter if available\r\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\r\n try {\r\n const segmenter = new Intl.Segmenter(undefined, {\r\n granularity: 'grapheme',\r\n });\r\n \r\n const segments = segmenter.segment(text);\r\n return Array.from(segments, segment => segment.segment);\r\n } catch (e) {\r\n // Fallback if Intl.Segmenter fails\r\n }\r\n }\r\n \r\n // Use existing Fabric.js implementation as fallback\r\n return graphemeSplit(text);\r\n}\r\n\r\n/**\r\n * Analyze text for bidirectional runs using Unicode BiDi algorithm (simplified)\r\n */\r\nexport function analyzeBiDi(text: string, baseDirection: 'ltr' | 'rtl' = 'ltr'): BiDiRun[] {\r\n if (!text) return [];\r\n\r\n const runs: BiDiRun[] = [];\r\n const chars = Array.from(text);\r\n let currentRun: BiDiRun | null = null;\r\n\r\n for (let i = 0; i < chars.length; i++) {\r\n const char = chars[i];\r\n const charDirection = getBidiDirection(char, baseDirection);\r\n \r\n // Start new run if direction changes\r\n if (!currentRun || currentRun.direction !== charDirection) {\r\n if (currentRun) {\r\n runs.push(currentRun);\r\n }\r\n \r\n currentRun = {\r\n text: char,\r\n direction: charDirection,\r\n level: charDirection === 'rtl' ? 1 : 0,\r\n start: i,\r\n end: i + 1,\r\n };\r\n } else {\r\n // Continue current run\r\n currentRun.text += char;\r\n currentRun.end = i + 1;\r\n }\r\n }\r\n\r\n // Add final run\r\n if (currentRun) {\r\n runs.push(currentRun);\r\n }\r\n\r\n return runs.length > 0 ? runs : [{\r\n text,\r\n direction: baseDirection,\r\n level: baseDirection === 'rtl' ? 1 : 0,\r\n start: 0,\r\n end: text.length,\r\n }];\r\n}\r\n\r\n/**\r\n * Detect the primary script of text for font fallback and shaping\r\n */\r\nexport function detectScript(text: string): string {\r\n const charCounts: Record<string, number> = {};\r\n const chars = Array.from(text);\r\n\r\n // Count characters by script\r\n for (const char of chars) {\r\n for (const [script, pattern] of Object.entries(SCRIPT_PATTERNS)) {\r\n if (pattern.test(char)) {\r\n charCounts[script] = (charCounts[script] || 0) + 1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Find dominant script\r\n let maxCount = 0;\r\n let dominantScript = 'latin';\r\n\r\n for (const [script, count] of Object.entries(charCounts)) {\r\n if (count > maxCount) {\r\n maxCount = count;\r\n dominantScript = script;\r\n }\r\n }\r\n\r\n return dominantScript;\r\n}\r\n\r\n/**\r\n * Get script information for layout decisions\r\n */\r\nexport function getScriptInfo(script: string): ScriptInfo {\r\n const scriptMap: Record<string, ScriptInfo> = {\r\n latin: {\r\n script: 'latin',\r\n direction: 'ltr',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n arabic: {\r\n script: 'arabic',\r\n direction: 'rtl',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n hebrew: {\r\n script: 'hebrew',\r\n direction: 'rtl',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n thai: {\r\n script: 'thai',\r\n direction: 'ltr',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n devanagari: {\r\n script: 'devanagari',\r\n direction: 'ltr',\r\n needsShaping: true,\r\n complexLayout: true,\r\n },\r\n cjk: {\r\n script: 'cjk',\r\n direction: 'ltr',\r\n needsShaping: false,\r\n complexLayout: false,\r\n },\r\n };\r\n\r\n return scriptMap[script] || scriptMap.latin;\r\n}\r\n\r\n/**\r\n * Break words according to language-specific rules\r\n */\r\nexport function breakWords(text: string, locale?: string): string[] {\r\n // Use native word segmentation if available\r\n if (typeof Intl !== 'undefined' && 'Segmenter' in Intl) {\r\n try {\r\n const segmenter = new Intl.Segmenter(locale, {\r\n granularity: 'word',\r\n });\r\n \r\n const segments = segmenter.segment(text);\r\n return Array.from(segments)\r\n .filter(segment => segment.isWordLike)\r\n .map(segment => segment.segment);\r\n } catch (e) {\r\n // Fallback if Intl.Segmenter fails\r\n }\r\n }\r\n\r\n // Simple fallback word breaking\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n}\r\n\r\n/**\r\n * Character classification functions\r\n */\r\nexport function isWhitespace(grapheme: string): boolean {\r\n return /\\s/.test(grapheme);\r\n}\r\n\r\nexport function isLineBreak(grapheme: string): boolean {\r\n return grapheme === '\\n' || grapheme === '\\r' || grapheme === '\\r\\n';\r\n}\r\n\r\nexport function isWordSeparator(grapheme: string): boolean {\r\n return /[\\s\\-\\u2010-\\u2015]/.test(grapheme);\r\n}\r\n\r\nexport function isPunctuation(grapheme: string): boolean {\r\n return /[\\p{P}]/u.test(grapheme);\r\n}\r\n\r\nexport function isEmoji(grapheme: string): boolean {\r\n return /[\\p{Emoji}]/u.test(grapheme);\r\n}\r\n\r\nexport function isRTLCharacter(char: string): boolean {\r\n return UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char);\r\n}\r\n\r\n/**\r\n * Advanced grapheme cluster handling for complex scripts\r\n */\r\nexport function findGraphemeClusterBoundaries(text: string): number[] {\r\n const boundaries: number[] = [0];\r\n const graphemes = segmentGraphemes(text);\r\n let position = 0;\r\n\r\n for (const grapheme of graphemes) {\r\n position += grapheme.length;\r\n boundaries.push(position);\r\n }\r\n\r\n return boundaries;\r\n}\r\n\r\n/**\r\n * Check if a position is at a grapheme cluster boundary\r\n */\r\nexport function isGraphemeClusterBoundary(text: string, position: number): boolean {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n return boundaries.includes(position);\r\n}\r\n\r\n/**\r\n * Find the next grapheme cluster boundary from a given position\r\n */\r\nexport function findNextGraphemeClusterBoundary(text: string, position: number): number {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n return boundaries.find(boundary => boundary > position) || text.length;\r\n}\r\n\r\n/**\r\n * Find the previous grapheme cluster boundary from a given position \r\n */\r\nexport function findPreviousGraphemeClusterBoundary(text: string, position: number): number {\r\n const boundaries = findGraphemeClusterBoundaries(text);\r\n const reversedBoundaries = [...boundaries].reverse();\r\n return reversedBoundaries.find(boundary => boundary < position) || 0;\r\n}\r\n\r\n/**\r\n * Normalize text for consistent processing\r\n */\r\nexport function normalizeText(text: string, form: 'NFC' | 'NFD' | 'NFKC' | 'NFKD' = 'NFC'): string {\r\n if (typeof text.normalize === 'function') {\r\n return text.normalize(form);\r\n }\r\n return text;\r\n}\r\n\r\n/**\r\n * Detect if text contains complex script characters that need special handling\r\n */\r\nexport function needsComplexLayout(text: string): boolean {\r\n const complexScripts = ['arabic', 'hebrew', 'thai', 'devanagari', 'bengali'];\r\n const detectedScript = detectScript(text);\r\n return complexScripts.includes(detectedScript);\r\n}\r\n\r\n/**\r\n * Get text direction based on content analysis\r\n */\r\nexport function getTextDirection(text: string, fallback: 'ltr' | 'rtl' = 'ltr'): 'ltr' | 'rtl' {\r\n let rtlChars = 0;\r\n let ltrChars = 0;\r\n\r\n for (const char of text) {\r\n if (UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char)) {\r\n rtlChars++;\r\n } else if (UNICODE_CATEGORIES.L.test(char)) {\r\n ltrChars++;\r\n }\r\n }\r\n\r\n if (rtlChars > ltrChars) return 'rtl';\r\n if (ltrChars > rtlChars) return 'ltr';\r\n return fallback;\r\n}\r\n\r\n/**\r\n * Split text into lines respecting complex script rules\r\n */\r\nexport function splitTextLines(text: string): string[] {\r\n // Handle different line break types\r\n return text.split(/\\r\\n|\\r|\\n/);\r\n}\r\n\r\n/**\r\n * Check if combining marks or modifiers should be kept with base character\r\n */\r\nexport function isCombiningMark(char: string): boolean {\r\n return UNICODE_CATEGORIES.NSM.test(char);\r\n}\r\n\r\n/**\r\n * Get bidirectional character type\r\n */\r\nfunction getBidiDirection(char: string, baseDirection: 'ltr' | 'rtl'): 'ltr' | 'rtl' {\r\n // Strong RTL characters\r\n if (UNICODE_CATEGORIES.R.test(char) || UNICODE_CATEGORIES.AL.test(char)) {\r\n return 'rtl';\r\n }\r\n \r\n // Strong LTR characters \r\n if (UNICODE_CATEGORIES.L.test(char)) {\r\n return 'ltr';\r\n }\r\n \r\n // Numbers follow base direction in simplified algorithm\r\n if (UNICODE_CATEGORIES.EN.test(char) || UNICODE_CATEGORIES.AN.test(char)) {\r\n return baseDirection;\r\n }\r\n \r\n // Neutral characters follow context\r\n return baseDirection;\r\n}\r\n\r\n/**\r\n * Advanced word breaking for different scripts\r\n */\r\nexport function breakWordsAdvanced(text: string): string[] {\r\n const script = detectScript(text);\r\n \r\n switch (script) {\r\n case 'cjk':\r\n // CJK can break at most characters\r\n return Array.from(text);\r\n \r\n case 'thai':\r\n // Thai doesn't use spaces - would need dictionary-based breaking\r\n // For now, fall back to character-based breaking\r\n return Array.from(text);\r\n \r\n case 'arabic':\r\n case 'hebrew':\r\n // Handle RTL scripts\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n \r\n default:\r\n // Standard space-based word breaking\r\n return text.split(/\\s+/).filter(word => word.length > 0);\r\n }\r\n}\r\n\r\n/**\r\n * Check if text needs right-to-left processing\r\n */\r\nexport function needsRTLProcessing(text: string): boolean {\r\n for (const char of text) {\r\n if (isRTLCharacter(char)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Reverse text for RTL display (simplified - real RTL is more complex)\r\n */\r\nexport function reverseForRTL(text: string): string {\r\n // This is a simplified implementation\r\n // Real RTL processing requires full BiDi algorithm\r\n const graphemes = segmentGraphemes(text);\r\n return graphemes.reverse().join('');\r\n}\r\n\r\n/**\r\n * Get appropriate line breaking class for character\r\n */\r\nexport function getLineBreakClass(char: string): string {\r\n // Simplified line breaking classes\r\n if (/\\s/.test(char)) return 'SP';\r\n if (/[!-\\/:-@\\[-`{-~]/.test(char)) return 'BA'; // Break after\r\n if (/[(\\[{]/.test(char)) return 'OP'; // Open punctuation\r\n if (/[)\\]}]/.test(char)) return 'CL'; // Close punctuation\r\n if (/\\d/.test(char)) return 'NU'; // Numeric\r\n if (/[A-Za-z]/.test(char)) return 'AL'; // Alphabetic\r\n \r\n return 'AL'; // Default to alphabetic\r\n}\r\n\r\n/**\r\n * Check if line break is allowed between two characters\r\n */\r\nexport function isLineBreakAllowed(before: string, after: string): boolean {\r\n const beforeClass = getLineBreakClass(before);\r\n const afterClass = getLineBreakClass(after);\r\n \r\n // Simplified line breaking rules\r\n if (beforeClass === 'OP') return false; // Don't break after opening\r\n if (afterClass === 'CL') return false; // Don't break before closing\r\n if (beforeClass === 'SP') return true; // Always allow break after space\r\n \r\n return true; // Default allow\r\n}"],"names":["segmentGraphemes","text","Intl","segmenter","Segmenter","undefined","granularity","segments","segment","Array","from","e","graphemeSplit"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAuDA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,CAACC,IAAY,EAAY;AACvD;EACA,IAAI,OAAOC,IAAI,KAAK,WAAW,IAAI,WAAW,IAAIA,IAAI,EAAE;IACtD,IAAI;MACF,MAAMC,SAAS,GAAG,IAAID,IAAI,CAACE,SAAS,CAACC,SAAS,EAAE;AAC9CC,QAAAA,WAAW,EAAE;AACf,OAAC,CAAC;AAEF,MAAA,MAAMC,QAAQ,GAAGJ,SAAS,CAACK,OAAO,CAACP,IAAI,CAAC;MACxC,OAAOQ,KAAK,CAACC,IAAI,CAACH,QAAQ,EAAEC,OAAO,IAAIA,OAAO,CAACA,OAAO,CAAC;IACzD,CAAC,CAAC,OAAOG,CAAC,EAAE;AACV;AAAA,IAAA;AAEJ,EAAA;;AAEA;EACA,OAAOC,aAAa,CAACX,IAAI,CAAC;AAC5B;;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { Gradient } from './gradient/Gradient';
|
|
2
|
+
import type { Pattern } from './Pattern';
|
|
3
|
+
import type { XY, Point } from './Point';
|
|
4
|
+
import type { FabricObject as BaseFabricObject } from './shapes/Object/Object';
|
|
5
|
+
interface NominalTag<T> {
|
|
6
|
+
nominalTag?: T;
|
|
7
|
+
}
|
|
8
|
+
type Nominal<Type, Tag> = NominalTag<Tag> & Type;
|
|
9
|
+
type TNonFunctionPropertyNames<T> = {
|
|
10
|
+
[K in keyof T]: T[K] extends Function ? never : K;
|
|
11
|
+
}[keyof T];
|
|
12
|
+
export type TClassProperties<T> = Pick<T, TNonFunctionPropertyNames<T>>;
|
|
13
|
+
export type Constructor<T = object> = new (...args: any[]) => T;
|
|
14
|
+
declare const enum Degree {
|
|
15
|
+
}
|
|
16
|
+
declare const enum Radian {
|
|
17
|
+
}
|
|
18
|
+
export type TDegree = Nominal<number, Degree>;
|
|
19
|
+
export type TRadian = Nominal<number, Radian>;
|
|
20
|
+
export type TAxis = 'x' | 'y';
|
|
21
|
+
export type TAxisKey<T extends string> = `${T}${Capitalize<TAxis>}`;
|
|
22
|
+
export type TFiller = Gradient<'linear'> | Gradient<'radial'> | Pattern;
|
|
23
|
+
export type TSize = {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
};
|
|
27
|
+
export type TBBox = {
|
|
28
|
+
left: number;
|
|
29
|
+
top: number;
|
|
30
|
+
} & TSize;
|
|
31
|
+
export type Percent = `${number}%`;
|
|
32
|
+
/**
|
|
33
|
+
* In order to support webp on node canvas a workaround is needed and is shared here:
|
|
34
|
+
* https://github.com/Automattic/node-canvas/issues/1258
|
|
35
|
+
*/
|
|
36
|
+
export type ImageFormat = 'jpeg' | 'png' | 'webp';
|
|
37
|
+
export type SVGElementName = 'linearGradient' | 'radialGradient' | 'stop';
|
|
38
|
+
export type SupportedSVGUnit = 'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'em';
|
|
39
|
+
/**
|
|
40
|
+
* A transform matrix.
|
|
41
|
+
* Basically a matrix in the form
|
|
42
|
+
* [ a c e ]
|
|
43
|
+
* [ b d f ]
|
|
44
|
+
* [ 0 0 1 ]
|
|
45
|
+
* For more details, see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform#matrix}
|
|
46
|
+
*/
|
|
47
|
+
export type TMat2D = [
|
|
48
|
+
a: number,
|
|
49
|
+
b: number,
|
|
50
|
+
c: number,
|
|
51
|
+
d: number,
|
|
52
|
+
e: number,
|
|
53
|
+
f: number
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* An invalid keyword and an empty string will be handled as the `anonymous` keyword.
|
|
57
|
+
* @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes
|
|
58
|
+
*/
|
|
59
|
+
export type TCrossOrigin = '' | 'anonymous' | 'use-credentials' | null;
|
|
60
|
+
export type TOriginX = 'center' | 'left' | 'right' | number;
|
|
61
|
+
export type TOriginY = 'center' | 'top' | 'bottom' | number;
|
|
62
|
+
export type TCornerPoint = {
|
|
63
|
+
tl: Point;
|
|
64
|
+
tr: Point;
|
|
65
|
+
bl: Point;
|
|
66
|
+
br: Point;
|
|
67
|
+
};
|
|
68
|
+
export type TSVGReviver = (markup: string) => string;
|
|
69
|
+
export type TValidToObjectMethod = 'toDatalessObject' | 'toObject';
|
|
70
|
+
export type TCacheCanvasDimensions = TSize & {
|
|
71
|
+
zoomX: number;
|
|
72
|
+
zoomY: number;
|
|
73
|
+
x: number;
|
|
74
|
+
y: number;
|
|
75
|
+
};
|
|
76
|
+
export type TRectBounds = [min: XY, max: XY];
|
|
77
|
+
export type TToCanvasElementOptions<T extends BaseFabricObject = BaseFabricObject> = {
|
|
78
|
+
left?: number;
|
|
79
|
+
top?: number;
|
|
80
|
+
width?: number;
|
|
81
|
+
height?: number;
|
|
82
|
+
filter?: (object: T) => boolean;
|
|
83
|
+
};
|
|
84
|
+
export type TDataUrlOptions<T extends BaseFabricObject = BaseFabricObject> = TToCanvasElementOptions<T> & {
|
|
85
|
+
multiplier: number;
|
|
86
|
+
format?: ImageFormat;
|
|
87
|
+
quality?: number;
|
|
88
|
+
enableRetinaScaling?: boolean;
|
|
89
|
+
};
|
|
90
|
+
export type Abortable = {
|
|
91
|
+
/**
|
|
92
|
+
* handle aborting
|
|
93
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
|
|
94
|
+
*/
|
|
95
|
+
signal?: AbortSignal;
|
|
96
|
+
};
|
|
97
|
+
export type TOptions<T> = Partial<T> & Record<string, any>;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=typedefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../../src/typedefs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AnimationState, TBaseAnimationOptions, TEasingFunction } from './types';
|
|
2
|
+
export declare abstract class AnimationBase<T extends number | number[] = number | number[]> {
|
|
3
|
+
readonly startValue: T;
|
|
4
|
+
readonly endValue: T;
|
|
5
|
+
readonly duration: number;
|
|
6
|
+
readonly delay: number;
|
|
7
|
+
protected readonly byValue: T;
|
|
8
|
+
protected readonly easing: TEasingFunction<T>;
|
|
9
|
+
private readonly _onStart;
|
|
10
|
+
private readonly _onChange;
|
|
11
|
+
private readonly _onComplete;
|
|
12
|
+
private readonly _abort;
|
|
13
|
+
/**
|
|
14
|
+
* Used to register the animation to a target object
|
|
15
|
+
* so that it can be cancelled within the object context
|
|
16
|
+
*/
|
|
17
|
+
readonly target?: unknown;
|
|
18
|
+
private _state;
|
|
19
|
+
/**
|
|
20
|
+
* Time %, or the ratio of `timeElapsed / duration`
|
|
21
|
+
* @see tick
|
|
22
|
+
*/
|
|
23
|
+
durationProgress: number;
|
|
24
|
+
/**
|
|
25
|
+
* Value %, or the ratio of `(currentValue - startValue) / (endValue - startValue)`
|
|
26
|
+
*/
|
|
27
|
+
valueProgress: number;
|
|
28
|
+
/**
|
|
29
|
+
* Current value
|
|
30
|
+
*/
|
|
31
|
+
value: T;
|
|
32
|
+
/**
|
|
33
|
+
* Animation start time ms
|
|
34
|
+
*/
|
|
35
|
+
private startTime;
|
|
36
|
+
constructor({ startValue, byValue, duration, delay, easing, onStart, onChange, onComplete, abort, target, }: TBaseAnimationOptions<T>);
|
|
37
|
+
get state(): AnimationState;
|
|
38
|
+
isDone(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Calculate the current value based on the easing parameters
|
|
41
|
+
* @param timeElapsed in ms
|
|
42
|
+
* @protected
|
|
43
|
+
*/
|
|
44
|
+
protected abstract calculate(timeElapsed: number): {
|
|
45
|
+
value: T;
|
|
46
|
+
valueProgress: number;
|
|
47
|
+
};
|
|
48
|
+
start(): void;
|
|
49
|
+
private tick;
|
|
50
|
+
private register;
|
|
51
|
+
private unregister;
|
|
52
|
+
abort(): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=AnimationBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimationBase.d.ts","sourceRoot":"","sources":["../../../../src/util/animation/AnimationBase.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EAEd,qBAAqB,EACrB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAIjB,8BAAsB,aAAa,CACjC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE;IAE/C,SAAiB,UAAU,EAAE,CAAC,CAAC;IAC/B,SAAiB,QAAQ,EAAE,CAAC,CAAC;IAC7B,SAAiB,QAAQ,EAAE,MAAM,CAAC;IAClC,SAAiB,KAAK,EAAE,MAAM,CAAC;IAE/B,mBAA2B,OAAO,EAAE,CAAC,CAAC;IACtC,mBAA2B,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAEtD,iBAAyB,QAAQ,CAAe;IAChD,iBAAyB,SAAS,CAAgC;IAClE,iBAAyB,WAAW,CAAgC;IACpE,iBAAyB,MAAM,CAAoB;IAEnD;;;OAGG;IACH,SAAiB,MAAM,CAAC,EAAE,OAAO,CAAC;IAElC,OAAO,CAAC,MAAM,CAA6B;IAC3C;;;OAGG;IACH,gBAAgB,SAAK;IACrB;;OAEG;IACH,aAAa,SAAK;IAClB;;OAEG;IACK,KAAK,EAAE,CAAC,CAAC;IACjB;;OAEG;IACH,QAAgB,SAAS,CAAS;gBAEtB,EACV,UAAU,EACV,OAAO,EACP,QAAc,EACd,KAAS,EACT,MAAsB,EACtB,OAAc,EACd,QAAe,EACf,UAAiB,EACjB,KAAoB,EACpB,MAAM,GACP,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAkB3B,IAAI,KAAK,mBAER;IAED,MAAM;IAIN;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG;QACjD,KAAK,EAAE,CAAC,CAAC;QACT,aAAa,EAAE,MAAM,CAAC;KACvB;IAED,KAAK;IAoBL,OAAO,CAAC,IAAI;IA+BZ,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAIlB,KAAK;CAIN"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{noop as s}from"../../constants.min.mjs";import{requestAnimFrame as e}from"./AnimationFrameProvider.min.mjs";import{runningAnimations as i}from"./AnimationRegistry.min.mjs";import{defaultEasing as r}from"./easing.min.mjs";const a=()=>!1;class o{constructor(e){let{startValue:i,byValue:o,duration:h=500,delay:n=0,easing:u=r,onStart:l=s,onChange:g=s,onComplete:m=s,abort:d=a,target:c}=e;t(this,"_state","pending"),t(this,"durationProgress",0),t(this,"valueProgress",0),this.tick=this.tick.bind(this),this.duration=h,this.delay=n,this.easing=u,this._onStart=l,this._onChange=g,this._onComplete=m,this._abort=d,this.target=c,this.startValue=i,this.byValue=o,this.value=this.startValue,this.endValue=Object.freeze(this.calculate(this.duration).value)}get state(){return this._state}isDone(){return"aborted"===this._state||"completed"===this._state}start(){const t=t=>{"pending"===this._state&&(this.startTime=t||+new Date,this._state="running",this._onStart(),this.tick(this.startTime))};this.register(),this.delay>0?setTimeout(()=>e(t),this.delay):e(t)}tick(t){const s=(t||+new Date)-this.startTime,i=Math.min(s,this.duration);this.durationProgress=i/this.duration;const{value:r,valueProgress:a}=this.calculate(i);this.value=Object.freeze(r),this.valueProgress=a,"aborted"!==this._state&&(this._abort(this.value,this.valueProgress,this.durationProgress)?(this._state="aborted",this.unregister()):s>=this.duration?(this.durationProgress=this.valueProgress=1,this._onChange(this.endValue,this.valueProgress,this.durationProgress),this._state="completed",this._onComplete(this.endValue,this.valueProgress,this.durationProgress),this.unregister()):(this._onChange(this.value,this.valueProgress,this.durationProgress),e(this.tick)))}register(){i.push(this)}unregister(){i.remove(this)}abort(){this._state="aborted",this.unregister()}}export{o as AnimationBase};
|
|
2
|
+
//# sourceMappingURL=AnimationBase.min.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimationBase.min.mjs","sources":["../../../../src/util/animation/AnimationBase.ts"],"sourcesContent":["import { noop } from '../../constants';\nimport { requestAnimFrame } from './AnimationFrameProvider';\nimport { runningAnimations } from './AnimationRegistry';\nimport { defaultEasing } from './easing';\nimport type {\n AnimationState,\n TAbortCallback,\n TBaseAnimationOptions,\n TEasingFunction,\n TOnAnimationChangeCallback,\n} from './types';\n\nconst defaultAbort = () => false;\n\nexport abstract class AnimationBase<\n T extends number | number[] = number | number[],\n> {\n declare readonly startValue: T;\n declare readonly endValue: T;\n declare readonly duration: number;\n declare readonly delay: number;\n\n declare protected readonly byValue: T;\n declare protected readonly easing: TEasingFunction<T>;\n\n declare private readonly _onStart: VoidFunction;\n declare private readonly _onChange: TOnAnimationChangeCallback<T>;\n declare private readonly _onComplete: TOnAnimationChangeCallback<T>;\n declare private readonly _abort: TAbortCallback<T>;\n\n /**\n * Used to register the animation to a target object\n * so that it can be cancelled within the object context\n */\n declare readonly target?: unknown;\n\n private _state: AnimationState = 'pending';\n /**\n * Time %, or the ratio of `timeElapsed / duration`\n * @see tick\n */\n durationProgress = 0;\n /**\n * Value %, or the ratio of `(currentValue - startValue) / (endValue - startValue)`\n */\n valueProgress = 0;\n /**\n * Current value\n */\n declare value: T;\n /**\n * Animation start time ms\n */\n declare private startTime: number;\n\n constructor({\n startValue,\n byValue,\n duration = 500,\n delay = 0,\n easing = defaultEasing,\n onStart = noop,\n onChange = noop,\n onComplete = noop,\n abort = defaultAbort,\n target,\n }: TBaseAnimationOptions<T>) {\n this.tick = this.tick.bind(this);\n\n this.duration = duration;\n this.delay = delay;\n this.easing = easing;\n this._onStart = onStart;\n this._onChange = onChange;\n this._onComplete = onComplete;\n this._abort = abort;\n this.target = target;\n\n this.startValue = startValue;\n this.byValue = byValue;\n this.value = this.startValue;\n this.endValue = Object.freeze(this.calculate(this.duration).value);\n }\n\n get state() {\n return this._state;\n }\n\n isDone() {\n return this._state === 'aborted' || this._state === 'completed';\n }\n\n /**\n * Calculate the current value based on the easing parameters\n * @param timeElapsed in ms\n * @protected\n */\n protected abstract calculate(timeElapsed: number): {\n value: T;\n valueProgress: number;\n };\n\n start() {\n const firstTick: FrameRequestCallback = (timestamp) => {\n if (this._state !== 'pending') return;\n this.startTime = timestamp || +new Date();\n this._state = 'running';\n this._onStart();\n this.tick(this.startTime);\n };\n\n this.register();\n\n // setTimeout(cb, 0) will run cb on the next frame, causing a delay\n // we don't want that\n if (this.delay > 0) {\n setTimeout(() => requestAnimFrame(firstTick), this.delay);\n } else {\n requestAnimFrame(firstTick);\n }\n }\n\n private tick(t: number) {\n const durationMs = (t || +new Date()) - this.startTime;\n const boundDurationMs = Math.min(durationMs, this.duration);\n this.durationProgress = boundDurationMs / this.duration;\n const { value, valueProgress } = this.calculate(boundDurationMs);\n this.value = Object.freeze(value);\n this.valueProgress = valueProgress;\n\n if (this._state === 'aborted') {\n return;\n } else if (\n this._abort(this.value, this.valueProgress, this.durationProgress)\n ) {\n this._state = 'aborted';\n this.unregister();\n } else if (durationMs >= this.duration) {\n this.durationProgress = this.valueProgress = 1;\n this._onChange(this.endValue, this.valueProgress, this.durationProgress);\n this._state = 'completed';\n this._onComplete(\n this.endValue,\n this.valueProgress,\n this.durationProgress,\n );\n this.unregister();\n } else {\n this._onChange(this.value, this.valueProgress, this.durationProgress);\n requestAnimFrame(this.tick);\n }\n }\n\n private register() {\n runningAnimations.push(this as unknown as AnimationBase);\n }\n\n private unregister() {\n runningAnimations.remove(this as unknown as AnimationBase);\n }\n\n abort() {\n this._state = 'aborted';\n this.unregister();\n }\n}\n"],"names":["defaultAbort","AnimationBase","constructor","_ref","startValue","byValue","duration","delay","easing","defaultEasing","onStart","noop","onChange","onComplete","abort","target","_defineProperty","this","tick","bind","_onStart","_onChange","_onComplete","_abort","value","endValue","Object","freeze","calculate","state","_state","isDone","start","firstTick","timestamp","startTime","Date","register","setTimeout","requestAnimFrame","t","durationMs","boundDurationMs","Math","min","durationProgress","valueProgress","unregister","runningAnimations","push","remove"],"mappings":"yTAYA,MAAMA,EAAeA,KAAM,EAEpB,MAAeC,EAyCpBC,WAAAA,CAAWC,GAWkB,IAXjBC,WACVA,EAAUC,QACVA,EAAOC,SACPA,EAAW,IAAGC,MACdA,EAAQ,EAACC,OACTA,EAASC,EAAaC,QACtBA,EAAUC,EAAIC,SACdA,EAAWD,EAAIE,WACfA,EAAaF,EAAIG,MACjBA,EAAQd,EAAYe,OACpBA,GACyBZ,EApC3Ba,gBAMiC,WACjCA,0BAImB,GACnBA,uBAGgB,GAsBdC,KAAKC,KAAOD,KAAKC,KAAKC,KAAKF,MAE3BA,KAAKX,SAAWA,EAChBW,KAAKV,MAAQA,EACbU,KAAKT,OAASA,EACdS,KAAKG,SAAWV,EAChBO,KAAKI,UAAYT,EACjBK,KAAKK,YAAcT,EACnBI,KAAKM,OAAST,EACdG,KAAKF,OAASA,EAEdE,KAAKb,WAAaA,EAClBa,KAAKZ,QAAUA,EACfY,KAAKO,MAAQP,KAAKb,WAClBa,KAAKQ,SAAWC,OAAOC,OAAOV,KAAKW,UAAUX,KAAKX,UAAUkB,MAC9D,CAEA,SAAIK,GACF,OAAOZ,KAAKa,MACd,CAEAC,MAAAA,GACE,MAAuB,YAAhBd,KAAKa,QAAwC,cAAhBb,KAAKa,MAC3C,CAYAE,KAAAA,GACE,MAAMC,EAAmCC,IACnB,YAAhBjB,KAAKa,SACTb,KAAKkB,UAAYD,IAAc,IAAIE,KACnCnB,KAAKa,OAAS,UACdb,KAAKG,WACLH,KAAKC,KAAKD,KAAKkB,aAGjBlB,KAAKoB,WAIDpB,KAAKV,MAAQ,EACf+B,WAAW,IAAMC,EAAiBN,GAAYhB,KAAKV,OAEnDgC,EAAiBN,EAErB,CAEQf,IAAAA,CAAKsB,GACX,MAAMC,GAAcD,IAAM,IAAIJ,MAAUnB,KAAKkB,UACvCO,EAAkBC,KAAKC,IAAIH,EAAYxB,KAAKX,UAClDW,KAAK4B,iBAAmBH,EAAkBzB,KAAKX,SAC/C,MAAMkB,MAAEA,EAAKsB,cAAEA,GAAkB7B,KAAKW,UAAUc,GAChDzB,KAAKO,MAAQE,OAAOC,OAAOH,GAC3BP,KAAK6B,cAAgBA,EAED,YAAhB7B,KAAKa,SAGPb,KAAKM,OAAON,KAAKO,MAAOP,KAAK6B,cAAe7B,KAAK4B,mBAEjD5B,KAAKa,OAAS,UACdb,KAAK8B,cACIN,GAAcxB,KAAKX,UAC5BW,KAAK4B,iBAAmB5B,KAAK6B,cAAgB,EAC7C7B,KAAKI,UAAUJ,KAAKQ,SAAUR,KAAK6B,cAAe7B,KAAK4B,kBACvD5B,KAAKa,OAAS,YACdb,KAAKK,YACHL,KAAKQ,SACLR,KAAK6B,cACL7B,KAAK4B,kBAEP5B,KAAK8B,eAEL9B,KAAKI,UAAUJ,KAAKO,MAAOP,KAAK6B,cAAe7B,KAAK4B,kBACpDN,EAAiBtB,KAAKC,OAE1B,CAEQmB,QAAAA,GACNW,EAAkBC,KAAKhC,KACzB,CAEQ8B,UAAAA,GACNC,EAAkBE,OAAOjC,KAC3B,CAEAH,KAAAA,GACEG,KAAKa,OAAS,UACdb,KAAK8B,YACP"}
|