fabric 7.3.1 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -27
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/defineProperty.mjs +1 -1
- package/{dist-extensions/_virtual/_@oxc-project_runtime@0.122.0 → dist/_virtual/_@oxc-project_runtime@0.126.0}/helpers/toPrimitive.mjs +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/toPropertyKey.mjs +1 -1
- package/{dist-extensions/_virtual/_@oxc-project_runtime@0.122.0 → dist/_virtual/_@oxc-project_runtime@0.126.0}/helpers/typeof.mjs +1 -1
- package/dist/index.js +88 -66
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +35 -35
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +37 -37
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +88 -66
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +83 -62
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +83 -62
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.min.mjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/src/Collection.min.mjs +1 -1
- package/dist/src/Collection.mjs +1 -1
- package/dist/src/LayoutManager/LayoutManager.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutManager.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +1 -1
- package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +1 -1
- package/dist/src/Observable.min.mjs +1 -1
- package/dist/src/Observable.mjs +1 -1
- package/dist/src/Pattern/Pattern.min.mjs +1 -1
- package/dist/src/Pattern/Pattern.mjs +1 -1
- package/dist/src/Shadow.min.mjs +1 -1
- package/dist/src/Shadow.mjs +1 -1
- package/dist/src/brushes/BaseBrush.min.mjs +1 -1
- package/dist/src/brushes/BaseBrush.mjs +1 -1
- package/dist/src/brushes/CircleBrush.min.mjs +1 -1
- package/dist/src/brushes/CircleBrush.mjs +1 -1
- package/dist/src/brushes/PencilBrush.min.mjs +1 -1
- package/dist/src/brushes/PencilBrush.mjs +1 -1
- package/dist/src/brushes/SprayBrush.min.mjs +1 -1
- package/dist/src/brushes/SprayBrush.mjs +1 -1
- package/dist/src/cache.min.mjs +1 -1
- package/dist/src/cache.mjs +1 -1
- package/dist/src/canvas/Canvas.min.mjs +1 -1
- package/dist/src/canvas/Canvas.mjs +1 -1
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +1 -1
- package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +1 -1
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +1 -1
- package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs +5 -5
- package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.mjs +4 -4
- package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
- package/dist/src/canvas/TextEditingManager.min.mjs +1 -1
- package/dist/src/canvas/TextEditingManager.mjs +1 -1
- package/dist/src/color/Color.min.mjs +1 -1
- package/dist/src/color/Color.mjs +1 -1
- package/dist/src/config.min.mjs +1 -1
- package/dist/src/config.mjs +1 -1
- package/dist/src/controls/Control.min.mjs +1 -1
- package/dist/src/controls/Control.mjs +1 -1
- package/dist/src/filters/BaseFilter.min.mjs +1 -1
- package/dist/src/filters/BaseFilter.mjs +1 -1
- package/dist/src/filters/BlendColor.min.mjs +1 -1
- package/dist/src/filters/BlendColor.mjs +1 -1
- package/dist/src/filters/BlendImage.min.mjs +1 -1
- package/dist/src/filters/BlendImage.mjs +1 -1
- package/dist/src/filters/Blur.min.mjs +1 -1
- package/dist/src/filters/Blur.mjs +1 -1
- package/dist/src/filters/Brightness.min.mjs +1 -1
- package/dist/src/filters/Brightness.mjs +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.mjs +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs +1 -1
- package/dist/src/filters/ColorMatrix.mjs +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs +1 -1
- package/dist/src/filters/ColorMatrixFilters.mjs +1 -1
- package/dist/src/filters/Composed.min.mjs +1 -1
- package/dist/src/filters/Composed.mjs +1 -1
- package/dist/src/filters/Contrast.min.mjs +1 -1
- package/dist/src/filters/Contrast.mjs +1 -1
- package/dist/src/filters/Convolute.min.mjs +1 -1
- package/dist/src/filters/Convolute.min.mjs.map +1 -1
- package/dist/src/filters/Convolute.mjs +1 -1
- package/dist/src/filters/Gamma.min.mjs +1 -1
- package/dist/src/filters/Gamma.mjs +1 -1
- package/dist/src/filters/Grayscale.min.mjs +1 -1
- package/dist/src/filters/Grayscale.mjs +1 -1
- package/dist/src/filters/HueRotation.min.mjs +1 -1
- package/dist/src/filters/HueRotation.mjs +1 -1
- package/dist/src/filters/Invert.min.mjs +1 -1
- package/dist/src/filters/Invert.mjs +1 -1
- package/dist/src/filters/Noise.min.mjs +1 -1
- package/dist/src/filters/Noise.mjs +1 -1
- package/dist/src/filters/Pixelate.min.mjs +1 -1
- package/dist/src/filters/Pixelate.mjs +1 -1
- package/dist/src/filters/RemoveColor.min.mjs +1 -1
- package/dist/src/filters/RemoveColor.mjs +1 -1
- package/dist/src/filters/Resize.min.mjs +2 -2
- package/dist/src/filters/Resize.min.mjs.map +1 -1
- package/dist/src/filters/Resize.mjs +2 -2
- package/dist/src/filters/Resize.mjs.map +1 -1
- package/dist/src/filters/Saturation.min.mjs +1 -1
- package/dist/src/filters/Saturation.mjs +1 -1
- package/dist/src/filters/Vibrance.min.mjs +1 -1
- package/dist/src/filters/Vibrance.mjs +1 -1
- package/dist/src/filters/WebGLFilterBackend.min.mjs +1 -1
- package/dist/src/filters/WebGLFilterBackend.mjs +1 -1
- package/dist/src/gradient/Gradient.d.ts.map +1 -1
- package/dist/src/gradient/Gradient.min.mjs +4 -4
- package/dist/src/gradient/Gradient.min.mjs.map +1 -1
- package/dist/src/gradient/Gradient.mjs +6 -2
- package/dist/src/gradient/Gradient.mjs.map +1 -1
- package/dist/src/gradient/typedefs.d.ts +7 -7
- package/dist/src/parser/applyViewboxTransform.d.ts.map +1 -1
- package/dist/src/parser/applyViewboxTransform.min.mjs +1 -1
- package/dist/src/parser/applyViewboxTransform.min.mjs.map +1 -1
- package/dist/src/parser/applyViewboxTransform.mjs +2 -4
- package/dist/src/parser/applyViewboxTransform.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs +1 -1
- package/dist/src/shapes/ActiveSelection.mjs +1 -1
- package/dist/src/shapes/Circle.min.mjs +2 -2
- package/dist/src/shapes/Circle.min.mjs.map +1 -1
- package/dist/src/shapes/Circle.mjs +1 -1
- package/dist/src/shapes/Ellipse.min.mjs +1 -1
- package/dist/src/shapes/Ellipse.mjs +1 -1
- package/dist/src/shapes/Group.min.mjs +1 -1
- package/dist/src/shapes/Group.mjs +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +1 -1
- package/dist/src/shapes/IText/DraggableTextDelegate.mjs +1 -1
- package/dist/src/shapes/IText/IText.d.ts.map +1 -1
- package/dist/src/shapes/IText/IText.min.mjs +1 -1
- package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
- package/dist/src/shapes/IText/IText.mjs +3 -3
- package/dist/src/shapes/IText/IText.mjs.map +1 -1
- package/dist/src/shapes/IText/ITextBehavior.min.mjs +1 -1
- package/dist/src/shapes/IText/ITextBehavior.mjs +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +1 -1
- package/dist/src/shapes/IText/ITextClickBehavior.mjs +1 -1
- package/dist/src/shapes/Image.min.mjs +1 -1
- package/dist/src/shapes/Image.mjs +1 -1
- package/dist/src/shapes/Line.min.mjs +1 -1
- package/dist/src/shapes/Line.mjs +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +2 -2
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +11 -26
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs +1 -1
- package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs +7 -6
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.min.mjs +1 -1
- package/dist/src/shapes/Object/Object.mjs +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +1 -1
- package/dist/src/shapes/Object/ObjectGeometry.mjs +6 -2
- package/dist/src/shapes/Object/ObjectGeometry.mjs.map +1 -1
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +1 -1
- package/dist/src/shapes/Path.min.mjs +1 -1
- package/dist/src/shapes/Path.mjs +1 -1
- package/dist/src/shapes/Polygon.min.mjs +1 -1
- package/dist/src/shapes/Polygon.mjs +1 -1
- package/dist/src/shapes/Polyline.min.mjs +1 -1
- package/dist/src/shapes/Polyline.mjs +1 -1
- package/dist/src/shapes/Rect.min.mjs +1 -1
- package/dist/src/shapes/Rect.mjs +1 -1
- package/dist/src/shapes/Text/StyledText.min.mjs +1 -1
- package/dist/src/shapes/Text/StyledText.mjs +1 -1
- package/dist/src/shapes/Text/Text.d.ts +4 -4
- package/dist/src/shapes/Text/Text.min.mjs +1 -1
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.mjs +3 -3
- package/dist/src/shapes/Text/Text.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +2 -2
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs +14 -7
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
- package/dist/src/shapes/Textbox.d.ts.map +1 -1
- package/dist/src/shapes/Textbox.min.mjs +2 -2
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs +2 -3
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/shapes/Triangle.min.mjs +1 -1
- package/dist/src/shapes/Triangle.mjs +1 -1
- package/dist/src/util/animation/AnimationBase.min.mjs +1 -1
- package/dist/src/util/animation/AnimationBase.mjs +1 -1
- package/dist/src/util/animation/easing.min.mjs +1 -1
- package/dist/src/util/animation/easing.min.mjs.map +1 -1
- package/dist/src/util/animation/easing.mjs +1 -1
- package/dist/src/util/animation/easing.mjs.map +1 -1
- package/dist/src/util/internals/applyCanvasTransform.d.ts +1 -1
- package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +1 -1
- package/dist/src/util/internals/applyCanvasTransform.mjs +1 -1
- package/dist/src/util/internals/applyCanvasTransform.mjs.map +1 -1
- package/dist/src/util/internals/svgExportCheck.d.ts +4 -0
- package/dist/src/util/internals/svgExportCheck.d.ts.map +1 -0
- package/dist/src/util/internals/svgExportCheck.min.mjs +2 -0
- package/dist/src/util/internals/svgExportCheck.min.mjs.map +1 -0
- package/dist/src/util/internals/svgExportCheck.mjs +12 -0
- package/dist/src/util/internals/svgExportCheck.mjs.map +1 -0
- package/dist/src/util/misc/matrix.d.ts +14 -0
- package/dist/src/util/misc/matrix.d.ts.map +1 -1
- package/dist/src/util/misc/matrix.min.mjs +1 -1
- package/dist/src/util/misc/matrix.min.mjs.map +1 -1
- package/dist/src/util/misc/matrix.mjs +15 -1
- package/dist/src/util/misc/matrix.mjs.map +1 -1
- package/dist/src/util/misc/mergeClipPaths.d.ts +1 -1
- package/dist/src/util/misc/mergeClipPaths.min.mjs.map +1 -1
- package/dist/src/util/misc/mergeClipPaths.mjs +1 -1
- package/dist/src/util/misc/mergeClipPaths.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.mjs +1 -1
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +1 -1
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +1 -1
- package/dist/src/util/misc/svgParsing.d.ts +2 -2
- package/dist/src/util/misc/svgParsing.d.ts.map +1 -1
- package/dist/src/util/misc/svgParsing.min.mjs +1 -1
- package/dist/src/util/misc/svgParsing.min.mjs.map +1 -1
- package/dist/src/util/misc/svgParsing.mjs +8 -3
- package/dist/src/util/misc/svgParsing.mjs.map +1 -1
- package/dist/src/util/path/index.d.ts.map +1 -1
- package/dist/src/util/path/index.min.mjs +1 -1
- package/dist/src/util/path/index.min.mjs.map +1 -1
- package/dist/src/util/path/index.mjs +2 -1
- package/dist/src/util/path/index.mjs.map +1 -1
- package/dist/src/util/path/regex.min.mjs.map +1 -1
- package/dist/src/util/path/regex.mjs +1 -1
- package/dist/src/util/path/regex.mjs.map +1 -1
- package/dist-extensions/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/defineProperty.mjs +1 -1
- package/{dist/_virtual/_@oxc-project_runtime@0.122.0 → dist-extensions/_virtual/_@oxc-project_runtime@0.126.0}/helpers/toPrimitive.mjs +1 -1
- package/dist-extensions/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/toPropertyKey.mjs +1 -1
- package/{dist/_virtual/_@oxc-project_runtime@0.122.0 → dist-extensions/_virtual/_@oxc-project_runtime@0.126.0}/helpers/typeof.mjs +1 -1
- package/dist-extensions/aligning_guidelines/index.mjs +1 -1
- package/dist-extensions/cropping_controls/croppingHandlers.mjs +1 -7
- package/dist-extensions/cropping_controls/croppingHandlers.mjs.map +1 -1
- package/dist-extensions/extensions/cropping_controls/croppingHandlers.d.ts.map +1 -1
- package/dist-extensions/fabric-extensions.min.js +1 -1
- package/dist-extensions/fabric-extensions.min.js.map +1 -1
- package/dist-extensions/src/canvas/StaticCanvas.d.ts +1 -1
- package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist-extensions/src/gradient/Gradient.d.ts.map +1 -1
- package/dist-extensions/src/gradient/typedefs.d.ts +7 -7
- package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +1 -1
- package/dist-extensions/src/shapes/IText/IText.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +1 -1
- package/dist-extensions/src/shapes/Text/Text.d.ts +4 -4
- package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
- package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +1 -1
- package/dist-extensions/src/util/internals/svgExportCheck.d.ts +4 -0
- package/dist-extensions/src/util/internals/svgExportCheck.d.ts.map +1 -0
- package/dist-extensions/src/util/misc/matrix.d.ts +14 -0
- package/dist-extensions/src/util/misc/matrix.d.ts.map +1 -1
- package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +1 -1
- package/dist-extensions/src/util/misc/svgParsing.d.ts +2 -2
- package/dist-extensions/src/util/misc/svgParsing.d.ts.map +1 -1
- package/dist-extensions/src/util/path/index.d.ts.map +1 -1
- package/extensions/cropping_controls/croppingHandlers.ts +13 -19
- package/package.json +10 -10
- package/src/LayoutManager/README.md +3 -3
- package/src/canvas/StaticCanvas.spec.ts +19 -0
- package/src/canvas/StaticCanvas.ts +7 -3
- package/src/filters/Resize.ts +1 -1
- package/src/gradient/Gradient.spec.ts +60 -1
- package/src/gradient/Gradient.ts +9 -2
- package/src/gradient/typedefs.ts +7 -7
- package/src/parser/applyViewboxTransform.ts +2 -4
- package/src/shapes/IText/IText.ts +1 -2
- package/src/shapes/IText/ITextBehavior.test.ts +6 -6
- package/src/shapes/Object/FabricObject.spec.ts +3 -2
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +47 -37
- package/src/shapes/Object/InteractiveObject.ts +13 -3
- package/src/shapes/Object/Object-interactivity.spec.ts +126 -7
- package/src/shapes/Object/ObjectGeometry.spec.ts +10 -1
- package/src/shapes/Object/ObjectGeometry.ts +10 -3
- package/src/shapes/Object/objectSvgExport.spec.ts +27 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +1 -1
- package/src/shapes/Text/Text.spec.ts +25 -0
- package/src/shapes/Text/Text.ts +5 -5
- package/src/shapes/Text/TextSVGExportMixin.ts +25 -11
- package/src/shapes/Textbox.ts +1 -2
- package/src/util/animation/animations.spec.ts +1 -1
- package/src/util/animation/easing.ts +1 -1
- package/src/util/internals/applyCanvasTransform.ts +1 -1
- package/src/util/internals/svgExportCheck.ts +20 -0
- package/src/util/misc/matrix.spec.ts +52 -0
- package/src/util/misc/matrix.ts +16 -0
- package/src/util/misc/mergeClipPaths.ts +1 -1
- package/src/util/misc/objectEnlive.ts +1 -1
- package/src/util/misc/svgParsing.ts +22 -10
- package/src/util/path/index.ts +3 -2
- package/src/util/path/regex.ts +1 -1
- package/src/util/typeAssertions.spec.ts +1 -1
- /package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/defineProperty.min.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/toPrimitive.min.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/toPropertyKey.min.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.122.0 → _@oxc-project_runtime@0.126.0}/helpers/typeof.min.mjs +0 -0
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
return target;
|
|
15
15
|
};
|
|
16
16
|
//#endregion
|
|
17
|
-
//#region \0@oxc-project+runtime@0.
|
|
17
|
+
//#region \0@oxc-project+runtime@0.126.0/helpers/typeof.js
|
|
18
18
|
function _typeof(o) {
|
|
19
19
|
"@babel/helpers - typeof";
|
|
20
20
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}, _typeof(o);
|
|
25
25
|
}
|
|
26
26
|
//#endregion
|
|
27
|
-
//#region \0@oxc-project+runtime@0.
|
|
27
|
+
//#region \0@oxc-project+runtime@0.126.0/helpers/toPrimitive.js
|
|
28
28
|
function toPrimitive(t, r) {
|
|
29
29
|
if ("object" != _typeof(t) || !t) return t;
|
|
30
30
|
var e = t[Symbol.toPrimitive];
|
|
@@ -36,13 +36,13 @@
|
|
|
36
36
|
return ("string" === r ? String : Number)(t);
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
39
|
+
//#region \0@oxc-project+runtime@0.126.0/helpers/toPropertyKey.js
|
|
40
40
|
function toPropertyKey(t) {
|
|
41
41
|
var i = toPrimitive(t, "string");
|
|
42
42
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
43
43
|
}
|
|
44
44
|
//#endregion
|
|
45
|
-
//#region \0@oxc-project+runtime@0.
|
|
45
|
+
//#region \0@oxc-project+runtime@0.126.0/helpers/defineProperty.js
|
|
46
46
|
function _defineProperty(e, r, t) {
|
|
47
47
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
48
48
|
value: t,
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
const cache = new Cache();
|
|
410
410
|
//#endregion
|
|
411
411
|
//#region src/constants.ts
|
|
412
|
-
const VERSION = "7.
|
|
412
|
+
const VERSION = "7.4.0";
|
|
413
413
|
function noop() {}
|
|
414
414
|
const halfPI = Math.PI / 2;
|
|
415
415
|
const quarterPI = Math.PI / 4;
|
|
@@ -1395,6 +1395,20 @@
|
|
|
1395
1395
|
const multiplyTransformMatrixArray = (matrices, is2x2) => matrices.reduceRight((product, curr) => curr && product ? multiplyTransformMatrices(curr, product, is2x2) : curr || product, void 0) || iMatrix.concat();
|
|
1396
1396
|
const calcPlaneRotation = ([a, b]) => Math.atan2(b, a);
|
|
1397
1397
|
/**
|
|
1398
|
+
* Returns the uniform scale (zoom) magnitude of a 2D affine matrix,
|
|
1399
|
+
* computed as the length of the image of the unit X basis vector.
|
|
1400
|
+
*/
|
|
1401
|
+
const calcPlaneZoom = ([a, b]) => Math.sqrt(a * a + b * b);
|
|
1402
|
+
/**
|
|
1403
|
+
* Returns the Y-axis scale magnitude of a 2D affine matrix,
|
|
1404
|
+
* computed as the length of the image of the unit Y basis vector.
|
|
1405
|
+
* We do not support non uniform zooming on the viewport but to make things work
|
|
1406
|
+
* we need to have a function that can return the value on Y axis.
|
|
1407
|
+
* Bug reports and features will be planned with zoom being just a number
|
|
1408
|
+
* that is the same for both axis
|
|
1409
|
+
*/
|
|
1410
|
+
const calcPlaneScaleY = ([, , c, d]) => Math.sqrt(c * c + d * d);
|
|
1411
|
+
/**
|
|
1398
1412
|
* Decomposes standard 2x3 matrix into transform components
|
|
1399
1413
|
* @param {TMat2D} a transformMatrix
|
|
1400
1414
|
* @return {Object} Components of transform
|
|
@@ -1653,7 +1667,7 @@
|
|
|
1653
1667
|
/**
|
|
1654
1668
|
* clipPath or shadow or gradient or text on a path or a pattern,
|
|
1655
1669
|
* or the backgroundImage or overlayImage of canvas
|
|
1656
|
-
* If we have a type and there is a
|
|
1670
|
+
* If we have a type and there is a class registered for it, we enlive it.
|
|
1657
1671
|
* If there is no class registered for it we return the value as is
|
|
1658
1672
|
* */
|
|
1659
1673
|
if (value.type && classRegistry.has(value.type)) return enlivenObjects([value], { signal }).then(([enlived]) => {
|
|
@@ -2084,11 +2098,11 @@
|
|
|
2084
2098
|
if (!options || !options.cssOnly) this.requestRenderAll();
|
|
2085
2099
|
}
|
|
2086
2100
|
/**
|
|
2087
|
-
* Returns canvas zoom level
|
|
2101
|
+
* Returns the canvas zoom level as the magnitude of the viewport scale.
|
|
2088
2102
|
* @return {Number}
|
|
2089
2103
|
*/
|
|
2090
2104
|
getZoom() {
|
|
2091
|
-
return this.viewportTransform
|
|
2105
|
+
return calcPlaneZoom(this.viewportTransform);
|
|
2092
2106
|
}
|
|
2093
2107
|
/**
|
|
2094
2108
|
* Sets viewport transformation of this canvas instance
|
|
@@ -3227,6 +3241,15 @@
|
|
|
3227
3241
|
return localPoint;
|
|
3228
3242
|
}
|
|
3229
3243
|
//#endregion
|
|
3244
|
+
//#region src/util/internals/svgExportCheck.ts
|
|
3245
|
+
const unsafeSvgStyleValueRegex = new RegExp(String.raw`[\0-\x1F\x7F;<>\\]|\/\*|\*\/|url\s*\(|expression\s*\(|(?:java|vb)script\s*:|data\s*:|@import\b`, "iu");
|
|
3246
|
+
const isSafeSvgStyleValue = (value) => typeof value === "string" && value.trim().length > 0 && !unsafeSvgStyleValueRegex.test(value);
|
|
3247
|
+
const getSafeSvgStyleNumber = (value, fallback = "") => {
|
|
3248
|
+
const numeric = Number(value);
|
|
3249
|
+
return Number.isFinite(numeric) ? `${numeric}` : fallback;
|
|
3250
|
+
};
|
|
3251
|
+
const getSafeSvgStyleToken = (value, fallback = "") => typeof value === "string" && isSafeSvgStyleValue(value) ? value : fallback;
|
|
3252
|
+
//#endregion
|
|
3230
3253
|
//#region src/util/internals/normalizeWhiteSpace.ts
|
|
3231
3254
|
const normalizeWs = (value) => value.replace(/\s+/g, " ");
|
|
3232
3255
|
//#endregion
|
|
@@ -3955,9 +3978,13 @@
|
|
|
3955
3978
|
if (!value) colorValue = "none";
|
|
3956
3979
|
else if (value.toLive) colorValue = `url(#SVGID_${escapeXml(value.id)})`;
|
|
3957
3980
|
else {
|
|
3958
|
-
const
|
|
3959
|
-
colorValue =
|
|
3960
|
-
|
|
3981
|
+
const rawValue = String(value);
|
|
3982
|
+
if (!isSafeSvgStyleValue(rawValue)) colorValue = new Color("black").toRgb();
|
|
3983
|
+
else {
|
|
3984
|
+
const color = new Color(rawValue), opacity = color.getAlpha();
|
|
3985
|
+
colorValue = color.toRgb();
|
|
3986
|
+
if (opacity !== 1) opacityValue = opacity.toString();
|
|
3987
|
+
}
|
|
3961
3988
|
}
|
|
3962
3989
|
if (inlineStyle) return `${prop}: ${colorValue}; ${opacityValue ? `${prop}-opacity: ${opacityValue}; ` : ""}`;
|
|
3963
3990
|
else return `${prop}="${colorValue}" ${opacityValue ? `${prop}-opacity="${opacityValue}" ` : ""}`;
|
|
@@ -3981,34 +4008,18 @@
|
|
|
3981
4008
|
* @return {String}
|
|
3982
4009
|
*/
|
|
3983
4010
|
getSvgStyles(skipShadow) {
|
|
3984
|
-
const fillRule = this.fillRule
|
|
4011
|
+
const fillRule = this.fillRule == null ? "nonzero" : getSafeSvgStyleToken(this.fillRule), strokeWidth = this.strokeWidth == null ? "0" : getSafeSvgStyleNumber(this.strokeWidth), strokeDashArray = this.strokeDashArray == null ? NONE : this.strokeDashArray.every((value) => Number.isFinite(Number(value))) ? this.strokeDashArray.join(" ") : "", strokeDashOffset = this.strokeDashOffset == null ? "0" : getSafeSvgStyleNumber(this.strokeDashOffset), strokeLineCap = this.strokeLineCap == null ? "butt" : getSafeSvgStyleToken(this.strokeLineCap), strokeLineJoin = this.strokeLineJoin == null ? "miter" : getSafeSvgStyleToken(this.strokeLineJoin), strokeMiterLimit = this.strokeMiterLimit == null ? "4" : getSafeSvgStyleNumber(this.strokeMiterLimit), opacity = this.opacity == null ? "1" : getSafeSvgStyleNumber(this.opacity), visibility = this.visible ? "" : " visibility: hidden;", filter = skipShadow ? "" : this.getSvgFilter(), fill = colorPropToSVG(FILL, this.fill);
|
|
3985
4012
|
return [
|
|
3986
4013
|
colorPropToSVG(STROKE, this.stroke),
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
"stroke-linecap: ",
|
|
3994
|
-
strokeLineCap,
|
|
3995
|
-
"; ",
|
|
3996
|
-
"stroke-dashoffset: ",
|
|
3997
|
-
strokeDashOffset,
|
|
3998
|
-
"; ",
|
|
3999
|
-
"stroke-linejoin: ",
|
|
4000
|
-
strokeLineJoin,
|
|
4001
|
-
"; ",
|
|
4002
|
-
"stroke-miterlimit: ",
|
|
4003
|
-
strokeMiterLimit,
|
|
4004
|
-
"; ",
|
|
4014
|
+
strokeWidth ? `stroke-width: ${strokeWidth}; ` : "",
|
|
4015
|
+
strokeDashArray ? `stroke-dasharray: ${strokeDashArray}; ` : "",
|
|
4016
|
+
strokeLineCap ? `stroke-linecap: ${strokeLineCap}; ` : "",
|
|
4017
|
+
strokeDashOffset ? `stroke-dashoffset: ${strokeDashOffset}; ` : "",
|
|
4018
|
+
strokeLineJoin ? `stroke-linejoin: ${strokeLineJoin}; ` : "",
|
|
4019
|
+
strokeMiterLimit ? `stroke-miterlimit: ${strokeMiterLimit}; ` : "",
|
|
4005
4020
|
fill,
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
"; ",
|
|
4009
|
-
"opacity: ",
|
|
4010
|
-
opacity,
|
|
4011
|
-
";",
|
|
4021
|
+
fillRule ? `fill-rule: ${fillRule}; ` : "",
|
|
4022
|
+
opacity ? `opacity: ${opacity};` : "",
|
|
4012
4023
|
filter,
|
|
4013
4024
|
visibility
|
|
4014
4025
|
].map((v) => escapeXml(v)).join("");
|
|
@@ -4025,7 +4036,7 @@
|
|
|
4025
4036
|
* @return {String}
|
|
4026
4037
|
*/
|
|
4027
4038
|
getSvgCommons() {
|
|
4028
|
-
return [this.id ? `id="${escapeXml(String(this.id))}" ` : "", this.clipPath ? `clip-path="url(#${this.clipPath.clipPathId})" ` : ""].join("");
|
|
4039
|
+
return [this.id ? `id="${escapeXml(String(this.id))}" ` : "", this.clipPath ? `clip-path="url(#${escapeXml(this.clipPath.clipPathId)})" ` : ""].join("");
|
|
4029
4040
|
}
|
|
4030
4041
|
/**
|
|
4031
4042
|
* Returns transform-string for svg-export
|
|
@@ -4623,7 +4634,7 @@
|
|
|
4623
4634
|
if (t === d) return b + c;
|
|
4624
4635
|
t /= d / 2;
|
|
4625
4636
|
if (t < 1) return c / 2 * 2 ** (10 * (t - 1)) + b;
|
|
4626
|
-
return c / 2 * -(2 ** (-10 *
|
|
4637
|
+
return c / 2 * -(2 ** (-10 * (t - 1)) + 2) + b;
|
|
4627
4638
|
};
|
|
4628
4639
|
/**
|
|
4629
4640
|
* Circular easing in
|
|
@@ -5436,7 +5447,11 @@
|
|
|
5436
5447
|
* @returns {Point} dimensions
|
|
5437
5448
|
*/
|
|
5438
5449
|
_calculateCurrentDimensions(options) {
|
|
5439
|
-
|
|
5450
|
+
var _this$canvas3;
|
|
5451
|
+
const vpt = (_this$canvas3 = this.canvas) === null || _this$canvas3 === void 0 ? void 0 : _this$canvas3.viewportTransform;
|
|
5452
|
+
const dim = this._getTransformedDimensions(options);
|
|
5453
|
+
if (vpt) return dim.multiply(new Point(calcPlaneZoom(vpt), calcPlaneScaleY(vpt))).scalarAdd(2 * this.padding);
|
|
5454
|
+
return dim.scalarAdd(2 * this.padding);
|
|
5440
5455
|
}
|
|
5441
5456
|
/**
|
|
5442
5457
|
* Calculate object bounding box dimensions from its properties scale, skew.
|
|
@@ -7641,11 +7656,11 @@
|
|
|
7641
7656
|
* @return {Record<string, TOCoord>}
|
|
7642
7657
|
*/
|
|
7643
7658
|
calcOCoords() {
|
|
7644
|
-
const vpt = this.getViewportTransform(), center = this.getCenterPoint(), finalMatrix = multiplyTransformMatrices(multiplyTransformMatrices(vpt, multiplyTransformMatrices(createTranslateMatrix(center.x, center.y), createRotateMatrix({ angle: this.getTotalAngle() - (!!this.group && this.flipX ? 180 : 0) }))), [
|
|
7645
|
-
1 /
|
|
7659
|
+
const vpt = this.getViewportTransform(), vptScaleX = calcPlaneZoom(vpt), vptScaleY = calcPlaneScaleY(vpt), center = this.getCenterPoint(), finalMatrix = multiplyTransformMatrices(multiplyTransformMatrices(vpt, multiplyTransformMatrices(createTranslateMatrix(center.x, center.y), createRotateMatrix({ angle: this.getTotalAngle() - (!!this.group && this.flipX ? 180 : 0) }))), [
|
|
7660
|
+
1 / vptScaleX,
|
|
7646
7661
|
0,
|
|
7647
7662
|
0,
|
|
7648
|
-
1 /
|
|
7663
|
+
1 / vptScaleY,
|
|
7649
7664
|
0,
|
|
7650
7665
|
0
|
|
7651
7666
|
]), transformOptions = this.group ? qrDecompose(this.calcTransformMatrix()) : void 0;
|
|
@@ -7761,7 +7776,8 @@
|
|
|
7761
7776
|
ctx.lineWidth = this.borderScaleFactor;
|
|
7762
7777
|
if (this.group === this.parent) ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;
|
|
7763
7778
|
if (this.flipX) options.angle -= 180;
|
|
7764
|
-
|
|
7779
|
+
const vptAngle = calcPlaneRotation(vpt);
|
|
7780
|
+
ctx.rotate(this.group ? degreesToRadians(options.angle) : degreesToRadians(this.angle) + vptAngle);
|
|
7765
7781
|
shouldDrawBorders && this.drawBorders(ctx, options, styleOverride);
|
|
7766
7782
|
shouldDrawControls && this.drawControls(ctx, styleOverride);
|
|
7767
7783
|
ctx.restore();
|
|
@@ -9603,7 +9619,7 @@
|
|
|
9603
9619
|
/**
|
|
9604
9620
|
* p for param
|
|
9605
9621
|
* using "bad naming" here because it makes the regex much easier to read
|
|
9606
|
-
* p is a number that is preceded by an
|
|
9622
|
+
* p is a number that is preceded by an arbitrary number of spaces, maybe 0,
|
|
9607
9623
|
* a comma or not, and then possibly more spaces or not.
|
|
9608
9624
|
*/
|
|
9609
9625
|
const p = `${commaWsp}(${reNum})`;
|
|
@@ -10168,7 +10184,8 @@
|
|
|
10168
10184
|
let paramArr = [];
|
|
10169
10185
|
if (commandLetter === "a" || commandLetter === "A") {
|
|
10170
10186
|
regExpArcCommandPoints.lastIndex = 0;
|
|
10171
|
-
|
|
10187
|
+
let out;
|
|
10188
|
+
while (out = regExpArcCommandPoints.exec(matchStr)) paramArr.push(...out.slice(1));
|
|
10172
10189
|
} else paramArr = matchStr.match(reMyNum) || [];
|
|
10173
10190
|
for (let i = 0; i < paramArr.length; i += commandLength) {
|
|
10174
10191
|
const newCommand = new Array(commandLength);
|
|
@@ -10297,7 +10314,7 @@
|
|
|
10297
10314
|
* Merges 2 clip paths into one visually equal clip path
|
|
10298
10315
|
*
|
|
10299
10316
|
* **IMPORTANT**:\
|
|
10300
|
-
* Does **NOT** clone the arguments, clone them
|
|
10317
|
+
* Does **NOT** clone the arguments, clone them prior if necessary.
|
|
10301
10318
|
*
|
|
10302
10319
|
* Creates a wrapper (group) that contains one clip path and is clipped by the other so content is kept where both overlap.
|
|
10303
10320
|
* Use this method if both the clip paths may have nested clip paths of their own, so assigning one to the other's clip path property is not possible.
|
|
@@ -13017,7 +13034,9 @@
|
|
|
13017
13034
|
}
|
|
13018
13035
|
}
|
|
13019
13036
|
colorStops.forEach(({ color, offset }) => {
|
|
13020
|
-
|
|
13037
|
+
const rawColor = String(color);
|
|
13038
|
+
const serializedColor = isSafeSvgStyleValue(rawColor) ? rawColor : new Color(rawColor).toRgba();
|
|
13039
|
+
markup.push(`<stop offset="${offset * 100}%" style="stop-color:${escapeXml(serializedColor)};"/>\n`);
|
|
13021
13040
|
});
|
|
13022
13041
|
markup.push(this.type === "linear" ? "</linearGradient>" : "</radialGradient>", "\n");
|
|
13023
13042
|
return markup.join("");
|
|
@@ -15288,7 +15307,7 @@
|
|
|
15288
15307
|
* @return {String}
|
|
15289
15308
|
*/
|
|
15290
15309
|
getSvgStyles(skipShadow) {
|
|
15291
|
-
const objectLevelTextDecorationColor = this["textDecorationColor"] ? ` text-decoration-color: ${escapeXml(this[TEXT_DECORATION_COLOR])};` : "";
|
|
15310
|
+
const objectLevelTextDecorationColor = isSafeSvgStyleValue(this["textDecorationColor"]) ? ` text-decoration-color: ${escapeXml(this[TEXT_DECORATION_COLOR])};` : "";
|
|
15292
15311
|
return `${super.getSvgStyles(skipShadow)} text-decoration-thickness: ${toFixed(this.textDecorationThickness * this.getObjectScaling().y / 10, config.NUM_FRACTION_DIGITS)}%;${objectLevelTextDecorationColor} white-space: pre;`;
|
|
15293
15312
|
}
|
|
15294
15313
|
/**
|
|
@@ -15306,14 +15325,20 @@
|
|
|
15306
15325
|
});
|
|
15307
15326
|
const thickness = textDecorationThickness || this["textDecorationThickness"];
|
|
15308
15327
|
const decorationColor = textDecorationColor || this["textDecorationColor"];
|
|
15328
|
+
const safeStrokeWidth = getSafeSvgStyleNumber(strokeWidth);
|
|
15329
|
+
const safeFontFamily = getSafeSvgStyleToken(fontFamily);
|
|
15330
|
+
const safeFontSize = getSafeSvgStyleNumber(fontSize);
|
|
15331
|
+
const safeFontStyle = getSafeSvgStyleToken(fontStyle);
|
|
15332
|
+
const safeFontWeight = getSafeSvgStyleNumber(fontWeight) || getSafeSvgStyleToken(fontWeight);
|
|
15333
|
+
const safeDecorationColor = getSafeSvgStyleToken(decorationColor);
|
|
15309
15334
|
return [
|
|
15310
15335
|
stroke ? colorPropToSVG(STROKE, stroke) : "",
|
|
15311
|
-
|
|
15312
|
-
|
|
15313
|
-
|
|
15314
|
-
|
|
15315
|
-
|
|
15316
|
-
textDecoration ? `text-decoration: ${textDecoration}; text-decoration-thickness: ${toFixed(thickness * this.getObjectScaling().y / 10, config.NUM_FRACTION_DIGITS)}%;${
|
|
15336
|
+
safeStrokeWidth ? `stroke-width: ${escapeXml(safeStrokeWidth)}; ` : "",
|
|
15337
|
+
safeFontFamily ? `font-family: ${!safeFontFamily.includes("'") && !safeFontFamily.includes("\"") ? `'${escapeXml(safeFontFamily)}'` : escapeXml(safeFontFamily)}; ` : "",
|
|
15338
|
+
safeFontSize ? `font-size: ${escapeXml(safeFontSize)}px; ` : "",
|
|
15339
|
+
safeFontStyle ? `font-style: ${escapeXml(safeFontStyle)}; ` : "",
|
|
15340
|
+
safeFontWeight ? `font-weight: ${escapeXml(safeFontWeight)}; ` : "",
|
|
15341
|
+
textDecoration ? `text-decoration: ${textDecoration}; text-decoration-thickness: ${toFixed(thickness * this.getObjectScaling().y / 10, config.NUM_FRACTION_DIGITS)}%;${safeDecorationColor ? ` text-decoration-color: ${escapeXml(safeDecorationColor)};` : ""} ` : "",
|
|
15317
15342
|
fill ? colorPropToSVG(FILL, fill) : "",
|
|
15318
15343
|
useWhiteSpace ? "white-space: pre; " : ""
|
|
15319
15344
|
].join("");
|
|
@@ -15870,7 +15895,7 @@
|
|
|
15870
15895
|
* @private
|
|
15871
15896
|
* @param {String} method fillText or strokeText.
|
|
15872
15897
|
* @param {CanvasRenderingContext2D} ctx Context to render on
|
|
15873
|
-
* @param {Array} line Content of the line,
|
|
15898
|
+
* @param {Array} line Content of the line, split in an array by grapheme
|
|
15874
15899
|
* @param {Number} left
|
|
15875
15900
|
* @param {Number} top
|
|
15876
15901
|
* @param {Number} lineIndex
|
|
@@ -16140,7 +16165,7 @@
|
|
|
16140
16165
|
let lastDecorationColor = this.getValueOfPropertyAt(i, 0, "textDecorationColor") || lastFill;
|
|
16141
16166
|
let lastTickness = this.getValueOfPropertyAt(i, 0, TEXT_DECORATION_THICKNESS);
|
|
16142
16167
|
let currentDecoration = lastDecoration;
|
|
16143
|
-
let currentFill
|
|
16168
|
+
let currentFill;
|
|
16144
16169
|
let currentDecorationColor = lastDecorationColor;
|
|
16145
16170
|
let currentTickness = lastTickness;
|
|
16146
16171
|
const top = topOffset + maxHeight * (1 - this._fontSizeFraction);
|
|
@@ -17907,7 +17932,7 @@
|
|
|
17907
17932
|
* Set the transform of the passed context to the same of a specific Canvas or StaticCanvas.
|
|
17908
17933
|
* setTransform is used since this utility will RESET the ctx transform to the basic value
|
|
17909
17934
|
* of retina scaling and viewport transform
|
|
17910
|
-
* It is not meant to be added to other transforms, it is used internally to
|
|
17935
|
+
* It is not meant to be added to other transforms, it is used internally to prepare canvases to draw
|
|
17911
17936
|
* @param ctx
|
|
17912
17937
|
* @param canvas
|
|
17913
17938
|
*/
|
|
@@ -18305,7 +18330,7 @@
|
|
|
18305
18330
|
const selectionStart = selection.selectionStart, selectionEnd = selection.selectionEnd, isJustify = textAlign.includes(JUSTIFY), start = this.get2DCursorLocation(selectionStart), end = this.get2DCursorLocation(selectionEnd), startLine = start.lineIndex, endLine = end.lineIndex, startChar = start.charIndex < 0 ? 0 : start.charIndex, endChar = end.charIndex < 0 ? 0 : end.charIndex;
|
|
18306
18331
|
for (let i = startLine; i <= endLine; i++) {
|
|
18307
18332
|
const lineOffset = this._getLineLeftOffset(i) || 0;
|
|
18308
|
-
let lineHeight = this.getHeightOfLine(i),
|
|
18333
|
+
let lineHeight = this.getHeightOfLine(i), boxStart = 0, boxEnd = 0;
|
|
18309
18334
|
if (i === startLine) boxStart = this.__charBounds[startLine][startChar].left;
|
|
18310
18335
|
if (i >= startLine && i < endLine) boxEnd = isJustify && !this.isEndOfWrapping(i) ? this.width : this.getLineWidth(i) || 5;
|
|
18311
18336
|
else if (i === endLine) if (endChar === 0) boxEnd = this.__charBounds[endLine][endChar].left;
|
|
@@ -18313,7 +18338,7 @@
|
|
|
18313
18338
|
const charSpacing = this._getWidthOfCharSpacing();
|
|
18314
18339
|
boxEnd = this.__charBounds[endLine][endChar - 1].left + this.__charBounds[endLine][endChar - 1].width - charSpacing;
|
|
18315
18340
|
}
|
|
18316
|
-
realLineHeight = lineHeight;
|
|
18341
|
+
const realLineHeight = lineHeight;
|
|
18317
18342
|
if (this.lineHeight < 1 || i === endLine && this.lineHeight > 1) lineHeight /= this.lineHeight;
|
|
18318
18343
|
let drawStart = boundaries.left + lineOffset + boxStart, drawHeight = lineHeight, extraTop = 0;
|
|
18319
18344
|
const drawWidth = boxEnd - boxStart;
|
|
@@ -18480,7 +18505,7 @@
|
|
|
18480
18505
|
*/
|
|
18481
18506
|
isEmptyStyles(lineIndex) {
|
|
18482
18507
|
if (!this.styles) return true;
|
|
18483
|
-
let offset = 0, nextLineIndex
|
|
18508
|
+
let offset = 0, nextLineIndex, nextOffset, shouldLimit = false;
|
|
18484
18509
|
const map = this._styleMap[lineIndex], mapNextLine = this._styleMap[lineIndex + 1];
|
|
18485
18510
|
if (map) {
|
|
18486
18511
|
lineIndex = map.line;
|
|
@@ -18651,7 +18676,6 @@
|
|
|
18651
18676
|
desiredWidth -= reservedSpace;
|
|
18652
18677
|
const maxWidth = Math.max(desiredWidth, largestWordWidth, this.dynamicMinWidth);
|
|
18653
18678
|
const data = wordsData[lineIndex];
|
|
18654
|
-
offset = 0;
|
|
18655
18679
|
let i;
|
|
18656
18680
|
for (i = 0; i < data.length; i++) {
|
|
18657
18681
|
const { word, width: wordWidth } = data[i];
|
|
@@ -19786,8 +19810,6 @@
|
|
|
19786
19810
|
const viewBoxAttr = element.getAttribute("viewBox");
|
|
19787
19811
|
let scaleX = 1;
|
|
19788
19812
|
let scaleY = 1;
|
|
19789
|
-
let minX = 0;
|
|
19790
|
-
let minY = 0;
|
|
19791
19813
|
let matrix;
|
|
19792
19814
|
let el;
|
|
19793
19815
|
const widthAttr = element.getAttribute("width");
|
|
@@ -19822,8 +19844,8 @@
|
|
|
19822
19844
|
return parsedDim;
|
|
19823
19845
|
}
|
|
19824
19846
|
const pasedViewBox = viewBoxAttr.match(reViewBoxAttrValue);
|
|
19825
|
-
minX = -parseFloat(pasedViewBox[1]);
|
|
19826
|
-
minY = -parseFloat(pasedViewBox[2]);
|
|
19847
|
+
const minX = -parseFloat(pasedViewBox[1]);
|
|
19848
|
+
const minY = -parseFloat(pasedViewBox[2]);
|
|
19827
19849
|
const viewBoxWidth = parseFloat(pasedViewBox[3]);
|
|
19828
19850
|
const viewBoxHeight = parseFloat(pasedViewBox[4]);
|
|
19829
19851
|
parsedDim.minX = minX;
|
|
@@ -22639,7 +22661,7 @@ void main() {
|
|
|
22639
22661
|
const ratioW = this.rcpScaleX, ratioH = this.rcpScaleY, ratioWHalf = Math.ceil(ratioW / 2), ratioHHalf = Math.ceil(ratioH / 2), data = options.imageData.data, img2 = options.ctx.createImageData(dW, dH), data2 = img2.data;
|
|
22640
22662
|
for (let j = 0; j < dH; j++) for (let i = 0; i < dW; i++) {
|
|
22641
22663
|
const x2 = (i + j * dW) * 4;
|
|
22642
|
-
let weight
|
|
22664
|
+
let weight;
|
|
22643
22665
|
let weights = 0;
|
|
22644
22666
|
let weightsAlpha = 0;
|
|
22645
22667
|
let gxR = 0;
|