@oliversalzburg/js-utils 0.0.27-dev.3 → 0.0.27-dev.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.
|
@@ -189,6 +189,10 @@ export declare class CanvasSandbox<TCanvas extends Canvas, TApplicationOptions e
|
|
|
189
189
|
* The render loop we use to control frame rendering.
|
|
190
190
|
*/
|
|
191
191
|
readonly renderLoop: RenderLoop;
|
|
192
|
+
/**
|
|
193
|
+
* The options for this sandbox.
|
|
194
|
+
*/
|
|
195
|
+
readonly sandboxOptions: Partial<CanvasSandboxOptions>;
|
|
192
196
|
/**
|
|
193
197
|
* Construct a new {@linkcode CanvasSandbox}.
|
|
194
198
|
* @param window - The window we're running inside.
|
|
@@ -170,6 +170,10 @@ export class CanvasSandbox {
|
|
|
170
170
|
* The render loop we use to control frame rendering.
|
|
171
171
|
*/
|
|
172
172
|
renderLoop;
|
|
173
|
+
/**
|
|
174
|
+
* The options for this sandbox.
|
|
175
|
+
*/
|
|
176
|
+
sandboxOptions;
|
|
173
177
|
/**
|
|
174
178
|
* The handle that keeps track of debouncing of `resize` events.
|
|
175
179
|
*/
|
|
@@ -189,6 +193,7 @@ export class CanvasSandbox {
|
|
|
189
193
|
this.document = window.document;
|
|
190
194
|
this.canvasNode = canvasNode;
|
|
191
195
|
this.canvas = new CanvasImpl(canvasNode);
|
|
196
|
+
this.sandboxOptions = sandboxOptions ?? {};
|
|
192
197
|
if (sandboxOptions?.injectDefaultCss ?? true) {
|
|
193
198
|
this.injectDefaultCss();
|
|
194
199
|
}
|
|
@@ -225,7 +230,9 @@ export class CanvasSandbox {
|
|
|
225
230
|
* Run the sandbox.
|
|
226
231
|
*/
|
|
227
232
|
run() {
|
|
228
|
-
|
|
233
|
+
if (this.sandboxOptions.devMode) {
|
|
234
|
+
console.info("CanvasSandbox: Starting application with these options.", this.application.options);
|
|
235
|
+
}
|
|
229
236
|
this.application.start();
|
|
230
237
|
// In case the application doesn't maintain this state itself.
|
|
231
238
|
this.application.paused = false;
|
|
@@ -243,7 +250,11 @@ export class CanvasSandbox {
|
|
|
243
250
|
if (!this.document.fullscreenEnabled) {
|
|
244
251
|
return;
|
|
245
252
|
}
|
|
253
|
+
// Make canvas fullscreen.
|
|
246
254
|
if (!this.document.fullscreenElement) {
|
|
255
|
+
if (this.sandboxOptions.devMode) {
|
|
256
|
+
console.info("CanvasSandbox: Canvas is entering fullscreen mode...");
|
|
257
|
+
}
|
|
247
258
|
await this.canvasNode.requestFullscreen();
|
|
248
259
|
}
|
|
249
260
|
});
|
|
@@ -284,9 +295,13 @@ export class CanvasSandbox {
|
|
|
284
295
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
285
296
|
this.canvasNode.addEventListener("click", async (event) => {
|
|
286
297
|
if (this.document.fullscreenElement) {
|
|
298
|
+
if (this.sandboxOptions.devMode) {
|
|
299
|
+
console.info("CanvasSandbox: Exiting fullscreen mode...");
|
|
300
|
+
}
|
|
287
301
|
await document.exitFullscreen();
|
|
288
302
|
return;
|
|
289
303
|
}
|
|
304
|
+
// Run the next variation of the application.
|
|
290
305
|
nextPalette();
|
|
291
306
|
this.#reconfigureApplication({
|
|
292
307
|
seed: this.application.random.next().toString(),
|
|
@@ -310,15 +325,19 @@ export class CanvasSandbox {
|
|
|
310
325
|
});
|
|
311
326
|
this.window.addEventListener("resize", event => {
|
|
312
327
|
if (this.#resizeDebounce !== null) {
|
|
313
|
-
|
|
328
|
+
return;
|
|
314
329
|
}
|
|
315
330
|
this.#resizeDebounce = this.window.setTimeout(() => {
|
|
316
|
-
this
|
|
317
|
-
this.canvas.refreshCanvasNode();
|
|
318
|
-
this.application.start();
|
|
319
|
-
// In case the application doesn't maintain this state itself.
|
|
320
|
-
this.application.paused = false;
|
|
331
|
+
this.#resizeDebounce = null;
|
|
321
332
|
}, 1000);
|
|
333
|
+
if (this.sandboxOptions.devMode) {
|
|
334
|
+
console.info(`CanvasSandbox: Window resized (${this.window.innerWidth}x${this.window.innerHeight}x${this.window.devicePixelRatio}). Reconfiguring application...`);
|
|
335
|
+
}
|
|
336
|
+
this.application.reconfigure(this.canvas);
|
|
337
|
+
this.canvas.refreshCanvasNode();
|
|
338
|
+
this.application.start();
|
|
339
|
+
// In case the application doesn't maintain this state itself.
|
|
340
|
+
this.application.paused = false;
|
|
322
341
|
});
|
|
323
342
|
}
|
|
324
343
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-sandbox.js","sourceRoot":"","sources":["../../source/graphics/canvas-sandbox.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAA2B,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDvD,CAAC;AAqFF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,MAAM,OAAO,aAAa;IAIxB;;OAEG;IACM,MAAM,CAAS;IAExB;;OAEG;IACM,QAAQ,CAAW;IAE5B;;OAEG;IACM,WAAW,CAAyD;IAE7E;;OAEG;IACM,UAAU,CAAoB;IAEvC;;;OAGG;IACM,MAAM,CAAU;IAEzB;;OAEG;IACM,UAAU,CAAa;IAEhC;;OAEG;IACH,eAAe,GAAkB,IAAI,CAAC;IAEtC;;;;;;;;;OASG;IACH,YACE,MAAc,EACd,UAA6B,EAC7B,UAA0D,EAC1D,WAS2D,EAC3D,OAA4B,EAC5B,cAA8C;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas-sandbox.js","sourceRoot":"","sources":["../../source/graphics/canvas-sandbox.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED