js-draw 0.17.3 → 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 (516) 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 +10 -1
  5. package/README.md +17 -8
  6. package/build_tools/postDist.ts +71 -0
  7. package/dist/bundle.js +9 -1
  8. package/dist/cjs/build_tools/BundledFile.js +163 -0
  9. package/dist/cjs/build_tools/buildTranslationTemplate.js +119 -0
  10. package/dist/cjs/build_tools/bundle.js +10 -0
  11. package/dist/cjs/build_tools/postDist.js +72 -0
  12. package/dist/{src → cjs/src}/Color4.d.ts +1 -0
  13. package/dist/cjs/src/Color4.js +197 -0
  14. package/dist/{src → cjs/src}/Editor.d.ts +57 -1
  15. package/dist/cjs/src/Editor.js +904 -0
  16. package/dist/{src → cjs/src}/EditorImage.d.ts +4 -2
  17. package/dist/cjs/src/EditorImage.js +486 -0
  18. package/dist/cjs/src/EventDispatcher.js +57 -0
  19. package/dist/cjs/src/Pointer.js +84 -0
  20. package/dist/{src → cjs/src}/SVGLoader.d.ts +4 -0
  21. package/dist/cjs/src/SVGLoader.js +472 -0
  22. package/dist/cjs/src/UndoRedoHistory.js +93 -0
  23. package/dist/cjs/src/Viewport.js +264 -0
  24. package/dist/cjs/src/bundle/bundled.js +24 -0
  25. package/dist/cjs/src/commands/Command.js +34 -0
  26. package/dist/cjs/src/commands/Duplicate.js +39 -0
  27. package/dist/cjs/src/commands/Erase.js +63 -0
  28. package/dist/cjs/src/commands/SerializableCommand.js +42 -0
  29. package/dist/cjs/src/commands/UnresolvedCommand.js +28 -0
  30. package/dist/cjs/src/commands/invertCommand.js +49 -0
  31. package/dist/cjs/src/commands/lib.js +18 -0
  32. package/dist/cjs/src/commands/localization.js +24 -0
  33. package/dist/cjs/src/commands/uniteCommands.js +121 -0
  34. package/dist/cjs/src/components/AbstractComponent.js +258 -0
  35. package/dist/cjs/src/components/ImageBackground.js +146 -0
  36. package/dist/cjs/src/components/ImageComponent.js +152 -0
  37. package/dist/cjs/src/components/RestylableComponent.js +88 -0
  38. package/dist/cjs/src/components/SVGGlobalAttributesObject.js +65 -0
  39. package/dist/cjs/src/components/Stroke.js +191 -0
  40. package/dist/cjs/src/components/TextComponent.js +258 -0
  41. package/dist/cjs/src/components/UnknownSVGObject.js +50 -0
  42. package/dist/cjs/src/components/builders/ArrowBuilder.js +117 -0
  43. package/dist/cjs/src/components/builders/FreehandLineBuilder.js +173 -0
  44. package/dist/cjs/src/components/builders/LineBuilder.js +89 -0
  45. package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +347 -0
  46. package/dist/cjs/src/components/builders/RectangleBuilder.js +59 -0
  47. package/dist/cjs/src/components/builders/types.js +2 -0
  48. package/dist/cjs/src/components/lib.js +43 -0
  49. package/dist/cjs/src/components/localization.js +13 -0
  50. package/dist/cjs/src/components/util/StrokeSmoother.js +217 -0
  51. package/dist/cjs/src/components/util/describeComponentList.js +16 -0
  52. package/dist/{src → cjs/src}/lib.d.ts +2 -1
  53. package/dist/cjs/src/lib.js +63 -0
  54. package/dist/cjs/src/localization.js +13 -0
  55. package/dist/cjs/src/localizations/de.js +6 -0
  56. package/dist/cjs/src/localizations/en.js +6 -0
  57. package/dist/cjs/src/localizations/es.js +20 -0
  58. package/dist/cjs/src/localizations/getLocalizationTable.js +50 -0
  59. package/dist/cjs/src/math/LineSegment2.js +131 -0
  60. package/dist/cjs/src/math/Mat33.js +332 -0
  61. package/dist/cjs/src/math/Path.js +655 -0
  62. package/dist/cjs/src/math/Rect2.js +234 -0
  63. package/dist/cjs/src/math/Triangle.js +22 -0
  64. package/dist/cjs/src/math/Vec2.js +19 -0
  65. package/dist/cjs/src/math/Vec3.js +177 -0
  66. package/dist/cjs/src/math/lib.js +18 -0
  67. package/dist/cjs/src/math/rounding.js +135 -0
  68. package/dist/cjs/src/rendering/Display.js +214 -0
  69. package/dist/cjs/src/rendering/RenderingStyle.js +48 -0
  70. package/dist/cjs/src/rendering/TextRenderingStyle.js +29 -0
  71. package/dist/cjs/src/rendering/caching/CacheRecord.js +61 -0
  72. package/dist/cjs/src/rendering/caching/CacheRecordManager.js +50 -0
  73. package/dist/cjs/src/rendering/caching/RenderingCache.js +51 -0
  74. package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +326 -0
  75. package/dist/cjs/src/rendering/caching/testUtils.js +27 -0
  76. package/dist/cjs/src/rendering/caching/types.js +2 -0
  77. package/dist/{src → cjs/src}/rendering/lib.d.ts +2 -0
  78. package/dist/cjs/src/rendering/lib.js +16 -0
  79. package/dist/cjs/src/rendering/localization.js +12 -0
  80. package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +170 -0
  81. package/dist/{src → cjs/src}/rendering/renderers/CanvasRenderer.d.ts +25 -0
  82. package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +236 -0
  83. package/dist/cjs/src/rendering/renderers/DummyRenderer.js +112 -0
  84. package/dist/{src → cjs/src}/rendering/renderers/SVGRenderer.d.ts +15 -0
  85. package/dist/cjs/src/rendering/renderers/SVGRenderer.js +311 -0
  86. package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +63 -0
  87. package/dist/cjs/src/testing/beforeEachFile.js +12 -0
  88. package/dist/cjs/src/testing/createEditor.js +14 -0
  89. package/dist/cjs/src/testing/lib.d.ts +2 -0
  90. package/dist/cjs/src/testing/lib.js +10 -0
  91. package/dist/cjs/src/testing/loadExpectExtensions.js +28 -0
  92. package/dist/cjs/src/testing/sendPenEvent.d.ts +12 -0
  93. package/dist/cjs/src/testing/sendPenEvent.js +24 -0
  94. package/dist/cjs/src/testing/sendTouchEvent.d.ts +42 -0
  95. package/dist/cjs/src/testing/sendTouchEvent.js +87 -0
  96. package/dist/cjs/src/toolbar/HTMLToolbar.js +383 -0
  97. package/dist/cjs/src/toolbar/IconProvider.js +660 -0
  98. package/dist/cjs/src/toolbar/lib.js +24 -0
  99. package/dist/cjs/src/toolbar/localization.js +51 -0
  100. package/dist/cjs/src/toolbar/makeColorInput.js +120 -0
  101. package/dist/cjs/src/toolbar/types.js +2 -0
  102. package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +31 -0
  103. package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +50 -0
  104. package/dist/cjs/src/toolbar/widgets/BaseWidget.js +313 -0
  105. package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +126 -0
  106. package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +63 -0
  107. package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +201 -0
  108. package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +176 -0
  109. package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +77 -0
  110. package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +226 -0
  111. package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +153 -0
  112. package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +115 -0
  113. package/dist/cjs/src/toolbar/widgets/lib.js +26 -0
  114. package/dist/cjs/src/tools/BaseTool.js +66 -0
  115. package/dist/cjs/src/tools/Eraser.js +112 -0
  116. package/dist/cjs/src/tools/FindTool.js +121 -0
  117. package/dist/cjs/src/tools/PanZoom.js +421 -0
  118. package/dist/cjs/src/tools/PasteHandler.js +99 -0
  119. package/dist/cjs/src/tools/Pen.js +179 -0
  120. package/dist/cjs/src/tools/PipetteTool.js +45 -0
  121. package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +28 -0
  122. package/dist/cjs/src/tools/SelectionTool/Selection.js +488 -0
  123. package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +85 -0
  124. package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +405 -0
  125. package/dist/cjs/src/tools/SelectionTool/TransformMode.js +107 -0
  126. package/dist/cjs/src/tools/SelectionTool/types.js +14 -0
  127. package/dist/cjs/src/tools/TextTool.js +262 -0
  128. package/dist/cjs/src/tools/ToolController.js +187 -0
  129. package/dist/cjs/src/tools/ToolEnabledGroup.js +14 -0
  130. package/dist/cjs/src/tools/ToolSwitcherShortcut.js +38 -0
  131. package/dist/cjs/src/tools/ToolbarShortcutHandler.js +29 -0
  132. package/dist/cjs/src/tools/UndoRedoShortcut.js +28 -0
  133. package/dist/cjs/src/tools/lib.js +36 -0
  134. package/dist/cjs/src/tools/localization.js +30 -0
  135. package/dist/cjs/src/types.js +38 -0
  136. package/dist/cjs/src/util/assertions.js +51 -0
  137. package/dist/cjs/src/util/fileToBase64.js +15 -0
  138. package/dist/cjs/src/util/untilNextAnimationFrame.js +9 -0
  139. package/dist/cjs/src/util/waitForTimeout.js +9 -0
  140. package/dist/mjs/build_tools/BundledFile.d.ts +13 -0
  141. package/dist/{build_tools/buildTranslationTemplate.js → mjs/build_tools/buildTranslationTemplate.mjs} +1 -1
  142. package/dist/{build_tools/bundle.js → mjs/build_tools/bundle.mjs} +1 -1
  143. package/dist/mjs/build_tools/postDist.d.ts +1 -0
  144. package/dist/mjs/build_tools/postDist.mjs +67 -0
  145. package/dist/mjs/src/Color4.d.ts +61 -0
  146. package/dist/{src/Color4.js → mjs/src/Color4.mjs} +1 -0
  147. package/dist/mjs/src/Editor.d.ts +308 -0
  148. package/dist/{src/Editor.js → mjs/src/Editor.mjs} +86 -49
  149. package/dist/mjs/src/EditorImage.d.ts +97 -0
  150. package/dist/{src/EditorImage.js → mjs/src/EditorImage.mjs} +12 -10
  151. package/dist/mjs/src/EventDispatcher.d.ts +30 -0
  152. package/dist/mjs/src/Pointer.d.ts +24 -0
  153. package/dist/{src/Pointer.js → mjs/src/Pointer.mjs} +1 -1
  154. package/dist/mjs/src/SVGLoader.d.ts +48 -0
  155. package/dist/{src/SVGLoader.js → mjs/src/SVGLoader.mjs} +15 -11
  156. package/dist/mjs/src/UndoRedoHistory.d.ts +19 -0
  157. package/dist/{src/UndoRedoHistory.js → mjs/src/UndoRedoHistory.mjs} +1 -1
  158. package/dist/mjs/src/Viewport.d.ts +71 -0
  159. package/dist/{src/Viewport.js → mjs/src/Viewport.mjs} +5 -5
  160. package/dist/mjs/src/bundle/bundled.d.ts +4 -0
  161. package/dist/{src/bundle/bundled.js → mjs/src/bundle/bundled.mjs} +2 -2
  162. package/dist/mjs/src/commands/Command.d.ts +16 -0
  163. package/dist/mjs/src/commands/Duplicate.d.ts +14 -0
  164. package/dist/{src/commands/Duplicate.js → mjs/src/commands/Duplicate.mjs} +3 -3
  165. package/dist/mjs/src/commands/Erase.d.ts +14 -0
  166. package/dist/{src/commands/Erase.js → mjs/src/commands/Erase.mjs} +3 -3
  167. package/dist/mjs/src/commands/SerializableCommand.d.ts +12 -0
  168. package/dist/{src/commands/SerializableCommand.js → mjs/src/commands/SerializableCommand.mjs} +1 -1
  169. package/dist/mjs/src/commands/UnresolvedCommand.d.ts +14 -0
  170. package/dist/{src/commands/UnresolvedCommand.js → mjs/src/commands/UnresolvedCommand.mjs} +1 -1
  171. package/dist/mjs/src/commands/invertCommand.d.ts +4 -0
  172. package/dist/{src/commands/invertCommand.js → mjs/src/commands/invertCommand.mjs} +2 -2
  173. package/dist/mjs/src/commands/lib.mjs +7 -0
  174. package/dist/mjs/src/commands/localization.d.ts +23 -0
  175. package/dist/mjs/src/commands/uniteCommands.d.ts +4 -0
  176. package/dist/{src/commands/uniteCommands.js → mjs/src/commands/uniteCommands.mjs} +2 -2
  177. package/dist/mjs/src/components/AbstractComponent.d.ts +73 -0
  178. package/dist/{src/components/AbstractComponent.js → mjs/src/components/AbstractComponent.mjs} +4 -4
  179. package/dist/mjs/src/components/ImageBackground.d.ts +42 -0
  180. package/dist/{src/components/ImageBackground.js → mjs/src/components/ImageBackground.mjs} +5 -5
  181. package/dist/mjs/src/components/ImageComponent.d.ts +31 -0
  182. package/dist/{src/components/ImageComponent.js → mjs/src/components/ImageComponent.mjs} +3 -3
  183. package/dist/mjs/src/components/RestylableComponent.d.ts +24 -0
  184. package/dist/{src/components/RestylableComponent.js → mjs/src/components/RestylableComponent.mjs} +4 -4
  185. package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +21 -0
  186. package/dist/{src/components/SVGGlobalAttributesObject.js → mjs/src/components/SVGGlobalAttributesObject.mjs} +3 -3
  187. package/dist/mjs/src/components/Stroke.d.ts +40 -0
  188. package/dist/{src/components/Stroke.js → mjs/src/components/Stroke.mjs} +5 -5
  189. package/dist/mjs/src/components/TextComponent.d.ts +53 -0
  190. package/dist/{src/components/TextComponent.js → mjs/src/components/TextComponent.mjs} +7 -7
  191. package/dist/mjs/src/components/UnknownSVGObject.d.ts +18 -0
  192. package/dist/{src/components/UnknownSVGObject.js → mjs/src/components/UnknownSVGObject.mjs} +3 -3
  193. package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +19 -0
  194. package/dist/{src/components/builders/ArrowBuilder.js → mjs/src/components/builders/ArrowBuilder.mjs} +2 -2
  195. package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +33 -0
  196. package/dist/{src/components/builders/FreehandLineBuilder.js → mjs/src/components/builders/FreehandLineBuilder.mjs} +7 -7
  197. package/dist/mjs/src/components/builders/LineBuilder.d.ts +18 -0
  198. package/dist/{src/components/builders/LineBuilder.js → mjs/src/components/builders/LineBuilder.mjs} +2 -2
  199. package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +36 -0
  200. package/dist/{src/components/builders/PressureSensitiveFreehandLineBuilder.js → mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs} +6 -6
  201. package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +20 -0
  202. package/dist/{src/components/builders/RectangleBuilder.js → mjs/src/components/builders/RectangleBuilder.mjs} +4 -4
  203. package/dist/mjs/src/components/builders/types.d.ts +12 -0
  204. package/dist/mjs/src/components/builders/types.mjs +1 -0
  205. package/dist/{src/components/lib.js → mjs/src/components/lib.d.ts} +3 -3
  206. package/dist/mjs/src/components/lib.mjs +12 -0
  207. package/dist/mjs/src/components/localization.d.ts +11 -0
  208. package/dist/mjs/src/components/util/StrokeSmoother.d.ts +35 -0
  209. package/dist/{src/components/util/StrokeSmoother.js → mjs/src/components/util/StrokeSmoother.mjs} +3 -3
  210. package/dist/mjs/src/components/util/describeComponentList.d.ts +4 -0
  211. package/dist/{src/lib.js → mjs/src/lib.d.ts} +4 -3
  212. package/dist/mjs/src/lib.mjs +34 -0
  213. package/dist/mjs/src/localization.d.ts +14 -0
  214. package/dist/{src/localization.js → mjs/src/localization.mjs} +5 -5
  215. package/dist/mjs/src/localizations/de.d.ts +3 -0
  216. package/dist/{src/localizations/de.js → mjs/src/localizations/de.mjs} +1 -1
  217. package/dist/mjs/src/localizations/en.d.ts +3 -0
  218. package/dist/{src/localizations/en.js → mjs/src/localizations/en.mjs} +1 -1
  219. package/dist/mjs/src/localizations/es.d.ts +3 -0
  220. package/dist/{src/localizations/es.js → mjs/src/localizations/es.mjs} +1 -1
  221. package/dist/mjs/src/localizations/getLocalizationTable.d.ts +3 -0
  222. package/dist/{src/localizations/getLocalizationTable.js → mjs/src/localizations/getLocalizationTable.mjs} +4 -4
  223. package/dist/mjs/src/math/LineSegment2.d.ts +24 -0
  224. package/dist/{src/math/LineSegment2.js → mjs/src/math/LineSegment2.mjs} +2 -2
  225. package/dist/mjs/src/math/Mat33.d.ts +118 -0
  226. package/dist/{src/math/Mat33.js → mjs/src/math/Mat33.mjs} +2 -2
  227. package/dist/mjs/src/math/Path.d.ts +71 -0
  228. package/dist/{src/math/Path.js → mjs/src/math/Path.mjs} +5 -5
  229. package/dist/mjs/src/math/Rect2.d.ts +52 -0
  230. package/dist/{src/math/Rect2.js → mjs/src/math/Rect2.mjs} +2 -2
  231. package/dist/mjs/src/math/Triangle.d.ts +11 -0
  232. package/dist/mjs/src/math/Vec2.d.ts +13 -0
  233. package/dist/{src/math/Vec2.js → mjs/src/math/Vec2.mjs} +1 -1
  234. package/dist/mjs/src/math/Vec3.d.ts +106 -0
  235. package/dist/mjs/src/math/lib.mjs +7 -0
  236. package/dist/mjs/src/math/rounding.d.ts +4 -0
  237. package/dist/mjs/src/rendering/Display.d.ts +75 -0
  238. package/dist/{src/rendering/Display.js → mjs/src/rendering/Display.mjs} +7 -7
  239. package/dist/mjs/src/rendering/RenderingStyle.d.ts +31 -0
  240. package/dist/{src/rendering/RenderingStyle.js → mjs/src/rendering/RenderingStyle.mjs} +1 -1
  241. package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +36 -0
  242. package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs} +1 -1
  243. package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +20 -0
  244. package/dist/{src/rendering/caching/CacheRecord.js → mjs/src/rendering/caching/CacheRecord.mjs} +1 -1
  245. package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +12 -0
  246. package/dist/{src/rendering/caching/CacheRecordManager.js → mjs/src/rendering/caching/CacheRecordManager.mjs} +1 -1
  247. package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +11 -0
  248. package/dist/{src/rendering/caching/RenderingCache.js → mjs/src/rendering/caching/RenderingCache.mjs} +3 -3
  249. package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +29 -0
  250. package/dist/{src/rendering/caching/RenderingCacheNode.js → mjs/src/rendering/caching/RenderingCacheNode.mjs} +3 -3
  251. package/dist/mjs/src/rendering/caching/testUtils.d.ts +9 -0
  252. package/dist/{src/rendering/caching/testUtils.js → mjs/src/rendering/caching/testUtils.mjs} +4 -4
  253. package/dist/mjs/src/rendering/caching/types.d.ts +19 -0
  254. package/dist/mjs/src/rendering/caching/types.mjs +1 -0
  255. package/dist/{src/rendering/lib.js → mjs/src/rendering/lib.d.ts} +2 -0
  256. package/dist/mjs/src/rendering/lib.mjs +5 -0
  257. package/dist/mjs/src/rendering/localization.d.ts +10 -0
  258. package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +68 -0
  259. package/dist/{src/rendering/renderers/AbstractRenderer.js → mjs/src/rendering/renderers/AbstractRenderer.mjs} +3 -3
  260. package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +63 -0
  261. package/dist/{src/rendering/renderers/CanvasRenderer.js → mjs/src/rendering/renderers/CanvasRenderer.mjs} +32 -5
  262. package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +35 -0
  263. package/dist/{src/rendering/renderers/DummyRenderer.js → mjs/src/rendering/renderers/DummyRenderer.mjs} +2 -2
  264. package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +57 -0
  265. package/dist/{src/rendering/renderers/SVGRenderer.js → mjs/src/rendering/renderers/SVGRenderer.mjs} +33 -7
  266. package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +29 -0
  267. package/dist/{src/rendering/renderers/TextOnlyRenderer.js → mjs/src/rendering/renderers/TextOnlyRenderer.mjs} +2 -2
  268. package/dist/mjs/src/testing/beforeEachFile.d.ts +1 -0
  269. package/dist/{src/testing/beforeEachFile.js → mjs/src/testing/beforeEachFile.mjs} +1 -1
  270. package/dist/mjs/src/testing/createEditor.d.ts +4 -0
  271. package/dist/{src/testing/createEditor.js → mjs/src/testing/createEditor.mjs} +2 -2
  272. package/dist/mjs/src/testing/lib.d.ts +2 -0
  273. package/dist/mjs/src/testing/lib.mjs +2 -0
  274. package/dist/mjs/src/testing/loadExpectExtensions.d.ts +2 -0
  275. package/dist/mjs/src/testing/sendPenEvent.d.ts +12 -0
  276. package/dist/mjs/src/testing/sendPenEvent.mjs +19 -0
  277. package/dist/mjs/src/testing/sendTouchEvent.d.ts +42 -0
  278. package/dist/mjs/src/testing/sendTouchEvent.mjs +62 -0
  279. package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +103 -0
  280. package/dist/{src/toolbar/HTMLToolbar.js → mjs/src/toolbar/HTMLToolbar.mjs} +17 -17
  281. package/dist/mjs/src/toolbar/IconProvider.d.ts +62 -0
  282. package/dist/{src/toolbar/IconProvider.js → mjs/src/toolbar/IconProvider.mjs} +4 -4
  283. package/dist/mjs/src/toolbar/lib.mjs +3 -0
  284. package/dist/mjs/src/toolbar/localization.d.ts +49 -0
  285. package/dist/mjs/src/toolbar/makeColorInput.d.ts +6 -0
  286. package/dist/{src/toolbar/makeColorInput.js → mjs/src/toolbar/makeColorInput.mjs} +3 -3
  287. package/dist/mjs/src/toolbar/types.d.ts +4 -0
  288. package/dist/mjs/src/toolbar/types.mjs +1 -0
  289. package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +15 -0
  290. package/dist/{src/toolbar/widgets/ActionButtonWidget.js → mjs/src/toolbar/widgets/ActionButtonWidget.mjs} +1 -1
  291. package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +11 -0
  292. package/dist/{src/toolbar/widgets/BaseToolWidget.js → mjs/src/toolbar/widgets/BaseToolWidget.mjs} +2 -2
  293. package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +72 -0
  294. package/dist/{src/toolbar/widgets/BaseWidget.js → mjs/src/toolbar/widgets/BaseWidget.mjs} +3 -3
  295. package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +18 -0
  296. package/dist/{src/toolbar/widgets/DocumentPropertiesWidget.js → mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs} +9 -7
  297. package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +17 -0
  298. package/dist/{src/toolbar/widgets/EraserToolWidget.js → mjs/src/toolbar/widgets/EraserToolWidget.mjs} +3 -3
  299. package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +17 -0
  300. package/dist/{src/toolbar/widgets/HandToolWidget.js → mjs/src/toolbar/widgets/HandToolWidget.mjs} +7 -7
  301. package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +19 -0
  302. package/dist/{src/toolbar/widgets/InsertImageWidget.js → mjs/src/toolbar/widgets/InsertImageWidget.mjs} +8 -8
  303. package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +25 -0
  304. package/dist/{src/toolbar/widgets/OverflowWidget.js → mjs/src/toolbar/widgets/OverflowWidget.mjs} +1 -1
  305. package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +27 -0
  306. package/dist/{src/toolbar/widgets/PenToolWidget.js → mjs/src/toolbar/widgets/PenToolWidget.mjs} +11 -10
  307. package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +13 -0
  308. package/dist/{src/toolbar/widgets/SelectionToolWidget.js → mjs/src/toolbar/widgets/SelectionToolWidget.mjs} +8 -8
  309. package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +16 -0
  310. package/dist/{src/toolbar/widgets/TextToolWidget.js → mjs/src/toolbar/widgets/TextToolWidget.mjs} +9 -6
  311. package/dist/mjs/src/toolbar/widgets/lib.mjs +10 -0
  312. package/dist/mjs/src/tools/BaseTool.d.ts +22 -0
  313. package/dist/{src/tools/BaseTool.js → mjs/src/tools/BaseTool.mjs} +1 -1
  314. package/dist/mjs/src/tools/Eraser.d.ts +23 -0
  315. package/dist/{src/tools/Eraser.js → mjs/src/tools/Eraser.mjs} +8 -8
  316. package/dist/mjs/src/tools/FindTool.d.ts +21 -0
  317. package/dist/{src/tools/FindTool.js → mjs/src/tools/FindTool.mjs} +2 -2
  318. package/dist/mjs/src/tools/PanZoom.d.ts +52 -0
  319. package/dist/{src/tools/PanZoom.js → mjs/src/tools/PanZoom.mjs} +8 -8
  320. package/dist/mjs/src/tools/PasteHandler.d.ts +23 -0
  321. package/dist/{src/tools/PasteHandler.js → mjs/src/tools/PasteHandler.mjs} +7 -7
  322. package/dist/mjs/src/tools/Pen.d.ts +39 -0
  323. package/dist/{src/tools/Pen.js → mjs/src/tools/Pen.mjs} +5 -5
  324. package/dist/mjs/src/tools/PipetteTool.d.ts +18 -0
  325. package/dist/{src/tools/PipetteTool.js → mjs/src/tools/PipetteTool.mjs} +1 -1
  326. package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +8 -0
  327. package/dist/{src/tools/SelectionTool/SelectAllShortcutHandler.js → mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs} +2 -2
  328. package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +64 -0
  329. package/dist/{src/tools/SelectionTool/Selection.js → mjs/src/tools/SelectionTool/Selection.mjs} +12 -12
  330. package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +38 -0
  331. package/dist/{src/tools/SelectionTool/SelectionHandle.js → mjs/src/tools/SelectionTool/SelectionHandle.mjs} +3 -3
  332. package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +36 -0
  333. package/dist/{src/tools/SelectionTool/SelectionTool.js → mjs/src/tools/SelectionTool/SelectionTool.mjs} +13 -14
  334. package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +34 -0
  335. package/dist/{src/tools/SelectionTool/TransformMode.js → mjs/src/tools/SelectionTool/TransformMode.mjs} +4 -4
  336. package/dist/mjs/src/tools/SelectionTool/types.d.ts +9 -0
  337. package/dist/mjs/src/tools/TextTool.d.ts +33 -0
  338. package/dist/{src/tools/TextTool.js → mjs/src/tools/TextTool.mjs} +11 -11
  339. package/dist/mjs/src/tools/ToolController.d.ts +18 -0
  340. package/dist/{src/tools/ToolController.js → mjs/src/tools/ToolController.mjs} +16 -16
  341. package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +6 -0
  342. package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +16 -0
  343. package/dist/{src/tools/ToolSwitcherShortcut.js → mjs/src/tools/ToolSwitcherShortcut.mjs} +1 -1
  344. package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +12 -0
  345. package/dist/{src/tools/ToolbarShortcutHandler.js → mjs/src/tools/ToolbarShortcutHandler.mjs} +1 -1
  346. package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +8 -0
  347. package/dist/{src/tools/UndoRedoShortcut.js → mjs/src/tools/UndoRedoShortcut.mjs} +1 -1
  348. package/dist/{src/tools/lib.js → mjs/src/tools/lib.d.ts} +1 -1
  349. package/dist/mjs/src/tools/lib.mjs +16 -0
  350. package/dist/mjs/src/tools/localization.d.ts +28 -0
  351. package/dist/mjs/src/types.d.ts +151 -0
  352. package/dist/mjs/src/util/assertions.d.ts +23 -0
  353. package/dist/mjs/src/util/fileToBase64.d.ts +3 -0
  354. package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +3 -0
  355. package/dist/mjs/src/util/waitForTimeout.d.ts +2 -0
  356. package/package.json +34 -33
  357. package/src/Color4.ts +2 -0
  358. package/src/Editor.ts +62 -28
  359. package/src/EditorImage.ts +4 -2
  360. package/src/SVGLoader.ts +4 -0
  361. package/src/lib.ts +2 -1
  362. package/src/rendering/lib.ts +2 -0
  363. package/src/rendering/renderers/CanvasRenderer.ts +27 -0
  364. package/src/rendering/renderers/SVGRenderer.ts +32 -1
  365. package/src/testing/lib.ts +3 -0
  366. package/src/testing/sendPenEvent.ts +31 -0
  367. package/src/testing/sendTouchEvent.ts +36 -1
  368. package/src/toolbar/toolbar.css +5 -0
  369. package/src/toolbar/widgets/DocumentPropertiesWidget.ts +4 -2
  370. package/src/toolbar/widgets/PenToolWidget.ts +1 -0
  371. package/src/toolbar/widgets/TextToolWidget.ts +4 -1
  372. package/src/tools/Eraser.test.ts +11 -10
  373. package/src/tools/PanZoom.test.ts +1 -1
  374. package/src/tools/Pen.test.ts +63 -62
  375. package/src/tools/SelectionTool/SelectionTool.test.ts +15 -14
  376. package/src/tools/SelectionTool/SelectionTool.ts +5 -7
  377. package/tsconfig.json +3 -2
  378. package/tsconfig.mjs.json +9 -0
  379. package/dist/src/testing/sendTouchEvent.d.ts +0 -6
  380. package/dist/src/testing/sendTouchEvent.js +0 -26
  381. /package/dist/{build_tools → cjs/build_tools}/BundledFile.d.ts +0 -0
  382. /package/dist/{build_tools → cjs/build_tools}/buildTranslationTemplate.d.ts +0 -0
  383. /package/dist/{build_tools → cjs/build_tools}/bundle.d.ts +0 -0
  384. /package/dist/{src/components/builders/types.js → cjs/build_tools/postDist.d.ts} +0 -0
  385. /package/dist/{src → cjs/src}/EventDispatcher.d.ts +0 -0
  386. /package/dist/{src → cjs/src}/Pointer.d.ts +0 -0
  387. /package/dist/{src → cjs/src}/UndoRedoHistory.d.ts +0 -0
  388. /package/dist/{src → cjs/src}/Viewport.d.ts +0 -0
  389. /package/dist/{src → cjs/src}/bundle/bundled.d.ts +0 -0
  390. /package/dist/{src → cjs/src}/commands/Command.d.ts +0 -0
  391. /package/dist/{src → cjs/src}/commands/Duplicate.d.ts +0 -0
  392. /package/dist/{src → cjs/src}/commands/Erase.d.ts +0 -0
  393. /package/dist/{src → cjs/src}/commands/SerializableCommand.d.ts +0 -0
  394. /package/dist/{src → cjs/src}/commands/UnresolvedCommand.d.ts +0 -0
  395. /package/dist/{src → cjs/src}/commands/invertCommand.d.ts +0 -0
  396. /package/dist/{src → cjs/src}/commands/lib.d.ts +0 -0
  397. /package/dist/{src → cjs/src}/commands/localization.d.ts +0 -0
  398. /package/dist/{src → cjs/src}/commands/uniteCommands.d.ts +0 -0
  399. /package/dist/{src → cjs/src}/components/AbstractComponent.d.ts +0 -0
  400. /package/dist/{src → cjs/src}/components/ImageBackground.d.ts +0 -0
  401. /package/dist/{src → cjs/src}/components/ImageComponent.d.ts +0 -0
  402. /package/dist/{src → cjs/src}/components/RestylableComponent.d.ts +0 -0
  403. /package/dist/{src → cjs/src}/components/SVGGlobalAttributesObject.d.ts +0 -0
  404. /package/dist/{src → cjs/src}/components/Stroke.d.ts +0 -0
  405. /package/dist/{src → cjs/src}/components/TextComponent.d.ts +0 -0
  406. /package/dist/{src → cjs/src}/components/UnknownSVGObject.d.ts +0 -0
  407. /package/dist/{src → cjs/src}/components/builders/ArrowBuilder.d.ts +0 -0
  408. /package/dist/{src → cjs/src}/components/builders/FreehandLineBuilder.d.ts +0 -0
  409. /package/dist/{src → cjs/src}/components/builders/LineBuilder.d.ts +0 -0
  410. /package/dist/{src → cjs/src}/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -0
  411. /package/dist/{src → cjs/src}/components/builders/RectangleBuilder.d.ts +0 -0
  412. /package/dist/{src → cjs/src}/components/builders/types.d.ts +0 -0
  413. /package/dist/{src → cjs/src}/components/lib.d.ts +0 -0
  414. /package/dist/{src → cjs/src}/components/localization.d.ts +0 -0
  415. /package/dist/{src → cjs/src}/components/util/StrokeSmoother.d.ts +0 -0
  416. /package/dist/{src → cjs/src}/components/util/describeComponentList.d.ts +0 -0
  417. /package/dist/{src → cjs/src}/localization.d.ts +0 -0
  418. /package/dist/{src → cjs/src}/localizations/de.d.ts +0 -0
  419. /package/dist/{src → cjs/src}/localizations/en.d.ts +0 -0
  420. /package/dist/{src → cjs/src}/localizations/es.d.ts +0 -0
  421. /package/dist/{src → cjs/src}/localizations/getLocalizationTable.d.ts +0 -0
  422. /package/dist/{src → cjs/src}/math/LineSegment2.d.ts +0 -0
  423. /package/dist/{src → cjs/src}/math/Mat33.d.ts +0 -0
  424. /package/dist/{src → cjs/src}/math/Path.d.ts +0 -0
  425. /package/dist/{src → cjs/src}/math/Rect2.d.ts +0 -0
  426. /package/dist/{src → cjs/src}/math/Triangle.d.ts +0 -0
  427. /package/dist/{src → cjs/src}/math/Vec2.d.ts +0 -0
  428. /package/dist/{src → cjs/src}/math/Vec3.d.ts +0 -0
  429. /package/dist/{src → cjs/src}/math/lib.d.ts +0 -0
  430. /package/dist/{src → cjs/src}/math/rounding.d.ts +0 -0
  431. /package/dist/{src → cjs/src}/rendering/Display.d.ts +0 -0
  432. /package/dist/{src → cjs/src}/rendering/RenderingStyle.d.ts +0 -0
  433. /package/dist/{src → cjs/src}/rendering/TextRenderingStyle.d.ts +0 -0
  434. /package/dist/{src → cjs/src}/rendering/caching/CacheRecord.d.ts +0 -0
  435. /package/dist/{src → cjs/src}/rendering/caching/CacheRecordManager.d.ts +0 -0
  436. /package/dist/{src → cjs/src}/rendering/caching/RenderingCache.d.ts +0 -0
  437. /package/dist/{src → cjs/src}/rendering/caching/RenderingCacheNode.d.ts +0 -0
  438. /package/dist/{src → cjs/src}/rendering/caching/testUtils.d.ts +0 -0
  439. /package/dist/{src → cjs/src}/rendering/caching/types.d.ts +0 -0
  440. /package/dist/{src → cjs/src}/rendering/localization.d.ts +0 -0
  441. /package/dist/{src → cjs/src}/rendering/renderers/AbstractRenderer.d.ts +0 -0
  442. /package/dist/{src → cjs/src}/rendering/renderers/DummyRenderer.d.ts +0 -0
  443. /package/dist/{src → cjs/src}/rendering/renderers/TextOnlyRenderer.d.ts +0 -0
  444. /package/dist/{src → cjs/src}/testing/beforeEachFile.d.ts +0 -0
  445. /package/dist/{src → cjs/src}/testing/createEditor.d.ts +0 -0
  446. /package/dist/{src → cjs/src}/testing/loadExpectExtensions.d.ts +0 -0
  447. /package/dist/{src → cjs/src}/toolbar/HTMLToolbar.d.ts +0 -0
  448. /package/dist/{src → cjs/src}/toolbar/IconProvider.d.ts +0 -0
  449. /package/dist/{src → cjs/src}/toolbar/lib.d.ts +0 -0
  450. /package/dist/{src → cjs/src}/toolbar/localization.d.ts +0 -0
  451. /package/dist/{src → cjs/src}/toolbar/makeColorInput.d.ts +0 -0
  452. /package/dist/{src → cjs/src}/toolbar/types.d.ts +0 -0
  453. /package/dist/{src → cjs/src}/toolbar/widgets/ActionButtonWidget.d.ts +0 -0
  454. /package/dist/{src → cjs/src}/toolbar/widgets/BaseToolWidget.d.ts +0 -0
  455. /package/dist/{src → cjs/src}/toolbar/widgets/BaseWidget.d.ts +0 -0
  456. /package/dist/{src → cjs/src}/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -0
  457. /package/dist/{src → cjs/src}/toolbar/widgets/EraserToolWidget.d.ts +0 -0
  458. /package/dist/{src → cjs/src}/toolbar/widgets/HandToolWidget.d.ts +0 -0
  459. /package/dist/{src → cjs/src}/toolbar/widgets/InsertImageWidget.d.ts +0 -0
  460. /package/dist/{src → cjs/src}/toolbar/widgets/OverflowWidget.d.ts +0 -0
  461. /package/dist/{src → cjs/src}/toolbar/widgets/PenToolWidget.d.ts +0 -0
  462. /package/dist/{src → cjs/src}/toolbar/widgets/SelectionToolWidget.d.ts +0 -0
  463. /package/dist/{src → cjs/src}/toolbar/widgets/TextToolWidget.d.ts +0 -0
  464. /package/dist/{src → cjs/src}/toolbar/widgets/lib.d.ts +0 -0
  465. /package/dist/{src → cjs/src}/tools/BaseTool.d.ts +0 -0
  466. /package/dist/{src → cjs/src}/tools/Eraser.d.ts +0 -0
  467. /package/dist/{src → cjs/src}/tools/FindTool.d.ts +0 -0
  468. /package/dist/{src → cjs/src}/tools/PanZoom.d.ts +0 -0
  469. /package/dist/{src → cjs/src}/tools/PasteHandler.d.ts +0 -0
  470. /package/dist/{src → cjs/src}/tools/Pen.d.ts +0 -0
  471. /package/dist/{src → cjs/src}/tools/PipetteTool.d.ts +0 -0
  472. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -0
  473. /package/dist/{src → cjs/src}/tools/SelectionTool/Selection.d.ts +0 -0
  474. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionHandle.d.ts +0 -0
  475. /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionTool.d.ts +0 -0
  476. /package/dist/{src → cjs/src}/tools/SelectionTool/TransformMode.d.ts +0 -0
  477. /package/dist/{src → cjs/src}/tools/SelectionTool/types.d.ts +0 -0
  478. /package/dist/{src → cjs/src}/tools/TextTool.d.ts +0 -0
  479. /package/dist/{src → cjs/src}/tools/ToolController.d.ts +0 -0
  480. /package/dist/{src → cjs/src}/tools/ToolEnabledGroup.d.ts +0 -0
  481. /package/dist/{src → cjs/src}/tools/ToolSwitcherShortcut.d.ts +0 -0
  482. /package/dist/{src → cjs/src}/tools/ToolbarShortcutHandler.d.ts +0 -0
  483. /package/dist/{src → cjs/src}/tools/UndoRedoShortcut.d.ts +0 -0
  484. /package/dist/{src → cjs/src}/tools/lib.d.ts +0 -0
  485. /package/dist/{src → cjs/src}/tools/localization.d.ts +0 -0
  486. /package/dist/{src → cjs/src}/types.d.ts +0 -0
  487. /package/dist/{src → cjs/src}/util/assertions.d.ts +0 -0
  488. /package/dist/{src → cjs/src}/util/fileToBase64.d.ts +0 -0
  489. /package/dist/{src → cjs/src}/util/untilNextAnimationFrame.d.ts +0 -0
  490. /package/dist/{src → cjs/src}/util/waitForTimeout.d.ts +0 -0
  491. /package/dist/{build_tools/BundledFile.js → mjs/build_tools/BundledFile.mjs} +0 -0
  492. /package/dist/{src/rendering/caching/types.js → mjs/build_tools/buildTranslationTemplate.d.ts} +0 -0
  493. /package/dist/{src/toolbar/types.js → mjs/build_tools/bundle.d.ts} +0 -0
  494. /package/dist/{src/EventDispatcher.js → mjs/src/EventDispatcher.mjs} +0 -0
  495. /package/dist/{src/commands/Command.js → mjs/src/commands/Command.mjs} +0 -0
  496. /package/dist/{src/commands/lib.js → mjs/src/commands/lib.d.ts} +0 -0
  497. /package/dist/{src/commands/localization.js → mjs/src/commands/localization.mjs} +0 -0
  498. /package/dist/{src/components/localization.js → mjs/src/components/localization.mjs} +0 -0
  499. /package/dist/{src/components/util/describeComponentList.js → mjs/src/components/util/describeComponentList.mjs} +0 -0
  500. /package/dist/{src/math/Triangle.js → mjs/src/math/Triangle.mjs} +0 -0
  501. /package/dist/{src/math/Vec3.js → mjs/src/math/Vec3.mjs} +0 -0
  502. /package/dist/{src/math/lib.js → mjs/src/math/lib.d.ts} +0 -0
  503. /package/dist/{src/math/rounding.js → mjs/src/math/rounding.mjs} +0 -0
  504. /package/dist/{src/rendering/localization.js → mjs/src/rendering/localization.mjs} +0 -0
  505. /package/dist/{src/testing/loadExpectExtensions.js → mjs/src/testing/loadExpectExtensions.mjs} +0 -0
  506. /package/dist/{src/toolbar/lib.js → mjs/src/toolbar/lib.d.ts} +0 -0
  507. /package/dist/{src/toolbar/localization.js → mjs/src/toolbar/localization.mjs} +0 -0
  508. /package/dist/{src/toolbar/widgets/lib.js → mjs/src/toolbar/widgets/lib.d.ts} +0 -0
  509. /package/dist/{src/tools/SelectionTool/types.js → mjs/src/tools/SelectionTool/types.mjs} +0 -0
  510. /package/dist/{src/tools/ToolEnabledGroup.js → mjs/src/tools/ToolEnabledGroup.mjs} +0 -0
  511. /package/dist/{src/tools/localization.js → mjs/src/tools/localization.mjs} +0 -0
  512. /package/dist/{src/types.js → mjs/src/types.mjs} +0 -0
  513. /package/dist/{src/util/assertions.js → mjs/src/util/assertions.mjs} +0 -0
  514. /package/dist/{src/util/fileToBase64.js → mjs/src/util/fileToBase64.mjs} +0 -0
  515. /package/dist/{src/util/untilNextAnimationFrame.js → mjs/src/util/untilNextAnimationFrame.mjs} +0 -0
  516. /package/dist/{src/util/waitForTimeout.js → mjs/src/util/waitForTimeout.mjs} +0 -0
@@ -0,0 +1,71 @@
1
+ import { Bezier } from 'bezier-js';
2
+ import { RenderablePathSpec } from '../rendering/renderers/AbstractRenderer';
3
+ import RenderingStyle from '../rendering/RenderingStyle';
4
+ import LineSegment2 from './LineSegment2';
5
+ import Mat33 from './Mat33';
6
+ import Rect2 from './Rect2';
7
+ import { Point2 } from './Vec2';
8
+ export declare enum PathCommandType {
9
+ LineTo = 0,
10
+ MoveTo = 1,
11
+ CubicBezierTo = 2,
12
+ QuadraticBezierTo = 3
13
+ }
14
+ export interface CubicBezierPathCommand {
15
+ kind: PathCommandType.CubicBezierTo;
16
+ controlPoint1: Point2;
17
+ controlPoint2: Point2;
18
+ endPoint: Point2;
19
+ }
20
+ export interface QuadraticBezierPathCommand {
21
+ kind: PathCommandType.QuadraticBezierTo;
22
+ controlPoint: Point2;
23
+ endPoint: Point2;
24
+ }
25
+ export interface LinePathCommand {
26
+ kind: PathCommandType.LineTo;
27
+ point: Point2;
28
+ }
29
+ export interface MoveToPathCommand {
30
+ kind: PathCommandType.MoveTo;
31
+ point: Point2;
32
+ }
33
+ export type PathCommand = CubicBezierPathCommand | LinePathCommand | QuadraticBezierPathCommand | MoveToPathCommand;
34
+ interface IntersectionResult {
35
+ curve: LineSegment2 | Bezier;
36
+ parameterValue: number;
37
+ point: Point2;
38
+ }
39
+ export default class Path {
40
+ readonly startPoint: Point2;
41
+ readonly parts: PathCommand[];
42
+ readonly bbox: Rect2;
43
+ constructor(startPoint: Point2, parts: PathCommand[]);
44
+ private cachedGeometry;
45
+ get geometry(): Array<LineSegment2 | Bezier>;
46
+ private cachedPolylineApproximation;
47
+ polylineApproximation(): LineSegment2[];
48
+ static computeBBoxForSegment(startPoint: Point2, part: PathCommand): Rect2;
49
+ intersection(line: LineSegment2): IntersectionResult[];
50
+ private static mapPathCommand;
51
+ mapPoints(mapping: (point: Point2) => Point2): Path;
52
+ transformedBy(affineTransfm: Mat33): Path;
53
+ union(other: Path | null): Path;
54
+ private getEndPoint;
55
+ roughlyIntersects(rect: Rect2, strokeWidth?: number): boolean;
56
+ closedRoughlyIntersects(rect: Rect2): boolean;
57
+ static fromRect(rect: Rect2, lineWidth?: number | null): Path;
58
+ static fromRenderable(renderable: RenderablePathSpec): Path;
59
+ toRenderable(fill: RenderingStyle): RenderablePathSpec;
60
+ /**
61
+ * @returns a Path that, when rendered, looks roughly equivalent to the given path.
62
+ */
63
+ static visualEquivalent(renderablePath: RenderablePathSpec, visibleRect: Rect2): RenderablePathSpec;
64
+ private cachedStringVersion;
65
+ toString(useNonAbsCommands?: boolean): string;
66
+ serialize(): string;
67
+ static toString(startPoint: Point2, parts: PathCommand[], onlyAbsCommands?: boolean): string;
68
+ static fromString(pathString: string): Path;
69
+ static empty: Path;
70
+ }
71
+ export {};
@@ -1,9 +1,9 @@
1
1
  import { Bezier } from 'bezier-js';
2
- import { toRoundedString, toStringOfSamePrecision } from './rounding';
3
- import LineSegment2 from './LineSegment2';
4
- import Mat33 from './Mat33';
5
- import Rect2 from './Rect2';
6
- import { Vec2 } from './Vec2';
2
+ import { toRoundedString, toStringOfSamePrecision } from './rounding.mjs';
3
+ import LineSegment2 from './LineSegment2.mjs';
4
+ import Mat33 from './Mat33.mjs';
5
+ import Rect2 from './Rect2.mjs';
6
+ import { Vec2 } from './Vec2.mjs';
7
7
  export var PathCommandType;
8
8
  (function (PathCommandType) {
9
9
  PathCommandType[PathCommandType["LineTo"] = 0] = "LineTo";
@@ -0,0 +1,52 @@
1
+ import LineSegment2 from './LineSegment2';
2
+ import Mat33 from './Mat33';
3
+ import { Point2, Vec2 } from './Vec2';
4
+ /** An object that can be converted to a Rect2. */
5
+ export interface RectTemplate {
6
+ x: number;
7
+ y: number;
8
+ w?: number;
9
+ h?: number;
10
+ width?: number;
11
+ height?: number;
12
+ }
13
+ export default class Rect2 {
14
+ readonly x: number;
15
+ readonly y: number;
16
+ readonly w: number;
17
+ readonly h: number;
18
+ readonly topLeft: Point2;
19
+ readonly size: Vec2;
20
+ readonly bottomRight: Point2;
21
+ readonly center: Point2;
22
+ readonly area: number;
23
+ constructor(x: number, y: number, w: number, h: number);
24
+ translatedBy(vec: Vec2): Rect2;
25
+ resizedTo(size: Vec2): Rect2;
26
+ containsPoint(other: Point2): boolean;
27
+ containsRect(other: Rect2): boolean;
28
+ intersects(other: Rect2): boolean;
29
+ intersection(other: Rect2): Rect2 | null;
30
+ union(other: Rect2): Rect2;
31
+ divideIntoGrid(columns: number, rows: number): Rect2[];
32
+ grownToPoint(point: Point2, margin?: number): Rect2;
33
+ grownBy(margin: number): Rect2;
34
+ getClosestPointOnBoundaryTo(target: Point2): import("./Vec3").default;
35
+ get corners(): Point2[];
36
+ get maxDimension(): number;
37
+ get topRight(): import("./Vec3").default;
38
+ get bottomLeft(): import("./Vec3").default;
39
+ get width(): number;
40
+ get height(): number;
41
+ getEdges(): LineSegment2[];
42
+ transformedBoundingBox(affineTransform: Mat33): Rect2;
43
+ /** @return true iff this is equal to [other] ± fuzz */
44
+ eq(other: Rect2, fuzz?: number): boolean;
45
+ toString(): string;
46
+ static fromCorners(corner1: Point2, corner2: Point2): Rect2;
47
+ static bboxOf(points: Point2[], margin?: number): Rect2;
48
+ static union(...rects: Rect2[]): Rect2;
49
+ static of(template: RectTemplate): Rect2;
50
+ static empty: Rect2;
51
+ static unitSquare: Rect2;
52
+ }
@@ -1,5 +1,5 @@
1
- import LineSegment2 from './LineSegment2';
2
- import { Vec2 } from './Vec2';
1
+ import LineSegment2 from './LineSegment2.mjs';
2
+ import { Vec2 } from './Vec2.mjs';
3
3
  // invariant: w ≥ 0, h ≥ 0.
4
4
  export default class Rect2 {
5
5
  constructor(x, y, w, h) {
@@ -0,0 +1,11 @@
1
+ import Mat33 from './Mat33';
2
+ import Vec3 from './Vec3';
3
+ export default class Triangle {
4
+ readonly vertex1: Vec3;
5
+ readonly vertex2: Vec3;
6
+ readonly vertex3: Vec3;
7
+ constructor(vertex1: Vec3, vertex2: Vec3, vertex3: Vec3);
8
+ map(mapping: (vertex: Vec3) => Vec3): Triangle;
9
+ transformed2DBy(affineTransform: Mat33): Triangle;
10
+ transformedBy(linearTransform: Mat33): Triangle;
11
+ }
@@ -0,0 +1,13 @@
1
+ import Vec3 from './Vec3';
2
+ export declare namespace Vec2 {
3
+ const of: (x: number, y: number) => Vec2;
4
+ const ofXY: ({ x, y }: {
5
+ x: number;
6
+ y: number;
7
+ }) => Vec2;
8
+ const unitX: Vec3;
9
+ const unitY: Vec3;
10
+ const zero: Vec3;
11
+ }
12
+ export type Point2 = Vec3;
13
+ export type Vec2 = Vec3;
@@ -1,4 +1,4 @@
1
- import Vec3 from './Vec3';
1
+ import Vec3 from './Vec3.mjs';
2
2
  export var Vec2;
3
3
  (function (Vec2) {
4
4
  Vec2.of = (x, y) => {
@@ -0,0 +1,106 @@
1
+ /**
2
+ * A vector with three components. Can also be used to represent a two-component vector.
3
+ *
4
+ * A `Vec3` is immutable.
5
+ */
6
+ export default class Vec3 {
7
+ readonly x: number;
8
+ readonly y: number;
9
+ readonly z: number;
10
+ private constructor();
11
+ /** Returns the x, y components of this. */
12
+ get xy(): {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ static of(x: number, y: number, z: number): Vec3;
17
+ /** Returns this' `idx`th component. For example, `Vec3.of(1, 2, 3).at(1) → 2`. */
18
+ at(idx: number): number;
19
+ /** Alias for this.magnitude. */
20
+ length(): number;
21
+ magnitude(): number;
22
+ magnitudeSquared(): number;
23
+ /**
24
+ * Return this' angle in the XY plane (treats this as a Vec2).
25
+ *
26
+ * This is equivalent to `Math.atan2(vec.y, vec.x)`.
27
+ */
28
+ angle(): number;
29
+ /**
30
+ * Returns a unit vector in the same direction as this.
31
+ *
32
+ * If `this` has zero length, the resultant vector has `NaN` components.
33
+ */
34
+ normalized(): Vec3;
35
+ /** @returns A copy of `this` multiplied by a scalar. */
36
+ times(c: number): Vec3;
37
+ plus(v: Vec3): Vec3;
38
+ minus(v: Vec3): Vec3;
39
+ dot(other: Vec3): number;
40
+ cross(other: Vec3): Vec3;
41
+ /**
42
+ * If `other` is a `Vec3`, multiplies `this` component-wise by `other`. Otherwise,
43
+ * if `other is a `number`, returns the result of scalar multiplication.
44
+ *
45
+ * @example
46
+ * ```
47
+ * Vec3.of(1, 2, 3).scale(Vec3.of(2, 4, 6)); // → Vec3(2, 8, 18)
48
+ * ```
49
+ */
50
+ scale(other: Vec3 | number): Vec3;
51
+ /**
52
+ * Returns a vector orthogonal to this. If this is a Vec2, returns `this` rotated
53
+ * 90 degrees counter-clockwise.
54
+ */
55
+ orthog(): Vec3;
56
+ /** Returns this plus a vector of length `distance` in `direction`. */
57
+ extend(distance: number, direction: Vec3): Vec3;
58
+ /** Returns a vector `fractionTo` of the way to target from this. */
59
+ lerp(target: Vec3, fractionTo: number): Vec3;
60
+ /**
61
+ * `zip` Maps a component of this and a corresponding component of
62
+ * `other` to a component of the output vector.
63
+ *
64
+ * @example
65
+ * ```
66
+ * const a = Vec3.of(1, 2, 3);
67
+ * const b = Vec3.of(0.5, 2.1, 2.9);
68
+ *
69
+ * const zipped = a.zip(b, (aComponent, bComponent) => {
70
+ * return Math.min(aComponent, bComponent);
71
+ * });
72
+ *
73
+ * console.log(zipped.toString()); // → Vec(0.5, 2, 2.9)
74
+ * ```
75
+ */
76
+ zip(other: Vec3, zip: (componentInThis: number, componentInOther: number) => number): Vec3;
77
+ /**
78
+ * Returns a vector with each component acted on by `fn`.
79
+ *
80
+ * @example
81
+ * ```
82
+ * console.log(Vec3.of(1, 2, 3).map(val => val + 1)); // → Vec(2, 3, 4)
83
+ * ```
84
+ */
85
+ map(fn: (component: number, index: number) => number): Vec3;
86
+ asArray(): [number, number, number];
87
+ /**
88
+ * [fuzz] The maximum difference between two components for this and [other]
89
+ * to be considered equal.
90
+ *
91
+ * @example
92
+ * ```
93
+ * Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 100); // → true
94
+ * Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 0.1); // → false
95
+ * Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3); // → true
96
+ * Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3.01); // → true
97
+ * Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 2.99); // → false
98
+ * ```
99
+ */
100
+ eq(other: Vec3, fuzz?: number): boolean;
101
+ toString(): string;
102
+ static unitX: Vec3;
103
+ static unitY: Vec3;
104
+ static unitZ: Vec3;
105
+ static zero: Vec3;
106
+ }
@@ -0,0 +1,7 @@
1
+ import LineSegment2 from './LineSegment2.mjs';
2
+ import Mat33 from './Mat33.mjs';
3
+ import Path from './Path.mjs';
4
+ import Rect2 from './Rect2.mjs';
5
+ import { Vec2 } from './Vec2.mjs';
6
+ import Vec3 from './Vec3.mjs';
7
+ export { LineSegment2, Mat33, Path, Rect2, Vec3, Vec2, };
@@ -0,0 +1,4 @@
1
+ export declare const cleanUpNumber: (text: string) => string;
2
+ export declare const toRoundedString: (num: number) => string;
3
+ export declare const getLenAfterDecimal: (numberAsString: string) => number;
4
+ export declare const toStringOfSamePrecision: (num: number, ...references: string[]) => string;
@@ -0,0 +1,75 @@
1
+ import AbstractRenderer from './renderers/AbstractRenderer';
2
+ import { Editor } from '../Editor';
3
+ import { Point2 } from '../math/Vec2';
4
+ import RenderingCache from './caching/RenderingCache';
5
+ import Color4 from '../Color4';
6
+ export declare enum RenderingMode {
7
+ DummyRenderer = 0,
8
+ CanvasRenderer = 1
9
+ }
10
+ /**
11
+ * Handles `HTMLCanvasElement`s (or other drawing surfaces if being used) used to display the editor's contents.
12
+ *
13
+ * @example
14
+ * ```
15
+ * const editor = new Editor(document.body);
16
+ * const w = editor.display.width;
17
+ * const h = editor.display.height;
18
+ * const center = Vec2.of(w / 2, h / 2);
19
+ * const colorAtCenter = editor.display.getColorAt(center);
20
+ * ```
21
+ */
22
+ export default class Display {
23
+ private editor;
24
+ private parent;
25
+ private dryInkRenderer;
26
+ private wetInkRenderer;
27
+ private textRenderer;
28
+ private textRerenderOutput;
29
+ private cache;
30
+ private resizeSurfacesCallback?;
31
+ private flattenCallback?;
32
+ /** @internal */
33
+ constructor(editor: Editor, mode: RenderingMode, parent: HTMLElement | null);
34
+ /**
35
+ * @returns the visible width of the display (e.g. how much
36
+ * space the display's element takes up in the x direction
37
+ * in the DOM).
38
+ */
39
+ get width(): number;
40
+ get height(): number;
41
+ /** @internal */
42
+ getCache(): RenderingCache;
43
+ /**
44
+ * @returns the color at the given point on the dry ink renderer, or `null` if `screenPos`
45
+ * is not on the display.
46
+ */
47
+ getColorAt: (_screenPos: Point2) => Color4 | null;
48
+ private initializeCanvasRendering;
49
+ private initializeTextRendering;
50
+ /**
51
+ * Rerenders the text-based display.
52
+ * The text-based display is intended for screen readers and can be navigated to by pressing `tab`.
53
+ */
54
+ rerenderAsText(): void;
55
+ /**
56
+ * Clears the drawing surfaces and otherwise prepares for a rerender.
57
+ *
58
+ * @returns the dry ink renderer.
59
+ */
60
+ startRerender(): AbstractRenderer;
61
+ /**
62
+ * If `draftMode`, the dry ink renderer is configured to render
63
+ * low-quality output.
64
+ */
65
+ setDraftMode(draftMode: boolean): void;
66
+ /** @internal */
67
+ getDryInkRenderer(): AbstractRenderer;
68
+ /**
69
+ * @returns The renderer used for showing action previews (e.g. an unfinished stroke).
70
+ * The `wetInkRenderer`'s surface is stacked above the `dryInkRenderer`'s.
71
+ */
72
+ getWetInkRenderer(): AbstractRenderer;
73
+ /** Re-renders the contents of the wetInkRenderer onto the dryInkRenderer. */
74
+ flatten(): void;
75
+ }
@@ -1,10 +1,10 @@
1
- import CanvasRenderer from './renderers/CanvasRenderer';
2
- import { EditorEventType } from '../types';
3
- import DummyRenderer from './renderers/DummyRenderer';
4
- import { Vec2 } from '../math/Vec2';
5
- import RenderingCache from './caching/RenderingCache';
6
- import TextOnlyRenderer from './renderers/TextOnlyRenderer';
7
- import Color4 from '../Color4';
1
+ import CanvasRenderer from './renderers/CanvasRenderer.mjs';
2
+ import { EditorEventType } from '../types.mjs';
3
+ import DummyRenderer from './renderers/DummyRenderer.mjs';
4
+ import { Vec2 } from '../math/Vec2.mjs';
5
+ import RenderingCache from './caching/RenderingCache.mjs';
6
+ import TextOnlyRenderer from './renderers/TextOnlyRenderer.mjs';
7
+ import Color4 from '../Color4.mjs';
8
8
  export var RenderingMode;
9
9
  (function (RenderingMode) {
10
10
  RenderingMode[RenderingMode["DummyRenderer"] = 0] = "DummyRenderer";
@@ -0,0 +1,31 @@
1
+ import Color4 from '../Color4';
2
+ interface RenderingStyle {
3
+ fill: Color4;
4
+ stroke?: {
5
+ color: Color4;
6
+ width: number;
7
+ };
8
+ }
9
+ export default RenderingStyle;
10
+ export declare const cloneStyle: (style: RenderingStyle) => {
11
+ fill: Color4;
12
+ stroke: {
13
+ color: Color4;
14
+ width: number;
15
+ } | undefined;
16
+ };
17
+ export declare const stylesEqual: (a: RenderingStyle, b: RenderingStyle) => boolean;
18
+ export declare const styleToJSON: (style: RenderingStyle) => {
19
+ fill: string;
20
+ stroke: {
21
+ color: string;
22
+ width: number;
23
+ } | undefined;
24
+ };
25
+ export declare const styleFromJSON: (json: Record<string, any>) => {
26
+ fill: Color4;
27
+ stroke: {
28
+ color: Color4;
29
+ width: any;
30
+ } | undefined;
31
+ };
@@ -1,4 +1,4 @@
1
- import Color4 from '../Color4';
1
+ import Color4 from '../Color4.mjs';
2
2
  export const cloneStyle = (style) => {
3
3
  return {
4
4
  fill: style.fill,
@@ -0,0 +1,36 @@
1
+ import RenderingStyle from './RenderingStyle';
2
+ export interface TextStyle {
3
+ size: number;
4
+ fontFamily: string;
5
+ fontWeight?: string;
6
+ fontVariant?: string;
7
+ renderingStyle: RenderingStyle;
8
+ }
9
+ export default TextStyle;
10
+ export declare const cloneTextStyle: (style: TextStyle) => {
11
+ renderingStyle: {
12
+ fill: import("../Color4").default;
13
+ stroke: {
14
+ color: import("../Color4").default;
15
+ width: number;
16
+ } | undefined;
17
+ };
18
+ size: number;
19
+ fontFamily: string;
20
+ fontWeight?: string | undefined;
21
+ fontVariant?: string | undefined;
22
+ };
23
+ export declare const textStyleFromJSON: (json: any) => TextStyle;
24
+ export declare const textStyleToJSON: (style: TextStyle) => {
25
+ renderingStyle: {
26
+ fill: string;
27
+ stroke: {
28
+ color: string;
29
+ width: number;
30
+ } | undefined;
31
+ };
32
+ size: number;
33
+ fontFamily: string;
34
+ fontWeight?: string | undefined;
35
+ fontVariant?: string | undefined;
36
+ };
@@ -1,4 +1,4 @@
1
- import { cloneStyle, styleFromJSON, styleToJSON } from './RenderingStyle';
1
+ import { cloneStyle, styleFromJSON, styleToJSON } from './RenderingStyle.mjs';
2
2
  export const cloneTextStyle = (style) => {
3
3
  return Object.assign(Object.assign({}, style), { renderingStyle: cloneStyle(style.renderingStyle) });
4
4
  };
@@ -0,0 +1,20 @@
1
+ import Mat33 from '../../math/Mat33';
2
+ import Rect2 from '../../math/Rect2';
3
+ import AbstractRenderer from '../renderers/AbstractRenderer';
4
+ import { BeforeDeallocCallback, CacheState } from './types';
5
+ export default class CacheRecord {
6
+ private onBeforeDeallocCallback;
7
+ private cacheState;
8
+ private renderer;
9
+ private lastUsedCycle;
10
+ private allocd;
11
+ allocCount: number;
12
+ constructor(onBeforeDeallocCallback: BeforeDeallocCallback | null, cacheState: CacheState);
13
+ startRender(): AbstractRenderer;
14
+ dealloc(): void;
15
+ isAllocd(): boolean;
16
+ realloc(newDeallocCallback: BeforeDeallocCallback): void;
17
+ getLastUsedCycle(): number;
18
+ getTransform(drawTo: Rect2): Mat33;
19
+ setRenderingRegion(drawTo: Rect2): void;
20
+ }
@@ -1,4 +1,4 @@
1
- import Mat33 from '../../math/Mat33';
1
+ import Mat33 from '../../math/Mat33.mjs';
2
2
  // Represents a cached renderer/canvas
3
3
  // This is not a [CacheNode] -- it handles cached renderers and does not have sub-renderers.
4
4
  export default class CacheRecord {
@@ -0,0 +1,12 @@
1
+ import { BeforeDeallocCallback, CacheProps, CacheState } from './types';
2
+ import CacheRecord from './CacheRecord';
3
+ import Rect2 from '../../math/Rect2';
4
+ export declare class CacheRecordManager {
5
+ private cacheRecords;
6
+ private maxCanvases;
7
+ private cacheState;
8
+ constructor(cacheProps: CacheProps);
9
+ setSharedState(state: CacheState): void;
10
+ allocCanvas(drawTo: Rect2, onDealloc: BeforeDeallocCallback): CacheRecord;
11
+ private getLeastRecentlyUsedRecord;
12
+ }
@@ -1,4 +1,4 @@
1
- import CacheRecord from './CacheRecord';
1
+ import CacheRecord from './CacheRecord.mjs';
2
2
  const debugMode = false;
3
3
  export class CacheRecordManager {
4
4
  constructor(cacheProps) {
@@ -0,0 +1,11 @@
1
+ import { ImageNode } from '../../EditorImage';
2
+ import Viewport from '../../Viewport';
3
+ import AbstractRenderer from '../renderers/AbstractRenderer';
4
+ import { CacheProps } from './types';
5
+ export default class RenderingCache {
6
+ private sharedState;
7
+ private recordManager;
8
+ private rootNode;
9
+ constructor(cacheProps: CacheProps);
10
+ render(screenRenderer: AbstractRenderer, image: ImageNode, viewport: Viewport): void;
11
+ }
@@ -1,6 +1,6 @@
1
- import Rect2 from '../../math/Rect2';
2
- import RenderingCacheNode from './RenderingCacheNode';
3
- import { CacheRecordManager } from './CacheRecordManager';
1
+ import Rect2 from '../../math/Rect2.mjs';
2
+ import RenderingCacheNode from './RenderingCacheNode.mjs';
3
+ import { CacheRecordManager } from './CacheRecordManager.mjs';
4
4
  export default class RenderingCache {
5
5
  constructor(cacheProps) {
6
6
  this.recordManager = new CacheRecordManager(cacheProps);
@@ -0,0 +1,29 @@
1
+ import { ImageNode } from '../../EditorImage';
2
+ import Rect2 from '../../math/Rect2';
3
+ import Viewport from '../../Viewport';
4
+ import AbstractRenderer from '../renderers/AbstractRenderer';
5
+ import { CacheState } from './types';
6
+ export default class RenderingCacheNode {
7
+ readonly region: Rect2;
8
+ private readonly cacheState;
9
+ private instantiatedChildren;
10
+ private parent;
11
+ private cachedRenderer;
12
+ private renderedIds;
13
+ private renderedMaxZIndex;
14
+ constructor(region: Rect2, cacheState: CacheState);
15
+ generateParent(): RenderingCacheNode;
16
+ private generateChildren;
17
+ private getChildren;
18
+ smallestChildContaining(rect: Rect2): RenderingCacheNode | null;
19
+ private renderingWouldBeHighEnoughResolution;
20
+ private allChildrenCanRender;
21
+ private computeSortedByLeafIds;
22
+ private idsOfIntersecting;
23
+ private allRenderedIdsIn;
24
+ private renderingIsUpToDate;
25
+ renderItems(screenRenderer: AbstractRenderer, items: ImageNode[], viewport: Viewport): void;
26
+ private isEmpty;
27
+ private onRegionDealloc;
28
+ private checkRep;
29
+ }
@@ -1,7 +1,7 @@
1
1
  // A cache record with sub-nodes.
2
- import Color4 from '../../Color4';
3
- import { sortLeavesByZIndex } from '../../EditorImage';
4
- import Rect2 from '../../math/Rect2';
2
+ import Color4 from '../../Color4.mjs';
3
+ import { sortLeavesByZIndex } from '../../EditorImage.mjs';
4
+ import Rect2 from '../../math/Rect2.mjs';
5
5
  // 3x3 divisions for each node.
6
6
  const cacheDivisionSize = 3;
7
7
  // True: Show rendering updates.
@@ -0,0 +1,9 @@
1
+ import DummyRenderer from '../renderers/DummyRenderer';
2
+ import RenderingCache from './RenderingCache';
3
+ import { CacheProps } from './types';
4
+ type RenderAllocCallback = (renderer: DummyRenderer) => void;
5
+ export declare const createCache: (onRenderAlloc?: RenderAllocCallback, cacheOptions?: Partial<CacheProps>) => {
6
+ cache: RenderingCache;
7
+ editor: import("../../Editor").Editor;
8
+ };
9
+ export {};
@@ -1,7 +1,7 @@
1
- import { Vec2 } from '../../math/Vec2';
2
- import DummyRenderer from '../renderers/DummyRenderer';
3
- import createEditor from '../../testing/createEditor';
4
- import RenderingCache from './RenderingCache';
1
+ import { Vec2 } from '../../math/Vec2.mjs';
2
+ import DummyRenderer from '../renderers/DummyRenderer.mjs';
3
+ import createEditor from '../../testing/createEditor.mjs';
4
+ import RenderingCache from './RenderingCache.mjs';
5
5
  // Override any default test options with [cacheOptions]
6
6
  export const createCache = (onRenderAlloc, cacheOptions) => {
7
7
  const editor = createEditor();
@@ -0,0 +1,19 @@
1
+ import { Vec2 } from '../../math/Vec2';
2
+ import AbstractRenderer from '../renderers/AbstractRenderer';
3
+ import { CacheRecordManager } from './CacheRecordManager';
4
+ export type CacheAddress = number;
5
+ export type BeforeDeallocCallback = () => void;
6
+ export interface CacheProps {
7
+ createRenderer(): AbstractRenderer;
8
+ isOfCorrectType(renderer: AbstractRenderer): boolean;
9
+ blockResolution: Vec2;
10
+ cacheSize: number;
11
+ maxScale: number;
12
+ minProportionalRenderTimePerCache: number;
13
+ minProportionalRenderTimeToUseCache: number;
14
+ }
15
+ export interface CacheState {
16
+ currentRenderingCycle: number;
17
+ props: CacheProps;
18
+ recordManager: CacheRecordManager;
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,5 @@
1
1
  export { default as AbstractRenderer } from './renderers/AbstractRenderer';
2
2
  export { default as DummyRenderer } from './renderers/DummyRenderer';
3
+ export { default as SVGRenderer } from './renderers/SVGRenderer';
4
+ export { default as CanvasRenderer } from './renderers/CanvasRenderer';
3
5
  export { default as Display } from './Display';
@@ -0,0 +1,5 @@
1
+ export { default as AbstractRenderer } from './renderers/AbstractRenderer.mjs';
2
+ export { default as DummyRenderer } from './renderers/DummyRenderer.mjs';
3
+ export { default as SVGRenderer } from './renderers/SVGRenderer.mjs';
4
+ export { default as CanvasRenderer } from './renderers/CanvasRenderer.mjs';
5
+ export { default as Display } from './Display.mjs';