@react-text-game/core 0.5.15 → 0.5.17

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.
@@ -31,6 +31,10 @@ export declare class AudioTrack {
31
31
  private readonly state;
32
32
  private readonly jsonPath;
33
33
  private readonly unsubscribe?;
34
+ /** The original volume from options, used as target for fadeIn when current volume is corrupted */
35
+ private readonly originalVolume;
36
+ /** Animation frame ID for the current fade, used to cancel ongoing fades */
37
+ private fadeAnimationId;
34
38
  constructor(src: string, options?: AudioOptions);
35
39
  /**
36
40
  * Attaches event listeners to sync HTMLAudioElement state with reactive state.
@@ -146,6 +150,8 @@ export declare class AudioTrack {
146
150
  * Fades in the audio over a specified duration.
147
151
  *
148
152
  * Starts at volume 0 and gradually increases to the target volume.
153
+ * Uses the original configured volume as the target, falling back to
154
+ * current state volume if it's non-zero.
149
155
  *
150
156
  * @param duration - Fade duration in milliseconds
151
157
  * @returns Promise that resolves when fade completes
@@ -168,6 +174,15 @@ export declare class AudioTrack {
168
174
  * ```
169
175
  */
170
176
  fadeOut(duration?: number): Promise<void>;
177
+ /**
178
+ * Cancels any ongoing fade animation.
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * audio.cancelFade();
183
+ * ```
184
+ */
185
+ cancelFade(): void;
171
186
  /**
172
187
  * Fades to a target volume over a specified duration.
173
188
  *
@@ -1 +1 @@
1
- {"version":3,"file":"audioTrack.d.ts","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audioTrack.d.ts","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"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"}
@@ -34,10 +34,15 @@ export class AudioTrack {
34
34
  state;
35
35
  jsonPath;
36
36
  unsubscribe;
37
+ /** The original volume from options, used as target for fadeIn when current volume is corrupted */
38
+ originalVolume;
39
+ /** Animation frame ID for the current fade, used to cancel ongoing fades */
40
+ fadeAnimationId = null;
37
41
  constructor(src, options = {}) {
38
42
  this.id = options.id || `audio-${Date.now()}-${Math.random()}`;
39
43
  this.src = src;
40
44
  this.jsonPath = `${AUDIO_STORAGE_PATH}.${this.id}`;
45
+ this.originalVolume = options.volume ?? DEFAULT_AUDIO_OPTIONS.volume;
41
46
  // Create reactive state with Valtio
42
47
  this.state = proxy({
43
48
  isPlaying: false,
@@ -273,6 +278,8 @@ export class AudioTrack {
273
278
  * Fades in the audio over a specified duration.
274
279
  *
275
280
  * Starts at volume 0 and gradually increases to the target volume.
281
+ * Uses the original configured volume as the target, falling back to
282
+ * current state volume if it's non-zero.
276
283
  *
277
284
  * @param duration - Fade duration in milliseconds
278
285
  * @returns Promise that resolves when fade completes
@@ -283,7 +290,11 @@ export class AudioTrack {
283
290
  * ```
284
291
  */
285
292
  async fadeIn(duration = 1000) {
286
- const targetVolume = this.state.volume;
293
+ // Cancel any ongoing fade first
294
+ this.cancelFade();
295
+ // Use original volume as target, or current state.volume if non-zero
296
+ // This prevents issues when fadeIn is called while a previous fade left volume at 0
297
+ const targetVolume = this.state.volume > 0 ? this.state.volume : this.originalVolume;
287
298
  this.state.volume = 0;
288
299
  this.audioElement.volume = 0;
289
300
  await this.play();
@@ -301,9 +312,25 @@ export class AudioTrack {
301
312
  * ```
302
313
  */
303
314
  async fadeOut(duration = 1000) {
315
+ // Cancel any ongoing fade first
316
+ this.cancelFade();
304
317
  await this.fadeTo(0, duration);
305
318
  this.stop();
306
319
  }
320
+ /**
321
+ * Cancels any ongoing fade animation.
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * audio.cancelFade();
326
+ * ```
327
+ */
328
+ cancelFade() {
329
+ if (this.fadeAnimationId !== null) {
330
+ cancelAnimationFrame(this.fadeAnimationId);
331
+ this.fadeAnimationId = null;
332
+ }
333
+ }
307
334
  /**
308
335
  * Fades to a target volume over a specified duration.
309
336
  *
@@ -323,13 +350,14 @@ export class AudioTrack {
323
350
  this.audioElement.volume = currentVolume;
324
351
  this.state.volume = currentVolume;
325
352
  if (progress < 1) {
326
- requestAnimationFrame(fade);
353
+ this.fadeAnimationId = requestAnimationFrame(fade);
327
354
  }
328
355
  else {
356
+ this.fadeAnimationId = null;
329
357
  resolve();
330
358
  }
331
359
  };
332
- requestAnimationFrame(fade);
360
+ this.fadeAnimationId = requestAnimationFrame(fade);
333
361
  });
334
362
  }
335
363
  /**
@@ -416,6 +444,7 @@ export class AudioTrack {
416
444
  * ```
417
445
  */
418
446
  dispose() {
447
+ this.cancelFade();
419
448
  this.stop();
420
449
  this.unsubscribe?.();
421
450
  AudioManager._unregisterTrack(this);
@@ -1 +1 @@
1
- {"version":3,"file":"audioTrack.js","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,UAAU;IACV,EAAE,CAAS;IACX,GAAG,CAAS;IAEJ,YAAY,CAAmB;IAC/B,KAAK,CAAa;IAClB,QAAQ,CAAW;IACnB,WAAW,CAAc;IAE1C,YAAY,GAAW,EAAE,UAAwB,EAAE;QAC/C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,GAAG,kBAAkB,IAAI,IAAI,CAAC,EAAE,EAAc,CAAC;QAE/D,oCAAoC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAa;YAC3B,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI;YAChD,YAAY,EACR,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC,YAAY;YAC9D,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK;SACtD,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO;YACrB,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC;QAErD,yBAAyB;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAElC,qDAAqD;QACrD,gEAAgE;QAChE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACb,2CAA2C;YAC3C,mEAAmE;YACnE,iDAAiD;YACjD,EAAE;YACF,kEAAkE;YAClE,qEAAqE;YACrE,0DAA0D;YAC1D,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qDAAqD;QACrD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CACP,0BAA0B,IAAI,CAAC,EAAE,+BAA+B,EAChE,KAAK,CACR,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,oBAAoB;QACxB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACtD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YACpD,oCAAoC;YACpC,8DAA8D;YAC9D,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,IAAI;QACA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAc;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB;QACjB,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAa;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAY;QACxB,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAc;QACnB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,IAAY;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,IAAI;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB,IAAI;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,MAAM,CAChB,YAAoB,EACpB,QAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,GAAG,EAAE;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAEjD,MAAM,aAAa,GACf,WAAW,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC;gBAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;gBAElC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACf,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC,CAAC;YAEF,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI;QACA,MAAM,SAAS,GAAmB;YAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;SAChC,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;YAE7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAE/B,qDAAqD;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAElD,yBAAyB;YACzB,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxB,MAAM,CAAC,IAAI,CACP,gCAAgC,IAAI,CAAC,EAAE,8CAA8C,EACrF,KAAK,CACR,CAAC;gBACN,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACrB,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEpC,oDAAoD;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAsB,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,iBAAiB;IACX,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEvC,KAAK,GAAG,KAAK,CAAC;QAClB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,cAAc,CAAC,KAAiB;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAiB;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,MAAc;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC;QAExC,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU;QACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"audioTrack.js","sourceRoot":"","sources":["../../src/audio/audioTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,UAAU;IACV,EAAE,CAAS;IACX,GAAG,CAAS;IAEJ,YAAY,CAAmB;IAC/B,KAAK,CAAa;IAClB,QAAQ,CAAW;IACnB,WAAW,CAAc;IAC1C,mGAAmG;IAClF,cAAc,CAAS;IACxC,4EAA4E;IACpE,eAAe,GAAkB,IAAI,CAAC;IAE9C,YAAY,GAAW,EAAE,UAAwB,EAAE;QAC/C,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,GAAG,kBAAkB,IAAI,IAAI,CAAC,EAAE,EAAc,CAAC;QAC/D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAErE,oCAAoC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAa;YAC3B,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM;YACtD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI;YAChD,YAAY,EACR,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC,YAAY;YAC9D,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK;SACtD,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,OAAO;YACrB,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC;QAErD,yBAAyB;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,6BAA6B;QAC7B,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAElC,qDAAqD;QACrD,gEAAgE;QAChE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACb,2CAA2C;YAC3C,mEAAmE;YACnE,iDAAiD;YACjD,EAAE;YACF,kEAAkE;YAClE,qEAAqE;YACrE,0DAA0D;YAC1D,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qDAAqD;QACrD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CACP,0BAA0B,IAAI,CAAC,EAAE,+BAA+B,EAChE,KAAK,CACR,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,oBAAoB;QACxB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACtD,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YACpD,oCAAoC;YACpC,8DAA8D;YAC9D,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,IAAI;QACA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAc;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB;QACjB,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAa;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAY;QACxB,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAc;QACnB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,IAAY;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,IAAI;QAChC,gCAAgC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,qEAAqE;QACrE,oFAAoF;QACpF,MAAM,YAAY,GACd,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,WAAmB,IAAI;QACjC,gCAAgC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU;QACN,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAChC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,MAAM,CAChB,YAAoB,EACpB,QAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,GAAG,EAAE;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAEjD,MAAM,aAAa,GACf,WAAW,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC;gBAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;gBAElC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI;QACA,MAAM,SAAS,GAAmB;YAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;SAChC,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI;QACA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;YAE7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAE/B,qDAAqD;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAElD,yBAAyB;YACzB,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxB,MAAM,CAAC,IAAI,CACP,gCAAgC,IAAI,CAAC,EAAE,8CAA8C,EACrF,KAAK,CACR,CAAC;gBACN,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACrB,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEpC,oDAAoD;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAsB,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAErE,MAAM,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,iBAAiB;IACX,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEvC,KAAK,GAAG,KAAK,CAAC;QAClB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,cAAc,CAAC,KAAiB;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAiB;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,MAAc;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC;QAExC,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,UAAU;QACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5C,CAAC;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactiveMap.d.ts","sourceRoot":"","sources":["../../../src/passages/interactiveMap/interactiveMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;IAKtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EACxC,KAAK,GAAE,CAAW,GACnB,kBAAkB;CAiBxB"}
1
+ {"version":3,"file":"interactiveMap.d.ts","sourceRoot":"","sources":["../../../src/passages/interactiveMap/interactiveMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;IAKtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EACxC,KAAK,GAAE,CAAW,GACnB,kBAAkB;CAmBxB"}
@@ -105,12 +105,14 @@ export class InteractiveMap extends Passage {
105
105
  .filter((hotspot) => hotspot !== undefined);
106
106
  const image = callIfFunction(this.options.image);
107
107
  const bgImage = callIfFunction(this.options.bgImage);
108
- return {
108
+ const result = {
109
109
  ...this.options,
110
110
  image,
111
111
  bgImage,
112
112
  hotspots,
113
113
  };
114
+ this._lastDisplayResult = result;
115
+ return result;
114
116
  }
115
117
  }
116
118
  //# sourceMappingURL=interactiveMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactiveMap.js","sourceRoot":"","sources":["../../../src/passages/interactiveMap/interactiveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IACvC;;OAEG;IACc,OAAO,CAAwB;IAEhD;;;;;OAKG;IACH,YAAY,EAAU,EAAE,OAA8B;QAClD,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CACH,QAAW,EAAO;QAElB,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,aAAa;aACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAEtD,OAAO;YACH,GAAG,IAAI,CAAC,OAAO;YACf,KAAK;YACL,OAAO;YACP,QAAQ;SACX,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"interactiveMap.js","sourceRoot":"","sources":["../../../src/passages/interactiveMap/interactiveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IACvC;;OAEG;IACc,OAAO,CAAwB;IAEhD;;;;;OAKG;IACH,YAAY,EAAU,EAAE,OAA8B;QAClD,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CACH,QAAW,EAAO;QAElB,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,aAAa;aACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAEtD,MAAM,MAAM,GAAuB;YAC/B,GAAG,IAAI,CAAC,OAAO;YACf,KAAK;YACL,OAAO;YACP,QAAQ;SACX,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -35,6 +35,12 @@ export declare class Passage {
35
35
  * Determines how the passage should be rendered in the UI.
36
36
  */
37
37
  readonly type: PassageType;
38
+ /**
39
+ * Cached result from the last display() call.
40
+ * Used to access display data without re-executing content functions.
41
+ * @internal
42
+ */
43
+ protected _lastDisplayResult: unknown;
38
44
  /**
39
45
  * Creates a new passage and automatically registers it with the Game.
40
46
  *
@@ -53,5 +59,31 @@ export declare class Passage {
53
59
  * @throws Error if not implemented by subclass
54
60
  */
55
61
  display<T extends InitVarsType = EmptyObject>(_props?: T): void;
62
+ /**
63
+ * Returns the cached result from the last display() call.
64
+ * Use this method to access passage data without re-executing content functions,
65
+ * which prevents unwanted side effects.
66
+ *
67
+ * @template T - Expected return type
68
+ * @returns The cached display result, or null if display() has never been called
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const story = newStory('test', () => [{ type: 'text', content: 'Hello' }]);
73
+ *
74
+ * // First call to display() - executes content function
75
+ * const result = story.display();
76
+ *
77
+ * // Get cached result - does NOT execute content function again
78
+ * const cached = story.getLastDisplayResult();
79
+ * ```
80
+ */
81
+ getLastDisplayResult<T = unknown>(): T | null;
82
+ /**
83
+ * Checks if a cached display result exists.
84
+ *
85
+ * @returns true if display() has been called at least once, false otherwise
86
+ */
87
+ hasDisplayCache(): boolean;
56
88
  }
57
89
  //# sourceMappingURL=passage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passage.d.ts","sourceRoot":"","sources":["../../src/passages/passage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,OAAO;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;IAMzC;;;;;;;;;OASG;IAEH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EAAE,MAAM,GAAE,CAAW;CAKpE"}
1
+ {"version":3,"file":"passage.d.ts","sourceRoot":"","sources":["../../src/passages/passage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,OAAO;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAQ;IAE7C;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;IAMzC;;;;;;;;;OASG;IAEH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EAAE,MAAM,GAAE,CAAW;IAMjE;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,IAAI;IAI7C;;;;OAIG;IACH,eAAe,IAAI,OAAO;CAG7B"}
@@ -35,6 +35,12 @@ export class Passage {
35
35
  * Determines how the passage should be rendered in the UI.
36
36
  */
37
37
  type;
38
+ /**
39
+ * Cached result from the last display() call.
40
+ * Used to access display data without re-executing content functions.
41
+ * @internal
42
+ */
43
+ _lastDisplayResult = null;
38
44
  /**
39
45
  * Creates a new passage and automatically registers it with the Game.
40
46
  *
@@ -60,5 +66,35 @@ export class Passage {
60
66
  display(_props = {}) {
61
67
  throw new Error(`Display method not implemented for passage: ${this.id}`);
62
68
  }
69
+ /**
70
+ * Returns the cached result from the last display() call.
71
+ * Use this method to access passage data without re-executing content functions,
72
+ * which prevents unwanted side effects.
73
+ *
74
+ * @template T - Expected return type
75
+ * @returns The cached display result, or null if display() has never been called
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const story = newStory('test', () => [{ type: 'text', content: 'Hello' }]);
80
+ *
81
+ * // First call to display() - executes content function
82
+ * const result = story.display();
83
+ *
84
+ * // Get cached result - does NOT execute content function again
85
+ * const cached = story.getLastDisplayResult();
86
+ * ```
87
+ */
88
+ getLastDisplayResult() {
89
+ return this._lastDisplayResult;
90
+ }
91
+ /**
92
+ * Checks if a cached display result exists.
93
+ *
94
+ * @returns true if display() has been called at least once, false otherwise
95
+ */
96
+ hasDisplayCache() {
97
+ return this._lastDisplayResult !== null;
98
+ }
63
99
  }
64
100
  //# sourceMappingURL=passage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"passage.js","sourceRoot":"","sources":["../../src/passages/passage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAG7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,OAAO;IAChB;;;OAGG;IACM,EAAE,CAAS;IAEpB;;;OAGG;IACM,IAAI,CAAc;IAE3B;;;;;OAKG;IACH,YAAY,EAAU,EAAE,IAAiB;QACrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,6DAA6D;IAC7D,OAAO,CAAuC,SAAY,EAAO;QAC7D,MAAM,IAAI,KAAK,CACX,+CAA+C,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"passage.js","sourceRoot":"","sources":["../../src/passages/passage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAG7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,OAAO;IAChB;;;OAGG;IACM,EAAE,CAAS;IAEpB;;;OAGG;IACM,IAAI,CAAc;IAE3B;;;;OAIG;IACO,kBAAkB,GAAY,IAAI,CAAC;IAE7C;;;;;OAKG;IACH,YAAY,EAAU,EAAE,IAAiB;QACrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACH,6DAA6D;IAC7D,OAAO,CAAuC,SAAY,EAAO;QAC7D,MAAM,IAAI,KAAK,CACX,+CAA+C,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB;QAChB,OAAO,IAAI,CAAC,kBAA8B,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC;IAC5C,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../../src/passages/story/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAC9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,YAAiB;IAMzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EACxC,KAAK,GAAE,CAAW,GACnB;QAAE,OAAO,CAAC,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;KAAE;CAM9D"}
1
+ {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../../src/passages/story/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAC9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,YAAiB;IAMzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,WAAW,EACxC,KAAK,GAAE,CAAW,GACnB;QAAE,OAAO,CAAC,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;KAAE;CAQ9D"}
@@ -79,10 +79,12 @@ export class Story extends Passage {
79
79
  * ```
80
80
  */
81
81
  display(props = {}) {
82
- return {
82
+ const result = {
83
83
  options: this.options,
84
84
  components: this.content(props),
85
85
  };
86
+ this._lastDisplayResult = result;
87
+ return result;
86
88
  }
87
89
  }
88
90
  //# sourceMappingURL=story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"story.js","sourceRoot":"","sources":["../../../src/passages/story/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAC9B;;OAEG;IACc,OAAO,CAAe;IAEvC;;OAEG;IACc,OAAO,CAAe;IAEvC;;;;;;OAMG;IACH,YAAY,EAAU,EAAE,OAAqB,EAAE,UAAwB,EAAE;QACrE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CACH,QAAW,EAAO;QAElB,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAClC,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"story.js","sourceRoot":"","sources":["../../../src/passages/story/story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAC9B;;OAEG;IACc,OAAO,CAAe;IAEvC;;OAEG;IACc,OAAO,CAAe;IAEvC;;;;;;OAMG;IACH,YAAY,EAAU,EAAE,OAAqB,EAAE,UAAwB,EAAE;QACrE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CACH,QAAW,EAAO;QAElB,MAAM,MAAM,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAClC,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -2,18 +2,29 @@ import { ReactNode } from "react";
2
2
  import { Passage } from "../passages/passage";
3
3
  /**
4
4
  * Content type for Widget passages.
5
- * Can be a ReactNode directly, or a function that returns a ReactNode.
5
+ * Can be a ReactNode directly, or a React functional component.
6
+ *
7
+ * **Important:** When passing a function, it is always treated as a React
8
+ * component and rendered via `createElement`. This ensures hooks work correctly
9
+ * even in minified production builds where function names are mangled.
6
10
  *
7
11
  * @example
8
12
  * ```typescript
9
- * // As ReactNode
13
+ * // As ReactNode (static content)
10
14
  * const content: WidgetContent = <div>Hello</div>;
11
15
  *
12
- * // As function
13
- * const content: WidgetContent = () => <div>Hello</div>;
16
+ * // As React component (supports hooks)
17
+ * const MyComponent = () => {
18
+ * const [count, setCount] = useState(0);
19
+ * return <div>Count: {count}</div>;
20
+ * };
21
+ * const content: WidgetContent = MyComponent;
22
+ *
23
+ * // For dynamic content without hooks, pre-evaluate the function:
24
+ * const content: WidgetContent = (() => <div>{Date.now()}</div>)();
14
25
  * ```
15
26
  */
16
- export type WidgetContent = ReactNode | (() => ReactNode);
27
+ export type WidgetContent = ReactNode | React.FC;
17
28
  /**
18
29
  * Custom React component passage for fully customized UI.
19
30
  *
@@ -21,11 +32,15 @@ export type WidgetContent = ReactNode | (() => ReactNode);
21
32
  * providing complete control over the UI when the built-in passage types
22
33
  * (Story, InteractiveMap) don't meet your needs.
23
34
  *
35
+ * **Important:** When passing a function, it is always treated as a React
36
+ * component and rendered via `createElement`. This ensures hooks work correctly
37
+ * even in minified production builds.
38
+ *
24
39
  * @example
25
40
  * ```typescript
26
41
  * import { newWidget } from '@react-text-game/core';
27
42
  *
28
- * // With ReactNode
43
+ * // With ReactNode (static content)
29
44
  * const inventoryUI = newWidget('inventory', (
30
45
  * <div className="inventory">
31
46
  * <h2>Your Inventory</h2>
@@ -34,13 +49,12 @@ export type WidgetContent = ReactNode | (() => ReactNode);
34
49
  * </div>
35
50
  * ));
36
51
  *
37
- * // With function component
38
- * const dynamicUI = newWidget('dynamic', () => (
39
- * <div>
40
- * <h2>Dynamic Content</h2>
41
- * <p>Current time: {Date.now()}</p>
42
- * </div>
43
- * ));
52
+ * // With React component (supports hooks)
53
+ * const MyMenu = () => {
54
+ * const [selected, setSelected] = useState(null);
55
+ * return <MenuUI selected={selected} onSelect={setSelected} />;
56
+ * };
57
+ * const menuWidget = newWidget('menu', MyMenu);
44
58
  *
45
59
  * // Navigate to custom UI
46
60
  * Game.jumpTo(inventoryUI);
@@ -62,7 +76,12 @@ export declare class Widget extends Passage {
62
76
  constructor(id: string, content: WidgetContent);
63
77
  /**
64
78
  * Returns the React node for rendering.
65
- * If content is a function, it will be called to get the ReactNode.
79
+ * If content is a function, it is treated as a React component and
80
+ * rendered via createElement to properly support hooks.
81
+ *
82
+ * **Note:** Functions are always rendered via `createElement`, never called
83
+ * directly. This ensures hooks work correctly in minified builds where
84
+ * function names are mangled to lowercase identifiers.
66
85
  *
67
86
  * @returns The React content to be rendered
68
87
  */
@@ -71,21 +90,30 @@ export declare class Widget extends Passage {
71
90
  /**
72
91
  * Factory function for creating Widget passages.
73
92
  *
93
+ * **Important:** When passing a function, it is always treated as a React
94
+ * component and rendered via `createElement`. This ensures hooks work correctly
95
+ * even in minified production builds where function names are mangled.
96
+ *
74
97
  * @param id - Unique identifier for the widget
75
- * @param content - React node or function returning React node to display
98
+ * @param content - React node or React functional component to display
76
99
  * @returns New Widget instance
77
100
  *
78
101
  * @example
79
102
  * ```typescript
80
- * // With ReactNode
103
+ * // With ReactNode (static content)
81
104
  * const customMenu = newWidget('menu', (
82
105
  * <CustomMenuComponent />
83
106
  * ));
84
107
  *
85
- * // With function component
86
- * const dynamicMenu = newWidget('dynamic-menu', () => (
87
- * <CustomMenuComponent data={getCurrentData()} />
88
- * ));
108
+ * // With React component (supports hooks)
109
+ * const MyComponent = () => {
110
+ * const [count, setCount] = useState(0);
111
+ * return <Counter count={count} onChange={setCount} />;
112
+ * };
113
+ * const counterWidget = newWidget('counter', MyComponent);
114
+ *
115
+ * // For dynamic content without hooks, pre-evaluate:
116
+ * const timestampWidget = newWidget('time', (() => <div>{Date.now()}</div>)());
89
117
  * ```
90
118
  */
91
119
  export declare const newWidget: (id: string, content: WidgetContent) => Widget;
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAK9C;;;;;OAKG;IACH,OAAO;CAKV;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,EAAE,SAAS,aAAa,WACjC,CAAC"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAK9C;;;;;;;;;;OAUG;IACH,OAAO,IAAI,SAAS;CAcvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,EAAE,SAAS,aAAa,WACjC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { createElement } from "react";
1
2
  import { Passage } from "../passages/passage";
2
3
  /**
3
4
  * Custom React component passage for fully customized UI.
@@ -6,11 +7,15 @@ import { Passage } from "../passages/passage";
6
7
  * providing complete control over the UI when the built-in passage types
7
8
  * (Story, InteractiveMap) don't meet your needs.
8
9
  *
10
+ * **Important:** When passing a function, it is always treated as a React
11
+ * component and rendered via `createElement`. This ensures hooks work correctly
12
+ * even in minified production builds.
13
+ *
9
14
  * @example
10
15
  * ```typescript
11
16
  * import { newWidget } from '@react-text-game/core';
12
17
  *
13
- * // With ReactNode
18
+ * // With ReactNode (static content)
14
19
  * const inventoryUI = newWidget('inventory', (
15
20
  * <div className="inventory">
16
21
  * <h2>Your Inventory</h2>
@@ -19,13 +24,12 @@ import { Passage } from "../passages/passage";
19
24
  * </div>
20
25
  * ));
21
26
  *
22
- * // With function component
23
- * const dynamicUI = newWidget('dynamic', () => (
24
- * <div>
25
- * <h2>Dynamic Content</h2>
26
- * <p>Current time: {Date.now()}</p>
27
- * </div>
28
- * ));
27
+ * // With React component (supports hooks)
28
+ * const MyMenu = () => {
29
+ * const [selected, setSelected] = useState(null);
30
+ * return <MenuUI selected={selected} onSelect={setSelected} />;
31
+ * };
32
+ * const menuWidget = newWidget('menu', MyMenu);
29
33
  *
30
34
  * // Navigate to custom UI
31
35
  * Game.jumpTo(inventoryUI);
@@ -50,34 +54,56 @@ export class Widget extends Passage {
50
54
  }
51
55
  /**
52
56
  * Returns the React node for rendering.
53
- * If content is a function, it will be called to get the ReactNode.
57
+ * If content is a function, it is treated as a React component and
58
+ * rendered via createElement to properly support hooks.
59
+ *
60
+ * **Note:** Functions are always rendered via `createElement`, never called
61
+ * directly. This ensures hooks work correctly in minified builds where
62
+ * function names are mangled to lowercase identifiers.
54
63
  *
55
64
  * @returns The React content to be rendered
56
65
  */
57
66
  display() {
58
- return typeof this.content === "function"
59
- ? this.content()
60
- : this.content;
67
+ let result;
68
+ if (typeof this.content === "function") {
69
+ // Always use createElement for functions to ensure hooks work
70
+ // correctly in minified builds where function names are mangled
71
+ result = createElement(this.content);
72
+ }
73
+ else {
74
+ result = this.content;
75
+ }
76
+ this._lastDisplayResult = result;
77
+ return result;
61
78
  }
62
79
  }
63
80
  /**
64
81
  * Factory function for creating Widget passages.
65
82
  *
83
+ * **Important:** When passing a function, it is always treated as a React
84
+ * component and rendered via `createElement`. This ensures hooks work correctly
85
+ * even in minified production builds where function names are mangled.
86
+ *
66
87
  * @param id - Unique identifier for the widget
67
- * @param content - React node or function returning React node to display
88
+ * @param content - React node or React functional component to display
68
89
  * @returns New Widget instance
69
90
  *
70
91
  * @example
71
92
  * ```typescript
72
- * // With ReactNode
93
+ * // With ReactNode (static content)
73
94
  * const customMenu = newWidget('menu', (
74
95
  * <CustomMenuComponent />
75
96
  * ));
76
97
  *
77
- * // With function component
78
- * const dynamicMenu = newWidget('dynamic-menu', () => (
79
- * <CustomMenuComponent data={getCurrentData()} />
80
- * ));
98
+ * // With React component (supports hooks)
99
+ * const MyComponent = () => {
100
+ * const [count, setCount] = useState(0);
101
+ * return <Counter count={count} onChange={setCount} />;
102
+ * };
103
+ * const counterWidget = newWidget('counter', MyComponent);
104
+ *
105
+ * // For dynamic content without hooks, pre-evaluate:
106
+ * const timestampWidget = newWidget('time', (() => <div>{Date.now()}</div>)());
81
107
  * ```
82
108
  */
83
109
  export const newWidget = (id, content) => new Widget(id, content);
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACc,OAAO,CAAgB;IAExC;;;;;OAKG;IACH,YAAY,EAAU,EAAE,OAAsB;QAC1C,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACH,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;YACrC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;YAChB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,OAAsB,EAAE,EAAE,CAC5D,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/passages/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4B5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,MAAO,SAAQ,OAAO;IAC/B;;OAEG;IACc,OAAO,CAAgB;IAExC;;;;;OAKG;IACH,YAAY,EAAU,EAAE,OAAsB;QAC1C,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACH,IAAI,MAAiB,CAAC;QAEtB,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,8DAA8D;YAC9D,gEAAgE;YAChE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,OAAsB,EAAE,EAAE,CAC5D,IAAI,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=passageDisplayCache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passageDisplayCache.test.d.ts","sourceRoot":"","sources":["../../src/tests/passageDisplayCache.test.ts"],"names":[],"mappings":""}