@bhbr/minter 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -2
  3. package/dist/boards/Board.d.ts +138 -0
  4. package/dist/boards/Board.d.ts.map +1 -0
  5. package/dist/boards/Board.js +1329 -0
  6. package/dist/boards/Board.js.map +1 -0
  7. package/dist/boards/BoardCreator.d.ts +8 -0
  8. package/dist/boards/BoardCreator.d.ts.map +1 -0
  9. package/dist/boards/BoardCreator.js +24 -0
  10. package/dist/boards/BoardCreator.js.map +1 -0
  11. package/dist/boards/EditableLinkHook.d.ts +2 -0
  12. package/dist/boards/EditableLinkHook.d.ts.map +1 -0
  13. package/dist/boards/EditableLinkHook.js +137 -0
  14. package/dist/boards/EditableLinkHook.js.map +1 -0
  15. package/dist/boards/EditableLinkHookView.d.ts +2 -0
  16. package/dist/boards/EditableLinkHookView.d.ts.map +1 -0
  17. package/dist/boards/EditableLinkHookView.js +42 -0
  18. package/dist/boards/EditableLinkHookView.js.map +1 -0
  19. package/dist/boards/ExpandButton.d.ts +17 -0
  20. package/dist/boards/ExpandButton.d.ts.map +1 -0
  21. package/dist/boards/ExpandButton.js +59 -0
  22. package/dist/boards/ExpandButton.js.map +1 -0
  23. package/dist/boards/ExpandedBoardIOList.d.ts +12 -0
  24. package/dist/boards/ExpandedBoardIOList.d.ts.map +1 -0
  25. package/dist/boards/ExpandedBoardIOList.js +35 -0
  26. package/dist/boards/ExpandedBoardIOList.js.map +1 -0
  27. package/dist/boards/ExpandedBoardInputList.d.ts +4 -0
  28. package/dist/boards/ExpandedBoardInputList.d.ts.map +1 -0
  29. package/dist/boards/ExpandedBoardInputList.js +4 -0
  30. package/dist/boards/ExpandedBoardInputList.js.map +1 -0
  31. package/dist/boards/ExpandedBoardOutputList.d.ts +4 -0
  32. package/dist/boards/ExpandedBoardOutputList.d.ts.map +1 -0
  33. package/dist/boards/ExpandedBoardOutputList.js +4 -0
  34. package/dist/boards/ExpandedBoardOutputList.js.map +1 -0
  35. package/dist/boards/constants.d.ts +6 -0
  36. package/dist/boards/constants.d.ts.map +1 -0
  37. package/dist/boards/constants.js +6 -0
  38. package/dist/boards/constants.js.map +1 -0
  39. package/dist/constants.d.ts +14 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +23 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/creators/Creator.d.ts +19 -0
  44. package/dist/creators/Creator.d.ts.map +1 -0
  45. package/dist/creators/Creator.js +54 -0
  46. package/dist/creators/Creator.js.map +1 -0
  47. package/dist/creators/DraggingCreator.d.ts +10 -0
  48. package/dist/creators/DraggingCreator.d.ts.map +1 -0
  49. package/dist/creators/DraggingCreator.js +45 -0
  50. package/dist/creators/DraggingCreator.js.map +1 -0
  51. package/dist/creators/Freehand.d.ts +16 -0
  52. package/dist/creators/Freehand.d.ts.map +1 -0
  53. package/dist/creators/Freehand.js +68 -0
  54. package/dist/creators/Freehand.js.map +1 -0
  55. package/dist/creators/SpanningCreator.d.ts +15 -0
  56. package/dist/creators/SpanningCreator.d.ts.map +1 -0
  57. package/dist/creators/SpanningCreator.js +66 -0
  58. package/dist/creators/SpanningCreator.js.map +1 -0
  59. package/dist/functions/logging.d.ts +4 -0
  60. package/dist/functions/logging.d.ts.map +1 -0
  61. package/dist/functions/logging.js +103 -0
  62. package/dist/functions/logging.js.map +1 -0
  63. package/dist/functions/math.d.ts +9 -0
  64. package/dist/functions/math.d.ts.map +1 -0
  65. package/dist/functions/math.js +85 -0
  66. package/dist/functions/math.js.map +1 -0
  67. package/dist/functions/various.d.ts +4 -0
  68. package/dist/functions/various.d.ts.map +1 -0
  69. package/dist/functions/various.js +54 -0
  70. package/dist/functions/various.js.map +1 -0
  71. package/dist/index.d.ts +77 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +79 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/linkables/DependencyLink.d.ts +24 -0
  76. package/dist/linkables/DependencyLink.d.ts.map +1 -0
  77. package/dist/linkables/DependencyLink.js +70 -0
  78. package/dist/linkables/DependencyLink.js.map +1 -0
  79. package/dist/linkables/IOList.d.ts +37 -0
  80. package/dist/linkables/IOList.d.ts.map +1 -0
  81. package/dist/linkables/IOList.js +203 -0
  82. package/dist/linkables/IOList.js.map +1 -0
  83. package/dist/linkables/InputList.d.ts +7 -0
  84. package/dist/linkables/InputList.d.ts.map +1 -0
  85. package/dist/linkables/InputList.js +13 -0
  86. package/dist/linkables/InputList.js.map +1 -0
  87. package/dist/linkables/LinkBullet.d.ts +11 -0
  88. package/dist/linkables/LinkBullet.d.ts.map +1 -0
  89. package/dist/linkables/LinkBullet.js +35 -0
  90. package/dist/linkables/LinkBullet.js.map +1 -0
  91. package/dist/linkables/LinkHook.d.ts +14 -0
  92. package/dist/linkables/LinkHook.d.ts.map +1 -0
  93. package/dist/linkables/LinkHook.js +50 -0
  94. package/dist/linkables/LinkHook.js.map +1 -0
  95. package/dist/linkables/LinkOutlet.d.ts +26 -0
  96. package/dist/linkables/LinkOutlet.d.ts.map +1 -0
  97. package/dist/linkables/LinkOutlet.js +136 -0
  98. package/dist/linkables/LinkOutlet.js.map +1 -0
  99. package/dist/linkables/Linkable.d.ts +55 -0
  100. package/dist/linkables/Linkable.d.ts.map +1 -0
  101. package/dist/linkables/Linkable.js +258 -0
  102. package/dist/linkables/Linkable.js.map +1 -0
  103. package/dist/linkables/OutputList.d.ts +7 -0
  104. package/dist/linkables/OutputList.d.ts.map +1 -0
  105. package/dist/linkables/OutputList.js +16 -0
  106. package/dist/linkables/OutputList.js.map +1 -0
  107. package/dist/linkables/constants.d.ts +12 -0
  108. package/dist/linkables/constants.d.ts.map +1 -0
  109. package/dist/linkables/constants.js +16 -0
  110. package/dist/linkables/constants.js.map +1 -0
  111. package/dist/mobjects/Dependency.d.ts +11 -0
  112. package/dist/mobjects/Dependency.d.ts.map +1 -0
  113. package/dist/mobjects/Dependency.js +19 -0
  114. package/dist/mobjects/Dependency.js.map +1 -0
  115. package/dist/mobjects/MGroup.d.ts +5 -0
  116. package/dist/mobjects/MGroup.d.ts.map +1 -0
  117. package/dist/mobjects/MGroup.js +15 -0
  118. package/dist/mobjects/MGroup.js.map +1 -0
  119. package/dist/mobjects/Mobject.d.ts +138 -0
  120. package/dist/mobjects/Mobject.d.ts.map +1 -0
  121. package/dist/mobjects/Mobject.js +488 -0
  122. package/dist/mobjects/Mobject.js.map +1 -0
  123. package/dist/mobjects/Motor.d.ts +20 -0
  124. package/dist/mobjects/Motor.d.ts.map +1 -0
  125. package/dist/mobjects/Motor.js +118 -0
  126. package/dist/mobjects/Motor.js.map +1 -0
  127. package/dist/mobjects/Sensor.d.ts +112 -0
  128. package/dist/mobjects/Sensor.d.ts.map +1 -0
  129. package/dist/mobjects/Sensor.js +650 -0
  130. package/dist/mobjects/Sensor.js.map +1 -0
  131. package/dist/mobjects/UpdateCall.d.ts +17 -0
  132. package/dist/mobjects/UpdateCall.d.ts.map +1 -0
  133. package/dist/mobjects/UpdateCall.js +67 -0
  134. package/dist/mobjects/UpdateCall.js.map +1 -0
  135. package/dist/mobjects/screen_events.d.ts +38 -0
  136. package/dist/mobjects/screen_events.d.ts.map +1 -0
  137. package/dist/mobjects/screen_events.js +143 -0
  138. package/dist/mobjects/screen_events.js.map +1 -0
  139. package/dist/paper/APILoader.d.ts +10 -0
  140. package/dist/paper/APILoader.d.ts.map +1 -0
  141. package/dist/paper/APILoader.js +18 -0
  142. package/dist/paper/APILoader.js.map +1 -0
  143. package/dist/paper/Paper.d.ts +34 -0
  144. package/dist/paper/Paper.d.ts.map +1 -0
  145. package/dist/paper/Paper.js +210 -0
  146. package/dist/paper/Paper.js.map +1 -0
  147. package/dist/paper/PaperView.d.ts +5 -0
  148. package/dist/paper/PaperView.d.ts.map +1 -0
  149. package/dist/paper/PaperView.js +9 -0
  150. package/dist/paper/PaperView.js.map +1 -0
  151. package/dist/paper/getPaper.d.ts +3 -0
  152. package/dist/paper/getPaper.d.ts.map +1 -0
  153. package/dist/paper/getPaper.js +8 -0
  154. package/dist/paper/getPaper.js.map +1 -0
  155. package/dist/paper/initPaper.d.ts +2 -0
  156. package/dist/paper/initPaper.d.ts.map +1 -0
  157. package/dist/paper/initPaper.js +3 -0
  158. package/dist/paper/initPaper.js.map +1 -0
  159. package/dist/shapes/Circle.d.ts +6 -0
  160. package/dist/shapes/Circle.d.ts.map +1 -0
  161. package/dist/shapes/Circle.js +20 -0
  162. package/dist/shapes/Circle.js.map +1 -0
  163. package/dist/shapes/CircularArc.d.ts +13 -0
  164. package/dist/shapes/CircularArc.d.ts.map +1 -0
  165. package/dist/shapes/CircularArc.js +95 -0
  166. package/dist/shapes/CircularArc.js.map +1 -0
  167. package/dist/shapes/CurvedArrow.d.ts +19 -0
  168. package/dist/shapes/CurvedArrow.d.ts.map +1 -0
  169. package/dist/shapes/CurvedArrow.js +89 -0
  170. package/dist/shapes/CurvedArrow.js.map +1 -0
  171. package/dist/shapes/Line.d.ts +14 -0
  172. package/dist/shapes/Line.d.ts.map +1 -0
  173. package/dist/shapes/Line.js +33 -0
  174. package/dist/shapes/Line.js.map +1 -0
  175. package/dist/shapes/Pill.d.ts +9 -0
  176. package/dist/shapes/Pill.d.ts.map +1 -0
  177. package/dist/shapes/Pill.js +51 -0
  178. package/dist/shapes/Pill.js.map +1 -0
  179. package/dist/shapes/Rectangle.d.ts +14 -0
  180. package/dist/shapes/Rectangle.d.ts.map +1 -0
  181. package/dist/shapes/Rectangle.js +34 -0
  182. package/dist/shapes/Rectangle.js.map +1 -0
  183. package/dist/shapes/RoundedRectangle.d.ts +17 -0
  184. package/dist/shapes/RoundedRectangle.d.ts.map +1 -0
  185. package/dist/shapes/RoundedRectangle.js +86 -0
  186. package/dist/shapes/RoundedRectangle.js.map +1 -0
  187. package/dist/shapes/Square.d.ts +8 -0
  188. package/dist/shapes/Square.d.ts.map +1 -0
  189. package/dist/shapes/Square.js +25 -0
  190. package/dist/shapes/Square.js.map +1 -0
  191. package/dist/sidebar/Sidebar.d.ts +28 -0
  192. package/dist/sidebar/Sidebar.d.ts.map +1 -0
  193. package/dist/sidebar/Sidebar.js +222 -0
  194. package/dist/sidebar/Sidebar.js.map +1 -0
  195. package/dist/sidebar/SidebarView.d.ts +5 -0
  196. package/dist/sidebar/SidebarView.d.ts.map +1 -0
  197. package/dist/sidebar/SidebarView.js +9 -0
  198. package/dist/sidebar/SidebarView.js.map +1 -0
  199. package/dist/sidebar/buttons/BoardButton.d.ts +6 -0
  200. package/dist/sidebar/buttons/BoardButton.d.ts.map +1 -0
  201. package/dist/sidebar/buttons/BoardButton.js +14 -0
  202. package/dist/sidebar/buttons/BoardButton.js.map +1 -0
  203. package/dist/sidebar/buttons/ControlsButton.d.ts +5 -0
  204. package/dist/sidebar/buttons/ControlsButton.d.ts.map +1 -0
  205. package/dist/sidebar/buttons/ControlsButton.js +11 -0
  206. package/dist/sidebar/buttons/ControlsButton.js.map +1 -0
  207. package/dist/sidebar/buttons/CreativeButton.d.ts +13 -0
  208. package/dist/sidebar/buttons/CreativeButton.d.ts.map +1 -0
  209. package/dist/sidebar/buttons/CreativeButton.js +49 -0
  210. package/dist/sidebar/buttons/CreativeButton.js.map +1 -0
  211. package/dist/sidebar/buttons/DragButton.d.ts +5 -0
  212. package/dist/sidebar/buttons/DragButton.d.ts.map +1 -0
  213. package/dist/sidebar/buttons/DragButton.js +10 -0
  214. package/dist/sidebar/buttons/DragButton.js.map +1 -0
  215. package/dist/sidebar/buttons/EraseButton.d.ts +7 -0
  216. package/dist/sidebar/buttons/EraseButton.d.ts.map +1 -0
  217. package/dist/sidebar/buttons/EraseButton.js +34 -0
  218. package/dist/sidebar/buttons/EraseButton.js.map +1 -0
  219. package/dist/sidebar/buttons/LinkButton.d.ts +5 -0
  220. package/dist/sidebar/buttons/LinkButton.d.ts.map +1 -0
  221. package/dist/sidebar/buttons/LinkButton.js +9 -0
  222. package/dist/sidebar/buttons/LinkButton.js.map +1 -0
  223. package/dist/sidebar/buttons/SidebarButton.d.ts +72 -0
  224. package/dist/sidebar/buttons/SidebarButton.d.ts.map +1 -0
  225. package/dist/sidebar/buttons/SidebarButton.js +369 -0
  226. package/dist/sidebar/buttons/SidebarButton.js.map +1 -0
  227. package/dist/sidebar/buttons/SidebarButtonView.d.ts +6 -0
  228. package/dist/sidebar/buttons/SidebarButtonView.d.ts.map +1 -0
  229. package/dist/sidebar/buttons/SidebarButtonView.js +8 -0
  230. package/dist/sidebar/buttons/SidebarButtonView.js.map +1 -0
  231. package/dist/sidebar/buttons/ToggleButton.d.ts +17 -0
  232. package/dist/sidebar/buttons/ToggleButton.d.ts.map +1 -0
  233. package/dist/sidebar/buttons/ToggleButton.js +79 -0
  234. package/dist/sidebar/buttons/ToggleButton.js.map +1 -0
  235. package/dist/sidebar/buttons/button_geometry.d.ts +10 -0
  236. package/dist/sidebar/buttons/button_geometry.d.ts.map +1 -0
  237. package/dist/sidebar/buttons/button_geometry.js +15 -0
  238. package/dist/sidebar/buttons/button_geometry.js.map +1 -0
  239. package/dist/sidebar/getSidebar.d.ts +3 -0
  240. package/dist/sidebar/getSidebar.d.ts.map +1 -0
  241. package/dist/sidebar/getSidebar.js +8 -0
  242. package/dist/sidebar/getSidebar.js.map +1 -0
  243. package/dist/sidebar/initSidebar.d.ts +2 -0
  244. package/dist/sidebar/initSidebar.d.ts.map +1 -0
  245. package/dist/sidebar/initSidebar.js +3 -0
  246. package/dist/sidebar/initSidebar.js.map +1 -0
  247. package/dist/ui/Checkbox.d.ts +20 -0
  248. package/dist/ui/Checkbox.d.ts.map +1 -0
  249. package/dist/ui/Checkbox.js +71 -0
  250. package/dist/ui/Checkbox.js.map +1 -0
  251. package/dist/ui/InputTextBox.d.ts +24 -0
  252. package/dist/ui/InputTextBox.d.ts.map +1 -0
  253. package/dist/ui/InputTextBox.js +104 -0
  254. package/dist/ui/InputTextBox.js.map +1 -0
  255. package/dist/ui/LinkableInputTextBox.d.ts +11 -0
  256. package/dist/ui/LinkableInputTextBox.d.ts.map +1 -0
  257. package/dist/ui/LinkableInputTextBox.js +32 -0
  258. package/dist/ui/LinkableInputTextBox.js.map +1 -0
  259. package/dist/ui/Popover.d.ts +34 -0
  260. package/dist/ui/Popover.d.ts.map +1 -0
  261. package/dist/ui/Popover.js +187 -0
  262. package/dist/ui/Popover.js.map +1 -0
  263. package/dist/ui/RadioButton.d.ts +16 -0
  264. package/dist/ui/RadioButton.d.ts.map +1 -0
  265. package/dist/ui/RadioButton.js +53 -0
  266. package/dist/ui/RadioButton.js.map +1 -0
  267. package/dist/ui/RadioButtonList.d.ts +16 -0
  268. package/dist/ui/RadioButtonList.d.ts.map +1 -0
  269. package/dist/ui/RadioButtonList.js +71 -0
  270. package/dist/ui/RadioButtonList.js.map +1 -0
  271. package/dist/ui/Scroll.d.ts +10 -0
  272. package/dist/ui/Scroll.d.ts.map +1 -0
  273. package/dist/ui/Scroll.js +30 -0
  274. package/dist/ui/Scroll.js.map +1 -0
  275. package/dist/ui/SimpleButton.d.ts +16 -0
  276. package/dist/ui/SimpleButton.d.ts.map +1 -0
  277. package/dist/ui/SimpleButton.js +61 -0
  278. package/dist/ui/SimpleButton.js.map +1 -0
  279. package/dist/ui/TextLabel.d.ts +19 -0
  280. package/dist/ui/TextLabel.d.ts.map +1 -0
  281. package/dist/ui/TextLabel.js +21 -0
  282. package/dist/ui/TextLabel.js.map +1 -0
  283. package/dist/ui/TextLabelView.d.ts +15 -0
  284. package/dist/ui/TextLabelView.d.ts.map +1 -0
  285. package/dist/ui/TextLabelView.js +52 -0
  286. package/dist/ui/TextLabelView.js.map +1 -0
  287. package/dist/views/Color.d.ts +31 -0
  288. package/dist/views/Color.d.ts.map +1 -0
  289. package/dist/views/Color.js +107 -0
  290. package/dist/views/Color.js.map +1 -0
  291. package/dist/views/Frame.d.ts +64 -0
  292. package/dist/views/Frame.d.ts.map +1 -0
  293. package/dist/views/Frame.js +132 -0
  294. package/dist/views/Frame.js.map +1 -0
  295. package/dist/views/ImageView.d.ts +10 -0
  296. package/dist/views/ImageView.d.ts.map +1 -0
  297. package/dist/views/ImageView.js +28 -0
  298. package/dist/views/ImageView.js.map +1 -0
  299. package/dist/views/View.d.ts +45 -0
  300. package/dist/views/View.d.ts.map +1 -0
  301. package/dist/views/View.js +181 -0
  302. package/dist/views/View.js.map +1 -0
  303. package/dist/vmobjects/CurvedLine.d.ts +14 -0
  304. package/dist/vmobjects/CurvedLine.d.ts.map +1 -0
  305. package/dist/vmobjects/CurvedLine.js +66 -0
  306. package/dist/vmobjects/CurvedLine.js.map +1 -0
  307. package/dist/vmobjects/CurvedShape.d.ts +5 -0
  308. package/dist/vmobjects/CurvedShape.d.ts.map +1 -0
  309. package/dist/vmobjects/CurvedShape.js +12 -0
  310. package/dist/vmobjects/CurvedShape.js.map +1 -0
  311. package/dist/vmobjects/Polygon.d.ts +5 -0
  312. package/dist/vmobjects/Polygon.d.ts.map +1 -0
  313. package/dist/vmobjects/Polygon.js +12 -0
  314. package/dist/vmobjects/Polygon.js.map +1 -0
  315. package/dist/vmobjects/PolygonalLine.d.ts +9 -0
  316. package/dist/vmobjects/PolygonalLine.d.ts.map +1 -0
  317. package/dist/vmobjects/PolygonalLine.js +34 -0
  318. package/dist/vmobjects/PolygonalLine.js.map +1 -0
  319. package/dist/vmobjects/VMobject.d.ts +58 -0
  320. package/dist/vmobjects/VMobject.d.ts.map +1 -0
  321. package/dist/vmobjects/VMobject.js +165 -0
  322. package/dist/vmobjects/VMobject.js.map +1 -0
  323. package/dist/vmobjects/VView.d.ts +19 -0
  324. package/dist/vmobjects/VView.d.ts.map +1 -0
  325. package/dist/vmobjects/VView.js +61 -0
  326. package/dist/vmobjects/VView.js.map +1 -0
  327. package/package.json +43 -4
@@ -0,0 +1,19 @@
1
+ export class Dependency {
2
+ constructor(args = {}) {
3
+ this.source = args['source'];
4
+ this.outputName = args['outputName'];
5
+ if (this.outputName === undefined) {
6
+ this.outputName = null;
7
+ }
8
+ this.target = args['target'];
9
+ this.inputName = args['inputName'];
10
+ if (this.inputName === undefined) {
11
+ this.inputName = null;
12
+ }
13
+ this.kind = args['kind'] ?? 'value';
14
+ }
15
+ delete() {
16
+ this.source.removeDependency(this);
17
+ }
18
+ }
19
+ //# sourceMappingURL=Dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dependency.js","sourceRoot":"","sources":["../../src/mobjects/Dependency.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,UAAU;IAWtB,YAAY,OAAe,EAAE;QAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QACpC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAA;IACpC,CAAC;IAED,MAAM;QACL,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACD"}
@@ -0,0 +1,5 @@
1
+ import { Mobject } from './Mobject.js';
2
+ export declare class MGroup extends Mobject {
3
+ setup(): void;
4
+ }
5
+ //# sourceMappingURL=MGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MGroup.d.ts","sourceRoot":"","sources":["../../src/mobjects/MGroup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,qBAAa,MAAO,SAAQ,OAAO;IAIlC,KAAK;CAQL"}
@@ -0,0 +1,15 @@
1
+ import { Mobject } from './Mobject.js';
2
+ export class MGroup extends Mobject {
3
+ /*
4
+ MGroup (a group of mobjects) is essentially a synonym for Mobject.
5
+ */
6
+ setup() {
7
+ super.setup();
8
+ // Children may have been set as constructor arguments
9
+ // and need not be added explicitly, this setup does it.
10
+ for (let submob of this.children) {
11
+ this.add(submob);
12
+ }
13
+ }
14
+ }
15
+ //# sourceMappingURL=MGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MGroup.js","sourceRoot":"","sources":["../../src/mobjects/MGroup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,OAAO,MAAO,SAAQ,OAAO;IACnC;;MAEE;IACD,KAAK;QACJ,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,sDAAsD;QACtD,wDAAwD;QACxD,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,138 @@
1
+ import { ScreenEventHandler, ScreenEvent } from './screen_events.js';
2
+ import { vertex, Transform } from '@bhbr/affr2';
3
+ import { BetterObject } from '@bhbr/better-things';
4
+ import { Color } from '../views/Color.js';
5
+ import { Dependency } from './Dependency.js';
6
+ import { Frame } from '../views/Frame.js';
7
+ import { View } from '../views/View.js';
8
+ import { Motor } from './Motor.js';
9
+ import { Sensor } from './Sensor.js';
10
+ import { UpdateCalls } from './UpdateCall.js';
11
+ export declare class Mobject extends BetterObject {
12
+ constructor(args?: object);
13
+ defaults(): object;
14
+ mutabilities(): object;
15
+ setup(): void;
16
+ view: View;
17
+ divComment: string | null;
18
+ get anchor(): vertex;
19
+ set anchor(newValue: vertex);
20
+ get transform(): Transform;
21
+ set transform(newValue: Transform);
22
+ get transformAngle(): number;
23
+ set transformAngle(newValue: number);
24
+ get frame(): Frame;
25
+ set frame(newValue: Frame);
26
+ get frameWidth(): number;
27
+ set frameWidth(newValue: number);
28
+ get frameHeight(): number;
29
+ set frameHeight(newValue: number);
30
+ frameCenter(): vertex;
31
+ get visible(): boolean;
32
+ set visible(newValue: boolean);
33
+ get opacity(): number;
34
+ set opacity(newValue: number);
35
+ get backgroundColor(): Color;
36
+ set backgroundColor(newValue: Color);
37
+ get borderColor(): Color;
38
+ set borderColor(newValue: Color);
39
+ get borderWidth(): number;
40
+ set borderWidth(newValue: number);
41
+ get drawBorder(): boolean;
42
+ set drawBorder(newValue: boolean);
43
+ get drawShadow(): boolean;
44
+ set drawShadow(newValue: boolean);
45
+ get borderRadius(): number;
46
+ set borderRadius(newValue: number);
47
+ redraw(): void;
48
+ hideShadow(): void;
49
+ showShadow(): void;
50
+ showDependents(): void;
51
+ hideDependents(): void;
52
+ show(): void;
53
+ hide(): void;
54
+ motor: Motor;
55
+ animate(args: object, seconds: number, showShadow?: boolean, completionHandler?: Function): void;
56
+ protected _parent?: Mobject;
57
+ children: Array<Mobject>;
58
+ get parent(): Mobject;
59
+ set parent(newValue: Mobject);
60
+ ancestors(): Array<Mobject>;
61
+ descendsFrom(mob: Mobject): boolean;
62
+ isDescendentFrom(mob: Mobject): boolean;
63
+ get superMobject(): this;
64
+ set superMobject(newValue: this);
65
+ get submobjects(): Array<Mobject>;
66
+ set submobjects(newValue: Array<Mobject>);
67
+ get submobs(): Array<Mobject>;
68
+ set submobs(newValue: Array<Mobject>);
69
+ add(submob: Mobject): void;
70
+ insertRelativeTo(newChild: Mobject, child: Mobject, shift: number): void;
71
+ insertBehind(newChild: Mobject, child: Mobject): void;
72
+ insertBefore(newChild: Mobject, child: Mobject): void;
73
+ remove(child: Mobject): void;
74
+ removeAllChildren(): void;
75
+ moveToTop(newChild: Mobject): void;
76
+ moveToBack(newChild: Mobject): void;
77
+ dependencies: Array<Dependency>;
78
+ dependents(): Array<Mobject>;
79
+ allDependents(): Array<Mobject>;
80
+ dependsOn(otherMobject: Mobject): boolean;
81
+ addDependency(outputName: string | null, target: Mobject, inputName: string | null, kind?: 'value' | 'action', refresh?: boolean): void;
82
+ removeDependency(dep: Dependency): void;
83
+ removeAllDependents(): void;
84
+ getDependency(outputName: string | null, target: Mobject, inputName: string | null): Dependency | null;
85
+ removeDependencyBetween(outputName: string | null, target: Mobject, inputName: string | null): void;
86
+ addDependent(target: Mobject): void;
87
+ synchronizeUpdateArguments(args?: object): object;
88
+ update(args?: object, redraw?: boolean): void;
89
+ batchUpdate(batchArgs: Record<string, Array<any>>, redraw?: boolean): void;
90
+ getUpdateCalls(onlyValues?: boolean): UpdateCalls;
91
+ updateDependents(onlyValues?: boolean): void;
92
+ sensor: Sensor;
93
+ preventDefault: boolean;
94
+ dragAnchorStart?: vertex;
95
+ disable(): void;
96
+ enable(): void;
97
+ disableSubmobs(): void;
98
+ enableSubmobs(): void;
99
+ get screenEventHandler(): ScreenEventHandler;
100
+ set screenEventHandler(newValue: ScreenEventHandler);
101
+ onPointerDown(e: ScreenEvent): void;
102
+ onPointerMove(e: ScreenEvent): void;
103
+ onPointerUp(e: ScreenEvent): void;
104
+ onTap(e: ScreenEvent): void;
105
+ onMereTap(e: ScreenEvent): void;
106
+ onDoubleTap(e: ScreenEvent): void;
107
+ onLongPress(e: ScreenEvent): void;
108
+ onTouchDown(e: ScreenEvent): void;
109
+ onTouchMove(e: ScreenEvent): void;
110
+ onTouchUp(e: ScreenEvent): void;
111
+ onTouchTap(e: ScreenEvent): void;
112
+ onMereTouchTap(e: ScreenEvent): void;
113
+ onDoubleTouchTap(e: ScreenEvent): void;
114
+ onLongTouchDown(e: ScreenEvent): void;
115
+ onPenDown(e: ScreenEvent): void;
116
+ onPenMove(e: ScreenEvent): void;
117
+ onPenUp(e: ScreenEvent): void;
118
+ onPenTap(e: ScreenEvent): void;
119
+ onMerePenTap(e: ScreenEvent): void;
120
+ onDoublePenTap(e: ScreenEvent): void;
121
+ onLongPenDown(e: ScreenEvent): void;
122
+ onMouseDown(e: ScreenEvent): void;
123
+ onMouseMove(e: ScreenEvent): void;
124
+ onMouseUp(e: ScreenEvent): void;
125
+ onMouseClick(e: ScreenEvent): void;
126
+ onMereMouseClick(e: ScreenEvent): void;
127
+ onDoubleMouseClick(e: ScreenEvent): void;
128
+ onLongMouseDown(e: ScreenEvent): void;
129
+ onPointerOut(e: ScreenEvent): void;
130
+ draggingEnabled: boolean;
131
+ setDragging(flag: boolean): void;
132
+ startDragging(e: ScreenEvent): void;
133
+ dragging(e: ScreenEvent): void;
134
+ endDragging(e: ScreenEvent): void;
135
+ focus(): void;
136
+ blur(): void;
137
+ }
138
+ //# sourceMappingURL=Mobject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mobject.d.ts","sourceRoot":"","sources":["../../src/mobjects/Mobject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,488 @@
1
+ import { remove, clear } from '@bhbr/betray';
2
+ import { copy } from '@bhbr/copycat';
3
+ import { ScreenEventHandler, eventVertex, addPointerDown, addPointerMove, addPointerUp, addPointerOut } from './screen_events.js';
4
+ import { vertexAdd, vertexSubtract, Transform } from '@bhbr/affr2';
5
+ import { BetterObject } from '@bhbr/better-things';
6
+ import { Dependency } from './Dependency.js';
7
+ import { View } from '../views/View.js';
8
+ import { Motor } from './Motor.js';
9
+ import { Sensor } from './Sensor.js';
10
+ import { getPaper } from '../paper/getPaper.js';
11
+ import { UpdateCall, UpdateCalls } from './UpdateCall.js';
12
+ export class Mobject extends BetterObject {
13
+ /*
14
+ A mobject (math object) has a view with an underlying state and logic for drawing (View), animation (Motor) and user interaction (Sensor).
15
+ */
16
+ //////////////////////////////////////////////////////////
17
+ // //
18
+ // INITIALIZATION //
19
+ // //
20
+ //////////////////////////////////////////////////////////
21
+ /*
22
+ Subclasses dot NOT get their own explicit constructor. The state is completely set by fullDefaults(). Any additional actions are performed afterwards in setup().
23
+
24
+ Subclasses may also have quite a different setup than their superclass, and would otherwise have to undo a lot of the superclass's constructor setup. (E. g. a Circle's anchor should not be set, instead its midpoint should. A Circle's anchor acts like a computed property.)
25
+
26
+ It also allows to control the setting of default state variables.
27
+ */
28
+ constructor(args = {}) {
29
+ /*
30
+ A mobject is initialized by providing a dictionary (object) of parameters (args).
31
+ */
32
+ super(args);
33
+ this.setup();
34
+ this.update();
35
+ this.view.redraw();
36
+ }
37
+ defaults() {
38
+ return {
39
+ // hierarchy
40
+ _parent: null,
41
+ children: [], // i. e. submobjects
42
+ view: new View(),
43
+ motor: new Motor(),
44
+ sensor: new Sensor(),
45
+ preventDefault: true,
46
+ divComment: null,
47
+ draggingEnabled: false,
48
+ // dependencies
49
+ dependencies: []
50
+ };
51
+ }
52
+ mutabilities() {
53
+ return {
54
+ view: 'on_init',
55
+ children: 'on_update' // never?
56
+ };
57
+ }
58
+ setup() {
59
+ this.view.mobject = this;
60
+ this.view.setup();
61
+ this.motor.mobject = this;
62
+ this.sensor.mobject = this;
63
+ // put into sensor setup?
64
+ addPointerDown(this.view.div, this.sensor.capturedOnPointerDown.bind(this.sensor));
65
+ addPointerMove(this.view.div, this.sensor.capturedOnPointerMove.bind(this.sensor));
66
+ addPointerUp(this.view.div, this.sensor.capturedOnPointerUp.bind(this.sensor));
67
+ addPointerOut(this.view.div, this.sensor.capturedOnPointerOut.bind(this.sensor));
68
+ }
69
+ //////////// Aliases ////////////
70
+ get anchor() { return this.view?.anchor ?? [0, 0]; }
71
+ set anchor(newValue) {
72
+ if (!this.view) {
73
+ return;
74
+ }
75
+ this.view.anchor = newValue;
76
+ }
77
+ get transform() { return this.view?.transform ?? Transform.identity(); }
78
+ set transform(newValue) {
79
+ if (!this.view) {
80
+ return;
81
+ }
82
+ this.view.transform = newValue;
83
+ }
84
+ get transformAngle() { return this.view?.transform.angle ?? 0; }
85
+ set transformAngle(newValue) {
86
+ if (!this.view) {
87
+ return;
88
+ }
89
+ this.view.transform.angle = newValue;
90
+ }
91
+ get frame() { return this.view.frame; }
92
+ set frame(newValue) { this.view.frame = newValue; }
93
+ get frameWidth() { return this.frame.width; }
94
+ set frameWidth(newValue) { this.frame.width = newValue; }
95
+ get frameHeight() { return this.frame.height ?? 0; }
96
+ set frameHeight(newValue) { this.frame.height = newValue; }
97
+ frameCenter() { return this.frame.center(); }
98
+ get visible() { return this.view.visible; }
99
+ set visible(newValue) { this.view.visible = newValue; }
100
+ get opacity() { return this.view.opacity; }
101
+ set opacity(newValue) { this.view.opacity = newValue; }
102
+ get backgroundColor() { return this.view.backgroundColor; }
103
+ set backgroundColor(newValue) { this.view.backgroundColor = newValue; }
104
+ get borderColor() { return this.view.borderColor; }
105
+ set borderColor(newValue) { this.view.borderColor = newValue; }
106
+ get borderWidth() { return this.view.borderWidth; }
107
+ set borderWidth(newValue) { this.view.borderWidth = newValue; }
108
+ get drawBorder() { return this.view.drawBorder; }
109
+ set drawBorder(newValue) { this.view.drawBorder = newValue; }
110
+ get drawShadow() { return this.view.drawShadow; }
111
+ set drawShadow(newValue) { this.view.drawShadow = newValue; }
112
+ get borderRadius() { return this.view.borderRadius; }
113
+ set borderRadius(newValue) { this.view.borderRadius = newValue; }
114
+ redraw() { this.view.redraw(); }
115
+ //////////// Showing and hiding ////////////
116
+ hideShadow() { this.view.hideShadow(); }
117
+ showShadow() { this.view.showShadow(); }
118
+ showDependents() {
119
+ for (let depmob of this.allDependents()) {
120
+ depmob.view.show();
121
+ }
122
+ }
123
+ hideDependents() {
124
+ for (let depmob of this.allDependents()) {
125
+ depmob.view.hide();
126
+ }
127
+ }
128
+ show() { this.view.show(); }
129
+ hide() { this.view.hide(); }
130
+ animate(args = {}, seconds, showShadow = false, completionHandler = () => { }) {
131
+ this.motor.animate(args, seconds, showShadow, completionHandler);
132
+ }
133
+ /*
134
+ Actually we want to hide some more housekeeping code
135
+ behind setting this.parent bc parent and child
136
+ reference each other, and probably the views need
137
+ to be updated.
138
+ */
139
+ get parent() { return this._parent; }
140
+ set parent(newValue) {
141
+ try {
142
+ // there might already be a parent
143
+ this.parent.remove(this);
144
+ }
145
+ catch { }
146
+ this._parent = newValue;
147
+ if (newValue === undefined || newValue == null) {
148
+ return;
149
+ }
150
+ newValue.add(this);
151
+ }
152
+ ancestors() {
153
+ let ret = [];
154
+ let p = this.parent;
155
+ if (p === undefined || p === null) {
156
+ return ret;
157
+ }
158
+ while (p != null) {
159
+ ret.push(p);
160
+ p = p.parent;
161
+ }
162
+ return ret;
163
+ }
164
+ descendsFrom(mob) {
165
+ return this.ancestors().includes(mob);
166
+ }
167
+ isDescendentFrom(mob) {
168
+ return mob.descendsFrom(this);
169
+ }
170
+ //////////// Aliases ////////////
171
+ get superMobject() { return this.parent; }
172
+ set superMobject(newValue) { this.parent = newValue; }
173
+ get submobjects() { return this.children; }
174
+ set submobjects(newValue) { this.update({ children: newValue }); }
175
+ get submobs() { return this.submobjects; }
176
+ set submobs(newValue) { this.update({ submobs: newValue }); }
177
+ add(submob) {
178
+ // Set this as the submob's parent
179
+ if (submob.parent != this) {
180
+ if (submob.parent !== null && submob.parent !== undefined) {
181
+ submob.parent.remove(submob);
182
+ }
183
+ submob.parent = this;
184
+ submob.parent.frame = this.frame;
185
+ }
186
+ // Add submob to the children
187
+ if (this.children === undefined || this.children === null) {
188
+ throw `Please add submob ${submob.constructor.name} to ${this.constructor.name} later, in setup()`;
189
+ }
190
+ else if (!this.children.includes(submob)) {
191
+ this.children.push(submob);
192
+ }
193
+ // Add its view to this view and redraw
194
+ this.view.add(submob.view);
195
+ submob.view.redraw();
196
+ }
197
+ insertRelativeTo(newChild, child, shift) {
198
+ if (newChild.parent == this) {
199
+ this.remove(newChild);
200
+ }
201
+ let i = this.children.indexOf(child);
202
+ if (i == -1) {
203
+ console.error(`${this.constructor.name} does not have ${child.constructor.name} as a child`);
204
+ return;
205
+ }
206
+ if (i + shift >= this.children.length) {
207
+ this.add(newChild);
208
+ return;
209
+ }
210
+ let shiftedChild = this.children[i + shift];
211
+ this.children.splice(i + shift, 0, newChild);
212
+ this.view.insertBehind(newChild.view, shiftedChild.view);
213
+ }
214
+ insertBehind(newChild, child) {
215
+ this.insertRelativeTo(newChild, child, 0);
216
+ }
217
+ insertBefore(newChild, child) {
218
+ this.insertRelativeTo(newChild, child, 1);
219
+ }
220
+ remove(child) {
221
+ // Remove from the array of children (with an imported helper method)
222
+ remove(this.children, child);
223
+ child.parent = null;
224
+ child.view.div.remove();
225
+ }
226
+ removeAllChildren() {
227
+ while (this.children.length > 0) {
228
+ let child = this.children.pop();
229
+ child.parent = null;
230
+ child.view.div.remove();
231
+ }
232
+ }
233
+ moveToTop(newChild) {
234
+ /*
235
+ Put this submob in front of every other sibling,
236
+ so that it will obstruct them and catch screen events
237
+ */
238
+ if (newChild.parent === this) {
239
+ this.remove(newChild);
240
+ }
241
+ this.add(newChild);
242
+ }
243
+ moveToBack(newChild) {
244
+ if (newChild.parent !== this) {
245
+ this.add(newChild);
246
+ }
247
+ if (this.children.length < 2) {
248
+ return;
249
+ }
250
+ this.insertBehind(newChild, this.children[0]);
251
+ }
252
+ dependents() {
253
+ // All mobjects that depend directly on this
254
+ let dep = [];
255
+ for (let d of this.dependencies) {
256
+ dep.push(d.target);
257
+ }
258
+ return dep;
259
+ }
260
+ allDependents() {
261
+ // All mobjects that depend either directly or indirectly on this
262
+ let dep = this.dependents();
263
+ for (let mob of dep) {
264
+ dep.push(...mob.allDependents());
265
+ }
266
+ return dep;
267
+ }
268
+ dependsOn(otherMobject) {
269
+ return otherMobject.allDependents().includes(this);
270
+ }
271
+ addDependency(outputName, target, inputName, kind = 'value', refresh = true) {
272
+ if (this.dependsOn(target)) {
273
+ throw 'Circular dependency!';
274
+ }
275
+ let dep = new Dependency({
276
+ source: this,
277
+ outputName: outputName,
278
+ target: target,
279
+ inputName: inputName,
280
+ kind: kind
281
+ });
282
+ this.dependencies.push(dep);
283
+ if (refresh) {
284
+ let dict = {};
285
+ if (typeof this[outputName] === 'function') {
286
+ dict[inputName] = this[outputName]();
287
+ }
288
+ else {
289
+ dict[inputName] = this[outputName];
290
+ }
291
+ target.update(dict);
292
+ }
293
+ }
294
+ removeDependency(dep) {
295
+ remove(this.dependencies, dep);
296
+ }
297
+ removeAllDependents() {
298
+ clear(this.dependencies);
299
+ }
300
+ getDependency(outputName, target, inputName) {
301
+ for (let dep of this.dependencies) {
302
+ if (dep.outputName == outputName && dep.target == target && dep.inputName == inputName) {
303
+ return dep;
304
+ }
305
+ }
306
+ return null;
307
+ }
308
+ removeDependencyBetween(outputName, target, inputName) {
309
+ let dep = this.getDependency(outputName, target, inputName);
310
+ if (dep) {
311
+ this.removeDependency(dep);
312
+ }
313
+ }
314
+ addDependent(target) {
315
+ /*
316
+ No properties given. Simply, if this mobject updates,
317
+ update the target mobject as well.
318
+ */
319
+ this.addDependency(null, target, null);
320
+ }
321
+ //////////// Update methods ////////////
322
+ synchronizeUpdateArguments(args = {}) {
323
+ let syncedArgs = copy(args);
324
+ let a = args['anchor'];
325
+ if (a !== undefined) {
326
+ let t = args['transform'] ?? this.view?.frame.transform ?? Transform.identity();
327
+ t.anchor = a;
328
+ syncedArgs['transform'] = t;
329
+ delete syncedArgs['anchor'];
330
+ }
331
+ return syncedArgs;
332
+ }
333
+ update(args = {}, redraw = true) {
334
+ super.update(args);
335
+ // TODO: move to CindyCanvas
336
+ if (this.view != null) {
337
+ this.view.div.setAttribute('screen-event-handler', ScreenEventHandler[this.sensor.screenEventHandler]);
338
+ if (this.sensor.screenEventHandler == ScreenEventHandler.Below) {
339
+ this.view.div.style['pointer-events'] = 'none';
340
+ }
341
+ else {
342
+ this.view.div.style['pointer-events'] = 'auto';
343
+ }
344
+ }
345
+ if (this.divComment !== null) {
346
+ this.view.div.setAttribute('comment', this.divComment);
347
+ }
348
+ this.updateDependents();
349
+ if (redraw) {
350
+ this.view.redraw();
351
+ }
352
+ }
353
+ batchUpdate(batchArgs, redraw = true) {
354
+ var length = undefined;
355
+ for (let value of Object.values(batchArgs)) {
356
+ if (length === undefined) {
357
+ length = value.length;
358
+ continue;
359
+ }
360
+ if (value.length != length) {
361
+ throw 'Argument arrays in batch update must have the same length';
362
+ }
363
+ }
364
+ for (let i = 0; i < length; i++) {
365
+ var args = {};
366
+ for (let key of Object.keys(batchArgs)) {
367
+ args[key] = batchArgs[key][i];
368
+ }
369
+ this.update(args, redraw);
370
+ }
371
+ }
372
+ getUpdateCalls(onlyValues = false) {
373
+ let ret = new UpdateCalls();
374
+ for (let dep of this.dependencies) {
375
+ if (onlyValues && dep.kind == 'action') {
376
+ continue;
377
+ }
378
+ let dict = {};
379
+ if (typeof this[dep.outputName] == 'function') {
380
+ dict[dep.inputName] = this[dep.outputName].bind(this);
381
+ }
382
+ else {
383
+ dict[dep.inputName] = this[dep.outputName];
384
+ }
385
+ let updateCall = new UpdateCall(dep.target, dict);
386
+ ret.includeCall(updateCall);
387
+ ret.includeCalls(dep.target.getUpdateCalls());
388
+ }
389
+ return ret;
390
+ }
391
+ updateDependents(onlyValues = false) {
392
+ let calls = this.getUpdateCalls(onlyValues);
393
+ calls.call();
394
+ }
395
+ disable() { this.sensor.disable(); }
396
+ enable() { this.sensor.enable(); }
397
+ disableSubmobs() {
398
+ for (let submob of this.submobs) {
399
+ submob.disable();
400
+ submob.disableSubmobs();
401
+ }
402
+ }
403
+ enableSubmobs() {
404
+ for (let submob of this.submobs) {
405
+ submob.enable();
406
+ submob.enableSubmobs();
407
+ }
408
+ }
409
+ get screenEventHandler() { return this.sensor.screenEventHandler; }
410
+ set screenEventHandler(newValue) { this.sensor.screenEventHandler = newValue; }
411
+ /*
412
+ The following empty methods need to be declared here
413
+ so we can manipulate and override them later.
414
+ */
415
+ onPointerDown(e) { }
416
+ onPointerMove(e) { }
417
+ onPointerUp(e) { }
418
+ onTap(e) { }
419
+ onMereTap(e) { }
420
+ onDoubleTap(e) { }
421
+ onLongPress(e) { }
422
+ onTouchDown(e) { this.onPointerDown(e); }
423
+ onTouchMove(e) { this.onPointerMove(e); }
424
+ onTouchUp(e) { this.onPointerUp(e); }
425
+ onTouchTap(e) { this.onTap(e); }
426
+ onMereTouchTap(e) { this.onMereTap(e); }
427
+ onDoubleTouchTap(e) { this.onDoubleTap(e); }
428
+ onLongTouchDown(e) { this.onLongPress(e); }
429
+ onPenDown(e) { this.onPointerDown(e); }
430
+ onPenMove(e) { this.onPointerMove(e); }
431
+ onPenUp(e) { this.onPointerUp(e); }
432
+ onPenTap(e) { this.onTap(e); }
433
+ onMerePenTap(e) { this.onMereTap(e); }
434
+ onDoublePenTap(e) { this.onDoubleTap(e); }
435
+ onLongPenDown(e) { this.onLongPress(e); }
436
+ onMouseDown(e) { this.onPointerDown(e); }
437
+ onMouseMove(e) { this.onPointerMove(e); }
438
+ onMouseUp(e) { this.onPointerUp(e); }
439
+ onMouseClick(e) { this.onTap(e); }
440
+ onMereMouseClick(e) { this.onMereTap(e); }
441
+ onDoubleMouseClick(e) { this.onDoubleTap(e); }
442
+ onLongMouseDown(e) { this.onLongPress(e); }
443
+ onPointerOut(e) { }
444
+ setDragging(flag) {
445
+ if (flag) {
446
+ if (this.draggingEnabled) {
447
+ return;
448
+ }
449
+ this.sensor.setTouchMethodsTo(this.startDragging.bind(this), this.dragging.bind(this), this.endDragging.bind(this));
450
+ this.sensor.setPenMethodsTo(this.startDragging.bind(this), this.dragging.bind(this), this.endDragging.bind(this));
451
+ this.sensor.setMouseMethodsTo(this.startDragging.bind(this), this.dragging.bind(this), this.endDragging.bind(this));
452
+ }
453
+ else {
454
+ if (!this.draggingEnabled) {
455
+ return;
456
+ }
457
+ this.sensor.restoreTouchMethods();
458
+ this.sensor.restorePenMethods();
459
+ this.sensor.restoreMouseMethods();
460
+ }
461
+ this.draggingEnabled = flag;
462
+ }
463
+ startDragging(e) {
464
+ this.dragAnchorStart = vertexSubtract(this.view.frame.anchor, eventVertex(e));
465
+ this.hideShadow();
466
+ this.parent.update();
467
+ }
468
+ dragging(e) {
469
+ if (this.dragAnchorStart == null) {
470
+ return;
471
+ }
472
+ this.update({
473
+ anchor: vertexAdd(eventVertex(e), this.dragAnchorStart)
474
+ });
475
+ this.redraw(); // fixes dragging bug
476
+ }
477
+ endDragging(e) {
478
+ this.dragAnchorStart = null;
479
+ this.showShadow();
480
+ }
481
+ focus() {
482
+ getPaper().focusOn(this);
483
+ }
484
+ blur() {
485
+ getPaper().blurFocusedChild();
486
+ }
487
+ }
488
+ //# sourceMappingURL=Mobject.js.map