@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":"Text.d.ts","sourceRoot":"","sources":["../../../../src/shapes/Text/Text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{cache as e}from"../../cache.min.mjs";import{RIGHT as i,CENTER as s,STROKE as n,BOTTOM as h,TOP as r,FILL as o,LEFT as l,DEFAULT_SVG_FONT_SIZE as a}from"../../constants.min.mjs";import{StyledText as d}from"./StyledText.min.mjs";import{SHARED_ATTRIBUTES as c}from"../../parser/attributes.min.mjs";import{parseAttributes as f}from"../../parser/parseAttributes.min.mjs";import{classRegistry as g}from"../../ClassRegistry.min.mjs";import{graphemeSplit as p}from"../../util/lang_string.min.mjs";import{createCanvasElementFor as u}from"../../util/misc/dom.min.mjs";import{layoutText as m}from"../../text/layout.min.mjs";import{hasStyleChanged as _,stylesToArray as x,stylesFromArray as y}from"../../util/misc/textStyles.min.mjs";import{getPathSegmentsInfo as S,getPointOnPath as T}from"../../util/path/index.min.mjs";import"../Object/FabricObject.min.mjs";import{TextSVGExportMixin as L}from"./TextSVGExportMixin.min.mjs";import{applyMixins as w}from"../../util/applyMixins.min.mjs";import{textLayoutProperties as O,additionalProps as C,textDefaultValues as k,JUSTIFY as v,JUSTIFY_CENTER as W,JUSTIFY_RIGHT as A,JUSTIFY_LEFT as H,TEXT_DECORATION_THICKNESS as D}from"./constants.min.mjs";import{isFiller as P}from"../../util/typeAssertions.min.mjs";import{getBrowserLines as b,clearBrowserLines as j}from"../../text/browserLines.min.mjs";import{cacheProperties as F}from"../Object/defaultValues.min.mjs";let z;class B extends d{static getDefaults(){return{...super.getDefaults(),...B.ownDefaults}}constructor(e,i){super(),t(this,"__charBounds",[]),Object.assign(this,B.ownDefaults),this.setOptions(i),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){const t=this.path;t&&(t.segmentsInfo=S(t.path))}_splitText(){const t=b(this);if(t&&this.useOverlayEditing)return this._splitTextFromBrowserLines(t);const e=this._splitTextIntoLines(this.text);return this.textLines=e.lines,this._textLines=e.graphemeLines,this._unwrappedTextLines=e._unwrappedLines,this._text=e.graphemeText,e}_splitTextFromBrowserLines(t){const e=[],i=[],s=[];let n=[];for(const h of t){e.push(h.text);const r=this.graphemeSplit(h.text);i.push(r),s.push(r),n=n.concat(r),h!==t[t.length-1]&&n.push("\n")}const h={lines:e,graphemeLines:i,graphemeText:n,_unwrappedLines:s};return this.textLines=h.lines,this._textLines=h.graphemeLines,this._unwrappedTextLines=h._unwrappedLines,this._text=h.graphemeText,h}initDimensions(){if(this.enableAdvancedLayout&&!this.path)return this.initDimensionsAdvanced();this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(v)&&this.enlargeSpaces()}enlargeSpaces(){let t,e,i,s,n,h,r;for(let o=0,l=this._textLines.length;o<l;o++)if((this.textAlign===v||o!==l-1&&!this.isEndOfWrapping(o))&&(s=0,n=this._textLines[o],e=this.getLineWidth(o),e<this.width&&(r=this.textLines[o].match(this._reSpacesAndTabs)))){i=r.length,t=(this.width-e)/i;for(let e=0;e<=n.length;e++)h=this.__charBounds[o][e],this._reSpaceAndTab.test(n[e])?(h.width+=t,h.kernedWidth+=t,h.left+=s,s+=t):h.left+=s}}_layoutTextAdvanced(){const t=this._getAdvancedLayoutOptions();return m(t)}_getAdvancedLayoutOptions(){return{text:this.text,width:this.width,height:this.height,wrap:this.wrap||"word",align:this._mapTextAlignToAlign(this.textAlign),ellipsis:this.ellipsis||!1,fontSize:this.fontSize,lineHeight:this.lineHeight,letterSpacing:this.letterSpacing||0,charSpacing:this.charSpacing,direction:"inherit"===this.direction?"ltr":this.direction,fontFamily:this.fontFamily,fontStyle:this.fontStyle,fontWeight:this.fontWeight,verticalAlign:this.verticalAlign||"top"}}_mapTextAlignToAlign(t){switch(t){case"center":case s:return"center";case"right":case i:return"right";case"justify":case v:case H:case A:case W:return"justify";default:return"left"}}initDimensionsAdvanced(){if(!this.enableAdvancedLayout)return this.initDimensions();const t=this._layoutTextAdvanced();this.width=t.totalWidth||this.MIN_TEXT_WIDTH,this.height=t.totalHeight,this._convertLayoutToLegacyFormat(t),this.dirty=!0}_convertLayoutToLegacyFormat(t){this._textLines=t.lines.map(t=>t.graphemes),this.textLines=t.lines.map(t=>t.text),this.__charBounds=t.lines.map(t=>t.bounds.map(t=>({left:t.left,top:t.y,width:t.width,height:t.height,kernedWidth:t.kernedWidth,deltaY:t.deltaY||0}))),t.lines.length>0&&(this._unwrappedTextLines=t.lines.map(t=>t.graphemes))}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){const i=e?this._unwrappedTextLines:this._textLines;let s;for(s=0;s<i.length;s++){if(t<=i[s].length)return{lineIndex:s,charIndex:t};t-=i[s].length+this.missingNewlineOffset(s,e)}return{lineIndex:s-1,charIndex:i[s-1].length<t?i[s-1].length:t}}toString(){return`#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`}_getCacheCanvasDimensions(){const t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){const e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")}_renderText(t){this.__overlayEditor||(this.paintFirst===n?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t)))}_setTextStyles(t,e,i){if(t.textBaseline="alphabetic",this.path)switch(this.pathAlign){case s:t.textBaseline="middle";break;case"ascender":t.textBaseline=r;break;case"descender":t.textBaseline=h}t.font=this._getFontDeclaration(e,i)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,i=this._textLines.length;e<i;e++){const i=this.getLineWidth(e);i>t&&(t=i)}return t}_renderTextLine(t,e,i,s,n,h){this._renderChars(t,e,i,s,n,h)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor"))return;const e=t.fillStyle,i=this._getLeftOffset();let s=this._getTopOffset();for(let e=0,n=this._textLines.length;e<n;e++){const n=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas("textBackgroundColor",e)){s+=n;continue}const h=this._textLines[e].length,r=this._getLineLeftOffset(e);let o,l,a=0,d=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor");for(let f=0;f<h;f++){const h=this.__charBounds[e][f];l=this.getValueOfPropertyAt(e,f,"textBackgroundColor"),this.path?(t.save(),t.translate(h.renderLeft,h.renderTop),t.rotate(h.angle),t.fillStyle=l,l&&t.fillRect(-h.width/2,-n/this.lineHeight*(1-this._fontSizeFraction),h.width,n/this.lineHeight),t.restore()):l!==c?(o=i+r+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=c,c&&t.fillRect(o,s,a,n/this.lineHeight),d=h.left,a=h.width,c=l):a+=h.kernedWidth}l&&!this.path&&(o=i+r+d,"rtl"===this.direction&&(o=this.width-o-a),t.fillStyle=l,t.fillRect(o,s,a,n/this.lineHeight)),s+=n}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,i,s,n){const h=e.getFontCache(i),r=this._getFontDeclaration(i),o=s+t,l=s&&r===this._getFontDeclaration(n),a=i.fontSize/this.CACHE_FONT_SIZE;let d,c,f,g;if(s&&void 0!==h[s]&&(f=h[s]),void 0!==h[t]&&(g=d=h[t]),l&&void 0!==h[o]&&(c=h[o],g=c-f),void 0===d||void 0===f||void 0===c){const e=function(){if(!z){const t=u({width:0,height:0});z=t.getContext("2d")}return z}();this._setTextStyles(e,i,!0),void 0===d&&(g=d=e.measureText(t).width,h[t]=d),void 0===f&&l&&s&&(f=e.measureText(s).width,h[s]=f),l&&void 0===c&&(c=e.measureText(o).width,h[o]=c,g=c-f)}return{width:d*a,kernedWidth:g*a}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")}measureLine(t){const e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,n,h=0;const r=this.pathSide===i,o=this.path,a=this._textLines[t],d=a.length,c=new Array(d);this.__charBounds[t]=c;for(let i=0;i<d;i++){const s=a[i];n=this._getGraphemeBox(s,t,i,e),c[i]=n,h+=n.kernedWidth,e=s}if(c[d]={left:n?n.left+n.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},o&&o.segmentsInfo){let t=0;const e=o.segmentsInfo[o.segmentsInfo.length-1].length;switch(this.textAlign){case l:t=r?e-h:0;break;case s:t=(e-h)/2;break;case i:t=r?0:e-h}t+=this.pathStartOffset*(r?-1:1);for(let i=r?d-1:0;r?i>=0:i<d;r?i--:i++)n=c[i],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,n),t+=n.kernedWidth}return{width:h,numOfSpaces:0}}_setGraphemeOnPath(t,e){const s=t+e.kernedWidth/2,n=this.path,h=T(n.path,s,n.segmentsInfo);e.renderLeft=h.x-n.pathOffset.x,e.renderTop=h.y-n.pathOffset.y,e.angle=h.angle+(this.pathSide===i?Math.PI:0)}_getGraphemeBox(t,e,i,s,n){const h=this.getCompleteStyleDeclaration(e,i),r=s?this.getCompleteStyleDeclaration(e,i-1):{},o=this._measureChar(t,h,s,r);let l,a=o.kernedWidth,d=o.width;0!==this.charSpacing&&(l=this._getWidthOfCharSpacing(),d+=l,a+=l);const c={width:d,left:0,height:h.fontSize,kernedWidth:a,deltaY:h.deltaY};if(i>0&&!n){const t=this.__charBounds[e][i-1];c.left=t.left+t.width+o.kernedWidth-o.width}return c}getHeightOfLine(t){if(this.__lineHeights[t])return this.__lineHeights[t];let e=this.getHeightOfChar(t,0);for(let i=1,s=this._textLines[t].length;i<s;i++)e=Math.max(this.getHeightOfChar(t,i),e);return this.__lineHeights[t]=e*this.lineHeight*this._fontSizeMult}calcTextHeight(){let t,e=0;for(let i=0,s=this._textLines.length;i<s;i++)t=this.getHeightOfLine(i),e+=i===s-1?t/this.lineHeight:t;return e}_getLeftOffset(){return"ltr"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let i=0;const s=this._getLeftOffset(),n=this._getTopOffset();for(let h=0,r=this._textLines.length;h<r;h++){const r=this.getHeightOfLine(h),o=r/this.lineHeight,l=this._getLineLeftOffset(h);this._renderTextLine(e,t,this._textLines[h],s+l,n+i+o,h),i+=r}t.restore()}_renderTextFill(t){(this.fill||this.styleHas(o))&&this._renderTextCommon(t,"fillText")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,"strokeText"),t.closePath(),t.restore())}_renderChars(t,e,s,n,h,r){const o=this.getHeightOfLine(r),a=this.textAlign.includes(v),d=this.path,c=!a&&0===this.charSpacing&&this.isEmptyStyles(r)&&!d,f="ltr"===this.direction,g="ltr"===this.direction?1:-1,p=e.direction;let u,m,x,y,S,T="",L=0;if(e.save(),p!==this.direction&&(e.canvas.setAttribute("dir",f?"ltr":"rtl"),e.direction=f?"ltr":"rtl",e.textAlign=f?l:i),h-=o*this._fontSizeFraction/this.lineHeight,c)return this._renderChar(t,e,r,0,s.join(""),n,h),void e.restore();for(let i=0,o=s.length-1;i<=o;i++)y=i===o||this.charSpacing||d,T+=s[i],x=this.__charBounds[r][i],0===L?(n+=g*(x.kernedWidth-x.width),L+=x.width):L+=x.kernedWidth,a&&!y&&this._reSpaceAndTab.test(s[i])&&(y=!0),y||(u=u||this.getCompleteStyleDeclaration(r,i),m=this.getCompleteStyleDeclaration(r,i+1),y=_(u,m,!1)),y&&(d?(e.save(),e.translate(x.renderLeft,x.renderTop),e.rotate(x.angle),this._renderChar(t,e,r,i,T,-L/2,0),e.restore()):(S=n,this._renderChar(t,e,r,i,T,S,h)),T="",u=m,n+=g*L,L=0);e.restore()}_applyPatternGradientTransformText(t){const e=this.width+this.strokeWidth,i=this.height+this.strokeWidth,s=u({width:e,height:i}),n=s.getContext("2d");return s.width=e,s.height=i,n.beginPath(),n.moveTo(0,0),n.lineTo(e,0),n.lineTo(e,i),n.lineTo(0,i),n.closePath(),n.translate(e/2,i/2),n.fillStyle=t.toLive(n),this._applyPatternGradientTransform(n,t),n.fill(),n.createPattern(s,"no-repeat")}handleFiller(t,e,i){let s,n;return P(i)?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(s=-this.width/2,n=-this.height/2,t.translate(s,n),t[e]=this._applyPatternGradientTransformText(i),{offsetX:s,offsetY:n}):(t[e]=i.toLive(t),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){let{stroke:i,strokeWidth:s}=e;return t.lineWidth=s,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",i)}_setFillStyles(t,e){let{fill:i}=e;return this.handleFiller(t,"fillStyle",i)}_renderChar(t,e,i,s,n,h,r){const o=this._getStyleDeclaration(i,s),l=this.getCompleteStyleDeclaration(i,s),a="fillText"===t&&l.fill,d="strokeText"===t&&l.stroke&&l.strokeWidth;if(d||a){if(e.save(),e.font=this._getFontDeclaration(l),o.textBackgroundColor&&this._removeShadow(e),o.deltaY&&(r+=o.deltaY),a){const t=this._setFillStyles(e,l);e.fillText(n,h-t.offsetX,r-t.offsetY)}if(d){const t=this._setStrokeStyles(e,l);e.strokeText(n,h-t.offsetX,r-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,i){const s=this.get2DCursorLocation(t,!0),n=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"fontSize"),h=this.getValueOfPropertyAt(s.lineIndex,s.charIndex,"deltaY"),r={fontSize:n*i.size,deltaY:h+n*i.baseline};this.setSelectionStyles(r,t,e)}_getLineLeftOffset(t){const e=this.getLineWidth(t),n=this.width-e,h=this.textAlign,r=this.direction,o=this.isEndOfWrapping(t);let a=0;return h===v||h===W&&!o||h===A&&!o||h===H&&!o?0:(h===s&&(a=n/2),h===i&&(a=n),h===W&&(a=n/2),h===A&&(a=n),"rtl"===r&&(h===i||h===v||h===A?a=0:h===l||h===H?a=-n:h!==s&&h!==W||(a=-n/2)),a)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];const{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,i){var s;return null!==(s=this._getStyleDeclaration(t,e)[i])&&void 0!==s?s:this[i]}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let i=this._getTopOffset();const s=this._getLeftOffset(),n=this.path,h=this._getWidthOfCharSpacing(),r="linethrough"===e?.5:"overline"===e?1:0,l=this.offsets[e];for(let a=0,d=this._textLines.length;a<d;a++){const d=this.getHeightOfLine(a);if(!this[e]&&!this.styleHas(e,a)){i+=d;continue}const c=this._textLines[a],f=d/this.lineHeight,g=this._getLineLeftOffset(a);let p=0,u=0,m=this.getValueOfPropertyAt(a,0,e),_=this.getValueOfPropertyAt(a,0,o),x=this.getValueOfPropertyAt(a,0,D),y=m,S=_,T=x;const L=i+f*(1-this._fontSizeFraction);let w=this.getHeightOfChar(a,0),O=this.getValueOfPropertyAt(a,0,"deltaY");for(let i=0,h=c.length;i<h;i++){const h=this.__charBounds[a][i];y=this.getValueOfPropertyAt(a,i,e),S=this.getValueOfPropertyAt(a,i,o),T=this.getValueOfPropertyAt(a,i,D);const d=this.getHeightOfChar(a,i),c=this.getValueOfPropertyAt(a,i,"deltaY");if(n&&y&&S){const e=this.fontSize*T/1e3;t.save(),t.fillStyle=_,t.translate(h.renderLeft,h.renderTop),t.rotate(h.angle),t.fillRect(-h.kernedWidth/2,l*d+c-r*e,h.kernedWidth,e),t.restore()}else if((y!==m||S!==_||d!==w||T!==x||c!==O)&&u>0){const e=this.fontSize*x/1e3;let i=s+g+p;"rtl"===this.direction&&(i=this.width-i-u),m&&_&&x&&(t.fillStyle=_,t.fillRect(i,L+l*w+O-r*e,u,e)),p=h.left,u=h.width,m=y,x=T,_=S,w=d,O=c}else u+=h.kernedWidth}let C=s+g+p;"rtl"===this.direction&&(C=this.width-C-u),t.fillStyle=S;const k=this.fontSize*T/1e3;y&&S&&T&&t.fillRect(C,L+l*w+O-r*k,u-h,k),i+=d}this._removeShadow(t)}_getFontDeclaration(){let{fontFamily:t=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:i=this.fontWeight,fontSize:s=this.fontSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;const h=t.includes("'")||t.includes('"')||t.includes(",")||B.genericFonts.includes(t.toLowerCase())?t:`"${t}"`;return[e,i,`${n?this.CACHE_FONT_SIZE:s}px`,h].join(" ")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return p(t)}_splitTextIntoLines(t){const e=t.split(this._reNewline),i=new Array(e.length),s=["\n"];let n=[];for(let t=0;t<e.length;t++)i[t]=this.graphemeSplit(e[t]),n=n.concat(i[t],s);return n.pop(),{_unwrappedLines:i,lines:e,graphemeText:n,graphemeLines:i}}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject([...C,...t]),styles:x(this.styles,this.text),...this.path?{path:this.path.toObject()}:{}}}set(t,e){const{textLayoutProperties:i}=this.constructor;super.set(t,e);let s=!1,n=!1;if("object"==typeof t)for(const e in t)"path"===e&&this.setPathInfo(),s=s||i.includes(e),n=n||"path"===e;else s=i.includes(t),n="path"===t;return n&&this.setPathInfo(),s&&this.initialized&&(j(this),this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(t,e,n){const h=f(t,B.ATTRIBUTE_NAMES,n),{textAnchor:r=l,textDecoration:o="",dx:d=0,dy:c=0,top:g=0,left:p=0,fontSize:u=a,strokeWidth:m=1,..._}={...e,...h},x=new this((t.textContent||"").replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," "),{left:p+d,top:g+c,underline:o.includes("underline"),overline:o.includes("overline"),linethrough:o.includes("line-through"),strokeWidth:0,fontSize:u,..._}),y=x.getScaledHeight()/x.height,S=((x.height+x.strokeWidth)*x.lineHeight-x.height)*y,T=x.getScaledHeight()+S;let L=0;return r===s&&(L=x.getScaledWidth()/2),r===i&&(L=x.getScaledWidth()),x.set({left:x.left-L,top:x.top-(T-x.fontSize*(.07+x._fontSizeFraction))/x.lineHeight,strokeWidth:m}),x}static fromObject(t){return this._fromObject({...t,styles:y(t.styles||{},t.text)},{extraParam:"text"})}}t(B,"textLayoutProperties",O),t(B,"cacheProperties",[...F,...C]),t(B,"ownDefaults",k),t(B,"type","Text"),t(B,"genericFonts",["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]),t(B,"ATTRIBUTE_NAMES",c.concat("x","y","dx","dy","font-family","font-style","font-weight","font-size","letter-spacing","text-decoration","text-anchor")),w(B,[L]),g.setClass(B),g.setSVGClass(B);export{B as FabricText};
|
|
2
|
+
//# sourceMappingURL=Text.min.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.min.mjs","sources":["../../../../src/shapes/Text/Text.ts"],"sourcesContent":["import { cache } from '../../cache';\r\nimport { DEFAULT_SVG_FONT_SIZE, FILL, STROKE } from '../../constants';\r\nimport type { ObjectEvents } from '../../EventTypeDefs';\r\nimport type {\r\n CompleteTextStyleDeclaration,\r\n TextStyle,\r\n TextStyleDeclaration,\r\n} from './StyledText';\r\nimport { StyledText } from './StyledText';\r\nimport { SHARED_ATTRIBUTES } from '../../parser/attributes';\r\nimport { parseAttributes } from '../../parser/parseAttributes';\r\nimport type {\r\n Abortable,\r\n TCacheCanvasDimensions,\r\n TClassProperties,\r\n TFiller,\r\n TOptions,\r\n} from '../../typedefs';\r\nimport { classRegistry } from '../../ClassRegistry';\r\nimport { graphemeSplit } from '../../util/lang_string';\r\nimport { createCanvasElementFor } from '../../util/misc/dom';\r\nimport { layoutText, type LayoutResult, type TextLayoutOptions } from '../../text/layout';\r\nimport { measureGrapheme, measureGraphemeWithKerning } from '../../text/measure';\r\nimport { applyEllipsis } from '../../text/ellipsis';\r\nimport { segmentGraphemes } from '../../text/unicode';\r\nimport type { TextStyleArray } from '../../util/misc/textStyles';\r\nimport {\r\n hasStyleChanged,\r\n stylesFromArray,\r\n stylesToArray,\r\n} from '../../util/misc/textStyles';\r\nimport { getPathSegmentsInfo, getPointOnPath } from '../../util/path';\r\nimport { cacheProperties } from '../Object/FabricObject';\r\nimport type { Path } from '../Path';\r\nimport { TextSVGExportMixin } from './TextSVGExportMixin';\r\nimport { applyMixins } from '../../util/applyMixins';\r\nimport type { FabricObjectProps, SerializedObjectProps } from '../Object/types';\r\nimport type { StylePropertiesType } from './constants';\r\nimport {\r\n additionalProps,\r\n textDefaultValues,\r\n textLayoutProperties,\r\n JUSTIFY,\r\n JUSTIFY_CENTER,\r\n JUSTIFY_LEFT,\r\n JUSTIFY_RIGHT,\r\n TEXT_DECORATION_THICKNESS,\r\n} from './constants';\r\nimport { CENTER, LEFT, RIGHT, TOP, BOTTOM } from '../../constants';\r\nimport { isFiller } from '../../util/typeAssertions';\r\nimport type { Gradient } from '../../gradient/Gradient';\r\nimport type { Pattern } from '../../Pattern';\r\nimport type { CSSRules } from '../../parser/typedefs';\r\nimport { getBrowserLines, clearBrowserLines } from '../../text/browserLines';\r\nimport type { BrowserLine } from '../../text/browserLines';\r\n\r\nlet measuringContext: CanvasRenderingContext2D | null;\r\n\r\n/**\r\n * Return a context for measurement of text string.\r\n * if created it gets stored for reuse\r\n */\r\nfunction getMeasuringContext() {\r\n if (!measuringContext) {\r\n const canvas = createCanvasElementFor({\r\n width: 0,\r\n height: 0,\r\n });\r\n measuringContext = canvas.getContext('2d');\r\n }\r\n return measuringContext;\r\n}\r\n\r\nexport type TPathSide = 'left' | 'right';\r\n\r\nexport type TPathAlign = 'baseline' | 'center' | 'ascender' | 'descender';\r\n\r\nexport type TextLinesInfo = {\r\n lines: string[];\r\n graphemeLines: string[][];\r\n graphemeText: string[];\r\n _unwrappedLines: string[][];\r\n};\r\n\r\n/**\r\n * Measure and return the info of a single grapheme.\r\n * needs the the info of previous graphemes already filled\r\n * Override to customize measuring\r\n */\r\nexport type GraphemeBBox = {\r\n width: number;\r\n height: number;\r\n kernedWidth: number;\r\n left: number;\r\n deltaY: number;\r\n renderLeft?: number;\r\n renderTop?: number;\r\n angle?: number;\r\n};\r\n\r\n// @TODO this is not complete\r\ninterface UniqueTextProps {\r\n charSpacing: number;\r\n lineHeight: number;\r\n fontSize: number;\r\n fontWeight: string | number;\r\n fontFamily: string;\r\n fontStyle: string;\r\n pathSide: TPathSide;\r\n pathAlign: TPathAlign;\r\n underline: boolean;\r\n overline: boolean;\r\n linethrough: boolean;\r\n textAlign: string;\r\n direction: CanvasDirection;\r\n path?: Path;\r\n textDecorationThickness: number;\r\n wrap: 'word' | 'char' | 'none';\r\n ellipsis: boolean | string;\r\n letterSpacing: number;\r\n enableAdvancedLayout: boolean;\r\n verticalAlign: 'top' | 'middle' | 'bottom';\r\n useOverlayEditing: boolean;\r\n}\r\n\r\nexport interface SerializedTextProps\r\n extends SerializedObjectProps,\r\n UniqueTextProps {\r\n styles: TextStyleArray | TextStyle;\r\n}\r\n\r\nexport interface TextProps extends FabricObjectProps, UniqueTextProps {\r\n styles: TextStyle;\r\n}\r\n\r\n/**\r\n * Text class\r\n * @see {@link http://fabricjs.com/fabric-intro-part-2#text}\r\n */\r\nexport class FabricText<\r\n Props extends TOptions<TextProps> = Partial<TextProps>,\r\n SProps extends SerializedTextProps = SerializedTextProps,\r\n EventSpec extends ObjectEvents = ObjectEvents,\r\n >\r\n extends StyledText<Props, SProps, EventSpec>\r\n implements UniqueTextProps\r\n{\r\n /**\r\n * Properties that requires a text layout recalculation when changed\r\n * @type string[]\r\n * @protected\r\n */\r\n static textLayoutProperties: string[] = textLayoutProperties;\r\n\r\n /**\r\n * @private\r\n */\r\n declare _reNewline: RegExp;\r\n\r\n /**\r\n * Use this regular expression to filter for whitespaces that is not a new line.\r\n * Mostly used when text is 'justify' aligned.\r\n * @private\r\n */\r\n declare _reSpacesAndTabs: RegExp;\r\n\r\n /**\r\n * Use this regular expression to filter for whitespace that is not a new line.\r\n * Mostly used when text is 'justify' aligned.\r\n * @private\r\n */\r\n declare _reSpaceAndTab: RegExp;\r\n\r\n /**\r\n * Use this regular expression to filter consecutive groups of non spaces.\r\n * Mostly used when text is 'justify' aligned.\r\n * @private\r\n */\r\n declare _reWords: RegExp;\r\n\r\n declare text: string;\r\n\r\n /**\r\n * Font size (in pixels)\r\n * @type Number\r\n */\r\n declare fontSize: number;\r\n\r\n /**\r\n * Font weight (e.g. bold, normal, 400, 600, 800)\r\n * @type {(Number|String)}\r\n */\r\n declare fontWeight: string | number;\r\n\r\n /**\r\n * Font family\r\n * @type String\r\n */\r\n declare fontFamily: string;\r\n\r\n /**\r\n * Text decoration underline.\r\n * @type Boolean\r\n */\r\n declare underline: boolean;\r\n\r\n /**\r\n * Text decoration overline.\r\n * @type Boolean\r\n */\r\n declare overline: boolean;\r\n\r\n /**\r\n * Text decoration linethrough.\r\n * @type Boolean\r\n */\r\n declare linethrough: boolean;\r\n\r\n /**\r\n * Text alignment. Possible values: \"left\", \"center\", \"right\", \"justify\",\r\n * \"justify-left\", \"justify-center\" or \"justify-right\".\r\n * @type String\r\n */\r\n declare textAlign: string;\r\n\r\n /**\r\n * Font style . Possible values: \"\", \"normal\", \"italic\" or \"oblique\".\r\n * @type String\r\n */\r\n declare fontStyle: string;\r\n\r\n /**\r\n * Line height\r\n * @type Number\r\n */\r\n declare lineHeight: number;\r\n\r\n /**\r\n * Superscript schema object (minimum overlap)\r\n */\r\n declare superscript: {\r\n /**\r\n * fontSize factor\r\n * @default 0.6\r\n */\r\n size: number;\r\n /**\r\n * baseline-shift factor (upwards)\r\n * @default -0.35\r\n */\r\n baseline: number;\r\n };\r\n\r\n /**\r\n * Subscript schema object (minimum overlap)\r\n */\r\n declare subscript: {\r\n /**\r\n * fontSize factor\r\n * @default 0.6\r\n */\r\n size: number;\r\n /**\r\n * baseline-shift factor (downwards)\r\n * @default 0.11\r\n */\r\n baseline: number;\r\n };\r\n\r\n /**\r\n * Background color of text lines\r\n * @type String\r\n */\r\n declare textBackgroundColor: string;\r\n\r\n declare styles: TextStyle;\r\n\r\n /**\r\n * Path that the text should follow.\r\n * since 4.6.0 the path will be drawn automatically.\r\n * if you want to make the path visible, give it a stroke and strokeWidth or fill value\r\n * if you want it to be hidden, assign visible = false to the path.\r\n * This feature is in BETA, and SVG import/export is not yet supported.\r\n * @type Path\r\n * @example\r\n * const textPath = new Text('Text on a path', {\r\n * top: 150,\r\n * left: 150,\r\n * textAlign: 'center',\r\n * charSpacing: -50,\r\n * path: new Path('M 0 0 C 50 -100 150 -100 200 0', {\r\n * strokeWidth: 1,\r\n * visible: false\r\n * }),\r\n * pathSide: 'left',\r\n * pathStartOffset: 0\r\n * });\r\n */\r\n declare path?: Path;\r\n\r\n /**\r\n * Text wrapping mode\r\n * @type string\r\n * @default 'word'\r\n */\r\n declare wrap: 'word' | 'char' | 'none';\r\n\r\n /**\r\n * Ellipsis truncation\r\n * @type boolean | string\r\n * @default false\r\n */\r\n declare ellipsis: boolean | string;\r\n\r\n /**\r\n * Letter spacing in pixels (Konva-style)\r\n * @type number\r\n * @default 0\r\n */\r\n declare letterSpacing: number;\r\n\r\n /**\r\n * Enable advanced text layout engine\r\n * @type boolean\r\n * @default false\r\n */\r\n declare enableAdvancedLayout: boolean;\r\n\r\n /**\r\n * Vertical text alignment\r\n * @type string\r\n * @default 'top'\r\n */\r\n declare verticalAlign: 'top' | 'middle' | 'bottom';\r\n\r\n /**\r\n * Use overlay editor for inline text editing instead of hidden textarea.\r\n * @default false\r\n */\r\n declare useOverlayEditing: boolean;\r\n\r\n /**\r\n * The text decoration tickness for underline, overline and strikethrough\r\n * The tickness is expressed in thousandths of fontSize ( em ).\r\n * The original value was 1/15 that translates to 66.6667 thousandths.\r\n * The choice of unit of measure is to align with charSpacing.\r\n * You can slim the tickness without issues, while large underline or overline may end up\r\n * outside the bounding box of the text. In order to fix that a bigger refactor of the code\r\n * is needed and is out of scope for now. If you need such large overline on the first line\r\n * of text or large underline on the last line of text, consider disabling caching as a\r\n * workaround\r\n * @default 66.667\r\n */\r\n declare textDecorationThickness: number;\r\n\r\n /**\r\n * Offset amount for text path starting position\r\n * Only used when text has a path\r\n */\r\n declare pathStartOffset: number;\r\n\r\n /**\r\n * Which side of the path the text should be drawn on.\r\n * Only used when text has a path\r\n * @type {TPathSide} 'left|right'\r\n */\r\n declare pathSide: TPathSide;\r\n\r\n /**\r\n * How text is aligned to the path. This property determines\r\n * the perpendicular position of each character relative to the path.\r\n * (one of \"baseline\", \"center\", \"ascender\", \"descender\")\r\n * This feature is in BETA, and its behavior may change\r\n * @type TPathAlign\r\n */\r\n declare pathAlign: TPathAlign;\r\n\r\n /**\r\n * @private\r\n */\r\n declare _fontSizeFraction: number;\r\n\r\n /**\r\n * @private\r\n */\r\n declare offsets: { underline: number; linethrough: number; overline: number };\r\n\r\n /**\r\n * Text Line proportion to font Size (in pixels)\r\n * @type Number\r\n */\r\n declare _fontSizeMult: number;\r\n\r\n /**\r\n * additional space between characters\r\n * expressed in thousands of em unit\r\n * @type Number\r\n */\r\n declare charSpacing: number;\r\n\r\n /**\r\n * Baseline shift, styles only, keep at 0 for the main text object\r\n * @type {Number}\r\n */\r\n declare deltaY: number;\r\n\r\n /**\r\n * WARNING: EXPERIMENTAL. NOT SUPPORTED YET\r\n * determine the direction of the text.\r\n * This has to be set manually together with textAlign and originX for proper\r\n * experience.\r\n * some interesting link for the future\r\n * https://www.w3.org/International/questions/qa-bidi-unicode-controls\r\n * @since 4.5.0\r\n * @type {CanvasDirection} 'ltr|rtl'\r\n */\r\n declare direction: CanvasDirection;\r\n\r\n /**\r\n * contains characters bounding boxes\r\n * This variable is considered to be protected.\r\n * But for how mixins are implemented right now, we can't leave it private\r\n * @protected\r\n */\r\n __charBounds: GraphemeBBox[][] = [];\r\n\r\n /**\r\n * use this size when measuring text. To avoid IE11 rounding errors\r\n * @type {Number}\r\n * @readonly\r\n * @private\r\n */\r\n declare CACHE_FONT_SIZE: number;\r\n\r\n /**\r\n * contains the min text width to avoid getting 0\r\n * @type {Number}\r\n */\r\n declare MIN_TEXT_WIDTH: number;\r\n\r\n /**\r\n * contains the the text of the object, divided in lines as they are displayed\r\n * on screen. Wrapping will divide the text independently of line breaks\r\n * @type {string[]}\r\n */\r\n declare textLines: string[];\r\n\r\n /**\r\n * same as textlines, but each line is an array of graphemes as split by splitByGrapheme\r\n * @type {string[]}\r\n */\r\n declare _textLines: string[][];\r\n\r\n declare _unwrappedTextLines: string[][];\r\n declare _text: string[];\r\n declare cursorWidth: number;\r\n declare __lineHeights: number[];\r\n declare __lineWidths: number[];\r\n declare initialized?: true;\r\n\r\n static cacheProperties = [...cacheProperties, ...additionalProps];\r\n\r\n static ownDefaults = textDefaultValues;\r\n\r\n static type = 'Text';\r\n\r\n static getDefaults(): Record<string, any> {\r\n return { ...super.getDefaults(), ...FabricText.ownDefaults };\r\n }\r\n\r\n constructor(text: string, options?: Props) {\r\n super();\r\n Object.assign(this, FabricText.ownDefaults);\r\n this.setOptions(options);\r\n if (!this.styles) {\r\n this.styles = {};\r\n }\r\n this.text = text;\r\n this.initialized = true;\r\n if (this.path) {\r\n this.setPathInfo();\r\n }\r\n this.initDimensions();\r\n this.setCoords();\r\n }\r\n\r\n /**\r\n * If text has a path, it will add the extra information needed\r\n * for path and text calculations\r\n */\r\n setPathInfo() {\r\n const path = this.path;\r\n if (path) {\r\n path.segmentsInfo = getPathSegmentsInfo(path.path);\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n * Divides text into lines of text and lines of graphemes.\r\n * Uses browser lines when available for pixel-perfect consistency.\r\n */\r\n _splitText(): TextLinesInfo {\r\n // Check if we have valid browser lines and should use them\r\n const browserLines = getBrowserLines(this);\r\n if (browserLines && this.useOverlayEditing) {\r\n return this._splitTextFromBrowserLines(browserLines);\r\n }\r\n \r\n const newLines = this._splitTextIntoLines(this.text);\r\n this.textLines = newLines.lines;\r\n this._textLines = newLines.graphemeLines;\r\n this._unwrappedTextLines = newLines._unwrappedLines;\r\n this._text = newLines.graphemeText;\r\n return newLines;\r\n }\r\n\r\n /**\r\n * Create TextLinesInfo from browser-extracted lines\r\n * @private\r\n */\r\n _splitTextFromBrowserLines(browserLines: BrowserLine[]): TextLinesInfo {\r\n const lines: string[] = [];\r\n const graphemeLines: string[][] = [];\r\n const unwrappedLines: string[][] = [];\r\n let graphemeText: string[] = [];\r\n\r\n for (const browserLine of browserLines) {\r\n lines.push(browserLine.text);\r\n const lineGraphemes = this.graphemeSplit(browserLine.text);\r\n graphemeLines.push(lineGraphemes);\r\n unwrappedLines.push(lineGraphemes);\r\n graphemeText = graphemeText.concat(lineGraphemes);\r\n \r\n // Add newline separator between lines (except for the last line)\r\n if (browserLine !== browserLines[browserLines.length - 1]) {\r\n graphemeText.push('\\n');\r\n }\r\n }\r\n\r\n const result: TextLinesInfo = {\r\n lines,\r\n graphemeLines,\r\n graphemeText,\r\n _unwrappedLines: unwrappedLines,\r\n };\r\n\r\n // Update instance properties\r\n this.textLines = result.lines;\r\n this._textLines = result.graphemeLines;\r\n this._unwrappedTextLines = result._unwrappedLines;\r\n this._text = result.graphemeText;\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Initialize or update text dimensions.\r\n * Updates this.width and this.height with the proper values.\r\n * Does not return dimensions.\r\n */\r\n initDimensions(): void {\r\n // Use advanced layout if enabled\r\n if (this.enableAdvancedLayout && !this.path) {\r\n return this.initDimensionsAdvanced();\r\n }\r\n \r\n this._splitText();\r\n this._clearCache();\r\n this.dirty = true;\r\n if (this.path) {\r\n this.width = this.path.width;\r\n this.height = this.path.height;\r\n } else {\r\n this.width =\r\n this.calcTextWidth() || this.cursorWidth || this.MIN_TEXT_WIDTH;\r\n this.height = this.calcTextHeight();\r\n }\r\n if (this.textAlign.includes(JUSTIFY)) {\r\n // once text is measured we need to make space fatter to make justified text.\r\n this.enlargeSpaces();\r\n }\r\n }\r\n\r\n /**\r\n * Enlarge space boxes and shift the others\r\n */\r\n enlargeSpaces() {\r\n let diffSpace,\r\n currentLineWidth,\r\n numberOfSpaces,\r\n accumulatedSpace,\r\n line,\r\n charBound,\r\n spaces;\r\n for (let i = 0, len = this._textLines.length; i < len; i++) {\r\n if (\r\n this.textAlign !== JUSTIFY &&\r\n (i === len - 1 || this.isEndOfWrapping(i))\r\n ) {\r\n continue;\r\n }\r\n accumulatedSpace = 0;\r\n line = this._textLines[i];\r\n currentLineWidth = this.getLineWidth(i);\r\n if (\r\n currentLineWidth < this.width &&\r\n (spaces = this.textLines[i].match(this._reSpacesAndTabs))\r\n ) {\r\n numberOfSpaces = spaces.length;\r\n diffSpace = (this.width - currentLineWidth) / numberOfSpaces;\r\n for (let j = 0; j <= line.length; j++) {\r\n charBound = this.__charBounds[i][j];\r\n if (this._reSpaceAndTab.test(line[j])) {\r\n charBound.width += diffSpace;\r\n charBound.kernedWidth += diffSpace;\r\n charBound.left += accumulatedSpace;\r\n accumulatedSpace += diffSpace;\r\n } else {\r\n charBound.left += accumulatedSpace;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Advanced layout using new text engine (Konva-compatible)\r\n * @private\r\n */\r\n _layoutTextAdvanced(): LayoutResult {\r\n const options = this._getAdvancedLayoutOptions();\r\n return layoutText(options);\r\n }\r\n\r\n /**\r\n * Get advanced layout options from current text properties\r\n * @private\r\n */\r\n _getAdvancedLayoutOptions(): TextLayoutOptions {\r\n return {\r\n text: this.text,\r\n width: this.width,\r\n height: this.height,\r\n wrap: this.wrap || 'word',\r\n align: this._mapTextAlignToAlign(this.textAlign),\r\n ellipsis: this.ellipsis || false,\r\n fontSize: this.fontSize,\r\n lineHeight: this.lineHeight,\r\n letterSpacing: this.letterSpacing || 0,\r\n charSpacing: this.charSpacing,\r\n direction: this.direction === 'inherit' ? 'ltr' : this.direction,\r\n fontFamily: this.fontFamily,\r\n fontStyle: this.fontStyle,\r\n fontWeight: this.fontWeight,\r\n verticalAlign: this.verticalAlign || 'top',\r\n };\r\n }\r\n\r\n /**\r\n * Map Fabric textAlign to Konva align format\r\n * @private\r\n */\r\n _mapTextAlignToAlign(textAlign: string): 'left' | 'center' | 'right' | 'justify' {\r\n switch (textAlign) {\r\n case 'center':\r\n case CENTER:\r\n return 'center';\r\n case 'right':\r\n case RIGHT:\r\n return 'right';\r\n case 'justify':\r\n case JUSTIFY:\r\n case JUSTIFY_LEFT:\r\n case JUSTIFY_RIGHT:\r\n case JUSTIFY_CENTER:\r\n return 'justify';\r\n default:\r\n return 'left';\r\n }\r\n }\r\n\r\n /**\r\n * Enhanced initDimensions that uses advanced layout when enabled\r\n */\r\n initDimensionsAdvanced(): void {\r\n if (!this.enableAdvancedLayout) {\r\n return this.initDimensions();\r\n }\r\n\r\n const layout = this._layoutTextAdvanced();\r\n \r\n // Update dimensions from layout\r\n this.width = layout.totalWidth || this.MIN_TEXT_WIDTH;\r\n this.height = layout.totalHeight;\r\n \r\n // Convert layout to legacy format for compatibility\r\n this._convertLayoutToLegacyFormat(layout);\r\n \r\n this.dirty = true;\r\n }\r\n\r\n /**\r\n * Convert new layout format to legacy _textLines and __charBounds format\r\n * @private\r\n */\r\n _convertLayoutToLegacyFormat(layout: LayoutResult): void {\r\n this._textLines = layout.lines.map(line => line.graphemes);\r\n (this as any).textLines = layout.lines.map(line => line.text);\r\n \r\n // Convert bounds to legacy format\r\n this.__charBounds = layout.lines.map(line => \r\n line.bounds.map(bound => ({\r\n left: bound.left,\r\n top: bound.y,\r\n width: bound.width,\r\n height: bound.height,\r\n kernedWidth: bound.kernedWidth,\r\n deltaY: bound.deltaY || 0,\r\n }))\r\n );\r\n \r\n // Update grapheme info for compatibility\r\n if (layout.lines.length > 0) {\r\n (this as any)._unwrappedTextLines = layout.lines.map(line => line.graphemes);\r\n }\r\n }\r\n\r\n /**\r\n * Detect if the text line is ended with an hard break\r\n * text and itext do not have wrapping, return false\r\n * @return {Boolean}\r\n */\r\n isEndOfWrapping(lineIndex: number): boolean {\r\n return lineIndex === this._textLines.length - 1;\r\n }\r\n\r\n /**\r\n * Detect if a line has a linebreak and so we need to account for it when moving\r\n * and counting style.\r\n * It return always 1 for text and Itext. Textbox has its own implementation\r\n * @return Number\r\n */\r\n missingNewlineOffset(lineIndex: number, skipWrapping?: boolean): 0 | 1;\r\n missingNewlineOffset(_lineIndex: number): 1 {\r\n return 1;\r\n }\r\n\r\n /**\r\n * Returns 2d representation (lineIndex and charIndex) of cursor\r\n * @param {Number} selectionStart\r\n * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.\r\n */\r\n get2DCursorLocation(selectionStart: number, skipWrapping?: boolean) {\r\n const lines = skipWrapping ? this._unwrappedTextLines : this._textLines;\r\n let i: number;\r\n for (i = 0; i < lines.length; i++) {\r\n if (selectionStart <= lines[i].length) {\r\n return {\r\n lineIndex: i,\r\n charIndex: selectionStart,\r\n };\r\n }\r\n selectionStart -=\r\n lines[i].length + this.missingNewlineOffset(i, skipWrapping);\r\n }\r\n return {\r\n lineIndex: i - 1,\r\n charIndex:\r\n lines[i - 1].length < selectionStart\r\n ? lines[i - 1].length\r\n : selectionStart,\r\n };\r\n }\r\n\r\n /**\r\n * Returns string representation of an instance\r\n * @return {String} String representation of text object\r\n */\r\n toString(): string {\r\n return `#<Text (${this.complexity()}): { \"text\": \"${\r\n this.text\r\n }\", \"fontFamily\": \"${this.fontFamily}\" }>`;\r\n }\r\n\r\n /**\r\n * Return the dimension and the zoom level needed to create a cache canvas\r\n * big enough to host the object to be cached.\r\n * @private\r\n * @param {Object} dim.x width of object to be cached\r\n * @param {Object} dim.y height of object to be cached\r\n * @return {Object}.width width of canvas\r\n * @return {Object}.height height of canvas\r\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\r\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\r\n */\r\n _getCacheCanvasDimensions(): TCacheCanvasDimensions {\r\n const dims = super._getCacheCanvasDimensions();\r\n const fontSize = this.fontSize;\r\n dims.width += fontSize * dims.zoomX;\r\n dims.height += fontSize * dims.zoomY;\r\n return dims;\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _render(ctx: CanvasRenderingContext2D) {\r\n const path = this.path;\r\n path && !path.isNotVisible() && path._render(ctx);\r\n this._setTextStyles(ctx);\r\n this._renderTextLinesBackground(ctx);\r\n this._renderTextDecoration(ctx, 'underline');\r\n this._renderText(ctx);\r\n this._renderTextDecoration(ctx, 'overline');\r\n this._renderTextDecoration(ctx, 'linethrough');\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _renderText(ctx: CanvasRenderingContext2D) {\r\n // Skip text rendering if in overlay editing mode\r\n if ((this as any).__overlayEditor) {\r\n return;\r\n }\r\n if (this.paintFirst === STROKE) {\r\n this._renderTextStroke(ctx);\r\n this._renderTextFill(ctx);\r\n } else {\r\n this._renderTextFill(ctx);\r\n this._renderTextStroke(ctx);\r\n }\r\n }\r\n\r\n /**\r\n * Set the font parameter of the context with the object properties or with charStyle\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @param {Object} [charStyle] object with font style properties\r\n * @param {String} [charStyle.fontFamily] Font Family\r\n * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )\r\n * @param {String} [charStyle.fontWeight] Font weight\r\n * @param {String} [charStyle.fontStyle] Font style (italic|normal)\r\n */\r\n _setTextStyles(\r\n ctx: CanvasRenderingContext2D,\r\n charStyle?: any,\r\n forMeasuring?: boolean,\r\n ) {\r\n ctx.textBaseline = 'alphabetic';\r\n if (this.path) {\r\n switch (this.pathAlign) {\r\n case CENTER:\r\n ctx.textBaseline = 'middle';\r\n break;\r\n case 'ascender':\r\n ctx.textBaseline = TOP;\r\n break;\r\n case 'descender':\r\n ctx.textBaseline = BOTTOM;\r\n break;\r\n }\r\n }\r\n ctx.font = this._getFontDeclaration(charStyle, forMeasuring);\r\n }\r\n\r\n /**\r\n * calculate and return the text Width measuring each line.\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @return {Number} Maximum width of Text object\r\n */\r\n calcTextWidth(): number {\r\n let maxWidth = this.getLineWidth(0);\r\n\r\n for (let i = 1, len = this._textLines.length; i < len; i++) {\r\n const currentLineWidth = this.getLineWidth(i);\r\n if (currentLineWidth > maxWidth) {\r\n maxWidth = currentLineWidth;\r\n }\r\n }\r\n return maxWidth;\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @param {String} line Text to render\r\n * @param {Number} left Left position of text\r\n * @param {Number} top Top position of text\r\n * @param {Number} lineIndex Index of a line in a text\r\n */\r\n _renderTextLine(\r\n method: 'fillText' | 'strokeText',\r\n ctx: CanvasRenderingContext2D,\r\n line: string[],\r\n left: number,\r\n top: number,\r\n lineIndex: number,\r\n ) {\r\n this._renderChars(method, ctx, line, left, top, lineIndex);\r\n }\r\n\r\n /**\r\n * Renders the text background for lines, taking care of style\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _renderTextLinesBackground(ctx: CanvasRenderingContext2D) {\r\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {\r\n return;\r\n }\r\n const originalFill = ctx.fillStyle,\r\n leftOffset = this._getLeftOffset();\r\n let lineTopOffset = this._getTopOffset();\r\n\r\n for (let i = 0, len = this._textLines.length; i < len; i++) {\r\n const heightOfLine = this.getHeightOfLine(i);\r\n if (\r\n !this.textBackgroundColor &&\r\n !this.styleHas('textBackgroundColor', i)\r\n ) {\r\n lineTopOffset += heightOfLine;\r\n continue;\r\n }\r\n const jlen = this._textLines[i].length;\r\n const lineLeftOffset = this._getLineLeftOffset(i);\r\n let boxWidth = 0;\r\n let boxStart = 0;\r\n let drawStart;\r\n let currentColor;\r\n let lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\r\n for (let j = 0; j < jlen; j++) {\r\n // at this point charbox are either standard or full with pathInfo if there is a path.\r\n const charBox = this.__charBounds[i][j] as Required<GraphemeBBox>;\r\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\r\n if (this.path) {\r\n ctx.save();\r\n ctx.translate(charBox.renderLeft, charBox.renderTop);\r\n ctx.rotate(charBox.angle);\r\n ctx.fillStyle = currentColor;\r\n currentColor &&\r\n ctx.fillRect(\r\n -charBox.width / 2,\r\n (-heightOfLine / this.lineHeight) * (1 - this._fontSizeFraction),\r\n charBox.width,\r\n heightOfLine / this.lineHeight,\r\n );\r\n ctx.restore();\r\n } else if (currentColor !== lastColor) {\r\n drawStart = leftOffset + lineLeftOffset + boxStart;\r\n if (this.direction === 'rtl') {\r\n drawStart = this.width - drawStart - boxWidth;\r\n }\r\n ctx.fillStyle = lastColor;\r\n lastColor &&\r\n ctx.fillRect(\r\n drawStart,\r\n lineTopOffset,\r\n boxWidth,\r\n heightOfLine / this.lineHeight,\r\n );\r\n boxStart = charBox.left;\r\n boxWidth = charBox.width;\r\n lastColor = currentColor;\r\n } else {\r\n boxWidth += charBox.kernedWidth;\r\n }\r\n }\r\n if (currentColor && !this.path) {\r\n drawStart = leftOffset + lineLeftOffset + boxStart;\r\n if (this.direction === 'rtl') {\r\n drawStart = this.width - drawStart - boxWidth;\r\n }\r\n ctx.fillStyle = currentColor;\r\n ctx.fillRect(\r\n drawStart,\r\n lineTopOffset,\r\n boxWidth,\r\n heightOfLine / this.lineHeight,\r\n );\r\n }\r\n lineTopOffset += heightOfLine;\r\n }\r\n ctx.fillStyle = originalFill;\r\n // if there is text background color no\r\n // other shadows should be casted\r\n this._removeShadow(ctx);\r\n }\r\n\r\n /**\r\n * measure and return the width of a single character.\r\n * possibly overridden to accommodate different measure logic or\r\n * to hook some external lib for character measurement\r\n * @private\r\n * @param {String} _char, char to be measured\r\n * @param {Object} charStyle style of char to be measured\r\n * @param {String} [previousChar] previous char\r\n * @param {Object} [prevCharStyle] style of previous char\r\n */\r\n _measureChar(\r\n _char: string,\r\n charStyle: CompleteTextStyleDeclaration,\r\n previousChar: string | undefined,\r\n prevCharStyle: CompleteTextStyleDeclaration | Record<string, never>,\r\n ) {\r\n const fontCache = cache.getFontCache(charStyle),\r\n fontDeclaration = this._getFontDeclaration(charStyle),\r\n couple = previousChar + _char,\r\n stylesAreEqual =\r\n previousChar &&\r\n fontDeclaration === this._getFontDeclaration(prevCharStyle),\r\n fontMultiplier = charStyle.fontSize / this.CACHE_FONT_SIZE;\r\n let width: number | undefined,\r\n coupleWidth: number | undefined,\r\n previousWidth: number | undefined,\r\n kernedWidth: number | undefined;\r\n\r\n if (previousChar && fontCache[previousChar] !== undefined) {\r\n previousWidth = fontCache[previousChar];\r\n }\r\n if (fontCache[_char] !== undefined) {\r\n kernedWidth = width = fontCache[_char];\r\n }\r\n if (stylesAreEqual && fontCache[couple] !== undefined) {\r\n coupleWidth = fontCache[couple];\r\n kernedWidth = coupleWidth - previousWidth!;\r\n }\r\n if (\r\n width === undefined ||\r\n previousWidth === undefined ||\r\n coupleWidth === undefined\r\n ) {\r\n const ctx = getMeasuringContext()!;\r\n // send a TRUE to specify measuring font size CACHE_FONT_SIZE\r\n this._setTextStyles(ctx, charStyle, true);\r\n if (width === undefined) {\r\n kernedWidth = width = ctx.measureText(_char).width;\r\n fontCache[_char] = width;\r\n }\r\n if (previousWidth === undefined && stylesAreEqual && previousChar) {\r\n previousWidth = ctx.measureText(previousChar).width;\r\n fontCache[previousChar] = previousWidth;\r\n }\r\n if (stylesAreEqual && coupleWidth === undefined) {\r\n // we can measure the kerning couple and subtract the width of the previous character\r\n coupleWidth = ctx.measureText(couple).width;\r\n fontCache[couple] = coupleWidth;\r\n // safe to use the non-null since if undefined we defined it before.\r\n kernedWidth = coupleWidth - previousWidth!;\r\n }\r\n }\r\n return {\r\n width: width * fontMultiplier,\r\n kernedWidth: kernedWidth! * fontMultiplier,\r\n };\r\n }\r\n\r\n /**\r\n * Computes height of character at given position\r\n * @param {Number} line the line index number\r\n * @param {Number} _char the character index number\r\n * @return {Number} fontSize of the character\r\n */\r\n getHeightOfChar(line: number, _char: number): number {\r\n return this.getValueOfPropertyAt(line, _char, 'fontSize');\r\n }\r\n\r\n /**\r\n * measure a text line measuring all characters.\r\n * @param {Number} lineIndex line number\r\n */\r\n measureLine(lineIndex: number) {\r\n const lineInfo = this._measureLine(lineIndex);\r\n if (this.charSpacing !== 0) {\r\n lineInfo.width -= this._getWidthOfCharSpacing();\r\n }\r\n if (lineInfo.width < 0) {\r\n lineInfo.width = 0;\r\n }\r\n return lineInfo;\r\n }\r\n\r\n /**\r\n * measure every grapheme of a line, populating __charBounds\r\n * @param {Number} lineIndex\r\n * @return {Object} object.width total width of characters\r\n * @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs\r\n */\r\n _measureLine(lineIndex: number) {\r\n let width = 0,\r\n prevGrapheme: string | undefined,\r\n graphemeInfo: GraphemeBBox | undefined;\r\n\r\n const reverse = this.pathSide === RIGHT,\r\n path = this.path,\r\n line = this._textLines[lineIndex],\r\n llength = line.length,\r\n lineBounds = new Array<GraphemeBBox>(llength);\r\n\r\n this.__charBounds[lineIndex] = lineBounds;\r\n for (let i = 0; i < llength; i++) {\r\n const grapheme = line[i];\r\n graphemeInfo = this._getGraphemeBox(grapheme, lineIndex, i, prevGrapheme);\r\n lineBounds[i] = graphemeInfo;\r\n width += graphemeInfo.kernedWidth;\r\n prevGrapheme = grapheme;\r\n }\r\n // this latest bound box represent the last character of the line\r\n // to simplify cursor handling in interactive mode.\r\n lineBounds[llength] = {\r\n left: graphemeInfo ? graphemeInfo.left + graphemeInfo.width : 0,\r\n width: 0,\r\n kernedWidth: 0,\r\n height: this.fontSize,\r\n deltaY: 0,\r\n } as GraphemeBBox;\r\n if (path && path.segmentsInfo) {\r\n let positionInPath = 0;\r\n const totalPathLength =\r\n path.segmentsInfo[path.segmentsInfo.length - 1].length;\r\n switch (this.textAlign) {\r\n case LEFT:\r\n positionInPath = reverse ? totalPathLength - width : 0;\r\n break;\r\n case CENTER:\r\n positionInPath = (totalPathLength - width) / 2;\r\n break;\r\n case RIGHT:\r\n positionInPath = reverse ? 0 : totalPathLength - width;\r\n break;\r\n //todo - add support for justify\r\n }\r\n positionInPath += this.pathStartOffset * (reverse ? -1 : 1);\r\n for (\r\n let i = reverse ? llength - 1 : 0;\r\n reverse ? i >= 0 : i < llength;\r\n reverse ? i-- : i++\r\n ) {\r\n graphemeInfo = lineBounds[i];\r\n if (positionInPath > totalPathLength) {\r\n positionInPath %= totalPathLength;\r\n } else if (positionInPath < 0) {\r\n positionInPath += totalPathLength;\r\n }\r\n // it would probably much faster to send all the grapheme position for a line\r\n // and calculate path position/angle at once.\r\n this._setGraphemeOnPath(positionInPath, graphemeInfo);\r\n positionInPath += graphemeInfo.kernedWidth;\r\n }\r\n }\r\n return { width: width, numOfSpaces: 0 };\r\n }\r\n\r\n /**\r\n * Calculate the angle and the left,top position of the char that follow a path.\r\n * It appends it to graphemeInfo to be reused later at rendering\r\n * @private\r\n * @param {Number} positionInPath to be measured\r\n * @param {GraphemeBBox} graphemeInfo current grapheme box information\r\n * @param {Object} startingPoint position of the point\r\n */\r\n _setGraphemeOnPath(positionInPath: number, graphemeInfo: GraphemeBBox) {\r\n const centerPosition = positionInPath + graphemeInfo.kernedWidth / 2,\r\n path = this.path!;\r\n\r\n // we are at currentPositionOnPath. we want to know what point on the path is.\r\n const info = getPointOnPath(path.path, centerPosition, path.segmentsInfo)!;\r\n graphemeInfo.renderLeft = info.x - path.pathOffset.x;\r\n graphemeInfo.renderTop = info.y - path.pathOffset.y;\r\n graphemeInfo.angle = info.angle + (this.pathSide === RIGHT ? Math.PI : 0);\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} grapheme to be measured\r\n * @param {Number} lineIndex index of the line where the char is\r\n * @param {Number} charIndex position in the line\r\n * @param {String} [prevGrapheme] character preceding the one to be measured\r\n * @returns {GraphemeBBox} grapheme bbox\r\n */\r\n _getGraphemeBox(\r\n grapheme: string,\r\n lineIndex: number,\r\n charIndex: number,\r\n prevGrapheme?: string,\r\n skipLeft?: boolean,\r\n ): GraphemeBBox {\r\n const style = this.getCompleteStyleDeclaration(lineIndex, charIndex),\r\n prevStyle = prevGrapheme\r\n ? this.getCompleteStyleDeclaration(lineIndex, charIndex - 1)\r\n : {},\r\n info = this._measureChar(grapheme, style, prevGrapheme, prevStyle);\r\n let kernedWidth = info.kernedWidth,\r\n width = info.width,\r\n charSpacing;\r\n\r\n if (this.charSpacing !== 0) {\r\n charSpacing = this._getWidthOfCharSpacing();\r\n width += charSpacing;\r\n kernedWidth += charSpacing;\r\n }\r\n\r\n const box: GraphemeBBox = {\r\n width,\r\n left: 0,\r\n height: style.fontSize,\r\n kernedWidth,\r\n deltaY: style.deltaY,\r\n };\r\n if (charIndex > 0 && !skipLeft) {\r\n const previousBox = this.__charBounds[lineIndex][charIndex - 1];\r\n box.left =\r\n previousBox.left + previousBox.width + info.kernedWidth - info.width;\r\n }\r\n return box;\r\n }\r\n\r\n /**\r\n * Calculate height of line at 'lineIndex'\r\n * @param {Number} lineIndex index of line to calculate\r\n * @return {Number}\r\n */\r\n getHeightOfLine(lineIndex: number): number {\r\n if (this.__lineHeights[lineIndex]) {\r\n return this.__lineHeights[lineIndex];\r\n }\r\n\r\n // char 0 is measured before the line cycle because it needs to char\r\n // emptylines\r\n let maxHeight = this.getHeightOfChar(lineIndex, 0);\r\n for (let i = 1, len = this._textLines[lineIndex].length; i < len; i++) {\r\n maxHeight = Math.max(this.getHeightOfChar(lineIndex, i), maxHeight);\r\n }\r\n\r\n return (this.__lineHeights[lineIndex] =\r\n maxHeight * this.lineHeight * this._fontSizeMult);\r\n }\r\n\r\n /**\r\n * Calculate text box height\r\n */\r\n calcTextHeight() {\r\n let lineHeight,\r\n height = 0;\r\n for (let i = 0, len = this._textLines.length; i < len; i++) {\r\n lineHeight = this.getHeightOfLine(i);\r\n height += i === len - 1 ? lineHeight / this.lineHeight : lineHeight;\r\n }\r\n return height;\r\n }\r\n\r\n /**\r\n * @private\r\n * @return {Number} Left offset\r\n */\r\n _getLeftOffset(): number {\r\n return this.direction === 'ltr' ? -this.width / 2 : this.width / 2;\r\n }\r\n\r\n /**\r\n * @private\r\n * @return {Number} Top offset\r\n */\r\n _getTopOffset(): number {\r\n return -this.height / 2;\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\r\n */\r\n _renderTextCommon(\r\n ctx: CanvasRenderingContext2D,\r\n method: 'fillText' | 'strokeText',\r\n ) {\r\n ctx.save();\r\n let lineHeights = 0;\r\n const left = this._getLeftOffset(),\r\n top = this._getTopOffset();\r\n for (let i = 0, len = this._textLines.length; i < len; i++) {\r\n const heightOfLine = this.getHeightOfLine(i),\r\n maxHeight = heightOfLine / this.lineHeight,\r\n leftOffset = this._getLineLeftOffset(i);\r\n this._renderTextLine(\r\n method,\r\n ctx,\r\n this._textLines[i],\r\n left + leftOffset,\r\n top + lineHeights + maxHeight,\r\n i,\r\n );\r\n lineHeights += heightOfLine;\r\n }\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _renderTextFill(ctx: CanvasRenderingContext2D) {\r\n if (!this.fill && !this.styleHas(FILL)) {\r\n return;\r\n }\r\n\r\n this._renderTextCommon(ctx, 'fillText');\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _renderTextStroke(ctx: CanvasRenderingContext2D) {\r\n if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {\r\n return;\r\n }\r\n\r\n if (this.shadow && !this.shadow.affectStroke) {\r\n this._removeShadow(ctx);\r\n }\r\n\r\n ctx.save();\r\n this._setLineDash(ctx, this.strokeDashArray);\r\n ctx.beginPath();\r\n this._renderTextCommon(ctx, 'strokeText');\r\n ctx.closePath();\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {String} method fillText or strokeText.\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @param {Array} line Content of the line, splitted in an array by grapheme\r\n * @param {Number} left\r\n * @param {Number} top\r\n * @param {Number} lineIndex\r\n */\r\n _renderChars(\r\n method: 'fillText' | 'strokeText',\r\n ctx: CanvasRenderingContext2D,\r\n line: Array<any>,\r\n left: number,\r\n top: number,\r\n lineIndex: number,\r\n ) {\r\n const lineHeight = this.getHeightOfLine(lineIndex),\r\n isJustify = this.textAlign.includes(JUSTIFY),\r\n path = this.path,\r\n shortCut =\r\n !isJustify &&\r\n this.charSpacing === 0 &&\r\n this.isEmptyStyles(lineIndex) &&\r\n !path,\r\n isLtr = this.direction === 'ltr',\r\n sign = this.direction === 'ltr' ? 1 : -1,\r\n // this was changed in the PR #7674\r\n // currentDirection = ctx.canvas.getAttribute('dir');\r\n currentDirection = ctx.direction;\r\n\r\n let actualStyle,\r\n nextStyle,\r\n charsToRender = '',\r\n charBox,\r\n boxWidth = 0,\r\n timeToRender,\r\n drawingLeft;\r\n\r\n ctx.save();\r\n if (currentDirection !== this.direction) {\r\n ctx.canvas.setAttribute('dir', isLtr ? 'ltr' : 'rtl');\r\n ctx.direction = isLtr ? 'ltr' : 'rtl';\r\n ctx.textAlign = isLtr ? LEFT : RIGHT;\r\n }\r\n top -= (lineHeight * this._fontSizeFraction) / this.lineHeight;\r\n if (shortCut) {\r\n // render all the line in one pass without checking\r\n // drawingLeft = isLtr ? left : left - this.getLineWidth(lineIndex);\r\n this._renderChar(method, ctx, lineIndex, 0, line.join(''), left, top);\r\n ctx.restore();\r\n return;\r\n }\r\n for (let i = 0, len = line.length - 1; i <= len; i++) {\r\n timeToRender = i === len || this.charSpacing || path;\r\n charsToRender += line[i];\r\n charBox = this.__charBounds[lineIndex][i] as Required<GraphemeBBox>;\r\n if (boxWidth === 0) {\r\n left += sign * (charBox.kernedWidth - charBox.width);\r\n boxWidth += charBox.width;\r\n } else {\r\n boxWidth += charBox.kernedWidth;\r\n }\r\n if (isJustify && !timeToRender) {\r\n if (this._reSpaceAndTab.test(line[i])) {\r\n timeToRender = true;\r\n }\r\n }\r\n if (!timeToRender) {\r\n // if we have charSpacing, we render char by char\r\n actualStyle =\r\n actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\r\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\r\n timeToRender = hasStyleChanged(actualStyle, nextStyle, false);\r\n }\r\n if (timeToRender) {\r\n if (path) {\r\n ctx.save();\r\n ctx.translate(charBox.renderLeft, charBox.renderTop);\r\n ctx.rotate(charBox.angle);\r\n this._renderChar(\r\n method,\r\n ctx,\r\n lineIndex,\r\n i,\r\n charsToRender,\r\n -boxWidth / 2,\r\n 0,\r\n );\r\n ctx.restore();\r\n } else {\r\n drawingLeft = left;\r\n this._renderChar(\r\n method,\r\n ctx,\r\n lineIndex,\r\n i,\r\n charsToRender,\r\n drawingLeft,\r\n top,\r\n );\r\n }\r\n charsToRender = '';\r\n actualStyle = nextStyle;\r\n left += sign * boxWidth;\r\n boxWidth = 0;\r\n }\r\n }\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * This function try to patch the missing gradientTransform on canvas gradients.\r\n * transforming a context to transform the gradient, is going to transform the stroke too.\r\n * we want to transform the gradient but not the stroke operation, so we create\r\n * a transformed gradient on a pattern and then we use the pattern instead of the gradient.\r\n * this method has drawbacks: is slow, is in low resolution, needs a patch for when the size\r\n * is limited.\r\n * @private\r\n * @param {TFiller} filler a fabric gradient instance\r\n * @return {CanvasPattern} a pattern to use as fill/stroke style\r\n */\r\n _applyPatternGradientTransformText(filler: TFiller) {\r\n // TODO: verify compatibility with strokeUniform\r\n const width = this.width + this.strokeWidth,\r\n height = this.height + this.strokeWidth,\r\n pCanvas = createCanvasElementFor({\r\n width,\r\n height,\r\n }),\r\n pCtx = pCanvas.getContext('2d')!;\r\n pCanvas.width = width;\r\n pCanvas.height = height;\r\n pCtx.beginPath();\r\n pCtx.moveTo(0, 0);\r\n pCtx.lineTo(width, 0);\r\n pCtx.lineTo(width, height);\r\n pCtx.lineTo(0, height);\r\n pCtx.closePath();\r\n pCtx.translate(width / 2, height / 2);\r\n pCtx.fillStyle = filler.toLive(pCtx)!;\r\n this._applyPatternGradientTransform(pCtx, filler);\r\n pCtx.fill();\r\n return pCtx.createPattern(pCanvas, 'no-repeat')!;\r\n }\r\n\r\n handleFiller<T extends 'fill' | 'stroke'>(\r\n ctx: CanvasRenderingContext2D,\r\n property: `${T}Style`,\r\n filler: TFiller | string,\r\n ): { offsetX: number; offsetY: number } {\r\n let offsetX: number, offsetY: number;\r\n if (isFiller(filler)) {\r\n if (\r\n (filler as Gradient<'linear'>).gradientUnits === 'percentage' ||\r\n (filler as Gradient<'linear'>).gradientTransform ||\r\n (filler as Pattern).patternTransform\r\n ) {\r\n // need to transform gradient in a pattern.\r\n // this is a slow process. If you are hitting this codepath, and the object\r\n // is not using caching, you should consider switching it on.\r\n // we need a canvas as big as the current object caching canvas.\r\n offsetX = -this.width / 2;\r\n offsetY = -this.height / 2;\r\n ctx.translate(offsetX, offsetY);\r\n ctx[property] = this._applyPatternGradientTransformText(filler);\r\n return { offsetX, offsetY };\r\n } else {\r\n // is a simple gradient or pattern\r\n ctx[property] = filler.toLive(ctx)!;\r\n return this._applyPatternGradientTransform(ctx, filler);\r\n }\r\n } else {\r\n // is a color\r\n ctx[property] = filler;\r\n }\r\n return { offsetX: 0, offsetY: 0 };\r\n }\r\n\r\n /**\r\n * This function prepare the canvas for a stroke style, and stroke and strokeWidth\r\n * need to be sent in as defined\r\n * @param {CanvasRenderingContext2D} ctx\r\n * @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined\r\n * @returns\r\n */\r\n _setStrokeStyles(\r\n ctx: CanvasRenderingContext2D,\r\n {\r\n stroke,\r\n strokeWidth,\r\n }: Pick<CompleteTextStyleDeclaration, 'stroke' | 'strokeWidth'>,\r\n ) {\r\n ctx.lineWidth = strokeWidth;\r\n ctx.lineCap = this.strokeLineCap;\r\n ctx.lineDashOffset = this.strokeDashOffset;\r\n ctx.lineJoin = this.strokeLineJoin;\r\n ctx.miterLimit = this.strokeMiterLimit;\r\n return this.handleFiller(ctx, 'strokeStyle', stroke!);\r\n }\r\n\r\n /**\r\n * This function prepare the canvas for a ill style, and fill\r\n * need to be sent in as defined\r\n * @param {CanvasRenderingContext2D} ctx\r\n * @param {CompleteTextStyleDeclaration} style with ill defined\r\n * @returns\r\n */\r\n _setFillStyles(ctx: CanvasRenderingContext2D, { fill }: Pick<this, 'fill'>) {\r\n return this.handleFiller(ctx, 'fillStyle', fill!);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {String} method\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n * @param {Number} lineIndex\r\n * @param {Number} charIndex\r\n * @param {String} _char\r\n * @param {Number} left Left coordinate\r\n * @param {Number} top Top coordinate\r\n * @param {Number} lineHeight Height of the line\r\n */\r\n _renderChar(\r\n method: 'fillText' | 'strokeText',\r\n ctx: CanvasRenderingContext2D,\r\n lineIndex: number,\r\n charIndex: number,\r\n _char: string,\r\n left: number,\r\n top: number,\r\n ) {\r\n const decl = this._getStyleDeclaration(lineIndex, charIndex),\r\n fullDecl = this.getCompleteStyleDeclaration(lineIndex, charIndex),\r\n shouldFill = method === 'fillText' && fullDecl.fill,\r\n shouldStroke =\r\n method === 'strokeText' && fullDecl.stroke && fullDecl.strokeWidth;\r\n\r\n if (!shouldStroke && !shouldFill) {\r\n return;\r\n }\r\n ctx.save();\r\n\r\n ctx.font = this._getFontDeclaration(fullDecl);\r\n\r\n if (decl.textBackgroundColor) {\r\n this._removeShadow(ctx);\r\n }\r\n if (decl.deltaY) {\r\n top += decl.deltaY;\r\n }\r\n\r\n if (shouldFill) {\r\n const fillOffsets = this._setFillStyles(ctx, fullDecl);\r\n ctx.fillText(\r\n _char,\r\n left - fillOffsets.offsetX,\r\n top - fillOffsets.offsetY,\r\n );\r\n }\r\n\r\n if (shouldStroke) {\r\n const strokeOffsets = this._setStrokeStyles(ctx, fullDecl);\r\n ctx.strokeText(\r\n _char,\r\n left - strokeOffsets.offsetX,\r\n top - strokeOffsets.offsetY,\r\n );\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * Turns the character into a 'superior figure' (i.e. 'superscript')\r\n * @param {Number} start selection start\r\n * @param {Number} end selection end\r\n */\r\n setSuperscript(start: number, end: number) {\r\n this._setScript(start, end, this.superscript);\r\n }\r\n\r\n /**\r\n * Turns the character into an 'inferior figure' (i.e. 'subscript')\r\n * @param {Number} start selection start\r\n * @param {Number} end selection end\r\n */\r\n setSubscript(start: number, end: number) {\r\n this._setScript(start, end, this.subscript);\r\n }\r\n\r\n /**\r\n * Applies 'schema' at given position\r\n * @private\r\n * @param {Number} start selection start\r\n * @param {Number} end selection end\r\n * @param {Number} schema\r\n */\r\n protected _setScript(\r\n start: number,\r\n end: number,\r\n schema: {\r\n size: number;\r\n baseline: number;\r\n },\r\n ) {\r\n const loc = this.get2DCursorLocation(start, true),\r\n fontSize = this.getValueOfPropertyAt(\r\n loc.lineIndex,\r\n loc.charIndex,\r\n 'fontSize',\r\n ),\r\n dy = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'deltaY'),\r\n style = {\r\n fontSize: fontSize * schema.size,\r\n deltaY: dy + fontSize * schema.baseline,\r\n };\r\n this.setSelectionStyles(style, start, end);\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {Number} lineIndex index text line\r\n * @return {Number} Line left offset\r\n */\r\n _getLineLeftOffset(lineIndex: number): number {\r\n const lineWidth = this.getLineWidth(lineIndex),\r\n lineDiff = this.width - lineWidth,\r\n textAlign = this.textAlign,\r\n direction = this.direction,\r\n isEndOfWrapping = this.isEndOfWrapping(lineIndex);\r\n let leftOffset = 0;\r\n if (\r\n textAlign === JUSTIFY ||\r\n (textAlign === JUSTIFY_CENTER && !isEndOfWrapping) ||\r\n (textAlign === JUSTIFY_RIGHT && !isEndOfWrapping) ||\r\n (textAlign === JUSTIFY_LEFT && !isEndOfWrapping)\r\n ) {\r\n return 0;\r\n }\r\n if (textAlign === CENTER) {\r\n leftOffset = lineDiff / 2;\r\n }\r\n if (textAlign === RIGHT) {\r\n leftOffset = lineDiff;\r\n }\r\n if (textAlign === JUSTIFY_CENTER) {\r\n leftOffset = lineDiff / 2;\r\n }\r\n if (textAlign === JUSTIFY_RIGHT) {\r\n leftOffset = lineDiff;\r\n }\r\n if (direction === 'rtl') {\r\n if (\r\n textAlign === RIGHT ||\r\n textAlign === JUSTIFY ||\r\n textAlign === JUSTIFY_RIGHT\r\n ) {\r\n leftOffset = 0;\r\n } else if (textAlign === LEFT || textAlign === JUSTIFY_LEFT) {\r\n leftOffset = -lineDiff;\r\n } else if (textAlign === CENTER || textAlign === JUSTIFY_CENTER) {\r\n leftOffset = -lineDiff / 2;\r\n }\r\n }\r\n return leftOffset;\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _clearCache() {\r\n this._forceClearCache = false;\r\n this.__lineWidths = [];\r\n this.__lineHeights = [];\r\n this.__charBounds = [];\r\n }\r\n\r\n /**\r\n * Measure a single line given its index. Used to calculate the initial\r\n * text bounding box. The values are calculated and stored in __lineWidths cache.\r\n * @private\r\n * @param {Number} lineIndex line number\r\n * @return {Number} Line width\r\n */\r\n getLineWidth(lineIndex: number): number {\r\n if (this.__lineWidths[lineIndex] !== undefined) {\r\n return this.__lineWidths[lineIndex];\r\n }\r\n\r\n const { width } = this.measureLine(lineIndex);\r\n this.__lineWidths[lineIndex] = width;\r\n return width;\r\n }\r\n\r\n _getWidthOfCharSpacing() {\r\n if (this.charSpacing !== 0) {\r\n return (this.fontSize * this.charSpacing) / 1000;\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Retrieves the value of property at given character position\r\n * @param {Number} lineIndex the line number\r\n * @param {Number} charIndex the character number\r\n * @param {String} property the property name\r\n * @returns the value of 'property'\r\n */\r\n getValueOfPropertyAt<T extends StylePropertiesType>(\r\n lineIndex: number,\r\n charIndex: number,\r\n property: T,\r\n ): this[T] {\r\n const charStyle = this._getStyleDeclaration(lineIndex, charIndex);\r\n return (charStyle[property] ?? this[property]) as this[T];\r\n }\r\n\r\n /**\r\n * @private\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n _renderTextDecoration(\r\n ctx: CanvasRenderingContext2D,\r\n type: 'underline' | 'linethrough' | 'overline',\r\n ) {\r\n if (!this[type] && !this.styleHas(type)) {\r\n return;\r\n }\r\n let topOffset = this._getTopOffset();\r\n const leftOffset = this._getLeftOffset(),\r\n path = this.path,\r\n charSpacing = this._getWidthOfCharSpacing(),\r\n offsetAligner =\r\n type === 'linethrough' ? 0.5 : type === 'overline' ? 1 : 0,\r\n offsetY = this.offsets[type];\r\n for (let i = 0, len = this._textLines.length; i < len; i++) {\r\n const heightOfLine = this.getHeightOfLine(i);\r\n if (!this[type] && !this.styleHas(type, i)) {\r\n topOffset += heightOfLine;\r\n continue;\r\n }\r\n const line = this._textLines[i];\r\n const maxHeight = heightOfLine / this.lineHeight;\r\n const lineLeftOffset = this._getLineLeftOffset(i);\r\n let boxStart = 0;\r\n let boxWidth = 0;\r\n let lastDecoration = this.getValueOfPropertyAt(i, 0, type);\r\n let lastFill = this.getValueOfPropertyAt(i, 0, FILL);\r\n let lastTickness = this.getValueOfPropertyAt(\r\n i,\r\n 0,\r\n TEXT_DECORATION_THICKNESS,\r\n );\r\n let currentDecoration = lastDecoration;\r\n let currentFill = lastFill;\r\n let currentTickness = lastTickness;\r\n const top = topOffset + maxHeight * (1 - this._fontSizeFraction);\r\n let size = this.getHeightOfChar(i, 0);\r\n let dy = this.getValueOfPropertyAt(i, 0, 'deltaY');\r\n for (let j = 0, jlen = line.length; j < jlen; j++) {\r\n const charBox = this.__charBounds[i][j] as Required<GraphemeBBox>;\r\n currentDecoration = this.getValueOfPropertyAt(i, j, type);\r\n currentFill = this.getValueOfPropertyAt(i, j, FILL);\r\n currentTickness = this.getValueOfPropertyAt(\r\n i,\r\n j,\r\n TEXT_DECORATION_THICKNESS,\r\n );\r\n const currentSize = this.getHeightOfChar(i, j);\r\n const currentDy = this.getValueOfPropertyAt(i, j, 'deltaY');\r\n if (path && currentDecoration && currentFill) {\r\n const finalTickness = (this.fontSize * currentTickness) / 1000;\r\n ctx.save();\r\n // bug? verify lastFill is a valid fill here.\r\n ctx.fillStyle = lastFill as string;\r\n ctx.translate(charBox.renderLeft, charBox.renderTop);\r\n ctx.rotate(charBox.angle);\r\n ctx.fillRect(\r\n -charBox.kernedWidth / 2,\r\n offsetY * currentSize + currentDy - offsetAligner * finalTickness,\r\n charBox.kernedWidth,\r\n finalTickness,\r\n );\r\n ctx.restore();\r\n } else if (\r\n (currentDecoration !== lastDecoration ||\r\n currentFill !== lastFill ||\r\n currentSize !== size ||\r\n currentTickness !== lastTickness ||\r\n currentDy !== dy) &&\r\n boxWidth > 0\r\n ) {\r\n const finalTickness = (this.fontSize * lastTickness) / 1000;\r\n let drawStart = leftOffset + lineLeftOffset + boxStart;\r\n if (this.direction === 'rtl') {\r\n drawStart = this.width - drawStart - boxWidth;\r\n }\r\n if (lastDecoration && lastFill && lastTickness) {\r\n // bug? verify lastFill is a valid fill here.\r\n ctx.fillStyle = lastFill as string;\r\n ctx.fillRect(\r\n drawStart,\r\n top + offsetY * size + dy - offsetAligner * finalTickness,\r\n boxWidth,\r\n finalTickness,\r\n );\r\n }\r\n boxStart = charBox.left;\r\n boxWidth = charBox.width;\r\n lastDecoration = currentDecoration;\r\n lastTickness = currentTickness;\r\n lastFill = currentFill;\r\n size = currentSize;\r\n dy = currentDy;\r\n } else {\r\n boxWidth += charBox.kernedWidth;\r\n }\r\n }\r\n let drawStart = leftOffset + lineLeftOffset + boxStart;\r\n if (this.direction === 'rtl') {\r\n drawStart = this.width - drawStart - boxWidth;\r\n }\r\n ctx.fillStyle = currentFill as string;\r\n const finalTickness = (this.fontSize * currentTickness) / 1000;\r\n currentDecoration &&\r\n currentFill &&\r\n currentTickness &&\r\n ctx.fillRect(\r\n drawStart,\r\n top + offsetY * size + dy - offsetAligner * finalTickness,\r\n boxWidth - charSpacing,\r\n finalTickness,\r\n );\r\n topOffset += heightOfLine;\r\n }\r\n // if there is text background color no\r\n // other shadows should be casted\r\n this._removeShadow(ctx);\r\n }\r\n\r\n /**\r\n * return font declaration string for canvas context\r\n * @param {Object} [styleObject] object\r\n * @returns {String} font declaration formatted for canvas context.\r\n */\r\n _getFontDeclaration(\r\n {\r\n fontFamily = this.fontFamily,\r\n fontStyle = this.fontStyle,\r\n fontWeight = this.fontWeight,\r\n fontSize = this.fontSize,\r\n }: Partial<\r\n Pick<\r\n TextStyleDeclaration,\r\n 'fontFamily' | 'fontStyle' | 'fontWeight' | 'fontSize'\r\n >\r\n > = {},\r\n forMeasuring?: boolean,\r\n ): string {\r\n const parsedFontFamily =\r\n fontFamily.includes(\"'\") ||\r\n fontFamily.includes('\"') ||\r\n fontFamily.includes(',') ||\r\n FabricText.genericFonts.includes(fontFamily.toLowerCase())\r\n ? fontFamily\r\n : `\"${fontFamily}\"`;\r\n return [\r\n fontStyle,\r\n fontWeight,\r\n `${forMeasuring ? this.CACHE_FONT_SIZE : fontSize}px`,\r\n parsedFontFamily,\r\n ].join(' ');\r\n }\r\n\r\n /**\r\n * Renders text instance on a specified context\r\n * @param {CanvasRenderingContext2D} ctx Context to render on\r\n */\r\n render(ctx: CanvasRenderingContext2D) {\r\n if (!this.visible) {\r\n return;\r\n }\r\n if (\r\n this.canvas &&\r\n this.canvas.skipOffscreen &&\r\n !this.group &&\r\n !this.isOnScreen()\r\n ) {\r\n return;\r\n }\r\n if (this._forceClearCache) {\r\n this.initDimensions();\r\n }\r\n super.render(ctx);\r\n }\r\n\r\n /**\r\n * Override this method to customize grapheme splitting\r\n * @todo the util `graphemeSplit` needs to be injectable in some way.\r\n * is more comfortable to inject the correct util rather than having to override text\r\n * in the middle of the prototype chain\r\n * @param {string} value\r\n * @returns {string[]} array of graphemes\r\n */\r\n graphemeSplit(value: string): string[] {\r\n return graphemeSplit(value);\r\n }\r\n\r\n /**\r\n * Returns the text as an array of lines.\r\n * @param {String} text text to split\r\n * @returns Lines in the text\r\n */\r\n _splitTextIntoLines(text: string): TextLinesInfo {\r\n const lines = text.split(this._reNewline),\r\n newLines = new Array<string[]>(lines.length),\r\n newLine = ['\\n'];\r\n let newText: string[] = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n newLines[i] = this.graphemeSplit(lines[i]);\r\n newText = newText.concat(newLines[i], newLine);\r\n }\r\n newText.pop();\r\n return {\r\n _unwrappedLines: newLines,\r\n lines: lines,\r\n graphemeText: newText,\r\n graphemeLines: newLines,\r\n };\r\n }\r\n\r\n /**\r\n * Returns object representation of an instance\r\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\r\n * @return {Object} Object representation of an instance\r\n */\r\n toObject<\r\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\r\n K extends keyof T = never,\r\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\r\n return {\r\n ...super.toObject([...additionalProps, ...propertiesToInclude] as K[]),\r\n styles: stylesToArray(this.styles, this.text),\r\n ...(this.path ? { path: this.path.toObject() } : {}),\r\n };\r\n }\r\n\r\n set(key: string | any, value?: any) {\r\n const { textLayoutProperties } = this.constructor as typeof FabricText;\r\n super.set(key, value);\r\n let needsDims = false;\r\n let isAddingPath = false;\r\n if (typeof key === 'object') {\r\n for (const _key in key) {\r\n if (_key === 'path') {\r\n this.setPathInfo();\r\n }\r\n needsDims = needsDims || textLayoutProperties.includes(_key);\r\n isAddingPath = isAddingPath || _key === 'path';\r\n }\r\n } else {\r\n needsDims = textLayoutProperties.includes(key);\r\n isAddingPath = key === 'path';\r\n }\r\n if (isAddingPath) {\r\n this.setPathInfo();\r\n }\r\n if (needsDims && this.initialized) {\r\n // Clear browser lines when layout-affecting properties change\r\n clearBrowserLines(this);\r\n this.initDimensions();\r\n this.setCoords();\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns complexity of an instance\r\n * @return {Number} complexity\r\n */\r\n complexity(): number {\r\n return 1;\r\n }\r\n\r\n /**\r\n * List of generic font families\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name\r\n */\r\n static genericFonts = [\r\n 'serif',\r\n 'sans-serif',\r\n 'monospace',\r\n 'cursive',\r\n 'fantasy',\r\n 'system-ui',\r\n 'ui-serif',\r\n 'ui-sans-serif',\r\n 'ui-monospace',\r\n 'ui-rounded',\r\n 'math',\r\n 'emoji',\r\n 'fangsong',\r\n ];\r\n\r\n /* _FROM_SVG_START_ */\r\n\r\n /**\r\n * List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})\r\n * @see: http://www.w3.org/TR/SVG/text.html#TextElement\r\n */\r\n static ATTRIBUTE_NAMES = SHARED_ATTRIBUTES.concat(\r\n 'x',\r\n 'y',\r\n 'dx',\r\n 'dy',\r\n 'font-family',\r\n 'font-style',\r\n 'font-weight',\r\n 'font-size',\r\n 'letter-spacing',\r\n 'text-decoration',\r\n 'text-anchor',\r\n );\r\n\r\n /**\r\n * Returns FabricText instance from an SVG element (<b>not yet implemented</b>)\r\n * @param {HTMLElement} element Element to parse\r\n * @param {Object} [options] Options object\r\n */\r\n static async fromElement(\r\n element: HTMLElement | SVGElement,\r\n options?: Abortable,\r\n cssRules?: CSSRules,\r\n ) {\r\n const parsedAttributes = parseAttributes(\r\n element,\r\n FabricText.ATTRIBUTE_NAMES,\r\n cssRules,\r\n );\r\n\r\n const {\r\n textAnchor = LEFT as typeof LEFT | typeof CENTER | typeof RIGHT,\r\n textDecoration = '',\r\n dx = 0,\r\n dy = 0,\r\n top = 0,\r\n left = 0,\r\n fontSize = DEFAULT_SVG_FONT_SIZE,\r\n strokeWidth = 1,\r\n ...restOfOptions\r\n } = { ...options, ...parsedAttributes };\r\n\r\n const textContent = (element.textContent || '')\r\n .replace(/^\\s+|\\s+$|\\n+/g, '')\r\n .replace(/\\s+/g, ' ');\r\n\r\n // this code here is probably the usual issue for SVG center find\r\n // this can later looked at again and probably removed.\r\n\r\n const text = new this(textContent, {\r\n left: left + dx,\r\n top: top + dy,\r\n underline: textDecoration.includes('underline'),\r\n overline: textDecoration.includes('overline'),\r\n linethrough: textDecoration.includes('line-through'),\r\n // we initialize this as 0\r\n strokeWidth: 0,\r\n fontSize,\r\n ...restOfOptions,\r\n }),\r\n textHeightScaleFactor = text.getScaledHeight() / text.height,\r\n lineHeightDiff =\r\n (text.height + text.strokeWidth) * text.lineHeight - text.height,\r\n scaledDiff = lineHeightDiff * textHeightScaleFactor,\r\n textHeight = text.getScaledHeight() + scaledDiff;\r\n\r\n let offX = 0;\r\n /*\r\n Adjust positioning:\r\n x/y attributes in SVG correspond to the bottom-left corner of text bounding box\r\n fabric output by default at top, left.\r\n */\r\n if (textAnchor === CENTER) {\r\n offX = text.getScaledWidth() / 2;\r\n }\r\n if (textAnchor === RIGHT) {\r\n offX = text.getScaledWidth();\r\n }\r\n text.set({\r\n left: text.left - offX,\r\n top:\r\n text.top -\r\n (textHeight - text.fontSize * (0.07 + text._fontSizeFraction)) /\r\n text.lineHeight,\r\n strokeWidth,\r\n });\r\n return text;\r\n }\r\n\r\n /* _FROM_SVG_END_ */\r\n\r\n /**\r\n * Returns FabricText instance from an object representation\r\n * @param {Object} object plain js Object to create an instance from\r\n * @returns {Promise<FabricText>}\r\n */\r\n static fromObject<\r\n T extends TOptions<SerializedTextProps>,\r\n S extends FabricText,\r\n >(object: T) {\r\n return this._fromObject<S>(\r\n {\r\n ...object,\r\n styles: stylesFromArray(object.styles || {}, object.text),\r\n },\r\n {\r\n extraParam: 'text',\r\n },\r\n );\r\n }\r\n}\r\n\r\napplyMixins(FabricText, [TextSVGExportMixin]);\r\nclassRegistry.setClass(FabricText);\r\nclassRegistry.setSVGClass(FabricText);\r\n"],"names":["measuringContext","FabricText","StyledText","getDefaults","super","ownDefaults","constructor","text","options","_defineProperty","Object","assign","this","setOptions","styles","initialized","path","setPathInfo","initDimensions","setCoords","segmentsInfo","getPathSegmentsInfo","_splitText","browserLines","getBrowserLines","useOverlayEditing","_splitTextFromBrowserLines","newLines","_splitTextIntoLines","textLines","lines","_textLines","graphemeLines","_unwrappedTextLines","_unwrappedLines","_text","graphemeText","unwrappedLines","browserLine","push","lineGraphemes","graphemeSplit","concat","length","result","enableAdvancedLayout","initDimensionsAdvanced","_clearCache","dirty","width","height","calcTextWidth","cursorWidth","MIN_TEXT_WIDTH","calcTextHeight","textAlign","includes","JUSTIFY","enlargeSpaces","diffSpace","currentLineWidth","numberOfSpaces","accumulatedSpace","line","charBound","spaces","i","len","isEndOfWrapping","getLineWidth","match","_reSpacesAndTabs","j","__charBounds","_reSpaceAndTab","test","kernedWidth","left","_layoutTextAdvanced","_getAdvancedLayoutOptions","layoutText","wrap","align","_mapTextAlignToAlign","ellipsis","fontSize","lineHeight","letterSpacing","charSpacing","direction","fontFamily","fontStyle","fontWeight","verticalAlign","CENTER","RIGHT","JUSTIFY_LEFT","JUSTIFY_RIGHT","JUSTIFY_CENTER","layout","totalWidth","totalHeight","_convertLayoutToLegacyFormat","map","graphemes","bounds","bound","top","y","deltaY","lineIndex","missingNewlineOffset","_lineIndex","get2DCursorLocation","selectionStart","skipWrapping","charIndex","toString","complexity","_getCacheCanvasDimensions","dims","zoomX","zoomY","_render","ctx","isNotVisible","_setTextStyles","_renderTextLinesBackground","_renderTextDecoration","_renderText","__overlayEditor","paintFirst","STROKE","_renderTextStroke","_renderTextFill","charStyle","forMeasuring","textBaseline","pathAlign","TOP","BOTTOM","font","_getFontDeclaration","maxWidth","_renderTextLine","method","_renderChars","textBackgroundColor","styleHas","originalFill","fillStyle","leftOffset","_getLeftOffset","lineTopOffset","_getTopOffset","heightOfLine","getHeightOfLine","jlen","lineLeftOffset","_getLineLeftOffset","drawStart","currentColor","boxWidth","boxStart","lastColor","getValueOfPropertyAt","charBox","save","translate","renderLeft","renderTop","rotate","angle","fillRect","_fontSizeFraction","restore","_removeShadow","_measureChar","_char","previousChar","prevCharStyle","fontCache","cache","getFontCache","fontDeclaration","couple","stylesAreEqual","fontMultiplier","CACHE_FONT_SIZE","coupleWidth","previousWidth","undefined","canvas","createCanvasElementFor","getContext","getMeasuringContext","measureText","getHeightOfChar","measureLine","lineInfo","_measureLine","_getWidthOfCharSpacing","prevGrapheme","graphemeInfo","reverse","pathSide","llength","lineBounds","Array","grapheme","_getGraphemeBox","positionInPath","totalPathLength","LEFT","pathStartOffset","_setGraphemeOnPath","numOfSpaces","centerPosition","info","getPointOnPath","x","pathOffset","Math","PI","skipLeft","style","getCompleteStyleDeclaration","prevStyle","box","previousBox","__lineHeights","maxHeight","max","_fontSizeMult","_renderTextCommon","lineHeights","fill","FILL","stroke","strokeWidth","isEmptyStyles","shadow","affectStroke","_setLineDash","strokeDashArray","beginPath","closePath","isJustify","shortCut","isLtr","sign","currentDirection","actualStyle","nextStyle","timeToRender","drawingLeft","charsToRender","setAttribute","_renderChar","join","hasStyleChanged","_applyPatternGradientTransformText","filler","pCanvas","pCtx","moveTo","lineTo","toLive","_applyPatternGradientTransform","createPattern","handleFiller","property","offsetX","offsetY","isFiller","gradientUnits","gradientTransform","patternTransform","_setStrokeStyles","_ref","lineWidth","lineCap","strokeLineCap","lineDashOffset","strokeDashOffset","lineJoin","strokeLineJoin","miterLimit","strokeMiterLimit","_setFillStyles","_ref2","decl","_getStyleDeclaration","fullDecl","shouldFill","shouldStroke","fillOffsets","fillText","strokeOffsets","strokeText","setSuperscript","start","end","_setScript","superscript","setSubscript","subscript","schema","loc","dy","size","baseline","setSelectionStyles","lineDiff","_forceClearCache","__lineWidths","_charStyle$property","type","topOffset","offsetAligner","offsets","lastDecoration","lastFill","lastTickness","TEXT_DECORATION_THICKNESS","currentDecoration","currentFill","currentTickness","currentSize","currentDy","finalTickness","arguments","parsedFontFamily","genericFonts","toLowerCase","render","visible","skipOffscreen","group","isOnScreen","value","split","_reNewline","newLine","newText","pop","toObject","propertiesToInclude","additionalProps","stylesToArray","set","key","textLayoutProperties","needsDims","isAddingPath","_key","clearBrowserLines","fromElement","element","cssRules","parsedAttributes","parseAttributes","ATTRIBUTE_NAMES","textAnchor","textDecoration","dx","DEFAULT_SVG_FONT_SIZE","restOfOptions","textContent","replace","underline","overline","linethrough","textHeightScaleFactor","getScaledHeight","scaledDiff","textHeight","offX","getScaledWidth","fromObject","object","_fromObject","stylesFromArray","extraParam","cacheProperties","textDefaultValues","SHARED_ATTRIBUTES","applyMixins","TextSVGExportMixin","classRegistry","setClass","setSVGClass"],"mappings":"g9CAwDA,IAAIA,EAmFG,MAAMC,UAKHC,EAkUR,kBAAOC,GACL,MAAO,IAAKC,MAAMD,iBAAkBF,EAAWI,YACjD,CAEAC,WAAAA,CAAYC,EAAcC,GACxBJ,QArDFK,sBAMiC,IAgD/BC,OAAOC,OAAOC,KAAMX,EAAWI,aAC/BO,KAAKC,WAAWL,GACXI,KAAKE,SACRF,KAAKE,OAAS,CAAA,GAEhBF,KAAKL,KAAOA,EACZK,KAAKG,aAAc,EACfH,KAAKI,MACPJ,KAAKK,cAEPL,KAAKM,iBACLN,KAAKO,WACP,CAMAF,WAAAA,GACE,MAAMD,EAAOJ,KAAKI,KACdA,IACFA,EAAKI,aAAeC,EAAoBL,EAAKA,MAEjD,CAOAM,UAAAA,GAEE,MAAMC,EAAeC,EAAgBZ,MACrC,GAAIW,GAAgBX,KAAKa,kBACvB,OAAOb,KAAKc,2BAA2BH,GAGzC,MAAMI,EAAWf,KAAKgB,oBAAoBhB,KAAKL,MAK/C,OAJAK,KAAKiB,UAAYF,EAASG,MAC1BlB,KAAKmB,WAAaJ,EAASK,cAC3BpB,KAAKqB,oBAAsBN,EAASO,gBACpCtB,KAAKuB,MAAQR,EAASS,aACfT,CACT,CAMAD,0BAAAA,CAA2BH,GACzB,MAAMO,EAAkB,GAClBE,EAA4B,GAC5BK,EAA6B,GACnC,IAAID,EAAyB,GAE7B,IAAK,MAAME,KAAef,EAAc,CACtCO,EAAMS,KAAKD,EAAY/B,MACvB,MAAMiC,EAAgB5B,KAAK6B,cAAcH,EAAY/B,MACrDyB,EAAcO,KAAKC,GACnBH,EAAeE,KAAKC,GACpBJ,EAAeA,EAAaM,OAAOF,GAG/BF,IAAgBf,EAAaA,EAAaoB,OAAS,IACrDP,EAAaG,KAAK,KAEtB,CAEA,MAAMK,EAAwB,CAC5Bd,QACAE,gBACAI,eACAF,gBAAiBG,GASnB,OALAzB,KAAKiB,UAAYe,EAAOd,MACxBlB,KAAKmB,WAAaa,EAAOZ,cACzBpB,KAAKqB,oBAAsBW,EAAOV,gBAClCtB,KAAKuB,MAAQS,EAAOR,aAEbQ,CACT,CAOA1B,cAAAA,GAEE,GAAIN,KAAKiC,uBAAyBjC,KAAKI,KACrC,OAAOJ,KAAKkC,yBAGdlC,KAAKU,aACLV,KAAKmC,cACLnC,KAAKoC,OAAQ,EACTpC,KAAKI,MACPJ,KAAKqC,MAAQrC,KAAKI,KAAKiC,MACvBrC,KAAKsC,OAAStC,KAAKI,KAAKkC,SAExBtC,KAAKqC,MACHrC,KAAKuC,iBAAmBvC,KAAKwC,aAAexC,KAAKyC,eACnDzC,KAAKsC,OAAStC,KAAK0C,kBAEjB1C,KAAK2C,UAAUC,SAASC,IAE1B7C,KAAK8C,eAET,CAKAA,aAAAA,GACE,IAAIC,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACF,IAAK,IAAIC,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IACrD,IACEtD,KAAK2C,YAAcE,GAClBS,IAAMC,EAAM,IAAKvD,KAAKwD,gBAAgBF,MAIzCJ,EAAmB,EACnBC,EAAOnD,KAAKmB,WAAWmC,GACvBN,EAAmBhD,KAAKyD,aAAaH,GAEnCN,EAAmBhD,KAAKqC,QACvBgB,EAASrD,KAAKiB,UAAUqC,GAAGI,MAAM1D,KAAK2D,oBACvC,CACAV,EAAiBI,EAAOtB,OACxBgB,GAAa/C,KAAKqC,MAAQW,GAAoBC,EAC9C,IAAK,IAAIW,EAAI,EAAGA,GAAKT,EAAKpB,OAAQ6B,IAChCR,EAAYpD,KAAK6D,aAAaP,GAAGM,GAC7B5D,KAAK8D,eAAeC,KAAKZ,EAAKS,KAChCR,EAAUf,OAASU,EACnBK,EAAUY,aAAejB,EACzBK,EAAUa,MAAQf,EAClBA,GAAoBH,GAEpBK,EAAUa,MAAQf,CAGxB,CAEJ,CAMAgB,mBAAAA,GACE,MAAMtE,EAAUI,KAAKmE,4BACrB,OAAOC,EAAWxE,EACpB,CAMAuE,yBAAAA,GACE,MAAO,CACLxE,KAAMK,KAAKL,KACX0C,MAAOrC,KAAKqC,MACZC,OAAQtC,KAAKsC,OACb+B,KAAMrE,KAAKqE,MAAQ,OACnBC,MAAOtE,KAAKuE,qBAAqBvE,KAAK2C,WACtC6B,SAAUxE,KAAKwE,WAAY,EAC3BC,SAAUzE,KAAKyE,SACfC,WAAY1E,KAAK0E,WACjBC,cAAe3E,KAAK2E,eAAiB,EACrCC,YAAa5E,KAAK4E,YAClBC,UAA8B,YAAnB7E,KAAK6E,UAA0B,MAAQ7E,KAAK6E,UACvDC,WAAY9E,KAAK8E,WACjBC,UAAW/E,KAAK+E,UAChBC,WAAYhF,KAAKgF,WACjBC,cAAejF,KAAKiF,eAAiB,MAEzC,CAMAV,oBAAAA,CAAqB5B,GACnB,OAAQA,GACN,IAAK,SACL,KAAKuC,EACH,MAAO,SACT,IAAK,QACL,KAAKC,EACH,MAAO,QACT,IAAK,UACL,KAAKtC,EACL,KAAKuC,EACL,KAAKC,EACL,KAAKC,EACH,MAAO,UACT,QACE,MAAO,OAEb,CAKApD,sBAAAA,GACE,IAAKlC,KAAKiC,qBACR,OAAOjC,KAAKM,iBAGd,MAAMiF,EAASvF,KAAKkE,sBAGpBlE,KAAKqC,MAAQkD,EAAOC,YAAcxF,KAAKyC,eACvCzC,KAAKsC,OAASiD,EAAOE,YAGrBzF,KAAK0F,6BAA6BH,GAElCvF,KAAKoC,OAAQ,CACf,CAMAsD,4BAAAA,CAA6BH,GAC3BvF,KAAKmB,WAAaoE,EAAOrE,MAAMyE,IAAIxC,GAAQA,EAAKyC,WAC/C5F,KAAaiB,UAAYsE,EAAOrE,MAAMyE,IAAIxC,GAAQA,EAAKxD,MAGxDK,KAAK6D,aAAe0B,EAAOrE,MAAMyE,IAAIxC,GACnCA,EAAK0C,OAAOF,IAAIG,IAAK,CACnB7B,KAAM6B,EAAM7B,KACZ8B,IAAKD,EAAME,EACX3D,MAAOyD,EAAMzD,MACbC,OAAQwD,EAAMxD,OACd0B,YAAa8B,EAAM9B,YACnBiC,OAAQH,EAAMG,QAAU,MAKxBV,EAAOrE,MAAMa,OAAS,IACvB/B,KAAaqB,oBAAsBkE,EAAOrE,MAAMyE,IAAIxC,GAAQA,EAAKyC,WAEtE,CAOApC,eAAAA,CAAgB0C,GACd,OAAOA,IAAclG,KAAKmB,WAAWY,OAAS,CAChD,CASAoE,oBAAAA,CAAqBC,GACnB,OAAO,CACT,CAOAC,mBAAAA,CAAoBC,EAAwBC,GAC1C,MAAMrF,EAAQqF,EAAevG,KAAKqB,oBAAsBrB,KAAKmB,WAC7D,IAAImC,EACJ,IAAKA,EAAI,EAAGA,EAAIpC,EAAMa,OAAQuB,IAAK,CACjC,GAAIgD,GAAkBpF,EAAMoC,GAAGvB,OAC7B,MAAO,CACLmE,UAAW5C,EACXkD,UAAWF,GAGfA,GACEpF,EAAMoC,GAAGvB,OAAS/B,KAAKmG,qBAAqB7C,EAAGiD,EACnD,CACA,MAAO,CACLL,UAAW5C,EAAI,EACfkD,UACEtF,EAAMoC,EAAI,GAAGvB,OAASuE,EAClBpF,EAAMoC,EAAI,GAAGvB,OACbuE,EAEV,CAMAG,QAAAA,GACE,MAAO,WAAWzG,KAAK0G,6BACrB1G,KAAKL,yBACcK,KAAK8E,gBAC5B,CAaA6B,yBAAAA,GACE,MAAMC,EAAOpH,MAAMmH,4BACblC,EAAWzE,KAAKyE,SAGtB,OAFAmC,EAAKvE,OAASoC,EAAWmC,EAAKC,MAC9BD,EAAKtE,QAAUmC,EAAWmC,EAAKE,MACxBF,CACT,CAMAG,OAAAA,CAAQC,GACN,MAAM5G,EAAOJ,KAAKI,KAClBA,IAASA,EAAK6G,gBAAkB7G,EAAK2G,QAAQC,GAC7ChH,KAAKkH,eAAeF,GACpBhH,KAAKmH,2BAA2BH,GAChChH,KAAKoH,sBAAsBJ,EAAK,aAChChH,KAAKqH,YAAYL,GACjBhH,KAAKoH,sBAAsBJ,EAAK,YAChChH,KAAKoH,sBAAsBJ,EAAK,cAClC,CAMAK,WAAAA,CAAYL,GAELhH,KAAasH,kBAGdtH,KAAKuH,aAAeC,GACtBxH,KAAKyH,kBAAkBT,GACvBhH,KAAK0H,gBAAgBV,KAErBhH,KAAK0H,gBAAgBV,GACrBhH,KAAKyH,kBAAkBT,IAE3B,CAYAE,cAAAA,CACEF,EACAW,EACAC,GAGA,GADAZ,EAAIa,aAAe,aACf7H,KAAKI,KACP,OAAQJ,KAAK8H,WACX,KAAK5C,EACH8B,EAAIa,aAAe,SACnB,MACF,IAAK,WACHb,EAAIa,aAAeE,EACnB,MACF,IAAK,YACHf,EAAIa,aAAeG,EAIzBhB,EAAIiB,KAAOjI,KAAKkI,oBAAoBP,EAAWC,EACjD,CAQArF,aAAAA,GACE,IAAI4F,EAAWnI,KAAKyD,aAAa,GAEjC,IAAK,IAAIH,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IAAK,CAC1D,MAAMN,EAAmBhD,KAAKyD,aAAaH,GACvCN,EAAmBmF,IACrBA,EAAWnF,EAEf,CACA,OAAOmF,CACT,CAWAC,eAAAA,CACEC,EACArB,EACA7D,EACAc,EACA8B,EACAG,GAEAlG,KAAKsI,aAAaD,EAAQrB,EAAK7D,EAAMc,EAAM8B,EAAKG,EAClD,CAOAiB,0BAAAA,CAA2BH,GACzB,IAAKhH,KAAKuI,sBAAwBvI,KAAKwI,SAAS,uBAC9C,OAEF,MAAMC,EAAezB,EAAI0B,UACvBC,EAAa3I,KAAK4I,iBACpB,IAAIC,EAAgB7I,KAAK8I,gBAEzB,IAAK,IAAIxF,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IAAK,CAC1D,MAAMyF,EAAe/I,KAAKgJ,gBAAgB1F,GAC1C,IACGtD,KAAKuI,sBACLvI,KAAKwI,SAAS,sBAAuBlF,GACtC,CACAuF,GAAiBE,EACjB,QACF,CACA,MAAME,EAAOjJ,KAAKmB,WAAWmC,GAAGvB,OAC1BmH,EAAiBlJ,KAAKmJ,mBAAmB7F,GAC/C,IAEI8F,EACAC,EAHAC,EAAW,EACXC,EAAW,EAGXC,EAAYxJ,KAAKyJ,qBAAqBnG,EAAG,EAAG,uBAChD,IAAK,IAAIM,EAAI,EAAGA,EAAIqF,EAAMrF,IAAK,CAE7B,MAAM8F,EAAU1J,KAAK6D,aAAaP,GAAGM,GACrCyF,EAAerJ,KAAKyJ,qBAAqBnG,EAAGM,EAAG,uBAC3C5D,KAAKI,MACP4G,EAAI2C,OACJ3C,EAAI4C,UAAUF,EAAQG,WAAYH,EAAQI,WAC1C9C,EAAI+C,OAAOL,EAAQM,OACnBhD,EAAI0B,UAAYW,EAChBA,GACErC,EAAIiD,UACDP,EAAQrH,MAAQ,GACf0G,EAAe/I,KAAK0E,YAAe,EAAI1E,KAAKkK,mBAC9CR,EAAQrH,MACR0G,EAAe/I,KAAK0E,YAExBsC,EAAImD,WACKd,IAAiBG,GAC1BJ,EAAYT,EAAaO,EAAiBK,EACnB,QAAnBvJ,KAAK6E,YACPuE,EAAYpJ,KAAKqC,MAAQ+G,EAAYE,GAEvCtC,EAAI0B,UAAYc,EAChBA,GACExC,EAAIiD,SACFb,EACAP,EACAS,EACAP,EAAe/I,KAAK0E,YAExB6E,EAAWG,EAAQzF,KACnBqF,EAAWI,EAAQrH,MACnBmH,EAAYH,GAEZC,GAAYI,EAAQ1F,WAExB,CACIqF,IAAiBrJ,KAAKI,OACxBgJ,EAAYT,EAAaO,EAAiBK,EACnB,QAAnBvJ,KAAK6E,YACPuE,EAAYpJ,KAAKqC,MAAQ+G,EAAYE,GAEvCtC,EAAI0B,UAAYW,EAChBrC,EAAIiD,SACFb,EACAP,EACAS,EACAP,EAAe/I,KAAK0E,aAGxBmE,GAAiBE,CACnB,CACA/B,EAAI0B,UAAYD,EAGhBzI,KAAKoK,cAAcpD,EACrB,CAYAqD,YAAAA,CACEC,EACA3C,EACA4C,EACAC,GAEA,MAAMC,EAAYC,EAAMC,aAAahD,GACnCiD,EAAkB5K,KAAKkI,oBAAoBP,GAC3CkD,EAASN,EAAeD,EACxBQ,EACEP,GACAK,IAAoB5K,KAAKkI,oBAAoBsC,GAC/CO,EAAiBpD,EAAUlD,SAAWzE,KAAKgL,gBAC7C,IAAI3I,EACF4I,EACAC,EACAlH,EAYF,GAVIuG,QAA4CY,IAA5BV,EAAUF,KAC5BW,EAAgBT,EAAUF,SAEHY,IAArBV,EAAUH,KACZtG,EAAc3B,EAAQoI,EAAUH,IAE9BQ,QAAwCK,IAAtBV,EAAUI,KAC9BI,EAAcR,EAAUI,GACxB7G,EAAciH,EAAcC,QAGlBC,IAAV9I,QACkB8I,IAAlBD,QACgBC,IAAhBF,EACA,CACA,MAAMjE,EA/8BZ,WACE,IAAK5H,EAAkB,CACrB,MAAMgM,EAASC,EAAuB,CACpChJ,MAAO,EACPC,OAAQ,IAEVlD,EAAmBgM,EAAOE,WAAW,KACvC,CACA,OAAOlM,CACT,CAs8BkBmM,GAEZvL,KAAKkH,eAAeF,EAAKW,GAAW,QACtBwD,IAAV9I,IACF2B,EAAc3B,EAAQ2E,EAAIwE,YAAYlB,GAAOjI,MAC7CoI,EAAUH,GAASjI,QAEC8I,IAAlBD,GAA+BJ,GAAkBP,IACnDW,EAAgBlE,EAAIwE,YAAYjB,GAAclI,MAC9CoI,EAAUF,GAAgBW,GAExBJ,QAAkCK,IAAhBF,IAEpBA,EAAcjE,EAAIwE,YAAYX,GAAQxI,MACtCoI,EAAUI,GAAUI,EAEpBjH,EAAciH,EAAcC,EAEhC,CACA,MAAO,CACL7I,MAAOA,EAAQ0I,EACf/G,YAAaA,EAAe+G,EAEhC,CAQAU,eAAAA,CAAgBtI,EAAcmH,GAC5B,OAAOtK,KAAKyJ,qBAAqBtG,EAAMmH,EAAO,WAChD,CAMAoB,WAAAA,CAAYxF,GACV,MAAMyF,EAAW3L,KAAK4L,aAAa1F,GAOnC,OANyB,IAArBlG,KAAK4E,cACP+G,EAAStJ,OAASrC,KAAK6L,0BAErBF,EAAStJ,MAAQ,IACnBsJ,EAAStJ,MAAQ,GAEZsJ,CACT,CAQAC,YAAAA,CAAa1F,GACX,IACE4F,EACAC,EAFE1J,EAAQ,EAIZ,MAAM2J,EAAUhM,KAAKiM,WAAa9G,EAChC/E,EAAOJ,KAAKI,KACZ+C,EAAOnD,KAAKmB,WAAW+E,GACvBgG,EAAU/I,EAAKpB,OACfoK,EAAa,IAAIC,MAAoBF,GAEvClM,KAAK6D,aAAaqC,GAAaiG,EAC/B,IAAK,IAAI7I,EAAI,EAAGA,EAAI4I,EAAS5I,IAAK,CAChC,MAAM+I,EAAWlJ,EAAKG,GACtByI,EAAe/L,KAAKsM,gBAAgBD,EAAUnG,EAAW5C,EAAGwI,GAC5DK,EAAW7I,GAAKyI,EAChB1J,GAAS0J,EAAa/H,YACtB8H,EAAeO,CACjB,CAUA,GAPAF,EAAWD,GAAW,CACpBjI,KAAM8H,EAAeA,EAAa9H,KAAO8H,EAAa1J,MAAQ,EAC9DA,MAAO,EACP2B,YAAa,EACb1B,OAAQtC,KAAKyE,SACbwB,OAAQ,GAEN7F,GAAQA,EAAKI,aAAc,CAC7B,IAAI+L,EAAiB,EACrB,MAAMC,EACJpM,EAAKI,aAAaJ,EAAKI,aAAauB,OAAS,GAAGA,OAClD,OAAQ/B,KAAK2C,WACX,KAAK8J,EACHF,EAAiBP,EAAUQ,EAAkBnK,EAAQ,EACrD,MACF,KAAK6C,EACHqH,GAAkBC,EAAkBnK,GAAS,EAC7C,MACF,KAAK8C,EACHoH,EAAiBP,EAAU,EAAIQ,EAAkBnK,EAIrDkK,GAAkBvM,KAAK0M,iBAAmBV,GAAU,EAAK,GACzD,IACE,IAAI1I,EAAI0I,EAAUE,EAAU,EAAI,EAChCF,EAAU1I,GAAK,EAAIA,EAAI4I,EACvBF,EAAU1I,IAAMA,IAEhByI,EAAeI,EAAW7I,GACtBiJ,EAAiBC,EACnBD,GAAkBC,EACTD,EAAiB,IAC1BA,GAAkBC,GAIpBxM,KAAK2M,mBAAmBJ,EAAgBR,GACxCQ,GAAkBR,EAAa/H,WAEnC,CACA,MAAO,CAAE3B,MAAOA,EAAOuK,YAAa,EACtC,CAUAD,kBAAAA,CAAmBJ,EAAwBR,GACzC,MAAMc,EAAiBN,EAAiBR,EAAa/H,YAAc,EACjE5D,EAAOJ,KAAKI,KAGR0M,EAAOC,EAAe3M,EAAKA,KAAMyM,EAAgBzM,EAAKI,cAC5DuL,EAAalC,WAAaiD,EAAKE,EAAI5M,EAAK6M,WAAWD,EACnDjB,EAAajC,UAAYgD,EAAK9G,EAAI5F,EAAK6M,WAAWjH,EAClD+F,EAAa/B,MAAQ8C,EAAK9C,OAAShK,KAAKiM,WAAa9G,EAAQ+H,KAAKC,GAAK,EACzE,CAUAb,eAAAA,CACED,EACAnG,EACAM,EACAsF,EACAsB,GAEA,MAAMC,EAAQrN,KAAKsN,4BAA4BpH,EAAWM,GACxD+G,EAAYzB,EACR9L,KAAKsN,4BAA4BpH,EAAWM,EAAY,GACxD,CAAA,EACJsG,EAAO9M,KAAKqK,aAAagC,EAAUgB,EAAOvB,EAAcyB,GAC1D,IAEE3I,EAFEZ,EAAc8I,EAAK9I,YACrB3B,EAAQyK,EAAKzK,MAGU,IAArBrC,KAAK4E,cACPA,EAAc5E,KAAK6L,yBACnBxJ,GAASuC,EACTZ,GAAeY,GAGjB,MAAM4I,EAAoB,CACxBnL,QACA4B,KAAM,EACN3B,OAAQ+K,EAAM5I,SACdT,cACAiC,OAAQoH,EAAMpH,QAEhB,GAAIO,EAAY,IAAM4G,EAAU,CAC9B,MAAMK,EAAczN,KAAK6D,aAAaqC,GAAWM,EAAY,GAC7DgH,EAAIvJ,KACFwJ,EAAYxJ,KAAOwJ,EAAYpL,MAAQyK,EAAK9I,YAAc8I,EAAKzK,KACnE,CACA,OAAOmL,CACT,CAOAxE,eAAAA,CAAgB9C,GACd,GAAIlG,KAAK0N,cAAcxH,GACrB,OAAOlG,KAAK0N,cAAcxH,GAK5B,IAAIyH,EAAY3N,KAAKyL,gBAAgBvF,EAAW,GAChD,IAAK,IAAI5C,EAAI,EAAGC,EAAMvD,KAAKmB,WAAW+E,GAAWnE,OAAQuB,EAAIC,EAAKD,IAChEqK,EAAYT,KAAKU,IAAI5N,KAAKyL,gBAAgBvF,EAAW5C,GAAIqK,GAG3D,OAAQ3N,KAAK0N,cAAcxH,GACzByH,EAAY3N,KAAK0E,WAAa1E,KAAK6N,aACvC,CAKAnL,cAAAA,GACE,IAAIgC,EACFpC,EAAS,EACX,IAAK,IAAIgB,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IACrDoB,EAAa1E,KAAKgJ,gBAAgB1F,GAClChB,GAAUgB,IAAMC,EAAM,EAAImB,EAAa1E,KAAK0E,WAAaA,EAE3D,OAAOpC,CACT,CAMAsG,cAAAA,GACE,MAA0B,QAAnB5I,KAAK6E,WAAuB7E,KAAKqC,MAAQ,EAAIrC,KAAKqC,MAAQ,CACnE,CAMAyG,aAAAA,GACE,OAAQ9I,KAAKsC,OAAS,CACxB,CAOAwL,iBAAAA,CACE9G,EACAqB,GAEArB,EAAI2C,OACJ,IAAIoE,EAAc,EAClB,MAAM9J,EAAOjE,KAAK4I,iBAChB7C,EAAM/F,KAAK8I,gBACb,IAAK,IAAIxF,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IAAK,CAC1D,MAAMyF,EAAe/I,KAAKgJ,gBAAgB1F,GACxCqK,EAAY5E,EAAe/I,KAAK0E,WAChCiE,EAAa3I,KAAKmJ,mBAAmB7F,GACvCtD,KAAKoI,gBACHC,EACArB,EACAhH,KAAKmB,WAAWmC,GAChBW,EAAO0E,EACP5C,EAAMgI,EAAcJ,EACpBrK,GAEFyK,GAAehF,CACjB,CACA/B,EAAImD,SACN,CAMAzC,eAAAA,CAAgBV,IACThH,KAAKgO,MAAShO,KAAKwI,SAASyF,KAIjCjO,KAAK8N,kBAAkB9G,EAAK,WAC9B,CAMAS,iBAAAA,CAAkBT,IACVhH,KAAKkO,QAA+B,IAArBlO,KAAKmO,cAAsBnO,KAAKoO,mBAIjDpO,KAAKqO,SAAWrO,KAAKqO,OAAOC,cAC9BtO,KAAKoK,cAAcpD,GAGrBA,EAAI2C,OACJ3J,KAAKuO,aAAavH,EAAKhH,KAAKwO,iBAC5BxH,EAAIyH,YACJzO,KAAK8N,kBAAkB9G,EAAK,cAC5BA,EAAI0H,YACJ1H,EAAImD,UACN,CAWA7B,YAAAA,CACED,EACArB,EACA7D,EACAc,EACA8B,EACAG,GAEA,MAAMxB,EAAa1E,KAAKgJ,gBAAgB9C,GACtCyI,EAAY3O,KAAK2C,UAAUC,SAASC,GACpCzC,EAAOJ,KAAKI,KACZwO,GACGD,GACoB,IAArB3O,KAAK4E,aACL5E,KAAKoO,cAAclI,KAClB9F,EACHyO,EAA2B,QAAnB7O,KAAK6E,UACbiK,EAA0B,QAAnB9O,KAAK6E,UAAsB,GAAI,EAGtCkK,EAAmB/H,EAAInC,UAEzB,IAAImK,EACFC,EAEAvF,EAEAwF,EACAC,EAJAC,EAAgB,GAEhB9F,EAAW,EAWb,GAPAtC,EAAI2C,OACAoF,IAAqB/O,KAAK6E,YAC5BmC,EAAIoE,OAAOiE,aAAa,MAAOR,EAAQ,MAAQ,OAC/C7H,EAAInC,UAAYgK,EAAQ,MAAQ,MAChC7H,EAAIrE,UAAYkM,EAAQpC,EAAOtH,GAEjCY,GAAQrB,EAAa1E,KAAKkK,kBAAqBlK,KAAK0E,WAChDkK,EAKF,OAFA5O,KAAKsP,YAAYjH,EAAQrB,EAAKd,EAAW,EAAG/C,EAAKoM,KAAK,IAAKtL,EAAM8B,QACjEiB,EAAImD,UAGN,IAAK,IAAI7G,EAAI,EAAGC,EAAMJ,EAAKpB,OAAS,EAAGuB,GAAKC,EAAKD,IAC/C4L,EAAe5L,IAAMC,GAAOvD,KAAK4E,aAAexE,EAChDgP,GAAiBjM,EAAKG,GACtBoG,EAAU1J,KAAK6D,aAAaqC,GAAW5C,GACtB,IAAbgG,GACFrF,GAAQ6K,GAAQpF,EAAQ1F,YAAc0F,EAAQrH,OAC9CiH,GAAYI,EAAQrH,OAEpBiH,GAAYI,EAAQ1F,YAElB2K,IAAcO,GACZlP,KAAK8D,eAAeC,KAAKZ,EAAKG,MAChC4L,GAAe,GAGdA,IAEHF,EACEA,GAAehP,KAAKsN,4BAA4BpH,EAAW5C,GAC7D2L,EAAYjP,KAAKsN,4BAA4BpH,EAAW5C,EAAI,GAC5D4L,EAAeM,EAAgBR,EAAaC,GAAW,IAErDC,IACE9O,GACF4G,EAAI2C,OACJ3C,EAAI4C,UAAUF,EAAQG,WAAYH,EAAQI,WAC1C9C,EAAI+C,OAAOL,EAAQM,OACnBhK,KAAKsP,YACHjH,EACArB,EACAd,EACA5C,EACA8L,GACC9F,EAAW,EACZ,GAEFtC,EAAImD,YAEJgF,EAAclL,EACdjE,KAAKsP,YACHjH,EACArB,EACAd,EACA5C,EACA8L,EACAD,EACApJ,IAGJqJ,EAAgB,GAChBJ,EAAcC,EACdhL,GAAQ6K,EAAOxF,EACfA,EAAW,GAGftC,EAAImD,SACN,CAaAsF,kCAAAA,CAAmCC,GAEjC,MAAMrN,EAAQrC,KAAKqC,MAAQrC,KAAKmO,YAC9B7L,EAAStC,KAAKsC,OAAStC,KAAKmO,YAC5BwB,EAAUtE,EAAuB,CAC/BhJ,QACAC,WAEFsN,EAAOD,EAAQrE,WAAW,MAa5B,OAZAqE,EAAQtN,MAAQA,EAChBsN,EAAQrN,OAASA,EACjBsN,EAAKnB,YACLmB,EAAKC,OAAO,EAAG,GACfD,EAAKE,OAAOzN,EAAO,GACnBuN,EAAKE,OAAOzN,EAAOC,GACnBsN,EAAKE,OAAO,EAAGxN,GACfsN,EAAKlB,YACLkB,EAAKhG,UAAUvH,EAAQ,EAAGC,EAAS,GACnCsN,EAAKlH,UAAYgH,EAAOK,OAAOH,GAC/B5P,KAAKgQ,+BAA+BJ,EAAMF,GAC1CE,EAAK5B,OACE4B,EAAKK,cAAcN,EAAS,YACrC,CAEAO,YAAAA,CACElJ,EACAmJ,EACAT,GAEA,IAAIU,EAAiBC,EACrB,OAAIC,EAASZ,GAEwC,eAAhDA,EAA8Ba,eAC9Bb,EAA8Bc,mBAC9Bd,EAAmBe,kBAMpBL,GAAWpQ,KAAKqC,MAAQ,EACxBgO,GAAWrQ,KAAKsC,OAAS,EACzB0E,EAAI4C,UAAUwG,EAASC,GACvBrJ,EAAImJ,GAAYnQ,KAAKyP,mCAAmCC,GACjD,CAAEU,UAASC,aAGlBrJ,EAAImJ,GAAYT,EAAOK,OAAO/I,GACvBhH,KAAKgQ,+BAA+BhJ,EAAK0I,KAIlD1I,EAAImJ,GAAYT,EAEX,CAAEU,QAAS,EAAGC,QAAS,GAChC,CASAK,gBAAAA,CACE1J,EAA6B2J,GAK7B,IAJAzC,OACEA,EAAMC,YACNA,GAC6DwC,EAO/D,OALA3J,EAAI4J,UAAYzC,EAChBnH,EAAI6J,QAAU7Q,KAAK8Q,cACnB9J,EAAI+J,eAAiB/Q,KAAKgR,iBAC1BhK,EAAIiK,SAAWjR,KAAKkR,eACpBlK,EAAImK,WAAanR,KAAKoR,iBACfpR,KAAKkQ,aAAalJ,EAAK,cAAekH,EAC/C,CASAmD,cAAAA,CAAerK,EAA6BsK,GAAgC,IAA9BtD,KAAEA,GAA0BsD,EACxE,OAAOtR,KAAKkQ,aAAalJ,EAAK,YAAagH,EAC7C,CAaAsB,WAAAA,CACEjH,EACArB,EACAd,EACAM,EACA8D,EACArG,EACA8B,GAEA,MAAMwL,EAAOvR,KAAKwR,qBAAqBtL,EAAWM,GAChDiL,EAAWzR,KAAKsN,4BAA4BpH,EAAWM,GACvDkL,EAAwB,aAAXrJ,GAAyBoJ,EAASzD,KAC/C2D,EACa,eAAXtJ,GAA2BoJ,EAASvD,QAAUuD,EAAStD,YAE3D,GAAKwD,GAAiBD,EAAtB,CAcA,GAXA1K,EAAI2C,OAEJ3C,EAAIiB,KAAOjI,KAAKkI,oBAAoBuJ,GAEhCF,EAAKhJ,qBACPvI,KAAKoK,cAAcpD,GAEjBuK,EAAKtL,SACPF,GAAOwL,EAAKtL,QAGVyL,EAAY,CACd,MAAME,EAAc5R,KAAKqR,eAAerK,EAAKyK,GAC7CzK,EAAI6K,SACFvH,EACArG,EAAO2N,EAAYxB,QACnBrK,EAAM6L,EAAYvB,QAEtB,CAEA,GAAIsB,EAAc,CAChB,MAAMG,EAAgB9R,KAAK0Q,iBAAiB1J,EAAKyK,GACjDzK,EAAI+K,WACFzH,EACArG,EAAO6N,EAAc1B,QACrBrK,EAAM+L,EAAczB,QAExB,CAEArJ,EAAImD,SA9BJ,CA+BF,CAOA6H,cAAAA,CAAeC,EAAeC,GAC5BlS,KAAKmS,WAAWF,EAAOC,EAAKlS,KAAKoS,YACnC,CAOAC,YAAAA,CAAaJ,EAAeC,GAC1BlS,KAAKmS,WAAWF,EAAOC,EAAKlS,KAAKsS,UACnC,CASUH,UAAAA,CACRF,EACAC,EACAK,GAKA,MAAMC,EAAMxS,KAAKqG,oBAAoB4L,GAAO,GAC1CxN,EAAWzE,KAAKyJ,qBACd+I,EAAItM,UACJsM,EAAIhM,UACJ,YAEFiM,EAAKzS,KAAKyJ,qBAAqB+I,EAAItM,UAAWsM,EAAIhM,UAAW,UAC7D6G,EAAQ,CACN5I,SAAUA,EAAW8N,EAAOG,KAC5BzM,OAAQwM,EAAKhO,EAAW8N,EAAOI,UAEnC3S,KAAK4S,mBAAmBvF,EAAO4E,EAAOC,EACxC,CAOA/I,kBAAAA,CAAmBjD,GACjB,MAAM0K,EAAY5Q,KAAKyD,aAAayC,GAClC2M,EAAW7S,KAAKqC,MAAQuO,EACxBjO,EAAY3C,KAAK2C,UACjBkC,EAAY7E,KAAK6E,UACjBrB,EAAkBxD,KAAKwD,gBAAgB0C,GACzC,IAAIyC,EAAa,EACjB,OACEhG,IAAcE,GACbF,IAAc2C,IAAmB9B,GACjCb,IAAc0C,IAAkB7B,GAChCb,IAAcyC,IAAiB5B,EAEzB,GAELb,IAAcuC,IAChByD,EAAakK,EAAW,GAEtBlQ,IAAcwC,IAChBwD,EAAakK,GAEXlQ,IAAc2C,IAChBqD,EAAakK,EAAW,GAEtBlQ,IAAc0C,IAChBsD,EAAakK,GAEG,QAAdhO,IAEAlC,IAAcwC,GACdxC,IAAcE,GACdF,IAAc0C,EAEdsD,EAAa,EACJhG,IAAc8J,GAAQ9J,IAAcyC,EAC7CuD,GAAckK,EACLlQ,IAAcuC,GAAUvC,IAAc2C,IAC/CqD,GAAckK,EAAW,IAGtBlK,EACT,CAKAxG,WAAAA,GACEnC,KAAK8S,kBAAmB,EACxB9S,KAAK+S,aAAe,GACpB/S,KAAK0N,cAAgB,GACrB1N,KAAK6D,aAAe,EACtB,CASAJ,YAAAA,CAAayC,GACX,QAAqCiF,IAAjCnL,KAAK+S,aAAa7M,GACpB,OAAOlG,KAAK+S,aAAa7M,GAG3B,MAAM7D,MAAEA,GAAUrC,KAAK0L,YAAYxF,GAEnC,OADAlG,KAAK+S,aAAa7M,GAAa7D,EACxBA,CACT,CAEAwJ,sBAAAA,GACE,OAAyB,IAArB7L,KAAK4E,YACC5E,KAAKyE,SAAWzE,KAAK4E,YAAe,IAEvC,CACT,CASA6E,oBAAAA,CACEvD,EACAM,EACA2J,GACS,IAAA6C,EAET,OAA2B,QAA3BA,EADkBhT,KAAKwR,qBAAqBtL,EAAWM,GACrC2J,UAAS,IAAA6C,EAAAA,EAAIhT,KAAKmQ,EACtC,CAMA/I,qBAAAA,CACEJ,EACAiM,GAEA,IAAKjT,KAAKiT,KAAUjT,KAAKwI,SAASyK,GAChC,OAEF,IAAIC,EAAYlT,KAAK8I,gBACrB,MAAMH,EAAa3I,KAAK4I,iBACtBxI,EAAOJ,KAAKI,KACZwE,EAAc5E,KAAK6L,yBACnBsH,EACW,gBAATF,EAAyB,GAAe,aAATA,EAAsB,EAAI,EAC3D5C,EAAUrQ,KAAKoT,QAAQH,GACzB,IAAK,IAAI3P,EAAI,EAAGC,EAAMvD,KAAKmB,WAAWY,OAAQuB,EAAIC,EAAKD,IAAK,CAC1D,MAAMyF,EAAe/I,KAAKgJ,gBAAgB1F,GAC1C,IAAKtD,KAAKiT,KAAUjT,KAAKwI,SAASyK,EAAM3P,GAAI,CAC1C4P,GAAanK,EACb,QACF,CACA,MAAM5F,EAAOnD,KAAKmB,WAAWmC,GACvBqK,EAAY5E,EAAe/I,KAAK0E,WAChCwE,EAAiBlJ,KAAKmJ,mBAAmB7F,GAC/C,IAAIiG,EAAW,EACXD,EAAW,EACX+J,EAAiBrT,KAAKyJ,qBAAqBnG,EAAG,EAAG2P,GACjDK,EAAWtT,KAAKyJ,qBAAqBnG,EAAG,EAAG2K,GAC3CsF,EAAevT,KAAKyJ,qBACtBnG,EACA,EACAkQ,GAEEC,EAAoBJ,EACpBK,EAAcJ,EACdK,EAAkBJ,EACtB,MAAMxN,EAAMmN,EAAYvF,GAAa,EAAI3N,KAAKkK,mBAC9C,IAAIwI,EAAO1S,KAAKyL,gBAAgBnI,EAAG,GAC/BmP,EAAKzS,KAAKyJ,qBAAqBnG,EAAG,EAAG,UACzC,IAAK,IAAIM,EAAI,EAAGqF,EAAO9F,EAAKpB,OAAQ6B,EAAIqF,EAAMrF,IAAK,CACjD,MAAM8F,EAAU1J,KAAK6D,aAAaP,GAAGM,GACrC6P,EAAoBzT,KAAKyJ,qBAAqBnG,EAAGM,EAAGqP,GACpDS,EAAc1T,KAAKyJ,qBAAqBnG,EAAGM,EAAGqK,GAC9C0F,EAAkB3T,KAAKyJ,qBACrBnG,EACAM,EACA4P,GAEF,MAAMI,EAAc5T,KAAKyL,gBAAgBnI,EAAGM,GACtCiQ,EAAY7T,KAAKyJ,qBAAqBnG,EAAGM,EAAG,UAClD,GAAIxD,GAAQqT,GAAqBC,EAAa,CAC5C,MAAMI,EAAiB9T,KAAKyE,SAAWkP,EAAmB,IAC1D3M,EAAI2C,OAEJ3C,EAAI0B,UAAY4K,EAChBtM,EAAI4C,UAAUF,EAAQG,WAAYH,EAAQI,WAC1C9C,EAAI+C,OAAOL,EAAQM,OACnBhD,EAAIiD,UACDP,EAAQ1F,YAAc,EACvBqM,EAAUuD,EAAcC,EAAYV,EAAgBW,EACpDpK,EAAQ1F,YACR8P,GAEF9M,EAAImD,SACN,MAAO,IACJsJ,IAAsBJ,GACrBK,IAAgBJ,GAChBM,IAAgBlB,GAChBiB,IAAoBJ,GACpBM,IAAcpB,IAChBnJ,EAAW,EACX,CACA,MAAMwK,EAAiB9T,KAAKyE,SAAW8O,EAAgB,IACvD,IAAInK,EAAYT,EAAaO,EAAiBK,EACvB,QAAnBvJ,KAAK6E,YACPuE,EAAYpJ,KAAKqC,MAAQ+G,EAAYE,GAEnC+J,GAAkBC,GAAYC,IAEhCvM,EAAI0B,UAAY4K,EAChBtM,EAAIiD,SACFb,EACArD,EAAMsK,EAAUqC,EAAOD,EAAKU,EAAgBW,EAC5CxK,EACAwK,IAGJvK,EAAWG,EAAQzF,KACnBqF,EAAWI,EAAQrH,MACnBgR,EAAiBI,EACjBF,EAAeI,EACfL,EAAWI,EACXhB,EAAOkB,EACPnB,EAAKoB,CACP,MACEvK,GAAYI,EAAQ1F,WAExB,CACA,IAAIoF,EAAYT,EAAaO,EAAiBK,EACvB,QAAnBvJ,KAAK6E,YACPuE,EAAYpJ,KAAKqC,MAAQ+G,EAAYE,GAEvCtC,EAAI0B,UAAYgL,EAChB,MAAMI,EAAiB9T,KAAKyE,SAAWkP,EAAmB,IAC1DF,GACEC,GACAC,GACA3M,EAAIiD,SACFb,EACArD,EAAMsK,EAAUqC,EAAOD,EAAKU,EAAgBW,EAC5CxK,EAAW1E,EACXkP,GAEJZ,GAAanK,CACf,CAGA/I,KAAKoK,cAAcpD,EACrB,CAOAkB,mBAAAA,GAaU,IAZRpD,WACEA,EAAa9E,KAAK8E,WAAUC,UAC5BA,EAAY/E,KAAK+E,UAASC,WAC1BA,EAAahF,KAAKgF,WAAUP,SAC5BA,EAAWzE,KAAKyE,UAMjBsP,UAAAhS,OAAA,QAAAoJ,IAAA4I,UAAA,GAAAA,UAAA,GAAG,CAAA,EACJnM,EAAsBmM,UAAAhS,OAAA,EAAAgS,kBAAA5I,EAEtB,MAAM6I,EACJlP,EAAWlC,SAAS,MACpBkC,EAAWlC,SAAS,MACpBkC,EAAWlC,SAAS,MACpBvD,EAAW4U,aAAarR,SAASkC,EAAWoP,eACxCpP,EACA,IAAIA,KACV,MAAO,CACLC,EACAC,EACA,GAAG4C,EAAe5H,KAAKgL,gBAAkBvG,MACzCuP,GACAzE,KAAK,IACT,CAMA4E,MAAAA,CAAOnN,GACAhH,KAAKoU,UAIRpU,KAAKoL,QACLpL,KAAKoL,OAAOiJ,gBACXrU,KAAKsU,QACLtU,KAAKuU,eAIJvU,KAAK8S,kBACP9S,KAAKM,iBAEPd,MAAM2U,OAAOnN,IACf,CAUAnF,aAAAA,CAAc2S,GACZ,OAAO3S,EAAc2S,EACvB,CAOAxT,mBAAAA,CAAoBrB,GAClB,MAAMuB,EAAQvB,EAAK8U,MAAMzU,KAAK0U,YAC5B3T,EAAW,IAAIqL,MAAgBlL,EAAMa,QACrC4S,EAAU,CAAC,MACb,IAAIC,EAAoB,GACxB,IAAK,IAAItR,EAAI,EAAGA,EAAIpC,EAAMa,OAAQuB,IAChCvC,EAASuC,GAAKtD,KAAK6B,cAAcX,EAAMoC,IACvCsR,EAAUA,EAAQ9S,OAAOf,EAASuC,GAAIqR,GAGxC,OADAC,EAAQC,MACD,CACLvT,gBAAiBP,EACjBG,MAAOA,EACPM,aAAcoT,EACdxT,cAAeL,EAEnB,CAOA+T,QAAAA,GAGsD,IAApDC,EAAwBhB,UAAAhS,OAAA,QAAAoJ,IAAA4I,UAAA,GAAAA,UAAA,GAAG,GAC3B,MAAO,IACFvU,MAAMsV,SAAS,IAAIE,KAAoBD,IAC1C7U,OAAQ+U,EAAcjV,KAAKE,OAAQF,KAAKL,SACpCK,KAAKI,KAAO,CAAEA,KAAMJ,KAAKI,KAAK0U,YAAe,CAAA,EAErD,CAEAI,GAAAA,CAAIC,EAAmBX,GACrB,MAAMY,qBAAEA,GAAyBpV,KAAKN,YACtCF,MAAM0V,IAAIC,EAAKX,GACf,IAAIa,GAAY,EACZC,GAAe,EACnB,GAAmB,iBAARH,EACT,IAAK,MAAMI,KAAQJ,EACJ,SAATI,GACFvV,KAAKK,cAEPgV,EAAYA,GAAaD,EAAqBxS,SAAS2S,GACvDD,EAAeA,GAAyB,SAATC,OAGjCF,EAAYD,EAAqBxS,SAASuS,GAC1CG,EAAuB,SAARH,EAWjB,OATIG,GACFtV,KAAKK,cAEHgV,GAAarV,KAAKG,cAEpBqV,EAAkBxV,MAClBA,KAAKM,iBACLN,KAAKO,aAEAP,IACT,CAMA0G,UAAAA,GACE,OAAO,CACT,CA+CA,wBAAa+O,CACXC,EACA9V,EACA+V,GAEA,MAAMC,EAAmBC,EACvBH,EACArW,EAAWyW,gBACXH,IAGII,WACJA,EAAatJ,EAAkDuJ,eAC/DA,EAAiB,GAAEC,GACnBA,EAAK,EAACxD,GACNA,EAAK,EAAC1M,IACNA,EAAM,EAAC9B,KACPA,EAAO,EAACQ,SACRA,EAAWyR,EAAqB/H,YAChCA,EAAc,KACXgI,GACD,IAAKvW,KAAYgW,GASfjW,EAAO,IAAIK,MAPI0V,EAAQU,aAAe,IACzCC,QAAQ,iBAAkB,IAC1BA,QAAQ,OAAQ,KAKgB,CAC/BpS,KAAMA,EAAOgS,EACblQ,IAAKA,EAAM0M,EACX6D,UAAWN,EAAepT,SAAS,aACnC2T,SAAUP,EAAepT,SAAS,YAClC4T,YAAaR,EAAepT,SAAS,gBAErCuL,YAAa,EACb1J,cACG0R,IAELM,EAAwB9W,EAAK+W,kBAAoB/W,EAAK2C,OAGtDqU,IADGhX,EAAK2C,OAAS3C,EAAKwO,aAAexO,EAAK+E,WAAa/E,EAAK2C,QAC9BmU,EAC9BG,EAAajX,EAAK+W,kBAAoBC,EAExC,IAAIE,EAAO,EAoBX,OAdId,IAAe7Q,IACjB2R,EAAOlX,EAAKmX,iBAAmB,GAE7Bf,IAAe5Q,IACjB0R,EAAOlX,EAAKmX,kBAEdnX,EAAKuV,IAAI,CACPjR,KAAMtE,EAAKsE,KAAO4S,EAClB9Q,IACEpG,EAAKoG,KACJ6Q,EAAajX,EAAK8E,UAAY,IAAO9E,EAAKuK,oBACzCvK,EAAK+E,WACTyJ,gBAEKxO,CACT,CASA,iBAAOoX,CAGLC,GACA,OAAOhX,KAAKiX,YACV,IACKD,EACH9W,OAAQgX,EAAgBF,EAAO9W,QAAU,CAAA,EAAI8W,EAAOrX,OAEtD,CACEwX,WAAY,QAGlB,EAx9DAtX,EARWR,EAAU,uBAamB+V,GAAoBvV,EAbjDR,EAAU,kBAiUI,IAAI+X,KAAoBpC,IAAgBnV,EAjUtDR,EAAU,cAmUAgY,GAAiBxX,EAnU3BR,EAAU,OAqUP,QAAMQ,EArUTR,EAAU,eA61DC,CACpB,QACA,aACA,YACA,UACA,UACA,YACA,WACA,gBACA,eACA,aACA,OACA,QACA,aAKFQ,EA/2DWR,EAAU,kBAm3DIiY,EAAkBxV,OACzC,IACA,IACA,KACA,KACA,cACA,aACA,cACA,YACA,iBACA,kBACA,gBAqGJyV,EAAYlY,EAAY,CAACmY,IACzBC,EAAcC,SAASrY,GACvBoY,EAAcE,YAAYtY"}
|