@bigbluebutton/tldraw 2.0.0-alpha.34 → 2.0.0-alpha.35

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 (379) hide show
  1. package/dist-cjs/index.js +4 -4
  2. package/dist-cjs/index.js.map +1 -1
  3. package/dist-cjs/lib/Tldraw.js +1 -2
  4. package/dist-cjs/lib/Tldraw.js.map +1 -1
  5. package/dist-cjs/lib/canvas/TldrawHandles.js +1 -2
  6. package/dist-cjs/lib/canvas/TldrawHandles.js.map +1 -1
  7. package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js +1 -2
  8. package/dist-cjs/lib/canvas/TldrawHoveredShapeIndicator.js.map +1 -1
  9. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -2
  10. package/dist-cjs/lib/canvas/TldrawScribble.js.map +1 -1
  11. package/dist-cjs/lib/canvas/TldrawSelectionBackground.js +1 -2
  12. package/dist-cjs/lib/canvas/TldrawSelectionBackground.js.map +1 -1
  13. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +1 -2
  14. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +1 -1
  15. package/dist-cjs/lib/defaultExternalContentHandlers.js +3 -6
  16. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +1 -1
  17. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +7 -14
  18. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +1 -1
  19. package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js +1 -2
  20. package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js.map +1 -1
  21. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +6 -12
  22. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +1 -1
  23. package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js +12 -24
  24. package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js.map +1 -1
  25. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -2
  26. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  27. package/dist-cjs/lib/shapes/frame/FrameShapeTool.js +4 -8
  28. package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
  29. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +3 -6
  30. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +1 -1
  31. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -2
  32. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +1 -1
  33. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +4 -8
  34. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +1 -1
  35. package/dist-cjs/lib/shapes/geo/toolStates/Idle.js +1 -2
  36. package/dist-cjs/lib/shapes/geo/toolStates/Idle.js.map +1 -1
  37. package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js +2 -4
  38. package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js.map +1 -1
  39. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +5 -10
  40. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
  41. package/dist-cjs/lib/shapes/line/components/svg.js +1 -2
  42. package/dist-cjs/lib/shapes/line/components/svg.js.map +1 -1
  43. package/dist-cjs/lib/shapes/line/toolStates/Pointing.js +5 -10
  44. package/dist-cjs/lib/shapes/line/toolStates/Pointing.js.map +1 -1
  45. package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js +1 -2
  46. package/dist-cjs/lib/shapes/poll/components/CustomizedAxisTick.js.map +1 -1
  47. package/dist-cjs/lib/shapes/poll/components/poll-content.js +1 -2
  48. package/dist-cjs/lib/shapes/poll/components/poll-content.js.map +1 -1
  49. package/dist-cjs/lib/shapes/shared/TextHelpers.js +2 -4
  50. package/dist-cjs/lib/shapes/shared/TextHelpers.js.map +1 -1
  51. package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js +1 -2
  52. package/dist-cjs/lib/shapes/shared/createTextSvgElementFromSpans.js.map +1 -1
  53. package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js +8 -16
  54. package/dist-cjs/lib/shapes/shared/defaultStyleDefs.js.map +1 -1
  55. package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js +6 -12
  56. package/dist-cjs/lib/shapes/shared/freehand/getStrokePoints.js.map +1 -1
  57. package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js +1 -2
  58. package/dist-cjs/lib/shapes/shared/freehand/setStrokePointRadii.js.map +1 -1
  59. package/dist-cjs/lib/shapes/shared/freehand/svgInk.js +2 -4
  60. package/dist-cjs/lib/shapes/shared/freehand/svgInk.js.map +1 -1
  61. package/dist-cjs/lib/shapes/shared/useEditableText.js +5 -10
  62. package/dist-cjs/lib/shapes/shared/useEditableText.js.map +1 -1
  63. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +6 -12
  64. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +1 -1
  65. package/dist-cjs/lib/shapes/text/toolStates/Idle.js +1 -2
  66. package/dist-cjs/lib/shapes/text/toolStates/Idle.js.map +1 -1
  67. package/dist-cjs/lib/shapes/text/toolStates/Pointing.js +1 -2
  68. package/dist-cjs/lib/shapes/text/toolStates/Pointing.js.map +1 -1
  69. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +2 -4
  70. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  71. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +2 -4
  72. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +1 -1
  73. package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js +1 -2
  74. package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js.map +1 -1
  75. package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js +25 -30
  76. package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js.map +1 -1
  77. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js +12 -24
  78. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js.map +1 -1
  79. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js +1 -2
  80. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js.map +1 -1
  81. package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js +8 -16
  82. package/dist-cjs/lib/tools/SelectTool/childStates/Cropping.js.map +1 -1
  83. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +3 -6
  84. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +1 -1
  85. package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js +2 -4
  86. package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js.map +1 -1
  87. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +21 -42
  88. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +1 -1
  89. package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js +1 -2
  90. package/dist-cjs/lib/tools/SelectTool/childStates/PointingCropHandle.js.map +1 -1
  91. package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js +1 -2
  92. package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js.map +1 -1
  93. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +1 -2
  94. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +1 -1
  95. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +5 -10
  96. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +1 -1
  97. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +2 -4
  98. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +1 -1
  99. package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js +1 -2
  100. package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js.map +1 -1
  101. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +4 -8
  102. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +1 -1
  103. package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js +3 -6
  104. package/dist-cjs/lib/tools/SelectTool/children/DraggingHandle.js.map +1 -1
  105. package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js +1 -2
  106. package/dist-cjs/lib/tools/selection-logic/updateHoveredId.js.map +1 -1
  107. package/dist-cjs/lib/ui/assetUrls.js +1 -2
  108. package/dist-cjs/lib/ui/assetUrls.js.map +1 -1
  109. package/dist-cjs/lib/ui/components/ActionsMenu.js +2 -4
  110. package/dist-cjs/lib/ui/components/ActionsMenu.js.map +1 -1
  111. package/dist-cjs/lib/ui/components/BackToContent.js +1 -2
  112. package/dist-cjs/lib/ui/components/BackToContent.js.map +1 -1
  113. package/dist-cjs/lib/ui/components/ContextMenu.js +3 -6
  114. package/dist-cjs/lib/ui/components/ContextMenu.js.map +1 -1
  115. package/dist-cjs/lib/ui/components/DebugPanel.js +2 -4
  116. package/dist-cjs/lib/ui/components/DebugPanel.js.map +1 -1
  117. package/dist-cjs/lib/ui/components/EditLinkDialog.js +2 -4
  118. package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +1 -1
  119. package/dist-cjs/lib/ui/components/EmbedDialog.js +1 -2
  120. package/dist-cjs/lib/ui/components/EmbedDialog.js.map +1 -1
  121. package/dist-cjs/lib/ui/components/FollowingIndicator.js +2 -4
  122. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +1 -1
  123. package/dist-cjs/lib/ui/components/HelpMenu.js +2 -4
  124. package/dist-cjs/lib/ui/components/HelpMenu.js.map +1 -1
  125. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js +2 -4
  126. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog.js.map +1 -1
  127. package/dist-cjs/lib/ui/components/Menu.js +5 -10
  128. package/dist-cjs/lib/ui/components/Menu.js.map +1 -1
  129. package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js +3 -6
  130. package/dist-cjs/lib/ui/components/NavigationZone/Minimap.js.map +1 -1
  131. package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js +5 -10
  132. package/dist-cjs/lib/ui/components/PageMenu/PageMenu.js.map +1 -1
  133. package/dist-cjs/lib/ui/components/PenModeToggle.js +1 -2
  134. package/dist-cjs/lib/ui/components/PenModeToggle.js.map +1 -1
  135. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +1 -2
  136. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +1 -1
  137. package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js +1 -2
  138. package/dist-cjs/lib/ui/components/StylePanel/StylePanel.js.map +1 -1
  139. package/dist-cjs/lib/ui/components/Toasts.js +1 -2
  140. package/dist-cjs/lib/ui/components/Toasts.js.map +1 -1
  141. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +1 -2
  142. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +1 -1
  143. package/dist-cjs/lib/ui/components/TrashButton.js +1 -2
  144. package/dist-cjs/lib/ui/components/TrashButton.js.map +1 -1
  145. package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js +2 -4
  146. package/dist-cjs/lib/ui/components/primitives/ButtonPicker.js.map +1 -1
  147. package/dist-cjs/lib/ui/components/primitives/Input.js +1 -2
  148. package/dist-cjs/lib/ui/components/primitives/Input.js.map +1 -1
  149. package/dist-cjs/lib/ui/components/primitives/Slider.js +1 -2
  150. package/dist-cjs/lib/ui/components/primitives/Slider.js.map +1 -1
  151. package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js +2 -4
  152. package/dist-cjs/lib/ui/hooks/clipboard/pasteExcalidrawContent.js.map +1 -1
  153. package/dist-cjs/lib/ui/hooks/menuHelpers.js +5 -10
  154. package/dist-cjs/lib/ui/hooks/menuHelpers.js.map +1 -1
  155. package/dist-cjs/lib/ui/hooks/useActions.js +73 -146
  156. package/dist-cjs/lib/ui/hooks/useActions.js.map +1 -1
  157. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +6 -12
  158. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +1 -1
  159. package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js +1 -2
  160. package/dist-cjs/lib/ui/hooks/useHighDpiCanvas.js.map +1 -1
  161. package/dist-cjs/lib/ui/hooks/useInsertMedia.js +1 -2
  162. package/dist-cjs/lib/ui/hooks/useInsertMedia.js.map +1 -1
  163. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +8 -16
  164. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +1 -1
  165. package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js +1 -2
  166. package/dist-cjs/lib/ui/hooks/useMenuIsOpen.js.map +1 -1
  167. package/dist-cjs/lib/ui/hooks/useMenuSchema.js +2 -4
  168. package/dist-cjs/lib/ui/hooks/useMenuSchema.js.map +1 -1
  169. package/dist-cjs/lib/ui/hooks/usePreloadAssets.js +2 -4
  170. package/dist-cjs/lib/ui/hooks/usePreloadAssets.js.map +1 -1
  171. package/dist-cjs/lib/ui/hooks/usePreloadIcons.js +1 -2
  172. package/dist-cjs/lib/ui/hooks/usePreloadIcons.js.map +1 -1
  173. package/dist-cjs/lib/ui/hooks/usePrint.js +2 -4
  174. package/dist-cjs/lib/ui/hooks/usePrint.js.map +1 -1
  175. package/dist-cjs/lib/ui/hooks/useRevelantStyles.js +1 -2
  176. package/dist-cjs/lib/ui/hooks/useRevelantStyles.js.map +1 -1
  177. package/dist-cjs/lib/utils/assets/is-gif-animated.js +9 -0
  178. package/dist-cjs/lib/utils/assets/is-gif-animated.js.map +1 -1
  179. package/dist-cjs/lib/utils/export/export.js +2 -4
  180. package/dist-cjs/lib/utils/export/export.js.map +1 -1
  181. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  182. package/dist-cjs/lib/utils/export/exportAs.js.map +1 -1
  183. package/dist-cjs/lib/utils/frames/frames.js +4 -8
  184. package/dist-cjs/lib/utils/frames/frames.js.map +1 -1
  185. package/dist-cjs/lib/utils/static-assets/assetUrls.js +1 -2
  186. package/dist-cjs/lib/utils/static-assets/assetUrls.js.map +1 -1
  187. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +10 -20
  188. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +1 -1
  189. package/dist-cjs/lib/utils/tldr/file.js +1 -2
  190. package/dist-cjs/lib/utils/tldr/file.js.map +1 -1
  191. package/dist-esm/lib/Tldraw.mjs +1 -2
  192. package/dist-esm/lib/Tldraw.mjs.map +1 -1
  193. package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -2
  194. package/dist-esm/lib/canvas/TldrawHandles.mjs.map +1 -1
  195. package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs +1 -2
  196. package/dist-esm/lib/canvas/TldrawHoveredShapeIndicator.mjs.map +1 -1
  197. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -2
  198. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +1 -1
  199. package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs +1 -2
  200. package/dist-esm/lib/canvas/TldrawSelectionBackground.mjs.map +1 -1
  201. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +1 -2
  202. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +1 -1
  203. package/dist-esm/lib/defaultExternalContentHandlers.mjs +3 -6
  204. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +1 -1
  205. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +7 -14
  206. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +1 -1
  207. package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs +1 -2
  208. package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs.map +1 -1
  209. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +6 -12
  210. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +1 -1
  211. package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs +12 -24
  212. package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs.map +1 -1
  213. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -2
  214. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  215. package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs +4 -8
  216. package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
  217. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +3 -6
  218. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +1 -1
  219. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -2
  220. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +1 -1
  221. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +4 -8
  222. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +1 -1
  223. package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs +1 -2
  224. package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs.map +1 -1
  225. package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs +2 -4
  226. package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs.map +1 -1
  227. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +5 -10
  228. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
  229. package/dist-esm/lib/shapes/line/components/svg.mjs +1 -2
  230. package/dist-esm/lib/shapes/line/components/svg.mjs.map +1 -1
  231. package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs +5 -10
  232. package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs.map +1 -1
  233. package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs +1 -2
  234. package/dist-esm/lib/shapes/poll/components/CustomizedAxisTick.mjs.map +1 -1
  235. package/dist-esm/lib/shapes/poll/components/poll-content.mjs +1 -2
  236. package/dist-esm/lib/shapes/poll/components/poll-content.mjs.map +1 -1
  237. package/dist-esm/lib/shapes/shared/TextHelpers.mjs +2 -4
  238. package/dist-esm/lib/shapes/shared/TextHelpers.mjs.map +1 -1
  239. package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs +1 -2
  240. package/dist-esm/lib/shapes/shared/createTextSvgElementFromSpans.mjs.map +1 -1
  241. package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs +8 -16
  242. package/dist-esm/lib/shapes/shared/defaultStyleDefs.mjs.map +1 -1
  243. package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs +6 -12
  244. package/dist-esm/lib/shapes/shared/freehand/getStrokePoints.mjs.map +1 -1
  245. package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs +1 -2
  246. package/dist-esm/lib/shapes/shared/freehand/setStrokePointRadii.mjs.map +1 -1
  247. package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs +2 -4
  248. package/dist-esm/lib/shapes/shared/freehand/svgInk.mjs.map +1 -1
  249. package/dist-esm/lib/shapes/shared/useEditableText.mjs +5 -10
  250. package/dist-esm/lib/shapes/shared/useEditableText.mjs.map +1 -1
  251. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +6 -12
  252. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +1 -1
  253. package/dist-esm/lib/shapes/text/toolStates/Idle.mjs +1 -2
  254. package/dist-esm/lib/shapes/text/toolStates/Idle.mjs.map +1 -1
  255. package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs +1 -2
  256. package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs.map +1 -1
  257. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +2 -4
  258. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  259. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +2 -4
  260. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +1 -1
  261. package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs +1 -2
  262. package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs.map +1 -1
  263. package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs +25 -30
  264. package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs.map +1 -1
  265. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs +12 -24
  266. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs.map +1 -1
  267. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs +1 -2
  268. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs.map +1 -1
  269. package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs +8 -16
  270. package/dist-esm/lib/tools/SelectTool/childStates/Cropping.mjs.map +1 -1
  271. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +3 -6
  272. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +1 -1
  273. package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs +2 -4
  274. package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs.map +1 -1
  275. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +21 -42
  276. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +1 -1
  277. package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs +1 -2
  278. package/dist-esm/lib/tools/SelectTool/childStates/PointingCropHandle.mjs.map +1 -1
  279. package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs +1 -2
  280. package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs.map +1 -1
  281. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +1 -2
  282. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +1 -1
  283. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +5 -10
  284. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +1 -1
  285. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +2 -4
  286. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +1 -1
  287. package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs +1 -2
  288. package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs.map +1 -1
  289. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +4 -8
  290. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +1 -1
  291. package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs +3 -6
  292. package/dist-esm/lib/tools/SelectTool/children/DraggingHandle.mjs.map +1 -1
  293. package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs +1 -2
  294. package/dist-esm/lib/tools/selection-logic/updateHoveredId.mjs.map +1 -1
  295. package/dist-esm/lib/ui/assetUrls.mjs +1 -2
  296. package/dist-esm/lib/ui/assetUrls.mjs.map +1 -1
  297. package/dist-esm/lib/ui/components/ActionsMenu.mjs +2 -4
  298. package/dist-esm/lib/ui/components/ActionsMenu.mjs.map +1 -1
  299. package/dist-esm/lib/ui/components/BackToContent.mjs +1 -2
  300. package/dist-esm/lib/ui/components/BackToContent.mjs.map +1 -1
  301. package/dist-esm/lib/ui/components/ContextMenu.mjs +3 -6
  302. package/dist-esm/lib/ui/components/ContextMenu.mjs.map +1 -1
  303. package/dist-esm/lib/ui/components/DebugPanel.mjs +2 -4
  304. package/dist-esm/lib/ui/components/DebugPanel.mjs.map +1 -1
  305. package/dist-esm/lib/ui/components/EditLinkDialog.mjs +2 -4
  306. package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +1 -1
  307. package/dist-esm/lib/ui/components/EmbedDialog.mjs +1 -2
  308. package/dist-esm/lib/ui/components/EmbedDialog.mjs.map +1 -1
  309. package/dist-esm/lib/ui/components/FollowingIndicator.mjs +2 -4
  310. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +1 -1
  311. package/dist-esm/lib/ui/components/HelpMenu.mjs +2 -4
  312. package/dist-esm/lib/ui/components/HelpMenu.mjs.map +1 -1
  313. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs +2 -4
  314. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog.mjs.map +1 -1
  315. package/dist-esm/lib/ui/components/Menu.mjs +5 -10
  316. package/dist-esm/lib/ui/components/Menu.mjs.map +1 -1
  317. package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs +3 -6
  318. package/dist-esm/lib/ui/components/NavigationZone/Minimap.mjs.map +1 -1
  319. package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs +5 -10
  320. package/dist-esm/lib/ui/components/PageMenu/PageMenu.mjs.map +1 -1
  321. package/dist-esm/lib/ui/components/PenModeToggle.mjs +1 -2
  322. package/dist-esm/lib/ui/components/PenModeToggle.mjs.map +1 -1
  323. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +1 -2
  324. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +1 -1
  325. package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs +1 -2
  326. package/dist-esm/lib/ui/components/StylePanel/StylePanel.mjs.map +1 -1
  327. package/dist-esm/lib/ui/components/Toasts.mjs +1 -2
  328. package/dist-esm/lib/ui/components/Toasts.mjs.map +1 -1
  329. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +1 -2
  330. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +1 -1
  331. package/dist-esm/lib/ui/components/TrashButton.mjs +1 -2
  332. package/dist-esm/lib/ui/components/TrashButton.mjs.map +1 -1
  333. package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs +2 -4
  334. package/dist-esm/lib/ui/components/primitives/ButtonPicker.mjs.map +1 -1
  335. package/dist-esm/lib/ui/components/primitives/Input.mjs +1 -2
  336. package/dist-esm/lib/ui/components/primitives/Input.mjs.map +1 -1
  337. package/dist-esm/lib/ui/components/primitives/Slider.mjs +1 -2
  338. package/dist-esm/lib/ui/components/primitives/Slider.mjs.map +1 -1
  339. package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs +2 -4
  340. package/dist-esm/lib/ui/hooks/clipboard/pasteExcalidrawContent.mjs.map +1 -1
  341. package/dist-esm/lib/ui/hooks/menuHelpers.mjs +5 -10
  342. package/dist-esm/lib/ui/hooks/menuHelpers.mjs.map +1 -1
  343. package/dist-esm/lib/ui/hooks/useActions.mjs +73 -146
  344. package/dist-esm/lib/ui/hooks/useActions.mjs.map +1 -1
  345. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +6 -12
  346. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +1 -1
  347. package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs +1 -2
  348. package/dist-esm/lib/ui/hooks/useHighDpiCanvas.mjs.map +1 -1
  349. package/dist-esm/lib/ui/hooks/useInsertMedia.mjs +1 -2
  350. package/dist-esm/lib/ui/hooks/useInsertMedia.mjs.map +1 -1
  351. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +8 -16
  352. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +1 -1
  353. package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs +1 -2
  354. package/dist-esm/lib/ui/hooks/useMenuIsOpen.mjs.map +1 -1
  355. package/dist-esm/lib/ui/hooks/useMenuSchema.mjs +2 -4
  356. package/dist-esm/lib/ui/hooks/useMenuSchema.mjs.map +1 -1
  357. package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs +2 -4
  358. package/dist-esm/lib/ui/hooks/usePreloadAssets.mjs.map +1 -1
  359. package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs +1 -2
  360. package/dist-esm/lib/ui/hooks/usePreloadIcons.mjs.map +1 -1
  361. package/dist-esm/lib/ui/hooks/usePrint.mjs +2 -4
  362. package/dist-esm/lib/ui/hooks/usePrint.mjs.map +1 -1
  363. package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs +1 -2
  364. package/dist-esm/lib/ui/hooks/useRevelantStyles.mjs.map +1 -1
  365. package/dist-esm/lib/utils/assets/is-gif-animated.mjs +9 -0
  366. package/dist-esm/lib/utils/assets/is-gif-animated.mjs.map +1 -1
  367. package/dist-esm/lib/utils/export/export.mjs +2 -4
  368. package/dist-esm/lib/utils/export/export.mjs.map +1 -1
  369. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  370. package/dist-esm/lib/utils/export/exportAs.mjs.map +1 -1
  371. package/dist-esm/lib/utils/frames/frames.mjs +4 -8
  372. package/dist-esm/lib/utils/frames/frames.mjs.map +1 -1
  373. package/dist-esm/lib/utils/static-assets/assetUrls.mjs +1 -2
  374. package/dist-esm/lib/utils/static-assets/assetUrls.mjs.map +1 -1
  375. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +10 -20
  376. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +1 -1
  377. package/dist-esm/lib/utils/tldr/file.mjs +1 -2
  378. package/dist-esm/lib/utils/tldr/file.mjs.map +1 -1
  379. package/package.json +2 -2
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/shapes/arrow/ArrowShapeUtil.tsx"],
4
4
  "sourcesContent": ["import {\n\tArc2d,\n\tBox2d,\n\tDefaultFontFamilies,\n\tEdge2d,\n\tGroup2d,\n\tRectangle2d,\n\tSVGContainer,\n\tShapeUtil,\n\tSvgExportContext,\n\tTLArrowShape,\n\tTLArrowShapeArrowheadStyle,\n\tTLDefaultColorStyle,\n\tTLDefaultColorTheme,\n\tTLDefaultFillStyle,\n\tTLHandle,\n\tTLOnEditEndHandler,\n\tTLOnHandleChangeHandler,\n\tTLOnResizeHandler,\n\tTLOnTranslateStartHandler,\n\tTLShapePartial,\n\tTLShapeUtilCanvasSvgDef,\n\tTLShapeUtilFlag,\n\tVec2d,\n\tarrowShapeMigrations,\n\tarrowShapeProps,\n\tdeepCopy,\n\tgetArrowTerminalsInArrowSpace,\n\tgetArrowheadPathForType,\n\tgetCurvedArrowHandlePath,\n\tgetDefaultColorTheme,\n\tgetSolidCurvedArrowPath,\n\tgetSolidStraightArrowPath,\n\tgetStraightArrowHandlePath,\n\ttoDomPrecision,\n\tuseIsEditing,\n} from '@bigbluebutton/editor'\nimport React from 'react'\nimport { ShapeFill, getShapeFillSvg, useDefaultColorTheme } from '../shared/ShapeFill'\nimport { createTextSvgElementFromSpans } from '../shared/createTextSvgElementFromSpans'\nimport {\n\tARROW_LABEL_FONT_SIZES,\n\tFONT_FAMILIES,\n\tSTROKE_SIZES,\n\tTEXT_PROPS,\n} from '../shared/default-shape-constants'\nimport {\n\tgetFillDefForCanvas,\n\tgetFillDefForExport,\n\tgetFontDefForExport,\n} from '../shared/defaultStyleDefs'\nimport { getPerfectDashProps } from '../shared/getPerfectDashProps'\nimport { ArrowTextLabel } from './components/ArrowTextLabel'\n\nlet globalRenderIndex = 0\n\nexport const ARROW_END_OFFSET = 0.1\n\n/** @public */\nexport class ArrowShapeUtil extends ShapeUtil<TLArrowShape> {\n\tstatic override type = 'arrow' as const\n\tstatic override props = arrowShapeProps\n\tstatic override migrations = arrowShapeMigrations\n\n\toverride canEdit = () => true\n\toverride canBind = () => false\n\toverride canSnap = () => false\n\toverride hideResizeHandles: TLShapeUtilFlag<TLArrowShape> = () => true\n\toverride hideRotateHandle: TLShapeUtilFlag<TLArrowShape> = () => true\n\toverride hideSelectionBoundsBg: TLShapeUtilFlag<TLArrowShape> = () => true\n\toverride hideSelectionBoundsFg: TLShapeUtilFlag<TLArrowShape> = () => true\n\n\toverride getDefaultProps(): TLArrowShape['props'] {\n\t\treturn {\n\t\t\tdash: 'draw',\n\t\t\tsize: 'm',\n\t\t\tfill: 'none',\n\t\t\tcolor: 'black',\n\t\t\tlabelColor: 'black',\n\t\t\tbend: 0,\n\t\t\tstart: { type: 'point', x: 0, y: 0 },\n\t\t\tend: { type: 'point', x: 2, y: 0 },\n\t\t\tarrowheadStart: 'none',\n\t\t\tarrowheadEnd: 'arrow',\n\t\t\ttext: '',\n\t\t\tfont: 'draw',\n\t\t}\n\t}\n\n\tgetGeometry(shape: TLArrowShape) {\n\t\tconst info = this.editor.getArrowInfo(shape)!\n\n\t\tconst bodyGeom = info.isStraight\n\t\t\t? new Edge2d({\n\t\t\t\t\tstart: Vec2d.From(info.start.point),\n\t\t\t\t\tend: Vec2d.From(info.end.point),\n\t\t\t })\n\t\t\t: new Arc2d({\n\t\t\t\t\tcenter: Vec2d.Cast(info.handleArc.center),\n\t\t\t\t\tradius: info.handleArc.radius,\n\t\t\t\t\tstart: Vec2d.Cast(info.start.point),\n\t\t\t\t\tend: Vec2d.Cast(info.end.point),\n\t\t\t\t\tsweepFlag: info.bodyArc.sweepFlag,\n\t\t\t\t\tlargeArcFlag: info.bodyArc.largeArcFlag,\n\t\t\t })\n\n\t\tlet labelGeom: Rectangle2d | undefined\n\n\t\tif (shape.props.text.trim()) {\n\t\t\tconst bodyBounds = bodyGeom.bounds\n\n\t\t\tconst { w, h } = this.editor.textMeasure.measureText(shape.props.text, {\n\t\t\t\t...TEXT_PROPS,\n\t\t\t\tfontFamily: FONT_FAMILIES[shape.props.font],\n\t\t\t\tfontSize: ARROW_LABEL_FONT_SIZES[shape.props.size],\n\t\t\t\tmaxWidth: null,\n\t\t\t})\n\n\t\t\tlet width = w\n\t\t\tlet height = h\n\n\t\t\tif (bodyBounds.width > bodyBounds.height) {\n\t\t\t\twidth = Math.max(Math.min(w, 64), Math.min(bodyBounds.width - 64, w))\n\n\t\t\t\tconst { w: squishedWidth, h: squishedHeight } = this.editor.textMeasure.measureText(\n\t\t\t\t\tshape.props.text,\n\t\t\t\t\t{\n\t\t\t\t\t\t...TEXT_PROPS,\n\t\t\t\t\t\tfontFamily: FONT_FAMILIES[shape.props.font],\n\t\t\t\t\t\tfontSize: ARROW_LABEL_FONT_SIZES[shape.props.size],\n\t\t\t\t\t\tmaxWidth: width,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\twidth = squishedWidth\n\t\t\t\theight = squishedHeight\n\t\t\t}\n\n\t\t\tif (width > 16 * ARROW_LABEL_FONT_SIZES[shape.props.size]) {\n\t\t\t\twidth = 16 * ARROW_LABEL_FONT_SIZES[shape.props.size]\n\n\t\t\t\tconst { w: squishedWidth, h: squishedHeight } = this.editor.textMeasure.measureText(\n\t\t\t\t\tshape.props.text,\n\t\t\t\t\t{\n\t\t\t\t\t\t...TEXT_PROPS,\n\t\t\t\t\t\tfontFamily: FONT_FAMILIES[shape.props.font],\n\t\t\t\t\t\tfontSize: ARROW_LABEL_FONT_SIZES[shape.props.size],\n\t\t\t\t\t\tmaxWidth: width,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\twidth = squishedWidth\n\t\t\t\theight = squishedHeight\n\t\t\t}\n\n\t\t\tlabelGeom = new Rectangle2d({\n\t\t\t\tx: info.middle.x - width / 2 - 4.25,\n\t\t\t\ty: info.middle.y - height / 2 - 4.25,\n\t\t\t\twidth: width + 8.5,\n\t\t\t\theight: height + 8.5,\n\t\t\t\tisFilled: true,\n\t\t\t\tisLabel: true,\n\t\t\t})\n\t\t}\n\n\t\treturn new Group2d({\n\t\t\tchildren: labelGeom ? [bodyGeom, labelGeom] : [bodyGeom],\n\t\t\tisSnappable: false,\n\t\t})\n\t}\n\n\toverride getHandles(shape: TLArrowShape): TLHandle[] {\n\t\tconst info = this.editor.getArrowInfo(shape)!\n\t\treturn [\n\t\t\t{\n\t\t\t\tid: 'start',\n\t\t\t\ttype: 'vertex',\n\t\t\t\tindex: 'a0',\n\t\t\t\tx: info.start.handle.x,\n\t\t\t\ty: info.start.handle.y,\n\t\t\t\tcanBind: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'middle',\n\t\t\t\ttype: 'virtual',\n\t\t\t\tindex: 'a2',\n\t\t\t\tx: info.middle.x,\n\t\t\t\ty: info.middle.y,\n\t\t\t\tcanBind: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'end',\n\t\t\t\ttype: 'vertex',\n\t\t\t\tindex: 'a3',\n\t\t\t\tx: info.end.handle.x,\n\t\t\t\ty: info.end.handle.y,\n\t\t\t\tcanBind: true,\n\t\t\t},\n\t\t]\n\t}\n\n\toverride onHandleChange: TLOnHandleChangeHandler<TLArrowShape> = (\n\t\tshape,\n\t\t{ handle, isPrecise }\n\t) => {\n\t\tconst handleId = handle.id as 'start' | 'middle' | 'end'\n\n\t\tif (handleId === 'middle') {\n\t\t\t// Bending the arrow...\n\t\t\tconst { start, end } = getArrowTerminalsInArrowSpace(this.editor, shape)\n\n\t\t\tconst delta = Vec2d.Sub(end, start)\n\t\t\tconst v = Vec2d.Per(delta)\n\n\t\t\tconst med = Vec2d.Med(end, start)\n\t\t\tconst A = Vec2d.Sub(med, v)\n\t\t\tconst B = Vec2d.Add(med, v)\n\n\t\t\tconst point = Vec2d.NearestPointOnLineSegment(A, B, handle, false)\n\t\t\tlet bend = Vec2d.Dist(point, med)\n\t\t\tif (Vec2d.Clockwise(point, end, med)) bend *= -1\n\t\t\treturn { id: shape.id, type: shape.type, props: { bend } }\n\t\t}\n\n\t\t// Start or end, pointing the arrow...\n\n\t\tconst next = deepCopy(shape) as TLArrowShape\n\n\t\tconst pageTransform = this.editor.getShapePageTransform(next.id)!\n\t\tconst pointInPageSpace = pageTransform.applyToPoint(handle)\n\n\t\tif (this.editor.inputs.ctrlKey) {\n\t\t\t// todo: maybe double check that this isn't equal to the other handle too?\n\t\t\t// Skip binding\n\t\t\tnext.props[handleId] = {\n\t\t\t\ttype: 'point',\n\t\t\t\tx: handle.x,\n\t\t\t\ty: handle.y,\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\n\t\tconst point = this.editor.getShapePageTransform(shape.id)!.applyToPoint(handle)\n\n\t\tconst target = this.editor.getShapeAtPoint(point, {\n\t\t\thitInside: true,\n\t\t\thitFrameInside: true,\n\t\t\tmargin: 0,\n\t\t\tfilter: (targetShape) => {\n\t\t\t\treturn !targetShape.isLocked && this.editor.getShapeUtil(targetShape).canBind(targetShape)\n\t\t\t},\n\t\t})\n\n\t\tif (!target) {\n\t\t\t// todo: maybe double check that this isn't equal to the other handle too?\n\t\t\tnext.props[handleId] = {\n\t\t\t\ttype: 'point',\n\t\t\t\tx: handle.x,\n\t\t\t\ty: handle.y,\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\n\t\t// we've got a target! the handle is being dragged over a shape, bind to it\n\n\t\tconst targetGeometry = this.editor.getShapeGeometry(target)\n\t\tconst targetBounds = Box2d.ZeroFix(targetGeometry.bounds)\n\t\tconst pointInTargetSpace = this.editor.getPointInShapeSpace(target, pointInPageSpace)\n\n\t\tlet precise = isPrecise\n\n\t\tif (!precise) {\n\t\t\t// If we're switching to a new bound shape, then precise only if moving slowly\n\t\t\tconst prevHandle = next.props[handleId]\n\t\t\tif (\n\t\t\t\tprevHandle.type === 'point' ||\n\t\t\t\t(prevHandle.type === 'binding' && target.id !== prevHandle.boundShapeId)\n\t\t\t) {\n\t\t\t\tprecise = this.editor.inputs.pointerVelocity.len() < 0.5\n\t\t\t}\n\t\t}\n\n\t\tif (!isPrecise) {\n\t\t\tif (!targetGeometry.isClosed) {\n\t\t\t\tprecise = true\n\t\t\t}\n\n\t\t\t// Double check that we're not going to be doing an imprecise snap on\n\t\t\t// the same shape twice, as this would result in a zero length line\n\t\t\tconst otherHandle = next.props[handleId === 'start' ? 'end' : 'start']\n\t\t\tif (\n\t\t\t\totherHandle.type === 'binding' &&\n\t\t\t\ttarget.id === otherHandle.boundShapeId &&\n\t\t\t\totherHandle.isPrecise\n\t\t\t) {\n\t\t\t\tprecise = true\n\t\t\t}\n\t\t}\n\n\t\tconst normalizedAnchor = {\n\t\t\tx: (pointInTargetSpace.x - targetBounds.minX) / targetBounds.width,\n\t\t\ty: (pointInTargetSpace.y - targetBounds.minY) / targetBounds.height,\n\t\t}\n\n\t\tif (precise) {\n\t\t\t// Turn off precision if we're within a certain distance to the center of the shape.\n\t\t\t// Funky math but we want the snap distance to be 4 at the minimum and either\n\t\t\t// 16 or 15% of the smaller dimension of the target shape, whichever is smaller\n\t\t\tif (\n\t\t\t\tVec2d.Dist(pointInTargetSpace, targetBounds.center) <\n\t\t\t\tMath.max(4, Math.min(Math.min(targetBounds.width, targetBounds.height) * 0.15, 16)) /\n\t\t\t\t\tthis.editor.getZoomLevel()\n\t\t\t) {\n\t\t\t\tnormalizedAnchor.x = 0.5\n\t\t\t\tnormalizedAnchor.y = 0.5\n\t\t\t}\n\t\t}\n\n\t\tnext.props[handleId] = {\n\t\t\ttype: 'binding',\n\t\t\tboundShapeId: target.id,\n\t\t\tnormalizedAnchor: normalizedAnchor,\n\t\t\tisPrecise: precise,\n\t\t\tisExact: this.editor.inputs.altKey,\n\t\t}\n\n\t\tif (next.props.start.type === 'binding' && next.props.end.type === 'binding') {\n\t\t\tif (next.props.start.boundShapeId === next.props.end.boundShapeId) {\n\t\t\t\tif (Vec2d.Equals(next.props.start.normalizedAnchor, next.props.end.normalizedAnchor)) {\n\t\t\t\t\tnext.props.end.normalizedAnchor.x += 0.05\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn next\n\t}\n\n\toverride onTranslateStart: TLOnTranslateStartHandler<TLArrowShape> = (shape) => {\n\t\tconst startBindingId =\n\t\t\tshape.props.start.type === 'binding' ? shape.props.start.boundShapeId : null\n\t\tconst endBindingId = shape.props.end.type === 'binding' ? shape.props.end.boundShapeId : null\n\n\t\t// If at least one bound shape is in the selection, do nothing;\n\t\t// If no bound shapes are in the selection, unbind any bound shapes\n\n\t\tconst selectedShapeIds = this.editor.getSelectedShapeIds()\n\n\t\tif (\n\t\t\t(startBindingId &&\n\t\t\t\t(selectedShapeIds.includes(startBindingId) ||\n\t\t\t\t\tthis.editor.isAncestorSelected(startBindingId))) ||\n\t\t\t(endBindingId &&\n\t\t\t\t(selectedShapeIds.includes(endBindingId) || this.editor.isAncestorSelected(endBindingId)))\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { start, end } = getArrowTerminalsInArrowSpace(this.editor, shape)\n\n\t\treturn {\n\t\t\tid: shape.id,\n\t\t\ttype: shape.type,\n\t\t\tprops: {\n\t\t\t\t...shape.props,\n\t\t\t\tstart: {\n\t\t\t\t\ttype: 'point',\n\t\t\t\t\tx: start.x,\n\t\t\t\t\ty: start.y,\n\t\t\t\t},\n\t\t\t\tend: {\n\t\t\t\t\ttype: 'point',\n\t\t\t\t\tx: end.x,\n\t\t\t\t\ty: end.y,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n\n\toverride onResize: TLOnResizeHandler<TLArrowShape> = (shape, info) => {\n\t\tconst { scaleX, scaleY } = info\n\n\t\tconst terminals = getArrowTerminalsInArrowSpace(this.editor, shape)\n\n\t\tconst { start, end } = deepCopy<TLArrowShape['props']>(shape.props)\n\t\tlet { bend } = shape.props\n\n\t\t// Rescale start handle if it's not bound to a shape\n\t\tif (start.type === 'point') {\n\t\t\tstart.x = terminals.start.x * scaleX\n\t\t\tstart.y = terminals.start.y * scaleY\n\t\t}\n\n\t\t// Rescale end handle if it's not bound to a shape\n\t\tif (end.type === 'point') {\n\t\t\tend.x = terminals.end.x * scaleX\n\t\t\tend.y = terminals.end.y * scaleY\n\t\t}\n\n\t\t// todo: we should only change the normalized anchor positions\n\t\t// of the shape's handles if the bound shape is also being resized\n\n\t\tconst mx = Math.abs(scaleX)\n\t\tconst my = Math.abs(scaleY)\n\n\t\tif (scaleX < 0 && scaleY >= 0) {\n\t\t\tif (bend !== 0) {\n\t\t\t\tbend *= -1\n\t\t\t\tbend *= Math.max(mx, my)\n\t\t\t}\n\n\t\t\tif (start.type === 'binding') {\n\t\t\t\tstart.normalizedAnchor.x = 1 - start.normalizedAnchor.x\n\t\t\t}\n\n\t\t\tif (end.type === 'binding') {\n\t\t\t\tend.normalizedAnchor.x = 1 - end.normalizedAnchor.x\n\t\t\t}\n\t\t} else if (scaleX >= 0 && scaleY < 0) {\n\t\t\tif (bend !== 0) {\n\t\t\t\tbend *= -1\n\t\t\t\tbend *= Math.max(mx, my)\n\t\t\t}\n\n\t\t\tif (start.type === 'binding') {\n\t\t\t\tstart.normalizedAnchor.y = 1 - start.normalizedAnchor.y\n\t\t\t}\n\n\t\t\tif (end.type === 'binding') {\n\t\t\t\tend.normalizedAnchor.y = 1 - end.normalizedAnchor.y\n\t\t\t}\n\t\t} else if (scaleX >= 0 && scaleY >= 0) {\n\t\t\tif (bend !== 0) {\n\t\t\t\tbend *= Math.max(mx, my)\n\t\t\t}\n\t\t} else if (scaleX < 0 && scaleY < 0) {\n\t\t\tif (bend !== 0) {\n\t\t\t\tbend *= Math.max(mx, my)\n\t\t\t}\n\n\t\t\tif (start.type === 'binding') {\n\t\t\t\tstart.normalizedAnchor.x = 1 - start.normalizedAnchor.x\n\t\t\t\tstart.normalizedAnchor.y = 1 - start.normalizedAnchor.y\n\t\t\t}\n\n\t\t\tif (end.type === 'binding') {\n\t\t\t\tend.normalizedAnchor.x = 1 - end.normalizedAnchor.x\n\t\t\t\tend.normalizedAnchor.y = 1 - end.normalizedAnchor.y\n\t\t\t}\n\t\t}\n\n\t\tconst next = {\n\t\t\tprops: {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t\tbend,\n\t\t\t},\n\t\t}\n\n\t\treturn next\n\t}\n\n\toverride onDoubleClickHandle = (\n\t\tshape: TLArrowShape,\n\t\thandle: TLHandle\n\t): TLShapePartial<TLArrowShape> | void => {\n\t\tswitch (handle.id) {\n\t\t\tcase 'start': {\n\t\t\t\treturn {\n\t\t\t\t\tid: shape.id,\n\t\t\t\t\ttype: shape.type,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t...shape.props,\n\t\t\t\t\t\tarrowheadStart: shape.props.arrowheadStart === 'none' ? 'arrow' : 'none',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t\tcase 'end': {\n\t\t\t\treturn {\n\t\t\t\t\tid: shape.id,\n\t\t\t\t\ttype: shape.type,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t...shape.props,\n\t\t\t\t\t\tarrowheadEnd: shape.props.arrowheadEnd === 'none' ? 'arrow' : 'none',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponent(shape: TLArrowShape) {\n\t\t// Not a class component, but eslint can't tell that :(\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tconst theme = useDefaultColorTheme()\n\t\tconst onlySelectedShape = this.editor.getOnlySelectedShape()\n\t\tconst shouldDisplayHandles =\n\t\t\tthis.editor.isInAny(\n\t\t\t\t'select.idle',\n\t\t\t\t'select.pointing_handle',\n\t\t\t\t'select.dragging_handle',\n\t\t\t\t'arrow.dragging'\n\t\t\t) && !this.editor.getInstanceState().isReadonly\n\n\t\tconst info = this.editor.getArrowInfo(shape)\n\t\tconst bounds = Box2d.ZeroFix(this.editor.getShapeGeometry(shape).bounds)\n\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tconst changeIndex = React.useMemo<number>(() => {\n\t\t\treturn this.editor.environment.isSafari ? (globalRenderIndex += 1) : 0\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t}, [shape])\n\n\t\tif (!info?.isValid) return null\n\n\t\tconst strokeWidth = STROKE_SIZES[shape.props.size]\n\n\t\tconst as = info.start.arrowhead && getArrowheadPathForType(info, 'start', strokeWidth)\n\t\tconst ae = info.end.arrowhead && getArrowheadPathForType(info, 'end', strokeWidth)\n\n\t\tconst path = info.isStraight ? getSolidStraightArrowPath(info) : getSolidCurvedArrowPath(info)\n\n\t\tlet handlePath: null | React.JSX.Element = null\n\n\t\tif (onlySelectedShape === shape && shouldDisplayHandles) {\n\t\t\tconst sw = 2\n\t\t\tconst { strokeDasharray, strokeDashoffset } = getPerfectDashProps(\n\t\t\t\tinfo.isStraight\n\t\t\t\t\t? Vec2d.Dist(info.start.handle, info.end.handle)\n\t\t\t\t\t: Math.abs(info.handleArc.length),\n\t\t\t\tsw,\n\t\t\t\t{\n\t\t\t\t\tend: 'skip',\n\t\t\t\t\tstart: 'skip',\n\t\t\t\t\tlengthRatio: 2.5,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\thandlePath =\n\t\t\t\tshape.props.start.type === 'binding' || shape.props.end.type === 'binding' ? (\n\t\t\t\t\t<path\n\t\t\t\t\t\tclassName=\"tl-arrow-hint\"\n\t\t\t\t\t\td={info.isStraight ? getStraightArrowHandlePath(info) : getCurvedArrowHandlePath(info)}\n\t\t\t\t\t\tstrokeDasharray={strokeDasharray}\n\t\t\t\t\t\tstrokeDashoffset={strokeDashoffset}\n\t\t\t\t\t\tstrokeWidth={sw}\n\t\t\t\t\t\tmarkerStart={\n\t\t\t\t\t\t\tshape.props.start.type === 'binding'\n\t\t\t\t\t\t\t\t? shape.props.start.isExact\n\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t: shape.props.start.isPrecise\n\t\t\t\t\t\t\t\t\t? 'url(#arrowhead-cross)'\n\t\t\t\t\t\t\t\t\t: 'url(#arrowhead-dot)'\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmarkerEnd={\n\t\t\t\t\t\t\tshape.props.end.type === 'binding'\n\t\t\t\t\t\t\t\t? shape.props.end.isExact\n\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t: shape.props.end.isPrecise\n\t\t\t\t\t\t\t\t\t? 'url(#arrowhead-cross)'\n\t\t\t\t\t\t\t\t\t: 'url(#arrowhead-dot)'\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\topacity={0.16}\n\t\t\t\t\t/>\n\t\t\t\t) : null\n\t\t}\n\n\t\tconst { strokeDasharray, strokeDashoffset } = getPerfectDashProps(\n\t\t\tinfo.isStraight ? info.length : Math.abs(info.bodyArc.length),\n\t\t\tstrokeWidth,\n\t\t\t{\n\t\t\t\tstyle: shape.props.dash,\n\t\t\t}\n\t\t)\n\n\t\tconst labelGeometry = shape.props.text.trim()\n\t\t\t? (this.editor.getShapeGeometry<Group2d>(shape).children[1] as Rectangle2d)\n\t\t\t: null\n\n\t\tconst maskStartArrowhead = !(\n\t\t\tinfo.start.arrowhead === 'none' || info.start.arrowhead === 'arrow'\n\t\t)\n\t\tconst maskEndArrowhead = !(info.end.arrowhead === 'none' || info.end.arrowhead === 'arrow')\n\n\t\t// NOTE: I know right setting `changeIndex` hacky-as right! But we need this because otherwise safari loses\n\t\t// the mask, see <https://linear.app/tldraw/issue/TLD-1500/changing-arrow-color-makes-line-pass-through-text>\n\t\tconst maskId = (shape.id + '_clip_' + changeIndex).replace(':', '_')\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SVGContainer id={shape.id} style={{ minWidth: 50, minHeight: 50 }}>\n\t\t\t\t\t{/* Yep */}\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<mask id={maskId}>\n\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\tx={toDomPrecision(-100 + bounds.minX)}\n\t\t\t\t\t\t\t\ty={toDomPrecision(-100 + bounds.minY)}\n\t\t\t\t\t\t\t\twidth={toDomPrecision(bounds.width + 200)}\n\t\t\t\t\t\t\t\theight={toDomPrecision(bounds.height + 200)}\n\t\t\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{labelGeometry && (\n\t\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\t\tx={labelGeometry.x}\n\t\t\t\t\t\t\t\t\ty={labelGeometry.y}\n\t\t\t\t\t\t\t\t\twidth={labelGeometry.w}\n\t\t\t\t\t\t\t\t\theight={labelGeometry.h}\n\t\t\t\t\t\t\t\t\tfill=\"black\"\n\t\t\t\t\t\t\t\t\trx={4}\n\t\t\t\t\t\t\t\t\try={4}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{as && maskStartArrowhead && (\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td={as}\n\t\t\t\t\t\t\t\t\tfill={info.start.arrowhead === 'arrow' ? 'none' : 'black'}\n\t\t\t\t\t\t\t\t\tstroke=\"none\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{ae && maskEndArrowhead && (\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td={ae}\n\t\t\t\t\t\t\t\t\tfill={info.end.arrowhead === 'arrow' ? 'none' : 'black'}\n\t\t\t\t\t\t\t\t\tstroke=\"none\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<g\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke={theme[shape.props.color].solid}\n\t\t\t\t\t\tstrokeWidth={strokeWidth}\n\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\tpointerEvents=\"none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{handlePath}\n\t\t\t\t\t\t{/* firefox will clip if you provide a maskURL even if there is no mask matching that URL in the DOM */}\n\t\t\t\t\t\t<g mask={`url(#${maskId})`}>\n\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\tx={toDomPrecision(bounds.minX - 100)}\n\t\t\t\t\t\t\t\ty={toDomPrecision(bounds.minY - 100)}\n\t\t\t\t\t\t\t\twidth={toDomPrecision(bounds.width + 200)}\n\t\t\t\t\t\t\t\theight={toDomPrecision(bounds.height + 200)}\n\t\t\t\t\t\t\t\topacity={0}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td={path}\n\t\t\t\t\t\t\t\tstrokeDasharray={strokeDasharray}\n\t\t\t\t\t\t\t\tstrokeDashoffset={strokeDashoffset}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</g>\n\t\t\t\t\t\t{as && maskStartArrowhead && shape.props.fill !== 'none' && (\n\t\t\t\t\t\t\t<ShapeFill theme={theme} d={as} color={shape.props.color} fill={shape.props.fill} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{ae && maskEndArrowhead && shape.props.fill !== 'none' && (\n\t\t\t\t\t\t\t<ShapeFill theme={theme} d={ae} color={shape.props.color} fill={shape.props.fill} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{as && <path d={as} />}\n\t\t\t\t\t\t{ae && <path d={ae} />}\n\t\t\t\t\t</g>\n\t\t\t\t</SVGContainer>\n\t\t\t\t<ArrowTextLabel\n\t\t\t\t\tid={shape.id}\n\t\t\t\t\ttext={shape.props.text}\n\t\t\t\t\tfont={shape.props.font}\n\t\t\t\t\tsize={shape.props.size}\n\t\t\t\t\tposition={info.middle}\n\t\t\t\t\twidth={labelGeometry?.w ?? 0}\n\t\t\t\t\tlabelColor={theme[shape.props.labelColor].solid}\n\t\t\t\t/>\n\t\t\t</>\n\t\t)\n\t}\n\n\tindicator(shape: TLArrowShape) {\n\t\tconst { start, end } = getArrowTerminalsInArrowSpace(this.editor, shape)\n\n\t\tconst info = this.editor.getArrowInfo(shape)\n\t\tconst geometry = this.editor.getShapeGeometry<Group2d>(shape)\n\t\tconst bounds = geometry.bounds\n\n\t\tconst labelGeometry = shape.props.text.trim() ? (geometry.children[1] as Rectangle2d) : null\n\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tconst isEditing = useIsEditing(shape.id)\n\n\t\tif (!info) return null\n\t\tif (Vec2d.Equals(start, end)) return null\n\n\t\tconst strokeWidth = STROKE_SIZES[shape.props.size]\n\n\t\tconst as = info.start.arrowhead && getArrowheadPathForType(info, 'start', strokeWidth)\n\t\tconst ae = info.end.arrowhead && getArrowheadPathForType(info, 'end', strokeWidth)\n\n\t\tconst path = info.isStraight ? getSolidStraightArrowPath(info) : getSolidCurvedArrowPath(info)\n\n\t\tconst includeMask =\n\t\t\t(as && info.start.arrowhead !== 'arrow') ||\n\t\t\t(ae && info.end.arrowhead !== 'arrow') ||\n\t\t\t!!labelGeometry\n\n\t\tconst maskId = (shape.id + '_clip').replace(':', '_')\n\n\t\tif (isEditing && labelGeometry) {\n\t\t\treturn (\n\t\t\t\t<rect\n\t\t\t\t\tx={toDomPrecision(labelGeometry.x)}\n\t\t\t\t\ty={toDomPrecision(labelGeometry.y)}\n\t\t\t\t\twidth={labelGeometry.w}\n\t\t\t\t\theight={labelGeometry.h}\n\t\t\t\t\trx={3.5}\n\t\t\t\t\try={3.5}\n\t\t\t\t/>\n\t\t\t)\n\t\t}\n\n\t\treturn (\n\t\t\t<g>\n\t\t\t\t{includeMask && (\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<mask id={maskId}>\n\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\tx={bounds.minX - 100}\n\t\t\t\t\t\t\t\ty={bounds.minY - 100}\n\t\t\t\t\t\t\t\twidth={bounds.w + 200}\n\t\t\t\t\t\t\t\theight={bounds.h + 200}\n\t\t\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{labelGeometry && (\n\t\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\t\tx={toDomPrecision(labelGeometry.x)}\n\t\t\t\t\t\t\t\t\ty={toDomPrecision(labelGeometry.y)}\n\t\t\t\t\t\t\t\t\twidth={labelGeometry.w}\n\t\t\t\t\t\t\t\t\theight={labelGeometry.h}\n\t\t\t\t\t\t\t\t\tfill=\"black\"\n\t\t\t\t\t\t\t\t\trx={3.5}\n\t\t\t\t\t\t\t\t\try={3.5}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{as && (\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td={as}\n\t\t\t\t\t\t\t\t\tfill={info.start.arrowhead === 'arrow' ? 'none' : 'black'}\n\t\t\t\t\t\t\t\t\tstroke=\"none\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{ae && (\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td={ae}\n\t\t\t\t\t\t\t\t\tfill={info.end.arrowhead === 'arrow' ? 'none' : 'black'}\n\t\t\t\t\t\t\t\t\tstroke=\"none\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t</defs>\n\t\t\t\t)}\n\t\t\t\t{/* firefox will clip if you provide a maskURL even if there is no mask matching that URL in the DOM */}\n\t\t\t\t<g {...(includeMask ? { mask: `url(#${maskId})` } : undefined)}>\n\t\t\t\t\t{/* This rect needs to be here if we're creating a mask due to an svg quirk on Chrome */}\n\t\t\t\t\t{includeMask && (\n\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\tx={bounds.minX - 100}\n\t\t\t\t\t\t\ty={bounds.minY - 100}\n\t\t\t\t\t\t\twidth={bounds.width + 200}\n\t\t\t\t\t\t\theight={bounds.height + 200}\n\t\t\t\t\t\t\topacity={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<path d={path} />\n\t\t\t\t</g>\n\t\t\t\t{as && <path d={as} />}\n\t\t\t\t{ae && <path d={ae} />}\n\t\t\t\t{labelGeometry && (\n\t\t\t\t\t<rect\n\t\t\t\t\t\tx={toDomPrecision(labelGeometry.x)}\n\t\t\t\t\t\ty={toDomPrecision(labelGeometry.y)}\n\t\t\t\t\t\twidth={labelGeometry.w}\n\t\t\t\t\t\theight={labelGeometry.h}\n\t\t\t\t\t\trx={3.5}\n\t\t\t\t\t\try={3.5}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</g>\n\t\t)\n\t}\n\n\toverride onEditEnd: TLOnEditEndHandler<TLArrowShape> = (shape) => {\n\t\tconst {\n\t\t\tid,\n\t\t\ttype,\n\t\t\tprops: { text },\n\t\t} = shape\n\n\t\tif (text.trimEnd() !== shape.props.text) {\n\t\t\tthis.editor.updateShapes<TLArrowShape>([\n\t\t\t\t{\n\t\t\t\t\tid,\n\t\t\t\t\ttype,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\ttext: text.trimEnd(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t])\n\t\t}\n\t}\n\n\toverride toSvg(shape: TLArrowShape, ctx: SvgExportContext) {\n\t\tconst theme = getDefaultColorTheme({ isDarkMode: this.editor.user.getIsDarkMode() })\n\t\tctx.addExportDef(getFillDefForExport(shape.props.fill, theme))\n\n\t\tconst color = theme[shape.props.color].solid\n\n\t\tconst info = this.editor.getArrowInfo(shape)\n\n\t\tconst strokeWidth = STROKE_SIZES[shape.props.size]\n\n\t\t// Group for arrow\n\t\tconst g = document.createElementNS('http://www.w3.org/2000/svg', 'g')\n\t\tif (!info) return g\n\n\t\t// Arrowhead start path\n\t\tconst as = info.start.arrowhead && getArrowheadPathForType(info, 'start', strokeWidth)\n\t\t// Arrowhead end path\n\t\tconst ae = info.end.arrowhead && getArrowheadPathForType(info, 'end', strokeWidth)\n\n\t\tconst geometry = this.editor.getShapeGeometry<Group2d>(shape)\n\t\tconst bounds = geometry.bounds\n\n\t\tconst labelGeometry = shape.props.text.trim() ? (geometry.children[1] as Rectangle2d) : null\n\n\t\tconst maskId = (shape.id + '_clip').replace(':', '_')\n\n\t\t// If we have any arrowheads, then mask the arrowheads\n\t\tif (as || ae || !!labelGeometry) {\n\t\t\t// Create mask for arrowheads\n\n\t\t\t// Create defs\n\t\t\tconst defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs')\n\n\t\t\t// Create mask\n\t\t\tconst mask = document.createElementNS('http://www.w3.org/2000/svg', 'mask')\n\t\t\tmask.id = maskId\n\n\t\t\t// Create large white shape for mask\n\t\t\tconst rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect')\n\t\t\trect.setAttribute('x', bounds.minX - 100 + '')\n\t\t\trect.setAttribute('y', bounds.minY - 100 + '')\n\t\t\trect.setAttribute('width', bounds.width + 200 + '')\n\t\t\trect.setAttribute('height', bounds.height + 200 + '')\n\t\t\trect.setAttribute('fill', 'white')\n\t\t\tmask.appendChild(rect)\n\n\t\t\t// add arrowhead start mask\n\t\t\tif (as) mask.appendChild(getArrowheadSvgMask(as, info.start.arrowhead))\n\n\t\t\t// add arrowhead end mask\n\t\t\tif (ae) mask.appendChild(getArrowheadSvgMask(ae, info.end.arrowhead))\n\n\t\t\t// Mask out text label if text is present\n\t\t\tif (labelGeometry) {\n\t\t\t\tconst labelMask = document.createElementNS('http://www.w3.org/2000/svg', 'rect')\n\t\t\t\tlabelMask.setAttribute('x', labelGeometry.x + '')\n\t\t\t\tlabelMask.setAttribute('y', labelGeometry.y + '')\n\t\t\t\tlabelMask.setAttribute('width', labelGeometry.w + '')\n\t\t\t\tlabelMask.setAttribute('height', labelGeometry.h + '')\n\t\t\t\tlabelMask.setAttribute('fill', 'black')\n\n\t\t\t\tmask.appendChild(labelMask)\n\t\t\t}\n\n\t\t\tdefs.appendChild(mask)\n\t\t\tg.appendChild(defs)\n\t\t}\n\n\t\tconst g2 = document.createElementNS('http://www.w3.org/2000/svg', 'g')\n\t\tg2.setAttribute('mask', `url(#${maskId})`)\n\t\tg.appendChild(g2)\n\n\t\t// Dumb mask fix thing\n\t\tconst rect2 = document.createElementNS('http://www.w3.org/2000/svg', 'rect')\n\t\trect2.setAttribute('x', '-100')\n\t\trect2.setAttribute('y', '-100')\n\t\trect2.setAttribute('width', bounds.width + 200 + '')\n\t\trect2.setAttribute('height', bounds.height + 200 + '')\n\t\trect2.setAttribute('fill', 'transparent')\n\t\trect2.setAttribute('stroke', 'none')\n\t\tg2.appendChild(rect2)\n\n\t\t// Arrowhead body path\n\t\tconst path = getArrowSvgPath(\n\t\t\tinfo.isStraight ? getSolidStraightArrowPath(info) : getSolidCurvedArrowPath(info),\n\t\t\tcolor,\n\t\t\tstrokeWidth\n\t\t)\n\n\t\tconst { strokeDasharray, strokeDashoffset } = getPerfectDashProps(\n\t\t\tinfo.isStraight ? info.length : Math.abs(info.bodyArc.length),\n\t\t\tstrokeWidth,\n\t\t\t{\n\t\t\t\tstyle: shape.props.dash,\n\t\t\t}\n\t\t)\n\n\t\tpath.setAttribute('stroke-dasharray', strokeDasharray)\n\t\tpath.setAttribute('stroke-dashoffset', strokeDashoffset)\n\n\t\tg2.appendChild(path)\n\n\t\t// Arrowhead start path\n\t\tif (as) {\n\t\t\tg.appendChild(\n\t\t\t\tgetArrowheadSvgPath(\n\t\t\t\t\tas,\n\t\t\t\t\tshape.props.color,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tshape.props.arrowheadStart === 'arrow' ? 'none' : shape.props.fill,\n\t\t\t\t\ttheme\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\t\t// Arrowhead end path\n\t\tif (ae) {\n\t\t\tg.appendChild(\n\t\t\t\tgetArrowheadSvgPath(\n\t\t\t\t\tae,\n\t\t\t\t\tshape.props.color,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tshape.props.arrowheadEnd === 'arrow' ? 'none' : shape.props.fill,\n\t\t\t\t\ttheme\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\n\t\t// Text Label\n\t\tif (labelGeometry) {\n\t\t\tctx.addExportDef(getFontDefForExport(shape.props.font))\n\n\t\t\tconst opts = {\n\t\t\t\tfontSize: ARROW_LABEL_FONT_SIZES[shape.props.size],\n\t\t\t\tlineHeight: TEXT_PROPS.lineHeight,\n\t\t\t\tfontFamily: DefaultFontFamilies[shape.props.font],\n\t\t\t\tpadding: 0,\n\t\t\t\ttextAlign: 'middle' as const,\n\t\t\t\twidth: labelGeometry.w - 8,\n\t\t\t\tverticalTextAlign: 'middle' as const,\n\t\t\t\theight: labelGeometry.h,\n\t\t\t\tfontStyle: 'normal',\n\t\t\t\tfontWeight: 'normal',\n\t\t\t\toverflow: 'wrap' as const,\n\t\t\t}\n\n\t\t\tconst textElm = createTextSvgElementFromSpans(\n\t\t\t\tthis.editor,\n\t\t\t\tthis.editor.textMeasure.measureTextSpans(shape.props.text, opts),\n\t\t\t\topts\n\t\t\t)\n\t\t\ttextElm.setAttribute('fill', theme[shape.props.labelColor].solid)\n\n\t\t\tconst children = Array.from(textElm.children) as unknown as SVGTSpanElement[]\n\n\t\t\tchildren.forEach((child) => {\n\t\t\t\tconst x = parseFloat(child.getAttribute('x') || '0')\n\t\t\t\tconst y = parseFloat(child.getAttribute('y') || '0')\n\n\t\t\t\tchild.setAttribute('x', x + 4 + labelGeometry.x + 'px')\n\t\t\t\tchild.setAttribute('y', y + labelGeometry.y + 'px')\n\t\t\t})\n\n\t\t\tconst textBgEl = textElm.cloneNode(true) as SVGTextElement\n\t\t\ttextBgEl.setAttribute('stroke-width', '2')\n\t\t\ttextBgEl.setAttribute('fill', theme.background)\n\t\t\ttextBgEl.setAttribute('stroke', theme.background)\n\n\t\t\tg.appendChild(textBgEl)\n\t\t\tg.appendChild(textElm)\n\t\t}\n\n\t\treturn g\n\t}\n\n\toverride getCanvasSvgDefs(): TLShapeUtilCanvasSvgDef[] {\n\t\treturn [getFillDefForCanvas()]\n\t}\n}\n\nfunction getArrowheadSvgMask(d: string, arrowhead: TLArrowShapeArrowheadStyle) {\n\tconst path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n\tpath.setAttribute('d', d)\n\tpath.setAttribute('fill', arrowhead === 'arrow' ? 'none' : 'black')\n\tpath.setAttribute('stroke', 'none')\n\treturn path\n}\n\nfunction getArrowSvgPath(d: string, color: string, strokeWidth: number) {\n\tconst path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n\tpath.setAttribute('d', d)\n\tpath.setAttribute('fill', 'none')\n\tpath.setAttribute('stroke', color)\n\tpath.setAttribute('stroke-width', strokeWidth + '')\n\treturn path\n}\n\nfunction getArrowheadSvgPath(\n\td: string,\n\tcolor: TLDefaultColorStyle,\n\tstrokeWidth: number,\n\tfill: TLDefaultFillStyle,\n\ttheme: TLDefaultColorTheme\n) {\n\tconst path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n\tpath.setAttribute('d', d)\n\tpath.setAttribute('fill', 'none')\n\tpath.setAttribute('stroke', theme[color].solid)\n\tpath.setAttribute('stroke-width', strokeWidth + '')\n\n\t// Get the fill element, if any\n\tconst shapeFill = getShapeFillSvg({\n\t\td,\n\t\tfill,\n\t\tcolor,\n\t\ttheme,\n\t})\n\n\tif (shapeFill) {\n\t\t// If there is a fill element, return a group containing the fill and the path\n\t\tconst g = document.createElementNS('http://www.w3.org/2000/svg', 'g')\n\t\tg.appendChild(shapeFill)\n\t\tg.appendChild(path)\n\t\treturn g\n\t} else {\n\t\t// Otherwise, just return the path\n\t\treturn path\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["point", "React", "strokeDasharray", "strokeDashoffset"]
7
7
  }
@@ -35,8 +35,7 @@ class Idle extends import_editor.StateNode {
35
35
  };
36
36
  onKeyUp = (info) => {
37
37
  if (info.key === "Enter") {
38
- if (this.editor.getInstanceState().isReadonly)
39
- return null;
38
+ if (this.editor.getInstanceState().isReadonly) return null;
40
39
  const onlySelectedShape = this.editor.getOnlySelectedShape();
41
40
  if (onlySelectedShape && this.editor.getShapeUtil(onlySelectedShape).canEdit(onlySelectedShape)) {
42
41
  this.editor.setCurrentTool("select");
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/shapes/arrow/toolStates/Idle.ts"],
4
4
  "sourcesContent": ["import { StateNode, TLEventHandlers } from '@bigbluebutton/editor'\n\nexport class Idle extends StateNode {\n\tstatic override id = 'idle'\n\n\toverride onPointerDown: TLEventHandlers['onPointerDown'] = (info) => {\n\t\tthis.parent.transition('pointing', info)\n\t}\n\n\toverride onEnter = () => {\n\t\tthis.editor.setCursor({ type: 'cross', rotation: 0 })\n\t}\n\n\toverride onCancel = () => {\n\t\tthis.editor.setCurrentTool('select')\n\t}\n\n\toverride onKeyUp: TLEventHandlers['onKeyUp'] = (info) => {\n\t\tif (info.key === 'Enter') {\n\t\t\tif (this.editor.getInstanceState().isReadonly) return null\n\t\t\tconst onlySelectedShape = this.editor.getOnlySelectedShape()\n\t\t\t// If the only selected shape is editable, start editing it\n\t\t\tif (\n\t\t\t\tonlySelectedShape &&\n\t\t\t\tthis.editor.getShapeUtil(onlySelectedShape).canEdit(onlySelectedShape)\n\t\t\t) {\n\t\t\t\tthis.editor.setCurrentTool('select')\n\t\t\t\tthis.editor.setEditingShape(onlySelectedShape.id)\n\t\t\t\tthis.editor.root.getCurrent()?.transition('editing_shape', {\n\t\t\t\t\t...info,\n\t\t\t\t\ttarget: 'shape',\n\t\t\t\t\tshape: onlySelectedShape,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2C;AAEpC,MAAM,aAAa,wBAAU;AAAA,EACnC,OAAgB,KAAK;AAAA,EAEZ,gBAAkD,CAAC,SAAS;AACpE,SAAK,OAAO,WAAW,YAAY,IAAI;AAAA,EACxC;AAAA,EAES,UAAU,MAAM;AACxB,SAAK,OAAO,UAAU,EAAE,MAAM,SAAS,UAAU,EAAE,CAAC;AAAA,EACrD;AAAA,EAES,WAAW,MAAM;AACzB,SAAK,OAAO,eAAe,QAAQ;AAAA,EACpC;AAAA,EAES,UAAsC,CAAC,SAAS;AACxD,QAAI,KAAK,QAAQ,SAAS;AACzB,UAAI,KAAK,OAAO,iBAAiB,EAAE;AAAY,eAAO;AACtD,YAAM,oBAAoB,KAAK,OAAO,qBAAqB;AAE3D,UACC,qBACA,KAAK,OAAO,aAAa,iBAAiB,EAAE,QAAQ,iBAAiB,GACpE;AACD,aAAK,OAAO,eAAe,QAAQ;AACnC,aAAK,OAAO,gBAAgB,kBAAkB,EAAE;AAChD,aAAK,OAAO,KAAK,WAAW,GAAG,WAAW,iBAAiB;AAAA,UAC1D,GAAG;AAAA,UACH,QAAQ;AAAA,UACR,OAAO;AAAA,QACR,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2C;AAEpC,MAAM,aAAa,wBAAU;AAAA,EACnC,OAAgB,KAAK;AAAA,EAEZ,gBAAkD,CAAC,SAAS;AACpE,SAAK,OAAO,WAAW,YAAY,IAAI;AAAA,EACxC;AAAA,EAES,UAAU,MAAM;AACxB,SAAK,OAAO,UAAU,EAAE,MAAM,SAAS,UAAU,EAAE,CAAC;AAAA,EACrD;AAAA,EAES,WAAW,MAAM;AACzB,SAAK,OAAO,eAAe,QAAQ;AAAA,EACpC;AAAA,EAES,UAAsC,CAAC,SAAS;AACxD,QAAI,KAAK,QAAQ,SAAS;AACzB,UAAI,KAAK,OAAO,iBAAiB,EAAE,WAAY,QAAO;AACtD,YAAM,oBAAoB,KAAK,OAAO,qBAAqB;AAE3D,UACC,qBACA,KAAK,OAAO,aAAa,iBAAiB,EAAE,QAAQ,iBAAiB,GACpE;AACD,aAAK,OAAO,eAAe,QAAQ;AACnC,aAAK,OAAO,gBAAgB,kBAAkB,EAAE;AAChD,aAAK,OAAO,KAAK,WAAW,GAAG,WAAW,iBAAiB;AAAA,UAC1D,GAAG;AAAA,UACH,QAAQ;AAAA,UACR,OAAO;AAAA,QACR,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD;",
6
6
  "names": []
7
7
  }
@@ -53,8 +53,7 @@ class Pointing extends import_editor.StateNode {
53
53
  if (!this.shape) {
54
54
  this.createArrowShape();
55
55
  }
56
- if (!this.shape)
57
- throw Error(`expected shape`);
56
+ if (!this.shape) throw Error(`expected shape`);
58
57
  this.updateArrowShapeEndHandle();
59
58
  this.editor.setCurrentTool("select.dragging_handle", {
60
59
  shape: this.shape,
@@ -97,11 +96,9 @@ class Pointing extends import_editor.StateNode {
97
96
  }
98
97
  ]);
99
98
  const shape = this.editor.getShape(id);
100
- if (!shape)
101
- throw Error(`expected shape`);
99
+ if (!shape) throw Error(`expected shape`);
102
100
  const handles = this.editor.getShapeHandles(shape);
103
- if (!handles)
104
- throw Error(`expected handles for arrow`);
101
+ if (!handles) throw Error(`expected handles for arrow`);
105
102
  const util = this.editor.getShapeUtil("arrow");
106
103
  const initial = this.shape;
107
104
  const startHandle = handles.find((h) => h.id === "start");
@@ -122,11 +119,9 @@ class Pointing extends import_editor.StateNode {
122
119
  }
123
120
  updateArrowShapeEndHandle() {
124
121
  const shape = this.shape;
125
- if (!shape)
126
- throw Error(`expected shape`);
122
+ if (!shape) throw Error(`expected shape`);
127
123
  const handles = this.editor.getShapeHandles(shape);
128
- if (!handles)
129
- throw Error(`expected handles for arrow`);
124
+ if (!handles) throw Error(`expected handles for arrow`);
130
125
  const shapeWithOutEndOffset = {
131
126
  ...shape,
132
127
  props: { ...shape.props, end: { ...shape.props.end, x: 0, y: 0 } }
@@ -170,8 +165,7 @@ class Pointing extends import_editor.StateNode {
170
165
  didTimeout = false;
171
166
  startPreciseTimeout() {
172
167
  this.preciseTimeout = window.setTimeout(() => {
173
- if (!this.getIsActive())
174
- return;
168
+ if (!this.getIsActive()) return;
175
169
  this.didTimeout = true;
176
170
  }, 320);
177
171
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/shapes/arrow/toolStates/Pointing.ts"],
4
4
  "sourcesContent": ["import { StateNode, TLArrowShape, TLEventHandlers, createShapeId } from '@bigbluebutton/editor'\n\nexport class Pointing extends StateNode {\n\tstatic override id = 'pointing'\n\n\tshape?: TLArrowShape\n\n\tmarkId = ''\n\n\toverride onEnter = () => {\n\t\tthis.didTimeout = false\n\n\t\tconst target = this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint, {\n\t\t\tfilter: (targetShape) => {\n\t\t\t\treturn !targetShape.isLocked && this.editor.getShapeUtil(targetShape).canBind(targetShape)\n\t\t\t},\n\t\t\tmargin: 0,\n\t\t\thitInside: true,\n\t\t\trenderingOnly: true,\n\t\t})\n\n\t\tif (!target) {\n\t\t\tthis.createArrowShape()\n\t\t} else {\n\t\t\tthis.editor.setHintingShapes([target.id])\n\t\t}\n\n\t\tthis.startPreciseTimeout()\n\t}\n\n\toverride onExit = () => {\n\t\tthis.shape = undefined\n\t\tthis.editor.setHintingShapes([])\n\t\tthis.clearPreciseTimeout()\n\t}\n\n\toverride onPointerMove: TLEventHandlers['onPointerMove'] = () => {\n\t\tif (this.editor.inputs.isDragging) {\n\t\t\tif (!this.shape) {\n\t\t\t\tthis.createArrowShape()\n\t\t\t}\n\n\t\t\tif (!this.shape) throw Error(`expected shape`)\n\n\t\t\tthis.updateArrowShapeEndHandle()\n\n\t\t\tthis.editor.setCurrentTool('select.dragging_handle', {\n\t\t\t\tshape: this.shape,\n\t\t\t\thandle: this.editor.getShapeHandles(this.shape)!.find((h) => h.id === 'end')!,\n\t\t\t\tisCreating: true,\n\t\t\t\tonInteractionEnd: 'arrow',\n\t\t\t})\n\t\t}\n\t}\n\n\toverride onPointerUp: TLEventHandlers['onPointerUp'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onCancel: TLEventHandlers['onCancel'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onComplete: TLEventHandlers['onComplete'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onInterrupt: TLEventHandlers['onInterrupt'] = () => {\n\t\tthis.cancel()\n\t}\n\n\tcancel() {\n\t\tif (this.shape) {\n\t\t\t// the arrow might not have been created yet!\n\t\t\tthis.editor.bailToMark(this.markId)\n\t\t}\n\t\tthis.editor.setHintingShapes([])\n\t\tthis.parent.transition('idle')\n\t}\n\n\tcreateArrowShape() {\n\t\tconst { originPagePoint } = this.editor.inputs\n\n\t\tconst id = createShapeId()\n\n\t\tthis.markId = `creating:${id}`\n\t\tthis.editor.mark(this.markId)\n\n\t\tthis.editor.createShapes<TLArrowShape>([\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\ttype: 'arrow',\n\t\t\t\tx: originPagePoint.x,\n\t\t\t\ty: originPagePoint.y,\n\t\t\t},\n\t\t])\n\n\t\tconst shape = this.editor.getShape<TLArrowShape>(id)\n\t\tif (!shape) throw Error(`expected shape`)\n\n\t\tconst handles = this.editor.getShapeHandles(shape)\n\t\tif (!handles) throw Error(`expected handles for arrow`)\n\n\t\tconst util = this.editor.getShapeUtil<TLArrowShape>('arrow')\n\t\tconst initial = this.shape\n\t\tconst startHandle = handles.find((h) => h.id === 'start')!\n\t\tconst change = util.onHandleChange?.(shape, {\n\t\t\thandle: { ...startHandle, x: 0, y: 0 },\n\t\t\tisPrecise: true,\n\t\t\tinitial: initial,\n\t\t})\n\n\t\tif (change) {\n\t\t\tconst startTerminal = change.props?.start\n\t\t\tif (startTerminal?.type === 'binding') {\n\t\t\t\tthis.editor.setHintingShapes([startTerminal.boundShapeId])\n\t\t\t}\n\t\t\tthis.editor.updateShapes([change], { squashing: true })\n\t\t}\n\n\t\t// Cache the current shape after those changes\n\t\tthis.shape = this.editor.getShape(id)\n\t\tthis.editor.select(id)\n\t}\n\n\tupdateArrowShapeEndHandle() {\n\t\tconst shape = this.shape\n\t\tif (!shape) throw Error(`expected shape`)\n\n\t\tconst handles = this.editor.getShapeHandles(shape)\n\t\tif (!handles) throw Error(`expected handles for arrow`)\n\n\t\tconst shapeWithOutEndOffset = {\n\t\t\t...shape,\n\t\t\tprops: { ...shape.props, end: { ...shape.props.end, x: 0, y: 0 } },\n\t\t}\n\n\t\t// end update\n\t\t{\n\t\t\tconst util = this.editor.getShapeUtil<TLArrowShape>('arrow')\n\t\t\tconst initial = this.shape\n\t\t\tconst point = this.editor.getPointInShapeSpace(shape, this.editor.inputs.currentPagePoint)\n\t\t\tconst endHandle = handles.find((h) => h.id === 'end')!\n\t\t\tconst change = util.onHandleChange?.(shapeWithOutEndOffset, {\n\t\t\t\thandle: { ...endHandle, x: point.x, y: point.y },\n\t\t\t\tisPrecise: false, // sure about that?\n\t\t\t\tinitial: initial,\n\t\t\t})\n\n\t\t\tif (change) {\n\t\t\t\tconst endTerminal = change.props?.end\n\t\t\t\tif (endTerminal?.type === 'binding') {\n\t\t\t\t\tthis.editor.setHintingShapes([endTerminal.boundShapeId])\n\t\t\t\t}\n\t\t\t\tthis.editor.updateShapes([change], { squashing: true })\n\t\t\t}\n\t\t}\n\n\t\t// start update\n\t\t{\n\t\t\tconst util = this.editor.getShapeUtil<TLArrowShape>('arrow')\n\t\t\tconst initial = this.shape\n\t\t\tconst startHandle = handles.find((h) => h.id === 'start')!\n\t\t\tconst change = util.onHandleChange?.(shapeWithOutEndOffset, {\n\t\t\t\thandle: { ...startHandle, x: 0, y: 0 },\n\t\t\t\tisPrecise: this.didTimeout, // sure about that?\n\t\t\t\tinitial: initial,\n\t\t\t})\n\n\t\t\tif (change) {\n\t\t\t\tthis.editor.updateShapes([change], { squashing: true })\n\t\t\t}\n\t\t}\n\n\t\t// Cache the current shape after those changes\n\t\tthis.shape = this.editor.getShape(shape.id)\n\t}\n\n\tprivate preciseTimeout = -1\n\tprivate didTimeout = false\n\tprivate startPreciseTimeout() {\n\t\tthis.preciseTimeout = window.setTimeout(() => {\n\t\t\tif (!this.getIsActive()) return\n\t\t\tthis.didTimeout = true\n\t\t}, 320)\n\t}\n\tprivate clearPreciseTimeout() {\n\t\tclearTimeout(this.preciseTimeout)\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAwE;AAEjE,MAAM,iBAAiB,wBAAU;AAAA,EACvC,OAAgB,KAAK;AAAA,EAErB;AAAA,EAEA,SAAS;AAAA,EAEA,UAAU,MAAM;AACxB,SAAK,aAAa;AAElB,UAAM,SAAS,KAAK,OAAO,gBAAgB,KAAK,OAAO,OAAO,kBAAkB;AAAA,MAC/E,QAAQ,CAAC,gBAAgB;AACxB,eAAO,CAAC,YAAY,YAAY,KAAK,OAAO,aAAa,WAAW,EAAE,QAAQ,WAAW;AAAA,MAC1F;AAAA,MACA,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,IAChB,CAAC;AAED,QAAI,CAAC,QAAQ;AACZ,WAAK,iBAAiB;AAAA,IACvB,OAAO;AACN,WAAK,OAAO,iBAAiB,CAAC,OAAO,EAAE,CAAC;AAAA,IACzC;AAEA,SAAK,oBAAoB;AAAA,EAC1B;AAAA,EAES,SAAS,MAAM;AACvB,SAAK,QAAQ;AACb,SAAK,OAAO,iBAAiB,CAAC,CAAC;AAC/B,SAAK,oBAAoB;AAAA,EAC1B;AAAA,EAES,gBAAkD,MAAM;AAChE,QAAI,KAAK,OAAO,OAAO,YAAY;AAClC,UAAI,CAAC,KAAK,OAAO;AAChB,aAAK,iBAAiB;AAAA,MACvB;AAEA,UAAI,CAAC,KAAK,MAAO,OAAM,MAAM,gBAAgB;AAE7C,WAAK,0BAA0B;AAE/B,WAAK,OAAO,eAAe,0BAA0B;AAAA,QACpD,OAAO,KAAK;AAAA,QACZ,QAAQ,KAAK,OAAO,gBAAgB,KAAK,KAAK,EAAG,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK;AAAA,QAC3E,YAAY;AAAA,QACZ,kBAAkB;AAAA,MACnB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAES,cAA8C,MAAM;AAC5D,SAAK,OAAO;AAAA,EACb;AAAA,EAES,WAAwC,MAAM;AACtD,SAAK,OAAO;AAAA,EACb;AAAA,EAES,aAA4C,MAAM;AAC1D,SAAK,OAAO;AAAA,EACb;AAAA,EAES,cAA8C,MAAM;AAC5D,SAAK,OAAO;AAAA,EACb;AAAA,EAEA,SAAS;AACR,QAAI,KAAK,OAAO;AAEf,WAAK,OAAO,WAAW,KAAK,MAAM;AAAA,IACnC;AACA,SAAK,OAAO,iBAAiB,CAAC,CAAC;AAC/B,SAAK,OAAO,WAAW,MAAM;AAAA,EAC9B;AAAA,EAEA,mBAAmB;AAClB,UAAM,EAAE,gBAAgB,IAAI,KAAK,OAAO;AAExC,UAAM,SAAK,6BAAc;AAEzB,SAAK,SAAS,YAAY,EAAE;AAC5B,SAAK,OAAO,KAAK,KAAK,MAAM;AAE5B,SAAK,OAAO,aAA2B;AAAA,MACtC;AAAA,QACC;AAAA,QACA,MAAM;AAAA,QACN,GAAG,gBAAgB;AAAA,QACnB,GAAG,gBAAgB;AAAA,MACpB;AAAA,IACD,CAAC;AAED,UAAM,QAAQ,KAAK,OAAO,SAAuB,EAAE;AACnD,QAAI,CAAC,MAAO,OAAM,MAAM,gBAAgB;AAExC,UAAM,UAAU,KAAK,OAAO,gBAAgB,KAAK;AACjD,QAAI,CAAC,QAAS,OAAM,MAAM,4BAA4B;AAEtD,UAAM,OAAO,KAAK,OAAO,aAA2B,OAAO;AAC3D,UAAM,UAAU,KAAK;AACrB,UAAM,cAAc,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO;AACxD,UAAM,SAAS,KAAK,iBAAiB,OAAO;AAAA,MAC3C,QAAQ,EAAE,GAAG,aAAa,GAAG,GAAG,GAAG,EAAE;AAAA,MACrC,WAAW;AAAA,MACX;AAAA,IACD,CAAC;AAED,QAAI,QAAQ;AACX,YAAM,gBAAgB,OAAO,OAAO;AACpC,UAAI,eAAe,SAAS,WAAW;AACtC,aAAK,OAAO,iBAAiB,CAAC,cAAc,YAAY,CAAC;AAAA,MAC1D;AACA,WAAK,OAAO,aAAa,CAAC,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACvD;AAGA,SAAK,QAAQ,KAAK,OAAO,SAAS,EAAE;AACpC,SAAK,OAAO,OAAO,EAAE;AAAA,EACtB;AAAA,EAEA,4BAA4B;AAC3B,UAAM,QAAQ,KAAK;AACnB,QAAI,CAAC,MAAO,OAAM,MAAM,gBAAgB;AAExC,UAAM,UAAU,KAAK,OAAO,gBAAgB,KAAK;AACjD,QAAI,CAAC,QAAS,OAAM,MAAM,4BAA4B;AAEtD,UAAM,wBAAwB;AAAA,MAC7B,GAAG;AAAA,MACH,OAAO,EAAE,GAAG,MAAM,OAAO,KAAK,EAAE,GAAG,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE;AAAA,IAClE;AAGA;AACC,YAAM,OAAO,KAAK,OAAO,aAA2B,OAAO;AAC3D,YAAM,UAAU,KAAK;AACrB,YAAM,QAAQ,KAAK,OAAO,qBAAqB,OAAO,KAAK,OAAO,OAAO,gBAAgB;AACzF,YAAM,YAAY,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK;AACpD,YAAM,SAAS,KAAK,iBAAiB,uBAAuB;AAAA,QAC3D,QAAQ,EAAE,GAAG,WAAW,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE;AAAA,QAC/C,WAAW;AAAA;AAAA,QACX;AAAA,MACD,CAAC;AAED,UAAI,QAAQ;AACX,cAAM,cAAc,OAAO,OAAO;AAClC,YAAI,aAAa,SAAS,WAAW;AACpC,eAAK,OAAO,iBAAiB,CAAC,YAAY,YAAY,CAAC;AAAA,QACxD;AACA,aAAK,OAAO,aAAa,CAAC,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,MACvD;AAAA,IACD;AAGA;AACC,YAAM,OAAO,KAAK,OAAO,aAA2B,OAAO;AAC3D,YAAM,UAAU,KAAK;AACrB,YAAM,cAAc,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO;AACxD,YAAM,SAAS,KAAK,iBAAiB,uBAAuB;AAAA,QAC3D,QAAQ,EAAE,GAAG,aAAa,GAAG,GAAG,GAAG,EAAE;AAAA,QACrC,WAAW,KAAK;AAAA;AAAA,QAChB;AAAA,MACD,CAAC;AAED,UAAI,QAAQ;AACX,aAAK,OAAO,aAAa,CAAC,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,MACvD;AAAA,IACD;AAGA,SAAK,QAAQ,KAAK,OAAO,SAAS,MAAM,EAAE;AAAA,EAC3C;AAAA,EAEQ,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,sBAAsB;AAC7B,SAAK,iBAAiB,OAAO,WAAW,MAAM;AAC7C,UAAI,CAAC,KAAK,YAAY,EAAG;AACzB,WAAK,aAAa;AAAA,IACnB,GAAG,GAAG;AAAA,EACP;AAAA,EACQ,sBAAsB;AAC7B,iBAAa,KAAK,cAAc;AAAA,EACjC;AACD;",
6
6
  "names": []
7
7
  }
@@ -119,8 +119,7 @@ class Drawing extends import_editor.StateNode {
119
119
  return this.shapeType !== "highlight";
120
120
  }
121
121
  getIsClosed(segments, size) {
122
- if (!this.canClose())
123
- return false;
122
+ if (!this.canClose()) return false;
124
123
  const strokeWidth = import_default_shape_constants.STROKE_SIZES[size];
125
124
  const firstPoint = segments[0].points[0];
126
125
  const lastSegment = segments[segments.length - 1];
@@ -143,11 +142,9 @@ class Drawing extends import_editor.StateNode {
143
142
  if (shape && this.segmentMode === "straight") {
144
143
  this.didJustShiftClickToExtendPreviousShapeLine = true;
145
144
  const prevSegment = (0, import_editor.last)(shape.props.segments);
146
- if (!prevSegment)
147
- throw Error("Expected a previous segment!");
145
+ if (!prevSegment) throw Error("Expected a previous segment!");
148
146
  const prevPoint = (0, import_editor.last)(prevSegment.points);
149
- if (!prevPoint)
150
- throw Error("Expected a previous point!");
147
+ if (!prevPoint) throw Error("Expected a previous point!");
151
148
  const { x, y } = this.editor.getPointInShapeSpace(shape, originPagePoint).toFixed();
152
149
  const pressure2 = this.isPen ? this.info.point.z * 1.25 : 0.5;
153
150
  const newSegment = {
@@ -222,15 +219,13 @@ class Drawing extends import_editor.StateNode {
222
219
  updateShapes() {
223
220
  const { inputs } = this.editor;
224
221
  const { initialShape } = this;
225
- if (!initialShape)
226
- return;
222
+ if (!initialShape) return;
227
223
  const {
228
224
  id,
229
225
  props: { size }
230
226
  } = initialShape;
231
227
  const shape = this.editor.getShape(id);
232
- if (!shape)
233
- return;
228
+ if (!shape) return;
234
229
  const { segments } = shape.props;
235
230
  const { x, y, z } = this.editor.getPointInShapeSpace(shape, inputs.currentPagePoint).toFixed();
236
231
  const newPoint = { x, y, z: this.isPen ? +(z * 1.25).toFixed(2) : 0.5 };
@@ -246,11 +241,9 @@ class Drawing extends import_editor.StateNode {
246
241
  this.pagePointWhereNextSegmentChanged = null;
247
242
  this.segmentMode = "straight";
248
243
  const prevSegment = (0, import_editor.last)(segments);
249
- if (!prevSegment)
250
- throw Error("Expected a previous segment!");
244
+ if (!prevSegment) throw Error("Expected a previous segment!");
251
245
  const prevLastPoint = (0, import_editor.last)(prevSegment.points);
252
- if (!prevLastPoint)
253
- throw Error("Expected a previous last point!");
246
+ if (!prevLastPoint) throw Error("Expected a previous last point!");
254
247
  let newSegment;
255
248
  const newLastPoint = this.editor.getPointInShapeSpace(shape, this.pagePointWhereCurrentSegmentChanged).toFixed().toJson();
256
249
  if (prevSegment.type === "straight") {
@@ -360,14 +353,11 @@ class Drawing extends import_editor.StateNode {
360
353
  let minDistance = 8 / this.editor.getZoomLevel();
361
354
  for (let i = 0, n = segments.length - 2; i < n; i++) {
362
355
  const segment = segments[i];
363
- if (!segment)
364
- break;
365
- if (segment.type === "free")
366
- continue;
356
+ if (!segment) break;
357
+ if (segment.type === "free") continue;
367
358
  const first = segment.points[0];
368
359
  const lastPoint = (0, import_editor.last)(segment.points);
369
- if (!(first && lastPoint))
370
- continue;
360
+ if (!(first && lastPoint)) continue;
371
361
  const nearestPointOnSegment = import_editor.Vec2d.NearestPointOnLineSegment(
372
362
  first,
373
363
  lastPoint,
@@ -391,8 +381,7 @@ class Drawing extends import_editor.StateNode {
391
381
  const transform = this.editor.getShapePageTransform(shape);
392
382
  const first = snapSegment.points[0];
393
383
  const lastPoint = (0, import_editor.last)(snapSegment.points);
394
- if (!lastPoint)
395
- throw Error("Expected a last point!");
384
+ if (!lastPoint) throw Error("Expected a last point!");
396
385
  const A = import_editor.Matrix2d.applyToPoint(transform, first);
397
386
  const B = import_editor.Matrix2d.applyToPoint(transform, lastPoint);
398
387
  const snappedPoint = import_editor.Matrix2d.applyToPoint(transform, newPoint2);
@@ -542,8 +531,7 @@ class Drawing extends import_editor.StateNode {
542
531
  return;
543
532
  }
544
533
  const { initialShape } = this;
545
- if (!initialShape)
546
- return;
534
+ if (!initialShape) return;
547
535
  this.editor.updateShapes([
548
536
  { id: initialShape.id, type: initialShape.type, props: { isComplete: true } }
549
537
  ]);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/shapes/draw/toolStates/Drawing.ts"],
4
4
  "sourcesContent": ["import {\n\tDRAG_DISTANCE,\n\tMatrix2d,\n\tStateNode,\n\tTLDefaultSizeStyle,\n\tTLDrawShape,\n\tTLDrawShapeSegment,\n\tTLEventHandlers,\n\tTLHighlightShape,\n\tTLPointerEventInfo,\n\tTLShapePartial,\n\tVec2d,\n\tVec2dModel,\n\tcreateShapeId,\n\tlast,\n\tsnapAngle,\n\ttoFixed,\n\tuniqueId,\n} from '@bigbluebutton/editor'\nimport { STROKE_SIZES } from '../../shared/default-shape-constants'\n\ntype DrawableShape = TLDrawShape | TLHighlightShape\n\nexport class Drawing extends StateNode {\n\tstatic override id = 'drawing'\n\n\tinfo = {} as TLPointerEventInfo\n\n\tinitialShape?: DrawableShape\n\n\toverride shapeType = this.parent.id === 'highlight' ? ('highlight' as const) : ('draw' as const)\n\n\tutil = this.editor.getShapeUtil(this.shapeType)\n\n\tisPen = false\n\n\tsegmentMode = 'free' as 'free' | 'straight' | 'starting_straight' | 'starting_free'\n\n\tdidJustShiftClickToExtendPreviousShapeLine = false\n\n\tpagePointWhereCurrentSegmentChanged = {} as Vec2d\n\n\tpagePointWhereNextSegmentChanged = null as Vec2d | null\n\n\tlastRecordedPoint = {} as Vec2d\n\tmergeNextPoint = false\n\tcurrentLineLength = 0\n\n\tcanDraw = false\n\n\tmarkId = null as null | string\n\n\toverride onEnter = (info: TLPointerEventInfo) => {\n\t\tthis.markId = null\n\t\tthis.info = info\n\t\tthis.canDraw = !this.editor.getIsMenuOpen()\n\t\tthis.lastRecordedPoint = this.editor.inputs.currentPagePoint.clone()\n\t\tif (this.canDraw) {\n\t\t\tthis.startShape()\n\t\t}\n\t}\n\n\toverride onPointerMove: TLEventHandlers['onPointerMove'] = () => {\n\t\tconst {\n\t\t\teditor: { inputs },\n\t\t} = this\n\n\t\tif (this.isPen !== inputs.isPen) {\n\t\t\t// The user made a palm gesture before starting a pen gesture;\n\t\t\t// ideally we'd start the new shape here but we could also just bail\n\t\t\t// as the next interaction will work correctly\n\t\t\tif (this.markId) {\n\t\t\t\tthis.editor.bailToMark(this.markId)\n\t\t\t\tthis.startShape()\n\t\t\t\treturn\n\t\t\t}\n\t\t} else {\n\t\t\t// If we came in from a menu but have no started dragging...\n\t\t\tif (!this.canDraw && inputs.isDragging) {\n\t\t\t\tthis.startShape()\n\t\t\t\tthis.canDraw = true // bad name\n\t\t\t}\n\t\t}\n\n\t\tif (this.canDraw) {\n\t\t\t// Don't update the shape if we haven't moved far enough from the last time we recorded a point\n\t\t\tif (inputs.isPen) {\n\t\t\t\tif (\n\t\t\t\t\tVec2d.Dist(inputs.currentPagePoint, this.lastRecordedPoint) >=\n\t\t\t\t\t1 / this.editor.getZoomLevel()\n\t\t\t\t) {\n\t\t\t\t\tthis.lastRecordedPoint = inputs.currentPagePoint.clone()\n\t\t\t\t\tthis.mergeNextPoint = false\n\t\t\t\t} else {\n\t\t\t\t\tthis.mergeNextPoint = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.mergeNextPoint = false\n\t\t\t}\n\n\t\t\tthis.updateShapes()\n\t\t}\n\t}\n\n\toverride onKeyDown: TLEventHandlers['onKeyDown'] = (info) => {\n\t\tif (info.key === 'Shift') {\n\t\t\tswitch (this.segmentMode) {\n\t\t\t\tcase 'free': {\n\t\t\t\t\t// We've just entered straight mode, go to straight mode\n\t\t\t\t\tthis.segmentMode = 'starting_straight'\n\t\t\t\t\tthis.pagePointWhereNextSegmentChanged = this.editor.inputs.currentPagePoint.clone()\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'starting_free': {\n\t\t\t\t\tthis.segmentMode = 'starting_straight'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.updateShapes()\n\t}\n\n\toverride onKeyUp: TLEventHandlers['onKeyUp'] = (info) => {\n\t\tif (info.key === 'Shift') {\n\t\t\tthis.editor.snaps.clear()\n\n\t\t\tswitch (this.segmentMode) {\n\t\t\t\tcase 'straight': {\n\t\t\t\t\t// We've just exited straight mode, go back to free mode\n\t\t\t\t\tthis.segmentMode = 'starting_free'\n\t\t\t\t\tthis.pagePointWhereNextSegmentChanged = this.editor.inputs.currentPagePoint.clone()\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'starting_straight': {\n\t\t\t\t\tthis.pagePointWhereNextSegmentChanged = null\n\t\t\t\t\tthis.segmentMode = 'free'\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.updateShapes()\n\t}\n\n\toverride onExit? = () => {\n\t\tthis.editor.snaps.clear()\n\t\tthis.pagePointWhereCurrentSegmentChanged = this.editor.inputs.currentPagePoint.clone()\n\t}\n\n\tcanClose() {\n\t\treturn this.shapeType !== 'highlight'\n\t}\n\n\tgetIsClosed(segments: TLDrawShapeSegment[], size: TLDefaultSizeStyle) {\n\t\tif (!this.canClose()) return false\n\n\t\tconst strokeWidth = STROKE_SIZES[size]\n\t\tconst firstPoint = segments[0].points[0]\n\t\tconst lastSegment = segments[segments.length - 1]\n\t\tconst lastPoint = lastSegment.points[lastSegment.points.length - 1]\n\n\t\treturn (\n\t\t\tfirstPoint !== lastPoint &&\n\t\t\tthis.currentLineLength > strokeWidth * 4 &&\n\t\t\tVec2d.Dist(firstPoint, lastPoint) < strokeWidth * 2\n\t\t)\n\t}\n\n\tprivate startShape() {\n\t\tconst {\n\t\t\tinputs: { originPagePoint, isPen },\n\t\t} = this.editor\n\n\t\tthis.markId = 'draw start ' + uniqueId()\n\t\tthis.editor.mark(this.markId)\n\n\t\tthis.isPen = isPen\n\n\t\tconst pressure = this.isPen ? this.info.point.z! * 1.25 : 0.5\n\n\t\tthis.segmentMode = this.editor.inputs.shiftKey ? 'straight' : 'free'\n\n\t\tthis.didJustShiftClickToExtendPreviousShapeLine = false\n\n\t\tthis.lastRecordedPoint = originPagePoint.clone()\n\n\t\tif (this.initialShape) {\n\t\t\tconst shape = this.editor.getShape<DrawableShape>(this.initialShape.id)\n\n\t\t\tif (shape && this.segmentMode === 'straight') {\n\t\t\t\t// Connect dots\n\n\t\t\t\tthis.didJustShiftClickToExtendPreviousShapeLine = true\n\n\t\t\t\tconst prevSegment = last(shape.props.segments)\n\t\t\t\tif (!prevSegment) throw Error('Expected a previous segment!')\n\t\t\t\tconst prevPoint = last(prevSegment.points)\n\t\t\t\tif (!prevPoint) throw Error('Expected a previous point!')\n\n\t\t\t\tconst { x, y } = this.editor.getPointInShapeSpace(shape, originPagePoint).toFixed()\n\n\t\t\t\tconst pressure = this.isPen ? this.info.point.z! * 1.25 : 0.5\n\n\t\t\t\tconst newSegment: TLDrawShapeSegment = {\n\t\t\t\t\ttype: this.segmentMode,\n\t\t\t\t\tpoints: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tx: prevPoint.x,\n\t\t\t\t\t\t\ty: prevPoint.y,\n\t\t\t\t\t\t\tz: +pressure.toFixed(2),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\ty,\n\t\t\t\t\t\t\tz: +pressure.toFixed(2),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\n\t\t\t\t// Convert prevPoint to page space\n\t\t\t\tconst prevPointPageSpace = Matrix2d.applyToPoint(\n\t\t\t\t\tthis.editor.getShapePageTransform(shape.id)!,\n\t\t\t\t\tprevPoint\n\t\t\t\t)\n\t\t\t\tthis.pagePointWhereCurrentSegmentChanged = prevPointPageSpace\n\t\t\t\tthis.pagePointWhereNextSegmentChanged = null\n\t\t\t\tconst segments = [...shape.props.segments, newSegment]\n\n\t\t\t\tthis.currentLineLength = this.getLineLength(segments)\n\n\t\t\t\tconst shapePartial: TLShapePartial<DrawableShape> = {\n\t\t\t\t\tid: shape.id,\n\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tsegments,\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tif (this.canClose()) {\n\t\t\t\t\t;(shapePartial as TLShapePartial<TLDrawShape>).props!.isClosed = this.getIsClosed(\n\t\t\t\t\t\tsegments,\n\t\t\t\t\t\tshape.props.size\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tthis.editor.updateShapes<TLDrawShape | TLHighlightShape>([shapePartial])\n\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\t// Create a new shape\n\n\t\tthis.pagePointWhereCurrentSegmentChanged = originPagePoint.clone()\n\t\tconst id = createShapeId()\n\n\t\tthis.editor.createShapes<DrawableShape>([\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\ttype: this.shapeType,\n\t\t\t\tx: originPagePoint.x,\n\t\t\t\ty: originPagePoint.y,\n\t\t\t\tprops: {\n\t\t\t\t\tisPen: this.isPen,\n\t\t\t\t\tsegments: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: this.segmentMode,\n\t\t\t\t\t\t\tpoints: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\t\t\tz: +pressure.toFixed(2),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t])\n\t\tthis.currentLineLength = 0\n\t\tthis.initialShape = this.editor.getShape<DrawableShape>(id)\n\t}\n\n\tprivate updateShapes() {\n\t\tconst { inputs } = this.editor\n\t\tconst { initialShape } = this\n\n\t\tif (!initialShape) return\n\n\t\tconst {\n\t\t\tid,\n\t\t\tprops: { size },\n\t\t} = initialShape\n\n\t\tconst shape = this.editor.getShape<DrawableShape>(id)!\n\n\t\tif (!shape) return\n\n\t\tconst { segments } = shape.props\n\n\t\tconst { x, y, z } = this.editor.getPointInShapeSpace(shape, inputs.currentPagePoint).toFixed()\n\n\t\tconst newPoint = { x, y, z: this.isPen ? +(z! * 1.25).toFixed(2) : 0.5 }\n\n\t\tswitch (this.segmentMode) {\n\t\t\tcase 'starting_straight': {\n\t\t\t\tconst { pagePointWhereNextSegmentChanged } = this\n\n\t\t\t\tif (pagePointWhereNextSegmentChanged === null) {\n\t\t\t\t\tthrow Error('We should have a point where the segment changed')\n\t\t\t\t}\n\n\t\t\t\tconst hasMovedFarEnough =\n\t\t\t\t\tVec2d.Dist(pagePointWhereNextSegmentChanged, inputs.currentPagePoint) > DRAG_DISTANCE\n\n\t\t\t\t// Find the distance from where the pointer was when shift was released and\n\t\t\t\t// where it is now; if it's far enough away, then update the page point where\n\t\t\t\t// the current segment changed (to match the pagepoint where next segment changed)\n\t\t\t\t// and set the pagepoint where next segment changed to null.\n\t\t\t\tif (hasMovedFarEnough) {\n\t\t\t\t\tthis.pagePointWhereCurrentSegmentChanged = this.pagePointWhereNextSegmentChanged!.clone()\n\t\t\t\t\tthis.pagePointWhereNextSegmentChanged = null\n\n\t\t\t\t\t// Set the new mode\n\t\t\t\t\tthis.segmentMode = 'straight'\n\n\t\t\t\t\tconst prevSegment = last(segments)\n\t\t\t\t\tif (!prevSegment) throw Error('Expected a previous segment!')\n\n\t\t\t\t\tconst prevLastPoint = last(prevSegment.points)\n\t\t\t\t\tif (!prevLastPoint) throw Error('Expected a previous last point!')\n\n\t\t\t\t\tlet newSegment: TLDrawShapeSegment\n\n\t\t\t\t\tconst newLastPoint = this.editor\n\t\t\t\t\t\t.getPointInShapeSpace(shape, this.pagePointWhereCurrentSegmentChanged)\n\t\t\t\t\t\t.toFixed()\n\t\t\t\t\t\t.toJson()\n\n\t\t\t\t\tif (prevSegment.type === 'straight') {\n\t\t\t\t\t\tthis.currentLineLength += Vec2d.Dist(prevLastPoint, newLastPoint)\n\n\t\t\t\t\t\tnewSegment = {\n\t\t\t\t\t\t\ttype: 'straight',\n\t\t\t\t\t\t\tpoints: [{ ...prevLastPoint }, newLastPoint],\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst transform = this.editor.getShapePageTransform(shape)!\n\n\t\t\t\t\t\tthis.pagePointWhereCurrentSegmentChanged = Matrix2d.applyToPoint(\n\t\t\t\t\t\t\ttransform,\n\t\t\t\t\t\t\tprevLastPoint\n\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewSegment = {\n\t\t\t\t\t\t\ttype: 'straight',\n\t\t\t\t\t\t\tpoints: [newLastPoint, newPoint],\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst shapePartial: TLShapePartial<DrawableShape> = {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tsegments: [...segments, newSegment],\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.canClose()) {\n\t\t\t\t\t\t;(shapePartial as TLShapePartial<TLDrawShape>).props!.isClosed = this.getIsClosed(\n\t\t\t\t\t\t\tsegments,\n\t\t\t\t\t\t\tsize\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.editor.updateShapes<TLDrawShape | TLHighlightShape>([shapePartial], {\n\t\t\t\t\t\tsquashing: true,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'starting_free': {\n\t\t\t\tconst { pagePointWhereNextSegmentChanged } = this\n\n\t\t\t\tif (pagePointWhereNextSegmentChanged === null) {\n\t\t\t\t\tthrow Error('We should have a point where the segment changed')\n\t\t\t\t}\n\n\t\t\t\tconst hasMovedFarEnough =\n\t\t\t\t\tVec2d.Dist(pagePointWhereNextSegmentChanged, inputs.currentPagePoint) > DRAG_DISTANCE\n\n\t\t\t\t// Find the distance from where the pointer was when shift was released and\n\t\t\t\t// where it is now; if it's far enough away, then update the page point where\n\t\t\t\t// the current segment changed (to match the pagepoint where next segment changed)\n\t\t\t\t// and set the pagepoint where next segment changed to null.\n\t\t\t\tif (hasMovedFarEnough) {\n\t\t\t\t\tthis.pagePointWhereCurrentSegmentChanged = this.pagePointWhereNextSegmentChanged!.clone()\n\t\t\t\t\tthis.pagePointWhereNextSegmentChanged = null\n\n\t\t\t\t\t// Set the new mode\n\t\t\t\t\tthis.segmentMode = 'free'\n\n\t\t\t\t\tconst newSegments = segments.slice()\n\t\t\t\t\tconst prevStraightSegment = newSegments[newSegments.length - 1]\n\t\t\t\t\tconst prevPoint = last(prevStraightSegment.points)\n\n\t\t\t\t\tif (!prevPoint) {\n\t\t\t\t\t\tthrow Error('No previous point!')\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create the new free segment and interpolate the points between where the last line\n\t\t\t\t\t// ended and where the pointer is now\n\t\t\t\t\tconst newFreeSegment: TLDrawShapeSegment = {\n\t\t\t\t\t\ttype: 'free',\n\t\t\t\t\t\tpoints: [\n\t\t\t\t\t\t\t...Vec2d.PointsBetween(prevPoint, newPoint, 6).map((p) => p.toFixed().toJson()),\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\n\t\t\t\t\tconst finalSegments = [...newSegments, newFreeSegment]\n\t\t\t\t\tthis.currentLineLength = this.getLineLength(finalSegments)\n\n\t\t\t\t\tconst shapePartial: TLShapePartial<DrawableShape> = {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tsegments: finalSegments,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.canClose()) {\n\t\t\t\t\t\t;(shapePartial as TLShapePartial<TLDrawShape>).props!.isClosed = this.getIsClosed(\n\t\t\t\t\t\t\tfinalSegments,\n\t\t\t\t\t\t\tsize\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.editor.updateShapes([shapePartial], { squashing: true })\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'straight': {\n\t\t\t\tconst newSegments = segments.slice()\n\t\t\t\tconst newSegment = newSegments[newSegments.length - 1]\n\n\t\t\t\tconst { pagePointWhereCurrentSegmentChanged } = this\n\t\t\t\tconst { currentPagePoint, ctrlKey } = this.editor.inputs\n\n\t\t\t\tif (!pagePointWhereCurrentSegmentChanged)\n\t\t\t\t\tthrow Error('We should have a point where the segment changed')\n\n\t\t\t\tlet pagePoint: Vec2dModel\n\t\t\t\tlet shouldSnapToAngle = false\n\n\t\t\t\tif (this.didJustShiftClickToExtendPreviousShapeLine) {\n\t\t\t\t\tif (this.editor.inputs.isDragging) {\n\t\t\t\t\t\t// If we've just shift clicked to extend a line, only snap once we've started dragging\n\t\t\t\t\t\tshouldSnapToAngle = !ctrlKey\n\t\t\t\t\t\tthis.didJustShiftClickToExtendPreviousShapeLine = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// noop\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If we're not shift clicking to extend a line, but we're holding shift, then we should snap\n\t\t\t\t\tshouldSnapToAngle = !ctrlKey // don't snap angle while snapping line\n\t\t\t\t}\n\n\t\t\t\tlet newPoint = this.editor.getPointInShapeSpace(shape, currentPagePoint).toFixed().toJson()\n\t\t\t\tlet didSnap = false\n\t\t\t\tlet snapSegment: TLDrawShapeSegment | undefined = undefined\n\n\t\t\t\tconst shouldSnap = this.editor.user.getIsSnapMode() ? !ctrlKey : ctrlKey\n\n\t\t\t\tif (shouldSnap) {\n\t\t\t\t\tif (newSegments.length > 2) {\n\t\t\t\t\t\tlet nearestPoint: Vec2dModel | undefined = undefined\n\t\t\t\t\t\tlet minDistance = 8 / this.editor.getZoomLevel()\n\n\t\t\t\t\t\t// Don't try to snap to the last two segments\n\t\t\t\t\t\tfor (let i = 0, n = segments.length - 2; i < n; i++) {\n\t\t\t\t\t\t\tconst segment = segments[i]\n\t\t\t\t\t\t\tif (!segment) break\n\t\t\t\t\t\t\tif (segment.type === 'free') continue\n\n\t\t\t\t\t\t\tconst first = segment.points[0]\n\t\t\t\t\t\t\tconst lastPoint = last(segment.points)\n\t\t\t\t\t\t\tif (!(first && lastPoint)) continue\n\n\t\t\t\t\t\t\t// Snap to the nearest point on the segment, if it's closer than the previous snapped point\n\t\t\t\t\t\t\tconst nearestPointOnSegment = Vec2d.NearestPointOnLineSegment(\n\t\t\t\t\t\t\t\tfirst,\n\t\t\t\t\t\t\t\tlastPoint,\n\t\t\t\t\t\t\t\tnewPoint\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst distance = Vec2d.Dist(nearestPointOnSegment, newPoint)\n\n\t\t\t\t\t\t\tif (distance < minDistance) {\n\t\t\t\t\t\t\t\tnearestPoint = nearestPointOnSegment.toFixed().toJson()\n\t\t\t\t\t\t\t\tminDistance = distance\n\t\t\t\t\t\t\t\tsnapSegment = segment\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (nearestPoint) {\n\t\t\t\t\t\t\tdidSnap = true\n\t\t\t\t\t\t\tnewPoint = nearestPoint\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (didSnap && snapSegment) {\n\t\t\t\t\tconst transform = this.editor.getShapePageTransform(shape)!\n\t\t\t\t\tconst first = snapSegment.points[0]\n\t\t\t\t\tconst lastPoint = last(snapSegment.points)\n\t\t\t\t\tif (!lastPoint) throw Error('Expected a last point!')\n\n\t\t\t\t\tconst A = Matrix2d.applyToPoint(transform, first)\n\n\t\t\t\t\tconst B = Matrix2d.applyToPoint(transform, lastPoint)\n\n\t\t\t\t\tconst snappedPoint = Matrix2d.applyToPoint(transform, newPoint)\n\n\t\t\t\t\tthis.editor.snaps.setLines([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: uniqueId(),\n\t\t\t\t\t\t\ttype: 'points',\n\t\t\t\t\t\t\tpoints: [A, snappedPoint, B],\n\t\t\t\t\t\t},\n\t\t\t\t\t])\n\t\t\t\t} else {\n\t\t\t\t\tthis.editor.snaps.clear()\n\n\t\t\t\t\tif (shouldSnapToAngle) {\n\t\t\t\t\t\t// Snap line angle to nearest 15 degrees\n\t\t\t\t\t\tconst currentAngle = Vec2d.Angle(pagePointWhereCurrentSegmentChanged, currentPagePoint)\n\t\t\t\t\t\tconst snappedAngle = snapAngle(currentAngle, 24)\n\t\t\t\t\t\tconst angleDiff = snappedAngle - currentAngle\n\n\t\t\t\t\t\tpagePoint = Vec2d.RotWith(\n\t\t\t\t\t\t\tcurrentPagePoint,\n\t\t\t\t\t\t\tpagePointWhereCurrentSegmentChanged,\n\t\t\t\t\t\t\tangleDiff\n\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpagePoint = currentPagePoint\n\t\t\t\t\t}\n\n\t\t\t\t\tnewPoint = this.editor.getPointInShapeSpace(shape, pagePoint).toFixed().toJson()\n\t\t\t\t}\n\n\t\t\t\t// If the previous segment is a one point free shape and is the first segment of the line,\n\t\t\t\t// then the user just did a click-and-immediately-press-shift to create a new straight line\n\t\t\t\t// without continuing the previous line. In this case, we want to remove the previous segment.\n\n\t\t\t\tthis.currentLineLength += Vec2d.Dist(newSegment.points[0], newPoint)\n\n\t\t\t\tnewSegments[newSegments.length - 1] = {\n\t\t\t\t\t...newSegment,\n\t\t\t\t\ttype: 'straight',\n\t\t\t\t\tpoints: [newSegment.points[0], newPoint],\n\t\t\t\t}\n\n\t\t\t\tconst shapePartial: TLShapePartial<DrawableShape> = {\n\t\t\t\t\tid,\n\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tsegments: newSegments,\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tif (this.canClose()) {\n\t\t\t\t\t;(shapePartial as TLShapePartial<TLDrawShape>).props!.isClosed = this.getIsClosed(\n\t\t\t\t\t\tsegments,\n\t\t\t\t\t\tsize\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tthis.editor.updateShapes([shapePartial], { squashing: true })\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'free': {\n\t\t\t\tconst newSegments = segments.slice()\n\t\t\t\tconst newSegment = newSegments[newSegments.length - 1]\n\t\t\t\tconst newPoints = [...newSegment.points]\n\n\t\t\t\tif (newPoints.length && this.mergeNextPoint) {\n\t\t\t\t\tconst { z } = newPoints[newPoints.length - 1]\n\t\t\t\t\tnewPoints[newPoints.length - 1] = {\n\t\t\t\t\t\tx: newPoint.x,\n\t\t\t\t\t\ty: newPoint.y,\n\t\t\t\t\t\tz: z ? Math.max(z, newPoint.z) : newPoint.z,\n\t\t\t\t\t}\n\t\t\t\t\t// Note: we could recompute the line length here, but it's not really necessary\n\t\t\t\t\t// this.currentLineLength = this.getLineLength(newSegments)\n\t\t\t\t} else {\n\t\t\t\t\tthis.currentLineLength += Vec2d.Dist(newPoints[newPoints.length - 1], newPoint)\n\t\t\t\t\tnewPoints.push(newPoint)\n\t\t\t\t}\n\n\t\t\t\tnewSegments[newSegments.length - 1] = {\n\t\t\t\t\t...newSegment,\n\t\t\t\t\tpoints: newPoints,\n\t\t\t\t}\n\n\t\t\t\tthis.currentLineLength = this.getLineLength(newSegments)\n\n\t\t\t\tconst shapePartial: TLShapePartial<DrawableShape> = {\n\t\t\t\t\tid,\n\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tsegments: newSegments,\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\tif (this.canClose()) {\n\t\t\t\t\t;(shapePartial as TLShapePartial<TLDrawShape>).props!.isClosed = this.getIsClosed(\n\t\t\t\t\t\tnewSegments,\n\t\t\t\t\t\tsize\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tthis.editor.updateShapes([shapePartial], { squashing: true })\n\n\t\t\t\t// Set a maximum length for the lines array; after 200 points, complete the line.\n\t\t\t\tif (newPoints.length > 500) {\n\t\t\t\t\tthis.editor.updateShapes([{ id, type: this.shapeType, props: { isComplete: true } }])\n\n\t\t\t\t\tconst { currentPagePoint } = this.editor.inputs\n\n\t\t\t\t\tconst newShapeId = createShapeId()\n\n\t\t\t\t\tthis.editor.createShapes<DrawableShape>([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: newShapeId,\n\t\t\t\t\t\t\ttype: this.shapeType,\n\t\t\t\t\t\t\tx: toFixed(currentPagePoint.x),\n\t\t\t\t\t\t\ty: toFixed(currentPagePoint.y),\n\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\tisPen: this.isPen,\n\t\t\t\t\t\t\t\tsegments: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'free',\n\t\t\t\t\t\t\t\t\t\tpoints: [{ x: 0, y: 0, z: this.isPen ? +(z! * 1.25).toFixed() : 0.5 }],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t])\n\n\t\t\t\t\tthis.initialShape = structuredClone(this.editor.getShape<DrawableShape>(newShapeId)!)\n\t\t\t\t\tthis.mergeNextPoint = false\n\t\t\t\t\tthis.lastRecordedPoint = this.editor.inputs.currentPagePoint.clone()\n\t\t\t\t\tthis.currentLineLength = 0\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getLineLength(segments: TLDrawShapeSegment[]) {\n\t\tlet length = 0\n\n\t\tfor (const segment of segments) {\n\t\t\tfor (let i = 0; i < segment.points.length - 1; i++) {\n\t\t\t\tconst A = segment.points[i]\n\t\t\t\tconst B = segment.points[i + 1]\n\t\t\t\tlength += Vec2d.Sub(B, A).len2()\n\t\t\t}\n\t\t}\n\n\t\treturn Math.sqrt(length)\n\t}\n\n\toverride onPointerUp: TLEventHandlers['onPointerUp'] = () => {\n\t\tthis.complete()\n\t}\n\n\toverride onCancel: TLEventHandlers['onCancel'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onComplete: TLEventHandlers['onComplete'] = () => {\n\t\tthis.complete()\n\t}\n\n\toverride onInterrupt: TLEventHandlers['onInterrupt'] = () => {\n\t\tif (this.editor.inputs.isDragging) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.markId) {\n\t\t\tthis.editor.bailToMark(this.markId)\n\t\t}\n\t\tthis.cancel()\n\t}\n\n\tcomplete() {\n\t\t// If we weren't focused when the drawing shape started, and if\n\t\t// we haven't dragged far enough to start dragging, then don't do\n\t\t// anything here. Most likely we clicked back into the canvas from\n\t\t// a menu or other UI element.\n\t\tif (!this.canDraw) {\n\t\t\tthis.cancel()\n\t\t\treturn\n\t\t}\n\n\t\tconst { initialShape } = this\n\t\tif (!initialShape) return\n\t\tthis.editor.updateShapes([\n\t\t\t{ id: initialShape.id, type: initialShape.type, props: { isComplete: true } },\n\t\t])\n\n\t\tthis.parent.transition('idle')\n\t}\n\n\tcancel() {\n\t\tthis.parent.transition('idle', this.info)\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["pressure", "newPoint", "z"]
7
7
  }
@@ -91,8 +91,7 @@ class EmbedShapeUtil extends import_editor.BaseBoxShapeUtil {
91
91
  const isInteractive = isEditing || isHoveringWhileEditingSameShape;
92
92
  if (embedInfo?.definition.type === "github_gist") {
93
93
  const idFromGistUrl = embedInfo.url.split("/").pop();
94
- if (!idFromGistUrl)
95
- throw Error("No gist id!");
94
+ if (!idFromGistUrl) throw Error("No gist id!");
96
95
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_editor.HTMLContainer, { className: "tl-embed-container", id: shape.id, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
96
  Gist,
98
97
  {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/shapes/embed/EmbedShapeUtil.tsx"],
4
4
  "sourcesContent": ["/* eslint-disable react-hooks/rules-of-hooks */\n\nimport {\n\tBaseBoxShapeUtil,\n\tHTMLContainer,\n\tTLEmbedShape,\n\tTLEmbedShapePermissions,\n\tTLOnResizeHandler,\n\tTLShapeUtilFlag,\n\tembedShapeMigrations,\n\tembedShapePermissionDefaults,\n\tembedShapeProps,\n\ttoDomPrecision,\n\tuseIsEditing,\n\tuseValue,\n} from '@bigbluebutton/editor'\nimport { useMemo } from 'react'\nimport { getEmbedInfo, getEmbedInfoUnsafely } from '../../utils/embeds/embeds'\nimport { resizeBox } from '../shared/resizeBox'\nimport { getRotatedBoxShadow } from '../shared/rotated-box-shadow'\n\nconst getSandboxPermissions = (permissions: TLEmbedShapePermissions) => {\n\treturn Object.entries(permissions)\n\t\t.filter(([_perm, isEnabled]) => isEnabled)\n\t\t.map(([perm]) => perm)\n\t\t.join(' ')\n}\n\n/** @public */\nexport class EmbedShapeUtil extends BaseBoxShapeUtil<TLEmbedShape> {\n\tstatic override type = 'embed' as const\n\tstatic override props = embedShapeProps\n\tstatic override migrations = embedShapeMigrations\n\n\toverride hideSelectionBoundsFg: TLShapeUtilFlag<TLEmbedShape> = (shape) => !this.canResize(shape)\n\toverride canEdit: TLShapeUtilFlag<TLEmbedShape> = () => true\n\toverride canUnmount: TLShapeUtilFlag<TLEmbedShape> = (shape: TLEmbedShape) => {\n\t\treturn !!getEmbedInfo(shape.props.url)?.definition?.canUnmount\n\t}\n\toverride canResize = (shape: TLEmbedShape) => {\n\t\treturn !!getEmbedInfo(shape.props.url)?.definition?.doesResize\n\t}\n\toverride canEditInReadOnly = () => true\n\n\toverride getDefaultProps(): TLEmbedShape['props'] {\n\t\treturn {\n\t\t\tw: 300,\n\t\t\th: 300,\n\t\t\turl: '',\n\t\t}\n\t}\n\n\toverride isAspectRatioLocked: TLShapeUtilFlag<TLEmbedShape> = (shape) => {\n\t\tconst embedInfo = getEmbedInfo(shape.props.url)\n\t\treturn embedInfo?.definition.isAspectRatioLocked ?? false\n\t}\n\n\toverride onResize: TLOnResizeHandler<TLEmbedShape> = (shape, info) => {\n\t\tconst isAspectRatioLocked = this.isAspectRatioLocked(shape)\n\t\tconst embedInfo = getEmbedInfo(shape.props.url)\n\t\tlet minWidth = embedInfo?.definition.minWidth ?? 200\n\t\tlet minHeight = embedInfo?.definition.minHeight ?? 200\n\t\tif (isAspectRatioLocked) {\n\t\t\t// Enforce aspect ratio\n\t\t\t// Neither the width or height can be less than 200\n\t\t\tconst aspectRatio = shape.props.w / shape.props.h\n\t\t\tif (aspectRatio > 1) {\n\t\t\t\t// Landscape\n\t\t\t\tminWidth *= aspectRatio\n\t\t\t} else {\n\t\t\t\t// Portrait\n\t\t\t\tminHeight /= aspectRatio\n\t\t\t}\n\t\t}\n\n\t\treturn resizeBox(shape, info, { minWidth, minHeight })\n\t}\n\n\toverride component(shape: TLEmbedShape) {\n\t\tconst { w, h, url } = shape.props\n\t\tconst isEditing = useIsEditing(shape.id)\n\t\tconst embedInfo = useMemo(() => getEmbedInfoUnsafely(url), [url])\n\n\t\tconst isHoveringWhileEditingSameShape = useValue(\n\t\t\t'is hovering',\n\t\t\t() => {\n\t\t\t\tconst { editingShapeId, hoveredShapeId } = this.editor.getCurrentPageState()\n\n\t\t\t\tif (editingShapeId && hoveredShapeId !== editingShapeId) {\n\t\t\t\t\tconst editingShape = this.editor.getShape(editingShapeId)\n\t\t\t\t\tif (editingShape && this.editor.isShapeOfType<TLEmbedShape>(editingShape, 'embed')) {\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t},\n\t\t\t[]\n\t\t)\n\n\t\tconst pageRotation = this.editor.getShapePageTransform(shape)!.rotation()\n\n\t\tconst isInteractive = isEditing || isHoveringWhileEditingSameShape\n\n\t\tif (embedInfo?.definition.type === 'github_gist') {\n\t\t\tconst idFromGistUrl = embedInfo.url.split('/').pop()\n\t\t\tif (!idFromGistUrl) throw Error('No gist id!')\n\n\t\t\treturn (\n\t\t\t\t<HTMLContainer className=\"tl-embed-container\" id={shape.id}>\n\t\t\t\t\t<Gist\n\t\t\t\t\t\tid={idFromGistUrl}\n\t\t\t\t\t\twidth={toDomPrecision(w)!}\n\t\t\t\t\t\theight={toDomPrecision(h)!}\n\t\t\t\t\t\tisInteractive={isInteractive}\n\t\t\t\t\t\tpageRotation={pageRotation}\n\t\t\t\t\t/>\n\t\t\t\t</HTMLContainer>\n\t\t\t)\n\t\t}\n\n\t\tconst sandbox = getSandboxPermissions({\n\t\t\t...embedShapePermissionDefaults,\n\t\t\t...(embedInfo?.definition.overridePermissions ?? {}),\n\t\t})\n\n\t\treturn (\n\t\t\t<HTMLContainer className=\"tl-embed-container\" id={shape.id}>\n\t\t\t\t{embedInfo?.definition ? (\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tclassName=\"tl-embed\"\n\t\t\t\t\t\tsandbox={sandbox}\n\t\t\t\t\t\tsrc={embedInfo.embedUrl}\n\t\t\t\t\t\twidth={toDomPrecision(w)}\n\t\t\t\t\t\theight={toDomPrecision(h)}\n\t\t\t\t\t\tdraggable={false}\n\t\t\t\t\t\tframeBorder=\"0\"\n\t\t\t\t\t\treferrerPolicy=\"no-referrer-when-downgrade\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tborder: 0,\n\t\t\t\t\t\t\tpointerEvents: isInteractive ? 'auto' : 'none',\n\t\t\t\t\t\t\t// Fix for safari <https://stackoverflow.com/a/49150908>\n\t\t\t\t\t\t\tzIndex: isInteractive ? '' : '-1',\n\t\t\t\t\t\t\tboxShadow: getRotatedBoxShadow(pageRotation),\n\t\t\t\t\t\t\tborderRadius: embedInfo?.definition.overrideOutlineRadius ?? 8,\n\t\t\t\t\t\t\tbackground: embedInfo?.definition.backgroundColor,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t</HTMLContainer>\n\t\t)\n\t}\n\n\toverride indicator(shape: TLEmbedShape) {\n\t\tconst embedInfo = useMemo(() => getEmbedInfo(shape.props.url), [shape.props.url])\n\t\treturn (\n\t\t\t<rect\n\t\t\t\twidth={toDomPrecision(shape.props.w)}\n\t\t\t\theight={toDomPrecision(shape.props.h)}\n\t\t\t\trx={embedInfo?.definition.overrideOutlineRadius ?? 8}\n\t\t\t\try={embedInfo?.definition.overrideOutlineRadius ?? 8}\n\t\t\t/>\n\t\t)\n\t}\n}\n\nfunction Gist({\n\tid,\n\tfile,\n\tisInteractive,\n\twidth,\n\theight,\n\tstyle,\n\tpageRotation,\n}: {\n\tid: string\n\tfile?: string\n\tisInteractive: boolean\n\twidth: number\n\theight: number\n\tpageRotation: number\n\tstyle?: React.CSSProperties\n}) {\n\treturn (\n\t\t<iframe\n\t\t\tclassName=\"tl-embed\"\n\t\t\tdraggable={false}\n\t\t\twidth={toDomPrecision(width)}\n\t\t\theight={toDomPrecision(height)}\n\t\t\tframeBorder=\"0\"\n\t\t\tscrolling=\"no\"\n\t\t\tseamless\n\t\t\treferrerPolicy=\"no-referrer-when-downgrade\"\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tpointerEvents: isInteractive ? 'all' : 'none',\n\t\t\t\t// Fix for safari <https://stackoverflow.com/a/49150908>\n\t\t\t\tzIndex: isInteractive ? '' : '-1',\n\t\t\t\tboxShadow: getRotatedBoxShadow(pageRotation),\n\t\t\t}}\n\t\t\tsrcDoc={`\n\t\t\t<html>\n\t\t\t\t<head>\n\t\t\t\t\t<base target=\"_blank\">\n\t\t\t\t</head>\n\t\t\t\t<body>\n\t\t\t\t\t<script src=${`https://gist.github.com/${id}.js${file ? `?file=${file}` : ''}`}></script>\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t* { margin: 0px; }\n\t\t\t\t\t\ttable { height: 100%; background-color: red; }\n\t\t\t\t\t\t.gist { background-color: none; height: 100%; }\n\t\t\t\t\t\t.gist .gist-file { height: calc(100vh - 2px); padding: 0px; display: grid; grid-template-rows: 1fr auto; }\n\t\t\t\t\t</style>\n\t\t\t\t</body>\n\t\t\t</html>`}\n\t\t/>\n\t)\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -27,19 +27,15 @@ class FrameShapeTool extends import_editor.BaseBoxShapeTool {
27
27
  static initial = "idle";
28
28
  shapeType = "frame";
29
29
  onCreate = (shape) => {
30
- if (!shape)
31
- return;
30
+ if (!shape) return;
32
31
  const bounds = this.editor.getShapePageBounds(shape);
33
32
  const shapesToAddToFrame = [];
34
33
  const ancestorIds = this.editor.getShapeAncestors(shape).map((shape2) => shape2.id);
35
34
  this.editor.getCurrentPageShapes().map((pageShape) => {
36
- if (pageShape.id === shape.id)
37
- return;
38
- if (pageShape.isLocked)
39
- return;
35
+ if (pageShape.id === shape.id) return;
36
+ if (pageShape.isLocked) return;
40
37
  const pageShapeBounds = this.editor.getShapePageBounds(pageShape);
41
- if (!pageShapeBounds)
42
- return;
38
+ if (!pageShapeBounds) return;
43
39
  if (bounds.contains(pageShapeBounds)) {
44
40
  if (canEnclose(pageShape, ancestorIds, shape)) {
45
41
  shapesToAddToFrame.push(pageShape.id);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/shapes/frame/FrameShapeTool.ts"],
4
4
  "sourcesContent": ["import { BaseBoxShapeTool, TLShape, TLShapeId } from '@bigbluebutton/editor'\n\n/** @public */\nexport class FrameShapeTool extends BaseBoxShapeTool {\n\tstatic override id = 'frame'\n\tstatic override initial = 'idle'\n\toverride shapeType = 'frame'\n\n\toverride onCreate = (shape: TLShape | null): void => {\n\t\tif (!shape) return\n\n\t\tconst bounds = this.editor.getShapePageBounds(shape)!\n\t\tconst shapesToAddToFrame: TLShapeId[] = []\n\t\tconst ancestorIds = this.editor.getShapeAncestors(shape).map((shape) => shape.id)\n\n\t\tthis.editor.getCurrentPageShapes().map((pageShape) => {\n\t\t\t// We don't want to frame the frame itself\n\t\t\tif (pageShape.id === shape.id) return\n\t\t\tif (pageShape.isLocked) return\n\n\t\t\tconst pageShapeBounds = this.editor.getShapePageBounds(pageShape)\n\t\t\tif (!pageShapeBounds) return\n\n\t\t\t// Frame shape encloses page shape\n\t\t\tif (bounds.contains(pageShapeBounds)) {\n\t\t\t\tif (canEnclose(pageShape, ancestorIds, shape)) {\n\t\t\t\t\tshapesToAddToFrame.push(pageShape.id)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tthis.editor.reparentShapes(shapesToAddToFrame, shape.id)\n\n\t\tif (this.editor.getInstanceState().isToolLocked) {\n\t\t\tthis.editor.setCurrentTool('frame')\n\t\t} else {\n\t\t\tthis.editor.setCurrentTool('select.idle')\n\t\t}\n\t}\n}\n\n/** @internal */\nfunction canEnclose(shape: TLShape, ancestorIds: TLShapeId[], frame: TLShape): boolean {\n\t// We don't want to pull in shapes that are ancestors of the frame (can create a cycle)\n\tif (ancestorIds.includes(shape.id)) {\n\t\treturn false\n\t}\n\t// We only want to pull in shapes that are siblings of the frame\n\tif (shape.parentId === frame.parentId) {\n\t\treturn true\n\t}\n\treturn false\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqD;AAG9C,MAAM,uBAAuB,+BAAiB;AAAA,EACpD,OAAgB,KAAK;AAAA,EACrB,OAAgB,UAAU;AAAA,EACjB,YAAY;AAAA,EAEZ,WAAW,CAAC,UAAgC;AACpD,QAAI,CAAC;AAAO;AAEZ,UAAM,SAAS,KAAK,OAAO,mBAAmB,KAAK;AACnD,UAAM,qBAAkC,CAAC;AACzC,UAAM,cAAc,KAAK,OAAO,kBAAkB,KAAK,EAAE,IAAI,CAACA,WAAUA,OAAM,EAAE;AAEhF,SAAK,OAAO,qBAAqB,EAAE,IAAI,CAAC,cAAc;AAErD,UAAI,UAAU,OAAO,MAAM;AAAI;AAC/B,UAAI,UAAU;AAAU;AAExB,YAAM,kBAAkB,KAAK,OAAO,mBAAmB,SAAS;AAChE,UAAI,CAAC;AAAiB;AAGtB,UAAI,OAAO,SAAS,eAAe,GAAG;AACrC,YAAI,WAAW,WAAW,aAAa,KAAK,GAAG;AAC9C,6BAAmB,KAAK,UAAU,EAAE;AAAA,QACrC;AAAA,MACD;AAAA,IACD,CAAC;AAED,SAAK,OAAO,eAAe,oBAAoB,MAAM,EAAE;AAEvD,QAAI,KAAK,OAAO,iBAAiB,EAAE,cAAc;AAChD,WAAK,OAAO,eAAe,OAAO;AAAA,IACnC,OAAO;AACN,WAAK,OAAO,eAAe,aAAa;AAAA,IACzC;AAAA,EACD;AACD;AAGA,SAAS,WAAW,OAAgB,aAA0B,OAAyB;AAEtF,MAAI,YAAY,SAAS,MAAM,EAAE,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,aAAa,MAAM,UAAU;AACtC,WAAO;AAAA,EACR;AACA,SAAO;AACR;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAqD;AAG9C,MAAM,uBAAuB,+BAAiB;AAAA,EACpD,OAAgB,KAAK;AAAA,EACrB,OAAgB,UAAU;AAAA,EACjB,YAAY;AAAA,EAEZ,WAAW,CAAC,UAAgC;AACpD,QAAI,CAAC,MAAO;AAEZ,UAAM,SAAS,KAAK,OAAO,mBAAmB,KAAK;AACnD,UAAM,qBAAkC,CAAC;AACzC,UAAM,cAAc,KAAK,OAAO,kBAAkB,KAAK,EAAE,IAAI,CAACA,WAAUA,OAAM,EAAE;AAEhF,SAAK,OAAO,qBAAqB,EAAE,IAAI,CAAC,cAAc;AAErD,UAAI,UAAU,OAAO,MAAM,GAAI;AAC/B,UAAI,UAAU,SAAU;AAExB,YAAM,kBAAkB,KAAK,OAAO,mBAAmB,SAAS;AAChE,UAAI,CAAC,gBAAiB;AAGtB,UAAI,OAAO,SAAS,eAAe,GAAG;AACrC,YAAI,WAAW,WAAW,aAAa,KAAK,GAAG;AAC9C,6BAAmB,KAAK,UAAU,EAAE;AAAA,QACrC;AAAA,MACD;AAAA,IACD,CAAC;AAED,SAAK,OAAO,eAAe,oBAAoB,MAAM,EAAE;AAEvD,QAAI,KAAK,OAAO,iBAAiB,EAAE,cAAc;AAChD,WAAK,OAAO,eAAe,OAAO;AAAA,IACnC,OAAO;AACN,WAAK,OAAO,eAAe,aAAa;AAAA,IACzC;AAAA,EACD;AACD;AAGA,SAAS,WAAW,OAAgB,aAA0B,OAAyB;AAEtF,MAAI,YAAY,SAAS,MAAM,EAAE,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,MAAM,aAAa,MAAM,UAAU;AACtC,WAAO;AAAA,EACR;AACA,SAAO;AACR;",
6
6
  "names": ["shape"]
7
7
  }
@@ -67,13 +67,10 @@ class FrameShapeUtil extends import_editor.BaseBoxShapeUtil {
67
67
  "is creating this shape",
68
68
  () => {
69
69
  const resizingState = this.editor.getStateDescendant("select.resizing");
70
- if (!resizingState)
71
- return false;
72
- if (!resizingState.getIsActive())
73
- return false;
70
+ if (!resizingState) return false;
71
+ if (!resizingState.getIsActive()) return false;
74
72
  const info = resizingState?.info;
75
- if (!info)
76
- return false;
73
+ if (!info) return false;
77
74
  return info.isCreating && this.editor.getOnlySelectedShape()?.id === shape.id;
78
75
  },
79
76
  [shape.id]