@teaui/core 1.1.4

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 (203) hide show
  1. package/.dist/Buffer.d.ts +21 -0
  2. package/.dist/Buffer.js +140 -0
  3. package/.dist/Buffer.js.map +1 -0
  4. package/.dist/Color.d.ts +7 -0
  5. package/.dist/Color.js +39 -0
  6. package/.dist/Color.js.map +1 -0
  7. package/.dist/Container.d.ts +21 -0
  8. package/.dist/Container.js +138 -0
  9. package/.dist/Container.js.map +1 -0
  10. package/.dist/Screen.d.ts +54 -0
  11. package/.dist/Screen.js +278 -0
  12. package/.dist/Screen.js.map +1 -0
  13. package/.dist/Style.d.ts +46 -0
  14. package/.dist/Style.js +433 -0
  15. package/.dist/Style.js.map +1 -0
  16. package/.dist/System.d.ts +13 -0
  17. package/.dist/System.js +26 -0
  18. package/.dist/System.js.map +1 -0
  19. package/.dist/Theme.d.ts +56 -0
  20. package/.dist/Theme.js +157 -0
  21. package/.dist/Theme.js.map +1 -0
  22. package/.dist/UI.d.ts +2 -0
  23. package/.dist/UI.js +28 -0
  24. package/.dist/UI.js.map +1 -0
  25. package/.dist/View.d.ts +99 -0
  26. package/.dist/View.js +374 -0
  27. package/.dist/View.js.map +1 -0
  28. package/.dist/Viewport.d.ts +89 -0
  29. package/.dist/Viewport.js +295 -0
  30. package/.dist/Viewport.js.map +1 -0
  31. package/.dist/ansi.d.ts +31 -0
  32. package/.dist/ansi.js +139 -0
  33. package/.dist/ansi.js.map +1 -0
  34. package/.dist/components/Accordion.d.ts +47 -0
  35. package/.dist/components/Accordion.js +294 -0
  36. package/.dist/components/Accordion.js.map +1 -0
  37. package/.dist/components/Box.d.ts +67 -0
  38. package/.dist/components/Box.js +211 -0
  39. package/.dist/components/Box.js.map +1 -0
  40. package/.dist/components/Button.d.ts +28 -0
  41. package/.dist/components/Button.js +118 -0
  42. package/.dist/components/Button.js.map +1 -0
  43. package/.dist/components/Checkbox.d.ts +31 -0
  44. package/.dist/components/Checkbox.js +106 -0
  45. package/.dist/components/Checkbox.js.map +1 -0
  46. package/.dist/components/Collapsible.d.ts +32 -0
  47. package/.dist/components/Collapsible.js +109 -0
  48. package/.dist/components/Collapsible.js.map +1 -0
  49. package/.dist/components/CollapsibleText.d.ts +21 -0
  50. package/.dist/components/CollapsibleText.js +113 -0
  51. package/.dist/components/CollapsibleText.js.map +1 -0
  52. package/.dist/components/Digits.d.ts +20 -0
  53. package/.dist/components/Digits.js +843 -0
  54. package/.dist/components/Digits.js.map +1 -0
  55. package/.dist/components/Drawer.d.ts +44 -0
  56. package/.dist/components/Drawer.js +473 -0
  57. package/.dist/components/Drawer.js.map +1 -0
  58. package/.dist/components/Dropdown.d.ts +61 -0
  59. package/.dist/components/Dropdown.js +367 -0
  60. package/.dist/components/Dropdown.js.map +1 -0
  61. package/.dist/components/Header.d.ts +25 -0
  62. package/.dist/components/Header.js +106 -0
  63. package/.dist/components/Header.js.map +1 -0
  64. package/.dist/components/HotKey.d.ts +14 -0
  65. package/.dist/components/HotKey.js +31 -0
  66. package/.dist/components/HotKey.js.map +1 -0
  67. package/.dist/components/Input.d.ts +45 -0
  68. package/.dist/components/Input.js +1109 -0
  69. package/.dist/components/Input.js.map +1 -0
  70. package/.dist/components/Log.d.ts +16 -0
  71. package/.dist/components/Log.js +122 -0
  72. package/.dist/components/Log.js.map +1 -0
  73. package/.dist/components/Progress.d.ts +21 -0
  74. package/.dist/components/Progress.js +200 -0
  75. package/.dist/components/Progress.js.map +1 -0
  76. package/.dist/components/Scrollable.d.ts +50 -0
  77. package/.dist/components/Scrollable.js +226 -0
  78. package/.dist/components/Scrollable.js.map +1 -0
  79. package/.dist/components/ScrollableList.d.ts +70 -0
  80. package/.dist/components/ScrollableList.js +354 -0
  81. package/.dist/components/ScrollableList.js.map +1 -0
  82. package/.dist/components/Separator.d.ts +21 -0
  83. package/.dist/components/Separator.js +67 -0
  84. package/.dist/components/Separator.js.map +1 -0
  85. package/.dist/components/Slider.d.ts +60 -0
  86. package/.dist/components/Slider.js +341 -0
  87. package/.dist/components/Slider.js.map +1 -0
  88. package/.dist/components/Space.d.ts +19 -0
  89. package/.dist/components/Space.js +45 -0
  90. package/.dist/components/Space.js.map +1 -0
  91. package/.dist/components/Spinner.d.ts +16 -0
  92. package/.dist/components/Spinner.js +48 -0
  93. package/.dist/components/Spinner.js.map +1 -0
  94. package/.dist/components/Stack.d.ts +33 -0
  95. package/.dist/components/Stack.js +285 -0
  96. package/.dist/components/Stack.js.map +1 -0
  97. package/.dist/components/Tabs.d.ts +52 -0
  98. package/.dist/components/Tabs.js +312 -0
  99. package/.dist/components/Tabs.js.map +1 -0
  100. package/.dist/components/Text.d.ts +35 -0
  101. package/.dist/components/Text.js +242 -0
  102. package/.dist/components/Text.js.map +1 -0
  103. package/.dist/components/ToggleGroup.d.ts +26 -0
  104. package/.dist/components/ToggleGroup.js +279 -0
  105. package/.dist/components/ToggleGroup.js.map +1 -0
  106. package/.dist/components/Tree.d.ts +21 -0
  107. package/.dist/components/Tree.js +233 -0
  108. package/.dist/components/Tree.js.map +1 -0
  109. package/.dist/components/Window.d.ts +6 -0
  110. package/.dist/components/Window.js +17 -0
  111. package/.dist/components/Window.js.map +1 -0
  112. package/.dist/components/fonts.d.ts +2 -0
  113. package/.dist/components/fonts.js +39 -0
  114. package/.dist/components/fonts.js.map +1 -0
  115. package/.dist/components/index.d.ts +27 -0
  116. package/.dist/components/index.js +48 -0
  117. package/.dist/components/index.js.map +1 -0
  118. package/.dist/components/types.d.ts +6 -0
  119. package/.dist/components/types.js +20 -0
  120. package/.dist/components/types.js.map +1 -0
  121. package/.dist/components/utility/TrackMouse.d.ts +16 -0
  122. package/.dist/components/utility/TrackMouse.js +53 -0
  123. package/.dist/components/utility/TrackMouse.js.map +1 -0
  124. package/.dist/components/utility/index.d.ts +1 -0
  125. package/.dist/components/utility/index.js +6 -0
  126. package/.dist/components/utility/index.js.map +1 -0
  127. package/.dist/events/index.d.ts +12 -0
  128. package/.dist/events/index.js +20 -0
  129. package/.dist/events/index.js.map +1 -0
  130. package/.dist/events/key.d.ts +15 -0
  131. package/.dist/events/key.js +105 -0
  132. package/.dist/events/key.js.map +1 -0
  133. package/.dist/events/mouse.d.ts +65 -0
  134. package/.dist/events/mouse.js +68 -0
  135. package/.dist/events/mouse.js.map +1 -0
  136. package/.dist/events/window.d.ts +6 -0
  137. package/.dist/events/window.js +3 -0
  138. package/.dist/events/window.js.map +1 -0
  139. package/.dist/geometry.d.ts +178 -0
  140. package/.dist/geometry.js +315 -0
  141. package/.dist/geometry.js.map +1 -0
  142. package/.dist/iTerm2.d.ts +20 -0
  143. package/.dist/iTerm2.js +60 -0
  144. package/.dist/iTerm2.js.map +1 -0
  145. package/.dist/index.d.ts +18 -0
  146. package/.dist/index.js +37 -0
  147. package/.dist/index.js.map +1 -0
  148. package/.dist/inspect.d.ts +2 -0
  149. package/.dist/inspect.js +118 -0
  150. package/.dist/inspect.js.map +1 -0
  151. package/.dist/log.d.ts +12 -0
  152. package/.dist/log.js +56 -0
  153. package/.dist/log.js.map +1 -0
  154. package/.dist/managers/FocusManager.d.ts +28 -0
  155. package/.dist/managers/FocusManager.js +143 -0
  156. package/.dist/managers/FocusManager.js.map +1 -0
  157. package/.dist/managers/ModalManager.d.ts +10 -0
  158. package/.dist/managers/ModalManager.js +67 -0
  159. package/.dist/managers/ModalManager.js.map +1 -0
  160. package/.dist/managers/MouseManager.d.ts +21 -0
  161. package/.dist/managers/MouseManager.js +313 -0
  162. package/.dist/managers/MouseManager.js.map +1 -0
  163. package/.dist/managers/TickManager.d.ts +11 -0
  164. package/.dist/managers/TickManager.js +63 -0
  165. package/.dist/managers/TickManager.js.map +1 -0
  166. package/.dist/sys/alias.d.ts +470 -0
  167. package/.dist/sys/alias.js +487 -0
  168. package/.dist/sys/alias.js.map +1 -0
  169. package/.dist/sys/colors.d.ts +10 -0
  170. package/.dist/sys/colors.js +285 -0
  171. package/.dist/sys/colors.js.map +1 -0
  172. package/.dist/sys/gpmclient.d.ts +11 -0
  173. package/.dist/sys/gpmclient.js +193 -0
  174. package/.dist/sys/gpmclient.js.map +1 -0
  175. package/.dist/sys/index.d.ts +4 -0
  176. package/.dist/sys/index.js +41 -0
  177. package/.dist/sys/index.js.map +1 -0
  178. package/.dist/sys/keys.d.ts +4 -0
  179. package/.dist/sys/keys.js +531 -0
  180. package/.dist/sys/keys.js.map +1 -0
  181. package/.dist/sys/program.d.ts +356 -0
  182. package/.dist/sys/program.js +3739 -0
  183. package/.dist/sys/program.js.map +1 -0
  184. package/.dist/sys/tput.d.ts +297 -0
  185. package/.dist/sys/tput.js +2708 -0
  186. package/.dist/sys/tput.js.map +1 -0
  187. package/.dist/sys/unicode.d.ts +11 -0
  188. package/.dist/sys/unicode.js +619 -0
  189. package/.dist/sys/unicode.js.map +1 -0
  190. package/.dist/sys/usr/linux +0 -0
  191. package/.dist/sys/usr/windows-ansi +0 -0
  192. package/.dist/sys/usr/xterm +0 -0
  193. package/.dist/sys/usr/xterm-256color +0 -0
  194. package/.dist/sys/usr/xterm.termcap +243 -0
  195. package/.dist/sys/usr/xterm.terminfo +1977 -0
  196. package/.dist/terminal.d.ts +7 -0
  197. package/.dist/terminal.js +3 -0
  198. package/.dist/terminal.js.map +1 -0
  199. package/.dist/util.d.ts +22 -0
  200. package/.dist/util.js +79 -0
  201. package/.dist/util.js.map +1 -0
  202. package/LICENSE +24 -0
  203. package/package.json +49 -0
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MouseManager = void 0;
4
+ const geometry_1 = require("../geometry");
5
+ const events_1 = require("../events");
6
+ function mouseKey(x, y) {
7
+ return `${~~x},${~~y}`;
8
+ }
9
+ class MouseManager {
10
+ #prevListener;
11
+ #mouseListeners = new Map();
12
+ #mouseMoveViews = [];
13
+ #mouseDownEvent;
14
+ #mousePosition;
15
+ reset() {
16
+ if (this.#mouseDownEvent || !this.#mousePosition) {
17
+ this.#prevListener = undefined;
18
+ }
19
+ else {
20
+ this.#prevListener = this.getMouseListener(this.#mousePosition.x, this.#mousePosition.y);
21
+ }
22
+ this.#mouseListeners = new Map();
23
+ }
24
+ /**
25
+ * @return boolean Whether the mouse.move targets changed
26
+ */
27
+ commit(system) {
28
+ if (this.#mouseDownEvent || !this.#mousePosition) {
29
+ return false;
30
+ }
31
+ const listener = this.getMouseListener(this.#mousePosition.x, this.#mousePosition.y);
32
+ const prev = new Set(this.#prevListener?.move.map(target => target.view) ?? []);
33
+ const next = new Set(listener?.move.map(target => target.view) ?? []);
34
+ let same = prev.size === next.size;
35
+ if (same) {
36
+ for (const view of prev) {
37
+ if (!next.has(view)) {
38
+ same = false;
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ if (!same) {
44
+ this.trigger({
45
+ type: 'mouse',
46
+ name: 'mouse.move.in',
47
+ button: 'unknown',
48
+ ctrl: false,
49
+ meta: false,
50
+ shift: false,
51
+ ...this.#mousePosition,
52
+ }, system);
53
+ }
54
+ return !same;
55
+ }
56
+ /**
57
+ * Multiple views can claim the mouse.move event; they will all receive it.
58
+ * Only the last view to claim button or wheel events will receive those events.
59
+ */
60
+ registerMouse(view, offset, point, eventNames) {
61
+ const resolved = offset.offset(point);
62
+ const key = mouseKey(resolved.x, resolved.y);
63
+ const target = {
64
+ view,
65
+ offset,
66
+ };
67
+ const listener = this.#mouseListeners.get(key) ?? { move: [] };
68
+ for (const eventName of eventNames) {
69
+ if (eventName === 'mouse.move') {
70
+ // search listener.move - only keep views that are in the current views
71
+ // ancestors
72
+ listener.move.unshift(target);
73
+ }
74
+ else if (eventName.startsWith('mouse.button.')) {
75
+ switch (eventName) {
76
+ case 'mouse.button.left':
77
+ listener.buttonLeft = target;
78
+ break;
79
+ case 'mouse.button.middle':
80
+ listener.buttonMiddle = target;
81
+ break;
82
+ case 'mouse.button.right':
83
+ listener.buttonRight = target;
84
+ break;
85
+ case 'mouse.button.all':
86
+ listener.buttonAll = target;
87
+ break;
88
+ }
89
+ }
90
+ else if (eventName === 'mouse.wheel') {
91
+ listener.wheel = target;
92
+ }
93
+ this.#mouseListeners.set(key, listener);
94
+ }
95
+ }
96
+ checkMouse(view, x, y) {
97
+ const listener = this.getMouseListener(x, y);
98
+ if (!listener) {
99
+ return;
100
+ }
101
+ const ancestors = new Set([view]);
102
+ for (let parent = view.parent; !!parent; parent = parent.parent) {
103
+ ancestors.add(parent);
104
+ }
105
+ ;
106
+ [
107
+ 'buttonAll',
108
+ 'buttonLeft',
109
+ 'buttonMiddle',
110
+ 'buttonRight',
111
+ 'wheel',
112
+ ].forEach(prop => {
113
+ const target = listener[prop];
114
+ if (!target) {
115
+ return;
116
+ }
117
+ listener[prop] = ancestors.has(target.view) ? target : undefined;
118
+ });
119
+ listener.move = listener.move.filter(({ view }) => ancestors.has(view));
120
+ this.#mouseListeners.set(mouseKey(x, y), listener);
121
+ }
122
+ hasMouseDownListener(x, y, event) {
123
+ const listener = this.getMouseListener(x, y);
124
+ if (!listener) {
125
+ return false;
126
+ }
127
+ switch (event.button) {
128
+ case 'left':
129
+ return Boolean(listener.buttonLeft || listener.buttonAll);
130
+ case 'middle':
131
+ return Boolean(listener.buttonMiddle || listener.buttonAll);
132
+ case 'right':
133
+ return Boolean(listener.buttonRight || listener.buttonAll);
134
+ }
135
+ return false;
136
+ }
137
+ getMouseListener(x, y) {
138
+ return this.#mouseListeners.get(mouseKey(x, y));
139
+ }
140
+ trigger(systemEvent, system) {
141
+ if (systemEvent.name === 'mouse.button.down' &&
142
+ !this.hasMouseDownListener(systemEvent.x, systemEvent.y, systemEvent)) {
143
+ system.focusManager.unfocus();
144
+ return;
145
+ }
146
+ this.#mousePosition = new geometry_1.Point(systemEvent.x, systemEvent.y);
147
+ if (systemEvent.name === 'mouse.move.in' && this.#mouseDownEvent) {
148
+ return this.trigger({
149
+ ...systemEvent,
150
+ name: 'mouse.button.up',
151
+ button: this.#mouseDownEvent.button,
152
+ }, system);
153
+ }
154
+ if (this.#mouseDownEvent) {
155
+ // ignore scroll wheel
156
+ if (!(0, events_1.isMouseButton)(systemEvent)) {
157
+ return;
158
+ }
159
+ this.#dragMouse(systemEvent, this.#mouseDownEvent, system);
160
+ if (systemEvent.name === 'mouse.button.up') {
161
+ this.#moveMouse({ ...systemEvent, name: 'mouse.move.in' }, system);
162
+ }
163
+ }
164
+ else if ((0, events_1.isMouseButton)(systemEvent)) {
165
+ this.#pressMouse(systemEvent, system);
166
+ }
167
+ else if ((0, events_1.isMouseWheel)(systemEvent)) {
168
+ this.#scrollMouse(systemEvent, system);
169
+ }
170
+ else {
171
+ this.#moveMouse(systemEvent, system);
172
+ }
173
+ }
174
+ #getListener(systemEvent) {
175
+ return this.#getListeners(systemEvent)[0];
176
+ }
177
+ #getListeners(systemEvent) {
178
+ const listener = this.getMouseListener(systemEvent.x, systemEvent.y);
179
+ if (!listener) {
180
+ return [];
181
+ }
182
+ if ((0, events_1.isMouseButton)(systemEvent)) {
183
+ let target;
184
+ switch (systemEvent.button) {
185
+ case 'left':
186
+ target = listener.buttonLeft ?? listener.buttonAll;
187
+ break;
188
+ case 'middle':
189
+ target = listener.buttonMiddle ?? listener.buttonAll;
190
+ break;
191
+ case 'right':
192
+ target = listener.buttonRight ?? listener.buttonAll;
193
+ break;
194
+ default:
195
+ return [];
196
+ }
197
+ return target ? [target] : [];
198
+ }
199
+ else if ((0, events_1.isMouseWheel)(systemEvent)) {
200
+ return listener.wheel ? [listener.wheel] : [];
201
+ }
202
+ else {
203
+ return listener.move;
204
+ }
205
+ }
206
+ #sendMouse(systemEvent, eventName, target, system) {
207
+ const position = new geometry_1.Point(systemEvent.x - target.offset.x, systemEvent.y - target.offset.y);
208
+ const event = {
209
+ ...systemEvent,
210
+ name: eventName,
211
+ position,
212
+ };
213
+ target.view.receiveMouse(event, system);
214
+ }
215
+ #dragMouse(systemEvent, mouseDown, unboundSystem) {
216
+ if (systemEvent.name === 'mouse.button.up') {
217
+ this.#mouseDownEvent = undefined;
218
+ }
219
+ const { target } = mouseDown;
220
+ if (!target) {
221
+ return;
222
+ }
223
+ const isInside = this.#getListener(systemEvent)?.view === target.view;
224
+ const system = unboundSystem.bind(target.view);
225
+ if (systemEvent.name === 'mouse.button.up') {
226
+ if (isInside) {
227
+ this.#sendMouse(systemEvent, 'mouse.button.up', target, system);
228
+ }
229
+ else {
230
+ this.#sendMouse(systemEvent, 'mouse.button.cancel', target, system);
231
+ }
232
+ }
233
+ else {
234
+ if (isInside && target.wasInside) {
235
+ this.#sendMouse(systemEvent, 'mouse.button.dragInside', target, system);
236
+ }
237
+ else if (isInside) {
238
+ this.#sendMouse(systemEvent, 'mouse.button.enter', target, system);
239
+ }
240
+ else if (target.wasInside) {
241
+ this.#sendMouse(systemEvent, 'mouse.button.exit', target, system);
242
+ }
243
+ else {
244
+ this.#sendMouse(systemEvent, 'mouse.button.dragOutside', target, system);
245
+ }
246
+ target.wasInside = isInside;
247
+ this.#mouseDownEvent = { ...mouseDown, target };
248
+ }
249
+ }
250
+ #pressMouse(systemEvent, system) {
251
+ const listener = this.#getListener(systemEvent);
252
+ if (listener) {
253
+ this.#sendMouse(systemEvent, 'mouse.button.down', listener, system.bind(listener.view));
254
+ this.#mouseDownEvent = {
255
+ target: { view: listener.view, offset: listener.offset, wasInside: true },
256
+ button: systemEvent.button,
257
+ };
258
+ }
259
+ }
260
+ #scrollMouse(systemEvent, system) {
261
+ const listener = this.#getListener(systemEvent);
262
+ if (listener) {
263
+ this.#sendMouse(systemEvent, systemEvent.name, listener, system.bind(listener.view));
264
+ }
265
+ }
266
+ #moveMouse(systemEvent, unboundSystem) {
267
+ const listeners = this.#getListeners(systemEvent);
268
+ let prevListeners = this.#mouseMoveViews;
269
+ let isFirst = true;
270
+ for (const listener of listeners) {
271
+ let didEnter = true;
272
+ prevListeners = prevListeners.filter(prev => {
273
+ if (prev.view === listener.view) {
274
+ didEnter = false;
275
+ return false;
276
+ }
277
+ return true;
278
+ });
279
+ const system = unboundSystem.bind(listener.view);
280
+ if (didEnter) {
281
+ this.#sendMouse(systemEvent, 'mouse.move.enter', listener, system);
282
+ }
283
+ if (isFirst) {
284
+ this.#sendMouse(systemEvent, 'mouse.move.in', listener, system);
285
+ }
286
+ else {
287
+ this.#sendMouse(systemEvent, 'mouse.move.below', listener, system);
288
+ }
289
+ isFirst = false;
290
+ }
291
+ this.#mouseMoveViews = listeners;
292
+ for (const listener of prevListeners) {
293
+ const system = unboundSystem.bind(listener.view);
294
+ this.#sendMouse(systemEvent, 'mouse.move.exit', listener, system);
295
+ }
296
+ }
297
+ }
298
+ exports.MouseManager = MouseManager;
299
+ function checkEventNames(systemEvent) {
300
+ switch (systemEvent.name) {
301
+ case 'mouse.move.in':
302
+ return ['mouse.move'];
303
+ case 'mouse.button.down':
304
+ case 'mouse.button.up':
305
+ return [`mouse.button.${systemEvent.button}`, 'mouse.button.all'];
306
+ case 'mouse.wheel.up':
307
+ case 'mouse.wheel.down':
308
+ case 'mouse.wheel.left':
309
+ case 'mouse.wheel.right':
310
+ return ['mouse.wheel'];
311
+ }
312
+ }
313
+ //# sourceMappingURL=MouseManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MouseManager.js","sourceRoot":"","sources":["../../lib/managers/MouseManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { View } from '../View';
2
+ export declare class TickManager {
3
+ #private;
4
+ constructor(render: () => void);
5
+ reset(): void;
6
+ endRender(): void;
7
+ stop(): void;
8
+ registerTick(view: View): void;
9
+ needsRender(): void;
10
+ triggerTick(dt: number): void;
11
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickManager = void 0;
4
+ class TickManager {
5
+ #render;
6
+ #tickTimer;
7
+ #tickViews = new Set();
8
+ #needsRender = false;
9
+ constructor(render) {
10
+ this.#render = render;
11
+ }
12
+ reset() {
13
+ this.#tickViews = new Set();
14
+ }
15
+ endRender() {
16
+ if (!this.#tickViews.size) {
17
+ this.#stop();
18
+ }
19
+ else if (this.#tickViews.size) {
20
+ this.#start();
21
+ }
22
+ }
23
+ stop() {
24
+ this.#stop();
25
+ }
26
+ #start() {
27
+ if (this.#tickTimer) {
28
+ return;
29
+ }
30
+ let prevTime = Date.now();
31
+ this.#tickTimer = setInterval(() => {
32
+ const nextTime = Date.now();
33
+ this.triggerTick(nextTime - (prevTime ?? nextTime));
34
+ prevTime = nextTime;
35
+ }, 16);
36
+ }
37
+ #stop() {
38
+ if (!this.#tickTimer) {
39
+ return;
40
+ }
41
+ clearInterval(this.#tickTimer);
42
+ this.#tickTimer = undefined;
43
+ }
44
+ registerTick(view) {
45
+ this.#tickViews.add(view);
46
+ }
47
+ needsRender() {
48
+ this.#needsRender = true;
49
+ this.#start();
50
+ }
51
+ triggerTick(dt) {
52
+ let needsRender = this.#needsRender;
53
+ for (const view of this.#tickViews) {
54
+ needsRender = view.receiveTick(dt) || needsRender;
55
+ }
56
+ if (needsRender) {
57
+ this.#render();
58
+ this.#needsRender = false;
59
+ }
60
+ }
61
+ }
62
+ exports.TickManager = TickManager;
63
+ //# sourceMappingURL=TickManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickManager.js","sourceRoot":"","sources":["../../lib/managers/TickManager.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACtB,OAAO,CAAY;IACnB,UAAU,CAA4C;IACtD,UAAU,GAAc,IAAI,GAAG,EAAE,CAAA;IACjC,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAA;YACnD,QAAQ,GAAG,QAAQ,CAAA;QACrB,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,YAAY,CAAC,IAAU;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAA;QACnD,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;CACF;AArED,kCAqEC"}