@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.
Files changed (268) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/dist/index.js +229 -491
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.min.js +1 -1
  5. package/dist/index.min.js.map +1 -1
  6. package/dist/index.min.mjs +1 -1
  7. package/dist/index.min.mjs.map +1 -1
  8. package/dist/index.mjs +229 -491
  9. package/dist/index.mjs.map +1 -1
  10. package/dist/index.node.cjs +229 -491
  11. package/dist/index.node.cjs.map +1 -1
  12. package/dist/index.node.mjs +229 -491
  13. package/dist/index.node.mjs.map +1 -1
  14. package/dist/package.json.min.mjs +1 -1
  15. package/dist/package.json.mjs +1 -1
  16. package/dist/src/canvas/Canvas.d.ts.map +1 -1
  17. package/dist/src/canvas/Canvas.min.mjs +1 -1
  18. package/dist/src/canvas/Canvas.min.mjs.map +1 -1
  19. package/dist/src/canvas/Canvas.mjs +8 -9
  20. package/dist/src/canvas/Canvas.mjs.map +1 -1
  21. package/dist/src/canvas/SelectableCanvas.d.ts +1 -1
  22. package/dist/src/canvas/SelectableCanvas.d.ts.map +1 -1
  23. package/dist/src/canvas/SelectableCanvas.min.mjs +1 -1
  24. package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
  25. package/dist/src/canvas/SelectableCanvas.mjs +1 -1
  26. package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
  27. package/dist/src/canvas/StaticCanvas.d.ts +4 -4
  28. package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
  29. package/dist/src/canvas/StaticCanvas.min.mjs +1 -1
  30. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
  31. package/dist/src/canvas/StaticCanvas.mjs +0 -13
  32. package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
  33. package/dist/src/color/Color.d.ts +1 -0
  34. package/dist/src/color/Color.d.ts.map +1 -1
  35. package/dist/src/color/Color.min.mjs +1 -1
  36. package/dist/src/color/Color.min.mjs.map +1 -1
  37. package/dist/src/color/Color.mjs +3 -1
  38. package/dist/src/color/Color.mjs.map +1 -1
  39. package/dist/src/filters/BaseFilter.d.ts +16 -23
  40. package/dist/src/filters/BaseFilter.d.ts.map +1 -1
  41. package/dist/src/filters/BaseFilter.min.mjs +1 -1
  42. package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
  43. package/dist/src/filters/BaseFilter.mjs +24 -41
  44. package/dist/src/filters/BaseFilter.mjs.map +1 -1
  45. package/dist/src/filters/BlendColor.d.ts +13 -24
  46. package/dist/src/filters/BlendColor.d.ts.map +1 -1
  47. package/dist/src/filters/BlendColor.min.mjs +1 -1
  48. package/dist/src/filters/BlendColor.min.mjs.map +1 -1
  49. package/dist/src/filters/BlendColor.mjs +1 -25
  50. package/dist/src/filters/BlendColor.mjs.map +1 -1
  51. package/dist/src/filters/BlendImage.d.ts +18 -19
  52. package/dist/src/filters/BlendImage.d.ts.map +1 -1
  53. package/dist/src/filters/BlendImage.min.mjs +1 -1
  54. package/dist/src/filters/BlendImage.min.mjs.map +1 -1
  55. package/dist/src/filters/BlendImage.mjs +13 -24
  56. package/dist/src/filters/BlendImage.mjs.map +1 -1
  57. package/dist/src/filters/Blur.d.ts +10 -12
  58. package/dist/src/filters/Blur.d.ts.map +1 -1
  59. package/dist/src/filters/Blur.min.mjs +1 -1
  60. package/dist/src/filters/Blur.min.mjs.map +1 -1
  61. package/dist/src/filters/Blur.mjs +5 -14
  62. package/dist/src/filters/Blur.mjs.map +1 -1
  63. package/dist/src/filters/Boilerplate.d.ts +11 -13
  64. package/dist/src/filters/Boilerplate.d.ts.map +1 -1
  65. package/dist/src/filters/Brightness.d.ts +10 -12
  66. package/dist/src/filters/Brightness.d.ts.map +1 -1
  67. package/dist/src/filters/Brightness.min.mjs +1 -1
  68. package/dist/src/filters/Brightness.min.mjs.map +1 -1
  69. package/dist/src/filters/Brightness.mjs +4 -16
  70. package/dist/src/filters/Brightness.mjs.map +1 -1
  71. package/dist/src/filters/Canvas2dFilterBackend.d.ts +1 -1
  72. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +1 -1
  73. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
  74. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
  75. package/dist/src/filters/ColorMatrix.d.ts +17 -15
  76. package/dist/src/filters/ColorMatrix.d.ts.map +1 -1
  77. package/dist/src/filters/ColorMatrix.min.mjs +1 -1
  78. package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
  79. package/dist/src/filters/ColorMatrix.mjs +7 -27
  80. package/dist/src/filters/ColorMatrix.mjs.map +1 -1
  81. package/dist/src/filters/ColorMatrixFilters.d.ts +63 -497
  82. package/dist/src/filters/ColorMatrixFilters.d.ts.map +1 -1
  83. package/dist/src/filters/ColorMatrixFilters.min.mjs +1 -1
  84. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
  85. package/dist/src/filters/ColorMatrixFilters.mjs +13 -8
  86. package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
  87. package/dist/src/filters/Composed.d.ts +11 -10
  88. package/dist/src/filters/Composed.d.ts.map +1 -1
  89. package/dist/src/filters/Composed.min.mjs +1 -1
  90. package/dist/src/filters/Composed.min.mjs.map +1 -1
  91. package/dist/src/filters/Composed.mjs +7 -12
  92. package/dist/src/filters/Composed.mjs.map +1 -1
  93. package/dist/src/filters/Contrast.d.ts +10 -12
  94. package/dist/src/filters/Contrast.d.ts.map +1 -1
  95. package/dist/src/filters/Contrast.min.mjs +1 -1
  96. package/dist/src/filters/Contrast.min.mjs.map +1 -1
  97. package/dist/src/filters/Contrast.mjs +6 -17
  98. package/dist/src/filters/Contrast.mjs.map +1 -1
  99. package/dist/src/filters/Convolute.d.ts +11 -14
  100. package/dist/src/filters/Convolute.d.ts.map +1 -1
  101. package/dist/src/filters/Convolute.min.mjs +1 -1
  102. package/dist/src/filters/Convolute.min.mjs.map +1 -1
  103. package/dist/src/filters/Convolute.mjs +1 -15
  104. package/dist/src/filters/Convolute.mjs.map +1 -1
  105. package/dist/src/filters/Gamma.d.ts +17 -14
  106. package/dist/src/filters/Gamma.d.ts.map +1 -1
  107. package/dist/src/filters/Gamma.min.mjs +1 -1
  108. package/dist/src/filters/Gamma.min.mjs.map +1 -1
  109. package/dist/src/filters/Gamma.mjs +20 -24
  110. package/dist/src/filters/Gamma.mjs.map +1 -1
  111. package/dist/src/filters/Grayscale.d.ts +8 -11
  112. package/dist/src/filters/Grayscale.d.ts.map +1 -1
  113. package/dist/src/filters/Grayscale.min.mjs +1 -1
  114. package/dist/src/filters/Grayscale.min.mjs.map +1 -1
  115. package/dist/src/filters/Grayscale.mjs +2 -14
  116. package/dist/src/filters/Grayscale.mjs.map +1 -1
  117. package/dist/src/filters/HueRotation.d.ts +11 -5
  118. package/dist/src/filters/HueRotation.d.ts.map +1 -1
  119. package/dist/src/filters/HueRotation.min.mjs +1 -1
  120. package/dist/src/filters/HueRotation.min.mjs.map +1 -1
  121. package/dist/src/filters/HueRotation.mjs +10 -5
  122. package/dist/src/filters/HueRotation.mjs.map +1 -1
  123. package/dist/src/filters/Invert.d.ts +10 -13
  124. package/dist/src/filters/Invert.d.ts.map +1 -1
  125. package/dist/src/filters/Invert.min.mjs +1 -1
  126. package/dist/src/filters/Invert.min.mjs.map +1 -1
  127. package/dist/src/filters/Invert.mjs +2 -15
  128. package/dist/src/filters/Invert.mjs.map +1 -1
  129. package/dist/src/filters/Noise.d.ts +9 -20
  130. package/dist/src/filters/Noise.d.ts.map +1 -1
  131. package/dist/src/filters/Noise.min.mjs +1 -1
  132. package/dist/src/filters/Noise.min.mjs.map +1 -1
  133. package/dist/src/filters/Noise.mjs +4 -27
  134. package/dist/src/filters/Noise.mjs.map +1 -1
  135. package/dist/src/filters/Pixelate.d.ts +8 -12
  136. package/dist/src/filters/Pixelate.d.ts.map +1 -1
  137. package/dist/src/filters/Pixelate.min.mjs +1 -1
  138. package/dist/src/filters/Pixelate.min.mjs.map +1 -1
  139. package/dist/src/filters/Pixelate.mjs +2 -16
  140. package/dist/src/filters/Pixelate.mjs.map +1 -1
  141. package/dist/src/filters/RemoveColor.d.ts +12 -23
  142. package/dist/src/filters/RemoveColor.d.ts.map +1 -1
  143. package/dist/src/filters/RemoveColor.min.mjs +1 -1
  144. package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
  145. package/dist/src/filters/RemoveColor.mjs +2 -25
  146. package/dist/src/filters/RemoveColor.mjs.map +1 -1
  147. package/dist/src/filters/Resize.d.ts +14 -30
  148. package/dist/src/filters/Resize.d.ts.map +1 -1
  149. package/dist/src/filters/Resize.min.mjs +1 -1
  150. package/dist/src/filters/Resize.min.mjs.map +1 -1
  151. package/dist/src/filters/Resize.mjs +3 -30
  152. package/dist/src/filters/Resize.mjs.map +1 -1
  153. package/dist/src/filters/Saturation.d.ts +9 -12
  154. package/dist/src/filters/Saturation.d.ts.map +1 -1
  155. package/dist/src/filters/Saturation.min.mjs +1 -1
  156. package/dist/src/filters/Saturation.min.mjs.map +1 -1
  157. package/dist/src/filters/Saturation.mjs +8 -20
  158. package/dist/src/filters/Saturation.mjs.map +1 -1
  159. package/dist/src/filters/Vibrance.d.ts +10 -13
  160. package/dist/src/filters/Vibrance.d.ts.map +1 -1
  161. package/dist/src/filters/Vibrance.min.mjs +1 -1
  162. package/dist/src/filters/Vibrance.min.mjs.map +1 -1
  163. package/dist/src/filters/Vibrance.mjs +6 -18
  164. package/dist/src/filters/Vibrance.mjs.map +1 -1
  165. package/dist/src/filters/WebGLFilterBackend.d.ts +1 -1
  166. package/dist/src/filters/WebGLFilterBackend.d.ts.map +1 -1
  167. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
  168. package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
  169. package/dist/src/filters/shaders/blendImage.d.ts +1 -0
  170. package/dist/src/filters/shaders/blendImage.d.ts.map +1 -1
  171. package/dist/src/filters/shaders/blendImage.min.mjs +1 -1
  172. package/dist/src/filters/shaders/blendImage.min.mjs.map +1 -1
  173. package/dist/src/filters/shaders/blendImage.mjs +2 -1
  174. package/dist/src/filters/shaders/blendImage.mjs.map +1 -1
  175. package/dist/src/filters/typedefs.d.ts +22 -0
  176. package/dist/src/filters/typedefs.d.ts.map +1 -1
  177. package/dist/src/parser/elements_parser.d.ts +1 -1
  178. package/dist/src/parser/elements_parser.d.ts.map +1 -1
  179. package/dist/src/parser/elements_parser.min.mjs.map +1 -1
  180. package/dist/src/parser/elements_parser.mjs.map +1 -1
  181. package/dist/src/shapes/ActiveSelection.d.ts +1 -1
  182. package/dist/src/shapes/ActiveSelection.d.ts.map +1 -1
  183. package/dist/src/shapes/ActiveSelection.min.mjs +1 -1
  184. package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
  185. package/dist/src/shapes/ActiveSelection.mjs +13 -10
  186. package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
  187. package/dist/src/shapes/Group.d.ts +9 -0
  188. package/dist/src/shapes/Group.d.ts.map +1 -1
  189. package/dist/src/shapes/Group.min.mjs +1 -1
  190. package/dist/src/shapes/Group.min.mjs.map +1 -1
  191. package/dist/src/shapes/Group.mjs +10 -1
  192. package/dist/src/shapes/Group.mjs.map +1 -1
  193. package/dist/src/shapes/Image.d.ts +4 -4
  194. package/dist/src/shapes/Image.d.ts.map +1 -1
  195. package/dist/src/shapes/Image.min.mjs.map +1 -1
  196. package/dist/src/shapes/Image.mjs.map +1 -1
  197. package/dist/src/shapes/Object/InteractiveObject.d.ts +3 -0
  198. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
  199. package/dist/src/shapes/Object/InteractiveObject.min.mjs +1 -1
  200. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
  201. package/dist/src/shapes/Object/InteractiveObject.mjs +3 -1
  202. package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
  203. package/dist/src/shapes/Object/Object.d.ts +1 -16
  204. package/dist/src/shapes/Object/Object.d.ts.map +1 -1
  205. package/dist/src/shapes/Object/Object.min.mjs +1 -1
  206. package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
  207. package/dist/src/shapes/Object/Object.mjs +9 -10
  208. package/dist/src/shapes/Object/Object.mjs.map +1 -1
  209. package/dist/src/shapes/Object/StackedObject.d.ts +8 -15
  210. package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
  211. package/dist/src/shapes/Object/StackedObject.min.mjs +1 -1
  212. package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
  213. package/dist/src/shapes/Object/StackedObject.mjs +11 -21
  214. package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
  215. package/dist/src/shapes/Path.d.ts +2 -2
  216. package/dist/src/shapes/Path.d.ts.map +1 -1
  217. package/dist/src/shapes/Path.min.mjs.map +1 -1
  218. package/dist/src/shapes/Path.mjs +2 -2
  219. package/dist/src/shapes/Path.mjs.map +1 -1
  220. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +1 -1
  221. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -1
  222. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
  223. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
  224. package/dist/src/util/misc/objectEnlive.d.ts +2 -2
  225. package/dist/src/util/misc/objectEnlive.d.ts.map +1 -1
  226. package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
  227. package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
  228. package/package.json +2 -2
  229. package/src/canvas/Canvas.ts +6 -9
  230. package/src/canvas/SelectableCanvas.ts +2 -2
  231. package/src/canvas/StaticCanvas.ts +4 -18
  232. package/src/color/Color.ts +2 -1
  233. package/src/color/color.test.ts +6 -0
  234. package/src/filters/BaseFilter.ts +45 -51
  235. package/src/filters/BlendColor.ts +13 -35
  236. package/src/filters/BlendImage.ts +26 -40
  237. package/src/filters/Blur.ts +13 -20
  238. package/src/filters/Boilerplate.ts +13 -22
  239. package/src/filters/Brightness.ts +12 -21
  240. package/src/filters/Canvas2dFilterBackend.ts +1 -1
  241. package/src/filters/ColorMatrix.ts +29 -34
  242. package/src/filters/ColorMatrixFilters.ts +15 -9
  243. package/src/filters/Composed.ts +26 -16
  244. package/src/filters/Contrast.ts +15 -23
  245. package/src/filters/Convolute.ts +11 -23
  246. package/src/filters/Gamma.ts +32 -24
  247. package/src/filters/Grayscale.ts +8 -19
  248. package/src/filters/HueRotation.ts +21 -11
  249. package/src/filters/Invert.ts +11 -22
  250. package/src/filters/Noise.ts +11 -30
  251. package/src/filters/Pixelate.ts +9 -22
  252. package/src/filters/RemoveColor.ts +21 -35
  253. package/src/filters/Resize.ts +20 -44
  254. package/src/filters/Saturation.ts +16 -27
  255. package/src/filters/Vibrance.ts +14 -24
  256. package/src/filters/WebGLFilterBackend.ts +1 -1
  257. package/src/filters/shaders/blendImage.ts +12 -0
  258. package/src/filters/typedefs.ts +23 -0
  259. package/src/parser/elements_parser.ts +1 -1
  260. package/src/shapes/ActiveSelection.ts +8 -4
  261. package/src/shapes/Group.ts +16 -1
  262. package/src/shapes/Image.ts +8 -6
  263. package/src/shapes/Object/InteractiveObject.ts +3 -1
  264. package/src/shapes/Object/Object.ts +10 -35
  265. package/src/shapes/Object/StackedObject.ts +28 -44
  266. package/src/shapes/Path.ts +4 -4
  267. package/src/shapes/Text/TextSVGExportMixin.ts +1 -1
  268. 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
- * Strict: only ancestors that are objects (without canvas)
12
- */
13
- export type Ancestors<Strict> = Strict extends true
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<Strict> = {
16
+ export type AncestryComparison = {
23
17
  /**
24
18
  * common ancestors of `this` and`other`(may include`this` | `other`)
25
19
  */
26
- common: Ancestors<Strict>;
20
+ common: Ancestors;
27
21
  /**
28
22
  * ancestors that are of `this` only
29
23
  */
30
- fork: Ancestors<Strict>;
24
+ fork: Ancestors;
31
25
  /**
32
26
  * ancestors that are of `other` only
33
27
  */
34
- otherFork: Ancestors<Strict>;
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<T extends boolean>(strict?: T): Ancestors<T> {
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<T>;
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, S extends boolean>(
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(strict)],
99
- } as AncestryComparison<S>;
83
+ common: [this, ...this.getAncestors()],
84
+ } as AncestryComparison;
100
85
  }
101
- const ancestors = this.getAncestors(strict);
102
- const otherAncestors = other.getAncestors(strict);
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<S>;
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<S>;
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<S>;
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<S>;
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<S>;
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, strict?: boolean): boolean {
160
- const commonAncestors = this.findCommonAncestors(other, strict);
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
- if (!ancestorData) {
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
- const firstCommonAncestor = ancestorData.common[0];
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
  }
@@ -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: TSVGReviver): string {
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: 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: TSVGReviver): string {
259
+ toSVG(reviver?: TSVGReviver): string {
260
260
  const additionalTransform = this._getOffsetTransform();
261
261
  return this._createBaseSVGMarkup(this._toSVG(), {
262
- reviver: 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: TSVGReviver): string {
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 BaseFabricObject | FabricObject | BaseFilter | Shadow | TFiller
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 BaseFabricObject | FabricObject | BaseFilter | Shadow | TFiller
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 = {}