@tldraw/editor 4.5.3 → 4.6.0-canary.00a8c03b5687

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 (279) hide show
  1. package/dist-cjs/index.d.ts +37 -6
  2. package/dist-cjs/index.js +6 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawEditor.js +7 -5
  5. package/dist-cjs/lib/TldrawEditor.js.map +3 -3
  6. package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js +3 -2
  7. package/dist-cjs/lib/components/default-components/CanvasShapeIndicators.js.map +2 -2
  8. package/dist-cjs/lib/components/default-components/DefaultCanvas.js +1 -1
  9. package/dist-cjs/lib/components/default-components/DefaultCanvas.js.map +2 -2
  10. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js +8 -5
  11. package/dist-cjs/lib/components/default-components/DefaultErrorFallback.js.map +2 -2
  12. package/dist-cjs/lib/config/TLSessionStateSnapshot.js +8 -5
  13. package/dist-cjs/lib/config/TLSessionStateSnapshot.js.map +2 -2
  14. package/dist-cjs/lib/config/TLUserPreferences.js +3 -2
  15. package/dist-cjs/lib/config/TLUserPreferences.js.map +2 -2
  16. package/dist-cjs/lib/config/createTLStore.js +1 -0
  17. package/dist-cjs/lib/config/createTLStore.js.map +2 -2
  18. package/dist-cjs/lib/config/createTLUser.js.map +1 -1
  19. package/dist-cjs/lib/editor/Editor.js +511 -366
  20. package/dist-cjs/lib/editor/Editor.js.map +2 -2
  21. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js +25 -64
  22. package/dist-cjs/lib/editor/managers/ClickManager/ClickManager.js.map +2 -2
  23. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js +22 -5
  24. package/dist-cjs/lib/editor/managers/FocusManager/FocusManager.js.map +2 -2
  25. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js +4 -3
  26. package/dist-cjs/lib/editor/managers/FontManager/FontManager.js.map +2 -2
  27. package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js +5 -0
  28. package/dist-cjs/lib/editor/managers/HistoryManager/HistoryManager.js.map +2 -2
  29. package/dist-cjs/lib/editor/managers/InputsManager/InputsManager.js +71 -112
  30. package/dist-cjs/lib/editor/managers/InputsManager/InputsManager.js.map +2 -2
  31. package/dist-cjs/lib/editor/managers/SnapManager/BoundsSnaps.js +20 -55
  32. package/dist-cjs/lib/editor/managers/SnapManager/BoundsSnaps.js.map +1 -1
  33. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js +11 -52
  34. package/dist-cjs/lib/editor/managers/SnapManager/HandleSnaps.js.map +1 -1
  35. package/dist-cjs/lib/editor/managers/SnapManager/SnapManager.js +19 -56
  36. package/dist-cjs/lib/editor/managers/SnapManager/SnapManager.js.map +1 -1
  37. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js +2 -2
  38. package/dist-cjs/lib/editor/managers/TextManager/TextManager.js.map +2 -2
  39. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js +16 -55
  40. package/dist-cjs/lib/editor/managers/TickManager/TickManager.js.map +1 -1
  41. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js +60 -70
  42. package/dist-cjs/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.js.map +2 -2
  43. package/dist-cjs/lib/editor/types/misc-types.js.map +1 -1
  44. package/dist-cjs/lib/exports/ExportDelay.js +12 -53
  45. package/dist-cjs/lib/exports/ExportDelay.js.map +1 -1
  46. package/dist-cjs/lib/exports/FontEmbedder.js +23 -65
  47. package/dist-cjs/lib/exports/FontEmbedder.js.map +2 -2
  48. package/dist-cjs/lib/exports/StyleEmbedder.js +27 -15
  49. package/dist-cjs/lib/exports/StyleEmbedder.js.map +3 -3
  50. package/dist-cjs/lib/exports/domUtils.js +15 -0
  51. package/dist-cjs/lib/exports/domUtils.js.map +2 -2
  52. package/dist-cjs/lib/exports/embedMedia.js +15 -12
  53. package/dist-cjs/lib/exports/embedMedia.js.map +2 -2
  54. package/dist-cjs/lib/exports/exportToSvg.js +8 -7
  55. package/dist-cjs/lib/exports/exportToSvg.js.map +2 -2
  56. package/dist-cjs/lib/exports/getSvgAsImage.js +181 -29
  57. package/dist-cjs/lib/exports/getSvgAsImage.js.map +3 -3
  58. package/dist-cjs/lib/exports/getSvgJsx.js +21 -9
  59. package/dist-cjs/lib/exports/getSvgJsx.js.map +2 -2
  60. package/dist-cjs/lib/globals/environment.js +4 -3
  61. package/dist-cjs/lib/globals/environment.js.map +2 -2
  62. package/dist-cjs/lib/hooks/useCanvasEvents.js +2 -2
  63. package/dist-cjs/lib/hooks/useCanvasEvents.js.map +2 -2
  64. package/dist-cjs/lib/hooks/useDocumentEvents.js +13 -11
  65. package/dist-cjs/lib/hooks/useDocumentEvents.js.map +2 -2
  66. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js +3 -2
  67. package/dist-cjs/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.js.map +2 -2
  68. package/dist-cjs/lib/hooks/useScreenBounds.js +10 -6
  69. package/dist-cjs/lib/hooks/useScreenBounds.js.map +2 -2
  70. package/dist-cjs/lib/hooks/useViewportHeight.js +13 -11
  71. package/dist-cjs/lib/hooks/useViewportHeight.js.map +3 -3
  72. package/dist-cjs/lib/license/Watermark.js +10 -0
  73. package/dist-cjs/lib/license/Watermark.js.map +2 -2
  74. package/dist-cjs/lib/primitives/Box.js +25 -25
  75. package/dist-cjs/lib/primitives/Box.js.map +1 -1
  76. package/dist-cjs/lib/primitives/Vec.js +36 -23
  77. package/dist-cjs/lib/primitives/Vec.js.map +2 -2
  78. package/dist-cjs/lib/primitives/geometry/Arc2d.js +6 -13
  79. package/dist-cjs/lib/primitives/geometry/Arc2d.js.map +2 -2
  80. package/dist-cjs/lib/primitives/geometry/Circle2d.js +31 -2
  81. package/dist-cjs/lib/primitives/geometry/Circle2d.js.map +2 -2
  82. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js +9 -0
  83. package/dist-cjs/lib/primitives/geometry/CubicBezier2d.js.map +2 -2
  84. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js +10 -1
  85. package/dist-cjs/lib/primitives/geometry/CubicSpline2d.js.map +2 -2
  86. package/dist-cjs/lib/primitives/geometry/Edge2d.js +32 -18
  87. package/dist-cjs/lib/primitives/geometry/Edge2d.js.map +2 -2
  88. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js +13 -1
  89. package/dist-cjs/lib/primitives/geometry/Ellipse2d.js.map +2 -2
  90. package/dist-cjs/lib/primitives/geometry/Geometry2d.js +6 -6
  91. package/dist-cjs/lib/primitives/geometry/Geometry2d.js.map +1 -1
  92. package/dist-cjs/lib/primitives/geometry/Polyline2d.js +52 -13
  93. package/dist-cjs/lib/primitives/geometry/Polyline2d.js.map +2 -2
  94. package/dist-cjs/lib/primitives/geometry/Stadium2d.js +12 -0
  95. package/dist-cjs/lib/primitives/geometry/Stadium2d.js.map +2 -2
  96. package/dist-cjs/lib/primitives/geometry/geometry.bench.js +133 -0
  97. package/dist-cjs/lib/primitives/geometry/geometry.bench.js.map +7 -0
  98. package/dist-cjs/lib/primitives/intersect.js +16 -15
  99. package/dist-cjs/lib/primitives/intersect.js.map +2 -2
  100. package/dist-cjs/lib/primitives/utils.js +0 -1
  101. package/dist-cjs/lib/primitives/utils.js.map +2 -2
  102. package/dist-cjs/lib/utils/SharedStylesMap.js +1 -1
  103. package/dist-cjs/lib/utils/SharedStylesMap.js.map +1 -1
  104. package/dist-cjs/lib/utils/browserCanvasMaxSize.js +3 -2
  105. package/dist-cjs/lib/utils/browserCanvasMaxSize.js.map +2 -2
  106. package/dist-cjs/lib/utils/dom.js +15 -2
  107. package/dist-cjs/lib/utils/dom.js.map +2 -2
  108. package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js +2 -1
  109. package/dist-cjs/lib/utils/sync/TLLocalSyncClient.js.map +2 -2
  110. package/dist-cjs/version.js +3 -3
  111. package/dist-cjs/version.js.map +1 -1
  112. package/dist-esm/index.d.mts +37 -6
  113. package/dist-esm/index.mjs +8 -1
  114. package/dist-esm/index.mjs.map +2 -2
  115. package/dist-esm/lib/TldrawEditor.mjs +7 -5
  116. package/dist-esm/lib/TldrawEditor.mjs.map +3 -3
  117. package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs +2 -1
  118. package/dist-esm/lib/components/default-components/CanvasShapeIndicators.mjs.map +2 -2
  119. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs +1 -1
  120. package/dist-esm/lib/components/default-components/DefaultCanvas.mjs.map +2 -2
  121. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs +8 -5
  122. package/dist-esm/lib/components/default-components/DefaultErrorFallback.mjs.map +2 -2
  123. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs +8 -5
  124. package/dist-esm/lib/config/TLSessionStateSnapshot.mjs.map +2 -2
  125. package/dist-esm/lib/config/TLUserPreferences.mjs +3 -2
  126. package/dist-esm/lib/config/TLUserPreferences.mjs.map +2 -2
  127. package/dist-esm/lib/config/createTLStore.mjs +1 -0
  128. package/dist-esm/lib/config/createTLStore.mjs.map +2 -2
  129. package/dist-esm/lib/config/createTLUser.mjs.map +1 -1
  130. package/dist-esm/lib/editor/Editor.mjs +512 -368
  131. package/dist-esm/lib/editor/Editor.mjs.map +2 -2
  132. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs +25 -64
  133. package/dist-esm/lib/editor/managers/ClickManager/ClickManager.mjs.map +2 -2
  134. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs +24 -5
  135. package/dist-esm/lib/editor/managers/FocusManager/FocusManager.mjs.map +2 -2
  136. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs +4 -3
  137. package/dist-esm/lib/editor/managers/FontManager/FontManager.mjs.map +2 -2
  138. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs +5 -0
  139. package/dist-esm/lib/editor/managers/HistoryManager/HistoryManager.mjs.map +2 -2
  140. package/dist-esm/lib/editor/managers/InputsManager/InputsManager.mjs +71 -112
  141. package/dist-esm/lib/editor/managers/InputsManager/InputsManager.mjs.map +2 -2
  142. package/dist-esm/lib/editor/managers/SnapManager/BoundsSnaps.mjs +20 -55
  143. package/dist-esm/lib/editor/managers/SnapManager/BoundsSnaps.mjs.map +1 -1
  144. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs +11 -52
  145. package/dist-esm/lib/editor/managers/SnapManager/HandleSnaps.mjs.map +1 -1
  146. package/dist-esm/lib/editor/managers/SnapManager/SnapManager.mjs +19 -56
  147. package/dist-esm/lib/editor/managers/SnapManager/SnapManager.mjs.map +1 -1
  148. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs +2 -2
  149. package/dist-esm/lib/editor/managers/TextManager/TextManager.mjs.map +2 -2
  150. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs +16 -55
  151. package/dist-esm/lib/editor/managers/TickManager/TickManager.mjs.map +1 -1
  152. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs +60 -70
  153. package/dist-esm/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.mjs.map +2 -2
  154. package/dist-esm/lib/exports/ExportDelay.mjs +12 -53
  155. package/dist-esm/lib/exports/ExportDelay.mjs.map +1 -1
  156. package/dist-esm/lib/exports/FontEmbedder.mjs +23 -65
  157. package/dist-esm/lib/exports/FontEmbedder.mjs.map +2 -2
  158. package/dist-esm/lib/exports/StyleEmbedder.mjs +29 -16
  159. package/dist-esm/lib/exports/StyleEmbedder.mjs.map +3 -3
  160. package/dist-esm/lib/exports/domUtils.mjs +15 -0
  161. package/dist-esm/lib/exports/domUtils.mjs.map +2 -2
  162. package/dist-esm/lib/exports/embedMedia.mjs +16 -13
  163. package/dist-esm/lib/exports/embedMedia.mjs.map +2 -2
  164. package/dist-esm/lib/exports/exportToSvg.mjs +8 -7
  165. package/dist-esm/lib/exports/exportToSvg.mjs.map +2 -2
  166. package/dist-esm/lib/exports/getSvgAsImage.mjs +181 -29
  167. package/dist-esm/lib/exports/getSvgAsImage.mjs.map +3 -3
  168. package/dist-esm/lib/exports/getSvgJsx.mjs +21 -9
  169. package/dist-esm/lib/exports/getSvgJsx.mjs.map +2 -2
  170. package/dist-esm/lib/globals/environment.mjs +4 -3
  171. package/dist-esm/lib/globals/environment.mjs.map +2 -2
  172. package/dist-esm/lib/hooks/useCanvasEvents.mjs +2 -2
  173. package/dist-esm/lib/hooks/useCanvasEvents.mjs.map +2 -2
  174. package/dist-esm/lib/hooks/useDocumentEvents.mjs +13 -11
  175. package/dist-esm/lib/hooks/useDocumentEvents.mjs.map +2 -2
  176. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs +3 -2
  177. package/dist-esm/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.mjs.map +2 -2
  178. package/dist-esm/lib/hooks/useScreenBounds.mjs +10 -6
  179. package/dist-esm/lib/hooks/useScreenBounds.mjs.map +2 -2
  180. package/dist-esm/lib/hooks/useViewportHeight.mjs +13 -11
  181. package/dist-esm/lib/hooks/useViewportHeight.mjs.map +3 -3
  182. package/dist-esm/lib/license/Watermark.mjs +10 -0
  183. package/dist-esm/lib/license/Watermark.mjs.map +2 -2
  184. package/dist-esm/lib/primitives/Box.mjs +25 -25
  185. package/dist-esm/lib/primitives/Box.mjs.map +1 -1
  186. package/dist-esm/lib/primitives/Vec.mjs +36 -23
  187. package/dist-esm/lib/primitives/Vec.mjs.map +2 -2
  188. package/dist-esm/lib/primitives/geometry/Arc2d.mjs +6 -13
  189. package/dist-esm/lib/primitives/geometry/Arc2d.mjs.map +2 -2
  190. package/dist-esm/lib/primitives/geometry/Circle2d.mjs +31 -2
  191. package/dist-esm/lib/primitives/geometry/Circle2d.mjs.map +2 -2
  192. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs +9 -0
  193. package/dist-esm/lib/primitives/geometry/CubicBezier2d.mjs.map +2 -2
  194. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs +10 -1
  195. package/dist-esm/lib/primitives/geometry/CubicSpline2d.mjs.map +2 -2
  196. package/dist-esm/lib/primitives/geometry/Edge2d.mjs +32 -18
  197. package/dist-esm/lib/primitives/geometry/Edge2d.mjs.map +2 -2
  198. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs +14 -2
  199. package/dist-esm/lib/primitives/geometry/Ellipse2d.mjs.map +2 -2
  200. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs +6 -6
  201. package/dist-esm/lib/primitives/geometry/Geometry2d.mjs.map +1 -1
  202. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs +52 -13
  203. package/dist-esm/lib/primitives/geometry/Polyline2d.mjs.map +2 -2
  204. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs +13 -1
  205. package/dist-esm/lib/primitives/geometry/Stadium2d.mjs.map +2 -2
  206. package/dist-esm/lib/primitives/geometry/geometry.bench.mjs +132 -0
  207. package/dist-esm/lib/primitives/geometry/geometry.bench.mjs.map +7 -0
  208. package/dist-esm/lib/primitives/intersect.mjs +17 -16
  209. package/dist-esm/lib/primitives/intersect.mjs.map +2 -2
  210. package/dist-esm/lib/primitives/utils.mjs +0 -1
  211. package/dist-esm/lib/primitives/utils.mjs.map +2 -2
  212. package/dist-esm/lib/utils/SharedStylesMap.mjs +1 -1
  213. package/dist-esm/lib/utils/SharedStylesMap.mjs.map +1 -1
  214. package/dist-esm/lib/utils/browserCanvasMaxSize.mjs +3 -2
  215. package/dist-esm/lib/utils/browserCanvasMaxSize.mjs.map +2 -2
  216. package/dist-esm/lib/utils/dom.mjs +15 -2
  217. package/dist-esm/lib/utils/dom.mjs.map +2 -2
  218. package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs +2 -1
  219. package/dist-esm/lib/utils/sync/TLLocalSyncClient.mjs.map +2 -2
  220. package/dist-esm/version.mjs +3 -3
  221. package/dist-esm/version.mjs.map +1 -1
  222. package/package.json +8 -8
  223. package/src/index.ts +10 -6
  224. package/src/lib/TldrawEditor.tsx +7 -5
  225. package/src/lib/components/default-components/CanvasShapeIndicators.tsx +2 -1
  226. package/src/lib/components/default-components/DefaultCanvas.tsx +1 -1
  227. package/src/lib/components/default-components/DefaultErrorFallback.tsx +9 -5
  228. package/src/lib/config/TLSessionStateSnapshot.ts +8 -5
  229. package/src/lib/config/TLUserPreferences.ts +3 -2
  230. package/src/lib/config/createTLStore.ts +3 -0
  231. package/src/lib/config/createTLUser.ts +3 -3
  232. package/src/lib/editor/Editor.ts +53 -15
  233. package/src/lib/editor/managers/ClickManager/ClickManager.ts +1 -1
  234. package/src/lib/editor/managers/FocusManager/FocusManager.test.ts +7 -6
  235. package/src/lib/editor/managers/FocusManager/FocusManager.ts +10 -7
  236. package/src/lib/editor/managers/FontManager/FontManager.test.ts +1 -0
  237. package/src/lib/editor/managers/FontManager/FontManager.ts +4 -3
  238. package/src/lib/editor/managers/HistoryManager/HistoryManager.test.ts +16 -0
  239. package/src/lib/editor/managers/HistoryManager/HistoryManager.ts +7 -2
  240. package/src/lib/editor/managers/InputsManager/InputsManager.ts +30 -30
  241. package/src/lib/editor/managers/TextManager/TextManager.test.ts +4 -5
  242. package/src/lib/editor/managers/TextManager/TextManager.ts +2 -2
  243. package/src/lib/editor/managers/UserPreferencesManager/UserPreferencesManager.ts +3 -2
  244. package/src/lib/editor/types/misc-types.ts +8 -2
  245. package/src/lib/exports/FontEmbedder.ts +10 -9
  246. package/src/lib/exports/StyleEmbedder.ts +33 -15
  247. package/src/lib/exports/domUtils.ts +20 -0
  248. package/src/lib/exports/embedMedia.ts +23 -17
  249. package/src/lib/exports/exportToSvg.tsx +8 -7
  250. package/src/lib/exports/getSvgAsImage.ts +292 -32
  251. package/src/lib/exports/getSvgJsx.test.ts +103 -101
  252. package/src/lib/exports/getSvgJsx.tsx +33 -10
  253. package/src/lib/globals/environment.ts +4 -3
  254. package/src/lib/hooks/useCanvasEvents.ts +2 -3
  255. package/src/lib/hooks/useDocumentEvents.ts +16 -11
  256. package/src/lib/hooks/useFixSafariDoubleTapZoomPencilEvents.ts +3 -3
  257. package/src/lib/hooks/useScreenBounds.ts +10 -6
  258. package/src/lib/hooks/useViewportHeight.ts +13 -11
  259. package/src/lib/license/Watermark.tsx +10 -0
  260. package/src/lib/primitives/Box.ts +25 -25
  261. package/src/lib/primitives/Vec.ts +52 -25
  262. package/src/lib/primitives/geometry/Arc2d.ts +10 -15
  263. package/src/lib/primitives/geometry/Circle2d.ts +40 -2
  264. package/src/lib/primitives/geometry/CubicBezier2d.ts +10 -0
  265. package/src/lib/primitives/geometry/CubicSpline2d.ts +11 -1
  266. package/src/lib/primitives/geometry/Edge2d.ts +41 -18
  267. package/src/lib/primitives/geometry/Ellipse2d.ts +15 -2
  268. package/src/lib/primitives/geometry/Geometry2d.ts +6 -6
  269. package/src/lib/primitives/geometry/Polyline2d.ts +61 -13
  270. package/src/lib/primitives/geometry/Stadium2d.ts +14 -1
  271. package/src/lib/primitives/geometry/geometry.bench.ts +179 -0
  272. package/src/lib/primitives/intersect.ts +27 -27
  273. package/src/lib/primitives/utils.ts +4 -4
  274. package/src/lib/test/TestEditor.ts +1 -0
  275. package/src/lib/utils/SharedStylesMap.ts +1 -1
  276. package/src/lib/utils/browserCanvasMaxSize.ts +4 -2
  277. package/src/lib/utils/dom.ts +34 -2
  278. package/src/lib/utils/sync/TLLocalSyncClient.ts +1 -0
  279. package/src/version.ts +3 -3
@@ -1,95 +1,24 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
5
- var __typeError = (msg) => {
6
- throw TypeError(msg);
3
+ var __decorateClass = (decorators, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
7
10
  };
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
- var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
11
- var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
12
- var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
13
- var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
14
- var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
15
- var __runInitializers = (array, flags, self, value) => {
16
- for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
17
- return value;
18
- };
19
- var __decorateElement = (array, flags, name, decorators, target, extra) => {
20
- var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
21
- var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
22
- var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
23
- var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
24
- return __privateGet(this, extra);
25
- }, set [name](x) {
26
- return __privateSet(this, extra, x);
27
- } }, name));
28
- k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
29
- for (var i = decorators.length - 1; i >= 0; i--) {
30
- ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
31
- if (k) {
32
- ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
33
- if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
34
- if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
35
- }
36
- it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
37
- if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
38
- else if (typeof it !== "object" || it === null) __typeError("Object expected");
39
- else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
40
- }
41
- return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
42
- };
43
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
44
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
45
- var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
46
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
47
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
48
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
49
- var __getHasCollaborators_dec, _init;
50
11
  import { atom, computed, unsafe__withoutCapture } from "@tldraw/state";
51
12
  import { AtomSet } from "@tldraw/store";
52
13
  import { TLINSTANCE_ID, TLPOINTER_ID } from "@tldraw/tlschema";
53
14
  import { INTERNAL_POINTER_IDS } from "../../../constants.mjs";
54
15
  import { Vec } from "../../../primitives/Vec.mjs";
55
16
  import { isAccelKey } from "../../../utils/keyboard.mjs";
56
- __getHasCollaborators_dec = [computed];
57
17
  class InputsManager {
58
18
  constructor(editor) {
59
19
  this.editor = editor;
60
- __runInitializers(_init, 5, this);
61
- __publicField(this, "_originPagePoint", atom("originPagePoint", new Vec()));
62
- __publicField(this, "_originScreenPoint", atom("originScreenPoint", new Vec()));
63
- __publicField(this, "_previousPagePoint", atom("previousPagePoint", new Vec()));
64
- __publicField(this, "_previousScreenPoint", atom("previousScreenPoint", new Vec()));
65
- __publicField(this, "_currentPagePoint", atom("currentPagePoint", new Vec()));
66
- __publicField(this, "_currentScreenPoint", atom("currentScreenPoint", new Vec()));
67
- __publicField(this, "_pointerVelocity", atom("pointerVelocity", new Vec()));
68
- /**
69
- * A set containing the currently pressed keys.
70
- */
71
- __publicField(this, "keys", new AtomSet("keys"));
72
- /**
73
- * A set containing the currently pressed buttons.
74
- */
75
- __publicField(this, "buttons", new AtomSet("buttons"));
76
- __publicField(this, "_isPen", atom("isPen", false));
77
- __publicField(this, "_shiftKey", atom("shiftKey", false));
78
- __publicField(this, "_metaKey", atom("metaKey", false));
79
- __publicField(this, "_ctrlKey", atom("ctrlKey", false));
80
- __publicField(this, "_altKey", atom("altKey", false));
81
- __publicField(this, "_isDragging", atom("isDragging", false));
82
- __publicField(this, "_isPointing", atom("isPointing", false));
83
- __publicField(this, "_isPinching", atom("isPinching", false));
84
- __publicField(this, "_isEditing", atom("isEditing", false));
85
- __publicField(this, "_isPanning", atom("isPanning", false));
86
- __publicField(this, "_isSpacebarPanning", atom("isSpacebarPanning", false));
87
- /**
88
- * The previous point used for velocity calculation (updated each tick, not each pointer event).
89
- * @internal
90
- */
91
- __publicField(this, "_velocityPrevPoint", new Vec());
92
20
  }
21
+ _originPagePoint = atom("originPagePoint", new Vec());
93
22
  /**
94
23
  * The most recent pointer down's position in the current page space.
95
24
  */
@@ -99,10 +28,11 @@ class InputsManager {
99
28
  /**
100
29
  * @deprecated Use `getOriginPagePoint()` instead.
101
30
  */
102
- // eslint-disable-next-line no-restricted-syntax
31
+ // eslint-disable-next-line tldraw/no-setter-getter
103
32
  get originPagePoint() {
104
33
  return this.getOriginPagePoint();
105
34
  }
35
+ _originScreenPoint = atom("originScreenPoint", new Vec());
106
36
  /**
107
37
  * The most recent pointer down's position in screen space.
108
38
  */
@@ -112,10 +42,11 @@ class InputsManager {
112
42
  /**
113
43
  * @deprecated Use `getOriginScreenPoint()` instead.
114
44
  */
115
- // eslint-disable-next-line no-restricted-syntax
45
+ // eslint-disable-next-line tldraw/no-setter-getter
116
46
  get originScreenPoint() {
117
47
  return this.getOriginScreenPoint();
118
48
  }
49
+ _previousPagePoint = atom("previousPagePoint", new Vec());
119
50
  /**
120
51
  * The previous pointer position in the current page space.
121
52
  */
@@ -125,10 +56,11 @@ class InputsManager {
125
56
  /**
126
57
  * @deprecated Use `getPreviousPagePoint()` instead.
127
58
  */
128
- // eslint-disable-next-line no-restricted-syntax
59
+ // eslint-disable-next-line tldraw/no-setter-getter
129
60
  get previousPagePoint() {
130
61
  return this.getPreviousPagePoint();
131
62
  }
63
+ _previousScreenPoint = atom("previousScreenPoint", new Vec());
132
64
  /**
133
65
  * The previous pointer position in screen space.
134
66
  */
@@ -138,10 +70,11 @@ class InputsManager {
138
70
  /**
139
71
  * @deprecated Use `getPreviousScreenPoint()` instead.
140
72
  */
141
- // eslint-disable-next-line no-restricted-syntax
73
+ // eslint-disable-next-line tldraw/no-setter-getter
142
74
  get previousScreenPoint() {
143
75
  return this.getPreviousScreenPoint();
144
76
  }
77
+ _currentPagePoint = atom("currentPagePoint", new Vec());
145
78
  /**
146
79
  * The most recent pointer position in the current page space.
147
80
  */
@@ -151,10 +84,11 @@ class InputsManager {
151
84
  /**
152
85
  * @deprecated Use `getCurrentPagePoint()` instead.
153
86
  */
154
- // eslint-disable-next-line no-restricted-syntax
87
+ // eslint-disable-next-line tldraw/no-setter-getter
155
88
  get currentPagePoint() {
156
89
  return this.getCurrentPagePoint();
157
90
  }
91
+ _currentScreenPoint = atom("currentScreenPoint", new Vec());
158
92
  /**
159
93
  * The most recent pointer position in screen space.
160
94
  */
@@ -164,10 +98,11 @@ class InputsManager {
164
98
  /**
165
99
  * @deprecated Use `getCurrentScreenPoint()` instead.
166
100
  */
167
- // eslint-disable-next-line no-restricted-syntax
101
+ // eslint-disable-next-line tldraw/no-setter-getter
168
102
  get currentScreenPoint() {
169
103
  return this.getCurrentScreenPoint();
170
104
  }
105
+ _pointerVelocity = atom("pointerVelocity", new Vec());
171
106
  /**
172
107
  * Velocity of mouse pointer, in pixels per millisecond.
173
108
  */
@@ -177,7 +112,7 @@ class InputsManager {
177
112
  /**
178
113
  * @deprecated Use `getPointerVelocity()` instead.
179
114
  */
180
- // eslint-disable-next-line no-restricted-syntax
115
+ // eslint-disable-next-line tldraw/no-setter-getter
181
116
  get pointerVelocity() {
182
117
  return this.getPointerVelocity();
183
118
  }
@@ -190,6 +125,15 @@ class InputsManager {
190
125
  setPointerVelocity(pointerVelocity) {
191
126
  this._pointerVelocity.set(pointerVelocity);
192
127
  }
128
+ /**
129
+ * A set containing the currently pressed keys.
130
+ */
131
+ keys = new AtomSet("keys");
132
+ /**
133
+ * A set containing the currently pressed buttons.
134
+ */
135
+ buttons = new AtomSet("buttons");
136
+ _isPen = atom("isPen", false);
193
137
  /**
194
138
  * Whether the input is from a pen.
195
139
  */
@@ -199,11 +143,11 @@ class InputsManager {
199
143
  /**
200
144
  * @deprecated Use `getIsPen()` instead.
201
145
  */
202
- // eslint-disable-next-line no-restricted-syntax
146
+ // eslint-disable-next-line tldraw/no-setter-getter
203
147
  get isPen() {
204
148
  return this.getIsPen();
205
149
  }
206
- // eslint-disable-next-line no-restricted-syntax
150
+ // eslint-disable-next-line tldraw/no-setter-getter
207
151
  set isPen(isPen) {
208
152
  this.setIsPen(isPen);
209
153
  }
@@ -213,6 +157,7 @@ class InputsManager {
213
157
  setIsPen(isPen) {
214
158
  this._isPen.set(isPen);
215
159
  }
160
+ _shiftKey = atom("shiftKey", false);
216
161
  /**
217
162
  * Whether the shift key is currently pressed.
218
163
  */
@@ -222,11 +167,11 @@ class InputsManager {
222
167
  /**
223
168
  * @deprecated Use `getShiftKey()` instead.
224
169
  */
225
- // eslint-disable-next-line no-restricted-syntax
170
+ // eslint-disable-next-line tldraw/no-setter-getter
226
171
  get shiftKey() {
227
172
  return this.getShiftKey();
228
173
  }
229
- // eslint-disable-next-line no-restricted-syntax
174
+ // eslint-disable-next-line tldraw/no-setter-getter
230
175
  set shiftKey(shiftKey) {
231
176
  this.setShiftKey(shiftKey);
232
177
  }
@@ -237,6 +182,7 @@ class InputsManager {
237
182
  setShiftKey(shiftKey) {
238
183
  this._shiftKey.set(shiftKey);
239
184
  }
185
+ _metaKey = atom("metaKey", false);
240
186
  /**
241
187
  * Whether the meta key is currently pressed.
242
188
  */
@@ -246,11 +192,11 @@ class InputsManager {
246
192
  /**
247
193
  * @deprecated Use `getMetaKey()` instead.
248
194
  */
249
- // eslint-disable-next-line no-restricted-syntax
195
+ // eslint-disable-next-line tldraw/no-setter-getter
250
196
  get metaKey() {
251
197
  return this.getMetaKey();
252
198
  }
253
- // eslint-disable-next-line no-restricted-syntax
199
+ // eslint-disable-next-line tldraw/no-setter-getter
254
200
  set metaKey(metaKey) {
255
201
  this.setMetaKey(metaKey);
256
202
  }
@@ -261,6 +207,7 @@ class InputsManager {
261
207
  setMetaKey(metaKey) {
262
208
  this._metaKey.set(metaKey);
263
209
  }
210
+ _ctrlKey = atom("ctrlKey", false);
264
211
  /**
265
212
  * Whether the ctrl or command key is currently pressed.
266
213
  */
@@ -270,11 +217,11 @@ class InputsManager {
270
217
  /**
271
218
  * @deprecated Use `getCtrlKey()` instead.
272
219
  */
273
- // eslint-disable-next-line no-restricted-syntax
220
+ // eslint-disable-next-line tldraw/no-setter-getter
274
221
  get ctrlKey() {
275
222
  return this.getCtrlKey();
276
223
  }
277
- // eslint-disable-next-line no-restricted-syntax
224
+ // eslint-disable-next-line tldraw/no-setter-getter
278
225
  set ctrlKey(ctrlKey) {
279
226
  this.setCtrlKey(ctrlKey);
280
227
  }
@@ -285,6 +232,7 @@ class InputsManager {
285
232
  setCtrlKey(ctrlKey) {
286
233
  this._ctrlKey.set(ctrlKey);
287
234
  }
235
+ _altKey = atom("altKey", false);
288
236
  /**
289
237
  * Whether the alt or option key is currently pressed.
290
238
  */
@@ -294,11 +242,11 @@ class InputsManager {
294
242
  /**
295
243
  * @deprecated Use `getAltKey()` instead.
296
244
  */
297
- // eslint-disable-next-line no-restricted-syntax
245
+ // eslint-disable-next-line tldraw/no-setter-getter
298
246
  get altKey() {
299
247
  return this.getAltKey();
300
248
  }
301
- // eslint-disable-next-line no-restricted-syntax
249
+ // eslint-disable-next-line tldraw/no-setter-getter
302
250
  set altKey(altKey) {
303
251
  this.setAltKey(altKey);
304
252
  }
@@ -318,10 +266,11 @@ class InputsManager {
318
266
  /**
319
267
  * @deprecated Use `getAccelKey()` instead.
320
268
  */
321
- // eslint-disable-next-line no-restricted-syntax
269
+ // eslint-disable-next-line tldraw/no-setter-getter
322
270
  get accelKey() {
323
271
  return this.getAccelKey();
324
272
  }
273
+ _isDragging = atom("isDragging", false);
325
274
  /**
326
275
  * Whether the user is dragging.
327
276
  */
@@ -331,11 +280,11 @@ class InputsManager {
331
280
  /**
332
281
  * Soon to be deprecated, use `getIsDragging()` instead.
333
282
  */
334
- // eslint-disable-next-line no-restricted-syntax
283
+ // eslint-disable-next-line tldraw/no-setter-getter
335
284
  get isDragging() {
336
285
  return this.getIsDragging();
337
286
  }
338
- // eslint-disable-next-line no-restricted-syntax
287
+ // eslint-disable-next-line tldraw/no-setter-getter
339
288
  set isDragging(isDragging) {
340
289
  this.setIsDragging(isDragging);
341
290
  }
@@ -345,6 +294,7 @@ class InputsManager {
345
294
  setIsDragging(isDragging) {
346
295
  this._isDragging.set(isDragging);
347
296
  }
297
+ _isPointing = atom("isPointing", false);
348
298
  /**
349
299
  * Whether the user is pointing.
350
300
  */
@@ -354,11 +304,11 @@ class InputsManager {
354
304
  /**
355
305
  * @deprecated Use `getIsPointing()` instead.
356
306
  */
357
- // eslint-disable-next-line no-restricted-syntax
307
+ // eslint-disable-next-line tldraw/no-setter-getter
358
308
  get isPointing() {
359
309
  return this.getIsPointing();
360
310
  }
361
- // eslint-disable-next-line no-restricted-syntax
311
+ // eslint-disable-next-line tldraw/no-setter-getter
362
312
  set isPointing(isPointing) {
363
313
  this.setIsPointing(isPointing);
364
314
  }
@@ -369,6 +319,7 @@ class InputsManager {
369
319
  setIsPointing(isPointing) {
370
320
  this._isPointing.set(isPointing);
371
321
  }
322
+ _isPinching = atom("isPinching", false);
372
323
  /**
373
324
  * Whether the user is pinching.
374
325
  */
@@ -378,11 +329,11 @@ class InputsManager {
378
329
  /**
379
330
  * @deprecated Use `getIsPinching()` instead.
380
331
  */
381
- // eslint-disable-next-line no-restricted-syntax
332
+ // eslint-disable-next-line tldraw/no-setter-getter
382
333
  get isPinching() {
383
334
  return this.getIsPinching();
384
335
  }
385
- // eslint-disable-next-line no-restricted-syntax
336
+ // eslint-disable-next-line tldraw/no-setter-getter
386
337
  set isPinching(isPinching) {
387
338
  this.setIsPinching(isPinching);
388
339
  }
@@ -393,6 +344,7 @@ class InputsManager {
393
344
  setIsPinching(isPinching) {
394
345
  this._isPinching.set(isPinching);
395
346
  }
347
+ _isEditing = atom("isEditing", false);
396
348
  /**
397
349
  * Whether the user is editing.
398
350
  */
@@ -402,11 +354,11 @@ class InputsManager {
402
354
  /**
403
355
  * @deprecated Use `getIsEditing()` instead.
404
356
  */
405
- // eslint-disable-next-line no-restricted-syntax
357
+ // eslint-disable-next-line tldraw/no-setter-getter
406
358
  get isEditing() {
407
359
  return this.getIsEditing();
408
360
  }
409
- // eslint-disable-next-line no-restricted-syntax
361
+ // eslint-disable-next-line tldraw/no-setter-getter
410
362
  set isEditing(isEditing) {
411
363
  this.setIsEditing(isEditing);
412
364
  }
@@ -416,6 +368,7 @@ class InputsManager {
416
368
  setIsEditing(isEditing) {
417
369
  this._isEditing.set(isEditing);
418
370
  }
371
+ _isPanning = atom("isPanning", false);
419
372
  /**
420
373
  * Whether the user is panning.
421
374
  */
@@ -425,11 +378,11 @@ class InputsManager {
425
378
  /**
426
379
  * @deprecated Use `getIsPanning()` instead.
427
380
  */
428
- // eslint-disable-next-line no-restricted-syntax
381
+ // eslint-disable-next-line tldraw/no-setter-getter
429
382
  get isPanning() {
430
383
  return this.getIsPanning();
431
384
  }
432
- // eslint-disable-next-line no-restricted-syntax
385
+ // eslint-disable-next-line tldraw/no-setter-getter
433
386
  set isPanning(isPanning) {
434
387
  this.setIsPanning(isPanning);
435
388
  }
@@ -440,6 +393,7 @@ class InputsManager {
440
393
  setIsPanning(isPanning) {
441
394
  this._isPanning.set(isPanning);
442
395
  }
396
+ _isSpacebarPanning = atom("isSpacebarPanning", false);
443
397
  /**
444
398
  * Whether the user is spacebar panning.
445
399
  */
@@ -449,11 +403,11 @@ class InputsManager {
449
403
  /**
450
404
  * @deprecated Use `getIsSpacebarPanning()` instead.
451
405
  */
452
- // eslint-disable-next-line no-restricted-syntax
406
+ // eslint-disable-next-line tldraw/no-setter-getter
453
407
  get isSpacebarPanning() {
454
408
  return this.getIsSpacebarPanning();
455
409
  }
456
- // eslint-disable-next-line no-restricted-syntax
410
+ // eslint-disable-next-line tldraw/no-setter-getter
457
411
  set isSpacebarPanning(isSpacebarPanning) {
458
412
  this.setIsSpacebarPanning(isSpacebarPanning);
459
413
  }
@@ -467,6 +421,11 @@ class InputsManager {
467
421
  _getHasCollaborators() {
468
422
  return this.editor.getCollaborators().length > 0;
469
423
  }
424
+ /**
425
+ * The previous point used for velocity calculation (updated each tick, not each pointer event).
426
+ * @internal
427
+ */
428
+ _velocityPrevPoint = new Vec();
470
429
  /**
471
430
  * Update the pointer velocity based on elapsed time. Called by the tick manager.
472
431
  * @param elapsed - The time elapsed since the last tick in milliseconds.
@@ -564,9 +523,9 @@ class InputsManager {
564
523
  };
565
524
  }
566
525
  }
567
- _init = __decoratorStart(null);
568
- __decorateElement(_init, 1, "_getHasCollaborators", __getHasCollaborators_dec, InputsManager);
569
- __decoratorMetadata(_init, InputsManager);
526
+ __decorateClass([
527
+ computed
528
+ ], InputsManager.prototype, "_getHasCollaborators", 1);
570
529
  export {
571
530
  InputsManager
572
531
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/editor/managers/InputsManager/InputsManager.ts"],
4
- "sourcesContent": ["import { atom, computed, unsafe__withoutCapture } from '@tldraw/state'\nimport { AtomSet } from '@tldraw/store'\nimport { TLINSTANCE_ID, TLPOINTER_ID } from '@tldraw/tlschema'\nimport { INTERNAL_POINTER_IDS } from '../../../constants'\nimport { Vec } from '../../../primitives/Vec'\nimport { isAccelKey } from '../../../utils/keyboard'\nimport type { Editor } from '../../Editor'\nimport { TLPinchEventInfo, TLPointerEventInfo, TLWheelEventInfo } from '../../types/event-types'\n\n/** @public */\nexport class InputsManager {\n\tconstructor(private readonly editor: Editor) {}\n\n\tprivate _originPagePoint = atom<Vec>('originPagePoint', new Vec())\n\t/**\n\t * The most recent pointer down's position in the current page space.\n\t */\n\tgetOriginPagePoint() {\n\t\treturn this._originPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getOriginPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget originPagePoint() {\n\t\treturn this.getOriginPagePoint()\n\t}\n\n\tprivate _originScreenPoint = atom<Vec>('originScreenPoint', new Vec())\n\t/**\n\t * The most recent pointer down's position in screen space.\n\t */\n\tgetOriginScreenPoint() {\n\t\treturn this._originScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getOriginScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget originScreenPoint() {\n\t\treturn this.getOriginScreenPoint()\n\t}\n\n\tprivate _previousPagePoint = atom<Vec>('previousPagePoint', new Vec())\n\t/**\n\t * The previous pointer position in the current page space.\n\t */\n\tgetPreviousPagePoint() {\n\t\treturn this._previousPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getPreviousPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget previousPagePoint() {\n\t\treturn this.getPreviousPagePoint()\n\t}\n\n\tprivate _previousScreenPoint = atom<Vec>('previousScreenPoint', new Vec())\n\t/**\n\t * The previous pointer position in screen space.\n\t */\n\tgetPreviousScreenPoint() {\n\t\treturn this._previousScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getPreviousScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget previousScreenPoint() {\n\t\treturn this.getPreviousScreenPoint()\n\t}\n\n\tprivate _currentPagePoint = atom<Vec>('currentPagePoint', new Vec())\n\t/**\n\t * The most recent pointer position in the current page space.\n\t */\n\tgetCurrentPagePoint() {\n\t\treturn this._currentPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getCurrentPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget currentPagePoint() {\n\t\treturn this.getCurrentPagePoint()\n\t}\n\n\tprivate _currentScreenPoint = atom<Vec>('currentScreenPoint', new Vec())\n\t/**\n\t * The most recent pointer position in screen space.\n\t */\n\tgetCurrentScreenPoint() {\n\t\treturn this._currentScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getCurrentScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget currentScreenPoint() {\n\t\treturn this.getCurrentScreenPoint()\n\t}\n\n\tprivate _pointerVelocity = atom<Vec>('pointerVelocity', new Vec())\n\t/**\n\t * Velocity of mouse pointer, in pixels per millisecond.\n\t */\n\tgetPointerVelocity() {\n\t\treturn this._pointerVelocity.get()\n\t}\n\t/**\n\t * @deprecated Use `getPointerVelocity()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget pointerVelocity() {\n\t\treturn this.getPointerVelocity()\n\t}\n\n\t/**\n\t * Normally you shouldn't need to set the pointer velocity directly, this is set by the tick manager.\n\t * However, this is currently used in tests to fake pointer velocity.\n\t * @param pointerVelocity - The pointer velocity.\n\t * @internal\n\t */\n\tsetPointerVelocity(pointerVelocity: Vec) {\n\t\tthis._pointerVelocity.set(pointerVelocity)\n\t}\n\n\t/**\n\t * A set containing the currently pressed keys.\n\t */\n\treadonly keys = new AtomSet<string>('keys')\n\n\t/**\n\t * A set containing the currently pressed buttons.\n\t */\n\treadonly buttons = new AtomSet<number>('buttons')\n\n\tprivate _isPen = atom<boolean>('isPen', false)\n\n\t/**\n\t * Whether the input is from a pen.\n\t */\n\tgetIsPen() {\n\t\treturn this._isPen.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPen()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isPen() {\n\t\treturn this.getIsPen()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isPen(isPen: boolean) {\n\t\tthis.setIsPen(isPen)\n\t}\n\t/**\n\t * @param isPen - Whether the input is from a pen.\n\t */\n\tsetIsPen(isPen: boolean) {\n\t\tthis._isPen.set(isPen)\n\t}\n\n\tprivate _shiftKey = atom<boolean>('shiftKey', false)\n\t/**\n\t * Whether the shift key is currently pressed.\n\t */\n\tgetShiftKey() {\n\t\treturn this._shiftKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getShiftKey()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget shiftKey() {\n\t\treturn this.getShiftKey()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset shiftKey(shiftKey: boolean) {\n\t\tthis.setShiftKey(shiftKey)\n\t}\n\t/**\n\t * @param shiftKey - Whether the shift key is pressed.\n\t * @internal\n\t */\n\tsetShiftKey(shiftKey: boolean) {\n\t\tthis._shiftKey.set(shiftKey)\n\t}\n\n\tprivate _metaKey = atom<boolean>('metaKey', false)\n\t/**\n\t * Whether the meta key is currently pressed.\n\t */\n\tgetMetaKey() {\n\t\treturn this._metaKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getMetaKey()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget metaKey() {\n\t\treturn this.getMetaKey()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset metaKey(metaKey: boolean) {\n\t\tthis.setMetaKey(metaKey)\n\t}\n\t/**\n\t * @param metaKey - Whether the meta key is pressed.\n\t * @internal\n\t */\n\tsetMetaKey(metaKey: boolean) {\n\t\tthis._metaKey.set(metaKey)\n\t}\n\n\tprivate _ctrlKey = atom<boolean>('ctrlKey', false)\n\t/**\n\t * Whether the ctrl or command key is currently pressed.\n\t */\n\tgetCtrlKey() {\n\t\treturn this._ctrlKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getCtrlKey()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget ctrlKey() {\n\t\treturn this.getCtrlKey()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset ctrlKey(ctrlKey: boolean) {\n\t\tthis.setCtrlKey(ctrlKey)\n\t}\n\t/**\n\t * @param ctrlKey - Whether the ctrl key is pressed.\n\t * @internal\n\t */\n\tsetCtrlKey(ctrlKey: boolean) {\n\t\tthis._ctrlKey.set(ctrlKey)\n\t}\n\n\tprivate _altKey = atom<boolean>('altKey', false)\n\t/**\n\t * Whether the alt or option key is currently pressed.\n\t */\n\tgetAltKey() {\n\t\treturn this._altKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getAltKey()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget altKey() {\n\t\treturn this.getAltKey()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset altKey(altKey: boolean) {\n\t\tthis.setAltKey(altKey)\n\t}\n\t/**\n\t * @param altKey - Whether the alt key is pressed.\n\t * @internal\n\t */\n\tsetAltKey(altKey: boolean) {\n\t\tthis._altKey.set(altKey)\n\t}\n\n\t/**\n\t * Is the accelerator key (cmd on mac, ctrl elsewhere) currently pressed.\n\t */\n\tgetAccelKey() {\n\t\treturn isAccelKey({ metaKey: this.getMetaKey(), ctrlKey: this.getCtrlKey() })\n\t}\n\t/**\n\t * @deprecated Use `getAccelKey()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget accelKey() {\n\t\treturn this.getAccelKey()\n\t}\n\n\tprivate _isDragging = atom<boolean>('isDragging', false)\n\t/**\n\t * Whether the user is dragging.\n\t */\n\tgetIsDragging() {\n\t\treturn this._isDragging.get()\n\t}\n\t/**\n\t * Soon to be deprecated, use `getIsDragging()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isDragging() {\n\t\treturn this.getIsDragging()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isDragging(isDragging: boolean) {\n\t\tthis.setIsDragging(isDragging)\n\t}\n\t/**\n\t * @param isDragging - Whether the user is dragging.\n\t */\n\tsetIsDragging(isDragging: boolean) {\n\t\tthis._isDragging.set(isDragging)\n\t}\n\n\tprivate _isPointing = atom<boolean>('isPointing', false)\n\t/**\n\t * Whether the user is pointing.\n\t */\n\tgetIsPointing() {\n\t\treturn this._isPointing.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPointing()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isPointing() {\n\t\treturn this.getIsPointing()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isPointing(isPointing: boolean) {\n\t\tthis.setIsPointing(isPointing)\n\t}\n\t/**\n\t * @param isPointing - Whether the user is pointing.\n\t * @internal\n\t */\n\tsetIsPointing(isPointing: boolean) {\n\t\tthis._isPointing.set(isPointing)\n\t}\n\n\tprivate _isPinching = atom<boolean>('isPinching', false)\n\t/**\n\t * Whether the user is pinching.\n\t */\n\tgetIsPinching() {\n\t\treturn this._isPinching.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPinching()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isPinching() {\n\t\treturn this.getIsPinching()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isPinching(isPinching: boolean) {\n\t\tthis.setIsPinching(isPinching)\n\t}\n\t/**\n\t * @param isPinching - Whether the user is pinching.\n\t * @internal\n\t */\n\tsetIsPinching(isPinching: boolean) {\n\t\tthis._isPinching.set(isPinching)\n\t}\n\n\tprivate _isEditing = atom<boolean>('isEditing', false)\n\t/**\n\t * Whether the user is editing.\n\t */\n\tgetIsEditing() {\n\t\treturn this._isEditing.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsEditing()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isEditing() {\n\t\treturn this.getIsEditing()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isEditing(isEditing: boolean) {\n\t\tthis.setIsEditing(isEditing)\n\t}\n\t/**\n\t * @param isEditing - Whether the user is editing.\n\t */\n\tsetIsEditing(isEditing: boolean) {\n\t\tthis._isEditing.set(isEditing)\n\t}\n\n\tprivate _isPanning = atom<boolean>('isPanning', false)\n\t/**\n\t * Whether the user is panning.\n\t */\n\tgetIsPanning() {\n\t\treturn this._isPanning.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPanning()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isPanning() {\n\t\treturn this.getIsPanning()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isPanning(isPanning: boolean) {\n\t\tthis.setIsPanning(isPanning)\n\t}\n\t/**\n\t * @param isPanning - Whether the user is panning.\n\t * @internal\n\t */\n\tsetIsPanning(isPanning: boolean) {\n\t\tthis._isPanning.set(isPanning)\n\t}\n\n\tprivate _isSpacebarPanning = atom<boolean>('isSpacebarPanning', false)\n\t/**\n\t * Whether the user is spacebar panning.\n\t */\n\tgetIsSpacebarPanning() {\n\t\treturn this._isSpacebarPanning.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsSpacebarPanning()` instead.\n\t */\n\t// eslint-disable-next-line no-restricted-syntax\n\tget isSpacebarPanning() {\n\t\treturn this.getIsSpacebarPanning()\n\t}\n\t// eslint-disable-next-line no-restricted-syntax\n\tset isSpacebarPanning(isSpacebarPanning: boolean) {\n\t\tthis.setIsSpacebarPanning(isSpacebarPanning)\n\t}\n\t/**\n\t * @param isSpacebarPanning - Whether the user is spacebar panning.\n\t * @internal\n\t */\n\tsetIsSpacebarPanning(isSpacebarPanning: boolean) {\n\t\tthis._isSpacebarPanning.set(isSpacebarPanning)\n\t}\n\n\t@computed private _getHasCollaborators() {\n\t\treturn this.editor.getCollaborators().length > 0 // could we do this more efficiently?\n\t}\n\n\t/**\n\t * The previous point used for velocity calculation (updated each tick, not each pointer event).\n\t * @internal\n\t */\n\tprivate _velocityPrevPoint = new Vec()\n\n\t/**\n\t * Update the pointer velocity based on elapsed time. Called by the tick manager.\n\t * @param elapsed - The time elapsed since the last tick in milliseconds.\n\t * @internal\n\t */\n\tupdatePointerVelocity(elapsed: number) {\n\t\tconst currentScreenPoint = this.getCurrentScreenPoint()\n\t\tconst pointerVelocity = this.getPointerVelocity()\n\n\t\tif (elapsed === 0) return\n\n\t\tconst delta = Vec.Sub(currentScreenPoint, this._velocityPrevPoint)\n\t\tthis._velocityPrevPoint = currentScreenPoint.clone()\n\n\t\tconst length = delta.len()\n\t\tconst direction = length ? delta.div(length) : new Vec(0, 0)\n\n\t\t// consider adjusting this with an easing rather than a linear interpolation\n\t\tconst next = pointerVelocity.clone().lrp(direction.mul(length / elapsed), 0.5)\n\n\t\t// if the velocity is very small, just set it to 0\n\t\tif (Math.abs(next.x) < 0.01) next.x = 0\n\t\tif (Math.abs(next.y) < 0.01) next.y = 0\n\n\t\tif (!pointerVelocity.equals(next)) {\n\t\t\tthis._pointerVelocity.set(next)\n\t\t}\n\t}\n\n\t/**\n\t * Update the input points from a pointer, pinch, or wheel event.\n\t *\n\t * @param info - The event info.\n\t * @internal\n\t */\n\tupdateFromEvent(info: TLPointerEventInfo | TLPinchEventInfo | TLWheelEventInfo): void {\n\t\tconst currentScreenPoint = this._currentScreenPoint.__unsafe__getWithoutCapture()\n\t\tconst currentPagePoint = this._currentPagePoint.__unsafe__getWithoutCapture()\n\t\tconst isPinching = this._isPinching.__unsafe__getWithoutCapture()\n\t\tconst { screenBounds } = this.editor.store.unsafeGetWithoutCapture(TLINSTANCE_ID)!\n\t\tconst { x: cx, y: cy, z: cz } = unsafe__withoutCapture(() => this.editor.getCamera())\n\n\t\tconst sx = info.point.x - screenBounds.x\n\t\tconst sy = info.point.y - screenBounds.y\n\t\tconst sz = info.point.z ?? 0.5\n\n\t\tthis._previousScreenPoint.set(currentScreenPoint)\n\t\tthis._previousPagePoint.set(currentPagePoint)\n\n\t\t// The \"screen bounds\" is relative to the user's actual screen.\n\t\t// The \"screen point\" is relative to the \"screen bounds\";\n\t\t// it will be 0,0 when its actual screen position is equal\n\t\t// to screenBounds.point. This is confusing!\n\t\tthis._currentScreenPoint.set(new Vec(sx, sy))\n\t\tconst nx = sx / cz - cx\n\t\tconst ny = sy / cz - cy\n\t\tif (isFinite(nx) && isFinite(ny)) {\n\t\t\tthis._currentPagePoint.set(new Vec(nx, ny, sz))\n\t\t}\n\n\t\tthis._isPen.set(info.type === 'pointer' && info.isPen)\n\n\t\t// Reset velocity on pointer down, or when a pinch starts or ends\n\t\tif (info.name === 'pointer_down' || isPinching) {\n\t\t\tthis._pointerVelocity.set(new Vec())\n\t\t\tthis._originScreenPoint.set(this._currentScreenPoint.__unsafe__getWithoutCapture())\n\t\t\tthis._originPagePoint.set(this._currentPagePoint.__unsafe__getWithoutCapture())\n\t\t}\n\n\t\tif (this._getHasCollaborators()) {\n\t\t\tthis.editor.run(\n\t\t\t\t() => {\n\t\t\t\t\tconst pagePoint = this._currentPagePoint.__unsafe__getWithoutCapture()\n\t\t\t\t\tthis.editor.store.put([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: TLPOINTER_ID,\n\t\t\t\t\t\t\ttypeName: 'pointer',\n\t\t\t\t\t\t\tx: pagePoint.x,\n\t\t\t\t\t\t\ty: pagePoint.y,\n\t\t\t\t\t\t\tlastActivityTimestamp:\n\t\t\t\t\t\t\t\t// If our pointer moved only because we're following some other user, then don't\n\t\t\t\t\t\t\t\t// update our last activity timestamp; otherwise, update it to the current timestamp.\n\t\t\t\t\t\t\t\tinfo.type === 'pointer' && info.pointerId === INTERNAL_POINTER_IDS.CAMERA_MOVE\n\t\t\t\t\t\t\t\t\t? (this.editor.store.unsafeGetWithoutCapture(TLPOINTER_ID)\n\t\t\t\t\t\t\t\t\t\t\t?.lastActivityTimestamp ?? Date.now())\n\t\t\t\t\t\t\t\t\t: Date.now(),\n\t\t\t\t\t\t\tmeta: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t])\n\t\t\t\t},\n\t\t\t\t{ history: 'ignore' }\n\t\t\t)\n\t\t}\n\t}\n\n\ttoJson() {\n\t\treturn {\n\t\t\toriginPagePoint: this._originPagePoint.get().toJson(),\n\t\t\toriginScreenPoint: this._originScreenPoint.get().toJson(),\n\t\t\tpreviousPagePoint: this._previousPagePoint.get().toJson(),\n\t\t\tpreviousScreenPoint: this._previousScreenPoint.get().toJson(),\n\t\t\tcurrentPagePoint: this._currentPagePoint.get().toJson(),\n\t\t\tcurrentScreenPoint: this._currentScreenPoint.get().toJson(),\n\t\t\tpointerVelocity: this._pointerVelocity.get().toJson(),\n\t\t\tshiftKey: this._shiftKey.get(),\n\t\t\tmetaKey: this._metaKey.get(),\n\t\t\tctrlKey: this._ctrlKey.get(),\n\t\t\taltKey: this._altKey.get(),\n\t\t\tisPen: this._isPen.get(),\n\t\t\tisDragging: this._isDragging.get(),\n\t\t\tisPointing: this._isPointing.get(),\n\t\t\tisPinching: this._isPinching.get(),\n\t\t\tisEditing: this._isEditing.get(),\n\t\t\tisPanning: this._isPanning.get(),\n\t\t\tisSpacebarPanning: this._isSpacebarPanning.get(),\n\t\t\tkeys: Array.from(this.keys.keys()),\n\t\t\tbuttons: Array.from(this.buttons.keys()),\n\t\t}\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { atom, computed, unsafe__withoutCapture } from '@tldraw/state'\nimport { AtomSet } from '@tldraw/store'\nimport { TLINSTANCE_ID, TLPOINTER_ID } from '@tldraw/tlschema'\nimport { INTERNAL_POINTER_IDS } from '../../../constants'\nimport { Vec } from '../../../primitives/Vec'\nimport { isAccelKey } from '../../../utils/keyboard'\nimport type { Editor } from '../../Editor'\nimport { TLPinchEventInfo, TLPointerEventInfo, TLWheelEventInfo } from '../../types/event-types'\n\n/** @public */\nexport class InputsManager {\n\tconstructor(private readonly editor: Editor) {}\n\n\tprivate _originPagePoint = atom<Vec>('originPagePoint', new Vec())\n\t/**\n\t * The most recent pointer down's position in the current page space.\n\t */\n\tgetOriginPagePoint() {\n\t\treturn this._originPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getOriginPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget originPagePoint() {\n\t\treturn this.getOriginPagePoint()\n\t}\n\n\tprivate _originScreenPoint = atom<Vec>('originScreenPoint', new Vec())\n\t/**\n\t * The most recent pointer down's position in screen space.\n\t */\n\tgetOriginScreenPoint() {\n\t\treturn this._originScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getOriginScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget originScreenPoint() {\n\t\treturn this.getOriginScreenPoint()\n\t}\n\n\tprivate _previousPagePoint = atom<Vec>('previousPagePoint', new Vec())\n\t/**\n\t * The previous pointer position in the current page space.\n\t */\n\tgetPreviousPagePoint() {\n\t\treturn this._previousPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getPreviousPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget previousPagePoint() {\n\t\treturn this.getPreviousPagePoint()\n\t}\n\n\tprivate _previousScreenPoint = atom<Vec>('previousScreenPoint', new Vec())\n\t/**\n\t * The previous pointer position in screen space.\n\t */\n\tgetPreviousScreenPoint() {\n\t\treturn this._previousScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getPreviousScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget previousScreenPoint() {\n\t\treturn this.getPreviousScreenPoint()\n\t}\n\n\tprivate _currentPagePoint = atom<Vec>('currentPagePoint', new Vec())\n\t/**\n\t * The most recent pointer position in the current page space.\n\t */\n\tgetCurrentPagePoint() {\n\t\treturn this._currentPagePoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getCurrentPagePoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget currentPagePoint() {\n\t\treturn this.getCurrentPagePoint()\n\t}\n\n\tprivate _currentScreenPoint = atom<Vec>('currentScreenPoint', new Vec())\n\t/**\n\t * The most recent pointer position in screen space.\n\t */\n\tgetCurrentScreenPoint() {\n\t\treturn this._currentScreenPoint.get()\n\t}\n\t/**\n\t * @deprecated Use `getCurrentScreenPoint()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget currentScreenPoint() {\n\t\treturn this.getCurrentScreenPoint()\n\t}\n\n\tprivate _pointerVelocity = atom<Vec>('pointerVelocity', new Vec())\n\t/**\n\t * Velocity of mouse pointer, in pixels per millisecond.\n\t */\n\tgetPointerVelocity() {\n\t\treturn this._pointerVelocity.get()\n\t}\n\t/**\n\t * @deprecated Use `getPointerVelocity()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget pointerVelocity() {\n\t\treturn this.getPointerVelocity()\n\t}\n\n\t/**\n\t * Normally you shouldn't need to set the pointer velocity directly, this is set by the tick manager.\n\t * However, this is currently used in tests to fake pointer velocity.\n\t * @param pointerVelocity - The pointer velocity.\n\t * @internal\n\t */\n\tsetPointerVelocity(pointerVelocity: Vec) {\n\t\tthis._pointerVelocity.set(pointerVelocity)\n\t}\n\n\t/**\n\t * A set containing the currently pressed keys.\n\t */\n\treadonly keys = new AtomSet<string>('keys')\n\n\t/**\n\t * A set containing the currently pressed buttons.\n\t */\n\treadonly buttons = new AtomSet<number>('buttons')\n\n\tprivate _isPen = atom<boolean>('isPen', false)\n\n\t/**\n\t * Whether the input is from a pen.\n\t */\n\tgetIsPen() {\n\t\treturn this._isPen.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPen()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isPen() {\n\t\treturn this.getIsPen()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isPen(isPen: boolean) {\n\t\tthis.setIsPen(isPen)\n\t}\n\t/**\n\t * @param isPen - Whether the input is from a pen.\n\t */\n\tsetIsPen(isPen: boolean) {\n\t\tthis._isPen.set(isPen)\n\t}\n\n\tprivate _shiftKey = atom<boolean>('shiftKey', false)\n\t/**\n\t * Whether the shift key is currently pressed.\n\t */\n\tgetShiftKey() {\n\t\treturn this._shiftKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getShiftKey()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget shiftKey() {\n\t\treturn this.getShiftKey()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset shiftKey(shiftKey: boolean) {\n\t\tthis.setShiftKey(shiftKey)\n\t}\n\t/**\n\t * @param shiftKey - Whether the shift key is pressed.\n\t * @internal\n\t */\n\tsetShiftKey(shiftKey: boolean) {\n\t\tthis._shiftKey.set(shiftKey)\n\t}\n\n\tprivate _metaKey = atom<boolean>('metaKey', false)\n\t/**\n\t * Whether the meta key is currently pressed.\n\t */\n\tgetMetaKey() {\n\t\treturn this._metaKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getMetaKey()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget metaKey() {\n\t\treturn this.getMetaKey()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset metaKey(metaKey: boolean) {\n\t\tthis.setMetaKey(metaKey)\n\t}\n\t/**\n\t * @param metaKey - Whether the meta key is pressed.\n\t * @internal\n\t */\n\tsetMetaKey(metaKey: boolean) {\n\t\tthis._metaKey.set(metaKey)\n\t}\n\n\tprivate _ctrlKey = atom<boolean>('ctrlKey', false)\n\t/**\n\t * Whether the ctrl or command key is currently pressed.\n\t */\n\tgetCtrlKey() {\n\t\treturn this._ctrlKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getCtrlKey()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget ctrlKey() {\n\t\treturn this.getCtrlKey()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset ctrlKey(ctrlKey: boolean) {\n\t\tthis.setCtrlKey(ctrlKey)\n\t}\n\t/**\n\t * @param ctrlKey - Whether the ctrl key is pressed.\n\t * @internal\n\t */\n\tsetCtrlKey(ctrlKey: boolean) {\n\t\tthis._ctrlKey.set(ctrlKey)\n\t}\n\n\tprivate _altKey = atom<boolean>('altKey', false)\n\t/**\n\t * Whether the alt or option key is currently pressed.\n\t */\n\tgetAltKey() {\n\t\treturn this._altKey.get()\n\t}\n\t/**\n\t * @deprecated Use `getAltKey()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget altKey() {\n\t\treturn this.getAltKey()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset altKey(altKey: boolean) {\n\t\tthis.setAltKey(altKey)\n\t}\n\t/**\n\t * @param altKey - Whether the alt key is pressed.\n\t * @internal\n\t */\n\tsetAltKey(altKey: boolean) {\n\t\tthis._altKey.set(altKey)\n\t}\n\n\t/**\n\t * Is the accelerator key (cmd on mac, ctrl elsewhere) currently pressed.\n\t */\n\tgetAccelKey() {\n\t\treturn isAccelKey({ metaKey: this.getMetaKey(), ctrlKey: this.getCtrlKey() })\n\t}\n\t/**\n\t * @deprecated Use `getAccelKey()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget accelKey() {\n\t\treturn this.getAccelKey()\n\t}\n\n\tprivate _isDragging = atom<boolean>('isDragging', false)\n\t/**\n\t * Whether the user is dragging.\n\t */\n\tgetIsDragging() {\n\t\treturn this._isDragging.get()\n\t}\n\t/**\n\t * Soon to be deprecated, use `getIsDragging()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isDragging() {\n\t\treturn this.getIsDragging()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isDragging(isDragging: boolean) {\n\t\tthis.setIsDragging(isDragging)\n\t}\n\t/**\n\t * @param isDragging - Whether the user is dragging.\n\t */\n\tsetIsDragging(isDragging: boolean) {\n\t\tthis._isDragging.set(isDragging)\n\t}\n\n\tprivate _isPointing = atom<boolean>('isPointing', false)\n\t/**\n\t * Whether the user is pointing.\n\t */\n\tgetIsPointing() {\n\t\treturn this._isPointing.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPointing()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isPointing() {\n\t\treturn this.getIsPointing()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isPointing(isPointing: boolean) {\n\t\tthis.setIsPointing(isPointing)\n\t}\n\t/**\n\t * @param isPointing - Whether the user is pointing.\n\t * @internal\n\t */\n\tsetIsPointing(isPointing: boolean) {\n\t\tthis._isPointing.set(isPointing)\n\t}\n\n\tprivate _isPinching = atom<boolean>('isPinching', false)\n\t/**\n\t * Whether the user is pinching.\n\t */\n\tgetIsPinching() {\n\t\treturn this._isPinching.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPinching()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isPinching() {\n\t\treturn this.getIsPinching()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isPinching(isPinching: boolean) {\n\t\tthis.setIsPinching(isPinching)\n\t}\n\t/**\n\t * @param isPinching - Whether the user is pinching.\n\t * @internal\n\t */\n\tsetIsPinching(isPinching: boolean) {\n\t\tthis._isPinching.set(isPinching)\n\t}\n\n\tprivate _isEditing = atom<boolean>('isEditing', false)\n\t/**\n\t * Whether the user is editing.\n\t */\n\tgetIsEditing() {\n\t\treturn this._isEditing.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsEditing()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isEditing() {\n\t\treturn this.getIsEditing()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isEditing(isEditing: boolean) {\n\t\tthis.setIsEditing(isEditing)\n\t}\n\t/**\n\t * @param isEditing - Whether the user is editing.\n\t */\n\tsetIsEditing(isEditing: boolean) {\n\t\tthis._isEditing.set(isEditing)\n\t}\n\n\tprivate _isPanning = atom<boolean>('isPanning', false)\n\t/**\n\t * Whether the user is panning.\n\t */\n\tgetIsPanning() {\n\t\treturn this._isPanning.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsPanning()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isPanning() {\n\t\treturn this.getIsPanning()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isPanning(isPanning: boolean) {\n\t\tthis.setIsPanning(isPanning)\n\t}\n\t/**\n\t * @param isPanning - Whether the user is panning.\n\t * @internal\n\t */\n\tsetIsPanning(isPanning: boolean) {\n\t\tthis._isPanning.set(isPanning)\n\t}\n\n\tprivate _isSpacebarPanning = atom<boolean>('isSpacebarPanning', false)\n\t/**\n\t * Whether the user is spacebar panning.\n\t */\n\tgetIsSpacebarPanning() {\n\t\treturn this._isSpacebarPanning.get()\n\t}\n\t/**\n\t * @deprecated Use `getIsSpacebarPanning()` instead.\n\t */\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tget isSpacebarPanning() {\n\t\treturn this.getIsSpacebarPanning()\n\t}\n\t// eslint-disable-next-line tldraw/no-setter-getter\n\tset isSpacebarPanning(isSpacebarPanning: boolean) {\n\t\tthis.setIsSpacebarPanning(isSpacebarPanning)\n\t}\n\t/**\n\t * @param isSpacebarPanning - Whether the user is spacebar panning.\n\t * @internal\n\t */\n\tsetIsSpacebarPanning(isSpacebarPanning: boolean) {\n\t\tthis._isSpacebarPanning.set(isSpacebarPanning)\n\t}\n\n\t@computed private _getHasCollaborators() {\n\t\treturn this.editor.getCollaborators().length > 0 // could we do this more efficiently?\n\t}\n\n\t/**\n\t * The previous point used for velocity calculation (updated each tick, not each pointer event).\n\t * @internal\n\t */\n\tprivate _velocityPrevPoint = new Vec()\n\n\t/**\n\t * Update the pointer velocity based on elapsed time. Called by the tick manager.\n\t * @param elapsed - The time elapsed since the last tick in milliseconds.\n\t * @internal\n\t */\n\tupdatePointerVelocity(elapsed: number) {\n\t\tconst currentScreenPoint = this.getCurrentScreenPoint()\n\t\tconst pointerVelocity = this.getPointerVelocity()\n\n\t\tif (elapsed === 0) return\n\n\t\tconst delta = Vec.Sub(currentScreenPoint, this._velocityPrevPoint)\n\t\tthis._velocityPrevPoint = currentScreenPoint.clone()\n\n\t\tconst length = delta.len()\n\t\tconst direction = length ? delta.div(length) : new Vec(0, 0)\n\n\t\t// consider adjusting this with an easing rather than a linear interpolation\n\t\tconst next = pointerVelocity.clone().lrp(direction.mul(length / elapsed), 0.5)\n\n\t\t// if the velocity is very small, just set it to 0\n\t\tif (Math.abs(next.x) < 0.01) next.x = 0\n\t\tif (Math.abs(next.y) < 0.01) next.y = 0\n\n\t\tif (!pointerVelocity.equals(next)) {\n\t\t\tthis._pointerVelocity.set(next)\n\t\t}\n\t}\n\n\t/**\n\t * Update the input points from a pointer, pinch, or wheel event.\n\t *\n\t * @param info - The event info.\n\t * @internal\n\t */\n\tupdateFromEvent(info: TLPointerEventInfo | TLPinchEventInfo | TLWheelEventInfo): void {\n\t\tconst currentScreenPoint = this._currentScreenPoint.__unsafe__getWithoutCapture()\n\t\tconst currentPagePoint = this._currentPagePoint.__unsafe__getWithoutCapture()\n\t\tconst isPinching = this._isPinching.__unsafe__getWithoutCapture()\n\t\tconst { screenBounds } = this.editor.store.unsafeGetWithoutCapture(TLINSTANCE_ID)!\n\t\tconst { x: cx, y: cy, z: cz } = unsafe__withoutCapture(() => this.editor.getCamera())\n\n\t\tconst sx = info.point.x - screenBounds.x\n\t\tconst sy = info.point.y - screenBounds.y\n\t\tconst sz = info.point.z ?? 0.5\n\n\t\tthis._previousScreenPoint.set(currentScreenPoint)\n\t\tthis._previousPagePoint.set(currentPagePoint)\n\n\t\t// The \"screen bounds\" is relative to the user's actual screen.\n\t\t// The \"screen point\" is relative to the \"screen bounds\";\n\t\t// it will be 0,0 when its actual screen position is equal\n\t\t// to screenBounds.point. This is confusing!\n\t\tthis._currentScreenPoint.set(new Vec(sx, sy))\n\t\tconst nx = sx / cz - cx\n\t\tconst ny = sy / cz - cy\n\t\tif (isFinite(nx) && isFinite(ny)) {\n\t\t\tthis._currentPagePoint.set(new Vec(nx, ny, sz))\n\t\t}\n\n\t\tthis._isPen.set(info.type === 'pointer' && info.isPen)\n\n\t\t// Reset velocity on pointer down, or when a pinch starts or ends\n\t\tif (info.name === 'pointer_down' || isPinching) {\n\t\t\tthis._pointerVelocity.set(new Vec())\n\t\t\tthis._originScreenPoint.set(this._currentScreenPoint.__unsafe__getWithoutCapture())\n\t\t\tthis._originPagePoint.set(this._currentPagePoint.__unsafe__getWithoutCapture())\n\t\t}\n\n\t\tif (this._getHasCollaborators()) {\n\t\t\tthis.editor.run(\n\t\t\t\t() => {\n\t\t\t\t\tconst pagePoint = this._currentPagePoint.__unsafe__getWithoutCapture()\n\t\t\t\t\tthis.editor.store.put([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: TLPOINTER_ID,\n\t\t\t\t\t\t\ttypeName: 'pointer',\n\t\t\t\t\t\t\tx: pagePoint.x,\n\t\t\t\t\t\t\ty: pagePoint.y,\n\t\t\t\t\t\t\tlastActivityTimestamp:\n\t\t\t\t\t\t\t\t// If our pointer moved only because we're following some other user, then don't\n\t\t\t\t\t\t\t\t// update our last activity timestamp; otherwise, update it to the current timestamp.\n\t\t\t\t\t\t\t\tinfo.type === 'pointer' && info.pointerId === INTERNAL_POINTER_IDS.CAMERA_MOVE\n\t\t\t\t\t\t\t\t\t? (this.editor.store.unsafeGetWithoutCapture(TLPOINTER_ID)\n\t\t\t\t\t\t\t\t\t\t\t?.lastActivityTimestamp ?? Date.now())\n\t\t\t\t\t\t\t\t\t: Date.now(),\n\t\t\t\t\t\t\tmeta: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t])\n\t\t\t\t},\n\t\t\t\t{ history: 'ignore' }\n\t\t\t)\n\t\t}\n\t}\n\n\ttoJson() {\n\t\treturn {\n\t\t\toriginPagePoint: this._originPagePoint.get().toJson(),\n\t\t\toriginScreenPoint: this._originScreenPoint.get().toJson(),\n\t\t\tpreviousPagePoint: this._previousPagePoint.get().toJson(),\n\t\t\tpreviousScreenPoint: this._previousScreenPoint.get().toJson(),\n\t\t\tcurrentPagePoint: this._currentPagePoint.get().toJson(),\n\t\t\tcurrentScreenPoint: this._currentScreenPoint.get().toJson(),\n\t\t\tpointerVelocity: this._pointerVelocity.get().toJson(),\n\t\t\tshiftKey: this._shiftKey.get(),\n\t\t\tmetaKey: this._metaKey.get(),\n\t\t\tctrlKey: this._ctrlKey.get(),\n\t\t\taltKey: this._altKey.get(),\n\t\t\tisPen: this._isPen.get(),\n\t\t\tisDragging: this._isDragging.get(),\n\t\t\tisPointing: this._isPointing.get(),\n\t\t\tisPinching: this._isPinching.get(),\n\t\t\tisEditing: this._isEditing.get(),\n\t\t\tisPanning: this._isPanning.get(),\n\t\t\tisSpacebarPanning: this._isSpacebarPanning.get(),\n\t\t\tkeys: Array.from(this.keys.keys()),\n\t\t\tbuttons: Array.from(this.buttons.keys()),\n\t\t}\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }