cubing 0.26.5 → 0.26.6

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.
@@ -42,11 +42,6 @@ import {
42
42
  __privateSet
43
43
  } from "../chunk-MGJA5U5O.js";
44
44
 
45
- // src/cubing/twisty/controllers/AnimationTypes.ts
46
- function directionScalar(direction) {
47
- return direction;
48
- }
49
-
50
45
  // src/cubing/twisty/controllers/RenderScheduler.ts
51
46
  var RenderScheduler = class {
52
47
  constructor(callback) {
@@ -54,6 +49,9 @@ var RenderScheduler = class {
54
49
  this.animFrameID = null;
55
50
  this.animFrame = this.animFrameWrapper.bind(this);
56
51
  }
52
+ requestIsPending() {
53
+ return !!this.animFrameID;
54
+ }
57
55
  requestAnimFrame() {
58
56
  if (!this.animFrameID) {
59
57
  this.animFrameID = requestAnimationFrame(this.animFrame);
@@ -71,6 +69,11 @@ var RenderScheduler = class {
71
69
  }
72
70
  };
73
71
 
72
+ // src/cubing/twisty/controllers/AnimationTypes.ts
73
+ function directionScalar(direction) {
74
+ return direction;
75
+ }
76
+
74
77
  // src/cubing/twisty/model/helpers.ts
75
78
  function arrayEquals(a, b) {
76
79
  if (a === b) {
@@ -879,8 +882,9 @@ _resolve = new WeakMap();
879
882
 
880
883
  // src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.ts
881
884
  var _freshListenerManager4, _cachedTwisty3DPuzzle;
882
- var Twisty3DPuzzleWrapper = class {
885
+ var Twisty3DPuzzleWrapper = class extends EventTarget {
883
886
  constructor(model, schedulable, puzzleLoader, visualizationStrategy) {
887
+ super();
884
888
  this.model = model;
885
889
  this.schedulable = schedulable;
886
890
  this.puzzleLoader = puzzleLoader;
@@ -943,6 +947,7 @@ var Twisty3DPuzzleWrapper = class {
943
947
  }
944
948
  scheduleRender() {
945
949
  this.schedulable.scheduleRender();
950
+ this.dispatchEvent(new CustomEvent("render-scheduled"));
946
951
  }
947
952
  async twisty3DPuzzle() {
948
953
  return __privateGet(this, _cachedTwisty3DPuzzle) ?? __privateSet(this, _cachedTwisty3DPuzzle, (async () => {
@@ -4286,11 +4291,26 @@ var TwistyPlayer = class extends TwistyPlayerSettable {
4286
4291
  }
4287
4292
  return canvases;
4288
4293
  }
4289
- async experimentalThreeJSPuzzleObject() {
4294
+ async experimentalCurrentThreeJSPuzzleObject(puzzleChangeCallback) {
4290
4295
  this.connectedCallback();
4291
4296
  const sceneWrapper = await __privateGet(this, _initial3DVisualizationWrapper).promise;
4292
4297
  const puzzleWrapper = await sceneWrapper.experimentalTwisty3DPuzzleWrapper();
4293
- return puzzleWrapper.twisty3DPuzzle();
4298
+ const twisty3DPuzzlePromise = puzzleWrapper.twisty3DPuzzle();
4299
+ const setTimeoutPromise = new Promise((resolve, _) => setTimeout(resolve, 0));
4300
+ if (puzzleChangeCallback) {
4301
+ const scheduler = new RenderScheduler(async () => {
4302
+ });
4303
+ puzzleWrapper.addEventListener("render-scheduled", async () => {
4304
+ if (!scheduler.requestIsPending()) {
4305
+ scheduler.requestAnimFrame();
4306
+ (async () => {
4307
+ await setTimeoutPromise;
4308
+ puzzleChangeCallback();
4309
+ })();
4310
+ }
4311
+ });
4312
+ }
4313
+ return twisty3DPuzzlePromise;
4294
4314
  }
4295
4315
  jumpToStart(options) {
4296
4316
  this.controller.jumpToStart(options);