fabric 6.2.0 → 6.3.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 (1161) hide show
  1. package/.prettierignore +1 -0
  2. package/CHANGELOG.md +12 -4
  3. package/README.md +1 -1
  4. package/dist/extensions/aligning_guidelines/constant.d.ts +3 -0
  5. package/dist/extensions/aligning_guidelines/constant.d.ts.map +1 -0
  6. package/dist/extensions/aligning_guidelines/index.d.ts +5 -0
  7. package/dist/extensions/aligning_guidelines/index.d.ts.map +1 -0
  8. package/dist/extensions/aligning_guidelines/typedefs.d.ts +33 -0
  9. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
  10. package/dist/extensions/aligning_guidelines/util/basic.d.ts +4 -0
  11. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
  12. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
  13. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
  14. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
  15. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
  16. package/dist/extensions/aligning_guidelines/util/draw.d.ts +6 -0
  17. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
  18. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
  19. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
  20. package/dist/extensions/index.d.ts +2 -0
  21. package/dist/extensions/index.d.ts.map +1 -0
  22. package/dist/index.js +140 -108
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.min.js +1 -1
  25. package/dist/index.min.js.map +1 -1
  26. package/dist/index.min.mjs +1 -1
  27. package/dist/index.min.mjs.map +1 -1
  28. package/dist/index.mjs +140 -108
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/index.node.cjs +140 -108
  31. package/dist/index.node.cjs.map +1 -1
  32. package/dist/index.node.mjs +140 -108
  33. package/dist/index.node.mjs.map +1 -1
  34. package/dist/package.json.min.mjs +1 -1
  35. package/dist/package.json.mjs +1 -1
  36. package/dist/src/ClassRegistry.min.mjs.map +1 -1
  37. package/dist/src/ClassRegistry.mjs.map +1 -1
  38. package/dist/src/Collection.min.mjs.map +1 -1
  39. package/dist/src/Collection.mjs.map +1 -1
  40. package/dist/src/Intersection.min.mjs.map +1 -1
  41. package/dist/src/Intersection.mjs.map +1 -1
  42. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +1 -1
  43. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +1 -1
  44. package/dist/src/LayoutManager/LayoutManager.d.ts +1 -1
  45. package/dist/src/LayoutManager/LayoutManager.d.ts.map +1 -1
  46. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +1 -1
  47. package/dist/src/LayoutManager/LayoutManager.mjs +1 -1
  48. package/dist/src/LayoutManager/LayoutManager.mjs.map +1 -1
  49. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +1 -1
  50. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +1 -1
  51. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +1 -1
  52. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +1 -1
  53. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +1 -1
  54. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +1 -1
  55. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +1 -1
  56. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +1 -1
  57. package/dist/src/LayoutManager/types.d.ts.map +1 -1
  58. package/dist/src/Observable.min.mjs.map +1 -1
  59. package/dist/src/Observable.mjs.map +1 -1
  60. package/dist/src/Pattern/Pattern.d.ts +2 -2
  61. package/dist/src/Pattern/Pattern.d.ts.map +1 -1
  62. package/dist/src/Pattern/Pattern.min.mjs +1 -1
  63. package/dist/src/Pattern/Pattern.min.mjs.map +1 -1
  64. package/dist/src/Pattern/Pattern.mjs +14 -12
  65. package/dist/src/Pattern/Pattern.mjs.map +1 -1
  66. package/dist/src/Point.min.mjs.map +1 -1
  67. package/dist/src/Point.mjs.map +1 -1
  68. package/dist/src/Shadow.min.mjs.map +1 -1
  69. package/dist/src/Shadow.mjs.map +1 -1
  70. package/dist/src/brushes/CircleBrush.min.mjs.map +1 -1
  71. package/dist/src/brushes/CircleBrush.mjs.map +1 -1
  72. package/dist/src/brushes/PatternBrush.min.mjs.map +1 -1
  73. package/dist/src/brushes/PatternBrush.mjs.map +1 -1
  74. package/dist/src/brushes/PencilBrush.min.mjs.map +1 -1
  75. package/dist/src/brushes/PencilBrush.mjs.map +1 -1
  76. package/dist/src/brushes/SprayBrush.min.mjs.map +1 -1
  77. package/dist/src/brushes/SprayBrush.mjs.map +1 -1
  78. package/dist/src/canvas/Canvas.d.ts +1 -1
  79. package/dist/src/canvas/Canvas.d.ts.map +1 -1
  80. package/dist/src/canvas/Canvas.min.mjs.map +1 -1
  81. package/dist/src/canvas/Canvas.mjs +2 -1
  82. package/dist/src/canvas/Canvas.mjs.map +1 -1
  83. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +1 -1
  84. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +1 -1
  85. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +1 -1
  86. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +1 -1
  87. package/dist/src/canvas/DOMManagers/util.min.mjs.map +1 -1
  88. package/dist/src/canvas/DOMManagers/util.mjs.map +1 -1
  89. package/dist/src/canvas/SelectableCanvas.min.mjs.map +1 -1
  90. package/dist/src/canvas/SelectableCanvas.mjs.map +1 -1
  91. package/dist/src/canvas/StaticCanvas.d.ts +1 -1
  92. package/dist/src/canvas/StaticCanvas.d.ts.map +1 -1
  93. package/dist/src/canvas/StaticCanvas.min.mjs.map +1 -1
  94. package/dist/src/canvas/StaticCanvas.mjs +1 -1
  95. package/dist/src/canvas/StaticCanvas.mjs.map +1 -1
  96. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +1 -1
  97. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +1 -1
  98. package/dist/src/canvas/StaticCanvasOptions.mjs.map +1 -1
  99. package/dist/src/canvas/TextEditingManager.min.mjs.map +1 -1
  100. package/dist/src/canvas/TextEditingManager.mjs.map +1 -1
  101. package/dist/src/color/Color.d.ts.map +1 -1
  102. package/dist/src/color/Color.min.mjs.map +1 -1
  103. package/dist/src/color/Color.mjs +1 -0
  104. package/dist/src/color/Color.mjs.map +1 -1
  105. package/dist/src/color/util.min.mjs.map +1 -1
  106. package/dist/src/color/util.mjs.map +1 -1
  107. package/dist/src/config.min.mjs.map +1 -1
  108. package/dist/src/config.mjs.map +1 -1
  109. package/dist/src/controls/Control.min.mjs.map +1 -1
  110. package/dist/src/controls/Control.mjs.map +1 -1
  111. package/dist/src/controls/changeWidth.min.mjs.map +1 -1
  112. package/dist/src/controls/changeWidth.mjs.map +1 -1
  113. package/dist/src/controls/controlRendering.min.mjs.map +1 -1
  114. package/dist/src/controls/controlRendering.mjs.map +1 -1
  115. package/dist/src/controls/drag.min.mjs.map +1 -1
  116. package/dist/src/controls/drag.mjs.map +1 -1
  117. package/dist/src/controls/fireEvent.min.mjs.map +1 -1
  118. package/dist/src/controls/fireEvent.mjs.map +1 -1
  119. package/dist/src/controls/pathControl.min.mjs.map +1 -1
  120. package/dist/src/controls/pathControl.mjs.map +1 -1
  121. package/dist/src/controls/polyControl.min.mjs.map +1 -1
  122. package/dist/src/controls/polyControl.mjs.map +1 -1
  123. package/dist/src/controls/rotate.min.mjs.map +1 -1
  124. package/dist/src/controls/rotate.mjs.map +1 -1
  125. package/dist/src/controls/scale.min.mjs.map +1 -1
  126. package/dist/src/controls/scale.mjs.map +1 -1
  127. package/dist/src/controls/scaleSkew.min.mjs.map +1 -1
  128. package/dist/src/controls/scaleSkew.mjs.map +1 -1
  129. package/dist/src/controls/skew.min.mjs.map +1 -1
  130. package/dist/src/controls/skew.mjs.map +1 -1
  131. package/dist/src/controls/util.min.mjs.map +1 -1
  132. package/dist/src/controls/util.mjs.map +1 -1
  133. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +1 -1
  134. package/dist/src/controls/wrapWithFireEvent.mjs.map +1 -1
  135. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +1 -1
  136. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +1 -1
  137. package/dist/src/filters/BaseFilter.d.ts +5 -5
  138. package/dist/src/filters/BaseFilter.d.ts.map +1 -1
  139. package/dist/src/filters/BaseFilter.min.mjs.map +1 -1
  140. package/dist/src/filters/BaseFilter.mjs +5 -5
  141. package/dist/src/filters/BaseFilter.mjs.map +1 -1
  142. package/dist/src/filters/BlendColor.min.mjs.map +1 -1
  143. package/dist/src/filters/BlendColor.mjs.map +1 -1
  144. package/dist/src/filters/BlendImage.min.mjs.map +1 -1
  145. package/dist/src/filters/BlendImage.mjs.map +1 -1
  146. package/dist/src/filters/Blur.min.mjs.map +1 -1
  147. package/dist/src/filters/Blur.mjs.map +1 -1
  148. package/dist/src/filters/Brightness.min.mjs.map +1 -1
  149. package/dist/src/filters/Brightness.mjs.map +1 -1
  150. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +1 -1
  151. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +1 -1
  152. package/dist/src/filters/ColorMatrix.min.mjs.map +1 -1
  153. package/dist/src/filters/ColorMatrix.mjs.map +1 -1
  154. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +1 -1
  155. package/dist/src/filters/ColorMatrixFilters.mjs.map +1 -1
  156. package/dist/src/filters/Composed.min.mjs.map +1 -1
  157. package/dist/src/filters/Composed.mjs.map +1 -1
  158. package/dist/src/filters/Contrast.min.mjs.map +1 -1
  159. package/dist/src/filters/Contrast.mjs.map +1 -1
  160. package/dist/src/filters/Convolute.min.mjs.map +1 -1
  161. package/dist/src/filters/Convolute.mjs.map +1 -1
  162. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +1 -1
  163. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +1 -1
  164. package/dist/src/filters/Gamma.min.mjs.map +1 -1
  165. package/dist/src/filters/Gamma.mjs.map +1 -1
  166. package/dist/src/filters/Grayscale.min.mjs.map +1 -1
  167. package/dist/src/filters/Grayscale.mjs.map +1 -1
  168. package/dist/src/filters/Invert.min.mjs.map +1 -1
  169. package/dist/src/filters/Invert.mjs.map +1 -1
  170. package/dist/src/filters/Noise.min.mjs.map +1 -1
  171. package/dist/src/filters/Noise.mjs.map +1 -1
  172. package/dist/src/filters/Pixelate.min.mjs.map +1 -1
  173. package/dist/src/filters/Pixelate.mjs.map +1 -1
  174. package/dist/src/filters/RemoveColor.min.mjs.map +1 -1
  175. package/dist/src/filters/RemoveColor.mjs.map +1 -1
  176. package/dist/src/filters/Resize.min.mjs.map +1 -1
  177. package/dist/src/filters/Resize.mjs.map +1 -1
  178. package/dist/src/filters/Saturation.min.mjs.map +1 -1
  179. package/dist/src/filters/Saturation.mjs.map +1 -1
  180. package/dist/src/filters/Vibrance.min.mjs.map +1 -1
  181. package/dist/src/filters/Vibrance.mjs.map +1 -1
  182. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +1 -1
  183. package/dist/src/filters/WebGLFilterBackend.mjs.map +1 -1
  184. package/dist/src/filters/typedefs.d.ts +0 -1
  185. package/dist/src/filters/typedefs.d.ts.map +1 -1
  186. package/dist/src/filters/utils.min.mjs.map +1 -1
  187. package/dist/src/filters/utils.mjs.map +1 -1
  188. package/dist/src/gradient/Gradient.d.ts +7 -3
  189. package/dist/src/gradient/Gradient.d.ts.map +1 -1
  190. package/dist/src/gradient/Gradient.min.mjs +1 -1
  191. package/dist/src/gradient/Gradient.min.mjs.map +1 -1
  192. package/dist/src/gradient/Gradient.mjs +36 -24
  193. package/dist/src/gradient/Gradient.mjs.map +1 -1
  194. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +1 -1
  195. package/dist/src/gradient/parser/parseColorStops.mjs.map +1 -1
  196. package/dist/src/gradient/parser/parseCoords.d.ts.map +1 -1
  197. package/dist/src/gradient/parser/parseCoords.min.mjs.map +1 -1
  198. package/dist/src/gradient/parser/parseCoords.mjs.map +1 -1
  199. package/dist/src/parser/applyViewboxTransform.min.mjs.map +1 -1
  200. package/dist/src/parser/applyViewboxTransform.mjs.map +1 -1
  201. package/dist/src/parser/constants.min.mjs.map +1 -1
  202. package/dist/src/parser/constants.mjs.map +1 -1
  203. package/dist/src/parser/elements_parser.min.mjs.map +1 -1
  204. package/dist/src/parser/elements_parser.mjs.map +1 -1
  205. package/dist/src/parser/getCSSRules.min.mjs.map +1 -1
  206. package/dist/src/parser/getCSSRules.mjs.map +1 -1
  207. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +1 -1
  208. package/dist/src/parser/getGlobalStylesForElement.mjs.map +1 -1
  209. package/dist/src/parser/getGradientDefs.min.mjs.map +1 -1
  210. package/dist/src/parser/getGradientDefs.mjs.map +1 -1
  211. package/dist/src/parser/getMultipleNodes.min.mjs.map +1 -1
  212. package/dist/src/parser/getMultipleNodes.mjs.map +1 -1
  213. package/dist/src/parser/loadSVGFromString.min.mjs.map +1 -1
  214. package/dist/src/parser/loadSVGFromString.mjs.map +1 -1
  215. package/dist/src/parser/loadSVGFromURL.min.mjs.map +1 -1
  216. package/dist/src/parser/loadSVGFromURL.mjs.map +1 -1
  217. package/dist/src/parser/normalizeAttr.min.mjs.map +1 -1
  218. package/dist/src/parser/normalizeAttr.mjs.map +1 -1
  219. package/dist/src/parser/normalizeValue.min.mjs.map +1 -1
  220. package/dist/src/parser/normalizeValue.mjs.map +1 -1
  221. package/dist/src/parser/parseAttributes.min.mjs.map +1 -1
  222. package/dist/src/parser/parseAttributes.mjs.map +1 -1
  223. package/dist/src/parser/parseFontDeclaration.min.mjs.map +1 -1
  224. package/dist/src/parser/parseFontDeclaration.mjs.map +1 -1
  225. package/dist/src/parser/parseSVGDocument.min.mjs.map +1 -1
  226. package/dist/src/parser/parseSVGDocument.mjs.map +1 -1
  227. package/dist/src/parser/parseStyleObject.min.mjs.map +1 -1
  228. package/dist/src/parser/parseStyleObject.mjs.map +1 -1
  229. package/dist/src/parser/parseStyleString.min.mjs.map +1 -1
  230. package/dist/src/parser/parseStyleString.mjs.map +1 -1
  231. package/dist/src/parser/parseTransformAttribute.min.mjs.map +1 -1
  232. package/dist/src/parser/parseTransformAttribute.mjs.map +1 -1
  233. package/dist/src/parser/parseUseDirectives.min.mjs.map +1 -1
  234. package/dist/src/parser/parseUseDirectives.mjs.map +1 -1
  235. package/dist/src/parser/percent.min.mjs.map +1 -1
  236. package/dist/src/parser/percent.mjs.map +1 -1
  237. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +1 -1
  238. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +1 -1
  239. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +1 -1
  240. package/dist/src/parser/setStrokeFillOpacity.mjs.map +1 -1
  241. package/dist/src/shapes/ActiveSelection.min.mjs.map +1 -1
  242. package/dist/src/shapes/ActiveSelection.mjs.map +1 -1
  243. package/dist/src/shapes/Circle.min.mjs.map +1 -1
  244. package/dist/src/shapes/Circle.mjs.map +1 -1
  245. package/dist/src/shapes/Ellipse.min.mjs.map +1 -1
  246. package/dist/src/shapes/Ellipse.mjs.map +1 -1
  247. package/dist/src/shapes/Group.d.ts +2 -2
  248. package/dist/src/shapes/Group.d.ts.map +1 -1
  249. package/dist/src/shapes/Group.min.mjs.map +1 -1
  250. package/dist/src/shapes/Group.mjs.map +1 -1
  251. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -1
  252. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +1 -1
  253. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +1 -1
  254. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +2 -2
  255. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +1 -1
  256. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  257. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  258. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  259. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  260. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  261. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  262. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  263. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  264. package/dist/src/shapes/Image.min.mjs.map +1 -1
  265. package/dist/src/shapes/Image.mjs.map +1 -1
  266. package/dist/src/shapes/Line.min.mjs.map +1 -1
  267. package/dist/src/shapes/Line.mjs.map +1 -1
  268. package/dist/src/shapes/Object/AnimatableObject.d.ts.map +1 -1
  269. package/dist/src/shapes/Object/AnimatableObject.min.mjs.map +1 -1
  270. package/dist/src/shapes/Object/AnimatableObject.mjs.map +1 -1
  271. package/dist/src/shapes/Object/FabricObject.d.ts.map +1 -1
  272. package/dist/src/shapes/Object/FabricObject.min.mjs.map +1 -1
  273. package/dist/src/shapes/Object/FabricObject.mjs +2 -1
  274. package/dist/src/shapes/Object/FabricObject.mjs.map +1 -1
  275. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +1 -1
  276. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -1
  277. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +1 -1
  278. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +1 -1
  279. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +1 -1
  280. package/dist/src/shapes/Object/InteractiveObject.d.ts +13 -13
  281. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +1 -1
  282. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +1 -1
  283. package/dist/src/shapes/Object/InteractiveObject.mjs +13 -13
  284. package/dist/src/shapes/Object/InteractiveObject.mjs.map +1 -1
  285. package/dist/src/shapes/Object/Object.d.ts +4 -4
  286. package/dist/src/shapes/Object/Object.d.ts.map +1 -1
  287. package/dist/src/shapes/Object/Object.min.mjs +1 -1
  288. package/dist/src/shapes/Object/Object.min.mjs.map +1 -1
  289. package/dist/src/shapes/Object/Object.mjs +10 -14
  290. package/dist/src/shapes/Object/Object.mjs.map +1 -1
  291. package/dist/src/shapes/Object/ObjectGeometry.d.ts +1 -1
  292. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +1 -1
  293. package/dist/src/shapes/Object/ObjectGeometry.mjs +1 -1
  294. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +1 -1
  295. package/dist/src/shapes/Object/ObjectOrigin.min.mjs.map +1 -1
  296. package/dist/src/shapes/Object/ObjectOrigin.mjs.map +1 -1
  297. package/dist/src/shapes/Object/StackedObject.d.ts.map +1 -1
  298. package/dist/src/shapes/Object/StackedObject.min.mjs.map +1 -1
  299. package/dist/src/shapes/Object/StackedObject.mjs.map +1 -1
  300. package/dist/src/shapes/Path.min.mjs.map +1 -1
  301. package/dist/src/shapes/Path.mjs.map +1 -1
  302. package/dist/src/shapes/Polyline.d.ts.map +1 -1
  303. package/dist/src/shapes/Polyline.min.mjs +1 -1
  304. package/dist/src/shapes/Polyline.min.mjs.map +1 -1
  305. package/dist/src/shapes/Polyline.mjs +10 -2
  306. package/dist/src/shapes/Polyline.mjs.map +1 -1
  307. package/dist/src/shapes/Rect.min.mjs.map +1 -1
  308. package/dist/src/shapes/Rect.mjs.map +1 -1
  309. package/dist/src/shapes/Text/StyledText.min.mjs.map +1 -1
  310. package/dist/src/shapes/Text/StyledText.mjs.map +1 -1
  311. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  312. package/dist/src/shapes/Text/Text.mjs +1 -1
  313. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  314. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +1 -1
  315. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +1 -1
  316. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  317. package/dist/src/shapes/Textbox.mjs.map +1 -1
  318. package/dist/src/shapes/Triangle.min.mjs.map +1 -1
  319. package/dist/src/shapes/Triangle.mjs.map +1 -1
  320. package/dist/src/util/animation/AnimationBase.min.mjs.map +1 -1
  321. package/dist/src/util/animation/AnimationBase.mjs.map +1 -1
  322. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +1 -1
  323. package/dist/src/util/animation/AnimationRegistry.mjs.map +1 -1
  324. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +1 -1
  325. package/dist/src/util/animation/ArrayAnimation.mjs.map +1 -1
  326. package/dist/src/util/animation/ColorAnimation.min.mjs.map +1 -1
  327. package/dist/src/util/animation/ColorAnimation.mjs.map +1 -1
  328. package/dist/src/util/animation/ValueAnimation.min.mjs.map +1 -1
  329. package/dist/src/util/animation/ValueAnimation.mjs.map +1 -1
  330. package/dist/src/util/animation/animate.d.ts.map +1 -1
  331. package/dist/src/util/animation/animate.min.mjs.map +1 -1
  332. package/dist/src/util/animation/animate.mjs.map +1 -1
  333. package/dist/src/util/animation/easing.min.mjs.map +1 -1
  334. package/dist/src/util/animation/easing.mjs.map +1 -1
  335. package/dist/src/util/animation/types.d.ts.map +1 -1
  336. package/dist/src/util/applyMixins.min.mjs.map +1 -1
  337. package/dist/src/util/applyMixins.mjs.map +1 -1
  338. package/dist/src/util/dom_style.min.mjs.map +1 -1
  339. package/dist/src/util/dom_style.mjs.map +1 -1
  340. package/dist/src/util/internals/cloneDeep.d.ts +6 -0
  341. package/dist/src/util/internals/cloneDeep.d.ts.map +1 -1
  342. package/dist/src/util/internals/cloneStyles.d.ts +3 -0
  343. package/dist/src/util/internals/cloneStyles.d.ts.map +1 -0
  344. package/dist/src/util/internals/cloneStyles.min.mjs +2 -0
  345. package/dist/src/util/internals/cloneStyles.min.mjs.map +1 -0
  346. package/dist/src/util/internals/cloneStyles.mjs +15 -0
  347. package/dist/src/util/internals/cloneStyles.mjs.map +1 -0
  348. package/dist/src/util/internals/findRight.min.mjs.map +1 -1
  349. package/dist/src/util/internals/findRight.mjs.map +1 -1
  350. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +1 -1
  351. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +1 -1
  352. package/dist/src/util/misc/dom.min.mjs.map +1 -1
  353. package/dist/src/util/misc/dom.mjs.map +1 -1
  354. package/dist/src/util/misc/findScaleTo.min.mjs.map +1 -1
  355. package/dist/src/util/misc/findScaleTo.mjs.map +1 -1
  356. package/dist/src/util/misc/groupSVGElements.min.mjs.map +1 -1
  357. package/dist/src/util/misc/groupSVGElements.mjs.map +1 -1
  358. package/dist/src/util/misc/isTransparent.min.mjs.map +1 -1
  359. package/dist/src/util/misc/isTransparent.mjs.map +1 -1
  360. package/dist/src/util/misc/matrix.min.mjs.map +1 -1
  361. package/dist/src/util/misc/matrix.mjs.map +1 -1
  362. package/dist/src/util/misc/objectEnlive.min.mjs.map +1 -1
  363. package/dist/src/util/misc/objectEnlive.mjs.map +1 -1
  364. package/dist/src/util/misc/objectTransforms.min.mjs.map +1 -1
  365. package/dist/src/util/misc/objectTransforms.mjs.map +1 -1
  366. package/dist/src/util/misc/pick.min.mjs.map +1 -1
  367. package/dist/src/util/misc/pick.mjs.map +1 -1
  368. package/dist/src/util/misc/planeChange.min.mjs.map +1 -1
  369. package/dist/src/util/misc/planeChange.mjs.map +1 -1
  370. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +1 -1
  371. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +1 -1
  372. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +1 -1
  373. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +1 -1
  374. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +1 -1
  375. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +1 -1
  376. package/dist/src/util/misc/projectStroke/index.min.mjs.map +1 -1
  377. package/dist/src/util/misc/projectStroke/index.mjs.map +1 -1
  378. package/dist/src/util/misc/resolveOrigin.min.mjs.map +1 -1
  379. package/dist/src/util/misc/resolveOrigin.mjs.map +1 -1
  380. package/dist/src/util/misc/rotatePoint.min.mjs.map +1 -1
  381. package/dist/src/util/misc/rotatePoint.mjs.map +1 -1
  382. package/dist/src/util/misc/svgParsing.min.mjs.map +1 -1
  383. package/dist/src/util/misc/svgParsing.mjs.map +1 -1
  384. package/dist/src/util/misc/textStyles.min.mjs +1 -1
  385. package/dist/src/util/misc/textStyles.min.mjs.map +1 -1
  386. package/dist/src/util/misc/textStyles.mjs +3 -3
  387. package/dist/src/util/misc/textStyles.mjs.map +1 -1
  388. package/dist/src/util/misc/vectors.min.mjs.map +1 -1
  389. package/dist/src/util/misc/vectors.mjs.map +1 -1
  390. package/dist/src/util/path/index.min.mjs.map +1 -1
  391. package/dist/src/util/path/index.mjs.map +1 -1
  392. package/dist/src/util/path/typedefs.d.ts.map +1 -1
  393. package/dist/src/util/transform_matrix_removal.min.mjs.map +1 -1
  394. package/dist/src/util/transform_matrix_removal.mjs.map +1 -1
  395. package/dist/src/util/typeAssertions.min.mjs.map +1 -1
  396. package/dist/src/util/typeAssertions.mjs.map +1 -1
  397. package/dist-extensions/aligning_guidelines/constant.mjs +11 -0
  398. package/dist-extensions/aligning_guidelines/constant.mjs.map +1 -0
  399. package/dist-extensions/aligning_guidelines/index.mjs +130 -0
  400. package/dist-extensions/aligning_guidelines/index.mjs.map +1 -0
  401. package/dist-extensions/aligning_guidelines/util/basic.mjs +11 -0
  402. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +1 -0
  403. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +193 -0
  404. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +1 -0
  405. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +102 -0
  406. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +1 -0
  407. package/dist-extensions/aligning_guidelines/util/draw.mjs +75 -0
  408. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +1 -0
  409. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +42 -0
  410. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +1 -0
  411. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +3 -0
  412. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +1 -0
  413. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +5 -0
  414. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +1 -0
  415. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +33 -0
  416. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +1 -0
  417. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +4 -0
  418. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +1 -0
  419. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +13 -0
  420. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +1 -0
  421. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +20 -0
  422. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +1 -0
  423. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +6 -0
  424. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +1 -0
  425. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +3 -0
  426. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +1 -0
  427. package/dist-extensions/extensions/index.d.ts +2 -0
  428. package/dist-extensions/extensions/index.d.ts.map +1 -0
  429. package/dist-extensions/fabric-extensions.min.js +2 -0
  430. package/dist-extensions/fabric-extensions.min.js.map +1 -0
  431. package/dist-extensions/fabric.d.ts +119 -0
  432. package/dist-extensions/fabric.d.ts.map +1 -0
  433. package/dist-extensions/index.d.ts +2 -0
  434. package/dist-extensions/index.d.ts.map +1 -0
  435. package/dist-extensions/index.mjs +2 -0
  436. package/dist-extensions/index.mjs.map +1 -0
  437. package/dist-extensions/src/ClassRegistry.d.ts +14 -0
  438. package/dist-extensions/src/ClassRegistry.d.ts.map +1 -0
  439. package/dist-extensions/src/Collection.d.ts +141 -0
  440. package/dist-extensions/src/Collection.d.ts.map +1 -0
  441. package/dist-extensions/src/CommonMethods.d.ts +32 -0
  442. package/dist-extensions/src/CommonMethods.d.ts.map +1 -0
  443. package/dist-extensions/src/EventTypeDefs.d.ts +286 -0
  444. package/dist-extensions/src/EventTypeDefs.d.ts.map +1 -0
  445. package/dist-extensions/src/Intersection.d.ts +120 -0
  446. package/dist-extensions/src/Intersection.d.ts.map +1 -0
  447. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +22 -0
  448. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +1 -0
  449. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +56 -0
  450. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +1 -0
  451. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +13 -0
  452. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +1 -0
  453. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +14 -0
  454. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +1 -0
  455. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +14 -0
  456. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +1 -0
  457. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +30 -0
  458. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +1 -0
  459. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +10 -0
  460. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +1 -0
  461. package/dist-extensions/src/LayoutManager/constants.d.ts +7 -0
  462. package/dist-extensions/src/LayoutManager/constants.d.ts.map +1 -0
  463. package/dist-extensions/src/LayoutManager/index.d.ts +7 -0
  464. package/dist-extensions/src/LayoutManager/index.d.ts.map +1 -0
  465. package/dist-extensions/src/LayoutManager/types.d.ts +106 -0
  466. package/dist-extensions/src/LayoutManager/types.d.ts.map +1 -0
  467. package/dist-extensions/src/Observable.d.ts +68 -0
  468. package/dist-extensions/src/Observable.d.ts.map +1 -0
  469. package/dist-extensions/src/Pattern/Pattern.d.ts +99 -0
  470. package/dist-extensions/src/Pattern/Pattern.d.ts.map +1 -0
  471. package/dist-extensions/src/Pattern/index.d.ts +3 -0
  472. package/dist-extensions/src/Pattern/index.d.ts.map +1 -0
  473. package/dist-extensions/src/Pattern/types.d.ts +12 -0
  474. package/dist-extensions/src/Pattern/types.d.ts.map +1 -0
  475. package/dist-extensions/src/Point.d.ts +233 -0
  476. package/dist-extensions/src/Point.d.ts.map +1 -0
  477. package/dist-extensions/src/Shadow.d.ts +95 -0
  478. package/dist-extensions/src/Shadow.d.ts.map +1 -0
  479. package/dist-extensions/src/brushes/BaseBrush.d.ts +101 -0
  480. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +1 -0
  481. package/dist-extensions/src/brushes/CircleBrush.d.ts +44 -0
  482. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +1 -0
  483. package/dist-extensions/src/brushes/PatternBrush.d.ts +23 -0
  484. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +1 -0
  485. package/dist-extensions/src/brushes/PencilBrush.d.ts +92 -0
  486. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +1 -0
  487. package/dist-extensions/src/brushes/SprayBrush.d.ts +74 -0
  488. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +1 -0
  489. package/dist-extensions/src/brushes/typedefs.d.ts +18 -0
  490. package/dist-extensions/src/brushes/typedefs.d.ts.map +1 -0
  491. package/dist-extensions/src/cache.d.ts +47 -0
  492. package/dist-extensions/src/cache.d.ts.map +1 -0
  493. package/dist-extensions/src/canvas/Canvas.d.ts +339 -0
  494. package/dist-extensions/src/canvas/Canvas.d.ts.map +1 -0
  495. package/dist-extensions/src/canvas/CanvasOptions.d.ts +229 -0
  496. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +1 -0
  497. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +29 -0
  498. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +1 -0
  499. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  500. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +1 -0
  501. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +24 -0
  502. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +1 -0
  503. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +534 -0
  504. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +1 -0
  505. package/dist-extensions/src/canvas/StaticCanvas.d.ts +639 -0
  506. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +1 -0
  507. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +153 -0
  508. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +1 -0
  509. package/dist-extensions/src/canvas/TextEditingManager.d.ts +21 -0
  510. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +1 -0
  511. package/dist-extensions/src/color/Color.d.ts +162 -0
  512. package/dist-extensions/src/color/Color.d.ts.map +1 -0
  513. package/dist-extensions/src/color/color_map.d.ts +155 -0
  514. package/dist-extensions/src/color/color_map.d.ts.map +1 -0
  515. package/dist-extensions/src/color/constants.d.ts +111 -0
  516. package/dist-extensions/src/color/constants.d.ts.map +1 -0
  517. package/dist-extensions/src/color/typedefs.d.ts +16 -0
  518. package/dist-extensions/src/color/typedefs.d.ts.map +1 -0
  519. package/dist-extensions/src/color/util.d.ts +27 -0
  520. package/dist-extensions/src/color/util.d.ts.map +1 -0
  521. package/dist-extensions/src/config.d.ts +115 -0
  522. package/dist-extensions/src/config.d.ts.map +1 -0
  523. package/dist-extensions/src/constants.d.ts +35 -0
  524. package/dist-extensions/src/constants.d.ts.map +1 -0
  525. package/dist-extensions/src/controls/Control.d.ts +229 -0
  526. package/dist-extensions/src/controls/Control.d.ts.map +1 -0
  527. package/dist-extensions/src/controls/changeWidth.d.ts +13 -0
  528. package/dist-extensions/src/controls/changeWidth.d.ts.map +1 -0
  529. package/dist-extensions/src/controls/commonControls.d.ts +28 -0
  530. package/dist-extensions/src/controls/commonControls.d.ts.map +1 -0
  531. package/dist-extensions/src/controls/controlRendering.d.ts +29 -0
  532. package/dist-extensions/src/controls/controlRendering.d.ts.map +1 -0
  533. package/dist-extensions/src/controls/drag.d.ts +12 -0
  534. package/dist-extensions/src/controls/drag.d.ts.map +1 -0
  535. package/dist-extensions/src/controls/fireEvent.d.ts +3 -0
  536. package/dist-extensions/src/controls/fireEvent.d.ts.map +1 -0
  537. package/dist-extensions/src/controls/index.d.ts +14 -0
  538. package/dist-extensions/src/controls/index.d.ts.map +1 -0
  539. package/dist-extensions/src/controls/pathControl.d.ts +12 -0
  540. package/dist-extensions/src/controls/pathControl.d.ts.map +1 -0
  541. package/dist-extensions/src/controls/polyControl.d.ts +30 -0
  542. package/dist-extensions/src/controls/polyControl.d.ts.map +1 -0
  543. package/dist-extensions/src/controls/rotate.d.ts +12 -0
  544. package/dist-extensions/src/controls/rotate.d.ts.map +1 -0
  545. package/dist-extensions/src/controls/scale.d.ts +47 -0
  546. package/dist-extensions/src/controls/scale.d.ts.map +1 -0
  547. package/dist-extensions/src/controls/scaleSkew.d.ts +39 -0
  548. package/dist-extensions/src/controls/scaleSkew.d.ts.map +1 -0
  549. package/dist-extensions/src/controls/skew.d.ts +33 -0
  550. package/dist-extensions/src/controls/skew.d.ts.map +1 -0
  551. package/dist-extensions/src/controls/util.d.ts +41 -0
  552. package/dist-extensions/src/controls/util.d.ts.map +1 -0
  553. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +10 -0
  554. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +1 -0
  555. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  556. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +1 -0
  557. package/dist-extensions/src/env/browser.d.ts +3 -0
  558. package/dist-extensions/src/env/browser.d.ts.map +1 -0
  559. package/dist-extensions/src/env/index.d.ts +34 -0
  560. package/dist-extensions/src/env/index.d.ts.map +1 -0
  561. package/dist-extensions/src/env/types.d.ts +16 -0
  562. package/dist-extensions/src/env/types.d.ts.map +1 -0
  563. package/dist-extensions/src/filters/BaseFilter.d.ts +153 -0
  564. package/dist-extensions/src/filters/BaseFilter.d.ts.map +1 -0
  565. package/dist-extensions/src/filters/BlendColor.d.ts +68 -0
  566. package/dist-extensions/src/filters/BlendColor.d.ts.map +1 -0
  567. package/dist-extensions/src/filters/BlendImage.d.ts +99 -0
  568. package/dist-extensions/src/filters/BlendImage.d.ts.map +1 -0
  569. package/dist-extensions/src/filters/Blur.d.ts +50 -0
  570. package/dist-extensions/src/filters/Blur.d.ts.map +1 -0
  571. package/dist-extensions/src/filters/Brightness.d.ts +46 -0
  572. package/dist-extensions/src/filters/Brightness.d.ts.map +1 -0
  573. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  574. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +1 -0
  575. package/dist-extensions/src/filters/ColorMatrix.d.ts +66 -0
  576. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +1 -0
  577. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +15 -0
  578. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +1 -0
  579. package/dist-extensions/src/filters/Composed.d.ts +47 -0
  580. package/dist-extensions/src/filters/Composed.d.ts.map +1 -0
  581. package/dist-extensions/src/filters/Contrast.d.ts +44 -0
  582. package/dist-extensions/src/filters/Contrast.d.ts.map +1 -0
  583. package/dist-extensions/src/filters/Convolute.d.ts +81 -0
  584. package/dist-extensions/src/filters/Convolute.d.ts.map +1 -0
  585. package/dist-extensions/src/filters/FilterBackend.d.ts +15 -0
  586. package/dist-extensions/src/filters/FilterBackend.d.ts.map +1 -0
  587. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +7 -0
  588. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +1 -0
  589. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  590. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +1 -0
  591. package/dist-extensions/src/filters/Gamma.d.ts +58 -0
  592. package/dist-extensions/src/filters/Gamma.d.ts.map +1 -0
  593. package/dist-extensions/src/filters/Grayscale.d.ts +44 -0
  594. package/dist-extensions/src/filters/Grayscale.d.ts.map +1 -0
  595. package/dist-extensions/src/filters/HueRotation.d.ts +31 -0
  596. package/dist-extensions/src/filters/HueRotation.d.ts.map +1 -0
  597. package/dist-extensions/src/filters/Invert.d.ts +53 -0
  598. package/dist-extensions/src/filters/Invert.d.ts.map +1 -0
  599. package/dist-extensions/src/filters/Noise.d.ts +44 -0
  600. package/dist-extensions/src/filters/Noise.d.ts.map +1 -0
  601. package/dist-extensions/src/filters/Pixelate.d.ts +41 -0
  602. package/dist-extensions/src/filters/Pixelate.d.ts.map +1 -0
  603. package/dist-extensions/src/filters/RemoveColor.d.ts +53 -0
  604. package/dist-extensions/src/filters/RemoveColor.d.ts.map +1 -0
  605. package/dist-extensions/src/filters/Resize.d.ts +137 -0
  606. package/dist-extensions/src/filters/Resize.d.ts.map +1 -0
  607. package/dist-extensions/src/filters/Saturation.d.ts +46 -0
  608. package/dist-extensions/src/filters/Saturation.d.ts.map +1 -0
  609. package/dist-extensions/src/filters/Vibrance.d.ts +46 -0
  610. package/dist-extensions/src/filters/Vibrance.d.ts.map +1 -0
  611. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +131 -0
  612. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +1 -0
  613. package/dist-extensions/src/filters/filters.d.ts +23 -0
  614. package/dist-extensions/src/filters/filters.d.ts.map +1 -0
  615. package/dist-extensions/src/filters/index.d.ts +7 -0
  616. package/dist-extensions/src/filters/index.d.ts.map +1 -0
  617. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +4 -0
  618. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +1 -0
  619. package/dist-extensions/src/filters/shaders/blendColor.d.ts +13 -0
  620. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +1 -0
  621. package/dist-extensions/src/filters/shaders/blendImage.d.ts +4 -0
  622. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +1 -0
  623. package/dist-extensions/src/filters/shaders/blur.d.ts +2 -0
  624. package/dist-extensions/src/filters/shaders/blur.d.ts.map +1 -0
  625. package/dist-extensions/src/filters/shaders/brightness.d.ts +2 -0
  626. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +1 -0
  627. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +2 -0
  628. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +1 -0
  629. package/dist-extensions/src/filters/shaders/constrast.d.ts +2 -0
  630. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +1 -0
  631. package/dist-extensions/src/filters/shaders/convolute.d.ts +11 -0
  632. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +1 -0
  633. package/dist-extensions/src/filters/shaders/gamma.d.ts +2 -0
  634. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +1 -0
  635. package/dist-extensions/src/filters/shaders/grayscale.d.ts +3 -0
  636. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +1 -0
  637. package/dist-extensions/src/filters/shaders/invert.d.ts +2 -0
  638. package/dist-extensions/src/filters/shaders/invert.d.ts.map +1 -0
  639. package/dist-extensions/src/filters/shaders/noise.d.ts +2 -0
  640. package/dist-extensions/src/filters/shaders/noise.d.ts.map +1 -0
  641. package/dist-extensions/src/filters/shaders/pixelate.d.ts +2 -0
  642. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +1 -0
  643. package/dist-extensions/src/filters/shaders/removeColor.d.ts +2 -0
  644. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +1 -0
  645. package/dist-extensions/src/filters/shaders/saturation.d.ts +2 -0
  646. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +1 -0
  647. package/dist-extensions/src/filters/shaders/vibrance.d.ts +2 -0
  648. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +1 -0
  649. package/dist-extensions/src/filters/typedefs.d.ts +70 -0
  650. package/dist-extensions/src/filters/typedefs.d.ts.map +1 -0
  651. package/dist-extensions/src/filters/utils.d.ts +10 -0
  652. package/dist-extensions/src/filters/utils.d.ts.map +1 -0
  653. package/dist-extensions/src/gradient/Gradient.d.ts +156 -0
  654. package/dist-extensions/src/gradient/Gradient.d.ts.map +1 -0
  655. package/dist-extensions/src/gradient/constants.d.ts +15 -0
  656. package/dist-extensions/src/gradient/constants.d.ts.map +1 -0
  657. package/dist-extensions/src/gradient/index.d.ts +3 -0
  658. package/dist-extensions/src/gradient/index.d.ts.map +1 -0
  659. package/dist-extensions/src/gradient/parser/misc.d.ts +4 -0
  660. package/dist-extensions/src/gradient/parser/misc.d.ts.map +1 -0
  661. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +3 -0
  662. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +1 -0
  663. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +17 -0
  664. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +1 -0
  665. package/dist-extensions/src/gradient/typedefs.d.ts +93 -0
  666. package/dist-extensions/src/gradient/typedefs.d.ts.map +1 -0
  667. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +13 -0
  668. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +1 -0
  669. package/dist-extensions/src/parser/attributes.d.ts +6 -0
  670. package/dist-extensions/src/parser/attributes.d.ts.map +1 -0
  671. package/dist-extensions/src/parser/constants.d.ts +41 -0
  672. package/dist-extensions/src/parser/constants.d.ts.map +1 -0
  673. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +2 -0
  674. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +1 -0
  675. package/dist-extensions/src/parser/elementMatchesRule.d.ts +5 -0
  676. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +1 -0
  677. package/dist-extensions/src/parser/elements_parser.d.ts +33 -0
  678. package/dist-extensions/src/parser/elements_parser.d.ts.map +1 -0
  679. package/dist-extensions/src/parser/getCSSRules.d.ts +8 -0
  680. package/dist-extensions/src/parser/getCSSRules.d.ts.map +1 -0
  681. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +6 -0
  682. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +1 -0
  683. package/dist-extensions/src/parser/getGradientDefs.d.ts +7 -0
  684. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +1 -0
  685. package/dist-extensions/src/parser/getMultipleNodes.d.ts +2 -0
  686. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +1 -0
  687. package/dist-extensions/src/parser/getSvgRegex.d.ts +2 -0
  688. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +1 -0
  689. package/dist-extensions/src/parser/getTagName.d.ts +2 -0
  690. package/dist-extensions/src/parser/getTagName.d.ts.map +1 -0
  691. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +2 -0
  692. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +1 -0
  693. package/dist-extensions/src/parser/loadSVGFromString.d.ts +18 -0
  694. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +1 -0
  695. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +19 -0
  696. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +1 -0
  697. package/dist-extensions/src/parser/normalizeAttr.d.ts +3 -0
  698. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +1 -0
  699. package/dist-extensions/src/parser/normalizeValue.d.ts +2 -0
  700. package/dist-extensions/src/parser/normalizeValue.d.ts.map +1 -0
  701. package/dist-extensions/src/parser/parseAttributes.d.ts +10 -0
  702. package/dist-extensions/src/parser/parseAttributes.d.ts.map +1 -0
  703. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +10 -0
  704. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +1 -0
  705. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +10 -0
  706. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +1 -0
  707. package/dist-extensions/src/parser/parseSVGDocument.d.ts +22 -0
  708. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +1 -0
  709. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +9 -0
  710. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +1 -0
  711. package/dist-extensions/src/parser/parseStyleObject.d.ts +8 -0
  712. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +1 -0
  713. package/dist-extensions/src/parser/parseStyleString.d.ts +8 -0
  714. package/dist-extensions/src/parser/parseStyleString.d.ts.map +1 -0
  715. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +11 -0
  716. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +1 -0
  717. package/dist-extensions/src/parser/parseUseDirectives.d.ts +2 -0
  718. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +1 -0
  719. package/dist-extensions/src/parser/percent.d.ts +9 -0
  720. package/dist-extensions/src/parser/percent.d.ts.map +1 -0
  721. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  722. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +1 -0
  723. package/dist-extensions/src/parser/selectorMatches.d.ts +2 -0
  724. package/dist-extensions/src/parser/selectorMatches.d.ts.map +1 -0
  725. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +6 -0
  726. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +1 -0
  727. package/dist-extensions/src/parser/typedefs.d.ts +10 -0
  728. package/dist-extensions/src/parser/typedefs.d.ts.map +1 -0
  729. package/dist-extensions/src/shapes/ActiveSelection.d.ts +109 -0
  730. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +1 -0
  731. package/dist-extensions/src/shapes/Circle.d.ts +111 -0
  732. package/dist-extensions/src/shapes/Circle.d.ts.map +1 -0
  733. package/dist-extensions/src/shapes/Ellipse.d.ts +88 -0
  734. package/dist-extensions/src/shapes/Ellipse.d.ts.map +1 -0
  735. package/dist-extensions/src/shapes/Group.d.ts +303 -0
  736. package/dist-extensions/src/shapes/Group.d.ts.map +1 -0
  737. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  738. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +1 -0
  739. package/dist-extensions/src/shapes/IText/IText.d.ts +314 -0
  740. package/dist-extensions/src/shapes/IText/IText.d.ts.map +1 -0
  741. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +299 -0
  742. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -0
  743. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  744. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +1 -0
  745. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +198 -0
  746. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -0
  747. package/dist-extensions/src/shapes/IText/constants.d.ts +13 -0
  748. package/dist-extensions/src/shapes/IText/constants.d.ts.map +1 -0
  749. package/dist-extensions/src/shapes/Image.d.ts +312 -0
  750. package/dist-extensions/src/shapes/Image.d.ts.map +1 -0
  751. package/dist-extensions/src/shapes/Line.d.ts +122 -0
  752. package/dist-extensions/src/shapes/Line.d.ts.map +1 -0
  753. package/dist-extensions/src/shapes/Object/AnimatableObject.d.ts +33 -0
  754. package/dist-extensions/src/shapes/Object/AnimatableObject.d.ts.map +1 -0
  755. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +11 -0
  756. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +1 -0
  757. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +72 -0
  758. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +1 -0
  759. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +317 -0
  760. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +1 -0
  761. package/dist-extensions/src/shapes/Object/Object.d.ts +614 -0
  762. package/dist-extensions/src/shapes/Object/Object.d.ts.map +1 -0
  763. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +237 -0
  764. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +1 -0
  765. package/dist-extensions/src/shapes/Object/ObjectOrigin.d.ts +96 -0
  766. package/dist-extensions/src/shapes/Object/ObjectOrigin.d.ts.map +1 -0
  767. package/dist-extensions/src/shapes/Object/StackedObject.d.ts +60 -0
  768. package/dist-extensions/src/shapes/Object/StackedObject.d.ts.map +1 -0
  769. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +8 -0
  770. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +1 -0
  771. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +88 -0
  772. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +1 -0
  773. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +37 -0
  774. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +1 -0
  775. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +63 -0
  776. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +1 -0
  777. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +66 -0
  778. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +1 -0
  779. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  780. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +1 -0
  781. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  782. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +1 -0
  783. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +43 -0
  784. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +1 -0
  785. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +34 -0
  786. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +1 -0
  787. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  788. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +1 -0
  789. package/dist-extensions/src/shapes/Object/types/index.d.ts +6 -0
  790. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +1 -0
  791. package/dist-extensions/src/shapes/Path.d.ts +215 -0
  792. package/dist-extensions/src/shapes/Path.d.ts.map +1 -0
  793. package/dist-extensions/src/shapes/Polygon.d.ts +7 -0
  794. package/dist-extensions/src/shapes/Polygon.d.ts.map +1 -0
  795. package/dist-extensions/src/shapes/Polyline.d.ts +156 -0
  796. package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -0
  797. package/dist-extensions/src/shapes/Rect.d.ts +83 -0
  798. package/dist-extensions/src/shapes/Rect.d.ts.map +1 -0
  799. package/dist-extensions/src/shapes/Text/StyledText.d.ts +128 -0
  800. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +1 -0
  801. package/dist-extensions/src/shapes/Text/Text.d.ts +697 -0
  802. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -0
  803. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +47 -0
  804. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +1 -0
  805. package/dist-extensions/src/shapes/Text/constants.d.ts +13 -0
  806. package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -0
  807. package/dist-extensions/src/shapes/Textbox.d.ts +226 -0
  808. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -0
  809. package/dist-extensions/src/shapes/Triangle.d.ts +27 -0
  810. package/dist-extensions/src/shapes/Triangle.d.ts.map +1 -0
  811. package/dist-extensions/src/typedefs.d.ts +97 -0
  812. package/dist-extensions/src/typedefs.d.ts.map +1 -0
  813. package/dist-extensions/src/util/animation/AnimationBase.d.ts +54 -0
  814. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +1 -0
  815. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  816. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +1 -0
  817. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +29 -0
  818. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +1 -0
  819. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +10 -0
  820. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +1 -0
  821. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +11 -0
  822. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +1 -0
  823. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +10 -0
  824. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +1 -0
  825. package/dist-extensions/src/util/animation/animate.d.ts +37 -0
  826. package/dist-extensions/src/util/animation/animate.d.ts.map +1 -0
  827. package/dist-extensions/src/util/animation/easing.d.ts +130 -0
  828. package/dist-extensions/src/util/animation/easing.d.ts.map +1 -0
  829. package/dist-extensions/src/util/animation/index.d.ts +3 -0
  830. package/dist-extensions/src/util/animation/index.d.ts.map +1 -0
  831. package/dist-extensions/src/util/animation/types.d.ts +87 -0
  832. package/dist-extensions/src/util/animation/types.d.ts.map +1 -0
  833. package/dist-extensions/src/util/applyMixins.d.ts +8 -0
  834. package/dist-extensions/src/util/applyMixins.d.ts.map +1 -0
  835. package/dist-extensions/src/util/dom_event.d.ts +6 -0
  836. package/dist-extensions/src/util/dom_event.d.ts.map +1 -0
  837. package/dist-extensions/src/util/dom_misc.d.ts +12 -0
  838. package/dist-extensions/src/util/dom_misc.d.ts.map +1 -0
  839. package/dist-extensions/src/util/dom_style.d.ts +7 -0
  840. package/dist-extensions/src/util/dom_style.d.ts.map +1 -0
  841. package/dist-extensions/src/util/index.d.ts +37 -0
  842. package/dist-extensions/src/util/index.d.ts.map +1 -0
  843. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  844. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +1 -0
  845. package/dist-extensions/src/util/internals/cloneStyles.d.ts +3 -0
  846. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +1 -0
  847. package/dist-extensions/src/util/internals/console.d.ts +8 -0
  848. package/dist-extensions/src/util/internals/console.d.ts.map +1 -0
  849. package/dist-extensions/src/util/internals/dom_request.d.ts +16 -0
  850. package/dist-extensions/src/util/internals/dom_request.d.ts.map +1 -0
  851. package/dist-extensions/src/util/internals/findRight.d.ts +2 -0
  852. package/dist-extensions/src/util/internals/findRight.d.ts.map +1 -0
  853. package/dist-extensions/src/util/internals/getRandomInt.d.ts +8 -0
  854. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +1 -0
  855. package/dist-extensions/src/util/internals/ifNaN.d.ts +8 -0
  856. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +1 -0
  857. package/dist-extensions/src/util/internals/removeFromArray.d.ts +9 -0
  858. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +1 -0
  859. package/dist-extensions/src/util/internals/uid.d.ts +2 -0
  860. package/dist-extensions/src/util/internals/uid.d.ts.map +1 -0
  861. package/dist-extensions/src/util/lang_string.d.ts +22 -0
  862. package/dist-extensions/src/util/lang_string.d.ts.map +1 -0
  863. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  864. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +1 -0
  865. package/dist-extensions/src/util/misc/capValue.d.ts +2 -0
  866. package/dist-extensions/src/util/misc/capValue.d.ts.map +1 -0
  867. package/dist-extensions/src/util/misc/cos.d.ts +10 -0
  868. package/dist-extensions/src/util/misc/cos.d.ts.map +1 -0
  869. package/dist-extensions/src/util/misc/dom.d.ts +28 -0
  870. package/dist-extensions/src/util/misc/dom.d.ts.map +1 -0
  871. package/dist-extensions/src/util/misc/findScaleTo.d.ts +20 -0
  872. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +1 -0
  873. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +11 -0
  874. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +1 -0
  875. package/dist-extensions/src/util/misc/isTransparent.d.ts +11 -0
  876. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +1 -0
  877. package/dist-extensions/src/util/misc/matrix.d.ts +170 -0
  878. package/dist-extensions/src/util/misc/matrix.d.ts.map +1 -0
  879. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +23 -0
  880. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +1 -0
  881. package/dist-extensions/src/util/misc/objectEnlive.d.ts +45 -0
  882. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +1 -0
  883. package/dist-extensions/src/util/misc/objectTransforms.d.ts +62 -0
  884. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +1 -0
  885. package/dist-extensions/src/util/misc/pick.d.ts +9 -0
  886. package/dist-extensions/src/util/misc/pick.d.ts.map +1 -0
  887. package/dist-extensions/src/util/misc/planeChange.d.ts +64 -0
  888. package/dist-extensions/src/util/misc/planeChange.d.ts.map +1 -0
  889. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  890. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +1 -0
  891. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +90 -0
  892. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +1 -0
  893. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +27 -0
  894. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +1 -0
  895. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +12 -0
  896. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +1 -0
  897. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +23 -0
  898. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +1 -0
  899. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  900. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +1 -0
  901. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +9 -0
  902. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +1 -0
  903. package/dist-extensions/src/util/misc/rotatePoint.d.ts +12 -0
  904. package/dist-extensions/src/util/misc/rotatePoint.d.ts.map +1 -0
  905. package/dist-extensions/src/util/misc/sin.d.ts +10 -0
  906. package/dist-extensions/src/util/misc/sin.d.ts.map +1 -0
  907. package/dist-extensions/src/util/misc/svgParsing.d.ts +46 -0
  908. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +1 -0
  909. package/dist-extensions/src/util/misc/textStyles.d.ts +32 -0
  910. package/dist-extensions/src/util/misc/textStyles.d.ts.map +1 -0
  911. package/dist-extensions/src/util/misc/toFixed.d.ts +8 -0
  912. package/dist-extensions/src/util/misc/toFixed.d.ts.map +1 -0
  913. package/dist-extensions/src/util/misc/vectors.d.ts +72 -0
  914. package/dist-extensions/src/util/misc/vectors.d.ts.map +1 -0
  915. package/dist-extensions/src/util/path/index.d.ts +95 -0
  916. package/dist-extensions/src/util/path/index.d.ts.map +1 -0
  917. package/dist-extensions/src/util/path/regex.d.ts +2 -0
  918. package/dist-extensions/src/util/path/regex.d.ts.map +1 -0
  919. package/dist-extensions/src/util/path/typedefs.d.ts +221 -0
  920. package/dist-extensions/src/util/path/typedefs.d.ts.map +1 -0
  921. package/dist-extensions/src/util/transform_matrix_removal.d.ts +14 -0
  922. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +1 -0
  923. package/dist-extensions/src/util/typeAssertions.d.ts +13 -0
  924. package/dist-extensions/src/util/typeAssertions.d.ts.map +1 -0
  925. package/eslint.config.mjs +108 -0
  926. package/extensions/README.MD +27 -0
  927. package/extensions/aligning_guidelines/README.MD +22 -0
  928. package/extensions/aligning_guidelines/constant.ts +10 -0
  929. package/extensions/aligning_guidelines/index.ts +166 -0
  930. package/extensions/aligning_guidelines/typedefs.ts +36 -0
  931. package/extensions/aligning_guidelines/util/basic.spec.ts +31 -0
  932. package/extensions/aligning_guidelines/util/basic.ts +20 -0
  933. package/extensions/aligning_guidelines/util/collect-line.ts +172 -0
  934. package/extensions/aligning_guidelines/util/collect-point.ts +83 -0
  935. package/extensions/aligning_guidelines/util/draw.ts +74 -0
  936. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +45 -0
  937. package/extensions/index.ts +4 -0
  938. package/jest.config.js +1 -1
  939. package/jest.extend.ts +14 -15
  940. package/package.json +17 -12
  941. package/playwright.setup.ts +5 -5
  942. package/rollup.config.mjs +46 -4
  943. package/scripts/build.mjs +1 -1
  944. package/scripts/buildLock.mjs +5 -5
  945. package/scripts/buildStats.mjs +2 -2
  946. package/scripts/git.mjs +1 -1
  947. package/scripts/index.mjs +34 -32
  948. package/scripts/sandbox.mjs +15 -15
  949. package/src/ClassRegistry.spec.ts +1 -1
  950. package/src/ClassRegistry.ts +1 -1
  951. package/src/Collection.ts +9 -9
  952. package/src/EventTypeDefs.ts +2 -2
  953. package/src/Intersection.spec.ts +2 -2
  954. package/src/Intersection.ts +11 -11
  955. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +3 -3
  956. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +2 -2
  957. package/src/LayoutManager/LayoutManager.spec.ts +17 -17
  958. package/src/LayoutManager/LayoutManager.ts +15 -15
  959. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +3 -3
  960. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +1 -1
  961. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +4 -4
  962. package/src/LayoutManager/LayoutStrategies/utils.ts +4 -4
  963. package/src/LayoutManager/types.ts +12 -13
  964. package/src/Observable.ts +7 -7
  965. package/src/Pattern/Pattern.ts +20 -10
  966. package/src/Point.ts +3 -3
  967. package/src/Shadow.ts +7 -7
  968. package/src/brushes/CircleBrush.ts +1 -1
  969. package/src/brushes/PatternBrush.ts +1 -1
  970. package/src/brushes/PencilBrush.ts +1 -1
  971. package/src/brushes/SprayBrush.ts +3 -3
  972. package/src/canvas/Canvas.ts +38 -35
  973. package/src/canvas/DOMManagers/CanvasDOMManager.ts +2 -2
  974. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +1 -1
  975. package/src/canvas/DOMManagers/util.ts +2 -2
  976. package/src/canvas/SelectableCanvas.spec.ts +8 -8
  977. package/src/canvas/SelectableCanvas.ts +20 -20
  978. package/src/canvas/StaticCanvas.ts +44 -43
  979. package/src/canvas/StaticCanvasOptions.ts +0 -1
  980. package/src/canvas/TextEditingManager.ts +1 -1
  981. package/src/canvas/__tests__/eventData.test.ts +17 -17
  982. package/src/color/Color.ts +3 -2
  983. package/src/color/color.test.ts +2 -2
  984. package/src/color/typedefs.ts +1 -1
  985. package/src/color/util.ts +1 -1
  986. package/src/config.ts +1 -1
  987. package/src/controls/Control.spec.ts +8 -8
  988. package/src/controls/Control.ts +14 -14
  989. package/src/controls/changeWidth.test.ts +2 -2
  990. package/src/controls/changeWidth.ts +4 -4
  991. package/src/controls/controlRendering.ts +4 -4
  992. package/src/controls/drag.ts +1 -1
  993. package/src/controls/fireEvent.ts +1 -1
  994. package/src/controls/pathControl.spec.ts +9 -9
  995. package/src/controls/pathControl.ts +20 -20
  996. package/src/controls/polyControl.spec.ts +6 -6
  997. package/src/controls/polyControl.ts +11 -11
  998. package/src/controls/rotate.ts +4 -4
  999. package/src/controls/scale.test.ts +9 -9
  1000. package/src/controls/scale.ts +13 -13
  1001. package/src/controls/scaleSkew.ts +3 -3
  1002. package/src/controls/skew.ts +8 -8
  1003. package/src/controls/util.ts +6 -6
  1004. package/src/controls/wrapWithFireEvent.ts +2 -2
  1005. package/src/controls/wrapWithFixedAnchor.spec.ts +5 -5
  1006. package/src/controls/wrapWithFixedAnchor.ts +2 -2
  1007. package/src/env/node.ts +2 -2
  1008. package/src/filters/BaseFilter.ts +27 -25
  1009. package/src/filters/BlendColor.ts +1 -1
  1010. package/src/filters/BlendImage.ts +4 -4
  1011. package/src/filters/Blur.ts +1 -1
  1012. package/src/filters/Boilerplate.ts +1 -1
  1013. package/src/filters/Brightness.ts +1 -1
  1014. package/src/filters/Canvas2dFilterBackend.ts +1 -1
  1015. package/src/filters/ColorMatrix.ts +2 -2
  1016. package/src/filters/ColorMatrixFilters.ts +7 -7
  1017. package/src/filters/Composed.ts +5 -5
  1018. package/src/filters/Contrast.ts +1 -1
  1019. package/src/filters/Convolute.ts +1 -1
  1020. package/src/filters/GLProbes/WebGLProbe.ts +2 -2
  1021. package/src/filters/Gamma.ts +1 -1
  1022. package/src/filters/Grayscale.ts +1 -1
  1023. package/src/filters/Invert.ts +1 -1
  1024. package/src/filters/Noise.ts +1 -1
  1025. package/src/filters/Pixelate.ts +1 -1
  1026. package/src/filters/RemoveColor.ts +1 -1
  1027. package/src/filters/Resize.ts +9 -9
  1028. package/src/filters/Saturation.ts +1 -1
  1029. package/src/filters/Vibrance.ts +1 -1
  1030. package/src/filters/WebGLFilterBackend.ts +10 -10
  1031. package/src/filters/typedefs.ts +1 -3
  1032. package/src/filters/utils.ts +3 -3
  1033. package/src/gradient/Gradient.spec.ts +19 -19
  1034. package/src/gradient/Gradient.ts +51 -50
  1035. package/src/gradient/parser/parseColorStops.ts +3 -3
  1036. package/src/gradient/parser/parseCoords.ts +28 -25
  1037. package/src/mixins/eraser_brush.mixin.ts +21 -21
  1038. package/src/parkinglot/straighten.ts +1 -1
  1039. package/src/parser/applyViewboxTransform.ts +2 -2
  1040. package/src/parser/constants.ts +2 -2
  1041. package/src/parser/elements_parser.ts +13 -13
  1042. package/src/parser/getCSSRules.ts +1 -1
  1043. package/src/parser/getGlobalStylesForElement.ts +1 -1
  1044. package/src/parser/getGradientDefs.ts +1 -1
  1045. package/src/parser/getMultipleNodes.ts +2 -2
  1046. package/src/parser/loadSVGFromString.test.ts +1 -4
  1047. package/src/parser/loadSVGFromString.ts +1 -1
  1048. package/src/parser/loadSVGFromURL.ts +1 -1
  1049. package/src/parser/normalizeAttr.ts +1 -1
  1050. package/src/parser/normalizeValue.ts +2 -2
  1051. package/src/parser/parseAttributes.ts +3 -3
  1052. package/src/parser/parseFontDeclaration.ts +1 -1
  1053. package/src/parser/parseSVGDocument.ts +3 -3
  1054. package/src/parser/parseStyleObject.ts +1 -1
  1055. package/src/parser/parseStyleString.ts +1 -1
  1056. package/src/parser/parseTransformAttribute.ts +1 -1
  1057. package/src/parser/parseUseDirectives.ts +1 -1
  1058. package/src/parser/percent.ts +4 -4
  1059. package/src/parser/recursivelyParseGradientsXlink.ts +1 -1
  1060. package/src/parser/setStrokeFillOpacity.ts +1 -1
  1061. package/src/parser/typedefs.ts +1 -1
  1062. package/src/shapes/ActiveSelection.spec.ts +1 -1
  1063. package/src/shapes/ActiveSelection.ts +4 -4
  1064. package/src/shapes/Circle.ts +5 -5
  1065. package/src/shapes/Ellipse.ts +4 -4
  1066. package/src/shapes/Group.spec.ts +5 -5
  1067. package/src/shapes/Group.ts +19 -17
  1068. package/src/shapes/IText/DraggableTextDelegate.ts +9 -10
  1069. package/src/shapes/IText/IText.test.ts +1 -1
  1070. package/src/shapes/IText/IText.ts +12 -12
  1071. package/src/shapes/IText/ITextBehavior.test.ts +2 -2
  1072. package/src/shapes/IText/ITextBehavior.ts +21 -21
  1073. package/src/shapes/IText/ITextClickBehavior.ts +2 -2
  1074. package/src/shapes/IText/ITextKeyBehavior.test.ts +2 -2
  1075. package/src/shapes/IText/ITextKeyBehavior.ts +13 -13
  1076. package/src/shapes/Image.ts +16 -16
  1077. package/src/shapes/Line.ts +4 -4
  1078. package/src/shapes/Object/AnimatableObject.ts +13 -10
  1079. package/src/shapes/Object/FabricObject.ts +7 -3
  1080. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +9 -9
  1081. package/src/shapes/Object/InteractiveObject.spec.ts +3 -3
  1082. package/src/shapes/Object/InteractiveObject.ts +32 -32
  1083. package/src/shapes/Object/Object.ts +33 -31
  1084. package/src/shapes/Object/ObjectGeometry.ts +9 -9
  1085. package/src/shapes/Object/ObjectOrigin.ts +11 -11
  1086. package/src/shapes/Object/StackedObject.ts +3 -4
  1087. package/src/shapes/Path.ts +14 -14
  1088. package/src/shapes/Polyline.spec.ts +1 -1
  1089. package/src/shapes/Polyline.ts +15 -16
  1090. package/src/shapes/Rect.ts +6 -6
  1091. package/src/shapes/Text/StyledText.spec.ts +2 -2
  1092. package/src/shapes/Text/StyledText.ts +7 -7
  1093. package/src/shapes/Text/Text.spec.ts +1 -1
  1094. package/src/shapes/Text/Text.ts +33 -33
  1095. package/src/shapes/Text/TextSVGExportMixin.spec.ts +1 -1
  1096. package/src/shapes/Text/TextSVGExportMixin.ts +23 -23
  1097. package/src/shapes/Textbox.ts +7 -7
  1098. package/src/shapes/Triangle.ts +1 -1
  1099. package/src/typedefs.ts +3 -3
  1100. package/src/util/animation/AnimationBase.ts +2 -2
  1101. package/src/util/animation/AnimationRegistry.ts +1 -1
  1102. package/src/util/animation/ArrayAnimation.ts +2 -2
  1103. package/src/util/animation/ColorAnimation.ts +5 -5
  1104. package/src/util/animation/ValueAnimation.ts +1 -1
  1105. package/src/util/animation/animate.ts +6 -6
  1106. package/src/util/animation/animations.spec.ts +7 -7
  1107. package/src/util/animation/easing.ts +1 -1
  1108. package/src/util/animation/types.ts +5 -6
  1109. package/src/util/applyMixins.ts +2 -2
  1110. package/src/util/dom_style.ts +2 -2
  1111. package/src/util/internals/cloneDeep.ts +6 -0
  1112. package/src/util/internals/cloneStyles.spec.ts +46 -0
  1113. package/src/util/internals/cloneStyles.ts +12 -0
  1114. package/src/util/internals/findRight.ts +1 -1
  1115. package/src/util/internals/getRandomInt.test.ts +1 -1
  1116. package/src/util/misc/boundingBoxFromPoints.ts +1 -1
  1117. package/src/util/misc/dom.ts +3 -3
  1118. package/src/util/misc/findScaleTo.ts +2 -2
  1119. package/src/util/misc/groupSVGElements.ts +1 -1
  1120. package/src/util/misc/isTransparent.ts +1 -1
  1121. package/src/util/misc/matrix.ts +6 -6
  1122. package/src/util/misc/objectEnlive.ts +9 -9
  1123. package/src/util/misc/objectTransforms.ts +5 -5
  1124. package/src/util/misc/pick.ts +2 -2
  1125. package/src/util/misc/planeChange.spec.ts +9 -9
  1126. package/src/util/misc/planeChange.ts +5 -5
  1127. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +7 -7
  1128. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +16 -16
  1129. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +2 -2
  1130. package/src/util/misc/projectStroke/index.ts +7 -7
  1131. package/src/util/misc/resolveOrigin.ts +1 -1
  1132. package/src/util/misc/rotatePoint.ts +1 -1
  1133. package/src/util/misc/svgParsing.ts +5 -5
  1134. package/src/util/misc/textStyles.ts +6 -6
  1135. package/src/util/misc/vectors.ts +1 -1
  1136. package/src/util/path/index.spec.ts +3 -3
  1137. package/src/util/path/index.ts +30 -30
  1138. package/src/util/path/typechecks.ts +22 -22
  1139. package/src/util/path/typedefs.ts +14 -17
  1140. package/src/util/transform_matrix_removal.ts +3 -3
  1141. package/src/util/typeAssertions.ts +4 -4
  1142. package/tsconfig-extensions.json +108 -0
  1143. package/tsconfig.json +4 -3
  1144. package/.eslintignore +0 -3
  1145. package/.eslintrc.js +0 -60
  1146. package/.eslintrc.json +0 -143
  1147. package/.eslintrc_tests +0 -58
  1148. package/dist/src/util/internals/cloneDeep.min.mjs +0 -2
  1149. package/dist/src/util/internals/cloneDeep.min.mjs.map +0 -1
  1150. package/dist/src/util/internals/cloneDeep.mjs +0 -4
  1151. package/dist/src/util/internals/cloneDeep.mjs.map +0 -1
  1152. package/dist/src/util/internals/index.d.ts +0 -5
  1153. package/dist/src/util/internals/index.d.ts.map +0 -1
  1154. package/src/benchmarks/README.md +0 -7
  1155. package/src/benchmarks/calcCornerCoords.mjs +0 -117
  1156. package/src/benchmarks/calcTransformMatrix.mjs +0 -104
  1157. package/src/benchmarks/pathCloning.mjs +0 -111
  1158. package/src/benchmarks/pathData.mjs +0 -5
  1159. package/src/benchmarks/raycasting.mjs +0 -152
  1160. package/src/benchmarks/transformMatrixKey.mjs +0 -97
  1161. package/src/util/internals/index.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"percent.min.mjs","sources":["../../../src/parser/percent.ts"],"sourcesContent":["import { ifNaN } from '../util/internals';\nimport { capValue } from '../util/misc/capValue';\n\nconst RE_PERCENT = /^(\\d+\\.\\d+)%|(\\d+)%$/;\n\nexport function isPercent(value: string | null) {\n return value && RE_PERCENT.test(value);\n}\n\n/**\n *\n * @param value\n * @param valueIfNaN\n * @returns ∈ [0, 1]\n */\nexport function parsePercent(\n value: string | number | null | undefined,\n valueIfNaN?: number\n) {\n const parsed =\n typeof value === 'number'\n ? value\n : typeof value === 'string'\n ? parseFloat(value) / (isPercent(value) ? 100 : 1)\n : NaN;\n return capValue(0, ifNaN(parsed, valueIfNaN), 1);\n}\n"],"names":["RE_PERCENT","isPercent","value","test","parsePercent","valueIfNaN","parsed","parseFloat","NaN","capValue","ifNaN"],"mappings":"iHAGA,MAAMA,EAAa,uBAEZ,SAASC,EAAUC,GACxB,OAAOA,GAASF,EAAWG,KAAKD,EAClC,CAQO,SAASE,EACdF,EACAG,GAEA,MAAMC,EACa,iBAAVJ,EACHA,EACiB,iBAAVA,EACPK,WAAWL,IAAUD,EAAUC,GAAS,IAAM,GAC9CM,IACN,OAAOC,EAAS,EAAGC,EAAMJ,EAAQD,GAAa,EAChD"}
1
+ {"version":3,"file":"percent.min.mjs","sources":["../../../src/parser/percent.ts"],"sourcesContent":["import { ifNaN } from '../util/internals/ifNaN';\nimport { capValue } from '../util/misc/capValue';\n\nconst RE_PERCENT = /^(\\d+\\.\\d+)%|(\\d+)%$/;\n\nexport function isPercent(value: string | null) {\n return value && RE_PERCENT.test(value);\n}\n\n/**\n *\n * @param value\n * @param valueIfNaN\n * @returns ∈ [0, 1]\n */\nexport function parsePercent(\n value: string | number | null | undefined,\n valueIfNaN?: number,\n) {\n const parsed =\n typeof value === 'number'\n ? value\n : typeof value === 'string'\n ? parseFloat(value) / (isPercent(value) ? 100 : 1)\n : NaN;\n return capValue(0, ifNaN(parsed, valueIfNaN), 1);\n}\n"],"names":["RE_PERCENT","isPercent","value","test","parsePercent","valueIfNaN","parsed","parseFloat","NaN","capValue","ifNaN"],"mappings":"iHAGA,MAAMA,EAAa,uBAEZ,SAASC,EAAUC,GACxB,OAAOA,GAASF,EAAWG,KAAKD,EAClC,CAQO,SAASE,EACdF,EACAG,GAEA,MAAMC,EACa,iBAAVJ,EACHA,EACiB,iBAAVA,EACLK,WAAWL,IAAUD,EAAUC,GAAS,IAAM,GAC9CM,IACR,OAAOC,EAAS,EAAGC,EAAMJ,EAAQD,GAAa,EAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"percent.mjs","sources":["../../../src/parser/percent.ts"],"sourcesContent":["import { ifNaN } from '../util/internals';\nimport { capValue } from '../util/misc/capValue';\n\nconst RE_PERCENT = /^(\\d+\\.\\d+)%|(\\d+)%$/;\n\nexport function isPercent(value: string | null) {\n return value && RE_PERCENT.test(value);\n}\n\n/**\n *\n * @param value\n * @param valueIfNaN\n * @returns ∈ [0, 1]\n */\nexport function parsePercent(\n value: string | number | null | undefined,\n valueIfNaN?: number\n) {\n const parsed =\n typeof value === 'number'\n ? value\n : typeof value === 'string'\n ? parseFloat(value) / (isPercent(value) ? 100 : 1)\n : NaN;\n return capValue(0, ifNaN(parsed, valueIfNaN), 1);\n}\n"],"names":["RE_PERCENT","isPercent","value","test","parsePercent","valueIfNaN","parsed","parseFloat","NaN","capValue","ifNaN"],"mappings":";;;AAGA,MAAMA,UAAU,GAAG,sBAAsB,CAAA;AAElC,SAASC,SAASA,CAACC,KAAoB,EAAE;AAC9C,EAAA,OAAOA,KAAK,IAAIF,UAAU,CAACG,IAAI,CAACD,KAAK,CAAC,CAAA;AACxC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAC1BF,KAAyC,EACzCG,UAAmB,EACnB;AACA,EAAA,MAAMC,MAAM,GACV,OAAOJ,KAAK,KAAK,QAAQ,GACrBA,KAAK,GACL,OAAOA,KAAK,KAAK,QAAQ,GACzBK,UAAU,CAACL,KAAK,CAAC,IAAID,SAAS,CAACC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAChDM,GAAG,CAAA;AACT,EAAA,OAAOC,QAAQ,CAAC,CAAC,EAAEC,KAAK,CAACJ,MAAM,EAAED,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AAClD;;;;"}
1
+ {"version":3,"file":"percent.mjs","sources":["../../../src/parser/percent.ts"],"sourcesContent":["import { ifNaN } from '../util/internals/ifNaN';\nimport { capValue } from '../util/misc/capValue';\n\nconst RE_PERCENT = /^(\\d+\\.\\d+)%|(\\d+)%$/;\n\nexport function isPercent(value: string | null) {\n return value && RE_PERCENT.test(value);\n}\n\n/**\n *\n * @param value\n * @param valueIfNaN\n * @returns ∈ [0, 1]\n */\nexport function parsePercent(\n value: string | number | null | undefined,\n valueIfNaN?: number,\n) {\n const parsed =\n typeof value === 'number'\n ? value\n : typeof value === 'string'\n ? parseFloat(value) / (isPercent(value) ? 100 : 1)\n : NaN;\n return capValue(0, ifNaN(parsed, valueIfNaN), 1);\n}\n"],"names":["RE_PERCENT","isPercent","value","test","parsePercent","valueIfNaN","parsed","parseFloat","NaN","capValue","ifNaN"],"mappings":";;;AAGA,MAAMA,UAAU,GAAG,sBAAsB,CAAA;AAElC,SAASC,SAASA,CAACC,KAAoB,EAAE;AAC9C,EAAA,OAAOA,KAAK,IAAIF,UAAU,CAACG,IAAI,CAACD,KAAK,CAAC,CAAA;AACxC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAC1BF,KAAyC,EACzCG,UAAmB,EACnB;AACA,EAAA,MAAMC,MAAM,GACV,OAAOJ,KAAK,KAAK,QAAQ,GACrBA,KAAK,GACL,OAAOA,KAAK,KAAK,QAAQ,GACvBK,UAAU,CAACL,KAAK,CAAC,IAAID,SAAS,CAACC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAChDM,GAAG,CAAA;AACX,EAAA,OAAOC,QAAQ,CAAC,CAAC,EAAEC,KAAK,CAACJ,MAAM,EAAED,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AAClD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursivelyParseGradientsXlink.min.mjs","sources":["../../../src/parser/recursivelyParseGradientsXlink.ts"],"sourcesContent":["const gradientsAttrs = [\n 'gradientTransform',\n 'x1',\n 'x2',\n 'y1',\n 'y2',\n 'gradientUnits',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n];\nconst xlinkAttr = 'xlink:href';\n\nexport function recursivelyParseGradientsXlink(\n doc: Document,\n gradient: Element\n) {\n const xLink = gradient.getAttribute(xlinkAttr)?.slice(1) || '',\n referencedGradient = doc.getElementById(xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient as Element);\n }\n if (referencedGradient) {\n gradientsAttrs.forEach((attr) => {\n const value = referencedGradient.getAttribute(attr);\n if (!gradient.hasAttribute(attr) && value) {\n gradient.setAttribute(attr, value);\n }\n });\n if (!gradient.children.length) {\n const referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n }\n gradient.removeAttribute(xlinkAttr);\n}\n"],"names":["gradientsAttrs","xlinkAttr","recursivelyParseGradientsXlink","doc","gradient","_gradient$getAttribut","xLink","getAttribute","slice","referencedGradient","getElementById","forEach","attr","value","hasAttribute","setAttribute","children","length","referenceClone","cloneNode","firstChild","appendChild","removeAttribute"],"mappings":"AAAA,MAAMA,EAAiB,CACrB,oBACA,KACA,KACA,KACA,KACA,gBACA,KACA,KACA,IACA,KACA,MAEIC,EAAY,aAEX,SAASC,EACdC,EACAC,GACA,IAAAC,EACA,MAAMC,GAAwCD,QAAhCA,EAAAD,EAASG,aAAaN,cAAUI,SAAhCA,EAAkCG,MAAM,KAAM,GAC1DC,EAAqBN,EAAIO,eAAeJ,GAI1C,GAHIG,GAAsBA,EAAmBF,aAAaN,IACxDC,EAA+BC,EAAKM,GAElCA,IACFT,EAAeW,SAASC,IACtB,MAAMC,EAAQJ,EAAmBF,aAAaK,IACzCR,EAASU,aAAaF,IAASC,GAClCT,EAASW,aAAaH,EAAMC,EAC9B,KAEGT,EAASY,SAASC,QAAQ,CAC7B,MAAMC,EAAiBT,EAAmBU,WAAU,GACpD,KAAOD,EAAeE,YACpBhB,EAASiB,YAAYH,EAAeE,WAExC,CAEFhB,EAASkB,gBAAgBrB,EAC3B"}
1
+ {"version":3,"file":"recursivelyParseGradientsXlink.min.mjs","sources":["../../../src/parser/recursivelyParseGradientsXlink.ts"],"sourcesContent":["const gradientsAttrs = [\n 'gradientTransform',\n 'x1',\n 'x2',\n 'y1',\n 'y2',\n 'gradientUnits',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n];\nconst xlinkAttr = 'xlink:href';\n\nexport function recursivelyParseGradientsXlink(\n doc: Document,\n gradient: Element,\n) {\n const xLink = gradient.getAttribute(xlinkAttr)?.slice(1) || '',\n referencedGradient = doc.getElementById(xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient as Element);\n }\n if (referencedGradient) {\n gradientsAttrs.forEach((attr) => {\n const value = referencedGradient.getAttribute(attr);\n if (!gradient.hasAttribute(attr) && value) {\n gradient.setAttribute(attr, value);\n }\n });\n if (!gradient.children.length) {\n const referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n }\n gradient.removeAttribute(xlinkAttr);\n}\n"],"names":["gradientsAttrs","xlinkAttr","recursivelyParseGradientsXlink","doc","gradient","_gradient$getAttribut","xLink","getAttribute","slice","referencedGradient","getElementById","forEach","attr","value","hasAttribute","setAttribute","children","length","referenceClone","cloneNode","firstChild","appendChild","removeAttribute"],"mappings":"AAAA,MAAMA,EAAiB,CACrB,oBACA,KACA,KACA,KACA,KACA,gBACA,KACA,KACA,IACA,KACA,MAEIC,EAAY,aAEX,SAASC,EACdC,EACAC,GACA,IAAAC,EACA,MAAMC,GAAwCD,QAAhCA,EAAAD,EAASG,aAAaN,cAAUI,SAAhCA,EAAkCG,MAAM,KAAM,GAC1DC,EAAqBN,EAAIO,eAAeJ,GAI1C,GAHIG,GAAsBA,EAAmBF,aAAaN,IACxDC,EAA+BC,EAAKM,GAElCA,IACFT,EAAeW,SAASC,IACtB,MAAMC,EAAQJ,EAAmBF,aAAaK,IACzCR,EAASU,aAAaF,IAASC,GAClCT,EAASW,aAAaH,EAAMC,EAC9B,KAEGT,EAASY,SAASC,QAAQ,CAC7B,MAAMC,EAAiBT,EAAmBU,WAAU,GACpD,KAAOD,EAAeE,YACpBhB,EAASiB,YAAYH,EAAeE,WAExC,CAEFhB,EAASkB,gBAAgBrB,EAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"recursivelyParseGradientsXlink.mjs","sources":["../../../src/parser/recursivelyParseGradientsXlink.ts"],"sourcesContent":["const gradientsAttrs = [\n 'gradientTransform',\n 'x1',\n 'x2',\n 'y1',\n 'y2',\n 'gradientUnits',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n];\nconst xlinkAttr = 'xlink:href';\n\nexport function recursivelyParseGradientsXlink(\n doc: Document,\n gradient: Element\n) {\n const xLink = gradient.getAttribute(xlinkAttr)?.slice(1) || '',\n referencedGradient = doc.getElementById(xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient as Element);\n }\n if (referencedGradient) {\n gradientsAttrs.forEach((attr) => {\n const value = referencedGradient.getAttribute(attr);\n if (!gradient.hasAttribute(attr) && value) {\n gradient.setAttribute(attr, value);\n }\n });\n if (!gradient.children.length) {\n const referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n }\n gradient.removeAttribute(xlinkAttr);\n}\n"],"names":["gradientsAttrs","xlinkAttr","recursivelyParseGradientsXlink","doc","gradient","_gradient$getAttribut","xLink","getAttribute","slice","referencedGradient","getElementById","forEach","attr","value","hasAttribute","setAttribute","children","length","referenceClone","cloneNode","firstChild","appendChild","removeAttribute"],"mappings":"AAAA,MAAMA,cAAc,GAAG,CACrB,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CACL,CAAA;AACD,MAAMC,SAAS,GAAG,YAAY,CAAA;AAEvB,SAASC,8BAA8BA,CAC5CC,GAAa,EACbC,QAAiB,EACjB;AAAA,EAAA,IAAAC,qBAAA,CAAA;EACA,MAAMC,KAAK,GAAG,CAAAD,CAAAA,qBAAA,GAAAD,QAAQ,CAACG,YAAY,CAACN,SAAS,CAAC,MAAAI,IAAAA,IAAAA,qBAAA,uBAAhCA,qBAAA,CAAkCG,KAAK,CAAC,CAAC,CAAC,KAAI,EAAE;AAC5DC,IAAAA,kBAAkB,GAAGN,GAAG,CAACO,cAAc,CAACJ,KAAK,CAAC,CAAA;EAChD,IAAIG,kBAAkB,IAAIA,kBAAkB,CAACF,YAAY,CAACN,SAAS,CAAC,EAAE;AACpEC,IAAAA,8BAA8B,CAACC,GAAG,EAAEM,kBAA6B,CAAC,CAAA;AACpE,GAAA;AACA,EAAA,IAAIA,kBAAkB,EAAE;AACtBT,IAAAA,cAAc,CAACW,OAAO,CAAEC,IAAI,IAAK;AAC/B,MAAA,MAAMC,KAAK,GAAGJ,kBAAkB,CAACF,YAAY,CAACK,IAAI,CAAC,CAAA;MACnD,IAAI,CAACR,QAAQ,CAACU,YAAY,CAACF,IAAI,CAAC,IAAIC,KAAK,EAAE;AACzCT,QAAAA,QAAQ,CAACW,YAAY,CAACH,IAAI,EAAEC,KAAK,CAAC,CAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACF,IAAA,IAAI,CAACT,QAAQ,CAACY,QAAQ,CAACC,MAAM,EAAE;AAC7B,MAAA,MAAMC,cAAc,GAAGT,kBAAkB,CAACU,SAAS,CAAC,IAAI,CAAC,CAAA;MACzD,OAAOD,cAAc,CAACE,UAAU,EAAE;AAChChB,QAAAA,QAAQ,CAACiB,WAAW,CAACH,cAAc,CAACE,UAAU,CAAC,CAAA;AACjD,OAAA;AACF,KAAA;AACF,GAAA;AACAhB,EAAAA,QAAQ,CAACkB,eAAe,CAACrB,SAAS,CAAC,CAAA;AACrC;;;;"}
1
+ {"version":3,"file":"recursivelyParseGradientsXlink.mjs","sources":["../../../src/parser/recursivelyParseGradientsXlink.ts"],"sourcesContent":["const gradientsAttrs = [\n 'gradientTransform',\n 'x1',\n 'x2',\n 'y1',\n 'y2',\n 'gradientUnits',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n];\nconst xlinkAttr = 'xlink:href';\n\nexport function recursivelyParseGradientsXlink(\n doc: Document,\n gradient: Element,\n) {\n const xLink = gradient.getAttribute(xlinkAttr)?.slice(1) || '',\n referencedGradient = doc.getElementById(xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient as Element);\n }\n if (referencedGradient) {\n gradientsAttrs.forEach((attr) => {\n const value = referencedGradient.getAttribute(attr);\n if (!gradient.hasAttribute(attr) && value) {\n gradient.setAttribute(attr, value);\n }\n });\n if (!gradient.children.length) {\n const referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n }\n gradient.removeAttribute(xlinkAttr);\n}\n"],"names":["gradientsAttrs","xlinkAttr","recursivelyParseGradientsXlink","doc","gradient","_gradient$getAttribut","xLink","getAttribute","slice","referencedGradient","getElementById","forEach","attr","value","hasAttribute","setAttribute","children","length","referenceClone","cloneNode","firstChild","appendChild","removeAttribute"],"mappings":"AAAA,MAAMA,cAAc,GAAG,CACrB,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CACL,CAAA;AACD,MAAMC,SAAS,GAAG,YAAY,CAAA;AAEvB,SAASC,8BAA8BA,CAC5CC,GAAa,EACbC,QAAiB,EACjB;AAAA,EAAA,IAAAC,qBAAA,CAAA;EACA,MAAMC,KAAK,GAAG,CAAAD,CAAAA,qBAAA,GAAAD,QAAQ,CAACG,YAAY,CAACN,SAAS,CAAC,MAAAI,IAAAA,IAAAA,qBAAA,uBAAhCA,qBAAA,CAAkCG,KAAK,CAAC,CAAC,CAAC,KAAI,EAAE;AAC5DC,IAAAA,kBAAkB,GAAGN,GAAG,CAACO,cAAc,CAACJ,KAAK,CAAC,CAAA;EAChD,IAAIG,kBAAkB,IAAIA,kBAAkB,CAACF,YAAY,CAACN,SAAS,CAAC,EAAE;AACpEC,IAAAA,8BAA8B,CAACC,GAAG,EAAEM,kBAA6B,CAAC,CAAA;AACpE,GAAA;AACA,EAAA,IAAIA,kBAAkB,EAAE;AACtBT,IAAAA,cAAc,CAACW,OAAO,CAAEC,IAAI,IAAK;AAC/B,MAAA,MAAMC,KAAK,GAAGJ,kBAAkB,CAACF,YAAY,CAACK,IAAI,CAAC,CAAA;MACnD,IAAI,CAACR,QAAQ,CAACU,YAAY,CAACF,IAAI,CAAC,IAAIC,KAAK,EAAE;AACzCT,QAAAA,QAAQ,CAACW,YAAY,CAACH,IAAI,EAAEC,KAAK,CAAC,CAAA;AACpC,OAAA;AACF,KAAC,CAAC,CAAA;AACF,IAAA,IAAI,CAACT,QAAQ,CAACY,QAAQ,CAACC,MAAM,EAAE;AAC7B,MAAA,MAAMC,cAAc,GAAGT,kBAAkB,CAACU,SAAS,CAAC,IAAI,CAAC,CAAA;MACzD,OAAOD,cAAc,CAACE,UAAU,EAAE;AAChChB,QAAAA,QAAQ,CAACiB,WAAW,CAACH,cAAc,CAACE,UAAU,CAAC,CAAA;AACjD,OAAA;AACF,KAAA;AACF,GAAA;AACAhB,EAAAA,QAAQ,CAACkB,eAAe,CAACrB,SAAS,CAAC,CAAA;AACrC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"setStrokeFillOpacity.min.mjs","sources":["../../../src/parser/setStrokeFillOpacity.ts"],"sourcesContent":["import { Color } from '../color/Color';\nimport { toFixed } from '../util/misc/toFixed';\nimport { FabricObject } from '../shapes/Object/FabricObject';\n\nconst colorAttributesMap = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity',\n};\n\n/**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\nexport function setStrokeFillOpacity(\n attributes: Record<string, any>\n): Record<string, any> {\n const defaults = FabricObject.getDefaults();\n Object.entries(colorAttributesMap).forEach(([attr, colorAttr]) => {\n if (\n typeof attributes[colorAttr] === 'undefined' ||\n attributes[attr] === ''\n ) {\n return;\n }\n if (typeof attributes[attr] === 'undefined') {\n if (!defaults[attr]) {\n return;\n }\n attributes[attr] = defaults[attr];\n }\n if (attributes[attr].indexOf('url(') === 0) {\n return;\n }\n const color = new Color(attributes[attr]);\n attributes[attr] = color\n .setAlpha(toFixed(color.getAlpha() * attributes[colorAttr], 2))\n .toRgba();\n });\n return attributes;\n}\n"],"names":["colorAttributesMap","stroke","fill","setStrokeFillOpacity","attributes","defaults","FabricObject","getDefaults","Object","entries","forEach","_ref","attr","colorAttr","indexOf","color","Color","setAlpha","toFixed","getAlpha","toRgba"],"mappings":"2KAIA,MAAMA,EAAqB,CACzBC,OAAQ,gBACRC,KAAM,eAQD,SAASC,EACdC,GAEA,MAAMC,EAAWC,EAAaC,cAsB9B,OArBAC,OAAOC,QAAQT,GAAoBU,SAAQC,IAAuB,IAArBC,EAAMC,GAAUF,EAC3D,QACmC,IAA1BP,EAAWS,IACG,KAArBT,EAAWQ,GAEX,OAEF,QAAgC,IAArBR,EAAWQ,GAAuB,CAC3C,IAAKP,EAASO,GACZ,OAEFR,EAAWQ,GAAQP,EAASO,EAC9B,CACA,GAAyC,IAArCR,EAAWQ,GAAME,QAAQ,QAC3B,OAEF,MAAMC,EAAQ,IAAIC,EAAMZ,EAAWQ,IACnCR,EAAWQ,GAAQG,EAChBE,SAASC,EAAQH,EAAMI,WAAaf,EAAWS,GAAY,IAC3DO,QAAQ,IAENhB,CACT"}
1
+ {"version":3,"file":"setStrokeFillOpacity.min.mjs","sources":["../../../src/parser/setStrokeFillOpacity.ts"],"sourcesContent":["import { Color } from '../color/Color';\nimport { toFixed } from '../util/misc/toFixed';\nimport { FabricObject } from '../shapes/Object/FabricObject';\n\nconst colorAttributesMap = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity',\n};\n\n/**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\nexport function setStrokeFillOpacity(\n attributes: Record<string, any>,\n): Record<string, any> {\n const defaults = FabricObject.getDefaults();\n Object.entries(colorAttributesMap).forEach(([attr, colorAttr]) => {\n if (\n typeof attributes[colorAttr] === 'undefined' ||\n attributes[attr] === ''\n ) {\n return;\n }\n if (typeof attributes[attr] === 'undefined') {\n if (!defaults[attr]) {\n return;\n }\n attributes[attr] = defaults[attr];\n }\n if (attributes[attr].indexOf('url(') === 0) {\n return;\n }\n const color = new Color(attributes[attr]);\n attributes[attr] = color\n .setAlpha(toFixed(color.getAlpha() * attributes[colorAttr], 2))\n .toRgba();\n });\n return attributes;\n}\n"],"names":["colorAttributesMap","stroke","fill","setStrokeFillOpacity","attributes","defaults","FabricObject","getDefaults","Object","entries","forEach","_ref","attr","colorAttr","indexOf","color","Color","setAlpha","toFixed","getAlpha","toRgba"],"mappings":"2KAIA,MAAMA,EAAqB,CACzBC,OAAQ,gBACRC,KAAM,eAQD,SAASC,EACdC,GAEA,MAAMC,EAAWC,EAAaC,cAsB9B,OArBAC,OAAOC,QAAQT,GAAoBU,SAAQC,IAAuB,IAArBC,EAAMC,GAAUF,EAC3D,QACmC,IAA1BP,EAAWS,IACG,KAArBT,EAAWQ,GAEX,OAEF,QAAgC,IAArBR,EAAWQ,GAAuB,CAC3C,IAAKP,EAASO,GACZ,OAEFR,EAAWQ,GAAQP,EAASO,EAC9B,CACA,GAAyC,IAArCR,EAAWQ,GAAME,QAAQ,QAC3B,OAEF,MAAMC,EAAQ,IAAIC,EAAMZ,EAAWQ,IACnCR,EAAWQ,GAAQG,EAChBE,SAASC,EAAQH,EAAMI,WAAaf,EAAWS,GAAY,IAC3DO,QAAQ,IAENhB,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"setStrokeFillOpacity.mjs","sources":["../../../src/parser/setStrokeFillOpacity.ts"],"sourcesContent":["import { Color } from '../color/Color';\nimport { toFixed } from '../util/misc/toFixed';\nimport { FabricObject } from '../shapes/Object/FabricObject';\n\nconst colorAttributesMap = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity',\n};\n\n/**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\nexport function setStrokeFillOpacity(\n attributes: Record<string, any>\n): Record<string, any> {\n const defaults = FabricObject.getDefaults();\n Object.entries(colorAttributesMap).forEach(([attr, colorAttr]) => {\n if (\n typeof attributes[colorAttr] === 'undefined' ||\n attributes[attr] === ''\n ) {\n return;\n }\n if (typeof attributes[attr] === 'undefined') {\n if (!defaults[attr]) {\n return;\n }\n attributes[attr] = defaults[attr];\n }\n if (attributes[attr].indexOf('url(') === 0) {\n return;\n }\n const color = new Color(attributes[attr]);\n attributes[attr] = color\n .setAlpha(toFixed(color.getAlpha() * attributes[colorAttr], 2))\n .toRgba();\n });\n return attributes;\n}\n"],"names":["colorAttributesMap","stroke","fill","setStrokeFillOpacity","attributes","defaults","FabricObject","getDefaults","Object","entries","forEach","_ref","attr","colorAttr","indexOf","color","Color","setAlpha","toFixed","getAlpha","toRgba"],"mappings":";;;;AAIA,MAAMA,kBAAkB,GAAG;AACzBC,EAAAA,MAAM,EAAE,eAAe;AACvBC,EAAAA,IAAI,EAAE,aAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACA;;AAEO,SAASC,oBAAoBA,CAClCC,UAA+B,EACV;AACrB,EAAA,MAAMC,QAAQ,GAAGC,YAAY,CAACC,WAAW,EAAE,CAAA;EAC3CC,MAAM,CAACC,OAAO,CAACT,kBAAkB,CAAC,CAACU,OAAO,CAACC,IAAA,IAAuB;AAAA,IAAA,IAAtB,CAACC,IAAI,EAAEC,SAAS,CAAC,GAAAF,IAAA,CAAA;AAC3D,IAAA,IACE,OAAOP,UAAU,CAACS,SAAS,CAAC,KAAK,WAAW,IAC5CT,UAAU,CAACQ,IAAI,CAAC,KAAK,EAAE,EACvB;AACA,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,OAAOR,UAAU,CAACQ,IAAI,CAAC,KAAK,WAAW,EAAE;AAC3C,MAAA,IAAI,CAACP,QAAQ,CAACO,IAAI,CAAC,EAAE;AACnB,QAAA,OAAA;AACF,OAAA;AACAR,MAAAA,UAAU,CAACQ,IAAI,CAAC,GAAGP,QAAQ,CAACO,IAAI,CAAC,CAAA;AACnC,KAAA;IACA,IAAIR,UAAU,CAACQ,IAAI,CAAC,CAACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC1C,MAAA,OAAA;AACF,KAAA;IACA,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAACZ,UAAU,CAACQ,IAAI,CAAC,CAAC,CAAA;IACzCR,UAAU,CAACQ,IAAI,CAAC,GAAGG,KAAK,CACrBE,QAAQ,CAACC,OAAO,CAACH,KAAK,CAACI,QAAQ,EAAE,GAAGf,UAAU,CAACS,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAC9DO,MAAM,EAAE,CAAA;AACb,GAAC,CAAC,CAAA;AACF,EAAA,OAAOhB,UAAU,CAAA;AACnB;;;;"}
1
+ {"version":3,"file":"setStrokeFillOpacity.mjs","sources":["../../../src/parser/setStrokeFillOpacity.ts"],"sourcesContent":["import { Color } from '../color/Color';\nimport { toFixed } from '../util/misc/toFixed';\nimport { FabricObject } from '../shapes/Object/FabricObject';\n\nconst colorAttributesMap = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity',\n};\n\n/**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\nexport function setStrokeFillOpacity(\n attributes: Record<string, any>,\n): Record<string, any> {\n const defaults = FabricObject.getDefaults();\n Object.entries(colorAttributesMap).forEach(([attr, colorAttr]) => {\n if (\n typeof attributes[colorAttr] === 'undefined' ||\n attributes[attr] === ''\n ) {\n return;\n }\n if (typeof attributes[attr] === 'undefined') {\n if (!defaults[attr]) {\n return;\n }\n attributes[attr] = defaults[attr];\n }\n if (attributes[attr].indexOf('url(') === 0) {\n return;\n }\n const color = new Color(attributes[attr]);\n attributes[attr] = color\n .setAlpha(toFixed(color.getAlpha() * attributes[colorAttr], 2))\n .toRgba();\n });\n return attributes;\n}\n"],"names":["colorAttributesMap","stroke","fill","setStrokeFillOpacity","attributes","defaults","FabricObject","getDefaults","Object","entries","forEach","_ref","attr","colorAttr","indexOf","color","Color","setAlpha","toFixed","getAlpha","toRgba"],"mappings":";;;;AAIA,MAAMA,kBAAkB,GAAG;AACzBC,EAAAA,MAAM,EAAE,eAAe;AACvBC,EAAAA,IAAI,EAAE,aAAA;AACR,CAAC,CAAA;;AAED;AACA;AACA;AACA;;AAEO,SAASC,oBAAoBA,CAClCC,UAA+B,EACV;AACrB,EAAA,MAAMC,QAAQ,GAAGC,YAAY,CAACC,WAAW,EAAE,CAAA;EAC3CC,MAAM,CAACC,OAAO,CAACT,kBAAkB,CAAC,CAACU,OAAO,CAACC,IAAA,IAAuB;AAAA,IAAA,IAAtB,CAACC,IAAI,EAAEC,SAAS,CAAC,GAAAF,IAAA,CAAA;AAC3D,IAAA,IACE,OAAOP,UAAU,CAACS,SAAS,CAAC,KAAK,WAAW,IAC5CT,UAAU,CAACQ,IAAI,CAAC,KAAK,EAAE,EACvB;AACA,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAI,OAAOR,UAAU,CAACQ,IAAI,CAAC,KAAK,WAAW,EAAE;AAC3C,MAAA,IAAI,CAACP,QAAQ,CAACO,IAAI,CAAC,EAAE;AACnB,QAAA,OAAA;AACF,OAAA;AACAR,MAAAA,UAAU,CAACQ,IAAI,CAAC,GAAGP,QAAQ,CAACO,IAAI,CAAC,CAAA;AACnC,KAAA;IACA,IAAIR,UAAU,CAACQ,IAAI,CAAC,CAACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC1C,MAAA,OAAA;AACF,KAAA;IACA,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAACZ,UAAU,CAACQ,IAAI,CAAC,CAAC,CAAA;IACzCR,UAAU,CAACQ,IAAI,CAAC,GAAGG,KAAK,CACrBE,QAAQ,CAACC,OAAO,CAACH,KAAK,CAACI,QAAQ,EAAE,GAAGf,UAAU,CAACS,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAC9DO,MAAM,EAAE,CAAA;AACb,GAAC,CAAC,CAAA;AACF,EAAA,OAAOhB,UAAU,CAAA;AACnB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveSelection.min.mjs","sources":["../../../src/shapes/ActiveSelection.ts"],"sourcesContent":["import type { ControlRenderingStyleOverride } from '../controls/controlRendering';\nimport { classRegistry } from '../ClassRegistry';\nimport type { GroupProps } from './Group';\nimport { Group } from './Group';\nimport type { FabricObject } from './Object/FabricObject';\nimport {\n LAYOUT_TYPE_ADDED,\n LAYOUT_TYPE_REMOVED,\n} from '../LayoutManager/constants';\nimport type { TClassProperties } from '../typedefs';\nimport { log } from '../util/internals/console';\nimport { ActiveSelectionLayoutManager } from '../LayoutManager/ActiveSelectionLayoutManager';\n\nexport type MultiSelectionStacking = 'canvas-stacking' | 'selection-order';\n\nexport interface ActiveSelectionOptions extends GroupProps {\n multiSelectionStacking: MultiSelectionStacking;\n}\n\nconst activeSelectionDefaultValues: Partial<TClassProperties<ActiveSelection>> =\n {\n multiSelectionStacking: 'canvas-stacking',\n };\n\n/**\n * Used by Canvas to manage selection.\n *\n * @example\n * class MyActiveSelection extends ActiveSelection {\n * ...\n * }\n *\n * // override the default `ActiveSelection` class\n * classRegistry.setClass(MyActiveSelection)\n */\nexport class ActiveSelection extends Group {\n static type = 'ActiveSelection';\n\n static ownDefaults: Record<string, any> = activeSelectionDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return { ...super.getDefaults(), ...ActiveSelection.ownDefaults };\n }\n\n /**\n * The ActiveSelection needs to use the ActiveSelectionLayoutManager\n * or selections on interactive groups may be broken\n */\n declare layoutManager: ActiveSelectionLayoutManager;\n\n /**\n * controls how selected objects are added during a multiselection event\n * - `canvas-stacking` adds the selected object to the active selection while respecting canvas object stacking order\n * - `selection-order` adds the selected object to the top of the stack,\n * meaning that the stack is ordered by the order in which objects were selected\n * @default `canvas-stacking`\n */\n declare multiSelectionStacking: MultiSelectionStacking;\n\n constructor(\n objects: FabricObject[] = [],\n options: Partial<ActiveSelectionOptions> = {}\n ) {\n super();\n Object.assign(this, ActiveSelection.ownDefaults);\n this.setOptions(options);\n const { left, top, layoutManager } = options;\n this.groupInit(objects, {\n left,\n top,\n layoutManager: layoutManager ?? new ActiveSelectionLayoutManager(),\n });\n }\n\n /**\n * @private\n */\n _shouldSetNestedCoords() {\n return true;\n }\n\n /**\n * @private\n * @override we don't want the selection monitor to be active\n */\n __objectSelectionMonitor() {\n // noop\n }\n\n /**\n * Adds objects with respect to {@link multiSelectionStacking}\n * @param targets object to add to selection\n */\n multiSelectAdd(...targets: FabricObject[]) {\n if (this.multiSelectionStacking === 'selection-order') {\n this.add(...targets);\n } else {\n // respect object stacking as it is on canvas\n // perf enhancement for large ActiveSelection: consider a binary search of `isInFrontOf`\n targets.forEach((target) => {\n const index = this._objects.findIndex((obj) => obj.isInFrontOf(target));\n const insertAt =\n index === -1\n ? // `target` is in front of all other objects\n this.size()\n : index;\n this.insertAt(insertAt, target);\n });\n }\n }\n\n /**\n * @override block ancestors/descendants of selected objects from being selected to prevent a circular object tree\n */\n canEnterGroup(object: FabricObject) {\n if (\n this.getObjects().some(\n (o) => o.isDescendantOf(object) || object.isDescendantOf(o)\n )\n ) {\n // prevent circular object tree\n log(\n 'error',\n 'ActiveSelection: circular object trees are not supported, this call has no effect'\n );\n return false;\n }\n\n return super.canEnterGroup(object);\n }\n\n /**\n * Change an object so that it can be part of an active selection.\n * this method is called by multiselectAdd from canvas code.\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane\n */\n enterGroup(object: FabricObject, removeParentTransform?: boolean) {\n // This condition check that the object has currently a group, and the group\n // is also its parent, meaning that is not in an active selection, but is\n // in a normal group.\n if (object.parent && object.parent === object.group) {\n // Disconnect the object from the group functionalities, but keep the ref parent intact\n // for later re-enter\n object.parent._exitGroup(object);\n // in this case the object is probably inside an active selection.\n } else if (object.group && object.parent !== object.group) {\n // in this case group.remove will also clear the old parent reference.\n object.group.remove(object);\n }\n // enter the active selection from a render perspective\n // the object will be in the objects array of both the ActiveSelection and the Group\n // but referenced in the group's _activeObjects so that it won't be rendered twice.\n this._enterGroup(object, removeParentTransform);\n }\n\n /**\n * we want objects to retain their canvas ref when exiting instance\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it\n */\n exitGroup(object: FabricObject, removeParentTransform?: boolean) {\n this._exitGroup(object, removeParentTransform);\n // return to parent\n object.parent && object.parent._enterGroup(object, true);\n }\n\n /**\n * @private\n * @param {'added'|'removed'} type\n * @param {FabricObject[]} targets\n */\n _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]) {\n super._onAfterObjectsChange(type, targets);\n const groups = new Set<Group>();\n targets.forEach((object) => {\n const { parent } = object;\n parent && groups.add(parent);\n });\n if (type === LAYOUT_TYPE_REMOVED) {\n // invalidate groups' layout and mark as dirty\n groups.forEach((group) => {\n group._onAfterObjectsChange(LAYOUT_TYPE_ADDED, targets);\n });\n } else {\n // mark groups as dirty\n groups.forEach((group) => {\n group._set('dirty', true);\n });\n }\n }\n\n /**\n * @override remove all objects\n */\n onDeselect() {\n this.removeAll();\n return false;\n }\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString() {\n return `#<ActiveSelection: (${this.complexity()})>`;\n }\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache() {\n return false;\n }\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache() {\n return false;\n }\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls(\n ctx: CanvasRenderingContext2D,\n styleOverride?: ControlRenderingStyleOverride,\n childrenOverride?: ControlRenderingStyleOverride\n ) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n const options = {\n hasControls: false,\n ...childrenOverride,\n forActiveSelection: true,\n };\n for (let i = 0; i < this._objects.length; i++) {\n this._objects[i]._renderControls(ctx, options);\n }\n super._renderControls(ctx, styleOverride);\n ctx.restore();\n }\n}\n\nclassRegistry.setClass(ActiveSelection);\nclassRegistry.setClass(ActiveSelection, 'activeSelection');\n"],"names":["ActiveSelection","Group","getDefaults","_objectSpread","super","ownDefaults","constructor","objects","arguments","length","undefined","options","Object","assign","this","setOptions","left","top","layoutManager","groupInit","ActiveSelectionLayoutManager","_shouldSetNestedCoords","__objectSelectionMonitor","multiSelectAdd","_len","targets","Array","_key","multiSelectionStacking","add","forEach","target","index","_objects","findIndex","obj","isInFrontOf","insertAt","size","canEnterGroup","object","getObjects","some","o","isDescendantOf","log","enterGroup","removeParentTransform","parent","group","_exitGroup","remove","_enterGroup","exitGroup","_onAfterObjectsChange","type","groups","Set","LAYOUT_TYPE_REMOVED","LAYOUT_TYPE_ADDED","_set","onDeselect","removeAll","toString","concat","complexity","shouldCache","isOnACache","_renderControls","ctx","styleOverride","childrenOverride","save","globalAlpha","isMoving","borderOpacityWhenMoving","hasControls","forActiveSelection","i","restore","_defineProperty","classRegistry","setClass"],"mappings":"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"}
1
+ {"version":3,"file":"ActiveSelection.min.mjs","sources":["../../../src/shapes/ActiveSelection.ts"],"sourcesContent":["import type { ControlRenderingStyleOverride } from '../controls/controlRendering';\nimport { classRegistry } from '../ClassRegistry';\nimport type { GroupProps } from './Group';\nimport { Group } from './Group';\nimport type { FabricObject } from './Object/FabricObject';\nimport {\n LAYOUT_TYPE_ADDED,\n LAYOUT_TYPE_REMOVED,\n} from '../LayoutManager/constants';\nimport type { TClassProperties } from '../typedefs';\nimport { log } from '../util/internals/console';\nimport { ActiveSelectionLayoutManager } from '../LayoutManager/ActiveSelectionLayoutManager';\n\nexport type MultiSelectionStacking = 'canvas-stacking' | 'selection-order';\n\nexport interface ActiveSelectionOptions extends GroupProps {\n multiSelectionStacking: MultiSelectionStacking;\n}\n\nconst activeSelectionDefaultValues: Partial<TClassProperties<ActiveSelection>> =\n {\n multiSelectionStacking: 'canvas-stacking',\n };\n\n/**\n * Used by Canvas to manage selection.\n *\n * @example\n * class MyActiveSelection extends ActiveSelection {\n * ...\n * }\n *\n * // override the default `ActiveSelection` class\n * classRegistry.setClass(MyActiveSelection)\n */\nexport class ActiveSelection extends Group {\n static type = 'ActiveSelection';\n\n static ownDefaults: Record<string, any> = activeSelectionDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return { ...super.getDefaults(), ...ActiveSelection.ownDefaults };\n }\n\n /**\n * The ActiveSelection needs to use the ActiveSelectionLayoutManager\n * or selections on interactive groups may be broken\n */\n declare layoutManager: ActiveSelectionLayoutManager;\n\n /**\n * controls how selected objects are added during a multiselection event\n * - `canvas-stacking` adds the selected object to the active selection while respecting canvas object stacking order\n * - `selection-order` adds the selected object to the top of the stack,\n * meaning that the stack is ordered by the order in which objects were selected\n * @default `canvas-stacking`\n */\n declare multiSelectionStacking: MultiSelectionStacking;\n\n constructor(\n objects: FabricObject[] = [],\n options: Partial<ActiveSelectionOptions> = {},\n ) {\n super();\n Object.assign(this, ActiveSelection.ownDefaults);\n this.setOptions(options);\n const { left, top, layoutManager } = options;\n this.groupInit(objects, {\n left,\n top,\n layoutManager: layoutManager ?? new ActiveSelectionLayoutManager(),\n });\n }\n\n /**\n * @private\n */\n _shouldSetNestedCoords() {\n return true;\n }\n\n /**\n * @private\n * @override we don't want the selection monitor to be active\n */\n __objectSelectionMonitor() {\n // noop\n }\n\n /**\n * Adds objects with respect to {@link multiSelectionStacking}\n * @param targets object to add to selection\n */\n multiSelectAdd(...targets: FabricObject[]) {\n if (this.multiSelectionStacking === 'selection-order') {\n this.add(...targets);\n } else {\n // respect object stacking as it is on canvas\n // perf enhancement for large ActiveSelection: consider a binary search of `isInFrontOf`\n targets.forEach((target) => {\n const index = this._objects.findIndex((obj) => obj.isInFrontOf(target));\n const insertAt =\n index === -1\n ? // `target` is in front of all other objects\n this.size()\n : index;\n this.insertAt(insertAt, target);\n });\n }\n }\n\n /**\n * @override block ancestors/descendants of selected objects from being selected to prevent a circular object tree\n */\n canEnterGroup(object: FabricObject) {\n if (\n this.getObjects().some(\n (o) => o.isDescendantOf(object) || object.isDescendantOf(o),\n )\n ) {\n // prevent circular object tree\n log(\n 'error',\n 'ActiveSelection: circular object trees are not supported, this call has no effect',\n );\n return false;\n }\n\n return super.canEnterGroup(object);\n }\n\n /**\n * Change an object so that it can be part of an active selection.\n * this method is called by multiselectAdd from canvas code.\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane\n */\n enterGroup(object: FabricObject, removeParentTransform?: boolean) {\n // This condition check that the object has currently a group, and the group\n // is also its parent, meaning that is not in an active selection, but is\n // in a normal group.\n if (object.parent && object.parent === object.group) {\n // Disconnect the object from the group functionalities, but keep the ref parent intact\n // for later re-enter\n object.parent._exitGroup(object);\n // in this case the object is probably inside an active selection.\n } else if (object.group && object.parent !== object.group) {\n // in this case group.remove will also clear the old parent reference.\n object.group.remove(object);\n }\n // enter the active selection from a render perspective\n // the object will be in the objects array of both the ActiveSelection and the Group\n // but referenced in the group's _activeObjects so that it won't be rendered twice.\n this._enterGroup(object, removeParentTransform);\n }\n\n /**\n * we want objects to retain their canvas ref when exiting instance\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it\n */\n exitGroup(object: FabricObject, removeParentTransform?: boolean) {\n this._exitGroup(object, removeParentTransform);\n // return to parent\n object.parent && object.parent._enterGroup(object, true);\n }\n\n /**\n * @private\n * @param {'added'|'removed'} type\n * @param {FabricObject[]} targets\n */\n _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]) {\n super._onAfterObjectsChange(type, targets);\n const groups = new Set<Group>();\n targets.forEach((object) => {\n const { parent } = object;\n parent && groups.add(parent);\n });\n if (type === LAYOUT_TYPE_REMOVED) {\n // invalidate groups' layout and mark as dirty\n groups.forEach((group) => {\n group._onAfterObjectsChange(LAYOUT_TYPE_ADDED, targets);\n });\n } else {\n // mark groups as dirty\n groups.forEach((group) => {\n group._set('dirty', true);\n });\n }\n }\n\n /**\n * @override remove all objects\n */\n onDeselect() {\n this.removeAll();\n return false;\n }\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString() {\n return `#<ActiveSelection: (${this.complexity()})>`;\n }\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache() {\n return false;\n }\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache() {\n return false;\n }\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls(\n ctx: CanvasRenderingContext2D,\n styleOverride?: ControlRenderingStyleOverride,\n childrenOverride?: ControlRenderingStyleOverride,\n ) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n const options = {\n hasControls: false,\n ...childrenOverride,\n forActiveSelection: true,\n };\n for (let i = 0; i < this._objects.length; i++) {\n this._objects[i]._renderControls(ctx, options);\n }\n super._renderControls(ctx, styleOverride);\n ctx.restore();\n }\n}\n\nclassRegistry.setClass(ActiveSelection);\nclassRegistry.setClass(ActiveSelection, 'activeSelection');\n"],"names":["ActiveSelection","Group","getDefaults","_objectSpread","super","ownDefaults","constructor","objects","arguments","length","undefined","options","Object","assign","this","setOptions","left","top","layoutManager","groupInit","ActiveSelectionLayoutManager","_shouldSetNestedCoords","__objectSelectionMonitor","multiSelectAdd","_len","targets","Array","_key","multiSelectionStacking","add","forEach","target","index","_objects","findIndex","obj","isInFrontOf","insertAt","size","canEnterGroup","object","getObjects","some","o","isDescendantOf","log","enterGroup","removeParentTransform","parent","group","_exitGroup","remove","_enterGroup","exitGroup","_onAfterObjectsChange","type","groups","Set","LAYOUT_TYPE_REMOVED","LAYOUT_TYPE_ADDED","_set","onDeselect","removeAll","toString","concat","complexity","shouldCache","isOnACache","_renderControls","ctx","styleOverride","childrenOverride","save","globalAlpha","isMoving","borderOpacityWhenMoving","hasControls","forActiveSelection","i","restore","_defineProperty","classRegistry","setClass"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveSelection.mjs","sources":["../../../src/shapes/ActiveSelection.ts"],"sourcesContent":["import type { ControlRenderingStyleOverride } from '../controls/controlRendering';\nimport { classRegistry } from '../ClassRegistry';\nimport type { GroupProps } from './Group';\nimport { Group } from './Group';\nimport type { FabricObject } from './Object/FabricObject';\nimport {\n LAYOUT_TYPE_ADDED,\n LAYOUT_TYPE_REMOVED,\n} from '../LayoutManager/constants';\nimport type { TClassProperties } from '../typedefs';\nimport { log } from '../util/internals/console';\nimport { ActiveSelectionLayoutManager } from '../LayoutManager/ActiveSelectionLayoutManager';\n\nexport type MultiSelectionStacking = 'canvas-stacking' | 'selection-order';\n\nexport interface ActiveSelectionOptions extends GroupProps {\n multiSelectionStacking: MultiSelectionStacking;\n}\n\nconst activeSelectionDefaultValues: Partial<TClassProperties<ActiveSelection>> =\n {\n multiSelectionStacking: 'canvas-stacking',\n };\n\n/**\n * Used by Canvas to manage selection.\n *\n * @example\n * class MyActiveSelection extends ActiveSelection {\n * ...\n * }\n *\n * // override the default `ActiveSelection` class\n * classRegistry.setClass(MyActiveSelection)\n */\nexport class ActiveSelection extends Group {\n static type = 'ActiveSelection';\n\n static ownDefaults: Record<string, any> = activeSelectionDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return { ...super.getDefaults(), ...ActiveSelection.ownDefaults };\n }\n\n /**\n * The ActiveSelection needs to use the ActiveSelectionLayoutManager\n * or selections on interactive groups may be broken\n */\n declare layoutManager: ActiveSelectionLayoutManager;\n\n /**\n * controls how selected objects are added during a multiselection event\n * - `canvas-stacking` adds the selected object to the active selection while respecting canvas object stacking order\n * - `selection-order` adds the selected object to the top of the stack,\n * meaning that the stack is ordered by the order in which objects were selected\n * @default `canvas-stacking`\n */\n declare multiSelectionStacking: MultiSelectionStacking;\n\n constructor(\n objects: FabricObject[] = [],\n options: Partial<ActiveSelectionOptions> = {}\n ) {\n super();\n Object.assign(this, ActiveSelection.ownDefaults);\n this.setOptions(options);\n const { left, top, layoutManager } = options;\n this.groupInit(objects, {\n left,\n top,\n layoutManager: layoutManager ?? new ActiveSelectionLayoutManager(),\n });\n }\n\n /**\n * @private\n */\n _shouldSetNestedCoords() {\n return true;\n }\n\n /**\n * @private\n * @override we don't want the selection monitor to be active\n */\n __objectSelectionMonitor() {\n // noop\n }\n\n /**\n * Adds objects with respect to {@link multiSelectionStacking}\n * @param targets object to add to selection\n */\n multiSelectAdd(...targets: FabricObject[]) {\n if (this.multiSelectionStacking === 'selection-order') {\n this.add(...targets);\n } else {\n // respect object stacking as it is on canvas\n // perf enhancement for large ActiveSelection: consider a binary search of `isInFrontOf`\n targets.forEach((target) => {\n const index = this._objects.findIndex((obj) => obj.isInFrontOf(target));\n const insertAt =\n index === -1\n ? // `target` is in front of all other objects\n this.size()\n : index;\n this.insertAt(insertAt, target);\n });\n }\n }\n\n /**\n * @override block ancestors/descendants of selected objects from being selected to prevent a circular object tree\n */\n canEnterGroup(object: FabricObject) {\n if (\n this.getObjects().some(\n (o) => o.isDescendantOf(object) || object.isDescendantOf(o)\n )\n ) {\n // prevent circular object tree\n log(\n 'error',\n 'ActiveSelection: circular object trees are not supported, this call has no effect'\n );\n return false;\n }\n\n return super.canEnterGroup(object);\n }\n\n /**\n * Change an object so that it can be part of an active selection.\n * this method is called by multiselectAdd from canvas code.\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane\n */\n enterGroup(object: FabricObject, removeParentTransform?: boolean) {\n // This condition check that the object has currently a group, and the group\n // is also its parent, meaning that is not in an active selection, but is\n // in a normal group.\n if (object.parent && object.parent === object.group) {\n // Disconnect the object from the group functionalities, but keep the ref parent intact\n // for later re-enter\n object.parent._exitGroup(object);\n // in this case the object is probably inside an active selection.\n } else if (object.group && object.parent !== object.group) {\n // in this case group.remove will also clear the old parent reference.\n object.group.remove(object);\n }\n // enter the active selection from a render perspective\n // the object will be in the objects array of both the ActiveSelection and the Group\n // but referenced in the group's _activeObjects so that it won't be rendered twice.\n this._enterGroup(object, removeParentTransform);\n }\n\n /**\n * we want objects to retain their canvas ref when exiting instance\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it\n */\n exitGroup(object: FabricObject, removeParentTransform?: boolean) {\n this._exitGroup(object, removeParentTransform);\n // return to parent\n object.parent && object.parent._enterGroup(object, true);\n }\n\n /**\n * @private\n * @param {'added'|'removed'} type\n * @param {FabricObject[]} targets\n */\n _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]) {\n super._onAfterObjectsChange(type, targets);\n const groups = new Set<Group>();\n targets.forEach((object) => {\n const { parent } = object;\n parent && groups.add(parent);\n });\n if (type === LAYOUT_TYPE_REMOVED) {\n // invalidate groups' layout and mark as dirty\n groups.forEach((group) => {\n group._onAfterObjectsChange(LAYOUT_TYPE_ADDED, targets);\n });\n } else {\n // mark groups as dirty\n groups.forEach((group) => {\n group._set('dirty', true);\n });\n }\n }\n\n /**\n * @override remove all objects\n */\n onDeselect() {\n this.removeAll();\n return false;\n }\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString() {\n return `#<ActiveSelection: (${this.complexity()})>`;\n }\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache() {\n return false;\n }\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache() {\n return false;\n }\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls(\n ctx: CanvasRenderingContext2D,\n styleOverride?: ControlRenderingStyleOverride,\n childrenOverride?: ControlRenderingStyleOverride\n ) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n const options = {\n hasControls: false,\n ...childrenOverride,\n forActiveSelection: true,\n };\n for (let i = 0; i < this._objects.length; i++) {\n this._objects[i]._renderControls(ctx, options);\n }\n super._renderControls(ctx, styleOverride);\n ctx.restore();\n }\n}\n\nclassRegistry.setClass(ActiveSelection);\nclassRegistry.setClass(ActiveSelection, 'activeSelection');\n"],"names":["activeSelectionDefaultValues","multiSelectionStacking","ActiveSelection","Group","getDefaults","_objectSpread","ownDefaults","constructor","objects","arguments","length","undefined","options","Object","assign","setOptions","left","top","layoutManager","groupInit","ActiveSelectionLayoutManager","_shouldSetNestedCoords","__objectSelectionMonitor","multiSelectAdd","_len","targets","Array","_key","add","forEach","target","index","_objects","findIndex","obj","isInFrontOf","insertAt","size","canEnterGroup","object","getObjects","some","o","isDescendantOf","log","enterGroup","removeParentTransform","parent","group","_exitGroup","remove","_enterGroup","exitGroup","_onAfterObjectsChange","type","groups","Set","LAYOUT_TYPE_REMOVED","LAYOUT_TYPE_ADDED","_set","onDeselect","removeAll","toString","concat","complexity","shouldCache","isOnACache","_renderControls","ctx","styleOverride","childrenOverride","save","globalAlpha","isMoving","borderOpacityWhenMoving","hasControls","forActiveSelection","i","restore","_defineProperty","classRegistry","setClass"],"mappings":"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"}
1
+ {"version":3,"file":"ActiveSelection.mjs","sources":["../../../src/shapes/ActiveSelection.ts"],"sourcesContent":["import type { ControlRenderingStyleOverride } from '../controls/controlRendering';\nimport { classRegistry } from '../ClassRegistry';\nimport type { GroupProps } from './Group';\nimport { Group } from './Group';\nimport type { FabricObject } from './Object/FabricObject';\nimport {\n LAYOUT_TYPE_ADDED,\n LAYOUT_TYPE_REMOVED,\n} from '../LayoutManager/constants';\nimport type { TClassProperties } from '../typedefs';\nimport { log } from '../util/internals/console';\nimport { ActiveSelectionLayoutManager } from '../LayoutManager/ActiveSelectionLayoutManager';\n\nexport type MultiSelectionStacking = 'canvas-stacking' | 'selection-order';\n\nexport interface ActiveSelectionOptions extends GroupProps {\n multiSelectionStacking: MultiSelectionStacking;\n}\n\nconst activeSelectionDefaultValues: Partial<TClassProperties<ActiveSelection>> =\n {\n multiSelectionStacking: 'canvas-stacking',\n };\n\n/**\n * Used by Canvas to manage selection.\n *\n * @example\n * class MyActiveSelection extends ActiveSelection {\n * ...\n * }\n *\n * // override the default `ActiveSelection` class\n * classRegistry.setClass(MyActiveSelection)\n */\nexport class ActiveSelection extends Group {\n static type = 'ActiveSelection';\n\n static ownDefaults: Record<string, any> = activeSelectionDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return { ...super.getDefaults(), ...ActiveSelection.ownDefaults };\n }\n\n /**\n * The ActiveSelection needs to use the ActiveSelectionLayoutManager\n * or selections on interactive groups may be broken\n */\n declare layoutManager: ActiveSelectionLayoutManager;\n\n /**\n * controls how selected objects are added during a multiselection event\n * - `canvas-stacking` adds the selected object to the active selection while respecting canvas object stacking order\n * - `selection-order` adds the selected object to the top of the stack,\n * meaning that the stack is ordered by the order in which objects were selected\n * @default `canvas-stacking`\n */\n declare multiSelectionStacking: MultiSelectionStacking;\n\n constructor(\n objects: FabricObject[] = [],\n options: Partial<ActiveSelectionOptions> = {},\n ) {\n super();\n Object.assign(this, ActiveSelection.ownDefaults);\n this.setOptions(options);\n const { left, top, layoutManager } = options;\n this.groupInit(objects, {\n left,\n top,\n layoutManager: layoutManager ?? new ActiveSelectionLayoutManager(),\n });\n }\n\n /**\n * @private\n */\n _shouldSetNestedCoords() {\n return true;\n }\n\n /**\n * @private\n * @override we don't want the selection monitor to be active\n */\n __objectSelectionMonitor() {\n // noop\n }\n\n /**\n * Adds objects with respect to {@link multiSelectionStacking}\n * @param targets object to add to selection\n */\n multiSelectAdd(...targets: FabricObject[]) {\n if (this.multiSelectionStacking === 'selection-order') {\n this.add(...targets);\n } else {\n // respect object stacking as it is on canvas\n // perf enhancement for large ActiveSelection: consider a binary search of `isInFrontOf`\n targets.forEach((target) => {\n const index = this._objects.findIndex((obj) => obj.isInFrontOf(target));\n const insertAt =\n index === -1\n ? // `target` is in front of all other objects\n this.size()\n : index;\n this.insertAt(insertAt, target);\n });\n }\n }\n\n /**\n * @override block ancestors/descendants of selected objects from being selected to prevent a circular object tree\n */\n canEnterGroup(object: FabricObject) {\n if (\n this.getObjects().some(\n (o) => o.isDescendantOf(object) || object.isDescendantOf(o),\n )\n ) {\n // prevent circular object tree\n log(\n 'error',\n 'ActiveSelection: circular object trees are not supported, this call has no effect',\n );\n return false;\n }\n\n return super.canEnterGroup(object);\n }\n\n /**\n * Change an object so that it can be part of an active selection.\n * this method is called by multiselectAdd from canvas code.\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object is in canvas coordinate plane\n */\n enterGroup(object: FabricObject, removeParentTransform?: boolean) {\n // This condition check that the object has currently a group, and the group\n // is also its parent, meaning that is not in an active selection, but is\n // in a normal group.\n if (object.parent && object.parent === object.group) {\n // Disconnect the object from the group functionalities, but keep the ref parent intact\n // for later re-enter\n object.parent._exitGroup(object);\n // in this case the object is probably inside an active selection.\n } else if (object.group && object.parent !== object.group) {\n // in this case group.remove will also clear the old parent reference.\n object.group.remove(object);\n }\n // enter the active selection from a render perspective\n // the object will be in the objects array of both the ActiveSelection and the Group\n // but referenced in the group's _activeObjects so that it won't be rendered twice.\n this._enterGroup(object, removeParentTransform);\n }\n\n /**\n * we want objects to retain their canvas ref when exiting instance\n * @private\n * @param {FabricObject} object\n * @param {boolean} [removeParentTransform] true if object should exit group without applying group's transform to it\n */\n exitGroup(object: FabricObject, removeParentTransform?: boolean) {\n this._exitGroup(object, removeParentTransform);\n // return to parent\n object.parent && object.parent._enterGroup(object, true);\n }\n\n /**\n * @private\n * @param {'added'|'removed'} type\n * @param {FabricObject[]} targets\n */\n _onAfterObjectsChange(type: 'added' | 'removed', targets: FabricObject[]) {\n super._onAfterObjectsChange(type, targets);\n const groups = new Set<Group>();\n targets.forEach((object) => {\n const { parent } = object;\n parent && groups.add(parent);\n });\n if (type === LAYOUT_TYPE_REMOVED) {\n // invalidate groups' layout and mark as dirty\n groups.forEach((group) => {\n group._onAfterObjectsChange(LAYOUT_TYPE_ADDED, targets);\n });\n } else {\n // mark groups as dirty\n groups.forEach((group) => {\n group._set('dirty', true);\n });\n }\n }\n\n /**\n * @override remove all objects\n */\n onDeselect() {\n this.removeAll();\n return false;\n }\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString() {\n return `#<ActiveSelection: (${this.complexity()})>`;\n }\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache() {\n return false;\n }\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache() {\n return false;\n }\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls(\n ctx: CanvasRenderingContext2D,\n styleOverride?: ControlRenderingStyleOverride,\n childrenOverride?: ControlRenderingStyleOverride,\n ) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n const options = {\n hasControls: false,\n ...childrenOverride,\n forActiveSelection: true,\n };\n for (let i = 0; i < this._objects.length; i++) {\n this._objects[i]._renderControls(ctx, options);\n }\n super._renderControls(ctx, styleOverride);\n ctx.restore();\n }\n}\n\nclassRegistry.setClass(ActiveSelection);\nclassRegistry.setClass(ActiveSelection, 'activeSelection');\n"],"names":["activeSelectionDefaultValues","multiSelectionStacking","ActiveSelection","Group","getDefaults","_objectSpread","ownDefaults","constructor","objects","arguments","length","undefined","options","Object","assign","setOptions","left","top","layoutManager","groupInit","ActiveSelectionLayoutManager","_shouldSetNestedCoords","__objectSelectionMonitor","multiSelectAdd","_len","targets","Array","_key","add","forEach","target","index","_objects","findIndex","obj","isInFrontOf","insertAt","size","canEnterGroup","object","getObjects","some","o","isDescendantOf","log","enterGroup","removeParentTransform","parent","group","_exitGroup","remove","_enterGroup","exitGroup","_onAfterObjectsChange","type","groups","Set","LAYOUT_TYPE_REMOVED","LAYOUT_TYPE_ADDED","_set","onDeselect","removeAll","toString","concat","complexity","shouldCache","isOnACache","_renderControls","ctx","styleOverride","childrenOverride","save","globalAlpha","isMoving","borderOpacityWhenMoving","hasControls","forActiveSelection","i","restore","_defineProperty","classRegistry","setClass"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Circle.min.mjs","sources":["../../../src/shapes/Circle.ts"],"sourcesContent":["import type { ObjectEvents } from '../EventTypeDefs';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport { cos } from '../util/misc/cos';\nimport { degreesToRadians } from '../util/misc/radiansDegreesConversion';\nimport { sin } from '../util/misc/sin';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { CSSRules } from '../parser/typedefs';\nimport { SCALE_X, SCALE_Y } from '../constants';\n\ninterface UniqueCircleProps {\n /**\n * Radius of this circle\n * @type Number\n * @default 0\n */\n radius: number;\n\n /**\n * Angle for the start of the circle, in degrees.\n * @type TDegree 0 - 359\n * @default 0\n */\n startAngle: number;\n\n /**\n * Angle for the end of the circle, in degrees\n * @type TDegree 1 - 360\n * @default 360\n */\n endAngle: number;\n\n /**\n * Orientation for the direction of the circle.\n * Setting to true will switch the arc of the circle to traverse from startAngle to endAngle in a counter-clockwise direction.\n * Note: this will only change how the circle is drawn, and does not affect rotational transformation.\n * @default false\n */\n counterClockwise: boolean;\n}\n\nexport interface SerializedCircleProps\n extends SerializedObjectProps,\n UniqueCircleProps {}\n\nexport interface CircleProps extends FabricObjectProps, UniqueCircleProps {}\n\nconst CIRCLE_PROPS = [\n 'radius',\n 'startAngle',\n 'endAngle',\n 'counterClockwise',\n] as const;\n\nexport const circleDefaultValues: Partial<TClassProperties<Circle>> = {\n radius: 0,\n startAngle: 0,\n endAngle: 360,\n counterClockwise: false,\n};\n\nexport class Circle<\n Props extends TOptions<CircleProps> = Partial<CircleProps>,\n SProps extends SerializedCircleProps = SerializedCircleProps,\n EventSpec extends ObjectEvents = ObjectEvents\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements UniqueCircleProps\n{\n declare radius: number;\n declare startAngle: number;\n declare endAngle: number;\n declare counterClockwise: boolean;\n\n static type = 'Circle';\n\n static cacheProperties = [...cacheProperties, ...CIRCLE_PROPS];\n\n static ownDefaults = circleDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Circle.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Circle.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set(key: string, value: any) {\n super._set(key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n degreesToRadians(this.startAngle),\n degreesToRadians(this.endAngle),\n this.counterClockwise\n );\n this._renderPaintInOrder(ctx);\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX(): number {\n return this.get('radius') * this.get(SCALE_X);\n }\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY(): number {\n return this.get('radius') * this.get(SCALE_Y);\n }\n\n /**\n * Sets radius of an object (and updates width accordingly)\n */\n setRadius(value: number) {\n this.radius = value;\n this.set({ width: value * 2, height: value * 2 });\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...CIRCLE_PROPS, ...propertiesToInclude]);\n }\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n const angle = (this.endAngle - this.startAngle) % 360;\n\n if (angle === 0) {\n return [\n '<circle ',\n 'COMMON_PARTS',\n 'cx=\"0\" cy=\"0\" ',\n 'r=\"',\n `${this.radius}`,\n '\" />\\n',\n ];\n } else {\n const { radius } = this;\n const start = degreesToRadians(this.startAngle),\n end = degreesToRadians(this.endAngle),\n startX = cos(start) * radius,\n startY = sin(start) * radius,\n endX = cos(end) * radius,\n endY = sin(end) * radius,\n largeFlag = angle > 180 ? 1 : 0,\n sweepFlag = this.counterClockwise ? 0 : 1;\n return [\n `<path d=\"M ${startX} ${startY} A ${radius} ${radius} 0 ${largeFlag} ${sweepFlag} ${endX} ${endY}\" `,\n 'COMMON_PARTS',\n ' />\\n',\n ];\n }\n }\n /* _TO_SVG_END_ */\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Circle.fromElement})\n * @static\n * @memberOf Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n static ATTRIBUTE_NAMES = ['cx', 'cy', 'r', ...SHARED_ATTRIBUTES];\n\n /**\n * Returns {@link Circle} instance from an SVG element\n * @static\n * @memberOf Circle\n * @param {HTMLElement} element Element to parse\n * @param {Object} [options] Partial Circle object to default missing properties on the element.\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules\n ): Promise<Circle> {\n const {\n left = 0,\n top = 0,\n radius = 0,\n ...otherParsedAttributes\n } = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules\n ) as Partial<CircleProps>;\n\n // this probably requires to be fixed for default origins not being top/left.\n\n return new this({\n ...otherParsedAttributes,\n radius,\n left: left - radius,\n top: top - radius,\n });\n }\n\n /* _FROM_SVG_END_ */\n\n /**\n * @todo how do we declare this??\n */\n static fromObject<T extends TOptions<SerializedCircleProps>>(object: T) {\n return super._fromObject<Circle>(object);\n }\n}\n\nclassRegistry.setClass(Circle);\nclassRegistry.setSVGClass(Circle);\n"],"names":["CIRCLE_PROPS","circleDefaultValues","radius","startAngle","endAngle","counterClockwise","Circle","FabricObject","getDefaults","_objectSpread","super","ownDefaults","constructor","options","Object","assign","this","setOptions","_set","key","value","setRadius","_render","ctx","beginPath","arc","degreesToRadians","_renderPaintInOrder","getRadiusX","get","SCALE_X","getRadiusY","SCALE_Y","set","width","height","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","angle","concat","start","end","startX","cos","startY","sin","endX","endY","largeFlag","sweepFlag","fromElement","element","cssRules","_ref","parseAttributes","ATTRIBUTE_NAMES","left","top","otherParsedAttributes","_objectWithoutProperties","_excluded","fromObject","object","_fromObject","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"ysBAkDMA,EAAe,CACnB,SACA,aACA,WACA,oBAGWC,EAAyD,CACpEC,OAAQ,EACRC,WAAY,EACZC,SAAU,IACVC,kBAAkB,GAGb,MAAMC,UAKHC,EAcR,kBAAOC,GACL,OAAAC,EAAAA,EAAA,GACKC,MAAMF,eACNF,EAAOK,YAEd,CAMAC,WAAAA,CAAYC,GACVH,QACAI,OAAOC,OAAOC,KAAMV,EAAOK,aAC3BK,KAAKC,WAAWJ,EAClB,CAOAK,IAAAA,CAAKC,EAAaC,GAOhB,OANAV,MAAMQ,KAAKC,EAAKC,GAEJ,WAARD,GACFH,KAAKK,UAAUD,GAGVJ,IACT,CAMAM,OAAAA,CAAQC,GACNA,EAAIC,YACJD,EAAIE,IACF,EACA,EACAT,KAAKd,OACLwB,EAAiBV,KAAKb,YACtBuB,EAAiBV,KAAKZ,UACtBY,KAAKX,kBAEPW,KAAKW,oBAAoBJ,EAC3B,CAMAK,UAAAA,GACE,OAAOZ,KAAKa,IAAI,UAAYb,KAAKa,IAAIC,EACvC,CAMAC,UAAAA,GACE,OAAOf,KAAKa,IAAI,UAAYb,KAAKa,IAAIG,EACvC,CAKAX,SAAAA,CAAUD,GACRJ,KAAKd,OAASkB,EACdJ,KAAKiB,IAAI,CAAEC,MAAe,EAARd,EAAWe,OAAgB,EAARf,GACvC,CAOAgB,QAAAA,GAGsD,IAApDC,EAAwBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3B,OAAO5B,MAAM0B,SAAS,IAAIpC,KAAiBqC,GAC7C,CASAI,MAAAA,GACE,MAAMC,GAAS1B,KAAKZ,SAAWY,KAAKb,YAAc,IAElD,GAAc,IAAVuC,EACF,MAAO,CACL,WACA,eACA,iBACA,MAAKC,GAAAA,OACF3B,KAAKd,QACR,UAEG,CACL,MAAMA,OAAEA,GAAWc,KACb4B,EAAQlB,EAAiBV,KAAKb,YAClC0C,EAAMnB,EAAiBV,KAAKZ,UAC5B0C,EAASC,EAAIH,GAAS1C,EACtB8C,EAASC,EAAIL,GAAS1C,EACtBgD,EAAOH,EAAIF,GAAO3C,EAClBiD,EAAOF,EAAIJ,GAAO3C,EAClBkD,EAAYV,EAAQ,IAAM,EAAI,EAC9BW,EAAYrC,KAAKX,iBAAmB,EAAI,EAC1C,MAAO,eAAAsC,OACSG,EAAM,KAAAH,OAAIK,EAAML,OAAAA,OAAMzC,EAAM,KAAAyC,OAAIzC,EAAMyC,OAAAA,OAAMS,OAAST,OAAIU,EAAS,KAAAV,OAAIO,EAAIP,KAAAA,OAAIQ,EAAI,MAChG,eACA,QAEJ,CACF,CAoBA,wBAAaG,CACXC,EACA1C,EACA2C,GAEA,MAAAC,EAKIC,EACFH,EACAvC,KAAK2C,gBACLH,IARII,KACJA,EAAO,EAACC,IACRA,EAAM,EAAC3D,OACPA,EAAS,GAEVuD,EADIK,EAAqBC,EAAAN,EAAAO,GAS1B,OAAO,IAAIhD,KAAIP,EAAAA,KACVqD,GAAqB,GAAA,CACxB5D,SACA0D,KAAMA,EAAO1D,EACb2D,IAAKA,EAAM3D,IAEf,CAOA,iBAAO+D,CAAsDC,GAC3D,OAAOxD,MAAMyD,YAAoBD,EACnC,EACDE,EAjMY9D,EAAM,OAaH,UAAQ8D,EAbX9D,EAec,kBAAA,IAAI+D,KAAoBrE,IAAaoE,EAfnD9D,EAAM,cAiBIL,GAAmBmE,EAjB7B9D,EAqJc,kBAAA,CAAC,KAAM,KAAM,OAAQgE,IA8ChDC,EAAcC,SAASlE,GACvBiE,EAAcE,YAAYnE"}
1
+ {"version":3,"file":"Circle.min.mjs","sources":["../../../src/shapes/Circle.ts"],"sourcesContent":["import type { ObjectEvents } from '../EventTypeDefs';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport { cos } from '../util/misc/cos';\nimport { degreesToRadians } from '../util/misc/radiansDegreesConversion';\nimport { sin } from '../util/misc/sin';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { CSSRules } from '../parser/typedefs';\nimport { SCALE_X, SCALE_Y } from '../constants';\n\ninterface UniqueCircleProps {\n /**\n * Radius of this circle\n * @type Number\n * @default 0\n */\n radius: number;\n\n /**\n * Angle for the start of the circle, in degrees.\n * @type TDegree 0 - 359\n * @default 0\n */\n startAngle: number;\n\n /**\n * Angle for the end of the circle, in degrees\n * @type TDegree 1 - 360\n * @default 360\n */\n endAngle: number;\n\n /**\n * Orientation for the direction of the circle.\n * Setting to true will switch the arc of the circle to traverse from startAngle to endAngle in a counter-clockwise direction.\n * Note: this will only change how the circle is drawn, and does not affect rotational transformation.\n * @default false\n */\n counterClockwise: boolean;\n}\n\nexport interface SerializedCircleProps\n extends SerializedObjectProps,\n UniqueCircleProps {}\n\nexport interface CircleProps extends FabricObjectProps, UniqueCircleProps {}\n\nconst CIRCLE_PROPS = [\n 'radius',\n 'startAngle',\n 'endAngle',\n 'counterClockwise',\n] as const;\n\nexport const circleDefaultValues: Partial<TClassProperties<Circle>> = {\n radius: 0,\n startAngle: 0,\n endAngle: 360,\n counterClockwise: false,\n};\n\nexport class Circle<\n Props extends TOptions<CircleProps> = Partial<CircleProps>,\n SProps extends SerializedCircleProps = SerializedCircleProps,\n EventSpec extends ObjectEvents = ObjectEvents,\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements UniqueCircleProps\n{\n declare radius: number;\n declare startAngle: number;\n declare endAngle: number;\n declare counterClockwise: boolean;\n\n static type = 'Circle';\n\n static cacheProperties = [...cacheProperties, ...CIRCLE_PROPS];\n\n static ownDefaults = circleDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Circle.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Circle.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set(key: string, value: any) {\n super._set(key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n degreesToRadians(this.startAngle),\n degreesToRadians(this.endAngle),\n this.counterClockwise,\n );\n this._renderPaintInOrder(ctx);\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX(): number {\n return this.get('radius') * this.get(SCALE_X);\n }\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY(): number {\n return this.get('radius') * this.get(SCALE_Y);\n }\n\n /**\n * Sets radius of an object (and updates width accordingly)\n */\n setRadius(value: number) {\n this.radius = value;\n this.set({ width: value * 2, height: value * 2 });\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...CIRCLE_PROPS, ...propertiesToInclude]);\n }\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n const angle = (this.endAngle - this.startAngle) % 360;\n\n if (angle === 0) {\n return [\n '<circle ',\n 'COMMON_PARTS',\n 'cx=\"0\" cy=\"0\" ',\n 'r=\"',\n `${this.radius}`,\n '\" />\\n',\n ];\n } else {\n const { radius } = this;\n const start = degreesToRadians(this.startAngle),\n end = degreesToRadians(this.endAngle),\n startX = cos(start) * radius,\n startY = sin(start) * radius,\n endX = cos(end) * radius,\n endY = sin(end) * radius,\n largeFlag = angle > 180 ? 1 : 0,\n sweepFlag = this.counterClockwise ? 0 : 1;\n return [\n `<path d=\"M ${startX} ${startY} A ${radius} ${radius} 0 ${largeFlag} ${sweepFlag} ${endX} ${endY}\" `,\n 'COMMON_PARTS',\n ' />\\n',\n ];\n }\n }\n /* _TO_SVG_END_ */\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Circle.fromElement})\n * @static\n * @memberOf Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n static ATTRIBUTE_NAMES = ['cx', 'cy', 'r', ...SHARED_ATTRIBUTES];\n\n /**\n * Returns {@link Circle} instance from an SVG element\n * @static\n * @memberOf Circle\n * @param {HTMLElement} element Element to parse\n * @param {Object} [options] Partial Circle object to default missing properties on the element.\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules,\n ): Promise<Circle> {\n const {\n left = 0,\n top = 0,\n radius = 0,\n ...otherParsedAttributes\n } = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules,\n ) as Partial<CircleProps>;\n\n // this probably requires to be fixed for default origins not being top/left.\n\n return new this({\n ...otherParsedAttributes,\n radius,\n left: left - radius,\n top: top - radius,\n });\n }\n\n /* _FROM_SVG_END_ */\n\n /**\n * @todo how do we declare this??\n */\n static fromObject<T extends TOptions<SerializedCircleProps>>(object: T) {\n return super._fromObject<Circle>(object);\n }\n}\n\nclassRegistry.setClass(Circle);\nclassRegistry.setSVGClass(Circle);\n"],"names":["CIRCLE_PROPS","circleDefaultValues","radius","startAngle","endAngle","counterClockwise","Circle","FabricObject","getDefaults","_objectSpread","super","ownDefaults","constructor","options","Object","assign","this","setOptions","_set","key","value","setRadius","_render","ctx","beginPath","arc","degreesToRadians","_renderPaintInOrder","getRadiusX","get","SCALE_X","getRadiusY","SCALE_Y","set","width","height","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","angle","concat","start","end","startX","cos","startY","sin","endX","endY","largeFlag","sweepFlag","fromElement","element","cssRules","_ref","parseAttributes","ATTRIBUTE_NAMES","left","top","otherParsedAttributes","_objectWithoutProperties","_excluded","fromObject","object","_fromObject","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"ysBAkDMA,EAAe,CACnB,SACA,aACA,WACA,oBAGWC,EAAyD,CACpEC,OAAQ,EACRC,WAAY,EACZC,SAAU,IACVC,kBAAkB,GAGb,MAAMC,UAKHC,EAcR,kBAAOC,GACL,OAAAC,EAAAA,EAAA,GACKC,MAAMF,eACNF,EAAOK,YAEd,CAMAC,WAAAA,CAAYC,GACVH,QACAI,OAAOC,OAAOC,KAAMV,EAAOK,aAC3BK,KAAKC,WAAWJ,EAClB,CAOAK,IAAAA,CAAKC,EAAaC,GAOhB,OANAV,MAAMQ,KAAKC,EAAKC,GAEJ,WAARD,GACFH,KAAKK,UAAUD,GAGVJ,IACT,CAMAM,OAAAA,CAAQC,GACNA,EAAIC,YACJD,EAAIE,IACF,EACA,EACAT,KAAKd,OACLwB,EAAiBV,KAAKb,YACtBuB,EAAiBV,KAAKZ,UACtBY,KAAKX,kBAEPW,KAAKW,oBAAoBJ,EAC3B,CAMAK,UAAAA,GACE,OAAOZ,KAAKa,IAAI,UAAYb,KAAKa,IAAIC,EACvC,CAMAC,UAAAA,GACE,OAAOf,KAAKa,IAAI,UAAYb,KAAKa,IAAIG,EACvC,CAKAX,SAAAA,CAAUD,GACRJ,KAAKd,OAASkB,EACdJ,KAAKiB,IAAI,CAAEC,MAAe,EAARd,EAAWe,OAAgB,EAARf,GACvC,CAOAgB,QAAAA,GAGsD,IAApDC,EAAwBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3B,OAAO5B,MAAM0B,SAAS,IAAIpC,KAAiBqC,GAC7C,CASAI,MAAAA,GACE,MAAMC,GAAS1B,KAAKZ,SAAWY,KAAKb,YAAc,IAElD,GAAc,IAAVuC,EACF,MAAO,CACL,WACA,eACA,iBACA,MAAKC,GAAAA,OACF3B,KAAKd,QACR,UAEG,CACL,MAAMA,OAAEA,GAAWc,KACb4B,EAAQlB,EAAiBV,KAAKb,YAClC0C,EAAMnB,EAAiBV,KAAKZ,UAC5B0C,EAASC,EAAIH,GAAS1C,EACtB8C,EAASC,EAAIL,GAAS1C,EACtBgD,EAAOH,EAAIF,GAAO3C,EAClBiD,EAAOF,EAAIJ,GAAO3C,EAClBkD,EAAYV,EAAQ,IAAM,EAAI,EAC9BW,EAAYrC,KAAKX,iBAAmB,EAAI,EAC1C,MAAO,eAAAsC,OACSG,EAAM,KAAAH,OAAIK,EAAML,OAAAA,OAAMzC,EAAM,KAAAyC,OAAIzC,EAAMyC,OAAAA,OAAMS,OAAST,OAAIU,EAAS,KAAAV,OAAIO,EAAIP,KAAAA,OAAIQ,EAAI,MAChG,eACA,QAEJ,CACF,CAoBA,wBAAaG,CACXC,EACA1C,EACA2C,GAEA,MAAAC,EAKIC,EACFH,EACAvC,KAAK2C,gBACLH,IARII,KACJA,EAAO,EAACC,IACRA,EAAM,EAAC3D,OACPA,EAAS,GAEVuD,EADIK,EAAqBC,EAAAN,EAAAO,GAS1B,OAAO,IAAIhD,KAAIP,EAAAA,KACVqD,GAAqB,GAAA,CACxB5D,SACA0D,KAAMA,EAAO1D,EACb2D,IAAKA,EAAM3D,IAEf,CAOA,iBAAO+D,CAAsDC,GAC3D,OAAOxD,MAAMyD,YAAoBD,EACnC,EACDE,EAjMY9D,EAAM,OAaH,UAAQ8D,EAbX9D,EAec,kBAAA,IAAI+D,KAAoBrE,IAAaoE,EAfnD9D,EAAM,cAiBIL,GAAmBmE,EAjB7B9D,EAqJc,kBAAA,CAAC,KAAM,KAAM,OAAQgE,IA8ChDC,EAAcC,SAASlE,GACvBiE,EAAcE,YAAYnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Circle.mjs","sources":["../../../src/shapes/Circle.ts"],"sourcesContent":["import type { ObjectEvents } from '../EventTypeDefs';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport { cos } from '../util/misc/cos';\nimport { degreesToRadians } from '../util/misc/radiansDegreesConversion';\nimport { sin } from '../util/misc/sin';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { CSSRules } from '../parser/typedefs';\nimport { SCALE_X, SCALE_Y } from '../constants';\n\ninterface UniqueCircleProps {\n /**\n * Radius of this circle\n * @type Number\n * @default 0\n */\n radius: number;\n\n /**\n * Angle for the start of the circle, in degrees.\n * @type TDegree 0 - 359\n * @default 0\n */\n startAngle: number;\n\n /**\n * Angle for the end of the circle, in degrees\n * @type TDegree 1 - 360\n * @default 360\n */\n endAngle: number;\n\n /**\n * Orientation for the direction of the circle.\n * Setting to true will switch the arc of the circle to traverse from startAngle to endAngle in a counter-clockwise direction.\n * Note: this will only change how the circle is drawn, and does not affect rotational transformation.\n * @default false\n */\n counterClockwise: boolean;\n}\n\nexport interface SerializedCircleProps\n extends SerializedObjectProps,\n UniqueCircleProps {}\n\nexport interface CircleProps extends FabricObjectProps, UniqueCircleProps {}\n\nconst CIRCLE_PROPS = [\n 'radius',\n 'startAngle',\n 'endAngle',\n 'counterClockwise',\n] as const;\n\nexport const circleDefaultValues: Partial<TClassProperties<Circle>> = {\n radius: 0,\n startAngle: 0,\n endAngle: 360,\n counterClockwise: false,\n};\n\nexport class Circle<\n Props extends TOptions<CircleProps> = Partial<CircleProps>,\n SProps extends SerializedCircleProps = SerializedCircleProps,\n EventSpec extends ObjectEvents = ObjectEvents\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements UniqueCircleProps\n{\n declare radius: number;\n declare startAngle: number;\n declare endAngle: number;\n declare counterClockwise: boolean;\n\n static type = 'Circle';\n\n static cacheProperties = [...cacheProperties, ...CIRCLE_PROPS];\n\n static ownDefaults = circleDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Circle.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Circle.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set(key: string, value: any) {\n super._set(key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n degreesToRadians(this.startAngle),\n degreesToRadians(this.endAngle),\n this.counterClockwise\n );\n this._renderPaintInOrder(ctx);\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX(): number {\n return this.get('radius') * this.get(SCALE_X);\n }\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY(): number {\n return this.get('radius') * this.get(SCALE_Y);\n }\n\n /**\n * Sets radius of an object (and updates width accordingly)\n */\n setRadius(value: number) {\n this.radius = value;\n this.set({ width: value * 2, height: value * 2 });\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...CIRCLE_PROPS, ...propertiesToInclude]);\n }\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n const angle = (this.endAngle - this.startAngle) % 360;\n\n if (angle === 0) {\n return [\n '<circle ',\n 'COMMON_PARTS',\n 'cx=\"0\" cy=\"0\" ',\n 'r=\"',\n `${this.radius}`,\n '\" />\\n',\n ];\n } else {\n const { radius } = this;\n const start = degreesToRadians(this.startAngle),\n end = degreesToRadians(this.endAngle),\n startX = cos(start) * radius,\n startY = sin(start) * radius,\n endX = cos(end) * radius,\n endY = sin(end) * radius,\n largeFlag = angle > 180 ? 1 : 0,\n sweepFlag = this.counterClockwise ? 0 : 1;\n return [\n `<path d=\"M ${startX} ${startY} A ${radius} ${radius} 0 ${largeFlag} ${sweepFlag} ${endX} ${endY}\" `,\n 'COMMON_PARTS',\n ' />\\n',\n ];\n }\n }\n /* _TO_SVG_END_ */\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Circle.fromElement})\n * @static\n * @memberOf Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n static ATTRIBUTE_NAMES = ['cx', 'cy', 'r', ...SHARED_ATTRIBUTES];\n\n /**\n * Returns {@link Circle} instance from an SVG element\n * @static\n * @memberOf Circle\n * @param {HTMLElement} element Element to parse\n * @param {Object} [options] Partial Circle object to default missing properties on the element.\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules\n ): Promise<Circle> {\n const {\n left = 0,\n top = 0,\n radius = 0,\n ...otherParsedAttributes\n } = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules\n ) as Partial<CircleProps>;\n\n // this probably requires to be fixed for default origins not being top/left.\n\n return new this({\n ...otherParsedAttributes,\n radius,\n left: left - radius,\n top: top - radius,\n });\n }\n\n /* _FROM_SVG_END_ */\n\n /**\n * @todo how do we declare this??\n */\n static fromObject<T extends TOptions<SerializedCircleProps>>(object: T) {\n return super._fromObject<Circle>(object);\n }\n}\n\nclassRegistry.setClass(Circle);\nclassRegistry.setSVGClass(Circle);\n"],"names":["CIRCLE_PROPS","circleDefaultValues","radius","startAngle","endAngle","counterClockwise","Circle","FabricObject","getDefaults","_objectSpread","ownDefaults","constructor","options","Object","assign","setOptions","_set","key","value","setRadius","_render","ctx","beginPath","arc","degreesToRadians","_renderPaintInOrder","getRadiusX","get","SCALE_X","getRadiusY","SCALE_Y","set","width","height","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","angle","concat","start","end","startX","cos","startY","sin","endX","endY","largeFlag","sweepFlag","fromElement","element","cssRules","_ref","parseAttributes","ATTRIBUTE_NAMES","left","top","otherParsedAttributes","_objectWithoutProperties","_excluded","fromObject","object","_fromObject","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"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"}
1
+ {"version":3,"file":"Circle.mjs","sources":["../../../src/shapes/Circle.ts"],"sourcesContent":["import type { ObjectEvents } from '../EventTypeDefs';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport { cos } from '../util/misc/cos';\nimport { degreesToRadians } from '../util/misc/radiansDegreesConversion';\nimport { sin } from '../util/misc/sin';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { CSSRules } from '../parser/typedefs';\nimport { SCALE_X, SCALE_Y } from '../constants';\n\ninterface UniqueCircleProps {\n /**\n * Radius of this circle\n * @type Number\n * @default 0\n */\n radius: number;\n\n /**\n * Angle for the start of the circle, in degrees.\n * @type TDegree 0 - 359\n * @default 0\n */\n startAngle: number;\n\n /**\n * Angle for the end of the circle, in degrees\n * @type TDegree 1 - 360\n * @default 360\n */\n endAngle: number;\n\n /**\n * Orientation for the direction of the circle.\n * Setting to true will switch the arc of the circle to traverse from startAngle to endAngle in a counter-clockwise direction.\n * Note: this will only change how the circle is drawn, and does not affect rotational transformation.\n * @default false\n */\n counterClockwise: boolean;\n}\n\nexport interface SerializedCircleProps\n extends SerializedObjectProps,\n UniqueCircleProps {}\n\nexport interface CircleProps extends FabricObjectProps, UniqueCircleProps {}\n\nconst CIRCLE_PROPS = [\n 'radius',\n 'startAngle',\n 'endAngle',\n 'counterClockwise',\n] as const;\n\nexport const circleDefaultValues: Partial<TClassProperties<Circle>> = {\n radius: 0,\n startAngle: 0,\n endAngle: 360,\n counterClockwise: false,\n};\n\nexport class Circle<\n Props extends TOptions<CircleProps> = Partial<CircleProps>,\n SProps extends SerializedCircleProps = SerializedCircleProps,\n EventSpec extends ObjectEvents = ObjectEvents,\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements UniqueCircleProps\n{\n declare radius: number;\n declare startAngle: number;\n declare endAngle: number;\n declare counterClockwise: boolean;\n\n static type = 'Circle';\n\n static cacheProperties = [...cacheProperties, ...CIRCLE_PROPS];\n\n static ownDefaults = circleDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Circle.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Circle.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set(key: string, value: any) {\n super._set(key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n degreesToRadians(this.startAngle),\n degreesToRadians(this.endAngle),\n this.counterClockwise,\n );\n this._renderPaintInOrder(ctx);\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX(): number {\n return this.get('radius') * this.get(SCALE_X);\n }\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY(): number {\n return this.get('radius') * this.get(SCALE_Y);\n }\n\n /**\n * Sets radius of an object (and updates width accordingly)\n */\n setRadius(value: number) {\n this.radius = value;\n this.set({ width: value * 2, height: value * 2 });\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...CIRCLE_PROPS, ...propertiesToInclude]);\n }\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n const angle = (this.endAngle - this.startAngle) % 360;\n\n if (angle === 0) {\n return [\n '<circle ',\n 'COMMON_PARTS',\n 'cx=\"0\" cy=\"0\" ',\n 'r=\"',\n `${this.radius}`,\n '\" />\\n',\n ];\n } else {\n const { radius } = this;\n const start = degreesToRadians(this.startAngle),\n end = degreesToRadians(this.endAngle),\n startX = cos(start) * radius,\n startY = sin(start) * radius,\n endX = cos(end) * radius,\n endY = sin(end) * radius,\n largeFlag = angle > 180 ? 1 : 0,\n sweepFlag = this.counterClockwise ? 0 : 1;\n return [\n `<path d=\"M ${startX} ${startY} A ${radius} ${radius} 0 ${largeFlag} ${sweepFlag} ${endX} ${endY}\" `,\n 'COMMON_PARTS',\n ' />\\n',\n ];\n }\n }\n /* _TO_SVG_END_ */\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Circle.fromElement})\n * @static\n * @memberOf Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n static ATTRIBUTE_NAMES = ['cx', 'cy', 'r', ...SHARED_ATTRIBUTES];\n\n /**\n * Returns {@link Circle} instance from an SVG element\n * @static\n * @memberOf Circle\n * @param {HTMLElement} element Element to parse\n * @param {Object} [options] Partial Circle object to default missing properties on the element.\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules,\n ): Promise<Circle> {\n const {\n left = 0,\n top = 0,\n radius = 0,\n ...otherParsedAttributes\n } = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules,\n ) as Partial<CircleProps>;\n\n // this probably requires to be fixed for default origins not being top/left.\n\n return new this({\n ...otherParsedAttributes,\n radius,\n left: left - radius,\n top: top - radius,\n });\n }\n\n /* _FROM_SVG_END_ */\n\n /**\n * @todo how do we declare this??\n */\n static fromObject<T extends TOptions<SerializedCircleProps>>(object: T) {\n return super._fromObject<Circle>(object);\n }\n}\n\nclassRegistry.setClass(Circle);\nclassRegistry.setSVGClass(Circle);\n"],"names":["CIRCLE_PROPS","circleDefaultValues","radius","startAngle","endAngle","counterClockwise","Circle","FabricObject","getDefaults","_objectSpread","ownDefaults","constructor","options","Object","assign","setOptions","_set","key","value","setRadius","_render","ctx","beginPath","arc","degreesToRadians","_renderPaintInOrder","getRadiusX","get","SCALE_X","getRadiusY","SCALE_Y","set","width","height","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","angle","concat","start","end","startX","cos","startY","sin","endX","endY","largeFlag","sweepFlag","fromElement","element","cssRules","_ref","parseAttributes","ATTRIBUTE_NAMES","left","top","otherParsedAttributes","_objectWithoutProperties","_excluded","fromObject","object","_fromObject","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipse.min.mjs","sources":["../../../src/shapes/Ellipse.ts"],"sourcesContent":["import { SCALE_X, SCALE_Y, twoMathPi } from '../constants';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { ObjectEvents } from '../EventTypeDefs';\nimport type { CSSRules } from '../parser/typedefs';\n\nexport const ellipseDefaultValues: Partial<TClassProperties<Ellipse>> = {\n rx: 0,\n ry: 0,\n};\n\ninterface UniqueEllipseProps {\n rx: number;\n ry: number;\n}\n\nexport interface SerializedEllipseProps\n extends SerializedObjectProps,\n UniqueEllipseProps {}\n\nexport interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {}\n\nconst ELLIPSE_PROPS = ['rx', 'ry'] as const;\n\nexport class Ellipse<\n Props extends TOptions<EllipseProps> = Partial<EllipseProps>,\n SProps extends SerializedEllipseProps = SerializedEllipseProps,\n EventSpec extends ObjectEvents = ObjectEvents\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements EllipseProps\n{\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n declare rx: number;\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n declare ry: number;\n\n static type = 'Ellipse';\n\n static cacheProperties = [...cacheProperties, ...ELLIPSE_PROPS];\n\n static ownDefaults = ellipseDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Ellipse.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Ellipse.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {Ellipse} thisArg\n */\n _set(key: string, value: any) {\n super._set(key, value);\n switch (key) {\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n }\n return this;\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx() {\n return this.get('rx') * this.get(SCALE_X);\n }\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy() {\n return this.get('ry') * this.get(SCALE_Y);\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...ELLIPSE_PROPS, ...propertiesToInclude]);\n }\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n return [\n '<ellipse ',\n 'COMMON_PARTS',\n `cx=\"0\" cy=\"0\" rx=\"${this.rx}\" ry=\"${this.ry}\" />\\n`,\n ];\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(0, 0, this.rx, 0, twoMathPi, false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n }\n\n /* _FROM_SVG_START_ */\n\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})\n * @static\n * @memberOf Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n static ATTRIBUTE_NAMES = [...SHARED_ATTRIBUTES, 'cx', 'cy', 'rx', 'ry'];\n\n /**\n * Returns {@link Ellipse} instance from an SVG element\n * @static\n * @memberOf Ellipse\n * @param {HTMLElement} element Element to parse\n * @return {Ellipse}\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules\n ) {\n const parsedAttributes = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules\n );\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n return new this(parsedAttributes);\n }\n\n /* _FROM_SVG_END_ */\n}\n\nclassRegistry.setClass(Ellipse);\nclassRegistry.setSVGClass(Ellipse);\n"],"names":["ellipseDefaultValues","rx","ry","ELLIPSE_PROPS","Ellipse","FabricObject","getDefaults","_objectSpread","super","ownDefaults","constructor","options","Object","assign","this","setOptions","_set","key","value","set","getRx","get","SCALE_X","getRy","SCALE_Y","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","concat","_render","ctx","beginPath","save","transform","arc","twoMathPi","restore","_renderPaintInOrder","fromElement","element","cssRules","parsedAttributes","parseAttributes","ATTRIBUTE_NAMES","left","top","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"4eAUO,MAAMA,EAA2D,CACtEC,GAAI,EACJC,GAAI,GAcAC,EAAgB,CAAC,KAAM,MAEtB,MAAMC,UAKHC,EAuBR,kBAAOC,GACL,OAAAC,EAAAA,EAAA,GACKC,MAAMF,eACNF,EAAQK,YAEf,CAMAC,WAAAA,CAAYC,GACVH,QACAI,OAAOC,OAAOC,KAAMV,EAAQK,aAC5BK,KAAKC,WAAWJ,EAClB,CAQAK,IAAAA,CAAKC,EAAaC,GAEhB,OADAV,MAAMQ,KAAKC,EAAKC,GACRD,GACN,IAAK,KACHH,KAAKb,GAAKiB,EACVJ,KAAKK,IAAI,QAAiB,EAARD,GAClB,MAEF,IAAK,KACHJ,KAAKZ,GAAKgB,EACVJ,KAAKK,IAAI,SAAkB,EAARD,GAGvB,OAAOJ,IACT,CAMAM,KAAAA,GACE,OAAON,KAAKO,IAAI,MAAQP,KAAKO,IAAIC,EACnC,CAMAC,KAAAA,GACE,OAAOT,KAAKO,IAAI,MAAQP,KAAKO,IAAIG,EACnC,CAOAC,QAAAA,GAGsD,IAApDC,EAAwBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3B,OAAOnB,MAAMiB,SAAS,IAAItB,KAAkBuB,GAC9C,CAOAI,MAAAA,GACE,MAAO,CACL,YACA,eAAc,qBAAAC,OACOjB,KAAKb,aAAE8B,OAASjB,KAAKZ,GAC3C,UACH,CAMA8B,OAAAA,CAAQC,GACNA,EAAIC,YACJD,EAAIE,OACJF,EAAIG,UAAU,EAAG,EAAG,EAAGtB,KAAKZ,GAAKY,KAAKb,GAAI,EAAG,GAC7CgC,EAAII,IAAI,EAAG,EAAGvB,KAAKb,GAAI,EAAGqC,GAAW,GACrCL,EAAIM,UACJzB,KAAK0B,oBAAoBP,EAC3B,CAmBA,wBAAaQ,CACXC,EACA/B,EACAgC,GAEA,MAAMC,EAAmBC,EACvBH,EACA5B,KAAKgC,gBACLH,GAKF,OAFAC,EAAiBG,MAAQH,EAAiBG,MAAQ,GAAKH,EAAiB3C,GACxE2C,EAAiBI,KAAOJ,EAAiBI,KAAO,GAAKJ,EAAiB1C,GAC/D,IAAIY,KAAK8B,EAClB,EAzIAK,EAfW7C,EAAO,OAsBJ,WAAS6C,EAtBZ7C,EAwBc,kBAAA,IAAI8C,KAAoB/C,IAAc8C,EAxBpD7C,EAAO,cA0BGJ,GAAoBiD,EA1B9B7C,EAiIc,kBAAA,IAAI+C,EAAmB,KAAM,KAAM,KAAM,OA4BpEC,EAAcC,SAASjD,GACvBgD,EAAcE,YAAYlD"}
1
+ {"version":3,"file":"Ellipse.min.mjs","sources":["../../../src/shapes/Ellipse.ts"],"sourcesContent":["import { SCALE_X, SCALE_Y, twoMathPi } from '../constants';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { ObjectEvents } from '../EventTypeDefs';\nimport type { CSSRules } from '../parser/typedefs';\n\nexport const ellipseDefaultValues: Partial<TClassProperties<Ellipse>> = {\n rx: 0,\n ry: 0,\n};\n\ninterface UniqueEllipseProps {\n rx: number;\n ry: number;\n}\n\nexport interface SerializedEllipseProps\n extends SerializedObjectProps,\n UniqueEllipseProps {}\n\nexport interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {}\n\nconst ELLIPSE_PROPS = ['rx', 'ry'] as const;\n\nexport class Ellipse<\n Props extends TOptions<EllipseProps> = Partial<EllipseProps>,\n SProps extends SerializedEllipseProps = SerializedEllipseProps,\n EventSpec extends ObjectEvents = ObjectEvents,\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements EllipseProps\n{\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n declare rx: number;\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n declare ry: number;\n\n static type = 'Ellipse';\n\n static cacheProperties = [...cacheProperties, ...ELLIPSE_PROPS];\n\n static ownDefaults = ellipseDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Ellipse.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Ellipse.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {Ellipse} thisArg\n */\n _set(key: string, value: any) {\n super._set(key, value);\n switch (key) {\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n }\n return this;\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx() {\n return this.get('rx') * this.get(SCALE_X);\n }\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy() {\n return this.get('ry') * this.get(SCALE_Y);\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...ELLIPSE_PROPS, ...propertiesToInclude]);\n }\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n return [\n '<ellipse ',\n 'COMMON_PARTS',\n `cx=\"0\" cy=\"0\" rx=\"${this.rx}\" ry=\"${this.ry}\" />\\n`,\n ];\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(0, 0, this.rx, 0, twoMathPi, false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n }\n\n /* _FROM_SVG_START_ */\n\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})\n * @static\n * @memberOf Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n static ATTRIBUTE_NAMES = [...SHARED_ATTRIBUTES, 'cx', 'cy', 'rx', 'ry'];\n\n /**\n * Returns {@link Ellipse} instance from an SVG element\n * @static\n * @memberOf Ellipse\n * @param {HTMLElement} element Element to parse\n * @return {Ellipse}\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules,\n ) {\n const parsedAttributes = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules,\n );\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n return new this(parsedAttributes);\n }\n\n /* _FROM_SVG_END_ */\n}\n\nclassRegistry.setClass(Ellipse);\nclassRegistry.setSVGClass(Ellipse);\n"],"names":["ellipseDefaultValues","rx","ry","ELLIPSE_PROPS","Ellipse","FabricObject","getDefaults","_objectSpread","super","ownDefaults","constructor","options","Object","assign","this","setOptions","_set","key","value","set","getRx","get","SCALE_X","getRy","SCALE_Y","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","concat","_render","ctx","beginPath","save","transform","arc","twoMathPi","restore","_renderPaintInOrder","fromElement","element","cssRules","parsedAttributes","parseAttributes","ATTRIBUTE_NAMES","left","top","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"4eAUO,MAAMA,EAA2D,CACtEC,GAAI,EACJC,GAAI,GAcAC,EAAgB,CAAC,KAAM,MAEtB,MAAMC,UAKHC,EAuBR,kBAAOC,GACL,OAAAC,EAAAA,EAAA,GACKC,MAAMF,eACNF,EAAQK,YAEf,CAMAC,WAAAA,CAAYC,GACVH,QACAI,OAAOC,OAAOC,KAAMV,EAAQK,aAC5BK,KAAKC,WAAWJ,EAClB,CAQAK,IAAAA,CAAKC,EAAaC,GAEhB,OADAV,MAAMQ,KAAKC,EAAKC,GACRD,GACN,IAAK,KACHH,KAAKb,GAAKiB,EACVJ,KAAKK,IAAI,QAAiB,EAARD,GAClB,MAEF,IAAK,KACHJ,KAAKZ,GAAKgB,EACVJ,KAAKK,IAAI,SAAkB,EAARD,GAGvB,OAAOJ,IACT,CAMAM,KAAAA,GACE,OAAON,KAAKO,IAAI,MAAQP,KAAKO,IAAIC,EACnC,CAMAC,KAAAA,GACE,OAAOT,KAAKO,IAAI,MAAQP,KAAKO,IAAIG,EACnC,CAOAC,QAAAA,GAGsD,IAApDC,EAAwBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3B,OAAOnB,MAAMiB,SAAS,IAAItB,KAAkBuB,GAC9C,CAOAI,MAAAA,GACE,MAAO,CACL,YACA,eAAc,qBAAAC,OACOjB,KAAKb,aAAE8B,OAASjB,KAAKZ,GAC3C,UACH,CAMA8B,OAAAA,CAAQC,GACNA,EAAIC,YACJD,EAAIE,OACJF,EAAIG,UAAU,EAAG,EAAG,EAAGtB,KAAKZ,GAAKY,KAAKb,GAAI,EAAG,GAC7CgC,EAAII,IAAI,EAAG,EAAGvB,KAAKb,GAAI,EAAGqC,GAAW,GACrCL,EAAIM,UACJzB,KAAK0B,oBAAoBP,EAC3B,CAmBA,wBAAaQ,CACXC,EACA/B,EACAgC,GAEA,MAAMC,EAAmBC,EACvBH,EACA5B,KAAKgC,gBACLH,GAKF,OAFAC,EAAiBG,MAAQH,EAAiBG,MAAQ,GAAKH,EAAiB3C,GACxE2C,EAAiBI,KAAOJ,EAAiBI,KAAO,GAAKJ,EAAiB1C,GAC/D,IAAIY,KAAK8B,EAClB,EAzIAK,EAfW7C,EAAO,OAsBJ,WAAS6C,EAtBZ7C,EAwBc,kBAAA,IAAI8C,KAAoB/C,IAAc8C,EAxBpD7C,EAAO,cA0BGJ,GAAoBiD,EA1B9B7C,EAiIc,kBAAA,IAAI+C,EAAmB,KAAM,KAAM,KAAM,OA4BpEC,EAAcC,SAASjD,GACvBgD,EAAcE,YAAYlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipse.mjs","sources":["../../../src/shapes/Ellipse.ts"],"sourcesContent":["import { SCALE_X, SCALE_Y, twoMathPi } from '../constants';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { ObjectEvents } from '../EventTypeDefs';\nimport type { CSSRules } from '../parser/typedefs';\n\nexport const ellipseDefaultValues: Partial<TClassProperties<Ellipse>> = {\n rx: 0,\n ry: 0,\n};\n\ninterface UniqueEllipseProps {\n rx: number;\n ry: number;\n}\n\nexport interface SerializedEllipseProps\n extends SerializedObjectProps,\n UniqueEllipseProps {}\n\nexport interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {}\n\nconst ELLIPSE_PROPS = ['rx', 'ry'] as const;\n\nexport class Ellipse<\n Props extends TOptions<EllipseProps> = Partial<EllipseProps>,\n SProps extends SerializedEllipseProps = SerializedEllipseProps,\n EventSpec extends ObjectEvents = ObjectEvents\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements EllipseProps\n{\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n declare rx: number;\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n declare ry: number;\n\n static type = 'Ellipse';\n\n static cacheProperties = [...cacheProperties, ...ELLIPSE_PROPS];\n\n static ownDefaults = ellipseDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Ellipse.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Ellipse.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {Ellipse} thisArg\n */\n _set(key: string, value: any) {\n super._set(key, value);\n switch (key) {\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n }\n return this;\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx() {\n return this.get('rx') * this.get(SCALE_X);\n }\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy() {\n return this.get('ry') * this.get(SCALE_Y);\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...ELLIPSE_PROPS, ...propertiesToInclude]);\n }\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n return [\n '<ellipse ',\n 'COMMON_PARTS',\n `cx=\"0\" cy=\"0\" rx=\"${this.rx}\" ry=\"${this.ry}\" />\\n`,\n ];\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(0, 0, this.rx, 0, twoMathPi, false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n }\n\n /* _FROM_SVG_START_ */\n\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})\n * @static\n * @memberOf Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n static ATTRIBUTE_NAMES = [...SHARED_ATTRIBUTES, 'cx', 'cy', 'rx', 'ry'];\n\n /**\n * Returns {@link Ellipse} instance from an SVG element\n * @static\n * @memberOf Ellipse\n * @param {HTMLElement} element Element to parse\n * @return {Ellipse}\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules\n ) {\n const parsedAttributes = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules\n );\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n return new this(parsedAttributes);\n }\n\n /* _FROM_SVG_END_ */\n}\n\nclassRegistry.setClass(Ellipse);\nclassRegistry.setSVGClass(Ellipse);\n"],"names":["ellipseDefaultValues","rx","ry","ELLIPSE_PROPS","Ellipse","FabricObject","getDefaults","_objectSpread","ownDefaults","constructor","options","Object","assign","setOptions","_set","key","value","set","getRx","get","SCALE_X","getRy","SCALE_Y","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","concat","_render","ctx","beginPath","save","transform","arc","twoMathPi","restore","_renderPaintInOrder","fromElement","element","cssRules","parsedAttributes","parseAttributes","ATTRIBUTE_NAMES","left","top","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":";;;;;;;;AAUO,MAAMA,oBAAwD,GAAG;AACtEC,EAAAA,EAAE,EAAE,CAAC;AACLC,EAAAA,EAAE,EAAE,CAAA;AACN,EAAC;AAaD,MAAMC,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAA;AAEpC,MAAMC,OAAO,SAKVC,YAAY,CAEtB;EAqBE,OAAOC,WAAWA,GAAwB;AACxC,IAAA,OAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACK,KAAK,CAACD,WAAW,EAAE,CAAA,EACnBF,OAAO,CAACI,WAAW,CAAA,CAAA;AAE1B,GAAA;;AAEA;AACF;AACA;AACA;EACEC,WAAWA,CAACC,OAAe,EAAE;AAC3B,IAAA,KAAK,EAAE,CAAA;IACPC,MAAM,CAACC,MAAM,CAAC,IAAI,EAAER,OAAO,CAACI,WAAW,CAAC,CAAA;AACxC,IAAA,IAAI,CAACK,UAAU,CAACH,OAAO,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEI,EAAAA,IAAIA,CAACC,GAAW,EAAEC,KAAU,EAAE;AAC5B,IAAA,KAAK,CAACF,IAAI,CAACC,GAAG,EAAEC,KAAK,CAAC,CAAA;AACtB,IAAA,QAAQD,GAAG;AACT,MAAA,KAAK,IAAI;QACP,IAAI,CAACd,EAAE,GAAGe,KAAK,CAAA;QACf,IAAI,CAACC,GAAG,CAAC,OAAO,EAAED,KAAK,GAAG,CAAC,CAAC,CAAA;AAC5B,QAAA,MAAA;AAEF,MAAA,KAAK,IAAI;QACP,IAAI,CAACd,EAAE,GAAGc,KAAK,CAAA;QACf,IAAI,CAACC,GAAG,CAAC,QAAQ,EAAED,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7B,QAAA,MAAA;AACJ,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACEE,EAAAA,KAAKA,GAAG;AACN,IAAA,OAAO,IAAI,CAACC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAACA,GAAG,CAACC,OAAO,CAAC,CAAA;AAC3C,GAAA;;AAEA;AACF;AACA;AACA;AACEC,EAAAA,KAAKA,GAAG;AACN,IAAA,OAAO,IAAI,CAACF,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAACA,GAAG,CAACG,OAAO,CAAC,CAAA;AAC3C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQA,GAG8C;AAAA,IAAA,IAApDC,mBAAwB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;IAC7B,OAAO,KAAK,CAACF,QAAQ,CAAC,CAAC,GAAGpB,aAAa,EAAE,GAAGqB,mBAAmB,CAAC,CAAC,CAAA;AACnE,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACEI,EAAAA,MAAMA,GAAa;AACjB,IAAA,OAAO,CACL,WAAW,EACX,cAAc,EAAA,yBAAA,CAAAC,MAAA,CACO,IAAI,CAAC5B,EAAE,cAAA4B,MAAA,CAAS,IAAI,CAAC3B,EAAE,EAC7C,SAAA,CAAA,CAAA,CAAA;AACH,GAAA;;AAEA;AACF;AACA;AACA;EACE4B,OAAOA,CAACC,GAA6B,EAAE;IACrCA,GAAG,CAACC,SAAS,EAAE,CAAA;IACfD,GAAG,CAACE,IAAI,EAAE,CAAA;IACVF,GAAG,CAACG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAChC,EAAE,GAAG,IAAI,CAACD,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/C8B,IAAAA,GAAG,CAACI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAClC,EAAE,EAAE,CAAC,EAAEmC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3CL,GAAG,CAACM,OAAO,EAAE,CAAA;AACb,IAAA,IAAI,CAACC,mBAAmB,CAACP,GAAG,CAAC,CAAA;AAC/B,GAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACA;;AAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACE,EAAA,aAAaQ,WAAWA,CACtBC,OAAoB,EACpB9B,OAAkB,EAClB+B,QAAmB,EACnB;IACA,MAAMC,gBAAgB,GAAGC,eAAe,CACtCH,OAAO,EACP,IAAI,CAACI,eAAe,EACpBH,QACF,CAAC,CAAA;AAEDC,IAAAA,gBAAgB,CAACG,IAAI,GAAG,CAACH,gBAAgB,CAACG,IAAI,IAAI,CAAC,IAAIH,gBAAgB,CAACzC,EAAE,CAAA;AAC1EyC,IAAAA,gBAAgB,CAACI,GAAG,GAAG,CAACJ,gBAAgB,CAACI,GAAG,IAAI,CAAC,IAAIJ,gBAAgB,CAACxC,EAAE,CAAA;AACxE,IAAA,OAAO,IAAI,IAAI,CAACwC,gBAAgB,CAAC,CAAA;AACnC,GAAA;;AAEA;AACF,CAAA;AAnJE;AACF;AACA;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AAJEK,eAAA,CAfW3C,OAAO,EAAA,MAAA,EAsBJ,SAAS,CAAA,CAAA;AAAA2C,eAAA,CAtBZ3C,OAAO,EAwBO,iBAAA,EAAA,CAAC,GAAG4C,eAAe,EAAE,GAAG7C,aAAa,CAAC,CAAA,CAAA;AAAA4C,eAAA,CAxBpD3C,OAAO,EAAA,aAAA,EA0BGJ,oBAAoB,CAAA,CAAA;AAAA+C,eAAA,CA1B9B3C,OAAO,EAiIO,iBAAA,EAAA,CAAC,GAAG6C,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA,CAAA;AA4BzEC,aAAa,CAACC,QAAQ,CAAC/C,OAAO,CAAC,CAAA;AAC/B8C,aAAa,CAACE,WAAW,CAAChD,OAAO,CAAC;;;;"}
1
+ {"version":3,"file":"Ellipse.mjs","sources":["../../../src/shapes/Ellipse.ts"],"sourcesContent":["import { SCALE_X, SCALE_Y, twoMathPi } from '../constants';\nimport { SHARED_ATTRIBUTES } from '../parser/attributes';\nimport { parseAttributes } from '../parser/parseAttributes';\nimport type { Abortable, TClassProperties, TOptions } from '../typedefs';\nimport { classRegistry } from '../ClassRegistry';\nimport { FabricObject, cacheProperties } from './Object/FabricObject';\nimport type { FabricObjectProps, SerializedObjectProps } from './Object/types';\nimport type { ObjectEvents } from '../EventTypeDefs';\nimport type { CSSRules } from '../parser/typedefs';\n\nexport const ellipseDefaultValues: Partial<TClassProperties<Ellipse>> = {\n rx: 0,\n ry: 0,\n};\n\ninterface UniqueEllipseProps {\n rx: number;\n ry: number;\n}\n\nexport interface SerializedEllipseProps\n extends SerializedObjectProps,\n UniqueEllipseProps {}\n\nexport interface EllipseProps extends FabricObjectProps, UniqueEllipseProps {}\n\nconst ELLIPSE_PROPS = ['rx', 'ry'] as const;\n\nexport class Ellipse<\n Props extends TOptions<EllipseProps> = Partial<EllipseProps>,\n SProps extends SerializedEllipseProps = SerializedEllipseProps,\n EventSpec extends ObjectEvents = ObjectEvents,\n >\n extends FabricObject<Props, SProps, EventSpec>\n implements EllipseProps\n{\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n declare rx: number;\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n declare ry: number;\n\n static type = 'Ellipse';\n\n static cacheProperties = [...cacheProperties, ...ELLIPSE_PROPS];\n\n static ownDefaults = ellipseDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Ellipse.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n constructor(options?: Props) {\n super();\n Object.assign(this, Ellipse.ownDefaults);\n this.setOptions(options);\n }\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {Ellipse} thisArg\n */\n _set(key: string, value: any) {\n super._set(key, value);\n switch (key) {\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n }\n return this;\n }\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx() {\n return this.get('rx') * this.get(SCALE_X);\n }\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy() {\n return this.get('ry') * this.get(SCALE_Y);\n }\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject<\n T extends Omit<Props & TClassProperties<this>, keyof SProps>,\n K extends keyof T = never,\n >(propertiesToInclude: K[] = []): Pick<T, K> & SProps {\n return super.toObject([...ELLIPSE_PROPS, ...propertiesToInclude]);\n }\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG(): string[] {\n return [\n '<ellipse ',\n 'COMMON_PARTS',\n `cx=\"0\" cy=\"0\" rx=\"${this.rx}\" ry=\"${this.ry}\" />\\n`,\n ];\n }\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render(ctx: CanvasRenderingContext2D) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(0, 0, this.rx, 0, twoMathPi, false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n }\n\n /* _FROM_SVG_START_ */\n\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link Ellipse.fromElement})\n * @static\n * @memberOf Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n static ATTRIBUTE_NAMES = [...SHARED_ATTRIBUTES, 'cx', 'cy', 'rx', 'ry'];\n\n /**\n * Returns {@link Ellipse} instance from an SVG element\n * @static\n * @memberOf Ellipse\n * @param {HTMLElement} element Element to parse\n * @return {Ellipse}\n */\n static async fromElement(\n element: HTMLElement,\n options: Abortable,\n cssRules?: CSSRules,\n ) {\n const parsedAttributes = parseAttributes(\n element,\n this.ATTRIBUTE_NAMES,\n cssRules,\n );\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n return new this(parsedAttributes);\n }\n\n /* _FROM_SVG_END_ */\n}\n\nclassRegistry.setClass(Ellipse);\nclassRegistry.setSVGClass(Ellipse);\n"],"names":["ellipseDefaultValues","rx","ry","ELLIPSE_PROPS","Ellipse","FabricObject","getDefaults","_objectSpread","ownDefaults","constructor","options","Object","assign","setOptions","_set","key","value","set","getRx","get","SCALE_X","getRy","SCALE_Y","toObject","propertiesToInclude","arguments","length","undefined","_toSVG","concat","_render","ctx","beginPath","save","transform","arc","twoMathPi","restore","_renderPaintInOrder","fromElement","element","cssRules","parsedAttributes","parseAttributes","ATTRIBUTE_NAMES","left","top","_defineProperty","cacheProperties","SHARED_ATTRIBUTES","classRegistry","setClass","setSVGClass"],"mappings":"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"}
@@ -58,7 +58,7 @@ declare const Group_base: {
58
58
  stateProperties: string[];
59
59
  cacheProperties: string[];
60
60
  type: string;
61
- _fromObject<S extends import("./Object/Object").FabricObject>({ type, ...object }: Record<string, unknown>, { extraParam, ...options }?: Abortable & {
61
+ _fromObject<S extends import("./Object/Object").FabricObject>({ type, ...serializedObjectOptions }: Record<string, unknown>, { extraParam, ...options }?: Abortable & {
62
62
  extraParam?: string;
63
63
  }): Promise<S>;
64
64
  fromObject<T extends TOptions<SerializedObjectProps>>(object: T, options?: Abortable): Promise<import("./Object/Object").FabricObject<Partial<import("./Object/types/ObjectProps").ObjectProps>, SerializedObjectProps, ObjectEvents>>;
@@ -183,7 +183,7 @@ export declare class Group extends Group_base implements GroupProps {
183
183
  * keeps track of the selected objects
184
184
  * @private
185
185
  */
186
- __objectSelectionMonitor<T extends boolean>(selected: T, { target: object }: ObjectEvents[T extends true ? 'selected' : 'deselected']): void;
186
+ __objectSelectionMonitor<T extends boolean>(selected: T, { target: object, }: ObjectEvents[T extends true ? 'selected' : 'deselected']): void;
187
187
  /**
188
188
  * @private
189
189
  * @param {boolean} watch
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/shapes/Group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/shapes/Group.ts"],"names":[],"mappings":"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"}