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

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 (2520) 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/.prettierignore +0 -0
  8. package/.prettierrc +0 -0
  9. package/0 +0 -0
  10. package/CHANGELOG.md +0 -0
  11. package/CODE_OF_CONDUCT.md +0 -0
  12. package/CONTRIBUTING.md +0 -0
  13. package/LICENSE +0 -0
  14. package/OVERLAY_EDITOR_MIGRATION.md +0 -0
  15. package/README.md +0 -0
  16. package/SECURITY.md +0 -0
  17. package/debug/konva/CHANGELOG.md +0 -0
  18. package/debug/konva/LICENSE +0 -0
  19. package/debug/konva/README.md +0 -0
  20. package/debug/konva/gulpfile.mjs +0 -0
  21. package/debug/konva/package.json +0 -0
  22. package/debug/konva/release.sh +0 -0
  23. package/debug/konva/resources/doc-includes/ContainerParams.txt +0 -0
  24. package/debug/konva/resources/doc-includes/NodeParams.txt +0 -0
  25. package/debug/konva/resources/doc-includes/ShapeParams.txt +0 -0
  26. package/debug/konva/resources/jsdoc.conf.json +0 -0
  27. package/debug/konva/rollup.config.mjs +0 -0
  28. package/debug/konva/src/Animation.ts +0 -0
  29. package/debug/konva/src/BezierFunctions.ts +0 -0
  30. package/debug/konva/src/Canvas.ts +0 -0
  31. package/debug/konva/src/Container.ts +0 -0
  32. package/debug/konva/src/Context.ts +0 -0
  33. package/debug/konva/src/Core.ts +0 -0
  34. package/debug/konva/src/DragAndDrop.ts +0 -0
  35. package/debug/konva/src/Factory.ts +0 -0
  36. package/debug/konva/src/FastLayer.ts +0 -0
  37. package/debug/konva/src/Global.ts +0 -0
  38. package/debug/konva/src/Group.ts +0 -0
  39. package/debug/konva/src/Layer.ts +0 -0
  40. package/debug/konva/src/Node.ts +0 -0
  41. package/debug/konva/src/PointerEvents.ts +0 -0
  42. package/debug/konva/src/Shape.ts +0 -0
  43. package/debug/konva/src/Stage.ts +0 -0
  44. package/debug/konva/src/Tween.ts +0 -0
  45. package/debug/konva/src/Util.ts +0 -0
  46. package/debug/konva/src/Validators.ts +0 -0
  47. package/debug/konva/src/_CoreInternals.ts +0 -0
  48. package/debug/konva/src/_FullInternals.ts +0 -0
  49. package/debug/konva/src/canvas-backend.ts +0 -0
  50. package/debug/konva/src/filters/Blur.ts +0 -0
  51. package/debug/konva/src/filters/Brighten.ts +0 -0
  52. package/debug/konva/src/filters/Brightness.ts +0 -0
  53. package/debug/konva/src/filters/Contrast.ts +0 -0
  54. package/debug/konva/src/filters/Emboss.ts +0 -0
  55. package/debug/konva/src/filters/Enhance.ts +0 -0
  56. package/debug/konva/src/filters/Grayscale.ts +0 -0
  57. package/debug/konva/src/filters/HSL.ts +0 -0
  58. package/debug/konva/src/filters/HSV.ts +0 -0
  59. package/debug/konva/src/filters/Invert.ts +0 -0
  60. package/debug/konva/src/filters/Kaleidoscope.ts +0 -0
  61. package/debug/konva/src/filters/Mask.ts +0 -0
  62. package/debug/konva/src/filters/Noise.ts +0 -0
  63. package/debug/konva/src/filters/Pixelate.ts +0 -0
  64. package/debug/konva/src/filters/Posterize.ts +0 -0
  65. package/debug/konva/src/filters/RGB.ts +0 -0
  66. package/debug/konva/src/filters/RGBA.ts +0 -0
  67. package/debug/konva/src/filters/Sepia.ts +0 -0
  68. package/debug/konva/src/filters/Solarize.ts +0 -0
  69. package/debug/konva/src/filters/Threshold.ts +0 -0
  70. package/debug/konva/src/index.ts +0 -0
  71. package/debug/konva/src/shapes/Arc.ts +0 -0
  72. package/debug/konva/src/shapes/Arrow.ts +0 -0
  73. package/debug/konva/src/shapes/Circle.ts +0 -0
  74. package/debug/konva/src/shapes/Ellipse.ts +0 -0
  75. package/debug/konva/src/shapes/Image.ts +0 -0
  76. package/debug/konva/src/shapes/Label.ts +0 -0
  77. package/debug/konva/src/shapes/Line.ts +0 -0
  78. package/debug/konva/src/shapes/Path.ts +0 -0
  79. package/debug/konva/src/shapes/Rect.ts +0 -0
  80. package/debug/konva/src/shapes/RegularPolygon.ts +0 -0
  81. package/debug/konva/src/shapes/Ring.ts +0 -0
  82. package/debug/konva/src/shapes/Sprite.ts +0 -0
  83. package/debug/konva/src/shapes/Star.ts +0 -0
  84. package/debug/konva/src/shapes/Text.ts +0 -0
  85. package/debug/konva/src/shapes/TextPath.ts +0 -0
  86. package/debug/konva/src/shapes/Transformer.ts +0 -0
  87. package/debug/konva/src/shapes/Wedge.ts +0 -0
  88. package/debug/konva/src/skia-backend.ts +0 -0
  89. package/debug/konva/src/types.ts +0 -0
  90. package/debug/konva/tsconfig.json +0 -0
  91. package/debug/konva/tsconfig.test.json +0 -0
  92. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs +0 -0
  93. package/dist/_virtual/_rollupPluginBabelHelpers.min.mjs.map +0 -0
  94. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  95. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -0
  96. package/dist/extensions/aligning_guidelines/constant.d.ts +0 -0
  97. package/dist/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  98. package/dist/extensions/aligning_guidelines/index.d.ts +0 -0
  99. package/dist/extensions/aligning_guidelines/index.d.ts.map +0 -0
  100. package/dist/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  101. package/dist/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  102. package/dist/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  103. package/dist/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  104. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  105. package/dist/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  106. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  107. package/dist/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  108. package/dist/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  109. package/dist/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  110. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  111. package/dist/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  112. package/dist/extensions/data_updaters/gradient/index.d.ts +0 -0
  113. package/dist/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  114. package/dist/extensions/data_updaters/origins/index.d.ts +0 -0
  115. package/dist/extensions/data_updaters/origins/index.d.ts.map +0 -0
  116. package/dist/extensions/index.d.ts +0 -0
  117. package/dist/extensions/index.d.ts.map +0 -0
  118. package/dist/fabric.d.ts +0 -0
  119. package/dist/fabric.d.ts.map +0 -0
  120. package/dist/fabric.min.mjs +0 -0
  121. package/dist/fabric.min.mjs.map +0 -0
  122. package/dist/fabric.mjs +0 -0
  123. package/dist/fabric.mjs.map +0 -0
  124. package/dist/index.d.ts +0 -0
  125. package/dist/index.d.ts.map +0 -0
  126. package/dist/index.js +2873 -1252
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.min.js +1 -1
  129. package/dist/index.min.js.map +1 -1
  130. package/dist/index.min.mjs +1 -1
  131. package/dist/index.min.mjs.map +1 -1
  132. package/dist/index.mjs +2873 -1252
  133. package/dist/index.mjs.map +1 -1
  134. package/dist/index.node.cjs +2873 -1252
  135. package/dist/index.node.cjs.map +1 -1
  136. package/dist/index.node.d.ts +0 -0
  137. package/dist/index.node.d.ts.map +0 -0
  138. package/dist/index.node.mjs +2873 -1252
  139. package/dist/index.node.mjs.map +1 -1
  140. package/dist/package.json.min.mjs +1 -1
  141. package/dist/package.json.min.mjs.map +0 -0
  142. package/dist/package.json.mjs +1 -1
  143. package/dist/package.json.mjs.map +0 -0
  144. package/dist/src/ClassRegistry.d.ts +0 -0
  145. package/dist/src/ClassRegistry.d.ts.map +0 -0
  146. package/dist/src/ClassRegistry.min.mjs +0 -0
  147. package/dist/src/ClassRegistry.min.mjs.map +0 -0
  148. package/dist/src/ClassRegistry.mjs +0 -0
  149. package/dist/src/ClassRegistry.mjs.map +0 -0
  150. package/dist/src/Collection.d.ts +0 -0
  151. package/dist/src/Collection.d.ts.map +0 -0
  152. package/dist/src/Collection.min.mjs +0 -0
  153. package/dist/src/Collection.min.mjs.map +0 -0
  154. package/dist/src/Collection.mjs +0 -0
  155. package/dist/src/Collection.mjs.map +0 -0
  156. package/dist/src/CommonMethods.d.ts +0 -0
  157. package/dist/src/CommonMethods.d.ts.map +0 -0
  158. package/dist/src/CommonMethods.min.mjs +0 -0
  159. package/dist/src/CommonMethods.min.mjs.map +0 -0
  160. package/dist/src/CommonMethods.mjs +0 -0
  161. package/dist/src/CommonMethods.mjs.map +0 -0
  162. package/dist/src/EventTypeDefs.d.ts +0 -0
  163. package/dist/src/EventTypeDefs.d.ts.map +0 -0
  164. package/dist/src/Intersection.d.ts +0 -0
  165. package/dist/src/Intersection.d.ts.map +0 -0
  166. package/dist/src/Intersection.min.mjs +0 -0
  167. package/dist/src/Intersection.min.mjs.map +0 -0
  168. package/dist/src/Intersection.mjs +0 -0
  169. package/dist/src/Intersection.mjs.map +0 -0
  170. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  171. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  172. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs +0 -0
  173. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.min.mjs.map +0 -0
  174. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs +0 -0
  175. package/dist/src/LayoutManager/ActiveSelectionLayoutManager.mjs.map +0 -0
  176. package/dist/src/LayoutManager/LayoutManager.d.ts +0 -0
  177. package/dist/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  178. package/dist/src/LayoutManager/LayoutManager.min.mjs +0 -0
  179. package/dist/src/LayoutManager/LayoutManager.min.mjs.map +0 -0
  180. package/dist/src/LayoutManager/LayoutManager.mjs +0 -0
  181. package/dist/src/LayoutManager/LayoutManager.mjs.map +0 -0
  182. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  183. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  184. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs +0 -0
  185. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.min.mjs.map +0 -0
  186. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs +0 -0
  187. package/dist/src/LayoutManager/LayoutStrategies/ClipPathLayout.mjs.map +0 -0
  188. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  189. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  190. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs +0 -0
  191. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.min.mjs.map +0 -0
  192. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs +0 -0
  193. package/dist/src/LayoutManager/LayoutStrategies/FitContentLayout.mjs.map +0 -0
  194. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  195. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  196. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs +0 -0
  197. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.min.mjs.map +0 -0
  198. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs +0 -0
  199. package/dist/src/LayoutManager/LayoutStrategies/FixedLayout.mjs.map +0 -0
  200. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  201. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  202. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs +0 -0
  203. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.min.mjs.map +0 -0
  204. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs +0 -0
  205. package/dist/src/LayoutManager/LayoutStrategies/LayoutStrategy.mjs.map +0 -0
  206. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  207. package/dist/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  208. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs +0 -0
  209. package/dist/src/LayoutManager/LayoutStrategies/utils.min.mjs.map +0 -0
  210. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs +0 -0
  211. package/dist/src/LayoutManager/LayoutStrategies/utils.mjs.map +0 -0
  212. package/dist/src/LayoutManager/constants.d.ts +0 -0
  213. package/dist/src/LayoutManager/constants.d.ts.map +0 -0
  214. package/dist/src/LayoutManager/constants.min.mjs +0 -0
  215. package/dist/src/LayoutManager/constants.min.mjs.map +0 -0
  216. package/dist/src/LayoutManager/constants.mjs +0 -0
  217. package/dist/src/LayoutManager/constants.mjs.map +0 -0
  218. package/dist/src/LayoutManager/index.d.ts +0 -0
  219. package/dist/src/LayoutManager/index.d.ts.map +0 -0
  220. package/dist/src/LayoutManager/types.d.ts +0 -0
  221. package/dist/src/LayoutManager/types.d.ts.map +0 -0
  222. package/dist/src/Observable.d.ts +0 -0
  223. package/dist/src/Observable.d.ts.map +0 -0
  224. package/dist/src/Observable.min.mjs +0 -0
  225. package/dist/src/Observable.min.mjs.map +0 -0
  226. package/dist/src/Observable.mjs +0 -0
  227. package/dist/src/Observable.mjs.map +0 -0
  228. package/dist/src/Pattern/Pattern.d.ts +0 -0
  229. package/dist/src/Pattern/Pattern.d.ts.map +0 -0
  230. package/dist/src/Pattern/Pattern.min.mjs +0 -0
  231. package/dist/src/Pattern/Pattern.min.mjs.map +0 -0
  232. package/dist/src/Pattern/Pattern.mjs +0 -0
  233. package/dist/src/Pattern/Pattern.mjs.map +0 -0
  234. package/dist/src/Pattern/index.d.ts +0 -0
  235. package/dist/src/Pattern/index.d.ts.map +0 -0
  236. package/dist/src/Pattern/types.d.ts +0 -0
  237. package/dist/src/Pattern/types.d.ts.map +0 -0
  238. package/dist/src/Point.d.ts +0 -0
  239. package/dist/src/Point.d.ts.map +0 -0
  240. package/dist/src/Point.min.mjs +0 -0
  241. package/dist/src/Point.min.mjs.map +0 -0
  242. package/dist/src/Point.mjs +0 -0
  243. package/dist/src/Point.mjs.map +0 -0
  244. package/dist/src/Shadow.d.ts +0 -0
  245. package/dist/src/Shadow.d.ts.map +0 -0
  246. package/dist/src/Shadow.min.mjs +0 -0
  247. package/dist/src/Shadow.min.mjs.map +0 -0
  248. package/dist/src/Shadow.mjs +0 -0
  249. package/dist/src/Shadow.mjs.map +0 -0
  250. package/dist/src/brushes/BaseBrush.d.ts +0 -0
  251. package/dist/src/brushes/BaseBrush.d.ts.map +0 -0
  252. package/dist/src/brushes/BaseBrush.min.mjs +0 -0
  253. package/dist/src/brushes/BaseBrush.min.mjs.map +0 -0
  254. package/dist/src/brushes/BaseBrush.mjs +0 -0
  255. package/dist/src/brushes/BaseBrush.mjs.map +0 -0
  256. package/dist/src/brushes/CircleBrush.d.ts +0 -0
  257. package/dist/src/brushes/CircleBrush.d.ts.map +0 -0
  258. package/dist/src/brushes/CircleBrush.min.mjs +0 -0
  259. package/dist/src/brushes/CircleBrush.min.mjs.map +0 -0
  260. package/dist/src/brushes/CircleBrush.mjs +0 -0
  261. package/dist/src/brushes/CircleBrush.mjs.map +0 -0
  262. package/dist/src/brushes/PatternBrush.d.ts +0 -0
  263. package/dist/src/brushes/PatternBrush.d.ts.map +0 -0
  264. package/dist/src/brushes/PatternBrush.min.mjs +0 -0
  265. package/dist/src/brushes/PatternBrush.min.mjs.map +0 -0
  266. package/dist/src/brushes/PatternBrush.mjs +0 -0
  267. package/dist/src/brushes/PatternBrush.mjs.map +0 -0
  268. package/dist/src/brushes/PencilBrush.d.ts +0 -0
  269. package/dist/src/brushes/PencilBrush.d.ts.map +0 -0
  270. package/dist/src/brushes/PencilBrush.min.mjs +0 -0
  271. package/dist/src/brushes/PencilBrush.min.mjs.map +0 -0
  272. package/dist/src/brushes/PencilBrush.mjs +0 -0
  273. package/dist/src/brushes/PencilBrush.mjs.map +0 -0
  274. package/dist/src/brushes/SprayBrush.d.ts +0 -0
  275. package/dist/src/brushes/SprayBrush.d.ts.map +0 -0
  276. package/dist/src/brushes/SprayBrush.min.mjs +0 -0
  277. package/dist/src/brushes/SprayBrush.min.mjs.map +0 -0
  278. package/dist/src/brushes/SprayBrush.mjs +0 -0
  279. package/dist/src/brushes/SprayBrush.mjs.map +0 -0
  280. package/dist/src/brushes/typedefs.d.ts +0 -0
  281. package/dist/src/brushes/typedefs.d.ts.map +0 -0
  282. package/dist/src/cache.d.ts +0 -0
  283. package/dist/src/cache.d.ts.map +0 -0
  284. package/dist/src/cache.min.mjs +0 -0
  285. package/dist/src/cache.min.mjs.map +0 -0
  286. package/dist/src/cache.mjs +0 -0
  287. package/dist/src/cache.mjs.map +0 -0
  288. package/dist/src/canvas/Canvas.d.ts +0 -0
  289. package/dist/src/canvas/Canvas.d.ts.map +0 -0
  290. package/dist/src/canvas/Canvas.min.mjs +0 -0
  291. package/dist/src/canvas/Canvas.min.mjs.map +0 -0
  292. package/dist/src/canvas/Canvas.mjs +0 -0
  293. package/dist/src/canvas/Canvas.mjs.map +0 -0
  294. package/dist/src/canvas/CanvasOptions.d.ts +0 -0
  295. package/dist/src/canvas/CanvasOptions.d.ts.map +0 -0
  296. package/dist/src/canvas/CanvasOptions.min.mjs +0 -0
  297. package/dist/src/canvas/CanvasOptions.min.mjs.map +0 -0
  298. package/dist/src/canvas/CanvasOptions.mjs +0 -0
  299. package/dist/src/canvas/CanvasOptions.mjs.map +0 -0
  300. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  301. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  302. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs +0 -0
  303. package/dist/src/canvas/DOMManagers/CanvasDOMManager.min.mjs.map +0 -0
  304. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs +0 -0
  305. package/dist/src/canvas/DOMManagers/CanvasDOMManager.mjs.map +0 -0
  306. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  307. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  308. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs +0 -0
  309. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.min.mjs.map +0 -0
  310. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs +0 -0
  311. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.mjs.map +0 -0
  312. package/dist/src/canvas/DOMManagers/util.d.ts +0 -0
  313. package/dist/src/canvas/DOMManagers/util.d.ts.map +0 -0
  314. package/dist/src/canvas/DOMManagers/util.min.mjs +0 -0
  315. package/dist/src/canvas/DOMManagers/util.min.mjs.map +0 -0
  316. package/dist/src/canvas/DOMManagers/util.mjs +0 -0
  317. package/dist/src/canvas/DOMManagers/util.mjs.map +0 -0
  318. package/dist/src/canvas/SelectableCanvas.d.ts +0 -0
  319. package/dist/src/canvas/SelectableCanvas.d.ts.map +0 -0
  320. package/dist/src/canvas/SelectableCanvas.min.mjs +0 -0
  321. package/dist/src/canvas/SelectableCanvas.min.mjs.map +0 -0
  322. package/dist/src/canvas/SelectableCanvas.mjs +0 -0
  323. package/dist/src/canvas/SelectableCanvas.mjs.map +0 -0
  324. package/dist/src/canvas/StaticCanvas.d.ts +0 -0
  325. package/dist/src/canvas/StaticCanvas.d.ts.map +0 -0
  326. package/dist/src/canvas/StaticCanvas.min.mjs +0 -0
  327. package/dist/src/canvas/StaticCanvas.min.mjs.map +0 -0
  328. package/dist/src/canvas/StaticCanvas.mjs +0 -0
  329. package/dist/src/canvas/StaticCanvas.mjs.map +0 -0
  330. package/dist/src/canvas/StaticCanvasOptions.d.ts +0 -0
  331. package/dist/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  332. package/dist/src/canvas/StaticCanvasOptions.min.mjs +0 -0
  333. package/dist/src/canvas/StaticCanvasOptions.min.mjs.map +0 -0
  334. package/dist/src/canvas/StaticCanvasOptions.mjs +0 -0
  335. package/dist/src/canvas/StaticCanvasOptions.mjs.map +0 -0
  336. package/dist/src/canvas/TextEditingManager.d.ts +0 -0
  337. package/dist/src/canvas/TextEditingManager.d.ts.map +0 -0
  338. package/dist/src/canvas/TextEditingManager.min.mjs +0 -0
  339. package/dist/src/canvas/TextEditingManager.min.mjs.map +0 -0
  340. package/dist/src/canvas/TextEditingManager.mjs +0 -0
  341. package/dist/src/canvas/TextEditingManager.mjs.map +0 -0
  342. package/dist/src/canvas/canvas_gestures.mixin.d.ts +0 -0
  343. package/dist/src/canvas/canvas_gestures.mixin.d.ts.map +0 -0
  344. package/dist/src/color/Color.d.ts +0 -0
  345. package/dist/src/color/Color.d.ts.map +0 -0
  346. package/dist/src/color/Color.min.mjs +0 -0
  347. package/dist/src/color/Color.min.mjs.map +0 -0
  348. package/dist/src/color/Color.mjs +0 -0
  349. package/dist/src/color/Color.mjs.map +0 -0
  350. package/dist/src/color/color_map.d.ts +0 -0
  351. package/dist/src/color/color_map.d.ts.map +0 -0
  352. package/dist/src/color/color_map.min.mjs +0 -0
  353. package/dist/src/color/color_map.min.mjs.map +0 -0
  354. package/dist/src/color/color_map.mjs +0 -0
  355. package/dist/src/color/color_map.mjs.map +0 -0
  356. package/dist/src/color/constants.d.ts +0 -0
  357. package/dist/src/color/constants.d.ts.map +0 -0
  358. package/dist/src/color/constants.min.mjs +0 -0
  359. package/dist/src/color/constants.min.mjs.map +0 -0
  360. package/dist/src/color/constants.mjs +0 -0
  361. package/dist/src/color/constants.mjs.map +0 -0
  362. package/dist/src/color/typedefs.d.ts +0 -0
  363. package/dist/src/color/typedefs.d.ts.map +0 -0
  364. package/dist/src/color/util.d.ts +0 -0
  365. package/dist/src/color/util.d.ts.map +0 -0
  366. package/dist/src/color/util.min.mjs +0 -0
  367. package/dist/src/color/util.min.mjs.map +0 -0
  368. package/dist/src/color/util.mjs +0 -0
  369. package/dist/src/color/util.mjs.map +0 -0
  370. package/dist/src/config.d.ts +0 -0
  371. package/dist/src/config.d.ts.map +0 -0
  372. package/dist/src/config.min.mjs +0 -0
  373. package/dist/src/config.min.mjs.map +0 -0
  374. package/dist/src/config.mjs +0 -0
  375. package/dist/src/config.mjs.map +0 -0
  376. package/dist/src/constants.d.ts +0 -0
  377. package/dist/src/constants.d.ts.map +0 -0
  378. package/dist/src/constants.min.mjs +0 -0
  379. package/dist/src/constants.min.mjs.map +0 -0
  380. package/dist/src/constants.mjs +0 -0
  381. package/dist/src/constants.mjs.map +0 -0
  382. package/dist/src/controls/Control.d.ts +0 -0
  383. package/dist/src/controls/Control.d.ts.map +0 -0
  384. package/dist/src/controls/Control.min.mjs +0 -0
  385. package/dist/src/controls/Control.min.mjs.map +0 -0
  386. package/dist/src/controls/Control.mjs +0 -0
  387. package/dist/src/controls/Control.mjs.map +0 -0
  388. package/dist/src/controls/changeHeight.d.ts +0 -0
  389. package/dist/src/controls/changeHeight.d.ts.map +0 -0
  390. package/dist/src/controls/changeHeight.min.mjs +2 -0
  391. package/dist/src/controls/changeHeight.min.mjs.map +1 -0
  392. package/dist/src/controls/changeHeight.mjs +36 -0
  393. package/dist/src/controls/changeHeight.mjs.map +1 -0
  394. package/dist/src/controls/changeWidth.d.ts +0 -0
  395. package/dist/src/controls/changeWidth.d.ts.map +0 -0
  396. package/dist/src/controls/changeWidth.min.mjs +0 -0
  397. package/dist/src/controls/changeWidth.min.mjs.map +0 -0
  398. package/dist/src/controls/changeWidth.mjs +0 -0
  399. package/dist/src/controls/changeWidth.mjs.map +0 -0
  400. package/dist/src/controls/commonControls.d.ts +0 -0
  401. package/dist/src/controls/commonControls.d.ts.map +0 -0
  402. package/dist/src/controls/commonControls.min.mjs +0 -0
  403. package/dist/src/controls/commonControls.min.mjs.map +0 -0
  404. package/dist/src/controls/commonControls.mjs +0 -0
  405. package/dist/src/controls/commonControls.mjs.map +0 -0
  406. package/dist/src/controls/controlRendering.d.ts +0 -0
  407. package/dist/src/controls/controlRendering.d.ts.map +0 -0
  408. package/dist/src/controls/controlRendering.min.mjs +0 -0
  409. package/dist/src/controls/controlRendering.min.mjs.map +0 -0
  410. package/dist/src/controls/controlRendering.mjs +0 -0
  411. package/dist/src/controls/controlRendering.mjs.map +0 -0
  412. package/dist/src/controls/drag.d.ts +0 -0
  413. package/dist/src/controls/drag.d.ts.map +0 -0
  414. package/dist/src/controls/drag.min.mjs +0 -0
  415. package/dist/src/controls/drag.min.mjs.map +0 -0
  416. package/dist/src/controls/drag.mjs +0 -0
  417. package/dist/src/controls/drag.mjs.map +0 -0
  418. package/dist/src/controls/fireEvent.d.ts +0 -0
  419. package/dist/src/controls/fireEvent.d.ts.map +0 -0
  420. package/dist/src/controls/fireEvent.min.mjs +0 -0
  421. package/dist/src/controls/fireEvent.min.mjs.map +0 -0
  422. package/dist/src/controls/fireEvent.mjs +0 -0
  423. package/dist/src/controls/fireEvent.mjs.map +0 -0
  424. package/dist/src/controls/index.d.ts +0 -0
  425. package/dist/src/controls/index.d.ts.map +0 -0
  426. package/dist/src/controls/index.min.mjs +0 -0
  427. package/dist/src/controls/index.min.mjs.map +0 -0
  428. package/dist/src/controls/index.mjs +0 -0
  429. package/dist/src/controls/index.mjs.map +0 -0
  430. package/dist/src/controls/pathControl.d.ts +0 -0
  431. package/dist/src/controls/pathControl.d.ts.map +0 -0
  432. package/dist/src/controls/pathControl.min.mjs +0 -0
  433. package/dist/src/controls/pathControl.min.mjs.map +0 -0
  434. package/dist/src/controls/pathControl.mjs +0 -0
  435. package/dist/src/controls/pathControl.mjs.map +0 -0
  436. package/dist/src/controls/polyControl.d.ts +0 -0
  437. package/dist/src/controls/polyControl.d.ts.map +0 -0
  438. package/dist/src/controls/polyControl.min.mjs +0 -0
  439. package/dist/src/controls/polyControl.min.mjs.map +0 -0
  440. package/dist/src/controls/polyControl.mjs +0 -0
  441. package/dist/src/controls/polyControl.mjs.map +0 -0
  442. package/dist/src/controls/rotate.d.ts +0 -0
  443. package/dist/src/controls/rotate.d.ts.map +0 -0
  444. package/dist/src/controls/rotate.min.mjs +0 -0
  445. package/dist/src/controls/rotate.min.mjs.map +0 -0
  446. package/dist/src/controls/rotate.mjs +0 -0
  447. package/dist/src/controls/rotate.mjs.map +0 -0
  448. package/dist/src/controls/scale.d.ts +0 -0
  449. package/dist/src/controls/scale.d.ts.map +0 -0
  450. package/dist/src/controls/scale.min.mjs +0 -0
  451. package/dist/src/controls/scale.min.mjs.map +0 -0
  452. package/dist/src/controls/scale.mjs +0 -0
  453. package/dist/src/controls/scale.mjs.map +0 -0
  454. package/dist/src/controls/scaleSkew.d.ts +0 -0
  455. package/dist/src/controls/scaleSkew.d.ts.map +0 -0
  456. package/dist/src/controls/scaleSkew.min.mjs +0 -0
  457. package/dist/src/controls/scaleSkew.min.mjs.map +0 -0
  458. package/dist/src/controls/scaleSkew.mjs +0 -0
  459. package/dist/src/controls/scaleSkew.mjs.map +0 -0
  460. package/dist/src/controls/skew.d.ts +0 -0
  461. package/dist/src/controls/skew.d.ts.map +0 -0
  462. package/dist/src/controls/skew.min.mjs +0 -0
  463. package/dist/src/controls/skew.min.mjs.map +0 -0
  464. package/dist/src/controls/skew.mjs +0 -0
  465. package/dist/src/controls/skew.mjs.map +0 -0
  466. package/dist/src/controls/util.d.ts +0 -0
  467. package/dist/src/controls/util.d.ts.map +0 -0
  468. package/dist/src/controls/util.min.mjs +0 -0
  469. package/dist/src/controls/util.min.mjs.map +0 -0
  470. package/dist/src/controls/util.mjs +0 -0
  471. package/dist/src/controls/util.mjs.map +0 -0
  472. package/dist/src/controls/wrapWithFireEvent.d.ts +0 -0
  473. package/dist/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  474. package/dist/src/controls/wrapWithFireEvent.min.mjs +0 -0
  475. package/dist/src/controls/wrapWithFireEvent.min.mjs.map +0 -0
  476. package/dist/src/controls/wrapWithFireEvent.mjs +0 -0
  477. package/dist/src/controls/wrapWithFireEvent.mjs.map +0 -0
  478. package/dist/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  479. package/dist/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  480. package/dist/src/controls/wrapWithFixedAnchor.min.mjs +0 -0
  481. package/dist/src/controls/wrapWithFixedAnchor.min.mjs.map +0 -0
  482. package/dist/src/controls/wrapWithFixedAnchor.mjs +0 -0
  483. package/dist/src/controls/wrapWithFixedAnchor.mjs.map +0 -0
  484. package/dist/src/env/browser.d.ts +0 -0
  485. package/dist/src/env/browser.d.ts.map +0 -0
  486. package/dist/src/env/browser.min.mjs +0 -0
  487. package/dist/src/env/browser.min.mjs.map +0 -0
  488. package/dist/src/env/browser.mjs +0 -0
  489. package/dist/src/env/browser.mjs.map +0 -0
  490. package/dist/src/env/index.d.ts +0 -0
  491. package/dist/src/env/index.d.ts.map +0 -0
  492. package/dist/src/env/index.min.mjs +0 -0
  493. package/dist/src/env/index.min.mjs.map +0 -0
  494. package/dist/src/env/index.mjs +0 -0
  495. package/dist/src/env/index.mjs.map +0 -0
  496. package/dist/src/env/node.d.ts +0 -0
  497. package/dist/src/env/node.d.ts.map +0 -0
  498. package/dist/src/env/types.d.ts +0 -0
  499. package/dist/src/env/types.d.ts.map +0 -0
  500. package/dist/src/filters/BaseFilter.d.ts +0 -0
  501. package/dist/src/filters/BaseFilter.d.ts.map +0 -0
  502. package/dist/src/filters/BaseFilter.min.mjs +0 -0
  503. package/dist/src/filters/BaseFilter.min.mjs.map +0 -0
  504. package/dist/src/filters/BaseFilter.mjs +0 -0
  505. package/dist/src/filters/BaseFilter.mjs.map +0 -0
  506. package/dist/src/filters/BlendColor.d.ts +0 -0
  507. package/dist/src/filters/BlendColor.d.ts.map +0 -0
  508. package/dist/src/filters/BlendColor.min.mjs +0 -0
  509. package/dist/src/filters/BlendColor.min.mjs.map +0 -0
  510. package/dist/src/filters/BlendColor.mjs +0 -0
  511. package/dist/src/filters/BlendColor.mjs.map +0 -0
  512. package/dist/src/filters/BlendImage.d.ts +0 -0
  513. package/dist/src/filters/BlendImage.d.ts.map +0 -0
  514. package/dist/src/filters/BlendImage.min.mjs +0 -0
  515. package/dist/src/filters/BlendImage.min.mjs.map +0 -0
  516. package/dist/src/filters/BlendImage.mjs +0 -0
  517. package/dist/src/filters/BlendImage.mjs.map +0 -0
  518. package/dist/src/filters/Blur.d.ts +0 -0
  519. package/dist/src/filters/Blur.d.ts.map +0 -0
  520. package/dist/src/filters/Blur.min.mjs +0 -0
  521. package/dist/src/filters/Blur.min.mjs.map +0 -0
  522. package/dist/src/filters/Blur.mjs +0 -0
  523. package/dist/src/filters/Blur.mjs.map +0 -0
  524. package/dist/src/filters/Boilerplate.d.ts +0 -0
  525. package/dist/src/filters/Boilerplate.d.ts.map +0 -0
  526. package/dist/src/filters/Brightness.d.ts +0 -0
  527. package/dist/src/filters/Brightness.d.ts.map +0 -0
  528. package/dist/src/filters/Brightness.min.mjs +0 -0
  529. package/dist/src/filters/Brightness.min.mjs.map +0 -0
  530. package/dist/src/filters/Brightness.mjs +0 -0
  531. package/dist/src/filters/Brightness.mjs.map +0 -0
  532. package/dist/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  533. package/dist/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  534. package/dist/src/filters/Canvas2dFilterBackend.min.mjs +0 -0
  535. package/dist/src/filters/Canvas2dFilterBackend.min.mjs.map +0 -0
  536. package/dist/src/filters/Canvas2dFilterBackend.mjs +0 -0
  537. package/dist/src/filters/Canvas2dFilterBackend.mjs.map +0 -0
  538. package/dist/src/filters/ColorMatrix.d.ts +0 -0
  539. package/dist/src/filters/ColorMatrix.d.ts.map +0 -0
  540. package/dist/src/filters/ColorMatrix.min.mjs +0 -0
  541. package/dist/src/filters/ColorMatrix.min.mjs.map +0 -0
  542. package/dist/src/filters/ColorMatrix.mjs +0 -0
  543. package/dist/src/filters/ColorMatrix.mjs.map +0 -0
  544. package/dist/src/filters/ColorMatrixFilters.d.ts +0 -0
  545. package/dist/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  546. package/dist/src/filters/ColorMatrixFilters.min.mjs +0 -0
  547. package/dist/src/filters/ColorMatrixFilters.min.mjs.map +0 -0
  548. package/dist/src/filters/ColorMatrixFilters.mjs +0 -0
  549. package/dist/src/filters/ColorMatrixFilters.mjs.map +0 -0
  550. package/dist/src/filters/Composed.d.ts +0 -0
  551. package/dist/src/filters/Composed.d.ts.map +0 -0
  552. package/dist/src/filters/Composed.min.mjs +0 -0
  553. package/dist/src/filters/Composed.min.mjs.map +0 -0
  554. package/dist/src/filters/Composed.mjs +0 -0
  555. package/dist/src/filters/Composed.mjs.map +0 -0
  556. package/dist/src/filters/Contrast.d.ts +0 -0
  557. package/dist/src/filters/Contrast.d.ts.map +0 -0
  558. package/dist/src/filters/Contrast.min.mjs +0 -0
  559. package/dist/src/filters/Contrast.min.mjs.map +0 -0
  560. package/dist/src/filters/Contrast.mjs +0 -0
  561. package/dist/src/filters/Contrast.mjs.map +0 -0
  562. package/dist/src/filters/Convolute.d.ts +0 -0
  563. package/dist/src/filters/Convolute.d.ts.map +0 -0
  564. package/dist/src/filters/Convolute.min.mjs +0 -0
  565. package/dist/src/filters/Convolute.min.mjs.map +0 -0
  566. package/dist/src/filters/Convolute.mjs +0 -0
  567. package/dist/src/filters/Convolute.mjs.map +0 -0
  568. package/dist/src/filters/FilterBackend.d.ts +0 -0
  569. package/dist/src/filters/FilterBackend.d.ts.map +0 -0
  570. package/dist/src/filters/FilterBackend.min.mjs +0 -0
  571. package/dist/src/filters/FilterBackend.min.mjs.map +0 -0
  572. package/dist/src/filters/FilterBackend.mjs +0 -0
  573. package/dist/src/filters/FilterBackend.mjs.map +0 -0
  574. package/dist/src/filters/GLProbes/GLProbe.d.ts +0 -0
  575. package/dist/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  576. package/dist/src/filters/GLProbes/GLProbe.min.mjs +0 -0
  577. package/dist/src/filters/GLProbes/GLProbe.min.mjs.map +0 -0
  578. package/dist/src/filters/GLProbes/GLProbe.mjs +0 -0
  579. package/dist/src/filters/GLProbes/GLProbe.mjs.map +0 -0
  580. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +0 -0
  581. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts.map +0 -0
  582. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  583. package/dist/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  584. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs +0 -0
  585. package/dist/src/filters/GLProbes/WebGLProbe.min.mjs.map +0 -0
  586. package/dist/src/filters/GLProbes/WebGLProbe.mjs +0 -0
  587. package/dist/src/filters/GLProbes/WebGLProbe.mjs.map +0 -0
  588. package/dist/src/filters/Gamma.d.ts +0 -0
  589. package/dist/src/filters/Gamma.d.ts.map +0 -0
  590. package/dist/src/filters/Gamma.min.mjs +0 -0
  591. package/dist/src/filters/Gamma.min.mjs.map +0 -0
  592. package/dist/src/filters/Gamma.mjs +0 -0
  593. package/dist/src/filters/Gamma.mjs.map +0 -0
  594. package/dist/src/filters/Grayscale.d.ts +0 -0
  595. package/dist/src/filters/Grayscale.d.ts.map +0 -0
  596. package/dist/src/filters/Grayscale.min.mjs +0 -0
  597. package/dist/src/filters/Grayscale.min.mjs.map +0 -0
  598. package/dist/src/filters/Grayscale.mjs +0 -0
  599. package/dist/src/filters/Grayscale.mjs.map +0 -0
  600. package/dist/src/filters/HueRotation.d.ts +0 -0
  601. package/dist/src/filters/HueRotation.d.ts.map +0 -0
  602. package/dist/src/filters/HueRotation.min.mjs +0 -0
  603. package/dist/src/filters/HueRotation.min.mjs.map +0 -0
  604. package/dist/src/filters/HueRotation.mjs +0 -0
  605. package/dist/src/filters/HueRotation.mjs.map +0 -0
  606. package/dist/src/filters/Invert.d.ts +0 -0
  607. package/dist/src/filters/Invert.d.ts.map +0 -0
  608. package/dist/src/filters/Invert.min.mjs +0 -0
  609. package/dist/src/filters/Invert.min.mjs.map +0 -0
  610. package/dist/src/filters/Invert.mjs +0 -0
  611. package/dist/src/filters/Invert.mjs.map +0 -0
  612. package/dist/src/filters/Noise.d.ts +0 -0
  613. package/dist/src/filters/Noise.d.ts.map +0 -0
  614. package/dist/src/filters/Noise.min.mjs +0 -0
  615. package/dist/src/filters/Noise.min.mjs.map +0 -0
  616. package/dist/src/filters/Noise.mjs +0 -0
  617. package/dist/src/filters/Noise.mjs.map +0 -0
  618. package/dist/src/filters/Pixelate.d.ts +0 -0
  619. package/dist/src/filters/Pixelate.d.ts.map +0 -0
  620. package/dist/src/filters/Pixelate.min.mjs +0 -0
  621. package/dist/src/filters/Pixelate.min.mjs.map +0 -0
  622. package/dist/src/filters/Pixelate.mjs +0 -0
  623. package/dist/src/filters/Pixelate.mjs.map +0 -0
  624. package/dist/src/filters/RemoveColor.d.ts +0 -0
  625. package/dist/src/filters/RemoveColor.d.ts.map +0 -0
  626. package/dist/src/filters/RemoveColor.min.mjs +0 -0
  627. package/dist/src/filters/RemoveColor.min.mjs.map +0 -0
  628. package/dist/src/filters/RemoveColor.mjs +0 -0
  629. package/dist/src/filters/RemoveColor.mjs.map +0 -0
  630. package/dist/src/filters/Resize.d.ts +0 -0
  631. package/dist/src/filters/Resize.d.ts.map +0 -0
  632. package/dist/src/filters/Resize.min.mjs +0 -0
  633. package/dist/src/filters/Resize.min.mjs.map +0 -0
  634. package/dist/src/filters/Resize.mjs +0 -0
  635. package/dist/src/filters/Resize.mjs.map +0 -0
  636. package/dist/src/filters/Saturation.d.ts +0 -0
  637. package/dist/src/filters/Saturation.d.ts.map +0 -0
  638. package/dist/src/filters/Saturation.min.mjs +0 -0
  639. package/dist/src/filters/Saturation.min.mjs.map +0 -0
  640. package/dist/src/filters/Saturation.mjs +0 -0
  641. package/dist/src/filters/Saturation.mjs.map +0 -0
  642. package/dist/src/filters/Vibrance.d.ts +0 -0
  643. package/dist/src/filters/Vibrance.d.ts.map +0 -0
  644. package/dist/src/filters/Vibrance.min.mjs +0 -0
  645. package/dist/src/filters/Vibrance.min.mjs.map +0 -0
  646. package/dist/src/filters/Vibrance.mjs +0 -0
  647. package/dist/src/filters/Vibrance.mjs.map +0 -0
  648. package/dist/src/filters/WebGLFilterBackend.d.ts +0 -0
  649. package/dist/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  650. package/dist/src/filters/WebGLFilterBackend.min.mjs +0 -0
  651. package/dist/src/filters/WebGLFilterBackend.min.mjs.map +0 -0
  652. package/dist/src/filters/WebGLFilterBackend.mjs +0 -0
  653. package/dist/src/filters/WebGLFilterBackend.mjs.map +0 -0
  654. package/dist/src/filters/filters.d.ts +0 -0
  655. package/dist/src/filters/filters.d.ts.map +0 -0
  656. package/dist/src/filters/filters.min.mjs +0 -0
  657. package/dist/src/filters/filters.min.mjs.map +0 -0
  658. package/dist/src/filters/filters.mjs +0 -0
  659. package/dist/src/filters/filters.mjs.map +0 -0
  660. package/dist/src/filters/index.d.ts +0 -0
  661. package/dist/src/filters/index.d.ts.map +0 -0
  662. package/dist/src/filters/shaders/baseFilter.d.ts +0 -0
  663. package/dist/src/filters/shaders/baseFilter.d.ts.map +0 -0
  664. package/dist/src/filters/shaders/baseFilter.min.mjs +0 -0
  665. package/dist/src/filters/shaders/baseFilter.min.mjs.map +0 -0
  666. package/dist/src/filters/shaders/baseFilter.mjs +0 -0
  667. package/dist/src/filters/shaders/baseFilter.mjs.map +0 -0
  668. package/dist/src/filters/shaders/blendColor.d.ts +0 -0
  669. package/dist/src/filters/shaders/blendColor.d.ts.map +0 -0
  670. package/dist/src/filters/shaders/blendColor.min.mjs +0 -0
  671. package/dist/src/filters/shaders/blendColor.min.mjs.map +0 -0
  672. package/dist/src/filters/shaders/blendColor.mjs +0 -0
  673. package/dist/src/filters/shaders/blendColor.mjs.map +0 -0
  674. package/dist/src/filters/shaders/blendImage.d.ts +0 -0
  675. package/dist/src/filters/shaders/blendImage.d.ts.map +0 -0
  676. package/dist/src/filters/shaders/blendImage.min.mjs +0 -0
  677. package/dist/src/filters/shaders/blendImage.min.mjs.map +0 -0
  678. package/dist/src/filters/shaders/blendImage.mjs +0 -0
  679. package/dist/src/filters/shaders/blendImage.mjs.map +0 -0
  680. package/dist/src/filters/shaders/blur.d.ts +0 -0
  681. package/dist/src/filters/shaders/blur.d.ts.map +0 -0
  682. package/dist/src/filters/shaders/blur.min.mjs +0 -0
  683. package/dist/src/filters/shaders/blur.min.mjs.map +0 -0
  684. package/dist/src/filters/shaders/blur.mjs +0 -0
  685. package/dist/src/filters/shaders/blur.mjs.map +0 -0
  686. package/dist/src/filters/shaders/brightness.d.ts +0 -0
  687. package/dist/src/filters/shaders/brightness.d.ts.map +0 -0
  688. package/dist/src/filters/shaders/brightness.min.mjs +0 -0
  689. package/dist/src/filters/shaders/brightness.min.mjs.map +0 -0
  690. package/dist/src/filters/shaders/brightness.mjs +0 -0
  691. package/dist/src/filters/shaders/brightness.mjs.map +0 -0
  692. package/dist/src/filters/shaders/colorMatrix.d.ts +0 -0
  693. package/dist/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  694. package/dist/src/filters/shaders/colorMatrix.min.mjs +0 -0
  695. package/dist/src/filters/shaders/colorMatrix.min.mjs.map +0 -0
  696. package/dist/src/filters/shaders/colorMatrix.mjs +0 -0
  697. package/dist/src/filters/shaders/colorMatrix.mjs.map +0 -0
  698. package/dist/src/filters/shaders/constrast.d.ts +0 -0
  699. package/dist/src/filters/shaders/constrast.d.ts.map +0 -0
  700. package/dist/src/filters/shaders/constrast.min.mjs +0 -0
  701. package/dist/src/filters/shaders/constrast.min.mjs.map +0 -0
  702. package/dist/src/filters/shaders/constrast.mjs +0 -0
  703. package/dist/src/filters/shaders/constrast.mjs.map +0 -0
  704. package/dist/src/filters/shaders/convolute.d.ts +0 -0
  705. package/dist/src/filters/shaders/convolute.d.ts.map +0 -0
  706. package/dist/src/filters/shaders/convolute.min.mjs +0 -0
  707. package/dist/src/filters/shaders/convolute.min.mjs.map +0 -0
  708. package/dist/src/filters/shaders/convolute.mjs +0 -0
  709. package/dist/src/filters/shaders/convolute.mjs.map +0 -0
  710. package/dist/src/filters/shaders/gamma.d.ts +0 -0
  711. package/dist/src/filters/shaders/gamma.d.ts.map +0 -0
  712. package/dist/src/filters/shaders/gamma.min.mjs +0 -0
  713. package/dist/src/filters/shaders/gamma.min.mjs.map +0 -0
  714. package/dist/src/filters/shaders/gamma.mjs +0 -0
  715. package/dist/src/filters/shaders/gamma.mjs.map +0 -0
  716. package/dist/src/filters/shaders/grayscale.d.ts +0 -0
  717. package/dist/src/filters/shaders/grayscale.d.ts.map +0 -0
  718. package/dist/src/filters/shaders/grayscale.min.mjs +0 -0
  719. package/dist/src/filters/shaders/grayscale.min.mjs.map +0 -0
  720. package/dist/src/filters/shaders/grayscale.mjs +0 -0
  721. package/dist/src/filters/shaders/grayscale.mjs.map +0 -0
  722. package/dist/src/filters/shaders/invert.d.ts +0 -0
  723. package/dist/src/filters/shaders/invert.d.ts.map +0 -0
  724. package/dist/src/filters/shaders/invert.min.mjs +0 -0
  725. package/dist/src/filters/shaders/invert.min.mjs.map +0 -0
  726. package/dist/src/filters/shaders/invert.mjs +0 -0
  727. package/dist/src/filters/shaders/invert.mjs.map +0 -0
  728. package/dist/src/filters/shaders/noise.d.ts +0 -0
  729. package/dist/src/filters/shaders/noise.d.ts.map +0 -0
  730. package/dist/src/filters/shaders/noise.min.mjs +0 -0
  731. package/dist/src/filters/shaders/noise.min.mjs.map +0 -0
  732. package/dist/src/filters/shaders/noise.mjs +0 -0
  733. package/dist/src/filters/shaders/noise.mjs.map +0 -0
  734. package/dist/src/filters/shaders/pixelate.d.ts +0 -0
  735. package/dist/src/filters/shaders/pixelate.d.ts.map +0 -0
  736. package/dist/src/filters/shaders/pixelate.min.mjs +0 -0
  737. package/dist/src/filters/shaders/pixelate.min.mjs.map +0 -0
  738. package/dist/src/filters/shaders/pixelate.mjs +0 -0
  739. package/dist/src/filters/shaders/pixelate.mjs.map +0 -0
  740. package/dist/src/filters/shaders/removeColor.d.ts +0 -0
  741. package/dist/src/filters/shaders/removeColor.d.ts.map +0 -0
  742. package/dist/src/filters/shaders/removeColor.min.mjs +0 -0
  743. package/dist/src/filters/shaders/removeColor.min.mjs.map +0 -0
  744. package/dist/src/filters/shaders/removeColor.mjs +0 -0
  745. package/dist/src/filters/shaders/removeColor.mjs.map +0 -0
  746. package/dist/src/filters/shaders/saturation.d.ts +0 -0
  747. package/dist/src/filters/shaders/saturation.d.ts.map +0 -0
  748. package/dist/src/filters/shaders/saturation.min.mjs +0 -0
  749. package/dist/src/filters/shaders/saturation.min.mjs.map +0 -0
  750. package/dist/src/filters/shaders/saturation.mjs +0 -0
  751. package/dist/src/filters/shaders/saturation.mjs.map +0 -0
  752. package/dist/src/filters/shaders/vibrance.d.ts +0 -0
  753. package/dist/src/filters/shaders/vibrance.d.ts.map +0 -0
  754. package/dist/src/filters/shaders/vibrance.min.mjs +0 -0
  755. package/dist/src/filters/shaders/vibrance.min.mjs.map +0 -0
  756. package/dist/src/filters/shaders/vibrance.mjs +0 -0
  757. package/dist/src/filters/shaders/vibrance.mjs.map +0 -0
  758. package/dist/src/filters/typedefs.d.ts +0 -0
  759. package/dist/src/filters/typedefs.d.ts.map +0 -0
  760. package/dist/src/filters/utils.d.ts +0 -0
  761. package/dist/src/filters/utils.d.ts.map +0 -0
  762. package/dist/src/filters/utils.min.mjs +0 -0
  763. package/dist/src/filters/utils.min.mjs.map +0 -0
  764. package/dist/src/filters/utils.mjs +0 -0
  765. package/dist/src/filters/utils.mjs.map +0 -0
  766. package/dist/src/gradient/Gradient.d.ts +0 -0
  767. package/dist/src/gradient/Gradient.d.ts.map +0 -0
  768. package/dist/src/gradient/Gradient.min.mjs +0 -0
  769. package/dist/src/gradient/Gradient.min.mjs.map +0 -0
  770. package/dist/src/gradient/Gradient.mjs +0 -0
  771. package/dist/src/gradient/Gradient.mjs.map +0 -0
  772. package/dist/src/gradient/constants.d.ts +0 -0
  773. package/dist/src/gradient/constants.d.ts.map +0 -0
  774. package/dist/src/gradient/constants.min.mjs +0 -0
  775. package/dist/src/gradient/constants.min.mjs.map +0 -0
  776. package/dist/src/gradient/constants.mjs +0 -0
  777. package/dist/src/gradient/constants.mjs.map +0 -0
  778. package/dist/src/gradient/index.d.ts +0 -0
  779. package/dist/src/gradient/index.d.ts.map +0 -0
  780. package/dist/src/gradient/parser/misc.d.ts +0 -0
  781. package/dist/src/gradient/parser/misc.d.ts.map +0 -0
  782. package/dist/src/gradient/parser/misc.min.mjs +0 -0
  783. package/dist/src/gradient/parser/misc.min.mjs.map +0 -0
  784. package/dist/src/gradient/parser/misc.mjs +0 -0
  785. package/dist/src/gradient/parser/misc.mjs.map +0 -0
  786. package/dist/src/gradient/parser/parseColorStops.d.ts +0 -0
  787. package/dist/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  788. package/dist/src/gradient/parser/parseColorStops.min.mjs +0 -0
  789. package/dist/src/gradient/parser/parseColorStops.min.mjs.map +0 -0
  790. package/dist/src/gradient/parser/parseColorStops.mjs +0 -0
  791. package/dist/src/gradient/parser/parseColorStops.mjs.map +0 -0
  792. package/dist/src/gradient/parser/parseCoords.d.ts +0 -0
  793. package/dist/src/gradient/parser/parseCoords.d.ts.map +0 -0
  794. package/dist/src/gradient/parser/parseCoords.min.mjs +0 -0
  795. package/dist/src/gradient/parser/parseCoords.min.mjs.map +0 -0
  796. package/dist/src/gradient/parser/parseCoords.mjs +0 -0
  797. package/dist/src/gradient/parser/parseCoords.mjs.map +0 -0
  798. package/dist/src/gradient/typedefs.d.ts +0 -0
  799. package/dist/src/gradient/typedefs.d.ts.map +0 -0
  800. package/dist/src/mixins/eraser_brush.mixin.d.ts +0 -0
  801. package/dist/src/mixins/eraser_brush.mixin.d.ts.map +0 -0
  802. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +0 -0
  803. package/dist/src/parkinglot/canvas_animation.mixin.d.ts.map +0 -0
  804. package/dist/src/parkinglot/straighten.d.ts +0 -0
  805. package/dist/src/parkinglot/straighten.d.ts.map +0 -0
  806. package/dist/src/parser/applyViewboxTransform.d.ts +0 -0
  807. package/dist/src/parser/applyViewboxTransform.d.ts.map +0 -0
  808. package/dist/src/parser/applyViewboxTransform.min.mjs +0 -0
  809. package/dist/src/parser/applyViewboxTransform.min.mjs.map +0 -0
  810. package/dist/src/parser/applyViewboxTransform.mjs +0 -0
  811. package/dist/src/parser/applyViewboxTransform.mjs.map +0 -0
  812. package/dist/src/parser/attributes.d.ts +0 -0
  813. package/dist/src/parser/attributes.d.ts.map +0 -0
  814. package/dist/src/parser/attributes.min.mjs +0 -0
  815. package/dist/src/parser/attributes.min.mjs.map +0 -0
  816. package/dist/src/parser/attributes.mjs +0 -0
  817. package/dist/src/parser/attributes.mjs.map +0 -0
  818. package/dist/src/parser/constants.d.ts +0 -0
  819. package/dist/src/parser/constants.d.ts.map +0 -0
  820. package/dist/src/parser/constants.min.mjs +0 -0
  821. package/dist/src/parser/constants.min.mjs.map +0 -0
  822. package/dist/src/parser/constants.mjs +0 -0
  823. package/dist/src/parser/constants.mjs.map +0 -0
  824. package/dist/src/parser/doesSomeParentMatch.d.ts +0 -0
  825. package/dist/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  826. package/dist/src/parser/doesSomeParentMatch.min.mjs +0 -0
  827. package/dist/src/parser/doesSomeParentMatch.min.mjs.map +0 -0
  828. package/dist/src/parser/doesSomeParentMatch.mjs +0 -0
  829. package/dist/src/parser/doesSomeParentMatch.mjs.map +0 -0
  830. package/dist/src/parser/elementMatchesRule.d.ts +0 -0
  831. package/dist/src/parser/elementMatchesRule.d.ts.map +0 -0
  832. package/dist/src/parser/elementMatchesRule.min.mjs +0 -0
  833. package/dist/src/parser/elementMatchesRule.min.mjs.map +0 -0
  834. package/dist/src/parser/elementMatchesRule.mjs +0 -0
  835. package/dist/src/parser/elementMatchesRule.mjs.map +0 -0
  836. package/dist/src/parser/elements_parser.d.ts +0 -0
  837. package/dist/src/parser/elements_parser.d.ts.map +0 -0
  838. package/dist/src/parser/elements_parser.min.mjs +0 -0
  839. package/dist/src/parser/elements_parser.min.mjs.map +0 -0
  840. package/dist/src/parser/elements_parser.mjs +0 -0
  841. package/dist/src/parser/elements_parser.mjs.map +0 -0
  842. package/dist/src/parser/getCSSRules.d.ts +0 -0
  843. package/dist/src/parser/getCSSRules.d.ts.map +0 -0
  844. package/dist/src/parser/getCSSRules.min.mjs +0 -0
  845. package/dist/src/parser/getCSSRules.min.mjs.map +0 -0
  846. package/dist/src/parser/getCSSRules.mjs +0 -0
  847. package/dist/src/parser/getCSSRules.mjs.map +0 -0
  848. package/dist/src/parser/getGlobalStylesForElement.d.ts +0 -0
  849. package/dist/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  850. package/dist/src/parser/getGlobalStylesForElement.min.mjs +0 -0
  851. package/dist/src/parser/getGlobalStylesForElement.min.mjs.map +0 -0
  852. package/dist/src/parser/getGlobalStylesForElement.mjs +0 -0
  853. package/dist/src/parser/getGlobalStylesForElement.mjs.map +0 -0
  854. package/dist/src/parser/getGradientDefs.d.ts +0 -0
  855. package/dist/src/parser/getGradientDefs.d.ts.map +0 -0
  856. package/dist/src/parser/getGradientDefs.min.mjs +0 -0
  857. package/dist/src/parser/getGradientDefs.min.mjs.map +0 -0
  858. package/dist/src/parser/getGradientDefs.mjs +0 -0
  859. package/dist/src/parser/getGradientDefs.mjs.map +0 -0
  860. package/dist/src/parser/getMultipleNodes.d.ts +0 -0
  861. package/dist/src/parser/getMultipleNodes.d.ts.map +0 -0
  862. package/dist/src/parser/getMultipleNodes.min.mjs +0 -0
  863. package/dist/src/parser/getMultipleNodes.min.mjs.map +0 -0
  864. package/dist/src/parser/getMultipleNodes.mjs +0 -0
  865. package/dist/src/parser/getMultipleNodes.mjs.map +0 -0
  866. package/dist/src/parser/getSvgRegex.d.ts +0 -0
  867. package/dist/src/parser/getSvgRegex.d.ts.map +0 -0
  868. package/dist/src/parser/getSvgRegex.min.mjs +0 -0
  869. package/dist/src/parser/getSvgRegex.min.mjs.map +0 -0
  870. package/dist/src/parser/getSvgRegex.mjs +0 -0
  871. package/dist/src/parser/getSvgRegex.mjs.map +0 -0
  872. package/dist/src/parser/getTagName.d.ts +0 -0
  873. package/dist/src/parser/getTagName.d.ts.map +0 -0
  874. package/dist/src/parser/getTagName.min.mjs +0 -0
  875. package/dist/src/parser/getTagName.min.mjs.map +0 -0
  876. package/dist/src/parser/getTagName.mjs +0 -0
  877. package/dist/src/parser/getTagName.mjs.map +0 -0
  878. package/dist/src/parser/hasInvalidAncestor.d.ts +0 -0
  879. package/dist/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  880. package/dist/src/parser/hasInvalidAncestor.min.mjs +0 -0
  881. package/dist/src/parser/hasInvalidAncestor.min.mjs.map +0 -0
  882. package/dist/src/parser/hasInvalidAncestor.mjs +0 -0
  883. package/dist/src/parser/hasInvalidAncestor.mjs.map +0 -0
  884. package/dist/src/parser/loadSVGFromString.d.ts +0 -0
  885. package/dist/src/parser/loadSVGFromString.d.ts.map +0 -0
  886. package/dist/src/parser/loadSVGFromString.min.mjs +0 -0
  887. package/dist/src/parser/loadSVGFromString.min.mjs.map +0 -0
  888. package/dist/src/parser/loadSVGFromString.mjs +0 -0
  889. package/dist/src/parser/loadSVGFromString.mjs.map +0 -0
  890. package/dist/src/parser/loadSVGFromURL.d.ts +0 -0
  891. package/dist/src/parser/loadSVGFromURL.d.ts.map +0 -0
  892. package/dist/src/parser/loadSVGFromURL.min.mjs +0 -0
  893. package/dist/src/parser/loadSVGFromURL.min.mjs.map +0 -0
  894. package/dist/src/parser/loadSVGFromURL.mjs +0 -0
  895. package/dist/src/parser/loadSVGFromURL.mjs.map +0 -0
  896. package/dist/src/parser/normalizeAttr.d.ts +0 -0
  897. package/dist/src/parser/normalizeAttr.d.ts.map +0 -0
  898. package/dist/src/parser/normalizeAttr.min.mjs +0 -0
  899. package/dist/src/parser/normalizeAttr.min.mjs.map +0 -0
  900. package/dist/src/parser/normalizeAttr.mjs +0 -0
  901. package/dist/src/parser/normalizeAttr.mjs.map +0 -0
  902. package/dist/src/parser/normalizeValue.d.ts +0 -0
  903. package/dist/src/parser/normalizeValue.d.ts.map +0 -0
  904. package/dist/src/parser/normalizeValue.min.mjs +0 -0
  905. package/dist/src/parser/normalizeValue.min.mjs.map +0 -0
  906. package/dist/src/parser/normalizeValue.mjs +0 -0
  907. package/dist/src/parser/normalizeValue.mjs.map +0 -0
  908. package/dist/src/parser/parseAttributes.d.ts +0 -0
  909. package/dist/src/parser/parseAttributes.d.ts.map +0 -0
  910. package/dist/src/parser/parseAttributes.min.mjs +0 -0
  911. package/dist/src/parser/parseAttributes.min.mjs.map +0 -0
  912. package/dist/src/parser/parseAttributes.mjs +0 -0
  913. package/dist/src/parser/parseAttributes.mjs.map +0 -0
  914. package/dist/src/parser/parseFontDeclaration.d.ts +0 -0
  915. package/dist/src/parser/parseFontDeclaration.d.ts.map +0 -0
  916. package/dist/src/parser/parseFontDeclaration.min.mjs +0 -0
  917. package/dist/src/parser/parseFontDeclaration.min.mjs.map +0 -0
  918. package/dist/src/parser/parseFontDeclaration.mjs +0 -0
  919. package/dist/src/parser/parseFontDeclaration.mjs.map +0 -0
  920. package/dist/src/parser/parsePointsAttribute.d.ts +0 -0
  921. package/dist/src/parser/parsePointsAttribute.d.ts.map +0 -0
  922. package/dist/src/parser/parsePointsAttribute.min.mjs +0 -0
  923. package/dist/src/parser/parsePointsAttribute.min.mjs.map +0 -0
  924. package/dist/src/parser/parsePointsAttribute.mjs +0 -0
  925. package/dist/src/parser/parsePointsAttribute.mjs.map +0 -0
  926. package/dist/src/parser/parseSVGDocument.d.ts +0 -0
  927. package/dist/src/parser/parseSVGDocument.d.ts.map +0 -0
  928. package/dist/src/parser/parseSVGDocument.min.mjs +0 -0
  929. package/dist/src/parser/parseSVGDocument.min.mjs.map +0 -0
  930. package/dist/src/parser/parseSVGDocument.mjs +0 -0
  931. package/dist/src/parser/parseSVGDocument.mjs.map +0 -0
  932. package/dist/src/parser/parseStyleAttribute.d.ts +0 -0
  933. package/dist/src/parser/parseStyleAttribute.d.ts.map +0 -0
  934. package/dist/src/parser/parseStyleAttribute.min.mjs +0 -0
  935. package/dist/src/parser/parseStyleAttribute.min.mjs.map +0 -0
  936. package/dist/src/parser/parseStyleAttribute.mjs +0 -0
  937. package/dist/src/parser/parseStyleAttribute.mjs.map +0 -0
  938. package/dist/src/parser/parseStyleObject.d.ts +0 -0
  939. package/dist/src/parser/parseStyleObject.d.ts.map +0 -0
  940. package/dist/src/parser/parseStyleObject.min.mjs +0 -0
  941. package/dist/src/parser/parseStyleObject.min.mjs.map +0 -0
  942. package/dist/src/parser/parseStyleObject.mjs +0 -0
  943. package/dist/src/parser/parseStyleObject.mjs.map +0 -0
  944. package/dist/src/parser/parseStyleString.d.ts +0 -0
  945. package/dist/src/parser/parseStyleString.d.ts.map +0 -0
  946. package/dist/src/parser/parseStyleString.min.mjs +0 -0
  947. package/dist/src/parser/parseStyleString.min.mjs.map +0 -0
  948. package/dist/src/parser/parseStyleString.mjs +0 -0
  949. package/dist/src/parser/parseStyleString.mjs.map +0 -0
  950. package/dist/src/parser/parseTransformAttribute.d.ts +0 -0
  951. package/dist/src/parser/parseTransformAttribute.d.ts.map +0 -0
  952. package/dist/src/parser/parseTransformAttribute.min.mjs +0 -0
  953. package/dist/src/parser/parseTransformAttribute.min.mjs.map +0 -0
  954. package/dist/src/parser/parseTransformAttribute.mjs +0 -0
  955. package/dist/src/parser/parseTransformAttribute.mjs.map +0 -0
  956. package/dist/src/parser/parseUseDirectives.d.ts +0 -0
  957. package/dist/src/parser/parseUseDirectives.d.ts.map +0 -0
  958. package/dist/src/parser/parseUseDirectives.min.mjs +0 -0
  959. package/dist/src/parser/parseUseDirectives.min.mjs.map +0 -0
  960. package/dist/src/parser/parseUseDirectives.mjs +0 -0
  961. package/dist/src/parser/parseUseDirectives.mjs.map +0 -0
  962. package/dist/src/parser/percent.d.ts +0 -0
  963. package/dist/src/parser/percent.d.ts.map +0 -0
  964. package/dist/src/parser/percent.min.mjs +0 -0
  965. package/dist/src/parser/percent.min.mjs.map +0 -0
  966. package/dist/src/parser/percent.mjs +0 -0
  967. package/dist/src/parser/percent.mjs.map +0 -0
  968. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  969. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  970. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs +0 -0
  971. package/dist/src/parser/recursivelyParseGradientsXlink.min.mjs.map +0 -0
  972. package/dist/src/parser/recursivelyParseGradientsXlink.mjs +0 -0
  973. package/dist/src/parser/recursivelyParseGradientsXlink.mjs.map +0 -0
  974. package/dist/src/parser/selectorMatches.d.ts +0 -0
  975. package/dist/src/parser/selectorMatches.d.ts.map +0 -0
  976. package/dist/src/parser/selectorMatches.min.mjs +0 -0
  977. package/dist/src/parser/selectorMatches.min.mjs.map +0 -0
  978. package/dist/src/parser/selectorMatches.mjs +0 -0
  979. package/dist/src/parser/selectorMatches.mjs.map +0 -0
  980. package/dist/src/parser/setStrokeFillOpacity.d.ts +0 -0
  981. package/dist/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  982. package/dist/src/parser/setStrokeFillOpacity.min.mjs +0 -0
  983. package/dist/src/parser/setStrokeFillOpacity.min.mjs.map +0 -0
  984. package/dist/src/parser/setStrokeFillOpacity.mjs +0 -0
  985. package/dist/src/parser/setStrokeFillOpacity.mjs.map +0 -0
  986. package/dist/src/parser/typedefs.d.ts +0 -0
  987. package/dist/src/parser/typedefs.d.ts.map +0 -0
  988. package/dist/src/shapes/ActiveSelection.d.ts +0 -0
  989. package/dist/src/shapes/ActiveSelection.d.ts.map +0 -0
  990. package/dist/src/shapes/ActiveSelection.min.mjs +0 -0
  991. package/dist/src/shapes/ActiveSelection.min.mjs.map +0 -0
  992. package/dist/src/shapes/ActiveSelection.mjs +0 -0
  993. package/dist/src/shapes/ActiveSelection.mjs.map +0 -0
  994. package/dist/src/shapes/Circle.d.ts +0 -0
  995. package/dist/src/shapes/Circle.d.ts.map +0 -0
  996. package/dist/src/shapes/Circle.min.mjs +0 -0
  997. package/dist/src/shapes/Circle.min.mjs.map +0 -0
  998. package/dist/src/shapes/Circle.mjs +0 -0
  999. package/dist/src/shapes/Circle.mjs.map +0 -0
  1000. package/dist/src/shapes/Ellipse.d.ts +0 -0
  1001. package/dist/src/shapes/Ellipse.d.ts.map +0 -0
  1002. package/dist/src/shapes/Ellipse.min.mjs +0 -0
  1003. package/dist/src/shapes/Ellipse.min.mjs.map +0 -0
  1004. package/dist/src/shapes/Ellipse.mjs +0 -0
  1005. package/dist/src/shapes/Ellipse.mjs.map +0 -0
  1006. package/dist/src/shapes/Group.d.ts +0 -0
  1007. package/dist/src/shapes/Group.d.ts.map +0 -0
  1008. package/dist/src/shapes/Group.min.mjs +0 -0
  1009. package/dist/src/shapes/Group.min.mjs.map +0 -0
  1010. package/dist/src/shapes/Group.mjs +0 -0
  1011. package/dist/src/shapes/Group.mjs.map +0 -0
  1012. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1013. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1014. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs +0 -0
  1015. package/dist/src/shapes/IText/DraggableTextDelegate.min.mjs.map +0 -0
  1016. package/dist/src/shapes/IText/DraggableTextDelegate.mjs +0 -0
  1017. package/dist/src/shapes/IText/DraggableTextDelegate.mjs.map +0 -0
  1018. package/dist/src/shapes/IText/IText.d.ts +0 -0
  1019. package/dist/src/shapes/IText/IText.d.ts.map +0 -0
  1020. package/dist/src/shapes/IText/IText.min.mjs +0 -0
  1021. package/dist/src/shapes/IText/IText.min.mjs.map +1 -1
  1022. package/dist/src/shapes/IText/IText.mjs +206 -206
  1023. package/dist/src/shapes/IText/IText.mjs.map +1 -1
  1024. package/dist/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1025. package/dist/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1026. package/dist/src/shapes/IText/ITextBehavior.min.mjs +1 -1
  1027. package/dist/src/shapes/IText/ITextBehavior.min.mjs.map +1 -1
  1028. package/dist/src/shapes/IText/ITextBehavior.mjs +162 -152
  1029. package/dist/src/shapes/IText/ITextBehavior.mjs.map +1 -1
  1030. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1031. package/dist/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1032. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs +0 -0
  1033. package/dist/src/shapes/IText/ITextClickBehavior.min.mjs.map +1 -1
  1034. package/dist/src/shapes/IText/ITextClickBehavior.mjs +36 -36
  1035. package/dist/src/shapes/IText/ITextClickBehavior.mjs.map +1 -1
  1036. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1037. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -1
  1038. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs +1 -1
  1039. package/dist/src/shapes/IText/ITextKeyBehavior.min.mjs.map +1 -1
  1040. package/dist/src/shapes/IText/ITextKeyBehavior.mjs +47 -1
  1041. package/dist/src/shapes/IText/ITextKeyBehavior.mjs.map +1 -1
  1042. package/dist/src/shapes/IText/constants.d.ts +0 -0
  1043. package/dist/src/shapes/IText/constants.d.ts.map +0 -0
  1044. package/dist/src/shapes/IText/constants.min.mjs +0 -0
  1045. package/dist/src/shapes/IText/constants.min.mjs.map +0 -0
  1046. package/dist/src/shapes/IText/constants.mjs +0 -0
  1047. package/dist/src/shapes/IText/constants.mjs.map +0 -0
  1048. package/dist/src/shapes/Image.d.ts +0 -0
  1049. package/dist/src/shapes/Image.d.ts.map +0 -0
  1050. package/dist/src/shapes/Image.min.mjs +0 -0
  1051. package/dist/src/shapes/Image.min.mjs.map +0 -0
  1052. package/dist/src/shapes/Image.mjs +0 -0
  1053. package/dist/src/shapes/Image.mjs.map +0 -0
  1054. package/dist/src/shapes/Line.d.ts +33 -86
  1055. package/dist/src/shapes/Line.d.ts.map +1 -1
  1056. package/dist/src/shapes/Line.min.mjs +1 -1
  1057. package/dist/src/shapes/Line.min.mjs.map +1 -1
  1058. package/dist/src/shapes/Line.mjs +405 -159
  1059. package/dist/src/shapes/Line.mjs.map +1 -1
  1060. package/dist/src/shapes/Object/FabricObject.d.ts +0 -0
  1061. package/dist/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1062. package/dist/src/shapes/Object/FabricObject.min.mjs +0 -0
  1063. package/dist/src/shapes/Object/FabricObject.min.mjs.map +0 -0
  1064. package/dist/src/shapes/Object/FabricObject.mjs +0 -0
  1065. package/dist/src/shapes/Object/FabricObject.mjs.map +0 -0
  1066. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1067. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1068. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs +0 -0
  1069. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.min.mjs.map +0 -0
  1070. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs +0 -0
  1071. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.mjs.map +0 -0
  1072. package/dist/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1073. package/dist/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1074. package/dist/src/shapes/Object/InteractiveObject.min.mjs +0 -0
  1075. package/dist/src/shapes/Object/InteractiveObject.min.mjs.map +0 -0
  1076. package/dist/src/shapes/Object/InteractiveObject.mjs +0 -0
  1077. package/dist/src/shapes/Object/InteractiveObject.mjs.map +0 -0
  1078. package/dist/src/shapes/Object/Object.d.ts +0 -0
  1079. package/dist/src/shapes/Object/Object.d.ts.map +0 -0
  1080. package/dist/src/shapes/Object/Object.min.mjs +0 -0
  1081. package/dist/src/shapes/Object/Object.min.mjs.map +0 -0
  1082. package/dist/src/shapes/Object/Object.mjs +0 -0
  1083. package/dist/src/shapes/Object/Object.mjs.map +0 -0
  1084. package/dist/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1085. package/dist/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1086. package/dist/src/shapes/Object/ObjectGeometry.min.mjs +0 -0
  1087. package/dist/src/shapes/Object/ObjectGeometry.min.mjs.map +0 -0
  1088. package/dist/src/shapes/Object/ObjectGeometry.mjs +0 -0
  1089. package/dist/src/shapes/Object/ObjectGeometry.mjs.map +0 -0
  1090. package/dist/src/shapes/Object/defaultValues.d.ts +0 -0
  1091. package/dist/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1092. package/dist/src/shapes/Object/defaultValues.min.mjs +0 -0
  1093. package/dist/src/shapes/Object/defaultValues.min.mjs.map +0 -0
  1094. package/dist/src/shapes/Object/defaultValues.mjs +0 -0
  1095. package/dist/src/shapes/Object/defaultValues.mjs.map +0 -0
  1096. package/dist/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1097. package/dist/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1098. package/dist/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1099. package/dist/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1100. package/dist/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1101. package/dist/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1102. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1103. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1104. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1105. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1106. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1107. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1108. package/dist/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1109. package/dist/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1110. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1111. package/dist/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1112. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1113. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1114. package/dist/src/shapes/Object/types/index.d.ts +0 -0
  1115. package/dist/src/shapes/Object/types/index.d.ts.map +0 -0
  1116. package/dist/src/shapes/Path.d.ts +0 -0
  1117. package/dist/src/shapes/Path.d.ts.map +0 -0
  1118. package/dist/src/shapes/Path.min.mjs +0 -0
  1119. package/dist/src/shapes/Path.min.mjs.map +0 -0
  1120. package/dist/src/shapes/Path.mjs +0 -0
  1121. package/dist/src/shapes/Path.mjs.map +0 -0
  1122. package/dist/src/shapes/Polygon.d.ts +0 -0
  1123. package/dist/src/shapes/Polygon.d.ts.map +0 -0
  1124. package/dist/src/shapes/Polygon.min.mjs +0 -0
  1125. package/dist/src/shapes/Polygon.min.mjs.map +0 -0
  1126. package/dist/src/shapes/Polygon.mjs +0 -0
  1127. package/dist/src/shapes/Polygon.mjs.map +0 -0
  1128. package/dist/src/shapes/Polyline.d.ts +7 -0
  1129. package/dist/src/shapes/Polyline.d.ts.map +1 -1
  1130. package/dist/src/shapes/Polyline.min.mjs +1 -1
  1131. package/dist/src/shapes/Polyline.min.mjs.map +1 -1
  1132. package/dist/src/shapes/Polyline.mjs +48 -16
  1133. package/dist/src/shapes/Polyline.mjs.map +1 -1
  1134. package/dist/src/shapes/Rect.d.ts +0 -0
  1135. package/dist/src/shapes/Rect.d.ts.map +0 -0
  1136. package/dist/src/shapes/Rect.min.mjs +0 -0
  1137. package/dist/src/shapes/Rect.min.mjs.map +0 -0
  1138. package/dist/src/shapes/Rect.mjs +0 -0
  1139. package/dist/src/shapes/Rect.mjs.map +0 -0
  1140. package/dist/src/shapes/Text/StyledText.d.ts +0 -0
  1141. package/dist/src/shapes/Text/StyledText.d.ts.map +0 -0
  1142. package/dist/src/shapes/Text/StyledText.min.mjs +0 -0
  1143. package/dist/src/shapes/Text/StyledText.min.mjs.map +0 -0
  1144. package/dist/src/shapes/Text/StyledText.mjs +0 -0
  1145. package/dist/src/shapes/Text/StyledText.mjs.map +0 -0
  1146. package/dist/src/shapes/Text/Text.d.ts +19 -0
  1147. package/dist/src/shapes/Text/Text.d.ts.map +1 -1
  1148. package/dist/src/shapes/Text/Text.min.mjs +1 -1
  1149. package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
  1150. package/dist/src/shapes/Text/Text.mjs +585 -299
  1151. package/dist/src/shapes/Text/Text.mjs.map +1 -1
  1152. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1153. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1154. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs +0 -0
  1155. package/dist/src/shapes/Text/TextSVGExportMixin.min.mjs.map +0 -0
  1156. package/dist/src/shapes/Text/TextSVGExportMixin.mjs +0 -0
  1157. package/dist/src/shapes/Text/TextSVGExportMixin.mjs.map +0 -0
  1158. package/dist/src/shapes/Text/constants.d.ts +0 -0
  1159. package/dist/src/shapes/Text/constants.d.ts.map +0 -0
  1160. package/dist/src/shapes/Text/constants.min.mjs +0 -0
  1161. package/dist/src/shapes/Text/constants.min.mjs.map +1 -1
  1162. package/dist/src/shapes/Text/constants.mjs +0 -0
  1163. package/dist/src/shapes/Text/constants.mjs.map +1 -1
  1164. package/dist/src/shapes/Textbox.d.ts +43 -1
  1165. package/dist/src/shapes/Textbox.d.ts.map +1 -1
  1166. package/dist/src/shapes/Textbox.min.mjs +1 -1
  1167. package/dist/src/shapes/Textbox.min.mjs.map +1 -1
  1168. package/dist/src/shapes/Textbox.mjs +668 -214
  1169. package/dist/src/shapes/Textbox.mjs.map +1 -1
  1170. package/dist/src/shapes/Triangle.d.ts +27 -2
  1171. package/dist/src/shapes/Triangle.d.ts.map +1 -1
  1172. package/dist/src/shapes/Triangle.min.mjs +1 -1
  1173. package/dist/src/shapes/Triangle.min.mjs.map +1 -1
  1174. package/dist/src/shapes/Triangle.mjs +72 -12
  1175. package/dist/src/shapes/Triangle.mjs.map +1 -1
  1176. package/dist/src/text/browserLines.d.ts +0 -0
  1177. package/dist/src/text/browserLines.d.ts.map +0 -0
  1178. package/dist/src/text/browserLines.min.mjs +0 -0
  1179. package/dist/src/text/browserLines.min.mjs.map +1 -1
  1180. package/dist/src/text/browserLines.mjs +20 -20
  1181. package/dist/src/text/browserLines.mjs.map +1 -1
  1182. package/dist/src/text/ellipsis.d.ts +0 -0
  1183. package/dist/src/text/ellipsis.d.ts.map +0 -0
  1184. package/dist/src/text/ellipsis.min.mjs +0 -0
  1185. package/dist/src/text/ellipsis.min.mjs.map +1 -1
  1186. package/dist/src/text/ellipsis.mjs +11 -11
  1187. package/dist/src/text/ellipsis.mjs.map +1 -1
  1188. package/dist/src/text/hitTest.d.ts +0 -0
  1189. package/dist/src/text/hitTest.d.ts.map +0 -0
  1190. package/dist/src/text/hitTest.min.mjs +0 -0
  1191. package/dist/src/text/hitTest.min.mjs.map +1 -1
  1192. package/dist/src/text/hitTest.mjs +19 -19
  1193. package/dist/src/text/hitTest.mjs.map +1 -1
  1194. package/dist/src/text/layout.d.ts +0 -0
  1195. package/dist/src/text/layout.d.ts.map +0 -0
  1196. package/dist/src/text/layout.min.mjs +0 -0
  1197. package/dist/src/text/layout.min.mjs.map +1 -1
  1198. package/dist/src/text/layout.mjs +33 -33
  1199. package/dist/src/text/layout.mjs.map +1 -1
  1200. package/dist/src/text/measure.d.ts +9 -0
  1201. package/dist/src/text/measure.d.ts.map +1 -1
  1202. package/dist/src/text/measure.min.mjs +1 -1
  1203. package/dist/src/text/measure.min.mjs.map +1 -1
  1204. package/dist/src/text/measure.mjs +195 -24
  1205. package/dist/src/text/measure.mjs.map +1 -1
  1206. package/dist/src/text/overlayEditor.d.ts +0 -0
  1207. package/dist/src/text/overlayEditor.d.ts.map +1 -1
  1208. package/dist/src/text/overlayEditor.min.mjs +1 -1
  1209. package/dist/src/text/overlayEditor.min.mjs.map +1 -1
  1210. package/dist/src/text/overlayEditor.mjs +188 -42
  1211. package/dist/src/text/overlayEditor.mjs.map +1 -1
  1212. package/dist/src/text/unicode.d.ts +0 -0
  1213. package/dist/src/text/unicode.d.ts.map +0 -0
  1214. package/dist/src/text/unicode.min.mjs +0 -0
  1215. package/dist/src/text/unicode.min.mjs.map +1 -1
  1216. package/dist/src/text/unicode.mjs +8 -8
  1217. package/dist/src/text/unicode.mjs.map +1 -1
  1218. package/dist/src/typedefs.d.ts +0 -0
  1219. package/dist/src/typedefs.d.ts.map +0 -0
  1220. package/dist/src/util/animation/AnimationBase.d.ts +0 -0
  1221. package/dist/src/util/animation/AnimationBase.d.ts.map +0 -0
  1222. package/dist/src/util/animation/AnimationBase.min.mjs +0 -0
  1223. package/dist/src/util/animation/AnimationBase.min.mjs.map +0 -0
  1224. package/dist/src/util/animation/AnimationBase.mjs +0 -0
  1225. package/dist/src/util/animation/AnimationBase.mjs.map +0 -0
  1226. package/dist/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1227. package/dist/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1228. package/dist/src/util/animation/AnimationFrameProvider.min.mjs +0 -0
  1229. package/dist/src/util/animation/AnimationFrameProvider.min.mjs.map +0 -0
  1230. package/dist/src/util/animation/AnimationFrameProvider.mjs +0 -0
  1231. package/dist/src/util/animation/AnimationFrameProvider.mjs.map +0 -0
  1232. package/dist/src/util/animation/AnimationRegistry.d.ts +0 -0
  1233. package/dist/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1234. package/dist/src/util/animation/AnimationRegistry.min.mjs +0 -0
  1235. package/dist/src/util/animation/AnimationRegistry.min.mjs.map +0 -0
  1236. package/dist/src/util/animation/AnimationRegistry.mjs +0 -0
  1237. package/dist/src/util/animation/AnimationRegistry.mjs.map +0 -0
  1238. package/dist/src/util/animation/ArrayAnimation.d.ts +0 -0
  1239. package/dist/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1240. package/dist/src/util/animation/ArrayAnimation.min.mjs +0 -0
  1241. package/dist/src/util/animation/ArrayAnimation.min.mjs.map +0 -0
  1242. package/dist/src/util/animation/ArrayAnimation.mjs +0 -0
  1243. package/dist/src/util/animation/ArrayAnimation.mjs.map +0 -0
  1244. package/dist/src/util/animation/ColorAnimation.d.ts +0 -0
  1245. package/dist/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1246. package/dist/src/util/animation/ColorAnimation.min.mjs +0 -0
  1247. package/dist/src/util/animation/ColorAnimation.min.mjs.map +0 -0
  1248. package/dist/src/util/animation/ColorAnimation.mjs +0 -0
  1249. package/dist/src/util/animation/ColorAnimation.mjs.map +0 -0
  1250. package/dist/src/util/animation/ValueAnimation.d.ts +0 -0
  1251. package/dist/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1252. package/dist/src/util/animation/ValueAnimation.min.mjs +0 -0
  1253. package/dist/src/util/animation/ValueAnimation.min.mjs.map +0 -0
  1254. package/dist/src/util/animation/ValueAnimation.mjs +0 -0
  1255. package/dist/src/util/animation/ValueAnimation.mjs.map +0 -0
  1256. package/dist/src/util/animation/animate.d.ts +0 -0
  1257. package/dist/src/util/animation/animate.d.ts.map +0 -0
  1258. package/dist/src/util/animation/animate.min.mjs +0 -0
  1259. package/dist/src/util/animation/animate.min.mjs.map +0 -0
  1260. package/dist/src/util/animation/animate.mjs +0 -0
  1261. package/dist/src/util/animation/animate.mjs.map +0 -0
  1262. package/dist/src/util/animation/easing.d.ts +0 -0
  1263. package/dist/src/util/animation/easing.d.ts.map +0 -0
  1264. package/dist/src/util/animation/easing.min.mjs +0 -0
  1265. package/dist/src/util/animation/easing.min.mjs.map +0 -0
  1266. package/dist/src/util/animation/easing.mjs +0 -0
  1267. package/dist/src/util/animation/easing.mjs.map +0 -0
  1268. package/dist/src/util/animation/index.d.ts +0 -0
  1269. package/dist/src/util/animation/index.d.ts.map +0 -0
  1270. package/dist/src/util/animation/types.d.ts +0 -0
  1271. package/dist/src/util/animation/types.d.ts.map +0 -0
  1272. package/dist/src/util/applyMixins.d.ts +0 -0
  1273. package/dist/src/util/applyMixins.d.ts.map +0 -0
  1274. package/dist/src/util/applyMixins.min.mjs +0 -0
  1275. package/dist/src/util/applyMixins.min.mjs.map +0 -0
  1276. package/dist/src/util/applyMixins.mjs +0 -0
  1277. package/dist/src/util/applyMixins.mjs.map +0 -0
  1278. package/dist/src/util/dom_event.d.ts +0 -0
  1279. package/dist/src/util/dom_event.d.ts.map +0 -0
  1280. package/dist/src/util/dom_event.min.mjs +0 -0
  1281. package/dist/src/util/dom_event.min.mjs.map +0 -0
  1282. package/dist/src/util/dom_event.mjs +0 -0
  1283. package/dist/src/util/dom_event.mjs.map +0 -0
  1284. package/dist/src/util/dom_misc.d.ts +0 -0
  1285. package/dist/src/util/dom_misc.d.ts.map +0 -0
  1286. package/dist/src/util/dom_misc.min.mjs +0 -0
  1287. package/dist/src/util/dom_misc.min.mjs.map +0 -0
  1288. package/dist/src/util/dom_misc.mjs +0 -0
  1289. package/dist/src/util/dom_misc.mjs.map +0 -0
  1290. package/dist/src/util/index.d.ts +0 -0
  1291. package/dist/src/util/index.d.ts.map +0 -0
  1292. package/dist/src/util/index.min.mjs +0 -0
  1293. package/dist/src/util/index.min.mjs.map +0 -0
  1294. package/dist/src/util/index.mjs +0 -0
  1295. package/dist/src/util/index.mjs.map +0 -0
  1296. package/dist/src/util/internals/applyCanvasTransform.d.ts +0 -0
  1297. package/dist/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  1298. package/dist/src/util/internals/applyCanvasTransform.min.mjs +0 -0
  1299. package/dist/src/util/internals/applyCanvasTransform.min.mjs.map +0 -0
  1300. package/dist/src/util/internals/applyCanvasTransform.mjs +0 -0
  1301. package/dist/src/util/internals/applyCanvasTransform.mjs.map +0 -0
  1302. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  1303. package/dist/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  1304. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs +0 -0
  1305. package/dist/src/util/internals/cleanupSvgAttribute.min.mjs.map +0 -0
  1306. package/dist/src/util/internals/cleanupSvgAttribute.mjs +0 -0
  1307. package/dist/src/util/internals/cleanupSvgAttribute.mjs.map +0 -0
  1308. package/dist/src/util/internals/cloneStyles.d.ts +0 -0
  1309. package/dist/src/util/internals/cloneStyles.d.ts.map +0 -0
  1310. package/dist/src/util/internals/cloneStyles.min.mjs +0 -0
  1311. package/dist/src/util/internals/cloneStyles.min.mjs.map +0 -0
  1312. package/dist/src/util/internals/cloneStyles.mjs +0 -0
  1313. package/dist/src/util/internals/cloneStyles.mjs.map +0 -0
  1314. package/dist/src/util/internals/console.d.ts +0 -0
  1315. package/dist/src/util/internals/console.d.ts.map +0 -0
  1316. package/dist/src/util/internals/console.min.mjs +0 -0
  1317. package/dist/src/util/internals/console.min.mjs.map +0 -0
  1318. package/dist/src/util/internals/console.mjs +0 -0
  1319. package/dist/src/util/internals/console.mjs.map +0 -0
  1320. package/dist/src/util/internals/dom_style.d.ts +0 -0
  1321. package/dist/src/util/internals/dom_style.d.ts.map +0 -0
  1322. package/dist/src/util/internals/dom_style.min.mjs +0 -0
  1323. package/dist/src/util/internals/dom_style.min.mjs.map +0 -0
  1324. package/dist/src/util/internals/dom_style.mjs +0 -0
  1325. package/dist/src/util/internals/dom_style.mjs.map +0 -0
  1326. package/dist/src/util/internals/findRight.d.ts +0 -0
  1327. package/dist/src/util/internals/findRight.d.ts.map +0 -0
  1328. package/dist/src/util/internals/findRight.min.mjs +0 -0
  1329. package/dist/src/util/internals/findRight.min.mjs.map +0 -0
  1330. package/dist/src/util/internals/findRight.mjs +0 -0
  1331. package/dist/src/util/internals/findRight.mjs.map +0 -0
  1332. package/dist/src/util/internals/getRandomInt.d.ts +0 -0
  1333. package/dist/src/util/internals/getRandomInt.d.ts.map +0 -0
  1334. package/dist/src/util/internals/getRandomInt.min.mjs +0 -0
  1335. package/dist/src/util/internals/getRandomInt.min.mjs.map +0 -0
  1336. package/dist/src/util/internals/getRandomInt.mjs +0 -0
  1337. package/dist/src/util/internals/getRandomInt.mjs.map +0 -0
  1338. package/dist/src/util/internals/ifNaN.d.ts +0 -0
  1339. package/dist/src/util/internals/ifNaN.d.ts.map +0 -0
  1340. package/dist/src/util/internals/ifNaN.min.mjs +0 -0
  1341. package/dist/src/util/internals/ifNaN.min.mjs.map +0 -0
  1342. package/dist/src/util/internals/ifNaN.mjs +0 -0
  1343. package/dist/src/util/internals/ifNaN.mjs.map +0 -0
  1344. package/dist/src/util/internals/removeFromArray.d.ts +0 -0
  1345. package/dist/src/util/internals/removeFromArray.d.ts.map +0 -0
  1346. package/dist/src/util/internals/removeFromArray.min.mjs +0 -0
  1347. package/dist/src/util/internals/removeFromArray.min.mjs.map +0 -0
  1348. package/dist/src/util/internals/removeFromArray.mjs +0 -0
  1349. package/dist/src/util/internals/removeFromArray.mjs.map +0 -0
  1350. package/dist/src/util/internals/uid.d.ts +0 -0
  1351. package/dist/src/util/internals/uid.d.ts.map +0 -0
  1352. package/dist/src/util/internals/uid.min.mjs +0 -0
  1353. package/dist/src/util/internals/uid.min.mjs.map +0 -0
  1354. package/dist/src/util/internals/uid.mjs +0 -0
  1355. package/dist/src/util/internals/uid.mjs.map +0 -0
  1356. package/dist/src/util/lang_string.d.ts +0 -0
  1357. package/dist/src/util/lang_string.d.ts.map +0 -0
  1358. package/dist/src/util/lang_string.min.mjs +0 -0
  1359. package/dist/src/util/lang_string.min.mjs.map +0 -0
  1360. package/dist/src/util/lang_string.mjs +0 -0
  1361. package/dist/src/util/lang_string.mjs.map +0 -0
  1362. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  1363. package/dist/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  1364. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs +0 -0
  1365. package/dist/src/util/misc/boundingBoxFromPoints.min.mjs.map +0 -0
  1366. package/dist/src/util/misc/boundingBoxFromPoints.mjs +0 -0
  1367. package/dist/src/util/misc/boundingBoxFromPoints.mjs.map +0 -0
  1368. package/dist/src/util/misc/capValue.d.ts +0 -0
  1369. package/dist/src/util/misc/capValue.d.ts.map +0 -0
  1370. package/dist/src/util/misc/capValue.min.mjs +0 -0
  1371. package/dist/src/util/misc/capValue.min.mjs.map +0 -0
  1372. package/dist/src/util/misc/capValue.mjs +0 -0
  1373. package/dist/src/util/misc/capValue.mjs.map +0 -0
  1374. package/dist/src/util/misc/cornerRadius.d.ts +70 -0
  1375. package/dist/src/util/misc/cornerRadius.d.ts.map +1 -0
  1376. package/dist/src/util/misc/cornerRadius.min.mjs +2 -0
  1377. package/dist/src/util/misc/cornerRadius.min.mjs.map +1 -0
  1378. package/dist/src/util/misc/cornerRadius.mjs +181 -0
  1379. package/dist/src/util/misc/cornerRadius.mjs.map +1 -0
  1380. package/dist/src/util/misc/cos.d.ts +0 -0
  1381. package/dist/src/util/misc/cos.d.ts.map +0 -0
  1382. package/dist/src/util/misc/cos.min.mjs +0 -0
  1383. package/dist/src/util/misc/cos.min.mjs.map +0 -0
  1384. package/dist/src/util/misc/cos.mjs +0 -0
  1385. package/dist/src/util/misc/cos.mjs.map +0 -0
  1386. package/dist/src/util/misc/dom.d.ts +0 -0
  1387. package/dist/src/util/misc/dom.d.ts.map +0 -0
  1388. package/dist/src/util/misc/dom.min.mjs +0 -0
  1389. package/dist/src/util/misc/dom.min.mjs.map +0 -0
  1390. package/dist/src/util/misc/dom.mjs +0 -0
  1391. package/dist/src/util/misc/dom.mjs.map +0 -0
  1392. package/dist/src/util/misc/findScaleTo.d.ts +0 -0
  1393. package/dist/src/util/misc/findScaleTo.d.ts.map +0 -0
  1394. package/dist/src/util/misc/findScaleTo.min.mjs +0 -0
  1395. package/dist/src/util/misc/findScaleTo.min.mjs.map +0 -0
  1396. package/dist/src/util/misc/findScaleTo.mjs +0 -0
  1397. package/dist/src/util/misc/findScaleTo.mjs.map +0 -0
  1398. package/dist/src/util/misc/groupSVGElements.d.ts +0 -0
  1399. package/dist/src/util/misc/groupSVGElements.d.ts.map +0 -0
  1400. package/dist/src/util/misc/groupSVGElements.min.mjs +0 -0
  1401. package/dist/src/util/misc/groupSVGElements.min.mjs.map +0 -0
  1402. package/dist/src/util/misc/groupSVGElements.mjs +0 -0
  1403. package/dist/src/util/misc/groupSVGElements.mjs.map +0 -0
  1404. package/dist/src/util/misc/isTransparent.d.ts +0 -0
  1405. package/dist/src/util/misc/isTransparent.d.ts.map +0 -0
  1406. package/dist/src/util/misc/isTransparent.min.mjs +0 -0
  1407. package/dist/src/util/misc/isTransparent.min.mjs.map +0 -0
  1408. package/dist/src/util/misc/isTransparent.mjs +0 -0
  1409. package/dist/src/util/misc/isTransparent.mjs.map +0 -0
  1410. package/dist/src/util/misc/matrix.d.ts +0 -0
  1411. package/dist/src/util/misc/matrix.d.ts.map +0 -0
  1412. package/dist/src/util/misc/matrix.min.mjs +0 -0
  1413. package/dist/src/util/misc/matrix.min.mjs.map +0 -0
  1414. package/dist/src/util/misc/matrix.mjs +0 -0
  1415. package/dist/src/util/misc/matrix.mjs.map +0 -0
  1416. package/dist/src/util/misc/mergeClipPaths.d.ts +0 -0
  1417. package/dist/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  1418. package/dist/src/util/misc/mergeClipPaths.min.mjs +0 -0
  1419. package/dist/src/util/misc/mergeClipPaths.min.mjs.map +0 -0
  1420. package/dist/src/util/misc/mergeClipPaths.mjs +0 -0
  1421. package/dist/src/util/misc/mergeClipPaths.mjs.map +0 -0
  1422. package/dist/src/util/misc/objectEnlive.d.ts +0 -0
  1423. package/dist/src/util/misc/objectEnlive.d.ts.map +0 -0
  1424. package/dist/src/util/misc/objectEnlive.min.mjs +0 -0
  1425. package/dist/src/util/misc/objectEnlive.min.mjs.map +0 -0
  1426. package/dist/src/util/misc/objectEnlive.mjs +0 -0
  1427. package/dist/src/util/misc/objectEnlive.mjs.map +0 -0
  1428. package/dist/src/util/misc/objectTransforms.d.ts +0 -0
  1429. package/dist/src/util/misc/objectTransforms.d.ts.map +0 -0
  1430. package/dist/src/util/misc/objectTransforms.min.mjs +0 -0
  1431. package/dist/src/util/misc/objectTransforms.min.mjs.map +0 -0
  1432. package/dist/src/util/misc/objectTransforms.mjs +0 -0
  1433. package/dist/src/util/misc/objectTransforms.mjs.map +0 -0
  1434. package/dist/src/util/misc/pick.d.ts +0 -0
  1435. package/dist/src/util/misc/pick.d.ts.map +0 -0
  1436. package/dist/src/util/misc/pick.min.mjs +0 -0
  1437. package/dist/src/util/misc/pick.min.mjs.map +0 -0
  1438. package/dist/src/util/misc/pick.mjs +0 -0
  1439. package/dist/src/util/misc/pick.mjs.map +0 -0
  1440. package/dist/src/util/misc/planeChange.d.ts +0 -0
  1441. package/dist/src/util/misc/planeChange.d.ts.map +0 -0
  1442. package/dist/src/util/misc/planeChange.min.mjs +0 -0
  1443. package/dist/src/util/misc/planeChange.min.mjs.map +0 -0
  1444. package/dist/src/util/misc/planeChange.mjs +0 -0
  1445. package/dist/src/util/misc/planeChange.mjs.map +0 -0
  1446. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  1447. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  1448. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs +0 -0
  1449. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.min.mjs.map +0 -0
  1450. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs +0 -0
  1451. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.mjs.map +0 -0
  1452. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  1453. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  1454. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs +0 -0
  1455. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.min.mjs.map +0 -0
  1456. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs +0 -0
  1457. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.mjs.map +0 -0
  1458. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  1459. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  1460. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs +0 -0
  1461. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.min.mjs.map +0 -0
  1462. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs +0 -0
  1463. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.mjs.map +0 -0
  1464. package/dist/src/util/misc/projectStroke/index.d.ts +0 -0
  1465. package/dist/src/util/misc/projectStroke/index.d.ts.map +0 -0
  1466. package/dist/src/util/misc/projectStroke/index.min.mjs +0 -0
  1467. package/dist/src/util/misc/projectStroke/index.min.mjs.map +0 -0
  1468. package/dist/src/util/misc/projectStroke/index.mjs +0 -0
  1469. package/dist/src/util/misc/projectStroke/index.mjs.map +0 -0
  1470. package/dist/src/util/misc/projectStroke/types.d.ts +0 -0
  1471. package/dist/src/util/misc/projectStroke/types.d.ts.map +0 -0
  1472. package/dist/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  1473. package/dist/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  1474. package/dist/src/util/misc/radiansDegreesConversion.min.mjs +0 -0
  1475. package/dist/src/util/misc/radiansDegreesConversion.min.mjs.map +0 -0
  1476. package/dist/src/util/misc/radiansDegreesConversion.mjs +0 -0
  1477. package/dist/src/util/misc/radiansDegreesConversion.mjs.map +0 -0
  1478. package/dist/src/util/misc/resolveOrigin.d.ts +0 -0
  1479. package/dist/src/util/misc/resolveOrigin.d.ts.map +0 -0
  1480. package/dist/src/util/misc/resolveOrigin.min.mjs +0 -0
  1481. package/dist/src/util/misc/resolveOrigin.min.mjs.map +0 -0
  1482. package/dist/src/util/misc/resolveOrigin.mjs +0 -0
  1483. package/dist/src/util/misc/resolveOrigin.mjs.map +0 -0
  1484. package/dist/src/util/misc/sin.d.ts +0 -0
  1485. package/dist/src/util/misc/sin.d.ts.map +0 -0
  1486. package/dist/src/util/misc/sin.min.mjs +0 -0
  1487. package/dist/src/util/misc/sin.min.mjs.map +0 -0
  1488. package/dist/src/util/misc/sin.mjs +0 -0
  1489. package/dist/src/util/misc/sin.mjs.map +0 -0
  1490. package/dist/src/util/misc/svgExport.d.ts +0 -0
  1491. package/dist/src/util/misc/svgExport.d.ts.map +0 -0
  1492. package/dist/src/util/misc/svgExport.min.mjs +0 -0
  1493. package/dist/src/util/misc/svgExport.min.mjs.map +0 -0
  1494. package/dist/src/util/misc/svgExport.mjs +0 -0
  1495. package/dist/src/util/misc/svgExport.mjs.map +0 -0
  1496. package/dist/src/util/misc/svgParsing.d.ts +0 -0
  1497. package/dist/src/util/misc/svgParsing.d.ts.map +0 -0
  1498. package/dist/src/util/misc/svgParsing.min.mjs +0 -0
  1499. package/dist/src/util/misc/svgParsing.min.mjs.map +0 -0
  1500. package/dist/src/util/misc/svgParsing.mjs +0 -0
  1501. package/dist/src/util/misc/svgParsing.mjs.map +0 -0
  1502. package/dist/src/util/misc/textStyles.d.ts +0 -0
  1503. package/dist/src/util/misc/textStyles.d.ts.map +0 -0
  1504. package/dist/src/util/misc/textStyles.min.mjs +0 -0
  1505. package/dist/src/util/misc/textStyles.min.mjs.map +0 -0
  1506. package/dist/src/util/misc/textStyles.mjs +0 -0
  1507. package/dist/src/util/misc/textStyles.mjs.map +0 -0
  1508. package/dist/src/util/misc/toFixed.d.ts +0 -0
  1509. package/dist/src/util/misc/toFixed.d.ts.map +0 -0
  1510. package/dist/src/util/misc/toFixed.min.mjs +0 -0
  1511. package/dist/src/util/misc/toFixed.min.mjs.map +0 -0
  1512. package/dist/src/util/misc/toFixed.mjs +0 -0
  1513. package/dist/src/util/misc/toFixed.mjs.map +0 -0
  1514. package/dist/src/util/misc/vectors.d.ts +0 -0
  1515. package/dist/src/util/misc/vectors.d.ts.map +0 -0
  1516. package/dist/src/util/misc/vectors.min.mjs +0 -0
  1517. package/dist/src/util/misc/vectors.min.mjs.map +0 -0
  1518. package/dist/src/util/misc/vectors.mjs +0 -0
  1519. package/dist/src/util/misc/vectors.mjs.map +0 -0
  1520. package/dist/src/util/path/index.d.ts +0 -0
  1521. package/dist/src/util/path/index.d.ts.map +0 -0
  1522. package/dist/src/util/path/index.min.mjs +0 -0
  1523. package/dist/src/util/path/index.min.mjs.map +0 -0
  1524. package/dist/src/util/path/index.mjs +0 -0
  1525. package/dist/src/util/path/index.mjs.map +0 -0
  1526. package/dist/src/util/path/regex.d.ts +0 -0
  1527. package/dist/src/util/path/regex.d.ts.map +0 -0
  1528. package/dist/src/util/path/regex.min.mjs +0 -0
  1529. package/dist/src/util/path/regex.min.mjs.map +0 -0
  1530. package/dist/src/util/path/regex.mjs +0 -0
  1531. package/dist/src/util/path/regex.mjs.map +0 -0
  1532. package/dist/src/util/path/typechecks.d.ts +0 -0
  1533. package/dist/src/util/path/typechecks.d.ts.map +0 -0
  1534. package/dist/src/util/path/typedefs.d.ts +0 -0
  1535. package/dist/src/util/path/typedefs.d.ts.map +0 -0
  1536. package/dist/src/util/transform_matrix_removal.d.ts +0 -0
  1537. package/dist/src/util/transform_matrix_removal.d.ts.map +0 -0
  1538. package/dist/src/util/transform_matrix_removal.min.mjs +0 -0
  1539. package/dist/src/util/transform_matrix_removal.min.mjs.map +0 -0
  1540. package/dist/src/util/transform_matrix_removal.mjs +0 -0
  1541. package/dist/src/util/transform_matrix_removal.mjs.map +0 -0
  1542. package/dist/src/util/typeAssertions.d.ts +0 -0
  1543. package/dist/src/util/typeAssertions.d.ts.map +0 -0
  1544. package/dist/src/util/typeAssertions.min.mjs +0 -0
  1545. package/dist/src/util/typeAssertions.min.mjs.map +0 -0
  1546. package/dist/src/util/typeAssertions.mjs +0 -0
  1547. package/dist/src/util/typeAssertions.mjs.map +0 -0
  1548. package/dist-extensions/aligning_guidelines/constant.mjs +0 -0
  1549. package/dist-extensions/aligning_guidelines/constant.mjs.map +0 -0
  1550. package/dist-extensions/aligning_guidelines/index.mjs +0 -0
  1551. package/dist-extensions/aligning_guidelines/index.mjs.map +0 -0
  1552. package/dist-extensions/aligning_guidelines/util/basic.mjs +0 -0
  1553. package/dist-extensions/aligning_guidelines/util/basic.mjs.map +0 -0
  1554. package/dist-extensions/aligning_guidelines/util/collect-line.mjs +0 -0
  1555. package/dist-extensions/aligning_guidelines/util/collect-line.mjs.map +0 -0
  1556. package/dist-extensions/aligning_guidelines/util/collect-point.mjs +0 -0
  1557. package/dist-extensions/aligning_guidelines/util/collect-point.mjs.map +0 -0
  1558. package/dist-extensions/aligning_guidelines/util/draw.mjs +0 -0
  1559. package/dist-extensions/aligning_guidelines/util/draw.mjs.map +0 -0
  1560. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs +0 -0
  1561. package/dist-extensions/aligning_guidelines/util/get-objects-by-target.mjs.map +0 -0
  1562. package/dist-extensions/data_updaters/gradient/index.mjs +0 -0
  1563. package/dist-extensions/data_updaters/gradient/index.mjs.map +0 -0
  1564. package/dist-extensions/data_updaters/origins/index.mjs +0 -0
  1565. package/dist-extensions/data_updaters/origins/index.mjs.map +0 -0
  1566. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts +0 -0
  1567. package/dist-extensions/extensions/aligning_guidelines/constant.d.ts.map +0 -0
  1568. package/dist-extensions/extensions/aligning_guidelines/index.d.ts +0 -0
  1569. package/dist-extensions/extensions/aligning_guidelines/index.d.ts.map +0 -0
  1570. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts +0 -0
  1571. package/dist-extensions/extensions/aligning_guidelines/typedefs.d.ts.map +0 -0
  1572. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts +0 -0
  1573. package/dist-extensions/extensions/aligning_guidelines/util/basic.d.ts.map +0 -0
  1574. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts +0 -0
  1575. package/dist-extensions/extensions/aligning_guidelines/util/collect-line.d.ts.map +0 -0
  1576. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts +0 -0
  1577. package/dist-extensions/extensions/aligning_guidelines/util/collect-point.d.ts.map +0 -0
  1578. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts +0 -0
  1579. package/dist-extensions/extensions/aligning_guidelines/util/draw.d.ts.map +0 -0
  1580. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts +0 -0
  1581. package/dist-extensions/extensions/aligning_guidelines/util/get-objects-by-target.d.ts.map +0 -0
  1582. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts +0 -0
  1583. package/dist-extensions/extensions/data_updaters/gradient/index.d.ts.map +0 -0
  1584. package/dist-extensions/extensions/data_updaters/origins/index.d.ts +0 -0
  1585. package/dist-extensions/extensions/data_updaters/origins/index.d.ts.map +0 -0
  1586. package/dist-extensions/extensions/index.d.ts +0 -0
  1587. package/dist-extensions/extensions/index.d.ts.map +0 -0
  1588. package/dist-extensions/fabric-extensions.min.js +0 -0
  1589. package/dist-extensions/fabric-extensions.min.js.map +0 -0
  1590. package/dist-extensions/fabric.d.ts +0 -0
  1591. package/dist-extensions/fabric.d.ts.map +0 -0
  1592. package/dist-extensions/index.d.ts +0 -0
  1593. package/dist-extensions/index.d.ts.map +0 -0
  1594. package/dist-extensions/index.mjs +0 -0
  1595. package/dist-extensions/index.mjs.map +0 -0
  1596. package/dist-extensions/src/ClassRegistry.d.ts +0 -0
  1597. package/dist-extensions/src/ClassRegistry.d.ts.map +0 -0
  1598. package/dist-extensions/src/Collection.d.ts +0 -0
  1599. package/dist-extensions/src/Collection.d.ts.map +0 -0
  1600. package/dist-extensions/src/CommonMethods.d.ts +0 -0
  1601. package/dist-extensions/src/CommonMethods.d.ts.map +0 -0
  1602. package/dist-extensions/src/EventTypeDefs.d.ts +0 -0
  1603. package/dist-extensions/src/EventTypeDefs.d.ts.map +0 -0
  1604. package/dist-extensions/src/Intersection.d.ts +0 -0
  1605. package/dist-extensions/src/Intersection.d.ts.map +0 -0
  1606. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts +0 -0
  1607. package/dist-extensions/src/LayoutManager/ActiveSelectionLayoutManager.d.ts.map +0 -0
  1608. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts +0 -0
  1609. package/dist-extensions/src/LayoutManager/LayoutManager.d.ts.map +0 -0
  1610. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts +0 -0
  1611. package/dist-extensions/src/LayoutManager/LayoutStrategies/ClipPathLayout.d.ts.map +0 -0
  1612. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts +0 -0
  1613. package/dist-extensions/src/LayoutManager/LayoutStrategies/FitContentLayout.d.ts.map +0 -0
  1614. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts +0 -0
  1615. package/dist-extensions/src/LayoutManager/LayoutStrategies/FixedLayout.d.ts.map +0 -0
  1616. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts +0 -0
  1617. package/dist-extensions/src/LayoutManager/LayoutStrategies/LayoutStrategy.d.ts.map +0 -0
  1618. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts +0 -0
  1619. package/dist-extensions/src/LayoutManager/LayoutStrategies/utils.d.ts.map +0 -0
  1620. package/dist-extensions/src/LayoutManager/constants.d.ts +0 -0
  1621. package/dist-extensions/src/LayoutManager/constants.d.ts.map +0 -0
  1622. package/dist-extensions/src/LayoutManager/index.d.ts +0 -0
  1623. package/dist-extensions/src/LayoutManager/index.d.ts.map +0 -0
  1624. package/dist-extensions/src/LayoutManager/types.d.ts +0 -0
  1625. package/dist-extensions/src/LayoutManager/types.d.ts.map +0 -0
  1626. package/dist-extensions/src/Observable.d.ts +0 -0
  1627. package/dist-extensions/src/Observable.d.ts.map +0 -0
  1628. package/dist-extensions/src/Pattern/Pattern.d.ts +0 -0
  1629. package/dist-extensions/src/Pattern/Pattern.d.ts.map +0 -0
  1630. package/dist-extensions/src/Pattern/index.d.ts +0 -0
  1631. package/dist-extensions/src/Pattern/index.d.ts.map +0 -0
  1632. package/dist-extensions/src/Pattern/types.d.ts +0 -0
  1633. package/dist-extensions/src/Pattern/types.d.ts.map +0 -0
  1634. package/dist-extensions/src/Point.d.ts +0 -0
  1635. package/dist-extensions/src/Point.d.ts.map +0 -0
  1636. package/dist-extensions/src/Shadow.d.ts +0 -0
  1637. package/dist-extensions/src/Shadow.d.ts.map +0 -0
  1638. package/dist-extensions/src/brushes/BaseBrush.d.ts +0 -0
  1639. package/dist-extensions/src/brushes/BaseBrush.d.ts.map +0 -0
  1640. package/dist-extensions/src/brushes/CircleBrush.d.ts +0 -0
  1641. package/dist-extensions/src/brushes/CircleBrush.d.ts.map +0 -0
  1642. package/dist-extensions/src/brushes/PatternBrush.d.ts +0 -0
  1643. package/dist-extensions/src/brushes/PatternBrush.d.ts.map +0 -0
  1644. package/dist-extensions/src/brushes/PencilBrush.d.ts +0 -0
  1645. package/dist-extensions/src/brushes/PencilBrush.d.ts.map +0 -0
  1646. package/dist-extensions/src/brushes/SprayBrush.d.ts +0 -0
  1647. package/dist-extensions/src/brushes/SprayBrush.d.ts.map +0 -0
  1648. package/dist-extensions/src/brushes/typedefs.d.ts +0 -0
  1649. package/dist-extensions/src/brushes/typedefs.d.ts.map +0 -0
  1650. package/dist-extensions/src/cache.d.ts +0 -0
  1651. package/dist-extensions/src/cache.d.ts.map +0 -0
  1652. package/dist-extensions/src/canvas/Canvas.d.ts +0 -0
  1653. package/dist-extensions/src/canvas/Canvas.d.ts.map +0 -0
  1654. package/dist-extensions/src/canvas/CanvasOptions.d.ts +0 -0
  1655. package/dist-extensions/src/canvas/CanvasOptions.d.ts.map +0 -0
  1656. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts +0 -0
  1657. package/dist-extensions/src/canvas/DOMManagers/CanvasDOMManager.d.ts.map +0 -0
  1658. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +0 -0
  1659. package/dist-extensions/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts.map +0 -0
  1660. package/dist-extensions/src/canvas/DOMManagers/util.d.ts +0 -0
  1661. package/dist-extensions/src/canvas/DOMManagers/util.d.ts.map +0 -0
  1662. package/dist-extensions/src/canvas/SelectableCanvas.d.ts +0 -0
  1663. package/dist-extensions/src/canvas/SelectableCanvas.d.ts.map +0 -0
  1664. package/dist-extensions/src/canvas/StaticCanvas.d.ts +0 -0
  1665. package/dist-extensions/src/canvas/StaticCanvas.d.ts.map +0 -0
  1666. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts +0 -0
  1667. package/dist-extensions/src/canvas/StaticCanvasOptions.d.ts.map +0 -0
  1668. package/dist-extensions/src/canvas/TextEditingManager.d.ts +0 -0
  1669. package/dist-extensions/src/canvas/TextEditingManager.d.ts.map +0 -0
  1670. package/dist-extensions/src/color/Color.d.ts +0 -0
  1671. package/dist-extensions/src/color/Color.d.ts.map +0 -0
  1672. package/dist-extensions/src/color/color_map.d.ts +0 -0
  1673. package/dist-extensions/src/color/color_map.d.ts.map +0 -0
  1674. package/dist-extensions/src/color/constants.d.ts +0 -0
  1675. package/dist-extensions/src/color/constants.d.ts.map +0 -0
  1676. package/dist-extensions/src/color/typedefs.d.ts +0 -0
  1677. package/dist-extensions/src/color/typedefs.d.ts.map +0 -0
  1678. package/dist-extensions/src/color/util.d.ts +0 -0
  1679. package/dist-extensions/src/color/util.d.ts.map +0 -0
  1680. package/dist-extensions/src/config.d.ts +0 -0
  1681. package/dist-extensions/src/config.d.ts.map +0 -0
  1682. package/dist-extensions/src/constants.d.ts +0 -0
  1683. package/dist-extensions/src/constants.d.ts.map +0 -0
  1684. package/dist-extensions/src/controls/Control.d.ts +0 -0
  1685. package/dist-extensions/src/controls/Control.d.ts.map +0 -0
  1686. package/dist-extensions/src/controls/changeHeight.d.ts +0 -0
  1687. package/dist-extensions/src/controls/changeHeight.d.ts.map +0 -0
  1688. package/dist-extensions/src/controls/changeWidth.d.ts +0 -0
  1689. package/dist-extensions/src/controls/changeWidth.d.ts.map +0 -0
  1690. package/dist-extensions/src/controls/commonControls.d.ts +0 -0
  1691. package/dist-extensions/src/controls/commonControls.d.ts.map +0 -0
  1692. package/dist-extensions/src/controls/controlRendering.d.ts +0 -0
  1693. package/dist-extensions/src/controls/controlRendering.d.ts.map +0 -0
  1694. package/dist-extensions/src/controls/drag.d.ts +0 -0
  1695. package/dist-extensions/src/controls/drag.d.ts.map +0 -0
  1696. package/dist-extensions/src/controls/fireEvent.d.ts +0 -0
  1697. package/dist-extensions/src/controls/fireEvent.d.ts.map +0 -0
  1698. package/dist-extensions/src/controls/index.d.ts +0 -0
  1699. package/dist-extensions/src/controls/index.d.ts.map +0 -0
  1700. package/dist-extensions/src/controls/pathControl.d.ts +0 -0
  1701. package/dist-extensions/src/controls/pathControl.d.ts.map +0 -0
  1702. package/dist-extensions/src/controls/polyControl.d.ts +0 -0
  1703. package/dist-extensions/src/controls/polyControl.d.ts.map +0 -0
  1704. package/dist-extensions/src/controls/rotate.d.ts +0 -0
  1705. package/dist-extensions/src/controls/rotate.d.ts.map +0 -0
  1706. package/dist-extensions/src/controls/scale.d.ts +0 -0
  1707. package/dist-extensions/src/controls/scale.d.ts.map +0 -0
  1708. package/dist-extensions/src/controls/scaleSkew.d.ts +0 -0
  1709. package/dist-extensions/src/controls/scaleSkew.d.ts.map +0 -0
  1710. package/dist-extensions/src/controls/skew.d.ts +0 -0
  1711. package/dist-extensions/src/controls/skew.d.ts.map +0 -0
  1712. package/dist-extensions/src/controls/util.d.ts +0 -0
  1713. package/dist-extensions/src/controls/util.d.ts.map +0 -0
  1714. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts +0 -0
  1715. package/dist-extensions/src/controls/wrapWithFireEvent.d.ts.map +0 -0
  1716. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts +0 -0
  1717. package/dist-extensions/src/controls/wrapWithFixedAnchor.d.ts.map +0 -0
  1718. package/dist-extensions/src/env/browser.d.ts +0 -0
  1719. package/dist-extensions/src/env/browser.d.ts.map +0 -0
  1720. package/dist-extensions/src/env/index.d.ts +0 -0
  1721. package/dist-extensions/src/env/index.d.ts.map +0 -0
  1722. package/dist-extensions/src/env/types.d.ts +0 -0
  1723. package/dist-extensions/src/env/types.d.ts.map +0 -0
  1724. package/dist-extensions/src/filters/BaseFilter.d.ts +0 -0
  1725. package/dist-extensions/src/filters/BaseFilter.d.ts.map +0 -0
  1726. package/dist-extensions/src/filters/BlendColor.d.ts +0 -0
  1727. package/dist-extensions/src/filters/BlendColor.d.ts.map +0 -0
  1728. package/dist-extensions/src/filters/BlendImage.d.ts +0 -0
  1729. package/dist-extensions/src/filters/BlendImage.d.ts.map +0 -0
  1730. package/dist-extensions/src/filters/Blur.d.ts +0 -0
  1731. package/dist-extensions/src/filters/Blur.d.ts.map +0 -0
  1732. package/dist-extensions/src/filters/Brightness.d.ts +0 -0
  1733. package/dist-extensions/src/filters/Brightness.d.ts.map +0 -0
  1734. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts +0 -0
  1735. package/dist-extensions/src/filters/Canvas2dFilterBackend.d.ts.map +0 -0
  1736. package/dist-extensions/src/filters/ColorMatrix.d.ts +0 -0
  1737. package/dist-extensions/src/filters/ColorMatrix.d.ts.map +0 -0
  1738. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts +0 -0
  1739. package/dist-extensions/src/filters/ColorMatrixFilters.d.ts.map +0 -0
  1740. package/dist-extensions/src/filters/Composed.d.ts +0 -0
  1741. package/dist-extensions/src/filters/Composed.d.ts.map +0 -0
  1742. package/dist-extensions/src/filters/Contrast.d.ts +0 -0
  1743. package/dist-extensions/src/filters/Contrast.d.ts.map +0 -0
  1744. package/dist-extensions/src/filters/Convolute.d.ts +0 -0
  1745. package/dist-extensions/src/filters/Convolute.d.ts.map +0 -0
  1746. package/dist-extensions/src/filters/FilterBackend.d.ts +0 -0
  1747. package/dist-extensions/src/filters/FilterBackend.d.ts.map +0 -0
  1748. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts +0 -0
  1749. package/dist-extensions/src/filters/GLProbes/GLProbe.d.ts.map +0 -0
  1750. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts +0 -0
  1751. package/dist-extensions/src/filters/GLProbes/WebGLProbe.d.ts.map +0 -0
  1752. package/dist-extensions/src/filters/Gamma.d.ts +0 -0
  1753. package/dist-extensions/src/filters/Gamma.d.ts.map +0 -0
  1754. package/dist-extensions/src/filters/Grayscale.d.ts +0 -0
  1755. package/dist-extensions/src/filters/Grayscale.d.ts.map +0 -0
  1756. package/dist-extensions/src/filters/HueRotation.d.ts +0 -0
  1757. package/dist-extensions/src/filters/HueRotation.d.ts.map +0 -0
  1758. package/dist-extensions/src/filters/Invert.d.ts +0 -0
  1759. package/dist-extensions/src/filters/Invert.d.ts.map +0 -0
  1760. package/dist-extensions/src/filters/Noise.d.ts +0 -0
  1761. package/dist-extensions/src/filters/Noise.d.ts.map +0 -0
  1762. package/dist-extensions/src/filters/Pixelate.d.ts +0 -0
  1763. package/dist-extensions/src/filters/Pixelate.d.ts.map +0 -0
  1764. package/dist-extensions/src/filters/RemoveColor.d.ts +0 -0
  1765. package/dist-extensions/src/filters/RemoveColor.d.ts.map +0 -0
  1766. package/dist-extensions/src/filters/Resize.d.ts +0 -0
  1767. package/dist-extensions/src/filters/Resize.d.ts.map +0 -0
  1768. package/dist-extensions/src/filters/Saturation.d.ts +0 -0
  1769. package/dist-extensions/src/filters/Saturation.d.ts.map +0 -0
  1770. package/dist-extensions/src/filters/Vibrance.d.ts +0 -0
  1771. package/dist-extensions/src/filters/Vibrance.d.ts.map +0 -0
  1772. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts +0 -0
  1773. package/dist-extensions/src/filters/WebGLFilterBackend.d.ts.map +0 -0
  1774. package/dist-extensions/src/filters/filters.d.ts +0 -0
  1775. package/dist-extensions/src/filters/filters.d.ts.map +0 -0
  1776. package/dist-extensions/src/filters/index.d.ts +0 -0
  1777. package/dist-extensions/src/filters/index.d.ts.map +0 -0
  1778. package/dist-extensions/src/filters/shaders/baseFilter.d.ts +0 -0
  1779. package/dist-extensions/src/filters/shaders/baseFilter.d.ts.map +0 -0
  1780. package/dist-extensions/src/filters/shaders/blendColor.d.ts +0 -0
  1781. package/dist-extensions/src/filters/shaders/blendColor.d.ts.map +0 -0
  1782. package/dist-extensions/src/filters/shaders/blendImage.d.ts +0 -0
  1783. package/dist-extensions/src/filters/shaders/blendImage.d.ts.map +0 -0
  1784. package/dist-extensions/src/filters/shaders/blur.d.ts +0 -0
  1785. package/dist-extensions/src/filters/shaders/blur.d.ts.map +0 -0
  1786. package/dist-extensions/src/filters/shaders/brightness.d.ts +0 -0
  1787. package/dist-extensions/src/filters/shaders/brightness.d.ts.map +0 -0
  1788. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts +0 -0
  1789. package/dist-extensions/src/filters/shaders/colorMatrix.d.ts.map +0 -0
  1790. package/dist-extensions/src/filters/shaders/constrast.d.ts +0 -0
  1791. package/dist-extensions/src/filters/shaders/constrast.d.ts.map +0 -0
  1792. package/dist-extensions/src/filters/shaders/convolute.d.ts +0 -0
  1793. package/dist-extensions/src/filters/shaders/convolute.d.ts.map +0 -0
  1794. package/dist-extensions/src/filters/shaders/gamma.d.ts +0 -0
  1795. package/dist-extensions/src/filters/shaders/gamma.d.ts.map +0 -0
  1796. package/dist-extensions/src/filters/shaders/grayscale.d.ts +0 -0
  1797. package/dist-extensions/src/filters/shaders/grayscale.d.ts.map +0 -0
  1798. package/dist-extensions/src/filters/shaders/invert.d.ts +0 -0
  1799. package/dist-extensions/src/filters/shaders/invert.d.ts.map +0 -0
  1800. package/dist-extensions/src/filters/shaders/noise.d.ts +0 -0
  1801. package/dist-extensions/src/filters/shaders/noise.d.ts.map +0 -0
  1802. package/dist-extensions/src/filters/shaders/pixelate.d.ts +0 -0
  1803. package/dist-extensions/src/filters/shaders/pixelate.d.ts.map +0 -0
  1804. package/dist-extensions/src/filters/shaders/removeColor.d.ts +0 -0
  1805. package/dist-extensions/src/filters/shaders/removeColor.d.ts.map +0 -0
  1806. package/dist-extensions/src/filters/shaders/saturation.d.ts +0 -0
  1807. package/dist-extensions/src/filters/shaders/saturation.d.ts.map +0 -0
  1808. package/dist-extensions/src/filters/shaders/vibrance.d.ts +0 -0
  1809. package/dist-extensions/src/filters/shaders/vibrance.d.ts.map +0 -0
  1810. package/dist-extensions/src/filters/typedefs.d.ts +0 -0
  1811. package/dist-extensions/src/filters/typedefs.d.ts.map +0 -0
  1812. package/dist-extensions/src/filters/utils.d.ts +0 -0
  1813. package/dist-extensions/src/filters/utils.d.ts.map +0 -0
  1814. package/dist-extensions/src/gradient/Gradient.d.ts +0 -0
  1815. package/dist-extensions/src/gradient/Gradient.d.ts.map +0 -0
  1816. package/dist-extensions/src/gradient/constants.d.ts +0 -0
  1817. package/dist-extensions/src/gradient/constants.d.ts.map +0 -0
  1818. package/dist-extensions/src/gradient/index.d.ts +0 -0
  1819. package/dist-extensions/src/gradient/index.d.ts.map +0 -0
  1820. package/dist-extensions/src/gradient/parser/misc.d.ts +0 -0
  1821. package/dist-extensions/src/gradient/parser/misc.d.ts.map +0 -0
  1822. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts +0 -0
  1823. package/dist-extensions/src/gradient/parser/parseColorStops.d.ts.map +0 -0
  1824. package/dist-extensions/src/gradient/parser/parseCoords.d.ts +0 -0
  1825. package/dist-extensions/src/gradient/parser/parseCoords.d.ts.map +0 -0
  1826. package/dist-extensions/src/gradient/typedefs.d.ts +0 -0
  1827. package/dist-extensions/src/gradient/typedefs.d.ts.map +0 -0
  1828. package/dist-extensions/src/parser/applyViewboxTransform.d.ts +0 -0
  1829. package/dist-extensions/src/parser/applyViewboxTransform.d.ts.map +0 -0
  1830. package/dist-extensions/src/parser/attributes.d.ts +0 -0
  1831. package/dist-extensions/src/parser/attributes.d.ts.map +0 -0
  1832. package/dist-extensions/src/parser/constants.d.ts +0 -0
  1833. package/dist-extensions/src/parser/constants.d.ts.map +0 -0
  1834. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts +0 -0
  1835. package/dist-extensions/src/parser/doesSomeParentMatch.d.ts.map +0 -0
  1836. package/dist-extensions/src/parser/elementMatchesRule.d.ts +0 -0
  1837. package/dist-extensions/src/parser/elementMatchesRule.d.ts.map +0 -0
  1838. package/dist-extensions/src/parser/elements_parser.d.ts +0 -0
  1839. package/dist-extensions/src/parser/elements_parser.d.ts.map +0 -0
  1840. package/dist-extensions/src/parser/getCSSRules.d.ts +0 -0
  1841. package/dist-extensions/src/parser/getCSSRules.d.ts.map +0 -0
  1842. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts +0 -0
  1843. package/dist-extensions/src/parser/getGlobalStylesForElement.d.ts.map +0 -0
  1844. package/dist-extensions/src/parser/getGradientDefs.d.ts +0 -0
  1845. package/dist-extensions/src/parser/getGradientDefs.d.ts.map +0 -0
  1846. package/dist-extensions/src/parser/getMultipleNodes.d.ts +0 -0
  1847. package/dist-extensions/src/parser/getMultipleNodes.d.ts.map +0 -0
  1848. package/dist-extensions/src/parser/getSvgRegex.d.ts +0 -0
  1849. package/dist-extensions/src/parser/getSvgRegex.d.ts.map +0 -0
  1850. package/dist-extensions/src/parser/getTagName.d.ts +0 -0
  1851. package/dist-extensions/src/parser/getTagName.d.ts.map +0 -0
  1852. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts +0 -0
  1853. package/dist-extensions/src/parser/hasInvalidAncestor.d.ts.map +0 -0
  1854. package/dist-extensions/src/parser/loadSVGFromString.d.ts +0 -0
  1855. package/dist-extensions/src/parser/loadSVGFromString.d.ts.map +0 -0
  1856. package/dist-extensions/src/parser/loadSVGFromURL.d.ts +0 -0
  1857. package/dist-extensions/src/parser/loadSVGFromURL.d.ts.map +0 -0
  1858. package/dist-extensions/src/parser/normalizeAttr.d.ts +0 -0
  1859. package/dist-extensions/src/parser/normalizeAttr.d.ts.map +0 -0
  1860. package/dist-extensions/src/parser/normalizeValue.d.ts +0 -0
  1861. package/dist-extensions/src/parser/normalizeValue.d.ts.map +0 -0
  1862. package/dist-extensions/src/parser/parseAttributes.d.ts +0 -0
  1863. package/dist-extensions/src/parser/parseAttributes.d.ts.map +0 -0
  1864. package/dist-extensions/src/parser/parseFontDeclaration.d.ts +0 -0
  1865. package/dist-extensions/src/parser/parseFontDeclaration.d.ts.map +0 -0
  1866. package/dist-extensions/src/parser/parsePointsAttribute.d.ts +0 -0
  1867. package/dist-extensions/src/parser/parsePointsAttribute.d.ts.map +0 -0
  1868. package/dist-extensions/src/parser/parseSVGDocument.d.ts +0 -0
  1869. package/dist-extensions/src/parser/parseSVGDocument.d.ts.map +0 -0
  1870. package/dist-extensions/src/parser/parseStyleAttribute.d.ts +0 -0
  1871. package/dist-extensions/src/parser/parseStyleAttribute.d.ts.map +0 -0
  1872. package/dist-extensions/src/parser/parseStyleObject.d.ts +0 -0
  1873. package/dist-extensions/src/parser/parseStyleObject.d.ts.map +0 -0
  1874. package/dist-extensions/src/parser/parseStyleString.d.ts +0 -0
  1875. package/dist-extensions/src/parser/parseStyleString.d.ts.map +0 -0
  1876. package/dist-extensions/src/parser/parseTransformAttribute.d.ts +0 -0
  1877. package/dist-extensions/src/parser/parseTransformAttribute.d.ts.map +0 -0
  1878. package/dist-extensions/src/parser/parseUseDirectives.d.ts +0 -0
  1879. package/dist-extensions/src/parser/parseUseDirectives.d.ts.map +0 -0
  1880. package/dist-extensions/src/parser/percent.d.ts +0 -0
  1881. package/dist-extensions/src/parser/percent.d.ts.map +0 -0
  1882. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts +0 -0
  1883. package/dist-extensions/src/parser/recursivelyParseGradientsXlink.d.ts.map +0 -0
  1884. package/dist-extensions/src/parser/selectorMatches.d.ts +0 -0
  1885. package/dist-extensions/src/parser/selectorMatches.d.ts.map +0 -0
  1886. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts +0 -0
  1887. package/dist-extensions/src/parser/setStrokeFillOpacity.d.ts.map +0 -0
  1888. package/dist-extensions/src/parser/typedefs.d.ts +0 -0
  1889. package/dist-extensions/src/parser/typedefs.d.ts.map +0 -0
  1890. package/dist-extensions/src/shapes/ActiveSelection.d.ts +0 -0
  1891. package/dist-extensions/src/shapes/ActiveSelection.d.ts.map +0 -0
  1892. package/dist-extensions/src/shapes/Circle.d.ts +0 -0
  1893. package/dist-extensions/src/shapes/Circle.d.ts.map +0 -0
  1894. package/dist-extensions/src/shapes/Ellipse.d.ts +0 -0
  1895. package/dist-extensions/src/shapes/Ellipse.d.ts.map +0 -0
  1896. package/dist-extensions/src/shapes/Group.d.ts +0 -0
  1897. package/dist-extensions/src/shapes/Group.d.ts.map +0 -0
  1898. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts +0 -0
  1899. package/dist-extensions/src/shapes/IText/DraggableTextDelegate.d.ts.map +0 -0
  1900. package/dist-extensions/src/shapes/IText/IText.d.ts +0 -0
  1901. package/dist-extensions/src/shapes/IText/IText.d.ts.map +0 -0
  1902. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts +0 -0
  1903. package/dist-extensions/src/shapes/IText/ITextBehavior.d.ts.map +1 -1
  1904. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts +0 -0
  1905. package/dist-extensions/src/shapes/IText/ITextClickBehavior.d.ts.map +0 -0
  1906. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts +0 -0
  1907. package/dist-extensions/src/shapes/IText/ITextKeyBehavior.d.ts.map +1 -1
  1908. package/dist-extensions/src/shapes/IText/constants.d.ts +0 -0
  1909. package/dist-extensions/src/shapes/IText/constants.d.ts.map +0 -0
  1910. package/dist-extensions/src/shapes/Image.d.ts +0 -0
  1911. package/dist-extensions/src/shapes/Image.d.ts.map +0 -0
  1912. package/dist-extensions/src/shapes/Line.d.ts +33 -86
  1913. package/dist-extensions/src/shapes/Line.d.ts.map +1 -1
  1914. package/dist-extensions/src/shapes/Object/FabricObject.d.ts +0 -0
  1915. package/dist-extensions/src/shapes/Object/FabricObject.d.ts.map +0 -0
  1916. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +0 -0
  1917. package/dist-extensions/src/shapes/Object/FabricObjectSVGExportMixin.d.ts.map +0 -0
  1918. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts +0 -0
  1919. package/dist-extensions/src/shapes/Object/InteractiveObject.d.ts.map +0 -0
  1920. package/dist-extensions/src/shapes/Object/Object.d.ts +0 -0
  1921. package/dist-extensions/src/shapes/Object/Object.d.ts.map +0 -0
  1922. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts +0 -0
  1923. package/dist-extensions/src/shapes/Object/ObjectGeometry.d.ts.map +0 -0
  1924. package/dist-extensions/src/shapes/Object/defaultValues.d.ts +0 -0
  1925. package/dist-extensions/src/shapes/Object/defaultValues.d.ts.map +0 -0
  1926. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts +0 -0
  1927. package/dist-extensions/src/shapes/Object/types/BaseProps.d.ts.map +0 -0
  1928. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts +0 -0
  1929. package/dist-extensions/src/shapes/Object/types/BorderProps.d.ts.map +0 -0
  1930. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts +0 -0
  1931. package/dist-extensions/src/shapes/Object/types/ControlProps.d.ts.map +0 -0
  1932. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts +0 -0
  1933. package/dist-extensions/src/shapes/Object/types/FabricObjectProps.d.ts.map +0 -0
  1934. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts +0 -0
  1935. package/dist-extensions/src/shapes/Object/types/FillStrokeProps.d.ts.map +0 -0
  1936. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts +0 -0
  1937. package/dist-extensions/src/shapes/Object/types/LockInteractionProps.d.ts.map +0 -0
  1938. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts +0 -0
  1939. package/dist-extensions/src/shapes/Object/types/ObjectProps.d.ts.map +0 -0
  1940. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts +0 -0
  1941. package/dist-extensions/src/shapes/Object/types/ObjectTransformProps.d.ts.map +0 -0
  1942. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts +0 -0
  1943. package/dist-extensions/src/shapes/Object/types/SerializedObjectProps.d.ts.map +0 -0
  1944. package/dist-extensions/src/shapes/Object/types/index.d.ts +0 -0
  1945. package/dist-extensions/src/shapes/Object/types/index.d.ts.map +0 -0
  1946. package/dist-extensions/src/shapes/Path.d.ts +0 -0
  1947. package/dist-extensions/src/shapes/Path.d.ts.map +0 -0
  1948. package/dist-extensions/src/shapes/Polygon.d.ts +0 -0
  1949. package/dist-extensions/src/shapes/Polygon.d.ts.map +0 -0
  1950. package/dist-extensions/src/shapes/Polyline.d.ts +7 -0
  1951. package/dist-extensions/src/shapes/Polyline.d.ts.map +1 -1
  1952. package/dist-extensions/src/shapes/Rect.d.ts +0 -0
  1953. package/dist-extensions/src/shapes/Rect.d.ts.map +0 -0
  1954. package/dist-extensions/src/shapes/Text/StyledText.d.ts +0 -0
  1955. package/dist-extensions/src/shapes/Text/StyledText.d.ts.map +0 -0
  1956. package/dist-extensions/src/shapes/Text/Text.d.ts +19 -0
  1957. package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
  1958. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts +0 -0
  1959. package/dist-extensions/src/shapes/Text/TextSVGExportMixin.d.ts.map +0 -0
  1960. package/dist-extensions/src/shapes/Text/constants.d.ts +0 -0
  1961. package/dist-extensions/src/shapes/Text/constants.d.ts.map +0 -0
  1962. package/dist-extensions/src/shapes/Textbox.d.ts +43 -1
  1963. package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
  1964. package/dist-extensions/src/shapes/Triangle.d.ts +27 -2
  1965. package/dist-extensions/src/shapes/Triangle.d.ts.map +1 -1
  1966. package/dist-extensions/src/text/browserLines.d.ts +0 -0
  1967. package/dist-extensions/src/text/browserLines.d.ts.map +0 -0
  1968. package/dist-extensions/src/text/ellipsis.d.ts +0 -0
  1969. package/dist-extensions/src/text/ellipsis.d.ts.map +0 -0
  1970. package/dist-extensions/src/text/hitTest.d.ts +0 -0
  1971. package/dist-extensions/src/text/hitTest.d.ts.map +0 -0
  1972. package/dist-extensions/src/text/layout.d.ts +0 -0
  1973. package/dist-extensions/src/text/layout.d.ts.map +0 -0
  1974. package/dist-extensions/src/text/measure.d.ts +9 -0
  1975. package/dist-extensions/src/text/measure.d.ts.map +1 -1
  1976. package/dist-extensions/src/text/overlayEditor.d.ts +0 -0
  1977. package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
  1978. package/dist-extensions/src/text/unicode.d.ts +0 -0
  1979. package/dist-extensions/src/text/unicode.d.ts.map +0 -0
  1980. package/dist-extensions/src/typedefs.d.ts +0 -0
  1981. package/dist-extensions/src/typedefs.d.ts.map +0 -0
  1982. package/dist-extensions/src/util/animation/AnimationBase.d.ts +0 -0
  1983. package/dist-extensions/src/util/animation/AnimationBase.d.ts.map +0 -0
  1984. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts +0 -0
  1985. package/dist-extensions/src/util/animation/AnimationFrameProvider.d.ts.map +0 -0
  1986. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts +0 -0
  1987. package/dist-extensions/src/util/animation/AnimationRegistry.d.ts.map +0 -0
  1988. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts +0 -0
  1989. package/dist-extensions/src/util/animation/ArrayAnimation.d.ts.map +0 -0
  1990. package/dist-extensions/src/util/animation/ColorAnimation.d.ts +0 -0
  1991. package/dist-extensions/src/util/animation/ColorAnimation.d.ts.map +0 -0
  1992. package/dist-extensions/src/util/animation/ValueAnimation.d.ts +0 -0
  1993. package/dist-extensions/src/util/animation/ValueAnimation.d.ts.map +0 -0
  1994. package/dist-extensions/src/util/animation/animate.d.ts +0 -0
  1995. package/dist-extensions/src/util/animation/animate.d.ts.map +0 -0
  1996. package/dist-extensions/src/util/animation/easing.d.ts +0 -0
  1997. package/dist-extensions/src/util/animation/easing.d.ts.map +0 -0
  1998. package/dist-extensions/src/util/animation/index.d.ts +0 -0
  1999. package/dist-extensions/src/util/animation/index.d.ts.map +0 -0
  2000. package/dist-extensions/src/util/animation/types.d.ts +0 -0
  2001. package/dist-extensions/src/util/animation/types.d.ts.map +0 -0
  2002. package/dist-extensions/src/util/applyMixins.d.ts +0 -0
  2003. package/dist-extensions/src/util/applyMixins.d.ts.map +0 -0
  2004. package/dist-extensions/src/util/dom_event.d.ts +0 -0
  2005. package/dist-extensions/src/util/dom_event.d.ts.map +0 -0
  2006. package/dist-extensions/src/util/dom_misc.d.ts +0 -0
  2007. package/dist-extensions/src/util/dom_misc.d.ts.map +0 -0
  2008. package/dist-extensions/src/util/index.d.ts +0 -0
  2009. package/dist-extensions/src/util/index.d.ts.map +0 -0
  2010. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts +0 -0
  2011. package/dist-extensions/src/util/internals/applyCanvasTransform.d.ts.map +0 -0
  2012. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts +0 -0
  2013. package/dist-extensions/src/util/internals/cleanupSvgAttribute.d.ts.map +0 -0
  2014. package/dist-extensions/src/util/internals/cloneStyles.d.ts +0 -0
  2015. package/dist-extensions/src/util/internals/cloneStyles.d.ts.map +0 -0
  2016. package/dist-extensions/src/util/internals/console.d.ts +0 -0
  2017. package/dist-extensions/src/util/internals/console.d.ts.map +0 -0
  2018. package/dist-extensions/src/util/internals/dom_style.d.ts +0 -0
  2019. package/dist-extensions/src/util/internals/dom_style.d.ts.map +0 -0
  2020. package/dist-extensions/src/util/internals/findRight.d.ts +0 -0
  2021. package/dist-extensions/src/util/internals/findRight.d.ts.map +0 -0
  2022. package/dist-extensions/src/util/internals/getRandomInt.d.ts +0 -0
  2023. package/dist-extensions/src/util/internals/getRandomInt.d.ts.map +0 -0
  2024. package/dist-extensions/src/util/internals/ifNaN.d.ts +0 -0
  2025. package/dist-extensions/src/util/internals/ifNaN.d.ts.map +0 -0
  2026. package/dist-extensions/src/util/internals/removeFromArray.d.ts +0 -0
  2027. package/dist-extensions/src/util/internals/removeFromArray.d.ts.map +0 -0
  2028. package/dist-extensions/src/util/internals/uid.d.ts +0 -0
  2029. package/dist-extensions/src/util/internals/uid.d.ts.map +0 -0
  2030. package/dist-extensions/src/util/lang_string.d.ts +0 -0
  2031. package/dist-extensions/src/util/lang_string.d.ts.map +0 -0
  2032. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts +0 -0
  2033. package/dist-extensions/src/util/misc/boundingBoxFromPoints.d.ts.map +0 -0
  2034. package/dist-extensions/src/util/misc/capValue.d.ts +0 -0
  2035. package/dist-extensions/src/util/misc/capValue.d.ts.map +0 -0
  2036. package/dist-extensions/src/util/misc/cornerRadius.d.ts +70 -0
  2037. package/dist-extensions/src/util/misc/cornerRadius.d.ts.map +1 -0
  2038. package/dist-extensions/src/util/misc/cos.d.ts +0 -0
  2039. package/dist-extensions/src/util/misc/cos.d.ts.map +0 -0
  2040. package/dist-extensions/src/util/misc/dom.d.ts +0 -0
  2041. package/dist-extensions/src/util/misc/dom.d.ts.map +0 -0
  2042. package/dist-extensions/src/util/misc/findScaleTo.d.ts +0 -0
  2043. package/dist-extensions/src/util/misc/findScaleTo.d.ts.map +0 -0
  2044. package/dist-extensions/src/util/misc/groupSVGElements.d.ts +0 -0
  2045. package/dist-extensions/src/util/misc/groupSVGElements.d.ts.map +0 -0
  2046. package/dist-extensions/src/util/misc/isTransparent.d.ts +0 -0
  2047. package/dist-extensions/src/util/misc/isTransparent.d.ts.map +0 -0
  2048. package/dist-extensions/src/util/misc/matrix.d.ts +0 -0
  2049. package/dist-extensions/src/util/misc/matrix.d.ts.map +0 -0
  2050. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts +0 -0
  2051. package/dist-extensions/src/util/misc/mergeClipPaths.d.ts.map +0 -0
  2052. package/dist-extensions/src/util/misc/objectEnlive.d.ts +0 -0
  2053. package/dist-extensions/src/util/misc/objectEnlive.d.ts.map +0 -0
  2054. package/dist-extensions/src/util/misc/objectTransforms.d.ts +0 -0
  2055. package/dist-extensions/src/util/misc/objectTransforms.d.ts.map +0 -0
  2056. package/dist-extensions/src/util/misc/pick.d.ts +0 -0
  2057. package/dist-extensions/src/util/misc/pick.d.ts.map +0 -0
  2058. package/dist-extensions/src/util/misc/planeChange.d.ts +0 -0
  2059. package/dist-extensions/src/util/misc/planeChange.d.ts.map +0 -0
  2060. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +0 -0
  2061. package/dist-extensions/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts.map +0 -0
  2062. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +0 -0
  2063. package/dist-extensions/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts.map +0 -0
  2064. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +0 -0
  2065. package/dist-extensions/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts.map +0 -0
  2066. package/dist-extensions/src/util/misc/projectStroke/index.d.ts +0 -0
  2067. package/dist-extensions/src/util/misc/projectStroke/index.d.ts.map +0 -0
  2068. package/dist-extensions/src/util/misc/projectStroke/types.d.ts +0 -0
  2069. package/dist-extensions/src/util/misc/projectStroke/types.d.ts.map +0 -0
  2070. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts +0 -0
  2071. package/dist-extensions/src/util/misc/radiansDegreesConversion.d.ts.map +0 -0
  2072. package/dist-extensions/src/util/misc/resolveOrigin.d.ts +0 -0
  2073. package/dist-extensions/src/util/misc/resolveOrigin.d.ts.map +0 -0
  2074. package/dist-extensions/src/util/misc/sin.d.ts +0 -0
  2075. package/dist-extensions/src/util/misc/sin.d.ts.map +0 -0
  2076. package/dist-extensions/src/util/misc/svgExport.d.ts +0 -0
  2077. package/dist-extensions/src/util/misc/svgExport.d.ts.map +0 -0
  2078. package/dist-extensions/src/util/misc/svgParsing.d.ts +0 -0
  2079. package/dist-extensions/src/util/misc/svgParsing.d.ts.map +0 -0
  2080. package/dist-extensions/src/util/misc/textStyles.d.ts +0 -0
  2081. package/dist-extensions/src/util/misc/textStyles.d.ts.map +0 -0
  2082. package/dist-extensions/src/util/misc/toFixed.d.ts +0 -0
  2083. package/dist-extensions/src/util/misc/toFixed.d.ts.map +0 -0
  2084. package/dist-extensions/src/util/misc/vectors.d.ts +0 -0
  2085. package/dist-extensions/src/util/misc/vectors.d.ts.map +0 -0
  2086. package/dist-extensions/src/util/path/index.d.ts +0 -0
  2087. package/dist-extensions/src/util/path/index.d.ts.map +0 -0
  2088. package/dist-extensions/src/util/path/regex.d.ts +0 -0
  2089. package/dist-extensions/src/util/path/regex.d.ts.map +0 -0
  2090. package/dist-extensions/src/util/path/typedefs.d.ts +0 -0
  2091. package/dist-extensions/src/util/path/typedefs.d.ts.map +0 -0
  2092. package/dist-extensions/src/util/transform_matrix_removal.d.ts +0 -0
  2093. package/dist-extensions/src/util/transform_matrix_removal.d.ts.map +0 -0
  2094. package/dist-extensions/src/util/typeAssertions.d.ts +0 -0
  2095. package/dist-extensions/src/util/typeAssertions.d.ts.map +0 -0
  2096. package/docs/fabric-konva-gap-analysis.md +0 -0
  2097. package/docs/konva-text-behavior-spec.md +0 -0
  2098. package/docs/text-engine-design.md +0 -0
  2099. package/eslint.config.mjs +0 -0
  2100. package/examples/overlay-edit.html +416 -416
  2101. package/extensions/README.MD +0 -0
  2102. package/extensions/aligning_guidelines/README.MD +0 -0
  2103. package/extensions/aligning_guidelines/constant.ts +0 -0
  2104. package/extensions/aligning_guidelines/index.ts +0 -0
  2105. package/extensions/aligning_guidelines/typedefs.ts +0 -0
  2106. package/extensions/aligning_guidelines/util/basic.spec.ts +0 -0
  2107. package/extensions/aligning_guidelines/util/basic.ts +0 -0
  2108. package/extensions/aligning_guidelines/util/collect-line.ts +0 -0
  2109. package/extensions/aligning_guidelines/util/collect-point.ts +0 -0
  2110. package/extensions/aligning_guidelines/util/draw.ts +0 -0
  2111. package/extensions/aligning_guidelines/util/get-objects-by-target.ts +0 -0
  2112. package/extensions/data_updaters/README.md +0 -0
  2113. package/extensions/data_updaters/gradient/__snapshots__/index.spec.ts.snap +0 -0
  2114. package/extensions/data_updaters/gradient/index.spec.ts +0 -0
  2115. package/extensions/data_updaters/gradient/index.ts +0 -0
  2116. package/extensions/data_updaters/origins/README.md +0 -0
  2117. package/extensions/data_updaters/origins/index.spec.ts +0 -0
  2118. package/extensions/data_updaters/origins/index.ts +0 -0
  2119. package/extensions/index.ts +0 -0
  2120. package/fabric.ts +0 -0
  2121. package/index.node.ts +0 -0
  2122. package/index.ts +0 -0
  2123. package/lib/aligning_guidelines.js +0 -0
  2124. package/lib/centering_guidelines.js +0 -0
  2125. package/lib/event.js +0 -0
  2126. package/package.json +1 -1
  2127. package/playwright.config.ts +0 -0
  2128. package/playwright.setup.ts +0 -0
  2129. package/publish-next.js +0 -0
  2130. package/publish.js +0 -0
  2131. package/rollup.config.mjs +0 -0
  2132. package/scripts/bench-text.js +591 -591
  2133. package/scripts/build.mjs +0 -0
  2134. package/scripts/buildLock.mjs +0 -0
  2135. package/scripts/buildReporter.mjs +0 -0
  2136. package/scripts/buildStats.mjs +0 -0
  2137. package/scripts/dirname.mjs +0 -0
  2138. package/scripts/git.mjs +0 -0
  2139. package/scripts/index.mjs +0 -0
  2140. package/scripts/sandbox.mjs +0 -0
  2141. package/src/ClassRegistry.spec.ts +0 -0
  2142. package/src/ClassRegistry.ts +0 -0
  2143. package/src/Collection.spec.ts +0 -0
  2144. package/src/Collection.ts +0 -0
  2145. package/src/CommonMethods.ts +0 -0
  2146. package/src/EventTypeDefs.ts +0 -0
  2147. package/src/Intersection.spec.ts +0 -0
  2148. package/src/Intersection.ts +0 -0
  2149. package/src/LayoutManager/ActiveSelectionLayoutManager.spec.ts +0 -0
  2150. package/src/LayoutManager/ActiveSelectionLayoutManager.ts +0 -0
  2151. package/src/LayoutManager/LayoutManager.spec.ts +0 -0
  2152. package/src/LayoutManager/LayoutManager.ts +0 -0
  2153. package/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts +0 -0
  2154. package/src/LayoutManager/LayoutStrategies/FitContentLayout.ts +0 -0
  2155. package/src/LayoutManager/LayoutStrategies/FixedLayout.ts +0 -0
  2156. package/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts +0 -0
  2157. package/src/LayoutManager/LayoutStrategies/utils.ts +0 -0
  2158. package/src/LayoutManager/README.md +0 -0
  2159. package/src/LayoutManager/__snapshots__/LayoutManager.spec.ts.snap +0 -0
  2160. package/src/LayoutManager/constants.ts +0 -0
  2161. package/src/LayoutManager/index.ts +0 -0
  2162. package/src/LayoutManager/types.ts +0 -0
  2163. package/src/Observable.spec.ts +0 -0
  2164. package/src/Observable.ts +0 -0
  2165. package/src/Pattern/Pattern.spec.ts +0 -0
  2166. package/src/Pattern/Pattern.ts +0 -0
  2167. package/src/Pattern/index.ts +0 -0
  2168. package/src/Pattern/types.ts +0 -0
  2169. package/src/Point.spec.ts +0 -0
  2170. package/src/Point.ts +0 -0
  2171. package/src/Shadow.spec.ts +0 -0
  2172. package/src/Shadow.ts +0 -0
  2173. package/src/__snapshots__/Shadow.spec.ts.snap +0 -0
  2174. package/src/brushes/BaseBrush.spec.ts +0 -0
  2175. package/src/brushes/BaseBrush.ts +0 -0
  2176. package/src/brushes/CircleBrush.test.ts +0 -0
  2177. package/src/brushes/CircleBrush.ts +0 -0
  2178. package/src/brushes/PatternBrush.ts +0 -0
  2179. package/src/brushes/PencilBrush.spec.ts +0 -0
  2180. package/src/brushes/PencilBrush.ts +0 -0
  2181. package/src/brushes/SprayBrush.ts +0 -0
  2182. package/src/brushes/__snapshots__/PencilBrush.spec.ts.snap +0 -0
  2183. package/src/brushes/typedefs.ts +0 -0
  2184. package/src/cache.spec.ts +0 -0
  2185. package/src/cache.ts +0 -0
  2186. package/src/canvas/Canvas-dispose.spec.ts +0 -0
  2187. package/src/canvas/Canvas-events.spec.ts +0 -0
  2188. package/src/canvas/Canvas.spec.ts +0 -0
  2189. package/src/canvas/Canvas.ts +0 -0
  2190. package/src/canvas/CanvasOptions.ts +0 -0
  2191. package/src/canvas/DOMManagers/CanvasDOMManager.ts +0 -0
  2192. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +0 -0
  2193. package/src/canvas/DOMManagers/util.spec.ts +0 -0
  2194. package/src/canvas/DOMManagers/util.ts +0 -0
  2195. package/src/canvas/SelectableCanvas.spec.ts +0 -0
  2196. package/src/canvas/SelectableCanvas.ts +0 -0
  2197. package/src/canvas/StaticCanvas.spec.ts +0 -0
  2198. package/src/canvas/StaticCanvas.ts +0 -0
  2199. package/src/canvas/StaticCanvasOptions.ts +0 -0
  2200. package/src/canvas/TextEditingManager.ts +0 -0
  2201. package/src/canvas/__tests__/SelectableCanvas.spec.ts +0 -0
  2202. package/src/canvas/__tests__/__snapshots__/eventData.test.ts.snap +0 -0
  2203. package/src/canvas/__tests__/eventData.test.ts +0 -0
  2204. package/src/canvas/canvas_gestures.mixin.ts +0 -0
  2205. package/src/color/Color.ts +0 -0
  2206. package/src/color/color.test.ts +0 -0
  2207. package/src/color/color_map.ts +0 -0
  2208. package/src/color/constants.ts +0 -0
  2209. package/src/color/typedefs.ts +0 -0
  2210. package/src/color/util.ts +0 -0
  2211. package/src/config.ts +0 -0
  2212. package/src/constants.ts +0 -0
  2213. package/src/controls/Control-cursor.spec.ts +0 -0
  2214. package/src/controls/Control-handlers.spec.ts +0 -0
  2215. package/src/controls/Control.spec.ts +0 -0
  2216. package/src/controls/Control.ts +0 -0
  2217. package/src/controls/changeHeight.ts +0 -0
  2218. package/src/controls/changeWidth.test.ts +0 -0
  2219. package/src/controls/changeWidth.ts +0 -0
  2220. package/src/controls/commonControls.ts +0 -0
  2221. package/src/controls/controlRendering.ts +0 -0
  2222. package/src/controls/drag.ts +0 -0
  2223. package/src/controls/fireEvent.ts +0 -0
  2224. package/src/controls/index.ts +0 -0
  2225. package/src/controls/pathControl.spec.ts +0 -0
  2226. package/src/controls/pathControl.ts +0 -0
  2227. package/src/controls/polyControl.spec.ts +0 -0
  2228. package/src/controls/polyControl.ts +0 -0
  2229. package/src/controls/rotate.ts +0 -0
  2230. package/src/controls/scale.test.ts +0 -0
  2231. package/src/controls/scale.ts +0 -0
  2232. package/src/controls/scaleSkew.ts +0 -0
  2233. package/src/controls/skew.ts +0 -0
  2234. package/src/controls/util.ts +0 -0
  2235. package/src/controls/wrapWithFireEvent.ts +0 -0
  2236. package/src/controls/wrapWithFixedAnchor.spec.ts +0 -0
  2237. package/src/controls/wrapWithFixedAnchor.ts +0 -0
  2238. package/src/env/browser.ts +0 -0
  2239. package/src/env/env.spec.ts +0 -0
  2240. package/src/env/index.ts +0 -0
  2241. package/src/env/node.ts +0 -0
  2242. package/src/env/types.ts +0 -0
  2243. package/src/filters/BaseFilter.spec.ts +0 -0
  2244. package/src/filters/BaseFilter.ts +0 -0
  2245. package/src/filters/BlendColor.ts +0 -0
  2246. package/src/filters/BlendImage.ts +0 -0
  2247. package/src/filters/Blur.ts +0 -0
  2248. package/src/filters/Boilerplate.ts +0 -0
  2249. package/src/filters/Brightness.ts +0 -0
  2250. package/src/filters/Canvas2dFilterBackend.ts +0 -0
  2251. package/src/filters/ColorMatrix.spec.ts +0 -0
  2252. package/src/filters/ColorMatrix.ts +0 -0
  2253. package/src/filters/ColorMatrixFilters.ts +0 -0
  2254. package/src/filters/Composed.ts +0 -0
  2255. package/src/filters/Contrast.ts +0 -0
  2256. package/src/filters/Convolute.ts +0 -0
  2257. package/src/filters/FilterBackend.ts +0 -0
  2258. package/src/filters/GLProbes/GLProbe.ts +0 -0
  2259. package/src/filters/GLProbes/NodeGLProbe.ts +0 -0
  2260. package/src/filters/GLProbes/WebGLProbe.ts +0 -0
  2261. package/src/filters/Gamma.ts +0 -0
  2262. package/src/filters/Grayscale.ts +0 -0
  2263. package/src/filters/HueRotation.ts +0 -0
  2264. package/src/filters/Invert.ts +0 -0
  2265. package/src/filters/Noise.ts +0 -0
  2266. package/src/filters/Pixelate.ts +0 -0
  2267. package/src/filters/RemoveColor.ts +0 -0
  2268. package/src/filters/Resize.ts +0 -0
  2269. package/src/filters/Saturation.ts +0 -0
  2270. package/src/filters/Vibrance.ts +0 -0
  2271. package/src/filters/WebGLFilterBackend.spec.ts +0 -0
  2272. package/src/filters/WebGLFilterBackend.ts +0 -0
  2273. package/src/filters/filters.ts +0 -0
  2274. package/src/filters/index.ts +0 -0
  2275. package/src/filters/shaders/baseFilter.ts +0 -0
  2276. package/src/filters/shaders/blendColor.ts +0 -0
  2277. package/src/filters/shaders/blendImage.ts +0 -0
  2278. package/src/filters/shaders/blur.ts +0 -0
  2279. package/src/filters/shaders/brightness.ts +0 -0
  2280. package/src/filters/shaders/colorMatrix.ts +0 -0
  2281. package/src/filters/shaders/constrast.ts +0 -0
  2282. package/src/filters/shaders/convolute.ts +0 -0
  2283. package/src/filters/shaders/gamma.ts +0 -0
  2284. package/src/filters/shaders/grayscale.ts +0 -0
  2285. package/src/filters/shaders/invert.ts +0 -0
  2286. package/src/filters/shaders/noise.ts +0 -0
  2287. package/src/filters/shaders/pixelate.ts +0 -0
  2288. package/src/filters/shaders/removeColor.ts +0 -0
  2289. package/src/filters/shaders/saturation.ts +0 -0
  2290. package/src/filters/shaders/vibrance.ts +0 -0
  2291. package/src/filters/typedefs.ts +0 -0
  2292. package/src/filters/utils.ts +0 -0
  2293. package/src/gradient/Gradient.spec.ts +0 -0
  2294. package/src/gradient/Gradient.ts +0 -0
  2295. package/src/gradient/constants.ts +0 -0
  2296. package/src/gradient/index.ts +0 -0
  2297. package/src/gradient/parser/misc.ts +0 -0
  2298. package/src/gradient/parser/parseColorStops.ts +0 -0
  2299. package/src/gradient/parser/parseCoords.ts +0 -0
  2300. package/src/gradient/typedefs.ts +0 -0
  2301. package/src/mixins/eraser_brush.mixin.ts +0 -0
  2302. package/src/parkinglot/canvas_animation.mixin.ts +0 -0
  2303. package/src/parkinglot/straighten.ts +0 -0
  2304. package/src/parser/applyViewboxTransform.spec.ts +0 -0
  2305. package/src/parser/applyViewboxTransform.ts +0 -0
  2306. package/src/parser/attributes.ts +0 -0
  2307. package/src/parser/constants.spec.ts +0 -0
  2308. package/src/parser/constants.ts +0 -0
  2309. package/src/parser/doesSomeParentMatch.ts +0 -0
  2310. package/src/parser/elementMatchesRule.ts +0 -0
  2311. package/src/parser/elements_parser.ts +0 -0
  2312. package/src/parser/getCSSRules.spec.ts +0 -0
  2313. package/src/parser/getCSSRules.ts +0 -0
  2314. package/src/parser/getGlobalStylesForElement.ts +0 -0
  2315. package/src/parser/getGradientDefs.ts +0 -0
  2316. package/src/parser/getMultipleNodes.ts +0 -0
  2317. package/src/parser/getSvgRegex.ts +0 -0
  2318. package/src/parser/getTagName.ts +0 -0
  2319. package/src/parser/hasInvalidAncestor.ts +0 -0
  2320. package/src/parser/loadSVGFromString.test.ts +0 -0
  2321. package/src/parser/loadSVGFromString.ts +0 -0
  2322. package/src/parser/loadSVGFromURL.ts +0 -0
  2323. package/src/parser/normalizeAttr.ts +0 -0
  2324. package/src/parser/normalizeValue.ts +0 -0
  2325. package/src/parser/parseAttributes.ts +0 -0
  2326. package/src/parser/parseFontDeclaration.ts +0 -0
  2327. package/src/parser/parsePointsAttribute.ts +0 -0
  2328. package/src/parser/parseSVGDocument.ts +0 -0
  2329. package/src/parser/parseStyleAttribute.ts +0 -0
  2330. package/src/parser/parseStyleObject.ts +0 -0
  2331. package/src/parser/parseStyleString.ts +0 -0
  2332. package/src/parser/parseTransformAttribute.ts +0 -0
  2333. package/src/parser/parseUseDirectives.test.ts +0 -0
  2334. package/src/parser/parseUseDirectives.ts +0 -0
  2335. package/src/parser/parser.spec.ts +0 -0
  2336. package/src/parser/percent.ts +0 -0
  2337. package/src/parser/recursivelyParseGradientsXlink.ts +0 -0
  2338. package/src/parser/selectorMatches.ts +0 -0
  2339. package/src/parser/setStrokeFillOpacity.ts +0 -0
  2340. package/src/parser/typedefs.ts +0 -0
  2341. package/src/shapes/ActiveSelection.spec.ts +0 -0
  2342. package/src/shapes/ActiveSelection.ts +0 -0
  2343. package/src/shapes/Circle.spec.ts +0 -0
  2344. package/src/shapes/Circle.ts +0 -0
  2345. package/src/shapes/Ellipse.spec.ts +0 -0
  2346. package/src/shapes/Ellipse.ts +0 -0
  2347. package/src/shapes/Group.spec.ts +0 -0
  2348. package/src/shapes/Group.ts +0 -0
  2349. package/src/shapes/IText/DraggableTextDelegate.ts +0 -0
  2350. package/src/shapes/IText/IText-click-behavior.spec.ts +0 -0
  2351. package/src/shapes/IText/IText.test.ts +0 -0
  2352. package/src/shapes/IText/IText.ts +846 -846
  2353. package/src/shapes/IText/ITextBehavior.test.ts +0 -0
  2354. package/src/shapes/IText/ITextBehavior.ts +1187 -1176
  2355. package/src/shapes/IText/ITextClickBehavior.ts +254 -254
  2356. package/src/shapes/IText/ITextKeyBehavior.test.ts +0 -0
  2357. package/src/shapes/IText/ITextKeyBehavior.ts +41 -0
  2358. package/src/shapes/IText/__snapshots__/IText.test.ts.snap +0 -0
  2359. package/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap +0 -0
  2360. package/src/shapes/IText/constants.ts +0 -0
  2361. package/src/shapes/Image-filters.spec.ts +0 -0
  2362. package/src/shapes/Image.spec.ts +0 -0
  2363. package/src/shapes/Image.ts +0 -0
  2364. package/src/shapes/Line.spec.ts +0 -0
  2365. package/src/shapes/Line.ts +484 -157
  2366. package/src/shapes/Object/FabricObject.spec.ts +0 -0
  2367. package/src/shapes/Object/FabricObject.ts +0 -0
  2368. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +0 -0
  2369. package/src/shapes/Object/InteractiveObject.spec.ts +0 -0
  2370. package/src/shapes/Object/InteractiveObject.ts +0 -0
  2371. package/src/shapes/Object/Object-clip-path.spec.ts +0 -0
  2372. package/src/shapes/Object/Object-interactivity.spec.ts +0 -0
  2373. package/src/shapes/Object/Object.spec.ts +0 -0
  2374. package/src/shapes/Object/Object.ts +0 -0
  2375. package/src/shapes/Object/ObjectGeometry.spec.ts +0 -0
  2376. package/src/shapes/Object/ObjectGeometry.ts +0 -0
  2377. package/src/shapes/Object/ObjectOrigin.spec.ts +0 -0
  2378. package/src/shapes/Object/ObjectSerialization.spec.ts +0 -0
  2379. package/src/shapes/Object/StackedObject.spec.ts +0 -0
  2380. package/src/shapes/Object/__snapshots__/InteractiveObject.spec.ts.snap +0 -0
  2381. package/src/shapes/Object/defaultValues.ts +0 -0
  2382. package/src/shapes/Object/types/BaseProps.ts +0 -0
  2383. package/src/shapes/Object/types/BorderProps.ts +0 -0
  2384. package/src/shapes/Object/types/ControlProps.ts +0 -0
  2385. package/src/shapes/Object/types/FabricObjectProps.ts +0 -0
  2386. package/src/shapes/Object/types/FillStrokeProps.ts +0 -0
  2387. package/src/shapes/Object/types/LockInteractionProps.ts +0 -0
  2388. package/src/shapes/Object/types/ObjectProps.ts +0 -0
  2389. package/src/shapes/Object/types/ObjectTransformProps.ts +0 -0
  2390. package/src/shapes/Object/types/SerializedObjectProps.ts +0 -0
  2391. package/src/shapes/Object/types/index.ts +0 -0
  2392. package/src/shapes/Path.spec.ts +0 -0
  2393. package/src/shapes/Path.ts +0 -0
  2394. package/src/shapes/Polygon.spec.ts +0 -0
  2395. package/src/shapes/Polygon.ts +0 -0
  2396. package/src/shapes/Polyline.spec.ts +0 -0
  2397. package/src/shapes/Polyline.ts +70 -29
  2398. package/src/shapes/Rect.spec.ts +0 -0
  2399. package/src/shapes/Rect.ts +0 -0
  2400. package/src/shapes/Text/StyledText.spec.ts +0 -0
  2401. package/src/shapes/Text/StyledText.ts +0 -0
  2402. package/src/shapes/Text/Text.spec.ts +0 -0
  2403. package/src/shapes/Text/Text.ts +2459 -2161
  2404. package/src/shapes/Text/TextSVGExportMixin.spec.ts +0 -0
  2405. package/src/shapes/Text/TextSVGExportMixin.ts +0 -0
  2406. package/src/shapes/Text/__snapshots__/Text.spec.ts.snap +0 -0
  2407. package/src/shapes/Text/__snapshots__/TextSVGExportMixin.spec.ts.snap +0 -0
  2408. package/src/shapes/Text/constants.ts +134 -134
  2409. package/src/shapes/Textbox.spec.ts +0 -0
  2410. package/src/shapes/Textbox.ts +1320 -788
  2411. package/src/shapes/Triangle.spec.ts +76 -0
  2412. package/src/shapes/Triangle.ts +85 -15
  2413. package/src/shapes/__snapshots__/Image.spec.ts.snap +0 -0
  2414. package/src/shapes/__snapshots__/Textbox.spec.ts.snap +0 -0
  2415. package/src/text/browserLines.ts +233 -233
  2416. package/src/text/ellipsis.ts +516 -516
  2417. package/src/text/hitTest.ts +623 -623
  2418. package/src/text/layout.ts +586 -586
  2419. package/src/text/measure.ts +626 -476
  2420. package/src/text/overlayEditor.ts +1047 -895
  2421. package/src/text/unicode.ts +454 -454
  2422. package/src/typedefs.ts +0 -0
  2423. package/src/util/__snapshots__/index.spec.ts.snap +0 -0
  2424. package/src/util/animation/AnimationBase.ts +0 -0
  2425. package/src/util/animation/AnimationFrameProvider.ts +0 -0
  2426. package/src/util/animation/AnimationRegistry.ts +0 -0
  2427. package/src/util/animation/ArrayAnimation.ts +0 -0
  2428. package/src/util/animation/ColorAnimation.ts +0 -0
  2429. package/src/util/animation/ValueAnimation.ts +0 -0
  2430. package/src/util/animation/__snapshots__/animations.spec.ts.snap +0 -0
  2431. package/src/util/animation/animate.ts +0 -0
  2432. package/src/util/animation/animations.spec.ts +0 -0
  2433. package/src/util/animation/easing.ts +0 -0
  2434. package/src/util/animation/index.ts +0 -0
  2435. package/src/util/animation/types.ts +0 -0
  2436. package/src/util/applyMixins.ts +0 -0
  2437. package/src/util/dom_event.spec.ts +0 -0
  2438. package/src/util/dom_event.ts +0 -0
  2439. package/src/util/dom_misc.ts +0 -0
  2440. package/src/util/index.spec.ts +0 -0
  2441. package/src/util/index.ts +0 -0
  2442. package/src/util/internals/applyCanvasTransform.ts +0 -0
  2443. package/src/util/internals/cleanupSvgAttribute.test.ts +0 -0
  2444. package/src/util/internals/cleanupSvgAttribute.ts +0 -0
  2445. package/src/util/internals/cloneStyles.spec.ts +0 -0
  2446. package/src/util/internals/cloneStyles.ts +0 -0
  2447. package/src/util/internals/console.ts +0 -0
  2448. package/src/util/internals/dom_style.spec.ts +0 -0
  2449. package/src/util/internals/dom_style.ts +0 -0
  2450. package/src/util/internals/findRight.ts +0 -0
  2451. package/src/util/internals/getRandomInt.test.ts +0 -0
  2452. package/src/util/internals/getRandomInt.ts +0 -0
  2453. package/src/util/internals/ifNaN.ts +0 -0
  2454. package/src/util/internals/removeFromArray.spec.ts +0 -0
  2455. package/src/util/internals/removeFromArray.ts +0 -0
  2456. package/src/util/internals/uid.ts +0 -0
  2457. package/src/util/lang_string.spec.ts +0 -0
  2458. package/src/util/lang_string.ts +0 -0
  2459. package/src/util/misc/boundingBoxFromPoints.spec.ts +0 -0
  2460. package/src/util/misc/boundingBoxFromPoints.ts +0 -0
  2461. package/src/util/misc/capValue.spec.ts +0 -0
  2462. package/src/util/misc/capValue.ts +0 -0
  2463. package/src/util/misc/cornerRadius.spec.ts +141 -0
  2464. package/src/util/misc/cornerRadius.ts +269 -0
  2465. package/src/util/misc/cos.spec.ts +0 -0
  2466. package/src/util/misc/cos.ts +0 -0
  2467. package/src/util/misc/dom.spec.ts +0 -0
  2468. package/src/util/misc/dom.ts +0 -0
  2469. package/src/util/misc/findScaleTo.spec.ts +0 -0
  2470. package/src/util/misc/findScaleTo.ts +0 -0
  2471. package/src/util/misc/groupSVGElements.spec.ts +0 -0
  2472. package/src/util/misc/groupSVGElements.ts +0 -0
  2473. package/src/util/misc/isTransparent.ts +0 -0
  2474. package/src/util/misc/matrix.spec.ts +0 -0
  2475. package/src/util/misc/matrix.ts +0 -0
  2476. package/src/util/misc/mergeClipPaths.spec.ts +0 -0
  2477. package/src/util/misc/mergeClipPaths.ts +0 -0
  2478. package/src/util/misc/objectEnlive.spec.ts +0 -0
  2479. package/src/util/misc/objectEnlive.ts +0 -0
  2480. package/src/util/misc/objectTransforms.spec.ts +0 -0
  2481. package/src/util/misc/objectTransforms.ts +0 -0
  2482. package/src/util/misc/pick.spec.ts +0 -0
  2483. package/src/util/misc/pick.ts +0 -0
  2484. package/src/util/misc/planeChange.spec.ts +0 -0
  2485. package/src/util/misc/planeChange.ts +0 -0
  2486. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +0 -0
  2487. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +0 -0
  2488. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +0 -0
  2489. package/src/util/misc/projectStroke/index.ts +0 -0
  2490. package/src/util/misc/projectStroke/types.ts +0 -0
  2491. package/src/util/misc/radiansDegreesConversion.spec.ts +0 -0
  2492. package/src/util/misc/radiansDegreesConversion.ts +0 -0
  2493. package/src/util/misc/resolveOrigin.ts +0 -0
  2494. package/src/util/misc/sin.ts +0 -0
  2495. package/src/util/misc/svgExport.ts +0 -0
  2496. package/src/util/misc/svgParsing.spec.ts +0 -0
  2497. package/src/util/misc/svgParsing.ts +0 -0
  2498. package/src/util/misc/textStyles.ts +0 -0
  2499. package/src/util/misc/toFixed.spec.ts +0 -0
  2500. package/src/util/misc/toFixed.ts +0 -0
  2501. package/src/util/misc/vectors.spec.ts +0 -0
  2502. package/src/util/misc/vectors.ts +0 -0
  2503. package/src/util/path/__snapshots__/index.spec.ts.snap +0 -0
  2504. package/src/util/path/index.spec.ts +0 -0
  2505. package/src/util/path/index.ts +0 -0
  2506. package/src/util/path/regex.ts +0 -0
  2507. package/src/util/path/typechecks.ts +0 -0
  2508. package/src/util/path/typedefs.ts +0 -0
  2509. package/src/util/transform_matrix_removal.ts +0 -0
  2510. package/src/util/typeAssertions.spec.ts +0 -0
  2511. package/src/util/typeAssertions.ts +0 -0
  2512. package/tsconfig-extensions.json +0 -0
  2513. package/tsconfig.json +0 -0
  2514. package/tsconfig.spec.json +0 -0
  2515. package/typedoc.config.json +0 -0
  2516. package/vitest.config.ts +0 -0
  2517. package/vitest.d.ts +0 -0
  2518. package/vitest.env.d.ts +0 -0
  2519. package/vitest.extend.ts +0 -0
  2520. package/vitest.setup.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ITextClickBehavior.mjs","sources":["../../../../src/shapes/IText/ITextClickBehavior.ts"],"sourcesContent":["import type {\r\n ObjectPointerEvents,\r\n TPointerEvent,\r\n TPointerEventInfo,\r\n} from '../../EventTypeDefs';\r\nimport { Point } from '../../Point';\r\nimport { invertTransform } from '../../util/misc/matrix';\r\nimport { DraggableTextDelegate } from './DraggableTextDelegate';\r\nimport type { ITextEvents } from './ITextBehavior';\r\nimport { ITextKeyBehavior } from './ITextKeyBehavior';\r\nimport type { TOptions } from '../../typedefs';\r\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\r\nimport type { IText } from './IText';\r\n/**\r\n * `LEFT_CLICK === 0`\r\n */\r\nconst notALeftClick = (e: Event) => !!(e as MouseEvent).button;\r\n\r\nexport abstract class ITextClickBehavior<\r\n Props extends TOptions<TextProps> = Partial<TextProps>,\r\n SProps extends SerializedTextProps = SerializedTextProps,\r\n EventSpec extends ITextEvents = ITextEvents,\r\n> extends ITextKeyBehavior<Props, SProps, EventSpec> {\r\n protected draggableTextDelegate: DraggableTextDelegate;\r\n\r\n initBehavior() {\r\n // Initializes event handlers related to cursor or selection\r\n this.on('mousedown', this._mouseDownHandler);\r\n this.on('mouseup', this.mouseUpHandler);\r\n this.on('mousedblclick', this.doubleClickHandler);\r\n this.on('mousetripleclick', this.tripleClickHandler);\r\n\r\n this.draggableTextDelegate = new DraggableTextDelegate(\r\n this as unknown as IText,\r\n );\r\n\r\n super.initBehavior();\r\n }\r\n\r\n /**\r\n * If this method returns true a mouse move operation over a text selection\r\n * will not prevent the native mouse event allowing the browser to start a drag operation.\r\n * shouldStartDragging can be read 'do not prevent default for mouse move event'\r\n * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false\r\n * @returns\r\n */\r\n shouldStartDragging() {\r\n return this.draggableTextDelegate.isActive();\r\n }\r\n\r\n /**\r\n * @public override this method to control whether instance should/shouldn't become a drag source,\r\n * @see also {@link DraggableTextDelegate#isActive}\r\n * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false\r\n * @returns {boolean} should handle event\r\n */\r\n onDragStart(e: DragEvent) {\r\n return this.draggableTextDelegate.onDragStart(e);\r\n }\r\n\r\n /**\r\n * @public override this method to control whether instance should/shouldn't become a drop target\r\n */\r\n canDrop(e: DragEvent) {\r\n return this.draggableTextDelegate.canDrop(e);\r\n }\r\n\r\n /**\r\n * Default handler for double click, select a word or enter overlay editing\r\n */\r\n doubleClickHandler(options: TPointerEventInfo) {\r\n // Check if we should enter overlay editing mode\r\n if (!this.isEditing && (this as any).useOverlayEditing && this.editable) {\r\n this.enterEditing(options.e);\r\n return;\r\n }\r\n \r\n // Default behavior: select word if already editing\r\n if (!this.isEditing) {\r\n return;\r\n }\r\n this.selectWord(this.getSelectionStartFromPointer(options.e));\r\n this.renderCursorOrSelection();\r\n }\r\n\r\n /**\r\n * Default handler for triple click, select a line\r\n */\r\n tripleClickHandler(options: TPointerEventInfo) {\r\n if (!this.isEditing) {\r\n return;\r\n }\r\n this.selectLine(this.getSelectionStartFromPointer(options.e));\r\n this.renderCursorOrSelection();\r\n }\r\n\r\n /**\r\n * Default event handler for the basic functionalities needed on _mouseDown\r\n * can be overridden to do something different.\r\n * Scope of this implementation is: find the click position, set selectionStart\r\n * find selectionEnd, initialize the drawing of either cursor or selection area\r\n * initializing a mousedDown on a text area will cancel fabricjs knowledge of\r\n * current compositionMode. It will be set to false.\r\n */\r\n _mouseDownHandler({ e, alreadySelected }: ObjectPointerEvents['mousedown']) {\r\n if (\r\n !this.canvas ||\r\n !this.editable ||\r\n notALeftClick(e) ||\r\n this.getActiveControl()\r\n ) {\r\n return;\r\n }\r\n\r\n if (this.draggableTextDelegate.start(e)) {\r\n return;\r\n }\r\n\r\n this.canvas.textEditingManager.register(this);\r\n\r\n if (alreadySelected) {\r\n this.inCompositionMode = false;\r\n this.setCursorByClick(e);\r\n }\r\n\r\n if (this.isEditing) {\r\n this.__selectionStartOnMouseDown = this.selectionStart;\r\n if (this.selectionStart === this.selectionEnd) {\r\n this.abortCursorAnimation();\r\n }\r\n this.renderCursorOrSelection();\r\n }\r\n this.selected ||= alreadySelected || this.isEditing;\r\n }\r\n\r\n /**\r\n * standard handler for mouse up, overridable\r\n * @private\r\n */\r\n mouseUpHandler({ e, transform }: ObjectPointerEvents['mouseup']) {\r\n const didDrag = this.draggableTextDelegate.end(e);\r\n\r\n if (this.canvas) {\r\n this.canvas.textEditingManager.unregister(this);\r\n\r\n const activeObject = this.canvas._activeObject;\r\n if (activeObject && activeObject !== this) {\r\n // avoid running this logic when there is an active object\r\n // this because is possible with shift click and fast clicks,\r\n // to rapidly deselect and reselect this object and trigger an enterEdit\r\n return;\r\n }\r\n }\r\n\r\n if (\r\n !this.editable ||\r\n (this.group && !this.group.interactive) ||\r\n (transform && transform.actionPerformed) ||\r\n notALeftClick(e) ||\r\n didDrag\r\n ) {\r\n return;\r\n }\r\n\r\n if (this.selected && !this.getActiveControl()) {\r\n this.enterEditing(e);\r\n if (this.selectionStart === this.selectionEnd) {\r\n this.initDelayedCursor(true);\r\n } else {\r\n this.renderCursorOrSelection();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Changes cursor location in a text depending on passed pointer (x/y) object\r\n * @param {TPointerEvent} e Event object\r\n */\r\n setCursorByClick(e: TPointerEvent) {\r\n const newSelection = this.getSelectionStartFromPointer(e),\r\n start = this.selectionStart,\r\n end = this.selectionEnd;\r\n if (e.shiftKey) {\r\n this.setSelectionStartEndWithShift(start, end, newSelection);\r\n } else {\r\n this.selectionStart = newSelection;\r\n this.selectionEnd = newSelection;\r\n }\r\n if (this.isEditing) {\r\n this._fireSelectionChanged();\r\n this._updateTextarea();\r\n }\r\n }\r\n\r\n /**\r\n * Returns index of a character corresponding to where an object was clicked\r\n * @param {TPointerEvent} e Event object\r\n * @return {Number} Index of a character\r\n */\r\n getSelectionStartFromPointer(e: TPointerEvent): number {\r\n const mouseOffset = this.canvas!.getScenePoint(e)\r\n .transform(invertTransform(this.calcTransformMatrix()))\r\n .add(new Point(-this._getLeftOffset(), -this._getTopOffset()));\r\n\r\n if (this.direction === 'rtl') {\r\n mouseOffset.x *= -1;\r\n }\r\n\r\n let height = 0,\r\n charIndex = 0,\r\n lineIndex = 0;\r\n\r\n for (let i = 0; i < this._textLines.length; i++) {\r\n if (height <= mouseOffset.y) {\r\n height += this.getHeightOfLine(i);\r\n lineIndex = i;\r\n if (i > 0) {\r\n charIndex +=\r\n this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n const lineLeftOffset = this._getLineLeftOffset(lineIndex);\r\n const charLength = this._textLines[lineIndex].length;\r\n const chars = this.__charBounds[lineIndex];\r\n\r\n const lineStartIndex = charIndex;\r\n // use character left positions which are always increasing even with RTL segments\r\n\r\n for (let j = 0; j < charLength; j++) {\r\n const charStart = lineLeftOffset + chars[j].left;\r\n const charEnd = lineLeftOffset + chars[j + 1].left;\r\n const charMiddle = (charStart + charEnd) / 2;\r\n if (mouseOffset.x <= charMiddle) {\r\n charIndex = lineStartIndex + j;\r\n break;\r\n } else if (mouseOffset.x <= charEnd) {\r\n charIndex = lineStartIndex + j + 1;\r\n break;\r\n }\r\n charIndex = lineStartIndex + charLength;\r\n }\r\n\r\n const lineCharIndex = charIndex - lineStartIndex;\r\n const result = this.flipX\r\n ? lineStartIndex + (charLength - lineCharIndex)\r\n : charIndex;\r\n\r\n return Math.min(result, this._text.length);\r\n }\r\n}\r\n"],"names":["notALeftClick","e","button","ITextClickBehavior","ITextKeyBehavior","constructor","arguments","_defineProperty","initBehavior","on","_mouseDownHandler","mouseUpHandler","doubleClickHandler","tripleClickHandler","draggableTextDelegate","DraggableTextDelegate","shouldStartDragging","isActive","onDragStart","canDrop","options","isEditing","useOverlayEditing","editable","enterEditing","selectWord","getSelectionStartFromPointer","renderCursorOrSelection","selectLine","_ref","alreadySelected","canvas","getActiveControl","start","textEditingManager","register","inCompositionMode","setCursorByClick","__selectionStartOnMouseDown","selectionStart","selectionEnd","abortCursorAnimation","selected","_ref2","transform","didDrag","end","unregister","activeObject","_activeObject","group","interactive","actionPerformed","initDelayedCursor","newSelection","shiftKey","setSelectionStartEndWithShift","_fireSelectionChanged","_updateTextarea","mouseOffset","getScenePoint","invertTransform","calcTransformMatrix","add","Point","_getLeftOffset","_getTopOffset","direction","x","height","charIndex","lineIndex","i","_textLines","length","y","getHeightOfLine","missingNewlineOffset","lineLeftOffset","_getLineLeftOffset","charLength","chars","__charBounds","lineStartIndex","j","charStart","left","charEnd","charMiddle","lineCharIndex","result","flipX","Math","min","_text"],"mappings":";;;;;;AAaA;AACA;AACA;AACA,MAAMA,aAAa,GAAIC,CAAQ,IAAK,CAAC,CAAEA,CAAC,CAAgBC,MAAM;AAEvD,MAAeC,kBAAkB,SAI9BC,gBAAgB,CAA2B;EAAAC,WAAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAAC,SAAA,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,uBAAA,EAAA,MAAA,CAAA;AAAA,EAAA;AAGnDC,EAAAA,YAAYA,GAAG;AACb;IACA,IAAI,CAACC,EAAE,CAAC,WAAW,EAAE,IAAI,CAACC,iBAAiB,CAAC;IAC5C,IAAI,CAACD,EAAE,CAAC,SAAS,EAAE,IAAI,CAACE,cAAc,CAAC;IACvC,IAAI,CAACF,EAAE,CAAC,eAAe,EAAE,IAAI,CAACG,kBAAkB,CAAC;IACjD,IAAI,CAACH,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAACI,kBAAkB,CAAC;AAEpD,IAAA,IAAI,CAACC,qBAAqB,GAAG,IAAIC,qBAAqB,CACpD,IACF,CAAC;IAED,KAAK,CAACP,YAAY,EAAE;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEQ,EAAAA,mBAAmBA,GAAG;AACpB,IAAA,OAAO,IAAI,CAACF,qBAAqB,CAACG,QAAQ,EAAE;AAC9C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACjB,CAAY,EAAE;AACxB,IAAA,OAAO,IAAI,CAACa,qBAAqB,CAACI,WAAW,CAACjB,CAAC,CAAC;AAClD,EAAA;;AAEA;AACF;AACA;EACEkB,OAAOA,CAAClB,CAAY,EAAE;AACpB,IAAA,OAAO,IAAI,CAACa,qBAAqB,CAACK,OAAO,CAAClB,CAAC,CAAC;AAC9C,EAAA;;AAEA;AACF;AACA;EACEW,kBAAkBA,CAACQ,OAA0B,EAAE;AAC7C;AACA,IAAA,IAAI,CAAC,IAAI,CAACC,SAAS,IAAK,IAAI,CAASC,iBAAiB,IAAI,IAAI,CAACC,QAAQ,EAAE;AACvE,MAAA,IAAI,CAACC,YAAY,CAACJ,OAAO,CAACnB,CAAC,CAAC;AAC5B,MAAA;AACF,IAAA;;AAEA;AACA,IAAA,IAAI,CAAC,IAAI,CAACoB,SAAS,EAAE;AACnB,MAAA;AACF,IAAA;IACA,IAAI,CAACI,UAAU,CAAC,IAAI,CAACC,4BAA4B,CAACN,OAAO,CAACnB,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC0B,uBAAuB,EAAE;AAChC,EAAA;;AAEA;AACF;AACA;EACEd,kBAAkBA,CAACO,OAA0B,EAAE;AAC7C,IAAA,IAAI,CAAC,IAAI,CAACC,SAAS,EAAE;AACnB,MAAA;AACF,IAAA;IACA,IAAI,CAACO,UAAU,CAAC,IAAI,CAACF,4BAA4B,CAACN,OAAO,CAACnB,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC0B,uBAAuB,EAAE;AAChC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEjB,iBAAiBA,CAAAmB,IAAA,EAA2D;IAAA,IAA1D;MAAE5B,CAAC;AAAE6B,MAAAA;AAAkD,KAAC,GAAAD,IAAA;IACxE,IACE,CAAC,IAAI,CAACE,MAAM,IACZ,CAAC,IAAI,CAACR,QAAQ,IACdvB,aAAa,CAACC,CAAC,CAAC,IAChB,IAAI,CAAC+B,gBAAgB,EAAE,EACvB;AACA,MAAA;AACF,IAAA;IAEA,IAAI,IAAI,CAAClB,qBAAqB,CAACmB,KAAK,CAAChC,CAAC,CAAC,EAAE;AACvC,MAAA;AACF,IAAA;IAEA,IAAI,CAAC8B,MAAM,CAACG,kBAAkB,CAACC,QAAQ,CAAC,IAAI,CAAC;AAE7C,IAAA,IAAIL,eAAe,EAAE;MACnB,IAAI,CAACM,iBAAiB,GAAG,KAAK;AAC9B,MAAA,IAAI,CAACC,gBAAgB,CAACpC,CAAC,CAAC;AAC1B,IAAA;IAEA,IAAI,IAAI,CAACoB,SAAS,EAAE;AAClB,MAAA,IAAI,CAACiB,2BAA2B,GAAG,IAAI,CAACC,cAAc;AACtD,MAAA,IAAI,IAAI,CAACA,cAAc,KAAK,IAAI,CAACC,YAAY,EAAE;QAC7C,IAAI,CAACC,oBAAoB,EAAE;AAC7B,MAAA;MACA,IAAI,CAACd,uBAAuB,EAAE;AAChC,IAAA;IACA,IAAI,CAACe,QAAQ,KAAb,IAAI,CAACA,QAAQ,GAAKZ,eAAe,IAAI,IAAI,CAACT,SAAS,CAAA;AACrD,EAAA;;AAEA;AACF;AACA;AACA;EACEV,cAAcA,CAAAgC,KAAA,EAAmD;IAAA,IAAlD;MAAE1C,CAAC;AAAE2C,MAAAA;AAA0C,KAAC,GAAAD,KAAA;IAC7D,MAAME,OAAO,GAAG,IAAI,CAAC/B,qBAAqB,CAACgC,GAAG,CAAC7C,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC8B,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,CAACG,kBAAkB,CAACa,UAAU,CAAC,IAAI,CAAC;AAE/C,MAAA,MAAMC,YAAY,GAAG,IAAI,CAACjB,MAAM,CAACkB,aAAa;AAC9C,MAAA,IAAID,YAAY,IAAIA,YAAY,KAAK,IAAI,EAAE;AACzC;AACA;AACA;AACA,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA,IACE,CAAC,IAAI,CAACzB,QAAQ,IACb,IAAI,CAAC2B,KAAK,IAAI,CAAC,IAAI,CAACA,KAAK,CAACC,WAAY,IACtCP,SAAS,IAAIA,SAAS,CAACQ,eAAgB,IACxCpD,aAAa,CAACC,CAAC,CAAC,IAChB4C,OAAO,EACP;AACA,MAAA;AACF,IAAA;IAEA,IAAI,IAAI,CAACH,QAAQ,IAAI,CAAC,IAAI,CAACV,gBAAgB,EAAE,EAAE;AAC7C,MAAA,IAAI,CAACR,YAAY,CAACvB,CAAC,CAAC;AACpB,MAAA,IAAI,IAAI,CAACsC,cAAc,KAAK,IAAI,CAACC,YAAY,EAAE;AAC7C,QAAA,IAAI,CAACa,iBAAiB,CAAC,IAAI,CAAC;AAC9B,MAAA,CAAC,MAAM;QACL,IAAI,CAAC1B,uBAAuB,EAAE;AAChC,MAAA;AACF,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;EACEU,gBAAgBA,CAACpC,CAAgB,EAAE;AACjC,IAAA,MAAMqD,YAAY,GAAG,IAAI,CAAC5B,4BAA4B,CAACzB,CAAC,CAAC;MACvDgC,KAAK,GAAG,IAAI,CAACM,cAAc;MAC3BO,GAAG,GAAG,IAAI,CAACN,YAAY;IACzB,IAAIvC,CAAC,CAACsD,QAAQ,EAAE;MACd,IAAI,CAACC,6BAA6B,CAACvB,KAAK,EAAEa,GAAG,EAAEQ,YAAY,CAAC;AAC9D,IAAA,CAAC,MAAM;MACL,IAAI,CAACf,cAAc,GAAGe,YAAY;MAClC,IAAI,CAACd,YAAY,GAAGc,YAAY;AAClC,IAAA;IACA,IAAI,IAAI,CAACjC,SAAS,EAAE;MAClB,IAAI,CAACoC,qBAAqB,EAAE;MAC5B,IAAI,CAACC,eAAe,EAAE;AACxB,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACEhC,4BAA4BA,CAACzB,CAAgB,EAAU;AACrD,IAAA,MAAM0D,WAAW,GAAG,IAAI,CAAC5B,MAAM,CAAE6B,aAAa,CAAC3D,CAAC,CAAC,CAC9C2C,SAAS,CAACiB,eAAe,CAAC,IAAI,CAACC,mBAAmB,EAAE,CAAC,CAAC,CACtDC,GAAG,CAAC,IAAIC,KAAK,CAAC,CAAC,IAAI,CAACC,cAAc,EAAE,EAAE,CAAC,IAAI,CAACC,aAAa,EAAE,CAAC,CAAC;AAEhE,IAAA,IAAI,IAAI,CAACC,SAAS,KAAK,KAAK,EAAE;AAC5BR,MAAAA,WAAW,CAACS,CAAC,IAAI,EAAE;AACrB,IAAA;IAEA,IAAIC,MAAM,GAAG,CAAC;AACZC,MAAAA,SAAS,GAAG,CAAC;AACbC,MAAAA,SAAS,GAAG,CAAC;AAEf,IAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACC,UAAU,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;AAC/C,MAAA,IAAIH,MAAM,IAAIV,WAAW,CAACgB,CAAC,EAAE;AAC3BN,QAAAA,MAAM,IAAI,IAAI,CAACO,eAAe,CAACJ,CAAC,CAAC;AACjCD,QAAAA,SAAS,GAAGC,CAAC;QACb,IAAIA,CAAC,GAAG,CAAC,EAAE;AACTF,UAAAA,SAAS,IACP,IAAI,CAACG,UAAU,CAACD,CAAC,GAAG,CAAC,CAAC,CAACE,MAAM,GAAG,IAAI,CAACG,oBAAoB,CAACL,CAAC,GAAG,CAAC,CAAC;AACpE,QAAA;AACF,MAAA,CAAC,MAAM;AACL,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA,MAAMM,cAAc,GAAG,IAAI,CAACC,kBAAkB,CAACR,SAAS,CAAC;IACzD,MAAMS,UAAU,GAAG,IAAI,CAACP,UAAU,CAACF,SAAS,CAAC,CAACG,MAAM;AACpD,IAAA,MAAMO,KAAK,GAAG,IAAI,CAACC,YAAY,CAACX,SAAS,CAAC;IAE1C,MAAMY,cAAc,GAAGb,SAAS;AAChC;;IAEA,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,UAAU,EAAEI,CAAC,EAAE,EAAE;MACnC,MAAMC,SAAS,GAAGP,cAAc,GAAGG,KAAK,CAACG,CAAC,CAAC,CAACE,IAAI;MAChD,MAAMC,OAAO,GAAGT,cAAc,GAAGG,KAAK,CAACG,CAAC,GAAG,CAAC,CAAC,CAACE,IAAI;AAClD,MAAA,MAAME,UAAU,GAAG,CAACH,SAAS,GAAGE,OAAO,IAAI,CAAC;AAC5C,MAAA,IAAI5B,WAAW,CAACS,CAAC,IAAIoB,UAAU,EAAE;QAC/BlB,SAAS,GAAGa,cAAc,GAAGC,CAAC;AAC9B,QAAA;AACF,MAAA,CAAC,MAAM,IAAIzB,WAAW,CAACS,CAAC,IAAImB,OAAO,EAAE;AACnCjB,QAAAA,SAAS,GAAGa,cAAc,GAAGC,CAAC,GAAG,CAAC;AAClC,QAAA;AACF,MAAA;MACAd,SAAS,GAAGa,cAAc,GAAGH,UAAU;AACzC,IAAA;AAEA,IAAA,MAAMS,aAAa,GAAGnB,SAAS,GAAGa,cAAc;AAChD,IAAA,MAAMO,MAAM,GAAG,IAAI,CAACC,KAAK,GACrBR,cAAc,IAAIH,UAAU,GAAGS,aAAa,CAAC,GAC7CnB,SAAS;IAEb,OAAOsB,IAAI,CAACC,GAAG,CAACH,MAAM,EAAE,IAAI,CAACI,KAAK,CAACpB,MAAM,CAAC;AAC5C,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"ITextClickBehavior.mjs","sources":["../../../../src/shapes/IText/ITextClickBehavior.ts"],"sourcesContent":["import type {\n ObjectPointerEvents,\n TPointerEvent,\n TPointerEventInfo,\n} from '../../EventTypeDefs';\nimport { Point } from '../../Point';\nimport { invertTransform } from '../../util/misc/matrix';\nimport { DraggableTextDelegate } from './DraggableTextDelegate';\nimport type { ITextEvents } from './ITextBehavior';\nimport { ITextKeyBehavior } from './ITextKeyBehavior';\nimport type { TOptions } from '../../typedefs';\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\nimport type { IText } from './IText';\n/**\n * `LEFT_CLICK === 0`\n */\nconst notALeftClick = (e: Event) => !!(e as MouseEvent).button;\n\nexport abstract class ITextClickBehavior<\n Props extends TOptions<TextProps> = Partial<TextProps>,\n SProps extends SerializedTextProps = SerializedTextProps,\n EventSpec extends ITextEvents = ITextEvents,\n> extends ITextKeyBehavior<Props, SProps, EventSpec> {\n protected draggableTextDelegate: DraggableTextDelegate;\n\n initBehavior() {\n // Initializes event handlers related to cursor or selection\n this.on('mousedown', this._mouseDownHandler);\n this.on('mouseup', this.mouseUpHandler);\n this.on('mousedblclick', this.doubleClickHandler);\n this.on('mousetripleclick', this.tripleClickHandler);\n\n this.draggableTextDelegate = new DraggableTextDelegate(\n this as unknown as IText,\n );\n\n super.initBehavior();\n }\n\n /**\n * If this method returns true a mouse move operation over a text selection\n * will not prevent the native mouse event allowing the browser to start a drag operation.\n * shouldStartDragging can be read 'do not prevent default for mouse move event'\n * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false\n * @returns\n */\n shouldStartDragging() {\n return this.draggableTextDelegate.isActive();\n }\n\n /**\n * @public override this method to control whether instance should/shouldn't become a drag source,\n * @see also {@link DraggableTextDelegate#isActive}\n * To prevent drag and drop between objects both shouldStartDragging and onDragStart should return false\n * @returns {boolean} should handle event\n */\n onDragStart(e: DragEvent) {\n return this.draggableTextDelegate.onDragStart(e);\n }\n\n /**\n * @public override this method to control whether instance should/shouldn't become a drop target\n */\n canDrop(e: DragEvent) {\n return this.draggableTextDelegate.canDrop(e);\n }\n\n /**\n * Default handler for double click, select a word or enter overlay editing\n */\n doubleClickHandler(options: TPointerEventInfo) {\n // Check if we should enter overlay editing mode\n if (!this.isEditing && (this as any).useOverlayEditing && this.editable) {\n this.enterEditing(options.e);\n return;\n }\n \n // Default behavior: select word if already editing\n if (!this.isEditing) {\n return;\n }\n this.selectWord(this.getSelectionStartFromPointer(options.e));\n this.renderCursorOrSelection();\n }\n\n /**\n * Default handler for triple click, select a line\n */\n tripleClickHandler(options: TPointerEventInfo) {\n if (!this.isEditing) {\n return;\n }\n this.selectLine(this.getSelectionStartFromPointer(options.e));\n this.renderCursorOrSelection();\n }\n\n /**\n * Default event handler for the basic functionalities needed on _mouseDown\n * can be overridden to do something different.\n * Scope of this implementation is: find the click position, set selectionStart\n * find selectionEnd, initialize the drawing of either cursor or selection area\n * initializing a mousedDown on a text area will cancel fabricjs knowledge of\n * current compositionMode. It will be set to false.\n */\n _mouseDownHandler({ e, alreadySelected }: ObjectPointerEvents['mousedown']) {\n if (\n !this.canvas ||\n !this.editable ||\n notALeftClick(e) ||\n this.getActiveControl()\n ) {\n return;\n }\n\n if (this.draggableTextDelegate.start(e)) {\n return;\n }\n\n this.canvas.textEditingManager.register(this);\n\n if (alreadySelected) {\n this.inCompositionMode = false;\n this.setCursorByClick(e);\n }\n\n if (this.isEditing) {\n this.__selectionStartOnMouseDown = this.selectionStart;\n if (this.selectionStart === this.selectionEnd) {\n this.abortCursorAnimation();\n }\n this.renderCursorOrSelection();\n }\n this.selected ||= alreadySelected || this.isEditing;\n }\n\n /**\n * standard handler for mouse up, overridable\n * @private\n */\n mouseUpHandler({ e, transform }: ObjectPointerEvents['mouseup']) {\n const didDrag = this.draggableTextDelegate.end(e);\n\n if (this.canvas) {\n this.canvas.textEditingManager.unregister(this);\n\n const activeObject = this.canvas._activeObject;\n if (activeObject && activeObject !== this) {\n // avoid running this logic when there is an active object\n // this because is possible with shift click and fast clicks,\n // to rapidly deselect and reselect this object and trigger an enterEdit\n return;\n }\n }\n\n if (\n !this.editable ||\n (this.group && !this.group.interactive) ||\n (transform && transform.actionPerformed) ||\n notALeftClick(e) ||\n didDrag\n ) {\n return;\n }\n\n if (this.selected && !this.getActiveControl()) {\n this.enterEditing(e);\n if (this.selectionStart === this.selectionEnd) {\n this.initDelayedCursor(true);\n } else {\n this.renderCursorOrSelection();\n }\n }\n }\n\n /**\n * Changes cursor location in a text depending on passed pointer (x/y) object\n * @param {TPointerEvent} e Event object\n */\n setCursorByClick(e: TPointerEvent) {\n const newSelection = this.getSelectionStartFromPointer(e),\n start = this.selectionStart,\n end = this.selectionEnd;\n if (e.shiftKey) {\n this.setSelectionStartEndWithShift(start, end, newSelection);\n } else {\n this.selectionStart = newSelection;\n this.selectionEnd = newSelection;\n }\n if (this.isEditing) {\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Returns index of a character corresponding to where an object was clicked\n * @param {TPointerEvent} e Event object\n * @return {Number} Index of a character\n */\n getSelectionStartFromPointer(e: TPointerEvent): number {\n const mouseOffset = this.canvas!.getScenePoint(e)\n .transform(invertTransform(this.calcTransformMatrix()))\n .add(new Point(-this._getLeftOffset(), -this._getTopOffset()));\n\n if (this.direction === 'rtl') {\n mouseOffset.x *= -1;\n }\n\n let height = 0,\n charIndex = 0,\n lineIndex = 0;\n\n for (let i = 0; i < this._textLines.length; i++) {\n if (height <= mouseOffset.y) {\n height += this.getHeightOfLine(i);\n lineIndex = i;\n if (i > 0) {\n charIndex +=\n this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\n }\n } else {\n break;\n }\n }\n\n const lineLeftOffset = this._getLineLeftOffset(lineIndex);\n const charLength = this._textLines[lineIndex].length;\n const chars = this.__charBounds[lineIndex];\n\n const lineStartIndex = charIndex;\n // use character left positions which are always increasing even with RTL segments\n\n for (let j = 0; j < charLength; j++) {\n const charStart = lineLeftOffset + chars[j].left;\n const charEnd = lineLeftOffset + chars[j + 1].left;\n const charMiddle = (charStart + charEnd) / 2;\n if (mouseOffset.x <= charMiddle) {\n charIndex = lineStartIndex + j;\n break;\n } else if (mouseOffset.x <= charEnd) {\n charIndex = lineStartIndex + j + 1;\n break;\n }\n charIndex = lineStartIndex + charLength;\n }\n\n const lineCharIndex = charIndex - lineStartIndex;\n const result = this.flipX\n ? lineStartIndex + (charLength - lineCharIndex)\n : charIndex;\n\n return Math.min(result, this._text.length);\n }\n}\n"],"names":["notALeftClick","e","button","ITextClickBehavior","ITextKeyBehavior","constructor","arguments","_defineProperty","initBehavior","on","_mouseDownHandler","mouseUpHandler","doubleClickHandler","tripleClickHandler","draggableTextDelegate","DraggableTextDelegate","shouldStartDragging","isActive","onDragStart","canDrop","options","isEditing","useOverlayEditing","editable","enterEditing","selectWord","getSelectionStartFromPointer","renderCursorOrSelection","selectLine","_ref","alreadySelected","canvas","getActiveControl","start","textEditingManager","register","inCompositionMode","setCursorByClick","__selectionStartOnMouseDown","selectionStart","selectionEnd","abortCursorAnimation","selected","_ref2","transform","didDrag","end","unregister","activeObject","_activeObject","group","interactive","actionPerformed","initDelayedCursor","newSelection","shiftKey","setSelectionStartEndWithShift","_fireSelectionChanged","_updateTextarea","mouseOffset","getScenePoint","invertTransform","calcTransformMatrix","add","Point","_getLeftOffset","_getTopOffset","direction","x","height","charIndex","lineIndex","i","_textLines","length","y","getHeightOfLine","missingNewlineOffset","lineLeftOffset","_getLineLeftOffset","charLength","chars","__charBounds","lineStartIndex","j","charStart","left","charEnd","charMiddle","lineCharIndex","result","flipX","Math","min","_text"],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"ITextKeyBehavior.d.ts","sourceRoot":"","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ITextKeyBehavior.d.ts","sourceRoot":"","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnE,8BAAsB,gBAAgB,CACpC,KAAK,SAAS,QAAQ,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,EACtD,MAAM,SAAS,mBAAmB,GAAG,mBAAmB,EACxD,SAAS,SAAS,WAAW,GAAG,WAAW,CAC3C,SAAQ,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;IAC/C;;;;;;;;;;OAUG;IACK,OAAO,EAAE,YAAY,CAAC;IAEtB,UAAU,EAAE,YAAY,CAAC;IAEjC;;OAEG;IACK,aAAa,EAAE,YAAY,CAAC;IAEpC;;OAEG;IACK,eAAe,EAAE,YAAY,CAAC;IAE9B,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEnD;;;;;;OAMG;IACK,uBAAuB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAErD,QAAgB,wBAAwB,CAAU;IAClD,QAAgB,SAAS,CAAU;IACnC,QAAgB,SAAS,CAAU;IAEnC;;OAEG;IACH,kBAAkB;IAwClB;;OAEG;IACH,IAAI;IAIJ;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,aAAa;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,aAAa;IAmBxB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,cAAc,EAAE,mBAAmB,CAAA;KAAE,EAAE,CAAC,EAAE,KAAK;IAgJtE;;OAEG;IACH,kBAAkB;IAIlB;;OAEG;IACH,gBAAgB;IAIhB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB;IAOhD;;OAEG;IACH,IAAI;IAmBJ;;OAEG;IACH,KAAK;IAIL;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAWnE;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAyB/D;;;;;;OAMG;IACH,sBAAsB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAQlE;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAsB7D;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA+BhD;;;OAGG;IACH,cAAc,CAAC,CAAC,EAAE,aAAa;IAU/B;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,aAAa;IAO7B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,aAAa;IAuB9D;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAalC;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAWrC;;;OAGG;IACH,cAAc,CAAC,CAAC,EAAE,aAAa;IAO/B;;;;;OAKG;IACH,KAAK,CACH,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,gBAAgB,GAAG,cAAc,EACvC,SAAS,EAAE,MAAM,GAAG,OAAO,GAC1B,OAAO;IAiBV;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,cAAc;IAInE;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,cAAc;IAIpE;;;OAGG;IACH,0BAA0B,CAAC,CAAC,EAAE,aAAa;IAgB3C;;;OAGG;IACH,uBAAuB,CAAC,CAAC,EAAE,aAAa;IAYxC;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,aAAa;IAUhC;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC,EAAE,aAAa;IAepE;;;OAGG;IACH,wBAAwB,CAAC,CAAC,EAAE,aAAa;IAYzC;;;OAGG;IACH,2BAA2B,CAAC,CAAC,EAAE,aAAa;CAY7C"}
@@ -1,2 +1,2 @@
1
- import{config as t}from"../../config.min.mjs";import{getFabricDocument as e,getEnv as i}from"../../env/index.min.mjs";import{capValue as s}from"../../util/misc/capValue.min.mjs";import{ITextBehavior as o}from"./ITextBehavior.min.mjs";import{getDocumentFromElement as n}from"../../util/dom_misc.min.mjs";import{RIGHT as r,LEFT as h,CHANGED as c}from"../../constants.min.mjs";class a extends o{initHiddenTextarea(){const t=this.canvas&&n(this.canvas.getElement())||e(),i=t.createElement("textarea");Object.entries({autocapitalize:"off",autocorrect:"off",autocomplete:"off",spellcheck:"false","data-fabric":"textarea",wrap:"off"}).map(t=>{let[e,s]=t;return i.setAttribute(e,s)});const{top:s,left:o,fontSize:r}=this._calcTextareaPosition();i.style.cssText=`position: absolute; top: ${s}; left: ${o}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${r};`,(this.hiddenTextareaContainer||t.body).appendChild(i),Object.entries({blur:"blur",keydown:"onKeyDown",keyup:"onKeyUp",input:"onInput",copy:"copy",cut:"copy",paste:"paste",compositionstart:"onCompositionStart",compositionupdate:"onCompositionUpdate",compositionend:"onCompositionEnd"}).map(t=>{let[e,s]=t;return i.addEventListener(e,this[s].bind(this))}),this.hiddenTextarea=i}blur(){this.abortCursorAnimation()}onKeyDown(t){if(!this.isEditing)return;const e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(e){const s=this.fromPaste,{value:o,selectionStart:n,selectionEnd:r}=this.hiddenTextarea;if(this.fromPaste=!1,e&&e.stopPropagation(),!this.isEditing)return;const h=()=>{this.updateFromTextArea(),this.fire(c),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())};if(""===this.hiddenTextarea.value)return this.styles={},void h();const a=this._splitTextIntoLines(o).graphemeText,l=this._text.length,d=a.length,m=this.selectionStart,f=this.selectionEnd,p=m!==f;let u,g,S,_,y=d-l;const C=this.fromStringToGraphemeSelection(n,r,o),x=m>C.selectionStart;p?(g=this._text.slice(m,f),y+=f-m):d<l&&(g=x?this._text.slice(f+y,f):this._text.slice(m,m-y));const v=a.slice(C.selectionEnd-y,C.selectionEnd);if(g&&g.length&&(v.length&&(u=this.getSelectionStyles(m,m+1,!1),u=v.map(()=>u[0])),p?(S=m,_=f):x?(S=f-g.length,_=f):(S=f,_=f+g.length),this.removeStyleFromTo(S,_)),v.length){const{copyPasteData:e}=i();s&&v.join("")===e.copiedText&&!t.disableStyleCopyPaste&&(u=e.copiedTextStyle),this.insertNewStyleBlock(v,m,u)}h()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate(t){let{target:e}=t;const{selectionStart:i,selectionEnd:s}=e;this.compositionStart=i,this.compositionEnd=s,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;const{copyPasteData:e}=i();e.copiedText=this.getSelectedText(),t.disableStyleCopyPaste?e.copiedTextStyle=void 0:e.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(t,e){let i,s=this._getLineLeftOffset(t);return e>0&&(i=this.__charBounds[t][e-1],s+=i.left+i.width),s}getDownCursorOffset(t,e){const i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),o=s.lineIndex;if(o===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;const n=s.charIndex,r=this._getWidthBeforeCursor(o,n),h=this._getIndexOnLine(o+1,r);return this._textLines[o].slice(n).length+h+1+this.missingNewlineOffset(o)}_getSelectionForOffset(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(t,e){const i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),o=s.lineIndex;if(0===o||t.metaKey||33===t.keyCode)return-i;const n=s.charIndex,r=this._getWidthBeforeCursor(o,n),h=this._getIndexOnLine(o-1,r),c=this._textLines[o].slice(0,n),a=this.missingNewlineOffset(o-1);return-this._textLines[o-1].length+h-c.length+(1-a)}_getIndexOnLine(t,e){const i=this._textLines[t];let s,o,n=this._getLineLeftOffset(t),r=0;for(let h=0,c=i.length;h<c;h++)if(s=this.__charBounds[t][h].width,n+=s,n>e){o=!0;const t=n-s,i=n,c=Math.abs(t-e);r=Math.abs(i-e)<c?h:h-1;break}return o||(r=i.length-1),r}moveCursorDown(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)}moveCursorUp(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)}_moveCursorUpOrDown(t,e){const i=this[`get${t}CursorOffset`](e,this._selectionDirection===r);if(e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i){const t=this.text.length;this.selectionStart=s(0,this.selectionStart,t),this.selectionEnd=s(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(t){const e=this._selectionDirection===h?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t}moveCursorWithoutShift(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t}moveCursorLeft(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)}_move(t,e,i){let s;if(t.altKey)s=this[`findWordBoundary${i}`](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;s=this[`findLineBoundary${i}`](this[e])}return void 0!==s&&this[e]!==s&&(this[e]=s,!0)}_moveLeft(t,e){return this._move(t,e,"Left")}_moveRight(t,e){return this._move(t,e,"Right")}moveCursorLeftWithoutShift(t){let e=!0;return this._selectionDirection=h,this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(t){return this._selectionDirection===r&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection=h,this._moveLeft(t,"selectionStart")):void 0}moveCursorRight(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)}_moveCursorLeftOrRight(t,e){const i=`moveCursor${t}${e.shiftKey?"WithShift":"WithoutShift"}`;this._currentCursorOpacity=1,this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(t){return this._selectionDirection===h&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection=r,this._moveRight(t,"selectionEnd")):void 0}moveCursorRightWithoutShift(t){let e=!0;return this._selectionDirection=r,this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}}export{a as ITextKeyBehavior};
1
+ import{config as t}from"../../config.min.mjs";import{getFabricDocument as e,getEnv as i}from"../../env/index.min.mjs";import{capValue as s}from"../../util/misc/capValue.min.mjs";import{ITextBehavior as o}from"./ITextBehavior.min.mjs";import{getDocumentFromElement as n}from"../../util/dom_misc.min.mjs";import{CHANGED as r,RIGHT as h,LEFT as a}from"../../constants.min.mjs";class c extends o{initHiddenTextarea(){const t=this.canvas&&n(this.canvas.getElement())||e(),i=t.createElement("textarea");Object.entries({autocapitalize:"off",autocorrect:"off",autocomplete:"off",spellcheck:"false","data-fabric":"textarea",wrap:"off"}).map(t=>{let[e,s]=t;return i.setAttribute(e,s)});const{top:s,left:o,fontSize:r}=this._calcTextareaPosition();i.style.cssText=`position: absolute; top: ${s}; left: ${o}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${r};`,(this.hiddenTextareaContainer||t.body).appendChild(i),Object.entries({blur:"blur",keydown:"onKeyDown",keyup:"onKeyUp",input:"onInput",copy:"copy",cut:"copy",paste:"paste",compositionstart:"onCompositionStart",compositionupdate:"onCompositionUpdate",compositionend:"onCompositionEnd"}).map(t=>{let[e,s]=t;return i.addEventListener(e,this[s].bind(this))}),this.hiddenTextarea=i}blur(){this.abortCursorAnimation()}onKeyDown(t){if(!this.isEditing)return;const e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(e){const s=this.fromPaste,{value:o,selectionStart:n,selectionEnd:h}=this.hiddenTextarea;if(this.fromPaste=!1,e&&e.stopPropagation(),!this.isEditing)return;if(console.log("🔤 onInput debug:",{fabricText:this.text,textareaValue:o,fabricSelection:{start:this.selectionStart,end:this.selectionEnd},textareaSelection:{start:n,end:h},fromPaste:s,inComposition:this.inCompositionMode}),this.text!==o&&!this.inCompositionMode)return console.log("🔤 Immediate sync: fabric text differs from textarea, syncing immediately"),console.log("🔤 Before sync - fabric text:",this.text),console.log("🔤 Before sync - textarea value:",o),console.log("🔤 fromPaste:",s),this.cursorOffsetCache={},this._browserWrapCache=null,this._lastDimensionState=null,this._forceClearCache=!0,console.log("🔤 Cleared all caches"),this.updateFromTextArea(),this.fire(r),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.renderAll()),console.log("🔤 After updateFromTextArea - fabric text:",this.text),void console.log("🔤 Sync complete, caches cleared, synchronous render only");const a=()=>{this.updateFromTextArea(),this.fire(r),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())};if(""===this.hiddenTextarea.value)return this.styles={},void a();const c=this._splitTextIntoLines(o).graphemeText,l=this._text.length,d=c.length,f=this.selectionStart,m=this.selectionEnd,p=f!==m;let u,g,S,y,C=d-l;const x=this.fromStringToGraphemeSelection(n,h,o),_=f>x.selectionStart;p?(g=this._text.slice(f,m),C+=m-f):d<l&&(g=_?this._text.slice(m+C,m):this._text.slice(f,f-C));const v=c.slice(x.selectionEnd-C,x.selectionEnd);if(g&&g.length&&(v.length&&(u=this.getSelectionStyles(f,f+1,!1),u=v.map(()=>u[0])),p?(S=f,y=m):_?(S=m-g.length,y=m):(S=m,y=m+g.length),this.removeStyleFromTo(S,y)),v.length){const{copyPasteData:e}=i();s&&v.join("")===e.copiedText&&!t.disableStyleCopyPaste&&(u=e.copiedTextStyle),this.insertNewStyleBlock(v,f,u)}a()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate(t){let{target:e}=t;const{selectionStart:i,selectionEnd:s}=e;this.compositionStart=i,this.compositionEnd=s,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;const{copyPasteData:e}=i();e.copiedText=this.getSelectedText(),t.disableStyleCopyPaste?e.copiedTextStyle=void 0:e.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(t,e){let i,s=this._getLineLeftOffset(t);return e>0&&(i=this.__charBounds[t][e-1],s+=i.left+i.width),s}getDownCursorOffset(t,e){const i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),o=s.lineIndex;if(o===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;const n=s.charIndex,r=this._getWidthBeforeCursor(o,n),h=this._getIndexOnLine(o+1,r);return this._textLines[o].slice(n).length+h+1+this.missingNewlineOffset(o)}_getSelectionForOffset(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(t,e){const i=this._getSelectionForOffset(t,e),s=this.get2DCursorLocation(i),o=s.lineIndex;if(0===o||t.metaKey||33===t.keyCode)return-i;const n=s.charIndex,r=this._getWidthBeforeCursor(o,n),h=this._getIndexOnLine(o-1,r),a=this._textLines[o].slice(0,n),c=this.missingNewlineOffset(o-1);return-this._textLines[o-1].length+h-a.length+(1-c)}_getIndexOnLine(t,e){const i=this._textLines[t];let s,o,n=this._getLineLeftOffset(t),r=0;for(let h=0,a=i.length;h<a;h++)if(s=this.__charBounds[t][h].width,n+=s,n>e){o=!0;const t=n-s,i=n,a=Math.abs(t-e);r=Math.abs(i-e)<a?h:h-1;break}return o||(r=i.length-1),r}moveCursorDown(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)}moveCursorUp(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)}_moveCursorUpOrDown(t,e){const i=this[`get${t}CursorOffset`](e,this._selectionDirection===h);if(e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i){const t=this.text.length;this.selectionStart=s(0,this.selectionStart,t),this.selectionEnd=s(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(t){const e=this._selectionDirection===a?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t}moveCursorWithoutShift(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t}moveCursorLeft(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)}_move(t,e,i){let s;if(t.altKey)s=this[`findWordBoundary${i}`](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;s=this[`findLineBoundary${i}`](this[e])}return void 0!==s&&this[e]!==s&&(this[e]=s,!0)}_moveLeft(t,e){return this._move(t,e,"Left")}_moveRight(t,e){return this._move(t,e,"Right")}moveCursorLeftWithoutShift(t){let e=!0;return this._selectionDirection=a,this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(t){return this._selectionDirection===h&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection=a,this._moveLeft(t,"selectionStart")):void 0}moveCursorRight(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)}_moveCursorLeftOrRight(t,e){const i=`moveCursor${t}${e.shiftKey?"WithShift":"WithoutShift"}`;this._currentCursorOpacity=1,this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(t){return this._selectionDirection===a&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection=h,this._moveRight(t,"selectionEnd")):void 0}moveCursorRightWithoutShift(t){let e=!0;return this._selectionDirection=h,this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}}export{c as ITextKeyBehavior};
2
2
  //# sourceMappingURL=ITextKeyBehavior.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITextKeyBehavior.min.mjs","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"sourcesContent":["import { config } from '../../config';\nimport { getFabricDocument, getEnv } from '../../env';\nimport { capValue } from '../../util/misc/capValue';\nimport type { ITextEvents } from './ITextBehavior';\nimport { ITextBehavior } from './ITextBehavior';\nimport type { TKeyMapIText } from './constants';\nimport type { TOptions } from '../../typedefs';\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\nimport { getDocumentFromElement } from '../../util/dom_misc';\nimport { CHANGED, LEFT, RIGHT } from '../../constants';\nimport type { IText } from './IText';\nimport type { TextStyleDeclaration } from '../Text/StyledText';\n\nexport abstract class ITextKeyBehavior<\n Props extends TOptions<TextProps> = Partial<TextProps>,\n SProps extends SerializedTextProps = SerializedTextProps,\n EventSpec extends ITextEvents = ITextEvents,\n> extends ITextBehavior<Props, SProps, EventSpec> {\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behavior for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the IText or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = Object.assign({}, this.keysMap);\n * The function must be in IText.prototype.myFunction And will receive event as args[0]\n */\n declare keysMap: TKeyMapIText;\n\n declare keysMapRtl: TKeyMapIText;\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n declare ctrlKeysMapUp: TKeyMapIText;\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n declare ctrlKeysMapDown: TKeyMapIText;\n\n declare hiddenTextarea: HTMLTextAreaElement | null;\n\n /**\n * DOM container to append the hiddenTextarea.\n * An alternative to attaching to the document.body.\n * Useful to reduce laggish redraw of the full document.body tree and\n * also with modals event capturing that won't let the textarea take focus.\n * @type HTMLElement\n */\n declare hiddenTextareaContainer?: HTMLElement | null;\n\n declare private _clickHandlerInitialized: boolean;\n declare private _copyDone: boolean;\n declare private fromPaste: boolean;\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea() {\n const doc =\n (this.canvas && getDocumentFromElement(this.canvas.getElement())) ||\n getFabricDocument();\n const textarea = doc.createElement('textarea');\n Object.entries({\n autocapitalize: 'off',\n autocorrect: 'off',\n autocomplete: 'off',\n spellcheck: 'false',\n 'data-fabric': 'textarea',\n wrap: 'off',\n }).map(([attribute, value]) => textarea.setAttribute(attribute, value));\n const { top, left, fontSize } = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n textarea.style.cssText = `position: absolute; top: ${top}; left: ${left}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${fontSize};`;\n\n (this.hiddenTextareaContainer || doc.body).appendChild(textarea);\n\n Object.entries({\n blur: 'blur',\n keydown: 'onKeyDown',\n keyup: 'onKeyUp',\n input: 'onInput',\n copy: 'copy',\n cut: 'copy',\n paste: 'paste',\n compositionstart: 'onCompositionStart',\n compositionupdate: 'onCompositionUpdate',\n compositionend: 'onCompositionEnd',\n } as Record<string, keyof this>).map(([eventName, handler]) =>\n textarea.addEventListener(\n eventName,\n (this[handler] as EventListener).bind(this),\n ),\n );\n this.hiddenTextarea = textarea;\n }\n\n /**\n * Override this method to customize cursor behavior on textbox blur\n */\n blur() {\n this.abortCursorAnimation();\n }\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {KeyboardEvent} e Event object\n */\n onKeyDown(e: KeyboardEvent) {\n if (!this.isEditing) {\n return;\n }\n const keyMap = this.direction === 'rtl' ? this.keysMapRtl : this.keysMap;\n if (e.keyCode in keyMap) {\n (this[keyMap[e.keyCode] as keyof this] as (arg: KeyboardEvent) => void)(\n e,\n );\n } else if (e.keyCode in this.ctrlKeysMapDown && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapDown[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n } else {\n this.canvas && this.canvas.requestRenderAll();\n }\n }\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {KeyboardEvent} e Event object\n */\n onKeyUp(e: KeyboardEvent) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if (e.keyCode in this.ctrlKeysMapUp && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapUp[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n }\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput(this: this & { hiddenTextarea: HTMLTextAreaElement }, e: Event) {\n const fromPaste = this.fromPaste;\n const { value, selectionStart, selectionEnd } = this.hiddenTextarea;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n const updateAndFire = () => {\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n this.canvas.requestRenderAll();\n }\n };\n if (this.hiddenTextarea.value === '') {\n this.styles = {};\n updateAndFire();\n return;\n }\n // decisions about style changes.\n const nextText = this._splitTextIntoLines(value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n _selectionStart = this.selectionStart,\n _selectionEnd = this.selectionEnd,\n selection = _selectionStart !== _selectionEnd;\n let copiedStyle: TextStyleDeclaration[] | undefined,\n removedText,\n charDiff = nextCharCount - charCount,\n removeFrom,\n removeTo;\n\n const textareaSelection = this.fromStringToGraphemeSelection(\n selectionStart,\n selectionEnd,\n value,\n );\n const backDelete = _selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(_selectionStart, _selectionEnd);\n charDiff += _selectionEnd - _selectionStart;\n } else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(_selectionEnd + charDiff, _selectionEnd);\n } else {\n removedText = this._text.slice(\n _selectionStart,\n _selectionStart - charDiff,\n );\n }\n }\n const insertedText = nextText.slice(\n textareaSelection.selectionEnd - charDiff,\n textareaSelection.selectionEnd,\n );\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(\n _selectionStart,\n _selectionStart + 1,\n false,\n );\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(\n () =>\n // this return an array of references, but that is fine since we are\n // copying the style later.\n copiedStyle![0],\n );\n }\n if (selection) {\n removeFrom = _selectionStart;\n removeTo = _selectionEnd;\n } else if (backDelete) {\n // detect differences between forwardDelete and backDelete\n removeFrom = _selectionEnd - removedText.length;\n removeTo = _selectionEnd;\n } else {\n removeFrom = _selectionEnd;\n removeTo = _selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n const { copyPasteData } = getEnv();\n if (\n fromPaste &&\n insertedText.join('') === copyPasteData.copiedText &&\n !config.disableStyleCopyPaste\n ) {\n copiedStyle = copyPasteData.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, _selectionStart, copiedStyle);\n }\n updateAndFire();\n }\n\n /**\n * Composition start\n */\n onCompositionStart() {\n this.inCompositionMode = true;\n }\n\n /**\n * Composition end\n */\n onCompositionEnd() {\n this.inCompositionMode = false;\n }\n\n onCompositionUpdate({ target }: CompositionEvent) {\n const { selectionStart, selectionEnd } = target as HTMLTextAreaElement;\n this.compositionStart = selectionStart;\n this.compositionEnd = selectionEnd;\n this.updateTextareaPosition();\n }\n\n /**\n * Copies selected text\n */\n copy() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n const { copyPasteData } = getEnv();\n copyPasteData.copiedText = this.getSelectedText();\n if (!config.disableStyleCopyPaste) {\n copyPasteData.copiedTextStyle = this.getSelectionStyles(\n this.selectionStart,\n this.selectionEnd,\n true,\n );\n } else {\n copyPasteData.copiedTextStyle = undefined;\n }\n this._copyDone = true;\n }\n\n /**\n * Pastes text\n */\n paste() {\n this.fromPaste = true;\n }\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor(lineIndex: number, charIndex: number): number {\n let widthBeforeCursor = this._getLineLeftOffset(lineIndex),\n bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n }\n\n /**\n * Gets start offset of a selection\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (\n lineIndex === this._textLines.length - 1 ||\n e.metaKey ||\n e.keyCode === 34\n ) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return (\n textAfterCursor.length +\n indexOnOtherLine +\n 1 +\n this.missingNewlineOffset(lineIndex)\n );\n }\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n } else {\n return this.selectionStart;\n }\n }\n\n /**\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return (\n -this._textLines[lineIndex - 1].length +\n indexOnOtherLine -\n textBeforeCursor.length +\n (1 - missingNewlineOffset)\n );\n }\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine(lineIndex: number, width: number) {\n const line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n let widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0,\n charWidth,\n foundMatch;\n\n for (let j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n const leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : j - 1;\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n }\n\n /**\n * Moves cursor down\n * @param {KeyboardEvent} e Event object\n */\n moveCursorDown(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n }\n\n /**\n * Moves cursor up\n * @param {KeyboardEvent} e Event object\n */\n moveCursorUp(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n }\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorUpOrDown(direction: 'Up' | 'Down', e: KeyboardEvent) {\n const offset = this[`get${direction}CursorOffset`](\n e,\n this._selectionDirection === RIGHT,\n );\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n } else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n const max = this.text.length;\n this.selectionStart = capValue(0, this.selectionStart, max);\n this.selectionEnd = capValue(0, this.selectionEnd, max);\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift(offset: number) {\n const newSelection =\n this._selectionDirection === LEFT\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(\n this.selectionStart,\n this.selectionEnd,\n newSelection,\n );\n return offset !== 0;\n }\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift(offset: number) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n }\n\n /**\n * Moves cursor left\n * @param {KeyboardEvent} e Event object\n */\n moveCursorLeft(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n }\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n *\n * @todo refactor not to use method name composition\n */\n _move(\n e: KeyboardEvent,\n prop: 'selectionStart' | 'selectionEnd',\n direction: 'Left' | 'Right',\n ): boolean {\n let newValue: number | undefined;\n if (e.altKey) {\n newValue = this[`findWordBoundary${direction}`](this[prop]);\n } else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36) {\n newValue = this[`findLineBoundary${direction}`](this[prop]);\n } else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== 'undefined' && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n return false;\n }\n\n /**\n * @private\n */\n _moveLeft(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Left');\n }\n\n /**\n * @private\n */\n _moveRight(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Right');\n }\n\n /**\n * Moves cursor left without keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithoutShift(e: KeyboardEvent) {\n let change = true;\n this._selectionDirection = LEFT;\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (\n this.selectionEnd === this.selectionStart &&\n this.selectionStart !== 0\n ) {\n change = this._moveLeft(e, 'selectionStart');\n }\n this.selectionEnd = this.selectionStart;\n return change;\n }\n\n /**\n * Moves cursor left while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === RIGHT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveLeft(e, 'selectionEnd');\n } else if (this.selectionStart !== 0) {\n this._selectionDirection = LEFT;\n return this._moveLeft(e, 'selectionStart');\n }\n }\n\n /**\n * Moves cursor right\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRight(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n }\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorLeftOrRight(direction: 'Left' | 'Right', e: KeyboardEvent) {\n const actionName = `moveCursor${direction}${\n e.shiftKey ? 'WithShift' : 'WithoutShift'\n }` as const;\n this._currentCursorOpacity = 1;\n if (this[actionName](e)) {\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor right while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorRightWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === LEFT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveRight(e, 'selectionStart');\n } else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = RIGHT;\n return this._moveRight(e, 'selectionEnd');\n }\n }\n\n /**\n * Moves cursor right without keeping selection\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRightWithoutShift(e: KeyboardEvent) {\n let changed = true;\n this._selectionDirection = RIGHT;\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n }\n}\n"],"names":["ITextKeyBehavior","ITextBehavior","initHiddenTextarea","doc","this","canvas","getDocumentFromElement","getElement","getFabricDocument","textarea","createElement","Object","entries","autocapitalize","autocorrect","autocomplete","spellcheck","wrap","map","_ref","attribute","value","setAttribute","top","left","fontSize","_calcTextareaPosition","style","cssText","hiddenTextareaContainer","body","appendChild","blur","keydown","keyup","input","copy","cut","paste","compositionstart","compositionupdate","compositionend","_ref2","eventName","handler","addEventListener","bind","hiddenTextarea","abortCursorAnimation","onKeyDown","e","isEditing","keyMap","direction","keysMapRtl","keysMap","keyCode","ctrlKeysMapDown","ctrlKey","metaKey","stopImmediatePropagation","preventDefault","inCompositionMode","clearContextTop","renderCursorOrSelection","requestRenderAll","onKeyUp","_copyDone","ctrlKeysMapUp","onInput","fromPaste","selectionStart","selectionEnd","stopPropagation","updateAndFire","updateFromTextArea","fire","CHANGED","target","styles","nextText","_splitTextIntoLines","graphemeText","charCount","_text","length","nextCharCount","_selectionStart","_selectionEnd","selection","copiedStyle","removedText","removeFrom","removeTo","charDiff","textareaSelection","fromStringToGraphemeSelection","backDelete","slice","insertedText","getSelectionStyles","removeStyleFromTo","copyPasteData","getEnv","join","copiedText","config","disableStyleCopyPaste","copiedTextStyle","insertNewStyleBlock","onCompositionStart","onCompositionEnd","onCompositionUpdate","_ref3","compositionStart","compositionEnd","updateTextareaPosition","getSelectedText","undefined","_getWidthBeforeCursor","lineIndex","charIndex","bound","widthBeforeCursor","_getLineLeftOffset","__charBounds","width","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","cursorLocation","get2DCursorLocation","_textLines","indexOnOtherLine","_getIndexOnLine","missingNewlineOffset","shiftKey","getUpCursorOffset","textBeforeCursor","line","charWidth","foundMatch","widthOfCharsOnLine","indexOnLine","j","jlen","leftEdge","rightEdge","offsetFromLeftEdge","Math","abs","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","offset","_selectionDirection","RIGHT","moveCursorWithShift","moveCursorWithoutShift","max","text","capValue","initDelayedCursor","_fireSelectionChanged","_updateTextarea","newSelection","LEFT","setSelectionStartEndWithShift","moveCursorLeft","_moveCursorLeftOrRight","_move","prop","newValue","altKey","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","actionName","_currentCursorOpacity","moveCursorRightWithShift","moveCursorRightWithoutShift","changed"],"mappings":"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"}
1
+ {"version":3,"file":"ITextKeyBehavior.min.mjs","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"sourcesContent":["import { config } from '../../config';\nimport { getFabricDocument, getEnv } from '../../env';\nimport { capValue } from '../../util/misc/capValue';\nimport type { ITextEvents } from './ITextBehavior';\nimport { ITextBehavior } from './ITextBehavior';\nimport type { TKeyMapIText } from './constants';\nimport type { TOptions } from '../../typedefs';\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\nimport { getDocumentFromElement } from '../../util/dom_misc';\nimport { CHANGED, LEFT, RIGHT } from '../../constants';\nimport type { IText } from './IText';\nimport type { TextStyleDeclaration } from '../Text/StyledText';\n\nexport abstract class ITextKeyBehavior<\n Props extends TOptions<TextProps> = Partial<TextProps>,\n SProps extends SerializedTextProps = SerializedTextProps,\n EventSpec extends ITextEvents = ITextEvents,\n> extends ITextBehavior<Props, SProps, EventSpec> {\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behavior for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the IText or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = Object.assign({}, this.keysMap);\n * The function must be in IText.prototype.myFunction And will receive event as args[0]\n */\n declare keysMap: TKeyMapIText;\n\n declare keysMapRtl: TKeyMapIText;\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n declare ctrlKeysMapUp: TKeyMapIText;\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n declare ctrlKeysMapDown: TKeyMapIText;\n\n declare hiddenTextarea: HTMLTextAreaElement | null;\n\n /**\n * DOM container to append the hiddenTextarea.\n * An alternative to attaching to the document.body.\n * Useful to reduce laggish redraw of the full document.body tree and\n * also with modals event capturing that won't let the textarea take focus.\n * @type HTMLElement\n */\n declare hiddenTextareaContainer?: HTMLElement | null;\n\n declare private _clickHandlerInitialized: boolean;\n declare private _copyDone: boolean;\n declare private fromPaste: boolean;\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea() {\n const doc =\n (this.canvas && getDocumentFromElement(this.canvas.getElement())) ||\n getFabricDocument();\n const textarea = doc.createElement('textarea');\n Object.entries({\n autocapitalize: 'off',\n autocorrect: 'off',\n autocomplete: 'off',\n spellcheck: 'false',\n 'data-fabric': 'textarea',\n wrap: 'off',\n }).map(([attribute, value]) => textarea.setAttribute(attribute, value));\n const { top, left, fontSize } = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n textarea.style.cssText = `position: absolute; top: ${top}; left: ${left}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${fontSize};`;\n\n (this.hiddenTextareaContainer || doc.body).appendChild(textarea);\n\n Object.entries({\n blur: 'blur',\n keydown: 'onKeyDown',\n keyup: 'onKeyUp',\n input: 'onInput',\n copy: 'copy',\n cut: 'copy',\n paste: 'paste',\n compositionstart: 'onCompositionStart',\n compositionupdate: 'onCompositionUpdate',\n compositionend: 'onCompositionEnd',\n } as Record<string, keyof this>).map(([eventName, handler]) =>\n textarea.addEventListener(\n eventName,\n (this[handler] as EventListener).bind(this),\n ),\n );\n this.hiddenTextarea = textarea;\n }\n\n /**\n * Override this method to customize cursor behavior on textbox blur\n */\n blur() {\n this.abortCursorAnimation();\n }\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {KeyboardEvent} e Event object\n */\n onKeyDown(e: KeyboardEvent) {\n if (!this.isEditing) {\n return;\n }\n const keyMap = this.direction === 'rtl' ? this.keysMapRtl : this.keysMap;\n if (e.keyCode in keyMap) {\n (this[keyMap[e.keyCode] as keyof this] as (arg: KeyboardEvent) => void)(\n e,\n );\n } else if (e.keyCode in this.ctrlKeysMapDown && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapDown[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n } else {\n this.canvas && this.canvas.requestRenderAll();\n }\n }\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {KeyboardEvent} e Event object\n */\n onKeyUp(e: KeyboardEvent) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if (e.keyCode in this.ctrlKeysMapUp && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapUp[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n }\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput(this: this & { hiddenTextarea: HTMLTextAreaElement }, e: Event) {\n const fromPaste = this.fromPaste;\n const { value, selectionStart, selectionEnd } = this.hiddenTextarea;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n \n // Debug log to track the double keypress issue\n console.log('🔤 onInput debug:', {\n fabricText: this.text,\n textareaValue: value,\n fabricSelection: { start: this.selectionStart, end: this.selectionEnd },\n textareaSelection: { start: selectionStart, end: selectionEnd },\n fromPaste,\n inComposition: this.inCompositionMode\n });\n \n // Immediate sync for simple character replacement - fix for double keypress issue\n if (this.text !== value && !this.inCompositionMode) {\n console.log('🔤 Immediate sync: fabric text differs from textarea, syncing immediately');\n console.log('🔤 Before sync - fabric text:', this.text);\n console.log('🔤 Before sync - textarea value:', value);\n console.log('🔤 fromPaste:', fromPaste);\n \n // Clear all relevant caches that might prevent visual updates\n this.cursorOffsetCache = {};\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n this._forceClearCache = true;\n \n console.log('🔤 Cleared all caches');\n \n // Use the same logic as updateAndFire but immediately\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n // ONLY use synchronous rendering to avoid race conditions\n // Remove requestRenderAll() which queues for next animation frame\n this.canvas.renderAll();\n }\n \n console.log('🔤 After updateFromTextArea - fabric text:', this.text);\n console.log('🔤 Sync complete, caches cleared, synchronous render only');\n return;\n }\n \n const updateAndFire = () => {\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n this.canvas.requestRenderAll();\n }\n };\n if (this.hiddenTextarea.value === '') {\n this.styles = {};\n updateAndFire();\n return;\n }\n // decisions about style changes.\n const nextText = this._splitTextIntoLines(value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n _selectionStart = this.selectionStart,\n _selectionEnd = this.selectionEnd,\n selection = _selectionStart !== _selectionEnd;\n let copiedStyle: TextStyleDeclaration[] | undefined,\n removedText,\n charDiff = nextCharCount - charCount,\n removeFrom,\n removeTo;\n\n const textareaSelection = this.fromStringToGraphemeSelection(\n selectionStart,\n selectionEnd,\n value,\n );\n const backDelete = _selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(_selectionStart, _selectionEnd);\n charDiff += _selectionEnd - _selectionStart;\n } else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(_selectionEnd + charDiff, _selectionEnd);\n } else {\n removedText = this._text.slice(\n _selectionStart,\n _selectionStart - charDiff,\n );\n }\n }\n const insertedText = nextText.slice(\n textareaSelection.selectionEnd - charDiff,\n textareaSelection.selectionEnd,\n );\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(\n _selectionStart,\n _selectionStart + 1,\n false,\n );\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(\n () =>\n // this return an array of references, but that is fine since we are\n // copying the style later.\n copiedStyle![0],\n );\n }\n if (selection) {\n removeFrom = _selectionStart;\n removeTo = _selectionEnd;\n } else if (backDelete) {\n // detect differences between forwardDelete and backDelete\n removeFrom = _selectionEnd - removedText.length;\n removeTo = _selectionEnd;\n } else {\n removeFrom = _selectionEnd;\n removeTo = _selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n const { copyPasteData } = getEnv();\n if (\n fromPaste &&\n insertedText.join('') === copyPasteData.copiedText &&\n !config.disableStyleCopyPaste\n ) {\n copiedStyle = copyPasteData.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, _selectionStart, copiedStyle);\n }\n updateAndFire();\n }\n\n /**\n * Composition start\n */\n onCompositionStart() {\n this.inCompositionMode = true;\n }\n\n /**\n * Composition end\n */\n onCompositionEnd() {\n this.inCompositionMode = false;\n }\n\n onCompositionUpdate({ target }: CompositionEvent) {\n const { selectionStart, selectionEnd } = target as HTMLTextAreaElement;\n this.compositionStart = selectionStart;\n this.compositionEnd = selectionEnd;\n this.updateTextareaPosition();\n }\n\n /**\n * Copies selected text\n */\n copy() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n const { copyPasteData } = getEnv();\n copyPasteData.copiedText = this.getSelectedText();\n if (!config.disableStyleCopyPaste) {\n copyPasteData.copiedTextStyle = this.getSelectionStyles(\n this.selectionStart,\n this.selectionEnd,\n true,\n );\n } else {\n copyPasteData.copiedTextStyle = undefined;\n }\n this._copyDone = true;\n }\n\n /**\n * Pastes text\n */\n paste() {\n this.fromPaste = true;\n }\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor(lineIndex: number, charIndex: number): number {\n let widthBeforeCursor = this._getLineLeftOffset(lineIndex),\n bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n }\n\n /**\n * Gets start offset of a selection\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (\n lineIndex === this._textLines.length - 1 ||\n e.metaKey ||\n e.keyCode === 34\n ) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return (\n textAfterCursor.length +\n indexOnOtherLine +\n 1 +\n this.missingNewlineOffset(lineIndex)\n );\n }\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n } else {\n return this.selectionStart;\n }\n }\n\n /**\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return (\n -this._textLines[lineIndex - 1].length +\n indexOnOtherLine -\n textBeforeCursor.length +\n (1 - missingNewlineOffset)\n );\n }\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine(lineIndex: number, width: number) {\n const line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n let widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0,\n charWidth,\n foundMatch;\n\n for (let j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n const leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : j - 1;\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n }\n\n /**\n * Moves cursor down\n * @param {KeyboardEvent} e Event object\n */\n moveCursorDown(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n }\n\n /**\n * Moves cursor up\n * @param {KeyboardEvent} e Event object\n */\n moveCursorUp(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n }\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorUpOrDown(direction: 'Up' | 'Down', e: KeyboardEvent) {\n const offset = this[`get${direction}CursorOffset`](\n e,\n this._selectionDirection === RIGHT,\n );\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n } else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n const max = this.text.length;\n this.selectionStart = capValue(0, this.selectionStart, max);\n this.selectionEnd = capValue(0, this.selectionEnd, max);\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift(offset: number) {\n const newSelection =\n this._selectionDirection === LEFT\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(\n this.selectionStart,\n this.selectionEnd,\n newSelection,\n );\n return offset !== 0;\n }\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift(offset: number) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n }\n\n /**\n * Moves cursor left\n * @param {KeyboardEvent} e Event object\n */\n moveCursorLeft(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n }\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n *\n * @todo refactor not to use method name composition\n */\n _move(\n e: KeyboardEvent,\n prop: 'selectionStart' | 'selectionEnd',\n direction: 'Left' | 'Right',\n ): boolean {\n let newValue: number | undefined;\n if (e.altKey) {\n newValue = this[`findWordBoundary${direction}`](this[prop]);\n } else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36) {\n newValue = this[`findLineBoundary${direction}`](this[prop]);\n } else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== 'undefined' && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n return false;\n }\n\n /**\n * @private\n */\n _moveLeft(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Left');\n }\n\n /**\n * @private\n */\n _moveRight(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Right');\n }\n\n /**\n * Moves cursor left without keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithoutShift(e: KeyboardEvent) {\n let change = true;\n this._selectionDirection = LEFT;\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (\n this.selectionEnd === this.selectionStart &&\n this.selectionStart !== 0\n ) {\n change = this._moveLeft(e, 'selectionStart');\n }\n this.selectionEnd = this.selectionStart;\n return change;\n }\n\n /**\n * Moves cursor left while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === RIGHT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveLeft(e, 'selectionEnd');\n } else if (this.selectionStart !== 0) {\n this._selectionDirection = LEFT;\n return this._moveLeft(e, 'selectionStart');\n }\n }\n\n /**\n * Moves cursor right\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRight(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n }\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorLeftOrRight(direction: 'Left' | 'Right', e: KeyboardEvent) {\n const actionName = `moveCursor${direction}${\n e.shiftKey ? 'WithShift' : 'WithoutShift'\n }` as const;\n this._currentCursorOpacity = 1;\n if (this[actionName](e)) {\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor right while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorRightWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === LEFT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveRight(e, 'selectionStart');\n } else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = RIGHT;\n return this._moveRight(e, 'selectionEnd');\n }\n }\n\n /**\n * Moves cursor right without keeping selection\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRightWithoutShift(e: KeyboardEvent) {\n let changed = true;\n this._selectionDirection = RIGHT;\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n }\n}\n"],"names":["ITextKeyBehavior","ITextBehavior","initHiddenTextarea","doc","this","canvas","getDocumentFromElement","getElement","getFabricDocument","textarea","createElement","Object","entries","autocapitalize","autocorrect","autocomplete","spellcheck","wrap","map","_ref","attribute","value","setAttribute","top","left","fontSize","_calcTextareaPosition","style","cssText","hiddenTextareaContainer","body","appendChild","blur","keydown","keyup","input","copy","cut","paste","compositionstart","compositionupdate","compositionend","_ref2","eventName","handler","addEventListener","bind","hiddenTextarea","abortCursorAnimation","onKeyDown","e","isEditing","keyMap","direction","keysMapRtl","keysMap","keyCode","ctrlKeysMapDown","ctrlKey","metaKey","stopImmediatePropagation","preventDefault","inCompositionMode","clearContextTop","renderCursorOrSelection","requestRenderAll","onKeyUp","_copyDone","ctrlKeysMapUp","onInput","fromPaste","selectionStart","selectionEnd","stopPropagation","console","log","fabricText","text","textareaValue","fabricSelection","start","end","textareaSelection","inComposition","cursorOffsetCache","_browserWrapCache","_lastDimensionState","_forceClearCache","updateFromTextArea","fire","CHANGED","target","renderAll","updateAndFire","styles","nextText","_splitTextIntoLines","graphemeText","charCount","_text","length","nextCharCount","_selectionStart","_selectionEnd","selection","copiedStyle","removedText","removeFrom","removeTo","charDiff","fromStringToGraphemeSelection","backDelete","slice","insertedText","getSelectionStyles","removeStyleFromTo","copyPasteData","getEnv","join","copiedText","config","disableStyleCopyPaste","copiedTextStyle","insertNewStyleBlock","onCompositionStart","onCompositionEnd","onCompositionUpdate","_ref3","compositionStart","compositionEnd","updateTextareaPosition","getSelectedText","undefined","_getWidthBeforeCursor","lineIndex","charIndex","bound","widthBeforeCursor","_getLineLeftOffset","__charBounds","width","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","cursorLocation","get2DCursorLocation","_textLines","indexOnOtherLine","_getIndexOnLine","missingNewlineOffset","shiftKey","getUpCursorOffset","textBeforeCursor","line","charWidth","foundMatch","widthOfCharsOnLine","indexOnLine","j","jlen","leftEdge","rightEdge","offsetFromLeftEdge","Math","abs","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","offset","_selectionDirection","RIGHT","moveCursorWithShift","moveCursorWithoutShift","max","capValue","initDelayedCursor","_fireSelectionChanged","_updateTextarea","newSelection","LEFT","setSelectionStartEndWithShift","moveCursorLeft","_moveCursorLeftOrRight","_move","prop","newValue","altKey","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","actionName","_currentCursorOpacity","moveCursorRightWithShift","moveCursorRightWithoutShift","changed"],"mappings":"sXAaO,MAAeA,UAIZC,EA4CRC,kBAAAA,GACE,MAAMC,EACHC,KAAKC,QAAUC,EAAuBF,KAAKC,OAAOE,eACnDC,IACIC,EAAWN,EAAIO,cAAc,YACnCC,OAAOC,QAAQ,CACbC,eAAgB,MAChBC,YAAa,MACbC,aAAc,MACdC,WAAY,QACZ,cAAe,WACfC,KAAM,QACLC,IAAIC,IAAA,IAAEC,EAAWC,GAAMF,EAAA,OAAKV,EAASa,aAAaF,EAAWC,KAChE,MAAME,IAAEA,EAAGC,KAAEA,EAAIC,SAAEA,GAAarB,KAAKsB,wBAGrCjB,EAASkB,MAAMC,QAAU,4BAA4BL,YAAcC,uFAA0FC,MAE5JrB,KAAKyB,yBAA2B1B,EAAI2B,MAAMC,YAAYtB,GAEvDE,OAAOC,QAAQ,CACboB,KAAM,OACNC,QAAS,YACTC,MAAO,UACPC,MAAO,UACPC,KAAM,OACNC,IAAK,OACLC,MAAO,QACPC,iBAAkB,qBAClBC,kBAAmB,sBACnBC,eAAgB,qBACevB,IAAIwB,IAAA,IAAEC,EAAWC,GAAQF,EAAA,OACxDjC,EAASoC,iBACPF,EACCvC,KAAKwC,GAA2BE,KAAK1C,SAG1CA,KAAK2C,eAAiBtC,CACxB,CAKAuB,IAAAA,GACE5B,KAAK4C,sBACP,CAOAC,SAAAA,CAAUC,GACR,IAAK9C,KAAK+C,UACR,OAEF,MAAMC,EAA4B,QAAnBhD,KAAKiD,UAAsBjD,KAAKkD,WAAalD,KAAKmD,QACjE,GAAIL,EAAEM,WAAWJ,EACdhD,KAAKgD,EAAOF,EAAEM,UACbN,OAEG,MAAIA,EAAEM,WAAWpD,KAAKqD,mBAAoBP,EAAEQ,UAAWR,EAAES,QAO9D,OALEvD,KAAKA,KAAKqD,gBAAgBP,EAAEM,UAG5BN,EAGJ,CACAA,EAAEU,2BACFV,EAAEW,iBACEX,EAAEM,SAAW,IAAMN,EAAEM,SAAW,IAElCpD,KAAK0D,mBAAoB,EACzB1D,KAAK2D,kBACL3D,KAAK4D,2BAEL5D,KAAKC,QAAUD,KAAKC,OAAO4D,kBAE/B,CAQAC,OAAAA,CAAQhB,IACD9C,KAAK+C,WAAa/C,KAAK+D,WAAa/D,KAAK0D,kBAC5C1D,KAAK+D,WAAY,EAGfjB,EAAEM,WAAWpD,KAAKgE,gBAAkBlB,EAAEQ,SAAWR,EAAES,WAEnDvD,KAAKA,KAAKgE,cAAclB,EAAEM,UAG1BN,GAIJA,EAAEU,2BACFV,EAAEW,iBACFzD,KAAKC,QAAUD,KAAKC,OAAO4D,mBAC7B,CAMAI,OAAAA,CAA8DnB,GAC5D,MAAMoB,EAAYlE,KAAKkE,WACjBjD,MAAEA,EAAKkD,eAAEA,EAAcC,aAAEA,GAAiBpE,KAAK2C,eAGrD,GAFA3C,KAAKkE,WAAY,EACjBpB,GAAKA,EAAEuB,mBACFrE,KAAK+C,UACR,OAcF,GAVAuB,QAAQC,IAAI,oBAAqB,CAC/BC,WAAYxE,KAAKyE,KACjBC,cAAezD,EACf0D,gBAAiB,CAAEC,MAAO5E,KAAKmE,eAAgBU,IAAK7E,KAAKoE,cACzDU,kBAAmB,CAAEF,MAAOT,EAAgBU,IAAKT,GACjDF,YACAa,cAAe/E,KAAK0D,oBAIlB1D,KAAKyE,OAASxD,IAAUjB,KAAK0D,kBA0B/B,OAzBAY,QAAQC,IAAI,6EACZD,QAAQC,IAAI,gCAAiCvE,KAAKyE,MAClDH,QAAQC,IAAI,mCAAoCtD,GAChDqD,QAAQC,IAAI,gBAAiBL,GAG7BlE,KAAKgF,kBAAoB,CAAA,EACxBhF,KAAaiF,kBAAoB,KACjCjF,KAAakF,oBAAsB,KACpClF,KAAKmF,kBAAmB,EAExBb,QAAQC,IAAI,yBAGZvE,KAAKoF,qBACLpF,KAAKqF,KAAKC,GACNtF,KAAKC,SACPD,KAAKC,OAAOoF,KAAK,eAAgB,CAAEE,OAAQvF,OAG3CA,KAAKC,OAAOuF,aAGdlB,QAAQC,IAAI,6CAA8CvE,KAAKyE,WAC/DH,QAAQC,IAAI,6DAId,MAAMkB,EAAgBA,KACpBzF,KAAKoF,qBACLpF,KAAKqF,KAAKC,GACNtF,KAAKC,SACPD,KAAKC,OAAOoF,KAAK,eAAgB,CAAEE,OAAQvF,OAC3CA,KAAKC,OAAO4D,qBAGhB,GAAkC,KAA9B7D,KAAK2C,eAAe1B,MAGtB,OAFAjB,KAAK0F,OAAS,CAAA,OACdD,IAIF,MAAME,EAAW3F,KAAK4F,oBAAoB3E,GAAO4E,aAC/CC,EAAY9F,KAAK+F,MAAMC,OACvBC,EAAgBN,EAASK,OACzBE,EAAkBlG,KAAKmE,eACvBgC,EAAgBnG,KAAKoE,aACrBgC,EAAYF,IAAoBC,EAClC,IAAIE,EACFC,EAEAC,EACAC,EAFAC,EAAWR,EAAgBH,EAI7B,MAAMhB,EAAoB9E,KAAK0G,8BAC7BvC,EACAC,EACAnD,GAEI0F,EAAaT,EAAkBpB,EAAkBX,eAEnDiC,GACFE,EAActG,KAAK+F,MAAMa,MAAMV,EAAiBC,GAChDM,GAAYN,EAAgBD,GACnBD,EAAgBH,IAEvBQ,EADEK,EACY3G,KAAK+F,MAAMa,MAAMT,EAAgBM,EAAUN,GAE3CnG,KAAK+F,MAAMa,MACvBV,EACAA,EAAkBO,IAIxB,MAAMI,EAAelB,EAASiB,MAC5B9B,EAAkBV,aAAeqC,EACjC3B,EAAkBV,cAiCpB,GA/BIkC,GAAeA,EAAYN,SACzBa,EAAab,SAIfK,EAAcrG,KAAK8G,mBACjBZ,EACAA,EAAkB,GAClB,GAGFG,EAAcQ,EAAa/F,IACzB,IAGEuF,EAAa,KAGfD,GACFG,EAAaL,EACbM,EAAWL,GACFQ,GAETJ,EAAaJ,EAAgBG,EAAYN,OACzCQ,EAAWL,IAEXI,EAAaJ,EACbK,EAAWL,EAAgBG,EAAYN,QAEzChG,KAAK+G,kBAAkBR,EAAYC,IAEjCK,EAAab,OAAQ,CACvB,MAAMgB,cAAEA,GAAkBC,IAExB/C,GACA2C,EAAaK,KAAK,MAAQF,EAAcG,aACvCC,EAAOC,wBAERhB,EAAcW,EAAcM,iBAE9BtH,KAAKuH,oBAAoBV,EAAcX,EAAiBG,EAC1D,CACAZ,GACF,CAKA+B,kBAAAA,GACExH,KAAK0D,mBAAoB,CAC3B,CAKA+D,gBAAAA,GACEzH,KAAK0D,mBAAoB,CAC3B,CAEAgE,mBAAAA,CAAmBC,GAA+B,IAA9BpC,OAAEA,GAA0BoC,EAC9C,MAAMxD,eAAEA,EAAcC,aAAEA,GAAiBmB,EACzCvF,KAAK4H,iBAAmBzD,EACxBnE,KAAK6H,eAAiBzD,EACtBpE,KAAK8H,wBACP,CAKA9F,IAAAA,GACE,GAAIhC,KAAKmE,iBAAmBnE,KAAKoE,aAE/B,OAEF,MAAM4C,cAAEA,GAAkBC,IAC1BD,EAAcG,WAAanH,KAAK+H,kBAC3BX,EAAOC,sBAOVL,EAAcM,qBAAkBU,EANhChB,EAAcM,gBAAkBtH,KAAK8G,mBACnC9G,KAAKmE,eACLnE,KAAKoE,cACL,GAKJpE,KAAK+D,WAAY,CACnB,CAKA7B,KAAAA,GACElC,KAAKkE,WAAY,CACnB,CASA+D,qBAAAA,CAAsBC,EAAmBC,GACvC,IACEC,EADEC,EAAoBrI,KAAKsI,mBAAmBJ,GAOhD,OAJIC,EAAY,IACdC,EAAQpI,KAAKuI,aAAaL,GAAWC,EAAY,GACjDE,GAAqBD,EAAMhH,KAAOgH,EAAMI,OAEnCH,CACT,CAQAI,mBAAAA,CAAoB3F,EAAkB4F,GACpC,MAAMC,EAAgB3I,KAAK4I,uBAAuB9F,EAAG4F,GACnDG,EAAiB7I,KAAK8I,oBAAoBH,GAC1CT,EAAYW,EAAeX,UAE7B,GACEA,IAAclI,KAAK+I,WAAW/C,OAAS,GACvClD,EAAES,SACY,KAAdT,EAAEM,QAGF,OAAOpD,KAAK+F,MAAMC,OAAS2C,EAE7B,MAAMR,EAAYU,EAAeV,UAC/BE,EAAoBrI,KAAKiI,sBAAsBC,EAAWC,GAC1Da,EAAmBhJ,KAAKiJ,gBAAgBf,EAAY,EAAGG,GAEzD,OADoBrI,KAAK+I,WAAWb,GAAWtB,MAAMuB,GAEnCnC,OAChBgD,EACA,EACAhJ,KAAKkJ,qBAAqBhB,EAE9B,CASAU,sBAAAA,CAAuB9F,EAAkB4F,GACvC,OAAI5F,EAAEqG,UAAYnJ,KAAKmE,iBAAmBnE,KAAKoE,cAAgBsE,EACtD1I,KAAKoE,aAELpE,KAAKmE,cAEhB,CAOAiF,iBAAAA,CAAkBtG,EAAkB4F,GAClC,MAAMC,EAAgB3I,KAAK4I,uBAAuB9F,EAAG4F,GACnDG,EAAiB7I,KAAK8I,oBAAoBH,GAC1CT,EAAYW,EAAeX,UAC7B,GAAkB,IAAdA,GAAmBpF,EAAES,SAAyB,KAAdT,EAAEM,QAEpC,OAAQuF,EAEV,MAAMR,EAAYU,EAAeV,UAC/BE,EAAoBrI,KAAKiI,sBAAsBC,EAAWC,GAC1Da,EAAmBhJ,KAAKiJ,gBAAgBf,EAAY,EAAGG,GACvDgB,EAAmBrJ,KAAK+I,WAAWb,GAAWtB,MAAM,EAAGuB,GACvDe,EAAuBlJ,KAAKkJ,qBAAqBhB,EAAY,GAE/D,OACGlI,KAAK+I,WAAWb,EAAY,GAAGlC,OAChCgD,EACAK,EAAiBrD,QAChB,EAAIkD,EAET,CAMAD,eAAAA,CAAgBf,EAAmBM,GACjC,MAAMc,EAAOtJ,KAAK+I,WAAWb,GAE7B,IAEEqB,EACAC,EAHEC,EADezJ,KAAKsI,mBAAmBJ,GAEzCwB,EAAc,EAIhB,IAAK,IAAIC,EAAI,EAAGC,EAAON,EAAKtD,OAAQ2D,EAAIC,EAAMD,IAG5C,GAFAJ,EAAYvJ,KAAKuI,aAAaL,GAAWyB,GAAGnB,MAC5CiB,GAAsBF,EAClBE,EAAqBjB,EAAO,CAC9BgB,GAAa,EACb,MAAMK,EAAWJ,EAAqBF,EACpCO,EAAYL,EACZM,EAAqBC,KAAKC,IAAIJ,EAAWrB,GAG3CkB,EAFwBM,KAAKC,IAAIH,EAAYtB,GAETuB,EAAqBJ,EAAIA,EAAI,EACjE,KACF,CAQF,OAJKH,IACHE,EAAcJ,EAAKtD,OAAS,GAGvB0D,CACT,CAMAQ,cAAAA,CAAepH,GAEX9C,KAAKmE,gBAAkBnE,KAAK+F,MAAMC,QAClChG,KAAKoE,cAAgBpE,KAAK+F,MAAMC,QAIlChG,KAAKmK,oBAAoB,OAAQrH,EACnC,CAMAsH,YAAAA,CAAatH,GACiB,IAAxB9C,KAAKmE,gBAA8C,IAAtBnE,KAAKoE,cAGtCpE,KAAKmK,oBAAoB,KAAMrH,EACjC,CAOAqH,mBAAAA,CAAoBlH,EAA0BH,GAC5C,MAAMuH,EAASrK,KAAK,MAAMiD,iBACxBH,EACA9C,KAAKsK,sBAAwBC,GAO/B,GALIzH,EAAEqG,SACJnJ,KAAKwK,oBAAoBH,GAEzBrK,KAAKyK,uBAAuBJ,GAEf,IAAXA,EAAc,CAChB,MAAMK,EAAM1K,KAAKyE,KAAKuB,OACtBhG,KAAKmE,eAAiBwG,EAAS,EAAG3K,KAAKmE,eAAgBuG,GACvD1K,KAAKoE,aAAeuG,EAAS,EAAG3K,KAAKoE,aAAcsG,GAGnD1K,KAAK4C,uBACL5C,KAAK4K,oBACL5K,KAAK6K,wBACL7K,KAAK8K,iBACP,CACF,CAMAN,mBAAAA,CAAoBH,GAClB,MAAMU,EACJ/K,KAAKsK,sBAAwBU,EACzBhL,KAAKmE,eAAiBkG,EACtBrK,KAAKoE,aAAeiG,EAM1B,OALArK,KAAKiL,8BACHjL,KAAKmE,eACLnE,KAAKoE,aACL2G,GAEgB,IAAXV,CACT,CAMAI,sBAAAA,CAAuBJ,GAQrB,OAPIA,EAAS,GACXrK,KAAKmE,gBAAkBkG,EACvBrK,KAAKoE,aAAepE,KAAKmE,iBAEzBnE,KAAKoE,cAAgBiG,EACrBrK,KAAKmE,eAAiBnE,KAAKoE,cAEX,IAAXiG,CACT,CAMAa,cAAAA,CAAepI,GACe,IAAxB9C,KAAKmE,gBAA8C,IAAtBnE,KAAKoE,cAGtCpE,KAAKmL,uBAAuB,OAAQrI,EACtC,CAQAsI,KAAAA,CACEtI,EACAuI,EACApI,GAEA,IAAIqI,EACJ,GAAIxI,EAAEyI,OACJD,EAAWtL,KAAK,mBAAmBiD,KAAajD,KAAKqL,QAChD,KAAIvI,EAAES,SAAyB,KAAdT,EAAEM,SAAgC,KAAdN,EAAEM,QAI5C,OADApD,KAAKqL,IAAuB,SAAdpI,GAAuB,EAAK,GACnC,EAHPqI,EAAWtL,KAAK,mBAAmBiD,KAAajD,KAAKqL,GAIvD,CACA,YAAwB,IAAbC,GAA4BtL,KAAKqL,KAAUC,IACpDtL,KAAKqL,GAAQC,GACN,EAGX,CAKAE,SAAAA,CAAU1I,EAAkBuI,GAC1B,OAAOrL,KAAKoL,MAAMtI,EAAGuI,EAAM,OAC7B,CAKAI,UAAAA,CAAW3I,EAAkBuI,GAC3B,OAAOrL,KAAKoL,MAAMtI,EAAGuI,EAAM,QAC7B,CAMAK,0BAAAA,CAA2B5I,GACzB,IAAI6I,GAAS,EAYb,OAXA3L,KAAKsK,oBAAsBU,EAKzBhL,KAAKoE,eAAiBpE,KAAKmE,gBACH,IAAxBnE,KAAKmE,iBAELwH,EAAS3L,KAAKwL,UAAU1I,EAAG,mBAE7B9C,KAAKoE,aAAepE,KAAKmE,eAClBwH,CACT,CAMAC,uBAAAA,CAAwB9I,GACtB,OACE9C,KAAKsK,sBAAwBC,GAC7BvK,KAAKmE,iBAAmBnE,KAAKoE,aAEtBpE,KAAKwL,UAAU1I,EAAG,gBACQ,IAAxB9C,KAAKmE,gBACdnE,KAAKsK,oBAAsBU,EACpBhL,KAAKwL,UAAU1I,EAAG,wBAFpB,CAIT,CAMA+I,eAAAA,CAAgB/I,GAEZ9C,KAAKmE,gBAAkBnE,KAAK+F,MAAMC,QAClChG,KAAKoE,cAAgBpE,KAAK+F,MAAMC,QAIlChG,KAAKmL,uBAAuB,QAASrI,EACvC,CAOAqI,sBAAAA,CAAuBlI,EAA6BH,GAClD,MAAMgJ,EAAa,aAAa7I,IAC9BH,EAAEqG,SAAW,YAAc,iBAE7BnJ,KAAK+L,sBAAwB,EACzB/L,KAAK8L,GAAYhJ,KAGnB9C,KAAK4C,uBACL5C,KAAK4K,oBACL5K,KAAK6K,wBACL7K,KAAK8K,kBAET,CAMAkB,wBAAAA,CAAyBlJ,GACvB,OACE9C,KAAKsK,sBAAwBU,GAC7BhL,KAAKmE,iBAAmBnE,KAAKoE,aAEtBpE,KAAKyL,WAAW3I,EAAG,kBACjB9C,KAAKoE,eAAiBpE,KAAK+F,MAAMC,QAC1ChG,KAAKsK,oBAAsBC,EACpBvK,KAAKyL,WAAW3I,EAAG,sBAFrB,CAIT,CAMAmJ,2BAAAA,CAA4BnJ,GAC1B,IAAIoJ,GAAU,EASd,OARAlM,KAAKsK,oBAAsBC,EAEvBvK,KAAKmE,iBAAmBnE,KAAKoE,cAC/B8H,EAAUlM,KAAKyL,WAAW3I,EAAG,kBAC7B9C,KAAKoE,aAAepE,KAAKmE,gBAEzBnE,KAAKmE,eAAiBnE,KAAKoE,aAEtB8H,CACT"}
@@ -3,7 +3,7 @@ import { getFabricDocument, getEnv } from '../../env/index.mjs';
3
3
  import { capValue } from '../../util/misc/capValue.mjs';
4
4
  import { ITextBehavior } from './ITextBehavior.mjs';
5
5
  import { getDocumentFromElement } from '../../util/dom_misc.mjs';
6
- import { RIGHT, LEFT, CHANGED } from '../../constants.mjs';
6
+ import { CHANGED, RIGHT, LEFT } from '../../constants.mjs';
7
7
 
8
8
  class ITextKeyBehavior extends ITextBehavior {
9
9
  /**
@@ -151,6 +151,52 @@ class ITextKeyBehavior extends ITextBehavior {
151
151
  if (!this.isEditing) {
152
152
  return;
153
153
  }
154
+
155
+ // Debug log to track the double keypress issue
156
+ console.log('🔤 onInput debug:', {
157
+ fabricText: this.text,
158
+ textareaValue: value,
159
+ fabricSelection: {
160
+ start: this.selectionStart,
161
+ end: this.selectionEnd
162
+ },
163
+ textareaSelection: {
164
+ start: selectionStart,
165
+ end: selectionEnd
166
+ },
167
+ fromPaste,
168
+ inComposition: this.inCompositionMode
169
+ });
170
+
171
+ // Immediate sync for simple character replacement - fix for double keypress issue
172
+ if (this.text !== value && !this.inCompositionMode) {
173
+ console.log('🔤 Immediate sync: fabric text differs from textarea, syncing immediately');
174
+ console.log('🔤 Before sync - fabric text:', this.text);
175
+ console.log('🔤 Before sync - textarea value:', value);
176
+ console.log('🔤 fromPaste:', fromPaste);
177
+
178
+ // Clear all relevant caches that might prevent visual updates
179
+ this.cursorOffsetCache = {};
180
+ this._browserWrapCache = null;
181
+ this._lastDimensionState = null;
182
+ this._forceClearCache = true;
183
+ console.log('🔤 Cleared all caches');
184
+
185
+ // Use the same logic as updateAndFire but immediately
186
+ this.updateFromTextArea();
187
+ this.fire(CHANGED);
188
+ if (this.canvas) {
189
+ this.canvas.fire('text:changed', {
190
+ target: this
191
+ });
192
+ // ONLY use synchronous rendering to avoid race conditions
193
+ // Remove requestRenderAll() which queues for next animation frame
194
+ this.canvas.renderAll();
195
+ }
196
+ console.log('🔤 After updateFromTextArea - fabric text:', this.text);
197
+ console.log('🔤 Sync complete, caches cleared, synchronous render only');
198
+ return;
199
+ }
154
200
  const updateAndFire = () => {
155
201
  this.updateFromTextArea();
156
202
  this.fire(CHANGED);
@@ -1 +1 @@
1
- {"version":3,"file":"ITextKeyBehavior.mjs","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"sourcesContent":["import { config } from '../../config';\nimport { getFabricDocument, getEnv } from '../../env';\nimport { capValue } from '../../util/misc/capValue';\nimport type { ITextEvents } from './ITextBehavior';\nimport { ITextBehavior } from './ITextBehavior';\nimport type { TKeyMapIText } from './constants';\nimport type { TOptions } from '../../typedefs';\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\nimport { getDocumentFromElement } from '../../util/dom_misc';\nimport { CHANGED, LEFT, RIGHT } from '../../constants';\nimport type { IText } from './IText';\nimport type { TextStyleDeclaration } from '../Text/StyledText';\n\nexport abstract class ITextKeyBehavior<\n Props extends TOptions<TextProps> = Partial<TextProps>,\n SProps extends SerializedTextProps = SerializedTextProps,\n EventSpec extends ITextEvents = ITextEvents,\n> extends ITextBehavior<Props, SProps, EventSpec> {\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behavior for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the IText or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = Object.assign({}, this.keysMap);\n * The function must be in IText.prototype.myFunction And will receive event as args[0]\n */\n declare keysMap: TKeyMapIText;\n\n declare keysMapRtl: TKeyMapIText;\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n declare ctrlKeysMapUp: TKeyMapIText;\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n declare ctrlKeysMapDown: TKeyMapIText;\n\n declare hiddenTextarea: HTMLTextAreaElement | null;\n\n /**\n * DOM container to append the hiddenTextarea.\n * An alternative to attaching to the document.body.\n * Useful to reduce laggish redraw of the full document.body tree and\n * also with modals event capturing that won't let the textarea take focus.\n * @type HTMLElement\n */\n declare hiddenTextareaContainer?: HTMLElement | null;\n\n declare private _clickHandlerInitialized: boolean;\n declare private _copyDone: boolean;\n declare private fromPaste: boolean;\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea() {\n const doc =\n (this.canvas && getDocumentFromElement(this.canvas.getElement())) ||\n getFabricDocument();\n const textarea = doc.createElement('textarea');\n Object.entries({\n autocapitalize: 'off',\n autocorrect: 'off',\n autocomplete: 'off',\n spellcheck: 'false',\n 'data-fabric': 'textarea',\n wrap: 'off',\n }).map(([attribute, value]) => textarea.setAttribute(attribute, value));\n const { top, left, fontSize } = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n textarea.style.cssText = `position: absolute; top: ${top}; left: ${left}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${fontSize};`;\n\n (this.hiddenTextareaContainer || doc.body).appendChild(textarea);\n\n Object.entries({\n blur: 'blur',\n keydown: 'onKeyDown',\n keyup: 'onKeyUp',\n input: 'onInput',\n copy: 'copy',\n cut: 'copy',\n paste: 'paste',\n compositionstart: 'onCompositionStart',\n compositionupdate: 'onCompositionUpdate',\n compositionend: 'onCompositionEnd',\n } as Record<string, keyof this>).map(([eventName, handler]) =>\n textarea.addEventListener(\n eventName,\n (this[handler] as EventListener).bind(this),\n ),\n );\n this.hiddenTextarea = textarea;\n }\n\n /**\n * Override this method to customize cursor behavior on textbox blur\n */\n blur() {\n this.abortCursorAnimation();\n }\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {KeyboardEvent} e Event object\n */\n onKeyDown(e: KeyboardEvent) {\n if (!this.isEditing) {\n return;\n }\n const keyMap = this.direction === 'rtl' ? this.keysMapRtl : this.keysMap;\n if (e.keyCode in keyMap) {\n (this[keyMap[e.keyCode] as keyof this] as (arg: KeyboardEvent) => void)(\n e,\n );\n } else if (e.keyCode in this.ctrlKeysMapDown && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapDown[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n } else {\n this.canvas && this.canvas.requestRenderAll();\n }\n }\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {KeyboardEvent} e Event object\n */\n onKeyUp(e: KeyboardEvent) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if (e.keyCode in this.ctrlKeysMapUp && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapUp[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n }\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput(this: this & { hiddenTextarea: HTMLTextAreaElement }, e: Event) {\n const fromPaste = this.fromPaste;\n const { value, selectionStart, selectionEnd } = this.hiddenTextarea;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n const updateAndFire = () => {\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n this.canvas.requestRenderAll();\n }\n };\n if (this.hiddenTextarea.value === '') {\n this.styles = {};\n updateAndFire();\n return;\n }\n // decisions about style changes.\n const nextText = this._splitTextIntoLines(value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n _selectionStart = this.selectionStart,\n _selectionEnd = this.selectionEnd,\n selection = _selectionStart !== _selectionEnd;\n let copiedStyle: TextStyleDeclaration[] | undefined,\n removedText,\n charDiff = nextCharCount - charCount,\n removeFrom,\n removeTo;\n\n const textareaSelection = this.fromStringToGraphemeSelection(\n selectionStart,\n selectionEnd,\n value,\n );\n const backDelete = _selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(_selectionStart, _selectionEnd);\n charDiff += _selectionEnd - _selectionStart;\n } else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(_selectionEnd + charDiff, _selectionEnd);\n } else {\n removedText = this._text.slice(\n _selectionStart,\n _selectionStart - charDiff,\n );\n }\n }\n const insertedText = nextText.slice(\n textareaSelection.selectionEnd - charDiff,\n textareaSelection.selectionEnd,\n );\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(\n _selectionStart,\n _selectionStart + 1,\n false,\n );\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(\n () =>\n // this return an array of references, but that is fine since we are\n // copying the style later.\n copiedStyle![0],\n );\n }\n if (selection) {\n removeFrom = _selectionStart;\n removeTo = _selectionEnd;\n } else if (backDelete) {\n // detect differences between forwardDelete and backDelete\n removeFrom = _selectionEnd - removedText.length;\n removeTo = _selectionEnd;\n } else {\n removeFrom = _selectionEnd;\n removeTo = _selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n const { copyPasteData } = getEnv();\n if (\n fromPaste &&\n insertedText.join('') === copyPasteData.copiedText &&\n !config.disableStyleCopyPaste\n ) {\n copiedStyle = copyPasteData.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, _selectionStart, copiedStyle);\n }\n updateAndFire();\n }\n\n /**\n * Composition start\n */\n onCompositionStart() {\n this.inCompositionMode = true;\n }\n\n /**\n * Composition end\n */\n onCompositionEnd() {\n this.inCompositionMode = false;\n }\n\n onCompositionUpdate({ target }: CompositionEvent) {\n const { selectionStart, selectionEnd } = target as HTMLTextAreaElement;\n this.compositionStart = selectionStart;\n this.compositionEnd = selectionEnd;\n this.updateTextareaPosition();\n }\n\n /**\n * Copies selected text\n */\n copy() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n const { copyPasteData } = getEnv();\n copyPasteData.copiedText = this.getSelectedText();\n if (!config.disableStyleCopyPaste) {\n copyPasteData.copiedTextStyle = this.getSelectionStyles(\n this.selectionStart,\n this.selectionEnd,\n true,\n );\n } else {\n copyPasteData.copiedTextStyle = undefined;\n }\n this._copyDone = true;\n }\n\n /**\n * Pastes text\n */\n paste() {\n this.fromPaste = true;\n }\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor(lineIndex: number, charIndex: number): number {\n let widthBeforeCursor = this._getLineLeftOffset(lineIndex),\n bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n }\n\n /**\n * Gets start offset of a selection\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (\n lineIndex === this._textLines.length - 1 ||\n e.metaKey ||\n e.keyCode === 34\n ) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return (\n textAfterCursor.length +\n indexOnOtherLine +\n 1 +\n this.missingNewlineOffset(lineIndex)\n );\n }\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n } else {\n return this.selectionStart;\n }\n }\n\n /**\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return (\n -this._textLines[lineIndex - 1].length +\n indexOnOtherLine -\n textBeforeCursor.length +\n (1 - missingNewlineOffset)\n );\n }\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine(lineIndex: number, width: number) {\n const line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n let widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0,\n charWidth,\n foundMatch;\n\n for (let j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n const leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : j - 1;\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n }\n\n /**\n * Moves cursor down\n * @param {KeyboardEvent} e Event object\n */\n moveCursorDown(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n }\n\n /**\n * Moves cursor up\n * @param {KeyboardEvent} e Event object\n */\n moveCursorUp(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n }\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorUpOrDown(direction: 'Up' | 'Down', e: KeyboardEvent) {\n const offset = this[`get${direction}CursorOffset`](\n e,\n this._selectionDirection === RIGHT,\n );\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n } else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n const max = this.text.length;\n this.selectionStart = capValue(0, this.selectionStart, max);\n this.selectionEnd = capValue(0, this.selectionEnd, max);\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift(offset: number) {\n const newSelection =\n this._selectionDirection === LEFT\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(\n this.selectionStart,\n this.selectionEnd,\n newSelection,\n );\n return offset !== 0;\n }\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift(offset: number) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n }\n\n /**\n * Moves cursor left\n * @param {KeyboardEvent} e Event object\n */\n moveCursorLeft(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n }\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n *\n * @todo refactor not to use method name composition\n */\n _move(\n e: KeyboardEvent,\n prop: 'selectionStart' | 'selectionEnd',\n direction: 'Left' | 'Right',\n ): boolean {\n let newValue: number | undefined;\n if (e.altKey) {\n newValue = this[`findWordBoundary${direction}`](this[prop]);\n } else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36) {\n newValue = this[`findLineBoundary${direction}`](this[prop]);\n } else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== 'undefined' && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n return false;\n }\n\n /**\n * @private\n */\n _moveLeft(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Left');\n }\n\n /**\n * @private\n */\n _moveRight(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Right');\n }\n\n /**\n * Moves cursor left without keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithoutShift(e: KeyboardEvent) {\n let change = true;\n this._selectionDirection = LEFT;\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (\n this.selectionEnd === this.selectionStart &&\n this.selectionStart !== 0\n ) {\n change = this._moveLeft(e, 'selectionStart');\n }\n this.selectionEnd = this.selectionStart;\n return change;\n }\n\n /**\n * Moves cursor left while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === RIGHT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveLeft(e, 'selectionEnd');\n } else if (this.selectionStart !== 0) {\n this._selectionDirection = LEFT;\n return this._moveLeft(e, 'selectionStart');\n }\n }\n\n /**\n * Moves cursor right\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRight(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n }\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorLeftOrRight(direction: 'Left' | 'Right', e: KeyboardEvent) {\n const actionName = `moveCursor${direction}${\n e.shiftKey ? 'WithShift' : 'WithoutShift'\n }` as const;\n this._currentCursorOpacity = 1;\n if (this[actionName](e)) {\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor right while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorRightWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === LEFT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveRight(e, 'selectionStart');\n } else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = RIGHT;\n return this._moveRight(e, 'selectionEnd');\n }\n }\n\n /**\n * Moves cursor right without keeping selection\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRightWithoutShift(e: KeyboardEvent) {\n let changed = true;\n this._selectionDirection = RIGHT;\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n }\n}\n"],"names":["ITextKeyBehavior","ITextBehavior","initHiddenTextarea","doc","canvas","getDocumentFromElement","getElement","getFabricDocument","textarea","createElement","Object","entries","autocapitalize","autocorrect","autocomplete","spellcheck","wrap","map","_ref","attribute","value","setAttribute","top","left","fontSize","_calcTextareaPosition","style","cssText","hiddenTextareaContainer","body","appendChild","blur","keydown","keyup","input","copy","cut","paste","compositionstart","compositionupdate","compositionend","_ref2","eventName","handler","addEventListener","bind","hiddenTextarea","abortCursorAnimation","onKeyDown","e","isEditing","keyMap","direction","keysMapRtl","keysMap","keyCode","ctrlKeysMapDown","ctrlKey","metaKey","stopImmediatePropagation","preventDefault","inCompositionMode","clearContextTop","renderCursorOrSelection","requestRenderAll","onKeyUp","_copyDone","ctrlKeysMapUp","onInput","fromPaste","selectionStart","selectionEnd","stopPropagation","updateAndFire","updateFromTextArea","fire","CHANGED","target","styles","nextText","_splitTextIntoLines","graphemeText","charCount","_text","length","nextCharCount","_selectionStart","_selectionEnd","selection","copiedStyle","removedText","charDiff","removeFrom","removeTo","textareaSelection","fromStringToGraphemeSelection","backDelete","slice","insertedText","getSelectionStyles","removeStyleFromTo","copyPasteData","getEnv","join","copiedText","config","disableStyleCopyPaste","copiedTextStyle","insertNewStyleBlock","onCompositionStart","onCompositionEnd","onCompositionUpdate","_ref3","compositionStart","compositionEnd","updateTextareaPosition","getSelectedText","undefined","_getWidthBeforeCursor","lineIndex","charIndex","widthBeforeCursor","_getLineLeftOffset","bound","__charBounds","width","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","cursorLocation","get2DCursorLocation","_textLines","indexOnOtherLine","_getIndexOnLine","textAfterCursor","missingNewlineOffset","shiftKey","getUpCursorOffset","textBeforeCursor","line","lineLeftOffset","widthOfCharsOnLine","indexOnLine","charWidth","foundMatch","j","jlen","leftEdge","rightEdge","offsetFromLeftEdge","Math","abs","offsetFromRightEdge","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","offset","_selectionDirection","RIGHT","moveCursorWithShift","moveCursorWithoutShift","max","text","capValue","initDelayedCursor","_fireSelectionChanged","_updateTextarea","newSelection","LEFT","setSelectionStartEndWithShift","moveCursorLeft","_moveCursorLeftOrRight","_move","prop","newValue","altKey","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","actionName","_currentCursorOpacity","moveCursorRightWithShift","moveCursorRightWithoutShift","changed"],"mappings":"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"}
1
+ {"version":3,"file":"ITextKeyBehavior.mjs","sources":["../../../../src/shapes/IText/ITextKeyBehavior.ts"],"sourcesContent":["import { config } from '../../config';\nimport { getFabricDocument, getEnv } from '../../env';\nimport { capValue } from '../../util/misc/capValue';\nimport type { ITextEvents } from './ITextBehavior';\nimport { ITextBehavior } from './ITextBehavior';\nimport type { TKeyMapIText } from './constants';\nimport type { TOptions } from '../../typedefs';\nimport type { TextProps, SerializedTextProps } from '../Text/Text';\nimport { getDocumentFromElement } from '../../util/dom_misc';\nimport { CHANGED, LEFT, RIGHT } from '../../constants';\nimport type { IText } from './IText';\nimport type { TextStyleDeclaration } from '../Text/StyledText';\n\nexport abstract class ITextKeyBehavior<\n Props extends TOptions<TextProps> = Partial<TextProps>,\n SProps extends SerializedTextProps = SerializedTextProps,\n EventSpec extends ITextEvents = ITextEvents,\n> extends ITextBehavior<Props, SProps, EventSpec> {\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behavior for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the IText or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = Object.assign({}, this.keysMap);\n * The function must be in IText.prototype.myFunction And will receive event as args[0]\n */\n declare keysMap: TKeyMapIText;\n\n declare keysMapRtl: TKeyMapIText;\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n declare ctrlKeysMapUp: TKeyMapIText;\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n declare ctrlKeysMapDown: TKeyMapIText;\n\n declare hiddenTextarea: HTMLTextAreaElement | null;\n\n /**\n * DOM container to append the hiddenTextarea.\n * An alternative to attaching to the document.body.\n * Useful to reduce laggish redraw of the full document.body tree and\n * also with modals event capturing that won't let the textarea take focus.\n * @type HTMLElement\n */\n declare hiddenTextareaContainer?: HTMLElement | null;\n\n declare private _clickHandlerInitialized: boolean;\n declare private _copyDone: boolean;\n declare private fromPaste: boolean;\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea() {\n const doc =\n (this.canvas && getDocumentFromElement(this.canvas.getElement())) ||\n getFabricDocument();\n const textarea = doc.createElement('textarea');\n Object.entries({\n autocapitalize: 'off',\n autocorrect: 'off',\n autocomplete: 'off',\n spellcheck: 'false',\n 'data-fabric': 'textarea',\n wrap: 'off',\n }).map(([attribute, value]) => textarea.setAttribute(attribute, value));\n const { top, left, fontSize } = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n textarea.style.cssText = `position: absolute; top: ${top}; left: ${left}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${fontSize};`;\n\n (this.hiddenTextareaContainer || doc.body).appendChild(textarea);\n\n Object.entries({\n blur: 'blur',\n keydown: 'onKeyDown',\n keyup: 'onKeyUp',\n input: 'onInput',\n copy: 'copy',\n cut: 'copy',\n paste: 'paste',\n compositionstart: 'onCompositionStart',\n compositionupdate: 'onCompositionUpdate',\n compositionend: 'onCompositionEnd',\n } as Record<string, keyof this>).map(([eventName, handler]) =>\n textarea.addEventListener(\n eventName,\n (this[handler] as EventListener).bind(this),\n ),\n );\n this.hiddenTextarea = textarea;\n }\n\n /**\n * Override this method to customize cursor behavior on textbox blur\n */\n blur() {\n this.abortCursorAnimation();\n }\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {KeyboardEvent} e Event object\n */\n onKeyDown(e: KeyboardEvent) {\n if (!this.isEditing) {\n return;\n }\n const keyMap = this.direction === 'rtl' ? this.keysMapRtl : this.keysMap;\n if (e.keyCode in keyMap) {\n (this[keyMap[e.keyCode] as keyof this] as (arg: KeyboardEvent) => void)(\n e,\n );\n } else if (e.keyCode in this.ctrlKeysMapDown && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapDown[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n } else {\n this.canvas && this.canvas.requestRenderAll();\n }\n }\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {KeyboardEvent} e Event object\n */\n onKeyUp(e: KeyboardEvent) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if (e.keyCode in this.ctrlKeysMapUp && (e.ctrlKey || e.metaKey)) {\n (\n this[this.ctrlKeysMapUp[e.keyCode] as keyof this] as (\n arg: KeyboardEvent,\n ) => void\n )(e);\n } else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n }\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput(this: this & { hiddenTextarea: HTMLTextAreaElement }, e: Event) {\n const fromPaste = this.fromPaste;\n const { value, selectionStart, selectionEnd } = this.hiddenTextarea;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n \n // Debug log to track the double keypress issue\n console.log('🔤 onInput debug:', {\n fabricText: this.text,\n textareaValue: value,\n fabricSelection: { start: this.selectionStart, end: this.selectionEnd },\n textareaSelection: { start: selectionStart, end: selectionEnd },\n fromPaste,\n inComposition: this.inCompositionMode\n });\n \n // Immediate sync for simple character replacement - fix for double keypress issue\n if (this.text !== value && !this.inCompositionMode) {\n console.log('🔤 Immediate sync: fabric text differs from textarea, syncing immediately');\n console.log('🔤 Before sync - fabric text:', this.text);\n console.log('🔤 Before sync - textarea value:', value);\n console.log('🔤 fromPaste:', fromPaste);\n \n // Clear all relevant caches that might prevent visual updates\n this.cursorOffsetCache = {};\n (this as any)._browserWrapCache = null;\n (this as any)._lastDimensionState = null;\n this._forceClearCache = true;\n \n console.log('🔤 Cleared all caches');\n \n // Use the same logic as updateAndFire but immediately\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n // ONLY use synchronous rendering to avoid race conditions\n // Remove requestRenderAll() which queues for next animation frame\n this.canvas.renderAll();\n }\n \n console.log('🔤 After updateFromTextArea - fabric text:', this.text);\n console.log('🔤 Sync complete, caches cleared, synchronous render only');\n return;\n }\n \n const updateAndFire = () => {\n this.updateFromTextArea();\n this.fire(CHANGED);\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this as unknown as IText });\n this.canvas.requestRenderAll();\n }\n };\n if (this.hiddenTextarea.value === '') {\n this.styles = {};\n updateAndFire();\n return;\n }\n // decisions about style changes.\n const nextText = this._splitTextIntoLines(value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n _selectionStart = this.selectionStart,\n _selectionEnd = this.selectionEnd,\n selection = _selectionStart !== _selectionEnd;\n let copiedStyle: TextStyleDeclaration[] | undefined,\n removedText,\n charDiff = nextCharCount - charCount,\n removeFrom,\n removeTo;\n\n const textareaSelection = this.fromStringToGraphemeSelection(\n selectionStart,\n selectionEnd,\n value,\n );\n const backDelete = _selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(_selectionStart, _selectionEnd);\n charDiff += _selectionEnd - _selectionStart;\n } else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(_selectionEnd + charDiff, _selectionEnd);\n } else {\n removedText = this._text.slice(\n _selectionStart,\n _selectionStart - charDiff,\n );\n }\n }\n const insertedText = nextText.slice(\n textareaSelection.selectionEnd - charDiff,\n textareaSelection.selectionEnd,\n );\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(\n _selectionStart,\n _selectionStart + 1,\n false,\n );\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(\n () =>\n // this return an array of references, but that is fine since we are\n // copying the style later.\n copiedStyle![0],\n );\n }\n if (selection) {\n removeFrom = _selectionStart;\n removeTo = _selectionEnd;\n } else if (backDelete) {\n // detect differences between forwardDelete and backDelete\n removeFrom = _selectionEnd - removedText.length;\n removeTo = _selectionEnd;\n } else {\n removeFrom = _selectionEnd;\n removeTo = _selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n const { copyPasteData } = getEnv();\n if (\n fromPaste &&\n insertedText.join('') === copyPasteData.copiedText &&\n !config.disableStyleCopyPaste\n ) {\n copiedStyle = copyPasteData.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, _selectionStart, copiedStyle);\n }\n updateAndFire();\n }\n\n /**\n * Composition start\n */\n onCompositionStart() {\n this.inCompositionMode = true;\n }\n\n /**\n * Composition end\n */\n onCompositionEnd() {\n this.inCompositionMode = false;\n }\n\n onCompositionUpdate({ target }: CompositionEvent) {\n const { selectionStart, selectionEnd } = target as HTMLTextAreaElement;\n this.compositionStart = selectionStart;\n this.compositionEnd = selectionEnd;\n this.updateTextareaPosition();\n }\n\n /**\n * Copies selected text\n */\n copy() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n const { copyPasteData } = getEnv();\n copyPasteData.copiedText = this.getSelectedText();\n if (!config.disableStyleCopyPaste) {\n copyPasteData.copiedTextStyle = this.getSelectionStyles(\n this.selectionStart,\n this.selectionEnd,\n true,\n );\n } else {\n copyPasteData.copiedTextStyle = undefined;\n }\n this._copyDone = true;\n }\n\n /**\n * Pastes text\n */\n paste() {\n this.fromPaste = true;\n }\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor(lineIndex: number, charIndex: number): number {\n let widthBeforeCursor = this._getLineLeftOffset(lineIndex),\n bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n }\n\n /**\n * Gets start offset of a selection\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (\n lineIndex === this._textLines.length - 1 ||\n e.metaKey ||\n e.keyCode === 34\n ) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return (\n textAfterCursor.length +\n indexOnOtherLine +\n 1 +\n this.missingNewlineOffset(lineIndex)\n );\n }\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset(e: KeyboardEvent, isRight: boolean): number {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n } else {\n return this.selectionStart;\n }\n }\n\n /**\n * @param {KeyboardEvent} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset(e: KeyboardEvent, isRight: boolean): number {\n const selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n const charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return (\n -this._textLines[lineIndex - 1].length +\n indexOnOtherLine -\n textBeforeCursor.length +\n (1 - missingNewlineOffset)\n );\n }\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine(lineIndex: number, width: number) {\n const line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n let widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0,\n charWidth,\n foundMatch;\n\n for (let j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n const leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : j - 1;\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n }\n\n /**\n * Moves cursor down\n * @param {KeyboardEvent} e Event object\n */\n moveCursorDown(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n }\n\n /**\n * Moves cursor up\n * @param {KeyboardEvent} e Event object\n */\n moveCursorUp(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n }\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorUpOrDown(direction: 'Up' | 'Down', e: KeyboardEvent) {\n const offset = this[`get${direction}CursorOffset`](\n e,\n this._selectionDirection === RIGHT,\n );\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n } else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n const max = this.text.length;\n this.selectionStart = capValue(0, this.selectionStart, max);\n this.selectionEnd = capValue(0, this.selectionEnd, max);\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift(offset: number) {\n const newSelection =\n this._selectionDirection === LEFT\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(\n this.selectionStart,\n this.selectionEnd,\n newSelection,\n );\n return offset !== 0;\n }\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift(offset: number) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n }\n\n /**\n * Moves cursor left\n * @param {KeyboardEvent} e Event object\n */\n moveCursorLeft(e: KeyboardEvent) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n }\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n *\n * @todo refactor not to use method name composition\n */\n _move(\n e: KeyboardEvent,\n prop: 'selectionStart' | 'selectionEnd',\n direction: 'Left' | 'Right',\n ): boolean {\n let newValue: number | undefined;\n if (e.altKey) {\n newValue = this[`findWordBoundary${direction}`](this[prop]);\n } else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36) {\n newValue = this[`findLineBoundary${direction}`](this[prop]);\n } else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== 'undefined' && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n return false;\n }\n\n /**\n * @private\n */\n _moveLeft(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Left');\n }\n\n /**\n * @private\n */\n _moveRight(e: KeyboardEvent, prop: 'selectionStart' | 'selectionEnd') {\n return this._move(e, prop, 'Right');\n }\n\n /**\n * Moves cursor left without keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithoutShift(e: KeyboardEvent) {\n let change = true;\n this._selectionDirection = LEFT;\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (\n this.selectionEnd === this.selectionStart &&\n this.selectionStart !== 0\n ) {\n change = this._moveLeft(e, 'selectionStart');\n }\n this.selectionEnd = this.selectionStart;\n return change;\n }\n\n /**\n * Moves cursor left while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorLeftWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === RIGHT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveLeft(e, 'selectionEnd');\n } else if (this.selectionStart !== 0) {\n this._selectionDirection = LEFT;\n return this._moveLeft(e, 'selectionStart');\n }\n }\n\n /**\n * Moves cursor right\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRight(e: KeyboardEvent) {\n if (\n this.selectionStart >= this._text.length &&\n this.selectionEnd >= this._text.length\n ) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n }\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {KeyboardEvent} e Event object\n */\n _moveCursorLeftOrRight(direction: 'Left' | 'Right', e: KeyboardEvent) {\n const actionName = `moveCursor${direction}${\n e.shiftKey ? 'WithShift' : 'WithoutShift'\n }` as const;\n this._currentCursorOpacity = 1;\n if (this[actionName](e)) {\n // TODO fix: abort and init should be an alternative depending\n // on selectionStart/End being equal or different\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n }\n\n /**\n * Moves cursor right while keeping selection\n * @param {KeyboardEvent} e\n */\n moveCursorRightWithShift(e: KeyboardEvent) {\n if (\n this._selectionDirection === LEFT &&\n this.selectionStart !== this.selectionEnd\n ) {\n return this._moveRight(e, 'selectionStart');\n } else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = RIGHT;\n return this._moveRight(e, 'selectionEnd');\n }\n }\n\n /**\n * Moves cursor right without keeping selection\n * @param {KeyboardEvent} e Event object\n */\n moveCursorRightWithoutShift(e: KeyboardEvent) {\n let changed = true;\n this._selectionDirection = RIGHT;\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n }\n}\n"],"names":["ITextKeyBehavior","ITextBehavior","initHiddenTextarea","doc","canvas","getDocumentFromElement","getElement","getFabricDocument","textarea","createElement","Object","entries","autocapitalize","autocorrect","autocomplete","spellcheck","wrap","map","_ref","attribute","value","setAttribute","top","left","fontSize","_calcTextareaPosition","style","cssText","hiddenTextareaContainer","body","appendChild","blur","keydown","keyup","input","copy","cut","paste","compositionstart","compositionupdate","compositionend","_ref2","eventName","handler","addEventListener","bind","hiddenTextarea","abortCursorAnimation","onKeyDown","e","isEditing","keyMap","direction","keysMapRtl","keysMap","keyCode","ctrlKeysMapDown","ctrlKey","metaKey","stopImmediatePropagation","preventDefault","inCompositionMode","clearContextTop","renderCursorOrSelection","requestRenderAll","onKeyUp","_copyDone","ctrlKeysMapUp","onInput","fromPaste","selectionStart","selectionEnd","stopPropagation","console","log","fabricText","text","textareaValue","fabricSelection","start","end","textareaSelection","inComposition","cursorOffsetCache","_browserWrapCache","_lastDimensionState","_forceClearCache","updateFromTextArea","fire","CHANGED","target","renderAll","updateAndFire","styles","nextText","_splitTextIntoLines","graphemeText","charCount","_text","length","nextCharCount","_selectionStart","_selectionEnd","selection","copiedStyle","removedText","charDiff","removeFrom","removeTo","fromStringToGraphemeSelection","backDelete","slice","insertedText","getSelectionStyles","removeStyleFromTo","copyPasteData","getEnv","join","copiedText","config","disableStyleCopyPaste","copiedTextStyle","insertNewStyleBlock","onCompositionStart","onCompositionEnd","onCompositionUpdate","_ref3","compositionStart","compositionEnd","updateTextareaPosition","getSelectedText","undefined","_getWidthBeforeCursor","lineIndex","charIndex","widthBeforeCursor","_getLineLeftOffset","bound","__charBounds","width","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","cursorLocation","get2DCursorLocation","_textLines","indexOnOtherLine","_getIndexOnLine","textAfterCursor","missingNewlineOffset","shiftKey","getUpCursorOffset","textBeforeCursor","line","lineLeftOffset","widthOfCharsOnLine","indexOnLine","charWidth","foundMatch","j","jlen","leftEdge","rightEdge","offsetFromLeftEdge","Math","abs","offsetFromRightEdge","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","offset","_selectionDirection","RIGHT","moveCursorWithShift","moveCursorWithoutShift","max","capValue","initDelayedCursor","_fireSelectionChanged","_updateTextarea","newSelection","LEFT","setSelectionStartEndWithShift","moveCursorLeft","_moveCursorLeftOrRight","_move","prop","newValue","altKey","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","actionName","_currentCursorOpacity","moveCursorRightWithShift","moveCursorRightWithoutShift","changed"],"mappings":"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"}
File without changes
File without changes