fabric 7.3.1 → 7.4.0

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