js-draw 0.18.0 → 0.18.1

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 (656) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/bundle.js +1 -1
  3. package/package.json +3 -2
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  6. package/.github/ISSUE_TEMPLATE/translation.yml +0 -902
  7. package/.github/pull_request_template.md +0 -15
  8. package/.github/workflows/firebase-hosting-merge.yml +0 -34
  9. package/.github/workflows/firebase-hosting-pull-request.yml +0 -34
  10. package/.github/workflows/github-pages.yml +0 -58
  11. package/.husky/pre-commit +0 -4
  12. package/build_tools/BundledFile.ts +0 -167
  13. package/build_tools/buildTranslationTemplate.ts +0 -121
  14. package/build_tools/bundle.ts +0 -11
  15. package/build_tools/postDist.ts +0 -71
  16. package/dist/cjs/build_tools/BundledFile.d.ts +0 -13
  17. package/dist/cjs/build_tools/BundledFile.js +0 -163
  18. package/dist/cjs/build_tools/buildTranslationTemplate.d.ts +0 -1
  19. package/dist/cjs/build_tools/buildTranslationTemplate.js +0 -119
  20. package/dist/cjs/build_tools/bundle.d.ts +0 -1
  21. package/dist/cjs/build_tools/bundle.js +0 -10
  22. package/dist/cjs/build_tools/postDist.d.ts +0 -1
  23. package/dist/cjs/build_tools/postDist.js +0 -72
  24. package/dist/cjs/src/Color4.d.ts +0 -61
  25. package/dist/cjs/src/Color4.js +0 -197
  26. package/dist/cjs/src/Editor.d.ts +0 -308
  27. package/dist/cjs/src/Editor.js +0 -904
  28. package/dist/cjs/src/EditorImage.d.ts +0 -97
  29. package/dist/cjs/src/EditorImage.js +0 -486
  30. package/dist/cjs/src/EventDispatcher.d.ts +0 -30
  31. package/dist/cjs/src/EventDispatcher.js +0 -57
  32. package/dist/cjs/src/Pointer.d.ts +0 -24
  33. package/dist/cjs/src/Pointer.js +0 -84
  34. package/dist/cjs/src/SVGLoader.d.ts +0 -48
  35. package/dist/cjs/src/SVGLoader.js +0 -472
  36. package/dist/cjs/src/UndoRedoHistory.d.ts +0 -19
  37. package/dist/cjs/src/UndoRedoHistory.js +0 -93
  38. package/dist/cjs/src/Viewport.d.ts +0 -71
  39. package/dist/cjs/src/Viewport.js +0 -264
  40. package/dist/cjs/src/bundle/bundled.d.ts +0 -4
  41. package/dist/cjs/src/bundle/bundled.js +0 -24
  42. package/dist/cjs/src/commands/Command.d.ts +0 -16
  43. package/dist/cjs/src/commands/Command.js +0 -34
  44. package/dist/cjs/src/commands/Duplicate.d.ts +0 -14
  45. package/dist/cjs/src/commands/Duplicate.js +0 -39
  46. package/dist/cjs/src/commands/Erase.d.ts +0 -14
  47. package/dist/cjs/src/commands/Erase.js +0 -63
  48. package/dist/cjs/src/commands/SerializableCommand.d.ts +0 -12
  49. package/dist/cjs/src/commands/SerializableCommand.js +0 -42
  50. package/dist/cjs/src/commands/UnresolvedCommand.d.ts +0 -14
  51. package/dist/cjs/src/commands/UnresolvedCommand.js +0 -28
  52. package/dist/cjs/src/commands/invertCommand.d.ts +0 -4
  53. package/dist/cjs/src/commands/invertCommand.js +0 -49
  54. package/dist/cjs/src/commands/lib.d.ts +0 -7
  55. package/dist/cjs/src/commands/lib.js +0 -18
  56. package/dist/cjs/src/commands/localization.d.ts +0 -23
  57. package/dist/cjs/src/commands/localization.js +0 -24
  58. package/dist/cjs/src/commands/uniteCommands.d.ts +0 -4
  59. package/dist/cjs/src/commands/uniteCommands.js +0 -121
  60. package/dist/cjs/src/components/AbstractComponent.d.ts +0 -73
  61. package/dist/cjs/src/components/AbstractComponent.js +0 -258
  62. package/dist/cjs/src/components/ImageBackground.d.ts +0 -42
  63. package/dist/cjs/src/components/ImageBackground.js +0 -146
  64. package/dist/cjs/src/components/ImageComponent.d.ts +0 -31
  65. package/dist/cjs/src/components/ImageComponent.js +0 -152
  66. package/dist/cjs/src/components/RestylableComponent.d.ts +0 -24
  67. package/dist/cjs/src/components/RestylableComponent.js +0 -88
  68. package/dist/cjs/src/components/SVGGlobalAttributesObject.d.ts +0 -21
  69. package/dist/cjs/src/components/SVGGlobalAttributesObject.js +0 -65
  70. package/dist/cjs/src/components/Stroke.d.ts +0 -40
  71. package/dist/cjs/src/components/Stroke.js +0 -191
  72. package/dist/cjs/src/components/TextComponent.d.ts +0 -53
  73. package/dist/cjs/src/components/TextComponent.js +0 -258
  74. package/dist/cjs/src/components/UnknownSVGObject.d.ts +0 -18
  75. package/dist/cjs/src/components/UnknownSVGObject.js +0 -50
  76. package/dist/cjs/src/components/builders/ArrowBuilder.d.ts +0 -19
  77. package/dist/cjs/src/components/builders/ArrowBuilder.js +0 -117
  78. package/dist/cjs/src/components/builders/FreehandLineBuilder.d.ts +0 -33
  79. package/dist/cjs/src/components/builders/FreehandLineBuilder.js +0 -173
  80. package/dist/cjs/src/components/builders/LineBuilder.d.ts +0 -18
  81. package/dist/cjs/src/components/builders/LineBuilder.js +0 -89
  82. package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -36
  83. package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +0 -347
  84. package/dist/cjs/src/components/builders/RectangleBuilder.d.ts +0 -20
  85. package/dist/cjs/src/components/builders/RectangleBuilder.js +0 -59
  86. package/dist/cjs/src/components/builders/types.d.ts +0 -12
  87. package/dist/cjs/src/components/builders/types.js +0 -2
  88. package/dist/cjs/src/components/lib.d.ts +0 -12
  89. package/dist/cjs/src/components/lib.js +0 -43
  90. package/dist/cjs/src/components/localization.d.ts +0 -11
  91. package/dist/cjs/src/components/localization.js +0 -13
  92. package/dist/cjs/src/components/util/StrokeSmoother.d.ts +0 -35
  93. package/dist/cjs/src/components/util/StrokeSmoother.js +0 -217
  94. package/dist/cjs/src/components/util/describeComponentList.d.ts +0 -4
  95. package/dist/cjs/src/components/util/describeComponentList.js +0 -16
  96. package/dist/cjs/src/lib.d.ts +0 -34
  97. package/dist/cjs/src/lib.js +0 -63
  98. package/dist/cjs/src/localization.d.ts +0 -14
  99. package/dist/cjs/src/localization.js +0 -13
  100. package/dist/cjs/src/localizations/de.d.ts +0 -3
  101. package/dist/cjs/src/localizations/de.js +0 -6
  102. package/dist/cjs/src/localizations/en.d.ts +0 -3
  103. package/dist/cjs/src/localizations/en.js +0 -6
  104. package/dist/cjs/src/localizations/es.d.ts +0 -3
  105. package/dist/cjs/src/localizations/es.js +0 -20
  106. package/dist/cjs/src/localizations/getLocalizationTable.d.ts +0 -3
  107. package/dist/cjs/src/localizations/getLocalizationTable.js +0 -50
  108. package/dist/cjs/src/math/LineSegment2.d.ts +0 -24
  109. package/dist/cjs/src/math/LineSegment2.js +0 -131
  110. package/dist/cjs/src/math/Mat33.d.ts +0 -118
  111. package/dist/cjs/src/math/Mat33.js +0 -332
  112. package/dist/cjs/src/math/Path.d.ts +0 -71
  113. package/dist/cjs/src/math/Path.js +0 -655
  114. package/dist/cjs/src/math/Rect2.d.ts +0 -52
  115. package/dist/cjs/src/math/Rect2.js +0 -234
  116. package/dist/cjs/src/math/Triangle.d.ts +0 -11
  117. package/dist/cjs/src/math/Triangle.js +0 -22
  118. package/dist/cjs/src/math/Vec2.d.ts +0 -13
  119. package/dist/cjs/src/math/Vec2.js +0 -19
  120. package/dist/cjs/src/math/Vec3.d.ts +0 -106
  121. package/dist/cjs/src/math/Vec3.js +0 -177
  122. package/dist/cjs/src/math/lib.d.ts +0 -7
  123. package/dist/cjs/src/math/lib.js +0 -18
  124. package/dist/cjs/src/math/rounding.d.ts +0 -4
  125. package/dist/cjs/src/math/rounding.js +0 -135
  126. package/dist/cjs/src/rendering/Display.d.ts +0 -75
  127. package/dist/cjs/src/rendering/Display.js +0 -214
  128. package/dist/cjs/src/rendering/RenderingStyle.d.ts +0 -31
  129. package/dist/cjs/src/rendering/RenderingStyle.js +0 -48
  130. package/dist/cjs/src/rendering/TextRenderingStyle.d.ts +0 -36
  131. package/dist/cjs/src/rendering/TextRenderingStyle.js +0 -29
  132. package/dist/cjs/src/rendering/caching/CacheRecord.d.ts +0 -20
  133. package/dist/cjs/src/rendering/caching/CacheRecord.js +0 -61
  134. package/dist/cjs/src/rendering/caching/CacheRecordManager.d.ts +0 -12
  135. package/dist/cjs/src/rendering/caching/CacheRecordManager.js +0 -50
  136. package/dist/cjs/src/rendering/caching/RenderingCache.d.ts +0 -11
  137. package/dist/cjs/src/rendering/caching/RenderingCache.js +0 -51
  138. package/dist/cjs/src/rendering/caching/RenderingCacheNode.d.ts +0 -29
  139. package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +0 -326
  140. package/dist/cjs/src/rendering/caching/testUtils.d.ts +0 -9
  141. package/dist/cjs/src/rendering/caching/testUtils.js +0 -27
  142. package/dist/cjs/src/rendering/caching/types.d.ts +0 -19
  143. package/dist/cjs/src/rendering/caching/types.js +0 -2
  144. package/dist/cjs/src/rendering/lib.d.ts +0 -5
  145. package/dist/cjs/src/rendering/lib.js +0 -16
  146. package/dist/cjs/src/rendering/localization.d.ts +0 -10
  147. package/dist/cjs/src/rendering/localization.js +0 -12
  148. package/dist/cjs/src/rendering/renderers/AbstractRenderer.d.ts +0 -68
  149. package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +0 -170
  150. package/dist/cjs/src/rendering/renderers/CanvasRenderer.d.ts +0 -63
  151. package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +0 -236
  152. package/dist/cjs/src/rendering/renderers/DummyRenderer.d.ts +0 -35
  153. package/dist/cjs/src/rendering/renderers/DummyRenderer.js +0 -112
  154. package/dist/cjs/src/rendering/renderers/SVGRenderer.d.ts +0 -57
  155. package/dist/cjs/src/rendering/renderers/SVGRenderer.js +0 -311
  156. package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.d.ts +0 -29
  157. package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +0 -63
  158. package/dist/cjs/src/testing/beforeEachFile.d.ts +0 -1
  159. package/dist/cjs/src/testing/beforeEachFile.js +0 -12
  160. package/dist/cjs/src/testing/createEditor.d.ts +0 -4
  161. package/dist/cjs/src/testing/createEditor.js +0 -14
  162. package/dist/cjs/src/testing/lib.d.ts +0 -2
  163. package/dist/cjs/src/testing/lib.js +0 -10
  164. package/dist/cjs/src/testing/loadExpectExtensions.d.ts +0 -2
  165. package/dist/cjs/src/testing/loadExpectExtensions.js +0 -28
  166. package/dist/cjs/src/testing/sendPenEvent.d.ts +0 -12
  167. package/dist/cjs/src/testing/sendPenEvent.js +0 -24
  168. package/dist/cjs/src/testing/sendTouchEvent.d.ts +0 -42
  169. package/dist/cjs/src/testing/sendTouchEvent.js +0 -87
  170. package/dist/cjs/src/toolbar/HTMLToolbar.d.ts +0 -103
  171. package/dist/cjs/src/toolbar/HTMLToolbar.js +0 -383
  172. package/dist/cjs/src/toolbar/IconProvider.d.ts +0 -62
  173. package/dist/cjs/src/toolbar/IconProvider.js +0 -660
  174. package/dist/cjs/src/toolbar/lib.d.ts +0 -3
  175. package/dist/cjs/src/toolbar/lib.js +0 -24
  176. package/dist/cjs/src/toolbar/localization.d.ts +0 -49
  177. package/dist/cjs/src/toolbar/localization.js +0 -51
  178. package/dist/cjs/src/toolbar/makeColorInput.d.ts +0 -6
  179. package/dist/cjs/src/toolbar/makeColorInput.js +0 -120
  180. package/dist/cjs/src/toolbar/types.d.ts +0 -4
  181. package/dist/cjs/src/toolbar/types.js +0 -2
  182. package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.d.ts +0 -15
  183. package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +0 -31
  184. package/dist/cjs/src/toolbar/widgets/BaseToolWidget.d.ts +0 -11
  185. package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +0 -50
  186. package/dist/cjs/src/toolbar/widgets/BaseWidget.d.ts +0 -72
  187. package/dist/cjs/src/toolbar/widgets/BaseWidget.js +0 -313
  188. package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -18
  189. package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +0 -126
  190. package/dist/cjs/src/toolbar/widgets/EraserToolWidget.d.ts +0 -17
  191. package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +0 -63
  192. package/dist/cjs/src/toolbar/widgets/HandToolWidget.d.ts +0 -17
  193. package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +0 -201
  194. package/dist/cjs/src/toolbar/widgets/InsertImageWidget.d.ts +0 -19
  195. package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +0 -176
  196. package/dist/cjs/src/toolbar/widgets/OverflowWidget.d.ts +0 -25
  197. package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +0 -77
  198. package/dist/cjs/src/toolbar/widgets/PenToolWidget.d.ts +0 -27
  199. package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +0 -226
  200. package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.d.ts +0 -13
  201. package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +0 -153
  202. package/dist/cjs/src/toolbar/widgets/TextToolWidget.d.ts +0 -16
  203. package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +0 -115
  204. package/dist/cjs/src/toolbar/widgets/lib.d.ts +0 -10
  205. package/dist/cjs/src/toolbar/widgets/lib.js +0 -26
  206. package/dist/cjs/src/tools/BaseTool.d.ts +0 -22
  207. package/dist/cjs/src/tools/BaseTool.js +0 -66
  208. package/dist/cjs/src/tools/Eraser.d.ts +0 -23
  209. package/dist/cjs/src/tools/Eraser.js +0 -112
  210. package/dist/cjs/src/tools/FindTool.d.ts +0 -21
  211. package/dist/cjs/src/tools/FindTool.js +0 -121
  212. package/dist/cjs/src/tools/PanZoom.d.ts +0 -52
  213. package/dist/cjs/src/tools/PanZoom.js +0 -421
  214. package/dist/cjs/src/tools/PasteHandler.d.ts +0 -23
  215. package/dist/cjs/src/tools/PasteHandler.js +0 -99
  216. package/dist/cjs/src/tools/Pen.d.ts +0 -39
  217. package/dist/cjs/src/tools/Pen.js +0 -179
  218. package/dist/cjs/src/tools/PipetteTool.d.ts +0 -18
  219. package/dist/cjs/src/tools/PipetteTool.js +0 -45
  220. package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -8
  221. package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +0 -28
  222. package/dist/cjs/src/tools/SelectionTool/Selection.d.ts +0 -64
  223. package/dist/cjs/src/tools/SelectionTool/Selection.js +0 -488
  224. package/dist/cjs/src/tools/SelectionTool/SelectionHandle.d.ts +0 -38
  225. package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +0 -85
  226. package/dist/cjs/src/tools/SelectionTool/SelectionTool.d.ts +0 -36
  227. package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +0 -405
  228. package/dist/cjs/src/tools/SelectionTool/TransformMode.d.ts +0 -34
  229. package/dist/cjs/src/tools/SelectionTool/TransformMode.js +0 -107
  230. package/dist/cjs/src/tools/SelectionTool/types.d.ts +0 -9
  231. package/dist/cjs/src/tools/SelectionTool/types.js +0 -14
  232. package/dist/cjs/src/tools/TextTool.d.ts +0 -33
  233. package/dist/cjs/src/tools/TextTool.js +0 -262
  234. package/dist/cjs/src/tools/ToolController.d.ts +0 -18
  235. package/dist/cjs/src/tools/ToolController.js +0 -187
  236. package/dist/cjs/src/tools/ToolEnabledGroup.d.ts +0 -6
  237. package/dist/cjs/src/tools/ToolEnabledGroup.js +0 -14
  238. package/dist/cjs/src/tools/ToolSwitcherShortcut.d.ts +0 -16
  239. package/dist/cjs/src/tools/ToolSwitcherShortcut.js +0 -38
  240. package/dist/cjs/src/tools/ToolbarShortcutHandler.d.ts +0 -12
  241. package/dist/cjs/src/tools/ToolbarShortcutHandler.js +0 -29
  242. package/dist/cjs/src/tools/UndoRedoShortcut.d.ts +0 -8
  243. package/dist/cjs/src/tools/UndoRedoShortcut.js +0 -28
  244. package/dist/cjs/src/tools/lib.d.ts +0 -16
  245. package/dist/cjs/src/tools/lib.js +0 -36
  246. package/dist/cjs/src/tools/localization.d.ts +0 -28
  247. package/dist/cjs/src/tools/localization.js +0 -30
  248. package/dist/cjs/src/types.d.ts +0 -151
  249. package/dist/cjs/src/types.js +0 -38
  250. package/dist/cjs/src/util/assertions.d.ts +0 -23
  251. package/dist/cjs/src/util/assertions.js +0 -51
  252. package/dist/cjs/src/util/fileToBase64.d.ts +0 -3
  253. package/dist/cjs/src/util/fileToBase64.js +0 -15
  254. package/dist/cjs/src/util/untilNextAnimationFrame.d.ts +0 -3
  255. package/dist/cjs/src/util/untilNextAnimationFrame.js +0 -9
  256. package/dist/cjs/src/util/waitForTimeout.d.ts +0 -2
  257. package/dist/cjs/src/util/waitForTimeout.js +0 -9
  258. package/dist/mjs/build_tools/BundledFile.d.ts +0 -13
  259. package/dist/mjs/build_tools/BundledFile.mjs +0 -157
  260. package/dist/mjs/build_tools/buildTranslationTemplate.d.ts +0 -1
  261. package/dist/mjs/build_tools/buildTranslationTemplate.mjs +0 -94
  262. package/dist/mjs/build_tools/bundle.d.ts +0 -1
  263. package/dist/mjs/build_tools/bundle.mjs +0 -5
  264. package/dist/mjs/build_tools/postDist.d.ts +0 -1
  265. package/dist/mjs/build_tools/postDist.mjs +0 -67
  266. package/dist/mjs/src/Color4.d.ts +0 -61
  267. package/dist/mjs/src/Color4.mjs +0 -193
  268. package/dist/mjs/src/Editor.d.ts +0 -308
  269. package/dist/mjs/src/Editor.mjs +0 -874
  270. package/dist/mjs/src/EditorImage.d.ts +0 -97
  271. package/dist/mjs/src/EditorImage.mjs +0 -477
  272. package/dist/mjs/src/EventDispatcher.d.ts +0 -30
  273. package/dist/mjs/src/EventDispatcher.mjs +0 -54
  274. package/dist/mjs/src/Pointer.d.ts +0 -24
  275. package/dist/mjs/src/Pointer.mjs +0 -80
  276. package/dist/mjs/src/SVGLoader.d.ts +0 -48
  277. package/dist/mjs/src/SVGLoader.mjs +0 -442
  278. package/dist/mjs/src/UndoRedoHistory.d.ts +0 -19
  279. package/dist/mjs/src/UndoRedoHistory.mjs +0 -91
  280. package/dist/mjs/src/Viewport.d.ts +0 -71
  281. package/dist/mjs/src/Viewport.mjs +0 -256
  282. package/dist/mjs/src/bundle/bundled.d.ts +0 -4
  283. package/dist/mjs/src/bundle/bundled.mjs +0 -5
  284. package/dist/mjs/src/commands/Command.d.ts +0 -16
  285. package/dist/mjs/src/commands/Command.mjs +0 -30
  286. package/dist/mjs/src/commands/Duplicate.d.ts +0 -14
  287. package/dist/mjs/src/commands/Duplicate.mjs +0 -33
  288. package/dist/mjs/src/commands/Erase.d.ts +0 -14
  289. package/dist/mjs/src/commands/Erase.mjs +0 -57
  290. package/dist/mjs/src/commands/SerializableCommand.d.ts +0 -12
  291. package/dist/mjs/src/commands/SerializableCommand.mjs +0 -36
  292. package/dist/mjs/src/commands/UnresolvedCommand.d.ts +0 -14
  293. package/dist/mjs/src/commands/UnresolvedCommand.mjs +0 -22
  294. package/dist/mjs/src/commands/invertCommand.d.ts +0 -4
  295. package/dist/mjs/src/commands/invertCommand.mjs +0 -44
  296. package/dist/mjs/src/commands/lib.d.ts +0 -7
  297. package/dist/mjs/src/commands/lib.mjs +0 -7
  298. package/dist/mjs/src/commands/localization.d.ts +0 -23
  299. package/dist/mjs/src/commands/localization.mjs +0 -21
  300. package/dist/mjs/src/commands/uniteCommands.d.ts +0 -4
  301. package/dist/mjs/src/commands/uniteCommands.mjs +0 -116
  302. package/dist/mjs/src/components/AbstractComponent.d.ts +0 -73
  303. package/dist/mjs/src/components/AbstractComponent.mjs +0 -252
  304. package/dist/mjs/src/components/ImageBackground.d.ts +0 -42
  305. package/dist/mjs/src/components/ImageBackground.mjs +0 -139
  306. package/dist/mjs/src/components/ImageComponent.d.ts +0 -31
  307. package/dist/mjs/src/components/ImageComponent.mjs +0 -146
  308. package/dist/mjs/src/components/RestylableComponent.d.ts +0 -24
  309. package/dist/mjs/src/components/RestylableComponent.mjs +0 -80
  310. package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +0 -21
  311. package/dist/mjs/src/components/SVGGlobalAttributesObject.mjs +0 -59
  312. package/dist/mjs/src/components/Stroke.d.ts +0 -40
  313. package/dist/mjs/src/components/Stroke.mjs +0 -185
  314. package/dist/mjs/src/components/TextComponent.d.ts +0 -53
  315. package/dist/mjs/src/components/TextComponent.mjs +0 -252
  316. package/dist/mjs/src/components/UnknownSVGObject.d.ts +0 -18
  317. package/dist/mjs/src/components/UnknownSVGObject.mjs +0 -44
  318. package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +0 -19
  319. package/dist/mjs/src/components/builders/ArrowBuilder.mjs +0 -86
  320. package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +0 -33
  321. package/dist/mjs/src/components/builders/FreehandLineBuilder.mjs +0 -165
  322. package/dist/mjs/src/components/builders/LineBuilder.d.ts +0 -18
  323. package/dist/mjs/src/components/builders/LineBuilder.mjs +0 -58
  324. package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -36
  325. package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs +0 -339
  326. package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +0 -20
  327. package/dist/mjs/src/components/builders/RectangleBuilder.mjs +0 -50
  328. package/dist/mjs/src/components/builders/types.d.ts +0 -12
  329. package/dist/mjs/src/components/builders/types.mjs +0 -1
  330. package/dist/mjs/src/components/lib.d.ts +0 -12
  331. package/dist/mjs/src/components/lib.mjs +0 -12
  332. package/dist/mjs/src/components/localization.d.ts +0 -11
  333. package/dist/mjs/src/components/localization.mjs +0 -10
  334. package/dist/mjs/src/components/util/StrokeSmoother.d.ts +0 -35
  335. package/dist/mjs/src/components/util/StrokeSmoother.mjs +0 -210
  336. package/dist/mjs/src/components/util/describeComponentList.d.ts +0 -4
  337. package/dist/mjs/src/components/util/describeComponentList.mjs +0 -14
  338. package/dist/mjs/src/lib.d.ts +0 -34
  339. package/dist/mjs/src/lib.mjs +0 -34
  340. package/dist/mjs/src/localization.d.ts +0 -14
  341. package/dist/mjs/src/localization.mjs +0 -10
  342. package/dist/mjs/src/localizations/de.d.ts +0 -3
  343. package/dist/mjs/src/localizations/de.mjs +0 -4
  344. package/dist/mjs/src/localizations/en.d.ts +0 -3
  345. package/dist/mjs/src/localizations/en.mjs +0 -4
  346. package/dist/mjs/src/localizations/es.d.ts +0 -3
  347. package/dist/mjs/src/localizations/es.mjs +0 -18
  348. package/dist/mjs/src/localizations/getLocalizationTable.d.ts +0 -3
  349. package/dist/mjs/src/localizations/getLocalizationTable.mjs +0 -45
  350. package/dist/mjs/src/math/LineSegment2.d.ts +0 -24
  351. package/dist/mjs/src/math/LineSegment2.mjs +0 -125
  352. package/dist/mjs/src/math/Mat33.d.ts +0 -118
  353. package/dist/mjs/src/math/Mat33.mjs +0 -326
  354. package/dist/mjs/src/math/Path.d.ts +0 -71
  355. package/dist/mjs/src/math/Path.mjs +0 -648
  356. package/dist/mjs/src/math/Rect2.d.ts +0 -52
  357. package/dist/mjs/src/math/Rect2.mjs +0 -228
  358. package/dist/mjs/src/math/Triangle.d.ts +0 -11
  359. package/dist/mjs/src/math/Triangle.mjs +0 -19
  360. package/dist/mjs/src/math/Vec2.d.ts +0 -13
  361. package/dist/mjs/src/math/Vec2.mjs +0 -13
  362. package/dist/mjs/src/math/Vec3.d.ts +0 -106
  363. package/dist/mjs/src/math/Vec3.mjs +0 -174
  364. package/dist/mjs/src/math/lib.d.ts +0 -7
  365. package/dist/mjs/src/math/lib.mjs +0 -7
  366. package/dist/mjs/src/math/rounding.d.ts +0 -4
  367. package/dist/mjs/src/math/rounding.mjs +0 -128
  368. package/dist/mjs/src/rendering/Display.d.ts +0 -75
  369. package/dist/mjs/src/rendering/Display.mjs +0 -207
  370. package/dist/mjs/src/rendering/RenderingStyle.d.ts +0 -31
  371. package/dist/mjs/src/rendering/RenderingStyle.mjs +0 -38
  372. package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +0 -36
  373. package/dist/mjs/src/rendering/TextRenderingStyle.mjs +0 -23
  374. package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +0 -20
  375. package/dist/mjs/src/rendering/caching/CacheRecord.mjs +0 -55
  376. package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +0 -12
  377. package/dist/mjs/src/rendering/caching/CacheRecordManager.mjs +0 -43
  378. package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +0 -11
  379. package/dist/mjs/src/rendering/caching/RenderingCache.mjs +0 -45
  380. package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +0 -29
  381. package/dist/mjs/src/rendering/caching/RenderingCacheNode.mjs +0 -320
  382. package/dist/mjs/src/rendering/caching/testUtils.d.ts +0 -9
  383. package/dist/mjs/src/rendering/caching/testUtils.mjs +0 -20
  384. package/dist/mjs/src/rendering/caching/types.d.ts +0 -19
  385. package/dist/mjs/src/rendering/caching/types.mjs +0 -1
  386. package/dist/mjs/src/rendering/lib.d.ts +0 -5
  387. package/dist/mjs/src/rendering/lib.mjs +0 -5
  388. package/dist/mjs/src/rendering/localization.d.ts +0 -10
  389. package/dist/mjs/src/rendering/localization.mjs +0 -9
  390. package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +0 -68
  391. package/dist/mjs/src/rendering/renderers/AbstractRenderer.mjs +0 -144
  392. package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +0 -63
  393. package/dist/mjs/src/rendering/renderers/CanvasRenderer.mjs +0 -230
  394. package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +0 -35
  395. package/dist/mjs/src/rendering/renderers/DummyRenderer.mjs +0 -106
  396. package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +0 -57
  397. package/dist/mjs/src/rendering/renderers/SVGRenderer.mjs +0 -304
  398. package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +0 -29
  399. package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.mjs +0 -57
  400. package/dist/mjs/src/testing/beforeEachFile.d.ts +0 -1
  401. package/dist/mjs/src/testing/beforeEachFile.mjs +0 -7
  402. package/dist/mjs/src/testing/createEditor.d.ts +0 -4
  403. package/dist/mjs/src/testing/createEditor.mjs +0 -9
  404. package/dist/mjs/src/testing/lib.d.ts +0 -2
  405. package/dist/mjs/src/testing/lib.mjs +0 -2
  406. package/dist/mjs/src/testing/loadExpectExtensions.d.ts +0 -2
  407. package/dist/mjs/src/testing/loadExpectExtensions.mjs +0 -24
  408. package/dist/mjs/src/testing/sendPenEvent.d.ts +0 -12
  409. package/dist/mjs/src/testing/sendPenEvent.mjs +0 -19
  410. package/dist/mjs/src/testing/sendTouchEvent.d.ts +0 -42
  411. package/dist/mjs/src/testing/sendTouchEvent.mjs +0 -62
  412. package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +0 -103
  413. package/dist/mjs/src/toolbar/HTMLToolbar.mjs +0 -376
  414. package/dist/mjs/src/toolbar/IconProvider.d.ts +0 -62
  415. package/dist/mjs/src/toolbar/IconProvider.mjs +0 -654
  416. package/dist/mjs/src/toolbar/lib.d.ts +0 -3
  417. package/dist/mjs/src/toolbar/lib.mjs +0 -3
  418. package/dist/mjs/src/toolbar/localization.d.ts +0 -49
  419. package/dist/mjs/src/toolbar/localization.mjs +0 -48
  420. package/dist/mjs/src/toolbar/makeColorInput.d.ts +0 -6
  421. package/dist/mjs/src/toolbar/makeColorInput.mjs +0 -113
  422. package/dist/mjs/src/toolbar/types.d.ts +0 -4
  423. package/dist/mjs/src/toolbar/types.mjs +0 -1
  424. package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +0 -15
  425. package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.mjs +0 -25
  426. package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +0 -11
  427. package/dist/mjs/src/toolbar/widgets/BaseToolWidget.mjs +0 -44
  428. package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +0 -72
  429. package/dist/mjs/src/toolbar/widgets/BaseWidget.mjs +0 -307
  430. package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -18
  431. package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs +0 -120
  432. package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +0 -17
  433. package/dist/mjs/src/toolbar/widgets/EraserToolWidget.mjs +0 -57
  434. package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +0 -17
  435. package/dist/mjs/src/toolbar/widgets/HandToolWidget.mjs +0 -172
  436. package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +0 -19
  437. package/dist/mjs/src/toolbar/widgets/InsertImageWidget.mjs +0 -170
  438. package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +0 -25
  439. package/dist/mjs/src/toolbar/widgets/OverflowWidget.mjs +0 -71
  440. package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +0 -27
  441. package/dist/mjs/src/toolbar/widgets/PenToolWidget.mjs +0 -220
  442. package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +0 -13
  443. package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.mjs +0 -147
  444. package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +0 -16
  445. package/dist/mjs/src/toolbar/widgets/TextToolWidget.mjs +0 -109
  446. package/dist/mjs/src/toolbar/widgets/lib.d.ts +0 -10
  447. package/dist/mjs/src/toolbar/widgets/lib.mjs +0 -10
  448. package/dist/mjs/src/tools/BaseTool.d.ts +0 -22
  449. package/dist/mjs/src/tools/BaseTool.mjs +0 -63
  450. package/dist/mjs/src/tools/Eraser.d.ts +0 -23
  451. package/dist/mjs/src/tools/Eraser.mjs +0 -106
  452. package/dist/mjs/src/tools/FindTool.d.ts +0 -21
  453. package/dist/mjs/src/tools/FindTool.mjs +0 -114
  454. package/dist/mjs/src/tools/PanZoom.d.ts +0 -52
  455. package/dist/mjs/src/tools/PanZoom.mjs +0 -414
  456. package/dist/mjs/src/tools/PasteHandler.d.ts +0 -23
  457. package/dist/mjs/src/tools/PasteHandler.mjs +0 -93
  458. package/dist/mjs/src/tools/Pen.d.ts +0 -39
  459. package/dist/mjs/src/tools/Pen.mjs +0 -173
  460. package/dist/mjs/src/tools/PipetteTool.d.ts +0 -18
  461. package/dist/mjs/src/tools/PipetteTool.mjs +0 -39
  462. package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -8
  463. package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs +0 -22
  464. package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +0 -64
  465. package/dist/mjs/src/tools/SelectionTool/Selection.mjs +0 -459
  466. package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +0 -38
  467. package/dist/mjs/src/tools/SelectionTool/SelectionHandle.mjs +0 -81
  468. package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +0 -36
  469. package/dist/mjs/src/tools/SelectionTool/SelectionTool.mjs +0 -398
  470. package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +0 -34
  471. package/dist/mjs/src/tools/SelectionTool/TransformMode.mjs +0 -98
  472. package/dist/mjs/src/tools/SelectionTool/types.d.ts +0 -9
  473. package/dist/mjs/src/tools/SelectionTool/types.mjs +0 -11
  474. package/dist/mjs/src/tools/TextTool.d.ts +0 -33
  475. package/dist/mjs/src/tools/TextTool.mjs +0 -256
  476. package/dist/mjs/src/tools/ToolController.d.ts +0 -18
  477. package/dist/mjs/src/tools/ToolController.mjs +0 -158
  478. package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +0 -6
  479. package/dist/mjs/src/tools/ToolEnabledGroup.mjs +0 -11
  480. package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +0 -16
  481. package/dist/mjs/src/tools/ToolSwitcherShortcut.mjs +0 -32
  482. package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +0 -12
  483. package/dist/mjs/src/tools/ToolbarShortcutHandler.mjs +0 -23
  484. package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +0 -8
  485. package/dist/mjs/src/tools/UndoRedoShortcut.mjs +0 -22
  486. package/dist/mjs/src/tools/lib.d.ts +0 -16
  487. package/dist/mjs/src/tools/lib.mjs +0 -16
  488. package/dist/mjs/src/tools/localization.d.ts +0 -28
  489. package/dist/mjs/src/tools/localization.mjs +0 -27
  490. package/dist/mjs/src/types.d.ts +0 -151
  491. package/dist/mjs/src/types.mjs +0 -35
  492. package/dist/mjs/src/util/assertions.d.ts +0 -23
  493. package/dist/mjs/src/util/assertions.mjs +0 -45
  494. package/dist/mjs/src/util/fileToBase64.d.ts +0 -3
  495. package/dist/mjs/src/util/fileToBase64.mjs +0 -13
  496. package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +0 -3
  497. package/dist/mjs/src/util/untilNextAnimationFrame.mjs +0 -7
  498. package/dist/mjs/src/util/waitForTimeout.d.ts +0 -2
  499. package/dist/mjs/src/util/waitForTimeout.mjs +0 -7
  500. package/src/Color4.test.ts +0 -40
  501. package/src/Color4.ts +0 -236
  502. package/src/Editor.css +0 -86
  503. package/src/Editor.loadFrom.test.ts +0 -24
  504. package/src/Editor.toSVG.test.ts +0 -111
  505. package/src/Editor.ts +0 -1122
  506. package/src/EditorImage.test.ts +0 -120
  507. package/src/EditorImage.ts +0 -603
  508. package/src/EventDispatcher.test.ts +0 -123
  509. package/src/EventDispatcher.ts +0 -71
  510. package/src/Pointer.ts +0 -127
  511. package/src/SVGLoader.test.ts +0 -114
  512. package/src/SVGLoader.ts +0 -511
  513. package/src/UndoRedoHistory.test.ts +0 -33
  514. package/src/UndoRedoHistory.ts +0 -102
  515. package/src/Viewport.ts +0 -319
  516. package/src/bundle/bundled.ts +0 -7
  517. package/src/commands/Command.ts +0 -45
  518. package/src/commands/Duplicate.ts +0 -48
  519. package/src/commands/Erase.ts +0 -74
  520. package/src/commands/SerializableCommand.ts +0 -49
  521. package/src/commands/UnresolvedCommand.ts +0 -37
  522. package/src/commands/invertCommand.ts +0 -51
  523. package/src/commands/lib.ts +0 -16
  524. package/src/commands/localization.ts +0 -47
  525. package/src/commands/uniteCommands.test.ts +0 -23
  526. package/src/commands/uniteCommands.ts +0 -135
  527. package/src/components/AbstractComponent.transformBy.test.ts +0 -22
  528. package/src/components/AbstractComponent.ts +0 -364
  529. package/src/components/ImageBackground.test.ts +0 -35
  530. package/src/components/ImageBackground.ts +0 -176
  531. package/src/components/ImageComponent.ts +0 -171
  532. package/src/components/RestylableComponent.ts +0 -142
  533. package/src/components/SVGGlobalAttributesObject.ts +0 -81
  534. package/src/components/Stroke.test.ts +0 -139
  535. package/src/components/Stroke.ts +0 -245
  536. package/src/components/TextComponent.test.ts +0 -99
  537. package/src/components/TextComponent.ts +0 -315
  538. package/src/components/UnknownSVGObject.test.ts +0 -10
  539. package/src/components/UnknownSVGObject.ts +0 -60
  540. package/src/components/builders/ArrowBuilder.ts +0 -107
  541. package/src/components/builders/FreehandLineBuilder.ts +0 -212
  542. package/src/components/builders/LineBuilder.ts +0 -77
  543. package/src/components/builders/PressureSensitiveFreehandLineBuilder.ts +0 -454
  544. package/src/components/builders/RectangleBuilder.ts +0 -74
  545. package/src/components/builders/types.ts +0 -15
  546. package/src/components/lib.ts +0 -25
  547. package/src/components/localization.ts +0 -22
  548. package/src/components/util/StrokeSmoother.ts +0 -293
  549. package/src/components/util/describeComponentList.ts +0 -18
  550. package/src/lib.ts +0 -37
  551. package/src/localization.ts +0 -34
  552. package/src/localizations/de.ts +0 -98
  553. package/src/localizations/en.ts +0 -8
  554. package/src/localizations/es.ts +0 -74
  555. package/src/localizations/getLocalizationTable.test.ts +0 -27
  556. package/src/localizations/getLocalizationTable.ts +0 -55
  557. package/src/math/LineSegment2.test.ts +0 -99
  558. package/src/math/LineSegment2.ts +0 -160
  559. package/src/math/Mat33.test.ts +0 -244
  560. package/src/math/Mat33.ts +0 -437
  561. package/src/math/Path.fromString.test.ts +0 -223
  562. package/src/math/Path.test.ts +0 -198
  563. package/src/math/Path.toString.test.ts +0 -77
  564. package/src/math/Path.ts +0 -790
  565. package/src/math/Rect2.test.ts +0 -204
  566. package/src/math/Rect2.ts +0 -315
  567. package/src/math/Triangle.ts +0 -29
  568. package/src/math/Vec2.test.ts +0 -30
  569. package/src/math/Vec2.ts +0 -18
  570. package/src/math/Vec3.test.ts +0 -44
  571. package/src/math/Vec3.ts +0 -218
  572. package/src/math/lib.ts +0 -15
  573. package/src/math/rounding.test.ts +0 -65
  574. package/src/math/rounding.ts +0 -156
  575. package/src/rendering/Display.ts +0 -249
  576. package/src/rendering/RenderingStyle.test.ts +0 -68
  577. package/src/rendering/RenderingStyle.ts +0 -55
  578. package/src/rendering/TextRenderingStyle.ts +0 -45
  579. package/src/rendering/caching/CacheRecord.test.ts +0 -49
  580. package/src/rendering/caching/CacheRecord.ts +0 -77
  581. package/src/rendering/caching/CacheRecordManager.ts +0 -71
  582. package/src/rendering/caching/RenderingCache.test.ts +0 -44
  583. package/src/rendering/caching/RenderingCache.ts +0 -66
  584. package/src/rendering/caching/RenderingCacheNode.ts +0 -405
  585. package/src/rendering/caching/testUtils.ts +0 -35
  586. package/src/rendering/caching/types.ts +0 -34
  587. package/src/rendering/lib.ts +0 -6
  588. package/src/rendering/localization.ts +0 -20
  589. package/src/rendering/renderers/AbstractRenderer.ts +0 -222
  590. package/src/rendering/renderers/CanvasRenderer.ts +0 -296
  591. package/src/rendering/renderers/DummyRenderer.test.ts +0 -42
  592. package/src/rendering/renderers/DummyRenderer.ts +0 -136
  593. package/src/rendering/renderers/SVGRenderer.ts +0 -354
  594. package/src/rendering/renderers/TextOnlyRenderer.ts +0 -70
  595. package/src/styles.js +0 -7
  596. package/src/testing/beforeEachFile.ts +0 -8
  597. package/src/testing/createEditor.ts +0 -11
  598. package/src/testing/global.d.ts +0 -17
  599. package/src/testing/lib.ts +0 -3
  600. package/src/testing/loadExpectExtensions.ts +0 -25
  601. package/src/testing/sendPenEvent.ts +0 -31
  602. package/src/testing/sendTouchEvent.ts +0 -78
  603. package/src/toolbar/HTMLToolbar.ts +0 -492
  604. package/src/toolbar/IconProvider.ts +0 -736
  605. package/src/toolbar/lib.ts +0 -4
  606. package/src/toolbar/localization.ts +0 -106
  607. package/src/toolbar/makeColorInput.ts +0 -145
  608. package/src/toolbar/toolbar.css +0 -213
  609. package/src/toolbar/types.ts +0 -5
  610. package/src/toolbar/widgets/ActionButtonWidget.ts +0 -39
  611. package/src/toolbar/widgets/BaseToolWidget.ts +0 -56
  612. package/src/toolbar/widgets/BaseWidget.ts +0 -377
  613. package/src/toolbar/widgets/DocumentPropertiesWidget.ts +0 -167
  614. package/src/toolbar/widgets/EraserToolWidget.ts +0 -85
  615. package/src/toolbar/widgets/HandToolWidget.ts +0 -250
  616. package/src/toolbar/widgets/InsertImageWidget.css +0 -44
  617. package/src/toolbar/widgets/InsertImageWidget.ts +0 -223
  618. package/src/toolbar/widgets/OverflowWidget.css +0 -27
  619. package/src/toolbar/widgets/OverflowWidget.ts +0 -92
  620. package/src/toolbar/widgets/PenToolWidget.ts +0 -288
  621. package/src/toolbar/widgets/SelectionToolWidget.ts +0 -190
  622. package/src/toolbar/widgets/TextToolWidget.ts +0 -145
  623. package/src/toolbar/widgets/lib.ts +0 -13
  624. package/src/tools/BaseTool.ts +0 -76
  625. package/src/tools/Eraser.test.ts +0 -103
  626. package/src/tools/Eraser.ts +0 -139
  627. package/src/tools/FindTool.css +0 -7
  628. package/src/tools/FindTool.ts +0 -152
  629. package/src/tools/PanZoom.test.ts +0 -310
  630. package/src/tools/PanZoom.ts +0 -520
  631. package/src/tools/PasteHandler.ts +0 -95
  632. package/src/tools/Pen.test.ts +0 -194
  633. package/src/tools/Pen.ts +0 -226
  634. package/src/tools/PipetteTool.ts +0 -55
  635. package/src/tools/SelectionTool/SelectAllShortcutHandler.ts +0 -28
  636. package/src/tools/SelectionTool/Selection.ts +0 -607
  637. package/src/tools/SelectionTool/SelectionHandle.ts +0 -108
  638. package/src/tools/SelectionTool/SelectionTool.css +0 -23
  639. package/src/tools/SelectionTool/SelectionTool.test.ts +0 -261
  640. package/src/tools/SelectionTool/SelectionTool.ts +0 -480
  641. package/src/tools/SelectionTool/TransformMode.ts +0 -114
  642. package/src/tools/SelectionTool/types.ts +0 -11
  643. package/src/tools/TextTool.ts +0 -326
  644. package/src/tools/ToolController.ts +0 -178
  645. package/src/tools/ToolEnabledGroup.ts +0 -14
  646. package/src/tools/ToolSwitcherShortcut.ts +0 -39
  647. package/src/tools/ToolbarShortcutHandler.ts +0 -34
  648. package/src/tools/UndoRedoShortcut.test.ts +0 -56
  649. package/src/tools/UndoRedoShortcut.ts +0 -25
  650. package/src/tools/lib.ts +0 -21
  651. package/src/tools/localization.ts +0 -66
  652. package/src/types.ts +0 -234
  653. package/src/util/assertions.ts +0 -55
  654. package/src/util/fileToBase64.ts +0 -18
  655. package/src/util/untilNextAnimationFrame.ts +0 -9
  656. package/src/util/waitForTimeout.ts +0 -9
@@ -1,655 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PathCommandType = void 0;
7
- const bezier_js_1 = require("bezier-js");
8
- const rounding_1 = require("./rounding");
9
- const LineSegment2_1 = __importDefault(require("./LineSegment2"));
10
- const Mat33_1 = __importDefault(require("./Mat33"));
11
- const Rect2_1 = __importDefault(require("./Rect2"));
12
- const Vec2_1 = require("./Vec2");
13
- var PathCommandType;
14
- (function (PathCommandType) {
15
- PathCommandType[PathCommandType["LineTo"] = 0] = "LineTo";
16
- PathCommandType[PathCommandType["MoveTo"] = 1] = "MoveTo";
17
- PathCommandType[PathCommandType["CubicBezierTo"] = 2] = "CubicBezierTo";
18
- PathCommandType[PathCommandType["QuadraticBezierTo"] = 3] = "QuadraticBezierTo";
19
- })(PathCommandType = exports.PathCommandType || (exports.PathCommandType = {}));
20
- class Path {
21
- constructor(startPoint, parts) {
22
- this.startPoint = startPoint;
23
- this.parts = parts;
24
- this.cachedGeometry = null;
25
- this.cachedPolylineApproximation = null;
26
- this.cachedStringVersion = null;
27
- // Initial bounding box contains one point: the start point.
28
- this.bbox = Rect2_1.default.bboxOf([startPoint]);
29
- // Convert into a representation of the geometry (cache for faster intersection
30
- // calculation)
31
- for (const part of parts) {
32
- this.bbox = this.bbox.union(Path.computeBBoxForSegment(startPoint, part));
33
- }
34
- }
35
- // Lazy-loads and returns this path's geometry
36
- get geometry() {
37
- if (this.cachedGeometry) {
38
- return this.cachedGeometry;
39
- }
40
- let startPoint = this.startPoint;
41
- const geometry = [];
42
- for (const part of this.parts) {
43
- switch (part.kind) {
44
- case PathCommandType.CubicBezierTo:
45
- geometry.push(new bezier_js_1.Bezier(startPoint.xy, part.controlPoint1.xy, part.controlPoint2.xy, part.endPoint.xy));
46
- startPoint = part.endPoint;
47
- break;
48
- case PathCommandType.QuadraticBezierTo:
49
- geometry.push(new bezier_js_1.Bezier(startPoint.xy, part.controlPoint.xy, part.endPoint.xy));
50
- startPoint = part.endPoint;
51
- break;
52
- case PathCommandType.LineTo:
53
- geometry.push(new LineSegment2_1.default(startPoint, part.point));
54
- startPoint = part.point;
55
- break;
56
- case PathCommandType.MoveTo:
57
- startPoint = part.point;
58
- break;
59
- }
60
- }
61
- this.cachedGeometry = geometry;
62
- return this.cachedGeometry;
63
- }
64
- // Approximates this path with a group of line segments.
65
- polylineApproximation() {
66
- if (this.cachedPolylineApproximation) {
67
- return this.cachedPolylineApproximation;
68
- }
69
- const points = [];
70
- for (const part of this.parts) {
71
- switch (part.kind) {
72
- case PathCommandType.CubicBezierTo:
73
- points.push(part.controlPoint1, part.controlPoint2, part.endPoint);
74
- break;
75
- case PathCommandType.QuadraticBezierTo:
76
- points.push(part.controlPoint, part.endPoint);
77
- break;
78
- case PathCommandType.MoveTo:
79
- case PathCommandType.LineTo:
80
- points.push(part.point);
81
- break;
82
- }
83
- }
84
- const result = [];
85
- let prevPoint = this.startPoint;
86
- for (const point of points) {
87
- result.push(new LineSegment2_1.default(prevPoint, point));
88
- prevPoint = point;
89
- }
90
- return result;
91
- }
92
- static computeBBoxForSegment(startPoint, part) {
93
- const points = [startPoint];
94
- let exhaustivenessCheck;
95
- switch (part.kind) {
96
- case PathCommandType.MoveTo:
97
- case PathCommandType.LineTo:
98
- points.push(part.point);
99
- break;
100
- case PathCommandType.CubicBezierTo:
101
- points.push(part.controlPoint1, part.controlPoint2, part.endPoint);
102
- break;
103
- case PathCommandType.QuadraticBezierTo:
104
- points.push(part.controlPoint, part.endPoint);
105
- break;
106
- default:
107
- exhaustivenessCheck = part;
108
- return exhaustivenessCheck;
109
- }
110
- return Rect2_1.default.bboxOf(points);
111
- }
112
- intersection(line) {
113
- if (!line.bbox.intersects(this.bbox)) {
114
- return [];
115
- }
116
- const result = [];
117
- for (const part of this.geometry) {
118
- if (part instanceof LineSegment2_1.default) {
119
- const intersection = part.intersection(line);
120
- if (intersection) {
121
- result.push({
122
- curve: part,
123
- parameterValue: intersection.t,
124
- point: intersection.point,
125
- });
126
- }
127
- }
128
- else {
129
- const intersectionPoints = part.intersects(line).map(t => {
130
- // We're using the .intersects(line) function, which is documented
131
- // to always return numbers. However, to satisfy the type checker (and
132
- // possibly improperly-defined types),
133
- if (typeof t === 'string') {
134
- t = parseFloat(t);
135
- }
136
- const point = Vec2_1.Vec2.ofXY(part.get(t));
137
- // Ensure that the intersection is on the line
138
- if (point.minus(line.p1).magnitude() > line.length
139
- || point.minus(line.p2).magnitude() > line.length) {
140
- return null;
141
- }
142
- return {
143
- point,
144
- parameterValue: t,
145
- curve: part,
146
- };
147
- }).filter(entry => entry !== null);
148
- result.push(...intersectionPoints);
149
- }
150
- }
151
- return result;
152
- }
153
- static mapPathCommand(part, mapping) {
154
- switch (part.kind) {
155
- case PathCommandType.MoveTo:
156
- case PathCommandType.LineTo:
157
- return {
158
- kind: part.kind,
159
- point: mapping(part.point),
160
- };
161
- break;
162
- case PathCommandType.CubicBezierTo:
163
- return {
164
- kind: part.kind,
165
- controlPoint1: mapping(part.controlPoint1),
166
- controlPoint2: mapping(part.controlPoint2),
167
- endPoint: mapping(part.endPoint),
168
- };
169
- break;
170
- case PathCommandType.QuadraticBezierTo:
171
- return {
172
- kind: part.kind,
173
- controlPoint: mapping(part.controlPoint),
174
- endPoint: mapping(part.endPoint),
175
- };
176
- break;
177
- }
178
- const exhaustivenessCheck = part;
179
- return exhaustivenessCheck;
180
- }
181
- mapPoints(mapping) {
182
- const startPoint = mapping(this.startPoint);
183
- const newParts = [];
184
- for (const part of this.parts) {
185
- newParts.push(Path.mapPathCommand(part, mapping));
186
- }
187
- return new Path(startPoint, newParts);
188
- }
189
- transformedBy(affineTransfm) {
190
- if (affineTransfm.isIdentity()) {
191
- return this;
192
- }
193
- return this.mapPoints(point => affineTransfm.transformVec2(point));
194
- }
195
- // Creates a new path by joining [other] to the end of this path
196
- union(other) {
197
- if (!other) {
198
- return this;
199
- }
200
- return new Path(this.startPoint, [
201
- ...this.parts,
202
- {
203
- kind: PathCommandType.MoveTo,
204
- point: other.startPoint,
205
- },
206
- ...other.parts,
207
- ]);
208
- }
209
- getEndPoint() {
210
- if (this.parts.length === 0) {
211
- return this.startPoint;
212
- }
213
- const lastPart = this.parts[this.parts.length - 1];
214
- if (lastPart.kind === PathCommandType.QuadraticBezierTo || lastPart.kind === PathCommandType.CubicBezierTo) {
215
- return lastPart.endPoint;
216
- }
217
- else {
218
- return lastPart.point;
219
- }
220
- }
221
- roughlyIntersects(rect, strokeWidth = 0) {
222
- if (this.parts.length === 0) {
223
- return rect.containsPoint(this.startPoint);
224
- }
225
- const isClosed = this.startPoint.eq(this.getEndPoint());
226
- if (isClosed && strokeWidth === 0) {
227
- return this.closedRoughlyIntersects(rect);
228
- }
229
- if (rect.containsRect(this.bbox)) {
230
- return true;
231
- }
232
- // Does the rectangle intersect the bounding boxes of any of this' parts?
233
- let startPoint = this.startPoint;
234
- for (const part of this.parts) {
235
- const bbox = Path.computeBBoxForSegment(startPoint, part).grownBy(strokeWidth);
236
- if (part.kind === PathCommandType.LineTo || part.kind === PathCommandType.MoveTo) {
237
- startPoint = part.point;
238
- }
239
- else {
240
- startPoint = part.endPoint;
241
- }
242
- if (rect.intersects(bbox)) {
243
- return true;
244
- }
245
- }
246
- return false;
247
- }
248
- // Treats this as a closed path and returns true if part of `rect` is roughly within
249
- // this path's interior.
250
- //
251
- // Note: Assumes that this is a closed, non-self-intersecting path.
252
- closedRoughlyIntersects(rect) {
253
- if (rect.containsRect(this.bbox)) {
254
- return true;
255
- }
256
- // Choose a point outside of the path.
257
- const startPt = this.bbox.topLeft.minus(Vec2_1.Vec2.of(1, 1));
258
- const testPts = rect.corners;
259
- const polygon = this.polylineApproximation();
260
- for (const point of testPts) {
261
- const testLine = new LineSegment2_1.default(point, startPt);
262
- let intersectionCount = 0;
263
- for (const line of polygon) {
264
- if (line.intersects(testLine)) {
265
- intersectionCount++;
266
- }
267
- }
268
- // Odd? The point is within the polygon!
269
- if (intersectionCount % 2 === 1) {
270
- return true;
271
- }
272
- }
273
- // Grow the rectangle for possible additional precision.
274
- const grownRect = rect.grownBy(Math.min(rect.size.x, rect.size.y));
275
- const edges = [];
276
- for (const subrect of grownRect.divideIntoGrid(4, 4)) {
277
- edges.push(...subrect.getEdges());
278
- }
279
- for (const edge of edges) {
280
- for (const line of polygon) {
281
- if (edge.intersects(line)) {
282
- return true;
283
- }
284
- }
285
- }
286
- // Even? Probably no intersection.
287
- return false;
288
- }
289
- // Returns a path that outlines [rect]. If [lineWidth] is not given, the resultant path is
290
- // the outline of [rect]. Otherwise, the resultant path represents a line of width [lineWidth]
291
- // that traces [rect].
292
- static fromRect(rect, lineWidth = null) {
293
- const commands = [];
294
- let corners;
295
- let startPoint;
296
- if (lineWidth !== null) {
297
- // Vector from the top left corner or bottom right corner to the edge of the
298
- // stroked region.
299
- const cornerToEdge = Vec2_1.Vec2.of(lineWidth, lineWidth).times(0.5);
300
- const innerRect = Rect2_1.default.fromCorners(rect.topLeft.plus(cornerToEdge), rect.bottomRight.minus(cornerToEdge));
301
- const outerRect = Rect2_1.default.fromCorners(rect.topLeft.minus(cornerToEdge), rect.bottomRight.plus(cornerToEdge));
302
- corners = [
303
- innerRect.corners[3],
304
- ...innerRect.corners,
305
- ...outerRect.corners.reverse(),
306
- ];
307
- startPoint = outerRect.corners[3];
308
- }
309
- else {
310
- corners = rect.corners.slice(1);
311
- startPoint = rect.corners[0];
312
- }
313
- for (const corner of corners) {
314
- commands.push({
315
- kind: PathCommandType.LineTo,
316
- point: corner,
317
- });
318
- }
319
- // Close the shape
320
- commands.push({
321
- kind: PathCommandType.LineTo,
322
- point: startPoint,
323
- });
324
- return new Path(startPoint, commands);
325
- }
326
- static fromRenderable(renderable) {
327
- if (renderable.path) {
328
- return renderable.path;
329
- }
330
- return new Path(renderable.startPoint, renderable.commands);
331
- }
332
- toRenderable(fill) {
333
- return {
334
- startPoint: this.startPoint,
335
- style: fill,
336
- commands: this.parts,
337
- path: this,
338
- };
339
- }
340
- /**
341
- * @returns a Path that, when rendered, looks roughly equivalent to the given path.
342
- */
343
- static visualEquivalent(renderablePath, visibleRect) {
344
- var _a, _b;
345
- const path = Path.fromRenderable(renderablePath);
346
- const strokeWidth = (_b = (_a = renderablePath.style.stroke) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0;
347
- const onlyStroked = strokeWidth > 0 && renderablePath.style.fill.a === 0;
348
- // Scale the expanded rect --- the visual equivalent is only close for huge strokes.
349
- const expandedRect = visibleRect.grownBy(strokeWidth)
350
- .transformedBoundingBox(Mat33_1.default.scaling2D(2, visibleRect.center));
351
- // TODO: Handle simplifying very small paths.
352
- if (expandedRect.containsRect(path.bbox.grownBy(strokeWidth))) {
353
- return renderablePath;
354
- }
355
- const parts = [];
356
- let startPoint = path.startPoint;
357
- for (const part of path.parts) {
358
- const partBBox = Path.computeBBoxForSegment(startPoint, part).grownBy(strokeWidth);
359
- let endPoint;
360
- if (part.kind === PathCommandType.LineTo || part.kind === PathCommandType.MoveTo) {
361
- endPoint = part.point;
362
- }
363
- else {
364
- endPoint = part.endPoint;
365
- }
366
- const intersectsVisible = partBBox.intersects(visibleRect);
367
- if (intersectsVisible) {
368
- // TODO: Can we trim parts of paths that intersect the visible rectangle?
369
- parts.push(part);
370
- }
371
- else if (onlyStroked || part.kind === PathCommandType.MoveTo) {
372
- // We're stroking (not filling) and the path doesn't intersect the bounding box.
373
- // Don't draw it, but preserve the endpoints.
374
- parts.push({
375
- kind: PathCommandType.MoveTo,
376
- point: endPoint,
377
- });
378
- }
379
- else {
380
- // Otherwise, we may be filling. Try to roughly preserve the filled region.
381
- parts.push({
382
- kind: PathCommandType.LineTo,
383
- point: endPoint,
384
- });
385
- }
386
- startPoint = endPoint;
387
- }
388
- return new Path(path.startPoint, parts).toRenderable(renderablePath.style);
389
- }
390
- toString(useNonAbsCommands) {
391
- if (this.cachedStringVersion) {
392
- return this.cachedStringVersion;
393
- }
394
- if (useNonAbsCommands === undefined) {
395
- // Hueristic: Try to determine whether converting absolute to relative commands is worth it.
396
- useNonAbsCommands = Math.abs(this.bbox.topLeft.x) > 10 && Math.abs(this.bbox.topLeft.y) > 10;
397
- }
398
- const result = Path.toString(this.startPoint, this.parts, !useNonAbsCommands);
399
- this.cachedStringVersion = result;
400
- return result;
401
- }
402
- serialize() {
403
- return this.toString();
404
- }
405
- // @param onlyAbsCommands - True if we should avoid converting absolute coordinates to relative offsets -- such
406
- // conversions can lead to smaller output strings, but also take time.
407
- static toString(startPoint, parts, onlyAbsCommands) {
408
- var _a;
409
- const result = [];
410
- let prevPoint;
411
- const addCommand = (command, ...points) => {
412
- const absoluteCommandParts = [];
413
- const relativeCommandParts = [];
414
- const makeAbsCommand = !prevPoint || onlyAbsCommands;
415
- const roundedPrevX = prevPoint ? (0, rounding_1.toRoundedString)(prevPoint.x) : '';
416
- const roundedPrevY = prevPoint ? (0, rounding_1.toRoundedString)(prevPoint.y) : '';
417
- for (const point of points) {
418
- const xComponent = (0, rounding_1.toRoundedString)(point.x);
419
- const yComponent = (0, rounding_1.toRoundedString)(point.y);
420
- // Relative commands are often shorter as strings than absolute commands.
421
- if (!makeAbsCommand) {
422
- const xComponentRelative = (0, rounding_1.toStringOfSamePrecision)(point.x - prevPoint.x, xComponent, roundedPrevX, roundedPrevY);
423
- const yComponentRelative = (0, rounding_1.toStringOfSamePrecision)(point.y - prevPoint.y, yComponent, roundedPrevX, roundedPrevY);
424
- // No need for an additional separator if it starts with a '-'
425
- if (yComponentRelative.charAt(0) === '-') {
426
- relativeCommandParts.push(`${xComponentRelative}${yComponentRelative}`);
427
- }
428
- else {
429
- relativeCommandParts.push(`${xComponentRelative},${yComponentRelative}`);
430
- }
431
- }
432
- else {
433
- absoluteCommandParts.push(`${xComponent},${yComponent}`);
434
- }
435
- }
436
- let commandString;
437
- if (makeAbsCommand) {
438
- commandString = `${command}${absoluteCommandParts.join(' ')}`;
439
- }
440
- else {
441
- commandString = `${command.toLowerCase()}${relativeCommandParts.join(' ')}`;
442
- }
443
- // Don't add no-ops.
444
- if (commandString === 'l0,0' || commandString === 'm0,0') {
445
- return;
446
- }
447
- result.push(commandString);
448
- if (points.length > 0) {
449
- prevPoint = points[points.length - 1];
450
- }
451
- };
452
- // Don't add two moveTos in a row (this can happen if
453
- // the start point corresponds to a moveTo _and_ the first command is
454
- // also a moveTo)
455
- if (((_a = parts[0]) === null || _a === void 0 ? void 0 : _a.kind) !== PathCommandType.MoveTo) {
456
- addCommand('M', startPoint);
457
- }
458
- let exhaustivenessCheck;
459
- for (let i = 0; i < parts.length; i++) {
460
- const part = parts[i];
461
- switch (part.kind) {
462
- case PathCommandType.MoveTo:
463
- addCommand('M', part.point);
464
- break;
465
- case PathCommandType.LineTo:
466
- addCommand('L', part.point);
467
- break;
468
- case PathCommandType.CubicBezierTo:
469
- addCommand('C', part.controlPoint1, part.controlPoint2, part.endPoint);
470
- break;
471
- case PathCommandType.QuadraticBezierTo:
472
- addCommand('Q', part.controlPoint, part.endPoint);
473
- break;
474
- default:
475
- exhaustivenessCheck = part;
476
- return exhaustivenessCheck;
477
- }
478
- }
479
- return result.join('');
480
- }
481
- // Create a Path from a SVG path specification.
482
- // TODO: Support a larger subset of SVG paths.
483
- // TODO: Support `s`,`t` commands shorthands.
484
- static fromString(pathString) {
485
- // See the MDN reference:
486
- // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d
487
- // and
488
- // https://www.w3.org/TR/SVG2/paths.html
489
- var _a;
490
- // Remove linebreaks
491
- pathString = pathString.split('\n').join(' ');
492
- let lastPos = Vec2_1.Vec2.zero;
493
- let firstPos = null;
494
- let startPos = null;
495
- let isFirstCommand = true;
496
- const commands = [];
497
- const moveTo = (point) => {
498
- // The first moveTo/lineTo is already handled by the [startPoint] parameter of the Path constructor.
499
- if (isFirstCommand) {
500
- isFirstCommand = false;
501
- return;
502
- }
503
- commands.push({
504
- kind: PathCommandType.MoveTo,
505
- point,
506
- });
507
- };
508
- const lineTo = (point) => {
509
- if (isFirstCommand) {
510
- isFirstCommand = false;
511
- return;
512
- }
513
- commands.push({
514
- kind: PathCommandType.LineTo,
515
- point,
516
- });
517
- };
518
- const cubicBezierTo = (cp1, cp2, end) => {
519
- commands.push({
520
- kind: PathCommandType.CubicBezierTo,
521
- controlPoint1: cp1,
522
- controlPoint2: cp2,
523
- endPoint: end,
524
- });
525
- };
526
- const quadraticBeierTo = (controlPoint, endPoint) => {
527
- commands.push({
528
- kind: PathCommandType.QuadraticBezierTo,
529
- controlPoint,
530
- endPoint,
531
- });
532
- };
533
- const commandArgCounts = {
534
- 'm': 1,
535
- 'l': 1,
536
- 'c': 3,
537
- 'q': 2,
538
- 'z': 0,
539
- 'h': 1,
540
- 'v': 1,
541
- };
542
- // Each command: Command character followed by anything that isn't a command character
543
- const commandExp = /([MZLHVCSQTA])\s*([^MZLHVCSQTA]*)/ig;
544
- let current;
545
- while ((current = commandExp.exec(pathString)) !== null) {
546
- const argParts = current[2].trim().split(/[^0-9Ee.-]/).filter(part => part.length > 0).reduce((accumualtor, current) => {
547
- // As of 09/2022, iOS Safari doesn't support support lookbehind in regular
548
- // expressions. As such, we need an alternative.
549
- // Because '-' can be used as a path separator, unless preceeded by an 'e' (as in 1e-5),
550
- // we need special cases:
551
- current = current.replace(/([^eE])[-]/g, '$1 -');
552
- const parts = current.split(' -');
553
- if (parts[0] !== '') {
554
- accumualtor.push(parts[0]);
555
- }
556
- accumualtor.push(...parts.slice(1).map(part => `-${part}`));
557
- return accumualtor;
558
- }, []);
559
- let numericArgs = argParts.map(arg => parseFloat(arg));
560
- let commandChar = current[1].toLowerCase();
561
- let uppercaseCommand = current[1] !== commandChar;
562
- // Convert commands that don't take points into commands that do.
563
- if (commandChar === 'v' || commandChar === 'h') {
564
- numericArgs = numericArgs.reduce((accumulator, current) => {
565
- if (commandChar === 'v') {
566
- return accumulator.concat(uppercaseCommand ? lastPos.x : 0, current);
567
- }
568
- else {
569
- return accumulator.concat(current, uppercaseCommand ? lastPos.y : 0);
570
- }
571
- }, []);
572
- commandChar = 'l';
573
- }
574
- else if (commandChar === 'z') {
575
- if (firstPos) {
576
- numericArgs = [firstPos.x, firstPos.y];
577
- firstPos = lastPos;
578
- }
579
- else {
580
- continue;
581
- }
582
- // 'z' always acts like an uppercase lineTo(startPos)
583
- uppercaseCommand = true;
584
- commandChar = 'l';
585
- }
586
- const commandArgCount = (_a = commandArgCounts[commandChar]) !== null && _a !== void 0 ? _a : 0;
587
- const allArgs = numericArgs.reduce((accumulator, current, index, parts) => {
588
- if (index % 2 !== 0) {
589
- const currentAsFloat = current;
590
- const prevAsFloat = parts[index - 1];
591
- return accumulator.concat(Vec2_1.Vec2.of(prevAsFloat, currentAsFloat));
592
- }
593
- else {
594
- return accumulator;
595
- }
596
- }, []).map((coordinate, index) => {
597
- // Lowercase commands are relative, uppercase commands use absolute
598
- // positioning
599
- let newPos;
600
- if (uppercaseCommand) {
601
- newPos = coordinate;
602
- }
603
- else {
604
- newPos = lastPos.plus(coordinate);
605
- }
606
- if ((index + 1) % commandArgCount === 0) {
607
- lastPos = newPos;
608
- }
609
- return newPos;
610
- });
611
- if (allArgs.length % commandArgCount !== 0) {
612
- throw new Error([
613
- `Incorrect number of arguments: got ${JSON.stringify(allArgs)} with a length of ${allArgs.length} ≠ ${commandArgCount}k, k ∈ ℤ.`,
614
- `The number of arguments to ${commandChar} must be a multiple of ${commandArgCount}!`,
615
- `Command: ${current[0]}`,
616
- ].join('\n'));
617
- }
618
- for (let argPos = 0; argPos < allArgs.length; argPos += commandArgCount) {
619
- const args = allArgs.slice(argPos, argPos + commandArgCount);
620
- switch (commandChar.toLowerCase()) {
621
- case 'm':
622
- if (argPos === 0) {
623
- moveTo(args[0]);
624
- }
625
- else {
626
- lineTo(args[0]);
627
- }
628
- break;
629
- case 'l':
630
- lineTo(args[0]);
631
- break;
632
- case 'c':
633
- cubicBezierTo(args[0], args[1], args[2]);
634
- break;
635
- case 'q':
636
- quadraticBeierTo(args[0], args[1]);
637
- break;
638
- default:
639
- throw new Error(`Unknown path command ${commandChar}`);
640
- }
641
- isFirstCommand = false;
642
- }
643
- if (allArgs.length > 0) {
644
- firstPos !== null && firstPos !== void 0 ? firstPos : (firstPos = allArgs[0]);
645
- startPos !== null && startPos !== void 0 ? startPos : (startPos = firstPos);
646
- lastPos = allArgs[allArgs.length - 1];
647
- }
648
- }
649
- const result = new Path(startPos !== null && startPos !== void 0 ? startPos : Vec2_1.Vec2.zero, commands);
650
- result.cachedStringVersion = pathString;
651
- return result;
652
- }
653
- }
654
- exports.default = Path;
655
- Path.empty = new Path(Vec2_1.Vec2.zero, []);