@postermywall/fabricjs-2 6.0.0-rc2.0 → 6.0.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 +18 -1
- package/dist/index.js +229 -491
- 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 +229 -491
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +229 -491
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +229 -491
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/canvas/Canvas.d.ts.map +1 -1
- package/dist/src/canvas/Canvas.min.mjs +1 -1
- package/dist/src/canvas/Canvas.min.mjs.map +1 -1
- package/dist/src/canvas/Canvas.mjs +8 -9
- package/dist/src/canvas/Canvas.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts +1 -1
- package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs +1 -1
- package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.d.ts +4 -4
- package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
- package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
- package/dist/src/canvas/StaticCanvas.mjs +0 -13
- package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
- package/dist/src/color/Color.d.ts +1 -0
- package/dist/src/color/Color.d.ts.map +1 -1
- package/dist/src/color/Color.min.mjs +1 -1
- package/dist/src/color/Color.min.mjs.map +1 -1
- package/dist/src/color/Color.mjs +3 -1
- package/dist/src/color/Color.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.d.ts +16 -23
- package/dist/src/filters/BaseFilter.d.ts.map +1 -1
- package/dist/src/filters/BaseFilter.min.mjs +1 -1
- package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
- package/dist/src/filters/BaseFilter.mjs +24 -41
- package/dist/src/filters/BaseFilter.mjs.map +1 -1
- package/dist/src/filters/BlendColor.d.ts +13 -24
- package/dist/src/filters/BlendColor.d.ts.map +1 -1
- package/dist/src/filters/BlendColor.min.mjs +1 -1
- package/dist/src/filters/BlendColor.min.mjs.map +1 -1
- package/dist/src/filters/BlendColor.mjs +1 -25
- package/dist/src/filters/BlendColor.mjs.map +1 -1
- package/dist/src/filters/BlendImage.d.ts +18 -19
- package/dist/src/filters/BlendImage.d.ts.map +1 -1
- package/dist/src/filters/BlendImage.min.mjs +1 -1
- package/dist/src/filters/BlendImage.min.mjs.map +1 -1
- package/dist/src/filters/BlendImage.mjs +13 -24
- package/dist/src/filters/BlendImage.mjs.map +1 -1
- package/dist/src/filters/Blur.d.ts +10 -12
- package/dist/src/filters/Blur.d.ts.map +1 -1
- package/dist/src/filters/Blur.min.mjs +1 -1
- package/dist/src/filters/Blur.min.mjs.map +1 -1
- package/dist/src/filters/Blur.mjs +5 -14
- package/dist/src/filters/Blur.mjs.map +1 -1
- package/dist/src/filters/Boilerplate.d.ts +11 -13
- package/dist/src/filters/Boilerplate.d.ts.map +1 -1
- package/dist/src/filters/Brightness.d.ts +10 -12
- package/dist/src/filters/Brightness.d.ts.map +1 -1
- package/dist/src/filters/Brightness.min.mjs +1 -1
- package/dist/src/filters/Brightness.min.mjs.map +1 -1
- package/dist/src/filters/Brightness.mjs +4 -16
- package/dist/src/filters/Brightness.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.d.ts +17 -15
- package/dist/src/filters/ColorMatrix.d.ts.map +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs +1 -1
- package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrix.mjs +7 -27
- package/dist/src/filters/ColorMatrix.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.d.ts +63 -497
- package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs +1 -1
- package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
- package/dist/src/filters/ColorMatrixFilters.mjs +13 -8
- package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
- package/dist/src/filters/Composed.d.ts +11 -10
- package/dist/src/filters/Composed.d.ts.map +1 -1
- package/dist/src/filters/Composed.min.mjs +1 -1
- package/dist/src/filters/Composed.min.mjs.map +1 -1
- package/dist/src/filters/Composed.mjs +7 -12
- package/dist/src/filters/Composed.mjs.map +1 -1
- package/dist/src/filters/Contrast.d.ts +10 -12
- package/dist/src/filters/Contrast.d.ts.map +1 -1
- package/dist/src/filters/Contrast.min.mjs +1 -1
- package/dist/src/filters/Contrast.min.mjs.map +1 -1
- package/dist/src/filters/Contrast.mjs +6 -17
- package/dist/src/filters/Contrast.mjs.map +1 -1
- package/dist/src/filters/Convolute.d.ts +11 -14
- package/dist/src/filters/Convolute.d.ts.map +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 -15
- package/dist/src/filters/Convolute.mjs.map +1 -1
- package/dist/src/filters/Gamma.d.ts +17 -14
- package/dist/src/filters/Gamma.d.ts.map +1 -1
- package/dist/src/filters/Gamma.min.mjs +1 -1
- package/dist/src/filters/Gamma.min.mjs.map +1 -1
- package/dist/src/filters/Gamma.mjs +20 -24
- package/dist/src/filters/Gamma.mjs.map +1 -1
- package/dist/src/filters/Grayscale.d.ts +8 -11
- package/dist/src/filters/Grayscale.d.ts.map +1 -1
- package/dist/src/filters/Grayscale.min.mjs +1 -1
- package/dist/src/filters/Grayscale.min.mjs.map +1 -1
- package/dist/src/filters/Grayscale.mjs +2 -14
- package/dist/src/filters/Grayscale.mjs.map +1 -1
- package/dist/src/filters/HueRotation.d.ts +11 -5
- package/dist/src/filters/HueRotation.d.ts.map +1 -1
- package/dist/src/filters/HueRotation.min.mjs +1 -1
- package/dist/src/filters/HueRotation.min.mjs.map +1 -1
- package/dist/src/filters/HueRotation.mjs +10 -5
- package/dist/src/filters/HueRotation.mjs.map +1 -1
- package/dist/src/filters/Invert.d.ts +10 -13
- package/dist/src/filters/Invert.d.ts.map +1 -1
- package/dist/src/filters/Invert.min.mjs +1 -1
- package/dist/src/filters/Invert.min.mjs.map +1 -1
- package/dist/src/filters/Invert.mjs +2 -15
- package/dist/src/filters/Invert.mjs.map +1 -1
- package/dist/src/filters/Noise.d.ts +9 -20
- package/dist/src/filters/Noise.d.ts.map +1 -1
- package/dist/src/filters/Noise.min.mjs +1 -1
- package/dist/src/filters/Noise.min.mjs.map +1 -1
- package/dist/src/filters/Noise.mjs +4 -27
- package/dist/src/filters/Noise.mjs.map +1 -1
- package/dist/src/filters/Pixelate.d.ts +8 -12
- package/dist/src/filters/Pixelate.d.ts.map +1 -1
- package/dist/src/filters/Pixelate.min.mjs +1 -1
- package/dist/src/filters/Pixelate.min.mjs.map +1 -1
- package/dist/src/filters/Pixelate.mjs +2 -16
- package/dist/src/filters/Pixelate.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.d.ts +12 -23
- package/dist/src/filters/RemoveColor.d.ts.map +1 -1
- package/dist/src/filters/RemoveColor.min.mjs +1 -1
- package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
- package/dist/src/filters/RemoveColor.mjs +2 -25
- package/dist/src/filters/RemoveColor.mjs.map +1 -1
- package/dist/src/filters/Resize.d.ts +14 -30
- package/dist/src/filters/Resize.d.ts.map +1 -1
- package/dist/src/filters/Resize.min.mjs +1 -1
- package/dist/src/filters/Resize.min.mjs.map +1 -1
- package/dist/src/filters/Resize.mjs +3 -30
- package/dist/src/filters/Resize.mjs.map +1 -1
- package/dist/src/filters/Saturation.d.ts +9 -12
- package/dist/src/filters/Saturation.d.ts.map +1 -1
- package/dist/src/filters/Saturation.min.mjs +1 -1
- package/dist/src/filters/Saturation.min.mjs.map +1 -1
- package/dist/src/filters/Saturation.mjs +8 -20
- package/dist/src/filters/Saturation.mjs.map +1 -1
- package/dist/src/filters/Vibrance.d.ts +10 -13
- package/dist/src/filters/Vibrance.d.ts.map +1 -1
- package/dist/src/filters/Vibrance.min.mjs +1 -1
- package/dist/src/filters/Vibrance.min.mjs.map +1 -1
- package/dist/src/filters/Vibrance.mjs +6 -18
- package/dist/src/filters/Vibrance.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.d.ts +1 -1
- package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
- package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
- package/dist/src/filters/shaders/blendImage.d.ts +1 -0
- package/dist/src/filters/shaders/blendImage.d.ts.map +1 -1
- package/dist/src/filters/shaders/blendImage.min.mjs +1 -1
- package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -1
- package/dist/src/filters/shaders/blendImage.mjs +2 -1
- package/dist/src/filters/shaders/blendImage.mjs.map +1 -1
- package/dist/src/filters/typedefs.d.ts +22 -0
- package/dist/src/filters/typedefs.d.ts.map +1 -1
- package/dist/src/parser/elements_parser.d.ts +1 -1
- package/dist/src/parser/elements_parser.d.ts.map +1 -1
- package/dist/src/parser/elements_parser.min.mjs.map +1 -1
- package/dist/src/parser/elements_parser.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.d.ts +1 -1
- package/dist/src/shapes/ActiveSelection.d.ts.map +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs +1 -1
- package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
- package/dist/src/shapes/ActiveSelection.mjs +13 -10
- package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
- package/dist/src/shapes/Group.d.ts +9 -0
- package/dist/src/shapes/Group.d.ts.map +1 -1
- package/dist/src/shapes/Group.min.mjs +1 -1
- package/dist/src/shapes/Group.min.mjs.map +1 -1
- package/dist/src/shapes/Group.mjs +10 -1
- package/dist/src/shapes/Group.mjs.map +1 -1
- package/dist/src/shapes/Image.d.ts +4 -4
- package/dist/src/shapes/Image.d.ts.map +1 -1
- package/dist/src/shapes/Image.min.mjs.map +1 -1
- package/dist/src/shapes/Image.mjs.map +1 -1
- package/dist/src/shapes/Object/InteractiveObject.d.ts +3 -0
- 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 +3 -1
- package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.d.ts +1 -16
- package/dist/src/shapes/Object/Object.d.ts.map +1 -1
- package/dist/src/shapes/Object/Object.min.mjs +1 -1
- package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
- package/dist/src/shapes/Object/Object.mjs +9 -10
- package/dist/src/shapes/Object/Object.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.d.ts +8 -15
- package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
- package/dist/src/shapes/Object/StackedObject.min.mjs +1 -1
- package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
- package/dist/src/shapes/Object/StackedObject.mjs +11 -21
- package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
- package/dist/src/shapes/Path.d.ts +2 -2
- package/dist/src/shapes/Path.d.ts.map +1 -1
- package/dist/src/shapes/Path.min.mjs.map +1 -1
- package/dist/src/shapes/Path.mjs +2 -2
- package/dist/src/shapes/Path.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
- package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.d.ts +2 -2
- package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
- package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
- package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
- package/package.json +2 -2
- package/src/canvas/Canvas.ts +6 -9
- package/src/canvas/SelectableCanvas.ts +2 -2
- package/src/canvas/StaticCanvas.ts +4 -18
- package/src/color/Color.ts +2 -1
- package/src/color/color.test.ts +6 -0
- package/src/filters/BaseFilter.ts +45 -51
- package/src/filters/BlendColor.ts +13 -35
- package/src/filters/BlendImage.ts +26 -40
- package/src/filters/Blur.ts +13 -20
- package/src/filters/Boilerplate.ts +13 -22
- package/src/filters/Brightness.ts +12 -21
- package/src/filters/Canvas2dFilterBackend.ts +1 -1
- package/src/filters/ColorMatrix.ts +29 -34
- package/src/filters/ColorMatrixFilters.ts +15 -9
- package/src/filters/Composed.ts +26 -16
- package/src/filters/Contrast.ts +15 -23
- package/src/filters/Convolute.ts +11 -23
- package/src/filters/Gamma.ts +32 -24
- package/src/filters/Grayscale.ts +8 -19
- package/src/filters/HueRotation.ts +21 -11
- package/src/filters/Invert.ts +11 -22
- package/src/filters/Noise.ts +11 -30
- package/src/filters/Pixelate.ts +9 -22
- package/src/filters/RemoveColor.ts +21 -35
- package/src/filters/Resize.ts +20 -44
- package/src/filters/Saturation.ts +16 -27
- package/src/filters/Vibrance.ts +14 -24
- package/src/filters/WebGLFilterBackend.ts +1 -1
- package/src/filters/shaders/blendImage.ts +12 -0
- package/src/filters/typedefs.ts +23 -0
- package/src/parser/elements_parser.ts +1 -1
- package/src/shapes/ActiveSelection.ts +8 -4
- package/src/shapes/Group.ts +16 -1
- package/src/shapes/Image.ts +8 -6
- package/src/shapes/Object/InteractiveObject.ts +3 -1
- package/src/shapes/Object/Object.ts +10 -35
- package/src/shapes/Object/StackedObject.ts +28 -44
- package/src/shapes/Path.ts +4 -4
- package/src/shapes/Text/TextSVGExportMixin.ts +1 -1
- package/src/util/misc/objectEnlive.ts +12 -2
|
@@ -3,35 +3,29 @@ import type { Group } from '../Group';
|
|
|
3
3
|
import type { Canvas } from '../../canvas/Canvas';
|
|
4
4
|
import type { StaticCanvas } from '../../canvas/StaticCanvas';
|
|
5
5
|
import { ObjectGeometry } from './ObjectGeometry';
|
|
6
|
+
import type { FabricObject } from './FabricObject';
|
|
6
7
|
|
|
7
8
|
type TAncestor = StackedObject | Canvas | StaticCanvas;
|
|
8
9
|
type TCollection = Group | Canvas | StaticCanvas;
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
? [StackedObject | Group] | [StackedObject | Group, ...Group[]] | Group[]
|
|
15
|
-
:
|
|
16
|
-
| [StackedObject | Group | Canvas | StaticCanvas]
|
|
17
|
-
| [StackedObject | Group, Canvas | StaticCanvas]
|
|
18
|
-
| [StackedObject, ...Group[]]
|
|
19
|
-
| Group[]
|
|
20
|
-
| [StackedObject | Group, ...Group[], Canvas | StaticCanvas];
|
|
11
|
+
export type Ancestors =
|
|
12
|
+
| [StackedObject | Group]
|
|
13
|
+
| [StackedObject | Group, ...Group[]]
|
|
14
|
+
| Group[];
|
|
21
15
|
|
|
22
|
-
export type AncestryComparison
|
|
16
|
+
export type AncestryComparison = {
|
|
23
17
|
/**
|
|
24
18
|
* common ancestors of `this` and`other`(may include`this` | `other`)
|
|
25
19
|
*/
|
|
26
|
-
common: Ancestors
|
|
20
|
+
common: Ancestors;
|
|
27
21
|
/**
|
|
28
22
|
* ancestors that are of `this` only
|
|
29
23
|
*/
|
|
30
|
-
fork: Ancestors
|
|
24
|
+
fork: Ancestors;
|
|
31
25
|
/**
|
|
32
26
|
* ancestors that are of `other` only
|
|
33
27
|
*/
|
|
34
|
-
otherFork: Ancestors
|
|
28
|
+
otherFork: Ancestors;
|
|
35
29
|
};
|
|
36
30
|
|
|
37
31
|
export class StackedObject<
|
|
@@ -62,44 +56,35 @@ export class StackedObject<
|
|
|
62
56
|
}
|
|
63
57
|
|
|
64
58
|
/**
|
|
65
|
-
*
|
|
66
|
-
* @param {boolean} [strict] returns only ancestors that are objects (without canvas)
|
|
67
59
|
* @returns {Ancestors} ancestors (excluding `ActiveSelection`) from bottom to top
|
|
68
60
|
*/
|
|
69
|
-
getAncestors
|
|
61
|
+
getAncestors(): Ancestors {
|
|
70
62
|
const ancestors: TAncestor[] = [];
|
|
71
63
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
72
64
|
let parent: TAncestor | undefined = this;
|
|
73
65
|
do {
|
|
74
|
-
parent =
|
|
75
|
-
parent instanceof StackedObject
|
|
76
|
-
? parent.parent ?? (!strict ? parent.canvas : undefined)
|
|
77
|
-
: undefined;
|
|
66
|
+
parent = parent instanceof StackedObject ? parent.parent : undefined;
|
|
78
67
|
parent && ancestors.push(parent);
|
|
79
68
|
} while (parent);
|
|
80
|
-
return ancestors as Ancestors
|
|
69
|
+
return ancestors as Ancestors;
|
|
81
70
|
}
|
|
82
71
|
|
|
83
72
|
/**
|
|
84
73
|
* Compare ancestors
|
|
85
74
|
*
|
|
86
75
|
* @param {StackedObject} other
|
|
87
|
-
* @param {boolean} [strict] finds only ancestors that are objects (without canvas)
|
|
88
76
|
* @returns {AncestryComparison} an object that represent the ancestry situation.
|
|
89
77
|
*/
|
|
90
|
-
findCommonAncestors<T extends this
|
|
91
|
-
other: T,
|
|
92
|
-
strict?: S
|
|
93
|
-
): AncestryComparison<S> {
|
|
78
|
+
findCommonAncestors<T extends this>(other: T): AncestryComparison {
|
|
94
79
|
if (this === other) {
|
|
95
80
|
return {
|
|
96
81
|
fork: [],
|
|
97
82
|
otherFork: [],
|
|
98
|
-
common: [this, ...this.getAncestors(
|
|
99
|
-
} as AncestryComparison
|
|
83
|
+
common: [this, ...this.getAncestors()],
|
|
84
|
+
} as AncestryComparison;
|
|
100
85
|
}
|
|
101
|
-
const ancestors = this.getAncestors(
|
|
102
|
-
const otherAncestors = other.getAncestors(
|
|
86
|
+
const ancestors = this.getAncestors();
|
|
87
|
+
const otherAncestors = other.getAncestors();
|
|
103
88
|
// if `this` has no ancestors and `this` is top ancestor of `other` we must handle the following case
|
|
104
89
|
if (
|
|
105
90
|
ancestors.length === 0 &&
|
|
@@ -113,7 +98,7 @@ export class StackedObject<
|
|
|
113
98
|
...otherAncestors.slice(0, otherAncestors.length - 1),
|
|
114
99
|
],
|
|
115
100
|
common: [this],
|
|
116
|
-
} as AncestryComparison
|
|
101
|
+
} as AncestryComparison;
|
|
117
102
|
}
|
|
118
103
|
// compare ancestors
|
|
119
104
|
for (let i = 0, ancestor; i < ancestors.length; i++) {
|
|
@@ -123,7 +108,7 @@ export class StackedObject<
|
|
|
123
108
|
fork: [this, ...ancestors.slice(0, i)],
|
|
124
109
|
otherFork: [],
|
|
125
110
|
common: ancestors.slice(i),
|
|
126
|
-
} as AncestryComparison
|
|
111
|
+
} as AncestryComparison;
|
|
127
112
|
}
|
|
128
113
|
for (let j = 0; j < otherAncestors.length; j++) {
|
|
129
114
|
if (this === otherAncestors[j]) {
|
|
@@ -131,14 +116,14 @@ export class StackedObject<
|
|
|
131
116
|
fork: [],
|
|
132
117
|
otherFork: [other, ...otherAncestors.slice(0, j)],
|
|
133
118
|
common: [this, ...ancestors],
|
|
134
|
-
} as AncestryComparison
|
|
119
|
+
} as AncestryComparison;
|
|
135
120
|
}
|
|
136
121
|
if (ancestor === otherAncestors[j]) {
|
|
137
122
|
return {
|
|
138
123
|
fork: [this, ...ancestors.slice(0, i)],
|
|
139
124
|
otherFork: [other, ...otherAncestors.slice(0, j)],
|
|
140
125
|
common: ancestors.slice(i),
|
|
141
|
-
} as AncestryComparison
|
|
126
|
+
} as AncestryComparison;
|
|
142
127
|
}
|
|
143
128
|
}
|
|
144
129
|
}
|
|
@@ -147,17 +132,16 @@ export class StackedObject<
|
|
|
147
132
|
fork: [this, ...ancestors],
|
|
148
133
|
otherFork: [other, ...otherAncestors],
|
|
149
134
|
common: [],
|
|
150
|
-
} as AncestryComparison
|
|
135
|
+
} as AncestryComparison;
|
|
151
136
|
}
|
|
152
137
|
|
|
153
138
|
/**
|
|
154
139
|
*
|
|
155
140
|
* @param {StackedObject} other
|
|
156
|
-
* @param {boolean} [strict] checks only ancestors that are objects (without canvas)
|
|
157
141
|
* @returns {boolean}
|
|
158
142
|
*/
|
|
159
|
-
hasCommonAncestors<T extends this>(other: T
|
|
160
|
-
const commonAncestors = this.findCommonAncestors(other
|
|
143
|
+
hasCommonAncestors<T extends this>(other: T): boolean {
|
|
144
|
+
const commonAncestors = this.findCommonAncestors(other);
|
|
161
145
|
return commonAncestors && !!commonAncestors.common.length;
|
|
162
146
|
}
|
|
163
147
|
|
|
@@ -171,16 +155,16 @@ export class StackedObject<
|
|
|
171
155
|
return undefined;
|
|
172
156
|
}
|
|
173
157
|
const ancestorData = this.findCommonAncestors(other);
|
|
174
|
-
|
|
175
|
-
return undefined;
|
|
176
|
-
}
|
|
158
|
+
|
|
177
159
|
if (ancestorData.fork.includes(other as any)) {
|
|
178
160
|
return true;
|
|
179
161
|
}
|
|
180
162
|
if (ancestorData.otherFork.includes(this as any)) {
|
|
181
163
|
return false;
|
|
182
164
|
}
|
|
183
|
-
|
|
165
|
+
// if there isn't a common ancestor, we take the canvas.
|
|
166
|
+
// if there is no canvas, there is nothing to compare
|
|
167
|
+
const firstCommonAncestor = ancestorData.common[0] || this.canvas;
|
|
184
168
|
if (!firstCommonAncestor) {
|
|
185
169
|
return undefined;
|
|
186
170
|
}
|
package/src/shapes/Path.ts
CHANGED
|
@@ -240,12 +240,12 @@ export class Path<
|
|
|
240
240
|
* @param {Function} [reviver] Method for further parsing of svg representation.
|
|
241
241
|
* @return {string} svg representation of an instance
|
|
242
242
|
*/
|
|
243
|
-
toClipPathSVG(reviver
|
|
243
|
+
toClipPathSVG(reviver?: TSVGReviver): string {
|
|
244
244
|
const additionalTransform = this._getOffsetTransform();
|
|
245
245
|
return (
|
|
246
246
|
'\t' +
|
|
247
247
|
this._createBaseClipPathSVGMarkup(this._toSVG(), {
|
|
248
|
-
reviver
|
|
248
|
+
reviver,
|
|
249
249
|
additionalTransform: additionalTransform,
|
|
250
250
|
})
|
|
251
251
|
);
|
|
@@ -256,10 +256,10 @@ export class Path<
|
|
|
256
256
|
* @param {Function} [reviver] Method for further parsing of svg representation.
|
|
257
257
|
* @return {string} svg representation of an instance
|
|
258
258
|
*/
|
|
259
|
-
toSVG(reviver
|
|
259
|
+
toSVG(reviver?: TSVGReviver): string {
|
|
260
260
|
const additionalTransform = this._getOffsetTransform();
|
|
261
261
|
return this._createBaseSVGMarkup(this._toSVG(), {
|
|
262
|
-
reviver
|
|
262
|
+
reviver,
|
|
263
263
|
additionalTransform: additionalTransform,
|
|
264
264
|
});
|
|
265
265
|
}
|
|
@@ -29,7 +29,7 @@ export class TextSVGExportMixin extends FabricObjectSVGExportMixin {
|
|
|
29
29
|
return this._wrapSVGTextAndBg(textAndBg);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
toSVG(this: TextSVGExportMixin & FabricText, reviver
|
|
32
|
+
toSVG(this: TextSVGExportMixin & FabricText, reviver?: TSVGReviver): string {
|
|
33
33
|
return this._createBaseSVGMarkup(this._toSVG(), {
|
|
34
34
|
reviver,
|
|
35
35
|
noStyle: true,
|
|
@@ -68,7 +68,12 @@ export type EnlivenObjectOptions = Abortable & {
|
|
|
68
68
|
* called after each fabric object created.
|
|
69
69
|
*/
|
|
70
70
|
reviver?: <
|
|
71
|
-
T extends
|
|
71
|
+
T extends
|
|
72
|
+
| BaseFabricObject
|
|
73
|
+
| FabricObject
|
|
74
|
+
| BaseFilter<string>
|
|
75
|
+
| Shadow
|
|
76
|
+
| TFiller
|
|
72
77
|
>(
|
|
73
78
|
serializedObj: Record<string, any>,
|
|
74
79
|
instance: T
|
|
@@ -85,7 +90,12 @@ export type EnlivenObjectOptions = Abortable & {
|
|
|
85
90
|
* @returns {Promise<FabricObject[]>}
|
|
86
91
|
*/
|
|
87
92
|
export const enlivenObjects = <
|
|
88
|
-
T extends
|
|
93
|
+
T extends
|
|
94
|
+
| BaseFabricObject
|
|
95
|
+
| FabricObject
|
|
96
|
+
| BaseFilter<string>
|
|
97
|
+
| Shadow
|
|
98
|
+
| TFiller
|
|
89
99
|
>(
|
|
90
100
|
objects: any[],
|
|
91
101
|
{ signal, reviver = noop }: EnlivenObjectOptions = {}
|