@prose-reader/core 1.125.0 → 1.126.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.
@@ -1515,7 +1515,9 @@
1515
1515
  };
1516
1516
  reader.hookManager.register(`item.onDocumentLoad`, ({ itemId }) => {
1517
1517
  const item = reader.spineItemsManager.get(itemId);
1518
- item == null ? void 0 : item.upsertCSS(`prose-reader-theme`, getStyle());
1518
+ if ((item == null ? void 0 : item.item.renditionLayout) !== "pre-paginated") {
1519
+ item == null ? void 0 : item.upsertCSS(`prose-reader-theme`, getStyle());
1520
+ }
1519
1521
  });
1520
1522
  reader.spineItemsManager.items$.pipe(
1521
1523
  operators.tap(
@@ -5168,16 +5170,9 @@
5168
5170
  return { start: startCFI, end: endCFI };
5169
5171
  };
5170
5172
  class DocumentRenderer {
5171
- constructor(context, settings, hookManager, item, containerElement, resourcesHandler) {
5172
- this.context = context;
5173
- this.settings = settings;
5174
- this.hookManager = hookManager;
5175
- this.item = item;
5176
- this.containerElement = containerElement;
5177
- this.resourcesHandler = resourcesHandler;
5178
- this.stateSubject = new rxjs.BehaviorSubject(`idle`);
5173
+ constructor(params) {
5179
5174
  this.triggerSubject = new rxjs.Subject();
5180
- this.layers = [];
5175
+ this.stateSubject = new rxjs.BehaviorSubject(`idle`);
5181
5176
  this.unload$ = this.triggerSubject.pipe(
5182
5177
  rxjs.withLatestFrom(this.stateSubject),
5183
5178
  rxjs.filter(
@@ -5194,9 +5189,16 @@
5194
5189
  rxjs.map(() => void 0),
5195
5190
  rxjs.share()
5196
5191
  );
5192
+ this.layers = [];
5197
5193
  this.destroy$ = this.triggerSubject.pipe(
5198
5194
  rxjs.filter((trigger) => trigger === `destroy`)
5199
5195
  );
5196
+ this.context = params.context;
5197
+ this.settings = params.settings;
5198
+ this.hookManager = params.hookManager;
5199
+ this.item = params.item;
5200
+ this.containerElement = params.containerElement;
5201
+ this.resourcesHandler = params.resourcesHandler;
5200
5202
  this.load$.pipe(
5201
5203
  rxjs.switchMap(() => {
5202
5204
  this.stateSubject.next(`loading`);
@@ -5409,16 +5411,17 @@
5409
5411
  hookManager
5410
5412
  );
5411
5413
  parentElement.appendChild(this.containerElement);
5412
- const RendererClass = ((_b = (_a = this.settings.values).getRenderer) == null ? void 0 : _b.call(_a, item)) ?? DefaultRenderer;
5414
+ const rendererFactory = (_b = (_a = this.settings.values).getRenderer) == null ? void 0 : _b.call(_a, item);
5413
5415
  this.resourcesHandler = new ResourceHandler(item, this.settings);
5414
- this.renderer = new RendererClass(
5416
+ const rendererParams = {
5415
5417
  context,
5416
5418
  settings,
5417
5419
  hookManager,
5418
5420
  item,
5419
- this.containerElement,
5420
- this.resourcesHandler
5421
- );
5421
+ containerElement: this.containerElement,
5422
+ resourcesHandler: this.resourcesHandler
5423
+ };
5424
+ this.renderer = rendererFactory ? rendererFactory(rendererParams) : new DefaultRenderer(rendererParams);
5422
5425
  const contentLayoutChange$ = rxjs.merge(
5423
5426
  this.unloaded$.pipe(operators.map(() => ({ isFirstLayout: false }))),
5424
5427
  this.ready$.pipe(operators.map(() => ({ isFirstLayout: true })))
@@ -6879,13 +6882,13 @@
6879
6882
  ...options,
6880
6883
  getRenderer(item) {
6881
6884
  var _a;
6882
- const MaybeRenderer = (_a = options.getRenderer) == null ? void 0 : _a.call(options, item);
6885
+ const maybeFactory = (_a = options.getRenderer) == null ? void 0 : _a.call(options, item);
6883
6886
  const mimeType = item.mediaType ?? shared.detectMimeTypeFromName(item.href);
6884
6887
  const isImageType = !!(mimeType == null ? void 0 : mimeType.startsWith(`image/`));
6885
- if (!MaybeRenderer && isImageType) {
6886
- return ImageRenderer;
6888
+ if (!maybeFactory && isImageType) {
6889
+ return (props) => new ImageRenderer(props);
6887
6890
  }
6888
- return MaybeRenderer;
6891
+ return maybeFactory;
6889
6892
  }
6890
6893
  });
6891
6894
  const frameObserver = new IntersectionObserver(
@@ -7315,7 +7318,9 @@
7315
7318
  `item.onDocumentLoad`,
7316
7319
  ({ destroy, layers, itemId }) => {
7317
7320
  var _a;
7318
- const frame = (_a = layers[0]) == null ? void 0 : _a.element;
7321
+ const frame = (_a = layers.find(
7322
+ (layer) => layer.element instanceof HTMLIFrameElement
7323
+ )) == null ? void 0 : _a.element;
7319
7324
  if (!(frame instanceof HTMLIFrameElement)) return;
7320
7325
  const item = reader.spineItemsManager.get(itemId);
7321
7326
  if (!item) return;
@@ -7985,15 +7990,8 @@
7985
7990
  };
7986
7991
  };
7987
7992
  class HtmlRenderer extends DocumentRenderer {
7988
- constructor(context, settings, hookManager, item, containerElement, resourcesHandler) {
7989
- super(
7990
- context,
7991
- settings,
7992
- hookManager,
7993
- item,
7994
- containerElement,
7995
- resourcesHandler
7996
- );
7993
+ constructor() {
7994
+ super(...arguments);
7997
7995
  this.isImageType = () => {
7998
7996
  const mimeType = this.item.mediaType ?? shared.detectMimeTypeFromName(this.item.href);
7999
7997
  return !!(mimeType == null ? void 0 : mimeType.startsWith(`image/`));
@@ -8112,8 +8110,8 @@
8112
8110
  ...options,
8113
8111
  getRenderer(item) {
8114
8112
  var _a;
8115
- const MaybeRenderer = (_a = options.getRenderer) == null ? void 0 : _a.call(options, item);
8116
- return MaybeRenderer ?? HtmlRenderer;
8113
+ const maybeFactory = (_a = options.getRenderer) == null ? void 0 : _a.call(options, item);
8114
+ return maybeFactory ?? ((props) => new HtmlRenderer(props));
8117
8115
  }
8118
8116
  });
8119
8117
  return reader;
@@ -8334,7 +8332,14 @@
8334
8332
  exports2.SettingsManager = SettingsManager;
8335
8333
  exports2.SpineItem = SpineItem;
8336
8334
  exports2.createReader = createReaderWithEnhancers;
8335
+ exports2.getAttributeValueFromString = getAttributeValueFromString;
8336
+ exports2.getFrameViewportInfo = getFrameViewportInfo;
8337
+ exports2.injectCSS = injectCSS;
8337
8338
  exports2.isHtmlElement = isHtmlElement;
8339
+ exports2.removeCSS = removeCSS;
8340
+ exports2.upsertCSS = upsertCSS;
8341
+ exports2.waitForFrameLoad = waitForFrameLoad;
8342
+ exports2.waitForFrameReady = waitForFrameReady;
8338
8343
  exports2.waitForSwitch = waitForSwitch;
8339
8344
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
8340
8345
  });