@nasser-sw/fabric 7.0.1-beta2 → 7.0.1-beta4
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 +0 -0
- package/.babelrcAlt +0 -0
- package/.browserslistrc +0 -0
- package/.editorconfig +0 -0
- package/.gitattributes +0 -0
- package/.gitpod.yml +0 -0
- package/.prettierignore +0 -0
- package/.prettierrc +0 -0
- package/0 +0 -0
- package/CHANGELOG.md +0 -0
- package/CODE_OF_CONDUCT.md +0 -0
- package/CONTRIBUTING.md +0 -0
- package/LICENSE +0 -0
- package/OVERLAY_EDITOR_MIGRATION.md +0 -0
- package/README.md +0 -0
- package/SECURITY.md +0 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
- package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
- package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
- package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
- package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
- package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
- package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
- package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
- package/dist/extensions/index.d.ts +0 -0
- package/dist/extensions/index.d.ts.map +0 -0
- package/dist/fabric.d.ts +0 -0
- package/dist/fabric.d.ts.map +0 -0
- package/dist/fabric.min.mjs +0 -0
- package/dist/fabric.min.mjs.map +0 -0
- package/dist/fabric.mjs +0 -0
- package/dist/fabric.mjs.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +1585 -1151
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +1585 -1151
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +1585 -1151
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.d.ts +0 -0
- package/dist/index.node.d.ts.map +0 -0
- package/dist/index.node.mjs +1585 -1151
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.min.mjs.map +0 -0
- package/dist/package.json.mjs +1 -1
- package/dist/package.json.mjs.map +0 -0
- package/dist/src/ClassRegistry.d.ts +0 -0
- package/dist/src/ClassRegistry.d.ts.map +0 -0
- package/dist/src/ClassRegistry.min.mjs +0 -0
- package/dist/src/ClassRegistry.min.mjs.map +0 -0
- package/dist/src/ClassRegistry.mjs +0 -0
- package/dist/src/ClassRegistry.mjs.map +0 -0
- package/dist/src/Collection.d.ts +0 -0
- package/dist/src/Collection.d.ts.map +0 -0
- package/dist/src/Collection.min.mjs +0 -0
- package/dist/src/Collection.min.mjs.map +0 -0
- package/dist/src/Collection.mjs +0 -0
- package/dist/src/Collection.mjs.map +0 -0
- package/dist/src/CommonMethods.d.ts +0 -0
- package/dist/src/CommonMethods.d.ts.map +0 -0
- package/dist/src/CommonMethods.min.mjs +0 -0
- package/dist/src/CommonMethods.min.mjs.map +0 -0
- package/dist/src/CommonMethods.mjs +0 -0
- package/dist/src/CommonMethods.mjs.map +0 -0
- package/dist/src/EventTypeDefs.d.ts +0 -0
- package/dist/src/EventTypeDefs.d.ts.map +0 -0
- package/dist/src/Intersection.d.ts +0 -0
- package/dist/src/Intersection.d.ts.map +0 -0
- package/dist/src/Intersection.min.mjs +0 -0
- package/dist/src/Intersection.min.mjs.map +0 -0
- package/dist/src/Intersection.mjs +0 -0
- package/dist/src/Intersection.mjs.map +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
- package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
- package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
- package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
- package/dist/src/LayoutManager/constants.d.ts +0 -0
- package/dist/src/LayoutManager/constants.d.ts.map +0 -0
- package/dist/src/LayoutManager/constants.min.mjs +0 -0
- package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
- package/dist/src/LayoutManager/constants.mjs +0 -0
- package/dist/src/LayoutManager/constants.mjs.map +0 -0
- package/dist/src/LayoutManager/index.d.ts +0 -0
- package/dist/src/LayoutManager/index.d.ts.map +0 -0
- package/dist/src/LayoutManager/types.d.ts +0 -0
- package/dist/src/LayoutManager/types.d.ts.map +0 -0
- package/dist/src/Observable.d.ts +0 -0
- package/dist/src/Observable.d.ts.map +0 -0
- package/dist/src/Observable.min.mjs +0 -0
- package/dist/src/Observable.min.mjs.map +0 -0
- package/dist/src/Observable.mjs +0 -0
- package/dist/src/Observable.mjs.map +0 -0
- package/dist/src/Pattern/Pattern.d.ts +0 -0
- package/dist/src/Pattern/Pattern.d.ts.map +0 -0
- package/dist/src/Pattern/Pattern.min.mjs +0 -0
- package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
- package/dist/src/Pattern/Pattern.mjs +0 -0
- package/dist/src/Pattern/Pattern.mjs.map +0 -0
- package/dist/src/Pattern/index.d.ts +0 -0
- package/dist/src/Pattern/index.d.ts.map +0 -0
- package/dist/src/Pattern/types.d.ts +0 -0
- package/dist/src/Pattern/types.d.ts.map +0 -0
- package/dist/src/Point.d.ts +0 -0
- package/dist/src/Point.d.ts.map +0 -0
- package/dist/src/Point.min.mjs +0 -0
- package/dist/src/Point.min.mjs.map +0 -0
- package/dist/src/Point.mjs +0 -0
- package/dist/src/Point.mjs.map +0 -0
- package/dist/src/Shadow.d.ts +0 -0
- package/dist/src/Shadow.d.ts.map +0 -0
- package/dist/src/Shadow.min.mjs +0 -0
- package/dist/src/Shadow.min.mjs.map +0 -0
- package/dist/src/Shadow.mjs +0 -0
- package/dist/src/Shadow.mjs.map +0 -0
- package/dist/src/brushes/BaseBrush.d.ts +0 -0
- package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
- package/dist/src/brushes/BaseBrush.min.mjs +0 -0
- package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
- package/dist/src/brushes/BaseBrush.mjs +0 -0
- package/dist/src/brushes/BaseBrush.mjs.map +0 -0
- package/dist/src/brushes/CircleBrush.d.ts +0 -0
- package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
- package/dist/src/brushes/CircleBrush.min.mjs +0 -0
- package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
- package/dist/src/brushes/CircleBrush.mjs +0 -0
- package/dist/src/brushes/CircleBrush.mjs.map +0 -0
- package/dist/src/brushes/PatternBrush.d.ts +0 -0
- package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
- package/dist/src/brushes/PatternBrush.min.mjs +0 -0
- package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
- package/dist/src/brushes/PatternBrush.mjs +0 -0
- package/dist/src/brushes/PatternBrush.mjs.map +0 -0
- package/dist/src/brushes/PencilBrush.d.ts +0 -0
- package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
- package/dist/src/brushes/PencilBrush.min.mjs +0 -0
- package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
- package/dist/src/brushes/PencilBrush.mjs +0 -0
- package/dist/src/brushes/PencilBrush.mjs.map +0 -0
- package/dist/src/brushes/SprayBrush.d.ts +0 -0
- package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
- package/dist/src/brushes/SprayBrush.min.mjs +0 -0
- package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
- package/dist/src/brushes/SprayBrush.mjs +0 -0
- package/dist/src/brushes/SprayBrush.mjs.map +0 -0
- package/dist/src/brushes/typedefs.d.ts +0 -0
- package/dist/src/brushes/typedefs.d.ts.map +0 -0
- package/dist/src/cache.d.ts +0 -0
- package/dist/src/cache.d.ts.map +0 -0
- package/dist/src/cache.min.mjs +0 -0
- package/dist/src/cache.min.mjs.map +0 -0
- package/dist/src/cache.mjs +0 -0
- package/dist/src/cache.mjs.map +0 -0
- package/dist/src/canvas/Canvas.d.ts +0 -0
- package/dist/src/canvas/Canvas.d.ts.map +0 -0
- package/dist/src/canvas/Canvas.min.mjs +0 -0
- package/dist/src/canvas/Canvas.min.mjs.map +0 -0
- package/dist/src/canvas/Canvas.mjs +0 -0
- package/dist/src/canvas/Canvas.mjs.map +0 -0
- package/dist/src/canvas/CanvasOptions.d.ts +0 -0
- package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
- package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
- package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
- package/dist/src/canvas/CanvasOptions.mjs +0 -0
- package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
- package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
- package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
- package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
- package/dist/src/canvas/DOMManagers/util.mjs +0 -0
- package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
- package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
- package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
- package/dist/src/canvas/SelectableCanvas.mjs +0 -0
- package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
- package/dist/src/canvas/StaticCanvas.d.ts +0 -0
- package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
- package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
- package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
- package/dist/src/canvas/StaticCanvas.mjs +0 -0
- package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
- package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
- package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
- package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
- package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
- package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
- package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
- package/dist/src/canvas/TextEditingManager.d.ts +0 -0
- package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
- package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
- package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
- package/dist/src/canvas/TextEditingManager.mjs +0 -0
- package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
- package/dist/src/color/Color.d.ts +0 -0
- package/dist/src/color/Color.d.ts.map +0 -0
- package/dist/src/color/Color.min.mjs +0 -0
- package/dist/src/color/Color.min.mjs.map +0 -0
- package/dist/src/color/Color.mjs +0 -0
- package/dist/src/color/Color.mjs.map +0 -0
- package/dist/src/color/color_map.d.ts +0 -0
- package/dist/src/color/color_map.d.ts.map +0 -0
- package/dist/src/color/color_map.min.mjs +0 -0
- package/dist/src/color/color_map.min.mjs.map +0 -0
- package/dist/src/color/color_map.mjs +0 -0
- package/dist/src/color/color_map.mjs.map +0 -0
- package/dist/src/color/constants.d.ts +0 -0
- package/dist/src/color/constants.d.ts.map +0 -0
- package/dist/src/color/constants.min.mjs +0 -0
- package/dist/src/color/constants.min.mjs.map +0 -0
- package/dist/src/color/constants.mjs +0 -0
- package/dist/src/color/constants.mjs.map +0 -0
- package/dist/src/color/typedefs.d.ts +0 -0
- package/dist/src/color/typedefs.d.ts.map +0 -0
- package/dist/src/color/util.d.ts +0 -0
- package/dist/src/color/util.d.ts.map +0 -0
- package/dist/src/color/util.min.mjs +0 -0
- package/dist/src/color/util.min.mjs.map +0 -0
- package/dist/src/color/util.mjs +0 -0
- package/dist/src/color/util.mjs.map +0 -0
- package/dist/src/config.d.ts +0 -0
- package/dist/src/config.d.ts.map +0 -0
- package/dist/src/config.min.mjs +0 -0
- package/dist/src/config.min.mjs.map +0 -0
- package/dist/src/config.mjs +0 -0
- package/dist/src/config.mjs.map +0 -0
- package/dist/src/constants.d.ts +0 -0
- package/dist/src/constants.d.ts.map +0 -0
- package/dist/src/constants.min.mjs +0 -0
- package/dist/src/constants.min.mjs.map +0 -0
- package/dist/src/constants.mjs +0 -0
- package/dist/src/constants.mjs.map +0 -0
- package/dist/src/controls/Control.d.ts +0 -0
- package/dist/src/controls/Control.d.ts.map +0 -0
- package/dist/src/controls/Control.min.mjs +0 -0
- package/dist/src/controls/Control.min.mjs.map +0 -0
- package/dist/src/controls/Control.mjs +0 -0
- package/dist/src/controls/Control.mjs.map +0 -0
- package/dist/src/controls/changeHeight.d.ts +0 -0
- package/dist/src/controls/changeHeight.d.ts.map +0 -0
- package/dist/src/controls/changeWidth.d.ts +0 -0
- package/dist/src/controls/changeWidth.d.ts.map +0 -0
- package/dist/src/controls/changeWidth.min.mjs +0 -0
- package/dist/src/controls/changeWidth.min.mjs.map +0 -0
- package/dist/src/controls/changeWidth.mjs +0 -0
- package/dist/src/controls/changeWidth.mjs.map +0 -0
- package/dist/src/controls/commonControls.d.ts +0 -0
- package/dist/src/controls/commonControls.d.ts.map +0 -0
- package/dist/src/controls/commonControls.min.mjs +0 -0
- package/dist/src/controls/commonControls.min.mjs.map +0 -0
- package/dist/src/controls/commonControls.mjs +0 -0
- package/dist/src/controls/commonControls.mjs.map +0 -0
- package/dist/src/controls/controlRendering.d.ts +0 -0
- package/dist/src/controls/controlRendering.d.ts.map +0 -0
- package/dist/src/controls/controlRendering.min.mjs +0 -0
- package/dist/src/controls/controlRendering.min.mjs.map +0 -0
- package/dist/src/controls/controlRendering.mjs +0 -0
- package/dist/src/controls/controlRendering.mjs.map +0 -0
- package/dist/src/controls/drag.d.ts +0 -0
- package/dist/src/controls/drag.d.ts.map +0 -0
- package/dist/src/controls/drag.min.mjs +0 -0
- package/dist/src/controls/drag.min.mjs.map +0 -0
- package/dist/src/controls/drag.mjs +0 -0
- package/dist/src/controls/drag.mjs.map +0 -0
- package/dist/src/controls/fireEvent.d.ts +0 -0
- package/dist/src/controls/fireEvent.d.ts.map +0 -0
- package/dist/src/controls/fireEvent.min.mjs +0 -0
- package/dist/src/controls/fireEvent.min.mjs.map +0 -0
- package/dist/src/controls/fireEvent.mjs +0 -0
- package/dist/src/controls/fireEvent.mjs.map +0 -0
- package/dist/src/controls/index.d.ts +0 -0
- package/dist/src/controls/index.d.ts.map +0 -0
- package/dist/src/controls/index.min.mjs +0 -0
- package/dist/src/controls/index.min.mjs.map +0 -0
- package/dist/src/controls/index.mjs +0 -0
- package/dist/src/controls/index.mjs.map +0 -0
- package/dist/src/controls/pathControl.d.ts +0 -0
- package/dist/src/controls/pathControl.d.ts.map +0 -0
- package/dist/src/controls/pathControl.min.mjs +0 -0
- package/dist/src/controls/pathControl.min.mjs.map +0 -0
- package/dist/src/controls/pathControl.mjs +0 -0
- package/dist/src/controls/pathControl.mjs.map +0 -0
- package/dist/src/controls/polyControl.d.ts +0 -0
- package/dist/src/controls/polyControl.d.ts.map +0 -0
- package/dist/src/controls/polyControl.min.mjs +0 -0
- package/dist/src/controls/polyControl.min.mjs.map +0 -0
- package/dist/src/controls/polyControl.mjs +0 -0
- package/dist/src/controls/polyControl.mjs.map +0 -0
- package/dist/src/controls/rotate.d.ts +0 -0
- package/dist/src/controls/rotate.d.ts.map +0 -0
- package/dist/src/controls/rotate.min.mjs +0 -0
- package/dist/src/controls/rotate.min.mjs.map +0 -0
- package/dist/src/controls/rotate.mjs +0 -0
- package/dist/src/controls/rotate.mjs.map +0 -0
- package/dist/src/controls/scale.d.ts +0 -0
- package/dist/src/controls/scale.d.ts.map +0 -0
- package/dist/src/controls/scale.min.mjs +0 -0
- package/dist/src/controls/scale.min.mjs.map +0 -0
- package/dist/src/controls/scale.mjs +0 -0
- package/dist/src/controls/scale.mjs.map +0 -0
- package/dist/src/controls/scaleSkew.d.ts +0 -0
- package/dist/src/controls/scaleSkew.d.ts.map +0 -0
- package/dist/src/controls/scaleSkew.min.mjs +0 -0
- package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
- package/dist/src/controls/scaleSkew.mjs +0 -0
- package/dist/src/controls/scaleSkew.mjs.map +0 -0
- package/dist/src/controls/skew.d.ts +0 -0
- package/dist/src/controls/skew.d.ts.map +0 -0
- package/dist/src/controls/skew.min.mjs +0 -0
- package/dist/src/controls/skew.min.mjs.map +0 -0
- package/dist/src/controls/skew.mjs +0 -0
- package/dist/src/controls/skew.mjs.map +0 -0
- package/dist/src/controls/util.d.ts +0 -0
- package/dist/src/controls/util.d.ts.map +0 -0
- package/dist/src/controls/util.min.mjs +0 -0
- package/dist/src/controls/util.min.mjs.map +0 -0
- package/dist/src/controls/util.mjs +0 -0
- package/dist/src/controls/util.mjs.map +0 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
- package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
- package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
- package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
- package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
- package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
- package/dist/src/env/browser.d.ts +0 -0
- package/dist/src/env/browser.d.ts.map +0 -0
- package/dist/src/env/browser.min.mjs +0 -0
- package/dist/src/env/browser.min.mjs.map +0 -0
- package/dist/src/env/browser.mjs +0 -0
- package/dist/src/env/browser.mjs.map +0 -0
- package/dist/src/env/index.d.ts +0 -0
- package/dist/src/env/index.d.ts.map +0 -0
- package/dist/src/env/index.min.mjs +0 -0
- package/dist/src/env/index.min.mjs.map +0 -0
- package/dist/src/env/index.mjs +0 -0
- package/dist/src/env/index.mjs.map +0 -0
- package/dist/src/env/node.d.ts +0 -0
- package/dist/src/env/node.d.ts.map +0 -0
- package/dist/src/env/types.d.ts +0 -0
- package/dist/src/env/types.d.ts.map +0 -0
- package/dist/src/filters/BaseFilter.d.ts +0 -0
- package/dist/src/filters/BaseFilter.d.ts.map +0 -0
- package/dist/src/filters/BaseFilter.min.mjs +0 -0
- package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
- package/dist/src/filters/BaseFilter.mjs +0 -0
- package/dist/src/filters/BaseFilter.mjs.map +0 -0
- package/dist/src/filters/BlendColor.d.ts +0 -0
- package/dist/src/filters/BlendColor.d.ts.map +0 -0
- package/dist/src/filters/BlendColor.min.mjs +0 -0
- package/dist/src/filters/BlendColor.min.mjs.map +0 -0
- package/dist/src/filters/BlendColor.mjs +0 -0
- package/dist/src/filters/BlendColor.mjs.map +0 -0
- package/dist/src/filters/BlendImage.d.ts +0 -0
- package/dist/src/filters/BlendImage.d.ts.map +0 -0
- package/dist/src/filters/BlendImage.min.mjs +0 -0
- package/dist/src/filters/BlendImage.min.mjs.map +0 -0
- package/dist/src/filters/BlendImage.mjs +0 -0
- package/dist/src/filters/BlendImage.mjs.map +0 -0
- package/dist/src/filters/Blur.d.ts +0 -0
- package/dist/src/filters/Blur.d.ts.map +0 -0
- package/dist/src/filters/Blur.min.mjs +0 -0
- package/dist/src/filters/Blur.min.mjs.map +0 -0
- package/dist/src/filters/Blur.mjs +0 -0
- package/dist/src/filters/Blur.mjs.map +0 -0
- package/dist/src/filters/Boilerplate.d.ts +0 -0
- package/dist/src/filters/Boilerplate.d.ts.map +0 -0
- package/dist/src/filters/Brightness.d.ts +0 -0
- package/dist/src/filters/Brightness.d.ts.map +0 -0
- package/dist/src/filters/Brightness.min.mjs +0 -0
- package/dist/src/filters/Brightness.min.mjs.map +0 -0
- package/dist/src/filters/Brightness.mjs +0 -0
- package/dist/src/filters/Brightness.mjs.map +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
- package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
- package/dist/src/filters/ColorMatrix.d.ts +0 -0
- package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
- package/dist/src/filters/ColorMatrix.min.mjs +0 -0
- package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
- package/dist/src/filters/ColorMatrix.mjs +0 -0
- package/dist/src/filters/ColorMatrix.mjs.map +0 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
- package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
- package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
- package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
- package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
- package/dist/src/filters/Composed.d.ts +0 -0
- package/dist/src/filters/Composed.d.ts.map +0 -0
- package/dist/src/filters/Composed.min.mjs +0 -0
- package/dist/src/filters/Composed.min.mjs.map +0 -0
- package/dist/src/filters/Composed.mjs +0 -0
- package/dist/src/filters/Composed.mjs.map +0 -0
- package/dist/src/filters/Contrast.d.ts +0 -0
- package/dist/src/filters/Contrast.d.ts.map +0 -0
- package/dist/src/filters/Contrast.min.mjs +0 -0
- package/dist/src/filters/Contrast.min.mjs.map +0 -0
- package/dist/src/filters/Contrast.mjs +0 -0
- package/dist/src/filters/Contrast.mjs.map +0 -0
- package/dist/src/filters/Convolute.d.ts +0 -0
- package/dist/src/filters/Convolute.d.ts.map +0 -0
- package/dist/src/filters/Convolute.min.mjs +0 -0
- package/dist/src/filters/Convolute.min.mjs.map +0 -0
- package/dist/src/filters/Convolute.mjs +0 -0
- package/dist/src/filters/Convolute.mjs.map +0 -0
- package/dist/src/filters/FilterBackend.d.ts +0 -0
- package/dist/src/filters/FilterBackend.d.ts.map +0 -0
- package/dist/src/filters/FilterBackend.min.mjs +0 -0
- package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
- package/dist/src/filters/FilterBackend.mjs +0 -0
- package/dist/src/filters/FilterBackend.mjs.map +0 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
- package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
- package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
- package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
- package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
- package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
- package/dist/src/filters/Gamma.d.ts +0 -0
- package/dist/src/filters/Gamma.d.ts.map +0 -0
- package/dist/src/filters/Gamma.min.mjs +0 -0
- package/dist/src/filters/Gamma.min.mjs.map +0 -0
- package/dist/src/filters/Gamma.mjs +0 -0
- package/dist/src/filters/Gamma.mjs.map +0 -0
- package/dist/src/filters/Grayscale.d.ts +0 -0
- package/dist/src/filters/Grayscale.d.ts.map +0 -0
- package/dist/src/filters/Grayscale.min.mjs +0 -0
- package/dist/src/filters/Grayscale.min.mjs.map +0 -0
- package/dist/src/filters/Grayscale.mjs +0 -0
- package/dist/src/filters/Grayscale.mjs.map +0 -0
- package/dist/src/filters/HueRotation.d.ts +0 -0
- package/dist/src/filters/HueRotation.d.ts.map +0 -0
- package/dist/src/filters/HueRotation.min.mjs +0 -0
- package/dist/src/filters/HueRotation.min.mjs.map +0 -0
- package/dist/src/filters/HueRotation.mjs +0 -0
- package/dist/src/filters/HueRotation.mjs.map +0 -0
- package/dist/src/filters/Invert.d.ts +0 -0
- package/dist/src/filters/Invert.d.ts.map +0 -0
- package/dist/src/filters/Invert.min.mjs +0 -0
- package/dist/src/filters/Invert.min.mjs.map +0 -0
- package/dist/src/filters/Invert.mjs +0 -0
- package/dist/src/filters/Invert.mjs.map +0 -0
- package/dist/src/filters/Noise.d.ts +0 -0
- package/dist/src/filters/Noise.d.ts.map +0 -0
- package/dist/src/filters/Noise.min.mjs +0 -0
- package/dist/src/filters/Noise.min.mjs.map +0 -0
- package/dist/src/filters/Noise.mjs +0 -0
- package/dist/src/filters/Noise.mjs.map +0 -0
- package/dist/src/filters/Pixelate.d.ts +0 -0
- package/dist/src/filters/Pixelate.d.ts.map +0 -0
- package/dist/src/filters/Pixelate.min.mjs +0 -0
- package/dist/src/filters/Pixelate.min.mjs.map +0 -0
- package/dist/src/filters/Pixelate.mjs +0 -0
- package/dist/src/filters/Pixelate.mjs.map +0 -0
- package/dist/src/filters/RemoveColor.d.ts +0 -0
- package/dist/src/filters/RemoveColor.d.ts.map +0 -0
- package/dist/src/filters/RemoveColor.min.mjs +0 -0
- package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
- package/dist/src/filters/RemoveColor.mjs +0 -0
- package/dist/src/filters/RemoveColor.mjs.map +0 -0
- package/dist/src/filters/Resize.d.ts +0 -0
- package/dist/src/filters/Resize.d.ts.map +0 -0
- package/dist/src/filters/Resize.min.mjs +0 -0
- package/dist/src/filters/Resize.min.mjs.map +0 -0
- package/dist/src/filters/Resize.mjs +0 -0
- package/dist/src/filters/Resize.mjs.map +0 -0
- package/dist/src/filters/Saturation.d.ts +0 -0
- package/dist/src/filters/Saturation.d.ts.map +0 -0
- package/dist/src/filters/Saturation.min.mjs +0 -0
- package/dist/src/filters/Saturation.min.mjs.map +0 -0
- package/dist/src/filters/Saturation.mjs +0 -0
- package/dist/src/filters/Saturation.mjs.map +0 -0
- package/dist/src/filters/Vibrance.d.ts +0 -0
- package/dist/src/filters/Vibrance.d.ts.map +0 -0
- package/dist/src/filters/Vibrance.min.mjs +0 -0
- package/dist/src/filters/Vibrance.min.mjs.map +0 -0
- package/dist/src/filters/Vibrance.mjs +0 -0
- package/dist/src/filters/Vibrance.mjs.map +0 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
- package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
- package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
- package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
- package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
- package/dist/src/filters/filters.d.ts +0 -0
- package/dist/src/filters/filters.d.ts.map +0 -0
- package/dist/src/filters/filters.min.mjs +0 -0
- package/dist/src/filters/filters.min.mjs.map +0 -0
- package/dist/src/filters/filters.mjs +0 -0
- package/dist/src/filters/filters.mjs.map +0 -0
- package/dist/src/filters/index.d.ts +0 -0
- package/dist/src/filters/index.d.ts.map +0 -0
- package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
- package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
- package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
- package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
- package/dist/src/filters/shaders/baseFilter.mjs +0 -0
- package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
- package/dist/src/filters/shaders/blendColor.d.ts +0 -0
- package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
- package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
- package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
- package/dist/src/filters/shaders/blendColor.mjs +0 -0
- package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
- package/dist/src/filters/shaders/blendImage.d.ts +0 -0
- package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
- package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
- package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
- package/dist/src/filters/shaders/blendImage.mjs +0 -0
- package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
- package/dist/src/filters/shaders/blur.d.ts +0 -0
- package/dist/src/filters/shaders/blur.d.ts.map +0 -0
- package/dist/src/filters/shaders/blur.min.mjs +0 -0
- package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
- package/dist/src/filters/shaders/blur.mjs +0 -0
- package/dist/src/filters/shaders/blur.mjs.map +0 -0
- package/dist/src/filters/shaders/brightness.d.ts +0 -0
- package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
- package/dist/src/filters/shaders/brightness.min.mjs +0 -0
- package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
- package/dist/src/filters/shaders/brightness.mjs +0 -0
- package/dist/src/filters/shaders/brightness.mjs.map +0 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
- package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
- package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
- package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
- package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
- package/dist/src/filters/shaders/constrast.d.ts +0 -0
- package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
- package/dist/src/filters/shaders/constrast.min.mjs +0 -0
- package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
- package/dist/src/filters/shaders/constrast.mjs +0 -0
- package/dist/src/filters/shaders/constrast.mjs.map +0 -0
- package/dist/src/filters/shaders/convolute.d.ts +0 -0
- package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
- package/dist/src/filters/shaders/convolute.min.mjs +0 -0
- package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
- package/dist/src/filters/shaders/convolute.mjs +0 -0
- package/dist/src/filters/shaders/convolute.mjs.map +0 -0
- package/dist/src/filters/shaders/gamma.d.ts +0 -0
- package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
- package/dist/src/filters/shaders/gamma.min.mjs +0 -0
- package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
- package/dist/src/filters/shaders/gamma.mjs +0 -0
- package/dist/src/filters/shaders/gamma.mjs.map +0 -0
- package/dist/src/filters/shaders/grayscale.d.ts +0 -0
- package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
- package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
- package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
- package/dist/src/filters/shaders/grayscale.mjs +0 -0
- package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
- package/dist/src/filters/shaders/invert.d.ts +0 -0
- package/dist/src/filters/shaders/invert.d.ts.map +0 -0
- package/dist/src/filters/shaders/invert.min.mjs +0 -0
- package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
- package/dist/src/filters/shaders/invert.mjs +0 -0
- package/dist/src/filters/shaders/invert.mjs.map +0 -0
- package/dist/src/filters/shaders/noise.d.ts +0 -0
- package/dist/src/filters/shaders/noise.d.ts.map +0 -0
- package/dist/src/filters/shaders/noise.min.mjs +0 -0
- package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
- package/dist/src/filters/shaders/noise.mjs +0 -0
- package/dist/src/filters/shaders/noise.mjs.map +0 -0
- package/dist/src/filters/shaders/pixelate.d.ts +0 -0
- package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
- package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
- package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
- package/dist/src/filters/shaders/pixelate.mjs +0 -0
- package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
- package/dist/src/filters/shaders/removeColor.d.ts +0 -0
- package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
- package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
- package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
- package/dist/src/filters/shaders/removeColor.mjs +0 -0
- package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
- package/dist/src/filters/shaders/saturation.d.ts +0 -0
- package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
- package/dist/src/filters/shaders/saturation.min.mjs +0 -0
- package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
- package/dist/src/filters/shaders/saturation.mjs +0 -0
- package/dist/src/filters/shaders/saturation.mjs.map +0 -0
- package/dist/src/filters/shaders/vibrance.d.ts +0 -0
- package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
- package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
- package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
- package/dist/src/filters/shaders/vibrance.mjs +0 -0
- package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
- package/dist/src/filters/typedefs.d.ts +0 -0
- package/dist/src/filters/typedefs.d.ts.map +0 -0
- package/dist/src/filters/utils.d.ts +0 -0
- package/dist/src/filters/utils.d.ts.map +0 -0
- package/dist/src/filters/utils.min.mjs +0 -0
- package/dist/src/filters/utils.min.mjs.map +0 -0
- package/dist/src/filters/utils.mjs +0 -0
- package/dist/src/filters/utils.mjs.map +0 -0
- package/dist/src/gradient/Gradient.d.ts +0 -0
- package/dist/src/gradient/Gradient.d.ts.map +0 -0
- package/dist/src/gradient/Gradient.min.mjs +0 -0
- package/dist/src/gradient/Gradient.min.mjs.map +0 -0
- package/dist/src/gradient/Gradient.mjs +0 -0
- package/dist/src/gradient/Gradient.mjs.map +0 -0
- package/dist/src/gradient/constants.d.ts +0 -0
- package/dist/src/gradient/constants.d.ts.map +0 -0
- package/dist/src/gradient/constants.min.mjs +0 -0
- package/dist/src/gradient/constants.min.mjs.map +0 -0
- package/dist/src/gradient/constants.mjs +0 -0
- package/dist/src/gradient/constants.mjs.map +0 -0
- package/dist/src/gradient/index.d.ts +0 -0
- package/dist/src/gradient/index.d.ts.map +0 -0
- package/dist/src/gradient/parser/misc.d.ts +0 -0
- package/dist/src/gradient/parser/misc.d.ts.map +0 -0
- package/dist/src/gradient/parser/misc.min.mjs +0 -0
- package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
- package/dist/src/gradient/parser/misc.mjs +0 -0
- package/dist/src/gradient/parser/misc.mjs.map +0 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
- package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
- package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
- package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
- package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
- package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
- package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
- package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
- package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
- package/dist/src/gradient/parser/parseCoords.mjs +0 -0
- package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
- package/dist/src/gradient/typedefs.d.ts +0 -0
- package/dist/src/gradient/typedefs.d.ts.map +0 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
- package/dist/src/parkinglot/straighten.d.ts +0 -0
- package/dist/src/parkinglot/straighten.d.ts.map +0 -0
- package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
- package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
- package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
- package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
- package/dist/src/parser/applyViewboxTransform.mjs +0 -0
- package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
- package/dist/src/parser/attributes.d.ts +0 -0
- package/dist/src/parser/attributes.d.ts.map +0 -0
- package/dist/src/parser/attributes.min.mjs +0 -0
- package/dist/src/parser/attributes.min.mjs.map +0 -0
- package/dist/src/parser/attributes.mjs +0 -0
- package/dist/src/parser/attributes.mjs.map +0 -0
- package/dist/src/parser/constants.d.ts +0 -0
- package/dist/src/parser/constants.d.ts.map +0 -0
- package/dist/src/parser/constants.min.mjs +0 -0
- package/dist/src/parser/constants.min.mjs.map +0 -0
- package/dist/src/parser/constants.mjs +0 -0
- package/dist/src/parser/constants.mjs.map +0 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
- package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
- package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
- package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
- package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
- package/dist/src/parser/elementMatchesRule.d.ts +0 -0
- package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
- package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
- package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
- package/dist/src/parser/elementMatchesRule.mjs +0 -0
- package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
- package/dist/src/parser/elements_parser.d.ts +0 -0
- package/dist/src/parser/elements_parser.d.ts.map +0 -0
- package/dist/src/parser/elements_parser.min.mjs +0 -0
- package/dist/src/parser/elements_parser.min.mjs.map +0 -0
- package/dist/src/parser/elements_parser.mjs +0 -0
- package/dist/src/parser/elements_parser.mjs.map +0 -0
- package/dist/src/parser/getCSSRules.d.ts +0 -0
- package/dist/src/parser/getCSSRules.d.ts.map +0 -0
- package/dist/src/parser/getCSSRules.min.mjs +0 -0
- package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
- package/dist/src/parser/getCSSRules.mjs +0 -0
- package/dist/src/parser/getCSSRules.mjs.map +0 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
- package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
- package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
- package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
- package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
- package/dist/src/parser/getGradientDefs.d.ts +0 -0
- package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
- package/dist/src/parser/getGradientDefs.min.mjs +0 -0
- package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
- package/dist/src/parser/getGradientDefs.mjs +0 -0
- package/dist/src/parser/getGradientDefs.mjs.map +0 -0
- package/dist/src/parser/getMultipleNodes.d.ts +0 -0
- package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
- package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
- package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
- package/dist/src/parser/getMultipleNodes.mjs +0 -0
- package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
- package/dist/src/parser/getSvgRegex.d.ts +0 -0
- package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
- package/dist/src/parser/getSvgRegex.min.mjs +0 -0
- package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
- package/dist/src/parser/getSvgRegex.mjs +0 -0
- package/dist/src/parser/getSvgRegex.mjs.map +0 -0
- package/dist/src/parser/getTagName.d.ts +0 -0
- package/dist/src/parser/getTagName.d.ts.map +0 -0
- package/dist/src/parser/getTagName.min.mjs +0 -0
- package/dist/src/parser/getTagName.min.mjs.map +0 -0
- package/dist/src/parser/getTagName.mjs +0 -0
- package/dist/src/parser/getTagName.mjs.map +0 -0
- package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
- package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
- package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
- package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
- package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
- package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
- package/dist/src/parser/loadSVGFromString.d.ts +0 -0
- package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
- package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
- package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
- package/dist/src/parser/loadSVGFromString.mjs +0 -0
- package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
- package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
- package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
- package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
- package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
- package/dist/src/parser/loadSVGFromURL.mjs +0 -0
- package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
- package/dist/src/parser/normalizeAttr.d.ts +0 -0
- package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
- package/dist/src/parser/normalizeAttr.min.mjs +0 -0
- package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
- package/dist/src/parser/normalizeAttr.mjs +0 -0
- package/dist/src/parser/normalizeAttr.mjs.map +0 -0
- package/dist/src/parser/normalizeValue.d.ts +0 -0
- package/dist/src/parser/normalizeValue.d.ts.map +0 -0
- package/dist/src/parser/normalizeValue.min.mjs +0 -0
- package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
- package/dist/src/parser/normalizeValue.mjs +0 -0
- package/dist/src/parser/normalizeValue.mjs.map +0 -0
- package/dist/src/parser/parseAttributes.d.ts +0 -0
- package/dist/src/parser/parseAttributes.d.ts.map +0 -0
- package/dist/src/parser/parseAttributes.min.mjs +0 -0
- package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
- package/dist/src/parser/parseAttributes.mjs +0 -0
- package/dist/src/parser/parseAttributes.mjs.map +0 -0
- package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
- package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
- package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
- package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
- package/dist/src/parser/parseFontDeclaration.mjs +0 -0
- package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
- package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
- package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
- package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
- package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
- package/dist/src/parser/parsePointsAttribute.mjs +0 -0
- package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
- package/dist/src/parser/parseSVGDocument.d.ts +0 -0
- package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
- package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
- package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
- package/dist/src/parser/parseSVGDocument.mjs +0 -0
- package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
- package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
- package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
- package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
- package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
- package/dist/src/parser/parseStyleAttribute.mjs +0 -0
- package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
- package/dist/src/parser/parseStyleObject.d.ts +0 -0
- package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
- package/dist/src/parser/parseStyleObject.min.mjs +0 -0
- package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
- package/dist/src/parser/parseStyleObject.mjs +0 -0
- package/dist/src/parser/parseStyleObject.mjs.map +0 -0
- package/dist/src/parser/parseStyleString.d.ts +0 -0
- package/dist/src/parser/parseStyleString.d.ts.map +0 -0
- package/dist/src/parser/parseStyleString.min.mjs +0 -0
- package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
- package/dist/src/parser/parseStyleString.mjs +0 -0
- package/dist/src/parser/parseStyleString.mjs.map +0 -0
- package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
- package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
- package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
- package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
- package/dist/src/parser/parseTransformAttribute.mjs +0 -0
- package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
- package/dist/src/parser/parseUseDirectives.d.ts +0 -0
- package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
- package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
- package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
- package/dist/src/parser/parseUseDirectives.mjs +0 -0
- package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
- package/dist/src/parser/percent.d.ts +0 -0
- package/dist/src/parser/percent.d.ts.map +0 -0
- package/dist/src/parser/percent.min.mjs +0 -0
- package/dist/src/parser/percent.min.mjs.map +0 -0
- package/dist/src/parser/percent.mjs +0 -0
- package/dist/src/parser/percent.mjs.map +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
- package/dist/src/parser/selectorMatches.d.ts +0 -0
- package/dist/src/parser/selectorMatches.d.ts.map +0 -0
- package/dist/src/parser/selectorMatches.min.mjs +0 -0
- package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
- package/dist/src/parser/selectorMatches.mjs +0 -0
- package/dist/src/parser/selectorMatches.mjs.map +0 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
- package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
- package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
- package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
- package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
- package/dist/src/parser/typedefs.d.ts +0 -0
- package/dist/src/parser/typedefs.d.ts.map +0 -0
- package/dist/src/shapes/ActiveSelection.d.ts +0 -0
- package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
- package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
- package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
- package/dist/src/shapes/ActiveSelection.mjs +0 -0
- package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
- package/dist/src/shapes/Circle.d.ts +0 -0
- package/dist/src/shapes/Circle.d.ts.map +0 -0
- package/dist/src/shapes/Circle.min.mjs +0 -0
- package/dist/src/shapes/Circle.min.mjs.map +0 -0
- package/dist/src/shapes/Circle.mjs +0 -0
- package/dist/src/shapes/Circle.mjs.map +0 -0
- package/dist/src/shapes/Ellipse.d.ts +0 -0
- package/dist/src/shapes/Ellipse.d.ts.map +0 -0
- package/dist/src/shapes/Ellipse.min.mjs +0 -0
- package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
- package/dist/src/shapes/Ellipse.mjs +0 -0
- package/dist/src/shapes/Ellipse.mjs.map +0 -0
- package/dist/src/shapes/Group.d.ts +0 -0
- package/dist/src/shapes/Group.d.ts.map +0 -0
- package/dist/src/shapes/Group.min.mjs +0 -0
- package/dist/src/shapes/Group.min.mjs.map +0 -0
- package/dist/src/shapes/Group.mjs +0 -0
- package/dist/src/shapes/Group.mjs.map +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
- package/dist/src/shapes/IText/IText.d.ts +0 -0
- package/dist/src/shapes/IText/IText.d.ts.map +0 -0
- package/dist/src/shapes/IText/IText.min.mjs +0 -0
- package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
- package/dist/src/shapes/IText/IText.mjs +206 -206
- package/dist/src/shapes/IText/IText.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
- package/dist/src/shapes/IText/ITextBehavior.min.mjs +0 -0
- package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.mjs +152 -152
- package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
- package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +0 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.mjs +0 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +0 -0
- package/dist/src/shapes/IText/constants.d.ts +0 -0
- package/dist/src/shapes/IText/constants.d.ts.map +0 -0
- package/dist/src/shapes/IText/constants.min.mjs +0 -0
- package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
- package/dist/src/shapes/IText/constants.mjs +0 -0
- package/dist/src/shapes/IText/constants.mjs.map +0 -0
- package/dist/src/shapes/Image.d.ts +0 -0
- package/dist/src/shapes/Image.d.ts.map +0 -0
- package/dist/src/shapes/Image.min.mjs +0 -0
- package/dist/src/shapes/Image.min.mjs.map +0 -0
- package/dist/src/shapes/Image.mjs +0 -0
- package/dist/src/shapes/Image.mjs.map +0 -0
- package/dist/src/shapes/Line.d.ts +31 -86
- package/dist/src/shapes/Line.d.ts.map +1 -1
- package/dist/src/shapes/Line.min.mjs +1 -1
- package/dist/src/shapes/Line.min.mjs.map +1 -1
- package/dist/src/shapes/Line.mjs +323 -154
- package/dist/src/shapes/Line.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
- package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
- package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
- package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
- package/dist/src/shapes/Object/FabricObject.mjs +0 -0
- package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
- package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
- package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
- package/dist/src/shapes/Object/Object.d.ts +0 -0
- package/dist/src/shapes/Object/Object.d.ts.map +0 -0
- package/dist/src/shapes/Object/Object.min.mjs +0 -0
- package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
- package/dist/src/shapes/Object/Object.mjs +0 -0
- package/dist/src/shapes/Object/Object.mjs.map +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
- package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
- package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
- package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
- package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
- package/dist/src/shapes/Object/defaultValues.mjs +0 -0
- package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
- package/dist/src/shapes/Object/types/index.d.ts +0 -0
- package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
- package/dist/src/shapes/Path.d.ts +0 -0
- package/dist/src/shapes/Path.d.ts.map +0 -0
- package/dist/src/shapes/Path.min.mjs +0 -0
- package/dist/src/shapes/Path.min.mjs.map +0 -0
- package/dist/src/shapes/Path.mjs +0 -0
- package/dist/src/shapes/Path.mjs.map +0 -0
- package/dist/src/shapes/Polygon.d.ts +0 -0
- package/dist/src/shapes/Polygon.d.ts.map +0 -0
- package/dist/src/shapes/Polygon.min.mjs +0 -0
- package/dist/src/shapes/Polygon.min.mjs.map +0 -0
- package/dist/src/shapes/Polygon.mjs +0 -0
- package/dist/src/shapes/Polygon.mjs.map +0 -0
- package/dist/src/shapes/Polyline.d.ts +7 -0
- package/dist/src/shapes/Polyline.d.ts.map +1 -1
- package/dist/src/shapes/Polyline.min.mjs +1 -1
- package/dist/src/shapes/Polyline.min.mjs.map +1 -1
- package/dist/src/shapes/Polyline.mjs +48 -16
- package/dist/src/shapes/Polyline.mjs.map +1 -1
- package/dist/src/shapes/Rect.d.ts +0 -0
- package/dist/src/shapes/Rect.d.ts.map +0 -0
- package/dist/src/shapes/Rect.min.mjs +0 -0
- package/dist/src/shapes/Rect.min.mjs.map +0 -0
- package/dist/src/shapes/Rect.mjs +0 -0
- package/dist/src/shapes/Rect.mjs.map +0 -0
- package/dist/src/shapes/Text/StyledText.d.ts +0 -0
- package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
- package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
- package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
- package/dist/src/shapes/Text/StyledText.mjs +0 -0
- package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
- package/dist/src/shapes/Text/Text.d.ts +0 -0
- package/dist/src/shapes/Text/Text.d.ts.map +0 -0
- package/dist/src/shapes/Text/Text.min.mjs +0 -0
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.mjs +283 -283
- package/dist/src/shapes/Text/Text.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
- package/dist/src/shapes/Text/constants.d.ts +0 -0
- package/dist/src/shapes/Text/constants.d.ts.map +0 -0
- package/dist/src/shapes/Text/constants.min.mjs +0 -0
- package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
- package/dist/src/shapes/Text/constants.mjs +0 -0
- package/dist/src/shapes/Text/constants.mjs.map +1 -1
- package/dist/src/shapes/Textbox.d.ts +0 -0
- package/dist/src/shapes/Textbox.d.ts.map +0 -0
- package/dist/src/shapes/Textbox.min.mjs +0 -0
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs +147 -147
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/shapes/Triangle.d.ts +27 -2
- package/dist/src/shapes/Triangle.d.ts.map +1 -1
- package/dist/src/shapes/Triangle.min.mjs +1 -1
- package/dist/src/shapes/Triangle.min.mjs.map +1 -1
- package/dist/src/shapes/Triangle.mjs +72 -12
- package/dist/src/shapes/Triangle.mjs.map +1 -1
- package/dist/src/text/browserLines.d.ts +0 -0
- package/dist/src/text/browserLines.d.ts.map +0 -0
- package/dist/src/text/browserLines.min.mjs +0 -0
- package/dist/src/text/browserLines.min.mjs.map +1 -1
- package/dist/src/text/browserLines.mjs +20 -20
- package/dist/src/text/browserLines.mjs.map +1 -1
- package/dist/src/text/ellipsis.d.ts +0 -0
- package/dist/src/text/ellipsis.d.ts.map +0 -0
- package/dist/src/text/ellipsis.min.mjs +0 -0
- package/dist/src/text/ellipsis.min.mjs.map +1 -1
- package/dist/src/text/ellipsis.mjs +11 -11
- package/dist/src/text/ellipsis.mjs.map +1 -1
- package/dist/src/text/hitTest.d.ts +0 -0
- package/dist/src/text/hitTest.d.ts.map +0 -0
- package/dist/src/text/hitTest.min.mjs +0 -0
- package/dist/src/text/hitTest.min.mjs.map +1 -1
- package/dist/src/text/hitTest.mjs +19 -19
- package/dist/src/text/hitTest.mjs.map +1 -1
- package/dist/src/text/layout.d.ts +0 -0
- package/dist/src/text/layout.d.ts.map +0 -0
- package/dist/src/text/layout.min.mjs +0 -0
- package/dist/src/text/layout.min.mjs.map +1 -1
- package/dist/src/text/layout.mjs +33 -33
- package/dist/src/text/layout.mjs.map +1 -1
- package/dist/src/text/measure.d.ts +0 -0
- package/dist/src/text/measure.d.ts.map +0 -0
- package/dist/src/text/measure.min.mjs +0 -0
- package/dist/src/text/measure.min.mjs.map +1 -1
- package/dist/src/text/measure.mjs +20 -20
- package/dist/src/text/measure.mjs.map +1 -1
- package/dist/src/text/overlayEditor.d.ts +0 -0
- package/dist/src/text/overlayEditor.d.ts.map +0 -0
- package/dist/src/text/overlayEditor.min.mjs +0 -0
- package/dist/src/text/overlayEditor.min.mjs.map +1 -1
- package/dist/src/text/overlayEditor.mjs +33 -33
- package/dist/src/text/overlayEditor.mjs.map +1 -1
- package/dist/src/text/unicode.d.ts +0 -0
- package/dist/src/text/unicode.d.ts.map +0 -0
- package/dist/src/text/unicode.min.mjs +0 -0
- package/dist/src/text/unicode.min.mjs.map +1 -1
- package/dist/src/text/unicode.mjs +8 -8
- package/dist/src/text/unicode.mjs.map +1 -1
- package/dist/src/typedefs.d.ts +0 -0
- package/dist/src/typedefs.d.ts.map +0 -0
- package/dist/src/util/animation/AnimationBase.d.ts +0 -0
- package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
- package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
- package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
- package/dist/src/util/animation/AnimationBase.mjs +0 -0
- package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
- package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
- package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
- package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
- package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
- package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
- package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
- package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
- package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
- package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
- package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
- package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
- package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
- package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
- package/dist/src/util/animation/ColorAnimation.mjs +0 -0
- package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
- package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
- package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
- package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
- package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
- package/dist/src/util/animation/ValueAnimation.mjs +0 -0
- package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
- package/dist/src/util/animation/animate.d.ts +0 -0
- package/dist/src/util/animation/animate.d.ts.map +0 -0
- package/dist/src/util/animation/animate.min.mjs +0 -0
- package/dist/src/util/animation/animate.min.mjs.map +0 -0
- package/dist/src/util/animation/animate.mjs +0 -0
- package/dist/src/util/animation/animate.mjs.map +0 -0
- package/dist/src/util/animation/easing.d.ts +0 -0
- package/dist/src/util/animation/easing.d.ts.map +0 -0
- package/dist/src/util/animation/easing.min.mjs +0 -0
- package/dist/src/util/animation/easing.min.mjs.map +0 -0
- package/dist/src/util/animation/easing.mjs +0 -0
- package/dist/src/util/animation/easing.mjs.map +0 -0
- package/dist/src/util/animation/index.d.ts +0 -0
- package/dist/src/util/animation/index.d.ts.map +0 -0
- package/dist/src/util/animation/types.d.ts +0 -0
- package/dist/src/util/animation/types.d.ts.map +0 -0
- package/dist/src/util/applyMixins.d.ts +0 -0
- package/dist/src/util/applyMixins.d.ts.map +0 -0
- package/dist/src/util/applyMixins.min.mjs +0 -0
- package/dist/src/util/applyMixins.min.mjs.map +0 -0
- package/dist/src/util/applyMixins.mjs +0 -0
- package/dist/src/util/applyMixins.mjs.map +0 -0
- package/dist/src/util/dom_event.d.ts +0 -0
- package/dist/src/util/dom_event.d.ts.map +0 -0
- package/dist/src/util/dom_event.min.mjs +0 -0
- package/dist/src/util/dom_event.min.mjs.map +0 -0
- package/dist/src/util/dom_event.mjs +0 -0
- package/dist/src/util/dom_event.mjs.map +0 -0
- package/dist/src/util/dom_misc.d.ts +0 -0
- package/dist/src/util/dom_misc.d.ts.map +0 -0
- package/dist/src/util/dom_misc.min.mjs +0 -0
- package/dist/src/util/dom_misc.min.mjs.map +0 -0
- package/dist/src/util/dom_misc.mjs +0 -0
- package/dist/src/util/dom_misc.mjs.map +0 -0
- package/dist/src/util/index.d.ts +0 -0
- package/dist/src/util/index.d.ts.map +0 -0
- package/dist/src/util/index.min.mjs +0 -0
- package/dist/src/util/index.min.mjs.map +0 -0
- package/dist/src/util/index.mjs +0 -0
- package/dist/src/util/index.mjs.map +0 -0
- package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
- package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
- package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
- package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
- package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
- package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
- package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
- package/dist/src/util/internals/cloneStyles.d.ts +0 -0
- package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
- package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
- package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
- package/dist/src/util/internals/cloneStyles.mjs +0 -0
- package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
- package/dist/src/util/internals/console.d.ts +0 -0
- package/dist/src/util/internals/console.d.ts.map +0 -0
- package/dist/src/util/internals/console.min.mjs +0 -0
- package/dist/src/util/internals/console.min.mjs.map +0 -0
- package/dist/src/util/internals/console.mjs +0 -0
- package/dist/src/util/internals/console.mjs.map +0 -0
- package/dist/src/util/internals/dom_style.d.ts +0 -0
- package/dist/src/util/internals/dom_style.d.ts.map +0 -0
- package/dist/src/util/internals/dom_style.min.mjs +0 -0
- package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
- package/dist/src/util/internals/dom_style.mjs +0 -0
- package/dist/src/util/internals/dom_style.mjs.map +0 -0
- package/dist/src/util/internals/findRight.d.ts +0 -0
- package/dist/src/util/internals/findRight.d.ts.map +0 -0
- package/dist/src/util/internals/findRight.min.mjs +0 -0
- package/dist/src/util/internals/findRight.min.mjs.map +0 -0
- package/dist/src/util/internals/findRight.mjs +0 -0
- package/dist/src/util/internals/findRight.mjs.map +0 -0
- package/dist/src/util/internals/getRandomInt.d.ts +0 -0
- package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
- package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
- package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
- package/dist/src/util/internals/getRandomInt.mjs +0 -0
- package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
- package/dist/src/util/internals/ifNaN.d.ts +0 -0
- package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
- package/dist/src/util/internals/ifNaN.min.mjs +0 -0
- package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
- package/dist/src/util/internals/ifNaN.mjs +0 -0
- package/dist/src/util/internals/ifNaN.mjs.map +0 -0
- package/dist/src/util/internals/removeFromArray.d.ts +0 -0
- package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
- package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
- package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
- package/dist/src/util/internals/removeFromArray.mjs +0 -0
- package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
- package/dist/src/util/internals/uid.d.ts +0 -0
- package/dist/src/util/internals/uid.d.ts.map +0 -0
- package/dist/src/util/internals/uid.min.mjs +0 -0
- package/dist/src/util/internals/uid.min.mjs.map +0 -0
- package/dist/src/util/internals/uid.mjs +0 -0
- package/dist/src/util/internals/uid.mjs.map +0 -0
- package/dist/src/util/lang_string.d.ts +0 -0
- package/dist/src/util/lang_string.d.ts.map +0 -0
- package/dist/src/util/lang_string.min.mjs +0 -0
- package/dist/src/util/lang_string.min.mjs.map +0 -0
- package/dist/src/util/lang_string.mjs +0 -0
- package/dist/src/util/lang_string.mjs.map +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
- package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
- package/dist/src/util/misc/capValue.d.ts +0 -0
- package/dist/src/util/misc/capValue.d.ts.map +0 -0
- package/dist/src/util/misc/capValue.min.mjs +0 -0
- package/dist/src/util/misc/capValue.min.mjs.map +0 -0
- package/dist/src/util/misc/capValue.mjs +0 -0
- package/dist/src/util/misc/capValue.mjs.map +0 -0
- package/dist/src/util/misc/cornerRadius.d.ts +70 -0
- package/dist/src/util/misc/cornerRadius.d.ts.map +1 -0
- package/dist/src/util/misc/cornerRadius.min.mjs +2 -0
- package/dist/src/util/misc/cornerRadius.min.mjs.map +1 -0
- package/dist/src/util/misc/cornerRadius.mjs +181 -0
- package/dist/src/util/misc/cornerRadius.mjs.map +1 -0
- package/dist/src/util/misc/cos.d.ts +0 -0
- package/dist/src/util/misc/cos.d.ts.map +0 -0
- package/dist/src/util/misc/cos.min.mjs +0 -0
- package/dist/src/util/misc/cos.min.mjs.map +0 -0
- package/dist/src/util/misc/cos.mjs +0 -0
- package/dist/src/util/misc/cos.mjs.map +0 -0
- package/dist/src/util/misc/dom.d.ts +0 -0
- package/dist/src/util/misc/dom.d.ts.map +0 -0
- package/dist/src/util/misc/dom.min.mjs +0 -0
- package/dist/src/util/misc/dom.min.mjs.map +0 -0
- package/dist/src/util/misc/dom.mjs +0 -0
- package/dist/src/util/misc/dom.mjs.map +0 -0
- package/dist/src/util/misc/findScaleTo.d.ts +0 -0
- package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
- package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
- package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
- package/dist/src/util/misc/findScaleTo.mjs +0 -0
- package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
- package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
- package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
- package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
- package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
- package/dist/src/util/misc/groupSVGElements.mjs +0 -0
- package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
- package/dist/src/util/misc/isTransparent.d.ts +0 -0
- package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
- package/dist/src/util/misc/isTransparent.min.mjs +0 -0
- package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
- package/dist/src/util/misc/isTransparent.mjs +0 -0
- package/dist/src/util/misc/isTransparent.mjs.map +0 -0
- package/dist/src/util/misc/matrix.d.ts +0 -0
- package/dist/src/util/misc/matrix.d.ts.map +0 -0
- package/dist/src/util/misc/matrix.min.mjs +0 -0
- package/dist/src/util/misc/matrix.min.mjs.map +0 -0
- package/dist/src/util/misc/matrix.mjs +0 -0
- package/dist/src/util/misc/matrix.mjs.map +0 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
- package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
- package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
- package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
- package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
- package/dist/src/util/misc/objectEnlive.d.ts +0 -0
- package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
- package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
- package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
- package/dist/src/util/misc/objectEnlive.mjs +0 -0
- package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
- package/dist/src/util/misc/objectTransforms.d.ts +0 -0
- package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
- package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
- package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
- package/dist/src/util/misc/objectTransforms.mjs +0 -0
- package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
- package/dist/src/util/misc/pick.d.ts +0 -0
- package/dist/src/util/misc/pick.d.ts.map +0 -0
- package/dist/src/util/misc/pick.min.mjs +0 -0
- package/dist/src/util/misc/pick.min.mjs.map +0 -0
- package/dist/src/util/misc/pick.mjs +0 -0
- package/dist/src/util/misc/pick.mjs.map +0 -0
- package/dist/src/util/misc/planeChange.d.ts +0 -0
- package/dist/src/util/misc/planeChange.d.ts.map +0 -0
- package/dist/src/util/misc/planeChange.min.mjs +0 -0
- package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
- package/dist/src/util/misc/planeChange.mjs +0 -0
- package/dist/src/util/misc/planeChange.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
- package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
- package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
- package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/index.mjs +0 -0
- package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
- package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
- package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
- package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
- package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
- package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
- package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
- package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
- package/dist/src/util/misc/resolveOrigin.mjs +0 -0
- package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
- package/dist/src/util/misc/sin.d.ts +0 -0
- package/dist/src/util/misc/sin.d.ts.map +0 -0
- package/dist/src/util/misc/sin.min.mjs +0 -0
- package/dist/src/util/misc/sin.min.mjs.map +0 -0
- package/dist/src/util/misc/sin.mjs +0 -0
- package/dist/src/util/misc/sin.mjs.map +0 -0
- package/dist/src/util/misc/svgExport.d.ts +0 -0
- package/dist/src/util/misc/svgExport.d.ts.map +0 -0
- package/dist/src/util/misc/svgExport.min.mjs +0 -0
- package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
- package/dist/src/util/misc/svgExport.mjs +0 -0
- package/dist/src/util/misc/svgExport.mjs.map +0 -0
- package/dist/src/util/misc/svgParsing.d.ts +0 -0
- package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
- package/dist/src/util/misc/svgParsing.min.mjs +0 -0
- package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
- package/dist/src/util/misc/svgParsing.mjs +0 -0
- package/dist/src/util/misc/svgParsing.mjs.map +0 -0
- package/dist/src/util/misc/textStyles.d.ts +0 -0
- package/dist/src/util/misc/textStyles.d.ts.map +0 -0
- package/dist/src/util/misc/textStyles.min.mjs +0 -0
- package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
- package/dist/src/util/misc/textStyles.mjs +0 -0
- package/dist/src/util/misc/textStyles.mjs.map +0 -0
- package/dist/src/util/misc/toFixed.d.ts +0 -0
- package/dist/src/util/misc/toFixed.d.ts.map +0 -0
- package/dist/src/util/misc/toFixed.min.mjs +0 -0
- package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
- package/dist/src/util/misc/toFixed.mjs +0 -0
- package/dist/src/util/misc/toFixed.mjs.map +0 -0
- package/dist/src/util/misc/vectors.d.ts +0 -0
- package/dist/src/util/misc/vectors.d.ts.map +0 -0
- package/dist/src/util/misc/vectors.min.mjs +0 -0
- package/dist/src/util/misc/vectors.min.mjs.map +0 -0
- package/dist/src/util/misc/vectors.mjs +0 -0
- package/dist/src/util/misc/vectors.mjs.map +0 -0
- package/dist/src/util/path/index.d.ts +0 -0
- package/dist/src/util/path/index.d.ts.map +0 -0
- package/dist/src/util/path/index.min.mjs +0 -0
- package/dist/src/util/path/index.min.mjs.map +0 -0
- package/dist/src/util/path/index.mjs +0 -0
- package/dist/src/util/path/index.mjs.map +0 -0
- package/dist/src/util/path/regex.d.ts +0 -0
- package/dist/src/util/path/regex.d.ts.map +0 -0
- package/dist/src/util/path/regex.min.mjs +0 -0
- package/dist/src/util/path/regex.min.mjs.map +0 -0
- package/dist/src/util/path/regex.mjs +0 -0
- package/dist/src/util/path/regex.mjs.map +0 -0
- package/dist/src/util/path/typechecks.d.ts +0 -0
- package/dist/src/util/path/typechecks.d.ts.map +0 -0
- package/dist/src/util/path/typedefs.d.ts +0 -0
- package/dist/src/util/path/typedefs.d.ts.map +0 -0
- package/dist/src/util/transform_matrix_removal.d.ts +0 -0
- package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
- package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
- package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
- package/dist/src/util/transform_matrix_removal.mjs +0 -0
- package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
- package/dist/src/util/typeAssertions.d.ts +0 -0
- package/dist/src/util/typeAssertions.d.ts.map +0 -0
- package/dist/src/util/typeAssertions.min.mjs +0 -0
- package/dist/src/util/typeAssertions.min.mjs.map +0 -0
- package/dist/src/util/typeAssertions.mjs +0 -0
- package/dist/src/util/typeAssertions.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
- package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/index.mjs +0 -0
- package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
- package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
- package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
- package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
- package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
- package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
- package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
- package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
- package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
- package/dist-extensions/data_updaters/origins/index.mjs +0 -0
- package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
- package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
- package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
- package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
- package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
- package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
- package/dist-extensions/extensions/index.d.ts +0 -0
- package/dist-extensions/extensions/index.d.ts.map +0 -0
- package/dist-extensions/fabric-extensions.min.js +0 -0
- package/dist-extensions/fabric-extensions.min.js.map +0 -0
- package/dist-extensions/fabric.d.ts +0 -0
- package/dist-extensions/fabric.d.ts.map +0 -0
- package/dist-extensions/index.d.ts +0 -0
- package/dist-extensions/index.d.ts.map +0 -0
- package/dist-extensions/index.mjs +0 -0
- package/dist-extensions/index.mjs.map +0 -0
- package/dist-extensions/src/ClassRegistry.d.ts +0 -0
- package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
- package/dist-extensions/src/Collection.d.ts +0 -0
- package/dist-extensions/src/Collection.d.ts.map +0 -0
- package/dist-extensions/src/CommonMethods.d.ts +0 -0
- package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
- package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
- package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
- package/dist-extensions/src/Intersection.d.ts +0 -0
- package/dist-extensions/src/Intersection.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
- package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
- package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
- package/dist-extensions/src/Observable.d.ts +0 -0
- package/dist-extensions/src/Observable.d.ts.map +0 -0
- package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
- package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
- package/dist-extensions/src/Pattern/index.d.ts +0 -0
- package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
- package/dist-extensions/src/Pattern/types.d.ts +0 -0
- package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
- package/dist-extensions/src/Point.d.ts +0 -0
- package/dist-extensions/src/Point.d.ts.map +0 -0
- package/dist-extensions/src/Shadow.d.ts +0 -0
- package/dist-extensions/src/Shadow.d.ts.map +0 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
- package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
- package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
- package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
- package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
- package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
- package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
- package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
- package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
- package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
- package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
- package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/cache.d.ts +0 -0
- package/dist-extensions/src/cache.d.ts.map +0 -0
- package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
- package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
- package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
- package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
- package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
- package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
- package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
- package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
- package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
- package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
- package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
- package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
- package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
- package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
- package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
- package/dist-extensions/src/color/Color.d.ts +0 -0
- package/dist-extensions/src/color/Color.d.ts.map +0 -0
- package/dist-extensions/src/color/color_map.d.ts +0 -0
- package/dist-extensions/src/color/color_map.d.ts.map +0 -0
- package/dist-extensions/src/color/constants.d.ts +0 -0
- package/dist-extensions/src/color/constants.d.ts.map +0 -0
- package/dist-extensions/src/color/typedefs.d.ts +0 -0
- package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/color/util.d.ts +0 -0
- package/dist-extensions/src/color/util.d.ts.map +0 -0
- package/dist-extensions/src/config.d.ts +0 -0
- package/dist-extensions/src/config.d.ts.map +0 -0
- package/dist-extensions/src/constants.d.ts +0 -0
- package/dist-extensions/src/constants.d.ts.map +0 -0
- package/dist-extensions/src/controls/Control.d.ts +0 -0
- package/dist-extensions/src/controls/Control.d.ts.map +0 -0
- package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
- package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
- package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
- package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
- package/dist-extensions/src/controls/commonControls.d.ts +0 -0
- package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
- package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
- package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
- package/dist-extensions/src/controls/drag.d.ts +0 -0
- package/dist-extensions/src/controls/drag.d.ts.map +0 -0
- package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
- package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
- package/dist-extensions/src/controls/index.d.ts +0 -0
- package/dist-extensions/src/controls/index.d.ts.map +0 -0
- package/dist-extensions/src/controls/pathControl.d.ts +0 -0
- package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
- package/dist-extensions/src/controls/polyControl.d.ts +0 -0
- package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
- package/dist-extensions/src/controls/rotate.d.ts +0 -0
- package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
- package/dist-extensions/src/controls/scale.d.ts +0 -0
- package/dist-extensions/src/controls/scale.d.ts.map +0 -0
- package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
- package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
- package/dist-extensions/src/controls/skew.d.ts +0 -0
- package/dist-extensions/src/controls/skew.d.ts.map +0 -0
- package/dist-extensions/src/controls/util.d.ts +0 -0
- package/dist-extensions/src/controls/util.d.ts.map +0 -0
- package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
- package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
- package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
- package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
- package/dist-extensions/src/env/browser.d.ts +0 -0
- package/dist-extensions/src/env/browser.d.ts.map +0 -0
- package/dist-extensions/src/env/index.d.ts +0 -0
- package/dist-extensions/src/env/index.d.ts.map +0 -0
- package/dist-extensions/src/env/types.d.ts +0 -0
- package/dist-extensions/src/env/types.d.ts.map +0 -0
- package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
- package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
- package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
- package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
- package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
- package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
- package/dist-extensions/src/filters/Blur.d.ts +0 -0
- package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
- package/dist-extensions/src/filters/Brightness.d.ts +0 -0
- package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
- package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
- package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
- package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
- package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
- package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
- package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
- package/dist-extensions/src/filters/Composed.d.ts +0 -0
- package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
- package/dist-extensions/src/filters/Contrast.d.ts +0 -0
- package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
- package/dist-extensions/src/filters/Convolute.d.ts +0 -0
- package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
- package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
- package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
- package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
- package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
- package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
- package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
- package/dist-extensions/src/filters/Gamma.d.ts +0 -0
- package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
- package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
- package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
- package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
- package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
- package/dist-extensions/src/filters/Invert.d.ts +0 -0
- package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
- package/dist-extensions/src/filters/Noise.d.ts +0 -0
- package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
- package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
- package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
- package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
- package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
- package/dist-extensions/src/filters/Resize.d.ts +0 -0
- package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
- package/dist-extensions/src/filters/Saturation.d.ts +0 -0
- package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
- package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
- package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
- package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
- package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
- package/dist-extensions/src/filters/filters.d.ts +0 -0
- package/dist-extensions/src/filters/filters.d.ts.map +0 -0
- package/dist-extensions/src/filters/index.d.ts +0 -0
- package/dist-extensions/src/filters/index.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
- package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
- package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
- package/dist-extensions/src/filters/typedefs.d.ts +0 -0
- package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/filters/utils.d.ts +0 -0
- package/dist-extensions/src/filters/utils.d.ts.map +0 -0
- package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
- package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
- package/dist-extensions/src/gradient/constants.d.ts +0 -0
- package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
- package/dist-extensions/src/gradient/index.d.ts +0 -0
- package/dist-extensions/src/gradient/index.d.ts.map +0 -0
- package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
- package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
- package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
- package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
- package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
- package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
- package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
- package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
- package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
- package/dist-extensions/src/parser/attributes.d.ts +0 -0
- package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
- package/dist-extensions/src/parser/constants.d.ts +0 -0
- package/dist-extensions/src/parser/constants.d.ts.map +0 -0
- package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
- package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
- package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
- package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
- package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
- package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
- package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
- package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
- package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
- package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
- package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
- package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
- package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
- package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
- package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
- package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
- package/dist-extensions/src/parser/getTagName.d.ts +0 -0
- package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
- package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
- package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
- package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
- package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
- package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
- package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
- package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
- package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
- package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
- package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
- package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
- package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
- package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
- package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
- package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
- package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
- package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
- package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
- package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
- package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
- package/dist-extensions/src/parser/percent.d.ts +0 -0
- package/dist-extensions/src/parser/percent.d.ts.map +0 -0
- package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
- package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
- package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
- package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
- package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
- package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
- package/dist-extensions/src/parser/typedefs.d.ts +0 -0
- package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
- package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Circle.d.ts +0 -0
- package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
- package/dist-extensions/src/shapes/CustomLine.d.ts +10 -0
- package/dist-extensions/src/shapes/CustomLine.d.ts.map +1 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
- package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Group.d.ts +0 -0
- package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
- package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
- package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Image.d.ts +0 -0
- package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Line.d.ts +31 -86
- package/dist-extensions/src/shapes/Line.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
- package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Path.d.ts +0 -0
- package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
- package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Polyline.d.ts +7 -0
- package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Rect.d.ts +0 -0
- package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
- package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts +0 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts +0 -0
- package/dist-extensions/src/shapes/Text/constants.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Textbox.d.ts +0 -0
- package/dist-extensions/src/shapes/Textbox.d.ts.map +0 -0
- package/dist-extensions/src/shapes/Triangle.d.ts +27 -2
- package/dist-extensions/src/shapes/Triangle.d.ts.map +1 -1
- package/dist-extensions/src/text/browserLines.d.ts +0 -0
- package/dist-extensions/src/text/browserLines.d.ts.map +0 -0
- package/dist-extensions/src/text/ellipsis.d.ts +0 -0
- package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
- package/dist-extensions/src/text/hitTest.d.ts +0 -0
- package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
- package/dist-extensions/src/text/layout.d.ts +0 -0
- package/dist-extensions/src/text/layout.d.ts.map +0 -0
- package/dist-extensions/src/text/measure.d.ts +0 -0
- package/dist-extensions/src/text/measure.d.ts.map +0 -0
- package/dist-extensions/src/text/overlayEditor.d.ts +0 -0
- package/dist-extensions/src/text/overlayEditor.d.ts.map +0 -0
- package/dist-extensions/src/text/unicode.d.ts +0 -0
- package/dist-extensions/src/text/unicode.d.ts.map +0 -0
- package/dist-extensions/src/typedefs.d.ts +0 -0
- package/dist-extensions/src/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
- package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
- package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
- package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
- package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
- package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
- package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/animate.d.ts +0 -0
- package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/easing.d.ts +0 -0
- package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/index.d.ts +0 -0
- package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
- package/dist-extensions/src/util/animation/types.d.ts +0 -0
- package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
- package/dist-extensions/src/util/applyMixins.d.ts +0 -0
- package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
- package/dist-extensions/src/util/dom_event.d.ts +0 -0
- package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
- package/dist-extensions/src/util/dom_misc.d.ts +0 -0
- package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
- package/dist-extensions/src/util/index.d.ts +0 -0
- package/dist-extensions/src/util/index.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
- package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
- package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
- package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/console.d.ts +0 -0
- package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
- package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
- package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
- package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
- package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
- package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
- package/dist-extensions/src/util/internals/uid.d.ts +0 -0
- package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
- package/dist-extensions/src/util/lang_string.d.ts +0 -0
- package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
- package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
- package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/cornerRadius.d.ts +70 -0
- package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/cos.d.ts +0 -0
- package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/dom.d.ts +0 -0
- package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
- package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
- package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
- package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
- package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
- package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
- package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
- package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/pick.d.ts +0 -0
- package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
- package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
- package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
- package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
- package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
- package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
- package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/sin.d.ts +0 -0
- package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
- package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
- package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
- package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
- package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
- package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
- package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
- package/dist-extensions/src/util/path/index.d.ts +0 -0
- package/dist-extensions/src/util/path/index.d.ts.map +0 -0
- package/dist-extensions/src/util/path/regex.d.ts +0 -0
- package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
- package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
- package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
- package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
- package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
- package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
- package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -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 +0 -0
- package/examples/overlay-edit.html +416 -416
- package/extensions/README.MD +0 -0
- package/extensions/aligning_guidelines/README.MD +0 -0
- package/extensions/aligning_guidelines/constant.ts +0 -0
- package/extensions/aligning_guidelines/index.ts +0 -0
- package/extensions/aligning_guidelines/typedefs.ts +0 -0
- package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
- package/extensions/aligning_guidelines/util/basic.ts +0 -0
- package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
- package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
- package/extensions/aligning_guidelines/util/draw.ts +0 -0
- package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
- package/extensions/data_updaters/README.md +0 -0
- package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
- package/extensions/data_updaters/gradient/index.spec.ts +0 -0
- package/extensions/data_updaters/gradient/index.ts +0 -0
- package/extensions/data_updaters/origins/README.md +0 -0
- package/extensions/data_updaters/origins/index.spec.ts +0 -0
- package/extensions/data_updaters/origins/index.ts +0 -0
- package/extensions/index.ts +0 -0
- package/fabric-test-editor.html +1111 -505
- package/fabric-test2.html +513 -0
- package/fabric.ts +182 -182
- package/index.node.ts +0 -0
- package/index.ts +0 -0
- package/lib/aligning_guidelines.js +0 -0
- package/lib/centering_guidelines.js +0 -0
- package/lib/event.js +0 -0
- package/package.json +164 -164
- package/playwright.config.ts +0 -0
- package/playwright.setup.ts +0 -0
- package/publish-next.js +0 -0
- package/publish.js +0 -0
- package/rollup.config.mjs +0 -0
- package/scripts/bench-text.js +591 -591
- package/scripts/build.mjs +0 -0
- package/scripts/buildLock.mjs +0 -0
- package/scripts/buildReporter.mjs +0 -0
- package/scripts/buildStats.mjs +0 -0
- package/scripts/dirname.mjs +0 -0
- package/scripts/git.mjs +0 -0
- package/scripts/index.mjs +0 -0
- package/scripts/sandbox.mjs +0 -0
- package/src/ClassRegistry.spec.ts +0 -0
- package/src/ClassRegistry.ts +0 -0
- package/src/Collection.spec.ts +0 -0
- package/src/Collection.ts +0 -0
- package/src/CommonMethods.ts +0 -0
- package/src/EventTypeDefs.ts +0 -0
- package/src/Intersection.spec.ts +0 -0
- package/src/Intersection.ts +0 -0
- package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
- package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
- package/src/LayoutManager/LayoutManager.spec.ts +0 -0
- package/src/LayoutManager/LayoutManager.ts +0 -0
- package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
- package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
- package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
- package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
- package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
- package/src/LayoutManager/README.md +0 -0
- package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
- package/src/LayoutManager/constants.ts +0 -0
- package/src/LayoutManager/index.ts +0 -0
- package/src/LayoutManager/types.ts +0 -0
- package/src/Observable.spec.ts +0 -0
- package/src/Observable.ts +0 -0
- package/src/Pattern/Pattern.spec.ts +0 -0
- package/src/Pattern/Pattern.ts +0 -0
- package/src/Pattern/index.ts +0 -0
- package/src/Pattern/types.ts +0 -0
- package/src/Point.spec.ts +0 -0
- package/src/Point.ts +0 -0
- package/src/Shadow.spec.ts +0 -0
- package/src/Shadow.ts +0 -0
- package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
- package/src/brushes/BaseBrush.spec.ts +0 -0
- package/src/brushes/BaseBrush.ts +0 -0
- package/src/brushes/CircleBrush.test.ts +0 -0
- package/src/brushes/CircleBrush.ts +0 -0
- package/src/brushes/PatternBrush.ts +0 -0
- package/src/brushes/PencilBrush.spec.ts +0 -0
- package/src/brushes/PencilBrush.ts +0 -0
- package/src/brushes/SprayBrush.ts +0 -0
- package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
- package/src/brushes/typedefs.ts +0 -0
- package/src/cache.spec.ts +0 -0
- package/src/cache.ts +0 -0
- package/src/canvas/Canvas-dispose.spec.ts +0 -0
- package/src/canvas/Canvas-events.spec.ts +0 -0
- package/src/canvas/Canvas.spec.ts +0 -0
- package/src/canvas/Canvas.ts +0 -0
- package/src/canvas/CanvasOptions.ts +0 -0
- package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
- package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
- package/src/canvas/DOMManagers/util.spec.ts +0 -0
- package/src/canvas/DOMManagers/util.ts +0 -0
- package/src/canvas/SelectableCanvas.spec.ts +0 -0
- package/src/canvas/SelectableCanvas.ts +0 -0
- package/src/canvas/StaticCanvas.spec.ts +0 -0
- package/src/canvas/StaticCanvas.ts +0 -0
- package/src/canvas/StaticCanvasOptions.ts +0 -0
- package/src/canvas/TextEditingManager.ts +0 -0
- package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
- package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
- package/src/canvas/__tests__/eventData.test.ts +0 -0
- package/src/canvas/canvas_gestures.mixin.ts +0 -0
- package/src/color/Color.ts +0 -0
- package/src/color/color.test.ts +0 -0
- package/src/color/color_map.ts +0 -0
- package/src/color/constants.ts +0 -0
- package/src/color/typedefs.ts +0 -0
- package/src/color/util.ts +0 -0
- package/src/config.ts +0 -0
- package/src/constants.ts +0 -0
- package/src/controls/Control-cursor.spec.ts +0 -0
- package/src/controls/Control-handlers.spec.ts +0 -0
- package/src/controls/Control.spec.ts +0 -0
- package/src/controls/Control.ts +0 -0
- package/src/controls/changeHeight.ts +0 -0
- package/src/controls/changeWidth.test.ts +0 -0
- package/src/controls/changeWidth.ts +0 -0
- package/src/controls/commonControls.ts +0 -0
- package/src/controls/controlRendering.ts +0 -0
- package/src/controls/drag.ts +0 -0
- package/src/controls/fireEvent.ts +0 -0
- package/src/controls/index.ts +0 -0
- package/src/controls/pathControl.spec.ts +0 -0
- package/src/controls/pathControl.ts +0 -0
- package/src/controls/polyControl.spec.ts +0 -0
- package/src/controls/polyControl.ts +0 -0
- package/src/controls/rotate.ts +0 -0
- package/src/controls/scale.test.ts +0 -0
- package/src/controls/scale.ts +0 -0
- package/src/controls/scaleSkew.ts +0 -0
- package/src/controls/skew.ts +0 -0
- package/src/controls/util.ts +0 -0
- package/src/controls/wrapWithFireEvent.ts +0 -0
- package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
- package/src/controls/wrapWithFixedAnchor.ts +0 -0
- package/src/env/browser.ts +0 -0
- package/src/env/env.spec.ts +0 -0
- package/src/env/index.ts +0 -0
- package/src/env/node.ts +0 -0
- package/src/env/types.ts +0 -0
- package/src/filters/BaseFilter.spec.ts +0 -0
- package/src/filters/BaseFilter.ts +0 -0
- package/src/filters/BlendColor.ts +0 -0
- package/src/filters/BlendImage.ts +0 -0
- package/src/filters/Blur.ts +0 -0
- package/src/filters/Boilerplate.ts +0 -0
- package/src/filters/Brightness.ts +0 -0
- package/src/filters/Canvas2dFilterBackend.ts +0 -0
- package/src/filters/ColorMatrix.spec.ts +0 -0
- package/src/filters/ColorMatrix.ts +0 -0
- package/src/filters/ColorMatrixFilters.ts +0 -0
- package/src/filters/Composed.ts +0 -0
- package/src/filters/Contrast.ts +0 -0
- package/src/filters/Convolute.ts +0 -0
- package/src/filters/FilterBackend.ts +0 -0
- package/src/filters/GLProbes/GLProbe.ts +0 -0
- package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
- package/src/filters/GLProbes/WebGLProbe.ts +0 -0
- package/src/filters/Gamma.ts +0 -0
- package/src/filters/Grayscale.ts +0 -0
- package/src/filters/HueRotation.ts +0 -0
- package/src/filters/Invert.ts +0 -0
- package/src/filters/Noise.ts +0 -0
- package/src/filters/Pixelate.ts +0 -0
- package/src/filters/RemoveColor.ts +0 -0
- package/src/filters/Resize.ts +0 -0
- package/src/filters/Saturation.ts +0 -0
- package/src/filters/Vibrance.ts +0 -0
- package/src/filters/WebGLFilterBackend.spec.ts +0 -0
- package/src/filters/WebGLFilterBackend.ts +0 -0
- package/src/filters/filters.ts +0 -0
- package/src/filters/index.ts +0 -0
- package/src/filters/shaders/baseFilter.ts +0 -0
- package/src/filters/shaders/blendColor.ts +0 -0
- package/src/filters/shaders/blendImage.ts +0 -0
- package/src/filters/shaders/blur.ts +0 -0
- package/src/filters/shaders/brightness.ts +0 -0
- package/src/filters/shaders/colorMatrix.ts +0 -0
- package/src/filters/shaders/constrast.ts +0 -0
- package/src/filters/shaders/convolute.ts +0 -0
- package/src/filters/shaders/gamma.ts +0 -0
- package/src/filters/shaders/grayscale.ts +0 -0
- package/src/filters/shaders/invert.ts +0 -0
- package/src/filters/shaders/noise.ts +0 -0
- package/src/filters/shaders/pixelate.ts +0 -0
- package/src/filters/shaders/removeColor.ts +0 -0
- package/src/filters/shaders/saturation.ts +0 -0
- package/src/filters/shaders/vibrance.ts +0 -0
- package/src/filters/typedefs.ts +0 -0
- package/src/filters/utils.ts +0 -0
- package/src/gradient/Gradient.spec.ts +0 -0
- package/src/gradient/Gradient.ts +0 -0
- package/src/gradient/constants.ts +0 -0
- package/src/gradient/index.ts +0 -0
- package/src/gradient/parser/misc.ts +0 -0
- package/src/gradient/parser/parseColorStops.ts +0 -0
- package/src/gradient/parser/parseCoords.ts +0 -0
- package/src/gradient/typedefs.ts +0 -0
- package/src/mixins/eraser_brush.mixin.ts +0 -0
- package/src/parkinglot/canvas_animation.mixin.ts +0 -0
- package/src/parkinglot/straighten.ts +0 -0
- package/src/parser/applyViewboxTransform.spec.ts +0 -0
- package/src/parser/applyViewboxTransform.ts +0 -0
- package/src/parser/attributes.ts +0 -0
- package/src/parser/constants.spec.ts +0 -0
- package/src/parser/constants.ts +0 -0
- package/src/parser/doesSomeParentMatch.ts +0 -0
- package/src/parser/elementMatchesRule.ts +0 -0
- package/src/parser/elements_parser.ts +0 -0
- package/src/parser/getCSSRules.spec.ts +0 -0
- package/src/parser/getCSSRules.ts +0 -0
- package/src/parser/getGlobalStylesForElement.ts +0 -0
- package/src/parser/getGradientDefs.ts +0 -0
- package/src/parser/getMultipleNodes.ts +0 -0
- package/src/parser/getSvgRegex.ts +0 -0
- package/src/parser/getTagName.ts +0 -0
- package/src/parser/hasInvalidAncestor.ts +0 -0
- package/src/parser/loadSVGFromString.test.ts +0 -0
- package/src/parser/loadSVGFromString.ts +0 -0
- package/src/parser/loadSVGFromURL.ts +0 -0
- package/src/parser/normalizeAttr.ts +0 -0
- package/src/parser/normalizeValue.ts +0 -0
- package/src/parser/parseAttributes.ts +0 -0
- package/src/parser/parseFontDeclaration.ts +0 -0
- package/src/parser/parsePointsAttribute.ts +0 -0
- package/src/parser/parseSVGDocument.ts +0 -0
- package/src/parser/parseStyleAttribute.ts +0 -0
- package/src/parser/parseStyleObject.ts +0 -0
- package/src/parser/parseStyleString.ts +0 -0
- package/src/parser/parseTransformAttribute.ts +0 -0
- package/src/parser/parseUseDirectives.test.ts +0 -0
- package/src/parser/parseUseDirectives.ts +0 -0
- package/src/parser/parser.spec.ts +0 -0
- package/src/parser/percent.ts +0 -0
- package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
- package/src/parser/selectorMatches.ts +0 -0
- package/src/parser/setStrokeFillOpacity.ts +0 -0
- package/src/parser/typedefs.ts +0 -0
- package/src/shapes/ActiveSelection.spec.ts +0 -0
- package/src/shapes/ActiveSelection.ts +0 -0
- package/src/shapes/Circle.spec.ts +0 -0
- package/src/shapes/Circle.ts +0 -0
- package/src/shapes/Ellipse.spec.ts +0 -0
- package/src/shapes/Ellipse.ts +0 -0
- package/src/shapes/Group.spec.ts +0 -0
- package/src/shapes/Group.ts +0 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
- package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
- package/src/shapes/IText/IText.test.ts +0 -0
- package/src/shapes/IText/IText.ts +846 -846
- package/src/shapes/IText/ITextBehavior.test.ts +0 -0
- package/src/shapes/IText/ITextBehavior.ts +1176 -1176
- package/src/shapes/IText/ITextClickBehavior.ts +254 -254
- package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +0 -0
- package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
- package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
- package/src/shapes/IText/constants.ts +0 -0
- package/src/shapes/Image-filters.spec.ts +0 -0
- package/src/shapes/Image.spec.ts +0 -0
- package/src/shapes/Image.ts +0 -0
- package/src/shapes/Line.spec.ts +0 -0
- package/src/shapes/Line.ts +372 -158
- package/src/shapes/Object/FabricObject.spec.ts +0 -0
- package/src/shapes/Object/FabricObject.ts +0 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
- package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
- package/src/shapes/Object/InteractiveObject.ts +0 -0
- package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
- package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
- package/src/shapes/Object/Object.spec.ts +0 -0
- package/src/shapes/Object/Object.ts +0 -0
- package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
- package/src/shapes/Object/ObjectGeometry.ts +0 -0
- package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
- package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
- package/src/shapes/Object/StackedObject.spec.ts +0 -0
- package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
- package/src/shapes/Object/defaultValues.ts +0 -0
- package/src/shapes/Object/types/BaseProps.ts +0 -0
- package/src/shapes/Object/types/BorderProps.ts +0 -0
- package/src/shapes/Object/types/ControlProps.ts +0 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
- package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
- package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
- package/src/shapes/Object/types/ObjectProps.ts +0 -0
- package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
- package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
- package/src/shapes/Object/types/index.ts +0 -0
- package/src/shapes/Path.spec.ts +0 -0
- package/src/shapes/Path.ts +0 -0
- package/src/shapes/Polygon.spec.ts +0 -0
- package/src/shapes/Polygon.ts +0 -0
- package/src/shapes/Polyline.spec.ts +0 -0
- package/src/shapes/Polyline.ts +70 -29
- package/src/shapes/Rect.spec.ts +0 -0
- package/src/shapes/Rect.ts +0 -0
- package/src/shapes/Text/StyledText.spec.ts +0 -0
- package/src/shapes/Text/StyledText.ts +0 -0
- package/src/shapes/Text/Text.spec.ts +0 -0
- package/src/shapes/Text/Text.ts +2226 -2226
- package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
- package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
- package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
- package/src/shapes/Text/constants.ts +134 -134
- package/src/shapes/Textbox.spec.ts +0 -0
- package/src/shapes/Textbox.ts +788 -788
- package/src/shapes/Triangle.spec.ts +76 -0
- package/src/shapes/Triangle.ts +85 -15
- package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
- package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
- package/src/text/browserLines.ts +233 -233
- package/src/text/ellipsis.ts +516 -516
- package/src/text/hitTest.ts +623 -623
- package/src/text/layout.ts +586 -586
- package/src/text/measure.ts +475 -475
- package/src/text/overlayEditor.ts +1035 -1035
- package/src/text/unicode.ts +454 -454
- package/src/typedefs.ts +0 -0
- package/src/util/__snapshots__/index.spec.ts.snap +0 -0
- package/src/util/animation/AnimationBase.ts +0 -0
- package/src/util/animation/AnimationFrameProvider.ts +0 -0
- package/src/util/animation/AnimationRegistry.ts +0 -0
- package/src/util/animation/ArrayAnimation.ts +0 -0
- package/src/util/animation/ColorAnimation.ts +0 -0
- package/src/util/animation/ValueAnimation.ts +0 -0
- package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
- package/src/util/animation/animate.ts +0 -0
- package/src/util/animation/animations.spec.ts +0 -0
- package/src/util/animation/easing.ts +0 -0
- package/src/util/animation/index.ts +0 -0
- package/src/util/animation/types.ts +0 -0
- package/src/util/applyMixins.ts +0 -0
- package/src/util/dom_event.spec.ts +0 -0
- package/src/util/dom_event.ts +0 -0
- package/src/util/dom_misc.ts +0 -0
- package/src/util/index.spec.ts +0 -0
- package/src/util/index.ts +0 -0
- package/src/util/internals/applyCanvasTransform.ts +0 -0
- package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
- package/src/util/internals/cleanupSvgAttribute.ts +0 -0
- package/src/util/internals/cloneStyles.spec.ts +0 -0
- package/src/util/internals/cloneStyles.ts +0 -0
- package/src/util/internals/console.ts +0 -0
- package/src/util/internals/dom_style.spec.ts +0 -0
- package/src/util/internals/dom_style.ts +0 -0
- package/src/util/internals/findRight.ts +0 -0
- package/src/util/internals/getRandomInt.test.ts +0 -0
- package/src/util/internals/getRandomInt.ts +0 -0
- package/src/util/internals/ifNaN.ts +0 -0
- package/src/util/internals/removeFromArray.spec.ts +0 -0
- package/src/util/internals/removeFromArray.ts +0 -0
- package/src/util/internals/uid.ts +0 -0
- package/src/util/lang_string.spec.ts +0 -0
- package/src/util/lang_string.ts +0 -0
- package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
- package/src/util/misc/boundingBoxFromPoints.ts +0 -0
- package/src/util/misc/capValue.spec.ts +0 -0
- package/src/util/misc/capValue.ts +0 -0
- package/src/util/misc/cornerRadius.spec.ts +141 -0
- package/src/util/misc/cornerRadius.ts +269 -0
- package/src/util/misc/cos.spec.ts +0 -0
- package/src/util/misc/cos.ts +0 -0
- package/src/util/misc/dom.spec.ts +0 -0
- package/src/util/misc/dom.ts +0 -0
- package/src/util/misc/findScaleTo.spec.ts +0 -0
- package/src/util/misc/findScaleTo.ts +0 -0
- package/src/util/misc/groupSVGElements.spec.ts +0 -0
- package/src/util/misc/groupSVGElements.ts +0 -0
- package/src/util/misc/isTransparent.ts +0 -0
- package/src/util/misc/matrix.spec.ts +0 -0
- package/src/util/misc/matrix.ts +0 -0
- package/src/util/misc/mergeClipPaths.spec.ts +0 -0
- package/src/util/misc/mergeClipPaths.ts +0 -0
- package/src/util/misc/objectEnlive.spec.ts +0 -0
- package/src/util/misc/objectEnlive.ts +0 -0
- package/src/util/misc/objectTransforms.spec.ts +0 -0
- package/src/util/misc/objectTransforms.ts +0 -0
- package/src/util/misc/pick.spec.ts +0 -0
- package/src/util/misc/pick.ts +0 -0
- package/src/util/misc/planeChange.spec.ts +0 -0
- package/src/util/misc/planeChange.ts +0 -0
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
- package/src/util/misc/projectStroke/index.ts +0 -0
- package/src/util/misc/projectStroke/types.ts +0 -0
- package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
- package/src/util/misc/radiansDegreesConversion.ts +0 -0
- package/src/util/misc/resolveOrigin.ts +0 -0
- package/src/util/misc/sin.ts +0 -0
- package/src/util/misc/svgExport.ts +0 -0
- package/src/util/misc/svgParsing.spec.ts +0 -0
- package/src/util/misc/svgParsing.ts +0 -0
- package/src/util/misc/textStyles.ts +0 -0
- package/src/util/misc/toFixed.spec.ts +0 -0
- package/src/util/misc/toFixed.ts +0 -0
- package/src/util/misc/vectors.spec.ts +0 -0
- package/src/util/misc/vectors.ts +0 -0
- package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
- package/src/util/path/index.spec.ts +0 -0
- package/src/util/path/index.ts +0 -0
- package/src/util/path/regex.ts +0 -0
- package/src/util/path/typechecks.ts +0 -0
- package/src/util/path/typedefs.ts +0 -0
- package/src/util/transform_matrix_removal.ts +0 -0
- package/src/util/typeAssertions.spec.ts +0 -0
- package/src/util/typeAssertions.ts +0 -0
- package/tsconfig-extensions.json +0 -0
- package/tsconfig.json +0 -0
- package/tsconfig.spec.json +0 -0
- package/typedoc.config.json +0 -0
- package/vitest.config.ts +0 -0
- package/vitest.d.ts +0 -0
- package/vitest.env.d.ts +0 -0
- package/vitest.extend.ts +0 -0
- package/vitest.setup.ts +0 -0
- package/debug/konva/CHANGELOG.md +0 -1474
- package/debug/konva/LICENSE +0 -22
- package/debug/konva/README.md +0 -205
- package/debug/konva/gulpfile.mjs +0 -110
- package/debug/konva/package.json +0 -139
- package/debug/konva/release.sh +0 -65
- package/debug/konva/resources/doc-includes/ContainerParams.txt +0 -6
- package/debug/konva/resources/doc-includes/NodeParams.txt +0 -20
- package/debug/konva/resources/doc-includes/ShapeParams.txt +0 -53
- package/debug/konva/resources/jsdoc.conf.json +0 -28
- package/debug/konva/rollup.config.mjs +0 -32
- package/debug/konva/src/Animation.ts +0 -237
- package/debug/konva/src/BezierFunctions.ts +0 -826
- package/debug/konva/src/Canvas.ts +0 -193
- package/debug/konva/src/Container.ts +0 -649
- package/debug/konva/src/Context.ts +0 -1017
- package/debug/konva/src/Core.ts +0 -5
- package/debug/konva/src/DragAndDrop.ts +0 -173
- package/debug/konva/src/Factory.ts +0 -246
- package/debug/konva/src/FastLayer.ts +0 -29
- package/debug/konva/src/Global.ts +0 -210
- package/debug/konva/src/Group.ts +0 -31
- package/debug/konva/src/Layer.ts +0 -546
- package/debug/konva/src/Node.ts +0 -3477
- package/debug/konva/src/PointerEvents.ts +0 -67
- package/debug/konva/src/Shape.ts +0 -2081
- package/debug/konva/src/Stage.ts +0 -1000
- package/debug/konva/src/Tween.ts +0 -811
- package/debug/konva/src/Util.ts +0 -1123
- package/debug/konva/src/Validators.ts +0 -210
- package/debug/konva/src/_CoreInternals.ts +0 -85
- package/debug/konva/src/_FullInternals.ts +0 -171
- package/debug/konva/src/canvas-backend.ts +0 -36
- package/debug/konva/src/filters/Blur.ts +0 -388
- package/debug/konva/src/filters/Brighten.ts +0 -48
- package/debug/konva/src/filters/Brightness.ts +0 -30
- package/debug/konva/src/filters/Contrast.ts +0 -75
- package/debug/konva/src/filters/Emboss.ts +0 -207
- package/debug/konva/src/filters/Enhance.ts +0 -154
- package/debug/konva/src/filters/Grayscale.ts +0 -25
- package/debug/konva/src/filters/HSL.ts +0 -108
- package/debug/konva/src/filters/HSV.ts +0 -106
- package/debug/konva/src/filters/Invert.ts +0 -23
- package/debug/konva/src/filters/Kaleidoscope.ts +0 -274
- package/debug/konva/src/filters/Mask.ts +0 -220
- package/debug/konva/src/filters/Noise.ts +0 -44
- package/debug/konva/src/filters/Pixelate.ts +0 -107
- package/debug/konva/src/filters/Posterize.ts +0 -46
- package/debug/konva/src/filters/RGB.ts +0 -82
- package/debug/konva/src/filters/RGBA.ts +0 -103
- package/debug/konva/src/filters/Sepia.ts +0 -27
- package/debug/konva/src/filters/Solarize.ts +0 -29
- package/debug/konva/src/filters/Threshold.ts +0 -44
- package/debug/konva/src/index.ts +0 -3
- package/debug/konva/src/shapes/Arc.ts +0 -176
- package/debug/konva/src/shapes/Arrow.ts +0 -231
- package/debug/konva/src/shapes/Circle.ts +0 -76
- package/debug/konva/src/shapes/Ellipse.ts +0 -121
- package/debug/konva/src/shapes/Image.ts +0 -319
- package/debug/konva/src/shapes/Label.ts +0 -386
- package/debug/konva/src/shapes/Line.ts +0 -364
- package/debug/konva/src/shapes/Path.ts +0 -1013
- package/debug/konva/src/shapes/Rect.ts +0 -79
- package/debug/konva/src/shapes/RegularPolygon.ts +0 -167
- package/debug/konva/src/shapes/Ring.ts +0 -94
- package/debug/konva/src/shapes/Sprite.ts +0 -370
- package/debug/konva/src/shapes/Star.ts +0 -125
- package/debug/konva/src/shapes/Text.ts +0 -1065
- package/debug/konva/src/shapes/TextPath.ts +0 -583
- package/debug/konva/src/shapes/Transformer.ts +0 -1889
- package/debug/konva/src/shapes/Wedge.ts +0 -129
- package/debug/konva/src/skia-backend.ts +0 -35
- package/debug/konva/src/types.ts +0 -84
- package/debug/konva/tsconfig.json +0 -31
- package/debug/konva/tsconfig.test.json +0 -7
- package/dist/src/controls/changeHeight.min.mjs +0 -2
- package/dist/src/controls/changeHeight.min.mjs.map +0 -1
- package/dist/src/controls/changeHeight.mjs +0 -36
- package/dist/src/controls/changeHeight.mjs.map +0 -1
package/dist/index.node.mjs
CHANGED
|
@@ -410,7 +410,7 @@ class Cache {
|
|
|
410
410
|
}
|
|
411
411
|
const cache = new Cache();
|
|
412
412
|
|
|
413
|
-
var version = "7.0.1-
|
|
413
|
+
var version = "7.0.1-beta3";
|
|
414
414
|
|
|
415
415
|
// use this syntax so babel plugin see this import here
|
|
416
416
|
const VERSION = version;
|
|
@@ -17627,33 +17627,29 @@ class PatternBrush extends PencilBrush {
|
|
|
17627
17627
|
}
|
|
17628
17628
|
}
|
|
17629
17629
|
|
|
17630
|
-
// @TODO this code is terrible and Line should be a special case of polyline.
|
|
17631
|
-
|
|
17632
17630
|
const coordProps = ['x1', 'x2', 'y1', 'y2'];
|
|
17633
|
-
/**
|
|
17634
|
-
* A Class to draw a line
|
|
17635
|
-
* A bunch of methods will be added to Polyline to handle the line case
|
|
17636
|
-
* The line class is very strange to work with, is all special, it hardly aligns
|
|
17637
|
-
* to what a developer want everytime there is an angle
|
|
17638
|
-
* @deprecated
|
|
17639
|
-
*/
|
|
17640
17631
|
class Line extends FabricObject {
|
|
17641
|
-
/**
|
|
17642
|
-
* Constructor
|
|
17643
|
-
* @param {Array} [points] Array of points
|
|
17644
|
-
* @param {Object} [options] Options object
|
|
17645
|
-
* @return {Line} thisArg
|
|
17646
|
-
*/
|
|
17647
17632
|
constructor() {
|
|
17648
|
-
let [x1, y1, x2, y2] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [0, 0,
|
|
17633
|
+
let [x1, y1, x2, y2] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [0, 0, 100, 0];
|
|
17649
17634
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17650
17635
|
super();
|
|
17651
|
-
|
|
17636
|
+
_defineProperty(this, "hitStrokeWidth", 'auto');
|
|
17637
|
+
_defineProperty(this, "_updatingEndpoints", false);
|
|
17638
|
+
_defineProperty(this, "_useEndpointCoords", true);
|
|
17652
17639
|
this.setOptions(options);
|
|
17653
17640
|
this.x1 = x1;
|
|
17654
17641
|
this.x2 = x2;
|
|
17655
17642
|
this.y1 = y1;
|
|
17656
17643
|
this.y2 = y2;
|
|
17644
|
+
if (options.hitStrokeWidth !== undefined) {
|
|
17645
|
+
this.hitStrokeWidth = options.hitStrokeWidth;
|
|
17646
|
+
}
|
|
17647
|
+
this.hasBorders = false;
|
|
17648
|
+
this.hasControls = true;
|
|
17649
|
+
this.selectable = true;
|
|
17650
|
+
this.hoverCursor = 'move';
|
|
17651
|
+
this.perPixelTargetFind = false;
|
|
17652
|
+
this.strokeLineCap = 'butt';
|
|
17657
17653
|
this._setWidthHeight();
|
|
17658
17654
|
const {
|
|
17659
17655
|
left,
|
|
@@ -17661,96 +17657,323 @@ class Line extends FabricObject {
|
|
|
17661
17657
|
} = options;
|
|
17662
17658
|
typeof left === 'number' && this.set(LEFT, left);
|
|
17663
17659
|
typeof top === 'number' && this.set(TOP, top);
|
|
17660
|
+
this._setupLineControls();
|
|
17661
|
+
}
|
|
17662
|
+
_setupLineControls() {
|
|
17663
|
+
this.controls = {
|
|
17664
|
+
p1: new Control({
|
|
17665
|
+
x: 0,
|
|
17666
|
+
y: 0,
|
|
17667
|
+
cursorStyle: 'move',
|
|
17668
|
+
actionHandler: this._endpointActionHandler.bind(this),
|
|
17669
|
+
positionHandler: this._p1PositionHandler.bind(this),
|
|
17670
|
+
render: this._renderEndpointControl.bind(this),
|
|
17671
|
+
sizeX: 12,
|
|
17672
|
+
sizeY: 12
|
|
17673
|
+
}),
|
|
17674
|
+
p2: new Control({
|
|
17675
|
+
x: 0,
|
|
17676
|
+
y: 0,
|
|
17677
|
+
cursorStyle: 'move',
|
|
17678
|
+
actionHandler: this._endpointActionHandler.bind(this),
|
|
17679
|
+
positionHandler: this._p2PositionHandler.bind(this),
|
|
17680
|
+
render: this._renderEndpointControl.bind(this),
|
|
17681
|
+
sizeX: 12,
|
|
17682
|
+
sizeY: 12
|
|
17683
|
+
})
|
|
17684
|
+
};
|
|
17685
|
+
}
|
|
17686
|
+
_p1PositionHandler() {
|
|
17687
|
+
var _this$canvas;
|
|
17688
|
+
const vpt = ((_this$canvas = this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.viewportTransform) || [1, 0, 0, 1, 0, 0];
|
|
17689
|
+
return new Point(this.x1, this.y1).transform(vpt);
|
|
17690
|
+
}
|
|
17691
|
+
_p2PositionHandler() {
|
|
17692
|
+
var _this$canvas2;
|
|
17693
|
+
const vpt = ((_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0 ? void 0 : _this$canvas2.viewportTransform) || [1, 0, 0, 1, 0, 0];
|
|
17694
|
+
return new Point(this.x2, this.y2).transform(vpt);
|
|
17695
|
+
}
|
|
17696
|
+
_renderEndpointControl(ctx, left, top) {
|
|
17697
|
+
const size = 12;
|
|
17698
|
+
ctx.save();
|
|
17699
|
+
ctx.fillStyle = '#007bff';
|
|
17700
|
+
ctx.strokeStyle = '#ffffff';
|
|
17701
|
+
ctx.lineWidth = 2;
|
|
17702
|
+
ctx.beginPath();
|
|
17703
|
+
ctx.arc(left, top, size / 2, 0, 2 * Math.PI);
|
|
17704
|
+
ctx.fill();
|
|
17705
|
+
ctx.stroke();
|
|
17706
|
+
ctx.restore();
|
|
17707
|
+
}
|
|
17708
|
+
drawBorders(ctx) {
|
|
17709
|
+
let styleOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17710
|
+
if (this._useEndpointCoords) {
|
|
17711
|
+
this._drawLineBorders(ctx, styleOverride);
|
|
17712
|
+
return this;
|
|
17713
|
+
}
|
|
17714
|
+
return super.drawBorders(ctx, styleOverride, {});
|
|
17715
|
+
}
|
|
17716
|
+
_drawLineBorders(ctx) {
|
|
17717
|
+
var _this$canvas3;
|
|
17718
|
+
let styleOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17719
|
+
const vpt = ((_this$canvas3 = this.canvas) === null || _this$canvas3 === void 0 ? void 0 : _this$canvas3.viewportTransform) || [1, 0, 0, 1, 0, 0];
|
|
17720
|
+
ctx.save();
|
|
17721
|
+
ctx.setTransform(vpt[0], vpt[1], vpt[2], vpt[3], vpt[4], vpt[5]);
|
|
17722
|
+
ctx.strokeStyle = styleOverride.borderColor || this.borderColor || 'rgba(100, 200, 200, 0.5)';
|
|
17723
|
+
ctx.lineWidth = (this.strokeWidth || 1) + 5;
|
|
17724
|
+
ctx.lineCap = this.strokeLineCap || 'butt';
|
|
17725
|
+
ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;
|
|
17726
|
+
ctx.beginPath();
|
|
17727
|
+
ctx.moveTo(this.x1, this.y1);
|
|
17728
|
+
ctx.lineTo(this.x2, this.y2);
|
|
17729
|
+
ctx.stroke();
|
|
17730
|
+
ctx.restore();
|
|
17731
|
+
}
|
|
17732
|
+
_renderControls(ctx) {
|
|
17733
|
+
let styleOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17734
|
+
ctx.save();
|
|
17735
|
+
ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;
|
|
17736
|
+
this.drawControls(ctx, styleOverride);
|
|
17737
|
+
ctx.restore();
|
|
17738
|
+
}
|
|
17739
|
+
getBoundingRect() {
|
|
17740
|
+
if (this._useEndpointCoords) {
|
|
17741
|
+
const {
|
|
17742
|
+
x1,
|
|
17743
|
+
y1,
|
|
17744
|
+
x2,
|
|
17745
|
+
y2
|
|
17746
|
+
} = this;
|
|
17747
|
+
const effectiveStrokeWidth = this.hitStrokeWidth === 'auto' ? this.strokeWidth : this.hitStrokeWidth;
|
|
17748
|
+
const padding = Math.max(effectiveStrokeWidth / 2 + 5, 10);
|
|
17749
|
+
return {
|
|
17750
|
+
left: Math.min(x1, x2) - padding,
|
|
17751
|
+
top: Math.min(y1, y2) - padding,
|
|
17752
|
+
width: Math.abs(x2 - x1) + padding * 2 || padding * 2,
|
|
17753
|
+
height: Math.abs(y2 - y1) + padding * 2 || padding * 2
|
|
17754
|
+
};
|
|
17755
|
+
}
|
|
17756
|
+
return super.getBoundingRect();
|
|
17757
|
+
}
|
|
17758
|
+
setCoords() {
|
|
17759
|
+
if (this._useEndpointCoords) {
|
|
17760
|
+
const minX = Math.min(this.x1, this.x2);
|
|
17761
|
+
const maxX = Math.max(this.x1, this.x2);
|
|
17762
|
+
const minY = Math.min(this.y1, this.y2);
|
|
17763
|
+
const maxY = Math.max(this.y1, this.y2);
|
|
17764
|
+
const effectiveStrokeWidth = this.hitStrokeWidth === 'auto' ? this.strokeWidth : this.hitStrokeWidth;
|
|
17765
|
+
const hitPadding = Math.max(effectiveStrokeWidth / 2 + 5, 10);
|
|
17766
|
+
this.left = minX - hitPadding + (maxX - minX + hitPadding * 2) / 2;
|
|
17767
|
+
this.top = minY - hitPadding + (maxY - minY + hitPadding * 2) / 2;
|
|
17768
|
+
this.width = Math.abs(this.x2 - this.x1) + hitPadding * 2;
|
|
17769
|
+
this.height = Math.abs(this.y2 - this.y1) + hitPadding * 2;
|
|
17770
|
+
}
|
|
17771
|
+
super.setCoords();
|
|
17772
|
+
}
|
|
17773
|
+
getCoords() {
|
|
17774
|
+
if (this._useEndpointCoords) {
|
|
17775
|
+
const deltaX = this.x2 - this.x1;
|
|
17776
|
+
const deltaY = this.y2 - this.y1;
|
|
17777
|
+
const length = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
17778
|
+
if (length === 0) {
|
|
17779
|
+
return super.getCoords();
|
|
17780
|
+
}
|
|
17781
|
+
const effectiveStrokeWidth = this.hitStrokeWidth === 'auto' ? this.strokeWidth : this.hitStrokeWidth;
|
|
17782
|
+
const halfWidth = Math.max(effectiveStrokeWidth / 2 + 2, 5);
|
|
17783
|
+
|
|
17784
|
+
// Unit vector perpendicular to line
|
|
17785
|
+
const perpX = -deltaY / length;
|
|
17786
|
+
const perpY = deltaX / length;
|
|
17787
|
+
|
|
17788
|
+
// Four corners of oriented rectangle
|
|
17789
|
+
return [new Point(this.x1 + perpX * halfWidth, this.y1 + perpY * halfWidth), new Point(this.x2 + perpX * halfWidth, this.y2 + perpY * halfWidth), new Point(this.x2 - perpX * halfWidth, this.y2 - perpY * halfWidth), new Point(this.x1 - perpX * halfWidth, this.y1 - perpY * halfWidth)];
|
|
17790
|
+
}
|
|
17791
|
+
return super.getCoords();
|
|
17664
17792
|
}
|
|
17793
|
+
containsPoint(point) {
|
|
17794
|
+
if (this._useEndpointCoords) {
|
|
17795
|
+
var _this$canvas4;
|
|
17796
|
+
if (((_this$canvas4 = this.canvas) === null || _this$canvas4 === void 0 ? void 0 : _this$canvas4.getActiveObject()) === this) {
|
|
17797
|
+
return super.containsPoint(point);
|
|
17798
|
+
}
|
|
17799
|
+
const distance = this._distanceToLineSegment(point.x, point.y);
|
|
17800
|
+
const effectiveStrokeWidth = this.hitStrokeWidth === 'auto' ? this.strokeWidth : this.hitStrokeWidth || 1;
|
|
17801
|
+
const tolerance = Math.max(effectiveStrokeWidth / 2 + 2, 5);
|
|
17802
|
+
return distance <= tolerance;
|
|
17803
|
+
}
|
|
17804
|
+
return super.containsPoint(point);
|
|
17805
|
+
}
|
|
17806
|
+
_distanceToLineSegment(px, py) {
|
|
17807
|
+
const x1 = this.x1,
|
|
17808
|
+
y1 = this.y1,
|
|
17809
|
+
x2 = this.x2,
|
|
17810
|
+
y2 = this.y2;
|
|
17811
|
+
const pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
|
|
17812
|
+
if (pd2 === 0) {
|
|
17813
|
+
return Math.sqrt((px - x1) * (px - x1) + (py - y1) * (py - y1));
|
|
17814
|
+
}
|
|
17815
|
+
const u = ((px - x1) * (x2 - x1) + (py - y1) * (y2 - y1)) / pd2;
|
|
17816
|
+
let closestX, closestY;
|
|
17817
|
+
if (u < 0) {
|
|
17818
|
+
closestX = x1;
|
|
17819
|
+
closestY = y1;
|
|
17820
|
+
} else if (u > 1) {
|
|
17821
|
+
closestX = x2;
|
|
17822
|
+
closestY = y2;
|
|
17823
|
+
} else {
|
|
17824
|
+
closestX = x1 + u * (x2 - x1);
|
|
17825
|
+
closestY = y1 + u * (y2 - y1);
|
|
17826
|
+
}
|
|
17827
|
+
return Math.sqrt((px - closestX) * (px - closestX) + (py - closestY) * (py - closestY));
|
|
17828
|
+
}
|
|
17829
|
+
_endpointActionHandler(eventData, transformData, x, y) {
|
|
17830
|
+
var _this$canvas6;
|
|
17831
|
+
const controlKey = transformData.corner;
|
|
17832
|
+
const pointer = new Point(x, y);
|
|
17833
|
+
let newX = pointer.x;
|
|
17834
|
+
let newY = pointer.y;
|
|
17835
|
+
if (eventData.shiftKey) {
|
|
17836
|
+
const otherControl = controlKey === 'p1' ? 'p2' : 'p1';
|
|
17837
|
+
const otherX = this[otherControl === 'p1' ? 'x1' : 'x2'];
|
|
17838
|
+
const otherY = this[otherControl === 'p1' ? 'y1' : 'y2'];
|
|
17839
|
+
const snapped = this._snapToAngle(otherX, otherY, newX, newY);
|
|
17840
|
+
newX = snapped.x;
|
|
17841
|
+
newY = snapped.y;
|
|
17842
|
+
}
|
|
17843
|
+
if (this._useEndpointCoords) {
|
|
17844
|
+
var _this$canvas5;
|
|
17845
|
+
if (controlKey === 'p1') {
|
|
17846
|
+
this.x1 = newX;
|
|
17847
|
+
this.y1 = newY;
|
|
17848
|
+
} else if (controlKey === 'p2') {
|
|
17849
|
+
this.x2 = newX;
|
|
17850
|
+
this.y2 = newY;
|
|
17851
|
+
}
|
|
17852
|
+
this.dirty = true;
|
|
17853
|
+
this.setCoords();
|
|
17854
|
+
(_this$canvas5 = this.canvas) === null || _this$canvas5 === void 0 || _this$canvas5.requestRenderAll();
|
|
17855
|
+
return true;
|
|
17856
|
+
}
|
|
17665
17857
|
|
|
17666
|
-
|
|
17667
|
-
|
|
17668
|
-
|
|
17669
|
-
|
|
17858
|
+
// Fallback for old system
|
|
17859
|
+
this._updatingEndpoints = true;
|
|
17860
|
+
if (controlKey === 'p1') {
|
|
17861
|
+
this.x1 = newX;
|
|
17862
|
+
this.y1 = newY;
|
|
17863
|
+
} else if (controlKey === 'p2') {
|
|
17864
|
+
this.x2 = newX;
|
|
17865
|
+
this.y2 = newY;
|
|
17866
|
+
}
|
|
17867
|
+
this._setWidthHeight();
|
|
17868
|
+
this.dirty = true;
|
|
17869
|
+
this._updatingEndpoints = false;
|
|
17870
|
+
(_this$canvas6 = this.canvas) === null || _this$canvas6 === void 0 || _this$canvas6.requestRenderAll();
|
|
17871
|
+
this.fire('modified', {
|
|
17872
|
+
transform: transformData,
|
|
17873
|
+
target: this,
|
|
17874
|
+
e: eventData
|
|
17875
|
+
});
|
|
17876
|
+
return true;
|
|
17877
|
+
}
|
|
17878
|
+
_snapToAngle(fromX, fromY, toX, toY) {
|
|
17879
|
+
const deltaX = toX - fromX;
|
|
17880
|
+
const deltaY = toY - fromY;
|
|
17881
|
+
const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
17882
|
+
if (distance === 0) return {
|
|
17883
|
+
x: toX,
|
|
17884
|
+
y: toY
|
|
17885
|
+
};
|
|
17886
|
+
let angle = Math.atan2(deltaY, deltaX) * (180 / Math.PI);
|
|
17887
|
+
const snapIncrement = 15;
|
|
17888
|
+
const snappedAngle = Math.round(angle / snapIncrement) * snapIncrement;
|
|
17889
|
+
const snappedRadians = snappedAngle * (Math.PI / 180);
|
|
17890
|
+
return {
|
|
17891
|
+
x: fromX + Math.cos(snappedRadians) * distance,
|
|
17892
|
+
y: fromY + Math.sin(snappedRadians) * distance
|
|
17893
|
+
};
|
|
17894
|
+
}
|
|
17670
17895
|
_setWidthHeight() {
|
|
17671
|
-
|
|
17672
|
-
|
|
17673
|
-
|
|
17674
|
-
|
|
17675
|
-
|
|
17676
|
-
|
|
17677
|
-
|
|
17678
|
-
|
|
17679
|
-
|
|
17680
|
-
|
|
17681
|
-
|
|
17682
|
-
|
|
17683
|
-
|
|
17684
|
-
|
|
17685
|
-
|
|
17686
|
-
|
|
17687
|
-
|
|
17688
|
-
|
|
17689
|
-
y: y2
|
|
17690
|
-
}]);
|
|
17691
|
-
const position = new Point(left + width / 2, top + height / 2);
|
|
17692
|
-
this.setPositionByOrigin(position, CENTER, CENTER);
|
|
17896
|
+
let skipReposition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
17897
|
+
this.width = Math.abs(this.x2 - this.x1) || 1;
|
|
17898
|
+
this.height = Math.abs(this.y2 - this.y1) || 1;
|
|
17899
|
+
if (!skipReposition && !this._updatingEndpoints) {
|
|
17900
|
+
const {
|
|
17901
|
+
left,
|
|
17902
|
+
top,
|
|
17903
|
+
width,
|
|
17904
|
+
height
|
|
17905
|
+
} = makeBoundingBoxFromPoints([{
|
|
17906
|
+
x: this.x1,
|
|
17907
|
+
y: this.y1
|
|
17908
|
+
}, {
|
|
17909
|
+
x: this.x2,
|
|
17910
|
+
y: this.y2
|
|
17911
|
+
}]);
|
|
17912
|
+
this.setPositionByOrigin(new Point(left + width / 2, top + height / 2), CENTER, CENTER);
|
|
17913
|
+
}
|
|
17693
17914
|
}
|
|
17694
|
-
|
|
17695
|
-
/**
|
|
17696
|
-
* @private
|
|
17697
|
-
* @param {String} key
|
|
17698
|
-
* @param {*} value
|
|
17699
|
-
*/
|
|
17700
17915
|
_set(key, value) {
|
|
17916
|
+
const oldLeft = this.left;
|
|
17917
|
+
const oldTop = this.top;
|
|
17701
17918
|
super._set(key, value);
|
|
17702
17919
|
if (coordProps.includes(key)) {
|
|
17703
|
-
// this doesn't make sense very much, since setting x1 when top or left
|
|
17704
|
-
// are already set, is just going to show a strange result since the
|
|
17705
|
-
// line will move way more than the developer expect.
|
|
17706
|
-
// in fabric5 it worked only when the line didn't have extra transformations,
|
|
17707
|
-
// in fabric6 too. With extra transform they behave bad in different ways.
|
|
17708
|
-
// This needs probably a good rework or a tutorial if you have to create a dynamic line
|
|
17709
17920
|
this._setWidthHeight();
|
|
17921
|
+
this.dirty = true;
|
|
17922
|
+
}
|
|
17923
|
+
if ((key === 'left' || key === 'top') && this.canvas && !this._updatingEndpoints) {
|
|
17924
|
+
const deltaX = this.left - oldLeft;
|
|
17925
|
+
const deltaY = this.top - oldTop;
|
|
17926
|
+
if (deltaX !== 0 || deltaY !== 0) {
|
|
17927
|
+
this._updatingEndpoints = true;
|
|
17928
|
+
this.x1 += deltaX;
|
|
17929
|
+
this.y1 += deltaY;
|
|
17930
|
+
this.x2 += deltaX;
|
|
17931
|
+
this.y2 += deltaY;
|
|
17932
|
+
this._updatingEndpoints = false;
|
|
17933
|
+
}
|
|
17710
17934
|
}
|
|
17711
17935
|
return this;
|
|
17712
17936
|
}
|
|
17713
|
-
|
|
17714
|
-
|
|
17715
|
-
|
|
17716
|
-
|
|
17717
|
-
|
|
17937
|
+
render(ctx) {
|
|
17938
|
+
if (this._useEndpointCoords) {
|
|
17939
|
+
this._renderDirectly(ctx);
|
|
17940
|
+
return;
|
|
17941
|
+
}
|
|
17942
|
+
super.render(ctx);
|
|
17943
|
+
}
|
|
17944
|
+
_renderDirectly(ctx) {
|
|
17945
|
+
var _this$canvas7, _this$stroke;
|
|
17946
|
+
if (!this.visible) return;
|
|
17947
|
+
ctx.save();
|
|
17948
|
+
const vpt = ((_this$canvas7 = this.canvas) === null || _this$canvas7 === void 0 ? void 0 : _this$canvas7.viewportTransform) || [1, 0, 0, 1, 0, 0];
|
|
17949
|
+
ctx.transform(vpt[0], vpt[1], vpt[2], vpt[3], vpt[4], vpt[5]);
|
|
17950
|
+
ctx.globalAlpha = this.opacity;
|
|
17951
|
+
ctx.strokeStyle = ((_this$stroke = this.stroke) === null || _this$stroke === void 0 ? void 0 : _this$stroke.toString()) || '#000';
|
|
17952
|
+
ctx.lineWidth = this.strokeWidth;
|
|
17953
|
+
ctx.lineCap = this.strokeLineCap || 'butt';
|
|
17954
|
+
ctx.beginPath();
|
|
17955
|
+
ctx.moveTo(this.x1, this.y1);
|
|
17956
|
+
ctx.lineTo(this.x2, this.y2);
|
|
17957
|
+
ctx.stroke();
|
|
17958
|
+
ctx.restore();
|
|
17959
|
+
}
|
|
17718
17960
|
_render(ctx) {
|
|
17961
|
+
if (this._useEndpointCoords) return;
|
|
17719
17962
|
ctx.beginPath();
|
|
17720
17963
|
const p = this.calcLinePoints();
|
|
17721
17964
|
ctx.moveTo(p.x1, p.y1);
|
|
17722
17965
|
ctx.lineTo(p.x2, p.y2);
|
|
17723
17966
|
ctx.lineWidth = this.strokeWidth;
|
|
17724
|
-
|
|
17725
|
-
// TODO: test this
|
|
17726
|
-
// make sure setting "fill" changes color of a line
|
|
17727
|
-
// (by copying fillStyle to strokeStyle, since line is stroked, not filled)
|
|
17728
17967
|
const origStrokeStyle = ctx.strokeStyle;
|
|
17729
17968
|
if (isFiller(this.stroke)) {
|
|
17730
17969
|
ctx.strokeStyle = this.stroke.toLive(ctx);
|
|
17731
|
-
} else {
|
|
17732
|
-
var _this$stroke;
|
|
17733
|
-
ctx.strokeStyle = (_this$stroke = this.stroke) !== null && _this$stroke !== void 0 ? _this$stroke : ctx.fillStyle;
|
|
17734
17970
|
}
|
|
17735
17971
|
this.stroke && this._renderStroke(ctx);
|
|
17736
17972
|
ctx.strokeStyle = origStrokeStyle;
|
|
17737
17973
|
}
|
|
17738
|
-
|
|
17739
|
-
/**
|
|
17740
|
-
* This function is an helper for svg import. it returns the center of the object in the svg
|
|
17741
|
-
* untransformed coordinates
|
|
17742
|
-
* @private
|
|
17743
|
-
* @return {Point} center point from element coordinates
|
|
17744
|
-
*/
|
|
17745
17974
|
_findCenterFromElement() {
|
|
17746
17975
|
return new Point((this.x1 + this.x2) / 2, (this.y1 + this.y2) / 2);
|
|
17747
17976
|
}
|
|
17748
|
-
|
|
17749
|
-
/**
|
|
17750
|
-
* Returns object representation of an instance
|
|
17751
|
-
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
17752
|
-
* @return {Object} object representation of an instance
|
|
17753
|
-
*/
|
|
17754
17977
|
toObject() {
|
|
17755
17978
|
let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
17756
17979
|
return {
|
|
@@ -17758,32 +17981,25 @@ class Line extends FabricObject {
|
|
|
17758
17981
|
...this.calcLinePoints()
|
|
17759
17982
|
};
|
|
17760
17983
|
}
|
|
17761
|
-
|
|
17762
|
-
/*
|
|
17763
|
-
* Calculate object dimensions from its properties
|
|
17764
|
-
* @private
|
|
17765
|
-
*/
|
|
17766
17984
|
_getNonTransformedDimensions() {
|
|
17767
17985
|
const dim = super._getNonTransformedDimensions();
|
|
17768
|
-
if (this.strokeLineCap === '
|
|
17769
|
-
|
|
17770
|
-
|
|
17771
|
-
}
|
|
17772
|
-
if (this.height === 0) {
|
|
17773
|
-
dim.x -= this.strokeWidth;
|
|
17774
|
-
}
|
|
17986
|
+
if (this.strokeLineCap === 'round') {
|
|
17987
|
+
dim.x += this.strokeWidth;
|
|
17988
|
+
dim.y += this.strokeWidth;
|
|
17775
17989
|
}
|
|
17776
17990
|
return dim;
|
|
17777
17991
|
}
|
|
17778
|
-
|
|
17779
|
-
/**
|
|
17780
|
-
* Recalculates line points given width and height
|
|
17781
|
-
* Those points are simply placed around the center,
|
|
17782
|
-
* This is not useful outside internal render functions and svg output
|
|
17783
|
-
* Is not meant to be for the developer.
|
|
17784
|
-
* @private
|
|
17785
|
-
*/
|
|
17786
17992
|
calcLinePoints() {
|
|
17993
|
+
if (this._updatingEndpoints) {
|
|
17994
|
+
const centerX = (this.x1 + this.x2) / 2;
|
|
17995
|
+
const centerY = (this.y1 + this.y2) / 2;
|
|
17996
|
+
return {
|
|
17997
|
+
x1: this.x1 - centerX,
|
|
17998
|
+
y1: this.y1 - centerY,
|
|
17999
|
+
x2: this.x2 - centerX,
|
|
18000
|
+
y2: this.y2 - centerY
|
|
18001
|
+
};
|
|
18002
|
+
}
|
|
17787
18003
|
const {
|
|
17788
18004
|
x1: _x1,
|
|
17789
18005
|
x2: _x2,
|
|
@@ -17792,27 +18008,15 @@ class Line extends FabricObject {
|
|
|
17792
18008
|
width,
|
|
17793
18009
|
height
|
|
17794
18010
|
} = this;
|
|
17795
|
-
const xMult = _x1 <= _x2 ? -1 : 1
|
|
17796
|
-
|
|
17797
|
-
x1 = xMult * width / 2,
|
|
17798
|
-
y1 = yMult * height / 2,
|
|
17799
|
-
x2 = xMult * -width / 2,
|
|
17800
|
-
y2 = yMult * -height / 2;
|
|
18011
|
+
const xMult = _x1 <= _x2 ? -1 : 1;
|
|
18012
|
+
const yMult = _y1 <= _y2 ? -1 : 1;
|
|
17801
18013
|
return {
|
|
17802
|
-
x1,
|
|
17803
|
-
|
|
17804
|
-
|
|
17805
|
-
y2
|
|
18014
|
+
x1: xMult * width / 2,
|
|
18015
|
+
y1: yMult * height / 2,
|
|
18016
|
+
x2: xMult * -width / 2,
|
|
18017
|
+
y2: yMult * -height / 2
|
|
17806
18018
|
};
|
|
17807
18019
|
}
|
|
17808
|
-
|
|
17809
|
-
/* _FROM_SVG_START_ */
|
|
17810
|
-
|
|
17811
|
-
/**
|
|
17812
|
-
* Returns svg representation of an instance
|
|
17813
|
-
* @return {Array} an array of strings with the specific svg representation
|
|
17814
|
-
* of the instance
|
|
17815
|
-
*/
|
|
17816
18020
|
_toSVG() {
|
|
17817
18021
|
const {
|
|
17818
18022
|
x1,
|
|
@@ -17822,18 +18026,6 @@ class Line extends FabricObject {
|
|
|
17822
18026
|
} = this.calcLinePoints();
|
|
17823
18027
|
return ['<line ', 'COMMON_PARTS', `x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" />\n`];
|
|
17824
18028
|
}
|
|
17825
|
-
|
|
17826
|
-
/**
|
|
17827
|
-
* List of attribute names to account for when parsing SVG element (used by {@link Line.fromElement})
|
|
17828
|
-
* @see http://www.w3.org/TR/SVG/shapes.html#LineElement
|
|
17829
|
-
*/
|
|
17830
|
-
|
|
17831
|
-
/**
|
|
17832
|
-
* Returns Line instance from an SVG element
|
|
17833
|
-
* @param {HTMLElement} element Element to parse
|
|
17834
|
-
* @param {Object} [options] Options object
|
|
17835
|
-
* @param {Function} [callback] callback function invoked after parsing
|
|
17836
|
-
*/
|
|
17837
18029
|
static async fromElement(element, options, cssRules) {
|
|
17838
18030
|
const {
|
|
17839
18031
|
x1 = 0,
|
|
@@ -17844,14 +18036,6 @@ class Line extends FabricObject {
|
|
|
17844
18036
|
} = parseAttributes(element, this.ATTRIBUTE_NAMES, cssRules);
|
|
17845
18037
|
return new this([x1, y1, x2, y2], parsedAttributes);
|
|
17846
18038
|
}
|
|
17847
|
-
|
|
17848
|
-
/* _FROM_SVG_END_ */
|
|
17849
|
-
|
|
17850
|
-
/**
|
|
17851
|
-
* Returns Line instance from an object representation
|
|
17852
|
-
* @param {Object} object Object to create an instance from
|
|
17853
|
-
* @returns {Promise<Line>}
|
|
17854
|
-
*/
|
|
17855
18039
|
static fromObject(_ref) {
|
|
17856
18040
|
let {
|
|
17857
18041
|
x1,
|
|
@@ -17868,32 +18052,195 @@ class Line extends FabricObject {
|
|
|
17868
18052
|
});
|
|
17869
18053
|
}
|
|
17870
18054
|
}
|
|
18055
|
+
_defineProperty(Line, "type", 'Line');
|
|
18056
|
+
_defineProperty(Line, "cacheProperties", [...cacheProperties, ...coordProps]);
|
|
18057
|
+
_defineProperty(Line, "ATTRIBUTE_NAMES", SHARED_ATTRIBUTES.concat(coordProps));
|
|
18058
|
+
classRegistry.setClass(Line);
|
|
18059
|
+
classRegistry.setSVGClass(Line);
|
|
18060
|
+
|
|
17871
18061
|
/**
|
|
17872
|
-
*
|
|
17873
|
-
* @type number
|
|
18062
|
+
* Calculate the distance between two points
|
|
17874
18063
|
*/
|
|
18064
|
+
function pointDistance(p1, p2) {
|
|
18065
|
+
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
|
|
18066
|
+
}
|
|
18067
|
+
|
|
17875
18068
|
/**
|
|
17876
|
-
*
|
|
17877
|
-
* @type number
|
|
18069
|
+
* Normalize a vector
|
|
17878
18070
|
*/
|
|
18071
|
+
function normalizeVector(vector) {
|
|
18072
|
+
const length = Math.sqrt(vector.x * vector.x + vector.y * vector.y);
|
|
18073
|
+
if (length === 0) return {
|
|
18074
|
+
x: 0,
|
|
18075
|
+
y: 0
|
|
18076
|
+
};
|
|
18077
|
+
return {
|
|
18078
|
+
x: vector.x / length,
|
|
18079
|
+
y: vector.y / length
|
|
18080
|
+
};
|
|
18081
|
+
}
|
|
18082
|
+
|
|
17879
18083
|
/**
|
|
17880
|
-
*
|
|
17881
|
-
* @type number
|
|
18084
|
+
* Get the maximum allowed radius for a corner based on adjacent edge lengths
|
|
17882
18085
|
*/
|
|
18086
|
+
function getMaxRadius(prevPoint, currentPoint, nextPoint) {
|
|
18087
|
+
const dist1 = pointDistance(prevPoint, currentPoint);
|
|
18088
|
+
const dist2 = pointDistance(currentPoint, nextPoint);
|
|
18089
|
+
return Math.min(dist1, dist2) / 2;
|
|
18090
|
+
}
|
|
18091
|
+
|
|
17883
18092
|
/**
|
|
17884
|
-
*
|
|
17885
|
-
* @type number
|
|
18093
|
+
* Calculate rounded corner data for a single corner
|
|
17886
18094
|
*/
|
|
17887
|
-
|
|
17888
|
-
|
|
17889
|
-
|
|
17890
|
-
|
|
17891
|
-
|
|
18095
|
+
function calculateRoundedCorner(prevPoint, currentPoint, nextPoint, radius) {
|
|
18096
|
+
// Calculate edge vectors
|
|
18097
|
+
const edge1 = {
|
|
18098
|
+
x: currentPoint.x - prevPoint.x,
|
|
18099
|
+
y: currentPoint.y - prevPoint.y
|
|
18100
|
+
};
|
|
18101
|
+
const edge2 = {
|
|
18102
|
+
x: nextPoint.x - currentPoint.x,
|
|
18103
|
+
y: nextPoint.y - currentPoint.y
|
|
18104
|
+
};
|
|
18105
|
+
|
|
18106
|
+
// Normalize edge vectors
|
|
18107
|
+
const norm1 = normalizeVector(edge1);
|
|
18108
|
+
const norm2 = normalizeVector(edge2);
|
|
18109
|
+
|
|
18110
|
+
// Calculate the maximum allowed radius
|
|
18111
|
+
const maxRadius = getMaxRadius(prevPoint, currentPoint, nextPoint);
|
|
18112
|
+
const actualRadius = Math.min(radius, maxRadius);
|
|
18113
|
+
|
|
18114
|
+
// Calculate start and end points of the rounded corner
|
|
18115
|
+
const startPoint = {
|
|
18116
|
+
x: currentPoint.x - norm1.x * actualRadius,
|
|
18117
|
+
y: currentPoint.y - norm1.y * actualRadius
|
|
18118
|
+
};
|
|
18119
|
+
const endPoint = {
|
|
18120
|
+
x: currentPoint.x + norm2.x * actualRadius,
|
|
18121
|
+
y: currentPoint.y + norm2.y * actualRadius
|
|
18122
|
+
};
|
|
18123
|
+
|
|
18124
|
+
// Calculate control points for bezier curve
|
|
18125
|
+
// Using the magic number kRect for optimal circular approximation
|
|
18126
|
+
const controlOffset = actualRadius * kRect;
|
|
18127
|
+
const cp1 = {
|
|
18128
|
+
x: startPoint.x + norm1.x * controlOffset,
|
|
18129
|
+
y: startPoint.y + norm1.y * controlOffset
|
|
18130
|
+
};
|
|
18131
|
+
const cp2 = {
|
|
18132
|
+
x: endPoint.x - norm2.x * controlOffset,
|
|
18133
|
+
y: endPoint.y - norm2.y * controlOffset
|
|
18134
|
+
};
|
|
18135
|
+
return {
|
|
18136
|
+
corner: currentPoint,
|
|
18137
|
+
start: startPoint,
|
|
18138
|
+
end: endPoint,
|
|
18139
|
+
cp1,
|
|
18140
|
+
cp2,
|
|
18141
|
+
actualRadius
|
|
18142
|
+
};
|
|
18143
|
+
}
|
|
18144
|
+
|
|
18145
|
+
/**
|
|
18146
|
+
* Apply corner radius to a polygon defined by points
|
|
18147
|
+
*/
|
|
18148
|
+
function applyCornerRadiusToPolygon(points, radius) {
|
|
18149
|
+
let radiusAsPercentage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
18150
|
+
if (points.length < 3) {
|
|
18151
|
+
throw new Error('Polygon must have at least 3 points');
|
|
18152
|
+
}
|
|
18153
|
+
|
|
18154
|
+
// Calculate bounding box if radius is percentage-based
|
|
18155
|
+
let actualRadius = radius;
|
|
18156
|
+
if (radiusAsPercentage) {
|
|
18157
|
+
const minX = Math.min(...points.map(p => p.x));
|
|
18158
|
+
const maxX = Math.max(...points.map(p => p.x));
|
|
18159
|
+
const minY = Math.min(...points.map(p => p.y));
|
|
18160
|
+
const maxY = Math.max(...points.map(p => p.y));
|
|
18161
|
+
const width = maxX - minX;
|
|
18162
|
+
const height = maxY - minY;
|
|
18163
|
+
const minDimension = Math.min(width, height);
|
|
18164
|
+
actualRadius = radius / 100 * minDimension;
|
|
18165
|
+
}
|
|
18166
|
+
const roundedCorners = [];
|
|
18167
|
+
for (let i = 0; i < points.length; i++) {
|
|
18168
|
+
const prevIndex = (i - 1 + points.length) % points.length;
|
|
18169
|
+
const nextIndex = (i + 1) % points.length;
|
|
18170
|
+
const prevPoint = points[prevIndex];
|
|
18171
|
+
const currentPoint = points[i];
|
|
18172
|
+
const nextPoint = points[nextIndex];
|
|
18173
|
+
const roundedCorner = calculateRoundedCorner(prevPoint, currentPoint, nextPoint, actualRadius);
|
|
18174
|
+
roundedCorners.push(roundedCorner);
|
|
18175
|
+
}
|
|
18176
|
+
return roundedCorners;
|
|
18177
|
+
}
|
|
18178
|
+
|
|
18179
|
+
/**
|
|
18180
|
+
* Render a rounded polygon to a canvas context
|
|
18181
|
+
*/
|
|
18182
|
+
function renderRoundedPolygon(ctx, roundedCorners) {
|
|
18183
|
+
let closed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
18184
|
+
if (roundedCorners.length === 0) return;
|
|
18185
|
+
ctx.beginPath();
|
|
18186
|
+
|
|
18187
|
+
// Start at the first corner's start point
|
|
18188
|
+
const firstCorner = roundedCorners[0];
|
|
18189
|
+
ctx.moveTo(firstCorner.start.x, firstCorner.start.y);
|
|
18190
|
+
for (let i = 0; i < roundedCorners.length; i++) {
|
|
18191
|
+
const corner = roundedCorners[i];
|
|
18192
|
+
const nextIndex = (i + 1) % roundedCorners.length;
|
|
18193
|
+
const nextCorner = roundedCorners[nextIndex];
|
|
18194
|
+
|
|
18195
|
+
// Draw the rounded corner using bezier curve
|
|
18196
|
+
ctx.bezierCurveTo(corner.cp1.x, corner.cp1.y, corner.cp2.x, corner.cp2.y, corner.end.x, corner.end.y);
|
|
18197
|
+
|
|
18198
|
+
// Draw line to next corner's start point (if not the last segment in open path)
|
|
18199
|
+
if (i < roundedCorners.length - 1 || closed) {
|
|
18200
|
+
ctx.lineTo(nextCorner.start.x, nextCorner.start.y);
|
|
18201
|
+
}
|
|
18202
|
+
}
|
|
18203
|
+
if (closed) {
|
|
18204
|
+
ctx.closePath();
|
|
18205
|
+
}
|
|
18206
|
+
}
|
|
18207
|
+
|
|
18208
|
+
/**
|
|
18209
|
+
* Generate SVG path data for a rounded polygon
|
|
18210
|
+
*/
|
|
18211
|
+
function generateRoundedPolygonPath(roundedCorners) {
|
|
18212
|
+
let closed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
18213
|
+
if (roundedCorners.length === 0) return '';
|
|
18214
|
+
const pathData = [];
|
|
18215
|
+
const firstCorner = roundedCorners[0];
|
|
18216
|
+
|
|
18217
|
+
// Move to first corner's start point
|
|
18218
|
+
pathData.push(`M ${firstCorner.start.x} ${firstCorner.start.y}`);
|
|
18219
|
+
for (let i = 0; i < roundedCorners.length; i++) {
|
|
18220
|
+
const corner = roundedCorners[i];
|
|
18221
|
+
const nextIndex = (i + 1) % roundedCorners.length;
|
|
18222
|
+
const nextCorner = roundedCorners[nextIndex];
|
|
18223
|
+
|
|
18224
|
+
// Add bezier curve for the rounded corner
|
|
18225
|
+
pathData.push(`C ${corner.cp1.x} ${corner.cp1.y} ${corner.cp2.x} ${corner.cp2.y} ${corner.end.x} ${corner.end.y}`);
|
|
18226
|
+
|
|
18227
|
+
// Add line to next corner's start point (if not the last segment in open path)
|
|
18228
|
+
if (i < roundedCorners.length - 1 || closed) {
|
|
18229
|
+
pathData.push(`L ${nextCorner.start.x} ${nextCorner.start.y}`);
|
|
18230
|
+
}
|
|
18231
|
+
}
|
|
18232
|
+
if (closed) {
|
|
18233
|
+
pathData.push('Z');
|
|
18234
|
+
}
|
|
18235
|
+
return pathData.join(' ');
|
|
18236
|
+
}
|
|
17892
18237
|
|
|
17893
18238
|
const triangleDefaultValues = {
|
|
17894
18239
|
width: 100,
|
|
17895
|
-
height: 100
|
|
18240
|
+
height: 100,
|
|
18241
|
+
cornerRadius: 0
|
|
17896
18242
|
};
|
|
18243
|
+
const TRIANGLE_PROPS = ['cornerRadius'];
|
|
17897
18244
|
class Triangle extends FabricObject {
|
|
17898
18245
|
static getDefaults() {
|
|
17899
18246
|
return {
|
|
@@ -17912,34 +18259,90 @@ class Triangle extends FabricObject {
|
|
|
17912
18259
|
this.setOptions(options);
|
|
17913
18260
|
}
|
|
17914
18261
|
|
|
18262
|
+
/**
|
|
18263
|
+
* Get triangle points as an array of XY coordinates
|
|
18264
|
+
* @private
|
|
18265
|
+
*/
|
|
18266
|
+
_getTrianglePoints() {
|
|
18267
|
+
const widthBy2 = this.width / 2;
|
|
18268
|
+
const heightBy2 = this.height / 2;
|
|
18269
|
+
return [{
|
|
18270
|
+
x: -widthBy2,
|
|
18271
|
+
y: heightBy2
|
|
18272
|
+
},
|
|
18273
|
+
// bottom left
|
|
18274
|
+
{
|
|
18275
|
+
x: 0,
|
|
18276
|
+
y: -heightBy2
|
|
18277
|
+
},
|
|
18278
|
+
// top center
|
|
18279
|
+
{
|
|
18280
|
+
x: widthBy2,
|
|
18281
|
+
y: heightBy2
|
|
18282
|
+
} // bottom right
|
|
18283
|
+
];
|
|
18284
|
+
}
|
|
18285
|
+
|
|
17915
18286
|
/**
|
|
17916
18287
|
* @private
|
|
17917
18288
|
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
17918
18289
|
*/
|
|
17919
18290
|
_render(ctx) {
|
|
17920
|
-
|
|
17921
|
-
|
|
17922
|
-
|
|
17923
|
-
|
|
17924
|
-
|
|
17925
|
-
|
|
17926
|
-
|
|
18291
|
+
if (this.cornerRadius > 0) {
|
|
18292
|
+
// Render rounded triangle
|
|
18293
|
+
const points = this._getTrianglePoints();
|
|
18294
|
+
const roundedCorners = applyCornerRadiusToPolygon(points, this.cornerRadius);
|
|
18295
|
+
renderRoundedPolygon(ctx, roundedCorners, true);
|
|
18296
|
+
} else {
|
|
18297
|
+
// Render sharp triangle (original implementation)
|
|
18298
|
+
const widthBy2 = this.width / 2;
|
|
18299
|
+
const heightBy2 = this.height / 2;
|
|
18300
|
+
ctx.beginPath();
|
|
18301
|
+
ctx.moveTo(-widthBy2, heightBy2);
|
|
18302
|
+
ctx.lineTo(0, -heightBy2);
|
|
18303
|
+
ctx.lineTo(widthBy2, heightBy2);
|
|
18304
|
+
ctx.closePath();
|
|
18305
|
+
}
|
|
17927
18306
|
this._renderPaintInOrder(ctx);
|
|
17928
18307
|
}
|
|
17929
18308
|
|
|
18309
|
+
/**
|
|
18310
|
+
* Returns object representation of an instance
|
|
18311
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
18312
|
+
* @return {Object} object representation of an instance
|
|
18313
|
+
*/
|
|
18314
|
+
toObject() {
|
|
18315
|
+
let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18316
|
+
return super.toObject([...TRIANGLE_PROPS, ...propertiesToInclude]);
|
|
18317
|
+
}
|
|
18318
|
+
|
|
17930
18319
|
/**
|
|
17931
18320
|
* Returns svg representation of an instance
|
|
17932
18321
|
* @return {Array} an array of strings with the specific svg representation
|
|
17933
18322
|
* of the instance
|
|
17934
18323
|
*/
|
|
17935
18324
|
_toSVG() {
|
|
17936
|
-
|
|
17937
|
-
|
|
17938
|
-
points =
|
|
17939
|
-
|
|
18325
|
+
if (this.cornerRadius > 0) {
|
|
18326
|
+
// Generate rounded triangle as path
|
|
18327
|
+
const points = this._getTrianglePoints();
|
|
18328
|
+
const roundedCorners = applyCornerRadiusToPolygon(points, this.cornerRadius);
|
|
18329
|
+
const pathData = generateRoundedPolygonPath(roundedCorners, true);
|
|
18330
|
+
return ['<path ', 'COMMON_PARTS', `d="${pathData}" />`];
|
|
18331
|
+
} else {
|
|
18332
|
+
// Original sharp triangle implementation
|
|
18333
|
+
const widthBy2 = this.width / 2;
|
|
18334
|
+
const heightBy2 = this.height / 2;
|
|
18335
|
+
const points = `${-widthBy2} ${heightBy2},0 ${-heightBy2},${widthBy2} ${heightBy2}`;
|
|
18336
|
+
return ['<polygon ', 'COMMON_PARTS', 'points="', points, '" />'];
|
|
18337
|
+
}
|
|
17940
18338
|
}
|
|
17941
18339
|
}
|
|
18340
|
+
/**
|
|
18341
|
+
* Corner radius for rounded triangle corners
|
|
18342
|
+
* @type Number
|
|
18343
|
+
*/
|
|
17942
18344
|
_defineProperty(Triangle, "type", 'Triangle');
|
|
18345
|
+
_defineProperty(Triangle, "cacheProperties", [...cacheProperties, ...TRIANGLE_PROPS]);
|
|
17943
18346
|
_defineProperty(Triangle, "ownDefaults", triangleDefaultValues);
|
|
17944
18347
|
classRegistry.setClass(Triangle);
|
|
17945
18348
|
classRegistry.setSVGClass(Triangle);
|
|
@@ -18104,7 +18507,8 @@ const polylineDefaultValues = {
|
|
|
18104
18507
|
/**
|
|
18105
18508
|
* @deprecated transient option soon to be removed in favor of a different design
|
|
18106
18509
|
*/
|
|
18107
|
-
exactBoundingBox: false
|
|
18510
|
+
exactBoundingBox: false,
|
|
18511
|
+
cornerRadius: 0
|
|
18108
18512
|
};
|
|
18109
18513
|
class Polyline extends FabricObject {
|
|
18110
18514
|
static getDefaults() {
|
|
@@ -18318,7 +18722,7 @@ class Polyline extends FabricObject {
|
|
|
18318
18722
|
toObject() {
|
|
18319
18723
|
let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18320
18724
|
return {
|
|
18321
|
-
...super.toObject(propertiesToInclude),
|
|
18725
|
+
...super.toObject(['cornerRadius', ...propertiesToInclude]),
|
|
18322
18726
|
points: this.points.map(_ref => {
|
|
18323
18727
|
let {
|
|
18324
18728
|
x,
|
|
@@ -18338,14 +18742,28 @@ class Polyline extends FabricObject {
|
|
|
18338
18742
|
* of the instance
|
|
18339
18743
|
*/
|
|
18340
18744
|
_toSVG() {
|
|
18341
|
-
|
|
18342
|
-
|
|
18343
|
-
|
|
18344
|
-
|
|
18345
|
-
|
|
18346
|
-
|
|
18745
|
+
if (this.cornerRadius > 0 && this.points.length >= 3) {
|
|
18746
|
+
// Generate rounded polygon/polyline as path
|
|
18747
|
+
const diffX = this.pathOffset.x;
|
|
18748
|
+
const diffY = this.pathOffset.y;
|
|
18749
|
+
const adjustedPoints = this.points.map(point => ({
|
|
18750
|
+
x: point.x - diffX,
|
|
18751
|
+
y: point.y - diffY
|
|
18752
|
+
}));
|
|
18753
|
+
const roundedCorners = applyCornerRadiusToPolygon(adjustedPoints, this.cornerRadius);
|
|
18754
|
+
const pathData = generateRoundedPolygonPath(roundedCorners, !this.isOpen());
|
|
18755
|
+
return ['<path ', 'COMMON_PARTS', `d="${pathData}" />\n`];
|
|
18756
|
+
} else {
|
|
18757
|
+
// Original sharp corners implementation
|
|
18758
|
+
const points = [];
|
|
18759
|
+
const diffX = this.pathOffset.x;
|
|
18760
|
+
const diffY = this.pathOffset.y;
|
|
18761
|
+
const NUM_FRACTION_DIGITS = config.NUM_FRACTION_DIGITS;
|
|
18762
|
+
for (let i = 0, len = this.points.length; i < len; i++) {
|
|
18763
|
+
points.push(toFixed(this.points[i].x - diffX, NUM_FRACTION_DIGITS), ',', toFixed(this.points[i].y - diffY, NUM_FRACTION_DIGITS), ' ');
|
|
18764
|
+
}
|
|
18765
|
+
return [`<${this.constructor.type.toLowerCase()} `, 'COMMON_PARTS', `points="${points.join('')}" />\n`];
|
|
18347
18766
|
}
|
|
18348
|
-
return [`<${this.constructor.type.toLowerCase()} `, 'COMMON_PARTS', `points="${points.join('')}" />\n`];
|
|
18349
18767
|
}
|
|
18350
18768
|
|
|
18351
18769
|
/**
|
|
@@ -18361,13 +18779,24 @@ class Polyline extends FabricObject {
|
|
|
18361
18779
|
// NaN comes from parseFloat of a empty string in parser
|
|
18362
18780
|
return;
|
|
18363
18781
|
}
|
|
18364
|
-
|
|
18365
|
-
|
|
18366
|
-
|
|
18367
|
-
|
|
18368
|
-
|
|
18782
|
+
if (this.cornerRadius > 0 && len >= 3) {
|
|
18783
|
+
// Render with rounded corners
|
|
18784
|
+
const adjustedPoints = this.points.map(point => ({
|
|
18785
|
+
x: point.x - x,
|
|
18786
|
+
y: point.y - y
|
|
18787
|
+
}));
|
|
18788
|
+
const roundedCorners = applyCornerRadiusToPolygon(adjustedPoints, this.cornerRadius);
|
|
18789
|
+
renderRoundedPolygon(ctx, roundedCorners, !this.isOpen());
|
|
18790
|
+
} else {
|
|
18791
|
+
// Original sharp corners implementation
|
|
18792
|
+
ctx.beginPath();
|
|
18793
|
+
ctx.moveTo(this.points[0].x - x, this.points[0].y - y);
|
|
18794
|
+
for (let i = 0; i < len; i++) {
|
|
18795
|
+
const point = this.points[i];
|
|
18796
|
+
ctx.lineTo(point.x - x, point.y - y);
|
|
18797
|
+
}
|
|
18798
|
+
!this.isOpen() && ctx.closePath();
|
|
18369
18799
|
}
|
|
18370
|
-
!this.isOpen() && ctx.closePath();
|
|
18371
18800
|
this._renderPaintInOrder(ctx);
|
|
18372
18801
|
}
|
|
18373
18802
|
|
|
@@ -18432,10 +18861,15 @@ class Polyline extends FabricObject {
|
|
|
18432
18861
|
* @type Boolean
|
|
18433
18862
|
* @default false
|
|
18434
18863
|
*/
|
|
18864
|
+
/**
|
|
18865
|
+
* Corner radius for rounded corners
|
|
18866
|
+
* @type Number
|
|
18867
|
+
* @default 0
|
|
18868
|
+
*/
|
|
18435
18869
|
_defineProperty(Polyline, "ownDefaults", polylineDefaultValues);
|
|
18436
18870
|
_defineProperty(Polyline, "type", 'Polyline');
|
|
18437
18871
|
_defineProperty(Polyline, "layoutProperties", [SKEW_X, SKEW_Y, 'strokeLineCap', 'strokeLineJoin', 'strokeMiterLimit', 'strokeWidth', 'strokeUniform', 'points']);
|
|
18438
|
-
_defineProperty(Polyline, "cacheProperties", [...cacheProperties, 'points']);
|
|
18872
|
+
_defineProperty(Polyline, "cacheProperties", [...cacheProperties, 'points', 'cornerRadius']);
|
|
18439
18873
|
_defineProperty(Polyline, "ATTRIBUTE_NAMES", [...SHARED_ATTRIBUTES]);
|
|
18440
18874
|
classRegistry.setClass(Polyline);
|
|
18441
18875
|
classRegistry.setSVGClass(Polyline);
|
|
@@ -18729,8 +19163,8 @@ _defineProperty(StyledText, "_styleProperties", styleProperties);
|
|
|
18729
19163
|
// Global measurement context - reused for performance
|
|
18730
19164
|
let measurementContext = null;
|
|
18731
19165
|
|
|
18732
|
-
/**
|
|
18733
|
-
* Get or create the shared measurement context
|
|
19166
|
+
/**
|
|
19167
|
+
* Get or create the shared measurement context
|
|
18734
19168
|
*/
|
|
18735
19169
|
function getMeasurementContext() {
|
|
18736
19170
|
if (!measurementContext) {
|
|
@@ -18743,8 +19177,8 @@ function getMeasurementContext() {
|
|
|
18743
19177
|
return measurementContext;
|
|
18744
19178
|
}
|
|
18745
19179
|
|
|
18746
|
-
/**
|
|
18747
|
-
* Measure a single grapheme
|
|
19180
|
+
/**
|
|
19181
|
+
* Measure a single grapheme
|
|
18748
19182
|
*/
|
|
18749
19183
|
function measureGrapheme(grapheme, options, ctx) {
|
|
18750
19184
|
// Check cache first
|
|
@@ -18777,8 +19211,8 @@ function measureGrapheme(grapheme, options, ctx) {
|
|
|
18777
19211
|
return measurement;
|
|
18778
19212
|
}
|
|
18779
19213
|
|
|
18780
|
-
/**
|
|
18781
|
-
* Measure a grapheme with kerning relative to previous character
|
|
19214
|
+
/**
|
|
19215
|
+
* Measure a grapheme with kerning relative to previous character
|
|
18782
19216
|
*/
|
|
18783
19217
|
function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
|
|
18784
19218
|
// Get individual measurement
|
|
@@ -18819,8 +19253,8 @@ function measureGraphemeWithKerning(grapheme, previousGrapheme, options, ctx) {
|
|
|
18819
19253
|
};
|
|
18820
19254
|
}
|
|
18821
19255
|
|
|
18822
|
-
/**
|
|
18823
|
-
* Get font metrics for layout calculations
|
|
19256
|
+
/**
|
|
19257
|
+
* Get font metrics for layout calculations
|
|
18824
19258
|
*/
|
|
18825
19259
|
function getFontMetrics(options) {
|
|
18826
19260
|
var _metrics$fontBounding, _metrics$fontBounding2, _metrics$actualBoundi, _metrics$actualBoundi2;
|
|
@@ -18855,8 +19289,8 @@ function getFontMetrics(options) {
|
|
|
18855
19289
|
return result;
|
|
18856
19290
|
}
|
|
18857
19291
|
|
|
18858
|
-
/**
|
|
18859
|
-
* Apply font styling to canvas context
|
|
19292
|
+
/**
|
|
19293
|
+
* Apply font styling to canvas context
|
|
18860
19294
|
*/
|
|
18861
19295
|
function applyFontStyle(ctx, options) {
|
|
18862
19296
|
const fontDeclaration = getFontDeclaration(options);
|
|
@@ -18873,8 +19307,8 @@ function applyFontStyle(ctx, options) {
|
|
|
18873
19307
|
ctx.textBaseline = 'alphabetic';
|
|
18874
19308
|
}
|
|
18875
19309
|
|
|
18876
|
-
/**
|
|
18877
|
-
* Generate font declaration string
|
|
19310
|
+
/**
|
|
19311
|
+
* Generate font declaration string
|
|
18878
19312
|
*/
|
|
18879
19313
|
function getFontDeclaration(options) {
|
|
18880
19314
|
const {
|
|
@@ -18889,8 +19323,8 @@ function getFontDeclaration(options) {
|
|
|
18889
19323
|
return `${fontStyle} ${fontWeight} ${fontSize}px ${normalizedFamily}`;
|
|
18890
19324
|
}
|
|
18891
19325
|
|
|
18892
|
-
/**
|
|
18893
|
-
* LRU Cache implementation for measurements
|
|
19326
|
+
/**
|
|
19327
|
+
* LRU Cache implementation for measurements
|
|
18894
19328
|
*/
|
|
18895
19329
|
class LRUCache {
|
|
18896
19330
|
constructor() {
|
|
@@ -18952,8 +19386,8 @@ class LRUCache {
|
|
|
18952
19386
|
}
|
|
18953
19387
|
}
|
|
18954
19388
|
|
|
18955
|
-
/**
|
|
18956
|
-
* Advanced measurement cache with font-aware keys
|
|
19389
|
+
/**
|
|
19390
|
+
* Advanced measurement cache with font-aware keys
|
|
18957
19391
|
*/
|
|
18958
19392
|
class MeasurementCache {
|
|
18959
19393
|
constructor() {
|
|
@@ -18980,8 +19414,8 @@ class MeasurementCache {
|
|
|
18980
19414
|
}
|
|
18981
19415
|
}
|
|
18982
19416
|
|
|
18983
|
-
/**
|
|
18984
|
-
* Kerning cache for character pairs
|
|
19417
|
+
/**
|
|
19418
|
+
* Kerning cache for character pairs
|
|
18985
19419
|
*/
|
|
18986
19420
|
class KerningCache {
|
|
18987
19421
|
constructor() {
|
|
@@ -19009,8 +19443,8 @@ class KerningCache {
|
|
|
19009
19443
|
}
|
|
19010
19444
|
}
|
|
19011
19445
|
|
|
19012
|
-
/**
|
|
19013
|
-
* Font metrics cache
|
|
19446
|
+
/**
|
|
19447
|
+
* Font metrics cache
|
|
19014
19448
|
*/
|
|
19015
19449
|
class FontMetricsCache {
|
|
19016
19450
|
constructor() {
|
|
@@ -19037,17 +19471,17 @@ const measurementCache = new MeasurementCache();
|
|
|
19037
19471
|
const kerningCache = new KerningCache();
|
|
19038
19472
|
const fontMetricsCache = new FontMetricsCache();
|
|
19039
19473
|
|
|
19040
|
-
/**
|
|
19041
|
-
* Unicode and Internationalization Support
|
|
19042
|
-
*
|
|
19043
|
-
* Enhanced Unicode handling for complex scripts, RTL/LTR text,
|
|
19044
|
-
* and grapheme cluster boundary detection.
|
|
19474
|
+
/**
|
|
19475
|
+
* Unicode and Internationalization Support
|
|
19476
|
+
*
|
|
19477
|
+
* Enhanced Unicode handling for complex scripts, RTL/LTR text,
|
|
19478
|
+
* and grapheme cluster boundary detection.
|
|
19045
19479
|
*/
|
|
19046
19480
|
|
|
19047
19481
|
|
|
19048
|
-
/**
|
|
19049
|
-
* Enhanced grapheme segmentation using Intl.Segmenter when available
|
|
19050
|
-
* with fallback to existing graphemeSplit implementation
|
|
19482
|
+
/**
|
|
19483
|
+
* Enhanced grapheme segmentation using Intl.Segmenter when available
|
|
19484
|
+
* with fallback to existing graphemeSplit implementation
|
|
19051
19485
|
*/
|
|
19052
19486
|
function segmentGraphemes(text) {
|
|
19053
19487
|
// Use native Intl.Segmenter if available
|
|
@@ -19067,15 +19501,15 @@ function segmentGraphemes(text) {
|
|
|
19067
19501
|
return graphemeSplit(text);
|
|
19068
19502
|
}
|
|
19069
19503
|
|
|
19070
|
-
/**
|
|
19071
|
-
* Ellipsis Text Truncation System
|
|
19072
|
-
*
|
|
19073
|
-
* Implements text truncation with ellipsis when content exceeds bounds,
|
|
19074
|
-
* using binary search for optimal truncation points.
|
|
19504
|
+
/**
|
|
19505
|
+
* Ellipsis Text Truncation System
|
|
19506
|
+
*
|
|
19507
|
+
* Implements text truncation with ellipsis when content exceeds bounds,
|
|
19508
|
+
* using binary search for optimal truncation points.
|
|
19075
19509
|
*/
|
|
19076
19510
|
|
|
19077
|
-
/**
|
|
19078
|
-
* Apply ellipsis truncation to text based on width/height constraints
|
|
19511
|
+
/**
|
|
19512
|
+
* Apply ellipsis truncation to text based on width/height constraints
|
|
19079
19513
|
*/
|
|
19080
19514
|
function applyEllipsis(text, options) {
|
|
19081
19515
|
const {
|
|
@@ -19145,8 +19579,8 @@ function applyEllipsis(text, options) {
|
|
|
19145
19579
|
};
|
|
19146
19580
|
}
|
|
19147
19581
|
|
|
19148
|
-
/**
|
|
19149
|
-
* Truncate text based on width constraint using binary search
|
|
19582
|
+
/**
|
|
19583
|
+
* Truncate text based on width constraint using binary search
|
|
19150
19584
|
*/
|
|
19151
19585
|
function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn) {
|
|
19152
19586
|
const graphemes = segmentGraphemes(text);
|
|
@@ -19196,8 +19630,8 @@ function truncateByWidth(text, maxWidth, ellipsisChar, ellipsisWidth, measureFn)
|
|
|
19196
19630
|
};
|
|
19197
19631
|
}
|
|
19198
19632
|
|
|
19199
|
-
/**
|
|
19200
|
-
* Truncate text based on height constraint
|
|
19633
|
+
/**
|
|
19634
|
+
* Truncate text based on height constraint
|
|
19201
19635
|
*/
|
|
19202
19636
|
function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
|
|
19203
19637
|
var _measureFn;
|
|
@@ -19245,19 +19679,19 @@ function truncateByHeight(text, maxHeight, ellipsisChar, measureFn) {
|
|
|
19245
19679
|
return truncateByWidth(lines[0], firstLineWidth, ellipsisChar, 0, measureFn);
|
|
19246
19680
|
}
|
|
19247
19681
|
|
|
19248
|
-
/**
|
|
19249
|
-
* Core Text Layout Engine
|
|
19250
|
-
*
|
|
19251
|
-
* Implements Konva-compatible text layout with support for:
|
|
19252
|
-
* - Multiple wrap modes (word/char/none)
|
|
19253
|
-
* - Ellipsis truncation
|
|
19254
|
-
* - Justify alignment with proper space distribution
|
|
19255
|
-
* - RTL/LTR text direction
|
|
19256
|
-
* - Advanced grapheme handling
|
|
19682
|
+
/**
|
|
19683
|
+
* Core Text Layout Engine
|
|
19684
|
+
*
|
|
19685
|
+
* Implements Konva-compatible text layout with support for:
|
|
19686
|
+
* - Multiple wrap modes (word/char/none)
|
|
19687
|
+
* - Ellipsis truncation
|
|
19688
|
+
* - Justify alignment with proper space distribution
|
|
19689
|
+
* - RTL/LTR text direction
|
|
19690
|
+
* - Advanced grapheme handling
|
|
19257
19691
|
*/
|
|
19258
19692
|
|
|
19259
|
-
/**
|
|
19260
|
-
* Main text layout function - converts text and options into positioned layout
|
|
19693
|
+
/**
|
|
19694
|
+
* Main text layout function - converts text and options into positioned layout
|
|
19261
19695
|
*/
|
|
19262
19696
|
function layoutText(options) {
|
|
19263
19697
|
var _ellipsisResult;
|
|
@@ -19376,8 +19810,8 @@ function layoutText(options) {
|
|
|
19376
19810
|
};
|
|
19377
19811
|
}
|
|
19378
19812
|
|
|
19379
|
-
/**
|
|
19380
|
-
* Layout a single paragraph with wrapping
|
|
19813
|
+
/**
|
|
19814
|
+
* Layout a single paragraph with wrapping
|
|
19381
19815
|
*/
|
|
19382
19816
|
function layoutParagraph(text, options) {
|
|
19383
19817
|
const {
|
|
@@ -19412,8 +19846,8 @@ function layoutParagraph(text, options) {
|
|
|
19412
19846
|
return layoutLines;
|
|
19413
19847
|
}
|
|
19414
19848
|
|
|
19415
|
-
/**
|
|
19416
|
-
* Layout a single line of text (no wrapping)
|
|
19849
|
+
/**
|
|
19850
|
+
* Layout a single line of text (no wrapping)
|
|
19417
19851
|
*/
|
|
19418
19852
|
function layoutSingleLine(text, options) {
|
|
19419
19853
|
let textOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
@@ -19483,8 +19917,8 @@ function layoutSingleLine(text, options) {
|
|
|
19483
19917
|
};
|
|
19484
19918
|
}
|
|
19485
19919
|
|
|
19486
|
-
/**
|
|
19487
|
-
* Word-based wrapping algorithm
|
|
19920
|
+
/**
|
|
19921
|
+
* Word-based wrapping algorithm
|
|
19488
19922
|
*/
|
|
19489
19923
|
function wrapByWords(text, maxWidth, options) {
|
|
19490
19924
|
const lines = [];
|
|
@@ -19517,8 +19951,8 @@ function wrapByWords(text, maxWidth, options) {
|
|
|
19517
19951
|
return lines.length > 0 ? lines : [''];
|
|
19518
19952
|
}
|
|
19519
19953
|
|
|
19520
|
-
/**
|
|
19521
|
-
* Character-based wrapping algorithm
|
|
19954
|
+
/**
|
|
19955
|
+
* Character-based wrapping algorithm
|
|
19522
19956
|
*/
|
|
19523
19957
|
function wrapByCharacters(text, maxWidth, options) {
|
|
19524
19958
|
const lines = [];
|
|
@@ -19540,8 +19974,8 @@ function wrapByCharacters(text, maxWidth, options) {
|
|
|
19540
19974
|
return lines.length > 0 ? lines : [''];
|
|
19541
19975
|
}
|
|
19542
19976
|
|
|
19543
|
-
/**
|
|
19544
|
-
* Apply text alignment to lines
|
|
19977
|
+
/**
|
|
19978
|
+
* Apply text alignment to lines
|
|
19545
19979
|
*/
|
|
19546
19980
|
function applyAlignment(lines, align, containerWidth, options) {
|
|
19547
19981
|
return lines.map(line => {
|
|
@@ -19575,8 +20009,8 @@ function applyAlignment(lines, align, containerWidth, options) {
|
|
|
19575
20009
|
});
|
|
19576
20010
|
}
|
|
19577
20011
|
|
|
19578
|
-
/**
|
|
19579
|
-
* Apply justify alignment by expanding spaces
|
|
20012
|
+
/**
|
|
20013
|
+
* Apply justify alignment by expanding spaces
|
|
19580
20014
|
*/
|
|
19581
20015
|
function applyJustification(line, containerWidth, options) {
|
|
19582
20016
|
const spaces = line.graphemes.filter(g => /\s/.test(g)).length;
|
|
@@ -19599,8 +20033,8 @@ function applyJustification(line, containerWidth, options) {
|
|
|
19599
20033
|
return line;
|
|
19600
20034
|
}
|
|
19601
20035
|
|
|
19602
|
-
/**
|
|
19603
|
-
* Calculate vertical alignment offset
|
|
20036
|
+
/**
|
|
20037
|
+
* Calculate vertical alignment offset
|
|
19604
20038
|
*/
|
|
19605
20039
|
function calculateVerticalOffset(contentHeight, containerHeight, align) {
|
|
19606
20040
|
switch (align) {
|
|
@@ -19614,8 +20048,8 @@ function calculateVerticalOffset(contentHeight, containerHeight, align) {
|
|
|
19614
20048
|
}
|
|
19615
20049
|
}
|
|
19616
20050
|
|
|
19617
|
-
/**
|
|
19618
|
-
* Handle height overflow with ellipsis
|
|
20051
|
+
/**
|
|
20052
|
+
* Handle height overflow with ellipsis
|
|
19619
20053
|
*/
|
|
19620
20054
|
function handleHeightOverflow(existingLines, overflowLine, remainingHeight, options) {
|
|
19621
20055
|
// If ellipsis is enabled, try to fit part of the overflow line
|
|
@@ -19644,8 +20078,8 @@ function handleHeightOverflow(existingLines, overflowLine, remainingHeight, opti
|
|
|
19644
20078
|
};
|
|
19645
20079
|
}
|
|
19646
20080
|
|
|
19647
|
-
/**
|
|
19648
|
-
* Create empty line for empty paragraphs
|
|
20081
|
+
/**
|
|
20082
|
+
* Create empty line for empty paragraphs
|
|
19649
20083
|
*/
|
|
19650
20084
|
function createEmptyLine(options) {
|
|
19651
20085
|
const height = options.fontSize * options.lineHeight;
|
|
@@ -19661,8 +20095,8 @@ function createEmptyLine(options) {
|
|
|
19661
20095
|
};
|
|
19662
20096
|
}
|
|
19663
20097
|
|
|
19664
|
-
/**
|
|
19665
|
-
* Measure width of a line of text
|
|
20098
|
+
/**
|
|
20099
|
+
* Measure width of a line of text
|
|
19666
20100
|
*/
|
|
19667
20101
|
function measureLineWidth(text, options) {
|
|
19668
20102
|
const graphemes = segmentGraphemes(text);
|
|
@@ -19679,8 +20113,8 @@ function measureLineWidth(text, options) {
|
|
|
19679
20113
|
return width;
|
|
19680
20114
|
}
|
|
19681
20115
|
|
|
19682
|
-
/**
|
|
19683
|
-
* Convert layout options to measurement options
|
|
20116
|
+
/**
|
|
20117
|
+
* Convert layout options to measurement options
|
|
19684
20118
|
*/
|
|
19685
20119
|
function createMeasurementOptions(options) {
|
|
19686
20120
|
return {
|
|
@@ -19923,15 +20357,15 @@ class TextSVGExportMixin extends FabricObjectSVGExportMixin {
|
|
|
19923
20357
|
}
|
|
19924
20358
|
}
|
|
19925
20359
|
|
|
19926
|
-
/**
|
|
19927
|
-
* Browser Line Break Extraction
|
|
19928
|
-
*
|
|
19929
|
-
* Captures exact line breaks as rendered by the browser to ensure
|
|
19930
|
-
* pixel-perfect consistency between DOM editing and canvas rendering.
|
|
20360
|
+
/**
|
|
20361
|
+
* Browser Line Break Extraction
|
|
20362
|
+
*
|
|
20363
|
+
* Captures exact line breaks as rendered by the browser to ensure
|
|
20364
|
+
* pixel-perfect consistency between DOM editing and canvas rendering.
|
|
19931
20365
|
*/
|
|
19932
20366
|
|
|
19933
|
-
/**
|
|
19934
|
-
* Segment text into graphemes safely using Intl.Segmenter or fallback
|
|
20367
|
+
/**
|
|
20368
|
+
* Segment text into graphemes safely using Intl.Segmenter or fallback
|
|
19935
20369
|
*/
|
|
19936
20370
|
function segmentIntoGraphemes(text) {
|
|
19937
20371
|
if (typeof Intl !== 'undefined' && Intl.Segmenter) {
|
|
@@ -19945,9 +20379,9 @@ function segmentIntoGraphemes(text) {
|
|
|
19945
20379
|
return Array.from(text);
|
|
19946
20380
|
}
|
|
19947
20381
|
|
|
19948
|
-
/**
|
|
19949
|
-
* Extract line break information from a textarea by creating a mirror element
|
|
19950
|
-
* with identical computed styles and measuring grapheme positions.
|
|
20382
|
+
/**
|
|
20383
|
+
* Extract line break information from a textarea by creating a mirror element
|
|
20384
|
+
* with identical computed styles and measuring grapheme positions.
|
|
19951
20385
|
*/
|
|
19952
20386
|
function extractLinesFromDOM(textarea) {
|
|
19953
20387
|
const text = textarea.value;
|
|
@@ -20042,16 +20476,16 @@ function extractLinesFromDOM(textarea) {
|
|
|
20042
20476
|
}
|
|
20043
20477
|
}
|
|
20044
20478
|
|
|
20045
|
-
/**
|
|
20046
|
-
* Create a hash of layout-affecting properties to detect when browser lines are still valid
|
|
20479
|
+
/**
|
|
20480
|
+
* Create a hash of layout-affecting properties to detect when browser lines are still valid
|
|
20047
20481
|
*/
|
|
20048
20482
|
function createLayoutHash(target) {
|
|
20049
20483
|
const properties = [target.text, target.width, target.height, target.fontFamily, target.fontSize, target.fontWeight, target.fontStyle, target.lineHeight, target.charSpacing, target.textAlign, target.direction];
|
|
20050
20484
|
return properties.map(p => String(p)).join('|');
|
|
20051
20485
|
}
|
|
20052
20486
|
|
|
20053
|
-
/**
|
|
20054
|
-
* Check if stored browser lines are still valid for the current target state
|
|
20487
|
+
/**
|
|
20488
|
+
* Check if stored browser lines are still valid for the current target state
|
|
20055
20489
|
*/
|
|
20056
20490
|
function areBrowserLinesValid(target, storedHash) {
|
|
20057
20491
|
if (!storedHash || !target.__lastBrowserLines) {
|
|
@@ -20061,24 +20495,24 @@ function areBrowserLinesValid(target, storedHash) {
|
|
|
20061
20495
|
return currentHash === storedHash;
|
|
20062
20496
|
}
|
|
20063
20497
|
|
|
20064
|
-
/**
|
|
20065
|
-
* Store browser lines on a target object with validity hash
|
|
20498
|
+
/**
|
|
20499
|
+
* Store browser lines on a target object with validity hash
|
|
20066
20500
|
*/
|
|
20067
20501
|
function storeBrowserLines(target, lines, layoutHash) {
|
|
20068
20502
|
target.__lastBrowserLines = lines;
|
|
20069
20503
|
target.__lastBrowserLinesHash = createLayoutHash(target);
|
|
20070
20504
|
}
|
|
20071
20505
|
|
|
20072
|
-
/**
|
|
20073
|
-
* Clear stored browser lines from a target object
|
|
20506
|
+
/**
|
|
20507
|
+
* Clear stored browser lines from a target object
|
|
20074
20508
|
*/
|
|
20075
20509
|
function clearBrowserLines(target) {
|
|
20076
20510
|
delete target.__lastBrowserLines;
|
|
20077
20511
|
delete target.__lastBrowserLinesHash;
|
|
20078
20512
|
}
|
|
20079
20513
|
|
|
20080
|
-
/**
|
|
20081
|
-
* Get stored browser lines if they're still valid
|
|
20514
|
+
/**
|
|
20515
|
+
* Get stored browser lines if they're still valid
|
|
20082
20516
|
*/
|
|
20083
20517
|
function getBrowserLines(target) {
|
|
20084
20518
|
const lines = target.__lastBrowserLines;
|
|
@@ -20091,9 +20525,9 @@ function getBrowserLines(target) {
|
|
|
20091
20525
|
|
|
20092
20526
|
let measuringContext;
|
|
20093
20527
|
|
|
20094
|
-
/**
|
|
20095
|
-
* Return a context for measurement of text string.
|
|
20096
|
-
* if created it gets stored for reuse
|
|
20528
|
+
/**
|
|
20529
|
+
* Return a context for measurement of text string.
|
|
20530
|
+
* if created it gets stored for reuse
|
|
20097
20531
|
*/
|
|
20098
20532
|
function getMeasuringContext() {
|
|
20099
20533
|
if (!measuringContext) {
|
|
@@ -20106,17 +20540,17 @@ function getMeasuringContext() {
|
|
|
20106
20540
|
return measuringContext;
|
|
20107
20541
|
}
|
|
20108
20542
|
|
|
20109
|
-
/**
|
|
20110
|
-
* Measure and return the info of a single grapheme.
|
|
20111
|
-
* needs the the info of previous graphemes already filled
|
|
20112
|
-
* Override to customize measuring
|
|
20543
|
+
/**
|
|
20544
|
+
* Measure and return the info of a single grapheme.
|
|
20545
|
+
* needs the the info of previous graphemes already filled
|
|
20546
|
+
* Override to customize measuring
|
|
20113
20547
|
*/
|
|
20114
20548
|
|
|
20115
20549
|
// @TODO this is not complete
|
|
20116
20550
|
|
|
20117
|
-
/**
|
|
20118
|
-
* Text class
|
|
20119
|
-
* @see {@link http://fabricjs.com/fabric-intro-part-2#text}
|
|
20551
|
+
/**
|
|
20552
|
+
* Text class
|
|
20553
|
+
* @see {@link http://fabricjs.com/fabric-intro-part-2#text}
|
|
20120
20554
|
*/
|
|
20121
20555
|
class FabricText extends StyledText {
|
|
20122
20556
|
static getDefaults() {
|
|
@@ -20127,11 +20561,11 @@ class FabricText extends StyledText {
|
|
|
20127
20561
|
}
|
|
20128
20562
|
constructor(text, options) {
|
|
20129
20563
|
super();
|
|
20130
|
-
/**
|
|
20131
|
-
* contains characters bounding boxes
|
|
20132
|
-
* This variable is considered to be protected.
|
|
20133
|
-
* But for how mixins are implemented right now, we can't leave it private
|
|
20134
|
-
* @protected
|
|
20564
|
+
/**
|
|
20565
|
+
* contains characters bounding boxes
|
|
20566
|
+
* This variable is considered to be protected.
|
|
20567
|
+
* But for how mixins are implemented right now, we can't leave it private
|
|
20568
|
+
* @protected
|
|
20135
20569
|
*/
|
|
20136
20570
|
_defineProperty(this, "__charBounds", []);
|
|
20137
20571
|
Object.assign(this, FabricText.ownDefaults);
|
|
@@ -20148,9 +20582,9 @@ class FabricText extends StyledText {
|
|
|
20148
20582
|
this.setCoords();
|
|
20149
20583
|
}
|
|
20150
20584
|
|
|
20151
|
-
/**
|
|
20152
|
-
* If text has a path, it will add the extra information needed
|
|
20153
|
-
* for path and text calculations
|
|
20585
|
+
/**
|
|
20586
|
+
* If text has a path, it will add the extra information needed
|
|
20587
|
+
* for path and text calculations
|
|
20154
20588
|
*/
|
|
20155
20589
|
setPathInfo() {
|
|
20156
20590
|
const path = this.path;
|
|
@@ -20159,10 +20593,10 @@ class FabricText extends StyledText {
|
|
|
20159
20593
|
}
|
|
20160
20594
|
}
|
|
20161
20595
|
|
|
20162
|
-
/**
|
|
20163
|
-
* @private
|
|
20164
|
-
* Divides text into lines of text and lines of graphemes.
|
|
20165
|
-
* Uses browser lines when available for pixel-perfect consistency.
|
|
20596
|
+
/**
|
|
20597
|
+
* @private
|
|
20598
|
+
* Divides text into lines of text and lines of graphemes.
|
|
20599
|
+
* Uses browser lines when available for pixel-perfect consistency.
|
|
20166
20600
|
*/
|
|
20167
20601
|
_splitText() {
|
|
20168
20602
|
// Check if we have valid browser lines and should use them
|
|
@@ -20178,9 +20612,9 @@ class FabricText extends StyledText {
|
|
|
20178
20612
|
return newLines;
|
|
20179
20613
|
}
|
|
20180
20614
|
|
|
20181
|
-
/**
|
|
20182
|
-
* Create TextLinesInfo from browser-extracted lines
|
|
20183
|
-
* @private
|
|
20615
|
+
/**
|
|
20616
|
+
* Create TextLinesInfo from browser-extracted lines
|
|
20617
|
+
* @private
|
|
20184
20618
|
*/
|
|
20185
20619
|
_splitTextFromBrowserLines(browserLines) {
|
|
20186
20620
|
const lines = [];
|
|
@@ -20214,10 +20648,10 @@ class FabricText extends StyledText {
|
|
|
20214
20648
|
return result;
|
|
20215
20649
|
}
|
|
20216
20650
|
|
|
20217
|
-
/**
|
|
20218
|
-
* Initialize or update text dimensions.
|
|
20219
|
-
* Updates this.width and this.height with the proper values.
|
|
20220
|
-
* Does not return dimensions.
|
|
20651
|
+
/**
|
|
20652
|
+
* Initialize or update text dimensions.
|
|
20653
|
+
* Updates this.width and this.height with the proper values.
|
|
20654
|
+
* Does not return dimensions.
|
|
20221
20655
|
*/
|
|
20222
20656
|
initDimensions() {
|
|
20223
20657
|
// Use advanced layout if enabled
|
|
@@ -20240,8 +20674,8 @@ class FabricText extends StyledText {
|
|
|
20240
20674
|
}
|
|
20241
20675
|
}
|
|
20242
20676
|
|
|
20243
|
-
/**
|
|
20244
|
-
* Enlarge space boxes and shift the others
|
|
20677
|
+
/**
|
|
20678
|
+
* Enlarge space boxes and shift the others
|
|
20245
20679
|
*/
|
|
20246
20680
|
enlargeSpaces() {
|
|
20247
20681
|
let diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;
|
|
@@ -20300,18 +20734,18 @@ class FabricText extends StyledText {
|
|
|
20300
20734
|
}
|
|
20301
20735
|
}
|
|
20302
20736
|
|
|
20303
|
-
/**
|
|
20304
|
-
* Advanced layout using new text engine (Konva-compatible)
|
|
20305
|
-
* @private
|
|
20737
|
+
/**
|
|
20738
|
+
* Advanced layout using new text engine (Konva-compatible)
|
|
20739
|
+
* @private
|
|
20306
20740
|
*/
|
|
20307
20741
|
_layoutTextAdvanced() {
|
|
20308
20742
|
const options = this._getAdvancedLayoutOptions();
|
|
20309
20743
|
return layoutText(options);
|
|
20310
20744
|
}
|
|
20311
20745
|
|
|
20312
|
-
/**
|
|
20313
|
-
* Get advanced layout options from current text properties
|
|
20314
|
-
* @private
|
|
20746
|
+
/**
|
|
20747
|
+
* Get advanced layout options from current text properties
|
|
20748
|
+
* @private
|
|
20315
20749
|
*/
|
|
20316
20750
|
_getAdvancedLayoutOptions() {
|
|
20317
20751
|
return {
|
|
@@ -20333,9 +20767,9 @@ class FabricText extends StyledText {
|
|
|
20333
20767
|
};
|
|
20334
20768
|
}
|
|
20335
20769
|
|
|
20336
|
-
/**
|
|
20337
|
-
* Map Fabric textAlign to Konva align format
|
|
20338
|
-
* @private
|
|
20770
|
+
/**
|
|
20771
|
+
* Map Fabric textAlign to Konva align format
|
|
20772
|
+
* @private
|
|
20339
20773
|
*/
|
|
20340
20774
|
_mapTextAlignToAlign(textAlign) {
|
|
20341
20775
|
switch (textAlign) {
|
|
@@ -20356,8 +20790,8 @@ class FabricText extends StyledText {
|
|
|
20356
20790
|
}
|
|
20357
20791
|
}
|
|
20358
20792
|
|
|
20359
|
-
/**
|
|
20360
|
-
* Enhanced initDimensions that uses advanced layout when enabled
|
|
20793
|
+
/**
|
|
20794
|
+
* Enhanced initDimensions that uses advanced layout when enabled
|
|
20361
20795
|
*/
|
|
20362
20796
|
initDimensionsAdvanced() {
|
|
20363
20797
|
if (!this.enableAdvancedLayout) {
|
|
@@ -20374,9 +20808,9 @@ class FabricText extends StyledText {
|
|
|
20374
20808
|
this.dirty = true;
|
|
20375
20809
|
}
|
|
20376
20810
|
|
|
20377
|
-
/**
|
|
20378
|
-
* Convert new layout format to legacy _textLines and __charBounds format
|
|
20379
|
-
* @private
|
|
20811
|
+
/**
|
|
20812
|
+
* Convert new layout format to legacy _textLines and __charBounds format
|
|
20813
|
+
* @private
|
|
20380
20814
|
*/
|
|
20381
20815
|
_convertLayoutToLegacyFormat(layout) {
|
|
20382
20816
|
this._textLines = layout.lines.map(line => line.graphemes);
|
|
@@ -20398,30 +20832,30 @@ class FabricText extends StyledText {
|
|
|
20398
20832
|
}
|
|
20399
20833
|
}
|
|
20400
20834
|
|
|
20401
|
-
/**
|
|
20402
|
-
* Detect if the text line is ended with an hard break
|
|
20403
|
-
* text and itext do not have wrapping, return false
|
|
20404
|
-
* @return {Boolean}
|
|
20835
|
+
/**
|
|
20836
|
+
* Detect if the text line is ended with an hard break
|
|
20837
|
+
* text and itext do not have wrapping, return false
|
|
20838
|
+
* @return {Boolean}
|
|
20405
20839
|
*/
|
|
20406
20840
|
isEndOfWrapping(lineIndex) {
|
|
20407
20841
|
return lineIndex === this._textLines.length - 1;
|
|
20408
20842
|
}
|
|
20409
20843
|
|
|
20410
|
-
/**
|
|
20411
|
-
* Detect if a line has a linebreak and so we need to account for it when moving
|
|
20412
|
-
* and counting style.
|
|
20413
|
-
* It return always 1 for text and Itext. Textbox has its own implementation
|
|
20414
|
-
* @return Number
|
|
20844
|
+
/**
|
|
20845
|
+
* Detect if a line has a linebreak and so we need to account for it when moving
|
|
20846
|
+
* and counting style.
|
|
20847
|
+
* It return always 1 for text and Itext. Textbox has its own implementation
|
|
20848
|
+
* @return Number
|
|
20415
20849
|
*/
|
|
20416
20850
|
|
|
20417
20851
|
missingNewlineOffset(_lineIndex) {
|
|
20418
20852
|
return 1;
|
|
20419
20853
|
}
|
|
20420
20854
|
|
|
20421
|
-
/**
|
|
20422
|
-
* Returns 2d representation (lineIndex and charIndex) of cursor
|
|
20423
|
-
* @param {Number} selectionStart
|
|
20424
|
-
* @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
|
|
20855
|
+
/**
|
|
20856
|
+
* Returns 2d representation (lineIndex and charIndex) of cursor
|
|
20857
|
+
* @param {Number} selectionStart
|
|
20858
|
+
* @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
|
|
20425
20859
|
*/
|
|
20426
20860
|
get2DCursorLocation(selectionStart, skipWrapping) {
|
|
20427
20861
|
const lines = skipWrapping ? this._unwrappedTextLines : this._textLines;
|
|
@@ -20441,24 +20875,24 @@ class FabricText extends StyledText {
|
|
|
20441
20875
|
};
|
|
20442
20876
|
}
|
|
20443
20877
|
|
|
20444
|
-
/**
|
|
20445
|
-
* Returns string representation of an instance
|
|
20446
|
-
* @return {String} String representation of text object
|
|
20878
|
+
/**
|
|
20879
|
+
* Returns string representation of an instance
|
|
20880
|
+
* @return {String} String representation of text object
|
|
20447
20881
|
*/
|
|
20448
20882
|
toString() {
|
|
20449
20883
|
return `#<Text (${this.complexity()}): { "text": "${this.text}", "fontFamily": "${this.fontFamily}" }>`;
|
|
20450
20884
|
}
|
|
20451
20885
|
|
|
20452
|
-
/**
|
|
20453
|
-
* Return the dimension and the zoom level needed to create a cache canvas
|
|
20454
|
-
* big enough to host the object to be cached.
|
|
20455
|
-
* @private
|
|
20456
|
-
* @param {Object} dim.x width of object to be cached
|
|
20457
|
-
* @param {Object} dim.y height of object to be cached
|
|
20458
|
-
* @return {Object}.width width of canvas
|
|
20459
|
-
* @return {Object}.height height of canvas
|
|
20460
|
-
* @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
|
|
20461
|
-
* @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
|
|
20886
|
+
/**
|
|
20887
|
+
* Return the dimension and the zoom level needed to create a cache canvas
|
|
20888
|
+
* big enough to host the object to be cached.
|
|
20889
|
+
* @private
|
|
20890
|
+
* @param {Object} dim.x width of object to be cached
|
|
20891
|
+
* @param {Object} dim.y height of object to be cached
|
|
20892
|
+
* @return {Object}.width width of canvas
|
|
20893
|
+
* @return {Object}.height height of canvas
|
|
20894
|
+
* @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache
|
|
20895
|
+
* @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache
|
|
20462
20896
|
*/
|
|
20463
20897
|
_getCacheCanvasDimensions() {
|
|
20464
20898
|
const dims = super._getCacheCanvasDimensions();
|
|
@@ -20468,9 +20902,9 @@ class FabricText extends StyledText {
|
|
|
20468
20902
|
return dims;
|
|
20469
20903
|
}
|
|
20470
20904
|
|
|
20471
|
-
/**
|
|
20472
|
-
* @private
|
|
20473
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20905
|
+
/**
|
|
20906
|
+
* @private
|
|
20907
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20474
20908
|
*/
|
|
20475
20909
|
_render(ctx) {
|
|
20476
20910
|
const path = this.path;
|
|
@@ -20483,9 +20917,9 @@ class FabricText extends StyledText {
|
|
|
20483
20917
|
this._renderTextDecoration(ctx, 'linethrough');
|
|
20484
20918
|
}
|
|
20485
20919
|
|
|
20486
|
-
/**
|
|
20487
|
-
* @private
|
|
20488
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20920
|
+
/**
|
|
20921
|
+
* @private
|
|
20922
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20489
20923
|
*/
|
|
20490
20924
|
_renderText(ctx) {
|
|
20491
20925
|
// Skip text rendering if in overlay editing mode
|
|
@@ -20501,15 +20935,15 @@ class FabricText extends StyledText {
|
|
|
20501
20935
|
}
|
|
20502
20936
|
}
|
|
20503
20937
|
|
|
20504
|
-
/**
|
|
20505
|
-
* Set the font parameter of the context with the object properties or with charStyle
|
|
20506
|
-
* @private
|
|
20507
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20508
|
-
* @param {Object} [charStyle] object with font style properties
|
|
20509
|
-
* @param {String} [charStyle.fontFamily] Font Family
|
|
20510
|
-
* @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
|
|
20511
|
-
* @param {String} [charStyle.fontWeight] Font weight
|
|
20512
|
-
* @param {String} [charStyle.fontStyle] Font style (italic|normal)
|
|
20938
|
+
/**
|
|
20939
|
+
* Set the font parameter of the context with the object properties or with charStyle
|
|
20940
|
+
* @private
|
|
20941
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20942
|
+
* @param {Object} [charStyle] object with font style properties
|
|
20943
|
+
* @param {String} [charStyle.fontFamily] Font Family
|
|
20944
|
+
* @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )
|
|
20945
|
+
* @param {String} [charStyle.fontWeight] Font weight
|
|
20946
|
+
* @param {String} [charStyle.fontStyle] Font style (italic|normal)
|
|
20513
20947
|
*/
|
|
20514
20948
|
_setTextStyles(ctx, charStyle, forMeasuring) {
|
|
20515
20949
|
ctx.textBaseline = 'alphabetic';
|
|
@@ -20529,11 +20963,11 @@ class FabricText extends StyledText {
|
|
|
20529
20963
|
ctx.font = this._getFontDeclaration(charStyle, forMeasuring);
|
|
20530
20964
|
}
|
|
20531
20965
|
|
|
20532
|
-
/**
|
|
20533
|
-
* calculate and return the text Width measuring each line.
|
|
20534
|
-
* @private
|
|
20535
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20536
|
-
* @return {Number} Maximum width of Text object
|
|
20966
|
+
/**
|
|
20967
|
+
* calculate and return the text Width measuring each line.
|
|
20968
|
+
* @private
|
|
20969
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20970
|
+
* @return {Number} Maximum width of Text object
|
|
20537
20971
|
*/
|
|
20538
20972
|
calcTextWidth() {
|
|
20539
20973
|
let maxWidth = this.getLineWidth(0);
|
|
@@ -20546,23 +20980,23 @@ class FabricText extends StyledText {
|
|
|
20546
20980
|
return maxWidth;
|
|
20547
20981
|
}
|
|
20548
20982
|
|
|
20549
|
-
/**
|
|
20550
|
-
* @private
|
|
20551
|
-
* @param {String} method Method name ("fillText" or "strokeText")
|
|
20552
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20553
|
-
* @param {String} line Text to render
|
|
20554
|
-
* @param {Number} left Left position of text
|
|
20555
|
-
* @param {Number} top Top position of text
|
|
20556
|
-
* @param {Number} lineIndex Index of a line in a text
|
|
20983
|
+
/**
|
|
20984
|
+
* @private
|
|
20985
|
+
* @param {String} method Method name ("fillText" or "strokeText")
|
|
20986
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20987
|
+
* @param {String} line Text to render
|
|
20988
|
+
* @param {Number} left Left position of text
|
|
20989
|
+
* @param {Number} top Top position of text
|
|
20990
|
+
* @param {Number} lineIndex Index of a line in a text
|
|
20557
20991
|
*/
|
|
20558
20992
|
_renderTextLine(method, ctx, line, left, top, lineIndex) {
|
|
20559
20993
|
this._renderChars(method, ctx, line, left, top, lineIndex);
|
|
20560
20994
|
}
|
|
20561
20995
|
|
|
20562
|
-
/**
|
|
20563
|
-
* Renders the text background for lines, taking care of style
|
|
20564
|
-
* @private
|
|
20565
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20996
|
+
/**
|
|
20997
|
+
* Renders the text background for lines, taking care of style
|
|
20998
|
+
* @private
|
|
20999
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20566
21000
|
*/
|
|
20567
21001
|
_renderTextLinesBackground(ctx) {
|
|
20568
21002
|
if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {
|
|
@@ -20625,15 +21059,15 @@ class FabricText extends StyledText {
|
|
|
20625
21059
|
this._removeShadow(ctx);
|
|
20626
21060
|
}
|
|
20627
21061
|
|
|
20628
|
-
/**
|
|
20629
|
-
* measure and return the width of a single character.
|
|
20630
|
-
* possibly overridden to accommodate different measure logic or
|
|
20631
|
-
* to hook some external lib for character measurement
|
|
20632
|
-
* @private
|
|
20633
|
-
* @param {String} _char, char to be measured
|
|
20634
|
-
* @param {Object} charStyle style of char to be measured
|
|
20635
|
-
* @param {String} [previousChar] previous char
|
|
20636
|
-
* @param {Object} [prevCharStyle] style of previous char
|
|
21062
|
+
/**
|
|
21063
|
+
* measure and return the width of a single character.
|
|
21064
|
+
* possibly overridden to accommodate different measure logic or
|
|
21065
|
+
* to hook some external lib for character measurement
|
|
21066
|
+
* @private
|
|
21067
|
+
* @param {String} _char, char to be measured
|
|
21068
|
+
* @param {Object} charStyle style of char to be measured
|
|
21069
|
+
* @param {String} [previousChar] previous char
|
|
21070
|
+
* @param {Object} [prevCharStyle] style of previous char
|
|
20637
21071
|
*/
|
|
20638
21072
|
_measureChar(_char, charStyle, previousChar, prevCharStyle) {
|
|
20639
21073
|
const fontCache = cache.getFontCache(charStyle),
|
|
@@ -20678,19 +21112,19 @@ class FabricText extends StyledText {
|
|
|
20678
21112
|
};
|
|
20679
21113
|
}
|
|
20680
21114
|
|
|
20681
|
-
/**
|
|
20682
|
-
* Computes height of character at given position
|
|
20683
|
-
* @param {Number} line the line index number
|
|
20684
|
-
* @param {Number} _char the character index number
|
|
20685
|
-
* @return {Number} fontSize of the character
|
|
21115
|
+
/**
|
|
21116
|
+
* Computes height of character at given position
|
|
21117
|
+
* @param {Number} line the line index number
|
|
21118
|
+
* @param {Number} _char the character index number
|
|
21119
|
+
* @return {Number} fontSize of the character
|
|
20686
21120
|
*/
|
|
20687
21121
|
getHeightOfChar(line, _char) {
|
|
20688
21122
|
return this.getValueOfPropertyAt(line, _char, 'fontSize');
|
|
20689
21123
|
}
|
|
20690
21124
|
|
|
20691
|
-
/**
|
|
20692
|
-
* measure a text line measuring all characters.
|
|
20693
|
-
* @param {Number} lineIndex line number
|
|
21125
|
+
/**
|
|
21126
|
+
* measure a text line measuring all characters.
|
|
21127
|
+
* @param {Number} lineIndex line number
|
|
20694
21128
|
*/
|
|
20695
21129
|
measureLine(lineIndex) {
|
|
20696
21130
|
const lineInfo = this._measureLine(lineIndex);
|
|
@@ -20703,11 +21137,11 @@ class FabricText extends StyledText {
|
|
|
20703
21137
|
return lineInfo;
|
|
20704
21138
|
}
|
|
20705
21139
|
|
|
20706
|
-
/**
|
|
20707
|
-
* measure every grapheme of a line, populating __charBounds
|
|
20708
|
-
* @param {Number} lineIndex
|
|
20709
|
-
* @return {Object} object.width total width of characters
|
|
20710
|
-
* @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
|
|
21140
|
+
/**
|
|
21141
|
+
* measure every grapheme of a line, populating __charBounds
|
|
21142
|
+
* @param {Number} lineIndex
|
|
21143
|
+
* @return {Object} object.width total width of characters
|
|
21144
|
+
* @return {Object} object.numOfSpaces length of chars that match this._reSpacesAndTabs
|
|
20711
21145
|
*/
|
|
20712
21146
|
_measureLine(lineIndex) {
|
|
20713
21147
|
let width = 0,
|
|
@@ -20770,13 +21204,13 @@ class FabricText extends StyledText {
|
|
|
20770
21204
|
};
|
|
20771
21205
|
}
|
|
20772
21206
|
|
|
20773
|
-
/**
|
|
20774
|
-
* Calculate the angle and the left,top position of the char that follow a path.
|
|
20775
|
-
* It appends it to graphemeInfo to be reused later at rendering
|
|
20776
|
-
* @private
|
|
20777
|
-
* @param {Number} positionInPath to be measured
|
|
20778
|
-
* @param {GraphemeBBox} graphemeInfo current grapheme box information
|
|
20779
|
-
* @param {Object} startingPoint position of the point
|
|
21207
|
+
/**
|
|
21208
|
+
* Calculate the angle and the left,top position of the char that follow a path.
|
|
21209
|
+
* It appends it to graphemeInfo to be reused later at rendering
|
|
21210
|
+
* @private
|
|
21211
|
+
* @param {Number} positionInPath to be measured
|
|
21212
|
+
* @param {GraphemeBBox} graphemeInfo current grapheme box information
|
|
21213
|
+
* @param {Object} startingPoint position of the point
|
|
20780
21214
|
*/
|
|
20781
21215
|
_setGraphemeOnPath(positionInPath, graphemeInfo) {
|
|
20782
21216
|
const centerPosition = positionInPath + graphemeInfo.kernedWidth / 2,
|
|
@@ -20789,13 +21223,13 @@ class FabricText extends StyledText {
|
|
|
20789
21223
|
graphemeInfo.angle = info.angle + (this.pathSide === RIGHT ? Math.PI : 0);
|
|
20790
21224
|
}
|
|
20791
21225
|
|
|
20792
|
-
/**
|
|
20793
|
-
*
|
|
20794
|
-
* @param {String} grapheme to be measured
|
|
20795
|
-
* @param {Number} lineIndex index of the line where the char is
|
|
20796
|
-
* @param {Number} charIndex position in the line
|
|
20797
|
-
* @param {String} [prevGrapheme] character preceding the one to be measured
|
|
20798
|
-
* @returns {GraphemeBBox} grapheme bbox
|
|
21226
|
+
/**
|
|
21227
|
+
*
|
|
21228
|
+
* @param {String} grapheme to be measured
|
|
21229
|
+
* @param {Number} lineIndex index of the line where the char is
|
|
21230
|
+
* @param {Number} charIndex position in the line
|
|
21231
|
+
* @param {String} [prevGrapheme] character preceding the one to be measured
|
|
21232
|
+
* @returns {GraphemeBBox} grapheme bbox
|
|
20799
21233
|
*/
|
|
20800
21234
|
_getGraphemeBox(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {
|
|
20801
21235
|
const style = this.getCompleteStyleDeclaration(lineIndex, charIndex),
|
|
@@ -20823,10 +21257,10 @@ class FabricText extends StyledText {
|
|
|
20823
21257
|
return box;
|
|
20824
21258
|
}
|
|
20825
21259
|
|
|
20826
|
-
/**
|
|
20827
|
-
* Calculate height of line at 'lineIndex'
|
|
20828
|
-
* @param {Number} lineIndex index of line to calculate
|
|
20829
|
-
* @return {Number}
|
|
21260
|
+
/**
|
|
21261
|
+
* Calculate height of line at 'lineIndex'
|
|
21262
|
+
* @param {Number} lineIndex index of line to calculate
|
|
21263
|
+
* @return {Number}
|
|
20830
21264
|
*/
|
|
20831
21265
|
getHeightOfLine(lineIndex) {
|
|
20832
21266
|
if (this.__lineHeights[lineIndex]) {
|
|
@@ -20842,8 +21276,8 @@ class FabricText extends StyledText {
|
|
|
20842
21276
|
return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;
|
|
20843
21277
|
}
|
|
20844
21278
|
|
|
20845
|
-
/**
|
|
20846
|
-
* Calculate text box height
|
|
21279
|
+
/**
|
|
21280
|
+
* Calculate text box height
|
|
20847
21281
|
*/
|
|
20848
21282
|
calcTextHeight() {
|
|
20849
21283
|
let lineHeight,
|
|
@@ -20855,26 +21289,26 @@ class FabricText extends StyledText {
|
|
|
20855
21289
|
return height;
|
|
20856
21290
|
}
|
|
20857
21291
|
|
|
20858
|
-
/**
|
|
20859
|
-
* @private
|
|
20860
|
-
* @return {Number} Left offset
|
|
21292
|
+
/**
|
|
21293
|
+
* @private
|
|
21294
|
+
* @return {Number} Left offset
|
|
20861
21295
|
*/
|
|
20862
21296
|
_getLeftOffset() {
|
|
20863
21297
|
return this.direction === 'ltr' ? -this.width / 2 : this.width / 2;
|
|
20864
21298
|
}
|
|
20865
21299
|
|
|
20866
|
-
/**
|
|
20867
|
-
* @private
|
|
20868
|
-
* @return {Number} Top offset
|
|
21300
|
+
/**
|
|
21301
|
+
* @private
|
|
21302
|
+
* @return {Number} Top offset
|
|
20869
21303
|
*/
|
|
20870
21304
|
_getTopOffset() {
|
|
20871
21305
|
return -this.height / 2;
|
|
20872
21306
|
}
|
|
20873
21307
|
|
|
20874
|
-
/**
|
|
20875
|
-
* @private
|
|
20876
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20877
|
-
* @param {String} method Method name ("fillText" or "strokeText")
|
|
21308
|
+
/**
|
|
21309
|
+
* @private
|
|
21310
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21311
|
+
* @param {String} method Method name ("fillText" or "strokeText")
|
|
20878
21312
|
*/
|
|
20879
21313
|
_renderTextCommon(ctx, method) {
|
|
20880
21314
|
ctx.save();
|
|
@@ -20891,9 +21325,9 @@ class FabricText extends StyledText {
|
|
|
20891
21325
|
ctx.restore();
|
|
20892
21326
|
}
|
|
20893
21327
|
|
|
20894
|
-
/**
|
|
20895
|
-
* @private
|
|
20896
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21328
|
+
/**
|
|
21329
|
+
* @private
|
|
21330
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20897
21331
|
*/
|
|
20898
21332
|
_renderTextFill(ctx) {
|
|
20899
21333
|
if (!this.fill && !this.styleHas(FILL)) {
|
|
@@ -20902,9 +21336,9 @@ class FabricText extends StyledText {
|
|
|
20902
21336
|
this._renderTextCommon(ctx, 'fillText');
|
|
20903
21337
|
}
|
|
20904
21338
|
|
|
20905
|
-
/**
|
|
20906
|
-
* @private
|
|
20907
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21339
|
+
/**
|
|
21340
|
+
* @private
|
|
21341
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20908
21342
|
*/
|
|
20909
21343
|
_renderTextStroke(ctx) {
|
|
20910
21344
|
if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {
|
|
@@ -20921,14 +21355,14 @@ class FabricText extends StyledText {
|
|
|
20921
21355
|
ctx.restore();
|
|
20922
21356
|
}
|
|
20923
21357
|
|
|
20924
|
-
/**
|
|
20925
|
-
* @private
|
|
20926
|
-
* @param {String} method fillText or strokeText.
|
|
20927
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
20928
|
-
* @param {Array} line Content of the line, splitted in an array by grapheme
|
|
20929
|
-
* @param {Number} left
|
|
20930
|
-
* @param {Number} top
|
|
20931
|
-
* @param {Number} lineIndex
|
|
21358
|
+
/**
|
|
21359
|
+
* @private
|
|
21360
|
+
* @param {String} method fillText or strokeText.
|
|
21361
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21362
|
+
* @param {Array} line Content of the line, splitted in an array by grapheme
|
|
21363
|
+
* @param {Number} left
|
|
21364
|
+
* @param {Number} top
|
|
21365
|
+
* @param {Number} lineIndex
|
|
20932
21366
|
*/
|
|
20933
21367
|
_renderChars(method, ctx, line, left, top, lineIndex) {
|
|
20934
21368
|
const lineHeight = this.getHeightOfLine(lineIndex),
|
|
@@ -21010,16 +21444,16 @@ class FabricText extends StyledText {
|
|
|
21010
21444
|
ctx.restore();
|
|
21011
21445
|
}
|
|
21012
21446
|
|
|
21013
|
-
/**
|
|
21014
|
-
* This function try to patch the missing gradientTransform on canvas gradients.
|
|
21015
|
-
* transforming a context to transform the gradient, is going to transform the stroke too.
|
|
21016
|
-
* we want to transform the gradient but not the stroke operation, so we create
|
|
21017
|
-
* a transformed gradient on a pattern and then we use the pattern instead of the gradient.
|
|
21018
|
-
* this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
|
|
21019
|
-
* is limited.
|
|
21020
|
-
* @private
|
|
21021
|
-
* @param {TFiller} filler a fabric gradient instance
|
|
21022
|
-
* @return {CanvasPattern} a pattern to use as fill/stroke style
|
|
21447
|
+
/**
|
|
21448
|
+
* This function try to patch the missing gradientTransform on canvas gradients.
|
|
21449
|
+
* transforming a context to transform the gradient, is going to transform the stroke too.
|
|
21450
|
+
* we want to transform the gradient but not the stroke operation, so we create
|
|
21451
|
+
* a transformed gradient on a pattern and then we use the pattern instead of the gradient.
|
|
21452
|
+
* this method has drawbacks: is slow, is in low resolution, needs a patch for when the size
|
|
21453
|
+
* is limited.
|
|
21454
|
+
* @private
|
|
21455
|
+
* @param {TFiller} filler a fabric gradient instance
|
|
21456
|
+
* @return {CanvasPattern} a pattern to use as fill/stroke style
|
|
21023
21457
|
*/
|
|
21024
21458
|
_applyPatternGradientTransformText(filler) {
|
|
21025
21459
|
// TODO: verify compatibility with strokeUniform
|
|
@@ -21075,12 +21509,12 @@ class FabricText extends StyledText {
|
|
|
21075
21509
|
};
|
|
21076
21510
|
}
|
|
21077
21511
|
|
|
21078
|
-
/**
|
|
21079
|
-
* This function prepare the canvas for a stroke style, and stroke and strokeWidth
|
|
21080
|
-
* need to be sent in as defined
|
|
21081
|
-
* @param {CanvasRenderingContext2D} ctx
|
|
21082
|
-
* @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
|
|
21083
|
-
* @returns
|
|
21512
|
+
/**
|
|
21513
|
+
* This function prepare the canvas for a stroke style, and stroke and strokeWidth
|
|
21514
|
+
* need to be sent in as defined
|
|
21515
|
+
* @param {CanvasRenderingContext2D} ctx
|
|
21516
|
+
* @param {CompleteTextStyleDeclaration} style with stroke and strokeWidth defined
|
|
21517
|
+
* @returns
|
|
21084
21518
|
*/
|
|
21085
21519
|
_setStrokeStyles(ctx, _ref) {
|
|
21086
21520
|
let {
|
|
@@ -21095,12 +21529,12 @@ class FabricText extends StyledText {
|
|
|
21095
21529
|
return this.handleFiller(ctx, 'strokeStyle', stroke);
|
|
21096
21530
|
}
|
|
21097
21531
|
|
|
21098
|
-
/**
|
|
21099
|
-
* This function prepare the canvas for a ill style, and fill
|
|
21100
|
-
* need to be sent in as defined
|
|
21101
|
-
* @param {CanvasRenderingContext2D} ctx
|
|
21102
|
-
* @param {CompleteTextStyleDeclaration} style with ill defined
|
|
21103
|
-
* @returns
|
|
21532
|
+
/**
|
|
21533
|
+
* This function prepare the canvas for a ill style, and fill
|
|
21534
|
+
* need to be sent in as defined
|
|
21535
|
+
* @param {CanvasRenderingContext2D} ctx
|
|
21536
|
+
* @param {CompleteTextStyleDeclaration} style with ill defined
|
|
21537
|
+
* @returns
|
|
21104
21538
|
*/
|
|
21105
21539
|
_setFillStyles(ctx, _ref2) {
|
|
21106
21540
|
let {
|
|
@@ -21109,16 +21543,16 @@ class FabricText extends StyledText {
|
|
|
21109
21543
|
return this.handleFiller(ctx, 'fillStyle', fill);
|
|
21110
21544
|
}
|
|
21111
21545
|
|
|
21112
|
-
/**
|
|
21113
|
-
* @private
|
|
21114
|
-
* @param {String} method
|
|
21115
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21116
|
-
* @param {Number} lineIndex
|
|
21117
|
-
* @param {Number} charIndex
|
|
21118
|
-
* @param {String} _char
|
|
21119
|
-
* @param {Number} left Left coordinate
|
|
21120
|
-
* @param {Number} top Top coordinate
|
|
21121
|
-
* @param {Number} lineHeight Height of the line
|
|
21546
|
+
/**
|
|
21547
|
+
* @private
|
|
21548
|
+
* @param {String} method
|
|
21549
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21550
|
+
* @param {Number} lineIndex
|
|
21551
|
+
* @param {Number} charIndex
|
|
21552
|
+
* @param {String} _char
|
|
21553
|
+
* @param {Number} left Left coordinate
|
|
21554
|
+
* @param {Number} top Top coordinate
|
|
21555
|
+
* @param {Number} lineHeight Height of the line
|
|
21122
21556
|
*/
|
|
21123
21557
|
_renderChar(method, ctx, lineIndex, charIndex, _char, left, top) {
|
|
21124
21558
|
const decl = this._getStyleDeclaration(lineIndex, charIndex),
|
|
@@ -21147,30 +21581,30 @@ class FabricText extends StyledText {
|
|
|
21147
21581
|
ctx.restore();
|
|
21148
21582
|
}
|
|
21149
21583
|
|
|
21150
|
-
/**
|
|
21151
|
-
* Turns the character into a 'superior figure' (i.e. 'superscript')
|
|
21152
|
-
* @param {Number} start selection start
|
|
21153
|
-
* @param {Number} end selection end
|
|
21584
|
+
/**
|
|
21585
|
+
* Turns the character into a 'superior figure' (i.e. 'superscript')
|
|
21586
|
+
* @param {Number} start selection start
|
|
21587
|
+
* @param {Number} end selection end
|
|
21154
21588
|
*/
|
|
21155
21589
|
setSuperscript(start, end) {
|
|
21156
21590
|
this._setScript(start, end, this.superscript);
|
|
21157
21591
|
}
|
|
21158
21592
|
|
|
21159
|
-
/**
|
|
21160
|
-
* Turns the character into an 'inferior figure' (i.e. 'subscript')
|
|
21161
|
-
* @param {Number} start selection start
|
|
21162
|
-
* @param {Number} end selection end
|
|
21593
|
+
/**
|
|
21594
|
+
* Turns the character into an 'inferior figure' (i.e. 'subscript')
|
|
21595
|
+
* @param {Number} start selection start
|
|
21596
|
+
* @param {Number} end selection end
|
|
21163
21597
|
*/
|
|
21164
21598
|
setSubscript(start, end) {
|
|
21165
21599
|
this._setScript(start, end, this.subscript);
|
|
21166
21600
|
}
|
|
21167
21601
|
|
|
21168
|
-
/**
|
|
21169
|
-
* Applies 'schema' at given position
|
|
21170
|
-
* @private
|
|
21171
|
-
* @param {Number} start selection start
|
|
21172
|
-
* @param {Number} end selection end
|
|
21173
|
-
* @param {Number} schema
|
|
21602
|
+
/**
|
|
21603
|
+
* Applies 'schema' at given position
|
|
21604
|
+
* @private
|
|
21605
|
+
* @param {Number} start selection start
|
|
21606
|
+
* @param {Number} end selection end
|
|
21607
|
+
* @param {Number} schema
|
|
21174
21608
|
*/
|
|
21175
21609
|
_setScript(start, end, schema) {
|
|
21176
21610
|
const loc = this.get2DCursorLocation(start, true),
|
|
@@ -21183,10 +21617,10 @@ class FabricText extends StyledText {
|
|
|
21183
21617
|
this.setSelectionStyles(style, start, end);
|
|
21184
21618
|
}
|
|
21185
21619
|
|
|
21186
|
-
/**
|
|
21187
|
-
* @private
|
|
21188
|
-
* @param {Number} lineIndex index text line
|
|
21189
|
-
* @return {Number} Line left offset
|
|
21620
|
+
/**
|
|
21621
|
+
* @private
|
|
21622
|
+
* @param {Number} lineIndex index text line
|
|
21623
|
+
* @return {Number} Line left offset
|
|
21190
21624
|
*/
|
|
21191
21625
|
_getLineLeftOffset(lineIndex) {
|
|
21192
21626
|
const lineWidth = this.getLineWidth(lineIndex),
|
|
@@ -21236,8 +21670,8 @@ class FabricText extends StyledText {
|
|
|
21236
21670
|
return leftOffset;
|
|
21237
21671
|
}
|
|
21238
21672
|
|
|
21239
|
-
/**
|
|
21240
|
-
* @private
|
|
21673
|
+
/**
|
|
21674
|
+
* @private
|
|
21241
21675
|
*/
|
|
21242
21676
|
_clearCache() {
|
|
21243
21677
|
this._forceClearCache = false;
|
|
@@ -21246,12 +21680,12 @@ class FabricText extends StyledText {
|
|
|
21246
21680
|
this.__charBounds = [];
|
|
21247
21681
|
}
|
|
21248
21682
|
|
|
21249
|
-
/**
|
|
21250
|
-
* Measure a single line given its index. Used to calculate the initial
|
|
21251
|
-
* text bounding box. The values are calculated and stored in __lineWidths cache.
|
|
21252
|
-
* @private
|
|
21253
|
-
* @param {Number} lineIndex line number
|
|
21254
|
-
* @return {Number} Line width
|
|
21683
|
+
/**
|
|
21684
|
+
* Measure a single line given its index. Used to calculate the initial
|
|
21685
|
+
* text bounding box. The values are calculated and stored in __lineWidths cache.
|
|
21686
|
+
* @private
|
|
21687
|
+
* @param {Number} lineIndex line number
|
|
21688
|
+
* @return {Number} Line width
|
|
21255
21689
|
*/
|
|
21256
21690
|
getLineWidth(lineIndex) {
|
|
21257
21691
|
if (this.__lineWidths[lineIndex] !== undefined) {
|
|
@@ -21270,12 +21704,12 @@ class FabricText extends StyledText {
|
|
|
21270
21704
|
return 0;
|
|
21271
21705
|
}
|
|
21272
21706
|
|
|
21273
|
-
/**
|
|
21274
|
-
* Retrieves the value of property at given character position
|
|
21275
|
-
* @param {Number} lineIndex the line number
|
|
21276
|
-
* @param {Number} charIndex the character number
|
|
21277
|
-
* @param {String} property the property name
|
|
21278
|
-
* @returns the value of 'property'
|
|
21707
|
+
/**
|
|
21708
|
+
* Retrieves the value of property at given character position
|
|
21709
|
+
* @param {Number} lineIndex the line number
|
|
21710
|
+
* @param {Number} charIndex the character number
|
|
21711
|
+
* @param {String} property the property name
|
|
21712
|
+
* @returns the value of 'property'
|
|
21279
21713
|
*/
|
|
21280
21714
|
getValueOfPropertyAt(lineIndex, charIndex, property) {
|
|
21281
21715
|
var _charStyle$property;
|
|
@@ -21283,9 +21717,9 @@ class FabricText extends StyledText {
|
|
|
21283
21717
|
return (_charStyle$property = charStyle[property]) !== null && _charStyle$property !== void 0 ? _charStyle$property : this[property];
|
|
21284
21718
|
}
|
|
21285
21719
|
|
|
21286
|
-
/**
|
|
21287
|
-
* @private
|
|
21288
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21720
|
+
/**
|
|
21721
|
+
* @private
|
|
21722
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21289
21723
|
*/
|
|
21290
21724
|
_renderTextDecoration(ctx, type) {
|
|
21291
21725
|
if (!this[type] && !this.styleHas(type)) {
|
|
@@ -21369,10 +21803,10 @@ class FabricText extends StyledText {
|
|
|
21369
21803
|
this._removeShadow(ctx);
|
|
21370
21804
|
}
|
|
21371
21805
|
|
|
21372
|
-
/**
|
|
21373
|
-
* return font declaration string for canvas context
|
|
21374
|
-
* @param {Object} [styleObject] object
|
|
21375
|
-
* @returns {String} font declaration formatted for canvas context.
|
|
21806
|
+
/**
|
|
21807
|
+
* return font declaration string for canvas context
|
|
21808
|
+
* @param {Object} [styleObject] object
|
|
21809
|
+
* @returns {String} font declaration formatted for canvas context.
|
|
21376
21810
|
*/
|
|
21377
21811
|
_getFontDeclaration() {
|
|
21378
21812
|
let {
|
|
@@ -21386,9 +21820,9 @@ class FabricText extends StyledText {
|
|
|
21386
21820
|
return [fontStyle, fontWeight, `${forMeasuring ? this.CACHE_FONT_SIZE : fontSize}px`, parsedFontFamily].join(' ');
|
|
21387
21821
|
}
|
|
21388
21822
|
|
|
21389
|
-
/**
|
|
21390
|
-
* Renders text instance on a specified context
|
|
21391
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21823
|
+
/**
|
|
21824
|
+
* Renders text instance on a specified context
|
|
21825
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
21392
21826
|
*/
|
|
21393
21827
|
render(ctx) {
|
|
21394
21828
|
if (!this.visible) {
|
|
@@ -21403,22 +21837,22 @@ class FabricText extends StyledText {
|
|
|
21403
21837
|
super.render(ctx);
|
|
21404
21838
|
}
|
|
21405
21839
|
|
|
21406
|
-
/**
|
|
21407
|
-
* Override this method to customize grapheme splitting
|
|
21408
|
-
* @todo the util `graphemeSplit` needs to be injectable in some way.
|
|
21409
|
-
* is more comfortable to inject the correct util rather than having to override text
|
|
21410
|
-
* in the middle of the prototype chain
|
|
21411
|
-
* @param {string} value
|
|
21412
|
-
* @returns {string[]} array of graphemes
|
|
21840
|
+
/**
|
|
21841
|
+
* Override this method to customize grapheme splitting
|
|
21842
|
+
* @todo the util `graphemeSplit` needs to be injectable in some way.
|
|
21843
|
+
* is more comfortable to inject the correct util rather than having to override text
|
|
21844
|
+
* in the middle of the prototype chain
|
|
21845
|
+
* @param {string} value
|
|
21846
|
+
* @returns {string[]} array of graphemes
|
|
21413
21847
|
*/
|
|
21414
21848
|
graphemeSplit(value) {
|
|
21415
21849
|
return graphemeSplit(value);
|
|
21416
21850
|
}
|
|
21417
21851
|
|
|
21418
|
-
/**
|
|
21419
|
-
* Returns the text as an array of lines.
|
|
21420
|
-
* @param {String} text text to split
|
|
21421
|
-
* @returns Lines in the text
|
|
21852
|
+
/**
|
|
21853
|
+
* Returns the text as an array of lines.
|
|
21854
|
+
* @param {String} text text to split
|
|
21855
|
+
* @returns Lines in the text
|
|
21422
21856
|
*/
|
|
21423
21857
|
_splitTextIntoLines(text) {
|
|
21424
21858
|
const lines = text.split(this._reNewline),
|
|
@@ -21438,10 +21872,10 @@ class FabricText extends StyledText {
|
|
|
21438
21872
|
};
|
|
21439
21873
|
}
|
|
21440
21874
|
|
|
21441
|
-
/**
|
|
21442
|
-
* Returns object representation of an instance
|
|
21443
|
-
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
21444
|
-
* @return {Object} Object representation of an instance
|
|
21875
|
+
/**
|
|
21876
|
+
* Returns object representation of an instance
|
|
21877
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
21878
|
+
* @return {Object} Object representation of an instance
|
|
21445
21879
|
*/
|
|
21446
21880
|
toObject() {
|
|
21447
21881
|
let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
@@ -21484,23 +21918,23 @@ class FabricText extends StyledText {
|
|
|
21484
21918
|
return this;
|
|
21485
21919
|
}
|
|
21486
21920
|
|
|
21487
|
-
/**
|
|
21488
|
-
* Returns complexity of an instance
|
|
21489
|
-
* @return {Number} complexity
|
|
21921
|
+
/**
|
|
21922
|
+
* Returns complexity of an instance
|
|
21923
|
+
* @return {Number} complexity
|
|
21490
21924
|
*/
|
|
21491
21925
|
complexity() {
|
|
21492
21926
|
return 1;
|
|
21493
21927
|
}
|
|
21494
21928
|
|
|
21495
|
-
/**
|
|
21496
|
-
* List of generic font families
|
|
21497
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
|
|
21929
|
+
/**
|
|
21930
|
+
* List of generic font families
|
|
21931
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name
|
|
21498
21932
|
*/
|
|
21499
|
-
|
|
21500
|
-
/**
|
|
21501
|
-
* Returns FabricText instance from an SVG element (<b>not yet implemented</b>)
|
|
21502
|
-
* @param {HTMLElement} element Element to parse
|
|
21503
|
-
* @param {Object} [options] Options object
|
|
21933
|
+
|
|
21934
|
+
/**
|
|
21935
|
+
* Returns FabricText instance from an SVG element (<b>not yet implemented</b>)
|
|
21936
|
+
* @param {HTMLElement} element Element to parse
|
|
21937
|
+
* @param {Object} [options] Options object
|
|
21504
21938
|
*/
|
|
21505
21939
|
static async fromElement(element, options, cssRules) {
|
|
21506
21940
|
const parsedAttributes = parseAttributes(element, FabricText.ATTRIBUTE_NAMES, cssRules);
|
|
@@ -21539,10 +21973,10 @@ class FabricText extends StyledText {
|
|
|
21539
21973
|
scaledDiff = lineHeightDiff * textHeightScaleFactor,
|
|
21540
21974
|
textHeight = text.getScaledHeight() + scaledDiff;
|
|
21541
21975
|
let offX = 0;
|
|
21542
|
-
/*
|
|
21543
|
-
Adjust positioning:
|
|
21544
|
-
x/y attributes in SVG correspond to the bottom-left corner of text bounding box
|
|
21545
|
-
fabric output by default at top, left.
|
|
21976
|
+
/*
|
|
21977
|
+
Adjust positioning:
|
|
21978
|
+
x/y attributes in SVG correspond to the bottom-left corner of text bounding box
|
|
21979
|
+
fabric output by default at top, left.
|
|
21546
21980
|
*/
|
|
21547
21981
|
if (textAnchor === CENTER) {
|
|
21548
21982
|
offX = text.getScaledWidth() / 2;
|
|
@@ -21560,10 +21994,10 @@ class FabricText extends StyledText {
|
|
|
21560
21994
|
|
|
21561
21995
|
/* _FROM_SVG_END_ */
|
|
21562
21996
|
|
|
21563
|
-
/**
|
|
21564
|
-
* Returns FabricText instance from an object representation
|
|
21565
|
-
* @param {Object} object plain js Object to create an instance from
|
|
21566
|
-
* @returns {Promise<FabricText>}
|
|
21997
|
+
/**
|
|
21998
|
+
* Returns FabricText instance from an object representation
|
|
21999
|
+
* @param {Object} object plain js Object to create an instance from
|
|
22000
|
+
* @returns {Promise<FabricText>}
|
|
21567
22001
|
*/
|
|
21568
22002
|
static fromObject(object) {
|
|
21569
22003
|
return this._fromObject({
|
|
@@ -21574,10 +22008,10 @@ class FabricText extends StyledText {
|
|
|
21574
22008
|
});
|
|
21575
22009
|
}
|
|
21576
22010
|
}
|
|
21577
|
-
/**
|
|
21578
|
-
* Properties that requires a text layout recalculation when changed
|
|
21579
|
-
* @type string[]
|
|
21580
|
-
* @protected
|
|
22011
|
+
/**
|
|
22012
|
+
* Properties that requires a text layout recalculation when changed
|
|
22013
|
+
* @type string[]
|
|
22014
|
+
* @protected
|
|
21581
22015
|
*/
|
|
21582
22016
|
_defineProperty(FabricText, "textLayoutProperties", textLayoutProperties);
|
|
21583
22017
|
_defineProperty(FabricText, "cacheProperties", [...cacheProperties, ...additionalProps]);
|
|
@@ -21585,9 +22019,9 @@ _defineProperty(FabricText, "ownDefaults", textDefaultValues);
|
|
|
21585
22019
|
_defineProperty(FabricText, "type", 'Text');
|
|
21586
22020
|
_defineProperty(FabricText, "genericFonts", ['serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui', 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong']);
|
|
21587
22021
|
/* _FROM_SVG_START_ */
|
|
21588
|
-
/**
|
|
21589
|
-
* List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})
|
|
21590
|
-
* @see: http://www.w3.org/TR/SVG/text.html#TextElement
|
|
22022
|
+
/**
|
|
22023
|
+
* List of attribute names to account for when parsing SVG element (used by {@link FabricText.fromElement})
|
|
22024
|
+
* @see: http://www.w3.org/TR/SVG/text.html#TextElement
|
|
21591
22025
|
*/
|
|
21592
22026
|
_defineProperty(FabricText, "ATTRIBUTE_NAMES", SHARED_ATTRIBUTES.concat('x', 'y', 'dx', 'dy', 'font-family', 'font-style', 'font-weight', 'font-size', 'letter-spacing', 'text-decoration', 'text-anchor'));
|
|
21593
22027
|
applyMixins(FabricText, [TextSVGExportMixin]);
|
|
@@ -21974,8 +22408,8 @@ class OverlayEditor {
|
|
|
21974
22408
|
// We don't need to save/restore them here as it would conflict with IText's restoration
|
|
21975
22409
|
}
|
|
21976
22410
|
|
|
21977
|
-
/**
|
|
21978
|
-
* Get the container element for the overlay (parent of upperCanvasEl)
|
|
22411
|
+
/**
|
|
22412
|
+
* Get the container element for the overlay (parent of upperCanvasEl)
|
|
21979
22413
|
*/
|
|
21980
22414
|
getCanvasContainer() {
|
|
21981
22415
|
const upperCanvas = this.canvas.upperCanvasEl;
|
|
@@ -21989,8 +22423,8 @@ class OverlayEditor {
|
|
|
21989
22423
|
return container;
|
|
21990
22424
|
}
|
|
21991
22425
|
|
|
21992
|
-
/**
|
|
21993
|
-
* Create the overlay DOM structure
|
|
22426
|
+
/**
|
|
22427
|
+
* Create the overlay DOM structure
|
|
21994
22428
|
*/
|
|
21995
22429
|
createOverlayDOM() {
|
|
21996
22430
|
// Host div for positioning and overflow control
|
|
@@ -22045,8 +22479,8 @@ class OverlayEditor {
|
|
|
22045
22479
|
document.body.appendChild(this.hostDiv);
|
|
22046
22480
|
}
|
|
22047
22481
|
|
|
22048
|
-
/**
|
|
22049
|
-
* Attach all event listeners
|
|
22482
|
+
/**
|
|
22483
|
+
* Attach all event listeners
|
|
22050
22484
|
*/
|
|
22051
22485
|
attachEventListeners() {
|
|
22052
22486
|
// Textarea events
|
|
@@ -22066,8 +22500,8 @@ class OverlayEditor {
|
|
|
22066
22500
|
this.setupViewportChangeDetection();
|
|
22067
22501
|
}
|
|
22068
22502
|
|
|
22069
|
-
/**
|
|
22070
|
-
* Remove all event listeners
|
|
22503
|
+
/**
|
|
22504
|
+
* Remove all event listeners
|
|
22071
22505
|
*/
|
|
22072
22506
|
removeEventListeners() {
|
|
22073
22507
|
this.textarea.removeEventListener('input', this.boundHandlers.onInput);
|
|
@@ -22084,16 +22518,16 @@ class OverlayEditor {
|
|
|
22084
22518
|
this.restoreViewportChangeDetection();
|
|
22085
22519
|
}
|
|
22086
22520
|
|
|
22087
|
-
/**
|
|
22088
|
-
* Simple method to refresh positioning when canvas changes
|
|
22521
|
+
/**
|
|
22522
|
+
* Simple method to refresh positioning when canvas changes
|
|
22089
22523
|
*/
|
|
22090
22524
|
updatePosition() {
|
|
22091
22525
|
this.applyOverlayStyle();
|
|
22092
22526
|
}
|
|
22093
22527
|
|
|
22094
|
-
/**
|
|
22095
|
-
* Update the Fabric object bounds to match current textarea size
|
|
22096
|
-
* This ensures Fabric.js selection controls follow the growing textbox
|
|
22528
|
+
/**
|
|
22529
|
+
* Update the Fabric object bounds to match current textarea size
|
|
22530
|
+
* This ensures Fabric.js selection controls follow the growing textbox
|
|
22097
22531
|
*/
|
|
22098
22532
|
updateObjectBounds() {
|
|
22099
22533
|
if (this.isDestroyed) return;
|
|
@@ -22127,15 +22561,15 @@ class OverlayEditor {
|
|
|
22127
22561
|
}
|
|
22128
22562
|
}
|
|
22129
22563
|
|
|
22130
|
-
/**
|
|
22131
|
-
* Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
|
|
22564
|
+
/**
|
|
22565
|
+
* Convert Fabric charSpacing (1/1000 em) to CSS letter-spacing (px)
|
|
22132
22566
|
*/
|
|
22133
22567
|
letterSpacingPx(charSpacing, fontSize) {
|
|
22134
22568
|
return charSpacing / 1000 * fontSize;
|
|
22135
22569
|
}
|
|
22136
22570
|
|
|
22137
|
-
/**
|
|
22138
|
-
* Detect text direction using first strong directional character
|
|
22571
|
+
/**
|
|
22572
|
+
* Detect text direction using first strong directional character
|
|
22139
22573
|
*/
|
|
22140
22574
|
firstStrongDir(text) {
|
|
22141
22575
|
// Hebrew: \u0590-\u05FF, Arabic: \u0600-\u06FF, \u0750-\u077F, \uFB50-\uFDFF, \uFE70-\uFEFF
|
|
@@ -22365,8 +22799,8 @@ class OverlayEditor {
|
|
|
22365
22799
|
// Initial bounds are set correctly by Fabric.js - don't force update here
|
|
22366
22800
|
}
|
|
22367
22801
|
|
|
22368
|
-
/**
|
|
22369
|
-
* Debug method to compare textarea and canvas object bounding boxes
|
|
22802
|
+
/**
|
|
22803
|
+
* Debug method to compare textarea and canvas object bounding boxes
|
|
22370
22804
|
*/
|
|
22371
22805
|
debugBoundingBoxComparison() {
|
|
22372
22806
|
const target = this.target;
|
|
@@ -22436,8 +22870,8 @@ class OverlayEditor {
|
|
|
22436
22870
|
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
22437
22871
|
}
|
|
22438
22872
|
|
|
22439
|
-
/**
|
|
22440
|
-
* Debug method to compare text wrapping between textarea and Fabric text object
|
|
22873
|
+
/**
|
|
22874
|
+
* Debug method to compare text wrapping between textarea and Fabric text object
|
|
22441
22875
|
*/
|
|
22442
22876
|
debugTextWrapping() {
|
|
22443
22877
|
const target = this.target;
|
|
@@ -22522,8 +22956,8 @@ class OverlayEditor {
|
|
|
22522
22956
|
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
22523
22957
|
}
|
|
22524
22958
|
|
|
22525
|
-
/**
|
|
22526
|
-
* Focus the textarea and position cursor at end
|
|
22959
|
+
/**
|
|
22960
|
+
* Focus the textarea and position cursor at end
|
|
22527
22961
|
*/
|
|
22528
22962
|
focusTextarea() {
|
|
22529
22963
|
// For overlay editing, we want to keep the object in "selection mode" not "editing mode"
|
|
@@ -22558,8 +22992,8 @@ class OverlayEditor {
|
|
|
22558
22992
|
this.canvas.requestRenderAll();
|
|
22559
22993
|
}
|
|
22560
22994
|
|
|
22561
|
-
/**
|
|
22562
|
-
* Refresh overlay positioning and styling
|
|
22995
|
+
/**
|
|
22996
|
+
* Refresh overlay positioning and styling
|
|
22563
22997
|
*/
|
|
22564
22998
|
refresh() {
|
|
22565
22999
|
if (this.isDestroyed) return;
|
|
@@ -22567,8 +23001,8 @@ class OverlayEditor {
|
|
|
22567
23001
|
// Don't update object bounds on every refresh - only when textarea actually resizes
|
|
22568
23002
|
}
|
|
22569
23003
|
|
|
22570
|
-
/**
|
|
22571
|
-
* Destroy the overlay editor
|
|
23004
|
+
/**
|
|
23005
|
+
* Destroy the overlay editor
|
|
22572
23006
|
*/
|
|
22573
23007
|
destroy() {
|
|
22574
23008
|
let commit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
@@ -22736,8 +23170,8 @@ class OverlayEditor {
|
|
|
22736
23170
|
}
|
|
22737
23171
|
}
|
|
22738
23172
|
|
|
22739
|
-
/**
|
|
22740
|
-
* Setup detection for viewport changes (zoom/pan)
|
|
23173
|
+
/**
|
|
23174
|
+
* Setup detection for viewport changes (zoom/pan)
|
|
22741
23175
|
*/
|
|
22742
23176
|
setupViewportChangeDetection() {
|
|
22743
23177
|
// Store original methods
|
|
@@ -22766,8 +23200,8 @@ class OverlayEditor {
|
|
|
22766
23200
|
};
|
|
22767
23201
|
}
|
|
22768
23202
|
|
|
22769
|
-
/**
|
|
22770
|
-
* Restore original viewport methods
|
|
23203
|
+
/**
|
|
23204
|
+
* Restore original viewport methods
|
|
22771
23205
|
*/
|
|
22772
23206
|
restoreViewportChangeDetection() {
|
|
22773
23207
|
if (this.canvas.__originalSetZoom) {
|
|
@@ -22782,8 +23216,8 @@ class OverlayEditor {
|
|
|
22782
23216
|
}
|
|
22783
23217
|
}
|
|
22784
23218
|
|
|
22785
|
-
/**
|
|
22786
|
-
* Enter overlay text editing mode for a text object
|
|
23219
|
+
/**
|
|
23220
|
+
* Enter overlay text editing mode for a text object
|
|
22787
23221
|
*/
|
|
22788
23222
|
function enterTextOverlayEdit(canvas, target, options) {
|
|
22789
23223
|
// If already in overlay editing, destroy existing editor first
|
|
@@ -22807,35 +23241,35 @@ function enterTextOverlayEdit(canvas, target, options) {
|
|
|
22807
23241
|
return editor;
|
|
22808
23242
|
}
|
|
22809
23243
|
|
|
22810
|
-
/**
|
|
22811
|
-
* extend this regex to support non english languages
|
|
22812
|
-
*
|
|
22813
|
-
* - ` ` Matches a SPACE character (char code 32).
|
|
22814
|
-
* - `\n` Matches a LINE FEED character (char code 10).
|
|
22815
|
-
* - `.` Matches a "." character (char code 46).
|
|
22816
|
-
* - `,` Matches a "," character (char code 44).
|
|
22817
|
-
* - `;` Matches a ";" character (char code 59).
|
|
22818
|
-
* - `!` Matches a "!" character (char code 33).
|
|
22819
|
-
* - `\?` Matches a "?" character (char code 63).
|
|
22820
|
-
* - `\-` Matches a "-" character (char code 45).
|
|
23244
|
+
/**
|
|
23245
|
+
* extend this regex to support non english languages
|
|
23246
|
+
*
|
|
23247
|
+
* - ` ` Matches a SPACE character (char code 32).
|
|
23248
|
+
* - `\n` Matches a LINE FEED character (char code 10).
|
|
23249
|
+
* - `.` Matches a "." character (char code 46).
|
|
23250
|
+
* - `,` Matches a "," character (char code 44).
|
|
23251
|
+
* - `;` Matches a ";" character (char code 59).
|
|
23252
|
+
* - `!` Matches a "!" character (char code 33).
|
|
23253
|
+
* - `\?` Matches a "?" character (char code 63).
|
|
23254
|
+
* - `\-` Matches a "-" character (char code 45).
|
|
22821
23255
|
*/
|
|
22822
23256
|
// eslint-disable-next-line no-useless-escape
|
|
22823
23257
|
const reNonWord = /[ \n\.,;!\?\-]/;
|
|
22824
23258
|
class ITextBehavior extends FabricText {
|
|
22825
23259
|
constructor() {
|
|
22826
23260
|
super(...arguments);
|
|
22827
|
-
/**
|
|
22828
|
-
* Helps determining when the text is in composition, so that the cursor
|
|
22829
|
-
* rendering is altered.
|
|
23261
|
+
/**
|
|
23262
|
+
* Helps determining when the text is in composition, so that the cursor
|
|
23263
|
+
* rendering is altered.
|
|
22830
23264
|
*/
|
|
22831
23265
|
_defineProperty(this, "_currentCursorOpacity", 1);
|
|
22832
23266
|
}
|
|
22833
|
-
/**
|
|
22834
|
-
* Keeps track if the IText object was selected before the actual click.
|
|
22835
|
-
* This because we want to delay enter editing by a click.
|
|
23267
|
+
/**
|
|
23268
|
+
* Keeps track if the IText object was selected before the actual click.
|
|
23269
|
+
* This because we want to delay enter editing by a click.
|
|
22836
23270
|
*/
|
|
22837
|
-
/**
|
|
22838
|
-
* Initializes all the interactive behavior of IText
|
|
23271
|
+
/**
|
|
23272
|
+
* Initializes all the interactive behavior of IText
|
|
22839
23273
|
*/
|
|
22840
23274
|
initBehavior() {
|
|
22841
23275
|
this._tick = this._tick.bind(this);
|
|
@@ -22848,8 +23282,8 @@ class ITextBehavior extends FabricText {
|
|
|
22848
23282
|
return super.onDeselect(options);
|
|
22849
23283
|
}
|
|
22850
23284
|
|
|
22851
|
-
/**
|
|
22852
|
-
* @private
|
|
23285
|
+
/**
|
|
23286
|
+
* @private
|
|
22853
23287
|
*/
|
|
22854
23288
|
_animateCursor(_ref) {
|
|
22855
23289
|
let {
|
|
@@ -22874,8 +23308,8 @@ class ITextBehavior extends FabricText {
|
|
|
22874
23308
|
});
|
|
22875
23309
|
}
|
|
22876
23310
|
|
|
22877
|
-
/**
|
|
22878
|
-
* changes the cursor from visible to invisible
|
|
23311
|
+
/**
|
|
23312
|
+
* changes the cursor from visible to invisible
|
|
22879
23313
|
*/
|
|
22880
23314
|
_tick(delay) {
|
|
22881
23315
|
this._currentTickState = this._animateCursor({
|
|
@@ -22886,8 +23320,8 @@ class ITextBehavior extends FabricText {
|
|
|
22886
23320
|
});
|
|
22887
23321
|
}
|
|
22888
23322
|
|
|
22889
|
-
/**
|
|
22890
|
-
* Changes the cursor from invisible to visible
|
|
23323
|
+
/**
|
|
23324
|
+
* Changes the cursor from invisible to visible
|
|
22891
23325
|
*/
|
|
22892
23326
|
_onTickComplete() {
|
|
22893
23327
|
var _this$_currentTickCom;
|
|
@@ -22899,16 +23333,16 @@ class ITextBehavior extends FabricText {
|
|
|
22899
23333
|
});
|
|
22900
23334
|
}
|
|
22901
23335
|
|
|
22902
|
-
/**
|
|
22903
|
-
* Initializes delayed cursor
|
|
23336
|
+
/**
|
|
23337
|
+
* Initializes delayed cursor
|
|
22904
23338
|
*/
|
|
22905
23339
|
initDelayedCursor(restart) {
|
|
22906
23340
|
this.abortCursorAnimation();
|
|
22907
23341
|
this._tick(restart ? 0 : this.cursorDelay);
|
|
22908
23342
|
}
|
|
22909
23343
|
|
|
22910
|
-
/**
|
|
22911
|
-
* Aborts cursor animation, clears all timeouts and clear textarea context if necessary
|
|
23344
|
+
/**
|
|
23345
|
+
* Aborts cursor animation, clears all timeouts and clear textarea context if necessary
|
|
22912
23346
|
*/
|
|
22913
23347
|
abortCursorAnimation() {
|
|
22914
23348
|
let shouldClear = false;
|
|
@@ -22926,9 +23360,9 @@ class ITextBehavior extends FabricText {
|
|
|
22926
23360
|
}
|
|
22927
23361
|
}
|
|
22928
23362
|
|
|
22929
|
-
/**
|
|
22930
|
-
* Restart tue cursor animation if either is in complete state ( between animations )
|
|
22931
|
-
* or if it never started before
|
|
23363
|
+
/**
|
|
23364
|
+
* Restart tue cursor animation if either is in complete state ( between animations )
|
|
23365
|
+
* or if it never started before
|
|
22932
23366
|
*/
|
|
22933
23367
|
restartCursorIfNeeded() {
|
|
22934
23368
|
if ([this._currentTickState, this._currentTickCompleteState].some(cursorAnimation => !cursorAnimation || cursorAnimation.isDone())) {
|
|
@@ -22936,8 +23370,8 @@ class ITextBehavior extends FabricText {
|
|
|
22936
23370
|
}
|
|
22937
23371
|
}
|
|
22938
23372
|
|
|
22939
|
-
/**
|
|
22940
|
-
* Selects entire text
|
|
23373
|
+
/**
|
|
23374
|
+
* Selects entire text
|
|
22941
23375
|
*/
|
|
22942
23376
|
selectAll() {
|
|
22943
23377
|
this.selectionStart = 0;
|
|
@@ -22947,26 +23381,26 @@ class ITextBehavior extends FabricText {
|
|
|
22947
23381
|
return this;
|
|
22948
23382
|
}
|
|
22949
23383
|
|
|
22950
|
-
/**
|
|
22951
|
-
* Selects entire text and updates the visual state
|
|
23384
|
+
/**
|
|
23385
|
+
* Selects entire text and updates the visual state
|
|
22952
23386
|
*/
|
|
22953
23387
|
cmdAll() {
|
|
22954
23388
|
this.selectAll();
|
|
22955
23389
|
this.renderCursorOrSelection();
|
|
22956
23390
|
}
|
|
22957
23391
|
|
|
22958
|
-
/**
|
|
22959
|
-
* Returns selected text
|
|
22960
|
-
* @return {String}
|
|
23392
|
+
/**
|
|
23393
|
+
* Returns selected text
|
|
23394
|
+
* @return {String}
|
|
22961
23395
|
*/
|
|
22962
23396
|
getSelectedText() {
|
|
22963
23397
|
return this._text.slice(this.selectionStart, this.selectionEnd).join('');
|
|
22964
23398
|
}
|
|
22965
23399
|
|
|
22966
|
-
/**
|
|
22967
|
-
* Find new selection index representing start of current word according to current selection index
|
|
22968
|
-
* @param {Number} startFrom Current selection index
|
|
22969
|
-
* @return {Number} New selection index
|
|
23400
|
+
/**
|
|
23401
|
+
* Find new selection index representing start of current word according to current selection index
|
|
23402
|
+
* @param {Number} startFrom Current selection index
|
|
23403
|
+
* @return {Number} New selection index
|
|
22970
23404
|
*/
|
|
22971
23405
|
findWordBoundaryLeft(startFrom) {
|
|
22972
23406
|
let offset = 0,
|
|
@@ -22986,10 +23420,10 @@ class ITextBehavior extends FabricText {
|
|
|
22986
23420
|
return startFrom - offset;
|
|
22987
23421
|
}
|
|
22988
23422
|
|
|
22989
|
-
/**
|
|
22990
|
-
* Find new selection index representing end of current word according to current selection index
|
|
22991
|
-
* @param {Number} startFrom Current selection index
|
|
22992
|
-
* @return {Number} New selection index
|
|
23423
|
+
/**
|
|
23424
|
+
* Find new selection index representing end of current word according to current selection index
|
|
23425
|
+
* @param {Number} startFrom Current selection index
|
|
23426
|
+
* @return {Number} New selection index
|
|
22993
23427
|
*/
|
|
22994
23428
|
findWordBoundaryRight(startFrom) {
|
|
22995
23429
|
let offset = 0,
|
|
@@ -23009,10 +23443,10 @@ class ITextBehavior extends FabricText {
|
|
|
23009
23443
|
return startFrom + offset;
|
|
23010
23444
|
}
|
|
23011
23445
|
|
|
23012
|
-
/**
|
|
23013
|
-
* Find new selection index representing start of current line according to current selection index
|
|
23014
|
-
* @param {Number} startFrom Current selection index
|
|
23015
|
-
* @return {Number} New selection index
|
|
23446
|
+
/**
|
|
23447
|
+
* Find new selection index representing start of current line according to current selection index
|
|
23448
|
+
* @param {Number} startFrom Current selection index
|
|
23449
|
+
* @return {Number} New selection index
|
|
23016
23450
|
*/
|
|
23017
23451
|
findLineBoundaryLeft(startFrom) {
|
|
23018
23452
|
let offset = 0,
|
|
@@ -23024,10 +23458,10 @@ class ITextBehavior extends FabricText {
|
|
|
23024
23458
|
return startFrom - offset;
|
|
23025
23459
|
}
|
|
23026
23460
|
|
|
23027
|
-
/**
|
|
23028
|
-
* Find new selection index representing end of current line according to current selection index
|
|
23029
|
-
* @param {Number} startFrom Current selection index
|
|
23030
|
-
* @return {Number} New selection index
|
|
23461
|
+
/**
|
|
23462
|
+
* Find new selection index representing end of current line according to current selection index
|
|
23463
|
+
* @param {Number} startFrom Current selection index
|
|
23464
|
+
* @return {Number} New selection index
|
|
23031
23465
|
*/
|
|
23032
23466
|
findLineBoundaryRight(startFrom) {
|
|
23033
23467
|
let offset = 0,
|
|
@@ -23039,11 +23473,11 @@ class ITextBehavior extends FabricText {
|
|
|
23039
23473
|
return startFrom + offset;
|
|
23040
23474
|
}
|
|
23041
23475
|
|
|
23042
|
-
/**
|
|
23043
|
-
* Finds index corresponding to beginning or end of a word
|
|
23044
|
-
* @param {Number} selectionStart Index of a character
|
|
23045
|
-
* @param {Number} direction 1 or -1
|
|
23046
|
-
* @return {Number} Index of the beginning or end of a word
|
|
23476
|
+
/**
|
|
23477
|
+
* Finds index corresponding to beginning or end of a word
|
|
23478
|
+
* @param {Number} selectionStart Index of a character
|
|
23479
|
+
* @param {Number} direction 1 or -1
|
|
23480
|
+
* @return {Number} Index of the beginning or end of a word
|
|
23047
23481
|
*/
|
|
23048
23482
|
searchWordBoundary(selectionStart, direction) {
|
|
23049
23483
|
const text = this._text;
|
|
@@ -23061,9 +23495,9 @@ class ITextBehavior extends FabricText {
|
|
|
23061
23495
|
return index;
|
|
23062
23496
|
}
|
|
23063
23497
|
|
|
23064
|
-
/**
|
|
23065
|
-
* Selects the word that contains the char at index selectionStart
|
|
23066
|
-
* @param {Number} selectionStart Index of a character
|
|
23498
|
+
/**
|
|
23499
|
+
* Selects the word that contains the char at index selectionStart
|
|
23500
|
+
* @param {Number} selectionStart Index of a character
|
|
23067
23501
|
*/
|
|
23068
23502
|
selectWord(selectionStart) {
|
|
23069
23503
|
selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
|
|
@@ -23079,9 +23513,9 @@ class ITextBehavior extends FabricText {
|
|
|
23079
23513
|
this.renderCursorOrSelection();
|
|
23080
23514
|
}
|
|
23081
23515
|
|
|
23082
|
-
/**
|
|
23083
|
-
* Selects the line that contains selectionStart
|
|
23084
|
-
* @param {Number} selectionStart Index of a character
|
|
23516
|
+
/**
|
|
23517
|
+
* Selects the line that contains selectionStart
|
|
23518
|
+
* @param {Number} selectionStart Index of a character
|
|
23085
23519
|
*/
|
|
23086
23520
|
selectLine(selectionStart) {
|
|
23087
23521
|
selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : this.selectionStart;
|
|
@@ -23093,8 +23527,8 @@ class ITextBehavior extends FabricText {
|
|
|
23093
23527
|
this._updateTextarea();
|
|
23094
23528
|
}
|
|
23095
23529
|
|
|
23096
|
-
/**
|
|
23097
|
-
* Enters editing state
|
|
23530
|
+
/**
|
|
23531
|
+
* Enters editing state
|
|
23098
23532
|
*/
|
|
23099
23533
|
enterEditing(e) {
|
|
23100
23534
|
if (this.isEditing || !this.editable) {
|
|
@@ -23114,8 +23548,8 @@ class ITextBehavior extends FabricText {
|
|
|
23114
23548
|
}
|
|
23115
23549
|
}
|
|
23116
23550
|
|
|
23117
|
-
/**
|
|
23118
|
-
* runs the actual logic that enter from editing state, see {@link enterEditing}
|
|
23551
|
+
/**
|
|
23552
|
+
* runs the actual logic that enter from editing state, see {@link enterEditing}
|
|
23119
23553
|
*/
|
|
23120
23554
|
enterEditingImpl() {
|
|
23121
23555
|
if (this.canvas) {
|
|
@@ -23139,8 +23573,8 @@ class ITextBehavior extends FabricText {
|
|
|
23139
23573
|
}
|
|
23140
23574
|
}
|
|
23141
23575
|
|
|
23142
|
-
/**
|
|
23143
|
-
* Enter overlay editing mode using DOM textarea overlay
|
|
23576
|
+
/**
|
|
23577
|
+
* Enter overlay editing mode using DOM textarea overlay
|
|
23144
23578
|
*/
|
|
23145
23579
|
enterOverlayEditing() {
|
|
23146
23580
|
this._saveEditingProps();
|
|
@@ -23161,8 +23595,8 @@ class ITextBehavior extends FabricText {
|
|
|
23161
23595
|
});
|
|
23162
23596
|
}
|
|
23163
23597
|
|
|
23164
|
-
/**
|
|
23165
|
-
* Commit overlay editing changes
|
|
23598
|
+
/**
|
|
23599
|
+
* Commit overlay editing changes
|
|
23166
23600
|
*/
|
|
23167
23601
|
commitOverlayEdit(text) {
|
|
23168
23602
|
const overlayEditor = this.__overlayEditor;
|
|
@@ -23186,8 +23620,8 @@ class ITextBehavior extends FabricText {
|
|
|
23186
23620
|
this.canvas && this.canvas.requestRenderAll();
|
|
23187
23621
|
}
|
|
23188
23622
|
|
|
23189
|
-
/**
|
|
23190
|
-
* Cancel overlay editing without changes
|
|
23623
|
+
/**
|
|
23624
|
+
* Cancel overlay editing without changes
|
|
23191
23625
|
*/
|
|
23192
23626
|
cancelOverlayEdit() {
|
|
23193
23627
|
// Restore original text
|
|
@@ -23195,8 +23629,8 @@ class ITextBehavior extends FabricText {
|
|
|
23195
23629
|
this.exitEditing();
|
|
23196
23630
|
}
|
|
23197
23631
|
|
|
23198
|
-
/**
|
|
23199
|
-
* called by {@link Canvas#textEditingManager}
|
|
23632
|
+
/**
|
|
23633
|
+
* called by {@link Canvas#textEditingManager}
|
|
23200
23634
|
*/
|
|
23201
23635
|
updateSelectionOnMouseMove(e) {
|
|
23202
23636
|
if (this.getActiveControl()) {
|
|
@@ -23224,8 +23658,8 @@ class ITextBehavior extends FabricText {
|
|
|
23224
23658
|
}
|
|
23225
23659
|
}
|
|
23226
23660
|
|
|
23227
|
-
/**
|
|
23228
|
-
* @private
|
|
23661
|
+
/**
|
|
23662
|
+
* @private
|
|
23229
23663
|
*/
|
|
23230
23664
|
_setEditingProps() {
|
|
23231
23665
|
this.hoverCursor = 'text';
|
|
@@ -23237,8 +23671,8 @@ class ITextBehavior extends FabricText {
|
|
|
23237
23671
|
this.lockMovementX = this.lockMovementY = true;
|
|
23238
23672
|
}
|
|
23239
23673
|
|
|
23240
|
-
/**
|
|
23241
|
-
* convert from textarea to grapheme indexes
|
|
23674
|
+
/**
|
|
23675
|
+
* convert from textarea to grapheme indexes
|
|
23242
23676
|
*/
|
|
23243
23677
|
fromStringToGraphemeSelection(start, end, text) {
|
|
23244
23678
|
const smallerTextStart = text.slice(0, start),
|
|
@@ -23257,8 +23691,8 @@ class ITextBehavior extends FabricText {
|
|
|
23257
23691
|
};
|
|
23258
23692
|
}
|
|
23259
23693
|
|
|
23260
|
-
/**
|
|
23261
|
-
* convert from fabric to textarea values
|
|
23694
|
+
/**
|
|
23695
|
+
* convert from fabric to textarea values
|
|
23262
23696
|
*/
|
|
23263
23697
|
fromGraphemeToStringSelection(start, end, graphemes) {
|
|
23264
23698
|
const smallerTextStart = graphemes.slice(0, start),
|
|
@@ -23277,8 +23711,8 @@ class ITextBehavior extends FabricText {
|
|
|
23277
23711
|
};
|
|
23278
23712
|
}
|
|
23279
23713
|
|
|
23280
|
-
/**
|
|
23281
|
-
* @private
|
|
23714
|
+
/**
|
|
23715
|
+
* @private
|
|
23282
23716
|
*/
|
|
23283
23717
|
_updateTextarea() {
|
|
23284
23718
|
this.cursorOffsetCache = {};
|
|
@@ -23293,8 +23727,8 @@ class ITextBehavior extends FabricText {
|
|
|
23293
23727
|
this.updateTextareaPosition();
|
|
23294
23728
|
}
|
|
23295
23729
|
|
|
23296
|
-
/**
|
|
23297
|
-
* @private
|
|
23730
|
+
/**
|
|
23731
|
+
* @private
|
|
23298
23732
|
*/
|
|
23299
23733
|
updateFromTextArea() {
|
|
23300
23734
|
if (!this.hiddenTextarea) {
|
|
@@ -23314,8 +23748,8 @@ class ITextBehavior extends FabricText {
|
|
|
23314
23748
|
this.updateTextareaPosition();
|
|
23315
23749
|
}
|
|
23316
23750
|
|
|
23317
|
-
/**
|
|
23318
|
-
* @private
|
|
23751
|
+
/**
|
|
23752
|
+
* @private
|
|
23319
23753
|
*/
|
|
23320
23754
|
updateTextareaPosition() {
|
|
23321
23755
|
if (this.selectionStart === this.selectionEnd) {
|
|
@@ -23325,9 +23759,9 @@ class ITextBehavior extends FabricText {
|
|
|
23325
23759
|
}
|
|
23326
23760
|
}
|
|
23327
23761
|
|
|
23328
|
-
/**
|
|
23329
|
-
* @private
|
|
23330
|
-
* @return {Object} style contains style for hiddenTextarea
|
|
23762
|
+
/**
|
|
23763
|
+
* @private
|
|
23764
|
+
* @return {Object} style contains style for hiddenTextarea
|
|
23331
23765
|
*/
|
|
23332
23766
|
_calcTextareaPosition() {
|
|
23333
23767
|
if (!this.canvas) {
|
|
@@ -23374,8 +23808,8 @@ class ITextBehavior extends FabricText {
|
|
|
23374
23808
|
};
|
|
23375
23809
|
}
|
|
23376
23810
|
|
|
23377
|
-
/**
|
|
23378
|
-
* @private
|
|
23811
|
+
/**
|
|
23812
|
+
* @private
|
|
23379
23813
|
*/
|
|
23380
23814
|
_saveEditingProps() {
|
|
23381
23815
|
this._savedProps = {
|
|
@@ -23392,8 +23826,8 @@ class ITextBehavior extends FabricText {
|
|
|
23392
23826
|
};
|
|
23393
23827
|
}
|
|
23394
23828
|
|
|
23395
|
-
/**
|
|
23396
|
-
* @private
|
|
23829
|
+
/**
|
|
23830
|
+
* @private
|
|
23397
23831
|
*/
|
|
23398
23832
|
_restoreEditingProps() {
|
|
23399
23833
|
if (!this._savedProps) {
|
|
@@ -23413,9 +23847,9 @@ class ITextBehavior extends FabricText {
|
|
|
23413
23847
|
delete this._savedProps;
|
|
23414
23848
|
}
|
|
23415
23849
|
|
|
23416
|
-
/**
|
|
23417
|
-
* runs the actual logic that exits from editing state, see {@link exitEditing}
|
|
23418
|
-
* But it does not fire events
|
|
23850
|
+
/**
|
|
23851
|
+
* runs the actual logic that exits from editing state, see {@link exitEditing}
|
|
23852
|
+
* But it does not fire events
|
|
23419
23853
|
*/
|
|
23420
23854
|
exitEditingImpl() {
|
|
23421
23855
|
const hiddenTextarea = this.hiddenTextarea;
|
|
@@ -23436,8 +23870,8 @@ class ITextBehavior extends FabricText {
|
|
|
23436
23870
|
}
|
|
23437
23871
|
}
|
|
23438
23872
|
|
|
23439
|
-
/**
|
|
23440
|
-
* Exits from editing state and fires relevant events
|
|
23873
|
+
/**
|
|
23874
|
+
* Exits from editing state and fires relevant events
|
|
23441
23875
|
*/
|
|
23442
23876
|
exitEditing() {
|
|
23443
23877
|
const isTextChanged = this._textBeforeEdit !== this.text;
|
|
@@ -23456,8 +23890,8 @@ class ITextBehavior extends FabricText {
|
|
|
23456
23890
|
return this;
|
|
23457
23891
|
}
|
|
23458
23892
|
|
|
23459
|
-
/**
|
|
23460
|
-
* @private
|
|
23893
|
+
/**
|
|
23894
|
+
* @private
|
|
23461
23895
|
*/
|
|
23462
23896
|
_removeExtraneousStyles() {
|
|
23463
23897
|
for (const prop in this.styles) {
|
|
@@ -23467,10 +23901,10 @@ class ITextBehavior extends FabricText {
|
|
|
23467
23901
|
}
|
|
23468
23902
|
}
|
|
23469
23903
|
|
|
23470
|
-
/**
|
|
23471
|
-
* remove and reflow a style block from start to end.
|
|
23472
|
-
* @param {Number} start linear start position for removal (included in removal)
|
|
23473
|
-
* @param {Number} end linear end position for removal ( excluded from removal )
|
|
23904
|
+
/**
|
|
23905
|
+
* remove and reflow a style block from start to end.
|
|
23906
|
+
* @param {Number} start linear start position for removal (included in removal)
|
|
23907
|
+
* @param {Number} end linear end position for removal ( excluded from removal )
|
|
23474
23908
|
*/
|
|
23475
23909
|
removeStyleFromTo(start, end) {
|
|
23476
23910
|
const {
|
|
@@ -23523,10 +23957,10 @@ class ITextBehavior extends FabricText {
|
|
|
23523
23957
|
}
|
|
23524
23958
|
}
|
|
23525
23959
|
|
|
23526
|
-
/**
|
|
23527
|
-
* Shifts line styles up or down
|
|
23528
|
-
* @param {Number} lineIndex Index of a line
|
|
23529
|
-
* @param {Number} offset Can any number?
|
|
23960
|
+
/**
|
|
23961
|
+
* Shifts line styles up or down
|
|
23962
|
+
* @param {Number} lineIndex Index of a line
|
|
23963
|
+
* @param {Number} offset Can any number?
|
|
23530
23964
|
*/
|
|
23531
23965
|
shiftLineStyles(lineIndex, offset) {
|
|
23532
23966
|
const clonedStyles = Object.assign({}, this.styles);
|
|
@@ -23541,15 +23975,15 @@ class ITextBehavior extends FabricText {
|
|
|
23541
23975
|
}
|
|
23542
23976
|
}
|
|
23543
23977
|
|
|
23544
|
-
/**
|
|
23545
|
-
* Handle insertion of more consecutive style lines for when one or more
|
|
23546
|
-
* newlines gets added to the text. Since current style needs to be shifted
|
|
23547
|
-
* first we shift the current style of the number lines needed, then we add
|
|
23548
|
-
* new lines from the last to the first.
|
|
23549
|
-
* @param {Number} lineIndex Index of a line
|
|
23550
|
-
* @param {Number} charIndex Index of a char
|
|
23551
|
-
* @param {Number} qty number of lines to add
|
|
23552
|
-
* @param {Array} copiedStyle Array of objects styles
|
|
23978
|
+
/**
|
|
23979
|
+
* Handle insertion of more consecutive style lines for when one or more
|
|
23980
|
+
* newlines gets added to the text. Since current style needs to be shifted
|
|
23981
|
+
* first we shift the current style of the number lines needed, then we add
|
|
23982
|
+
* new lines from the last to the first.
|
|
23983
|
+
* @param {Number} lineIndex Index of a line
|
|
23984
|
+
* @param {Number} charIndex Index of a char
|
|
23985
|
+
* @param {Number} qty number of lines to add
|
|
23986
|
+
* @param {Array} copiedStyle Array of objects styles
|
|
23553
23987
|
*/
|
|
23554
23988
|
insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle) {
|
|
23555
23989
|
const newLineStyles = {};
|
|
@@ -23609,12 +24043,12 @@ class ITextBehavior extends FabricText {
|
|
|
23609
24043
|
this._forceClearCache = true;
|
|
23610
24044
|
}
|
|
23611
24045
|
|
|
23612
|
-
/**
|
|
23613
|
-
* Inserts style object for a given line/char index
|
|
23614
|
-
* @param {Number} lineIndex Index of a line
|
|
23615
|
-
* @param {Number} charIndex Index of a char
|
|
23616
|
-
* @param {Number} quantity number Style object to insert, if given
|
|
23617
|
-
* @param {Array} copiedStyle array of style objects
|
|
24046
|
+
/**
|
|
24047
|
+
* Inserts style object for a given line/char index
|
|
24048
|
+
* @param {Number} lineIndex Index of a line
|
|
24049
|
+
* @param {Number} charIndex Index of a char
|
|
24050
|
+
* @param {Number} quantity number Style object to insert, if given
|
|
24051
|
+
* @param {Array} copiedStyle array of style objects
|
|
23618
24052
|
*/
|
|
23619
24053
|
insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle) {
|
|
23620
24054
|
if (!this.styles) {
|
|
@@ -23663,11 +24097,11 @@ class ITextBehavior extends FabricText {
|
|
|
23663
24097
|
}
|
|
23664
24098
|
}
|
|
23665
24099
|
|
|
23666
|
-
/**
|
|
23667
|
-
* Inserts style object(s)
|
|
23668
|
-
* @param {Array} insertedText Characters at the location where style is inserted
|
|
23669
|
-
* @param {Number} start cursor index for inserting style
|
|
23670
|
-
* @param {Array} [copiedStyle] array of style objects to insert.
|
|
24100
|
+
/**
|
|
24101
|
+
* Inserts style object(s)
|
|
24102
|
+
* @param {Array} insertedText Characters at the location where style is inserted
|
|
24103
|
+
* @param {Number} start cursor index for inserting style
|
|
24104
|
+
* @param {Array} [copiedStyle] array of style objects to insert.
|
|
23671
24105
|
*/
|
|
23672
24106
|
insertNewStyleBlock(insertedText, start, copiedStyle) {
|
|
23673
24107
|
const cursorLoc = this.get2DCursorLocation(start, true),
|
|
@@ -23708,12 +24142,12 @@ class ITextBehavior extends FabricText {
|
|
|
23708
24142
|
}
|
|
23709
24143
|
}
|
|
23710
24144
|
|
|
23711
|
-
/**
|
|
23712
|
-
* Removes characters from start/end
|
|
23713
|
-
* start/end ar per grapheme position in _text array.
|
|
23714
|
-
*
|
|
23715
|
-
* @param {Number} start
|
|
23716
|
-
* @param {Number} end default to start + 1
|
|
24145
|
+
/**
|
|
24146
|
+
* Removes characters from start/end
|
|
24147
|
+
* start/end ar per grapheme position in _text array.
|
|
24148
|
+
*
|
|
24149
|
+
* @param {Number} start
|
|
24150
|
+
* @param {Number} end default to start + 1
|
|
23717
24151
|
*/
|
|
23718
24152
|
removeChars(start) {
|
|
23719
24153
|
let end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start + 1;
|
|
@@ -23726,17 +24160,17 @@ class ITextBehavior extends FabricText {
|
|
|
23726
24160
|
this._removeExtraneousStyles();
|
|
23727
24161
|
}
|
|
23728
24162
|
|
|
23729
|
-
/**
|
|
23730
|
-
* insert characters at start position, before start position.
|
|
23731
|
-
* start equal 1 it means the text get inserted between actual grapheme 0 and 1
|
|
23732
|
-
* if style array is provided, it must be as the same length of text in graphemes
|
|
23733
|
-
* if end is provided and is bigger than start, old text is replaced.
|
|
23734
|
-
* start/end ar per grapheme position in _text array.
|
|
23735
|
-
*
|
|
23736
|
-
* @param {String} text text to insert
|
|
23737
|
-
* @param {Array} style array of style objects
|
|
23738
|
-
* @param {Number} start
|
|
23739
|
-
* @param {Number} end default to start + 1
|
|
24163
|
+
/**
|
|
24164
|
+
* insert characters at start position, before start position.
|
|
24165
|
+
* start equal 1 it means the text get inserted between actual grapheme 0 and 1
|
|
24166
|
+
* if style array is provided, it must be as the same length of text in graphemes
|
|
24167
|
+
* if end is provided and is bigger than start, old text is replaced.
|
|
24168
|
+
* start/end ar per grapheme position in _text array.
|
|
24169
|
+
*
|
|
24170
|
+
* @param {String} text text to insert
|
|
24171
|
+
* @param {Array} style array of style objects
|
|
24172
|
+
* @param {Number} start
|
|
24173
|
+
* @param {Number} end default to start + 1
|
|
23740
24174
|
*/
|
|
23741
24175
|
insertChars(text, style, start) {
|
|
23742
24176
|
let end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : start;
|
|
@@ -23753,9 +24187,9 @@ class ITextBehavior extends FabricText {
|
|
|
23753
24187
|
this._removeExtraneousStyles();
|
|
23754
24188
|
}
|
|
23755
24189
|
|
|
23756
|
-
/**
|
|
23757
|
-
* Set the selectionStart and selectionEnd according to the new position of cursor
|
|
23758
|
-
* mimic the key - mouse navigation when shift is pressed.
|
|
24190
|
+
/**
|
|
24191
|
+
* Set the selectionStart and selectionEnd according to the new position of cursor
|
|
24192
|
+
* mimic the key - mouse navigation when shift is pressed.
|
|
23759
24193
|
*/
|
|
23760
24194
|
setSelectionStartEndWithShift(start, end, newSelection) {
|
|
23761
24195
|
if (newSelection <= start) {
|
|
@@ -24378,8 +24812,8 @@ class ITextKeyBehavior extends ITextBehavior {
|
|
|
24378
24812
|
}
|
|
24379
24813
|
}
|
|
24380
24814
|
|
|
24381
|
-
/**
|
|
24382
|
-
* `LEFT_CLICK === 0`
|
|
24815
|
+
/**
|
|
24816
|
+
* `LEFT_CLICK === 0`
|
|
24383
24817
|
*/
|
|
24384
24818
|
const notALeftClick = e => !!e.button;
|
|
24385
24819
|
class ITextClickBehavior extends ITextKeyBehavior {
|
|
@@ -24397,36 +24831,36 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24397
24831
|
super.initBehavior();
|
|
24398
24832
|
}
|
|
24399
24833
|
|
|
24400
|
-
/**
|
|
24401
|
-
* If this method returns true a mouse move operation over a text selection
|
|
24402
|
-
* will not prevent the native mouse event allowing the browser to start a drag operation.
|
|
24403
|
-
* shouldStartDragging can be read 'do not prevent default for mouse move event'
|
|
24404
|
-
* To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
|
|
24405
|
-
* @returns
|
|
24834
|
+
/**
|
|
24835
|
+
* If this method returns true a mouse move operation over a text selection
|
|
24836
|
+
* will not prevent the native mouse event allowing the browser to start a drag operation.
|
|
24837
|
+
* shouldStartDragging can be read 'do not prevent default for mouse move event'
|
|
24838
|
+
* To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
|
|
24839
|
+
* @returns
|
|
24406
24840
|
*/
|
|
24407
24841
|
shouldStartDragging() {
|
|
24408
24842
|
return this.draggableTextDelegate.isActive();
|
|
24409
24843
|
}
|
|
24410
24844
|
|
|
24411
|
-
/**
|
|
24412
|
-
* @public override this method to control whether instance should/shouldn't become a drag source,
|
|
24413
|
-
* @see also {@link DraggableTextDelegate#isActive}
|
|
24414
|
-
* To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
|
|
24415
|
-
* @returns {boolean} should handle event
|
|
24845
|
+
/**
|
|
24846
|
+
* @public override this method to control whether instance should/shouldn't become a drag source,
|
|
24847
|
+
* @see also {@link DraggableTextDelegate#isActive}
|
|
24848
|
+
* To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false
|
|
24849
|
+
* @returns {boolean} should handle event
|
|
24416
24850
|
*/
|
|
24417
24851
|
onDragStart(e) {
|
|
24418
24852
|
return this.draggableTextDelegate.onDragStart(e);
|
|
24419
24853
|
}
|
|
24420
24854
|
|
|
24421
|
-
/**
|
|
24422
|
-
* @public override this method to control whether instance should/shouldn't become a drop target
|
|
24855
|
+
/**
|
|
24856
|
+
* @public override this method to control whether instance should/shouldn't become a drop target
|
|
24423
24857
|
*/
|
|
24424
24858
|
canDrop(e) {
|
|
24425
24859
|
return this.draggableTextDelegate.canDrop(e);
|
|
24426
24860
|
}
|
|
24427
24861
|
|
|
24428
|
-
/**
|
|
24429
|
-
* Default handler for double click, select a word or enter overlay editing
|
|
24862
|
+
/**
|
|
24863
|
+
* Default handler for double click, select a word or enter overlay editing
|
|
24430
24864
|
*/
|
|
24431
24865
|
doubleClickHandler(options) {
|
|
24432
24866
|
// Check if we should enter overlay editing mode
|
|
@@ -24443,8 +24877,8 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24443
24877
|
this.renderCursorOrSelection();
|
|
24444
24878
|
}
|
|
24445
24879
|
|
|
24446
|
-
/**
|
|
24447
|
-
* Default handler for triple click, select a line
|
|
24880
|
+
/**
|
|
24881
|
+
* Default handler for triple click, select a line
|
|
24448
24882
|
*/
|
|
24449
24883
|
tripleClickHandler(options) {
|
|
24450
24884
|
if (!this.isEditing) {
|
|
@@ -24454,13 +24888,13 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24454
24888
|
this.renderCursorOrSelection();
|
|
24455
24889
|
}
|
|
24456
24890
|
|
|
24457
|
-
/**
|
|
24458
|
-
* Default event handler for the basic functionalities needed on _mouseDown
|
|
24459
|
-
* can be overridden to do something different.
|
|
24460
|
-
* Scope of this implementation is: find the click position, set selectionStart
|
|
24461
|
-
* find selectionEnd, initialize the drawing of either cursor or selection area
|
|
24462
|
-
* initializing a mousedDown on a text area will cancel fabricjs knowledge of
|
|
24463
|
-
* current compositionMode. It will be set to false.
|
|
24891
|
+
/**
|
|
24892
|
+
* Default event handler for the basic functionalities needed on _mouseDown
|
|
24893
|
+
* can be overridden to do something different.
|
|
24894
|
+
* Scope of this implementation is: find the click position, set selectionStart
|
|
24895
|
+
* find selectionEnd, initialize the drawing of either cursor or selection area
|
|
24896
|
+
* initializing a mousedDown on a text area will cancel fabricjs knowledge of
|
|
24897
|
+
* current compositionMode. It will be set to false.
|
|
24464
24898
|
*/
|
|
24465
24899
|
_mouseDownHandler(_ref) {
|
|
24466
24900
|
let {
|
|
@@ -24488,9 +24922,9 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24488
24922
|
this.selected || (this.selected = alreadySelected || this.isEditing);
|
|
24489
24923
|
}
|
|
24490
24924
|
|
|
24491
|
-
/**
|
|
24492
|
-
* standard handler for mouse up, overridable
|
|
24493
|
-
* @private
|
|
24925
|
+
/**
|
|
24926
|
+
* standard handler for mouse up, overridable
|
|
24927
|
+
* @private
|
|
24494
24928
|
*/
|
|
24495
24929
|
mouseUpHandler(_ref2) {
|
|
24496
24930
|
let {
|
|
@@ -24521,9 +24955,9 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24521
24955
|
}
|
|
24522
24956
|
}
|
|
24523
24957
|
|
|
24524
|
-
/**
|
|
24525
|
-
* Changes cursor location in a text depending on passed pointer (x/y) object
|
|
24526
|
-
* @param {TPointerEvent} e Event object
|
|
24958
|
+
/**
|
|
24959
|
+
* Changes cursor location in a text depending on passed pointer (x/y) object
|
|
24960
|
+
* @param {TPointerEvent} e Event object
|
|
24527
24961
|
*/
|
|
24528
24962
|
setCursorByClick(e) {
|
|
24529
24963
|
const newSelection = this.getSelectionStartFromPointer(e),
|
|
@@ -24541,10 +24975,10 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24541
24975
|
}
|
|
24542
24976
|
}
|
|
24543
24977
|
|
|
24544
|
-
/**
|
|
24545
|
-
* Returns index of a character corresponding to where an object was clicked
|
|
24546
|
-
* @param {TPointerEvent} e Event object
|
|
24547
|
-
* @return {Number} Index of a character
|
|
24978
|
+
/**
|
|
24979
|
+
* Returns index of a character corresponding to where an object was clicked
|
|
24980
|
+
* @param {TPointerEvent} e Event object
|
|
24981
|
+
* @return {Number} Index of a character
|
|
24548
24982
|
*/
|
|
24549
24983
|
getSelectionStartFromPointer(e) {
|
|
24550
24984
|
const mouseOffset = this.canvas.getScenePoint(e).transform(invertTransform(this.calcTransformMatrix())).add(new Point(-this._getLeftOffset(), -this._getTopOffset()));
|
|
@@ -24590,15 +25024,15 @@ class ITextClickBehavior extends ITextKeyBehavior {
|
|
|
24590
25024
|
}
|
|
24591
25025
|
}
|
|
24592
25026
|
|
|
24593
|
-
/**
|
|
24594
|
-
* Hit Testing and Cursor Positioning System
|
|
24595
|
-
*
|
|
24596
|
-
* Maps pointer coordinates to text positions and provides cursor rectangles
|
|
24597
|
-
* for interactive text editing with grapheme-aware boundaries.
|
|
25027
|
+
/**
|
|
25028
|
+
* Hit Testing and Cursor Positioning System
|
|
25029
|
+
*
|
|
25030
|
+
* Maps pointer coordinates to text positions and provides cursor rectangles
|
|
25031
|
+
* for interactive text editing with grapheme-aware boundaries.
|
|
24598
25032
|
*/
|
|
24599
25033
|
|
|
24600
|
-
/**
|
|
24601
|
-
* Hit test a point against laid out text to find insertion position
|
|
25034
|
+
/**
|
|
25035
|
+
* Hit test a point against laid out text to find insertion position
|
|
24602
25036
|
*/
|
|
24603
25037
|
function hitTest(x, y, layout, options) {
|
|
24604
25038
|
if (layout.lines.length === 0) {
|
|
@@ -24642,8 +25076,8 @@ function hitTest(x, y, layout, options) {
|
|
|
24642
25076
|
};
|
|
24643
25077
|
}
|
|
24644
25078
|
|
|
24645
|
-
/**
|
|
24646
|
-
* Get cursor rectangle for a given insertion index
|
|
25079
|
+
/**
|
|
25080
|
+
* Get cursor rectangle for a given insertion index
|
|
24647
25081
|
*/
|
|
24648
25082
|
function getCursorRect(insertionIndex, layout, options) {
|
|
24649
25083
|
if (layout.lines.length === 0) {
|
|
@@ -24690,8 +25124,8 @@ function getCursorRect(insertionIndex, layout, options) {
|
|
|
24690
25124
|
|
|
24691
25125
|
// Private helper functions
|
|
24692
25126
|
|
|
24693
|
-
/**
|
|
24694
|
-
* Find which line contains the given Y coordinate
|
|
25127
|
+
/**
|
|
25128
|
+
* Find which line contains the given Y coordinate
|
|
24695
25129
|
*/
|
|
24696
25130
|
function findLineAtY(y, lines) {
|
|
24697
25131
|
var _lines;
|
|
@@ -24714,8 +25148,8 @@ function findLineAtY(y, lines) {
|
|
|
24714
25148
|
};
|
|
24715
25149
|
}
|
|
24716
25150
|
|
|
24717
|
-
/**
|
|
24718
|
-
* Find character position within a line at given X coordinate
|
|
25151
|
+
/**
|
|
25152
|
+
* Find character position within a line at given X coordinate
|
|
24719
25153
|
*/
|
|
24720
25154
|
function findCharAtX(x, line, options) {
|
|
24721
25155
|
if (line.bounds.length === 0) {
|
|
@@ -24821,8 +25255,8 @@ function findCharAtX(x, line, options) {
|
|
|
24821
25255
|
};
|
|
24822
25256
|
}
|
|
24823
25257
|
|
|
24824
|
-
/**
|
|
24825
|
-
* Calculate total insertion index from line and character indices
|
|
25258
|
+
/**
|
|
25259
|
+
* Calculate total insertion index from line and character indices
|
|
24826
25260
|
*/
|
|
24827
25261
|
function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
|
|
24828
25262
|
let insertionIndex = 0;
|
|
@@ -24841,8 +25275,8 @@ function calculateInsertionIndex(lineIndex, graphemeIndex, layout) {
|
|
|
24841
25275
|
return insertionIndex;
|
|
24842
25276
|
}
|
|
24843
25277
|
|
|
24844
|
-
/**
|
|
24845
|
-
* Find line and grapheme position from insertion index
|
|
25278
|
+
/**
|
|
25279
|
+
* Find line and grapheme position from insertion index
|
|
24846
25280
|
*/
|
|
24847
25281
|
function findPositionFromIndex(insertionIndex, layout) {
|
|
24848
25282
|
let currentIndex = 0;
|
|
@@ -24884,8 +25318,8 @@ function findPositionFromIndex(insertionIndex, layout) {
|
|
|
24884
25318
|
};
|
|
24885
25319
|
}
|
|
24886
25320
|
|
|
24887
|
-
/**
|
|
24888
|
-
* Calculate Y position of a line
|
|
25321
|
+
/**
|
|
25322
|
+
* Calculate Y position of a line
|
|
24889
25323
|
*/
|
|
24890
25324
|
function calculateLineY(lineIndex, layout, options) {
|
|
24891
25325
|
let y = 0;
|
|
@@ -24988,48 +25422,48 @@ const iTextDefaultValues = {
|
|
|
24988
25422
|
|
|
24989
25423
|
// @TODO this is not complete
|
|
24990
25424
|
|
|
24991
|
-
/**
|
|
24992
|
-
* @fires changed
|
|
24993
|
-
* @fires selection:changed
|
|
24994
|
-
* @fires editing:entered
|
|
24995
|
-
* @fires editing:exited
|
|
24996
|
-
* @fires dragstart
|
|
24997
|
-
* @fires drag drag event firing on the drag source
|
|
24998
|
-
* @fires dragend
|
|
24999
|
-
* @fires copy
|
|
25000
|
-
* @fires cut
|
|
25001
|
-
* @fires paste
|
|
25002
|
-
*
|
|
25003
|
-
* #### Supported key combinations
|
|
25004
|
-
* ```
|
|
25005
|
-
* Move cursor: left, right, up, down
|
|
25006
|
-
* Select character: shift + left, shift + right
|
|
25007
|
-
* Select text vertically: shift + up, shift + down
|
|
25008
|
-
* Move cursor by word: alt + left, alt + right
|
|
25009
|
-
* Select words: shift + alt + left, shift + alt + right
|
|
25010
|
-
* Move cursor to line start/end: cmd + left, cmd + right or home, end
|
|
25011
|
-
* Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
|
|
25012
|
-
* Jump to start/end of text: cmd + up, cmd + down
|
|
25013
|
-
* Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
|
|
25014
|
-
* Delete character: backspace
|
|
25015
|
-
* Delete word: alt + backspace
|
|
25016
|
-
* Delete line: cmd + backspace
|
|
25017
|
-
* Forward delete: delete
|
|
25018
|
-
* Copy text: ctrl/cmd + c
|
|
25019
|
-
* Paste text: ctrl/cmd + v
|
|
25020
|
-
* Cut text: ctrl/cmd + x
|
|
25021
|
-
* Select entire text: ctrl/cmd + a
|
|
25022
|
-
* Quit editing tab or esc
|
|
25023
|
-
* ```
|
|
25024
|
-
*
|
|
25025
|
-
* #### Supported mouse/touch combination
|
|
25026
|
-
* ```
|
|
25027
|
-
* Position cursor: click/touch
|
|
25028
|
-
* Create selection: click/touch & drag
|
|
25029
|
-
* Create selection: click & shift + click
|
|
25030
|
-
* Select word: double click
|
|
25031
|
-
* Select line: triple click
|
|
25032
|
-
* ```
|
|
25425
|
+
/**
|
|
25426
|
+
* @fires changed
|
|
25427
|
+
* @fires selection:changed
|
|
25428
|
+
* @fires editing:entered
|
|
25429
|
+
* @fires editing:exited
|
|
25430
|
+
* @fires dragstart
|
|
25431
|
+
* @fires drag drag event firing on the drag source
|
|
25432
|
+
* @fires dragend
|
|
25433
|
+
* @fires copy
|
|
25434
|
+
* @fires cut
|
|
25435
|
+
* @fires paste
|
|
25436
|
+
*
|
|
25437
|
+
* #### Supported key combinations
|
|
25438
|
+
* ```
|
|
25439
|
+
* Move cursor: left, right, up, down
|
|
25440
|
+
* Select character: shift + left, shift + right
|
|
25441
|
+
* Select text vertically: shift + up, shift + down
|
|
25442
|
+
* Move cursor by word: alt + left, alt + right
|
|
25443
|
+
* Select words: shift + alt + left, shift + alt + right
|
|
25444
|
+
* Move cursor to line start/end: cmd + left, cmd + right or home, end
|
|
25445
|
+
* Select till start/end of line: cmd + shift + left, cmd + shift + right or shift + home, shift + end
|
|
25446
|
+
* Jump to start/end of text: cmd + up, cmd + down
|
|
25447
|
+
* Select till start/end of text: cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown
|
|
25448
|
+
* Delete character: backspace
|
|
25449
|
+
* Delete word: alt + backspace
|
|
25450
|
+
* Delete line: cmd + backspace
|
|
25451
|
+
* Forward delete: delete
|
|
25452
|
+
* Copy text: ctrl/cmd + c
|
|
25453
|
+
* Paste text: ctrl/cmd + v
|
|
25454
|
+
* Cut text: ctrl/cmd + x
|
|
25455
|
+
* Select entire text: ctrl/cmd + a
|
|
25456
|
+
* Quit editing tab or esc
|
|
25457
|
+
* ```
|
|
25458
|
+
*
|
|
25459
|
+
* #### Supported mouse/touch combination
|
|
25460
|
+
* ```
|
|
25461
|
+
* Position cursor: click/touch
|
|
25462
|
+
* Create selection: click/touch & drag
|
|
25463
|
+
* Create selection: click & shift + click
|
|
25464
|
+
* Select word: double click
|
|
25465
|
+
* Select line: triple click
|
|
25466
|
+
* ```
|
|
25033
25467
|
*/
|
|
25034
25468
|
class IText extends ITextClickBehavior {
|
|
25035
25469
|
static getDefaults() {
|
|
@@ -25044,10 +25478,10 @@ class IText extends ITextClickBehavior {
|
|
|
25044
25478
|
return type === 'itext' ? 'i-text' : type;
|
|
25045
25479
|
}
|
|
25046
25480
|
|
|
25047
|
-
/**
|
|
25048
|
-
* Constructor
|
|
25049
|
-
* @param {String} text Text string
|
|
25050
|
-
* @param {Object} [options] Options object
|
|
25481
|
+
/**
|
|
25482
|
+
* Constructor
|
|
25483
|
+
* @param {String} text Text string
|
|
25484
|
+
* @param {Object} [options] Options object
|
|
25051
25485
|
*/
|
|
25052
25486
|
constructor(text, options) {
|
|
25053
25487
|
super(text, {
|
|
@@ -25057,11 +25491,11 @@ class IText extends ITextClickBehavior {
|
|
|
25057
25491
|
this.initBehavior();
|
|
25058
25492
|
}
|
|
25059
25493
|
|
|
25060
|
-
/**
|
|
25061
|
-
* While editing handle differently
|
|
25062
|
-
* @private
|
|
25063
|
-
* @param {string} key
|
|
25064
|
-
* @param {*} value
|
|
25494
|
+
/**
|
|
25495
|
+
* While editing handle differently
|
|
25496
|
+
* @private
|
|
25497
|
+
* @param {string} key
|
|
25498
|
+
* @param {*} value
|
|
25065
25499
|
*/
|
|
25066
25500
|
_set(key, value) {
|
|
25067
25501
|
if (this.isEditing && this._savedProps && key in this._savedProps) {
|
|
@@ -25076,28 +25510,28 @@ class IText extends ITextClickBehavior {
|
|
|
25076
25510
|
return super._set(key, value);
|
|
25077
25511
|
}
|
|
25078
25512
|
|
|
25079
|
-
/**
|
|
25080
|
-
* Sets selection start (left boundary of a selection)
|
|
25081
|
-
* @param {Number} index Index to set selection start to
|
|
25513
|
+
/**
|
|
25514
|
+
* Sets selection start (left boundary of a selection)
|
|
25515
|
+
* @param {Number} index Index to set selection start to
|
|
25082
25516
|
*/
|
|
25083
25517
|
setSelectionStart(index) {
|
|
25084
25518
|
index = Math.max(index, 0);
|
|
25085
25519
|
this._updateAndFire('selectionStart', index);
|
|
25086
25520
|
}
|
|
25087
25521
|
|
|
25088
|
-
/**
|
|
25089
|
-
* Sets selection end (right boundary of a selection)
|
|
25090
|
-
* @param {Number} index Index to set selection end to
|
|
25522
|
+
/**
|
|
25523
|
+
* Sets selection end (right boundary of a selection)
|
|
25524
|
+
* @param {Number} index Index to set selection end to
|
|
25091
25525
|
*/
|
|
25092
25526
|
setSelectionEnd(index) {
|
|
25093
25527
|
index = Math.min(index, this.text.length);
|
|
25094
25528
|
this._updateAndFire('selectionEnd', index);
|
|
25095
25529
|
}
|
|
25096
25530
|
|
|
25097
|
-
/**
|
|
25098
|
-
* @private
|
|
25099
|
-
* @param {String} property 'selectionStart' or 'selectionEnd'
|
|
25100
|
-
* @param {Number} index new position of property
|
|
25531
|
+
/**
|
|
25532
|
+
* @private
|
|
25533
|
+
* @param {String} property 'selectionStart' or 'selectionEnd'
|
|
25534
|
+
* @param {Number} index new position of property
|
|
25101
25535
|
*/
|
|
25102
25536
|
_updateAndFire(property, index) {
|
|
25103
25537
|
if (this[property] !== index) {
|
|
@@ -25107,9 +25541,9 @@ class IText extends ITextClickBehavior {
|
|
|
25107
25541
|
this._updateTextarea();
|
|
25108
25542
|
}
|
|
25109
25543
|
|
|
25110
|
-
/**
|
|
25111
|
-
* Fires the even of selection changed
|
|
25112
|
-
* @private
|
|
25544
|
+
/**
|
|
25545
|
+
* Fires the even of selection changed
|
|
25546
|
+
* @private
|
|
25113
25547
|
*/
|
|
25114
25548
|
_fireSelectionChanged() {
|
|
25115
25549
|
this.fire('selection:changed');
|
|
@@ -25118,25 +25552,25 @@ class IText extends ITextClickBehavior {
|
|
|
25118
25552
|
});
|
|
25119
25553
|
}
|
|
25120
25554
|
|
|
25121
|
-
/**
|
|
25122
|
-
* Initialize text dimensions. Render all text on given context
|
|
25123
|
-
* or on a offscreen canvas to get the text width with measureText.
|
|
25124
|
-
* Updates this.width and this.height with the proper values.
|
|
25125
|
-
* Does not return dimensions.
|
|
25126
|
-
* @private
|
|
25555
|
+
/**
|
|
25556
|
+
* Initialize text dimensions. Render all text on given context
|
|
25557
|
+
* or on a offscreen canvas to get the text width with measureText.
|
|
25558
|
+
* Updates this.width and this.height with the proper values.
|
|
25559
|
+
* Does not return dimensions.
|
|
25560
|
+
* @private
|
|
25127
25561
|
*/
|
|
25128
25562
|
initDimensions() {
|
|
25129
25563
|
this.isEditing && this.initDelayedCursor();
|
|
25130
25564
|
super.initDimensions();
|
|
25131
25565
|
}
|
|
25132
25566
|
|
|
25133
|
-
/**
|
|
25134
|
-
* Gets style of a current selection/cursor (at the start position)
|
|
25135
|
-
* if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
|
|
25136
|
-
* @param {Number} startIndex Start index to get styles at
|
|
25137
|
-
* @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
|
|
25138
|
-
* @param {Boolean} [complete] get full style or not
|
|
25139
|
-
* @return {Array} styles an array with one, zero or more Style objects
|
|
25567
|
+
/**
|
|
25568
|
+
* Gets style of a current selection/cursor (at the start position)
|
|
25569
|
+
* if startIndex or endIndex are not provided, selectionStart or selectionEnd will be used.
|
|
25570
|
+
* @param {Number} startIndex Start index to get styles at
|
|
25571
|
+
* @param {Number} endIndex End index to get styles at, if not specified selectionEnd or startIndex + 1
|
|
25572
|
+
* @param {Boolean} [complete] get full style or not
|
|
25573
|
+
* @return {Array} styles an array with one, zero or more Style objects
|
|
25140
25574
|
*/
|
|
25141
25575
|
getSelectionStyles() {
|
|
25142
25576
|
let startIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart || 0;
|
|
@@ -25145,11 +25579,11 @@ class IText extends ITextClickBehavior {
|
|
|
25145
25579
|
return super.getSelectionStyles(startIndex, endIndex, complete);
|
|
25146
25580
|
}
|
|
25147
25581
|
|
|
25148
|
-
/**
|
|
25149
|
-
* Sets style of a current selection, if no selection exist, do not set anything.
|
|
25150
|
-
* @param {Object} [styles] Styles object
|
|
25151
|
-
* @param {Number} [startIndex] Start index to get styles at
|
|
25152
|
-
* @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
|
|
25582
|
+
/**
|
|
25583
|
+
* Sets style of a current selection, if no selection exist, do not set anything.
|
|
25584
|
+
* @param {Object} [styles] Styles object
|
|
25585
|
+
* @param {Number} [startIndex] Start index to get styles at
|
|
25586
|
+
* @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1
|
|
25153
25587
|
*/
|
|
25154
25588
|
setSelectionStyles(styles) {
|
|
25155
25589
|
let startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.selectionStart || 0;
|
|
@@ -25157,10 +25591,10 @@ class IText extends ITextClickBehavior {
|
|
|
25157
25591
|
return super.setSelectionStyles(styles, startIndex, endIndex);
|
|
25158
25592
|
}
|
|
25159
25593
|
|
|
25160
|
-
/**
|
|
25161
|
-
* Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
|
|
25162
|
-
* @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
|
|
25163
|
-
* @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
|
|
25594
|
+
/**
|
|
25595
|
+
* Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)
|
|
25596
|
+
* @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.
|
|
25597
|
+
* @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.
|
|
25164
25598
|
*/
|
|
25165
25599
|
get2DCursorLocation() {
|
|
25166
25600
|
let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
|
|
@@ -25168,9 +25602,9 @@ class IText extends ITextClickBehavior {
|
|
|
25168
25602
|
return super.get2DCursorLocation(selectionStart, skipWrapping);
|
|
25169
25603
|
}
|
|
25170
25604
|
|
|
25171
|
-
/**
|
|
25172
|
-
* @private
|
|
25173
|
-
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
25605
|
+
/**
|
|
25606
|
+
* @private
|
|
25607
|
+
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
25174
25608
|
*/
|
|
25175
25609
|
render(ctx) {
|
|
25176
25610
|
super.render(ctx);
|
|
@@ -25180,9 +25614,9 @@ class IText extends ITextClickBehavior {
|
|
|
25180
25614
|
this.renderCursorOrSelection();
|
|
25181
25615
|
}
|
|
25182
25616
|
|
|
25183
|
-
/**
|
|
25184
|
-
* @override block cursor/selection logic while rendering the exported canvas
|
|
25185
|
-
* @todo this workaround should be replaced with a more robust solution
|
|
25617
|
+
/**
|
|
25618
|
+
* @override block cursor/selection logic while rendering the exported canvas
|
|
25619
|
+
* @todo this workaround should be replaced with a more robust solution
|
|
25186
25620
|
*/
|
|
25187
25621
|
toCanvasElement(options) {
|
|
25188
25622
|
const isEditing = this.isEditing;
|
|
@@ -25192,9 +25626,9 @@ class IText extends ITextClickBehavior {
|
|
|
25192
25626
|
return canvas;
|
|
25193
25627
|
}
|
|
25194
25628
|
|
|
25195
|
-
/**
|
|
25196
|
-
* Renders cursor or selection (depending on what exists)
|
|
25197
|
-
* it does on the contextTop. If contextTop is not available, do nothing.
|
|
25629
|
+
/**
|
|
25630
|
+
* Renders cursor or selection (depending on what exists)
|
|
25631
|
+
* it does on the contextTop. If contextTop is not available, do nothing.
|
|
25198
25632
|
*/
|
|
25199
25633
|
renderCursorOrSelection() {
|
|
25200
25634
|
if (!this.isEditing || !this.canvas) {
|
|
@@ -25250,12 +25684,12 @@ class IText extends ITextClickBehavior {
|
|
|
25250
25684
|
ctx.restore();
|
|
25251
25685
|
}
|
|
25252
25686
|
|
|
25253
|
-
/**
|
|
25254
|
-
* Finds and returns an array of clip paths that are applied to the parent
|
|
25255
|
-
* group(s) of the current FabricObject instance. The object's hierarchy is
|
|
25256
|
-
* traversed upwards (from the current object towards the root of the canvas),
|
|
25257
|
-
* checking each parent object for the presence of a `clipPath` that is not
|
|
25258
|
-
* absolutely positioned.
|
|
25687
|
+
/**
|
|
25688
|
+
* Finds and returns an array of clip paths that are applied to the parent
|
|
25689
|
+
* group(s) of the current FabricObject instance. The object's hierarchy is
|
|
25690
|
+
* traversed upwards (from the current object towards the root of the canvas),
|
|
25691
|
+
* checking each parent object for the presence of a `clipPath` that is not
|
|
25692
|
+
* absolutely positioned.
|
|
25259
25693
|
*/
|
|
25260
25694
|
findAncestorsWithClipPath() {
|
|
25261
25695
|
const clipPathAncestors = [];
|
|
@@ -25270,13 +25704,13 @@ class IText extends ITextClickBehavior {
|
|
|
25270
25704
|
return clipPathAncestors;
|
|
25271
25705
|
}
|
|
25272
25706
|
|
|
25273
|
-
/**
|
|
25274
|
-
* Returns cursor boundaries (left, top, leftOffset, topOffset)
|
|
25275
|
-
* left/top are left/top of entire text box
|
|
25276
|
-
* leftOffset/topOffset are offset from that left/top point of a text box
|
|
25277
|
-
* @private
|
|
25278
|
-
* @param {number} [index] index from start
|
|
25279
|
-
* @param {boolean} [skipCaching]
|
|
25707
|
+
/**
|
|
25708
|
+
* Returns cursor boundaries (left, top, leftOffset, topOffset)
|
|
25709
|
+
* left/top are left/top of entire text box
|
|
25710
|
+
* leftOffset/topOffset are offset from that left/top point of a text box
|
|
25711
|
+
* @private
|
|
25712
|
+
* @param {number} [index] index from start
|
|
25713
|
+
* @param {boolean} [skipCaching]
|
|
25280
25714
|
*/
|
|
25281
25715
|
_getCursorBoundaries() {
|
|
25282
25716
|
let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
|
|
@@ -25290,11 +25724,11 @@ class IText extends ITextClickBehavior {
|
|
|
25290
25724
|
return this._getCursorBoundariesOriginal(index, skipCaching);
|
|
25291
25725
|
}
|
|
25292
25726
|
|
|
25293
|
-
/**
|
|
25294
|
-
* Caches and returns cursor left/top offset relative to instance's center point
|
|
25295
|
-
* @private
|
|
25296
|
-
* @param {number} index index from start
|
|
25297
|
-
* @param {boolean} [skipCaching]
|
|
25727
|
+
/**
|
|
25728
|
+
* Caches and returns cursor left/top offset relative to instance's center point
|
|
25729
|
+
* @private
|
|
25730
|
+
* @param {number} index index from start
|
|
25731
|
+
* @param {boolean} [skipCaching]
|
|
25298
25732
|
*/
|
|
25299
25733
|
_getCursorBoundariesOffsets(index, skipCaching) {
|
|
25300
25734
|
if (skipCaching) {
|
|
@@ -25306,9 +25740,9 @@ class IText extends ITextClickBehavior {
|
|
|
25306
25740
|
return this.cursorOffsetCache = this.__getCursorBoundariesOffsets(index);
|
|
25307
25741
|
}
|
|
25308
25742
|
|
|
25309
|
-
/**
|
|
25310
|
-
* Enhanced cursor boundaries using advanced hit testing when available
|
|
25311
|
-
* @private
|
|
25743
|
+
/**
|
|
25744
|
+
* Enhanced cursor boundaries using advanced hit testing when available
|
|
25745
|
+
* @private
|
|
25312
25746
|
*/
|
|
25313
25747
|
_getCursorBoundariesAdvanced(index) {
|
|
25314
25748
|
if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
|
|
@@ -25324,9 +25758,9 @@ class IText extends ITextClickBehavior {
|
|
|
25324
25758
|
};
|
|
25325
25759
|
}
|
|
25326
25760
|
|
|
25327
|
-
/**
|
|
25328
|
-
* Enhanced selection start from pointer using BiDi-aware hit testing
|
|
25329
|
-
* @override
|
|
25761
|
+
/**
|
|
25762
|
+
* Enhanced selection start from pointer using BiDi-aware hit testing
|
|
25763
|
+
* @override
|
|
25330
25764
|
*/
|
|
25331
25765
|
getSelectionStartFromPointer(e) {
|
|
25332
25766
|
if (!this.enableAdvancedLayout || !this._layoutTextAdvanced) {
|
|
@@ -25340,9 +25774,9 @@ class IText extends ITextClickBehavior {
|
|
|
25340
25774
|
return Math.min(hitResult.charIndex, this._text.length);
|
|
25341
25775
|
}
|
|
25342
25776
|
|
|
25343
|
-
/**
|
|
25344
|
-
* Original cursor boundaries implementation
|
|
25345
|
-
* @private
|
|
25777
|
+
/**
|
|
25778
|
+
* Original cursor boundaries implementation
|
|
25779
|
+
* @private
|
|
25346
25780
|
*/
|
|
25347
25781
|
_getCursorBoundariesOriginal(index, skipCaching) {
|
|
25348
25782
|
const left = this._getLeftOffset(),
|
|
@@ -25356,10 +25790,10 @@ class IText extends ITextClickBehavior {
|
|
|
25356
25790
|
};
|
|
25357
25791
|
}
|
|
25358
25792
|
|
|
25359
|
-
/**
|
|
25360
|
-
* Calculates cursor left/top offset relative to instance's center point
|
|
25361
|
-
* @private
|
|
25362
|
-
* @param {number} index index from start
|
|
25793
|
+
/**
|
|
25794
|
+
* Calculates cursor left/top offset relative to instance's center point
|
|
25795
|
+
* @private
|
|
25796
|
+
* @param {number} index index from start
|
|
25363
25797
|
*/
|
|
25364
25798
|
__getCursorBoundariesOffsets(index) {
|
|
25365
25799
|
let topOffset = 0,
|
|
@@ -25393,29 +25827,29 @@ class IText extends ITextClickBehavior {
|
|
|
25393
25827
|
return boundaries;
|
|
25394
25828
|
}
|
|
25395
25829
|
|
|
25396
|
-
/**
|
|
25397
|
-
* Renders cursor on context Top, outside the animation cycle, on request
|
|
25398
|
-
* Used for the drag/drop effect.
|
|
25399
|
-
* If contextTop is not available, do nothing.
|
|
25830
|
+
/**
|
|
25831
|
+
* Renders cursor on context Top, outside the animation cycle, on request
|
|
25832
|
+
* Used for the drag/drop effect.
|
|
25833
|
+
* If contextTop is not available, do nothing.
|
|
25400
25834
|
*/
|
|
25401
25835
|
renderCursorAt(selectionStart) {
|
|
25402
25836
|
this._renderCursor(this.canvas.contextTop, this._getCursorBoundaries(selectionStart, true), selectionStart);
|
|
25403
25837
|
}
|
|
25404
25838
|
|
|
25405
|
-
/**
|
|
25406
|
-
* Renders cursor
|
|
25407
|
-
* @param {Object} boundaries
|
|
25408
|
-
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25839
|
+
/**
|
|
25840
|
+
* Renders cursor
|
|
25841
|
+
* @param {Object} boundaries
|
|
25842
|
+
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25409
25843
|
*/
|
|
25410
25844
|
renderCursor(ctx, boundaries) {
|
|
25411
25845
|
this._renderCursor(ctx, boundaries, this.selectionStart);
|
|
25412
25846
|
}
|
|
25413
25847
|
|
|
25414
|
-
/**
|
|
25415
|
-
* Return the data needed to render the cursor for given selection start
|
|
25416
|
-
* The left,top are relative to the object, while width and height are prescaled
|
|
25417
|
-
* to look think with canvas zoom and object scaling,
|
|
25418
|
-
* so they depend on canvas and object scaling
|
|
25848
|
+
/**
|
|
25849
|
+
* Return the data needed to render the cursor for given selection start
|
|
25850
|
+
* The left,top are relative to the object, while width and height are prescaled
|
|
25851
|
+
* to look think with canvas zoom and object scaling,
|
|
25852
|
+
* so they depend on canvas and object scaling
|
|
25419
25853
|
*/
|
|
25420
25854
|
getCursorRenderingData() {
|
|
25421
25855
|
let selectionStart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.selectionStart;
|
|
@@ -25438,9 +25872,9 @@ class IText extends ITextClickBehavior {
|
|
|
25438
25872
|
};
|
|
25439
25873
|
}
|
|
25440
25874
|
|
|
25441
|
-
/**
|
|
25442
|
-
* Render the cursor at the given selectionStart.
|
|
25443
|
-
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25875
|
+
/**
|
|
25876
|
+
* Render the cursor at the given selectionStart.
|
|
25877
|
+
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25444
25878
|
*/
|
|
25445
25879
|
_renderCursor(ctx, boundaries, selectionStart) {
|
|
25446
25880
|
const {
|
|
@@ -25456,10 +25890,10 @@ class IText extends ITextClickBehavior {
|
|
|
25456
25890
|
ctx.fillRect(left, top, width, height);
|
|
25457
25891
|
}
|
|
25458
25892
|
|
|
25459
|
-
/**
|
|
25460
|
-
* Renders text selection
|
|
25461
|
-
* @param {Object} boundaries Object with left/top/leftOffset/topOffset
|
|
25462
|
-
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25893
|
+
/**
|
|
25894
|
+
* Renders text selection
|
|
25895
|
+
* @param {Object} boundaries Object with left/top/leftOffset/topOffset
|
|
25896
|
+
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25463
25897
|
*/
|
|
25464
25898
|
renderSelection(ctx, boundaries) {
|
|
25465
25899
|
const selection = {
|
|
@@ -25469,8 +25903,8 @@ class IText extends ITextClickBehavior {
|
|
|
25469
25903
|
this._renderSelection(ctx, selection, boundaries);
|
|
25470
25904
|
}
|
|
25471
25905
|
|
|
25472
|
-
/**
|
|
25473
|
-
* Renders drag start text selection
|
|
25906
|
+
/**
|
|
25907
|
+
* Renders drag start text selection
|
|
25474
25908
|
*/
|
|
25475
25909
|
renderDragSourceEffect() {
|
|
25476
25910
|
const dragStartSelection = this.draggableTextDelegate.getDragStartSelection();
|
|
@@ -25481,12 +25915,12 @@ class IText extends ITextClickBehavior {
|
|
|
25481
25915
|
this.renderCursorAt(dragSelection);
|
|
25482
25916
|
}
|
|
25483
25917
|
|
|
25484
|
-
/**
|
|
25485
|
-
* Renders text selection
|
|
25486
|
-
* @private
|
|
25487
|
-
* @param {{ selectionStart: number, selectionEnd: number }} selection
|
|
25488
|
-
* @param {Object} boundaries Object with left/top/leftOffset/topOffset
|
|
25489
|
-
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25918
|
+
/**
|
|
25919
|
+
* Renders text selection
|
|
25920
|
+
* @private
|
|
25921
|
+
* @param {{ selectionStart: number, selectionEnd: number }} selection
|
|
25922
|
+
* @param {Object} boundaries Object with left/top/leftOffset/topOffset
|
|
25923
|
+
* @param {CanvasRenderingContext2D} ctx transformed context to draw on
|
|
25490
25924
|
*/
|
|
25491
25925
|
_renderSelection(ctx, selection, boundaries) {
|
|
25492
25926
|
const selectionStart = selection.selectionStart,
|
|
@@ -25548,34 +25982,34 @@ class IText extends ITextClickBehavior {
|
|
|
25548
25982
|
}
|
|
25549
25983
|
}
|
|
25550
25984
|
|
|
25551
|
-
/**
|
|
25552
|
-
* High level function to know the height of the cursor.
|
|
25553
|
-
* the currentChar is the one that precedes the cursor
|
|
25554
|
-
* Returns fontSize of char at the current cursor
|
|
25555
|
-
* Unused from the library, is for the end user
|
|
25556
|
-
* @return {Number} Character font size
|
|
25985
|
+
/**
|
|
25986
|
+
* High level function to know the height of the cursor.
|
|
25987
|
+
* the currentChar is the one that precedes the cursor
|
|
25988
|
+
* Returns fontSize of char at the current cursor
|
|
25989
|
+
* Unused from the library, is for the end user
|
|
25990
|
+
* @return {Number} Character font size
|
|
25557
25991
|
*/
|
|
25558
25992
|
getCurrentCharFontSize() {
|
|
25559
25993
|
const cp = this._getCurrentCharIndex();
|
|
25560
25994
|
return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');
|
|
25561
25995
|
}
|
|
25562
25996
|
|
|
25563
|
-
/**
|
|
25564
|
-
* High level function to know the color of the cursor.
|
|
25565
|
-
* the currentChar is the one that precedes the cursor
|
|
25566
|
-
* Returns color (fill) of char at the current cursor
|
|
25567
|
-
* if the text object has a pattern or gradient for filler, it will return that.
|
|
25568
|
-
* Unused by the library, is for the end user
|
|
25569
|
-
* @return {String | TFiller} Character color (fill)
|
|
25997
|
+
/**
|
|
25998
|
+
* High level function to know the color of the cursor.
|
|
25999
|
+
* the currentChar is the one that precedes the cursor
|
|
26000
|
+
* Returns color (fill) of char at the current cursor
|
|
26001
|
+
* if the text object has a pattern or gradient for filler, it will return that.
|
|
26002
|
+
* Unused by the library, is for the end user
|
|
26003
|
+
* @return {String | TFiller} Character color (fill)
|
|
25570
26004
|
*/
|
|
25571
26005
|
getCurrentCharColor() {
|
|
25572
26006
|
const cp = this._getCurrentCharIndex();
|
|
25573
26007
|
return this.getValueOfPropertyAt(cp.l, cp.c, FILL);
|
|
25574
26008
|
}
|
|
25575
26009
|
|
|
25576
|
-
/**
|
|
25577
|
-
* Returns the cursor position for the getCurrent.. functions
|
|
25578
|
-
* @private
|
|
26010
|
+
/**
|
|
26011
|
+
* Returns the cursor position for the getCurrent.. functions
|
|
26012
|
+
* @private
|
|
25579
26013
|
*/
|
|
25580
26014
|
_getCurrentCharIndex() {
|
|
25581
26015
|
const cursorPosition = this.get2DCursorLocation(this.selectionStart, true),
|
|
@@ -25591,52 +26025,52 @@ class IText extends ITextClickBehavior {
|
|
|
25591
26025
|
super.dispose();
|
|
25592
26026
|
}
|
|
25593
26027
|
}
|
|
25594
|
-
/**
|
|
25595
|
-
* Index where text selection starts (or where cursor is when there is no selection)
|
|
25596
|
-
* @type Number
|
|
26028
|
+
/**
|
|
26029
|
+
* Index where text selection starts (or where cursor is when there is no selection)
|
|
26030
|
+
* @type Number
|
|
25597
26031
|
*/
|
|
25598
|
-
/**
|
|
25599
|
-
* Index where text selection ends
|
|
25600
|
-
* @type Number
|
|
26032
|
+
/**
|
|
26033
|
+
* Index where text selection ends
|
|
26034
|
+
* @type Number
|
|
25601
26035
|
*/
|
|
25602
|
-
/**
|
|
25603
|
-
* Color of text selection
|
|
25604
|
-
* @type String
|
|
26036
|
+
/**
|
|
26037
|
+
* Color of text selection
|
|
26038
|
+
* @type String
|
|
25605
26039
|
*/
|
|
25606
|
-
/**
|
|
25607
|
-
* Indicates whether text is in editing mode
|
|
25608
|
-
* @type Boolean
|
|
26040
|
+
/**
|
|
26041
|
+
* Indicates whether text is in editing mode
|
|
26042
|
+
* @type Boolean
|
|
25609
26043
|
*/
|
|
25610
|
-
/**
|
|
25611
|
-
* Indicates whether a text can be edited
|
|
25612
|
-
* @type Boolean
|
|
26044
|
+
/**
|
|
26045
|
+
* Indicates whether a text can be edited
|
|
26046
|
+
* @type Boolean
|
|
25613
26047
|
*/
|
|
25614
|
-
/**
|
|
25615
|
-
* Border color of text object while it's in editing mode
|
|
25616
|
-
* @type String
|
|
26048
|
+
/**
|
|
26049
|
+
* Border color of text object while it's in editing mode
|
|
26050
|
+
* @type String
|
|
25617
26051
|
*/
|
|
25618
|
-
/**
|
|
25619
|
-
* Width of cursor (in px)
|
|
25620
|
-
* @type Number
|
|
26052
|
+
/**
|
|
26053
|
+
* Width of cursor (in px)
|
|
26054
|
+
* @type Number
|
|
25621
26055
|
*/
|
|
25622
|
-
/**
|
|
25623
|
-
* Color of text cursor color in editing mode.
|
|
25624
|
-
* if not set (default) will take color from the text.
|
|
25625
|
-
* if set to a color value that fabric can understand, it will
|
|
25626
|
-
* be used instead of the color of the text at the current position.
|
|
25627
|
-
* @type String
|
|
26056
|
+
/**
|
|
26057
|
+
* Color of text cursor color in editing mode.
|
|
26058
|
+
* if not set (default) will take color from the text.
|
|
26059
|
+
* if set to a color value that fabric can understand, it will
|
|
26060
|
+
* be used instead of the color of the text at the current position.
|
|
26061
|
+
* @type String
|
|
25628
26062
|
*/
|
|
25629
|
-
/**
|
|
25630
|
-
* Delay between cursor blink (in ms)
|
|
25631
|
-
* @type Number
|
|
26063
|
+
/**
|
|
26064
|
+
* Delay between cursor blink (in ms)
|
|
26065
|
+
* @type Number
|
|
25632
26066
|
*/
|
|
25633
|
-
/**
|
|
25634
|
-
* Duration of cursor fade in (in ms)
|
|
25635
|
-
* @type Number
|
|
26067
|
+
/**
|
|
26068
|
+
* Duration of cursor fade in (in ms)
|
|
26069
|
+
* @type Number
|
|
25636
26070
|
*/
|
|
25637
|
-
/**
|
|
25638
|
-
* Indicates whether internal text char widths can be cached
|
|
25639
|
-
* @type Boolean
|
|
26071
|
+
/**
|
|
26072
|
+
* Indicates whether internal text char widths can be cached
|
|
26073
|
+
* @type Boolean
|
|
25640
26074
|
*/
|
|
25641
26075
|
_defineProperty(IText, "ownDefaults", iTextDefaultValues);
|
|
25642
26076
|
_defineProperty(IText, "type", 'IText');
|
|
@@ -25658,11 +26092,11 @@ const textboxDefaultValues = {
|
|
|
25658
26092
|
|
|
25659
26093
|
// @TODO this is not complete
|
|
25660
26094
|
|
|
25661
|
-
/**
|
|
25662
|
-
* Textbox class, based on IText, allows the user to resize the text rectangle
|
|
25663
|
-
* and wraps lines automatically. Textboxes have their Y scaling locked, the
|
|
25664
|
-
* user can only change width. Height is adjusted automatically based on the
|
|
25665
|
-
* wrapping of lines.
|
|
26095
|
+
/**
|
|
26096
|
+
* Textbox class, based on IText, allows the user to resize the text rectangle
|
|
26097
|
+
* and wraps lines automatically. Textboxes have their Y scaling locked, the
|
|
26098
|
+
* user can only change width. Height is adjusted automatically based on the
|
|
26099
|
+
* wrapping of lines.
|
|
25666
26100
|
*/
|
|
25667
26101
|
class Textbox extends IText {
|
|
25668
26102
|
static getDefaults() {
|
|
@@ -25672,10 +26106,10 @@ class Textbox extends IText {
|
|
|
25672
26106
|
};
|
|
25673
26107
|
}
|
|
25674
26108
|
|
|
25675
|
-
/**
|
|
25676
|
-
* Constructor
|
|
25677
|
-
* @param {String} text Text string
|
|
25678
|
-
* @param {Object} [options] Options object
|
|
26109
|
+
/**
|
|
26110
|
+
* Constructor
|
|
26111
|
+
* @param {String} text Text string
|
|
26112
|
+
* @param {Object} [options] Options object
|
|
25679
26113
|
*/
|
|
25680
26114
|
constructor(text, options) {
|
|
25681
26115
|
super(text, {
|
|
@@ -25685,10 +26119,10 @@ class Textbox extends IText {
|
|
|
25685
26119
|
this.initializeEventListeners();
|
|
25686
26120
|
}
|
|
25687
26121
|
|
|
25688
|
-
/**
|
|
25689
|
-
* Creates the default control object.
|
|
25690
|
-
* If you prefer to have on instance of controls shared among all objects
|
|
25691
|
-
* make this function return an empty object and add controls to the ownDefaults object
|
|
26122
|
+
/**
|
|
26123
|
+
* Creates the default control object.
|
|
26124
|
+
* If you prefer to have on instance of controls shared among all objects
|
|
26125
|
+
* make this function return an empty object and add controls to the ownDefaults object
|
|
25692
26126
|
*/
|
|
25693
26127
|
static createControls() {
|
|
25694
26128
|
return {
|
|
@@ -25696,11 +26130,11 @@ class Textbox extends IText {
|
|
|
25696
26130
|
};
|
|
25697
26131
|
}
|
|
25698
26132
|
|
|
25699
|
-
/**
|
|
25700
|
-
* Unlike superclass's version of this function, Textbox does not update
|
|
25701
|
-
* its width.
|
|
25702
|
-
* @private
|
|
25703
|
-
* @override
|
|
26133
|
+
/**
|
|
26134
|
+
* Unlike superclass's version of this function, Textbox does not update
|
|
26135
|
+
* its width.
|
|
26136
|
+
* @private
|
|
26137
|
+
* @override
|
|
25704
26138
|
*/
|
|
25705
26139
|
initDimensions() {
|
|
25706
26140
|
if (!this.initialized) {
|
|
@@ -25729,9 +26163,9 @@ class Textbox extends IText {
|
|
|
25729
26163
|
this.height = this.calcTextHeight();
|
|
25730
26164
|
}
|
|
25731
26165
|
|
|
25732
|
-
/**
|
|
25733
|
-
* Advanced dimensions calculation using new layout engine
|
|
25734
|
-
* @private
|
|
26166
|
+
/**
|
|
26167
|
+
* Advanced dimensions calculation using new layout engine
|
|
26168
|
+
* @private
|
|
25735
26169
|
*/
|
|
25736
26170
|
initDimensionsAdvanced() {
|
|
25737
26171
|
if (!this.initialized) {
|
|
@@ -25786,9 +26220,9 @@ class Textbox extends IText {
|
|
|
25786
26220
|
this.dirty = true;
|
|
25787
26221
|
}
|
|
25788
26222
|
|
|
25789
|
-
/**
|
|
25790
|
-
* Generate style map from new layout format
|
|
25791
|
-
* @private
|
|
26223
|
+
/**
|
|
26224
|
+
* Generate style map from new layout format
|
|
26225
|
+
* @private
|
|
25792
26226
|
*/
|
|
25793
26227
|
_generateStyleMapFromLayout(layout) {
|
|
25794
26228
|
const map = {};
|
|
@@ -25810,12 +26244,12 @@ class Textbox extends IText {
|
|
|
25810
26244
|
return map;
|
|
25811
26245
|
}
|
|
25812
26246
|
|
|
25813
|
-
/**
|
|
25814
|
-
* Generate an object that translates the style object so that it is
|
|
25815
|
-
* broken up by visual lines (new lines and automatic wrapping).
|
|
25816
|
-
* The original text styles object is broken up by actual lines (new lines only),
|
|
25817
|
-
* which is only sufficient for Text / IText
|
|
25818
|
-
* @private
|
|
26247
|
+
/**
|
|
26248
|
+
* Generate an object that translates the style object so that it is
|
|
26249
|
+
* broken up by visual lines (new lines and automatic wrapping).
|
|
26250
|
+
* The original text styles object is broken up by actual lines (new lines only),
|
|
26251
|
+
* which is only sufficient for Text / IText
|
|
26252
|
+
* @private
|
|
25819
26253
|
*/
|
|
25820
26254
|
_generateStyleMap(textInfo) {
|
|
25821
26255
|
let realLineCount = 0,
|
|
@@ -25842,10 +26276,10 @@ class Textbox extends IText {
|
|
|
25842
26276
|
return map;
|
|
25843
26277
|
}
|
|
25844
26278
|
|
|
25845
|
-
/**
|
|
25846
|
-
* Returns true if object has a style property or has it on a specified line
|
|
25847
|
-
* @param {Number} lineIndex
|
|
25848
|
-
* @return {Boolean}
|
|
26279
|
+
/**
|
|
26280
|
+
* Returns true if object has a style property or has it on a specified line
|
|
26281
|
+
* @param {Number} lineIndex
|
|
26282
|
+
* @return {Boolean}
|
|
25849
26283
|
*/
|
|
25850
26284
|
styleHas(property, lineIndex) {
|
|
25851
26285
|
if (this._styleMap && !this.isWrapping) {
|
|
@@ -25857,10 +26291,10 @@ class Textbox extends IText {
|
|
|
25857
26291
|
return super.styleHas(property, lineIndex);
|
|
25858
26292
|
}
|
|
25859
26293
|
|
|
25860
|
-
/**
|
|
25861
|
-
* Returns true if object has no styling or no styling in a line
|
|
25862
|
-
* @param {Number} lineIndex , lineIndex is on wrapped lines.
|
|
25863
|
-
* @return {Boolean}
|
|
26294
|
+
/**
|
|
26295
|
+
* Returns true if object has no styling or no styling in a line
|
|
26296
|
+
* @param {Number} lineIndex , lineIndex is on wrapped lines.
|
|
26297
|
+
* @return {Boolean}
|
|
25864
26298
|
*/
|
|
25865
26299
|
isEmptyStyles(lineIndex) {
|
|
25866
26300
|
if (!this.styles) {
|
|
@@ -25897,11 +26331,11 @@ class Textbox extends IText {
|
|
|
25897
26331
|
return true;
|
|
25898
26332
|
}
|
|
25899
26333
|
|
|
25900
|
-
/**
|
|
25901
|
-
* @protected
|
|
25902
|
-
* @param {Number} lineIndex
|
|
25903
|
-
* @param {Number} charIndex
|
|
25904
|
-
* @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
|
|
26334
|
+
/**
|
|
26335
|
+
* @protected
|
|
26336
|
+
* @param {Number} lineIndex
|
|
26337
|
+
* @param {Number} charIndex
|
|
26338
|
+
* @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined
|
|
25905
26339
|
*/
|
|
25906
26340
|
_getStyleDeclaration(lineIndex, charIndex) {
|
|
25907
26341
|
if (this._styleMap && !this.isWrapping) {
|
|
@@ -25915,59 +26349,59 @@ class Textbox extends IText {
|
|
|
25915
26349
|
return super._getStyleDeclaration(lineIndex, charIndex);
|
|
25916
26350
|
}
|
|
25917
26351
|
|
|
25918
|
-
/**
|
|
25919
|
-
* @param {Number} lineIndex
|
|
25920
|
-
* @param {Number} charIndex
|
|
25921
|
-
* @param {Object} style
|
|
25922
|
-
* @private
|
|
26352
|
+
/**
|
|
26353
|
+
* @param {Number} lineIndex
|
|
26354
|
+
* @param {Number} charIndex
|
|
26355
|
+
* @param {Object} style
|
|
26356
|
+
* @private
|
|
25923
26357
|
*/
|
|
25924
26358
|
_setStyleDeclaration(lineIndex, charIndex, style) {
|
|
25925
26359
|
const map = this._styleMap[lineIndex];
|
|
25926
26360
|
super._setStyleDeclaration(map.line, map.offset + charIndex, style);
|
|
25927
26361
|
}
|
|
25928
26362
|
|
|
25929
|
-
/**
|
|
25930
|
-
* @param {Number} lineIndex
|
|
25931
|
-
* @param {Number} charIndex
|
|
25932
|
-
* @private
|
|
26363
|
+
/**
|
|
26364
|
+
* @param {Number} lineIndex
|
|
26365
|
+
* @param {Number} charIndex
|
|
26366
|
+
* @private
|
|
25933
26367
|
*/
|
|
25934
26368
|
_deleteStyleDeclaration(lineIndex, charIndex) {
|
|
25935
26369
|
const map = this._styleMap[lineIndex];
|
|
25936
26370
|
super._deleteStyleDeclaration(map.line, map.offset + charIndex);
|
|
25937
26371
|
}
|
|
25938
26372
|
|
|
25939
|
-
/**
|
|
25940
|
-
* probably broken need a fix
|
|
25941
|
-
* Returns the real style line that correspond to the wrapped lineIndex line
|
|
25942
|
-
* Used just to verify if the line does exist or not.
|
|
25943
|
-
* @param {Number} lineIndex
|
|
25944
|
-
* @returns {Boolean} if the line exists or not
|
|
25945
|
-
* @private
|
|
26373
|
+
/**
|
|
26374
|
+
* probably broken need a fix
|
|
26375
|
+
* Returns the real style line that correspond to the wrapped lineIndex line
|
|
26376
|
+
* Used just to verify if the line does exist or not.
|
|
26377
|
+
* @param {Number} lineIndex
|
|
26378
|
+
* @returns {Boolean} if the line exists or not
|
|
26379
|
+
* @private
|
|
25946
26380
|
*/
|
|
25947
26381
|
_getLineStyle(lineIndex) {
|
|
25948
26382
|
const map = this._styleMap[lineIndex];
|
|
25949
26383
|
return !!this.styles[map.line];
|
|
25950
26384
|
}
|
|
25951
26385
|
|
|
25952
|
-
/**
|
|
25953
|
-
* Set the line style to an empty object so that is initialized
|
|
25954
|
-
* @param {Number} lineIndex
|
|
25955
|
-
* @param {Object} style
|
|
25956
|
-
* @private
|
|
26386
|
+
/**
|
|
26387
|
+
* Set the line style to an empty object so that is initialized
|
|
26388
|
+
* @param {Number} lineIndex
|
|
26389
|
+
* @param {Object} style
|
|
26390
|
+
* @private
|
|
25957
26391
|
*/
|
|
25958
26392
|
_setLineStyle(lineIndex) {
|
|
25959
26393
|
const map = this._styleMap[lineIndex];
|
|
25960
26394
|
super._setLineStyle(map.line);
|
|
25961
26395
|
}
|
|
25962
26396
|
|
|
25963
|
-
/**
|
|
25964
|
-
* Wraps text using the 'width' property of Textbox. First this function
|
|
25965
|
-
* splits text on newlines, so we preserve newlines entered by the user.
|
|
25966
|
-
* Then it wraps each line using the width of the Textbox by calling
|
|
25967
|
-
* _wrapLine().
|
|
25968
|
-
* @param {Array} lines The string array of text that is split into lines
|
|
25969
|
-
* @param {Number} desiredWidth width you want to wrap to
|
|
25970
|
-
* @returns {Array} Array of lines
|
|
26397
|
+
/**
|
|
26398
|
+
* Wraps text using the 'width' property of Textbox. First this function
|
|
26399
|
+
* splits text on newlines, so we preserve newlines entered by the user.
|
|
26400
|
+
* Then it wraps each line using the width of the Textbox by calling
|
|
26401
|
+
* _wrapLine().
|
|
26402
|
+
* @param {Array} lines The string array of text that is split into lines
|
|
26403
|
+
* @param {Number} desiredWidth width you want to wrap to
|
|
26404
|
+
* @returns {Array} Array of lines
|
|
25971
26405
|
*/
|
|
25972
26406
|
_wrapText(lines, desiredWidth) {
|
|
25973
26407
|
this.isWrapping = true;
|
|
@@ -25981,12 +26415,12 @@ class Textbox extends IText {
|
|
|
25981
26415
|
return wrapped;
|
|
25982
26416
|
}
|
|
25983
26417
|
|
|
25984
|
-
/**
|
|
25985
|
-
* For each line of text terminated by an hard line stop,
|
|
25986
|
-
* measure each word width and extract the largest word from all.
|
|
25987
|
-
* The returned words here are the one that at the end will be rendered.
|
|
25988
|
-
* @param {string[]} lines the lines we need to measure
|
|
25989
|
-
*
|
|
26418
|
+
/**
|
|
26419
|
+
* For each line of text terminated by an hard line stop,
|
|
26420
|
+
* measure each word width and extract the largest word from all.
|
|
26421
|
+
* The returned words here are the one that at the end will be rendered.
|
|
26422
|
+
* @param {string[]} lines the lines we need to measure
|
|
26423
|
+
*
|
|
25990
26424
|
*/
|
|
25991
26425
|
getGraphemeDataForRender(lines) {
|
|
25992
26426
|
const splitByGrapheme = this.splitByGrapheme,
|
|
@@ -26019,17 +26453,17 @@ class Textbox extends IText {
|
|
|
26019
26453
|
};
|
|
26020
26454
|
}
|
|
26021
26455
|
|
|
26022
|
-
/**
|
|
26023
|
-
* Helper function to measure a string of text, given its lineIndex and charIndex offset
|
|
26024
|
-
* It gets called when charBounds are not available yet.
|
|
26025
|
-
* Override if necessary
|
|
26026
|
-
* Use with {@link Textbox#wordSplit}
|
|
26027
|
-
*
|
|
26028
|
-
* @param {CanvasRenderingContext2D} ctx
|
|
26029
|
-
* @param {String} text
|
|
26030
|
-
* @param {number} lineIndex
|
|
26031
|
-
* @param {number} charOffset
|
|
26032
|
-
* @returns {number}
|
|
26456
|
+
/**
|
|
26457
|
+
* Helper function to measure a string of text, given its lineIndex and charIndex offset
|
|
26458
|
+
* It gets called when charBounds are not available yet.
|
|
26459
|
+
* Override if necessary
|
|
26460
|
+
* Use with {@link Textbox#wordSplit}
|
|
26461
|
+
*
|
|
26462
|
+
* @param {CanvasRenderingContext2D} ctx
|
|
26463
|
+
* @param {String} text
|
|
26464
|
+
* @param {number} lineIndex
|
|
26465
|
+
* @param {number} charOffset
|
|
26466
|
+
* @returns {number}
|
|
26033
26467
|
*/
|
|
26034
26468
|
_measureWord(word, lineIndex) {
|
|
26035
26469
|
let charOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
@@ -26044,26 +26478,26 @@ class Textbox extends IText {
|
|
|
26044
26478
|
return width;
|
|
26045
26479
|
}
|
|
26046
26480
|
|
|
26047
|
-
/**
|
|
26048
|
-
* Override this method to customize word splitting
|
|
26049
|
-
* Use with {@link Textbox#_measureWord}
|
|
26050
|
-
* @param {string} value
|
|
26051
|
-
* @returns {string[]} array of words
|
|
26481
|
+
/**
|
|
26482
|
+
* Override this method to customize word splitting
|
|
26483
|
+
* Use with {@link Textbox#_measureWord}
|
|
26484
|
+
* @param {string} value
|
|
26485
|
+
* @returns {string[]} array of words
|
|
26052
26486
|
*/
|
|
26053
26487
|
wordSplit(value) {
|
|
26054
26488
|
return value.split(this._wordJoiners);
|
|
26055
26489
|
}
|
|
26056
26490
|
|
|
26057
|
-
/**
|
|
26058
|
-
* Wraps a line of text using the width of the Textbox as desiredWidth
|
|
26059
|
-
* and leveraging the known width o words from GraphemeData
|
|
26060
|
-
* @private
|
|
26061
|
-
* @param {Number} lineIndex
|
|
26062
|
-
* @param {Number} desiredWidth width you want to wrap the line to
|
|
26063
|
-
* @param {GraphemeData} graphemeData an object containing all the lines' words width.
|
|
26064
|
-
* @param {Number} reservedSpace space to remove from wrapping for custom functionalities
|
|
26065
|
-
* @returns {Array} Array of line(s) into which the given text is wrapped
|
|
26066
|
-
* to.
|
|
26491
|
+
/**
|
|
26492
|
+
* Wraps a line of text using the width of the Textbox as desiredWidth
|
|
26493
|
+
* and leveraging the known width o words from GraphemeData
|
|
26494
|
+
* @private
|
|
26495
|
+
* @param {Number} lineIndex
|
|
26496
|
+
* @param {Number} desiredWidth width you want to wrap the line to
|
|
26497
|
+
* @param {GraphemeData} graphemeData an object containing all the lines' words width.
|
|
26498
|
+
* @param {Number} reservedSpace space to remove from wrapping for custom functionalities
|
|
26499
|
+
* @returns {Array} Array of line(s) into which the given text is wrapped
|
|
26500
|
+
* to.
|
|
26067
26501
|
*/
|
|
26068
26502
|
_wrapLine(lineIndex, desiredWidth, _ref) {
|
|
26069
26503
|
let {
|
|
@@ -26121,11 +26555,11 @@ class Textbox extends IText {
|
|
|
26121
26555
|
return graphemeLines;
|
|
26122
26556
|
}
|
|
26123
26557
|
|
|
26124
|
-
/**
|
|
26125
|
-
* Detect if the text line is ended with an hard break
|
|
26126
|
-
* text and itext do not have wrapping, return false
|
|
26127
|
-
* @param {Number} lineIndex text to split
|
|
26128
|
-
* @return {Boolean}
|
|
26558
|
+
/**
|
|
26559
|
+
* Detect if the text line is ended with an hard break
|
|
26560
|
+
* text and itext do not have wrapping, return false
|
|
26561
|
+
* @param {Number} lineIndex text to split
|
|
26562
|
+
* @return {Boolean}
|
|
26129
26563
|
*/
|
|
26130
26564
|
isEndOfWrapping(lineIndex) {
|
|
26131
26565
|
if (!this._styleMap[lineIndex + 1]) {
|
|
@@ -26139,12 +26573,12 @@ class Textbox extends IText {
|
|
|
26139
26573
|
return false;
|
|
26140
26574
|
}
|
|
26141
26575
|
|
|
26142
|
-
/**
|
|
26143
|
-
* Detect if a line has a linebreak and so we need to account for it when moving
|
|
26144
|
-
* and counting style.
|
|
26145
|
-
* This is important only for splitByGrapheme at the end of wrapping.
|
|
26146
|
-
* If we are not wrapping the offset is always 1
|
|
26147
|
-
* @return Number
|
|
26576
|
+
/**
|
|
26577
|
+
* Detect if a line has a linebreak and so we need to account for it when moving
|
|
26578
|
+
* and counting style.
|
|
26579
|
+
* This is important only for splitByGrapheme at the end of wrapping.
|
|
26580
|
+
* If we are not wrapping the offset is always 1
|
|
26581
|
+
* @return Number
|
|
26148
26582
|
*/
|
|
26149
26583
|
missingNewlineOffset(lineIndex, skipWrapping) {
|
|
26150
26584
|
if (this.splitByGrapheme && !skipWrapping) {
|
|
@@ -26153,12 +26587,12 @@ class Textbox extends IText {
|
|
|
26153
26587
|
return 1;
|
|
26154
26588
|
}
|
|
26155
26589
|
|
|
26156
|
-
/**
|
|
26157
|
-
* Gets lines of text to render in the Textbox. This function calculates
|
|
26158
|
-
* text wrapping on the fly every time it is called.
|
|
26159
|
-
* @param {String} text text to split
|
|
26160
|
-
* @returns {Array} Array of lines in the Textbox.
|
|
26161
|
-
* @override
|
|
26590
|
+
/**
|
|
26591
|
+
* Gets lines of text to render in the Textbox. This function calculates
|
|
26592
|
+
* text wrapping on the fly every time it is called.
|
|
26593
|
+
* @param {String} text text to split
|
|
26594
|
+
* @returns {Array} Array of lines in the Textbox.
|
|
26595
|
+
* @override
|
|
26162
26596
|
*/
|
|
26163
26597
|
_splitTextIntoLines(text) {
|
|
26164
26598
|
const newText = super._splitTextIntoLines(text),
|
|
@@ -26190,9 +26624,9 @@ class Textbox extends IText {
|
|
|
26190
26624
|
}
|
|
26191
26625
|
}
|
|
26192
26626
|
|
|
26193
|
-
/**
|
|
26194
|
-
* Initialize event listeners for safety snap functionality
|
|
26195
|
-
* @private
|
|
26627
|
+
/**
|
|
26628
|
+
* Initialize event listeners for safety snap functionality
|
|
26629
|
+
* @private
|
|
26196
26630
|
*/
|
|
26197
26631
|
initializeEventListeners() {
|
|
26198
26632
|
var _this$canvas;
|
|
@@ -26235,12 +26669,12 @@ class Textbox extends IText {
|
|
|
26235
26669
|
});
|
|
26236
26670
|
}
|
|
26237
26671
|
|
|
26238
|
-
/**
|
|
26239
|
-
* Safety snap to prevent glyph clipping after manual resize.
|
|
26240
|
-
* Similar to Polotno - checks if any glyphs are too close to edges
|
|
26241
|
-
* and automatically expands width if needed.
|
|
26242
|
-
* @private
|
|
26243
|
-
* @param resizeOrigin - Which side was used for resizing ('left' or 'right')
|
|
26672
|
+
/**
|
|
26673
|
+
* Safety snap to prevent glyph clipping after manual resize.
|
|
26674
|
+
* Similar to Polotno - checks if any glyphs are too close to edges
|
|
26675
|
+
* and automatically expands width if needed.
|
|
26676
|
+
* @private
|
|
26677
|
+
* @param resizeOrigin - Which side was used for resizing ('left' or 'right')
|
|
26244
26678
|
*/
|
|
26245
26679
|
safetySnapWidth(resizeOrigin) {
|
|
26246
26680
|
// For Textbox objects, we always want to check for clipping regardless of isWrapping flag
|
|
@@ -26307,31 +26741,31 @@ class Textbox extends IText {
|
|
|
26307
26741
|
}
|
|
26308
26742
|
}
|
|
26309
26743
|
|
|
26310
|
-
/**
|
|
26311
|
-
* Returns object representation of an instance
|
|
26312
|
-
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
26313
|
-
* @return {Object} object representation of an instance
|
|
26744
|
+
/**
|
|
26745
|
+
* Returns object representation of an instance
|
|
26746
|
+
* @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
|
|
26747
|
+
* @return {Object} object representation of an instance
|
|
26314
26748
|
*/
|
|
26315
26749
|
toObject() {
|
|
26316
26750
|
let propertiesToInclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
26317
26751
|
return super.toObject(['minWidth', 'splitByGrapheme', ...propertiesToInclude]);
|
|
26318
26752
|
}
|
|
26319
26753
|
}
|
|
26320
|
-
/**
|
|
26321
|
-
* Minimum width of textbox, in pixels.
|
|
26322
|
-
* @type Number
|
|
26323
|
-
*/
|
|
26324
|
-
/**
|
|
26325
|
-
* Minimum calculated width of a textbox, in pixels.
|
|
26326
|
-
* fixed to 2 so that an empty textbox cannot go to 0
|
|
26327
|
-
* and is still selectable without text.
|
|
26328
|
-
* @type Number
|
|
26329
|
-
*/
|
|
26330
|
-
/**
|
|
26331
|
-
* Use this boolean property in order to split strings that have no white space concept.
|
|
26332
|
-
* this is a cheap way to help with chinese/japanese
|
|
26333
|
-
* @type Boolean
|
|
26334
|
-
* @since 2.6.0
|
|
26754
|
+
/**
|
|
26755
|
+
* Minimum width of textbox, in pixels.
|
|
26756
|
+
* @type Number
|
|
26757
|
+
*/
|
|
26758
|
+
/**
|
|
26759
|
+
* Minimum calculated width of a textbox, in pixels.
|
|
26760
|
+
* fixed to 2 so that an empty textbox cannot go to 0
|
|
26761
|
+
* and is still selectable without text.
|
|
26762
|
+
* @type Number
|
|
26763
|
+
*/
|
|
26764
|
+
/**
|
|
26765
|
+
* Use this boolean property in order to split strings that have no white space concept.
|
|
26766
|
+
* this is a cheap way to help with chinese/japanese
|
|
26767
|
+
* @type Boolean
|
|
26768
|
+
* @since 2.6.0
|
|
26335
26769
|
*/
|
|
26336
26770
|
_defineProperty(Textbox, "type", 'Textbox');
|
|
26337
26771
|
_defineProperty(Textbox, "textLayoutProperties", [...IText.textLayoutProperties, 'width']);
|