@prose-reader/core 1.66.0 → 1.67.0

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.
@@ -468,20 +468,25 @@
468
468
  }
469
469
  );
470
470
  fixReflowable(reader);
471
- let observer;
472
- if (options.layoutAutoResize === `container`) {
473
- reader.context.state$.pipe(
474
- operators.map((state) => state.containerElement),
475
- operators.filter(isDefined),
476
- operators.distinctUntilChanged(),
477
- operators.takeUntil(reader.$.destroy$)
478
- ).subscribe((container) => {
479
- observer = new ResizeObserver(() => {
480
- reader == null ? void 0 : reader.layout();
481
- });
482
- observer.observe(container);
471
+ const observeContainerResize = (container) => new rxjs.Observable((observer) => {
472
+ const resizeObserver = new ResizeObserver(() => {
473
+ observer.next();
483
474
  });
484
- }
475
+ resizeObserver.observe(container);
476
+ return () => {
477
+ resizeObserver.disconnect();
478
+ };
479
+ });
480
+ const layoutOnContainerResize$ = settingsManager.settings$.pipe(
481
+ operators.filter(({ layoutAutoResize: layoutAutoResize2 }) => layoutAutoResize2 === "container"),
482
+ operators.switchMap(() => reader.context.containerElement$),
483
+ operators.filter(isDefined),
484
+ operators.switchMap((container) => observeContainerResize(container)),
485
+ operators.debounceTime(100),
486
+ operators.tap(() => {
487
+ reader == null ? void 0 : reader.layout();
488
+ })
489
+ );
485
490
  const movingSafePan$ = createMovingSafePan$(reader);
486
491
  movingSafePan$.subscribe();
487
492
  settingsManager.settings$.pipe(
@@ -493,12 +498,12 @@
493
498
  }),
494
499
  operators.takeUntil(reader.$.destroy$)
495
500
  ).subscribe();
501
+ rxjs.merge(layoutOnContainerResize$).pipe(operators.takeUntil(reader.$.destroy$)).subscribe();
496
502
  return {
497
503
  ...reader,
498
504
  destroy: () => {
499
505
  settingsManager.destroy();
500
506
  reader.destroy();
501
- observer == null ? void 0 : observer.disconnect();
502
507
  },
503
508
  settings: settingsManager
504
509
  };