@nasser-sw/fabric 7.0.1-beta11 → 7.0.1-beta13

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 (2543) hide show
  1. package/.babelrc +0 -0
  2. package/.babelrcAlt +0 -0
  3. package/.browserslistrc +0 -0
  4. package/.editorconfig +0 -0
  5. package/.gitattributes +0 -0
  6. package/.gitpod.yml +0 -0
  7. package/.playwright-mcp/after-justify-applied.png +0 -0
  8. package/.playwright-mcp/after-justify-click.png +0 -0
  9. package/.playwright-mcp/initial-state.png +0 -0
  10. package/.playwright-mcp/justify-fixed-final.png +0 -0
  11. package/.prettierignore +0 -0
  12. package/.prettierrc +0 -0
  13. package/0 +0 -0
  14. package/45.6875Textbox.ts +0 -0
  15. package/CHANGELOG.md +0 -0
  16. package/CODE_OF_CONDUCT.md +0 -0
  17. package/CONTRIBUTING.md +0 -0
  18. package/LICENSE +0 -0
  19. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  20. package/README.md +0 -0
  21. package/SECURITY.md +0 -0
  22. package/debug/{konva → konva-master}/CHANGELOG.md +2 -1
  23. package/debug/{konva → konva-master}/LICENSE +0 -0
  24. package/debug/{konva → konva-master}/README.md +7 -3
  25. package/debug/{konva → konva-master}/gulpfile.mjs +0 -0
  26. package/debug/{konva → konva-master}/package.json +1 -1
  27. package/debug/{konva → konva-master}/release.sh +1 -4
  28. package/debug/{konva → konva-master}/resources/doc-includes/ContainerParams.txt +0 -0
  29. package/debug/{konva → konva-master}/resources/doc-includes/NodeParams.txt +0 -0
  30. package/debug/{konva → konva-master}/resources/doc-includes/ShapeParams.txt +0 -0
  31. package/debug/{konva → konva-master}/resources/jsdoc.conf.json +0 -0
  32. package/debug/{konva → konva-master}/rollup.config.mjs +0 -0
  33. package/debug/{konva → konva-master}/src/Animation.ts +0 -0
  34. package/debug/{konva → konva-master}/src/BezierFunctions.ts +0 -0
  35. package/debug/{konva → konva-master}/src/Canvas.ts +37 -0
  36. package/debug/{konva → konva-master}/src/Container.ts +0 -0
  37. package/debug/{konva → konva-master}/src/Context.ts +0 -0
  38. package/debug/{konva → konva-master}/src/Core.ts +0 -0
  39. package/debug/{konva → konva-master}/src/DragAndDrop.ts +0 -0
  40. package/debug/{konva → konva-master}/src/Factory.ts +0 -0
  41. package/debug/{konva → konva-master}/src/FastLayer.ts +0 -0
  42. package/debug/{konva → konva-master}/src/Global.ts +0 -0
  43. package/debug/{konva → konva-master}/src/Group.ts +0 -0
  44. package/debug/{konva → konva-master}/src/Layer.ts +0 -0
  45. package/debug/{konva → konva-master}/src/Node.ts +0 -0
  46. package/debug/{konva → konva-master}/src/PointerEvents.ts +0 -0
  47. package/debug/{konva → konva-master}/src/Shape.ts +0 -0
  48. package/debug/{konva → konva-master}/src/Stage.ts +0 -0
  49. package/debug/{konva → konva-master}/src/Tween.ts +0 -0
  50. package/debug/{konva → konva-master}/src/Util.ts +0 -0
  51. package/debug/{konva → konva-master}/src/Validators.ts +0 -0
  52. package/debug/{konva → konva-master}/src/_CoreInternals.ts +0 -0
  53. package/debug/{konva → konva-master}/src/_FullInternals.ts +0 -0
  54. package/debug/{konva → konva-master}/src/canvas-backend.ts +0 -0
  55. package/debug/{konva → konva-master}/src/filters/Blur.ts +0 -0
  56. package/debug/{konva → konva-master}/src/filters/Brighten.ts +0 -0
  57. package/debug/{konva → konva-master}/src/filters/Brightness.ts +0 -0
  58. package/debug/{konva → konva-master}/src/filters/Contrast.ts +0 -0
  59. package/debug/{konva → konva-master}/src/filters/Emboss.ts +0 -0
  60. package/debug/{konva → konva-master}/src/filters/Enhance.ts +0 -0
  61. package/debug/{konva → konva-master}/src/filters/Grayscale.ts +0 -0
  62. package/debug/{konva → konva-master}/src/filters/HSL.ts +0 -0
  63. package/debug/{konva → konva-master}/src/filters/HSV.ts +0 -0
  64. package/debug/{konva → konva-master}/src/filters/Invert.ts +0 -0
  65. package/debug/{konva → konva-master}/src/filters/Kaleidoscope.ts +0 -0
  66. package/debug/{konva → konva-master}/src/filters/Mask.ts +0 -0
  67. package/debug/{konva → konva-master}/src/filters/Noise.ts +0 -0
  68. package/debug/{konva → konva-master}/src/filters/Pixelate.ts +0 -0
  69. package/debug/{konva → konva-master}/src/filters/Posterize.ts +0 -0
  70. package/debug/{konva → konva-master}/src/filters/RGB.ts +0 -0
  71. package/debug/{konva → konva-master}/src/filters/RGBA.ts +0 -0
  72. package/debug/{konva → konva-master}/src/filters/Sepia.ts +0 -0
  73. package/debug/{konva → konva-master}/src/filters/Solarize.ts +0 -0
  74. package/debug/{konva → konva-master}/src/filters/Threshold.ts +0 -0
  75. package/debug/{konva → konva-master}/src/index.ts +0 -0
  76. package/debug/{konva → konva-master}/src/shapes/Arc.ts +0 -0
  77. package/debug/{konva → konva-master}/src/shapes/Arrow.ts +0 -0
  78. package/debug/{konva → konva-master}/src/shapes/Circle.ts +0 -0
  79. package/debug/{konva → konva-master}/src/shapes/Ellipse.ts +0 -0
  80. package/debug/{konva → konva-master}/src/shapes/Image.ts +0 -0
  81. package/debug/{konva → konva-master}/src/shapes/Label.ts +0 -0
  82. package/debug/{konva → konva-master}/src/shapes/Line.ts +0 -0
  83. package/debug/{konva → konva-master}/src/shapes/Path.ts +0 -0
  84. package/debug/{konva → konva-master}/src/shapes/Rect.ts +0 -0
  85. package/debug/{konva → konva-master}/src/shapes/RegularPolygon.ts +0 -0
  86. package/debug/{konva → konva-master}/src/shapes/Ring.ts +0 -0
  87. package/debug/{konva → konva-master}/src/shapes/Sprite.ts +0 -0
  88. package/debug/{konva → konva-master}/src/shapes/Star.ts +0 -0
  89. package/debug/{konva → konva-master}/src/shapes/Text.ts +2 -2
  90. package/debug/{konva → konva-master}/src/shapes/TextPath.ts +0 -0
  91. package/debug/{konva → konva-master}/src/shapes/Transformer.ts +0 -0
  92. package/debug/{konva → konva-master}/src/shapes/Wedge.ts +0 -0
  93. package/debug/{konva → konva-master}/src/skia-backend.ts +0 -0
  94. package/debug/{konva → konva-master}/src/types.ts +0 -0
  95. package/debug/{konva → konva-master}/tsconfig.json +0 -0
  96. package/debug/{konva → konva-master}/tsconfig.test.json +0 -0
  97. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  98. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  99. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  100. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  101. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  102. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  103. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  104. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  105. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  106. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  107. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  108. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  109. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  110. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  111. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  112. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  113. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  114. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  115. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  116. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  117. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  118. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  119. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  120. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  121. package/dist/extensions/index.d.ts +0 -0
  122. package/dist/extensions/index.d.ts.map +0 -0
  123. package/dist/fabric.d.ts +0 -0
  124. package/dist/fabric.d.ts.map +0 -0
  125. package/dist/fabric.min.mjs +0 -0
  126. package/dist/fabric.min.mjs.map +0 -0
  127. package/dist/fabric.mjs +0 -0
  128. package/dist/fabric.mjs.map +0 -0
  129. package/dist/index.d.ts +0 -0
  130. package/dist/index.d.ts.map +0 -0
  131. package/dist/index.js +747 -679
  132. package/dist/index.js.map +1 -1
  133. package/dist/index.min.js +1 -1
  134. package/dist/index.min.js.map +1 -1
  135. package/dist/index.min.mjs +1 -1
  136. package/dist/index.min.mjs.map +1 -1
  137. package/dist/index.mjs +747 -679
  138. package/dist/index.mjs.map +1 -1
  139. package/dist/index.node.cjs +747 -679
  140. package/dist/index.node.cjs.map +1 -1
  141. package/dist/index.node.d.ts +0 -0
  142. package/dist/index.node.d.ts.map +0 -0
  143. package/dist/index.node.mjs +747 -679
  144. package/dist/index.node.mjs.map +1 -1
  145. package/dist/package.json.min.mjs +1 -1
  146. package/dist/package.json.min.mjs.map +0 -0
  147. package/dist/package.json.mjs +1 -1
  148. package/dist/package.json.mjs.map +0 -0
  149. package/dist/src/ClassRegistry.d.ts +0 -0
  150. package/dist/src/ClassRegistry.d.ts.map +0 -0
  151. package/dist/src/ClassRegistry.min.mjs +0 -0
  152. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  153. package/dist/src/ClassRegistry.mjs +0 -0
  154. package/dist/src/ClassRegistry.mjs.map +0 -0
  155. package/dist/src/Collection.d.ts +0 -0
  156. package/dist/src/Collection.d.ts.map +0 -0
  157. package/dist/src/Collection.min.mjs +0 -0
  158. package/dist/src/Collection.min.mjs.map +0 -0
  159. package/dist/src/Collection.mjs +0 -0
  160. package/dist/src/Collection.mjs.map +0 -0
  161. package/dist/src/CommonMethods.d.ts +0 -0
  162. package/dist/src/CommonMethods.d.ts.map +0 -0
  163. package/dist/src/CommonMethods.min.mjs +0 -0
  164. package/dist/src/CommonMethods.min.mjs.map +0 -0
  165. package/dist/src/CommonMethods.mjs +0 -0
  166. package/dist/src/CommonMethods.mjs.map +0 -0
  167. package/dist/src/EventTypeDefs.d.ts +0 -0
  168. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  169. package/dist/src/Intersection.d.ts +0 -0
  170. package/dist/src/Intersection.d.ts.map +0 -0
  171. package/dist/src/Intersection.min.mjs +0 -0
  172. package/dist/src/Intersection.min.mjs.map +0 -0
  173. package/dist/src/Intersection.mjs +0 -0
  174. package/dist/src/Intersection.mjs.map +0 -0
  175. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  176. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  177. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  178. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  179. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  180. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  181. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  182. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  183. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  184. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  185. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  186. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  211. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  212. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  213. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  214. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  215. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  216. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  217. package/dist/src/LayoutManager/constants.d.ts +0 -0
  218. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  219. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  220. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  221. package/dist/src/LayoutManager/constants.mjs +0 -0
  222. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  223. package/dist/src/LayoutManager/index.d.ts +0 -0
  224. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  225. package/dist/src/LayoutManager/types.d.ts +0 -0
  226. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  227. package/dist/src/Observable.d.ts +0 -0
  228. package/dist/src/Observable.d.ts.map +0 -0
  229. package/dist/src/Observable.min.mjs +0 -0
  230. package/dist/src/Observable.min.mjs.map +0 -0
  231. package/dist/src/Observable.mjs +0 -0
  232. package/dist/src/Observable.mjs.map +0 -0
  233. package/dist/src/Pattern/Pattern.d.ts +0 -0
  234. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  235. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  236. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  237. package/dist/src/Pattern/Pattern.mjs +0 -0
  238. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  239. package/dist/src/Pattern/index.d.ts +0 -0
  240. package/dist/src/Pattern/index.d.ts.map +0 -0
  241. package/dist/src/Pattern/types.d.ts +0 -0
  242. package/dist/src/Pattern/types.d.ts.map +0 -0
  243. package/dist/src/Point.d.ts +0 -0
  244. package/dist/src/Point.d.ts.map +0 -0
  245. package/dist/src/Point.min.mjs +0 -0
  246. package/dist/src/Point.min.mjs.map +0 -0
  247. package/dist/src/Point.mjs +0 -0
  248. package/dist/src/Point.mjs.map +0 -0
  249. package/dist/src/Shadow.d.ts +0 -0
  250. package/dist/src/Shadow.d.ts.map +0 -0
  251. package/dist/src/Shadow.min.mjs +0 -0
  252. package/dist/src/Shadow.min.mjs.map +0 -0
  253. package/dist/src/Shadow.mjs +0 -0
  254. package/dist/src/Shadow.mjs.map +0 -0
  255. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  256. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  257. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  258. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  259. package/dist/src/brushes/BaseBrush.mjs +0 -0
  260. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  261. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  262. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  263. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  264. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  265. package/dist/src/brushes/CircleBrush.mjs +0 -0
  266. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  267. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  268. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  269. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  270. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  271. package/dist/src/brushes/PatternBrush.mjs +0 -0
  272. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  273. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  274. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  275. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  276. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  277. package/dist/src/brushes/PencilBrush.mjs +0 -0
  278. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  279. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  280. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  281. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  282. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  283. package/dist/src/brushes/SprayBrush.mjs +0 -0
  284. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  285. package/dist/src/brushes/typedefs.d.ts +0 -0
  286. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  287. package/dist/src/cache.d.ts +0 -0
  288. package/dist/src/cache.d.ts.map +0 -0
  289. package/dist/src/cache.min.mjs +0 -0
  290. package/dist/src/cache.min.mjs.map +0 -0
  291. package/dist/src/cache.mjs +0 -0
  292. package/dist/src/cache.mjs.map +0 -0
  293. package/dist/src/canvas/Canvas.d.ts +0 -0
  294. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  295. package/dist/src/canvas/Canvas.min.mjs +0 -0
  296. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  297. package/dist/src/canvas/Canvas.mjs +0 -0
  298. package/dist/src/canvas/Canvas.mjs.map +0 -0
  299. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  300. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  301. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  302. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  303. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  304. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  305. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  306. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  307. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  308. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  309. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  310. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  311. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  312. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  313. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  314. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  315. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  316. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  317. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  318. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  319. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  320. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  321. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  322. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  323. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  324. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  325. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  326. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  327. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  328. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  329. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  330. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  331. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  332. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  333. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  334. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  335. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  336. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  337. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  338. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  339. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  340. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  341. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  342. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  343. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  344. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  345. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  346. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  347. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  348. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  349. package/dist/src/color/Color.d.ts +0 -0
  350. package/dist/src/color/Color.d.ts.map +0 -0
  351. package/dist/src/color/Color.min.mjs +0 -0
  352. package/dist/src/color/Color.min.mjs.map +0 -0
  353. package/dist/src/color/Color.mjs +0 -0
  354. package/dist/src/color/Color.mjs.map +0 -0
  355. package/dist/src/color/color_map.d.ts +0 -0
  356. package/dist/src/color/color_map.d.ts.map +0 -0
  357. package/dist/src/color/color_map.min.mjs +0 -0
  358. package/dist/src/color/color_map.min.mjs.map +0 -0
  359. package/dist/src/color/color_map.mjs +0 -0
  360. package/dist/src/color/color_map.mjs.map +0 -0
  361. package/dist/src/color/constants.d.ts +0 -0
  362. package/dist/src/color/constants.d.ts.map +0 -0
  363. package/dist/src/color/constants.min.mjs +0 -0
  364. package/dist/src/color/constants.min.mjs.map +0 -0
  365. package/dist/src/color/constants.mjs +0 -0
  366. package/dist/src/color/constants.mjs.map +0 -0
  367. package/dist/src/color/typedefs.d.ts +0 -0
  368. package/dist/src/color/typedefs.d.ts.map +0 -0
  369. package/dist/src/color/util.d.ts +0 -0
  370. package/dist/src/color/util.d.ts.map +0 -0
  371. package/dist/src/color/util.min.mjs +0 -0
  372. package/dist/src/color/util.min.mjs.map +0 -0
  373. package/dist/src/color/util.mjs +0 -0
  374. package/dist/src/color/util.mjs.map +0 -0
  375. package/dist/src/config.d.ts +0 -0
  376. package/dist/src/config.d.ts.map +0 -0
  377. package/dist/src/config.min.mjs +0 -0
  378. package/dist/src/config.min.mjs.map +0 -0
  379. package/dist/src/config.mjs +0 -0
  380. package/dist/src/config.mjs.map +0 -0
  381. package/dist/src/constants.d.ts +0 -0
  382. package/dist/src/constants.d.ts.map +0 -0
  383. package/dist/src/constants.min.mjs +0 -0
  384. package/dist/src/constants.min.mjs.map +0 -0
  385. package/dist/src/constants.mjs +0 -0
  386. package/dist/src/constants.mjs.map +0 -0
  387. package/dist/src/controls/Control.d.ts +0 -0
  388. package/dist/src/controls/Control.d.ts.map +0 -0
  389. package/dist/src/controls/Control.min.mjs +0 -0
  390. package/dist/src/controls/Control.min.mjs.map +0 -0
  391. package/dist/src/controls/Control.mjs +0 -0
  392. package/dist/src/controls/Control.mjs.map +0 -0
  393. package/dist/src/controls/changeHeight.d.ts +0 -0
  394. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  395. package/dist/src/controls/changeWidth.d.ts +0 -0
  396. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  397. package/dist/src/controls/changeWidth.min.mjs +0 -0
  398. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  399. package/dist/src/controls/changeWidth.mjs +0 -0
  400. package/dist/src/controls/changeWidth.mjs.map +0 -0
  401. package/dist/src/controls/commonControls.d.ts +0 -0
  402. package/dist/src/controls/commonControls.d.ts.map +0 -0
  403. package/dist/src/controls/commonControls.min.mjs +0 -0
  404. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  405. package/dist/src/controls/commonControls.mjs +0 -0
  406. package/dist/src/controls/commonControls.mjs.map +0 -0
  407. package/dist/src/controls/controlRendering.d.ts +0 -0
  408. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  409. package/dist/src/controls/controlRendering.min.mjs +0 -0
  410. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  411. package/dist/src/controls/controlRendering.mjs +0 -0
  412. package/dist/src/controls/controlRendering.mjs.map +0 -0
  413. package/dist/src/controls/drag.d.ts +0 -0
  414. package/dist/src/controls/drag.d.ts.map +0 -0
  415. package/dist/src/controls/drag.min.mjs +0 -0
  416. package/dist/src/controls/drag.min.mjs.map +0 -0
  417. package/dist/src/controls/drag.mjs +0 -0
  418. package/dist/src/controls/drag.mjs.map +0 -0
  419. package/dist/src/controls/fireEvent.d.ts +0 -0
  420. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  421. package/dist/src/controls/fireEvent.min.mjs +0 -0
  422. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  423. package/dist/src/controls/fireEvent.mjs +0 -0
  424. package/dist/src/controls/fireEvent.mjs.map +0 -0
  425. package/dist/src/controls/index.d.ts +0 -0
  426. package/dist/src/controls/index.d.ts.map +0 -0
  427. package/dist/src/controls/index.min.mjs +0 -0
  428. package/dist/src/controls/index.min.mjs.map +0 -0
  429. package/dist/src/controls/index.mjs +0 -0
  430. package/dist/src/controls/index.mjs.map +0 -0
  431. package/dist/src/controls/pathControl.d.ts +0 -0
  432. package/dist/src/controls/pathControl.d.ts.map +0 -0
  433. package/dist/src/controls/pathControl.min.mjs +0 -0
  434. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  435. package/dist/src/controls/pathControl.mjs +0 -0
  436. package/dist/src/controls/pathControl.mjs.map +0 -0
  437. package/dist/src/controls/polyControl.d.ts +0 -0
  438. package/dist/src/controls/polyControl.d.ts.map +0 -0
  439. package/dist/src/controls/polyControl.min.mjs +0 -0
  440. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  441. package/dist/src/controls/polyControl.mjs +0 -0
  442. package/dist/src/controls/polyControl.mjs.map +0 -0
  443. package/dist/src/controls/rotate.d.ts +0 -0
  444. package/dist/src/controls/rotate.d.ts.map +0 -0
  445. package/dist/src/controls/rotate.min.mjs +0 -0
  446. package/dist/src/controls/rotate.min.mjs.map +0 -0
  447. package/dist/src/controls/rotate.mjs +0 -0
  448. package/dist/src/controls/rotate.mjs.map +0 -0
  449. package/dist/src/controls/scale.d.ts +0 -0
  450. package/dist/src/controls/scale.d.ts.map +0 -0
  451. package/dist/src/controls/scale.min.mjs +0 -0
  452. package/dist/src/controls/scale.min.mjs.map +0 -0
  453. package/dist/src/controls/scale.mjs +0 -0
  454. package/dist/src/controls/scale.mjs.map +0 -0
  455. package/dist/src/controls/scaleSkew.d.ts +0 -0
  456. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  457. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  458. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  459. package/dist/src/controls/scaleSkew.mjs +0 -0
  460. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  461. package/dist/src/controls/skew.d.ts +0 -0
  462. package/dist/src/controls/skew.d.ts.map +0 -0
  463. package/dist/src/controls/skew.min.mjs +0 -0
  464. package/dist/src/controls/skew.min.mjs.map +0 -0
  465. package/dist/src/controls/skew.mjs +0 -0
  466. package/dist/src/controls/skew.mjs.map +0 -0
  467. package/dist/src/controls/util.d.ts +0 -0
  468. package/dist/src/controls/util.d.ts.map +0 -0
  469. package/dist/src/controls/util.min.mjs +0 -0
  470. package/dist/src/controls/util.min.mjs.map +0 -0
  471. package/dist/src/controls/util.mjs +0 -0
  472. package/dist/src/controls/util.mjs.map +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  477. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  478. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  483. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  484. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  485. package/dist/src/env/browser.d.ts +0 -0
  486. package/dist/src/env/browser.d.ts.map +0 -0
  487. package/dist/src/env/browser.min.mjs +0 -0
  488. package/dist/src/env/browser.min.mjs.map +0 -0
  489. package/dist/src/env/browser.mjs +0 -0
  490. package/dist/src/env/browser.mjs.map +0 -0
  491. package/dist/src/env/index.d.ts +0 -0
  492. package/dist/src/env/index.d.ts.map +0 -0
  493. package/dist/src/env/index.min.mjs +0 -0
  494. package/dist/src/env/index.min.mjs.map +0 -0
  495. package/dist/src/env/index.mjs +0 -0
  496. package/dist/src/env/index.mjs.map +0 -0
  497. package/dist/src/env/node.d.ts +0 -0
  498. package/dist/src/env/node.d.ts.map +0 -0
  499. package/dist/src/env/types.d.ts +0 -0
  500. package/dist/src/env/types.d.ts.map +0 -0
  501. package/dist/src/filters/BaseFilter.d.ts +0 -0
  502. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  503. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  504. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  505. package/dist/src/filters/BaseFilter.mjs +0 -0
  506. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  507. package/dist/src/filters/BlendColor.d.ts +0 -0
  508. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  509. package/dist/src/filters/BlendColor.min.mjs +0 -0
  510. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  511. package/dist/src/filters/BlendColor.mjs +0 -0
  512. package/dist/src/filters/BlendColor.mjs.map +0 -0
  513. package/dist/src/filters/BlendImage.d.ts +0 -0
  514. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  515. package/dist/src/filters/BlendImage.min.mjs +0 -0
  516. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  517. package/dist/src/filters/BlendImage.mjs +0 -0
  518. package/dist/src/filters/BlendImage.mjs.map +0 -0
  519. package/dist/src/filters/Blur.d.ts +0 -0
  520. package/dist/src/filters/Blur.d.ts.map +0 -0
  521. package/dist/src/filters/Blur.min.mjs +0 -0
  522. package/dist/src/filters/Blur.min.mjs.map +0 -0
  523. package/dist/src/filters/Blur.mjs +0 -0
  524. package/dist/src/filters/Blur.mjs.map +0 -0
  525. package/dist/src/filters/Boilerplate.d.ts +0 -0
  526. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  527. package/dist/src/filters/Brightness.d.ts +0 -0
  528. package/dist/src/filters/Brightness.d.ts.map +0 -0
  529. package/dist/src/filters/Brightness.min.mjs +0 -0
  530. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  531. package/dist/src/filters/Brightness.mjs +0 -0
  532. package/dist/src/filters/Brightness.mjs.map +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  537. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  538. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  539. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  540. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  541. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  542. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  543. package/dist/src/filters/ColorMatrix.mjs +0 -0
  544. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  549. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  550. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  551. package/dist/src/filters/Composed.d.ts +0 -0
  552. package/dist/src/filters/Composed.d.ts.map +0 -0
  553. package/dist/src/filters/Composed.min.mjs +0 -0
  554. package/dist/src/filters/Composed.min.mjs.map +0 -0
  555. package/dist/src/filters/Composed.mjs +0 -0
  556. package/dist/src/filters/Composed.mjs.map +0 -0
  557. package/dist/src/filters/Contrast.d.ts +0 -0
  558. package/dist/src/filters/Contrast.d.ts.map +0 -0
  559. package/dist/src/filters/Contrast.min.mjs +0 -0
  560. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  561. package/dist/src/filters/Contrast.mjs +0 -0
  562. package/dist/src/filters/Contrast.mjs.map +0 -0
  563. package/dist/src/filters/Convolute.d.ts +0 -0
  564. package/dist/src/filters/Convolute.d.ts.map +0 -0
  565. package/dist/src/filters/Convolute.min.mjs +0 -0
  566. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  567. package/dist/src/filters/Convolute.mjs +0 -0
  568. package/dist/src/filters/Convolute.mjs.map +0 -0
  569. package/dist/src/filters/FilterBackend.d.ts +0 -0
  570. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  571. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  572. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  573. package/dist/src/filters/FilterBackend.mjs +0 -0
  574. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  579. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  580. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  581. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  582. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  587. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  588. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  589. package/dist/src/filters/Gamma.d.ts +0 -0
  590. package/dist/src/filters/Gamma.d.ts.map +0 -0
  591. package/dist/src/filters/Gamma.min.mjs +0 -0
  592. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  593. package/dist/src/filters/Gamma.mjs +0 -0
  594. package/dist/src/filters/Gamma.mjs.map +0 -0
  595. package/dist/src/filters/Grayscale.d.ts +0 -0
  596. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  597. package/dist/src/filters/Grayscale.min.mjs +0 -0
  598. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  599. package/dist/src/filters/Grayscale.mjs +0 -0
  600. package/dist/src/filters/Grayscale.mjs.map +0 -0
  601. package/dist/src/filters/HueRotation.d.ts +0 -0
  602. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  603. package/dist/src/filters/HueRotation.min.mjs +0 -0
  604. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  605. package/dist/src/filters/HueRotation.mjs +0 -0
  606. package/dist/src/filters/HueRotation.mjs.map +0 -0
  607. package/dist/src/filters/Invert.d.ts +0 -0
  608. package/dist/src/filters/Invert.d.ts.map +0 -0
  609. package/dist/src/filters/Invert.min.mjs +0 -0
  610. package/dist/src/filters/Invert.min.mjs.map +0 -0
  611. package/dist/src/filters/Invert.mjs +0 -0
  612. package/dist/src/filters/Invert.mjs.map +0 -0
  613. package/dist/src/filters/Noise.d.ts +0 -0
  614. package/dist/src/filters/Noise.d.ts.map +0 -0
  615. package/dist/src/filters/Noise.min.mjs +0 -0
  616. package/dist/src/filters/Noise.min.mjs.map +0 -0
  617. package/dist/src/filters/Noise.mjs +0 -0
  618. package/dist/src/filters/Noise.mjs.map +0 -0
  619. package/dist/src/filters/Pixelate.d.ts +0 -0
  620. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  621. package/dist/src/filters/Pixelate.min.mjs +0 -0
  622. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  623. package/dist/src/filters/Pixelate.mjs +0 -0
  624. package/dist/src/filters/Pixelate.mjs.map +0 -0
  625. package/dist/src/filters/RemoveColor.d.ts +0 -0
  626. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  627. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  628. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  629. package/dist/src/filters/RemoveColor.mjs +0 -0
  630. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  631. package/dist/src/filters/Resize.d.ts +0 -0
  632. package/dist/src/filters/Resize.d.ts.map +0 -0
  633. package/dist/src/filters/Resize.min.mjs +0 -0
  634. package/dist/src/filters/Resize.min.mjs.map +0 -0
  635. package/dist/src/filters/Resize.mjs +0 -0
  636. package/dist/src/filters/Resize.mjs.map +0 -0
  637. package/dist/src/filters/Saturation.d.ts +0 -0
  638. package/dist/src/filters/Saturation.d.ts.map +0 -0
  639. package/dist/src/filters/Saturation.min.mjs +0 -0
  640. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  641. package/dist/src/filters/Saturation.mjs +0 -0
  642. package/dist/src/filters/Saturation.mjs.map +0 -0
  643. package/dist/src/filters/Vibrance.d.ts +0 -0
  644. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  645. package/dist/src/filters/Vibrance.min.mjs +0 -0
  646. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  647. package/dist/src/filters/Vibrance.mjs +0 -0
  648. package/dist/src/filters/Vibrance.mjs.map +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  653. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  654. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  655. package/dist/src/filters/filters.d.ts +0 -0
  656. package/dist/src/filters/filters.d.ts.map +0 -0
  657. package/dist/src/filters/filters.min.mjs +0 -0
  658. package/dist/src/filters/filters.min.mjs.map +0 -0
  659. package/dist/src/filters/filters.mjs +0 -0
  660. package/dist/src/filters/filters.mjs.map +0 -0
  661. package/dist/src/filters/index.d.ts +0 -0
  662. package/dist/src/filters/index.d.ts.map +0 -0
  663. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  664. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  665. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  666. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  667. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  668. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  669. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  670. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  671. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  672. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  673. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  674. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  675. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  676. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  677. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  678. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  679. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  680. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  681. package/dist/src/filters/shaders/blur.d.ts +0 -0
  682. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  683. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  684. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  685. package/dist/src/filters/shaders/blur.mjs +0 -0
  686. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  687. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  688. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  689. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  690. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  691. package/dist/src/filters/shaders/brightness.mjs +0 -0
  692. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  697. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  698. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  699. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  700. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  701. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  702. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  703. package/dist/src/filters/shaders/constrast.mjs +0 -0
  704. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  705. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  706. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  707. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  708. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  709. package/dist/src/filters/shaders/convolute.mjs +0 -0
  710. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  711. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  712. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  713. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  714. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  715. package/dist/src/filters/shaders/gamma.mjs +0 -0
  716. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  717. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  718. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  719. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  720. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  721. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  722. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  723. package/dist/src/filters/shaders/invert.d.ts +0 -0
  724. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  725. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  726. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  727. package/dist/src/filters/shaders/invert.mjs +0 -0
  728. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  729. package/dist/src/filters/shaders/noise.d.ts +0 -0
  730. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  731. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  732. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  733. package/dist/src/filters/shaders/noise.mjs +0 -0
  734. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  735. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  736. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  737. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  738. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  739. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  740. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  741. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  742. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  743. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  744. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  745. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  746. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  747. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  748. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  749. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  750. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  751. package/dist/src/filters/shaders/saturation.mjs +0 -0
  752. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  753. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  754. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  755. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  756. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  757. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  758. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  759. package/dist/src/filters/typedefs.d.ts +0 -0
  760. package/dist/src/filters/typedefs.d.ts.map +0 -0
  761. package/dist/src/filters/utils.d.ts +0 -0
  762. package/dist/src/filters/utils.d.ts.map +0 -0
  763. package/dist/src/filters/utils.min.mjs +0 -0
  764. package/dist/src/filters/utils.min.mjs.map +0 -0
  765. package/dist/src/filters/utils.mjs +0 -0
  766. package/dist/src/filters/utils.mjs.map +0 -0
  767. package/dist/src/gradient/Gradient.d.ts +0 -0
  768. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  769. package/dist/src/gradient/Gradient.min.mjs +0 -0
  770. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  771. package/dist/src/gradient/Gradient.mjs +0 -0
  772. package/dist/src/gradient/Gradient.mjs.map +0 -0
  773. package/dist/src/gradient/constants.d.ts +0 -0
  774. package/dist/src/gradient/constants.d.ts.map +0 -0
  775. package/dist/src/gradient/constants.min.mjs +0 -0
  776. package/dist/src/gradient/constants.min.mjs.map +0 -0
  777. package/dist/src/gradient/constants.mjs +0 -0
  778. package/dist/src/gradient/constants.mjs.map +0 -0
  779. package/dist/src/gradient/index.d.ts +0 -0
  780. package/dist/src/gradient/index.d.ts.map +0 -0
  781. package/dist/src/gradient/parser/misc.d.ts +0 -0
  782. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  783. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  784. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  785. package/dist/src/gradient/parser/misc.mjs +0 -0
  786. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  791. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  792. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  793. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  794. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  795. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  796. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  797. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  798. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  799. package/dist/src/gradient/typedefs.d.ts +0 -0
  800. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  801. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  802. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  803. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  804. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  805. package/dist/src/parkinglot/straighten.d.ts +0 -0
  806. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  807. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  808. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  809. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  810. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  811. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  812. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  813. package/dist/src/parser/attributes.d.ts +0 -0
  814. package/dist/src/parser/attributes.d.ts.map +0 -0
  815. package/dist/src/parser/attributes.min.mjs +0 -0
  816. package/dist/src/parser/attributes.min.mjs.map +0 -0
  817. package/dist/src/parser/attributes.mjs +0 -0
  818. package/dist/src/parser/attributes.mjs.map +0 -0
  819. package/dist/src/parser/constants.d.ts +0 -0
  820. package/dist/src/parser/constants.d.ts.map +0 -0
  821. package/dist/src/parser/constants.min.mjs +0 -0
  822. package/dist/src/parser/constants.min.mjs.map +0 -0
  823. package/dist/src/parser/constants.mjs +0 -0
  824. package/dist/src/parser/constants.mjs.map +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  829. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  830. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  831. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  832. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  833. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  834. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  835. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  836. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  837. package/dist/src/parser/elements_parser.d.ts +0 -0
  838. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  839. package/dist/src/parser/elements_parser.min.mjs +0 -0
  840. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  841. package/dist/src/parser/elements_parser.mjs +0 -0
  842. package/dist/src/parser/elements_parser.mjs.map +0 -0
  843. package/dist/src/parser/getCSSRules.d.ts +0 -0
  844. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  845. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  846. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  847. package/dist/src/parser/getCSSRules.mjs +0 -0
  848. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  853. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  854. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  855. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  856. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  857. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  858. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  859. package/dist/src/parser/getGradientDefs.mjs +0 -0
  860. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  861. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  862. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  863. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  864. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  865. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  866. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  867. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  868. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  869. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  870. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  871. package/dist/src/parser/getSvgRegex.mjs +0 -0
  872. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  873. package/dist/src/parser/getTagName.d.ts +0 -0
  874. package/dist/src/parser/getTagName.d.ts.map +0 -0
  875. package/dist/src/parser/getTagName.min.mjs +0 -0
  876. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  877. package/dist/src/parser/getTagName.mjs +0 -0
  878. package/dist/src/parser/getTagName.mjs.map +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  883. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  884. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  885. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  886. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  887. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  888. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  889. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  890. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  891. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  892. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  893. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  894. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  895. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  896. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  897. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  898. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  899. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  900. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  901. package/dist/src/parser/normalizeAttr.mjs +0 -0
  902. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  903. package/dist/src/parser/normalizeValue.d.ts +0 -0
  904. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  905. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  906. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  907. package/dist/src/parser/normalizeValue.mjs +0 -0
  908. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  909. package/dist/src/parser/parseAttributes.d.ts +0 -0
  910. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  911. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  912. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  913. package/dist/src/parser/parseAttributes.mjs +0 -0
  914. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  915. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  916. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  917. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  918. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  919. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  920. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  921. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  922. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  923. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  924. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  925. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  926. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  927. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  928. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  929. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  930. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  931. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  932. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  933. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  934. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  935. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  936. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  937. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  938. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  939. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  940. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  941. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  942. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  943. package/dist/src/parser/parseStyleObject.mjs +0 -0
  944. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  945. package/dist/src/parser/parseStyleString.d.ts +0 -0
  946. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  947. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  948. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  949. package/dist/src/parser/parseStyleString.mjs +0 -0
  950. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  951. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  952. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  953. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  954. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  955. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  956. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  957. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  958. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  959. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  960. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  961. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  962. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  963. package/dist/src/parser/percent.d.ts +0 -0
  964. package/dist/src/parser/percent.d.ts.map +0 -0
  965. package/dist/src/parser/percent.min.mjs +0 -0
  966. package/dist/src/parser/percent.min.mjs.map +0 -0
  967. package/dist/src/parser/percent.mjs +0 -0
  968. package/dist/src/parser/percent.mjs.map +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  973. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  974. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  975. package/dist/src/parser/selectorMatches.d.ts +0 -0
  976. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  977. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  978. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  979. package/dist/src/parser/selectorMatches.mjs +0 -0
  980. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  985. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  986. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  987. package/dist/src/parser/typedefs.d.ts +0 -0
  988. package/dist/src/parser/typedefs.d.ts.map +0 -0
  989. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  990. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  991. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  992. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  993. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  994. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  995. package/dist/src/shapes/Circle.d.ts +0 -0
  996. package/dist/src/shapes/Circle.d.ts.map +0 -0
  997. package/dist/src/shapes/Circle.min.mjs +0 -0
  998. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  999. package/dist/src/shapes/Circle.mjs +0 -0
  1000. package/dist/src/shapes/Circle.mjs.map +0 -0
  1001. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1002. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1003. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1004. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1005. package/dist/src/shapes/Ellipse.mjs +0 -0
  1006. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1007. package/dist/src/shapes/Group.d.ts +0 -0
  1008. package/dist/src/shapes/Group.d.ts.map +0 -0
  1009. package/dist/src/shapes/Group.min.mjs +0 -0
  1010. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1011. package/dist/src/shapes/Group.mjs +0 -0
  1012. package/dist/src/shapes/Group.mjs.map +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1017. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1018. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1019. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1020. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1021. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1022. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1023. package/dist/src/shapes/IText/IText.mjs +206 -206
  1024. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1025. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1026. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1027. package/dist/src/shapes/IText/ITextBehavior.min.mjs +0 -0
  1028. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1029. package/dist/src/shapes/IText/ITextBehavior.mjs +152 -152
  1030. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1031. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1033. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1034. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1035. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1036. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +0 -0
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  1041. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +115 -115
  1042. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  1043. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1044. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1045. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1046. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1047. package/dist/src/shapes/IText/constants.mjs +0 -0
  1048. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1049. package/dist/src/shapes/Image.d.ts +0 -0
  1050. package/dist/src/shapes/Image.d.ts.map +0 -0
  1051. package/dist/src/shapes/Image.min.mjs +0 -0
  1052. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1053. package/dist/src/shapes/Image.mjs +0 -0
  1054. package/dist/src/shapes/Image.mjs.map +0 -0
  1055. package/dist/src/shapes/Line.d.ts +0 -0
  1056. package/dist/src/shapes/Line.d.ts.map +0 -0
  1057. package/dist/src/shapes/Line.min.mjs +0 -0
  1058. package/dist/src/shapes/Line.min.mjs.map +0 -0
  1059. package/dist/src/shapes/Line.mjs +0 -0
  1060. package/dist/src/shapes/Line.mjs.map +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1065. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1066. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1071. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1072. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1077. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1078. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1079. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1080. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1081. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1082. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1083. package/dist/src/shapes/Object/Object.mjs +0 -0
  1084. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1089. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1090. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1095. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1096. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1097. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1098. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1099. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1100. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1101. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1102. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1103. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1104. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1105. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1106. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1107. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1108. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1111. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1112. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1113. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1114. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1115. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1116. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1117. package/dist/src/shapes/Path.d.ts +0 -0
  1118. package/dist/src/shapes/Path.d.ts.map +0 -0
  1119. package/dist/src/shapes/Path.min.mjs +0 -0
  1120. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1121. package/dist/src/shapes/Path.mjs +0 -0
  1122. package/dist/src/shapes/Path.mjs.map +0 -0
  1123. package/dist/src/shapes/Polygon.d.ts +0 -0
  1124. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1125. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1126. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1127. package/dist/src/shapes/Polygon.mjs +0 -0
  1128. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1129. package/dist/src/shapes/Polyline.d.ts +0 -0
  1130. package/dist/src/shapes/Polyline.d.ts.map +0 -0
  1131. package/dist/src/shapes/Polyline.min.mjs +0 -0
  1132. package/dist/src/shapes/Polyline.min.mjs.map +0 -0
  1133. package/dist/src/shapes/Polyline.mjs +0 -0
  1134. package/dist/src/shapes/Polyline.mjs.map +0 -0
  1135. package/dist/src/shapes/Rect.d.ts +0 -0
  1136. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1137. package/dist/src/shapes/Rect.min.mjs +0 -0
  1138. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1139. package/dist/src/shapes/Rect.mjs +0 -0
  1140. package/dist/src/shapes/Rect.mjs.map +0 -0
  1141. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1142. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1143. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1144. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1145. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1146. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1147. package/dist/src/shapes/Text/Text.d.ts +0 -0
  1148. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1149. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1150. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1151. package/dist/src/shapes/Text/Text.mjs +5 -1
  1152. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1157. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1158. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1159. package/dist/src/shapes/Text/constants.d.ts +1 -1
  1160. package/dist/src/shapes/Text/constants.d.ts.map +1 -1
  1161. package/dist/src/shapes/Text/constants.min.mjs +1 -1
  1162. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1163. package/dist/src/shapes/Text/constants.mjs +1 -1
  1164. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1165. package/dist/src/shapes/Textbox.d.ts +0 -0
  1166. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1167. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1168. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1169. package/dist/src/shapes/Textbox.mjs +77 -13
  1170. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1171. package/dist/src/shapes/Triangle.d.ts +0 -0
  1172. package/dist/src/shapes/Triangle.d.ts.map +0 -0
  1173. package/dist/src/shapes/Triangle.min.mjs +0 -0
  1174. package/dist/src/shapes/Triangle.min.mjs.map +0 -0
  1175. package/dist/src/shapes/Triangle.mjs +0 -0
  1176. package/dist/src/shapes/Triangle.mjs.map +0 -0
  1177. package/dist/src/text/browserLines.d.ts +0 -0
  1178. package/dist/src/text/browserLines.d.ts.map +0 -0
  1179. package/dist/src/text/browserLines.min.mjs +0 -0
  1180. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1181. package/dist/src/text/browserLines.mjs +20 -20
  1182. package/dist/src/text/browserLines.mjs.map +1 -1
  1183. package/dist/src/text/ellipsis.d.ts +0 -0
  1184. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1185. package/dist/src/text/ellipsis.min.mjs +0 -0
  1186. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1187. package/dist/src/text/ellipsis.mjs +11 -11
  1188. package/dist/src/text/ellipsis.mjs.map +1 -1
  1189. package/dist/src/text/examples/arabicTextExample.d.ts +60 -0
  1190. package/dist/src/text/examples/arabicTextExample.d.ts.map +1 -0
  1191. package/dist/src/text/hitTest.d.ts +0 -0
  1192. package/dist/src/text/hitTest.d.ts.map +0 -0
  1193. package/dist/src/text/hitTest.min.mjs +0 -0
  1194. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1195. package/dist/src/text/hitTest.mjs +19 -19
  1196. package/dist/src/text/hitTest.mjs.map +1 -1
  1197. package/dist/src/text/layout.d.ts +0 -0
  1198. package/dist/src/text/layout.d.ts.map +0 -0
  1199. package/dist/src/text/layout.min.mjs +0 -0
  1200. package/dist/src/text/layout.min.mjs.map +1 -1
  1201. package/dist/src/text/layout.mjs +33 -33
  1202. package/dist/src/text/layout.mjs.map +1 -1
  1203. package/dist/src/text/measure.d.ts +0 -0
  1204. package/dist/src/text/measure.d.ts.map +0 -0
  1205. package/dist/src/text/measure.min.mjs +0 -0
  1206. package/dist/src/text/measure.min.mjs.map +1 -1
  1207. package/dist/src/text/measure.mjs +30 -30
  1208. package/dist/src/text/measure.mjs.map +1 -1
  1209. package/dist/src/text/overlayEditor.d.ts +0 -0
  1210. package/dist/src/text/overlayEditor.d.ts.map +0 -0
  1211. package/dist/src/text/overlayEditor.min.mjs +0 -0
  1212. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1213. package/dist/src/text/overlayEditor.mjs +33 -33
  1214. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1215. package/dist/src/text/scriptUtils.d.ts +142 -0
  1216. package/dist/src/text/scriptUtils.d.ts.map +1 -0
  1217. package/dist/src/text/scriptUtils.min.mjs +2 -0
  1218. package/dist/src/text/scriptUtils.min.mjs.map +1 -0
  1219. package/dist/src/text/scriptUtils.mjs +212 -0
  1220. package/dist/src/text/scriptUtils.mjs.map +1 -0
  1221. package/dist/src/text/unicode.d.ts +0 -0
  1222. package/dist/src/text/unicode.d.ts.map +0 -0
  1223. package/dist/src/text/unicode.min.mjs +0 -0
  1224. package/dist/src/text/unicode.min.mjs.map +1 -1
  1225. package/dist/src/text/unicode.mjs +8 -8
  1226. package/dist/src/text/unicode.mjs.map +1 -1
  1227. package/dist/src/typedefs.d.ts +0 -0
  1228. package/dist/src/typedefs.d.ts.map +0 -0
  1229. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1230. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1231. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1232. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1233. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1234. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1235. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1236. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1237. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1238. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1239. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1240. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1241. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1242. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1243. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1244. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1245. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1246. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1247. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1248. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1249. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1250. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1251. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1252. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1253. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1254. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1255. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1256. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1257. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1258. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1259. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1260. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1261. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1262. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1263. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1264. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1265. package/dist/src/util/animation/animate.d.ts +0 -0
  1266. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1267. package/dist/src/util/animation/animate.min.mjs +0 -0
  1268. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1269. package/dist/src/util/animation/animate.mjs +0 -0
  1270. package/dist/src/util/animation/animate.mjs.map +0 -0
  1271. package/dist/src/util/animation/easing.d.ts +0 -0
  1272. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1273. package/dist/src/util/animation/easing.min.mjs +0 -0
  1274. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1275. package/dist/src/util/animation/easing.mjs +0 -0
  1276. package/dist/src/util/animation/easing.mjs.map +0 -0
  1277. package/dist/src/util/animation/index.d.ts +0 -0
  1278. package/dist/src/util/animation/index.d.ts.map +0 -0
  1279. package/dist/src/util/animation/types.d.ts +0 -0
  1280. package/dist/src/util/animation/types.d.ts.map +0 -0
  1281. package/dist/src/util/applyMixins.d.ts +0 -0
  1282. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1283. package/dist/src/util/applyMixins.min.mjs +0 -0
  1284. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1285. package/dist/src/util/applyMixins.mjs +0 -0
  1286. package/dist/src/util/applyMixins.mjs.map +0 -0
  1287. package/dist/src/util/dom_event.d.ts +0 -0
  1288. package/dist/src/util/dom_event.d.ts.map +0 -0
  1289. package/dist/src/util/dom_event.min.mjs +0 -0
  1290. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1291. package/dist/src/util/dom_event.mjs +0 -0
  1292. package/dist/src/util/dom_event.mjs.map +0 -0
  1293. package/dist/src/util/dom_misc.d.ts +0 -0
  1294. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1295. package/dist/src/util/dom_misc.min.mjs +0 -0
  1296. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1297. package/dist/src/util/dom_misc.mjs +0 -0
  1298. package/dist/src/util/dom_misc.mjs.map +0 -0
  1299. package/dist/src/util/index.d.ts +0 -0
  1300. package/dist/src/util/index.d.ts.map +0 -0
  1301. package/dist/src/util/index.min.mjs +0 -0
  1302. package/dist/src/util/index.min.mjs.map +0 -0
  1303. package/dist/src/util/index.mjs +0 -0
  1304. package/dist/src/util/index.mjs.map +0 -0
  1305. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1306. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1307. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1308. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1309. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1310. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1311. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1312. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1313. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1314. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1315. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1316. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1317. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1318. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1319. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1320. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1321. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1322. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1323. package/dist/src/util/internals/console.d.ts +0 -0
  1324. package/dist/src/util/internals/console.d.ts.map +0 -0
  1325. package/dist/src/util/internals/console.min.mjs +0 -0
  1326. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1327. package/dist/src/util/internals/console.mjs +0 -0
  1328. package/dist/src/util/internals/console.mjs.map +0 -0
  1329. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1330. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1331. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1332. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1333. package/dist/src/util/internals/dom_style.mjs +0 -0
  1334. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1335. package/dist/src/util/internals/findRight.d.ts +0 -0
  1336. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1337. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1338. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1339. package/dist/src/util/internals/findRight.mjs +0 -0
  1340. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1341. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1342. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1343. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1344. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1345. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1346. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1347. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1348. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1349. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1350. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1351. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1352. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1353. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1354. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1355. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1356. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1357. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1358. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1359. package/dist/src/util/internals/uid.d.ts +0 -0
  1360. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1361. package/dist/src/util/internals/uid.min.mjs +0 -0
  1362. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1363. package/dist/src/util/internals/uid.mjs +0 -0
  1364. package/dist/src/util/internals/uid.mjs.map +0 -0
  1365. package/dist/src/util/lang_string.d.ts +0 -0
  1366. package/dist/src/util/lang_string.d.ts.map +0 -0
  1367. package/dist/src/util/lang_string.min.mjs +0 -0
  1368. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1369. package/dist/src/util/lang_string.mjs +0 -0
  1370. package/dist/src/util/lang_string.mjs.map +0 -0
  1371. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1372. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1373. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1374. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1375. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1376. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1377. package/dist/src/util/misc/capValue.d.ts +0 -0
  1378. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1379. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1380. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1381. package/dist/src/util/misc/capValue.mjs +0 -0
  1382. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1383. package/dist/src/util/misc/cornerRadius.d.ts +0 -0
  1384. package/dist/src/util/misc/cornerRadius.d.ts.map +0 -0
  1385. package/dist/src/util/misc/cornerRadius.min.mjs +0 -0
  1386. package/dist/src/util/misc/cornerRadius.min.mjs.map +0 -0
  1387. package/dist/src/util/misc/cornerRadius.mjs +0 -0
  1388. package/dist/src/util/misc/cornerRadius.mjs.map +0 -0
  1389. package/dist/src/util/misc/cos.d.ts +0 -0
  1390. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1391. package/dist/src/util/misc/cos.min.mjs +0 -0
  1392. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1393. package/dist/src/util/misc/cos.mjs +0 -0
  1394. package/dist/src/util/misc/cos.mjs.map +0 -0
  1395. package/dist/src/util/misc/dom.d.ts +0 -0
  1396. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1397. package/dist/src/util/misc/dom.min.mjs +0 -0
  1398. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1399. package/dist/src/util/misc/dom.mjs +0 -0
  1400. package/dist/src/util/misc/dom.mjs.map +0 -0
  1401. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1402. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1403. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1404. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1405. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1406. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1407. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1408. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1409. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1410. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1411. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1412. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1413. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1414. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1415. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1416. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1417. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1418. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1419. package/dist/src/util/misc/matrix.d.ts +0 -0
  1420. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1421. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1422. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1423. package/dist/src/util/misc/matrix.mjs +0 -0
  1424. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1425. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1426. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1427. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1428. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1429. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1430. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1431. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1432. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1433. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1434. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1435. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1436. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1437. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1438. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1439. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1440. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1441. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1442. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1443. package/dist/src/util/misc/pick.d.ts +0 -0
  1444. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1445. package/dist/src/util/misc/pick.min.mjs +0 -0
  1446. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1447. package/dist/src/util/misc/pick.mjs +0 -0
  1448. package/dist/src/util/misc/pick.mjs.map +0 -0
  1449. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1450. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1451. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1452. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1453. package/dist/src/util/misc/planeChange.mjs +0 -0
  1454. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1457. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1458. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1459. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1460. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1461. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1462. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1463. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1464. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1465. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1466. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1467. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1468. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1469. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1470. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1471. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1472. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1473. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1474. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1475. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1476. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1477. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1478. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1479. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1480. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1481. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1482. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1483. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1484. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1485. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1486. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1487. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1488. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1489. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1490. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1491. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1492. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1493. package/dist/src/util/misc/sin.d.ts +0 -0
  1494. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1495. package/dist/src/util/misc/sin.min.mjs +0 -0
  1496. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1497. package/dist/src/util/misc/sin.mjs +0 -0
  1498. package/dist/src/util/misc/sin.mjs.map +0 -0
  1499. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1500. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1501. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1502. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1503. package/dist/src/util/misc/svgExport.mjs +0 -0
  1504. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1505. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1506. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1507. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1508. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1509. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1510. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1511. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1512. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1513. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1514. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1515. package/dist/src/util/misc/textStyles.mjs +0 -0
  1516. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1517. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1518. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1519. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1520. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1521. package/dist/src/util/misc/toFixed.mjs +0 -0
  1522. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1523. package/dist/src/util/misc/vectors.d.ts +0 -0
  1524. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1525. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1526. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1527. package/dist/src/util/misc/vectors.mjs +0 -0
  1528. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1529. package/dist/src/util/path/index.d.ts +0 -0
  1530. package/dist/src/util/path/index.d.ts.map +0 -0
  1531. package/dist/src/util/path/index.min.mjs +0 -0
  1532. package/dist/src/util/path/index.min.mjs.map +0 -0
  1533. package/dist/src/util/path/index.mjs +0 -0
  1534. package/dist/src/util/path/index.mjs.map +0 -0
  1535. package/dist/src/util/path/regex.d.ts +0 -0
  1536. package/dist/src/util/path/regex.d.ts.map +0 -0
  1537. package/dist/src/util/path/regex.min.mjs +0 -0
  1538. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1539. package/dist/src/util/path/regex.mjs +0 -0
  1540. package/dist/src/util/path/regex.mjs.map +0 -0
  1541. package/dist/src/util/path/typechecks.d.ts +0 -0
  1542. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1543. package/dist/src/util/path/typedefs.d.ts +0 -0
  1544. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1545. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1546. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1547. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1548. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1549. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1550. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1551. package/dist/src/util/typeAssertions.d.ts +0 -0
  1552. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1553. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1554. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1555. package/dist/src/util/typeAssertions.mjs +0 -0
  1556. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1557. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1558. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1559. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1560. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1561. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1562. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1563. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1564. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1565. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1566. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1567. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1568. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1569. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1570. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1571. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1572. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1573. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1574. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1575. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1576. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1577. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1578. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1579. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1580. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1581. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1582. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1583. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1584. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1585. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1586. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1587. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1588. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1589. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1590. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1591. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1592. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1593. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1594. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1595. package/dist-extensions/extensions/index.d.ts +0 -0
  1596. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1597. package/dist-extensions/fabric-extensions.min.js +0 -0
  1598. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1599. package/dist-extensions/fabric.d.ts +0 -0
  1600. package/dist-extensions/fabric.d.ts.map +0 -0
  1601. package/dist-extensions/index.d.ts +0 -0
  1602. package/dist-extensions/index.d.ts.map +0 -0
  1603. package/dist-extensions/index.mjs +0 -0
  1604. package/dist-extensions/index.mjs.map +0 -0
  1605. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1606. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1607. package/dist-extensions/src/Collection.d.ts +0 -0
  1608. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1609. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1610. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1611. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1612. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1613. package/dist-extensions/src/Intersection.d.ts +0 -0
  1614. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1615. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1616. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1617. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1618. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1619. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1620. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1621. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1622. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1623. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1624. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1625. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1626. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1627. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1628. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1629. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1630. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1631. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1632. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1633. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1634. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1635. package/dist-extensions/src/Observable.d.ts +0 -0
  1636. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1637. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1638. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1639. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1640. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1641. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1642. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1643. package/dist-extensions/src/Point.d.ts +0 -0
  1644. package/dist-extensions/src/Point.d.ts.map +0 -0
  1645. package/dist-extensions/src/Shadow.d.ts +0 -0
  1646. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1647. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1648. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1649. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1650. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1651. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1652. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1653. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1654. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1655. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1656. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1657. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1658. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1659. package/dist-extensions/src/cache.d.ts +0 -0
  1660. package/dist-extensions/src/cache.d.ts.map +0 -0
  1661. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1662. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1663. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1664. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1665. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1666. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1667. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1668. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1669. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1670. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1671. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1672. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1673. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1674. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1675. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1676. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1677. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1678. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1679. package/dist-extensions/src/color/Color.d.ts +0 -0
  1680. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1681. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1682. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1683. package/dist-extensions/src/color/constants.d.ts +0 -0
  1684. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1685. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1686. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1687. package/dist-extensions/src/color/util.d.ts +0 -0
  1688. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1689. package/dist-extensions/src/config.d.ts +0 -0
  1690. package/dist-extensions/src/config.d.ts.map +0 -0
  1691. package/dist-extensions/src/constants.d.ts +0 -0
  1692. package/dist-extensions/src/constants.d.ts.map +0 -0
  1693. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1694. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1695. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1696. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1697. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1698. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1699. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1700. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1701. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1702. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1703. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1704. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1705. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1706. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1707. package/dist-extensions/src/controls/index.d.ts +0 -0
  1708. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1709. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1710. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1711. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1712. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1713. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1714. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1715. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1716. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1717. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1718. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1719. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1720. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1721. package/dist-extensions/src/controls/util.d.ts +0 -0
  1722. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1723. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1724. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1725. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1726. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1727. package/dist-extensions/src/env/browser.d.ts +0 -0
  1728. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1729. package/dist-extensions/src/env/index.d.ts +0 -0
  1730. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1731. package/dist-extensions/src/env/types.d.ts +0 -0
  1732. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1733. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1734. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1735. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1736. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1737. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1738. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1739. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1740. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1741. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1742. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1743. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1744. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1745. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1746. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1747. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1748. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1749. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1750. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1751. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1752. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1753. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1754. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1755. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1756. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1757. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1758. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1759. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1760. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1761. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1762. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1763. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1764. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1765. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1766. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1767. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1768. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1769. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1770. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1771. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1772. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1773. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1774. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1775. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1776. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1777. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1778. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1779. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1780. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1781. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1782. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1783. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1784. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1785. package/dist-extensions/src/filters/index.d.ts +0 -0
  1786. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1787. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1788. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1789. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1790. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1791. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1792. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1793. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1794. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1795. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1796. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1797. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1798. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1799. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1800. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1801. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1802. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1803. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1804. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1805. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1806. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1807. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1808. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1809. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1810. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1811. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1812. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1813. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1814. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1815. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1816. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1817. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1818. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1819. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1820. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1821. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1822. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1823. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1824. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1825. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1826. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1827. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1828. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1829. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1830. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1831. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1832. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1833. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1834. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1835. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1836. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1837. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1838. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1839. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1840. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1841. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1842. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1843. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1844. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1845. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1846. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1847. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1848. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1849. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1850. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1851. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1852. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1853. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1854. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1855. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1856. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1857. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1858. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1859. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1860. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1861. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1862. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1863. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1864. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1865. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1866. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1867. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1868. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1869. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1870. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1871. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1872. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1873. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1874. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1875. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1876. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1877. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1878. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1879. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1880. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1881. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1882. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1883. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1884. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1885. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1886. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1887. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1888. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1889. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1890. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1891. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1892. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1893. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1894. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1895. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1896. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1897. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1898. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1899. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1900. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1901. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1902. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1903. package/dist-extensions/src/shapes/CustomLine.d.ts +10 -0
  1904. package/dist-extensions/src/shapes/CustomLine.d.ts.map +1 -0
  1905. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1906. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1907. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1908. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1909. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1910. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1911. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1912. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1913. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1914. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +0 -0
  1915. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1916. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1917. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1918. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +0 -0
  1919. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1920. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1921. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1922. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1923. package/dist-extensions/src/shapes/Line.d.ts +0 -0
  1924. package/dist-extensions/src/shapes/Line.d.ts.map +0 -0
  1925. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1926. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1927. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1928. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1929. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1930. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1931. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1932. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1933. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1934. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1935. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1936. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1939. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1940. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1941. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1942. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1943. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1944. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1945. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1946. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1947. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1948. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1949. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1950. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1951. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1952. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1953. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1954. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1955. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1956. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1957. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1958. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1959. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1960. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1961. package/dist-extensions/src/shapes/Polyline.d.ts +0 -0
  1962. package/dist-extensions/src/shapes/Polyline.d.ts.map +0 -0
  1963. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1964. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1965. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1966. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1967. package/dist-extensions/src/shapes/Text/Text.d.ts +0 -0
  1968. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1969. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1970. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1971. package/dist-extensions/src/shapes/Text/constants.d.ts +1 -1
  1972. package/dist-extensions/src/shapes/Text/constants.d.ts.map +1 -1
  1973. package/dist-extensions/src/shapes/Textbox.d.ts +0 -0
  1974. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1975. package/dist-extensions/src/shapes/Triangle.d.ts +0 -0
  1976. package/dist-extensions/src/shapes/Triangle.d.ts.map +0 -0
  1977. package/dist-extensions/src/text/browserLines.d.ts +0 -0
  1978. package/dist-extensions/src/text/browserLines.d.ts.map +0 -0
  1979. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1980. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1981. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1982. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1983. package/dist-extensions/src/text/layout.d.ts +0 -0
  1984. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1985. package/dist-extensions/src/text/measure.d.ts +0 -0
  1986. package/dist-extensions/src/text/measure.d.ts.map +0 -0
  1987. package/dist-extensions/src/text/overlayEditor.d.ts +0 -0
  1988. package/dist-extensions/src/text/overlayEditor.d.ts.map +0 -0
  1989. package/dist-extensions/src/text/scriptUtils.d.ts +142 -0
  1990. package/dist-extensions/src/text/scriptUtils.d.ts.map +1 -0
  1991. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1992. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1993. package/dist-extensions/src/typedefs.d.ts +0 -0
  1994. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1995. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1996. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1997. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1998. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1999. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  2000. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  2001. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  2002. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  2003. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  2004. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  2005. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  2006. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  2007. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  2008. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  2009. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  2010. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  2011. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  2012. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  2013. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  2014. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  2015. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  2016. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  2017. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  2018. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  2019. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2020. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2021. package/dist-extensions/src/util/index.d.ts +0 -0
  2022. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2023. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2024. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2025. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2026. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2027. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2028. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2029. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2030. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2031. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2032. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2033. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2034. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2035. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2036. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2037. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2038. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2039. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2040. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2041. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2042. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2043. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2044. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2045. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2046. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2047. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2048. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2049. package/dist-extensions/src/util/misc/cornerRadius.d.ts +0 -0
  2050. package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +0 -0
  2051. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2052. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2053. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2054. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2055. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2056. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2057. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2058. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2059. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2060. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2061. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2062. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2063. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2064. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2065. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2066. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2067. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2068. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2069. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2070. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2071. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2072. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2073. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2074. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2075. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2076. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2077. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2078. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2079. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2080. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2081. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2082. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2083. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2084. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2085. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2086. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2087. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2088. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2089. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2090. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2091. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2092. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2093. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2094. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2095. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2096. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2097. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2098. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2099. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2100. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2101. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2102. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2103. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2104. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2105. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2106. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2107. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2108. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2109. package/docs/fabric-konva-gap-analysis.md +0 -0
  2110. package/docs/konva-text-behavior-spec.md +0 -0
  2111. package/docs/text-engine-design.md +0 -0
  2112. package/eslint.config.mjs +0 -0
  2113. package/examples/overlay-edit.html +416 -416
  2114. package/extensions/README.MD +0 -0
  2115. package/extensions/aligning_guidelines/README.MD +0 -0
  2116. package/extensions/aligning_guidelines/constant.ts +0 -0
  2117. package/extensions/aligning_guidelines/index.ts +0 -0
  2118. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2119. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2120. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2121. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2122. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2123. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2124. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2125. package/extensions/data_updaters/README.md +0 -0
  2126. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2127. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2128. package/extensions/data_updaters/gradient/index.ts +0 -0
  2129. package/extensions/data_updaters/origins/README.md +0 -0
  2130. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2131. package/extensions/data_updaters/origins/index.ts +0 -0
  2132. package/extensions/index.ts +0 -0
  2133. package/fabric-test-editor.html +3552 -0
  2134. package/fabric-test2.html +647 -0
  2135. package/fabric.ts +182 -182
  2136. package/fonts/STV Bold.ttf +0 -0
  2137. package/fonts/STV Light.ttf +0 -0
  2138. package/fonts/STV Regular.ttf +0 -0
  2139. package/index.node.ts +0 -0
  2140. package/index.ts +0 -0
  2141. package/lib/aligning_guidelines.js +0 -0
  2142. package/lib/centering_guidelines.js +0 -0
  2143. package/lib/event.js +0 -0
  2144. package/package.json +164 -164
  2145. package/playwright.config.ts +0 -0
  2146. package/playwright.setup.ts +0 -0
  2147. package/publish-next.js +0 -0
  2148. package/publish.js +0 -0
  2149. package/rollup.config.mjs +0 -0
  2150. package/rtl-debug.html +745 -0
  2151. package/scripts/bench-text.js +591 -591
  2152. package/scripts/build.mjs +0 -0
  2153. package/scripts/buildLock.mjs +0 -0
  2154. package/scripts/buildReporter.mjs +0 -0
  2155. package/scripts/buildStats.mjs +0 -0
  2156. package/scripts/dirname.mjs +0 -0
  2157. package/scripts/git.mjs +0 -0
  2158. package/scripts/index.mjs +0 -0
  2159. package/scripts/sandbox.mjs +0 -0
  2160. package/src/ClassRegistry.spec.ts +0 -0
  2161. package/src/ClassRegistry.ts +0 -0
  2162. package/src/Collection.spec.ts +0 -0
  2163. package/src/Collection.ts +0 -0
  2164. package/src/CommonMethods.ts +0 -0
  2165. package/src/EventTypeDefs.ts +0 -0
  2166. package/src/Intersection.spec.ts +0 -0
  2167. package/src/Intersection.ts +0 -0
  2168. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2169. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2170. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2171. package/src/LayoutManager/LayoutManager.ts +0 -0
  2172. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2173. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2174. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2175. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2176. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2177. package/src/LayoutManager/README.md +0 -0
  2178. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2179. package/src/LayoutManager/constants.ts +0 -0
  2180. package/src/LayoutManager/index.ts +0 -0
  2181. package/src/LayoutManager/types.ts +0 -0
  2182. package/src/Observable.spec.ts +0 -0
  2183. package/src/Observable.ts +0 -0
  2184. package/src/Pattern/Pattern.spec.ts +0 -0
  2185. package/src/Pattern/Pattern.ts +0 -0
  2186. package/src/Pattern/index.ts +0 -0
  2187. package/src/Pattern/types.ts +0 -0
  2188. package/src/Point.spec.ts +0 -0
  2189. package/src/Point.ts +0 -0
  2190. package/src/Shadow.spec.ts +0 -0
  2191. package/src/Shadow.ts +0 -0
  2192. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2193. package/src/brushes/BaseBrush.spec.ts +0 -0
  2194. package/src/brushes/BaseBrush.ts +0 -0
  2195. package/src/brushes/CircleBrush.test.ts +0 -0
  2196. package/src/brushes/CircleBrush.ts +0 -0
  2197. package/src/brushes/PatternBrush.ts +0 -0
  2198. package/src/brushes/PencilBrush.spec.ts +0 -0
  2199. package/src/brushes/PencilBrush.ts +0 -0
  2200. package/src/brushes/SprayBrush.ts +0 -0
  2201. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2202. package/src/brushes/typedefs.ts +0 -0
  2203. package/src/cache.spec.ts +0 -0
  2204. package/src/cache.ts +0 -0
  2205. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2206. package/src/canvas/Canvas-events.spec.ts +0 -0
  2207. package/src/canvas/Canvas.spec.ts +0 -0
  2208. package/src/canvas/Canvas.ts +0 -0
  2209. package/src/canvas/CanvasOptions.ts +0 -0
  2210. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2211. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2212. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2213. package/src/canvas/DOMManagers/util.ts +0 -0
  2214. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2215. package/src/canvas/SelectableCanvas.ts +0 -0
  2216. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2217. package/src/canvas/StaticCanvas.ts +0 -0
  2218. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2219. package/src/canvas/TextEditingManager.ts +0 -0
  2220. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2221. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2222. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2223. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2224. package/src/color/Color.ts +0 -0
  2225. package/src/color/color.test.ts +0 -0
  2226. package/src/color/color_map.ts +0 -0
  2227. package/src/color/constants.ts +0 -0
  2228. package/src/color/typedefs.ts +0 -0
  2229. package/src/color/util.ts +0 -0
  2230. package/src/config.ts +0 -0
  2231. package/src/constants.ts +0 -0
  2232. package/src/controls/Control-cursor.spec.ts +0 -0
  2233. package/src/controls/Control-handlers.spec.ts +0 -0
  2234. package/src/controls/Control.spec.ts +0 -0
  2235. package/src/controls/Control.ts +0 -0
  2236. package/src/controls/changeHeight.ts +0 -0
  2237. package/src/controls/changeWidth.test.ts +0 -0
  2238. package/src/controls/changeWidth.ts +0 -0
  2239. package/src/controls/commonControls.ts +0 -0
  2240. package/src/controls/controlRendering.ts +0 -0
  2241. package/src/controls/drag.ts +0 -0
  2242. package/src/controls/fireEvent.ts +0 -0
  2243. package/src/controls/index.ts +0 -0
  2244. package/src/controls/pathControl.spec.ts +0 -0
  2245. package/src/controls/pathControl.ts +0 -0
  2246. package/src/controls/polyControl.spec.ts +0 -0
  2247. package/src/controls/polyControl.ts +0 -0
  2248. package/src/controls/rotate.ts +0 -0
  2249. package/src/controls/scale.test.ts +0 -0
  2250. package/src/controls/scale.ts +0 -0
  2251. package/src/controls/scaleSkew.ts +0 -0
  2252. package/src/controls/skew.ts +0 -0
  2253. package/src/controls/util.ts +0 -0
  2254. package/src/controls/wrapWithFireEvent.ts +0 -0
  2255. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2256. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2257. package/src/env/browser.ts +0 -0
  2258. package/src/env/env.spec.ts +0 -0
  2259. package/src/env/index.ts +0 -0
  2260. package/src/env/node.ts +0 -0
  2261. package/src/env/types.ts +0 -0
  2262. package/src/filters/BaseFilter.spec.ts +0 -0
  2263. package/src/filters/BaseFilter.ts +0 -0
  2264. package/src/filters/BlendColor.ts +0 -0
  2265. package/src/filters/BlendImage.ts +0 -0
  2266. package/src/filters/Blur.ts +0 -0
  2267. package/src/filters/Boilerplate.ts +0 -0
  2268. package/src/filters/Brightness.ts +0 -0
  2269. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2270. package/src/filters/ColorMatrix.spec.ts +0 -0
  2271. package/src/filters/ColorMatrix.ts +0 -0
  2272. package/src/filters/ColorMatrixFilters.ts +0 -0
  2273. package/src/filters/Composed.ts +0 -0
  2274. package/src/filters/Contrast.ts +0 -0
  2275. package/src/filters/Convolute.ts +0 -0
  2276. package/src/filters/FilterBackend.ts +0 -0
  2277. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2278. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2279. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2280. package/src/filters/Gamma.ts +0 -0
  2281. package/src/filters/Grayscale.ts +0 -0
  2282. package/src/filters/HueRotation.ts +0 -0
  2283. package/src/filters/Invert.ts +0 -0
  2284. package/src/filters/Noise.ts +0 -0
  2285. package/src/filters/Pixelate.ts +0 -0
  2286. package/src/filters/RemoveColor.ts +0 -0
  2287. package/src/filters/Resize.ts +0 -0
  2288. package/src/filters/Saturation.ts +0 -0
  2289. package/src/filters/Vibrance.ts +0 -0
  2290. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2291. package/src/filters/WebGLFilterBackend.ts +0 -0
  2292. package/src/filters/filters.ts +0 -0
  2293. package/src/filters/index.ts +0 -0
  2294. package/src/filters/shaders/baseFilter.ts +0 -0
  2295. package/src/filters/shaders/blendColor.ts +0 -0
  2296. package/src/filters/shaders/blendImage.ts +0 -0
  2297. package/src/filters/shaders/blur.ts +0 -0
  2298. package/src/filters/shaders/brightness.ts +0 -0
  2299. package/src/filters/shaders/colorMatrix.ts +0 -0
  2300. package/src/filters/shaders/constrast.ts +0 -0
  2301. package/src/filters/shaders/convolute.ts +0 -0
  2302. package/src/filters/shaders/gamma.ts +0 -0
  2303. package/src/filters/shaders/grayscale.ts +0 -0
  2304. package/src/filters/shaders/invert.ts +0 -0
  2305. package/src/filters/shaders/noise.ts +0 -0
  2306. package/src/filters/shaders/pixelate.ts +0 -0
  2307. package/src/filters/shaders/removeColor.ts +0 -0
  2308. package/src/filters/shaders/saturation.ts +0 -0
  2309. package/src/filters/shaders/vibrance.ts +0 -0
  2310. package/src/filters/typedefs.ts +0 -0
  2311. package/src/filters/utils.ts +0 -0
  2312. package/src/gradient/Gradient.spec.ts +0 -0
  2313. package/src/gradient/Gradient.ts +0 -0
  2314. package/src/gradient/constants.ts +0 -0
  2315. package/src/gradient/index.ts +0 -0
  2316. package/src/gradient/parser/misc.ts +0 -0
  2317. package/src/gradient/parser/parseColorStops.ts +0 -0
  2318. package/src/gradient/parser/parseCoords.ts +0 -0
  2319. package/src/gradient/typedefs.ts +0 -0
  2320. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2321. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2322. package/src/parkinglot/straighten.ts +0 -0
  2323. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2324. package/src/parser/applyViewboxTransform.ts +0 -0
  2325. package/src/parser/attributes.ts +0 -0
  2326. package/src/parser/constants.spec.ts +0 -0
  2327. package/src/parser/constants.ts +0 -0
  2328. package/src/parser/doesSomeParentMatch.ts +0 -0
  2329. package/src/parser/elementMatchesRule.ts +0 -0
  2330. package/src/parser/elements_parser.ts +0 -0
  2331. package/src/parser/getCSSRules.spec.ts +0 -0
  2332. package/src/parser/getCSSRules.ts +0 -0
  2333. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2334. package/src/parser/getGradientDefs.ts +0 -0
  2335. package/src/parser/getMultipleNodes.ts +0 -0
  2336. package/src/parser/getSvgRegex.ts +0 -0
  2337. package/src/parser/getTagName.ts +0 -0
  2338. package/src/parser/hasInvalidAncestor.ts +0 -0
  2339. package/src/parser/loadSVGFromString.test.ts +0 -0
  2340. package/src/parser/loadSVGFromString.ts +0 -0
  2341. package/src/parser/loadSVGFromURL.ts +0 -0
  2342. package/src/parser/normalizeAttr.ts +0 -0
  2343. package/src/parser/normalizeValue.ts +0 -0
  2344. package/src/parser/parseAttributes.ts +0 -0
  2345. package/src/parser/parseFontDeclaration.ts +0 -0
  2346. package/src/parser/parsePointsAttribute.ts +0 -0
  2347. package/src/parser/parseSVGDocument.ts +0 -0
  2348. package/src/parser/parseStyleAttribute.ts +0 -0
  2349. package/src/parser/parseStyleObject.ts +0 -0
  2350. package/src/parser/parseStyleString.ts +0 -0
  2351. package/src/parser/parseTransformAttribute.ts +0 -0
  2352. package/src/parser/parseUseDirectives.test.ts +0 -0
  2353. package/src/parser/parseUseDirectives.ts +0 -0
  2354. package/src/parser/parser.spec.ts +0 -0
  2355. package/src/parser/percent.ts +0 -0
  2356. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2357. package/src/parser/selectorMatches.ts +0 -0
  2358. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2359. package/src/parser/typedefs.ts +0 -0
  2360. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2361. package/src/shapes/ActiveSelection.ts +0 -0
  2362. package/src/shapes/Circle.spec.ts +0 -0
  2363. package/src/shapes/Circle.ts +0 -0
  2364. package/src/shapes/Ellipse.spec.ts +0 -0
  2365. package/src/shapes/Ellipse.ts +0 -0
  2366. package/src/shapes/Group.spec.ts +0 -0
  2367. package/src/shapes/Group.ts +0 -0
  2368. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2369. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2370. package/src/shapes/IText/IText.test.ts +0 -0
  2371. package/src/shapes/IText/IText.ts +846 -846
  2372. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2373. package/src/shapes/IText/ITextBehavior.ts +1187 -1187
  2374. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2375. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2376. package/src/shapes/IText/ITextKeyBehavior.ts +732 -732
  2377. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2378. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2379. package/src/shapes/IText/constants.ts +0 -0
  2380. package/src/shapes/Image-filters.spec.ts +0 -0
  2381. package/src/shapes/Image.spec.ts +0 -0
  2382. package/src/shapes/Image.ts +0 -0
  2383. package/src/shapes/Line.spec.ts +0 -0
  2384. package/src/shapes/Line.ts +0 -0
  2385. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2386. package/src/shapes/Object/FabricObject.ts +0 -0
  2387. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2388. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2389. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2390. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2391. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2392. package/src/shapes/Object/Object.spec.ts +0 -0
  2393. package/src/shapes/Object/Object.ts +0 -0
  2394. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2395. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2396. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2397. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2398. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2399. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2400. package/src/shapes/Object/defaultValues.ts +0 -0
  2401. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2402. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2403. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2404. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2405. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2406. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2407. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2408. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2409. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2410. package/src/shapes/Object/types/index.ts +0 -0
  2411. package/src/shapes/Path.spec.ts +0 -0
  2412. package/src/shapes/Path.ts +0 -0
  2413. package/src/shapes/Polygon.spec.ts +0 -0
  2414. package/src/shapes/Polygon.ts +0 -0
  2415. package/src/shapes/Polyline.spec.ts +0 -0
  2416. package/src/shapes/Polyline.ts +0 -0
  2417. package/src/shapes/Rect.spec.ts +0 -0
  2418. package/src/shapes/Rect.ts +0 -0
  2419. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2420. package/src/shapes/Text/StyledText.ts +0 -0
  2421. package/src/shapes/Text/Text.spec.ts +0 -0
  2422. package/src/shapes/Text/Text.ts +5 -1
  2423. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2424. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2425. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2426. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2427. package/src/shapes/Text/constants.ts +135 -134
  2428. package/src/shapes/Textbox.spec.ts +0 -0
  2429. package/src/shapes/Textbox.ts +74 -5
  2430. package/src/shapes/Triangle.spec.ts +0 -0
  2431. package/src/shapes/Triangle.ts +0 -0
  2432. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2433. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2434. package/src/text/browserLines.ts +233 -233
  2435. package/src/text/ellipsis.ts +516 -516
  2436. package/src/text/hitTest.ts +623 -623
  2437. package/src/text/layout.ts +586 -586
  2438. package/src/text/measure.ts +626 -626
  2439. package/src/text/overlayEditor.ts +1047 -1047
  2440. package/src/text/unicode.ts +454 -454
  2441. package/src/typedefs.ts +0 -0
  2442. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2443. package/src/util/animation/AnimationBase.ts +0 -0
  2444. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2445. package/src/util/animation/AnimationRegistry.ts +0 -0
  2446. package/src/util/animation/ArrayAnimation.ts +0 -0
  2447. package/src/util/animation/ColorAnimation.ts +0 -0
  2448. package/src/util/animation/ValueAnimation.ts +0 -0
  2449. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2450. package/src/util/animation/animate.ts +0 -0
  2451. package/src/util/animation/animations.spec.ts +0 -0
  2452. package/src/util/animation/easing.ts +0 -0
  2453. package/src/util/animation/index.ts +0 -0
  2454. package/src/util/animation/types.ts +0 -0
  2455. package/src/util/applyMixins.ts +0 -0
  2456. package/src/util/dom_event.spec.ts +0 -0
  2457. package/src/util/dom_event.ts +0 -0
  2458. package/src/util/dom_misc.ts +0 -0
  2459. package/src/util/index.spec.ts +0 -0
  2460. package/src/util/index.ts +0 -0
  2461. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2462. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2463. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2464. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2465. package/src/util/internals/cloneStyles.ts +0 -0
  2466. package/src/util/internals/console.ts +0 -0
  2467. package/src/util/internals/dom_style.spec.ts +0 -0
  2468. package/src/util/internals/dom_style.ts +0 -0
  2469. package/src/util/internals/findRight.ts +0 -0
  2470. package/src/util/internals/getRandomInt.test.ts +0 -0
  2471. package/src/util/internals/getRandomInt.ts +0 -0
  2472. package/src/util/internals/ifNaN.ts +0 -0
  2473. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2474. package/src/util/internals/removeFromArray.ts +0 -0
  2475. package/src/util/internals/uid.ts +0 -0
  2476. package/src/util/lang_string.spec.ts +0 -0
  2477. package/src/util/lang_string.ts +0 -0
  2478. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2479. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2480. package/src/util/misc/capValue.spec.ts +0 -0
  2481. package/src/util/misc/capValue.ts +0 -0
  2482. package/src/util/misc/cornerRadius.spec.ts +0 -0
  2483. package/src/util/misc/cornerRadius.ts +0 -0
  2484. package/src/util/misc/cos.spec.ts +0 -0
  2485. package/src/util/misc/cos.ts +0 -0
  2486. package/src/util/misc/dom.spec.ts +0 -0
  2487. package/src/util/misc/dom.ts +0 -0
  2488. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2489. package/src/util/misc/findScaleTo.ts +0 -0
  2490. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2491. package/src/util/misc/groupSVGElements.ts +0 -0
  2492. package/src/util/misc/isTransparent.ts +0 -0
  2493. package/src/util/misc/matrix.spec.ts +0 -0
  2494. package/src/util/misc/matrix.ts +0 -0
  2495. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2496. package/src/util/misc/mergeClipPaths.ts +0 -0
  2497. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2498. package/src/util/misc/objectEnlive.ts +0 -0
  2499. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2500. package/src/util/misc/objectTransforms.ts +0 -0
  2501. package/src/util/misc/pick.spec.ts +0 -0
  2502. package/src/util/misc/pick.ts +0 -0
  2503. package/src/util/misc/planeChange.spec.ts +0 -0
  2504. package/src/util/misc/planeChange.ts +0 -0
  2505. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2506. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2507. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2508. package/src/util/misc/projectStroke/index.ts +0 -0
  2509. package/src/util/misc/projectStroke/types.ts +0 -0
  2510. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2511. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2512. package/src/util/misc/resolveOrigin.ts +0 -0
  2513. package/src/util/misc/sin.ts +0 -0
  2514. package/src/util/misc/svgExport.ts +0 -0
  2515. package/src/util/misc/svgParsing.spec.ts +0 -0
  2516. package/src/util/misc/svgParsing.ts +0 -0
  2517. package/src/util/misc/textStyles.ts +0 -0
  2518. package/src/util/misc/toFixed.spec.ts +0 -0
  2519. package/src/util/misc/toFixed.ts +0 -0
  2520. package/src/util/misc/vectors.spec.ts +0 -0
  2521. package/src/util/misc/vectors.ts +0 -0
  2522. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2523. package/src/util/path/index.spec.ts +0 -0
  2524. package/src/util/path/index.ts +0 -0
  2525. package/src/util/path/regex.ts +0 -0
  2526. package/src/util/path/typechecks.ts +0 -0
  2527. package/src/util/path/typedefs.ts +0 -0
  2528. package/src/util/transform_matrix_removal.ts +0 -0
  2529. package/src/util/typeAssertions.spec.ts +0 -0
  2530. package/src/util/typeAssertions.ts +0 -0
  2531. package/tsconfig-extensions.json +0 -0
  2532. package/tsconfig.json +0 -0
  2533. package/tsconfig.spec.json +0 -0
  2534. package/typedoc.config.json +0 -0
  2535. package/vitest.config.ts +0 -0
  2536. package/vitest.d.ts +0 -0
  2537. package/vitest.env.d.ts +0 -0
  2538. package/vitest.extend.ts +0 -0
  2539. package/vitest.setup.ts +0 -0
  2540. package/dist/src/controls/changeHeight.min.mjs +0 -2
  2541. package/dist/src/controls/changeHeight.min.mjs.map +0 -1
  2542. package/dist/src/controls/changeHeight.mjs +0 -36
  2543. package/dist/src/controls/changeHeight.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Textbox.mjs","sources":["../../../src/shapes/Textbox.ts"],"sourcesContent":["import type { TClassProperties, TOptions } from '../typedefs';\nimport { IText } from './IText/IText';\nimport { classRegistry } from '../ClassRegistry';\nimport { createTextboxDefaultControls } from '../controls/commonControls';\nimport { JUSTIFY, JUSTIFY_CENTER } from './Text/constants';\nimport type { TextStyleDeclaration } from './Text/StyledText';\nimport type { SerializedITextProps, ITextProps } from './IText/IText';\nimport type { ITextEvents } from './IText/ITextBehavior';\nimport type { TextLinesInfo } from './Text/Text';\nimport type { Control } from '../controls/Control';\nimport { fontLacksEnglishGlyphsCached } from '../text/measure';\nimport { layoutText } from '../text/layout';\n\n// @TODO: Many things here are configuration related and shouldn't be on the class nor prototype\n// regexes, list of properties that are not suppose to change by instances, magic consts.\n// this will be a separated effort\nexport const textboxDefaultValues: Partial<TClassProperties<Textbox>> = {\n minWidth: 20,\n dynamicMinWidth: 2,\n lockScalingFlip: true,\n noScaleCache: false,\n _wordJoiners: /[ \\t\\r]/,\n splitByGrapheme: false,\n};\n\nexport type GraphemeData = {\n wordsData: {\n word: string[];\n width: number;\n }[][];\n largestWordWidth: number;\n};\n\nexport type StyleMap = Record<string, { line: number; offset: number }>;\n\n// @TODO this is not complete\ninterface UniqueTextboxProps {\n minWidth: number;\n splitByGrapheme: boolean;\n dynamicMinWidth: number;\n _wordJoiners: RegExp;\n}\n\nexport interface SerializedTextboxProps\n extends SerializedITextProps,\n Pick<UniqueTextboxProps, 'minWidth' | 'splitByGrapheme'> {}\n\nexport interface TextboxProps extends ITextProps, UniqueTextboxProps {}\n\n/**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n */\nexport class Textbox<\n Props extends TOptions<TextboxProps> = Partial<TextboxProps>,\n SProps extends SerializedTextboxProps = SerializedTextboxProps,\n EventSpec extends ITextEvents = ITextEvents,\n >\n extends IText<Props, SProps, EventSpec>\n implements UniqueTextboxProps\n{\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n */\n declare minWidth: number;\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n */\n declare dynamicMinWidth: number;\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japanese\n * @type Boolean\n * @since 2.6.0\n */\n declare splitByGrapheme: boolean;\n\n declare _wordJoiners: RegExp;\n\n declare _styleMap: StyleMap;\n\n declare isWrapping: boolean;\n\n static type = 'Textbox';\n\n static textLayoutProperties = [...IText.textLayoutProperties, 'width'];\n\n static ownDefaults = textboxDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Textbox.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n */\n constructor(text: string, options?: Props) {\n super(text, { ...Textbox.ownDefaults, ...options } as Props);\n this.initializeEventListeners();\n }\n\n /**\n * Creates the default control object.\n * If you prefer to have on instance of controls shared among all objects\n * make this function return an empty object and add controls to the ownDefaults object\n */\n static createControls(): { controls: Record<string, Control> } {\n return { controls: createTextboxDefaultControls() };\n }\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions() {\n if (!this.initialized) {\n this.initialized = true;\n }\n \n // Prevent rapid recalculations during moves\n if ((this as any)._usingBrowserWrapping) {\n const now = Date.now();\n const lastCall = (this as any)._lastInitDimensionsTime || 0;\n const isRapidCall = now - lastCall < 100;\n const isDuringLoading = (this as any)._jsonLoading || !(this as any)._browserWrapInitialized;\n \n if (isRapidCall && !isDuringLoading) {\n return;\n }\n (this as any)._lastInitDimensionsTime = now;\n }\n \n // Skip if nothing changed\n const currentState = `${this.text}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n if ((this as any)._lastDimensionState === currentState && this._textLines && this._textLines.length > 0) {\n return;\n }\n (this as any)._lastDimensionState = currentState;\n \n // Use advanced layout if enabled\n if (this.enableAdvancedLayout) {\n return this.initDimensionsAdvanced();\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n const splitTextResult = this._splitText();\n this._styleMap = this._generateStyleMap(splitTextResult);\n \n // For browser wrapping, ensure _textLines is set from browser results\n if ((this as any)._usingBrowserWrapping && splitTextResult && splitTextResult.lines) {\n this._textLines = splitTextResult.lines.map(line => line.split(''));\n \n // Store justify measurements and browser height\n const justifyMeasurements = (splitTextResult as any).justifySpaceMeasurements;\n if (justifyMeasurements) {\n (this._styleMap as any).justifySpaceMeasurements = justifyMeasurements;\n }\n \n const actualHeight = (splitTextResult as any).actualBrowserHeight;\n if (actualHeight) {\n (this as any)._actualBrowserHeight = actualHeight;\n }\n }\n // Don't auto-resize width when using browser wrapping to prevent width increases during moves\n if (!((this as any)._usingBrowserWrapping) && this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n \n // For browser wrapping fonts (like STV), ensure minimum width for new textboxes\n // since these fonts can't measure English characters properly\n if ((this as any)._usingBrowserWrapping && this.width < 50) {\n console.log(`🔤 BROWSER WRAP: Font ${this.fontFamily} has width ${this.width}px, setting to 300px for usability`);\n this.width = 300;\n }\n \n // Mark browser wrapping as initialized when complete\n if ((this as any)._usingBrowserWrapping) {\n (this as any)._browserWrapInitialized = true;\n }\n \n if (this.textAlign.includes(JUSTIFY)) {\n // For browser wrapping fonts, apply browser-calculated justify spaces\n if ((this as any)._usingBrowserWrapping) {\n console.log('🔤 BROWSER WRAP: Applying browser-calculated justify spaces');\n this._applyBrowserJustifySpaces();\n return;\n }\n \n // Don't apply justify alignment during drag operations to prevent snapping\n const now = Date.now();\n const lastDragTime = (this as any)._lastInitDimensionsTime || 0;\n const isDuringDrag = now - lastDragTime < 200; // 200ms window for drag detection\n \n if (isDuringDrag) {\n console.log('🔤 Skipping justify during drag operation to prevent snapping');\n return;\n }\n \n // For non-browser-wrapping fonts, use Fabric's justify system\n // once text is measured we need to make space fatter to make justified text.\n // Ensure __charBounds exists and fonts are ready before applying justify\n if (this.__charBounds && this.__charBounds.length > 0) {\n // Check if font is ready for accurate justify calculations\n const fontReady = this._isFontReady ? this._isFontReady() : true;\n if (fontReady) {\n this.enlargeSpaces();\n } else {\n console.warn('⚠️ Textbox: Font not ready for justify, deferring enlargeSpaces');\n // Defer justify calculation until font is ready\n this._scheduleJustifyAfterFontLoad();\n }\n } else {\n console.warn('⚠️ Textbox: __charBounds not ready for justify alignment, deferring enlargeSpaces');\n // Defer the justify calculation until the next frame\n setTimeout(() => {\n if (this.__charBounds && this.__charBounds.length > 0 && this.enlargeSpaces) {\n console.log('🔧 Applying deferred Textbox justify alignment');\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n }, 0);\n }\n }\n // Calculate height - use Fabric's calculation for proper text rendering space\n if ((this as any)._usingBrowserWrapping && this._textLines && this._textLines.length > 0) {\n const actualBrowserHeight = (this as any)._actualBrowserHeight;\n const oldHeight = this.height;\n // Use Fabric's height calculation since it knows how much space text rendering needs\n this.height = this.calcTextHeight();\n \n // Force canvas refresh and control update if height changed significantly\n if (Math.abs(this.height - oldHeight) > 1) {\n this.setCoords();\n this.canvas?.requestRenderAll();\n \n // DEBUG: Log exact positioning details\n console.log(`🎯 POSITIONING DEBUG:`);\n console.log(` Textbox height: ${this.height}px`);\n console.log(` Textbox top: ${this.top}px`);\n console.log(` Textbox left: ${this.left}px`);\n console.log(` Text lines: ${this._textLines?.length || 0}`);\n console.log(` Font size: ${this.fontSize}px`);\n console.log(` Line height: ${this.lineHeight || 1.16}`);\n console.log(` Calculated line height: ${this.fontSize * (this.lineHeight || 1.16)}px`);\n console.log(` _getTopOffset(): ${this._getTopOffset()}px`);\n console.log(` calcTextHeight(): ${this.calcTextHeight()}px`);\n console.log(` Browser height: ${actualBrowserHeight}px`);\n console.log(` Height difference: ${this.height - this.calcTextHeight()}px`);\n }\n } else {\n this.height = this.calcTextHeight();\n }\n }\n\n /**\n * Schedule justify calculation after font loads (Textbox-specific)\n * @private\n */\n _scheduleJustifyAfterFontLoad(): void {\n if (typeof document === 'undefined' || !('fonts' in document)) {\n return;\n }\n \n // Only schedule if not already waiting\n if ((this as any)._fontJustifyScheduled) {\n return;\n }\n (this as any)._fontJustifyScheduled = true;\n \n const fontSpec = `${this.fontSize}px ${this.fontFamily}`;\n document.fonts.load(fontSpec).then(() => {\n (this as any)._fontJustifyScheduled = false;\n console.log('🔧 Textbox: Font loaded, applying justify alignment');\n \n // Re-run initDimensions to ensure proper justify calculation\n this.initDimensions();\n this.canvas?.requestRenderAll();\n }).catch(() => {\n (this as any)._fontJustifyScheduled = false;\n console.warn('⚠️ Textbox: Font loading failed, justify may be incorrect');\n });\n }\n\n /**\n * Advanced dimensions calculation using new layout engine\n * @private\n */\n initDimensionsAdvanced() {\n if (!this.initialized) {\n return;\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n this.dynamicMinWidth = 0;\n \n // Use new layout engine\n const layout = layoutText({\n text: this.text,\n width: this.width,\n height: this.height,\n wrap: this.wrap || 'word',\n align: (this as any)._mapTextAlignToAlign(this.textAlign),\n ellipsis: this.ellipsis || false,\n fontSize: this.fontSize,\n lineHeight: this.lineHeight,\n letterSpacing: this.letterSpacing || 0,\n charSpacing: this.charSpacing,\n direction: this.direction === 'inherit' ? 'ltr' : this.direction,\n fontFamily: this.fontFamily,\n fontStyle: this.fontStyle,\n fontWeight: this.fontWeight,\n verticalAlign: this.verticalAlign || 'top',\n });\n \n // Update dynamic minimum width based on layout\n if (layout.lines.length > 0) {\n const maxLineWidth = Math.max(...layout.lines.map(line => line.width));\n this.dynamicMinWidth = Math.max(this.minWidth, maxLineWidth);\n }\n \n // Adjust width if needed (preserving Textbox behavior)\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n // Re-layout with new width\n const newLayout = layoutText({\n ...(this as any)._getAdvancedLayoutOptions(),\n width: this.width,\n });\n this.height = newLayout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(newLayout);\n } else {\n this.height = layout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(layout);\n }\n \n // Generate style map for compatibility\n this._styleMap = this._generateStyleMapFromLayout(layout);\n this.dirty = true;\n }\n\n /**\n * Generate style map from new layout format\n * @private\n */\n _generateStyleMapFromLayout(layout: any): StyleMap {\n const map: StyleMap = {};\n let realLineCount = 0;\n let charCount = 0;\n\n layout.lines.forEach((line: any, i: number) => {\n if (line.text.includes('\\n') && i > 0) {\n realLineCount++;\n }\n \n map[i] = { line: realLineCount, offset: 0 };\n charCount += line.graphemes.length;\n \n if (i < layout.lines.length - 1) {\n charCount += 1; // newline character\n }\n });\n\n return map;\n }\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap(textInfo: TextLinesInfo): StyleMap {\n let realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0;\n const map: StyleMap = {};\n\n for (let i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n } else if (\n !this.splitByGrapheme &&\n this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) &&\n i > 0\n ) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n }\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas(property: keyof TextStyleDeclaration, lineIndex: number): boolean {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return super.styleHas(property, lineIndex);\n }\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles(lineIndex: number): boolean {\n if (!this.styles) {\n return true;\n }\n let offset = 0,\n nextLineIndex = lineIndex + 1,\n nextOffset: number,\n shouldLimit = false;\n const map = this._styleMap[lineIndex],\n mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n const obj =\n typeof lineIndex === 'undefined'\n ? this.styles\n : { line: this.styles[lineIndex] };\n for (const p1 in obj) {\n for (const p2 in obj[p1]) {\n const p2Number = parseInt(p2, 10);\n if (p2Number >= offset && (!shouldLimit || p2Number < nextOffset!)) {\n for (const p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n }\n\n /**\n * @protected\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined\n */\n _getStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n ): TextStyleDeclaration {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (!map) {\n return {};\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return super._getStyleDeclaration(lineIndex, charIndex);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n protected _setStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n style: object,\n ) {\n const map = this._styleMap[lineIndex];\n super._setStyleDeclaration(map.line, map.offset + charIndex, style);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n protected _deleteStyleDeclaration(lineIndex: number, charIndex: number) {\n const map = this._styleMap[lineIndex];\n super._deleteStyleDeclaration(map.line, map.offset + charIndex);\n }\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n protected _getLineStyle(lineIndex: number): boolean {\n const map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n }\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n protected _setLineStyle(lineIndex: number) {\n const map = this._styleMap[lineIndex];\n super._setLineStyle(map.line);\n }\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText(lines: string[], desiredWidth: number): string[][] {\n this.isWrapping = true;\n // extract all thewords and the widths to optimally wrap lines.\n const data = this.getGraphemeDataForRender(lines);\n const wrapped: string[][] = [];\n for (let i = 0; i < data.wordsData.length; i++) {\n wrapped.push(...this._wrapLine(i, desiredWidth, data));\n }\n this.isWrapping = false;\n return wrapped;\n }\n\n /**\n * For each line of text terminated by an hard line stop,\n * measure each word width and extract the largest word from all.\n * The returned words here are the one that at the end will be rendered.\n * @param {string[]} lines the lines we need to measure\n *\n */\n getGraphemeDataForRender(lines: string[]): GraphemeData {\n const splitByGrapheme = this.splitByGrapheme,\n infix = splitByGrapheme ? '' : ' ';\n\n let largestWordWidth = 0;\n\n const data = lines.map((line, lineIndex) => {\n let offset = 0;\n const wordsOrGraphemes = splitByGrapheme\n ? this.graphemeSplit(line)\n : this.wordSplit(line);\n\n if (wordsOrGraphemes.length === 0) {\n return [{ word: [], width: 0 }];\n }\n\n return wordsOrGraphemes.map((word: string) => {\n // if using splitByGrapheme words are already in graphemes.\n const graphemeArray = splitByGrapheme\n ? [word]\n : this.graphemeSplit(word);\n const width = this._measureWord(graphemeArray, lineIndex, offset);\n largestWordWidth = Math.max(width, largestWordWidth);\n offset += graphemeArray.length + infix.length;\n return { word: graphemeArray, width };\n });\n });\n\n return {\n wordsData: data,\n largestWordWidth,\n };\n }\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * It gets called when charBounds are not available yet.\n * Override if necessary\n * Use with {@link Textbox#wordSplit}\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n */\n _measureWord(word: string[], lineIndex: number, charOffset = 0): number {\n let width = 0,\n prevGrapheme;\n const skipLeft = true;\n for (let i = 0, len = word.length; i < len; i++) {\n const box = this._getGraphemeBox(\n word[i],\n lineIndex,\n i + charOffset,\n prevGrapheme,\n skipLeft,\n );\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n }\n\n /**\n * Override this method to customize word splitting\n * Use with {@link Textbox#_measureWord}\n * @param {string} value\n * @returns {string[]} array of words\n */\n wordSplit(value: string): string[] {\n return value.split(this._wordJoiners);\n }\n\n /**\n * Wraps a line of text using the width of the Textbox as desiredWidth\n * and leveraging the known width o words from GraphemeData\n * @private\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {GraphemeData} graphemeData an object containing all the lines' words width.\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine(\n lineIndex: number,\n desiredWidth: number,\n { largestWordWidth, wordsData }: GraphemeData,\n reservedSpace = 0,\n ): string[][] {\n const additionalSpace = this._getWidthOfCharSpacing(),\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n infix = splitByGrapheme ? '' : ' ';\n\n let lineWidth = 0,\n line: string[] = [],\n // spaces in different languages?\n offset = 0,\n infixWidth = 0,\n lineJustStarted = true;\n\n desiredWidth -= reservedSpace;\n\n const maxWidth = Math.max(\n desiredWidth,\n largestWordWidth,\n this.dynamicMinWidth,\n );\n // layout words\n const data = wordsData[lineIndex];\n offset = 0;\n let i;\n for (i = 0; i < data.length; i++) {\n const { word, width: wordWidth } = data[i];\n offset += word.length;\n\n // Predictive wrapping: check if adding this word would exceed the width\n const potentialLineWidth = lineWidth + infixWidth + wordWidth - additionalSpace;\n // Use exact width to match overlay editor behavior\n const conservativeMaxWidth = maxWidth; // No artificial buffer\n \n // Debug logging for wrapping decisions\n const currentLineText = line.join('');\n console.log(`🔧 FABRIC WRAP CHECK: \"${data[i].word}\" -> potential: ${potentialLineWidth.toFixed(1)}px vs limit: ${conservativeMaxWidth.toFixed(1)}px`);\n \n if (potentialLineWidth > conservativeMaxWidth && !lineJustStarted) {\n // This word would exceed the width, wrap before adding it\n console.log(`🔧 FABRIC WRAP! Line: \"${currentLineText}\" (${lineWidth.toFixed(1)}px)`);\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth; // Start new line with just this word\n lineJustStarted = true;\n } else {\n // Word fits, add it to current line\n lineWidth = potentialLineWidth + additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n \n // Debug: show current line after adding word\n console.log(`🔧 FABRIC AFTER ADD: Line now: \"${line.join('')}\" (${line.length} chars)`);\n \n\n infixWidth = splitByGrapheme\n ? 0\n : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n }\n\n i && graphemeLines.push(line);\n\n // TODO: this code is probably not necessary anymore.\n // it can be moved out of this function since largestWordWidth is now\n // known in advance\n // Don't modify dynamicMinWidth when using browser wrapping to prevent width increases\n if (!((this as any)._usingBrowserWrapping) && largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n console.log(`🔧 FABRIC updating dynamicMinWidth: ${this.dynamicMinWidth} -> ${largestWordWidth - additionalSpace + reservedSpace}`);\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n } else if ((this as any)._usingBrowserWrapping) {\n console.log(`🔤 BROWSER WRAP: Skipping dynamicMinWidth update to prevent width increase`);\n }\n \n // Debug: show final wrapped lines\n console.log(`🔧 FABRIC FINAL LINES: ${graphemeLines.length} lines`);\n graphemeLines.forEach((line, i) => {\n console.log(` Line ${i + 1}: \"${line.join('')}\" (${line.length} chars)`);\n });\n \n return graphemeLines;\n }\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping(lineIndex: number): boolean {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n }\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * This is important only for splitByGrapheme at the end of wrapping.\n * If we are not wrapping the offset is always 1\n * @return Number\n */\n missingNewlineOffset(lineIndex: number, skipWrapping?: boolean): 0 | 1 {\n if (this.splitByGrapheme && !skipWrapping) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n }\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines(text: string) {\n // Check if we need browser wrapping using smart font detection\n const needsBrowserWrapping = this.fontFamily && fontLacksEnglishGlyphsCached(this.fontFamily);\n \n if (needsBrowserWrapping) {\n // Cache key based on text content, width, font properties, AND text alignment\n const textHash = text.length + text.slice(0, 50); // Include text content in cache key\n const cacheKey = `${textHash}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n \n // Check if we have a cached result and nothing has changed\n if ((this as any)._browserWrapCache && (this as any)._browserWrapCache.key === cacheKey) {\n const cachedResult = (this as any)._browserWrapCache.result;\n \n // For justify alignment, ensure we have the measurements\n if (this.textAlign.includes('justify') && !(cachedResult as any).justifySpaceMeasurements) {\n // Fall through to recalculate\n } else {\n return cachedResult;\n }\n }\n \n const result = this._splitTextIntoLinesWithBrowser(text);\n \n // Cache the result\n (this as any)._browserWrapCache = { key: cacheKey, result };\n \n // Mark that we used browser wrapping to prevent dynamicMinWidth modifications\n (this as any)._usingBrowserWrapping = true;\n \n return result;\n }\n \n // Clear the browser wrapping flag when using regular wrapping\n (this as any)._usingBrowserWrapping = false;\n \n // Default Fabric wrapping for other fonts\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n /**\n * Use browser's native text wrapping for accurate handling of fonts without English glyphs\n * @private\n */\n _splitTextIntoLinesWithBrowser(text: string) {\n if (typeof document === 'undefined') {\n // Fallback to regular wrapping in Node.js\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Create a hidden element that mimics the overlay editor\n const testElement = document.createElement('div');\n testElement.style.position = 'absolute';\n testElement.style.left = '-9999px';\n testElement.style.visibility = 'hidden';\n testElement.style.fontSize = `${this.fontSize}px`;\n testElement.style.fontFamily = `\"${this.fontFamily}\"`;\n testElement.style.fontWeight = String(this.fontWeight || 'normal');\n testElement.style.fontStyle = String(this.fontStyle || 'normal');\n testElement.style.lineHeight = String(this.lineHeight || 1.16);\n \n testElement.style.width = `${this.width}px`;\n \n testElement.style.direction = this.direction || 'ltr';\n testElement.style.whiteSpace = 'pre-wrap';\n testElement.style.wordBreak = 'normal';\n testElement.style.overflowWrap = 'break-word';\n \n // Set browser-native text alignment (including justify)\n if (this.textAlign.includes('justify')) {\n testElement.style.textAlign = 'justify';\n testElement.style.textAlignLast = 'auto'; // Let browser decide last line alignment\n } else {\n testElement.style.textAlign = this.textAlign;\n }\n \n testElement.textContent = text;\n\n document.body.appendChild(testElement);\n\n // Get the browser's natural line breaks\n const range = document.createRange();\n const lines: string[] = [];\n const graphemeLines: string[][] = [];\n\n try {\n // Simple approach: split by measuring character positions\n const textNode = testElement.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n let currentLineStart = 0;\n const textLength = text.length;\n let previousBottom = 0;\n \n for (let i = 0; i <= textLength; i++) {\n range.setStart(textNode, currentLineStart);\n range.setEnd(textNode, i);\n const rect = range.getBoundingClientRect();\n \n if (i > currentLineStart && (rect.bottom > previousBottom + 5 || i === textLength)) {\n // New line detected or end of text\n const lineEnd = i === textLength ? i : i - 1;\n const lineText = text.substring(currentLineStart, lineEnd).trim();\n if (lineText) {\n lines.push(lineText);\n // Convert to graphemes for compatibility\n const graphemeLine = lineText.split('');\n graphemeLines.push(graphemeLine);\n }\n currentLineStart = lineEnd;\n previousBottom = rect.bottom;\n }\n }\n }\n } catch (error) {\n console.warn('Browser wrapping failed, using fallback:', error);\n document.body.removeChild(testElement);\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Extract actual browser height BEFORE removing element\n const actualBrowserHeight = testElement.scrollHeight;\n const offsetHeight = testElement.offsetHeight;\n const clientHeight = testElement.clientHeight;\n const boundingRect = testElement.getBoundingClientRect();\n \n console.log(`🔤 Browser element measurements:`);\n console.log(` scrollHeight: ${actualBrowserHeight}px (content + padding + hidden overflow)`);\n console.log(` offsetHeight: ${offsetHeight}px (content + padding + border)`);\n console.log(` clientHeight: ${clientHeight}px (content + padding, no border/scrollbar)`);\n console.log(` boundingRect.height: ${boundingRect.height}px (actual rendered height)`);\n console.log(` Font size: ${this.fontSize}px, Line height: ${this.lineHeight || 1.16}, Lines: ${lines.length}`);\n\n // For justify alignment, extract space measurements from browser BEFORE removing element\n let justifySpaceMeasurements = null;\n if (this.textAlign.includes('justify')) {\n justifySpaceMeasurements = this._extractJustifySpaceMeasurements(testElement, lines);\n }\n\n document.body.removeChild(testElement);\n\n console.log(`🔤 Browser wrapping result: ${lines.length} lines`);\n \n // Try different height measurements to find the most accurate\n let bestHeight = actualBrowserHeight;\n \n // If scrollHeight and offsetHeight differ significantly, investigate\n if (Math.abs(actualBrowserHeight - offsetHeight) > 2) {\n console.log(`🔤 Height discrepancy detected: scrollHeight=${actualBrowserHeight}px vs offsetHeight=${offsetHeight}px`);\n }\n \n // Consider using boundingRect height if it's larger (sometimes more accurate for visible content)\n if (boundingRect.height > bestHeight) {\n console.log(`🔤 Using boundingRect height (${boundingRect.height}px) instead of scrollHeight (${bestHeight}px)`);\n bestHeight = boundingRect.height;\n }\n \n // Font-specific height adjustments for accurate bounding box\n let adjustedHeight = bestHeight;\n \n // Fonts without English glyphs need additional height buffer due to different font metrics\n const lacksEnglishGlyphs = fontLacksEnglishGlyphsCached(this.fontFamily);\n if (lacksEnglishGlyphs) {\n const glyphBuffer = this.fontSize * 0.25; // 25% of font size for non-English fonts\n adjustedHeight = bestHeight + glyphBuffer;\n console.log(`🔤 Non-English font detected (${this.fontFamily}): Adding ${glyphBuffer}px buffer (${bestHeight}px + ${glyphBuffer}px = ${adjustedHeight}px)`);\n } else {\n console.log(`🔤 Standard font (${this.fontFamily}): Using browser height directly (${bestHeight}px)`);\n }\n \n return {\n _unwrappedLines: [text.split('')],\n lines: lines,\n graphemeText: text.split(''),\n graphemeLines: graphemeLines,\n justifySpaceMeasurements: justifySpaceMeasurements,\n actualBrowserHeight: adjustedHeight,\n };\n }\n\n\n\n\n /**\n * Extract justify space measurements from browser\n * @private\n */\n _extractJustifySpaceMeasurements(element: HTMLElement, lines: string[]) {\n console.log(`🔤 Extracting browser justify space measurements for ${lines.length} lines`);\n \n // For now, we'll use a simplified approach:\n // Apply uniform space expansion to match the line width\n const spaceWidths: number[][] = [];\n \n lines.forEach((line, lineIndex) => {\n const lineSpaces: number[] = [];\n const spaceCount = (line.match(/\\s/g) || []).length;\n \n if (spaceCount > 0 && lineIndex < lines.length - 1) { // Don't justify last line\n // Calculate how much space expansion is needed\n const normalSpaceWidth = 6.4; // Default space width for STV font\n const lineWidth = this.width;\n \n // Estimate natural line width\n const charCount = line.length - spaceCount;\n const avgCharWidth = 12; // Approximate for STV font\n const naturalWidth = charCount * avgCharWidth + spaceCount * normalSpaceWidth;\n \n // Calculate expanded space width\n const remainingSpace = lineWidth - (charCount * avgCharWidth);\n const expandedSpaceWidth = remainingSpace / spaceCount;\n \n console.log(`🔤 Line ${lineIndex}: ${spaceCount} spaces, natural: ${normalSpaceWidth}px -> justified: ${expandedSpaceWidth.toFixed(1)}px`);\n \n // Fill array with expanded space widths for this line\n for (let i = 0; i < spaceCount; i++) {\n lineSpaces.push(expandedSpaceWidth);\n }\n }\n \n spaceWidths.push(lineSpaces);\n });\n \n return spaceWidths;\n }\n\n /**\n * Apply browser-calculated justify space measurements\n * @private\n */\n _applyBrowserJustifySpaces() {\n if (!this._textLines || !this.__charBounds) {\n console.warn('🔤 BROWSER JUSTIFY: _textLines or __charBounds not ready');\n return;\n }\n\n // Get space measurements from browser wrapping result\n const styleMap = this._styleMap as any;\n if (!styleMap || !styleMap.justifySpaceMeasurements) {\n console.warn('🔤 BROWSER JUSTIFY: No justify space measurements available');\n return;\n }\n\n const spaceWidths = styleMap.justifySpaceMeasurements as number[][];\n console.log('🔤 BROWSER JUSTIFY: Applying space measurements to __charBounds');\n\n // Apply space widths to character bounds\n this._textLines.forEach((line, lineIndex) => {\n if (!this.__charBounds || !this.__charBounds[lineIndex] || !spaceWidths[lineIndex]) return;\n \n const lineBounds = this.__charBounds[lineIndex];\n const lineSpaceWidths = spaceWidths[lineIndex];\n let spaceIndex = 0;\n\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n if (/\\s/.test(line[charIndex]) && spaceIndex < lineSpaceWidths.length) {\n const expandedWidth = lineSpaceWidths[spaceIndex];\n if (lineBounds[charIndex]) {\n const oldWidth = lineBounds[charIndex].width;\n lineBounds[charIndex].width = expandedWidth;\n console.log(`🔤 Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${expandedWidth.toFixed(1)}px`);\n }\n spaceIndex++;\n }\n }\n });\n }\n\n /**\n * Fallback to default Fabric wrapping\n * @private\n */\n _splitTextIntoLinesDefault(text: string) {\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n getMinWidth() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n }\n\n _removeExtraneousStyles() {\n const linesToKeep = new Map();\n for (const prop in this._styleMap) {\n const propNumber = parseInt(prop, 10);\n if (this._textLines[propNumber]) {\n const lineIndex = this._styleMap[prop].line;\n linesToKeep.set(`${lineIndex}`, true);\n }\n }\n for (const prop in this.styles) {\n if (!linesToKeep.has(prop)) {\n delete this.styles[prop];\n }\n }\n }\n\n /**\n * Initialize event listeners for safety snap functionality\n * @private\n */\n private initializeEventListeners(): void {\n // Track which side is being used for resize to handle position compensation\n let resizeOrigin: 'left' | 'right' | null = null;\n \n // Detect resize origin during resizing\n this.on('resizing', (e: any) => {\n // Check transform origin to determine which side is being resized\n if (e.transform) {\n const { originX } = e.transform;\n // originX tells us which side is the anchor - opposite side is being dragged\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n } else if (e.originX) {\n const { originX } = e;\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n }\n });\n \n // Only trigger safety snap after resize is complete (not during)\n // Use 'modified' event which fires after user releases the mouse\n this.on('modified', () => {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n // Small delay to ensure text layout is updated\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n });\n \n // Also listen to canvas-level modified event as backup\n this.canvas?.on('object:modified', (e) => {\n if (e.target === this) {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n }\n });\n }\n\n /**\n * Safety snap to prevent glyph clipping after manual resize.\n * Similar to Polotno - checks if any glyphs are too close to edges\n * and automatically expands width if needed.\n * @private\n * @param resizeOrigin - Which side was used for resizing ('left' or 'right')\n */\n private safetySnapWidth(resizeOrigin?: 'left' | 'right' | null): void {\n // For Textbox objects, we always want to check for clipping regardless of isWrapping flag\n if (!this._textLines || this.type.toLowerCase() !== 'textbox' || this._textLines.length === 0) {\n return;\n }\n \n const lineCount = this._textLines.length;\n if (lineCount === 0) return;\n\n // Check all lines, not just the last one\n let maxActualLineWidth = 0; // Actual measured width without buffers\n let maxRequiredWidth = 0; // Width including RTL buffer\n \n for (let i = 0; i < lineCount; i++) {\n const lineText = this._textLines[i].join(''); // Convert grapheme array to string\n const lineWidth = this.getLineWidth(i);\n maxActualLineWidth = Math.max(maxActualLineWidth, lineWidth);\n \n // RTL detection - regex for Arabic, Hebrew, and other RTL characters\n const rtlRegex = /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\n if (rtlRegex.test(lineText)) {\n // Add minimal RTL compensation buffer - just enough to prevent clipping\n const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);\n } else {\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);\n }\n }\n\n // Safety margin - how close glyphs can get before we snap\n const safetyThreshold = 2; // px - very subtle trigger\n \n if (maxRequiredWidth > this.width - safetyThreshold) {\n // Set width to exactly what's needed + minimal safety margin\n const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin\n \n // Store original position before width change\n const originalLeft = this.left;\n const originalTop = this.top;\n const widthIncrease = newWidth - this.width;\n \n // Change width \n this.set('width', newWidth);\n \n // Force text layout recalculation\n this.initDimensions();\n \n // Only compensate position when resizing from left handle\n // Right handle resize doesn't shift the text position\n if (resizeOrigin === 'left') {\n // When resizing from left, the expansion pushes text right\n // Compensate by moving the textbox left by the width increase\n this.set({\n 'left': originalLeft - widthIncrease,\n 'top': originalTop\n });\n }\n \n this.setCoords();\n \n // Also refresh the overlay editor if it exists\n if ((this as any).__overlayEditor) {\n setTimeout(() => {\n (this as any).__overlayEditor.refresh();\n }, 0);\n }\n \n this.canvas?.requestRenderAll();\n }\n }\n\n /**\n * Fix character selection mismatch after JSON loading for browser-wrapped fonts\n * @private\n */\n _fixCharacterMappingAfterJsonLoad(): void {\n if ((this as any)._usingBrowserWrapping) {\n // Clear all cached states to force fresh text layout calculation\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n \n // Force complete re-initialization\n this.initDimensions();\n this._forceClearCache = true;\n \n // Ensure canvas refresh\n this.setCoords();\n if (this.canvas) {\n this.canvas.requestRenderAll();\n }\n }\n }\n\n /**\n * Force complete textbox re-initialization (useful after JSON loading)\n * Overrides Text version with Textbox-specific logic\n */\n forceTextReinitialization(): void {\n console.log('🔄 Force reinitializing Textbox object');\n \n // CRITICAL: Ensure textbox is marked as initialized\n this.initialized = true;\n \n // Clear all caches and force dirty state\n this._clearCache();\n this.dirty = true;\n this.dynamicMinWidth = 0;\n \n // Force isEditing false to ensure clean state\n this.isEditing = false;\n \n console.log(' → Set initialized=true, dirty=true, cleared caches');\n \n // Re-initialize dimensions (this will handle justify properly)\n this.initDimensions();\n \n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) => /\\s/.test(this._textLines[i][j]));\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(space => Math.abs(space.width - firstSpaceWidth) > 0.1);\n }\n }\n });\n \n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again');\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n \n // Ensure height is recalculated - use browser height if available\n if ((this as any)._usingBrowserWrapping && (this as any)._actualBrowserHeight) {\n this.height = (this as any)._actualBrowserHeight;\n console.log(`🔤 JUSTIFY: Preserved browser height: ${this.height}px`);\n } else {\n this.height = this.calcTextHeight();\n console.log(`🔧 JUSTIFY: Used calcTextHeight: ${this.height}px`);\n }\n this.canvas?.requestRenderAll();\n }, 10);\n }\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<T, K>([\n 'minWidth',\n 'splitByGrapheme',\n ...propertiesToInclude,\n ] as K[]);\n }\n}\n\nclassRegistry.setClass(Textbox);\n"],"names":["textboxDefaultValues","minWidth","dynamicMinWidth","lockScalingFlip","noScaleCache","_wordJoiners","splitByGrapheme","Textbox","IText","getDefaults","ownDefaults","constructor","text","options","initializeEventListeners","createControls","controls","createTextboxDefaultControls","initDimensions","initialized","_usingBrowserWrapping","now","Date","lastCall","_lastInitDimensionsTime","isRapidCall","isDuringLoading","_jsonLoading","_browserWrapInitialized","currentState","width","fontSize","fontFamily","textAlign","_lastDimensionState","_textLines","length","enableAdvancedLayout","initDimensionsAdvanced","isEditing","initDelayedCursor","_clearCache","splitTextResult","_splitText","_styleMap","_generateStyleMap","lines","map","line","split","justifyMeasurements","justifySpaceMeasurements","actualHeight","actualBrowserHeight","_actualBrowserHeight","_set","console","log","includes","JUSTIFY","_applyBrowserJustifySpaces","lastDragTime","isDuringDrag","__charBounds","fontReady","_isFontReady","enlargeSpaces","warn","_scheduleJustifyAfterFontLoad","setTimeout","_this$canvas","canvas","requestRenderAll","oldHeight","height","calcTextHeight","Math","abs","_this$canvas2","_this$_textLines","setCoords","top","left","lineHeight","_getTopOffset","document","_fontJustifyScheduled","fontSpec","fonts","load","then","_this$canvas3","catch","layout","layoutText","wrap","align","_mapTextAlignToAlign","ellipsis","letterSpacing","charSpacing","direction","fontStyle","fontWeight","verticalAlign","maxLineWidth","max","newLayout","_getAdvancedLayoutOptions","totalHeight","_convertLayoutToLegacyFormat","_generateStyleMapFromLayout","dirty","realLineCount","charCount","forEach","i","offset","graphemes","textInfo","realLineCharCount","graphemeLines","graphemeText","_reSpaceAndTab","test","styleHas","property","lineIndex","isWrapping","isEmptyStyles","styles","nextLineIndex","nextOffset","shouldLimit","mapNextLine","obj","p1","p2","p2Number","parseInt","p3","_getStyleDeclaration","charIndex","_setStyleDeclaration","style","_deleteStyleDeclaration","_getLineStyle","_setLineStyle","_wrapText","desiredWidth","data","getGraphemeDataForRender","wrapped","wordsData","push","_wrapLine","infix","largestWordWidth","wordsOrGraphemes","graphemeSplit","wordSplit","word","graphemeArray","_measureWord","charOffset","arguments","undefined","prevGrapheme","skipLeft","len","box","_getGraphemeBox","kernedWidth","value","_ref","reservedSpace","additionalSpace","_getWidthOfCharSpacing","lineWidth","infixWidth","lineJustStarted","maxWidth","wordWidth","potentialLineWidth","conservativeMaxWidth","currentLineText","join","toFixed","concat","isEndOfWrapping","missingNewlineOffset","skipWrapping","_splitTextIntoLines","needsBrowserWrapping","fontLacksEnglishGlyphsCached","textHash","slice","cacheKey","_browserWrapCache","key","cachedResult","result","_splitTextIntoLinesWithBrowser","newText","Array","_splitTextIntoLinesDefault","testElement","createElement","position","visibility","String","whiteSpace","wordBreak","overflowWrap","textAlignLast","textContent","body","appendChild","range","createRange","textNode","firstChild","nodeType","Node","TEXT_NODE","currentLineStart","textLength","previousBottom","setStart","setEnd","rect","getBoundingClientRect","bottom","lineEnd","lineText","substring","trim","graphemeLine","error","removeChild","scrollHeight","offsetHeight","clientHeight","boundingRect","_extractJustifySpaceMeasurements","bestHeight","adjustedHeight","lacksEnglishGlyphs","glyphBuffer","_unwrappedLines","element","spaceWidths","lineSpaces","spaceCount","match","normalSpaceWidth","avgCharWidth","remainingSpace","expandedSpaceWidth","styleMap","lineBounds","lineSpaceWidths","spaceIndex","expandedWidth","oldWidth","getMinWidth","_removeExtraneousStyles","linesToKeep","Map","prop","propNumber","set","has","_this$canvas4","resizeOrigin","on","e","transform","originX","currentResizeOrigin","safetySnapWidth","target","type","toLowerCase","lineCount","maxRequiredWidth","getLineWidth","rtlRegex","rtlBuffer","safetyThreshold","_this$canvas5","newWidth","originalLeft","originalTop","widthIncrease","__overlayEditor","refresh","_fixCharacterMappingAfterJsonLoad","_forceClearCache","forceTextReinitialization","_this$canvas6","hasVariableSpaces","spaces","filter","bound","j","firstSpaceWidth","some","space","toObject","propertiesToInclude","_defineProperty","textLayoutProperties","classRegistry","setClass"],"mappings":"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"}
1
+ {"version":3,"file":"Textbox.mjs","sources":["../../../src/shapes/Textbox.ts"],"sourcesContent":["import type { TClassProperties, TOptions } from '../typedefs';\nimport { IText } from './IText/IText';\nimport { classRegistry } from '../ClassRegistry';\nimport { createTextboxDefaultControls } from '../controls/commonControls';\nimport { JUSTIFY, JUSTIFY_CENTER } from './Text/constants';\nimport type { TextStyleDeclaration } from './Text/StyledText';\nimport type { SerializedITextProps, ITextProps } from './IText/IText';\nimport type { ITextEvents } from './IText/ITextBehavior';\nimport type { TextLinesInfo } from './Text/Text';\nimport type { Control } from '../controls/Control';\nimport { fontLacksEnglishGlyphsCached } from '../text/measure';\nimport { layoutText } from '../text/layout';\n\n// @TODO: Many things here are configuration related and shouldn't be on the class nor prototype\n// regexes, list of properties that are not suppose to change by instances, magic consts.\n// this will be a separated effort\nexport const textboxDefaultValues: Partial<TClassProperties<Textbox>> = {\n minWidth: 20,\n dynamicMinWidth: 2,\n lockScalingFlip: true,\n noScaleCache: false,\n _wordJoiners: /[ \\t\\r]/,\n splitByGrapheme: false,\n};\n\nexport type GraphemeData = {\n wordsData: {\n word: string[];\n width: number;\n }[][];\n largestWordWidth: number;\n};\n\nexport type StyleMap = Record<string, { line: number; offset: number }>;\n\n// @TODO this is not complete\ninterface UniqueTextboxProps {\n minWidth: number;\n splitByGrapheme: boolean;\n dynamicMinWidth: number;\n _wordJoiners: RegExp;\n}\n\nexport interface SerializedTextboxProps\n extends SerializedITextProps,\n Pick<UniqueTextboxProps, 'minWidth' | 'splitByGrapheme'> {}\n\nexport interface TextboxProps extends ITextProps, UniqueTextboxProps {}\n\n/**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n */\nexport class Textbox<\n Props extends TOptions<TextboxProps> = Partial<TextboxProps>,\n SProps extends SerializedTextboxProps = SerializedTextboxProps,\n EventSpec extends ITextEvents = ITextEvents,\n >\n extends IText<Props, SProps, EventSpec>\n implements UniqueTextboxProps\n{\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n */\n declare minWidth: number;\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n */\n declare dynamicMinWidth: number;\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japanese\n * @type Boolean\n * @since 2.6.0\n */\n declare splitByGrapheme: boolean;\n\n declare _wordJoiners: RegExp;\n\n declare _styleMap: StyleMap;\n\n declare isWrapping: boolean;\n\n static type = 'Textbox';\n\n static textLayoutProperties = [...IText.textLayoutProperties, 'width'];\n\n static ownDefaults = textboxDefaultValues;\n\n static getDefaults(): Record<string, any> {\n return {\n ...super.getDefaults(),\n ...Textbox.ownDefaults,\n };\n }\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n */\n constructor(text: string, options?: Props) {\n super(text, { ...Textbox.ownDefaults, ...options } as Props);\n this.initializeEventListeners();\n }\n\n /**\n * Creates the default control object.\n * If you prefer to have on instance of controls shared among all objects\n * make this function return an empty object and add controls to the ownDefaults object\n */\n static createControls(): { controls: Record<string, Control> } {\n return { controls: createTextboxDefaultControls() };\n }\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions() {\n if (!this.initialized) {\n this.initialized = true;\n }\n \n // Prevent rapid recalculations during moves\n if ((this as any)._usingBrowserWrapping) {\n const now = Date.now();\n const lastCall = (this as any)._lastInitDimensionsTime || 0;\n const isRapidCall = now - lastCall < 100;\n const isDuringLoading = (this as any)._jsonLoading || !(this as any)._browserWrapInitialized;\n \n if (isRapidCall && !isDuringLoading) {\n return;\n }\n (this as any)._lastInitDimensionsTime = now;\n }\n \n // Skip if nothing changed\n const currentState = `${this.text}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n if ((this as any)._lastDimensionState === currentState && this._textLines && this._textLines.length > 0) {\n return;\n }\n (this as any)._lastDimensionState = currentState;\n \n // Use advanced layout if enabled\n if (this.enableAdvancedLayout) {\n return this.initDimensionsAdvanced();\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n const splitTextResult = this._splitText();\n this._styleMap = this._generateStyleMap(splitTextResult);\n \n // For browser wrapping, ensure _textLines is set from browser results\n if ((this as any)._usingBrowserWrapping && splitTextResult && splitTextResult.lines) {\n this._textLines = splitTextResult.lines.map(line => line.split(''));\n \n // Store justify measurements and browser height\n const justifyMeasurements = (splitTextResult as any).justifySpaceMeasurements;\n if (justifyMeasurements) {\n (this._styleMap as any).justifySpaceMeasurements = justifyMeasurements;\n }\n \n const actualHeight = (splitTextResult as any).actualBrowserHeight;\n if (actualHeight) {\n (this as any)._actualBrowserHeight = actualHeight;\n }\n }\n // Don't auto-resize width when using browser wrapping to prevent width increases during moves\n if (!((this as any)._usingBrowserWrapping) && this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n \n // For browser wrapping fonts (like STV), ensure minimum width for new textboxes\n // since these fonts can't measure English characters properly\n if ((this as any)._usingBrowserWrapping && this.width < 50) {\n console.log(`🔤 BROWSER WRAP: Font ${this.fontFamily} has width ${this.width}px, setting to 300px for usability`);\n this.width = 300;\n }\n \n // Mark browser wrapping as initialized when complete\n if ((this as any)._usingBrowserWrapping) {\n (this as any)._browserWrapInitialized = true;\n }\n\n this.calcTextWidth();\n \n if (this.textAlign.includes(JUSTIFY)) {\n // For browser wrapping fonts, apply browser-calculated justify spaces\n if ((this as any)._usingBrowserWrapping) {\n console.log('🔤 BROWSER WRAP: Applying browser-calculated justify spaces');\n this._applyBrowserJustifySpaces();\n return;\n }\n \n // Don't apply justify alignment during drag operations to prevent snapping\n const now = Date.now();\n const lastDragTime = (this as any)._lastInitDimensionsTime || 0;\n const isDuringDrag = now - lastDragTime < 200; // 200ms window for drag detection\n \n if (isDuringDrag) {\n console.log('🔤 Skipping justify during drag operation to prevent snapping');\n return;\n }\n \n // For non-browser-wrapping fonts, use Fabric's justify system\n // once text is measured we need to make space fatter to make justified text.\n // Ensure __charBounds exists and fonts are ready before applying justify\n if (this.__charBounds && this.__charBounds.length > 0) {\n // Check if font is ready for accurate justify calculations\n const fontReady = this._isFontReady ? this._isFontReady() : true;\n if (fontReady) {\n this.enlargeSpaces();\n } else {\n console.warn('⚠️ Textbox: Font not ready for justify, deferring enlargeSpaces');\n // Defer justify calculation until font is ready\n this._scheduleJustifyAfterFontLoad();\n }\n } else {\n console.warn('⚠️ Textbox: __charBounds not ready for justify alignment, deferring enlargeSpaces');\n // Defer the justify calculation until the next frame\n setTimeout(() => {\n if (this.__charBounds && this.__charBounds.length > 0 && this.enlargeSpaces) {\n console.log('🔧 Applying deferred Textbox justify alignment');\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n }, 0);\n }\n }\n // Calculate height - use Fabric's calculation for proper text rendering space\n if ((this as any)._usingBrowserWrapping && this._textLines && this._textLines.length > 0) {\n const actualBrowserHeight = (this as any)._actualBrowserHeight;\n const oldHeight = this.height;\n // Use Fabric's height calculation since it knows how much space text rendering needs\n this.height = this.calcTextHeight();\n \n // Force canvas refresh and control update if height changed significantly\n if (Math.abs(this.height - oldHeight) > 1) {\n this.setCoords();\n this.canvas?.requestRenderAll();\n \n // DEBUG: Log exact positioning details\n console.log(`🎯 POSITIONING DEBUG:`);\n console.log(` Textbox height: ${this.height}px`);\n console.log(` Textbox top: ${this.top}px`);\n console.log(` Textbox left: ${this.left}px`);\n console.log(` Text lines: ${this._textLines?.length || 0}`);\n console.log(` Font size: ${this.fontSize}px`);\n console.log(` Line height: ${this.lineHeight || 1.16}`);\n console.log(` Calculated line height: ${this.fontSize * (this.lineHeight || 1.16)}px`);\n console.log(` _getTopOffset(): ${this._getTopOffset()}px`);\n console.log(` calcTextHeight(): ${this.calcTextHeight()}px`);\n console.log(` Browser height: ${actualBrowserHeight}px`);\n console.log(` Height difference: ${this.height - this.calcTextHeight()}px`);\n }\n } else {\n this.height = this.calcTextHeight();\n }\n\n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) => /\\s/.test(this._textLines[i][j]));\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(space => Math.abs(space.width - firstSpaceWidth) > 0.1);\n }\n }\n });\n \n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again');\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n this.canvas?.requestRenderAll();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n }, 10);\n }\n }\n\n /**\n * Schedule justify calculation after font loads (Textbox-specific)\n * @private\n */\n _scheduleJustifyAfterFontLoad(): void {\n if (typeof document === 'undefined' || !('fonts' in document)) {\n return;\n }\n \n // Only schedule if not already waiting\n if ((this as any)._fontJustifyScheduled) {\n return;\n }\n (this as any)._fontJustifyScheduled = true;\n \n const fontSpec = `${this.fontSize}px ${this.fontFamily}`;\n document.fonts.load(fontSpec).then(() => {\n (this as any)._fontJustifyScheduled = false;\n console.log('🔧 Textbox: Font loaded, applying justify alignment');\n \n // Re-run initDimensions to ensure proper justify calculation\n this.initDimensions();\n this.canvas?.requestRenderAll();\n }).catch(() => {\n (this as any)._fontJustifyScheduled = false;\n console.warn('⚠️ Textbox: Font loading failed, justify may be incorrect');\n });\n }\n\n /**\n * Advanced dimensions calculation using new layout engine\n * @private\n */\n initDimensionsAdvanced() {\n if (!this.initialized) {\n return;\n }\n \n this.isEditing && this.initDelayedCursor();\n this._clearCache();\n this.dynamicMinWidth = 0;\n \n // Use new layout engine\n const layout = layoutText({\n text: this.text,\n width: this.width,\n height: this.height,\n wrap: this.wrap || 'word',\n align: (this as any)._mapTextAlignToAlign(this.textAlign),\n ellipsis: this.ellipsis || false,\n fontSize: this.fontSize,\n lineHeight: this.lineHeight,\n letterSpacing: this.letterSpacing || 0,\n charSpacing: this.charSpacing,\n direction: this.direction === 'inherit' ? 'ltr' : this.direction,\n fontFamily: this.fontFamily,\n fontStyle: this.fontStyle,\n fontWeight: this.fontWeight,\n verticalAlign: this.verticalAlign || 'top',\n });\n \n // Update dynamic minimum width based on layout\n if (layout.lines.length > 0) {\n const maxLineWidth = Math.max(...layout.lines.map(line => line.width));\n this.dynamicMinWidth = Math.max(this.minWidth, maxLineWidth);\n }\n \n // Adjust width if needed (preserving Textbox behavior)\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n // Re-layout with new width\n const newLayout = layoutText({\n ...(this as any)._getAdvancedLayoutOptions(),\n width: this.width,\n });\n this.height = newLayout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(newLayout);\n } else {\n this.height = layout.totalHeight;\n (this as any)._convertLayoutToLegacyFormat(layout);\n }\n \n // Generate style map for compatibility\n this._styleMap = this._generateStyleMapFromLayout(layout);\n this.dirty = true;\n }\n\n /**\n * Generate style map from new layout format\n * @private\n */\n _generateStyleMapFromLayout(layout: any): StyleMap {\n const map: StyleMap = {};\n let realLineCount = 0;\n let charCount = 0;\n\n layout.lines.forEach((line: any, i: number) => {\n if (line.text.includes('\\n') && i > 0) {\n realLineCount++;\n }\n \n map[i] = { line: realLineCount, offset: 0 };\n charCount += line.graphemes.length;\n \n if (i < layout.lines.length - 1) {\n charCount += 1; // newline character\n }\n });\n\n return map;\n }\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap(textInfo: TextLinesInfo): StyleMap {\n let realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0;\n const map: StyleMap = {};\n\n for (let i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n } else if (\n !this.splitByGrapheme &&\n this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) &&\n i > 0\n ) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n }\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas(property: keyof TextStyleDeclaration, lineIndex: number): boolean {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return super.styleHas(property, lineIndex);\n }\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles(lineIndex: number): boolean {\n if (!this.styles) {\n return true;\n }\n let offset = 0,\n nextLineIndex = lineIndex + 1,\n nextOffset: number,\n shouldLimit = false;\n const map = this._styleMap[lineIndex],\n mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n const obj =\n typeof lineIndex === 'undefined'\n ? this.styles\n : { line: this.styles[lineIndex] };\n for (const p1 in obj) {\n for (const p2 in obj[p1]) {\n const p2Number = parseInt(p2, 10);\n if (p2Number >= offset && (!shouldLimit || p2Number < nextOffset!)) {\n for (const p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n }\n\n /**\n * @protected\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {TextStyleDeclaration} a style object reference to the existing one or a new empty object when undefined\n */\n _getStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n ): TextStyleDeclaration {\n if (this._styleMap && !this.isWrapping) {\n const map = this._styleMap[lineIndex];\n if (!map) {\n return {};\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return super._getStyleDeclaration(lineIndex, charIndex);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n protected _setStyleDeclaration(\n lineIndex: number,\n charIndex: number,\n style: object,\n ) {\n const map = this._styleMap[lineIndex];\n super._setStyleDeclaration(map.line, map.offset + charIndex, style);\n }\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n protected _deleteStyleDeclaration(lineIndex: number, charIndex: number) {\n const map = this._styleMap[lineIndex];\n super._deleteStyleDeclaration(map.line, map.offset + charIndex);\n }\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n protected _getLineStyle(lineIndex: number): boolean {\n const map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n }\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n protected _setLineStyle(lineIndex: number) {\n const map = this._styleMap[lineIndex];\n super._setLineStyle(map.line);\n }\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText(lines: string[], desiredWidth: number): string[][] {\n this.isWrapping = true;\n // extract all thewords and the widths to optimally wrap lines.\n const data = this.getGraphemeDataForRender(lines);\n const wrapped: string[][] = [];\n for (let i = 0; i < data.wordsData.length; i++) {\n wrapped.push(...this._wrapLine(i, desiredWidth, data));\n }\n this.isWrapping = false;\n return wrapped;\n }\n\n /**\n * For each line of text terminated by an hard line stop,\n * measure each word width and extract the largest word from all.\n * The returned words here are the one that at the end will be rendered.\n * @param {string[]} lines the lines we need to measure\n *\n */\n getGraphemeDataForRender(lines: string[]): GraphemeData {\n const splitByGrapheme = this.splitByGrapheme,\n infix = splitByGrapheme ? '' : ' ';\n\n let largestWordWidth = 0;\n\n const data = lines.map((line, lineIndex) => {\n let offset = 0;\n const wordsOrGraphemes = splitByGrapheme\n ? this.graphemeSplit(line)\n : this.wordSplit(line);\n\n if (wordsOrGraphemes.length === 0) {\n return [{ word: [], width: 0 }];\n }\n\n return wordsOrGraphemes.map((word: string) => {\n // if using splitByGrapheme words are already in graphemes.\n const graphemeArray = splitByGrapheme\n ? [word]\n : this.graphemeSplit(word);\n const width = this._measureWord(graphemeArray, lineIndex, offset);\n largestWordWidth = Math.max(width, largestWordWidth);\n offset += graphemeArray.length + infix.length;\n return { word: graphemeArray, width };\n });\n });\n\n return {\n wordsData: data,\n largestWordWidth,\n };\n }\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * It gets called when charBounds are not available yet.\n * Override if necessary\n * Use with {@link Textbox#wordSplit}\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n */\n _measureWord(word: string[], lineIndex: number, charOffset = 0): number {\n let width = 0,\n prevGrapheme;\n const skipLeft = true;\n for (let i = 0, len = word.length; i < len; i++) {\n const box = this._getGraphemeBox(\n word[i],\n lineIndex,\n i + charOffset,\n prevGrapheme,\n skipLeft,\n );\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n }\n\n /**\n * Override this method to customize word splitting\n * Use with {@link Textbox#_measureWord}\n * @param {string} value\n * @returns {string[]} array of words\n */\n wordSplit(value: string): string[] {\n return value.split(this._wordJoiners);\n }\n\n /**\n * Wraps a line of text using the width of the Textbox as desiredWidth\n * and leveraging the known width o words from GraphemeData\n * @private\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {GraphemeData} graphemeData an object containing all the lines' words width.\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine(\n lineIndex: number,\n desiredWidth: number,\n { largestWordWidth, wordsData }: GraphemeData,\n reservedSpace = 0,\n ): string[][] {\n const additionalSpace = this._getWidthOfCharSpacing(),\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n infix = splitByGrapheme ? '' : ' ';\n\n let lineWidth = 0,\n line: string[] = [],\n // spaces in different languages?\n offset = 0,\n infixWidth = 0,\n lineJustStarted = true;\n\n desiredWidth -= reservedSpace;\n\n const maxWidth = Math.max(\n desiredWidth,\n largestWordWidth,\n this.dynamicMinWidth,\n );\n // layout words\n const data = wordsData[lineIndex];\n offset = 0;\n let i;\n for (i = 0; i < data.length; i++) {\n const { word, width: wordWidth } = data[i];\n offset += word.length;\n\n // Predictive wrapping: check if adding this word would exceed the width\n const potentialLineWidth = lineWidth + infixWidth + wordWidth - additionalSpace;\n // Use exact width to match overlay editor behavior\n const conservativeMaxWidth = maxWidth; // No artificial buffer\n \n // Debug logging for wrapping decisions\n const currentLineText = line.join('');\n console.log(`🔧 FABRIC WRAP CHECK: \"${data[i].word}\" -> potential: ${potentialLineWidth.toFixed(1)}px vs limit: ${conservativeMaxWidth.toFixed(1)}px`);\n \n if (potentialLineWidth > conservativeMaxWidth && !lineJustStarted) {\n // This word would exceed the width, wrap before adding it\n console.log(`🔧 FABRIC WRAP! Line: \"${currentLineText}\" (${lineWidth.toFixed(1)}px)`);\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth; // Start new line with just this word\n lineJustStarted = true;\n } else {\n // Word fits, add it to current line\n lineWidth = potentialLineWidth + additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n \n // Debug: show current line after adding word\n console.log(`🔧 FABRIC AFTER ADD: Line now: \"${line.join('')}\" (${line.length} chars)`);\n \n\n infixWidth = splitByGrapheme\n ? 0\n : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n }\n\n i && graphemeLines.push(line);\n\n // TODO: this code is probably not necessary anymore.\n // it can be moved out of this function since largestWordWidth is now\n // known in advance\n // Don't modify dynamicMinWidth when using browser wrapping to prevent width increases\n if (!((this as any)._usingBrowserWrapping) && largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n console.log(`🔧 FABRIC updating dynamicMinWidth: ${this.dynamicMinWidth} -> ${largestWordWidth - additionalSpace + reservedSpace}`);\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n } else if ((this as any)._usingBrowserWrapping) {\n console.log(`🔤 BROWSER WRAP: Skipping dynamicMinWidth update to prevent width increase`);\n }\n \n // Debug: show final wrapped lines\n console.log(`🔧 FABRIC FINAL LINES: ${graphemeLines.length} lines`);\n graphemeLines.forEach((line, i) => {\n console.log(` Line ${i + 1}: \"${line.join('')}\" (${line.length} chars)`);\n });\n \n return graphemeLines;\n }\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping(lineIndex: number): boolean {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n }\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * This is important only for splitByGrapheme at the end of wrapping.\n * If we are not wrapping the offset is always 1\n * @return Number\n */\n missingNewlineOffset(lineIndex: number, skipWrapping?: boolean): 0 | 1 {\n if (this.splitByGrapheme && !skipWrapping) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n }\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines(text: string) {\n // Check if we need browser wrapping using smart font detection\n const needsBrowserWrapping = this.fontFamily && fontLacksEnglishGlyphsCached(this.fontFamily);\n \n if (needsBrowserWrapping) {\n // Cache key based on text content, width, font properties, AND text alignment\n const textHash = text.length + text.slice(0, 50); // Include text content in cache key\n const cacheKey = `${textHash}|${this.width}|${this.fontSize}|${this.fontFamily}|${this.textAlign}`;\n \n // Check if we have a cached result and nothing has changed\n if ((this as any)._browserWrapCache && (this as any)._browserWrapCache.key === cacheKey) {\n const cachedResult = (this as any)._browserWrapCache.result;\n \n // For justify alignment, ensure we have the measurements\n if (this.textAlign.includes('justify') && !(cachedResult as any).justifySpaceMeasurements) {\n // Fall through to recalculate\n } else {\n return cachedResult;\n }\n }\n \n const result = this._splitTextIntoLinesWithBrowser(text);\n \n // Cache the result\n (this as any)._browserWrapCache = { key: cacheKey, result };\n \n // Mark that we used browser wrapping to prevent dynamicMinWidth modifications\n (this as any)._usingBrowserWrapping = true;\n \n return result;\n }\n \n // Clear the browser wrapping flag when using regular wrapping\n (this as any)._usingBrowserWrapping = false;\n \n // Default Fabric wrapping for other fonts\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n /**\n * Use browser's native text wrapping for accurate handling of fonts without English glyphs\n * @private\n */\n _splitTextIntoLinesWithBrowser(text: string) {\n if (typeof document === 'undefined') {\n // Fallback to regular wrapping in Node.js\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Create a hidden element that mimics the overlay editor\n const testElement = document.createElement('div');\n testElement.style.position = 'absolute';\n testElement.style.left = '-9999px';\n testElement.style.visibility = 'hidden';\n testElement.style.fontSize = `${this.fontSize}px`;\n testElement.style.fontFamily = `\"${this.fontFamily}\"`;\n testElement.style.fontWeight = String(this.fontWeight || 'normal');\n testElement.style.fontStyle = String(this.fontStyle || 'normal');\n testElement.style.lineHeight = String(this.lineHeight || 1.16);\n \n testElement.style.width = `${this.width}px`;\n \n testElement.style.direction = this.direction || 'ltr';\n testElement.style.whiteSpace = 'pre-wrap';\n testElement.style.wordBreak = 'normal';\n testElement.style.overflowWrap = 'break-word';\n \n // Set browser-native text alignment (including justify)\n if (this.textAlign.includes('justify')) {\n testElement.style.textAlign = 'justify';\n testElement.style.textAlignLast = 'auto'; // Let browser decide last line alignment\n } else {\n testElement.style.textAlign = this.textAlign;\n }\n \n testElement.textContent = text;\n\n document.body.appendChild(testElement);\n\n // Get the browser's natural line breaks\n const range = document.createRange();\n const lines: string[] = [];\n const graphemeLines: string[][] = [];\n\n try {\n // Simple approach: split by measuring character positions\n const textNode = testElement.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n let currentLineStart = 0;\n const textLength = text.length;\n let previousBottom = 0;\n \n for (let i = 0; i <= textLength; i++) {\n range.setStart(textNode, currentLineStart);\n range.setEnd(textNode, i);\n const rect = range.getBoundingClientRect();\n \n if (i > currentLineStart && (rect.bottom > previousBottom + 5 || i === textLength)) {\n // New line detected or end of text\n const lineEnd = i === textLength ? i : i - 1;\n const lineText = text.substring(currentLineStart, lineEnd).trim();\n if (lineText) {\n lines.push(lineText);\n // Convert to graphemes for compatibility\n const graphemeLine = lineText.split('');\n graphemeLines.push(graphemeLine);\n }\n currentLineStart = lineEnd;\n previousBottom = rect.bottom;\n }\n }\n }\n } catch (error) {\n console.warn('Browser wrapping failed, using fallback:', error);\n document.body.removeChild(testElement);\n return this._splitTextIntoLinesDefault(text);\n }\n\n // Extract actual browser height BEFORE removing element\n const actualBrowserHeight = testElement.scrollHeight;\n const offsetHeight = testElement.offsetHeight;\n const clientHeight = testElement.clientHeight;\n const boundingRect = testElement.getBoundingClientRect();\n \n console.log(`🔤 Browser element measurements:`);\n console.log(` scrollHeight: ${actualBrowserHeight}px (content + padding + hidden overflow)`);\n console.log(` offsetHeight: ${offsetHeight}px (content + padding + border)`);\n console.log(` clientHeight: ${clientHeight}px (content + padding, no border/scrollbar)`);\n console.log(` boundingRect.height: ${boundingRect.height}px (actual rendered height)`);\n console.log(` Font size: ${this.fontSize}px, Line height: ${this.lineHeight || 1.16}, Lines: ${lines.length}`);\n\n // For justify alignment, extract space measurements from browser BEFORE removing element\n let justifySpaceMeasurements = null;\n if (this.textAlign.includes('justify')) {\n justifySpaceMeasurements = this._extractJustifySpaceMeasurements(testElement, lines);\n }\n\n document.body.removeChild(testElement);\n\n console.log(`🔤 Browser wrapping result: ${lines.length} lines`);\n \n // Try different height measurements to find the most accurate\n let bestHeight = actualBrowserHeight;\n \n // If scrollHeight and offsetHeight differ significantly, investigate\n if (Math.abs(actualBrowserHeight - offsetHeight) > 2) {\n console.log(`🔤 Height discrepancy detected: scrollHeight=${actualBrowserHeight}px vs offsetHeight=${offsetHeight}px`);\n }\n \n // Consider using boundingRect height if it's larger (sometimes more accurate for visible content)\n if (boundingRect.height > bestHeight) {\n console.log(`🔤 Using boundingRect height (${boundingRect.height}px) instead of scrollHeight (${bestHeight}px)`);\n bestHeight = boundingRect.height;\n }\n \n // Font-specific height adjustments for accurate bounding box\n let adjustedHeight = bestHeight;\n \n // Fonts without English glyphs need additional height buffer due to different font metrics\n const lacksEnglishGlyphs = fontLacksEnglishGlyphsCached(this.fontFamily);\n if (lacksEnglishGlyphs) {\n const glyphBuffer = this.fontSize * 0.25; // 25% of font size for non-English fonts\n adjustedHeight = bestHeight + glyphBuffer;\n console.log(`🔤 Non-English font detected (${this.fontFamily}): Adding ${glyphBuffer}px buffer (${bestHeight}px + ${glyphBuffer}px = ${adjustedHeight}px)`);\n } else {\n console.log(`🔤 Standard font (${this.fontFamily}): Using browser height directly (${bestHeight}px)`);\n }\n \n return {\n _unwrappedLines: [text.split('')],\n lines: lines,\n graphemeText: text.split(''),\n graphemeLines: graphemeLines,\n justifySpaceMeasurements: justifySpaceMeasurements,\n actualBrowserHeight: adjustedHeight,\n };\n }\n\n\n\n\n /**\n * Extract justify space measurements from browser\n * @private\n */\n _extractJustifySpaceMeasurements(element: HTMLElement, lines: string[]) {\n console.log(`🔤 Extracting browser justify space measurements for ${lines.length} lines`);\n \n // For now, we'll use a simplified approach:\n // Apply uniform space expansion to match the line width\n const spaceWidths: number[][] = [];\n \n lines.forEach((line, lineIndex) => {\n const lineSpaces: number[] = [];\n const spaceCount = (line.match(/\\s/g) || []).length;\n \n if (spaceCount > 0 && lineIndex < lines.length - 1) { // Don't justify last line\n // Calculate how much space expansion is needed\n const normalSpaceWidth = 6.4; // Default space width for STV font\n const lineWidth = this.width;\n \n // Estimate natural line width\n const charCount = line.length - spaceCount;\n const avgCharWidth = 12; // Approximate for STV font\n const naturalWidth = charCount * avgCharWidth + spaceCount * normalSpaceWidth;\n \n // Calculate expanded space width\n const remainingSpace = lineWidth - (charCount * avgCharWidth);\n const expandedSpaceWidth = remainingSpace / spaceCount;\n \n console.log(`🔤 Line ${lineIndex}: ${spaceCount} spaces, natural: ${normalSpaceWidth}px -> justified: ${expandedSpaceWidth.toFixed(1)}px`);\n \n // Fill array with expanded space widths for this line\n for (let i = 0; i < spaceCount; i++) {\n lineSpaces.push(expandedSpaceWidth);\n }\n }\n \n spaceWidths.push(lineSpaces);\n });\n \n return spaceWidths;\n }\n\n /**\n * Apply browser-calculated justify space measurements\n * @private\n */\n _applyBrowserJustifySpaces() {\n if (!this._textLines || !this.__charBounds) {\n console.warn('🔤 BROWSER JUSTIFY: _textLines or __charBounds not ready');\n return;\n }\n\n // Get space measurements from browser wrapping result\n const styleMap = this._styleMap as any;\n if (!styleMap || !styleMap.justifySpaceMeasurements) {\n console.warn('🔤 BROWSER JUSTIFY: No justify space measurements available');\n return;\n }\n\n const spaceWidths = styleMap.justifySpaceMeasurements as number[][];\n console.log('🔤 BROWSER JUSTIFY: Applying space measurements to __charBounds');\n\n // Apply space widths to character bounds\n this._textLines.forEach((line, lineIndex) => {\n if (!this.__charBounds || !this.__charBounds[lineIndex] || !spaceWidths[lineIndex]) return;\n \n const lineBounds = this.__charBounds[lineIndex];\n const lineSpaceWidths = spaceWidths[lineIndex];\n let spaceIndex = 0;\n let accumulatedSpace = 0;\n const isRtl = this.direction === 'rtl';\n const spaceDiffs = [];\n\n // First, calculate the difference for each space\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n if (/\\s/.test(line[charIndex]) && spaceIndex < lineSpaceWidths.length) {\n const charBound = lineBounds[charIndex];\n if (charBound) {\n spaceDiffs.push(lineSpaceWidths[spaceIndex] - charBound.width);\n }\n spaceIndex++;\n }\n }\n \n spaceIndex = 0;\n let remainingDiff = spaceDiffs.reduce((a, b) => a + b, 0);\n\n for (let charIndex = 0; charIndex < line.length; charIndex++) {\n const charBound = lineBounds[charIndex];\n if (!charBound) continue;\n\n if (isRtl) {\n charBound.left += remainingDiff;\n } else {\n charBound.left += accumulatedSpace;\n }\n\n if (/\\s/.test(line[charIndex]) && spaceIndex < spaceDiffs.length) {\n const diff = spaceDiffs[spaceIndex];\n const oldWidth = charBound.width;\n charBound.width += diff;\n charBound.kernedWidth += diff;\n console.log(`🔤 Line ${lineIndex} space ${spaceIndex}: ${oldWidth.toFixed(1)}px -> ${charBound.width.toFixed(1)}px`);\n \n if (isRtl) {\n remainingDiff -= diff;\n } else {\n accumulatedSpace += diff;\n }\n spaceIndex++;\n }\n }\n // also need to update the last charBound\n const lastBound = lineBounds[line.length];\n if (lastBound) {\n if (isRtl) {\n lastBound.left += remainingDiff;\n } else {\n lastBound.left += accumulatedSpace;\n }\n }\n });\n }\n\n /**\n * Fallback to default Fabric wrapping\n * @private\n */\n _splitTextIntoLinesDefault(text: string) {\n const newText = super._splitTextIntoLines(text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (let i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n }\n\n getMinWidth() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n }\n\n _removeExtraneousStyles() {\n const linesToKeep = new Map();\n for (const prop in this._styleMap) {\n const propNumber = parseInt(prop, 10);\n if (this._textLines[propNumber]) {\n const lineIndex = this._styleMap[prop].line;\n linesToKeep.set(`${lineIndex}`, true);\n }\n }\n for (const prop in this.styles) {\n if (!linesToKeep.has(prop)) {\n delete this.styles[prop];\n }\n }\n }\n\n /**\n * Initialize event listeners for safety snap functionality\n * @private\n */\n private initializeEventListeners(): void {\n // Track which side is being used for resize to handle position compensation\n let resizeOrigin: 'left' | 'right' | null = null;\n \n // Detect resize origin during resizing\n this.on('resizing', (e: any) => {\n // Check transform origin to determine which side is being resized\n if (e.transform) {\n const { originX } = e.transform;\n // originX tells us which side is the anchor - opposite side is being dragged\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n } else if (e.originX) {\n const { originX } = e;\n resizeOrigin = originX === 'right' ? 'left' : originX === 'left' ? 'right' : null;\n }\n });\n \n // Only trigger safety snap after resize is complete (not during)\n // Use 'modified' event which fires after user releases the mouse\n this.on('modified', () => {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n // Small delay to ensure text layout is updated\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n });\n \n // Also listen to canvas-level modified event as backup\n this.canvas?.on('object:modified', (e) => {\n if (e.target === this) {\n const currentResizeOrigin = resizeOrigin; // Capture the value before reset\n setTimeout(() => this.safetySnapWidth(currentResizeOrigin), 10);\n resizeOrigin = null; // Reset after capturing\n }\n });\n }\n\n /**\n * Safety snap to prevent glyph clipping after manual resize.\n * Similar to Polotno - checks if any glyphs are too close to edges\n * and automatically expands width if needed.\n * @private\n * @param resizeOrigin - Which side was used for resizing ('left' or 'right')\n */\n private safetySnapWidth(resizeOrigin?: 'left' | 'right' | null): void {\n // For Textbox objects, we always want to check for clipping regardless of isWrapping flag\n if (!this._textLines || this.type.toLowerCase() !== 'textbox' || this._textLines.length === 0) {\n return;\n }\n \n const lineCount = this._textLines.length;\n if (lineCount === 0) return;\n\n // Check all lines, not just the last one\n let maxActualLineWidth = 0; // Actual measured width without buffers\n let maxRequiredWidth = 0; // Width including RTL buffer\n \n for (let i = 0; i < lineCount; i++) {\n const lineText = this._textLines[i].join(''); // Convert grapheme array to string\n const lineWidth = this.getLineWidth(i);\n maxActualLineWidth = Math.max(maxActualLineWidth, lineWidth);\n \n // RTL detection - regex for Arabic, Hebrew, and other RTL characters\n const rtlRegex = /[\\u0590-\\u05FF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF]/;\n if (rtlRegex.test(lineText)) {\n // Add minimal RTL compensation buffer - just enough to prevent clipping\n const rtlBuffer = (this.fontSize || 16) * 0.15; // 15% of font size (much smaller)\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth + rtlBuffer);\n } else {\n maxRequiredWidth = Math.max(maxRequiredWidth, lineWidth);\n }\n }\n\n // Safety margin - how close glyphs can get before we snap\n const safetyThreshold = 2; // px - very subtle trigger\n \n if (maxRequiredWidth > this.width - safetyThreshold) {\n // Set width to exactly what's needed + minimal safety margin\n const newWidth = maxRequiredWidth + 1; // Add just 1px safety margin\n \n // Store original position before width change\n const originalLeft = this.left;\n const originalTop = this.top;\n const widthIncrease = newWidth - this.width;\n \n // Change width \n this.set('width', newWidth);\n \n // Force text layout recalculation\n this.initDimensions();\n \n // Only compensate position when resizing from left handle\n // Right handle resize doesn't shift the text position\n if (resizeOrigin === 'left') {\n // When resizing from left, the expansion pushes text right\n // Compensate by moving the textbox left by the width increase\n this.set({\n 'left': originalLeft - widthIncrease,\n 'top': originalTop\n });\n }\n \n this.setCoords();\n \n // Also refresh the overlay editor if it exists\n if ((this as any).__overlayEditor) {\n setTimeout(() => {\n (this as any).__overlayEditor.refresh();\n }, 0);\n }\n \n this.canvas?.requestRenderAll();\n }\n }\n\n /**\n * Fix character selection mismatch after JSON loading for browser-wrapped fonts\n * @private\n */\n _fixCharacterMappingAfterJsonLoad(): void {\n if ((this as any)._usingBrowserWrapping) {\n // Clear all cached states to force fresh text layout calculation\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n \n // Force complete re-initialization\n this.initDimensions();\n this._forceClearCache = true;\n \n // Ensure canvas refresh\n this.setCoords();\n if (this.canvas) {\n this.canvas.requestRenderAll();\n }\n }\n }\n\n /**\n * Force complete textbox re-initialization (useful after JSON loading)\n * Overrides Text version with Textbox-specific logic\n */\n forceTextReinitialization(): void {\n console.log('🔄 Force reinitializing Textbox object');\n \n // CRITICAL: Ensure textbox is marked as initialized\n this.initialized = true;\n \n // Clear all caches and force dirty state\n this._clearCache();\n this.dirty = true;\n this.dynamicMinWidth = 0;\n \n // Force isEditing false to ensure clean state\n this.isEditing = false;\n \n console.log(' → Set initialized=true, dirty=true, cleared caches');\n \n // Re-initialize dimensions (this will handle justify properly)\n this.initDimensions();\n \n // Double-check that justify was applied by checking space widths\n if (this.textAlign.includes('justify') && this.__charBounds) {\n setTimeout(() => {\n // Verify justify was applied by checking if space widths vary\n let hasVariableSpaces = false;\n this.__charBounds.forEach((lineBounds, i) => {\n if (lineBounds && this._textLines && this._textLines[i]) {\n const spaces = lineBounds.filter((bound, j) => /\\s/.test(this._textLines[i][j]));\n if (spaces.length > 1) {\n const firstSpaceWidth = spaces[0].width;\n hasVariableSpaces = spaces.some(space => Math.abs(space.width - firstSpaceWidth) > 0.1);\n }\n }\n });\n \n if (!hasVariableSpaces && this.__charBounds.length > 0) {\n console.warn(' ⚠️ Justify spaces still uniform - forcing enlargeSpaces again');\n if (this.enlargeSpaces) {\n this.enlargeSpaces();\n }\n } else {\n console.log(' ✅ Justify spaces properly expanded');\n }\n \n // Ensure height is recalculated - use browser height if available\n if ((this as any)._usingBrowserWrapping && (this as any)._actualBrowserHeight) {\n this.height = (this as any)._actualBrowserHeight;\n console.log(`🔤 JUSTIFY: Preserved browser height: ${this.height}px`);\n } else {\n this.height = this.calcTextHeight();\n console.log(`🔧 JUSTIFY: Used calcTextHeight: ${this.height}px`);\n }\n this.canvas?.requestRenderAll();\n }, 10);\n }\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<T, K>([\n 'minWidth',\n 'splitByGrapheme',\n ...propertiesToInclude,\n ] as K[]);\n }\n}\n\nclassRegistry.setClass(Textbox);\n"],"names":["textboxDefaultValues","minWidth","dynamicMinWidth","lockScalingFlip","noScaleCache","_wordJoiners","splitByGrapheme","Textbox","IText","getDefaults","ownDefaults","constructor","text","options","initializeEventListeners","createControls","controls","createTextboxDefaultControls","initDimensions","initialized","_usingBrowserWrapping","now","Date","lastCall","_lastInitDimensionsTime","isRapidCall","isDuringLoading","_jsonLoading","_browserWrapInitialized","currentState","width","fontSize","fontFamily","textAlign","_lastDimensionState","_textLines","length","enableAdvancedLayout","initDimensionsAdvanced","isEditing","initDelayedCursor","_clearCache","splitTextResult","_splitText","_styleMap","_generateStyleMap","lines","map","line","split","justifyMeasurements","justifySpaceMeasurements","actualHeight","actualBrowserHeight","_actualBrowserHeight","_set","console","log","calcTextWidth","includes","JUSTIFY","_applyBrowserJustifySpaces","lastDragTime","isDuringDrag","__charBounds","fontReady","_isFontReady","enlargeSpaces","warn","_scheduleJustifyAfterFontLoad","setTimeout","_this$canvas","canvas","requestRenderAll","oldHeight","height","calcTextHeight","Math","abs","_this$canvas2","_this$_textLines","setCoords","top","left","lineHeight","_getTopOffset","hasVariableSpaces","forEach","lineBounds","i","spaces","filter","bound","j","test","firstSpaceWidth","some","space","_this$canvas3","document","_fontJustifyScheduled","fontSpec","fonts","load","then","_this$canvas4","catch","layout","layoutText","wrap","align","_mapTextAlignToAlign","ellipsis","letterSpacing","charSpacing","direction","fontStyle","fontWeight","verticalAlign","maxLineWidth","max","newLayout","_getAdvancedLayoutOptions","totalHeight","_convertLayoutToLegacyFormat","_generateStyleMapFromLayout","dirty","realLineCount","charCount","offset","graphemes","textInfo","realLineCharCount","graphemeLines","graphemeText","_reSpaceAndTab","styleHas","property","lineIndex","isWrapping","isEmptyStyles","styles","nextLineIndex","nextOffset","shouldLimit","mapNextLine","obj","p1","p2","p2Number","parseInt","p3","_getStyleDeclaration","charIndex","_setStyleDeclaration","style","_deleteStyleDeclaration","_getLineStyle","_setLineStyle","_wrapText","desiredWidth","data","getGraphemeDataForRender","wrapped","wordsData","push","_wrapLine","infix","largestWordWidth","wordsOrGraphemes","graphemeSplit","wordSplit","word","graphemeArray","_measureWord","charOffset","arguments","undefined","prevGrapheme","skipLeft","len","box","_getGraphemeBox","kernedWidth","value","_ref","reservedSpace","additionalSpace","_getWidthOfCharSpacing","lineWidth","infixWidth","lineJustStarted","maxWidth","wordWidth","potentialLineWidth","conservativeMaxWidth","currentLineText","join","toFixed","concat","isEndOfWrapping","missingNewlineOffset","skipWrapping","_splitTextIntoLines","needsBrowserWrapping","fontLacksEnglishGlyphsCached","textHash","slice","cacheKey","_browserWrapCache","key","cachedResult","result","_splitTextIntoLinesWithBrowser","newText","Array","_splitTextIntoLinesDefault","testElement","createElement","position","visibility","String","whiteSpace","wordBreak","overflowWrap","textAlignLast","textContent","body","appendChild","range","createRange","textNode","firstChild","nodeType","Node","TEXT_NODE","currentLineStart","textLength","previousBottom","setStart","setEnd","rect","getBoundingClientRect","bottom","lineEnd","lineText","substring","trim","graphemeLine","error","removeChild","scrollHeight","offsetHeight","clientHeight","boundingRect","_extractJustifySpaceMeasurements","bestHeight","adjustedHeight","lacksEnglishGlyphs","glyphBuffer","_unwrappedLines","element","spaceWidths","lineSpaces","spaceCount","match","normalSpaceWidth","avgCharWidth","remainingSpace","expandedSpaceWidth","styleMap","lineSpaceWidths","spaceIndex","accumulatedSpace","isRtl","spaceDiffs","charBound","remainingDiff","reduce","a","b","diff","oldWidth","lastBound","getMinWidth","_removeExtraneousStyles","linesToKeep","Map","prop","propNumber","set","has","_this$canvas5","resizeOrigin","on","e","transform","originX","currentResizeOrigin","safetySnapWidth","target","type","toLowerCase","lineCount","maxRequiredWidth","getLineWidth","rtlRegex","rtlBuffer","safetyThreshold","_this$canvas6","newWidth","originalLeft","originalTop","widthIncrease","__overlayEditor","refresh","_fixCharacterMappingAfterJsonLoad","_forceClearCache","forceTextReinitialization","_this$canvas7","toObject","propertiesToInclude","_defineProperty","textLayoutProperties","classRegistry","setClass"],"mappings":";;;;;;;;AAaA;AACA;AACA;AACO,MAAMA,oBAAwD,GAAG;AACtEC,EAAAA,QAAQ,EAAE,EAAE;AACZC,EAAAA,eAAe,EAAE,CAAC;AAClBC,EAAAA,eAAe,EAAE,IAAI;AACrBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,YAAY,EAAE,SAAS;AACvBC,EAAAA,eAAe,EAAE;AACnB;;AAYA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,SAKVC,KAAK,CAEf;EAmCE,OAAOC,WAAWA,GAAwB;IACxC,OAAO;AACL,MAAA,GAAG,KAAK,CAACA,WAAW,EAAE;AACtB,MAAA,GAAGF,OAAO,CAACG;KACZ;AACH,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAACC,IAAY,EAAEC,OAAe,EAAE;IACzC,KAAK,CAACD,IAAI,EAAE;MAAE,GAAGL,OAAO,CAACG,WAAW;MAAE,GAAGG;AAAQ,KAAU,CAAC;IAC5D,IAAI,CAACC,wBAAwB,EAAE;AACjC,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,cAAcA,GAA0C;IAC7D,OAAO;MAAEC,QAAQ,EAAEC,4BAA4B;KAAI;AACrD,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,cAAcA,GAAG;AACf,IAAA,IAAI,CAAC,IAAI,CAACC,WAAW,EAAE;MACrB,IAAI,CAACA,WAAW,GAAG,IAAI;AACzB,IAAA;;AAEA;IACA,IAAK,IAAI,CAASC,qBAAqB,EAAE;AACvC,MAAA,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,EAAE;AACtB,MAAA,MAAME,QAAQ,GAAI,IAAI,CAASC,uBAAuB,IAAI,CAAC;AAC3D,MAAA,MAAMC,WAAW,GAAGJ,GAAG,GAAGE,QAAQ,GAAG,GAAG;MACxC,MAAMG,eAAe,GAAI,IAAI,CAASC,YAAY,IAAI,CAAE,IAAI,CAASC,uBAAuB;AAE5F,MAAA,IAAIH,WAAW,IAAI,CAACC,eAAe,EAAE;AACnC,QAAA;AACF,MAAA;MACC,IAAI,CAASF,uBAAuB,GAAGH,GAAG;AAC7C,IAAA;;AAEA;IACA,MAAMQ,YAAY,GAAG,CAAA,EAAG,IAAI,CAACjB,IAAI,CAAA,CAAA,EAAI,IAAI,CAACkB,KAAK,CAAA,CAAA,EAAI,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACC,UAAU,CAAA,CAAA,EAAI,IAAI,CAACC,SAAS,CAAA,CAAE;AACvG,IAAA,IAAK,IAAI,CAASC,mBAAmB,KAAKL,YAAY,IAAI,IAAI,CAACM,UAAU,IAAI,IAAI,CAACA,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;AACvG,MAAA;AACF,IAAA;IACC,IAAI,CAASF,mBAAmB,GAAGL,YAAY;;AAEhD;IACA,IAAI,IAAI,CAACQ,oBAAoB,EAAE;AAC7B,MAAA,OAAO,IAAI,CAACC,sBAAsB,EAAE;AACtC,IAAA;AAEA,IAAA,IAAI,CAACC,SAAS,IAAI,IAAI,CAACC,iBAAiB,EAAE;IAC1C,IAAI,CAACC,WAAW,EAAE;AAClB;IACA,IAAI,CAACvC,eAAe,GAAG,CAAC;AACxB;AACA,IAAA,MAAMwC,eAAe,GAAG,IAAI,CAACC,UAAU,EAAE;IACzC,IAAI,CAACC,SAAS,GAAG,IAAI,CAACC,iBAAiB,CAACH,eAAe,CAAC;;AAExD;IACA,IAAK,IAAI,CAAStB,qBAAqB,IAAIsB,eAAe,IAAIA,eAAe,CAACI,KAAK,EAAE;AACnF,MAAA,IAAI,CAACX,UAAU,GAAGO,eAAe,CAACI,KAAK,CAACC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,KAAK,CAAC,EAAE,CAAC,CAAC;;AAEnE;AACA,MAAA,MAAMC,mBAAmB,GAAIR,eAAe,CAASS,wBAAwB;AAC7E,MAAA,IAAID,mBAAmB,EAAE;AACtB,QAAA,IAAI,CAACN,SAAS,CAASO,wBAAwB,GAAGD,mBAAmB;AACxE,MAAA;AAEA,MAAA,MAAME,YAAY,GAAIV,eAAe,CAASW,mBAAmB;AACjE,MAAA,IAAID,YAAY,EAAE;QACf,IAAI,CAASE,oBAAoB,GAAGF,YAAY;AACnD,MAAA;AACF,IAAA;AACA;AACA,IAAA,IAAI,CAAG,IAAI,CAAShC,qBAAsB,IAAI,IAAI,CAAClB,eAAe,GAAG,IAAI,CAAC4B,KAAK,EAAE;MAC/E,IAAI,CAACyB,IAAI,CAAC,OAAO,EAAE,IAAI,CAACrD,eAAe,CAAC;AAC1C,IAAA;;AAEA;AACA;IACA,IAAK,IAAI,CAASkB,qBAAqB,IAAI,IAAI,CAACU,KAAK,GAAG,EAAE,EAAE;AAC1D0B,MAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAACzB,UAAU,CAAA,WAAA,EAAc,IAAI,CAACF,KAAK,CAAA,kCAAA,CAAoC,CAAC;MACjH,IAAI,CAACA,KAAK,GAAG,GAAG;AAClB,IAAA;;AAEA;IACA,IAAK,IAAI,CAASV,qBAAqB,EAAE;MACtC,IAAI,CAASQ,uBAAuB,GAAG,IAAI;AAC9C,IAAA;IAEA,IAAI,CAAC8B,aAAa,EAAE;IAEpB,IAAI,IAAI,CAACzB,SAAS,CAAC0B,QAAQ,CAACC,OAAO,CAAC,EAAE;AACpC;MACA,IAAK,IAAI,CAASxC,qBAAqB,EAAE;AACvCoC,QAAAA,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;QAC1E,IAAI,CAACI,0BAA0B,EAAE;AACjC,QAAA;AACF,MAAA;;AAEA;AACA,MAAA,MAAMxC,GAAG,GAAGC,IAAI,CAACD,GAAG,EAAE;AACtB,MAAA,MAAMyC,YAAY,GAAI,IAAI,CAAStC,uBAAuB,IAAI,CAAC;MAC/D,MAAMuC,YAAY,GAAG1C,GAAG,GAAGyC,YAAY,GAAG,GAAG,CAAC;;AAE9C,MAAA,IAAIC,YAAY,EAAE;AAChBP,QAAAA,OAAO,CAACC,GAAG,CAAC,+DAA+D,CAAC;AAC5E,QAAA;AACF,MAAA;;AAEA;AACA;AACA;MACA,IAAI,IAAI,CAACO,YAAY,IAAI,IAAI,CAACA,YAAY,CAAC5B,MAAM,GAAG,CAAC,EAAE;AACrD;AACA,QAAA,MAAM6B,SAAS,GAAG,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,EAAE,GAAG,IAAI;AAChE,QAAA,IAAID,SAAS,EAAE;UACb,IAAI,CAACE,aAAa,EAAE;AACtB,QAAA,CAAC,MAAM;AACLX,UAAAA,OAAO,CAACY,IAAI,CAAC,iEAAiE,CAAC;AAC/E;UACA,IAAI,CAACC,6BAA6B,EAAE;AACtC,QAAA;AACF,MAAA,CAAC,MAAM;AACLb,QAAAA,OAAO,CAACY,IAAI,CAAC,mFAAmF,CAAC;AACjG;AACAE,QAAAA,UAAU,CAAC,MAAM;AACf,UAAA,IAAI,IAAI,CAACN,YAAY,IAAI,IAAI,CAACA,YAAY,CAAC5B,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC+B,aAAa,EAAE;AAAA,YAAA,IAAAI,YAAA;AAC3Ef,YAAAA,OAAO,CAACC,GAAG,CAAC,gDAAgD,CAAC;YAC7D,IAAI,CAACU,aAAa,EAAE;YACpB,CAAAI,YAAA,GAAA,IAAI,CAACC,MAAM,MAAA,IAAA,IAAAD,YAAA,KAAA,MAAA,IAAXA,YAAA,CAAaE,gBAAgB,EAAE;AACjC,UAAA;QACF,CAAC,EAAE,CAAC,CAAC;AACP,MAAA;AACF,IAAA;AACA;AACA,IAAA,IAAK,IAAI,CAASrD,qBAAqB,IAAI,IAAI,CAACe,UAAU,IAAI,IAAI,CAACA,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;AACxF,MAAA,MAAMiB,mBAAmB,GAAI,IAAI,CAASC,oBAAoB;AAC9D,MAAA,MAAMoB,SAAS,GAAG,IAAI,CAACC,MAAM;AAC7B;AACA,MAAA,IAAI,CAACA,MAAM,GAAG,IAAI,CAACC,cAAc,EAAE;;AAEnC;AACA,MAAA,IAAIC,IAAI,CAACC,GAAG,CAAC,IAAI,CAACH,MAAM,GAAGD,SAAS,CAAC,GAAG,CAAC,EAAE;QAAA,IAAAK,aAAA,EAAAC,gBAAA;QACzC,IAAI,CAACC,SAAS,EAAE;QAChB,CAAAF,aAAA,GAAA,IAAI,CAACP,MAAM,MAAA,IAAA,IAAAO,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAaN,gBAAgB,EAAE;;AAE/B;AACAjB,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,qBAAA,CAAuB,CAAC;QACpCD,OAAO,CAACC,GAAG,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAACkB,MAAM,IAAI,CAAC;QAClDnB,OAAO,CAACC,GAAG,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAACyB,GAAG,IAAI,CAAC;QAC5C1B,OAAO,CAACC,GAAG,CAAC,CAAA,iBAAA,EAAoB,IAAI,CAAC0B,IAAI,IAAI,CAAC;AAC9C3B,QAAAA,OAAO,CAACC,GAAG,CAAC,kBAAkB,CAAA,CAAAuB,gBAAA,OAAI,CAAC7C,UAAU,MAAA,IAAA,IAAA6C,gBAAA,uBAAfA,gBAAA,CAAiB5C,MAAM,KAAI,CAAC,EAAE,CAAC;QAC7DoB,OAAO,CAACC,GAAG,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC1B,QAAQ,IAAI,CAAC;QAC/CyB,OAAO,CAACC,GAAG,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC2B,UAAU,IAAI,IAAI,CAAA,CAAE,CAAC;AACzD5B,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC1B,QAAQ,IAAI,IAAI,CAACqD,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QACxF5B,OAAO,CAACC,GAAG,CAAC,CAAA,oBAAA,EAAuB,IAAI,CAAC4B,aAAa,EAAE,CAAA,EAAA,CAAI,CAAC;QAC5D7B,OAAO,CAACC,GAAG,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACmB,cAAc,EAAE,CAAA,EAAA,CAAI,CAAC;AAC9DpB,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,mBAAA,EAAsBJ,mBAAmB,IAAI,CAAC;AAC1DG,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAACkB,MAAM,GAAG,IAAI,CAACC,cAAc,EAAE,IAAI,CAAC;AAC/E,MAAA;AACF,IAAA,CAAC,MAAM;AACL,MAAA,IAAI,CAACD,MAAM,GAAG,IAAI,CAACC,cAAc,EAAE;AACrC,IAAA;;AAEA;AACA,IAAA,IAAI,IAAI,CAAC3C,SAAS,CAAC0B,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAACK,YAAY,EAAE;AAC3DM,MAAAA,UAAU,CAAC,MAAM;AACf;QACA,IAAIgB,iBAAiB,GAAG,KAAK;QAC7B,IAAI,CAACtB,YAAY,CAACuB,OAAO,CAAC,CAACC,UAAU,EAAEC,CAAC,KAAK;AAC3C,UAAA,IAAID,UAAU,IAAI,IAAI,CAACrD,UAAU,IAAI,IAAI,CAACA,UAAU,CAACsD,CAAC,CAAC,EAAE;YACvD,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC3D,UAAU,CAACsD,CAAC,CAAC,CAACI,CAAC,CAAC,CAAC,CAAC;AAChF,YAAA,IAAIH,MAAM,CAACtD,MAAM,GAAG,CAAC,EAAE;AACrB,cAAA,MAAM2D,eAAe,GAAGL,MAAM,CAAC,CAAC,CAAC,CAAC5D,KAAK;AACvCwD,cAAAA,iBAAiB,GAAGI,MAAM,CAACM,IAAI,CAACC,KAAK,IAAIpB,IAAI,CAACC,GAAG,CAACmB,KAAK,CAACnE,KAAK,GAAGiE,eAAe,CAAC,GAAG,GAAG,CAAC;AACzF,YAAA;AACF,UAAA;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAACT,iBAAiB,IAAI,IAAI,CAACtB,YAAY,CAAC5B,MAAM,GAAG,CAAC,EAAE;AACtDoB,UAAAA,OAAO,CAACY,IAAI,CAAC,kEAAkE,CAAC;UAChF,IAAI,IAAI,CAACD,aAAa,EAAE;AAAA,YAAA,IAAA+B,aAAA;YACtB,IAAI,CAAC/B,aAAa,EAAE;YACpB,CAAA+B,aAAA,GAAA,IAAI,CAAC1B,MAAM,MAAA,IAAA,IAAA0B,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAazB,gBAAgB,EAAE;AACjC,UAAA;AACF,QAAA,CAAC,MAAM;AACLjB,UAAAA,OAAO,CAACC,GAAG,CAAC,uCAAuC,CAAC;AACtD,QAAA;MACF,CAAC,EAAE,EAAE,CAAC;AACR,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACEY,EAAAA,6BAA6BA,GAAS;IACpC,IAAI,OAAO8B,QAAQ,KAAK,WAAW,IAAI,EAAE,OAAO,IAAIA,QAAQ,CAAC,EAAE;AAC7D,MAAA;AACF,IAAA;;AAEA;IACA,IAAK,IAAI,CAASC,qBAAqB,EAAE;AACvC,MAAA;AACF,IAAA;IACC,IAAI,CAASA,qBAAqB,GAAG,IAAI;IAE1C,MAAMC,QAAQ,GAAG,CAAA,EAAG,IAAI,CAACtE,QAAQ,CAAA,GAAA,EAAM,IAAI,CAACC,UAAU,CAAA,CAAE;IACxDmE,QAAQ,CAACG,KAAK,CAACC,IAAI,CAACF,QAAQ,CAAC,CAACG,IAAI,CAAC,MAAM;AAAA,MAAA,IAAAC,aAAA;MACtC,IAAI,CAASL,qBAAqB,GAAG,KAAK;AAC3C5C,MAAAA,OAAO,CAACC,GAAG,CAAC,qDAAqD,CAAC;;AAElE;MACA,IAAI,CAACvC,cAAc,EAAE;MACrB,CAAAuF,aAAA,GAAA,IAAI,CAACjC,MAAM,MAAA,IAAA,IAAAiC,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAahC,gBAAgB,EAAE;AACjC,IAAA,CAAC,CAAC,CAACiC,KAAK,CAAC,MAAM;MACZ,IAAI,CAASN,qBAAqB,GAAG,KAAK;AAC3C5C,MAAAA,OAAO,CAACY,IAAI,CAAC,2DAA2D,CAAC;AAC3E,IAAA,CAAC,CAAC;AACJ,EAAA;;AAEA;AACF;AACA;AACA;AACE9B,EAAAA,sBAAsBA,GAAG;AACvB,IAAA,IAAI,CAAC,IAAI,CAACnB,WAAW,EAAE;AACrB,MAAA;AACF,IAAA;AAEA,IAAA,IAAI,CAACoB,SAAS,IAAI,IAAI,CAACC,iBAAiB,EAAE;IAC1C,IAAI,CAACC,WAAW,EAAE;IAClB,IAAI,CAACvC,eAAe,GAAG,CAAC;;AAExB;IACA,MAAMyG,MAAM,GAAGC,UAAU,CAAC;MACxBhG,IAAI,EAAE,IAAI,CAACA,IAAI;MACfkB,KAAK,EAAE,IAAI,CAACA,KAAK;MACjB6C,MAAM,EAAE,IAAI,CAACA,MAAM;AACnBkC,MAAAA,IAAI,EAAE,IAAI,CAACA,IAAI,IAAI,MAAM;MACzBC,KAAK,EAAG,IAAI,CAASC,oBAAoB,CAAC,IAAI,CAAC9E,SAAS,CAAC;AACzD+E,MAAAA,QAAQ,EAAE,IAAI,CAACA,QAAQ,IAAI,KAAK;MAChCjF,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBqD,UAAU,EAAE,IAAI,CAACA,UAAU;AAC3B6B,MAAAA,aAAa,EAAE,IAAI,CAACA,aAAa,IAAI,CAAC;MACtCC,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BC,SAAS,EAAE,IAAI,CAACA,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI,CAACA,SAAS;MAChEnF,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BoF,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBC,UAAU,EAAE,IAAI,CAACA,UAAU;AAC3BC,MAAAA,aAAa,EAAE,IAAI,CAACA,aAAa,IAAI;AACvC,KAAC,CAAC;;AAEF;AACA,IAAA,IAAIX,MAAM,CAAC7D,KAAK,CAACV,MAAM,GAAG,CAAC,EAAE;AAC3B,MAAA,MAAMmF,YAAY,GAAG1C,IAAI,CAAC2C,GAAG,CAAC,GAAGb,MAAM,CAAC7D,KAAK,CAACC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAAClB,KAAK,CAAC,CAAC;AACtE,MAAA,IAAI,CAAC5B,eAAe,GAAG2E,IAAI,CAAC2C,GAAG,CAAC,IAAI,CAACvH,QAAQ,EAAEsH,YAAY,CAAC;AAC9D,IAAA;;AAEA;AACA,IAAA,IAAI,IAAI,CAACrH,eAAe,GAAG,IAAI,CAAC4B,KAAK,EAAE;MACrC,IAAI,CAACyB,IAAI,CAAC,OAAO,EAAE,IAAI,CAACrD,eAAe,CAAC;AACxC;MACA,MAAMuH,SAAS,GAAGb,UAAU,CAAC;AAC3B,QAAA,GAAI,IAAI,CAASc,yBAAyB,EAAE;QAC5C5F,KAAK,EAAE,IAAI,CAACA;AACd,OAAC,CAAC;AACF,MAAA,IAAI,CAAC6C,MAAM,GAAG8C,SAAS,CAACE,WAAW;AAClC,MAAA,IAAI,CAASC,4BAA4B,CAACH,SAAS,CAAC;AACvD,IAAA,CAAC,MAAM;AACL,MAAA,IAAI,CAAC9C,MAAM,GAAGgC,MAAM,CAACgB,WAAW;AAC/B,MAAA,IAAI,CAASC,4BAA4B,CAACjB,MAAM,CAAC;AACpD,IAAA;;AAEA;IACA,IAAI,CAAC/D,SAAS,GAAG,IAAI,CAACiF,2BAA2B,CAAClB,MAAM,CAAC;IACzD,IAAI,CAACmB,KAAK,GAAG,IAAI;AACnB,EAAA;;AAEA;AACF;AACA;AACA;EACED,2BAA2BA,CAAClB,MAAW,EAAY;IACjD,MAAM5D,GAAa,GAAG,EAAE;IACxB,IAAIgF,aAAa,GAAG,CAAC;IACrB,IAAIC,SAAS,GAAG,CAAC;IAEjBrB,MAAM,CAAC7D,KAAK,CAACyC,OAAO,CAAC,CAACvC,IAAS,EAAEyC,CAAS,KAAK;AAC7C,MAAA,IAAIzC,IAAI,CAACpC,IAAI,CAAC+C,QAAQ,CAAC,IAAI,CAAC,IAAI8B,CAAC,GAAG,CAAC,EAAE;AACrCsC,QAAAA,aAAa,EAAE;AACjB,MAAA;MAEAhF,GAAG,CAAC0C,CAAC,CAAC,GAAG;AAAEzC,QAAAA,IAAI,EAAE+E,aAAa;AAAEE,QAAAA,MAAM,EAAE;OAAG;AAC3CD,MAAAA,SAAS,IAAIhF,IAAI,CAACkF,SAAS,CAAC9F,MAAM;MAElC,IAAIqD,CAAC,GAAGkB,MAAM,CAAC7D,KAAK,CAACV,MAAM,GAAG,CAAC,EAAE;QAC/B4F,SAAS,IAAI,CAAC,CAAC;AACjB,MAAA;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAOjF,GAAG;AACZ,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEF,iBAAiBA,CAACsF,QAAuB,EAAY;IACnD,IAAIJ,aAAa,GAAG,CAAC;AACnBK,MAAAA,iBAAiB,GAAG,CAAC;AACrBJ,MAAAA,SAAS,GAAG,CAAC;IACf,MAAMjF,GAAa,GAAG,EAAE;AAExB,IAAA,KAAK,IAAI0C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0C,QAAQ,CAACE,aAAa,CAACjG,MAAM,EAAEqD,CAAC,EAAE,EAAE;AACtD,MAAA,IAAI0C,QAAQ,CAACG,YAAY,CAACN,SAAS,CAAC,KAAK,IAAI,IAAIvC,CAAC,GAAG,CAAC,EAAE;AACtD2C,QAAAA,iBAAiB,GAAG,CAAC;AACrBJ,QAAAA,SAAS,EAAE;AACXD,QAAAA,aAAa,EAAE;MACjB,CAAC,MAAM,IACL,CAAC,IAAI,CAACzH,eAAe,IACrB,IAAI,CAACiI,cAAc,CAACzC,IAAI,CAACqC,QAAQ,CAACG,YAAY,CAACN,SAAS,CAAC,CAAC,IAC1DvC,CAAC,GAAG,CAAC,EACL;AACA;AACA2C,QAAAA,iBAAiB,EAAE;AACnBJ,QAAAA,SAAS,EAAE;AACb,MAAA;MAEAjF,GAAG,CAAC0C,CAAC,CAAC,GAAG;AAAEzC,QAAAA,IAAI,EAAE+E,aAAa;AAAEE,QAAAA,MAAM,EAAEG;OAAmB;MAE3DJ,SAAS,IAAIG,QAAQ,CAACE,aAAa,CAAC5C,CAAC,CAAC,CAACrD,MAAM;MAC7CgG,iBAAiB,IAAID,QAAQ,CAACE,aAAa,CAAC5C,CAAC,CAAC,CAACrD,MAAM;AACvD,IAAA;AAEA,IAAA,OAAOW,GAAG;AACZ,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEyF,EAAAA,QAAQA,CAACC,QAAoC,EAAEC,SAAiB,EAAW;IACzE,IAAI,IAAI,CAAC9F,SAAS,IAAI,CAAC,IAAI,CAAC+F,UAAU,EAAE;AACtC,MAAA,MAAM5F,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;AACrC,MAAA,IAAI3F,GAAG,EAAE;QACP2F,SAAS,GAAG3F,GAAG,CAACC,IAAI;AACtB,MAAA;AACF,IAAA;AACA,IAAA,OAAO,KAAK,CAACwF,QAAQ,CAACC,QAAQ,EAAEC,SAAS,CAAC;AAC5C,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACEE,aAAaA,CAACF,SAAiB,EAAW;AACxC,IAAA,IAAI,CAAC,IAAI,CAACG,MAAM,EAAE;AAChB,MAAA,OAAO,IAAI;AACb,IAAA;IACA,IAAIZ,MAAM,GAAG,CAAC;MACZa,aAAa,GAAGJ,SAAS,GAAG,CAAC;MAC7BK,UAAkB;AAClBC,MAAAA,WAAW,GAAG,KAAK;AACrB,IAAA,MAAMjG,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;MACnCO,WAAW,GAAG,IAAI,CAACrG,SAAS,CAAC8F,SAAS,GAAG,CAAC,CAAC;AAC7C,IAAA,IAAI3F,GAAG,EAAE;MACP2F,SAAS,GAAG3F,GAAG,CAACC,IAAI;MACpBiF,MAAM,GAAGlF,GAAG,CAACkF,MAAM;AACrB,IAAA;AACA,IAAA,IAAIgB,WAAW,EAAE;MACfH,aAAa,GAAGG,WAAW,CAACjG,IAAI;MAChCgG,WAAW,GAAGF,aAAa,KAAKJ,SAAS;MACzCK,UAAU,GAAGE,WAAW,CAAChB,MAAM;AACjC,IAAA;IACA,MAAMiB,GAAG,GACP,OAAOR,SAAS,KAAK,WAAW,GAC5B,IAAI,CAACG,MAAM,GACX;AAAE7F,MAAAA,IAAI,EAAE,IAAI,CAAC6F,MAAM,CAACH,SAAS;KAAG;AACtC,IAAA,KAAK,MAAMS,EAAE,IAAID,GAAG,EAAE;AACpB,MAAA,KAAK,MAAME,EAAE,IAAIF,GAAG,CAACC,EAAE,CAAC,EAAE;AACxB,QAAA,MAAME,QAAQ,GAAGC,QAAQ,CAACF,EAAE,EAAE,EAAE,CAAC;QACjC,IAAIC,QAAQ,IAAIpB,MAAM,KAAK,CAACe,WAAW,IAAIK,QAAQ,GAAGN,UAAW,CAAC,EAAE;UAClE,KAAK,MAAMQ,EAAE,IAAIL,GAAG,CAACC,EAAE,CAAC,CAACC,EAAE,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;AACd,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEI,EAAAA,oBAAoBA,CAClBd,SAAiB,EACjBe,SAAiB,EACK;IACtB,IAAI,IAAI,CAAC7G,SAAS,IAAI,CAAC,IAAI,CAAC+F,UAAU,EAAE;AACtC,MAAA,MAAM5F,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;MACrC,IAAI,CAAC3F,GAAG,EAAE;AACR,QAAA,OAAO,EAAE;AACX,MAAA;MACA2F,SAAS,GAAG3F,GAAG,CAACC,IAAI;AACpByG,MAAAA,SAAS,GAAG1G,GAAG,CAACkF,MAAM,GAAGwB,SAAS;AACpC,IAAA;AACA,IAAA,OAAO,KAAK,CAACD,oBAAoB,CAACd,SAAS,EAAEe,SAAS,CAAC;AACzD,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACYC,EAAAA,oBAAoBA,CAC5BhB,SAAiB,EACjBe,SAAiB,EACjBE,KAAa,EACb;AACA,IAAA,MAAM5G,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;AACrC,IAAA,KAAK,CAACgB,oBAAoB,CAAC3G,GAAG,CAACC,IAAI,EAAED,GAAG,CAACkF,MAAM,GAAGwB,SAAS,EAAEE,KAAK,CAAC;AACrE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACYC,EAAAA,uBAAuBA,CAAClB,SAAiB,EAAEe,SAAiB,EAAE;AACtE,IAAA,MAAM1G,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;AACrC,IAAA,KAAK,CAACkB,uBAAuB,CAAC7G,GAAG,CAACC,IAAI,EAAED,GAAG,CAACkF,MAAM,GAAGwB,SAAS,CAAC;AACjE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACYI,aAAaA,CAACnB,SAAiB,EAAW;AAClD,IAAA,MAAM3F,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;IACrC,OAAO,CAAC,CAAC,IAAI,CAACG,MAAM,CAAC9F,GAAG,CAACC,IAAI,CAAC;AAChC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACY8G,aAAaA,CAACpB,SAAiB,EAAE;AACzC,IAAA,MAAM3F,GAAG,GAAG,IAAI,CAACH,SAAS,CAAC8F,SAAS,CAAC;AACrC,IAAA,KAAK,CAACoB,aAAa,CAAC/G,GAAG,CAACC,IAAI,CAAC;AAC/B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE+G,EAAAA,SAASA,CAACjH,KAAe,EAAEkH,YAAoB,EAAc;IAC3D,IAAI,CAACrB,UAAU,GAAG,IAAI;AACtB;AACA,IAAA,MAAMsB,IAAI,GAAG,IAAI,CAACC,wBAAwB,CAACpH,KAAK,CAAC;IACjD,MAAMqH,OAAmB,GAAG,EAAE;AAC9B,IAAA,KAAK,IAAI1E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwE,IAAI,CAACG,SAAS,CAAChI,MAAM,EAAEqD,CAAC,EAAE,EAAE;AAC9C0E,MAAAA,OAAO,CAACE,IAAI,CAAC,GAAG,IAAI,CAACC,SAAS,CAAC7E,CAAC,EAAEuE,YAAY,EAAEC,IAAI,CAAC,CAAC;AACxD,IAAA;IACA,IAAI,CAACtB,UAAU,GAAG,KAAK;AACvB,IAAA,OAAOwB,OAAO;AAChB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACED,wBAAwBA,CAACpH,KAAe,EAAgB;AACtD,IAAA,MAAMxC,eAAe,GAAG,IAAI,CAACA,eAAe;AAC1CiK,MAAAA,KAAK,GAAGjK,eAAe,GAAG,EAAE,GAAG,GAAG;IAEpC,IAAIkK,gBAAgB,GAAG,CAAC;IAExB,MAAMP,IAAI,GAAGnH,KAAK,CAACC,GAAG,CAAC,CAACC,IAAI,EAAE0F,SAAS,KAAK;MAC1C,IAAIT,MAAM,GAAG,CAAC;AACd,MAAA,MAAMwC,gBAAgB,GAAGnK,eAAe,GACpC,IAAI,CAACoK,aAAa,CAAC1H,IAAI,CAAC,GACxB,IAAI,CAAC2H,SAAS,CAAC3H,IAAI,CAAC;AAExB,MAAA,IAAIyH,gBAAgB,CAACrI,MAAM,KAAK,CAAC,EAAE;AACjC,QAAA,OAAO,CAAC;AAAEwI,UAAAA,IAAI,EAAE,EAAE;AAAE9I,UAAAA,KAAK,EAAE;AAAE,SAAC,CAAC;AACjC,MAAA;AAEA,MAAA,OAAO2I,gBAAgB,CAAC1H,GAAG,CAAE6H,IAAY,IAAK;AAC5C;AACA,QAAA,MAAMC,aAAa,GAAGvK,eAAe,GACjC,CAACsK,IAAI,CAAC,GACN,IAAI,CAACF,aAAa,CAACE,IAAI,CAAC;QAC5B,MAAM9I,KAAK,GAAG,IAAI,CAACgJ,YAAY,CAACD,aAAa,EAAEnC,SAAS,EAAET,MAAM,CAAC;QACjEuC,gBAAgB,GAAG3F,IAAI,CAAC2C,GAAG,CAAC1F,KAAK,EAAE0I,gBAAgB,CAAC;AACpDvC,QAAAA,MAAM,IAAI4C,aAAa,CAACzI,MAAM,GAAGmI,KAAK,CAACnI,MAAM;QAC7C,OAAO;AAAEwI,UAAAA,IAAI,EAAEC,aAAa;AAAE/I,UAAAA;SAAO;AACvC,MAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;IAEF,OAAO;AACLsI,MAAAA,SAAS,EAAEH,IAAI;AACfO,MAAAA;KACD;AACH,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEM,EAAAA,YAAYA,CAACF,IAAc,EAAElC,SAAiB,EAA0B;AAAA,IAAA,IAAxBqC,UAAU,GAAAC,SAAA,CAAA5I,MAAA,GAAA,CAAA,IAAA4I,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;IAC5D,IAAIlJ,KAAK,GAAG,CAAC;MACXoJ,YAAY;IACd,MAAMC,QAAQ,GAAG,IAAI;AACrB,IAAA,KAAK,IAAI1F,CAAC,GAAG,CAAC,EAAE2F,GAAG,GAAGR,IAAI,CAACxI,MAAM,EAAEqD,CAAC,GAAG2F,GAAG,EAAE3F,CAAC,EAAE,EAAE;MAC/C,MAAM4F,GAAG,GAAG,IAAI,CAACC,eAAe,CAC9BV,IAAI,CAACnF,CAAC,CAAC,EACPiD,SAAS,EACTjD,CAAC,GAAGsF,UAAU,EACdG,YAAY,EACZC,QACF,CAAC;MACDrJ,KAAK,IAAIuJ,GAAG,CAACE,WAAW;AACxBL,MAAAA,YAAY,GAAGN,IAAI,CAACnF,CAAC,CAAC;AACxB,IAAA;AACA,IAAA,OAAO3D,KAAK;AACd,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE6I,SAASA,CAACa,KAAa,EAAY;AACjC,IAAA,OAAOA,KAAK,CAACvI,KAAK,CAAC,IAAI,CAAC5C,YAAY,CAAC;AACvC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEiK,EAAAA,SAASA,CACP5B,SAAiB,EACjBsB,YAAoB,EAAAyB,IAAA,EAGR;IAAA,IAFZ;MAAEjB,gBAAgB;AAAEJ,MAAAA;AAAwB,KAAC,GAAAqB,IAAA;AAAA,IAAA,IAC7CC,aAAa,GAAAV,SAAA,CAAA5I,MAAA,GAAA,CAAA,IAAA4I,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAEjB,IAAA,MAAMW,eAAe,GAAG,IAAI,CAACC,sBAAsB,EAAE;MACnDtL,eAAe,GAAG,IAAI,CAACA,eAAe;AACtC+H,MAAAA,aAAa,GAAG,EAAE;AAClBkC,MAAAA,KAAK,GAAGjK,eAAe,GAAG,EAAE,GAAG,GAAG;IAEpC,IAAIuL,SAAS,GAAG,CAAC;AACf7I,MAAAA,IAAc,GAAG,EAAE;AACnB;AACAiF,MAAAA,MAAM,GAAG,CAAC;AACV6D,MAAAA,UAAU,GAAG,CAAC;AACdC,MAAAA,eAAe,GAAG,IAAI;AAExB/B,IAAAA,YAAY,IAAI0B,aAAa;AAE7B,IAAA,MAAMM,QAAQ,GAAGnH,IAAI,CAAC2C,GAAG,CACvBwC,YAAY,EACZQ,gBAAgB,EAChB,IAAI,CAACtK,eACP,CAAC;AACD;AACA,IAAA,MAAM+J,IAAI,GAAGG,SAAS,CAAC1B,SAAS,CAAC;AACjCT,IAAAA,MAAM,GAAG,CAAC;AACV,IAAA,IAAIxC,CAAC;AACL,IAAA,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwE,IAAI,CAAC7H,MAAM,EAAEqD,CAAC,EAAE,EAAE;MAChC,MAAM;QAAEmF,IAAI;AAAE9I,QAAAA,KAAK,EAAEmK;AAAU,OAAC,GAAGhC,IAAI,CAACxE,CAAC,CAAC;MAC1CwC,MAAM,IAAI2C,IAAI,CAACxI,MAAM;;AAErB;MACA,MAAM8J,kBAAkB,GAAGL,SAAS,GAAGC,UAAU,GAAGG,SAAS,GAAGN,eAAe;AAC/E;AACA,MAAA,MAAMQ,oBAAoB,GAAGH,QAAQ,CAAC;;AAEtC;AACA,MAAA,MAAMI,eAAe,GAAGpJ,IAAI,CAACqJ,IAAI,CAAC,EAAE,CAAC;MACrC7I,OAAO,CAACC,GAAG,CAAC,CAAA,uBAAA,EAA0BwG,IAAI,CAACxE,CAAC,CAAC,CAACmF,IAAI,CAAA,gBAAA,EAAmBsB,kBAAkB,CAACI,OAAO,CAAC,CAAC,CAAC,CAAA,aAAA,EAAgBH,oBAAoB,CAACG,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAEtJ,MAAA,IAAIJ,kBAAkB,GAAGC,oBAAoB,IAAI,CAACJ,eAAe,EAAE;AACjE;AACAvI,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,uBAAA,EAA0B2I,eAAe,CAAA,GAAA,EAAMP,SAAS,CAACS,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACrFjE,QAAAA,aAAa,CAACgC,IAAI,CAACrH,IAAI,CAAC;AACxBA,QAAAA,IAAI,GAAG,EAAE;QACT6I,SAAS,GAAGI,SAAS,CAAC;AACtBF,QAAAA,eAAe,GAAG,IAAI;AACxB,MAAA,CAAC,MAAM;AACL;QACAF,SAAS,GAAGK,kBAAkB,GAAGP,eAAe;AAClD,MAAA;AAEA,MAAA,IAAI,CAACI,eAAe,IAAI,CAACzL,eAAe,EAAE;AACxC0C,QAAAA,IAAI,CAACqH,IAAI,CAACE,KAAK,CAAC;AAClB,MAAA;AACAvH,MAAAA,IAAI,GAAGA,IAAI,CAACuJ,MAAM,CAAC3B,IAAI,CAAC;;AAExB;AACApH,MAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,gCAAA,EAAmCT,IAAI,CAACqJ,IAAI,CAAC,EAAE,CAAC,CAAA,GAAA,EAAMrJ,IAAI,CAACZ,MAAM,SAAS,CAAC;AAGvF0J,MAAAA,UAAU,GAAGxL,eAAe,GACxB,CAAC,GACD,IAAI,CAACwK,YAAY,CAAC,CAACP,KAAK,CAAC,EAAE7B,SAAS,EAAET,MAAM,CAAC;AACjDA,MAAAA,MAAM,EAAE;AACR8D,MAAAA,eAAe,GAAG,KAAK;AACzB,IAAA;AAEAtG,IAAAA,CAAC,IAAI4C,aAAa,CAACgC,IAAI,CAACrH,IAAI,CAAC;;AAE7B;AACA;AACA;AACA;AACA,IAAA,IAAI,CAAG,IAAI,CAAS5B,qBAAsB,IAAIoJ,gBAAgB,GAAGkB,aAAa,GAAG,IAAI,CAACxL,eAAe,EAAE;AACrGsD,MAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,oCAAA,EAAuC,IAAI,CAACvD,eAAe,CAAA,IAAA,EAAOsK,gBAAgB,GAAGmB,eAAe,GAAGD,aAAa,EAAE,CAAC;AACnI,MAAA,IAAI,CAACxL,eAAe,GAAGsK,gBAAgB,GAAGmB,eAAe,GAAGD,aAAa;AAC3E,IAAA,CAAC,MAAM,IAAK,IAAI,CAAStK,qBAAqB,EAAE;AAC9CoC,MAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,0EAAA,CAA4E,CAAC;AAC3F,IAAA;;AAEA;IACAD,OAAO,CAACC,GAAG,CAAC,CAAA,uBAAA,EAA0B4E,aAAa,CAACjG,MAAM,QAAQ,CAAC;AACnEiG,IAAAA,aAAa,CAAC9C,OAAO,CAAC,CAACvC,IAAI,EAAEyC,CAAC,KAAK;AACjCjC,MAAAA,OAAO,CAACC,GAAG,CAAC,WAAWgC,CAAC,GAAG,CAAC,CAAA,GAAA,EAAMzC,IAAI,CAACqJ,IAAI,CAAC,EAAE,CAAC,CAAA,GAAA,EAAMrJ,IAAI,CAACZ,MAAM,SAAS,CAAC;AAC5E,IAAA,CAAC,CAAC;AAEF,IAAA,OAAOiG,aAAa;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEmE,eAAeA,CAAC9D,SAAiB,EAAW;IAC1C,IAAI,CAAC,IAAI,CAAC9F,SAAS,CAAC8F,SAAS,GAAG,CAAC,CAAC,EAAE;AAClC;AACA,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,IAAI,IAAI,CAAC9F,SAAS,CAAC8F,SAAS,GAAG,CAAC,CAAC,CAAC1F,IAAI,KAAK,IAAI,CAACJ,SAAS,CAAC8F,SAAS,CAAC,CAAC1F,IAAI,EAAE;AACzE;AACA,MAAA,OAAO,IAAI;AACb,IAAA;AACA,IAAA,OAAO,KAAK;AACd,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEyJ,EAAAA,oBAAoBA,CAAC/D,SAAiB,EAAEgE,YAAsB,EAAS;AACrE,IAAA,IAAI,IAAI,CAACpM,eAAe,IAAI,CAACoM,YAAY,EAAE;MACzC,OAAO,IAAI,CAACF,eAAe,CAAC9D,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAChD,IAAA;AACA,IAAA,OAAO,CAAC;AACV,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEiE,mBAAmBA,CAAC/L,IAAY,EAAE;AAChC;IACA,MAAMgM,oBAAoB,GAAG,IAAI,CAAC5K,UAAU,IAAI6K,4BAA4B,CAAC,IAAI,CAAC7K,UAAU,CAAC;AAE7F,IAAA,IAAI4K,oBAAoB,EAAE;AACxB;AACA,MAAA,MAAME,QAAQ,GAAGlM,IAAI,CAACwB,MAAM,GAAGxB,IAAI,CAACmM,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;MACjD,MAAMC,QAAQ,GAAG,CAAA,EAAGF,QAAQ,IAAI,IAAI,CAAChL,KAAK,CAAA,CAAA,EAAI,IAAI,CAACC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,SAAS,CAAA,CAAE;;AAElG;MACA,IAAK,IAAI,CAASgL,iBAAiB,IAAK,IAAI,CAASA,iBAAiB,CAACC,GAAG,KAAKF,QAAQ,EAAE;AACvF,QAAA,MAAMG,YAAY,GAAI,IAAI,CAASF,iBAAiB,CAACG,MAAM;;AAE3D;AACA,QAAA,IAAI,IAAI,CAACnL,SAAS,CAAC0B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAEwJ,YAAY,CAAShK,wBAAwB,EAAE,CAE1F,MAAM;AACL,UAAA,OAAOgK,YAAY;AACrB,QAAA;AACF,MAAA;AAEA,MAAA,MAAMC,MAAM,GAAG,IAAI,CAACC,8BAA8B,CAACzM,IAAI,CAAC;;AAExD;MACC,IAAI,CAASqM,iBAAiB,GAAG;AAAEC,QAAAA,GAAG,EAAEF,QAAQ;AAAEI,QAAAA;OAAQ;;AAE3D;MACC,IAAI,CAAShM,qBAAqB,GAAG,IAAI;AAE1C,MAAA,OAAOgM,MAAM;AACf,IAAA;;AAEA;IACC,IAAI,CAAShM,qBAAqB,GAAG,KAAK;;AAE3C;AACA,IAAA,MAAMkM,OAAO,GAAG,KAAK,CAACX,mBAAmB,CAAC/L,IAAI,CAAC;AAC7CyH,MAAAA,aAAa,GAAG,IAAI,CAAC0B,SAAS,CAACuD,OAAO,CAACxK,KAAK,EAAE,IAAI,CAAChB,KAAK,CAAC;AACzDgB,MAAAA,KAAK,GAAG,IAAIyK,KAAK,CAAClF,aAAa,CAACjG,MAAM,CAAC;AACzC,IAAA,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4C,aAAa,CAACjG,MAAM,EAAEqD,CAAC,EAAE,EAAE;AAC7C3C,MAAAA,KAAK,CAAC2C,CAAC,CAAC,GAAG4C,aAAa,CAAC5C,CAAC,CAAC,CAAC4G,IAAI,CAAC,EAAE,CAAC;AACtC,IAAA;IACAiB,OAAO,CAACxK,KAAK,GAAGA,KAAK;IACrBwK,OAAO,CAACjF,aAAa,GAAGA,aAAa;AACrC,IAAA,OAAOiF,OAAO;AAChB,EAAA;;AAEA;AACF;AACA;AACA;EACED,8BAA8BA,CAACzM,IAAY,EAAE;AAC3C,IAAA,IAAI,OAAOuF,QAAQ,KAAK,WAAW,EAAE;AACnC;AACA,MAAA,OAAO,IAAI,CAACqH,0BAA0B,CAAC5M,IAAI,CAAC;AAC9C,IAAA;;AAEA;AACA,IAAA,MAAM6M,WAAW,GAAGtH,QAAQ,CAACuH,aAAa,CAAC,KAAK,CAAC;AACjDD,IAAAA,WAAW,CAAC9D,KAAK,CAACgE,QAAQ,GAAG,UAAU;AACvCF,IAAAA,WAAW,CAAC9D,KAAK,CAACxE,IAAI,GAAG,SAAS;AAClCsI,IAAAA,WAAW,CAAC9D,KAAK,CAACiE,UAAU,GAAG,QAAQ;IACvCH,WAAW,CAAC9D,KAAK,CAAC5H,QAAQ,GAAG,CAAA,EAAG,IAAI,CAACA,QAAQ,CAAA,EAAA,CAAI;IACjD0L,WAAW,CAAC9D,KAAK,CAAC3H,UAAU,GAAG,CAAA,CAAA,EAAI,IAAI,CAACA,UAAU,CAAA,CAAA,CAAG;AACrDyL,IAAAA,WAAW,CAAC9D,KAAK,CAACtC,UAAU,GAAGwG,MAAM,CAAC,IAAI,CAACxG,UAAU,IAAI,QAAQ,CAAC;AAClEoG,IAAAA,WAAW,CAAC9D,KAAK,CAACvC,SAAS,GAAGyG,MAAM,CAAC,IAAI,CAACzG,SAAS,IAAI,QAAQ,CAAC;AAChEqG,IAAAA,WAAW,CAAC9D,KAAK,CAACvE,UAAU,GAAGyI,MAAM,CAAC,IAAI,CAACzI,UAAU,IAAI,IAAI,CAAC;IAE9DqI,WAAW,CAAC9D,KAAK,CAAC7H,KAAK,GAAG,CAAA,EAAG,IAAI,CAACA,KAAK,CAAA,EAAA,CAAI;IAE3C2L,WAAW,CAAC9D,KAAK,CAACxC,SAAS,GAAG,IAAI,CAACA,SAAS,IAAI,KAAK;AACrDsG,IAAAA,WAAW,CAAC9D,KAAK,CAACmE,UAAU,GAAG,UAAU;AACzCL,IAAAA,WAAW,CAAC9D,KAAK,CAACoE,SAAS,GAAG,QAAQ;AACtCN,IAAAA,WAAW,CAAC9D,KAAK,CAACqE,YAAY,GAAG,YAAY;;AAE7C;IACA,IAAI,IAAI,CAAC/L,SAAS,CAAC0B,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtC8J,MAAAA,WAAW,CAAC9D,KAAK,CAAC1H,SAAS,GAAG,SAAS;AACvCwL,MAAAA,WAAW,CAAC9D,KAAK,CAACsE,aAAa,GAAG,MAAM,CAAC;AAC3C,IAAA,CAAC,MAAM;AACLR,MAAAA,WAAW,CAAC9D,KAAK,CAAC1H,SAAS,GAAG,IAAI,CAACA,SAAS;AAC9C,IAAA;IAEAwL,WAAW,CAACS,WAAW,GAAGtN,IAAI;AAE9BuF,IAAAA,QAAQ,CAACgI,IAAI,CAACC,WAAW,CAACX,WAAW,CAAC;;AAEtC;AACA,IAAA,MAAMY,KAAK,GAAGlI,QAAQ,CAACmI,WAAW,EAAE;IACpC,MAAMxL,KAAe,GAAG,EAAE;IAC1B,MAAMuF,aAAyB,GAAG,EAAE;IAEpC,IAAI;AACF;AACA,MAAA,MAAMkG,QAAQ,GAAGd,WAAW,CAACe,UAAU;MACvC,IAAID,QAAQ,IAAIA,QAAQ,CAACE,QAAQ,KAAKC,IAAI,CAACC,SAAS,EAAE;QACpD,IAAIC,gBAAgB,GAAG,CAAC;AACxB,QAAA,MAAMC,UAAU,GAAGjO,IAAI,CAACwB,MAAM;QAC9B,IAAI0M,cAAc,GAAG,CAAC;QAEtB,KAAK,IAAIrJ,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIoJ,UAAU,EAAEpJ,CAAC,EAAE,EAAE;AACpC4I,UAAAA,KAAK,CAACU,QAAQ,CAACR,QAAQ,EAAEK,gBAAgB,CAAC;AAC1CP,UAAAA,KAAK,CAACW,MAAM,CAACT,QAAQ,EAAE9I,CAAC,CAAC;AACzB,UAAA,MAAMwJ,IAAI,GAAGZ,KAAK,CAACa,qBAAqB,EAAE;AAE1C,UAAA,IAAIzJ,CAAC,GAAGmJ,gBAAgB,KAAKK,IAAI,CAACE,MAAM,GAAGL,cAAc,GAAG,CAAC,IAAIrJ,CAAC,KAAKoJ,UAAU,CAAC,EAAE;AAClF;YACA,MAAMO,OAAO,GAAG3J,CAAC,KAAKoJ,UAAU,GAAGpJ,CAAC,GAAGA,CAAC,GAAG,CAAC;AAC5C,YAAA,MAAM4J,QAAQ,GAAGzO,IAAI,CAAC0O,SAAS,CAACV,gBAAgB,EAAEQ,OAAO,CAAC,CAACG,IAAI,EAAE;AACjE,YAAA,IAAIF,QAAQ,EAAE;AACZvM,cAAAA,KAAK,CAACuH,IAAI,CAACgF,QAAQ,CAAC;AACpB;AACA,cAAA,MAAMG,YAAY,GAAGH,QAAQ,CAACpM,KAAK,CAAC,EAAE,CAAC;AACvCoF,cAAAA,aAAa,CAACgC,IAAI,CAACmF,YAAY,CAAC;AAC1B,YAAA;AACRZ,YAAAA,gBAAgB,GAAGQ,OAAO;YAC1BN,cAAc,GAAGG,IAAI,CAACE,MAAM;AAC9B,UAAA;AACF,QAAA;AACF,MAAA;IACF,CAAC,CAAC,OAAOM,KAAK,EAAE;AACdjM,MAAAA,OAAO,CAACY,IAAI,CAAC,0CAA0C,EAAEqL,KAAK,CAAC;AAC/DtJ,MAAAA,QAAQ,CAACgI,IAAI,CAACuB,WAAW,CAACjC,WAAW,CAAC;AACtC,MAAA,OAAO,IAAI,CAACD,0BAA0B,CAAC5M,IAAI,CAAC;AAC9C,IAAA;;AAEA;AACA,IAAA,MAAMyC,mBAAmB,GAAGoK,WAAW,CAACkC,YAAY;AACpD,IAAA,MAAMC,YAAY,GAAGnC,WAAW,CAACmC,YAAY;AAC7C,IAAA,MAAMC,YAAY,GAAGpC,WAAW,CAACoC,YAAY;AAC7C,IAAA,MAAMC,YAAY,GAAGrC,WAAW,CAACyB,qBAAqB,EAAE;AAExD1L,IAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,gCAAA,CAAkC,CAAC;AAC/CD,IAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,iBAAA,EAAoBJ,mBAAmB,0CAA0C,CAAC;AAC9FG,IAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,iBAAA,EAAoBmM,YAAY,iCAAiC,CAAC;AAC9EpM,IAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,iBAAA,EAAoBoM,YAAY,6CAA6C,CAAC;IAC1FrM,OAAO,CAACC,GAAG,CAAC,CAAA,wBAAA,EAA2BqM,YAAY,CAACnL,MAAM,6BAA6B,CAAC;AACxFnB,IAAAA,OAAO,CAACC,GAAG,CAAC,iBAAiB,IAAI,CAAC1B,QAAQ,CAAA,iBAAA,EAAoB,IAAI,CAACqD,UAAU,IAAI,IAAI,CAAA,SAAA,EAAYtC,KAAK,CAACV,MAAM,EAAE,CAAC;;AAEhH;IACA,IAAIe,wBAAwB,GAAG,IAAI;IACnC,IAAI,IAAI,CAAClB,SAAS,CAAC0B,QAAQ,CAAC,SAAS,CAAC,EAAE;MACtCR,wBAAwB,GAAG,IAAI,CAAC4M,gCAAgC,CAACtC,WAAW,EAAE3K,KAAK,CAAC;AACtF,IAAA;AAEAqD,IAAAA,QAAQ,CAACgI,IAAI,CAACuB,WAAW,CAACjC,WAAW,CAAC;IAEtCjK,OAAO,CAACC,GAAG,CAAC,CAAA,4BAAA,EAA+BX,KAAK,CAACV,MAAM,QAAQ,CAAC;;AAEhE;IACA,IAAI4N,UAAU,GAAG3M,mBAAmB;;AAEpC;IACA,IAAIwB,IAAI,CAACC,GAAG,CAACzB,mBAAmB,GAAGuM,YAAY,CAAC,GAAG,CAAC,EAAE;MACpDpM,OAAO,CAACC,GAAG,CAAC,CAAA,6CAAA,EAAgDJ,mBAAmB,CAAA,mBAAA,EAAsBuM,YAAY,IAAI,CAAC;AACxH,IAAA;;AAEA;AACA,IAAA,IAAIE,YAAY,CAACnL,MAAM,GAAGqL,UAAU,EAAE;MACpCxM,OAAO,CAACC,GAAG,CAAC,CAAA,8BAAA,EAAiCqM,YAAY,CAACnL,MAAM,CAAA,6BAAA,EAAgCqL,UAAU,CAAA,GAAA,CAAK,CAAC;MAChHA,UAAU,GAAGF,YAAY,CAACnL,MAAM;AAClC,IAAA;;AAEA;IACA,IAAIsL,cAAc,GAAGD,UAAU;;AAE/B;AACA,IAAA,MAAME,kBAAkB,GAAGrD,4BAA4B,CAAC,IAAI,CAAC7K,UAAU,CAAC;AACxE,IAAA,IAAIkO,kBAAkB,EAAE;MACtB,MAAMC,WAAW,GAAG,IAAI,CAACpO,QAAQ,GAAG,IAAI,CAAC;MACzCkO,cAAc,GAAGD,UAAU,GAAGG,WAAW;AACzC3M,MAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAACzB,UAAU,CAAA,UAAA,EAAamO,WAAW,CAAA,WAAA,EAAcH,UAAU,CAAA,KAAA,EAAQG,WAAW,CAAA,KAAA,EAAQF,cAAc,KAAK,CAAC;AAC7J,IAAA,CAAC,MAAM;MACLzM,OAAO,CAACC,GAAG,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAACzB,UAAU,CAAA,kCAAA,EAAqCgO,UAAU,CAAA,GAAA,CAAK,CAAC;AACvG,IAAA;IAEA,OAAO;MACLI,eAAe,EAAE,CAACxP,IAAI,CAACqC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjCH,MAAAA,KAAK,EAAEA,KAAK;AACZwF,MAAAA,YAAY,EAAE1H,IAAI,CAACqC,KAAK,CAAC,EAAE,CAAC;AAC5BoF,MAAAA,aAAa,EAAEA,aAAa;AAC5BlF,MAAAA,wBAAwB,EAAEA,wBAAwB;AAClDE,MAAAA,mBAAmB,EAAE4M;KACtB;AACH,EAAA;;AAKA;AACF;AACA;AACA;AACEF,EAAAA,gCAAgCA,CAACM,OAAoB,EAAEvN,KAAe,EAAE;IACtEU,OAAO,CAACC,GAAG,CAAC,CAAA,qDAAA,EAAwDX,KAAK,CAACV,MAAM,QAAQ,CAAC;;AAEzF;AACA;IACA,MAAMkO,WAAuB,GAAG,EAAE;AAElCxN,IAAAA,KAAK,CAACyC,OAAO,CAAC,CAACvC,IAAI,EAAE0F,SAAS,KAAK;MACjC,MAAM6H,UAAoB,GAAG,EAAE;AAC/B,MAAA,MAAMC,UAAU,GAAG,CAACxN,IAAI,CAACyN,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAErO,MAAM;MAEnD,IAAIoO,UAAU,GAAG,CAAC,IAAI9H,SAAS,GAAG5F,KAAK,CAACV,MAAM,GAAG,CAAC,EAAE;AAAE;AACpD;AACA,QAAA,MAAMsO,gBAAgB,GAAG,GAAG,CAAC;AAC7B,QAAA,MAAM7E,SAAS,GAAG,IAAI,CAAC/J,KAAK;;AAE5B;AACA,QAAA,MAAMkG,SAAS,GAAGhF,IAAI,CAACZ,MAAM,GAAGoO,UAAU;AAC1C,QAAA,MAAMG,YAAY,GAAG,EAAE,CAAC;;AAGxB;AACA,QAAA,MAAMC,cAAc,GAAG/E,SAAS,GAAI7D,SAAS,GAAG2I,YAAa;AAC7D,QAAA,MAAME,kBAAkB,GAAGD,cAAc,GAAGJ,UAAU;AAEtDhN,QAAAA,OAAO,CAACC,GAAG,CAAC,CAAA,QAAA,EAAWiF,SAAS,KAAK8H,UAAU,CAAA,kBAAA,EAAqBE,gBAAgB,CAAA,iBAAA,EAAoBG,kBAAkB,CAACvE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;;AAE1I;QACA,KAAK,IAAI7G,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+K,UAAU,EAAE/K,CAAC,EAAE,EAAE;AACnC8K,UAAAA,UAAU,CAAClG,IAAI,CAACwG,kBAAkB,CAAC;AACrC,QAAA;AACF,MAAA;AAEAP,MAAAA,WAAW,CAACjG,IAAI,CAACkG,UAAU,CAAC;AAC9B,IAAA,CAAC,CAAC;AAEF,IAAA,OAAOD,WAAW;AACpB,EAAA;;AAEA;AACF;AACA;AACA;AACEzM,EAAAA,0BAA0BA,GAAG;IAC3B,IAAI,CAAC,IAAI,CAAC1B,UAAU,IAAI,CAAC,IAAI,CAAC6B,YAAY,EAAE;AAC1CR,MAAAA,OAAO,CAACY,IAAI,CAAC,0DAA0D,CAAC;AACxE,MAAA;AACF,IAAA;;AAEA;AACA,IAAA,MAAM0M,QAAQ,GAAG,IAAI,CAAClO,SAAgB;AACtC,IAAA,IAAI,CAACkO,QAAQ,IAAI,CAACA,QAAQ,CAAC3N,wBAAwB,EAAE;AACnDK,MAAAA,OAAO,CAACY,IAAI,CAAC,6DAA6D,CAAC;AAC3E,MAAA;AACF,IAAA;AAEA,IAAA,MAAMkM,WAAW,GAAGQ,QAAQ,CAAC3N,wBAAsC;AACnEK,IAAAA,OAAO,CAACC,GAAG,CAAC,iEAAiE,CAAC;;AAE9E;IACA,IAAI,CAACtB,UAAU,CAACoD,OAAO,CAAC,CAACvC,IAAI,EAAE0F,SAAS,KAAK;AAC3C,MAAA,IAAI,CAAC,IAAI,CAAC1E,YAAY,IAAI,CAAC,IAAI,CAACA,YAAY,CAAC0E,SAAS,CAAC,IAAI,CAAC4H,WAAW,CAAC5H,SAAS,CAAC,EAAE;AAEpF,MAAA,MAAMlD,UAAU,GAAG,IAAI,CAACxB,YAAY,CAAC0E,SAAS,CAAC;AAC/C,MAAA,MAAMqI,eAAe,GAAGT,WAAW,CAAC5H,SAAS,CAAC;MAC9C,IAAIsI,UAAU,GAAG,CAAC;MAClB,IAAIC,gBAAgB,GAAG,CAAC;AACxB,MAAA,MAAMC,KAAK,GAAG,IAAI,CAAC/J,SAAS,KAAK,KAAK;MACtC,MAAMgK,UAAU,GAAG,EAAE;;AAErB;AACA,MAAA,KAAK,IAAI1H,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAGzG,IAAI,CAACZ,MAAM,EAAEqH,SAAS,EAAE,EAAE;AAC5D,QAAA,IAAI,IAAI,CAAC3D,IAAI,CAAC9C,IAAI,CAACyG,SAAS,CAAC,CAAC,IAAIuH,UAAU,GAAGD,eAAe,CAAC3O,MAAM,EAAE;AACrE,UAAA,MAAMgP,SAAS,GAAG5L,UAAU,CAACiE,SAAS,CAAC;AACvC,UAAA,IAAI2H,SAAS,EAAE;YACbD,UAAU,CAAC9G,IAAI,CAAC0G,eAAe,CAACC,UAAU,CAAC,GAAGI,SAAS,CAACtP,KAAK,CAAC;AAChE,UAAA;AACAkP,UAAAA,UAAU,EAAE;AACd,QAAA;AACF,MAAA;AAEAA,MAAAA,UAAU,GAAG,CAAC;AACd,MAAA,IAAIK,aAAa,GAAGF,UAAU,CAACG,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAA,KAAK,IAAI/H,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAGzG,IAAI,CAACZ,MAAM,EAAEqH,SAAS,EAAE,EAAE;AAC5D,QAAA,MAAM2H,SAAS,GAAG5L,UAAU,CAACiE,SAAS,CAAC;QACvC,IAAI,CAAC2H,SAAS,EAAE;AAEhB,QAAA,IAAIF,KAAK,EAAE;UACTE,SAAS,CAACjM,IAAI,IAAIkM,aAAa;AACjC,QAAA,CAAC,MAAM;UACLD,SAAS,CAACjM,IAAI,IAAI8L,gBAAgB;AACpC,QAAA;AAEA,QAAA,IAAI,IAAI,CAACnL,IAAI,CAAC9C,IAAI,CAACyG,SAAS,CAAC,CAAC,IAAIuH,UAAU,GAAGG,UAAU,CAAC/O,MAAM,EAAE;AAChE,UAAA,MAAMqP,IAAI,GAAGN,UAAU,CAACH,UAAU,CAAC;AACnC,UAAA,MAAMU,QAAQ,GAAGN,SAAS,CAACtP,KAAK;UAChCsP,SAAS,CAACtP,KAAK,IAAI2P,IAAI;UACvBL,SAAS,CAAC7F,WAAW,IAAIkG,IAAI;UAC7BjO,OAAO,CAACC,GAAG,CAAC,CAAA,QAAA,EAAWiF,SAAS,UAAUsI,UAAU,CAAA,EAAA,EAAKU,QAAQ,CAACpF,OAAO,CAAC,CAAC,CAAC,CAAA,MAAA,EAAS8E,SAAS,CAACtP,KAAK,CAACwK,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAEpH,UAAA,IAAI4E,KAAK,EAAE;AACTG,YAAAA,aAAa,IAAII,IAAI;AACvB,UAAA,CAAC,MAAM;AACLR,YAAAA,gBAAgB,IAAIQ,IAAI;AAC1B,UAAA;AACAT,UAAAA,UAAU,EAAE;AACd,QAAA;AACF,MAAA;AACA;AACA,MAAA,MAAMW,SAAS,GAAGnM,UAAU,CAACxC,IAAI,CAACZ,MAAM,CAAC;AACzC,MAAA,IAAIuP,SAAS,EAAE;AACb,QAAA,IAAIT,KAAK,EAAE;UACTS,SAAS,CAACxM,IAAI,IAAIkM,aAAa;AACjC,QAAA,CAAC,MAAM;UACLM,SAAS,CAACxM,IAAI,IAAI8L,gBAAgB;AACpC,QAAA;AACF,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;;AAEA;AACF;AACA;AACA;EACEzD,0BAA0BA,CAAC5M,IAAY,EAAE;AACvC,IAAA,MAAM0M,OAAO,GAAG,KAAK,CAACX,mBAAmB,CAAC/L,IAAI,CAAC;AAC7CyH,MAAAA,aAAa,GAAG,IAAI,CAAC0B,SAAS,CAACuD,OAAO,CAACxK,KAAK,EAAE,IAAI,CAAChB,KAAK,CAAC;AACzDgB,MAAAA,KAAK,GAAG,IAAIyK,KAAK,CAAClF,aAAa,CAACjG,MAAM,CAAC;AACzC,IAAA,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4C,aAAa,CAACjG,MAAM,EAAEqD,CAAC,EAAE,EAAE;AAC7C3C,MAAAA,KAAK,CAAC2C,CAAC,CAAC,GAAG4C,aAAa,CAAC5C,CAAC,CAAC,CAAC4G,IAAI,CAAC,EAAE,CAAC;AACtC,IAAA;IACAiB,OAAO,CAACxK,KAAK,GAAGA,KAAK;IACrBwK,OAAO,CAACjF,aAAa,GAAGA,aAAa;AACrC,IAAA,OAAOiF,OAAO;AAChB,EAAA;AAEAsE,EAAAA,WAAWA,GAAG;IACZ,OAAO/M,IAAI,CAAC2C,GAAG,CAAC,IAAI,CAACvH,QAAQ,EAAE,IAAI,CAACC,eAAe,CAAC;AACtD,EAAA;AAEA2R,EAAAA,uBAAuBA,GAAG;AACxB,IAAA,MAAMC,WAAW,GAAG,IAAIC,GAAG,EAAE;AAC7B,IAAA,KAAK,MAAMC,IAAI,IAAI,IAAI,CAACpP,SAAS,EAAE;AACjC,MAAA,MAAMqP,UAAU,GAAG3I,QAAQ,CAAC0I,IAAI,EAAE,EAAE,CAAC;AACrC,MAAA,IAAI,IAAI,CAAC7P,UAAU,CAAC8P,UAAU,CAAC,EAAE;QAC/B,MAAMvJ,SAAS,GAAG,IAAI,CAAC9F,SAAS,CAACoP,IAAI,CAAC,CAAChP,IAAI;QAC3C8O,WAAW,CAACI,GAAG,CAAC,CAAA,EAAGxJ,SAAS,CAAA,CAAE,EAAE,IAAI,CAAC;AACvC,MAAA;AACF,IAAA;AACA,IAAA,KAAK,MAAMsJ,IAAI,IAAI,IAAI,CAACnJ,MAAM,EAAE;AAC9B,MAAA,IAAI,CAACiJ,WAAW,CAACK,GAAG,CAACH,IAAI,CAAC,EAAE;AAC1B,QAAA,OAAO,IAAI,CAACnJ,MAAM,CAACmJ,IAAI,CAAC;AAC1B,MAAA;AACF,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACUlR,EAAAA,wBAAwBA,GAAS;AAAA,IAAA,IAAAsR,aAAA;AACvC;IACA,IAAIC,YAAqC,GAAG,IAAI;;AAEhD;AACA,IAAA,IAAI,CAACC,EAAE,CAAC,UAAU,EAAGC,CAAM,IAAK;AAC9B;MACA,IAAIA,CAAC,CAACC,SAAS,EAAE;QACf,MAAM;AAAEC,UAAAA;SAAS,GAAGF,CAAC,CAACC,SAAS;AAC/B;AACAH,QAAAA,YAAY,GAAGI,OAAO,KAAK,OAAO,GAAG,MAAM,GAAGA,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AACnF,MAAA,CAAC,MAAM,IAAIF,CAAC,CAACE,OAAO,EAAE;QACpB,MAAM;AAAEA,UAAAA;AAAQ,SAAC,GAAGF,CAAC;AACrBF,QAAAA,YAAY,GAAGI,OAAO,KAAK,OAAO,GAAG,MAAM,GAAGA,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AACnF,MAAA;AACF,IAAA,CAAC,CAAC;;AAEF;AACA;AACA,IAAA,IAAI,CAACH,EAAE,CAAC,UAAU,EAAE,MAAM;AACxB,MAAA,MAAMI,mBAAmB,GAAGL,YAAY,CAAC;AACzC;MACA/N,UAAU,CAAC,MAAM,IAAI,CAACqO,eAAe,CAACD,mBAAmB,CAAC,EAAE,EAAE,CAAC;MAC/DL,YAAY,GAAG,IAAI,CAAC;AACtB,IAAA,CAAC,CAAC;;AAEF;AACA,IAAA,CAAAD,aAAA,GAAA,IAAI,CAAC5N,MAAM,cAAA4N,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAaE,EAAE,CAAC,iBAAiB,EAAGC,CAAC,IAAK;AACxC,MAAA,IAAIA,CAAC,CAACK,MAAM,KAAK,IAAI,EAAE;AACrB,QAAA,MAAMF,mBAAmB,GAAGL,YAAY,CAAC;QACzC/N,UAAU,CAAC,MAAM,IAAI,CAACqO,eAAe,CAACD,mBAAmB,CAAC,EAAE,EAAE,CAAC;QAC/DL,YAAY,GAAG,IAAI,CAAC;AACtB,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACUM,eAAeA,CAACN,YAAsC,EAAQ;AACpE;IACA,IAAI,CAAC,IAAI,CAAClQ,UAAU,IAAI,IAAI,CAAC0Q,IAAI,CAACC,WAAW,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC3Q,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;AAC7F,MAAA;AACF,IAAA;AAEA,IAAA,MAAM2Q,SAAS,GAAG,IAAI,CAAC5Q,UAAU,CAACC,MAAM;IACxC,IAAI2Q,SAAS,KAAK,CAAC,EAAE;AAIrB,IAAA,IAAIC,gBAAgB,GAAG,CAAC,CAAC;;IAEzB,KAAK,IAAIvN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsN,SAAS,EAAEtN,CAAC,EAAE,EAAE;AAClC,MAAA,MAAM4J,QAAQ,GAAG,IAAI,CAAClN,UAAU,CAACsD,CAAC,CAAC,CAAC4G,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,MAAA,MAAMR,SAAS,GAAG,IAAI,CAACoH,YAAY,CAACxN,CAAC,CAAC;;AAGtC;MACA,MAAMyN,QAAQ,GAAG,qEAAqE;AACtF,MAAA,IAAIA,QAAQ,CAACpN,IAAI,CAACuJ,QAAQ,CAAC,EAAE;AAC3B;QACA,MAAM8D,SAAS,GAAG,CAAC,IAAI,CAACpR,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC;QAC/CiR,gBAAgB,GAAGnO,IAAI,CAAC2C,GAAG,CAACwL,gBAAgB,EAAEnH,SAAS,GAAGsH,SAAS,CAAC;AACtE,MAAA,CAAC,MAAM;QACLH,gBAAgB,GAAGnO,IAAI,CAAC2C,GAAG,CAACwL,gBAAgB,EAAEnH,SAAS,CAAC;AAC1D,MAAA;AACF,IAAA;;AAEA;AACA,IAAA,MAAMuH,eAAe,GAAG,CAAC,CAAC;;AAE1B,IAAA,IAAIJ,gBAAgB,GAAG,IAAI,CAAClR,KAAK,GAAGsR,eAAe,EAAE;AAAA,MAAA,IAAAC,aAAA;AACnD;AACA,MAAA,MAAMC,QAAQ,GAAGN,gBAAgB,GAAG,CAAC,CAAC;;AAEtC;AACA,MAAA,MAAMO,YAAY,GAAG,IAAI,CAACpO,IAAI;AAC9B,MAAA,MAAMqO,WAAW,GAAG,IAAI,CAACtO,GAAG;AAC5B,MAAA,MAAMuO,aAAa,GAAGH,QAAQ,GAAG,IAAI,CAACxR,KAAK;;AAE3C;AACA,MAAA,IAAI,CAACoQ,GAAG,CAAC,OAAO,EAAEoB,QAAQ,CAAC;;AAE3B;MACA,IAAI,CAACpS,cAAc,EAAE;;AAErB;AACA;MACA,IAAImR,YAAY,KAAK,MAAM,EAAE;AAC3B;AACA;QACA,IAAI,CAACH,GAAG,CAAC;UACP,MAAM,EAAEqB,YAAY,GAAGE,aAAa;AACpC,UAAA,KAAK,EAAED;AACT,SAAC,CAAC;AACJ,MAAA;MAEA,IAAI,CAACvO,SAAS,EAAE;;AAEhB;MACA,IAAK,IAAI,CAASyO,eAAe,EAAE;AACjCpP,QAAAA,UAAU,CAAC,MAAM;AACd,UAAA,IAAI,CAASoP,eAAe,CAACC,OAAO,EAAE;QACzC,CAAC,EAAE,CAAC,CAAC;AACP,MAAA;MAEA,CAAAN,aAAA,GAAA,IAAI,CAAC7O,MAAM,MAAA,IAAA,IAAA6O,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAa5O,gBAAgB,EAAE;AACjC,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACEmP,EAAAA,iCAAiCA,GAAS;IACxC,IAAK,IAAI,CAASxS,qBAAqB,EAAE;AACvC;MACC,IAAI,CAAS6L,iBAAiB,GAAG,IAAI;MACrC,IAAI,CAAS/K,mBAAmB,GAAG,IAAI;;AAExC;MACA,IAAI,CAAChB,cAAc,EAAE;MACrB,IAAI,CAAC2S,gBAAgB,GAAG,IAAI;;AAE5B;MACA,IAAI,CAAC5O,SAAS,EAAE;MAChB,IAAI,IAAI,CAACT,MAAM,EAAE;AACf,QAAA,IAAI,CAACA,MAAM,CAACC,gBAAgB,EAAE;AAChC,MAAA;AACF,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACEqP,EAAAA,yBAAyBA,GAAS;AAChCtQ,IAAAA,OAAO,CAACC,GAAG,CAAC,wCAAwC,CAAC;;AAErD;IACA,IAAI,CAACtC,WAAW,GAAG,IAAI;;AAEvB;IACA,IAAI,CAACsB,WAAW,EAAE;IAClB,IAAI,CAACqF,KAAK,GAAG,IAAI;IACjB,IAAI,CAAC5H,eAAe,GAAG,CAAC;;AAExB;IACA,IAAI,CAACqC,SAAS,GAAG,KAAK;AAEtBiB,IAAAA,OAAO,CAACC,GAAG,CAAC,uDAAuD,CAAC;;AAEpE;IACA,IAAI,CAACvC,cAAc,EAAE;;AAErB;AACA,IAAA,IAAI,IAAI,CAACe,SAAS,CAAC0B,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAACK,YAAY,EAAE;AAC3DM,MAAAA,UAAU,CAAC,MAAM;AAAA,QAAA,IAAAyP,aAAA;AACf;QACA,IAAIzO,iBAAiB,GAAG,KAAK;QAC7B,IAAI,CAACtB,YAAY,CAACuB,OAAO,CAAC,CAACC,UAAU,EAAEC,CAAC,KAAK;AAC3C,UAAA,IAAID,UAAU,IAAI,IAAI,CAACrD,UAAU,IAAI,IAAI,CAACA,UAAU,CAACsD,CAAC,CAAC,EAAE;YACvD,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC3D,UAAU,CAACsD,CAAC,CAAC,CAACI,CAAC,CAAC,CAAC,CAAC;AAChF,YAAA,IAAIH,MAAM,CAACtD,MAAM,GAAG,CAAC,EAAE;AACrB,cAAA,MAAM2D,eAAe,GAAGL,MAAM,CAAC,CAAC,CAAC,CAAC5D,KAAK;AACvCwD,cAAAA,iBAAiB,GAAGI,MAAM,CAACM,IAAI,CAACC,KAAK,IAAIpB,IAAI,CAACC,GAAG,CAACmB,KAAK,CAACnE,KAAK,GAAGiE,eAAe,CAAC,GAAG,GAAG,CAAC;AACzF,YAAA;AACF,UAAA;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAACT,iBAAiB,IAAI,IAAI,CAACtB,YAAY,CAAC5B,MAAM,GAAG,CAAC,EAAE;AACtDoB,UAAAA,OAAO,CAACY,IAAI,CAAC,kEAAkE,CAAC;UAChF,IAAI,IAAI,CAACD,aAAa,EAAE;YACtB,IAAI,CAACA,aAAa,EAAE;AACtB,UAAA;AACF,QAAA,CAAC,MAAM;AACLX,UAAAA,OAAO,CAACC,GAAG,CAAC,uCAAuC,CAAC;AACtD,QAAA;;AAEA;AACA,QAAA,IAAK,IAAI,CAASrC,qBAAqB,IAAK,IAAI,CAASkC,oBAAoB,EAAE;AAC7E,UAAA,IAAI,CAACqB,MAAM,GAAI,IAAI,CAASrB,oBAAoB;UAChDE,OAAO,CAACC,GAAG,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAACkB,MAAM,IAAI,CAAC;AACvE,QAAA,CAAC,MAAM;AACL,UAAA,IAAI,CAACA,MAAM,GAAG,IAAI,CAACC,cAAc,EAAE;UACnCpB,OAAO,CAACC,GAAG,CAAC,CAAA,iCAAA,EAAoC,IAAI,CAACkB,MAAM,IAAI,CAAC;AAClE,QAAA;QACA,CAAAoP,aAAA,GAAA,IAAI,CAACvP,MAAM,MAAA,IAAA,IAAAuP,aAAA,KAAA,MAAA,IAAXA,aAAA,CAAatP,gBAAgB,EAAE;MACjC,CAAC,EAAE,EAAE,CAAC;AACR,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEuP,EAAAA,QAAQA,GAG8C;AAAA,IAAA,IAApDC,mBAAwB,GAAAjJ,SAAA,CAAA5I,MAAA,GAAA,CAAA,IAAA4I,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC7B,IAAA,OAAO,KAAK,CAACgJ,QAAQ,CAAO,CAC1B,UAAU,EACV,iBAAiB,EACjB,GAAGC,mBAAmB,CAChB,CAAC;AACX,EAAA;AACF;AA3yCE;AACF;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AACA;AAGE;AACF;AACA;AACA;AACA;AACA;AALEC,eAAA,CAtBW3T,OAAO,EAAA,MAAA,EAoCJ,SAAS,CAAA;AAAA2T,eAAA,CApCZ3T,OAAO,EAAA,sBAAA,EAsCY,CAAC,GAAGC,KAAK,CAAC2T,oBAAoB,EAAE,OAAO,CAAC,CAAA;AAAAD,eAAA,CAtC3D3T,OAAO,EAAA,aAAA,EAwCGP,oBAAoB,CAAA;AA6wC3CoU,aAAa,CAACC,QAAQ,CAAC9T,OAAO,CAAC;;;;"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"browserLines.min.mjs","sources":["../../../src/text/browserLines.ts"],"sourcesContent":["/**\n * Browser Line Break Extraction\n * \n * Captures exact line breaks as rendered by the browser to ensure\n * pixel-perfect consistency between DOM editing and canvas rendering.\n */\n\nexport interface BrowserLine {\n text: string;\n start: number; // character index in original text\n end: number; // character index in original text (exclusive)\n}\n\nexport interface BrowserLinesResult {\n lines: BrowserLine[];\n totalWidth: number;\n totalHeight: number;\n}\n\n/**\n * Segment text into graphemes safely using Intl.Segmenter or fallback\n */\nfunction segmentIntoGraphemes(text: string): string[] {\n if (typeof Intl !== 'undefined' && Intl.Segmenter) {\n const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n return Array.from(segmenter.segment(text), s => s.segment);\n }\n \n // Fallback: Use Array.from which handles basic Unicode correctly\n return Array.from(text);\n}\n\n/**\n * Extract line break information from a textarea by creating a mirror element\n * with identical computed styles and measuring grapheme positions.\n */\nexport function extractLinesFromDOM(textarea: HTMLTextAreaElement): BrowserLinesResult {\n const text = textarea.value;\n if (!text) {\n return {\n lines: [],\n totalWidth: 0,\n totalHeight: 0\n };\n }\n\n // Get computed styles from the textarea\n const computedStyle = getComputedStyle(textarea);\n const container = textarea.parentElement;\n if (!container) {\n throw new Error('Textarea must be in DOM to extract lines');\n }\n\n // Create mirror div with identical styling\n const mirror = document.createElement('div');\n mirror.style.position = 'absolute';\n mirror.style.left = '-9999px';\n mirror.style.top = '-9999px';\n mirror.style.visibility = 'hidden';\n mirror.style.pointerEvents = 'none';\n \n // Copy all relevant text styling\n const stylesToCopy = [\n 'fontSize',\n 'fontFamily',\n 'fontWeight',\n 'fontStyle',\n 'lineHeight',\n 'letterSpacing',\n 'wordSpacing',\n 'textAlign',\n 'textTransform',\n 'whiteSpace',\n 'overflowWrap',\n 'wordBreak',\n 'direction',\n 'unicodeBidi',\n 'width',\n 'height',\n 'maxWidth',\n 'maxHeight',\n 'minWidth',\n 'minHeight',\n 'padding',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n 'border',\n 'borderTop',\n 'borderRight',\n 'borderBottom',\n 'borderLeft',\n 'boxSizing',\n ];\n \n stylesToCopy.forEach(prop => {\n (mirror.style as any)[prop] = (computedStyle as any)[prop];\n });\n\n // Ensure the mirror has the same dimensions and overflow behavior as textarea\n mirror.style.overflow = 'hidden';\n mirror.style.resize = 'none';\n\n container.appendChild(mirror);\n\n try {\n // Segment text into graphemes\n const graphemes = segmentIntoGraphemes(text);\n const spans: HTMLSpanElement[] = [];\n \n // Create a span for each grapheme\n graphemes.forEach((grapheme, index) => {\n const span = document.createElement('span');\n span.textContent = grapheme;\n span.setAttribute('data-index', index.toString());\n mirror.appendChild(span);\n spans.push(span);\n });\n\n // Group spans by their offsetTop (line position)\n const lineGroups = new Map<number, { spans: HTMLSpanElement[], indices: number[] }>();\n \n spans.forEach((span, index) => {\n const top = span.offsetTop;\n if (!lineGroups.has(top)) {\n lineGroups.set(top, { spans: [], indices: [] });\n }\n lineGroups.get(top)!.spans.push(span);\n lineGroups.get(top)!.indices.push(index);\n });\n\n // Convert line groups to BrowserLine objects\n const lines: BrowserLine[] = [];\n const sortedTops = Array.from(lineGroups.keys()).sort((a, b) => a - b);\n \n sortedTops.forEach(top => {\n const group = lineGroups.get(top)!;\n const sortedIndices = group.indices.sort((a, b) => a - b);\n \n const start = sortedIndices[0];\n const end = sortedIndices[sortedIndices.length - 1] + 1;\n const lineText = graphemes.slice(start, end).join('');\n \n lines.push({\n text: lineText,\n start,\n end,\n });\n });\n\n // Calculate total dimensions\n const totalWidth = Math.max(...spans.map(span => span.offsetLeft + span.offsetWidth));\n const totalHeight = spans.length > 0 ? \n Math.max(...spans.map(span => span.offsetTop + span.offsetHeight)) : 0;\n\n return {\n lines,\n totalWidth,\n totalHeight\n };\n \n } finally {\n // Clean up mirror element\n container.removeChild(mirror);\n }\n}\n\n/**\n * Create a hash of layout-affecting properties to detect when browser lines are still valid\n */\nexport function createLayoutHash(target: any): string {\n const properties = [\n target.text,\n target.width,\n target.height,\n target.fontFamily,\n target.fontSize,\n target.fontWeight,\n target.fontStyle,\n target.lineHeight,\n target.charSpacing,\n target.textAlign,\n target.direction,\n ];\n \n return properties.map(p => String(p)).join('|');\n}\n\n/**\n * Check if stored browser lines are still valid for the current target state\n */\nexport function areBrowserLinesValid(target: any, storedHash?: string): boolean {\n if (!storedHash || !(target as any).__lastBrowserLines) {\n return false;\n }\n \n const currentHash = createLayoutHash(target);\n return currentHash === storedHash;\n}\n\n/**\n * Store browser lines on a target object with validity hash\n */\nexport function storeBrowserLines(\n target: any, \n lines: BrowserLine[], \n layoutHash?: string\n): void {\n (target as any).__lastBrowserLines = lines;\n (target as any).__lastBrowserLinesHash = layoutHash || createLayoutHash(target);\n}\n\n/**\n * Clear stored browser lines from a target object\n */\nexport function clearBrowserLines(target: any): void {\n delete (target as any).__lastBrowserLines;\n delete (target as any).__lastBrowserLinesHash;\n}\n\n/**\n * Get stored browser lines if they're still valid\n */\nexport function getBrowserLines(target: any): BrowserLine[] | null {\n const lines = (target as any).__lastBrowserLines;\n const hash = (target as any).__lastBrowserLinesHash;\n \n if (lines && areBrowserLinesValid(target, hash)) {\n return lines;\n }\n \n return null;\n}"],"names":["extractLinesFromDOM","textarea","text","value","lines","totalWidth","totalHeight","computedStyle","getComputedStyle","container","parentElement","Error","mirror","document","createElement","style","position","left","top","visibility","pointerEvents","forEach","prop","overflow","resize","appendChild","graphemes","Intl","Segmenter","segmenter","undefined","granularity","Array","from","segment","s","segmentIntoGraphemes","spans","grapheme","index","span","textContent","setAttribute","toString","push","lineGroups","Map","offsetTop","has","set","indices","get","keys","sort","a","b","sortedIndices","start","end","length","lineText","slice","join","Math","max","map","offsetLeft","offsetWidth","offsetHeight","removeChild","createLayoutHash","target","width","height","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","charSpacing","textAlign","direction","p","String","areBrowserLinesValid","storedHash","__lastBrowserLines","storeBrowserLines","layoutHash","__lastBrowserLinesHash","clearBrowserLines","getBrowserLines","hash"],"mappings":"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"}
1
+ {"version":3,"file":"browserLines.min.mjs","sources":["../../../src/text/browserLines.ts"],"sourcesContent":["/**\r\n * Browser Line Break Extraction\r\n * \r\n * Captures exact line breaks as rendered by the browser to ensure\r\n * pixel-perfect consistency between DOM editing and canvas rendering.\r\n */\r\n\r\nexport interface BrowserLine {\r\n text: string;\r\n start: number; // character index in original text\r\n end: number; // character index in original text (exclusive)\r\n}\r\n\r\nexport interface BrowserLinesResult {\r\n lines: BrowserLine[];\r\n totalWidth: number;\r\n totalHeight: number;\r\n}\r\n\r\n/**\r\n * Segment text into graphemes safely using Intl.Segmenter or fallback\r\n */\r\nfunction segmentIntoGraphemes(text: string): string[] {\r\n if (typeof Intl !== 'undefined' && Intl.Segmenter) {\r\n const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\r\n return Array.from(segmenter.segment(text), s => s.segment);\r\n }\r\n \r\n // Fallback: Use Array.from which handles basic Unicode correctly\r\n return Array.from(text);\r\n}\r\n\r\n/**\r\n * Extract line break information from a textarea by creating a mirror element\r\n * with identical computed styles and measuring grapheme positions.\r\n */\r\nexport function extractLinesFromDOM(textarea: HTMLTextAreaElement): BrowserLinesResult {\r\n const text = textarea.value;\r\n if (!text) {\r\n return {\r\n lines: [],\r\n totalWidth: 0,\r\n totalHeight: 0\r\n };\r\n }\r\n\r\n // Get computed styles from the textarea\r\n const computedStyle = getComputedStyle(textarea);\r\n const container = textarea.parentElement;\r\n if (!container) {\r\n throw new Error('Textarea must be in DOM to extract lines');\r\n }\r\n\r\n // Create mirror div with identical styling\r\n const mirror = document.createElement('div');\r\n mirror.style.position = 'absolute';\r\n mirror.style.left = '-9999px';\r\n mirror.style.top = '-9999px';\r\n mirror.style.visibility = 'hidden';\r\n mirror.style.pointerEvents = 'none';\r\n \r\n // Copy all relevant text styling\r\n const stylesToCopy = [\r\n 'fontSize',\r\n 'fontFamily',\r\n 'fontWeight',\r\n 'fontStyle',\r\n 'lineHeight',\r\n 'letterSpacing',\r\n 'wordSpacing',\r\n 'textAlign',\r\n 'textTransform',\r\n 'whiteSpace',\r\n 'overflowWrap',\r\n 'wordBreak',\r\n 'direction',\r\n 'unicodeBidi',\r\n 'width',\r\n 'height',\r\n 'maxWidth',\r\n 'maxHeight',\r\n 'minWidth',\r\n 'minHeight',\r\n 'padding',\r\n 'paddingTop',\r\n 'paddingRight',\r\n 'paddingBottom',\r\n 'paddingLeft',\r\n 'border',\r\n 'borderTop',\r\n 'borderRight',\r\n 'borderBottom',\r\n 'borderLeft',\r\n 'boxSizing',\r\n ];\r\n \r\n stylesToCopy.forEach(prop => {\r\n (mirror.style as any)[prop] = (computedStyle as any)[prop];\r\n });\r\n\r\n // Ensure the mirror has the same dimensions and overflow behavior as textarea\r\n mirror.style.overflow = 'hidden';\r\n mirror.style.resize = 'none';\r\n\r\n container.appendChild(mirror);\r\n\r\n try {\r\n // Segment text into graphemes\r\n const graphemes = segmentIntoGraphemes(text);\r\n const spans: HTMLSpanElement[] = [];\r\n \r\n // Create a span for each grapheme\r\n graphemes.forEach((grapheme, index) => {\r\n const span = document.createElement('span');\r\n span.textContent = grapheme;\r\n span.setAttribute('data-index', index.toString());\r\n mirror.appendChild(span);\r\n spans.push(span);\r\n });\r\n\r\n // Group spans by their offsetTop (line position)\r\n const lineGroups = new Map<number, { spans: HTMLSpanElement[], indices: number[] }>();\r\n \r\n spans.forEach((span, index) => {\r\n const top = span.offsetTop;\r\n if (!lineGroups.has(top)) {\r\n lineGroups.set(top, { spans: [], indices: [] });\r\n }\r\n lineGroups.get(top)!.spans.push(span);\r\n lineGroups.get(top)!.indices.push(index);\r\n });\r\n\r\n // Convert line groups to BrowserLine objects\r\n const lines: BrowserLine[] = [];\r\n const sortedTops = Array.from(lineGroups.keys()).sort((a, b) => a - b);\r\n \r\n sortedTops.forEach(top => {\r\n const group = lineGroups.get(top)!;\r\n const sortedIndices = group.indices.sort((a, b) => a - b);\r\n \r\n const start = sortedIndices[0];\r\n const end = sortedIndices[sortedIndices.length - 1] + 1;\r\n const lineText = graphemes.slice(start, end).join('');\r\n \r\n lines.push({\r\n text: lineText,\r\n start,\r\n end,\r\n });\r\n });\r\n\r\n // Calculate total dimensions\r\n const totalWidth = Math.max(...spans.map(span => span.offsetLeft + span.offsetWidth));\r\n const totalHeight = spans.length > 0 ? \r\n Math.max(...spans.map(span => span.offsetTop + span.offsetHeight)) : 0;\r\n\r\n return {\r\n lines,\r\n totalWidth,\r\n totalHeight\r\n };\r\n \r\n } finally {\r\n // Clean up mirror element\r\n container.removeChild(mirror);\r\n }\r\n}\r\n\r\n/**\r\n * Create a hash of layout-affecting properties to detect when browser lines are still valid\r\n */\r\nexport function createLayoutHash(target: any): string {\r\n const properties = [\r\n target.text,\r\n target.width,\r\n target.height,\r\n target.fontFamily,\r\n target.fontSize,\r\n target.fontWeight,\r\n target.fontStyle,\r\n target.lineHeight,\r\n target.charSpacing,\r\n target.textAlign,\r\n target.direction,\r\n ];\r\n \r\n return properties.map(p => String(p)).join('|');\r\n}\r\n\r\n/**\r\n * Check if stored browser lines are still valid for the current target state\r\n */\r\nexport function areBrowserLinesValid(target: any, storedHash?: string): boolean {\r\n if (!storedHash || !(target as any).__lastBrowserLines) {\r\n return false;\r\n }\r\n \r\n const currentHash = createLayoutHash(target);\r\n return currentHash === storedHash;\r\n}\r\n\r\n/**\r\n * Store browser lines on a target object with validity hash\r\n */\r\nexport function storeBrowserLines(\r\n target: any, \r\n lines: BrowserLine[], \r\n layoutHash?: string\r\n): void {\r\n (target as any).__lastBrowserLines = lines;\r\n (target as any).__lastBrowserLinesHash = layoutHash || createLayoutHash(target);\r\n}\r\n\r\n/**\r\n * Clear stored browser lines from a target object\r\n */\r\nexport function clearBrowserLines(target: any): void {\r\n delete (target as any).__lastBrowserLines;\r\n delete (target as any).__lastBrowserLinesHash;\r\n}\r\n\r\n/**\r\n * Get stored browser lines if they're still valid\r\n */\r\nexport function getBrowserLines(target: any): BrowserLine[] | null {\r\n const lines = (target as any).__lastBrowserLines;\r\n const hash = (target as any).__lastBrowserLinesHash;\r\n \r\n if (lines && areBrowserLinesValid(target, hash)) {\r\n return lines;\r\n }\r\n \r\n return null;\r\n}"],"names":["extractLinesFromDOM","textarea","text","value","lines","totalWidth","totalHeight","computedStyle","getComputedStyle","container","parentElement","Error","mirror","document","createElement","style","position","left","top","visibility","pointerEvents","forEach","prop","overflow","resize","appendChild","graphemes","Intl","Segmenter","segmenter","undefined","granularity","Array","from","segment","s","segmentIntoGraphemes","spans","grapheme","index","span","textContent","setAttribute","toString","push","lineGroups","Map","offsetTop","has","set","indices","get","keys","sort","a","b","sortedIndices","start","end","length","lineText","slice","join","Math","max","map","offsetLeft","offsetWidth","offsetHeight","removeChild","createLayoutHash","target","width","height","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","charSpacing","textAlign","direction","p","String","areBrowserLinesValid","storedHash","__lastBrowserLines","storeBrowserLines","layoutHash","__lastBrowserLinesHash","clearBrowserLines","getBrowserLines","hash"],"mappings":"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"}