js-draw 0.17.4 → 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 (413) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/bundle.js +9 -1
  3. package/package.json +35 -33
  4. package/tsconfig.json +3 -2
  5. package/tsconfig.mjs.json +9 -0
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  8. package/.github/ISSUE_TEMPLATE/translation.yml +0 -902
  9. package/.github/pull_request_template.md +0 -15
  10. package/.github/workflows/firebase-hosting-merge.yml +0 -32
  11. package/.github/workflows/firebase-hosting-pull-request.yml +0 -32
  12. package/.github/workflows/github-pages.yml +0 -56
  13. package/.husky/pre-commit +0 -4
  14. package/build_tools/BundledFile.ts +0 -167
  15. package/build_tools/buildTranslationTemplate.ts +0 -121
  16. package/build_tools/bundle.ts +0 -11
  17. package/dist/build_tools/BundledFile.d.ts +0 -13
  18. package/dist/build_tools/BundledFile.js +0 -157
  19. package/dist/build_tools/buildTranslationTemplate.d.ts +0 -1
  20. package/dist/build_tools/buildTranslationTemplate.js +0 -94
  21. package/dist/build_tools/bundle.d.ts +0 -1
  22. package/dist/build_tools/bundle.js +0 -5
  23. package/dist/src/Color4.d.ts +0 -60
  24. package/dist/src/Color4.js +0 -192
  25. package/dist/src/Editor.d.ts +0 -308
  26. package/dist/src/Editor.js +0 -874
  27. package/dist/src/EditorImage.d.ts +0 -97
  28. package/dist/src/EditorImage.js +0 -477
  29. package/dist/src/EventDispatcher.d.ts +0 -30
  30. package/dist/src/EventDispatcher.js +0 -54
  31. package/dist/src/Pointer.d.ts +0 -24
  32. package/dist/src/Pointer.js +0 -80
  33. package/dist/src/SVGLoader.d.ts +0 -48
  34. package/dist/src/SVGLoader.js +0 -442
  35. package/dist/src/UndoRedoHistory.d.ts +0 -19
  36. package/dist/src/UndoRedoHistory.js +0 -91
  37. package/dist/src/Viewport.d.ts +0 -71
  38. package/dist/src/Viewport.js +0 -256
  39. package/dist/src/bundle/bundled.d.ts +0 -4
  40. package/dist/src/bundle/bundled.js +0 -5
  41. package/dist/src/commands/Command.d.ts +0 -16
  42. package/dist/src/commands/Command.js +0 -30
  43. package/dist/src/commands/Duplicate.d.ts +0 -14
  44. package/dist/src/commands/Duplicate.js +0 -33
  45. package/dist/src/commands/Erase.d.ts +0 -14
  46. package/dist/src/commands/Erase.js +0 -57
  47. package/dist/src/commands/SerializableCommand.d.ts +0 -12
  48. package/dist/src/commands/SerializableCommand.js +0 -36
  49. package/dist/src/commands/UnresolvedCommand.d.ts +0 -14
  50. package/dist/src/commands/UnresolvedCommand.js +0 -22
  51. package/dist/src/commands/invertCommand.d.ts +0 -4
  52. package/dist/src/commands/invertCommand.js +0 -44
  53. package/dist/src/commands/lib.d.ts +0 -7
  54. package/dist/src/commands/lib.js +0 -7
  55. package/dist/src/commands/localization.d.ts +0 -23
  56. package/dist/src/commands/localization.js +0 -21
  57. package/dist/src/commands/uniteCommands.d.ts +0 -4
  58. package/dist/src/commands/uniteCommands.js +0 -116
  59. package/dist/src/components/AbstractComponent.d.ts +0 -73
  60. package/dist/src/components/AbstractComponent.js +0 -252
  61. package/dist/src/components/ImageBackground.d.ts +0 -42
  62. package/dist/src/components/ImageBackground.js +0 -139
  63. package/dist/src/components/ImageComponent.d.ts +0 -31
  64. package/dist/src/components/ImageComponent.js +0 -146
  65. package/dist/src/components/RestylableComponent.d.ts +0 -24
  66. package/dist/src/components/RestylableComponent.js +0 -80
  67. package/dist/src/components/SVGGlobalAttributesObject.d.ts +0 -21
  68. package/dist/src/components/SVGGlobalAttributesObject.js +0 -59
  69. package/dist/src/components/Stroke.d.ts +0 -40
  70. package/dist/src/components/Stroke.js +0 -185
  71. package/dist/src/components/TextComponent.d.ts +0 -53
  72. package/dist/src/components/TextComponent.js +0 -252
  73. package/dist/src/components/UnknownSVGObject.d.ts +0 -18
  74. package/dist/src/components/UnknownSVGObject.js +0 -44
  75. package/dist/src/components/builders/ArrowBuilder.d.ts +0 -19
  76. package/dist/src/components/builders/ArrowBuilder.js +0 -86
  77. package/dist/src/components/builders/FreehandLineBuilder.d.ts +0 -33
  78. package/dist/src/components/builders/FreehandLineBuilder.js +0 -165
  79. package/dist/src/components/builders/LineBuilder.d.ts +0 -18
  80. package/dist/src/components/builders/LineBuilder.js +0 -58
  81. package/dist/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -36
  82. package/dist/src/components/builders/PressureSensitiveFreehandLineBuilder.js +0 -339
  83. package/dist/src/components/builders/RectangleBuilder.d.ts +0 -20
  84. package/dist/src/components/builders/RectangleBuilder.js +0 -50
  85. package/dist/src/components/builders/types.d.ts +0 -12
  86. package/dist/src/components/builders/types.js +0 -1
  87. package/dist/src/components/lib.d.ts +0 -12
  88. package/dist/src/components/lib.js +0 -12
  89. package/dist/src/components/localization.d.ts +0 -11
  90. package/dist/src/components/localization.js +0 -10
  91. package/dist/src/components/util/StrokeSmoother.d.ts +0 -35
  92. package/dist/src/components/util/StrokeSmoother.js +0 -210
  93. package/dist/src/components/util/describeComponentList.d.ts +0 -4
  94. package/dist/src/components/util/describeComponentList.js +0 -14
  95. package/dist/src/lib.d.ts +0 -34
  96. package/dist/src/lib.js +0 -34
  97. package/dist/src/localization.d.ts +0 -14
  98. package/dist/src/localization.js +0 -10
  99. package/dist/src/localizations/de.d.ts +0 -3
  100. package/dist/src/localizations/de.js +0 -4
  101. package/dist/src/localizations/en.d.ts +0 -3
  102. package/dist/src/localizations/en.js +0 -4
  103. package/dist/src/localizations/es.d.ts +0 -3
  104. package/dist/src/localizations/es.js +0 -18
  105. package/dist/src/localizations/getLocalizationTable.d.ts +0 -3
  106. package/dist/src/localizations/getLocalizationTable.js +0 -45
  107. package/dist/src/math/LineSegment2.d.ts +0 -24
  108. package/dist/src/math/LineSegment2.js +0 -125
  109. package/dist/src/math/Mat33.d.ts +0 -118
  110. package/dist/src/math/Mat33.js +0 -326
  111. package/dist/src/math/Path.d.ts +0 -71
  112. package/dist/src/math/Path.js +0 -648
  113. package/dist/src/math/Rect2.d.ts +0 -52
  114. package/dist/src/math/Rect2.js +0 -228
  115. package/dist/src/math/Triangle.d.ts +0 -11
  116. package/dist/src/math/Triangle.js +0 -19
  117. package/dist/src/math/Vec2.d.ts +0 -13
  118. package/dist/src/math/Vec2.js +0 -13
  119. package/dist/src/math/Vec3.d.ts +0 -106
  120. package/dist/src/math/Vec3.js +0 -174
  121. package/dist/src/math/lib.d.ts +0 -7
  122. package/dist/src/math/lib.js +0 -7
  123. package/dist/src/math/rounding.d.ts +0 -4
  124. package/dist/src/math/rounding.js +0 -128
  125. package/dist/src/rendering/Display.d.ts +0 -75
  126. package/dist/src/rendering/Display.js +0 -207
  127. package/dist/src/rendering/RenderingStyle.d.ts +0 -31
  128. package/dist/src/rendering/RenderingStyle.js +0 -38
  129. package/dist/src/rendering/TextRenderingStyle.d.ts +0 -36
  130. package/dist/src/rendering/TextRenderingStyle.js +0 -23
  131. package/dist/src/rendering/caching/CacheRecord.d.ts +0 -20
  132. package/dist/src/rendering/caching/CacheRecord.js +0 -55
  133. package/dist/src/rendering/caching/CacheRecordManager.d.ts +0 -12
  134. package/dist/src/rendering/caching/CacheRecordManager.js +0 -43
  135. package/dist/src/rendering/caching/RenderingCache.d.ts +0 -11
  136. package/dist/src/rendering/caching/RenderingCache.js +0 -45
  137. package/dist/src/rendering/caching/RenderingCacheNode.d.ts +0 -29
  138. package/dist/src/rendering/caching/RenderingCacheNode.js +0 -320
  139. package/dist/src/rendering/caching/testUtils.d.ts +0 -9
  140. package/dist/src/rendering/caching/testUtils.js +0 -20
  141. package/dist/src/rendering/caching/types.d.ts +0 -19
  142. package/dist/src/rendering/caching/types.js +0 -1
  143. package/dist/src/rendering/lib.d.ts +0 -5
  144. package/dist/src/rendering/lib.js +0 -5
  145. package/dist/src/rendering/localization.d.ts +0 -10
  146. package/dist/src/rendering/localization.js +0 -9
  147. package/dist/src/rendering/renderers/AbstractRenderer.d.ts +0 -68
  148. package/dist/src/rendering/renderers/AbstractRenderer.js +0 -144
  149. package/dist/src/rendering/renderers/CanvasRenderer.d.ts +0 -63
  150. package/dist/src/rendering/renderers/CanvasRenderer.js +0 -230
  151. package/dist/src/rendering/renderers/DummyRenderer.d.ts +0 -35
  152. package/dist/src/rendering/renderers/DummyRenderer.js +0 -106
  153. package/dist/src/rendering/renderers/SVGRenderer.d.ts +0 -57
  154. package/dist/src/rendering/renderers/SVGRenderer.js +0 -304
  155. package/dist/src/rendering/renderers/TextOnlyRenderer.d.ts +0 -29
  156. package/dist/src/rendering/renderers/TextOnlyRenderer.js +0 -57
  157. package/dist/src/testing/beforeEachFile.d.ts +0 -1
  158. package/dist/src/testing/beforeEachFile.js +0 -7
  159. package/dist/src/testing/createEditor.d.ts +0 -4
  160. package/dist/src/testing/createEditor.js +0 -9
  161. package/dist/src/testing/lib.d.ts +0 -2
  162. package/dist/src/testing/lib.js +0 -2
  163. package/dist/src/testing/loadExpectExtensions.d.ts +0 -2
  164. package/dist/src/testing/loadExpectExtensions.js +0 -24
  165. package/dist/src/testing/sendPenEvent.d.ts +0 -12
  166. package/dist/src/testing/sendPenEvent.js +0 -19
  167. package/dist/src/testing/sendTouchEvent.d.ts +0 -42
  168. package/dist/src/testing/sendTouchEvent.js +0 -62
  169. package/dist/src/toolbar/HTMLToolbar.d.ts +0 -103
  170. package/dist/src/toolbar/HTMLToolbar.js +0 -376
  171. package/dist/src/toolbar/IconProvider.d.ts +0 -62
  172. package/dist/src/toolbar/IconProvider.js +0 -654
  173. package/dist/src/toolbar/lib.d.ts +0 -3
  174. package/dist/src/toolbar/lib.js +0 -3
  175. package/dist/src/toolbar/localization.d.ts +0 -49
  176. package/dist/src/toolbar/localization.js +0 -48
  177. package/dist/src/toolbar/makeColorInput.d.ts +0 -6
  178. package/dist/src/toolbar/makeColorInput.js +0 -113
  179. package/dist/src/toolbar/types.d.ts +0 -4
  180. package/dist/src/toolbar/types.js +0 -1
  181. package/dist/src/toolbar/widgets/ActionButtonWidget.d.ts +0 -15
  182. package/dist/src/toolbar/widgets/ActionButtonWidget.js +0 -25
  183. package/dist/src/toolbar/widgets/BaseToolWidget.d.ts +0 -11
  184. package/dist/src/toolbar/widgets/BaseToolWidget.js +0 -44
  185. package/dist/src/toolbar/widgets/BaseWidget.d.ts +0 -72
  186. package/dist/src/toolbar/widgets/BaseWidget.js +0 -307
  187. package/dist/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -18
  188. package/dist/src/toolbar/widgets/DocumentPropertiesWidget.js +0 -120
  189. package/dist/src/toolbar/widgets/EraserToolWidget.d.ts +0 -17
  190. package/dist/src/toolbar/widgets/EraserToolWidget.js +0 -57
  191. package/dist/src/toolbar/widgets/HandToolWidget.d.ts +0 -17
  192. package/dist/src/toolbar/widgets/HandToolWidget.js +0 -172
  193. package/dist/src/toolbar/widgets/InsertImageWidget.d.ts +0 -19
  194. package/dist/src/toolbar/widgets/InsertImageWidget.js +0 -170
  195. package/dist/src/toolbar/widgets/OverflowWidget.d.ts +0 -25
  196. package/dist/src/toolbar/widgets/OverflowWidget.js +0 -71
  197. package/dist/src/toolbar/widgets/PenToolWidget.d.ts +0 -27
  198. package/dist/src/toolbar/widgets/PenToolWidget.js +0 -220
  199. package/dist/src/toolbar/widgets/SelectionToolWidget.d.ts +0 -13
  200. package/dist/src/toolbar/widgets/SelectionToolWidget.js +0 -147
  201. package/dist/src/toolbar/widgets/TextToolWidget.d.ts +0 -16
  202. package/dist/src/toolbar/widgets/TextToolWidget.js +0 -109
  203. package/dist/src/toolbar/widgets/lib.d.ts +0 -10
  204. package/dist/src/toolbar/widgets/lib.js +0 -10
  205. package/dist/src/tools/BaseTool.d.ts +0 -22
  206. package/dist/src/tools/BaseTool.js +0 -63
  207. package/dist/src/tools/Eraser.d.ts +0 -23
  208. package/dist/src/tools/Eraser.js +0 -106
  209. package/dist/src/tools/FindTool.d.ts +0 -21
  210. package/dist/src/tools/FindTool.js +0 -114
  211. package/dist/src/tools/PanZoom.d.ts +0 -52
  212. package/dist/src/tools/PanZoom.js +0 -414
  213. package/dist/src/tools/PasteHandler.d.ts +0 -23
  214. package/dist/src/tools/PasteHandler.js +0 -93
  215. package/dist/src/tools/Pen.d.ts +0 -39
  216. package/dist/src/tools/Pen.js +0 -173
  217. package/dist/src/tools/PipetteTool.d.ts +0 -18
  218. package/dist/src/tools/PipetteTool.js +0 -39
  219. package/dist/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -8
  220. package/dist/src/tools/SelectionTool/SelectAllShortcutHandler.js +0 -22
  221. package/dist/src/tools/SelectionTool/Selection.d.ts +0 -64
  222. package/dist/src/tools/SelectionTool/Selection.js +0 -459
  223. package/dist/src/tools/SelectionTool/SelectionHandle.d.ts +0 -38
  224. package/dist/src/tools/SelectionTool/SelectionHandle.js +0 -81
  225. package/dist/src/tools/SelectionTool/SelectionTool.d.ts +0 -36
  226. package/dist/src/tools/SelectionTool/SelectionTool.js +0 -398
  227. package/dist/src/tools/SelectionTool/TransformMode.d.ts +0 -34
  228. package/dist/src/tools/SelectionTool/TransformMode.js +0 -98
  229. package/dist/src/tools/SelectionTool/types.d.ts +0 -9
  230. package/dist/src/tools/SelectionTool/types.js +0 -11
  231. package/dist/src/tools/TextTool.d.ts +0 -33
  232. package/dist/src/tools/TextTool.js +0 -256
  233. package/dist/src/tools/ToolController.d.ts +0 -18
  234. package/dist/src/tools/ToolController.js +0 -158
  235. package/dist/src/tools/ToolEnabledGroup.d.ts +0 -6
  236. package/dist/src/tools/ToolEnabledGroup.js +0 -11
  237. package/dist/src/tools/ToolSwitcherShortcut.d.ts +0 -16
  238. package/dist/src/tools/ToolSwitcherShortcut.js +0 -32
  239. package/dist/src/tools/ToolbarShortcutHandler.d.ts +0 -12
  240. package/dist/src/tools/ToolbarShortcutHandler.js +0 -23
  241. package/dist/src/tools/UndoRedoShortcut.d.ts +0 -8
  242. package/dist/src/tools/UndoRedoShortcut.js +0 -22
  243. package/dist/src/tools/lib.d.ts +0 -16
  244. package/dist/src/tools/lib.js +0 -16
  245. package/dist/src/tools/localization.d.ts +0 -28
  246. package/dist/src/tools/localization.js +0 -27
  247. package/dist/src/types.d.ts +0 -151
  248. package/dist/src/types.js +0 -35
  249. package/dist/src/util/assertions.d.ts +0 -23
  250. package/dist/src/util/assertions.js +0 -45
  251. package/dist/src/util/fileToBase64.d.ts +0 -3
  252. package/dist/src/util/fileToBase64.js +0 -13
  253. package/dist/src/util/untilNextAnimationFrame.d.ts +0 -3
  254. package/dist/src/util/untilNextAnimationFrame.js +0 -7
  255. package/dist/src/util/waitForTimeout.d.ts +0 -2
  256. package/dist/src/util/waitForTimeout.js +0 -7
  257. package/src/Color4.test.ts +0 -40
  258. package/src/Color4.ts +0 -234
  259. package/src/Editor.css +0 -86
  260. package/src/Editor.loadFrom.test.ts +0 -24
  261. package/src/Editor.toSVG.test.ts +0 -111
  262. package/src/Editor.ts +0 -1122
  263. package/src/EditorImage.test.ts +0 -120
  264. package/src/EditorImage.ts +0 -603
  265. package/src/EventDispatcher.test.ts +0 -123
  266. package/src/EventDispatcher.ts +0 -71
  267. package/src/Pointer.ts +0 -127
  268. package/src/SVGLoader.test.ts +0 -114
  269. package/src/SVGLoader.ts +0 -511
  270. package/src/UndoRedoHistory.test.ts +0 -33
  271. package/src/UndoRedoHistory.ts +0 -102
  272. package/src/Viewport.ts +0 -319
  273. package/src/bundle/bundled.ts +0 -7
  274. package/src/commands/Command.ts +0 -45
  275. package/src/commands/Duplicate.ts +0 -48
  276. package/src/commands/Erase.ts +0 -74
  277. package/src/commands/SerializableCommand.ts +0 -49
  278. package/src/commands/UnresolvedCommand.ts +0 -37
  279. package/src/commands/invertCommand.ts +0 -51
  280. package/src/commands/lib.ts +0 -16
  281. package/src/commands/localization.ts +0 -47
  282. package/src/commands/uniteCommands.test.ts +0 -23
  283. package/src/commands/uniteCommands.ts +0 -135
  284. package/src/components/AbstractComponent.transformBy.test.ts +0 -22
  285. package/src/components/AbstractComponent.ts +0 -364
  286. package/src/components/ImageBackground.test.ts +0 -35
  287. package/src/components/ImageBackground.ts +0 -176
  288. package/src/components/ImageComponent.ts +0 -171
  289. package/src/components/RestylableComponent.ts +0 -142
  290. package/src/components/SVGGlobalAttributesObject.ts +0 -81
  291. package/src/components/Stroke.test.ts +0 -139
  292. package/src/components/Stroke.ts +0 -245
  293. package/src/components/TextComponent.test.ts +0 -99
  294. package/src/components/TextComponent.ts +0 -315
  295. package/src/components/UnknownSVGObject.test.ts +0 -10
  296. package/src/components/UnknownSVGObject.ts +0 -60
  297. package/src/components/builders/ArrowBuilder.ts +0 -107
  298. package/src/components/builders/FreehandLineBuilder.ts +0 -212
  299. package/src/components/builders/LineBuilder.ts +0 -77
  300. package/src/components/builders/PressureSensitiveFreehandLineBuilder.ts +0 -454
  301. package/src/components/builders/RectangleBuilder.ts +0 -74
  302. package/src/components/builders/types.ts +0 -15
  303. package/src/components/lib.ts +0 -25
  304. package/src/components/localization.ts +0 -22
  305. package/src/components/util/StrokeSmoother.ts +0 -293
  306. package/src/components/util/describeComponentList.ts +0 -18
  307. package/src/lib.ts +0 -37
  308. package/src/localization.ts +0 -34
  309. package/src/localizations/de.ts +0 -98
  310. package/src/localizations/en.ts +0 -8
  311. package/src/localizations/es.ts +0 -74
  312. package/src/localizations/getLocalizationTable.test.ts +0 -27
  313. package/src/localizations/getLocalizationTable.ts +0 -55
  314. package/src/math/LineSegment2.test.ts +0 -99
  315. package/src/math/LineSegment2.ts +0 -160
  316. package/src/math/Mat33.test.ts +0 -244
  317. package/src/math/Mat33.ts +0 -437
  318. package/src/math/Path.fromString.test.ts +0 -223
  319. package/src/math/Path.test.ts +0 -198
  320. package/src/math/Path.toString.test.ts +0 -77
  321. package/src/math/Path.ts +0 -790
  322. package/src/math/Rect2.test.ts +0 -204
  323. package/src/math/Rect2.ts +0 -315
  324. package/src/math/Triangle.ts +0 -29
  325. package/src/math/Vec2.test.ts +0 -30
  326. package/src/math/Vec2.ts +0 -18
  327. package/src/math/Vec3.test.ts +0 -44
  328. package/src/math/Vec3.ts +0 -218
  329. package/src/math/lib.ts +0 -15
  330. package/src/math/rounding.test.ts +0 -65
  331. package/src/math/rounding.ts +0 -156
  332. package/src/rendering/Display.ts +0 -249
  333. package/src/rendering/RenderingStyle.test.ts +0 -68
  334. package/src/rendering/RenderingStyle.ts +0 -55
  335. package/src/rendering/TextRenderingStyle.ts +0 -45
  336. package/src/rendering/caching/CacheRecord.test.ts +0 -49
  337. package/src/rendering/caching/CacheRecord.ts +0 -77
  338. package/src/rendering/caching/CacheRecordManager.ts +0 -71
  339. package/src/rendering/caching/RenderingCache.test.ts +0 -44
  340. package/src/rendering/caching/RenderingCache.ts +0 -66
  341. package/src/rendering/caching/RenderingCacheNode.ts +0 -405
  342. package/src/rendering/caching/testUtils.ts +0 -35
  343. package/src/rendering/caching/types.ts +0 -34
  344. package/src/rendering/lib.ts +0 -6
  345. package/src/rendering/localization.ts +0 -20
  346. package/src/rendering/renderers/AbstractRenderer.ts +0 -222
  347. package/src/rendering/renderers/CanvasRenderer.ts +0 -296
  348. package/src/rendering/renderers/DummyRenderer.test.ts +0 -42
  349. package/src/rendering/renderers/DummyRenderer.ts +0 -136
  350. package/src/rendering/renderers/SVGRenderer.ts +0 -354
  351. package/src/rendering/renderers/TextOnlyRenderer.ts +0 -70
  352. package/src/styles.js +0 -7
  353. package/src/testing/beforeEachFile.ts +0 -8
  354. package/src/testing/createEditor.ts +0 -11
  355. package/src/testing/global.d.ts +0 -17
  356. package/src/testing/lib.ts +0 -3
  357. package/src/testing/loadExpectExtensions.ts +0 -25
  358. package/src/testing/sendPenEvent.ts +0 -31
  359. package/src/testing/sendTouchEvent.ts +0 -78
  360. package/src/toolbar/HTMLToolbar.ts +0 -492
  361. package/src/toolbar/IconProvider.ts +0 -736
  362. package/src/toolbar/lib.ts +0 -4
  363. package/src/toolbar/localization.ts +0 -106
  364. package/src/toolbar/makeColorInput.ts +0 -145
  365. package/src/toolbar/toolbar.css +0 -213
  366. package/src/toolbar/types.ts +0 -5
  367. package/src/toolbar/widgets/ActionButtonWidget.ts +0 -39
  368. package/src/toolbar/widgets/BaseToolWidget.ts +0 -56
  369. package/src/toolbar/widgets/BaseWidget.ts +0 -377
  370. package/src/toolbar/widgets/DocumentPropertiesWidget.ts +0 -167
  371. package/src/toolbar/widgets/EraserToolWidget.ts +0 -85
  372. package/src/toolbar/widgets/HandToolWidget.ts +0 -250
  373. package/src/toolbar/widgets/InsertImageWidget.css +0 -44
  374. package/src/toolbar/widgets/InsertImageWidget.ts +0 -223
  375. package/src/toolbar/widgets/OverflowWidget.css +0 -27
  376. package/src/toolbar/widgets/OverflowWidget.ts +0 -92
  377. package/src/toolbar/widgets/PenToolWidget.ts +0 -288
  378. package/src/toolbar/widgets/SelectionToolWidget.ts +0 -190
  379. package/src/toolbar/widgets/TextToolWidget.ts +0 -145
  380. package/src/toolbar/widgets/lib.ts +0 -13
  381. package/src/tools/BaseTool.ts +0 -76
  382. package/src/tools/Eraser.test.ts +0 -103
  383. package/src/tools/Eraser.ts +0 -139
  384. package/src/tools/FindTool.css +0 -7
  385. package/src/tools/FindTool.ts +0 -152
  386. package/src/tools/PanZoom.test.ts +0 -310
  387. package/src/tools/PanZoom.ts +0 -520
  388. package/src/tools/PasteHandler.ts +0 -95
  389. package/src/tools/Pen.test.ts +0 -194
  390. package/src/tools/Pen.ts +0 -226
  391. package/src/tools/PipetteTool.ts +0 -55
  392. package/src/tools/SelectionTool/SelectAllShortcutHandler.ts +0 -28
  393. package/src/tools/SelectionTool/Selection.ts +0 -607
  394. package/src/tools/SelectionTool/SelectionHandle.ts +0 -108
  395. package/src/tools/SelectionTool/SelectionTool.css +0 -23
  396. package/src/tools/SelectionTool/SelectionTool.test.ts +0 -261
  397. package/src/tools/SelectionTool/SelectionTool.ts +0 -480
  398. package/src/tools/SelectionTool/TransformMode.ts +0 -114
  399. package/src/tools/SelectionTool/types.ts +0 -11
  400. package/src/tools/TextTool.ts +0 -326
  401. package/src/tools/ToolController.ts +0 -178
  402. package/src/tools/ToolEnabledGroup.ts +0 -14
  403. package/src/tools/ToolSwitcherShortcut.ts +0 -39
  404. package/src/tools/ToolbarShortcutHandler.ts +0 -34
  405. package/src/tools/UndoRedoShortcut.test.ts +0 -56
  406. package/src/tools/UndoRedoShortcut.ts +0 -25
  407. package/src/tools/lib.ts +0 -21
  408. package/src/tools/localization.ts +0 -66
  409. package/src/types.ts +0 -234
  410. package/src/util/assertions.ts +0 -55
  411. package/src/util/fileToBase64.ts +0 -18
  412. package/src/util/untilNextAnimationFrame.ts +0 -9
  413. package/src/util/waitForTimeout.ts +0 -9
@@ -1,15 +0,0 @@
1
- # Summary
2
- <!-- A description of the changes made by this PR. -->
3
-
4
- # Testing <!-- (if applicable) -->
5
- <!--
6
- Describe what changes have automated tests and what changes don't. If changes lack automated tests, please describe how it can be verified that changes made by this pull request work as expected.
7
- -->
8
-
9
- # Screenshots/other information
10
- <!--
11
- If applicable, please include screenshots/screen recordings/other information that may help contributors review this pull request.
12
- -->
13
-
14
-
15
- Resolves #[issue number here].
@@ -1,32 +0,0 @@
1
- # This file was auto-generated by the Firebase CLI
2
- # https://github.com/firebase/firebase-tools
3
-
4
- name: Deploy to Firebase Hosting on merge
5
- 'on':
6
- push:
7
- branches:
8
- - 'main'
9
-
10
- # See https://github.com/FirebaseExtended/action-hosting-deploy/issues/198
11
- permissions:
12
- contents: read
13
-
14
- jobs:
15
- build_and_deploy:
16
- runs-on: ubuntu-latest
17
- steps:
18
- - uses: actions/checkout@v3
19
- - name: Install dependencies
20
- run: yarn install
21
- - name: Run tests
22
- run: yarn test
23
- - name: Lint
24
- run: yarn lint-ci
25
- - name: Build
26
- run: cd docs/example && yarn install && yarn build
27
- - uses: FirebaseExtended/action-hosting-deploy@v0
28
- with:
29
- repoToken: '${{ secrets.GITHUB_TOKEN }}'
30
- firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_JS_DRAW }}'
31
- channelId: live
32
- projectId: js-draw
@@ -1,32 +0,0 @@
1
- # This file was auto-generated by the Firebase CLI
2
- # https://github.com/firebase/firebase-tools
3
-
4
- name: Deploy to Firebase Hosting on PR
5
- 'on': pull_request
6
-
7
- # See https://github.com/FirebaseExtended/action-hosting-deploy/issues/198
8
- # and https://github.com/FirebaseExtended/action-hosting-deploy/issues/108#issuecomment-1036024111
9
- permissions:
10
- contents: read
11
- pull-requests: write
12
- checks: write
13
-
14
- jobs:
15
- build_and_preview:
16
- if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}'
17
- runs-on: ubuntu-latest
18
- steps:
19
- - uses: actions/checkout@v3
20
- - name: Install dependencies
21
- run: yarn install
22
- - name: Run tests
23
- run: yarn test
24
- - name: Lint
25
- run: yarn lint-ci
26
- - name: Build
27
- run: cd docs/example && yarn install && yarn build
28
- - uses: FirebaseExtended/action-hosting-deploy@v0
29
- with:
30
- repoToken: '${{ secrets.GITHUB_TOKEN }}'
31
- firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_JS_DRAW }}'
32
- projectId: js-draw
@@ -1,56 +0,0 @@
1
- # Created on GitHub
2
-
3
- # Simple workflow for deploying static content to GitHub Pages
4
- name: Deploy static content to Pages
5
-
6
- on:
7
- # Runs on pushes targeting the default branch
8
- push:
9
- branches: ["main"]
10
-
11
- # Allows you to run this workflow manually from the Actions tab
12
- workflow_dispatch:
13
-
14
- # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
15
- permissions:
16
- contents: read
17
- pages: write
18
- id-token: write
19
-
20
- # Allow one concurrent deployment
21
- concurrency:
22
- group: "pages"
23
- cancel-in-progress: true
24
-
25
- jobs:
26
- # Single deploy job since we're just deploying
27
- deploy:
28
- environment:
29
- name: github-pages
30
- url: ${{ steps.deployment.outputs.page_url }}
31
- runs-on: ubuntu-latest
32
- steps:
33
- - name: Checkout
34
- uses: actions/checkout@v3
35
- - name: Install dependencies
36
- run: yarn install
37
- - name: Run tests
38
- run: yarn test
39
- - name: Lint
40
- run: yarn lint-ci
41
- - name: Build documentation
42
- run: yarn doc
43
- - name: Build
44
- run: cd docs/example && yarn install && yarn build
45
- - name: Remove flies that don't need to be uploaded
46
- run: cd docs/ && rm -rf example*/node_modules/
47
- - name: Setup Pages
48
- uses: actions/configure-pages@v2
49
- - name: Upload artifact
50
- uses: actions/upload-pages-artifact@v1
51
- with:
52
- # Upload just the docs folder
53
- path: './docs/'
54
- - name: Deploy to GitHub Pages
55
- id: deployment
56
- uses: actions/deploy-pages@v1
package/.husky/pre-commit DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env sh
2
- . "$(dirname -- "$0")/_/husky.sh"
3
-
4
- yarn lint-staged
@@ -1,167 +0,0 @@
1
- // This file is taken from Joplin: https://github.com/laurent22/joplin
2
- // js-draw was originally created as a part of a pull request for joplin. This
3
- // is part of the functionality from Joplin it requires.
4
-
5
- import { dirname, extname, basename } from 'path';
6
- import TerserPlugin from 'terser-webpack-plugin';
7
-
8
- import webpack from 'webpack';
9
-
10
- export default class BundledFile {
11
- private readonly bundleBaseName: string;
12
- private readonly rootFileDirectory: string;
13
- private readonly outputDirectory: string;
14
- private readonly outputFilename: string;
15
-
16
- public constructor(
17
- public readonly bundleName: string,
18
- private readonly sourceFilePath: string,
19
- outputFilepath?: string,
20
- ) {
21
- this.rootFileDirectory = dirname(sourceFilePath);
22
- this.bundleBaseName = basename(sourceFilePath, extname(sourceFilePath));
23
-
24
- if (outputFilepath) {
25
- this.outputDirectory = dirname(outputFilepath);
26
- this.outputFilename = basename(outputFilepath);
27
- } else {
28
- this.outputDirectory = this.rootFileDirectory;
29
- this.outputFilename = `${this.bundleBaseName}.bundle.js`;
30
- }
31
- }
32
-
33
- private getWebpackOptions(mode: 'production' | 'development'): webpack.Configuration {
34
- const config: webpack.Configuration = {
35
- mode,
36
- entry: this.sourceFilePath,
37
- output: {
38
- path: this.outputDirectory,
39
- filename: this.outputFilename,
40
-
41
- library: {
42
- type: 'window',
43
- name: this.bundleName,
44
- },
45
- },
46
- // See https://webpack.js.org/guides/typescript/
47
- module: {
48
- rules: [
49
- {
50
- // Include .tsx to include react components
51
- test: /\.tsx?$/i,
52
- use: 'ts-loader',
53
- exclude: /node_modules/,
54
- },
55
- {
56
- test: /\.css$/i,
57
- use: ['style-loader', 'css-loader'],
58
- },
59
- ],
60
- },
61
- optimization: {
62
- minimizer: [
63
- // Don't create separate files for comments.
64
- // See https://stackoverflow.com/a/65650316/17055750
65
- new TerserPlugin({
66
- extractComments: false,
67
- }),
68
- ],
69
- },
70
- // Increase the minimum size required
71
- // to trigger warnings.
72
- // See https://stackoverflow.com/a/53517149/17055750
73
- performance: {
74
- maxAssetSize: 2_000_000, // 2-ish MiB
75
- maxEntrypointSize: 2_000_000,
76
- },
77
- resolve: {
78
- extensions: ['.tsx', '.ts', '.js'],
79
- },
80
- };
81
-
82
- return config;
83
- }
84
-
85
- private handleErrors(err: Error | undefined | null, stats: webpack.Stats | undefined): boolean {
86
- let failed = false;
87
-
88
- if (err) {
89
- console.error(`Error: ${err.name}`, err.message, err.stack);
90
- failed = true;
91
- } else if (stats?.hasErrors() || stats?.hasWarnings()) {
92
- const data = stats.toJson();
93
-
94
- if (data.warnings && data.warningsCount) {
95
- console.warn('Warnings: ', data.warningsCount);
96
- for (const warning of data.warnings) {
97
- // Stack contains the message
98
- if (warning.stack) {
99
- console.warn(warning.stack);
100
- } else {
101
- console.warn(warning.message);
102
- }
103
- }
104
- }
105
- if (data.errors && data.errorsCount) {
106
- console.error('Errors: ', data.errorsCount);
107
- for (const error of data.errors) {
108
- if (error.stack) {
109
- console.error(error.stack);
110
- } else {
111
- console.error(error.message);
112
- }
113
- console.error();
114
- }
115
-
116
- failed = true;
117
- }
118
- }
119
-
120
- return failed;
121
- }
122
-
123
- // Create a minified JS file in the same directory as `this.sourceFilePath` with
124
- // the same name.
125
- public build() {
126
- const compiler = webpack(this.getWebpackOptions('production'));
127
- return new Promise<void>((resolve, reject) => {
128
- console.info(`Building bundle: ${this.bundleName}...`);
129
-
130
- compiler.run((err, stats) => {
131
- let failed = this.handleErrors(err, stats);
132
-
133
- // Clean up.
134
- compiler.close(async (error) => {
135
- if (error) {
136
- console.error('Error cleaning up:', error);
137
- failed = true;
138
- }
139
- if (!failed) {
140
- console.log('☑ Done building! ☑');
141
- resolve();
142
- } else {
143
- reject();
144
- }
145
- });
146
- });
147
- });
148
- }
149
-
150
- public startWatching() {
151
- const compiler = webpack(this.getWebpackOptions('development'));
152
- const watchOptions = {
153
- ignored: [
154
- '**/node_modules',
155
- '**/dist',
156
- ],
157
- };
158
-
159
- console.info('Watching bundle: ', this.bundleName);
160
- compiler.watch(watchOptions, async (err, stats) => {
161
- const failed = this.handleErrors(err, stats);
162
- if (!failed) {
163
- console.log('☑ Built! ☑');
164
- }
165
- });
166
- }
167
- }
@@ -1,121 +0,0 @@
1
-
2
- import * as fs from 'fs';
3
- import * as path from 'path';
4
-
5
- import { defaultEditorLocalization } from '../src/localization';
6
-
7
- // Adds markdown formatting to format text like code.
8
- const codeFormat = (text: string) => {
9
- let maxConsecutiveBackticks = 0;
10
-
11
- // Find the longest number of consecutive backticks — we need to have more
12
- // than that for the delimiters.
13
- const backtickRuns = text.matchAll(/[`]+/g);
14
- for (const backticks of backtickRuns) {
15
- if (backticks.length > maxConsecutiveBackticks) {
16
- maxConsecutiveBackticks = backticks.length;
17
- }
18
- }
19
-
20
- let codeStartEnd = '';
21
- for (let i = 0; i < maxConsecutiveBackticks + 1; i++) {
22
- codeStartEnd += '`';
23
- }
24
-
25
- // If the text already starts with a `, add a space to prevent the
26
- // markdown parser from treating it as part of the delimiter.
27
- if (text.startsWith('`')) {
28
- text = ' ' + text;
29
- }
30
-
31
- if (text.endsWith('`')) {
32
- text = text + ' ';
33
- }
34
-
35
- return `${codeStartEnd}${text}${codeStartEnd}`;
36
- };
37
-
38
- const collapseSpaces = (text: string) => text.replace(/\s+/g, ' ');
39
-
40
- const generateTranslationTemplate = () => {
41
- const bodyContentLines: string[] = [];
42
-
43
- const addInput = (
44
- type: string, id: string, attrs: Record<string, string>, required: boolean = false
45
- ) => {
46
- const lines: string[] = [];
47
- lines.push(` - type: ${type}`);
48
- lines.push(` id: ${id}`);
49
- lines.push(' attributes:');
50
-
51
- for (const key in attrs) {
52
- const value = `${attrs[key]}`;
53
-
54
- const escapedValue = value.replace(/[\\]/g, '\\\\').replace(/"/g, '\\"');
55
- lines.push(` ${key}: "${escapedValue}"`);
56
- }
57
-
58
- lines.push(' validations:');
59
- lines.push(` required: ${required}`);
60
-
61
- bodyContentLines.push(...lines);
62
- };
63
-
64
- const addLabel = (text: string) => {
65
- bodyContentLines.push(' - type: markdown');
66
- bodyContentLines.push(' attributes:');
67
- bodyContentLines.push(' value: |');
68
- bodyContentLines.push(' ' + text);
69
- };
70
-
71
- addLabel(collapseSpaces(`
72
- Thank you for taking the time to translate \`js-draw\`! If you don't have time to translate
73
- all of the strings below, feel free to submit an incomplete translation and edit it later.
74
- Use this template to update an existing translation or to create a new translation.
75
- `));
76
-
77
- addLabel(collapseSpaces(`
78
- (Optional) If you would like to submit a pull request that applies this translation,
79
- note that existing translations are present in
80
- [src/localizations/](https://github.com/personalizedrefrigerator/js-draw/tree/main/src/localizations).
81
- `));
82
-
83
- addInput('input', 'language-name', {
84
- label: 'Language',
85
- description: 'The name of the language to translate to in English (e.g. Spanish)',
86
- }, true);
87
-
88
- for (const key in defaultEditorLocalization) {
89
- const englishTranslation = `${(defaultEditorLocalization as any)[key]}`;
90
- addInput('input', `translation-${key}`, {
91
- label: `${key}`,
92
- description: `Translate ${codeFormat(englishTranslation)}.`,
93
- placeholder: englishTranslation,
94
- });
95
- }
96
-
97
- addInput('textarea', 'additional-comments', {
98
- label: 'Additional information',
99
- placeholder: 'Any additional information/comments on the translation can go here.',
100
- });
101
-
102
- return `name: Translation
103
- # This template is auto-generated by build_tools/buildTranslationTemplate.ts
104
- # Do not modify it directly.
105
- description: Translate the editor to a new language!
106
- title: "[Translation]: <language>"
107
- labels: [localization]
108
- assignees: []
109
- body:
110
- ${bodyContentLines.join('\n')}`;
111
- };
112
-
113
- const template = generateTranslationTemplate();
114
-
115
- // According to https://stackoverflow.com/a/13650454, fs should
116
- // be able to handle forward and back slashes (both) on Windows (so extra
117
- // path logic shouldn't be needed here.)
118
- const rootDir = path.dirname(__dirname);
119
- const translationTempaltePath = path.join(rootDir, '.github/ISSUE_TEMPLATE/translation.yml');
120
-
121
- fs.writeFileSync(translationTempaltePath, template);
@@ -1,11 +0,0 @@
1
- import { dirname } from 'path';
2
- import BundledFile from './BundledFile';
3
-
4
- const rootDir = dirname(__dirname);
5
- const mainBundle = new BundledFile(
6
- 'jsdraw',
7
- `${rootDir}/src/bundle/bundled.ts`,
8
- `${rootDir}/dist/bundle.js`,
9
- );
10
-
11
- void mainBundle.build();
@@ -1,13 +0,0 @@
1
- export default class BundledFile {
2
- readonly bundleName: string;
3
- private readonly sourceFilePath;
4
- private readonly bundleBaseName;
5
- private readonly rootFileDirectory;
6
- private readonly outputDirectory;
7
- private readonly outputFilename;
8
- constructor(bundleName: string, sourceFilePath: string, outputFilepath?: string);
9
- private getWebpackOptions;
10
- private handleErrors;
11
- build(): Promise<void>;
12
- startWatching(): void;
13
- }
@@ -1,157 +0,0 @@
1
- // This file is taken from Joplin: https://github.com/laurent22/joplin
2
- // js-draw was originally created as a part of a pull request for joplin. This
3
- // is part of the functionality from Joplin it requires.
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- import { dirname, extname, basename } from 'path';
14
- import TerserPlugin from 'terser-webpack-plugin';
15
- import webpack from 'webpack';
16
- export default class BundledFile {
17
- constructor(bundleName, sourceFilePath, outputFilepath) {
18
- this.bundleName = bundleName;
19
- this.sourceFilePath = sourceFilePath;
20
- this.rootFileDirectory = dirname(sourceFilePath);
21
- this.bundleBaseName = basename(sourceFilePath, extname(sourceFilePath));
22
- if (outputFilepath) {
23
- this.outputDirectory = dirname(outputFilepath);
24
- this.outputFilename = basename(outputFilepath);
25
- }
26
- else {
27
- this.outputDirectory = this.rootFileDirectory;
28
- this.outputFilename = `${this.bundleBaseName}.bundle.js`;
29
- }
30
- }
31
- getWebpackOptions(mode) {
32
- const config = {
33
- mode,
34
- entry: this.sourceFilePath,
35
- output: {
36
- path: this.outputDirectory,
37
- filename: this.outputFilename,
38
- library: {
39
- type: 'window',
40
- name: this.bundleName,
41
- },
42
- },
43
- // See https://webpack.js.org/guides/typescript/
44
- module: {
45
- rules: [
46
- {
47
- // Include .tsx to include react components
48
- test: /\.tsx?$/i,
49
- use: 'ts-loader',
50
- exclude: /node_modules/,
51
- },
52
- {
53
- test: /\.css$/i,
54
- use: ['style-loader', 'css-loader'],
55
- },
56
- ],
57
- },
58
- optimization: {
59
- minimizer: [
60
- // Don't create separate files for comments.
61
- // See https://stackoverflow.com/a/65650316/17055750
62
- new TerserPlugin({
63
- extractComments: false,
64
- }),
65
- ],
66
- },
67
- // Increase the minimum size required
68
- // to trigger warnings.
69
- // See https://stackoverflow.com/a/53517149/17055750
70
- performance: {
71
- maxAssetSize: 2000000,
72
- maxEntrypointSize: 2000000,
73
- },
74
- resolve: {
75
- extensions: ['.tsx', '.ts', '.js'],
76
- },
77
- };
78
- return config;
79
- }
80
- handleErrors(err, stats) {
81
- let failed = false;
82
- if (err) {
83
- console.error(`Error: ${err.name}`, err.message, err.stack);
84
- failed = true;
85
- }
86
- else if ((stats === null || stats === void 0 ? void 0 : stats.hasErrors()) || (stats === null || stats === void 0 ? void 0 : stats.hasWarnings())) {
87
- const data = stats.toJson();
88
- if (data.warnings && data.warningsCount) {
89
- console.warn('Warnings: ', data.warningsCount);
90
- for (const warning of data.warnings) {
91
- // Stack contains the message
92
- if (warning.stack) {
93
- console.warn(warning.stack);
94
- }
95
- else {
96
- console.warn(warning.message);
97
- }
98
- }
99
- }
100
- if (data.errors && data.errorsCount) {
101
- console.error('Errors: ', data.errorsCount);
102
- for (const error of data.errors) {
103
- if (error.stack) {
104
- console.error(error.stack);
105
- }
106
- else {
107
- console.error(error.message);
108
- }
109
- console.error();
110
- }
111
- failed = true;
112
- }
113
- }
114
- return failed;
115
- }
116
- // Create a minified JS file in the same directory as `this.sourceFilePath` with
117
- // the same name.
118
- build() {
119
- const compiler = webpack(this.getWebpackOptions('production'));
120
- return new Promise((resolve, reject) => {
121
- console.info(`Building bundle: ${this.bundleName}...`);
122
- compiler.run((err, stats) => {
123
- let failed = this.handleErrors(err, stats);
124
- // Clean up.
125
- compiler.close((error) => __awaiter(this, void 0, void 0, function* () {
126
- if (error) {
127
- console.error('Error cleaning up:', error);
128
- failed = true;
129
- }
130
- if (!failed) {
131
- console.log('☑ Done building! ☑');
132
- resolve();
133
- }
134
- else {
135
- reject();
136
- }
137
- }));
138
- });
139
- });
140
- }
141
- startWatching() {
142
- const compiler = webpack(this.getWebpackOptions('development'));
143
- const watchOptions = {
144
- ignored: [
145
- '**/node_modules',
146
- '**/dist',
147
- ],
148
- };
149
- console.info('Watching bundle: ', this.bundleName);
150
- compiler.watch(watchOptions, (err, stats) => __awaiter(this, void 0, void 0, function* () {
151
- const failed = this.handleErrors(err, stats);
152
- if (!failed) {
153
- console.log('☑ Built! ☑');
154
- }
155
- }));
156
- }
157
- }
@@ -1 +0,0 @@
1
- export {};