@prose-reader/core 1.196.0 → 1.197.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.
@@ -3371,29 +3371,22 @@
3371
3371
  })
3372
3372
  );
3373
3373
  };
3374
- const getNumberOfPagesForAllSpineItems = (reader) => reader.spineItemsManager.items.map((item) => {
3375
- const { height, width } = item.layout.layoutInfo;
3376
- return reader.spine.spineItemLocator.getSpineItemNumberOfPages({
3377
- isUsingVerticalWriting: !!item.isUsingVerticalWriting(),
3378
- itemHeight: height,
3379
- itemWidth: width
3380
- });
3381
- }, 0);
3382
3374
  const trackTotalPages = (reader) => {
3383
3375
  const totalPages$ = reader.layout$.pipe(
3384
3376
  rxjs.debounceTime(10, rxjs.animationFrameScheduler),
3385
3377
  rxjs.withLatestFrom(reader.pagination.state$),
3386
3378
  rxjs.map(() => {
3387
- const numberOfPagesPerItems = getNumberOfPagesForAllSpineItems(reader);
3388
3379
  return {
3389
- numberOfPagesPerItems,
3380
+ numberOfPagesPerItems: reader.spineItemsManager.items.reduce(
3381
+ (acc, item) => {
3382
+ return [...acc, item.numberOfPages];
3383
+ },
3384
+ []
3385
+ ),
3390
3386
  /**
3391
3387
  * This may be not accurate for reflowable due to dynamic load / unload.
3392
3388
  */
3393
- numberOfTotalPages: numberOfPagesPerItems.reduce(
3394
- (acc, numberOfPagesForItem) => acc + numberOfPagesForItem,
3395
- 0
3396
- )
3389
+ numberOfTotalPages: reader.spine.spineLayout.numberOfPages
3397
3390
  };
3398
3391
  }),
3399
3392
  rxjs.distinctUntilChanged(shared.isShallowEqual),
@@ -5668,12 +5661,7 @@
5668
5661
  settings,
5669
5662
  itemLayout: item.layout.layoutInfo
5670
5663
  });
5671
- },
5672
- getSpineItemNumberOfPages: (params) => getSpineItemNumberOfPages({
5673
- context,
5674
- settings,
5675
- ...params
5676
- })
5664
+ }
5677
5665
  };
5678
5666
  };
5679
5667
  const createNavigationResolver$1 = ({
@@ -5682,12 +5670,7 @@
5682
5670
  }) => {
5683
5671
  const spineItemLocator = createSpineItemLocator({ context, settings });
5684
5672
  const getNavigationForLastPage = (spineItem) => {
5685
- const { height, width } = spineItem.layout.layoutInfo;
5686
- const numberOfPages = spineItemLocator.getSpineItemNumberOfPages({
5687
- isUsingVerticalWriting: !!spineItem.isUsingVerticalWriting(),
5688
- itemHeight: height,
5689
- itemWidth: width
5690
- });
5673
+ const numberOfPages = spineItem.numberOfPages;
5691
5674
  return spineItemLocator.getSpineItemPositionFromPageIndex({
5692
5675
  pageIndex: numberOfPages - 1,
5693
5676
  isUsingVerticalWriting: !!spineItem.isUsingVerticalWriting(),
@@ -7381,18 +7364,8 @@
7381
7364
  const shouldUpdateEndCfi = previousPagination.endSpineItemIndex !== endSpineItemIndex || endLastCfi === void 0 || isRootCfi(endLastCfi);
7382
7365
  const beginCfi = shouldUpdateBeginCfi ? getRootCfi(beginSpineItem) : beginLastCfi;
7383
7366
  const endCfi = shouldUpdateEndCfi ? getRootCfi(endSpineItem) : endLastCfi;
7384
- const beginSpineItemDimensions = beginSpineItem.layout.layoutInfo;
7385
- const beginNumberOfPagesInSpineItem = this.spineItemLocator.getSpineItemNumberOfPages({
7386
- itemHeight: beginSpineItemDimensions.height,
7387
- itemWidth: beginSpineItemDimensions.width,
7388
- isUsingVerticalWriting: !!beginSpineItem.isUsingVerticalWriting()
7389
- });
7390
- const endSpineItemDimensions = endSpineItem.layout.layoutInfo;
7391
- const endNumberOfPagesInSpineItem = this.spineItemLocator.getSpineItemNumberOfPages({
7392
- itemHeight: endSpineItemDimensions.height,
7393
- itemWidth: endSpineItemDimensions.width,
7394
- isUsingVerticalWriting: !!endSpineItem.isUsingVerticalWriting()
7395
- });
7367
+ const beginNumberOfPagesInSpineItem = beginSpineItem.numberOfPages;
7368
+ const endNumberOfPagesInSpineItem = endSpineItem.numberOfPages;
7396
7369
  this.pagination.update({
7397
7370
  beginCfi,
7398
7371
  beginNumberOfPagesInSpineItem,
@@ -7565,10 +7538,7 @@
7565
7538
  const getAbsolutePageIndexFromPageIndex = ({
7566
7539
  pageIndex,
7567
7540
  spineItemOrId,
7568
- spineLayout,
7569
- spineItemsManager,
7570
- context,
7571
- settings
7541
+ spineItemsManager
7572
7542
  }) => {
7573
7543
  const items = spineItemsManager.items;
7574
7544
  const spineItem = spineItemsManager.get(spineItemOrId);
@@ -7576,14 +7546,7 @@
7576
7546
  const { currentAbsolutePage } = items.reduce(
7577
7547
  (acc, item) => {
7578
7548
  if (acc.found) return acc;
7579
- const itemLayout = spineLayout.getSpineItemRelativeLayoutInfo(item);
7580
- const numberOfPages = getSpineItemNumberOfPages({
7581
- isUsingVerticalWriting: !!item.isUsingVerticalWriting(),
7582
- itemHeight: itemLayout.height,
7583
- itemWidth: itemLayout.width,
7584
- context,
7585
- settings
7586
- });
7549
+ const numberOfPages = item.numberOfPages;
7587
7550
  if (spineItem === item) {
7588
7551
  if (pageIndex <= numberOfPages - 1) {
7589
7552
  return {
@@ -7677,23 +7640,13 @@
7677
7640
  };
7678
7641
  const getSpineInfoFromAbsolutePageIndex = ({
7679
7642
  absolutePageIndex,
7680
- spineLayout,
7681
- spineItemsManager,
7682
- context,
7683
- settings
7643
+ spineItemsManager
7684
7644
  }) => {
7685
7645
  const items = spineItemsManager.items;
7686
7646
  const { found, currentAbsolutePage } = items.reduce(
7687
7647
  (acc, item) => {
7688
7648
  if (acc.found) return acc;
7689
- const itemLayout = spineLayout.getSpineItemRelativeLayoutInfo(item);
7690
- const numberOfPages = getSpineItemNumberOfPages({
7691
- isUsingVerticalWriting: !!item.isUsingVerticalWriting(),
7692
- itemHeight: itemLayout.height,
7693
- itemWidth: itemLayout.width,
7694
- context,
7695
- settings
7696
- });
7649
+ const numberOfPages = item.numberOfPages;
7697
7650
  const possiblePageIndex = absolutePageIndex - acc.currentAbsolutePage;
7698
7651
  const currentAbsolutePage2 = acc.currentAbsolutePage + numberOfPages;
7699
7652
  if (possiblePageIndex <= numberOfPages - 1) {
@@ -7849,12 +7802,7 @@
7849
7802
  spineItem,
7850
7803
  restrictToScreen
7851
7804
  }) => {
7852
- const { height, width } = spineItem.layout.layoutInfo;
7853
- const numberOfPages = spineItemLocator.getSpineItemNumberOfPages({
7854
- isUsingVerticalWriting: !!spineItem.isUsingVerticalWriting(),
7855
- itemHeight: height,
7856
- itemWidth: width
7857
- });
7805
+ const numberOfPages = spineItem.numberOfPages;
7858
7806
  const pages = Array.from(Array(numberOfPages)).map((_, index) => {
7859
7807
  const spineItemPosition = spineItemLocator.getSpineItemPositionFromPageIndex({
7860
7808
  pageIndex: index,
@@ -7926,17 +7874,11 @@
7926
7874
  },
7927
7875
  getAbsolutePageIndexFromPageIndex: (params) => getAbsolutePageIndexFromPageIndex({
7928
7876
  ...params,
7929
- context,
7930
- settings,
7931
- spineItemsManager,
7932
- spineLayout
7877
+ spineItemsManager
7933
7878
  }),
7934
7879
  getSpineInfoFromAbsolutePageIndex: (params) => getSpineInfoFromAbsolutePageIndex({
7935
7880
  ...params,
7936
- context,
7937
- settings,
7938
- spineItemsManager,
7939
- spineLayout
7881
+ spineItemsManager
7940
7882
  }),
7941
7883
  getSpinePositionFromSpineItem,
7942
7884
  getSpineItemPositionFromSpinePosition,
@@ -8269,18 +8211,11 @@
8269
8211
  }),
8270
8212
  rxjs.map(() => {
8271
8213
  const items = spineItemsManager.items;
8272
- const spineItemsPagesAbsolutePositions = items.map((item) => {
8214
+ const pages = items.reduce((acc, item, itemIndex) => {
8273
8215
  const itemLayout = this.getSpineItemRelativeLayoutInfo(item);
8274
- const numberOfPages = getSpineItemNumberOfPages({
8275
- isUsingVerticalWriting: !!item.isUsingVerticalWriting(),
8276
- itemHeight: itemLayout.height,
8277
- itemWidth: itemLayout.width,
8278
- context,
8279
- settings
8280
- });
8281
- const pages2 = new Array(numberOfPages).fill(void 0);
8282
- return pages2.map(
8283
- (_, pageIndex) => convertSpinePositionToLayoutPosition({
8216
+ const pages2 = new Array(item.numberOfPages).fill(void 0);
8217
+ const pagesAbsolutePositions = pages2.map((_, pageIndex) => {
8218
+ return convertSpinePositionToLayoutPosition({
8284
8219
  pageSize: this.context.getPageSize(),
8285
8220
  position: getSpinePositionFromSpineItemPosition({
8286
8221
  itemLayout,
@@ -8291,24 +8226,16 @@
8291
8226
  context
8292
8227
  })
8293
8228
  })
8294
- })
8295
- );
8296
- });
8297
- const pages = spineItemsPagesAbsolutePositions.reduce(
8298
- (acc, itemPages, itemIndex) => {
8299
- const itemPagesInfo = itemPages.map(
8300
- (absolutePosition, pageIndex) => ({
8301
- itemIndex,
8302
- absolutePageIndex: itemIndex + pageIndex,
8303
- absolutePosition
8304
- })
8305
- );
8306
- return [...acc, ...itemPagesInfo];
8307
- },
8308
- []
8309
- );
8229
+ });
8230
+ });
8231
+ const itemPagesInfo = pagesAbsolutePositions.map((absolutePosition, pageIndex) => ({
8232
+ itemIndex,
8233
+ absolutePageIndex: itemIndex + pageIndex,
8234
+ absolutePosition
8235
+ }));
8236
+ return [...acc, ...itemPagesInfo];
8237
+ }, []);
8310
8238
  return {
8311
- spineItemsAbsolutePositions: [...this.spineItemsRelativeLayouts],
8312
8239
  pages
8313
8240
  };
8314
8241
  }),
@@ -8338,6 +8265,11 @@
8338
8265
  y: 0
8339
8266
  };
8340
8267
  }
8268
+ get numberOfPages() {
8269
+ return this.spineItemsManager.items.reduce((acc, item) => {
8270
+ return acc + item.numberOfPages;
8271
+ }, 0);
8272
+ }
8341
8273
  destroy() {
8342
8274
  super.destroy();
8343
8275
  this.layoutSubject.complete();
@@ -8607,6 +8539,15 @@
8607
8539
  get renditionLayout() {
8608
8540
  return this.renderer.renditionLayout;
8609
8541
  }
8542
+ get numberOfPages() {
8543
+ return getSpineItemNumberOfPages({
8544
+ isUsingVerticalWriting: !!this.isUsingVerticalWriting(),
8545
+ itemHeight: this.layout.layoutInfo.height,
8546
+ itemWidth: this.layout.layoutInfo.width,
8547
+ context: this.context,
8548
+ settings: this.settings
8549
+ });
8550
+ }
8610
8551
  }
8611
8552
  const createContainerElement = (containerElement, item, hookManager) => {
8612
8553
  const element = containerElement.ownerDocument.createElement(`div`);