js-draw 0.17.4 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/.github/workflows/firebase-hosting-merge.yml +2 -0
  2. package/.github/workflows/firebase-hosting-pull-request.yml +2 -0
  3. package/.github/workflows/github-pages.yml +2 -0
  4. package/CHANGELOG.md +4 -0
  5. package/build_tools/postDist.ts +71 -0
  6. package/dist/bundle.js +9 -1
  7. package/dist/cjs/build_tools/BundledFile.js +163 -0
  8. package/dist/cjs/build_tools/buildTranslationTemplate.js +119 -0
  9. package/dist/cjs/build_tools/bundle.js +10 -0
  10. package/dist/cjs/build_tools/postDist.js +72 -0
  11. package/dist/{src → cjs/src}/Color4.d.ts +1 -0
  12. package/dist/cjs/src/Color4.js +197 -0
  13. package/dist/cjs/src/Editor.js +904 -0
  14. package/dist/cjs/src/EditorImage.js +486 -0
  15. package/dist/cjs/src/EventDispatcher.js +57 -0
  16. package/dist/cjs/src/Pointer.js +84 -0
  17. package/dist/cjs/src/SVGLoader.js +472 -0
  18. package/dist/cjs/src/UndoRedoHistory.js +93 -0
  19. package/dist/cjs/src/Viewport.js +264 -0
  20. package/dist/cjs/src/bundle/bundled.js +24 -0
  21. package/dist/cjs/src/commands/Command.js +34 -0
  22. package/dist/cjs/src/commands/Duplicate.js +39 -0
  23. package/dist/cjs/src/commands/Erase.js +63 -0
  24. package/dist/cjs/src/commands/SerializableCommand.js +42 -0
  25. package/dist/cjs/src/commands/UnresolvedCommand.js +28 -0
  26. package/dist/cjs/src/commands/invertCommand.js +49 -0
  27. package/dist/cjs/src/commands/lib.js +18 -0
  28. package/dist/cjs/src/commands/localization.js +24 -0
  29. package/dist/cjs/src/commands/uniteCommands.js +121 -0
  30. package/dist/cjs/src/components/AbstractComponent.js +258 -0
  31. package/dist/cjs/src/components/ImageBackground.js +146 -0
  32. package/dist/cjs/src/components/ImageComponent.js +152 -0
  33. package/dist/cjs/src/components/RestylableComponent.js +88 -0
  34. package/dist/cjs/src/components/SVGGlobalAttributesObject.js +65 -0
  35. package/dist/cjs/src/components/Stroke.js +191 -0
  36. package/dist/cjs/src/components/TextComponent.js +258 -0
  37. package/dist/cjs/src/components/UnknownSVGObject.js +50 -0
  38. package/dist/cjs/src/components/builders/ArrowBuilder.js +117 -0
  39. package/dist/cjs/src/components/builders/FreehandLineBuilder.js +173 -0
  40. package/dist/cjs/src/components/builders/LineBuilder.js +89 -0
  41. package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +347 -0
  42. package/dist/cjs/src/components/builders/RectangleBuilder.js +59 -0
  43. package/dist/cjs/src/components/builders/types.js +2 -0
  44. package/dist/cjs/src/components/lib.js +43 -0
  45. package/dist/cjs/src/components/localization.js +13 -0
  46. package/dist/cjs/src/components/util/StrokeSmoother.js +217 -0
  47. package/dist/cjs/src/components/util/describeComponentList.js +16 -0
  48. package/dist/cjs/src/lib.js +63 -0
  49. package/dist/cjs/src/localization.js +13 -0
  50. package/dist/cjs/src/localizations/de.js +6 -0
  51. package/dist/cjs/src/localizations/en.js +6 -0
  52. package/dist/cjs/src/localizations/es.js +20 -0
  53. package/dist/cjs/src/localizations/getLocalizationTable.js +50 -0
  54. package/dist/cjs/src/math/LineSegment2.js +131 -0
  55. package/dist/cjs/src/math/Mat33.js +332 -0
  56. package/dist/cjs/src/math/Path.js +655 -0
  57. package/dist/cjs/src/math/Rect2.js +234 -0
  58. package/dist/cjs/src/math/Triangle.js +22 -0
  59. package/dist/cjs/src/math/Vec2.js +19 -0
  60. package/dist/cjs/src/math/Vec3.js +177 -0
  61. package/dist/cjs/src/math/lib.js +18 -0
  62. package/dist/cjs/src/math/rounding.js +135 -0
  63. package/dist/cjs/src/rendering/Display.js +214 -0
  64. package/dist/cjs/src/rendering/RenderingStyle.js +48 -0
  65. package/dist/cjs/src/rendering/TextRenderingStyle.js +29 -0
  66. package/dist/cjs/src/rendering/caching/CacheRecord.js +61 -0
  67. package/dist/cjs/src/rendering/caching/CacheRecordManager.js +50 -0
  68. package/dist/cjs/src/rendering/caching/RenderingCache.js +51 -0
  69. package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +326 -0
  70. package/dist/cjs/src/rendering/caching/testUtils.js +27 -0
  71. package/dist/cjs/src/rendering/caching/types.js +2 -0
  72. package/dist/cjs/src/rendering/lib.js +16 -0
  73. package/dist/cjs/src/rendering/localization.js +12 -0
  74. package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +170 -0
  75. package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +236 -0
  76. package/dist/cjs/src/rendering/renderers/DummyRenderer.js +112 -0
  77. package/dist/cjs/src/rendering/renderers/SVGRenderer.js +311 -0
  78. package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +63 -0
  79. package/dist/cjs/src/testing/beforeEachFile.js +12 -0
  80. package/dist/cjs/src/testing/createEditor.js +14 -0
  81. package/dist/cjs/src/testing/lib.js +10 -0
  82. package/dist/cjs/src/testing/loadExpectExtensions.js +28 -0
  83. package/dist/cjs/src/testing/sendPenEvent.js +24 -0
  84. package/dist/cjs/src/testing/sendTouchEvent.js +87 -0
  85. package/dist/cjs/src/toolbar/HTMLToolbar.js +383 -0
  86. package/dist/cjs/src/toolbar/IconProvider.js +660 -0
  87. package/dist/cjs/src/toolbar/lib.js +24 -0
  88. package/dist/cjs/src/toolbar/localization.js +51 -0
  89. package/dist/cjs/src/toolbar/makeColorInput.js +120 -0
  90. package/dist/cjs/src/toolbar/types.js +2 -0
  91. package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +31 -0
  92. package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +50 -0
  93. package/dist/cjs/src/toolbar/widgets/BaseWidget.js +313 -0
  94. package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +126 -0
  95. package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +63 -0
  96. package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +201 -0
  97. package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +176 -0
  98. package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +77 -0
  99. package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +226 -0
  100. package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +153 -0
  101. package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +115 -0
  102. package/dist/cjs/src/toolbar/widgets/lib.js +26 -0
  103. package/dist/cjs/src/tools/BaseTool.js +66 -0
  104. package/dist/cjs/src/tools/Eraser.js +112 -0
  105. package/dist/cjs/src/tools/FindTool.js +121 -0
  106. package/dist/cjs/src/tools/PanZoom.js +421 -0
  107. package/dist/cjs/src/tools/PasteHandler.js +99 -0
  108. package/dist/cjs/src/tools/Pen.js +179 -0
  109. package/dist/cjs/src/tools/PipetteTool.js +45 -0
  110. package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +28 -0
  111. package/dist/cjs/src/tools/SelectionTool/Selection.js +488 -0
  112. package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +85 -0
  113. package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +405 -0
  114. package/dist/cjs/src/tools/SelectionTool/TransformMode.js +107 -0
  115. package/dist/cjs/src/tools/SelectionTool/types.js +14 -0
  116. package/dist/cjs/src/tools/TextTool.js +262 -0
  117. package/dist/cjs/src/tools/ToolController.js +187 -0
  118. package/dist/cjs/src/tools/ToolEnabledGroup.js +14 -0
  119. package/dist/cjs/src/tools/ToolSwitcherShortcut.js +38 -0
  120. package/dist/cjs/src/tools/ToolbarShortcutHandler.js +29 -0
  121. package/dist/cjs/src/tools/UndoRedoShortcut.js +28 -0
  122. package/dist/cjs/src/tools/lib.js +36 -0
  123. package/dist/cjs/src/tools/localization.js +30 -0
  124. package/dist/cjs/src/types.js +38 -0
  125. package/dist/cjs/src/util/assertions.js +51 -0
  126. package/dist/cjs/src/util/fileToBase64.js +15 -0
  127. package/dist/cjs/src/util/untilNextAnimationFrame.js +9 -0
  128. package/dist/cjs/src/util/waitForTimeout.js +9 -0
  129. package/dist/mjs/build_tools/BundledFile.d.ts +13 -0
  130. package/dist/{build_tools/buildTranslationTemplate.js → mjs/build_tools/buildTranslationTemplate.mjs} +1 -1
  131. package/dist/{build_tools/bundle.js → mjs/build_tools/bundle.mjs} +1 -1
  132. package/dist/mjs/build_tools/postDist.d.ts +1 -0
  133. package/dist/mjs/build_tools/postDist.mjs +67 -0
  134. package/dist/mjs/src/Color4.d.ts +61 -0
  135. package/dist/{src/Color4.js → mjs/src/Color4.mjs} +1 -0
  136. package/dist/mjs/src/Editor.d.ts +308 -0
  137. package/dist/{src/Editor.js → mjs/src/Editor.mjs} +26 -26
  138. package/dist/mjs/src/EditorImage.d.ts +97 -0
  139. package/dist/{src/EditorImage.js → mjs/src/EditorImage.mjs} +8 -8
  140. package/dist/mjs/src/EventDispatcher.d.ts +30 -0
  141. package/dist/mjs/src/Pointer.d.ts +24 -0
  142. package/dist/{src/Pointer.js → mjs/src/Pointer.mjs} +1 -1
  143. package/dist/mjs/src/SVGLoader.d.ts +48 -0
  144. package/dist/{src/SVGLoader.js → mjs/src/SVGLoader.mjs} +11 -11
  145. package/dist/mjs/src/UndoRedoHistory.d.ts +19 -0
  146. package/dist/{src/UndoRedoHistory.js → mjs/src/UndoRedoHistory.mjs} +1 -1
  147. package/dist/mjs/src/Viewport.d.ts +71 -0
  148. package/dist/{src/Viewport.js → mjs/src/Viewport.mjs} +5 -5
  149. package/dist/mjs/src/bundle/bundled.d.ts +4 -0
  150. package/dist/{src/bundle/bundled.js → mjs/src/bundle/bundled.mjs} +2 -2
  151. package/dist/mjs/src/commands/Command.d.ts +16 -0
  152. package/dist/mjs/src/commands/Duplicate.d.ts +14 -0
  153. package/dist/{src/commands/Duplicate.js → mjs/src/commands/Duplicate.mjs} +3 -3
  154. package/dist/mjs/src/commands/Erase.d.ts +14 -0
  155. package/dist/{src/commands/Erase.js → mjs/src/commands/Erase.mjs} +3 -3
  156. package/dist/mjs/src/commands/SerializableCommand.d.ts +12 -0
  157. package/dist/{src/commands/SerializableCommand.js → mjs/src/commands/SerializableCommand.mjs} +1 -1
  158. package/dist/mjs/src/commands/UnresolvedCommand.d.ts +14 -0
  159. package/dist/{src/commands/UnresolvedCommand.js → mjs/src/commands/UnresolvedCommand.mjs} +1 -1
  160. package/dist/mjs/src/commands/invertCommand.d.ts +4 -0
  161. package/dist/{src/commands/invertCommand.js → mjs/src/commands/invertCommand.mjs} +2 -2
  162. package/dist/mjs/src/commands/lib.mjs +7 -0
  163. package/dist/mjs/src/commands/localization.d.ts +23 -0
  164. package/dist/mjs/src/commands/uniteCommands.d.ts +4 -0
  165. package/dist/{src/commands/uniteCommands.js → mjs/src/commands/uniteCommands.mjs} +2 -2
  166. package/dist/mjs/src/components/AbstractComponent.d.ts +73 -0
  167. package/dist/{src/components/AbstractComponent.js → mjs/src/components/AbstractComponent.mjs} +4 -4
  168. package/dist/mjs/src/components/ImageBackground.d.ts +42 -0
  169. package/dist/{src/components/ImageBackground.js → mjs/src/components/ImageBackground.mjs} +5 -5
  170. package/dist/mjs/src/components/ImageComponent.d.ts +31 -0
  171. package/dist/{src/components/ImageComponent.js → mjs/src/components/ImageComponent.mjs} +3 -3
  172. package/dist/mjs/src/components/RestylableComponent.d.ts +24 -0
  173. package/dist/{src/components/RestylableComponent.js → mjs/src/components/RestylableComponent.mjs} +4 -4
  174. package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +21 -0
  175. package/dist/{src/components/SVGGlobalAttributesObject.js → mjs/src/components/SVGGlobalAttributesObject.mjs} +3 -3
  176. package/dist/mjs/src/components/Stroke.d.ts +40 -0
  177. package/dist/{src/components/Stroke.js → mjs/src/components/Stroke.mjs} +5 -5
  178. package/dist/mjs/src/components/TextComponent.d.ts +53 -0
  179. package/dist/{src/components/TextComponent.js → mjs/src/components/TextComponent.mjs} +7 -7
  180. package/dist/mjs/src/components/UnknownSVGObject.d.ts +18 -0
  181. package/dist/{src/components/UnknownSVGObject.js → mjs/src/components/UnknownSVGObject.mjs} +3 -3
  182. package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +19 -0
  183. package/dist/{src/components/builders/ArrowBuilder.js → mjs/src/components/builders/ArrowBuilder.mjs} +2 -2
  184. package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +33 -0
  185. package/dist/{src/components/builders/FreehandLineBuilder.js → mjs/src/components/builders/FreehandLineBuilder.mjs} +7 -7
  186. package/dist/mjs/src/components/builders/LineBuilder.d.ts +18 -0
  187. package/dist/{src/components/builders/LineBuilder.js → mjs/src/components/builders/LineBuilder.mjs} +2 -2
  188. package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +36 -0
  189. package/dist/{src/components/builders/PressureSensitiveFreehandLineBuilder.js → mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs} +6 -6
  190. package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +20 -0
  191. package/dist/{src/components/builders/RectangleBuilder.js → mjs/src/components/builders/RectangleBuilder.mjs} +4 -4
  192. package/dist/mjs/src/components/builders/types.d.ts +12 -0
  193. package/dist/mjs/src/components/builders/types.mjs +1 -0
  194. package/dist/{src/components/lib.js → mjs/src/components/lib.d.ts} +3 -3
  195. package/dist/mjs/src/components/lib.mjs +12 -0
  196. package/dist/mjs/src/components/localization.d.ts +11 -0
  197. package/dist/mjs/src/components/util/StrokeSmoother.d.ts +35 -0
  198. package/dist/{src/components/util/StrokeSmoother.js → mjs/src/components/util/StrokeSmoother.mjs} +3 -3
  199. package/dist/mjs/src/components/util/describeComponentList.d.ts +4 -0
  200. package/dist/{src/lib.js → mjs/src/lib.d.ts} +2 -2
  201. package/dist/mjs/src/lib.mjs +34 -0
  202. package/dist/mjs/src/localization.d.ts +14 -0
  203. package/dist/{src/localization.js → mjs/src/localization.mjs} +5 -5
  204. package/dist/mjs/src/localizations/de.d.ts +3 -0
  205. package/dist/{src/localizations/de.js → mjs/src/localizations/de.mjs} +1 -1
  206. package/dist/mjs/src/localizations/en.d.ts +3 -0
  207. package/dist/{src/localizations/en.js → mjs/src/localizations/en.mjs} +1 -1
  208. package/dist/mjs/src/localizations/es.d.ts +3 -0
  209. package/dist/{src/localizations/es.js → mjs/src/localizations/es.mjs} +1 -1
  210. package/dist/mjs/src/localizations/getLocalizationTable.d.ts +3 -0
  211. package/dist/{src/localizations/getLocalizationTable.js → mjs/src/localizations/getLocalizationTable.mjs} +4 -4
  212. package/dist/mjs/src/math/LineSegment2.d.ts +24 -0
  213. package/dist/{src/math/LineSegment2.js → mjs/src/math/LineSegment2.mjs} +2 -2
  214. package/dist/mjs/src/math/Mat33.d.ts +118 -0
  215. package/dist/{src/math/Mat33.js → mjs/src/math/Mat33.mjs} +2 -2
  216. package/dist/mjs/src/math/Path.d.ts +71 -0
  217. package/dist/{src/math/Path.js → mjs/src/math/Path.mjs} +5 -5
  218. package/dist/mjs/src/math/Rect2.d.ts +52 -0
  219. package/dist/{src/math/Rect2.js → mjs/src/math/Rect2.mjs} +2 -2
  220. package/dist/mjs/src/math/Triangle.d.ts +11 -0
  221. package/dist/mjs/src/math/Vec2.d.ts +13 -0
  222. package/dist/{src/math/Vec2.js → mjs/src/math/Vec2.mjs} +1 -1
  223. package/dist/mjs/src/math/Vec3.d.ts +106 -0
  224. package/dist/mjs/src/math/lib.mjs +7 -0
  225. package/dist/mjs/src/math/rounding.d.ts +4 -0
  226. package/dist/mjs/src/rendering/Display.d.ts +75 -0
  227. package/dist/{src/rendering/Display.js → mjs/src/rendering/Display.mjs} +7 -7
  228. package/dist/mjs/src/rendering/RenderingStyle.d.ts +31 -0
  229. package/dist/{src/rendering/RenderingStyle.js → mjs/src/rendering/RenderingStyle.mjs} +1 -1
  230. package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +36 -0
  231. package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs} +1 -1
  232. package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +20 -0
  233. package/dist/{src/rendering/caching/CacheRecord.js → mjs/src/rendering/caching/CacheRecord.mjs} +1 -1
  234. package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +12 -0
  235. package/dist/{src/rendering/caching/CacheRecordManager.js → mjs/src/rendering/caching/CacheRecordManager.mjs} +1 -1
  236. package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +11 -0
  237. package/dist/{src/rendering/caching/RenderingCache.js → mjs/src/rendering/caching/RenderingCache.mjs} +3 -3
  238. package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +29 -0
  239. package/dist/{src/rendering/caching/RenderingCacheNode.js → mjs/src/rendering/caching/RenderingCacheNode.mjs} +3 -3
  240. package/dist/mjs/src/rendering/caching/testUtils.d.ts +9 -0
  241. package/dist/{src/rendering/caching/testUtils.js → mjs/src/rendering/caching/testUtils.mjs} +4 -4
  242. package/dist/mjs/src/rendering/caching/types.d.ts +19 -0
  243. package/dist/mjs/src/rendering/caching/types.mjs +1 -0
  244. package/dist/mjs/src/rendering/lib.mjs +5 -0
  245. package/dist/mjs/src/rendering/localization.d.ts +10 -0
  246. package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +68 -0
  247. package/dist/{src/rendering/renderers/AbstractRenderer.js → mjs/src/rendering/renderers/AbstractRenderer.mjs} +3 -3
  248. package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +63 -0
  249. package/dist/{src/rendering/renderers/CanvasRenderer.js → mjs/src/rendering/renderers/CanvasRenderer.mjs} +5 -5
  250. package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +35 -0
  251. package/dist/{src/rendering/renderers/DummyRenderer.js → mjs/src/rendering/renderers/DummyRenderer.mjs} +2 -2
  252. package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +57 -0
  253. package/dist/{src/rendering/renderers/SVGRenderer.js → mjs/src/rendering/renderers/SVGRenderer.mjs} +6 -6
  254. package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +29 -0
  255. package/dist/{src/rendering/renderers/TextOnlyRenderer.js → mjs/src/rendering/renderers/TextOnlyRenderer.mjs} +2 -2
  256. package/dist/mjs/src/testing/beforeEachFile.d.ts +1 -0
  257. package/dist/{src/testing/beforeEachFile.js → mjs/src/testing/beforeEachFile.mjs} +1 -1
  258. package/dist/mjs/src/testing/createEditor.d.ts +4 -0
  259. package/dist/{src/testing/createEditor.js → mjs/src/testing/createEditor.mjs} +2 -2
  260. package/dist/mjs/src/testing/lib.mjs +2 -0
  261. package/dist/mjs/src/testing/loadExpectExtensions.d.ts +2 -0
  262. package/dist/mjs/src/testing/sendPenEvent.d.ts +12 -0
  263. package/dist/{src/testing/sendPenEvent.js → mjs/src/testing/sendPenEvent.mjs} +2 -2
  264. package/dist/mjs/src/testing/sendTouchEvent.d.ts +42 -0
  265. package/dist/{src/testing/sendTouchEvent.js → mjs/src/testing/sendTouchEvent.mjs} +2 -2
  266. package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +103 -0
  267. package/dist/{src/toolbar/HTMLToolbar.js → mjs/src/toolbar/HTMLToolbar.mjs} +17 -17
  268. package/dist/mjs/src/toolbar/IconProvider.d.ts +62 -0
  269. package/dist/{src/toolbar/IconProvider.js → mjs/src/toolbar/IconProvider.mjs} +4 -4
  270. package/dist/mjs/src/toolbar/lib.mjs +3 -0
  271. package/dist/mjs/src/toolbar/localization.d.ts +49 -0
  272. package/dist/mjs/src/toolbar/makeColorInput.d.ts +6 -0
  273. package/dist/{src/toolbar/makeColorInput.js → mjs/src/toolbar/makeColorInput.mjs} +3 -3
  274. package/dist/mjs/src/toolbar/types.d.ts +4 -0
  275. package/dist/mjs/src/toolbar/types.mjs +1 -0
  276. package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +15 -0
  277. package/dist/{src/toolbar/widgets/ActionButtonWidget.js → mjs/src/toolbar/widgets/ActionButtonWidget.mjs} +1 -1
  278. package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +11 -0
  279. package/dist/{src/toolbar/widgets/BaseToolWidget.js → mjs/src/toolbar/widgets/BaseToolWidget.mjs} +2 -2
  280. package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +72 -0
  281. package/dist/{src/toolbar/widgets/BaseWidget.js → mjs/src/toolbar/widgets/BaseWidget.mjs} +3 -3
  282. package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +18 -0
  283. package/dist/{src/toolbar/widgets/DocumentPropertiesWidget.js → mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs} +6 -6
  284. package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +17 -0
  285. package/dist/{src/toolbar/widgets/EraserToolWidget.js → mjs/src/toolbar/widgets/EraserToolWidget.mjs} +3 -3
  286. package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +17 -0
  287. package/dist/{src/toolbar/widgets/HandToolWidget.js → mjs/src/toolbar/widgets/HandToolWidget.mjs} +7 -7
  288. package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +19 -0
  289. package/dist/{src/toolbar/widgets/InsertImageWidget.js → mjs/src/toolbar/widgets/InsertImageWidget.mjs} +8 -8
  290. package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +25 -0
  291. package/dist/{src/toolbar/widgets/OverflowWidget.js → mjs/src/toolbar/widgets/OverflowWidget.mjs} +1 -1
  292. package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +27 -0
  293. package/dist/{src/toolbar/widgets/PenToolWidget.js → mjs/src/toolbar/widgets/PenToolWidget.mjs} +10 -10
  294. package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +13 -0
  295. package/dist/{src/toolbar/widgets/SelectionToolWidget.js → mjs/src/toolbar/widgets/SelectionToolWidget.mjs} +8 -8
  296. package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +16 -0
  297. package/dist/{src/toolbar/widgets/TextToolWidget.js → mjs/src/toolbar/widgets/TextToolWidget.mjs} +5 -5
  298. package/dist/mjs/src/toolbar/widgets/lib.mjs +10 -0
  299. package/dist/mjs/src/tools/BaseTool.d.ts +22 -0
  300. package/dist/{src/tools/BaseTool.js → mjs/src/tools/BaseTool.mjs} +1 -1
  301. package/dist/mjs/src/tools/Eraser.d.ts +23 -0
  302. package/dist/{src/tools/Eraser.js → mjs/src/tools/Eraser.mjs} +8 -8
  303. package/dist/mjs/src/tools/FindTool.d.ts +21 -0
  304. package/dist/{src/tools/FindTool.js → mjs/src/tools/FindTool.mjs} +2 -2
  305. package/dist/mjs/src/tools/PanZoom.d.ts +52 -0
  306. package/dist/{src/tools/PanZoom.js → mjs/src/tools/PanZoom.mjs} +8 -8
  307. package/dist/mjs/src/tools/PasteHandler.d.ts +23 -0
  308. package/dist/{src/tools/PasteHandler.js → mjs/src/tools/PasteHandler.mjs} +7 -7
  309. package/dist/mjs/src/tools/Pen.d.ts +39 -0
  310. package/dist/{src/tools/Pen.js → mjs/src/tools/Pen.mjs} +5 -5
  311. package/dist/mjs/src/tools/PipetteTool.d.ts +18 -0
  312. package/dist/{src/tools/PipetteTool.js → mjs/src/tools/PipetteTool.mjs} +1 -1
  313. package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +8 -0
  314. package/dist/{src/tools/SelectionTool/SelectAllShortcutHandler.js → mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs} +2 -2
  315. package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +64 -0
  316. package/dist/{src/tools/SelectionTool/Selection.js → mjs/src/tools/SelectionTool/Selection.mjs} +12 -12
  317. package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +38 -0
  318. package/dist/{src/tools/SelectionTool/SelectionHandle.js → mjs/src/tools/SelectionTool/SelectionHandle.mjs} +3 -3
  319. package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +36 -0
  320. package/dist/{src/tools/SelectionTool/SelectionTool.js → mjs/src/tools/SelectionTool/SelectionTool.mjs} +8 -8
  321. package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +34 -0
  322. package/dist/{src/tools/SelectionTool/TransformMode.js → mjs/src/tools/SelectionTool/TransformMode.mjs} +4 -4
  323. package/dist/mjs/src/tools/SelectionTool/types.d.ts +9 -0
  324. package/dist/mjs/src/tools/TextTool.d.ts +33 -0
  325. package/dist/{src/tools/TextTool.js → mjs/src/tools/TextTool.mjs} +11 -11
  326. package/dist/mjs/src/tools/ToolController.d.ts +18 -0
  327. package/dist/{src/tools/ToolController.js → mjs/src/tools/ToolController.mjs} +16 -16
  328. package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +6 -0
  329. package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +16 -0
  330. package/dist/{src/tools/ToolSwitcherShortcut.js → mjs/src/tools/ToolSwitcherShortcut.mjs} +1 -1
  331. package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +12 -0
  332. package/dist/{src/tools/ToolbarShortcutHandler.js → mjs/src/tools/ToolbarShortcutHandler.mjs} +1 -1
  333. package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +8 -0
  334. package/dist/{src/tools/UndoRedoShortcut.js → mjs/src/tools/UndoRedoShortcut.mjs} +1 -1
  335. package/dist/{src/tools/lib.js → mjs/src/tools/lib.d.ts} +1 -1
  336. package/dist/mjs/src/tools/lib.mjs +16 -0
  337. package/dist/mjs/src/tools/localization.d.ts +28 -0
  338. package/dist/mjs/src/types.d.ts +151 -0
  339. package/dist/mjs/src/util/assertions.d.ts +23 -0
  340. package/dist/mjs/src/util/fileToBase64.d.ts +3 -0
  341. package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +3 -0
  342. package/dist/mjs/src/util/waitForTimeout.d.ts +2 -0
  343. package/package.json +34 -33
  344. package/src/Color4.ts +2 -0
  345. package/tsconfig.json +3 -2
  346. package/tsconfig.mjs.json +9 -0
  347. /package/dist/{build_tools → cjs/build_tools}/BundledFile.d.ts +0 -0
  348. /package/dist/{build_tools → cjs/build_tools}/buildTranslationTemplate.d.ts +0 -0
  349. /package/dist/{build_tools → cjs/build_tools}/bundle.d.ts +0 -0
  350. /package/dist/{src/components/builders/types.js → cjs/build_tools/postDist.d.ts} +0 -0
  351. /package/dist/{src → cjs/src}/Editor.d.ts +0 -0
  352. /package/dist/{src → cjs/src}/EditorImage.d.ts +0 -0
  353. /package/dist/{src → cjs/src}/EventDispatcher.d.ts +0 -0
  354. /package/dist/{src → cjs/src}/Pointer.d.ts +0 -0
  355. /package/dist/{src → cjs/src}/SVGLoader.d.ts +0 -0
  356. /package/dist/{src → cjs/src}/UndoRedoHistory.d.ts +0 -0
  357. /package/dist/{src → cjs/src}/Viewport.d.ts +0 -0
  358. /package/dist/{src → cjs/src}/bundle/bundled.d.ts +0 -0
  359. /package/dist/{src → cjs/src}/commands/Command.d.ts +0 -0
  360. /package/dist/{src → cjs/src}/commands/Duplicate.d.ts +0 -0
  361. /package/dist/{src → cjs/src}/commands/Erase.d.ts +0 -0
  362. /package/dist/{src → cjs/src}/commands/SerializableCommand.d.ts +0 -0
  363. /package/dist/{src → cjs/src}/commands/UnresolvedCommand.d.ts +0 -0
  364. /package/dist/{src → cjs/src}/commands/invertCommand.d.ts +0 -0
  365. /package/dist/{src → cjs/src}/commands/lib.d.ts +0 -0
  366. /package/dist/{src → cjs/src}/commands/localization.d.ts +0 -0
  367. /package/dist/{src → cjs/src}/commands/uniteCommands.d.ts +0 -0
  368. /package/dist/{src → cjs/src}/components/AbstractComponent.d.ts +0 -0
  369. /package/dist/{src → cjs/src}/components/ImageBackground.d.ts +0 -0
  370. /package/dist/{src → cjs/src}/components/ImageComponent.d.ts +0 -0
  371. /package/dist/{src → cjs/src}/components/RestylableComponent.d.ts +0 -0
  372. /package/dist/{src → cjs/src}/components/SVGGlobalAttributesObject.d.ts +0 -0
  373. /package/dist/{src → cjs/src}/components/Stroke.d.ts +0 -0
  374. /package/dist/{src → cjs/src}/components/TextComponent.d.ts +0 -0
  375. /package/dist/{src → cjs/src}/components/UnknownSVGObject.d.ts +0 -0
  376. /package/dist/{src → cjs/src}/components/builders/ArrowBuilder.d.ts +0 -0
  377. /package/dist/{src → cjs/src}/components/builders/FreehandLineBuilder.d.ts +0 -0
  378. /package/dist/{src → cjs/src}/components/builders/LineBuilder.d.ts +0 -0
  379. /package/dist/{src → cjs/src}/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -0
  380. /package/dist/{src → cjs/src}/components/builders/RectangleBuilder.d.ts +0 -0
  381. /package/dist/{src → cjs/src}/components/builders/types.d.ts +0 -0
  382. /package/dist/{src → cjs/src}/components/lib.d.ts +0 -0
  383. /package/dist/{src → cjs/src}/components/localization.d.ts +0 -0
  384. /package/dist/{src → cjs/src}/components/util/StrokeSmoother.d.ts +0 -0
  385. /package/dist/{src → cjs/src}/components/util/describeComponentList.d.ts +0 -0
  386. /package/dist/{src → cjs/src}/lib.d.ts +0 -0
  387. /package/dist/{src → cjs/src}/localization.d.ts +0 -0
  388. /package/dist/{src → cjs/src}/localizations/de.d.ts +0 -0
  389. /package/dist/{src → cjs/src}/localizations/en.d.ts +0 -0
  390. /package/dist/{src → cjs/src}/localizations/es.d.ts +0 -0
  391. /package/dist/{src → cjs/src}/localizations/getLocalizationTable.d.ts +0 -0
  392. /package/dist/{src → cjs/src}/math/LineSegment2.d.ts +0 -0
  393. /package/dist/{src → cjs/src}/math/Mat33.d.ts +0 -0
  394. /package/dist/{src → cjs/src}/math/Path.d.ts +0 -0
  395. /package/dist/{src → cjs/src}/math/Rect2.d.ts +0 -0
  396. /package/dist/{src → cjs/src}/math/Triangle.d.ts +0 -0
  397. /package/dist/{src → cjs/src}/math/Vec2.d.ts +0 -0
  398. /package/dist/{src → cjs/src}/math/Vec3.d.ts +0 -0
  399. /package/dist/{src → cjs/src}/math/lib.d.ts +0 -0
  400. /package/dist/{src → cjs/src}/math/rounding.d.ts +0 -0
  401. /package/dist/{src → cjs/src}/rendering/Display.d.ts +0 -0
  402. /package/dist/{src → cjs/src}/rendering/RenderingStyle.d.ts +0 -0
  403. /package/dist/{src → cjs/src}/rendering/TextRenderingStyle.d.ts +0 -0
  404. /package/dist/{src → cjs/src}/rendering/caching/CacheRecord.d.ts +0 -0
  405. /package/dist/{src → cjs/src}/rendering/caching/CacheRecordManager.d.ts +0 -0
  406. /package/dist/{src → cjs/src}/rendering/caching/RenderingCache.d.ts +0 -0
  407. /package/dist/{src → cjs/src}/rendering/caching/RenderingCacheNode.d.ts +0 -0
  408. /package/dist/{src → cjs/src}/rendering/caching/testUtils.d.ts +0 -0
  409. /package/dist/{src → cjs/src}/rendering/caching/types.d.ts +0 -0
  410. /package/dist/{src → cjs/src}/rendering/lib.d.ts +0 -0
  411. /package/dist/{src → cjs/src}/rendering/localization.d.ts +0 -0
  412. /package/dist/{src → cjs/src}/rendering/renderers/AbstractRenderer.d.ts +0 -0
  413. /package/dist/{src → cjs/src}/rendering/renderers/CanvasRenderer.d.ts +0 -0
  414. /package/dist/{src → cjs/src}/rendering/renderers/DummyRenderer.d.ts +0 -0
  415. /package/dist/{src → cjs/src}/rendering/renderers/SVGRenderer.d.ts +0 -0
  416. /package/dist/{src → cjs/src}/rendering/renderers/TextOnlyRenderer.d.ts +0 -0
  417. /package/dist/{src → cjs/src}/testing/beforeEachFile.d.ts +0 -0
  418. /package/dist/{src → cjs/src}/testing/createEditor.d.ts +0 -0
  419. /package/dist/{src → cjs/src}/testing/lib.d.ts +0 -0
  420. /package/dist/{src → cjs/src}/testing/loadExpectExtensions.d.ts +0 -0
  421. /package/dist/{src → cjs/src}/testing/sendPenEvent.d.ts +0 -0
  422. /package/dist/{src → cjs/src}/testing/sendTouchEvent.d.ts +0 -0
  423. /package/dist/{src → cjs/src}/toolbar/HTMLToolbar.d.ts +0 -0
  424. /package/dist/{src → cjs/src}/toolbar/IconProvider.d.ts +0 -0
  425. /package/dist/{src → cjs/src}/toolbar/lib.d.ts +0 -0
  426. /package/dist/{src → cjs/src}/toolbar/localization.d.ts +0 -0
  427. /package/dist/{src → cjs/src}/toolbar/makeColorInput.d.ts +0 -0
  428. /package/dist/{src → cjs/src}/toolbar/types.d.ts +0 -0
  429. /package/dist/{src → cjs/src}/toolbar/widgets/ActionButtonWidget.d.ts +0 -0
  430. /package/dist/{src → cjs/src}/toolbar/widgets/BaseToolWidget.d.ts +0 -0
  431. /package/dist/{src → cjs/src}/toolbar/widgets/BaseWidget.d.ts +0 -0
  432. /package/dist/{src → cjs/src}/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -0
  433. /package/dist/{src → cjs/src}/toolbar/widgets/EraserToolWidget.d.ts +0 -0
  434. /package/dist/{src → cjs/src}/toolbar/widgets/HandToolWidget.d.ts +0 -0
  435. /package/dist/{src → cjs/src}/toolbar/widgets/InsertImageWidget.d.ts +0 -0
  436. /package/dist/{src → cjs/src}/toolbar/widgets/OverflowWidget.d.ts +0 -0
  437. /package/dist/{src → cjs/src}/toolbar/widgets/PenToolWidget.d.ts +0 -0
  438. /package/dist/{src → cjs/src}/toolbar/widgets/SelectionToolWidget.d.ts +0 -0
  439. /package/dist/{src → cjs/src}/toolbar/widgets/TextToolWidget.d.ts +0 -0
  440. /package/dist/{src → cjs/src}/toolbar/widgets/lib.d.ts +0 -0
  441. /package/dist/{src → cjs/src}/tools/BaseTool.d.ts +0 -0
  442. /package/dist/{src → cjs/src}/tools/Eraser.d.ts +0 -0
  443. /package/dist/{src → cjs/src}/tools/FindTool.d.ts +0 -0
  444. /package/dist/{src → cjs/src}/tools/PanZoom.d.ts +0 -0
  445. /package/dist/{src → cjs/src}/tools/PasteHandler.d.ts +0 -0
  446. /package/dist/{src → cjs/src}/tools/Pen.d.ts +0 -0
  447. /package/dist/{src → cjs/src}/tools/PipetteTool.d.ts +0 -0
  448. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -0
  449. /package/dist/{src → cjs/src}/tools/SelectionTool/Selection.d.ts +0 -0
  450. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionHandle.d.ts +0 -0
  451. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionTool.d.ts +0 -0
  452. /package/dist/{src → cjs/src}/tools/SelectionTool/TransformMode.d.ts +0 -0
  453. /package/dist/{src → cjs/src}/tools/SelectionTool/types.d.ts +0 -0
  454. /package/dist/{src → cjs/src}/tools/TextTool.d.ts +0 -0
  455. /package/dist/{src → cjs/src}/tools/ToolController.d.ts +0 -0
  456. /package/dist/{src → cjs/src}/tools/ToolEnabledGroup.d.ts +0 -0
  457. /package/dist/{src → cjs/src}/tools/ToolSwitcherShortcut.d.ts +0 -0
  458. /package/dist/{src → cjs/src}/tools/ToolbarShortcutHandler.d.ts +0 -0
  459. /package/dist/{src → cjs/src}/tools/UndoRedoShortcut.d.ts +0 -0
  460. /package/dist/{src → cjs/src}/tools/lib.d.ts +0 -0
  461. /package/dist/{src → cjs/src}/tools/localization.d.ts +0 -0
  462. /package/dist/{src → cjs/src}/types.d.ts +0 -0
  463. /package/dist/{src → cjs/src}/util/assertions.d.ts +0 -0
  464. /package/dist/{src → cjs/src}/util/fileToBase64.d.ts +0 -0
  465. /package/dist/{src → cjs/src}/util/untilNextAnimationFrame.d.ts +0 -0
  466. /package/dist/{src → cjs/src}/util/waitForTimeout.d.ts +0 -0
  467. /package/dist/{build_tools/BundledFile.js → mjs/build_tools/BundledFile.mjs} +0 -0
  468. /package/dist/{src/rendering/caching/types.js → mjs/build_tools/buildTranslationTemplate.d.ts} +0 -0
  469. /package/dist/{src/toolbar/types.js → mjs/build_tools/bundle.d.ts} +0 -0
  470. /package/dist/{src/EventDispatcher.js → mjs/src/EventDispatcher.mjs} +0 -0
  471. /package/dist/{src/commands/Command.js → mjs/src/commands/Command.mjs} +0 -0
  472. /package/dist/{src/commands/lib.js → mjs/src/commands/lib.d.ts} +0 -0
  473. /package/dist/{src/commands/localization.js → mjs/src/commands/localization.mjs} +0 -0
  474. /package/dist/{src/components/localization.js → mjs/src/components/localization.mjs} +0 -0
  475. /package/dist/{src/components/util/describeComponentList.js → mjs/src/components/util/describeComponentList.mjs} +0 -0
  476. /package/dist/{src/math/Triangle.js → mjs/src/math/Triangle.mjs} +0 -0
  477. /package/dist/{src/math/Vec3.js → mjs/src/math/Vec3.mjs} +0 -0
  478. /package/dist/{src/math/lib.js → mjs/src/math/lib.d.ts} +0 -0
  479. /package/dist/{src/math/rounding.js → mjs/src/math/rounding.mjs} +0 -0
  480. /package/dist/{src/rendering/lib.js → mjs/src/rendering/lib.d.ts} +0 -0
  481. /package/dist/{src/rendering/localization.js → mjs/src/rendering/localization.mjs} +0 -0
  482. /package/dist/{src/testing/lib.js → mjs/src/testing/lib.d.ts} +0 -0
  483. /package/dist/{src/testing/loadExpectExtensions.js → mjs/src/testing/loadExpectExtensions.mjs} +0 -0
  484. /package/dist/{src/toolbar/lib.js → mjs/src/toolbar/lib.d.ts} +0 -0
  485. /package/dist/{src/toolbar/localization.js → mjs/src/toolbar/localization.mjs} +0 -0
  486. /package/dist/{src/toolbar/widgets/lib.js → mjs/src/toolbar/widgets/lib.d.ts} +0 -0
  487. /package/dist/{src/tools/SelectionTool/types.js → mjs/src/tools/SelectionTool/types.mjs} +0 -0
  488. /package/dist/{src/tools/ToolEnabledGroup.js → mjs/src/tools/ToolEnabledGroup.mjs} +0 -0
  489. /package/dist/{src/tools/localization.js → mjs/src/tools/localization.mjs} +0 -0
  490. /package/dist/{src/types.js → mjs/src/types.mjs} +0 -0
  491. /package/dist/{src/util/assertions.js → mjs/src/util/assertions.mjs} +0 -0
  492. /package/dist/{src/util/fileToBase64.js → mjs/src/util/fileToBase64.mjs} +0 -0
  493. /package/dist/{src/util/untilNextAnimationFrame.js → mjs/src/util/untilNextAnimationFrame.mjs} +0 -0
  494. /package/dist/{src/util/waitForTimeout.js → mjs/src/util/waitForTimeout.mjs} +0 -0
@@ -0,0 +1,35 @@
1
+ import Mat33 from '../../math/Mat33';
2
+ import Rect2 from '../../math/Rect2';
3
+ import { Point2, Vec2 } from '../../math/Vec2';
4
+ import Vec3 from '../../math/Vec3';
5
+ import Viewport from '../../Viewport';
6
+ import RenderingStyle from '../RenderingStyle';
7
+ import TextStyle from '../TextRenderingStyle';
8
+ import AbstractRenderer, { RenderableImage } from './AbstractRenderer';
9
+ export default class DummyRenderer extends AbstractRenderer {
10
+ clearedCount: number;
11
+ renderedPathCount: number;
12
+ lastFillStyle: RenderingStyle | null;
13
+ lastPoint: Point2 | null;
14
+ objectNestingLevel: number;
15
+ lastText: string | null;
16
+ lastImage: RenderableImage | null;
17
+ pointBuffer: Point2[];
18
+ constructor(viewport: Viewport);
19
+ displaySize(): Vec2;
20
+ clear(): void;
21
+ protected beginPath(startPoint: Vec3): void;
22
+ protected endPath(style: RenderingStyle): void;
23
+ protected lineTo(point: Vec3): void;
24
+ protected moveTo(point: Point2): void;
25
+ protected traceCubicBezierCurve(p1: Vec3, p2: Vec3, p3: Vec3): void;
26
+ protected traceQuadraticBezierCurve(controlPoint: Vec3, endPoint: Vec3): void;
27
+ drawPoints(..._points: Vec3[]): void;
28
+ drawText(text: string, _transform: Mat33, _style: TextStyle): void;
29
+ drawImage(image: RenderableImage): void;
30
+ startObject(boundingBox: Rect2, _clip: boolean): void;
31
+ endObject(): void;
32
+ isTooSmallToRender(_rect: Rect2): boolean;
33
+ canRenderFromWithoutDataLoss(other: AbstractRenderer): boolean;
34
+ renderFromOtherOfSameType(transform: Mat33, other: AbstractRenderer): void;
35
+ }
@@ -1,5 +1,5 @@
1
- import { Vec2 } from '../../math/Vec2';
2
- import AbstractRenderer from './AbstractRenderer';
1
+ import { Vec2 } from '../../math/Vec2.mjs';
2
+ import AbstractRenderer from './AbstractRenderer.mjs';
3
3
  // Renderer that outputs almost nothing. Useful for automated tests.
4
4
  export default class DummyRenderer extends AbstractRenderer {
5
5
  constructor(viewport) {
@@ -0,0 +1,57 @@
1
+ import { LoadSaveDataTable } from '../../components/AbstractComponent';
2
+ import Mat33 from '../../math/Mat33';
3
+ import Rect2 from '../../math/Rect2';
4
+ import { Point2, Vec2 } from '../../math/Vec2';
5
+ import Viewport from '../../Viewport';
6
+ import RenderingStyle from '../RenderingStyle';
7
+ import TextStyle from '../TextRenderingStyle';
8
+ import AbstractRenderer, { RenderableImage, RenderablePathSpec } from './AbstractRenderer';
9
+ export declare const renderedStylesheetId = "js-draw-style-sheet";
10
+ /**
11
+ * Renders onto an `SVGElement`.
12
+ *
13
+ * @see {@link Editor.toSVG}
14
+ */
15
+ export default class SVGRenderer extends AbstractRenderer {
16
+ private elem;
17
+ private sanitize;
18
+ private lastPathStyle;
19
+ private lastPathString;
20
+ private objectElems;
21
+ private overwrittenAttrs;
22
+ /**
23
+ * Creates a renderer that renders onto `elem`. If `sanitize`, don't render potentially untrusted data.
24
+ *
25
+ * `viewport` is used to determine the translation/rotation/scaling/output size of the rendered
26
+ * data.
27
+ */
28
+ constructor(elem: SVGSVGElement, viewport: Viewport, sanitize?: boolean);
29
+ private addStyleSheet;
30
+ setRootSVGAttribute(name: string, value: string | null): void;
31
+ displaySize(): Vec2;
32
+ clear(): void;
33
+ private addPathToSVG;
34
+ drawPath(pathSpec: RenderablePathSpec): void;
35
+ private transformFrom;
36
+ private textContainer;
37
+ private textContainerTransform;
38
+ private textParentStyle;
39
+ drawText(text: string, transform: Mat33, style: TextStyle): void;
40
+ drawImage(image: RenderableImage): void;
41
+ startObject(boundingBox: Rect2): void;
42
+ endObject(loaderData?: LoadSaveDataTable, elemClassNames?: string[]): void;
43
+ private unimplementedMessage;
44
+ protected beginPath(_startPoint: Point2): void;
45
+ protected endPath(_style: RenderingStyle): void;
46
+ protected lineTo(_point: Point2): void;
47
+ protected moveTo(_point: Point2): void;
48
+ protected traceCubicBezierCurve(_controlPoint1: Point2, _controlPoint2: Point2, _endPoint: Point2): void;
49
+ protected traceQuadraticBezierCurve(_controlPoint: Point2, _endPoint: Point2): void;
50
+ drawPoints(...points: Point2[]): void;
51
+ drawSVGElem(elem: SVGElement): void;
52
+ isTooSmallToRender(_rect: Rect2): boolean;
53
+ static fromViewport(viewport: Viewport, sanitize?: boolean): {
54
+ element: SVGSVGElement;
55
+ renderer: SVGRenderer;
56
+ };
57
+ }
@@ -1,9 +1,9 @@
1
- import Mat33 from '../../math/Mat33';
2
- import Path from '../../math/Path';
3
- import { toRoundedString } from '../../math/rounding';
4
- import { Vec2 } from '../../math/Vec2';
5
- import { svgAttributesDataKey, svgStyleAttributesDataKey } from '../../SVGLoader';
6
- import AbstractRenderer from './AbstractRenderer';
1
+ import Mat33 from '../../math/Mat33.mjs';
2
+ import Path from '../../math/Path.mjs';
3
+ import { toRoundedString } from '../../math/rounding.mjs';
4
+ import { Vec2 } from '../../math/Vec2.mjs';
5
+ import { svgAttributesDataKey, svgStyleAttributesDataKey } from '../../SVGLoader.mjs';
6
+ import AbstractRenderer from './AbstractRenderer.mjs';
7
7
  export const renderedStylesheetId = 'js-draw-style-sheet';
8
8
  const svgNameSpace = 'http://www.w3.org/2000/svg';
9
9
  /**
@@ -0,0 +1,29 @@
1
+ import Mat33 from '../../math/Mat33';
2
+ import Rect2 from '../../math/Rect2';
3
+ import Vec3 from '../../math/Vec3';
4
+ import Viewport from '../../Viewport';
5
+ import { TextRendererLocalization } from '../localization';
6
+ import RenderingStyle from '../RenderingStyle';
7
+ import TextStyle from '../TextRenderingStyle';
8
+ import AbstractRenderer, { RenderableImage } from './AbstractRenderer';
9
+ export default class TextOnlyRenderer extends AbstractRenderer {
10
+ private localizationTable;
11
+ private descriptionBuilder;
12
+ private pathCount;
13
+ private textNodeCount;
14
+ private imageNodeCount;
15
+ constructor(viewport: Viewport, localizationTable: TextRendererLocalization);
16
+ displaySize(): Vec3;
17
+ clear(): void;
18
+ getDescription(): string;
19
+ protected beginPath(_startPoint: Vec3): void;
20
+ protected endPath(_style: RenderingStyle): void;
21
+ protected lineTo(_point: Vec3): void;
22
+ protected moveTo(_point: Vec3): void;
23
+ protected traceCubicBezierCurve(_p1: Vec3, _p2: Vec3, _p3: Vec3): void;
24
+ protected traceQuadraticBezierCurve(_controlPoint: Vec3, _endPoint: Vec3): void;
25
+ drawText(text: string, _transform: Mat33, _style: TextStyle): void;
26
+ drawImage(image: RenderableImage): void;
27
+ isTooSmallToRender(rect: Rect2): boolean;
28
+ drawPoints(..._points: Vec3[]): void;
29
+ }
@@ -1,5 +1,5 @@
1
- import { Vec2 } from '../../math/Vec2';
2
- import AbstractRenderer from './AbstractRenderer';
1
+ import { Vec2 } from '../../math/Vec2.mjs';
2
+ import AbstractRenderer from './AbstractRenderer.mjs';
3
3
  // Outputs a description of what was rendered.
4
4
  export default class TextOnlyRenderer extends AbstractRenderer {
5
5
  constructor(viewport, localizationTable) {
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import loadExpectExtensions from './loadExpectExtensions';
1
+ import loadExpectExtensions from './loadExpectExtensions.mjs';
2
2
  loadExpectExtensions();
3
3
  jest.useFakeTimers();
4
4
  // jsdom doesn't support HTMLCanvasElement#getContext — it logs an error
@@ -0,0 +1,4 @@
1
+ import Editor from '../Editor';
2
+ /** Creates an editor. Should only be used in test files. */
3
+ declare const _default: () => Editor;
4
+ export default _default;
@@ -1,5 +1,5 @@
1
- import { RenderingMode } from '../rendering/Display';
2
- import Editor from '../Editor';
1
+ import { RenderingMode } from '../rendering/Display.mjs';
2
+ import Editor from '../Editor.mjs';
3
3
  /** Creates an editor. Should only be used in test files. */
4
4
  export default () => {
5
5
  if (jest === undefined) {
@@ -0,0 +1,2 @@
1
+ export { default as sendPenEvent } from './sendPenEvent.mjs';
2
+ export { default as sendTouchEvent } from './sendTouchEvent.mjs';
@@ -0,0 +1,2 @@
1
+ export declare const loadExpectExtensions: () => void;
2
+ export default loadExpectExtensions;
@@ -0,0 +1,12 @@
1
+ import Editor from '../Editor';
2
+ import { Point2 } from '../math/Vec2';
3
+ import Pointer from '../Pointer';
4
+ import { InputEvtType } from '../types';
5
+ /**
6
+ * Dispatch a pen event to the currently selected tool.
7
+ * Intended for unit tests.
8
+ *
9
+ * @see {@link sendTouchEvent}
10
+ */
11
+ declare const sendPenEvent: (editor: Editor, eventType: InputEvtType.PointerDownEvt | InputEvtType.PointerMoveEvt | InputEvtType.PointerUpEvt, point: Point2, allPointers?: Pointer[]) => void;
12
+ export default sendPenEvent;
@@ -1,5 +1,5 @@
1
- import Pointer from '../Pointer';
2
- import { InputEvtType } from '../types';
1
+ import Pointer from '../Pointer.mjs';
2
+ import { InputEvtType } from '../types.mjs';
3
3
  /**
4
4
  * Dispatch a pen event to the currently selected tool.
5
5
  * Intended for unit tests.
@@ -0,0 +1,42 @@
1
+ import Editor from '../Editor';
2
+ import { Vec2 } from '../math/Vec2';
3
+ import Pointer from '../Pointer';
4
+ import { InputEvtType } from '../types';
5
+ /**
6
+ * Dispatch a touch event to the currently selected tool. Intended for unit tests.
7
+ *
8
+ * @see {@link sendPenEvent}
9
+ *
10
+ * @example
11
+ * **Simulating a horizontal swipe gesture:**
12
+ * ```ts
13
+ * sendTouchEvent(editor, InputEvtType.PointerDownEvt, Vec2.of(0, 0));
14
+ * for (let i = 1; i <= 10; i++) {
15
+ * jest.advanceTimersByTime(10);
16
+ * sendTouchEvent(editor, InputEvtType.PointerMoveEvt, Vec2.of(i * 10, 0));
17
+ * }
18
+ * ```
19
+ *
20
+ * @example
21
+ * **Simulating a pinch gesture.** This example assumes that you're using [Jest with timer mocks enabled](https://jestjs.io/docs/timer-mocks).
22
+ * ```ts
23
+ * let firstPointer = sendTouchEvent(editor, InputEvtType.PointerDownEvt, Vec2.of(0, 0));
24
+ * let secondPointer = sendTouchEvent(editor, InputEvtType.PointerDownEvt, Vec2.of(100, 0), [ firstPointer ]);
25
+ *
26
+ * // Simulate a pinch
27
+ * const maxIterations = 10;
28
+ * for (let i = 0; i < maxIterations; i++) {
29
+ * // Use the unit testing framework's tool for increasing the current time
30
+ * // returned by (new Date()).getTime(), etc.
31
+ * jest.advanceTimersByTime(100);
32
+ *
33
+ * const point1 = Vec2.of(-i * 5, 0);
34
+ * const point2 = Vec2.of(i * 5 + 100, 0);
35
+ *
36
+ * firstPointer = sendTouchEvent(editor, InputEvtType.PointerMoveEvt, point1, [ secondPointer ]);
37
+ * secondPointer = sendTouchEvent(editor, InputEvtType.PointerMoveEvt, point2, [ firstPointer ]);
38
+ * }
39
+ * ```
40
+ */
41
+ declare const sendTouchEvent: (editor: Editor, eventType: InputEvtType.PointerDownEvt | InputEvtType.PointerMoveEvt | InputEvtType.PointerUpEvt, screenPos: Vec2, allOtherPointers?: Pointer[]) => Pointer;
42
+ export default sendTouchEvent;
@@ -1,5 +1,5 @@
1
- import Pointer, { PointerDevice } from '../Pointer';
2
- import { InputEvtType } from '../types';
1
+ import Pointer, { PointerDevice } from '../Pointer.mjs';
2
+ import { InputEvtType } from '../types.mjs';
3
3
  /**
4
4
  * Dispatch a touch event to the currently selected tool. Intended for unit tests.
5
5
  *
@@ -0,0 +1,103 @@
1
+ import Editor from '../Editor';
2
+ import { ToolbarLocalization } from './localization';
3
+ import { ActionButtonIcon } from './types';
4
+ import BaseWidget from './widgets/BaseWidget';
5
+ export declare const toolbarCSSPrefix = "toolbar-";
6
+ interface SpacerOptions {
7
+ grow: number;
8
+ minSize: string;
9
+ maxSize: string;
10
+ }
11
+ export default class HTMLToolbar {
12
+ private editor;
13
+ private localizationTable;
14
+ private container;
15
+ private resizeObserver;
16
+ private listeners;
17
+ private widgetOrderCounter;
18
+ private widgetsById;
19
+ private widgetList;
20
+ private overflowWidget;
21
+ private static colorisStarted;
22
+ private updateColoris;
23
+ /** @internal */
24
+ constructor(editor: Editor, parent: HTMLElement, localizationTable?: ToolbarLocalization);
25
+ setupColorPickers(): void;
26
+ private reLayoutQueued;
27
+ private queueReLayout;
28
+ private reLayout;
29
+ /**
30
+ * Adds an `ActionButtonWidget` or `BaseToolWidget`. The widget should not have already have a parent
31
+ * (i.e. its `addTo` method should not have been called).
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const toolbar = editor.addToolbar();
36
+ * const insertImageWidget = new InsertImageWidget(editor);
37
+ * toolbar.addWidget(insertImageWidget);
38
+ * ```
39
+ */
40
+ addWidget(widget: BaseWidget): void;
41
+ /**
42
+ * Adds a spacer.
43
+ *
44
+ * @example
45
+ * Adding a save button that moves to the very right edge of the toolbar
46
+ * while keeping the other buttons centered:
47
+ * ```ts
48
+ * const toolbar = editor.addToolbar(false);
49
+ *
50
+ * toolbar.addSpacer({ grow: 1 });
51
+ * toolbar.addDefaults();
52
+ * toolbar.addSpacer({ grow: 1 });
53
+ *
54
+ * toolbar.addActionButton({
55
+ * label: 'Save',
56
+ * icon: editor.icons.makeSaveIcon(),
57
+ * }, () => {
58
+ * saveCallback();
59
+ * });
60
+ * ```
61
+ */
62
+ addSpacer(options?: Partial<SpacerOptions>): void;
63
+ serializeState(): string;
64
+ /**
65
+ * Deserialize toolbar widgets from the given state.
66
+ * Assumes that toolbar widgets are in the same order as when state was serialized.
67
+ */
68
+ deserializeState(state: string): void;
69
+ /**
70
+ * Adds an action button with `title` to this toolbar (or to the given `parent` element).
71
+ *
72
+ * @return The added button.
73
+ */
74
+ addActionButton(title: string | ActionButtonIcon, command: () => void, mustBeToplevel?: boolean): BaseWidget;
75
+ addUndoRedoButtons(): void;
76
+ addDefaultToolWidgets(): void;
77
+ addDefaultActionButtons(): void;
78
+ /**
79
+ * Adds a widget that toggles the overflow menu. Call `addOverflowWidget` to ensure
80
+ * that this widget is in the correct space (if shown).
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * toolbar.addDefaultToolWidgets();
85
+ * toolbar.addOverflowWidget();
86
+ * toolbar.addDefaultActionButtons();
87
+ * ```
88
+ * shows the overflow widget between the default tool widgets and the default action buttons,
89
+ * if shown.
90
+ */
91
+ addOverflowWidget(): void;
92
+ /**
93
+ * Adds both the default tool widgets and action buttons. Equivalent to
94
+ * ```ts
95
+ * toolbar.addDefaultToolWidgets();
96
+ * toolbar.addOverflowWidget();
97
+ * toolbar.addDefaultActionButtons();
98
+ * ```
99
+ */
100
+ addDefaults(): void;
101
+ remove(): void;
102
+ }
103
+ export {};
@@ -1,21 +1,21 @@
1
- import { EditorEventType } from '../types';
1
+ import { EditorEventType } from '../types.mjs';
2
2
  import { coloris, init as colorisInit } from '@melloware/coloris';
3
- import Color4 from '../Color4';
4
- import { defaultToolbarLocalization } from './localization';
5
- import SelectionTool from '../tools/SelectionTool/SelectionTool';
6
- import PanZoomTool from '../tools/PanZoom';
7
- import TextTool from '../tools/TextTool';
8
- import EraserTool from '../tools/Eraser';
9
- import PenTool from '../tools/Pen';
10
- import PenToolWidget from './widgets/PenToolWidget';
11
- import EraserWidget from './widgets/EraserToolWidget';
12
- import SelectionToolWidget from './widgets/SelectionToolWidget';
13
- import TextToolWidget from './widgets/TextToolWidget';
14
- import HandToolWidget from './widgets/HandToolWidget';
15
- import ActionButtonWidget from './widgets/ActionButtonWidget';
16
- import InsertImageWidget from './widgets/InsertImageWidget';
17
- import DocumentPropertiesWidget from './widgets/DocumentPropertiesWidget';
18
- import OverflowWidget from './widgets/OverflowWidget';
3
+ import Color4 from '../Color4.mjs';
4
+ import { defaultToolbarLocalization } from './localization.mjs';
5
+ import SelectionTool from '../tools/SelectionTool/SelectionTool.mjs';
6
+ import PanZoomTool from '../tools/PanZoom.mjs';
7
+ import TextTool from '../tools/TextTool.mjs';
8
+ import EraserTool from '../tools/Eraser.mjs';
9
+ import PenTool from '../tools/Pen.mjs';
10
+ import PenToolWidget from './widgets/PenToolWidget.mjs';
11
+ import EraserWidget from './widgets/EraserToolWidget.mjs';
12
+ import SelectionToolWidget from './widgets/SelectionToolWidget.mjs';
13
+ import TextToolWidget from './widgets/TextToolWidget.mjs';
14
+ import HandToolWidget from './widgets/HandToolWidget.mjs';
15
+ import ActionButtonWidget from './widgets/ActionButtonWidget.mjs';
16
+ import InsertImageWidget from './widgets/InsertImageWidget.mjs';
17
+ import DocumentPropertiesWidget from './widgets/DocumentPropertiesWidget.mjs';
18
+ import OverflowWidget from './widgets/OverflowWidget.mjs';
19
19
  export const toolbarCSSPrefix = 'toolbar-';
20
20
  export default class HTMLToolbar {
21
21
  /** @internal */
@@ -0,0 +1,62 @@
1
+ import Color4 from '../Color4';
2
+ import { ComponentBuilderFactory } from '../components/builders/types';
3
+ import TextStyle from '../rendering/TextRenderingStyle';
4
+ import Pen from '../tools/Pen';
5
+ export type IconType = HTMLImageElement | SVGElement;
6
+ /**
7
+ * Provides icons that can be used in the toolbar, etc.
8
+ * Extend this class and override methods to customize icons.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * class CustomIconProvider extends jsdraw.IconProvider {
13
+ * // Use '☺' instead of the default dropdown symbol.
14
+ * public makeDropdownIcon() {
15
+ * const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
16
+ * icon.innerHTML = `
17
+ * <text x='5' y='55' style='fill: var(--icon-color); font-size: 50pt;'>☺</text>
18
+ * `;
19
+ * icon.setAttribute('viewBox', '0 0 100 100');
20
+ * return icon;
21
+ * }
22
+ * }
23
+ *
24
+ * const icons = new CustomIconProvider();
25
+ * const editor = new jsdraw.Editor(document.body, {
26
+ * iconProvider: icons,
27
+ * });
28
+ *
29
+ * // Add a toolbar that uses these icons
30
+ * editor.addToolbar();
31
+ * ```
32
+ */
33
+ export default class IconProvider {
34
+ makeUndoIcon(): IconType;
35
+ makeRedoIcon(mirror?: boolean): IconType;
36
+ makeDropdownIcon(): IconType;
37
+ makeEraserIcon(eraserSize?: number): IconType;
38
+ makeSelectionIcon(): IconType;
39
+ /**
40
+ * @param pathData - SVG path data (e.g. `m10,10l30,30z`)
41
+ * @param fill - A valid CSS color (e.g. `var(--icon-color)` or `#f0f`). This can be `none`.
42
+ */
43
+ protected makeIconFromPath(pathData: string, fill?: string, strokeColor?: string, strokeWidth?: string): IconType;
44
+ makeHandToolIcon(): IconType;
45
+ makeTouchPanningIcon(): IconType;
46
+ makeAllDevicePanningIcon(): IconType;
47
+ makeZoomIcon(): IconType;
48
+ makeRotationLockIcon(): IconType;
49
+ makeInsertImageIcon(): IconType;
50
+ makeTextIcon(textStyle: TextStyle): IconType;
51
+ makePenIcon(strokeSize: number, color: string | Color4, rounded?: boolean): IconType;
52
+ makeIconFromFactory(pen: Pen, factory: ComponentBuilderFactory): IconType;
53
+ makePipetteIcon(color?: Color4): IconType;
54
+ makeFormatSelectionIcon(): IconType;
55
+ makeResizeViewportIcon(): IconType;
56
+ makeDuplicateSelectionIcon(): IconType;
57
+ makePasteIcon(): IconType;
58
+ makeDeleteSelectionIcon(): IconType;
59
+ makeSaveIcon(): IconType;
60
+ makeConfigureDocumentIcon(): IconType;
61
+ makeOverflowIcon(): IconType;
62
+ }
@@ -1,7 +1,7 @@
1
- import Color4 from '../Color4';
2
- import { Vec2 } from '../math/Vec2';
3
- import SVGRenderer from '../rendering/renderers/SVGRenderer';
4
- import Viewport from '../Viewport';
1
+ import Color4 from '../Color4.mjs';
2
+ import { Vec2 } from '../math/Vec2.mjs';
3
+ import SVGRenderer from '../rendering/renderers/SVGRenderer.mjs';
4
+ import Viewport from '../Viewport.mjs';
5
5
  const svgNamespace = 'http://www.w3.org/2000/svg';
6
6
  const iconColorFill = `
7
7
  style='fill: var(--icon-color);'
@@ -0,0 +1,3 @@
1
+ export * from './widgets/lib.mjs';
2
+ export * from './makeColorInput.mjs';
3
+ export { default as IconProvider } from './IconProvider.mjs';
@@ -0,0 +1,49 @@
1
+ export interface ToolbarLocalization {
2
+ fontLabel: string;
3
+ textSize: string;
4
+ touchPanning: string;
5
+ lockRotation: string;
6
+ outlinedRectanglePen: string;
7
+ filledRectanglePen: string;
8
+ linePen: string;
9
+ arrowPen: string;
10
+ image: string;
11
+ inputAltText: string;
12
+ chooseFile: string;
13
+ cancel: string;
14
+ submit: string;
15
+ freehandPen: string;
16
+ pressureSensitiveFreehandPen: string;
17
+ selectObjectType: string;
18
+ colorLabel: string;
19
+ pen: string;
20
+ eraser: string;
21
+ select: string;
22
+ handTool: string;
23
+ thicknessLabel: string;
24
+ resizeImageToSelection: string;
25
+ deleteSelection: string;
26
+ duplicateSelection: string;
27
+ pickColorFromScreen: string;
28
+ clickToPickColorAnnouncement: string;
29
+ reformatSelection: string;
30
+ undo: string;
31
+ redo: string;
32
+ zoom: string;
33
+ resetView: string;
34
+ selectionToolKeyboardShortcuts: string;
35
+ paste: string;
36
+ documentProperties: string;
37
+ backgroundColor: string;
38
+ imageWidthOption: string;
39
+ imageHeightOption: string;
40
+ toggleOverflow: string;
41
+ errorImageHasZeroSize: string;
42
+ dropdownShown: (toolName: string) => string;
43
+ dropdownHidden: (toolName: string) => string;
44
+ zoomLevel: (zoomPercentage: number) => string;
45
+ colorChangedAnnouncement: (color: string) => string;
46
+ imageSize: (size: number, units: string) => string;
47
+ imageLoadError: (message: string) => string;
48
+ }
49
+ export declare const defaultToolbarLocalization: ToolbarLocalization;
@@ -0,0 +1,6 @@
1
+ import Color4 from '../Color4';
2
+ import Editor from '../Editor';
3
+ type OnColorChangeListener = (color: Color4) => void;
4
+ type SetColorCallback = (color: Color4 | string) => void;
5
+ export declare const makeColorInput: (editor: Editor, onColorChange: OnColorChangeListener) => [HTMLInputElement, HTMLElement, SetColorCallback];
6
+ export default makeColorInput;
@@ -1,6 +1,6 @@
1
- import Color4 from '../Color4';
2
- import PipetteTool from '../tools/PipetteTool';
3
- import { EditorEventType } from '../types';
1
+ import Color4 from '../Color4.mjs';
2
+ import PipetteTool from '../tools/PipetteTool.mjs';
3
+ import { EditorEventType } from '../types.mjs';
4
4
  // Returns [ color input, input container, callback to change the color value ].
5
5
  export const makeColorInput = (editor, onColorChange) => {
6
6
  const colorInputContainer = document.createElement('span');
@@ -0,0 +1,4 @@
1
+ export interface ActionButtonIcon {
2
+ icon: Element;
3
+ label: string;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import Editor from '../../Editor';
2
+ import { ToolbarLocalization } from '../localization';
3
+ import BaseWidget from './BaseWidget';
4
+ export default class ActionButtonWidget extends BaseWidget {
5
+ protected makeIcon: () => Element | null;
6
+ protected title: string;
7
+ protected clickAction: () => void;
8
+ protected mustBeToplevel: boolean;
9
+ constructor(editor: Editor, id: string, makeIcon: () => Element | null, title: string, clickAction: () => void, localizationTable?: ToolbarLocalization, mustBeToplevel?: boolean);
10
+ protected handleClick(): void;
11
+ protected getTitle(): string;
12
+ protected createIcon(): Element | null;
13
+ protected fillDropdown(_dropdown: HTMLElement): boolean;
14
+ canBeInOverflowMenu(): boolean;
15
+ }
@@ -1,4 +1,4 @@
1
- import BaseWidget from './BaseWidget';
1
+ import BaseWidget from './BaseWidget.mjs';
2
2
  export default class ActionButtonWidget extends BaseWidget {
3
3
  constructor(editor, id, makeIcon, title, clickAction, localizationTable, mustBeToplevel = false) {
4
4
  super(editor, id, localizationTable);
@@ -0,0 +1,11 @@
1
+ import Editor from '../../Editor';
2
+ import BaseTool from '../../tools/BaseTool';
3
+ import { ToolbarLocalization } from '../localization';
4
+ import BaseWidget from './BaseWidget';
5
+ export default abstract class BaseToolWidget extends BaseWidget {
6
+ protected editor: Editor;
7
+ protected targetTool: BaseTool;
8
+ constructor(editor: Editor, targetTool: BaseTool, id: string, localizationTable?: ToolbarLocalization);
9
+ protected handleClick(): void;
10
+ addTo(parent: HTMLElement): HTMLElement;
11
+ }
@@ -1,5 +1,5 @@
1
- import { EditorEventType } from '../../types';
2
- import BaseWidget from './BaseWidget';
1
+ import { EditorEventType } from '../../types.mjs';
2
+ import BaseWidget from './BaseWidget.mjs';
3
3
  export default class BaseToolWidget extends BaseWidget {
4
4
  constructor(editor, targetTool, id, localizationTable) {
5
5
  super(editor, id, localizationTable);