@oidoid/void 0.1.7 → 0.1.8

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 (168) hide show
  1. package/dist/public/index.js +1 -1
  2. package/dist/public/index.js.map +1 -1
  3. package/dist/public/{void-v0.1.7+20260106.c6b562a.html → void-v0.1.8+20260106.f2ce523.html} +2 -2
  4. package/dist/src/demo/ents/clock.test.d.ts +2 -0
  5. package/dist/src/demo/ents/clock.test.d.ts.map +1 -0
  6. package/dist/src/demo/ents/clock.test.js +24 -0
  7. package/dist/src/demo/ents/clock.test.js.map +1 -0
  8. package/dist/src/demo/tsconfig.json +3 -3
  9. package/dist/src/ents/cursor.test.d.ts +2 -0
  10. package/dist/src/ents/cursor.test.d.ts.map +1 -0
  11. package/dist/src/ents/cursor.test.js +92 -0
  12. package/dist/src/ents/cursor.test.js.map +1 -0
  13. package/dist/src/ents/ent-query.test.d.ts +11 -0
  14. package/dist/src/ents/ent-query.test.d.ts.map +1 -0
  15. package/dist/src/ents/ent-query.test.js +63 -0
  16. package/dist/src/ents/ent-query.test.js.map +1 -0
  17. package/dist/src/graphics/atlas-parser.test.d.ts +2 -0
  18. package/dist/src/graphics/atlas-parser.test.d.ts.map +1 -0
  19. package/dist/src/graphics/atlas-parser.test.js +100 -0
  20. package/dist/src/graphics/atlas-parser.test.js.map +1 -0
  21. package/dist/src/graphics/cam.test.d.ts +2 -0
  22. package/dist/src/graphics/cam.test.d.ts.map +1 -0
  23. package/dist/src/graphics/cam.test.js +456 -0
  24. package/dist/src/graphics/cam.test.js.map +1 -0
  25. package/dist/src/graphics/layer.test.d.ts +2 -0
  26. package/dist/src/graphics/layer.test.d.ts.map +1 -0
  27. package/dist/src/graphics/layer.test.js +23 -0
  28. package/dist/src/graphics/layer.test.js.map +1 -0
  29. package/dist/src/graphics/renderer.test.d.ts +2 -0
  30. package/dist/src/graphics/renderer.test.d.ts.map +1 -0
  31. package/dist/src/graphics/renderer.test.js +92 -0
  32. package/dist/src/graphics/renderer.test.js.map +1 -0
  33. package/dist/src/graphics/sprite.test.d.ts +2 -0
  34. package/dist/src/graphics/sprite.test.d.ts.map +1 -0
  35. package/dist/src/graphics/sprite.test.js +582 -0
  36. package/dist/src/graphics/sprite.test.js.map +1 -0
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +0 -1
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/input/context-menu.test.d.ts +2 -0
  41. package/dist/src/input/context-menu.test.d.ts.map +1 -0
  42. package/dist/src/input/context-menu.test.js +111 -0
  43. package/dist/src/input/context-menu.test.js.map +1 -0
  44. package/dist/src/input/gamepad.test.d.ts +2 -0
  45. package/dist/src/input/gamepad.test.d.ts.map +1 -0
  46. package/dist/src/input/gamepad.test.js +172 -0
  47. package/dist/src/input/gamepad.test.js.map +1 -0
  48. package/dist/src/input/input.test.d.ts +2 -0
  49. package/dist/src/input/input.test.d.ts.map +1 -0
  50. package/dist/src/input/input.test.js +1146 -0
  51. package/dist/src/input/input.test.js.map +1 -0
  52. package/dist/src/input/keyboard.test.d.ts +2 -0
  53. package/dist/src/input/keyboard.test.d.ts.map +1 -0
  54. package/dist/src/input/keyboard.test.js +159 -0
  55. package/dist/src/input/keyboard.test.js.map +1 -0
  56. package/dist/src/input/pointer.test.d.ts +2 -0
  57. package/dist/src/input/pointer.test.d.ts.map +1 -0
  58. package/dist/src/input/pointer.test.js +339 -0
  59. package/dist/src/input/pointer.test.js.map +1 -0
  60. package/dist/src/input/wheel.test.d.ts +2 -0
  61. package/dist/src/input/wheel.test.d.ts.map +1 -0
  62. package/dist/src/input/wheel.test.js +92 -0
  63. package/dist/src/input/wheel.test.js.map +1 -0
  64. package/dist/src/level/level-parser.test.d.ts +20 -0
  65. package/dist/src/level/level-parser.test.d.ts.map +1 -0
  66. package/dist/src/level/level-parser.test.js +340 -0
  67. package/dist/src/level/level-parser.test.js.map +1 -0
  68. package/dist/src/looper.test.d.ts +2 -0
  69. package/dist/src/looper.test.d.ts.map +1 -0
  70. package/dist/src/looper.test.js +128 -0
  71. package/dist/src/looper.test.js.map +1 -0
  72. package/dist/src/mem/pool.test.d.ts +2 -0
  73. package/dist/src/mem/pool.test.d.ts.map +1 -0
  74. package/dist/src/mem/pool.test.js +120 -0
  75. package/dist/src/mem/pool.test.js.map +1 -0
  76. package/dist/src/random/random.test.d.ts +2 -0
  77. package/dist/src/random/random.test.d.ts.map +1 -0
  78. package/dist/src/random/random.test.js +36 -0
  79. package/dist/src/random/random.test.js.map +1 -0
  80. package/dist/src/storage/local-storage.test.d.ts +2 -0
  81. package/dist/src/storage/local-storage.test.d.ts.map +1 -0
  82. package/dist/src/storage/local-storage.test.js +105 -0
  83. package/dist/src/storage/local-storage.test.js.map +1 -0
  84. package/dist/src/test/assert.d.ts +5 -0
  85. package/dist/src/test/assert.d.ts.map +1 -0
  86. package/dist/src/test/assert.js +6 -0
  87. package/dist/src/test/assert.js.map +1 -0
  88. package/dist/src/test/device-pixel-ratio-mock.d.ts +6 -0
  89. package/dist/src/test/device-pixel-ratio-mock.d.ts.map +1 -0
  90. package/dist/src/test/device-pixel-ratio-mock.js +10 -0
  91. package/dist/src/test/device-pixel-ratio-mock.js.map +1 -0
  92. package/dist/src/test/index.d.ts +5 -0
  93. package/dist/src/test/index.d.ts.map +1 -0
  94. package/dist/src/test/index.js +5 -0
  95. package/dist/src/test/index.js.map +1 -0
  96. package/dist/src/test/navigator-gamepads-mock.d.ts +7 -0
  97. package/dist/src/test/navigator-gamepads-mock.d.ts.map +1 -0
  98. package/dist/src/test/navigator-gamepads-mock.js +14 -0
  99. package/dist/src/test/navigator-gamepads-mock.js.map +1 -0
  100. package/dist/src/test/secure-context-mock.d.ts +6 -0
  101. package/dist/src/test/secure-context-mock.d.ts.map +1 -0
  102. package/dist/src/test/secure-context-mock.js +10 -0
  103. package/dist/src/test/secure-context-mock.js.map +1 -0
  104. package/dist/src/test/test-element.d.ts +2 -0
  105. package/dist/src/test/test-element.d.ts.map +1 -0
  106. package/dist/src/test/test-element.js +8 -0
  107. package/dist/src/test/test-element.js.map +1 -0
  108. package/dist/src/test/test-event.d.ts +17 -0
  109. package/dist/src/test/test-event.d.ts.map +1 -0
  110. package/dist/src/test/test-event.js +26 -0
  111. package/dist/src/test/test-event.js.map +1 -0
  112. package/dist/src/test/tsconfig.json +30 -0
  113. package/dist/src/text/text-layout.test.d.ts +2 -0
  114. package/dist/src/text/text-layout.test.d.ts.map +1 -0
  115. package/dist/src/text/text-layout.test.js +717 -0
  116. package/dist/src/text/text-layout.test.js.map +1 -0
  117. package/dist/src/tsconfig.json +3 -3
  118. package/dist/src/types/geo.test.d.ts +2 -0
  119. package/dist/src/types/geo.test.d.ts.map +1 -0
  120. package/dist/src/types/geo.test.js +657 -0
  121. package/dist/src/types/geo.test.js.map +1 -0
  122. package/dist/src/types/time.test.d.ts +2 -0
  123. package/dist/src/types/time.test.d.ts.map +1 -0
  124. package/dist/src/types/time.test.js +27 -0
  125. package/dist/src/types/time.test.js.map +1 -0
  126. package/dist/src/utils/async-util.test.d.ts +2 -0
  127. package/dist/src/utils/async-util.test.d.ts.map +1 -0
  128. package/dist/src/utils/async-util.test.js +55 -0
  129. package/dist/src/utils/async-util.test.js.map +1 -0
  130. package/dist/src/utils/color-util.test.d.ts +2 -0
  131. package/dist/src/utils/color-util.test.d.ts.map +1 -0
  132. package/dist/src/utils/color-util.test.js +20 -0
  133. package/dist/src/utils/color-util.test.js.map +1 -0
  134. package/dist/src/utils/debug.test.d.ts +2 -0
  135. package/dist/src/utils/debug.test.d.ts.map +1 -0
  136. package/dist/src/utils/debug.test.js +61 -0
  137. package/dist/src/utils/debug.test.js.map +1 -0
  138. package/dist/src/utils/delay-interval.test.d.ts +2 -0
  139. package/dist/src/utils/delay-interval.test.d.ts.map +1 -0
  140. package/dist/src/utils/delay-interval.test.js +91 -0
  141. package/dist/src/utils/delay-interval.test.js.map +1 -0
  142. package/dist/src/utils/math.test.d.ts +2 -0
  143. package/dist/src/utils/math.test.d.ts.map +1 -0
  144. package/dist/src/utils/math.test.js +10 -0
  145. package/dist/src/utils/math.test.js.map +1 -0
  146. package/dist/src/utils/str-util.test.d.ts +2 -0
  147. package/dist/src/utils/str-util.test.d.ts.map +1 -0
  148. package/dist/src/utils/str-util.test.js +13 -0
  149. package/dist/src/utils/str-util.test.js.map +1 -0
  150. package/dist/tools/atlas-pack/atlas-json-parser.test.d.ts +2 -0
  151. package/dist/tools/atlas-pack/atlas-json-parser.test.d.ts.map +1 -0
  152. package/dist/tools/atlas-pack/atlas-json-parser.test.js +2109 -0
  153. package/dist/tools/atlas-pack/atlas-json-parser.test.js.map +1 -0
  154. package/dist/tools/atlas-pack/atlas.test.aseprite.json +4499 -0
  155. package/dist/tools/bundle/bundle.js +1 -1
  156. package/dist/tools/types/config-file.test.d.ts +2 -0
  157. package/dist/tools/types/config-file.test.d.ts.map +1 -0
  158. package/dist/tools/types/config-file.test.js +68 -0
  159. package/dist/tools/types/config-file.test.js.map +1 -0
  160. package/dist/tools/types/config.test.d.ts +2 -0
  161. package/dist/tools/types/config.test.d.ts.map +1 -0
  162. package/dist/tools/types/config.test.js +125 -0
  163. package/dist/tools/types/config.test.js.map +1 -0
  164. package/dist/tools/utils/argv.test.d.ts +9 -0
  165. package/dist/tools/utils/argv.test.d.ts.map +1 -0
  166. package/dist/tools/utils/argv.test.js +42 -0
  167. package/dist/tools/utils/argv.test.js.map +1 -0
  168. package/package.json +7 -3
@@ -0,0 +1,582 @@
1
+ import { describe, test } from 'node:test';
2
+ import { assert } from "../test/assert.js";
3
+ import { animCels, celMillis } from "./atlas.js";
4
+ import { Layer } from "./layer.js";
5
+ import { Drawable, diagonalize, drawableBytes, Sprite, truncDrawableEpsilon } from "./sprite.js";
6
+ const animA = {
7
+ cels: 10,
8
+ id: 0,
9
+ w: 10,
10
+ h: 20,
11
+ hitbox: { x: 1, y: 2, w: 3, h: 4 },
12
+ hurtbox: { x: 1, y: 2, w: 3, h: 4 }
13
+ };
14
+ const animB = {
15
+ cels: animCels,
16
+ id: 1,
17
+ w: 30,
18
+ h: 40,
19
+ hitbox: { x: 1, y: 2, w: 3, h: 4 },
20
+ hurtbox: { x: 1, y: 2, w: 3, h: 4 }
21
+ };
22
+ const atlas = {
23
+ anim: { 'stem--AnimA': animA, 'stem--AnimB': animB },
24
+ celXYWH: [],
25
+ tags: ['stem--AnimA', 'stem--AnimB']
26
+ };
27
+ test('above() layer', () => {
28
+ const l = TestDrawable();
29
+ const r = TestDrawable();
30
+ l.z = 1;
31
+ r.z = 2;
32
+ assert(l.above(r), false);
33
+ assert(r.above(l), true);
34
+ l.z = 2;
35
+ r.z = 2;
36
+ assert(l.above(r), false);
37
+ assert(r.above(l), false);
38
+ l.z = 3;
39
+ r.z = 2;
40
+ assert(l.above(r), true);
41
+ assert(r.above(l), false);
42
+ });
43
+ test('above() zend', () => {
44
+ const l = TestDrawable();
45
+ const r = TestDrawable();
46
+ l.h = 10;
47
+ r.h = 100;
48
+ assert(l.above(r), false);
49
+ assert(r.above(l), false);
50
+ l.zend = true;
51
+ assert(l.above(r), true);
52
+ assert(r.above(l), false);
53
+ r.zend = true;
54
+ assert(l.above(r), false);
55
+ assert(r.above(l), true);
56
+ });
57
+ test('cel', () => {
58
+ const pool = TestPool();
59
+ const draw = TestDrawable(pool, 0);
60
+ assert(draw.cel, 0);
61
+ assert(toHex(pool), '00000000000000000000000000000000');
62
+ draw.cel = 1;
63
+ assert(draw.cel, 1);
64
+ assert(toHex(pool), '00000000000000000000010000000000');
65
+ draw.cel = animCels;
66
+ assert(draw.cel, animCels);
67
+ assert(toHex(pool), '00000000000000000000100000000000');
68
+ draw.cel = animCels * 2 - 1;
69
+ assert(draw.cel, animCels * 2 - 1);
70
+ assert(toHex(pool), '000000000000000000001f0000000000');
71
+ draw.cel = animCels * 2;
72
+ assert(draw.cel, 0);
73
+ assert(toHex(pool), '00000000000000000000000000000000');
74
+ });
75
+ test('clips()', () => {
76
+ const draw = TestDrawable();
77
+ assert(draw.clips({ x: 1, y: 1 }), false);
78
+ draw.w = draw.h = 10;
79
+ assert(draw.clips({ x: 1, y: 1 }), true);
80
+ assert(draw.clips({ x: 11, y: 11 }), false);
81
+ });
82
+ describe('clipsZ()', () => {
83
+ test('same layer type delegates to clips()', () => {
84
+ const a = TestSprite();
85
+ const b = TestSprite();
86
+ a.tag = 'stem--AnimA';
87
+ b.tag = 'stem--AnimA';
88
+ a.z = Layer.A;
89
+ b.z = Layer.B;
90
+ const cam = { x: 100, y: 100 };
91
+ assert(a.clipsZ(b, cam), true);
92
+ assert(b.clipsZ(a, cam), true);
93
+ });
94
+ test('different layer types adjusts for cam', () => {
95
+ const world = TestSprite();
96
+ world.tag = 'stem--AnimA';
97
+ world.z = Layer.A;
98
+ const ui = TestSprite();
99
+ ui.tag = 'stem--AnimA';
100
+ ui.z = Layer.UIA;
101
+ const cam = { x: 50, y: 50 };
102
+ assert(world.clipsZ(ui, cam), false);
103
+ assert(ui.clipsZ(world, cam), false);
104
+ world.x = 50;
105
+ world.y = 50;
106
+ assert(world.clipsZ(ui, cam), true);
107
+ assert(ui.clipsZ(world, cam), true);
108
+ });
109
+ test('UI checking world adjusts with negative offset', () => {
110
+ const world = TestSprite();
111
+ world.tag = 'stem--AnimA';
112
+ world.z = Layer.A;
113
+ const ui = TestSprite();
114
+ ui.tag = 'stem--AnimA';
115
+ ui.z = Layer.UIA;
116
+ const cam = { x: 50, y: 50 };
117
+ assert(ui.clipsZ(world, cam), false);
118
+ assert(world.clipsZ(ui, cam), false);
119
+ ui.x = -50;
120
+ ui.y = -50;
121
+ assert(ui.clipsZ(world, cam), true);
122
+ assert(world.clipsZ(ui, cam), true);
123
+ });
124
+ });
125
+ test('flipX', () => {
126
+ const pool = TestPool();
127
+ const draw = TestDrawable(pool, 0);
128
+ assert(draw.flipX, false);
129
+ assert(toHex(pool), '00000000000000000000000000000000');
130
+ draw.flipX = true;
131
+ assert(draw.flipX, true);
132
+ assert(toHex(pool), '00000000000040000000000000000000');
133
+ draw.flipX = false;
134
+ assert(draw.flipX, false);
135
+ assert(toHex(pool), '00000000000000000000000000000000');
136
+ });
137
+ test('flipY', () => {
138
+ const pool = TestPool();
139
+ const draw = TestDrawable(pool, 0);
140
+ assert(draw.flipY, false);
141
+ assert(toHex(pool), '00000000000000000000000000000000');
142
+ draw.flipY = true;
143
+ assert(draw.flipY, true);
144
+ assert(toHex(pool), '00000000000020000000000000000000');
145
+ draw.flipY = false;
146
+ assert(draw.flipY, false);
147
+ assert(toHex(pool), '00000000000000000000000000000000');
148
+ });
149
+ test('height', () => {
150
+ const pool = TestPool();
151
+ const draw = TestDrawable(pool, 0);
152
+ assert(draw.h, 0);
153
+ assert(toHex(pool), '00000000000000000000000000000000');
154
+ draw.h = 1;
155
+ assert(draw.h, 1);
156
+ assert(toHex(pool), '00000000000000001000000000000000');
157
+ draw.h = 1024;
158
+ assert(draw.h, 1024);
159
+ assert(toHex(pool), '00000000000000000040000000000000');
160
+ draw.h = 4095;
161
+ assert(draw.h, 4095);
162
+ assert(toHex(pool), '0000000000000000f0ff000000000000');
163
+ draw.h = 4096;
164
+ assert(draw.h, 0);
165
+ assert(toHex(pool), '00000000000000000000000000000000');
166
+ });
167
+ test('index', () => {
168
+ const draw = TestDrawable();
169
+ assert(draw.i, 0);
170
+ draw.i = 1;
171
+ assert(draw.i, 1);
172
+ });
173
+ test('init()', () => {
174
+ const pool = TestPool();
175
+ const draw = TestDrawable(pool, 0);
176
+ draw.cel = 5;
177
+ draw.flipX = true;
178
+ draw.flipY = true;
179
+ draw.h = 100;
180
+ draw.id = 42;
181
+ draw.stretch = true;
182
+ draw.visible = true;
183
+ draw.w = 200;
184
+ draw.x = 10;
185
+ draw.y = 20;
186
+ draw.z = 10;
187
+ draw.zend = true;
188
+ draw.init();
189
+ assert(draw.cel, 0);
190
+ assert(draw.flipX, false);
191
+ assert(draw.flipY, false);
192
+ assert(draw.h, 0);
193
+ assert(draw.id, 0);
194
+ assert(draw.stretch, false);
195
+ assert(draw.visible, true);
196
+ assert(draw.w, 0);
197
+ assert(draw.x, 0);
198
+ assert(draw.y, 0);
199
+ assert(draw.z, Layer.Bottom);
200
+ assert(draw.zend, false);
201
+ });
202
+ test('id', () => {
203
+ const pool = TestPool();
204
+ const draw = TestDrawable(pool, 0);
205
+ assert(draw.id, 0);
206
+ assert(toHex(pool), '00000000000000000000000000000000');
207
+ draw.id = 1;
208
+ assert(draw.id, 1);
209
+ assert(toHex(pool), '00000000000000000000200000000000');
210
+ draw.id = 1023;
211
+ assert(draw.id, 1023);
212
+ assert(toHex(pool), '00000000000000000000e07f00000000');
213
+ draw.id = 1024;
214
+ assert(draw.id, 1024);
215
+ assert(toHex(pool), '00000000000000000000008000000000');
216
+ draw.id = 2047;
217
+ assert(draw.id, 2047);
218
+ assert(toHex(pool), '00000000000000000000e0ff00000000');
219
+ draw.id = 2048;
220
+ assert(draw.id, 0);
221
+ assert(toHex(pool), '00000000000000000000000000000000');
222
+ });
223
+ test('stretch', () => {
224
+ const pool = TestPool();
225
+ const draw = TestDrawable(pool, 0);
226
+ assert(draw.stretch, false);
227
+ assert(toHex(pool), '00000000000000000000000000000000');
228
+ draw.stretch = true;
229
+ assert(draw.stretch, true);
230
+ assert(toHex(pool), '00000000000080000000000000000000');
231
+ draw.stretch = false;
232
+ assert(draw.stretch, false);
233
+ assert(toHex(pool), '00000000000000000000000000000000');
234
+ });
235
+ test('visible', () => {
236
+ const pool = TestPool();
237
+ const draw = TestDrawable(pool, 0);
238
+ assert(draw.visible, false);
239
+ assert(toHex(pool), '00000000000000000000000000000000');
240
+ draw.visible = true;
241
+ assert(draw.visible, true);
242
+ assert(toHex(pool), '00000000000000000000000001000000');
243
+ draw.visible = false;
244
+ assert(draw.visible, false);
245
+ assert(toHex(pool), '00000000000000000000000000000000');
246
+ });
247
+ test('width', () => {
248
+ const pool = TestPool();
249
+ const draw = TestDrawable(pool, 0);
250
+ assert(draw.w, 0);
251
+ assert(toHex(pool), '00000000000000000000000000000000');
252
+ draw.w = 1;
253
+ assert(draw.w, 1);
254
+ assert(toHex(pool), '00000000000000010000000000000000');
255
+ draw.w = 4095;
256
+ assert(draw.w, 4095);
257
+ assert(toHex(pool), '00000000000000ff0f00000000000000');
258
+ draw.w = 4096;
259
+ assert(draw.w, 0);
260
+ assert(toHex(pool), '00000000000000000000000000000000');
261
+ });
262
+ test('x', () => {
263
+ const pool = TestPool();
264
+ const draw = TestDrawable(pool, 0);
265
+ draw.x = -131073;
266
+ assert(draw.x, 131071);
267
+ assert(toHex(pool), 'c0ff7f00000000000000000000000000');
268
+ draw.x = -131072.015625;
269
+ assert(draw.x, 131071.984375);
270
+ assert(toHex(pool), 'ffff7f00000000000000000000000000');
271
+ draw.x = -131072;
272
+ assert(draw.x, -131072);
273
+ assert(toHex(pool), '00008000000000000000000000000000');
274
+ draw.x = -0.999;
275
+ assert(draw.x, -0.984375);
276
+ assert(toHex(pool), 'c1ffff00000000000000000000000000');
277
+ draw.x = -0.984375;
278
+ assert(draw.x, -0.984375);
279
+ assert(toHex(pool), 'c1ffff00000000000000000000000000');
280
+ draw.x = -0.015625;
281
+ assert(draw.x, -0.015625);
282
+ assert(toHex(pool), 'ffffff00000000000000000000000000');
283
+ draw.x = 0;
284
+ assert(draw.x, 0);
285
+ assert(toHex(pool), '00000000000000000000000000000000');
286
+ draw.x = 0.015625;
287
+ assert(draw.x, 0.015625);
288
+ assert(toHex(pool), '01000000000000000000000000000000');
289
+ draw.x = 0.984375;
290
+ assert(draw.x, 0.984375);
291
+ assert(toHex(pool), '3f000000000000000000000000000000');
292
+ draw.x = 0.999;
293
+ assert(draw.x, 0.984375);
294
+ assert(toHex(pool), '3f000000000000000000000000000000');
295
+ draw.x = 1;
296
+ assert(draw.x, 1);
297
+ assert(toHex(pool), '40000000000000000000000000000000');
298
+ draw.x = 131071.984375;
299
+ assert(draw.x, 131071.984375);
300
+ assert(toHex(pool), 'ffff7f00000000000000000000000000');
301
+ draw.x = 131072;
302
+ assert(draw.x, -131072);
303
+ assert(toHex(pool), '00008000000000000000000000000000');
304
+ });
305
+ test('y', () => {
306
+ const pool = TestPool();
307
+ const draw = TestDrawable(pool, 0);
308
+ draw.y = -131073;
309
+ assert(draw.y, 131071);
310
+ assert(toHex(pool), '000000c0ff7f00000000000000000000');
311
+ draw.y = -131072.015625;
312
+ assert(draw.y, 131071.984375);
313
+ assert(toHex(pool), '000000ffff7f00000000000000000000');
314
+ draw.y = -131072;
315
+ assert(draw.y, -131072);
316
+ assert(toHex(pool), '00000000008000000000000000000000');
317
+ draw.y = -0.999;
318
+ assert(draw.y, -0.984375);
319
+ assert(toHex(pool), '000000c1ffff00000000000000000000');
320
+ draw.y = -0.984375;
321
+ assert(draw.y, -0.984375);
322
+ assert(toHex(pool), '000000c1ffff00000000000000000000');
323
+ draw.y = -0.015625;
324
+ assert(draw.y, -0.015625);
325
+ assert(toHex(pool), '000000ffffff00000000000000000000');
326
+ draw.y = 0;
327
+ assert(draw.y, 0);
328
+ assert(toHex(pool), '00000000000000000000000000000000');
329
+ draw.y = 0.015625;
330
+ assert(draw.y, 0.015625);
331
+ assert(toHex(pool), '00000001000000000000000000000000');
332
+ draw.y = 0.984375;
333
+ assert(draw.y, 0.984375);
334
+ assert(toHex(pool), '0000003f000000000000000000000000');
335
+ draw.y = 0.999;
336
+ assert(draw.y, 0.984375);
337
+ assert(toHex(pool), '0000003f000000000000000000000000');
338
+ draw.y = 1;
339
+ assert(draw.y, 1);
340
+ assert(toHex(pool), '00000040000000000000000000000000');
341
+ draw.y = 131071.984375;
342
+ assert(draw.y, 131071.984375);
343
+ assert(toHex(pool), '000000ffff7f00000000000000000000');
344
+ draw.y = 131072;
345
+ assert(draw.y, -131072);
346
+ assert(toHex(pool), '00000000008000000000000000000000');
347
+ });
348
+ test('z', () => {
349
+ const pool = TestPool();
350
+ const draw = TestDrawable(pool, 0);
351
+ draw.z = 0;
352
+ assert(draw.z, 0);
353
+ assert(toHex(pool), '00000000000000000000000000000000');
354
+ draw.z = 1;
355
+ assert(draw.z, 1);
356
+ assert(toHex(pool), '00000000000001000000000000000000');
357
+ draw.z = Layer.Top;
358
+ assert(draw.z, Layer.Top);
359
+ assert(toHex(pool), '0000000000000f000000000000000000');
360
+ draw.z = (Layer.Top + 1);
361
+ assert(draw.z, 0);
362
+ assert(toHex(pool), '00000000000000000000000000000000');
363
+ });
364
+ test('zend', () => {
365
+ const pool = TestPool();
366
+ const draw = TestDrawable(pool, 0);
367
+ assert(draw.zend, false);
368
+ assert(toHex(pool), '00000000000000000000000000000000');
369
+ draw.zend = true;
370
+ assert(draw.zend, true);
371
+ assert(toHex(pool), '00000000000010000000000000000000');
372
+ draw.zend = false;
373
+ assert(draw.zend, false);
374
+ assert(toHex(pool), '00000000000000000000000000000000');
375
+ });
376
+ test('anim', () => {
377
+ const sprite = TestSprite();
378
+ sprite.tag = 'stem--AnimA';
379
+ assert(sprite.anim, animA);
380
+ });
381
+ test('hitbox', () => {
382
+ const sprite = TestSprite();
383
+ sprite.tag = 'stem--AnimA';
384
+ assert(sprite.hitbox, { x: 1, y: 2, w: 3, h: 4 });
385
+ sprite.flipX = true;
386
+ assert(sprite.hitbox, { x: 6, y: 2, w: 3, h: 4 });
387
+ sprite.flipY = true;
388
+ assert(sprite.hitbox, { x: 6, y: 14, w: 3, h: 4 });
389
+ sprite.x = 1;
390
+ assert(sprite.hitbox, { x: 7, y: 14, w: 3, h: 4 });
391
+ sprite.y = 1;
392
+ assert(sprite.hitbox, { x: 7, y: 15, w: 3, h: 4 });
393
+ });
394
+ test('hits', () => {
395
+ const sprite = TestSprite();
396
+ sprite.tag = 'stem--AnimA';
397
+ assert(sprite.hits({ x: 1, y: 2 }), true);
398
+ assert(sprite.hits({ x: 4, y: 6 }), false);
399
+ });
400
+ describe('hitsZ()', () => {
401
+ test('same layer type delegates to hits()', () => {
402
+ const a = TestSprite();
403
+ a.tag = 'stem--AnimA';
404
+ a.z = Layer.A;
405
+ const b = TestSprite();
406
+ b.tag = 'stem--AnimA';
407
+ b.z = Layer.B;
408
+ const cam = { x: 100, y: 100 };
409
+ assert(a.hitsZ(b, cam), true);
410
+ assert(b.hitsZ(a, cam), true);
411
+ });
412
+ test('different layer types adjusts for cam', () => {
413
+ const world = TestSprite();
414
+ world.tag = 'stem--AnimA';
415
+ world.z = Layer.A;
416
+ const ui = TestSprite();
417
+ ui.tag = 'stem--AnimA';
418
+ ui.z = Layer.UIA;
419
+ const cam = { x: 50, y: 50 };
420
+ assert(world.hitsZ(ui, cam), false);
421
+ assert(ui.hitsZ(world, cam), false);
422
+ world.x = 50;
423
+ world.y = 50;
424
+ assert(ui.hitsZ(world, cam), true);
425
+ assert(world.hitsZ(ui, cam), true);
426
+ });
427
+ test('UI checking world adjusts with negative offset', () => {
428
+ const world = TestSprite();
429
+ world.tag = 'stem--AnimA';
430
+ world.z = Layer.A;
431
+ const ui = TestSprite();
432
+ ui.tag = 'stem--AnimA';
433
+ ui.z = Layer.UIA;
434
+ const cam = { x: 50, y: 50 };
435
+ assert(ui.hitsZ(world, cam), false);
436
+ assert(world.hitsZ(ui, cam), false);
437
+ ui.x = -50;
438
+ ui.y = -50;
439
+ assert(ui.hitsZ(world, cam), true);
440
+ assert(world.hitsZ(ui, cam), true);
441
+ });
442
+ });
443
+ test('hurtbox', () => {
444
+ const sprite = TestSprite();
445
+ sprite.tag = 'stem--AnimA';
446
+ assert(sprite.hurtbox, { x: 1, y: 2, w: 3, h: 4 });
447
+ sprite.flipX = true;
448
+ assert(sprite.hurtbox, { x: 6, y: 2, w: 3, h: 4 });
449
+ sprite.flipY = true;
450
+ assert(sprite.hurtbox, { x: 6, y: 14, w: 3, h: 4 });
451
+ });
452
+ test('looped', () => {
453
+ const looper = { age: 0 };
454
+ const sprite = new Sprite(TestPool(), 0, atlas, looper);
455
+ sprite.tag = 'stem--AnimA';
456
+ for (let i = 0; i < animCels * 5; i++) {
457
+ looper.age = (celMillis * i);
458
+ assert(sprite.looped, i % (animA.cels * 2) >= animA.cels, `${i}`);
459
+ }
460
+ looper.age = 0;
461
+ sprite.tag = 'stem--AnimB';
462
+ for (let i = 0; i < animCels * 5; i++) {
463
+ looper.age = (celMillis * i);
464
+ assert(sprite.looped, i % (animB.cels * 2) >= animB.cels, `${i}`);
465
+ }
466
+ looper.age = (celMillis * (animCels + 0));
467
+ sprite.tag = 'stem--AnimB';
468
+ assert(sprite.cel, animCels);
469
+ assert(sprite.looped, false);
470
+ for (let i = 0; i < animCels - 1; i++) {
471
+ looper.age = (celMillis * (animCels + i));
472
+ assert(sprite.looped, false, `${i}`);
473
+ }
474
+ looper.age = (celMillis * (animCels + animCels));
475
+ assert(sprite.looped, true);
476
+ looper.age = (celMillis * (animCels + animCels + 1));
477
+ assert(sprite.looped, true);
478
+ });
479
+ test('reset()', () => {
480
+ const looper = { age: 0 };
481
+ const sprite = new Sprite(TestPool(), 0, atlas, looper);
482
+ sprite.tag = 'stem--AnimA';
483
+ for (let i = 0; i < animCels * 5; i++) {
484
+ looper.age = (celMillis * i);
485
+ sprite.reset();
486
+ assert(sprite.cel, i % (2 * sprite.anim.cels), `${i}`);
487
+ }
488
+ });
489
+ test('tag', () => {
490
+ const looper = { age: 0 };
491
+ const sprite = new Sprite(TestPool(), 0, atlas, looper);
492
+ sprite.tag = 'stem--AnimA';
493
+ assert(sprite.tag, 'stem--AnimA');
494
+ assert(sprite.w, 10);
495
+ assert(sprite.h, 20);
496
+ assert(sprite.id, 0);
497
+ assert(sprite.cel, 0);
498
+ looper.age = (celMillis * 1);
499
+ sprite.tag = 'stem--AnimB';
500
+ assert(sprite.tag, 'stem--AnimB');
501
+ assert(sprite.w, 30);
502
+ assert(sprite.h, 40);
503
+ assert(sprite.id, 1);
504
+ assert(sprite.cel, 1);
505
+ });
506
+ test('diagonalize()', () => {
507
+ const cases = [
508
+ [{ x: -5, y: -5 }, 0, { x: -5, y: -5 }],
509
+ [{ x: -5, y: -5 }, 1, { x: -4.5, y: -4.5 }],
510
+ [{ x: -4.5, y: -4.5 }, 1, { x: -4.5, y: -4.5 }],
511
+ [{ x: -4.5, y: -4 }, 1, { x: -4.5, y: -3.5 }],
512
+ [{ x: -1, y: -1 }, 1, { x: -0.5, y: -0.5 }],
513
+ [{ x: -0.5, y: -0.5 }, 1, { x: -0.5, y: -0.5 }],
514
+ [{ x: 0, y: 0 }, 1, { x: 0.5, y: 0.5 }],
515
+ [{ x: 0.5, y: 0.5 }, 1, { x: 0.5, y: 0.5 }],
516
+ [{ x: 1, y: 1 }, 1, { x: 1.5, y: 1.5 }],
517
+ [{ x: -5, y: -5 }, -1, { x: -4.5, y: -4.515625 }],
518
+ [{ x: -4.5, y: -4.515625 }, -1, { x: -4.5, y: -4.515625 }],
519
+ [{ x: -4.5, y: -4 }, -1, { x: -4.5, y: -3.515625 }],
520
+ [{ x: -1, y: -1 }, -1, { x: -0.5, y: -0.515625 }],
521
+ [{ x: -0.5, y: -0.515625 }, -1, { x: -0.5, y: -0.515625 }],
522
+ [{ x: 0, y: 0 }, -1, { x: 0.5, y: 0.484375 }],
523
+ [{ x: 0.5, y: 0.515625 }, -1, { x: 0.5, y: 0.484375 }],
524
+ [{ x: 1, y: 1 }, -1, { x: 1.5, y: 1.484375 }]
525
+ ];
526
+ for (const [xy, dir, out] of cases) {
527
+ const cp = { ...xy };
528
+ diagonalize(xy, dir);
529
+ assert(xy, out, `(${cp.x}, ${cp.y}) dir=${dir}`);
530
+ }
531
+ });
532
+ test('toString()', () => {
533
+ const sprite = TestSprite();
534
+ sprite.tag = 'stem--AnimA';
535
+ assert(sprite.toString(), 'Sprite{stem--AnimA (0 0 0) 10×20}');
536
+ sprite.tag = 'stem--AnimB';
537
+ sprite.x = 1;
538
+ sprite.y = 2;
539
+ sprite.z = 3;
540
+ sprite.w = 4;
541
+ sprite.h = 5;
542
+ assert(sprite.toString(), 'Sprite{stem--AnimB (1 2 3) 4×5}');
543
+ });
544
+ test('truncDrawableEpsilon()', () => {
545
+ for (const [x, out] of [
546
+ [-10.125, -10.125],
547
+ [-10.1, -10.09375],
548
+ [-10, -10],
549
+ [-1.125, -1.125],
550
+ [-1.1, -1.09375],
551
+ [-1, -1],
552
+ [0, 0],
553
+ [0.125, 0.125],
554
+ [0.1, 0.09375],
555
+ [1, 1],
556
+ [1.1, 1.09375],
557
+ [1.125, 1.125],
558
+ [10, 10],
559
+ [10.1, 10.09375],
560
+ [10.125, 10.125]
561
+ ])
562
+ assert(truncDrawableEpsilon(x), out, `${x}`);
563
+ });
564
+ function TestSprite() {
565
+ return new Sprite(TestPool(), 0, atlas, { age: 0 });
566
+ }
567
+ function TestDrawable(pool = TestPool(), i = 0) {
568
+ return new (class extends Drawable {
569
+ })(pool, i);
570
+ }
571
+ function TestPool() {
572
+ return {
573
+ free() { },
574
+ view: new DataView(new ArrayBuffer(drawableBytes), 0, drawableBytes)
575
+ };
576
+ }
577
+ function toHex(pool) {
578
+ return [...new Uint8Array(pool.view.buffer)]
579
+ .map(v => v.toString(16).padStart(2, '0'))
580
+ .join('');
581
+ }
582
+ //# sourceMappingURL=sprite.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sprite.test.js","sourceRoot":"","sources":["../../../src/graphics/sprite.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,8BAA8B,CAAA;AAErC,OAAO,EAAC,KAAK,IAAI,EAAE,UAAU,EAAC,MAAM,UAAU,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAA;AAClD,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAE1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,8BAA8B,CAAA;AAErC,OAAO,EAAC,KAAK,IAAI,EAAE,UAAU,EAAC,MAAM,UAAU,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAA;AAClD,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
package/dist/src/index.js CHANGED
@@ -34,7 +34,6 @@ export * from "./mem/pool-map.js";
34
34
  export * from "./mem/sprite-pool.js";
35
35
  export * from "./random/random.js";
36
36
  export * from "./storage/local-storage.js";
37
- // to-do: export * from './test/assert.ts'
38
37
  export * from "./text/font.js";
39
38
  export * from "./text/text-layout.js";
40
39
  export * from "./types/bundle.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,kBAAkB;AAElB,OAAO,8BAA8B,CAAA;AAErC,OAAO,EAAY,UAAU,EAAC,MAAM,UAAU,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,0CAA0C;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,kBAAkB;AAElB,OAAO,8BAA8B,CAAA;AAErC,OAAO,EAAY,UAAU,EAAC,MAAM,UAAU,CAAA;AAC9C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAEhC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context-menu.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.test.d.ts","sourceRoot":"","sources":["../../../src/input/context-menu.test.ts"],"names":[],"mappings":""}