@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.
- package/dist/enhancers/pagination/spine.d.ts +0 -1
- package/dist/index.js +45 -104
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +45 -104
- package/dist/index.umd.cjs.map +1 -1
- package/dist/spine/SpineLayout.d.ts +2 -2
- package/dist/spine/layout/convertViewportPositionToLayoutPosition.d.ts +1 -1
- package/dist/spine/layout/layoutItem.d.ts +1 -1
- package/dist/spine/locator/SpineLocator.d.ts +0 -5
- package/dist/spine/locator/getAbsolutePageIndexFromPageIndex.d.ts +1 -1
- package/dist/spine/locator/getSpineInfoFromAbsolutePageIndex.d.ts +1 -1
- package/dist/spine/{layout/types.d.ts → types.d.ts} +6 -1
- package/dist/spineItem/SpineItem.d.ts +1 -0
- package/dist/spineItem/locationResolver.d.ts +0 -5
- package/package.json +3 -3
- /package/dist/spineItem/{locator → layout}/getSpineItemNumberOfPages.d.ts +0 -0
- /package/dist/spineItem/{locator → layout}/getSpineItemPagesPosition.d.ts +0 -0
- /package/dist/spineItem/{locator → layout}/getSpineItemPositionFromPageIndex.d.ts +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { Reader } from '../../reader';
|
|
3
|
-
export declare const getNumberOfPagesForAllSpineItems: (reader: Reader) => number[];
|
|
4
3
|
export declare const trackTotalPages: (reader: Reader) => Observable<{
|
|
5
4
|
numberOfPagesPerItems: number[];
|
|
6
5
|
numberOfTotalPages: number;
|
package/dist/index.js
CHANGED
|
@@ -3371,29 +3371,22 @@ const getPercentageEstimate = (reader, currentSpineIndex, pageIndex, currentPosi
|
|
|
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
|
debounceTime$1(10, animationFrameScheduler),
|
|
3385
3377
|
withLatestFrom(reader.pagination.state$),
|
|
3386
3378
|
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:
|
|
3394
|
-
(acc, numberOfPagesForItem) => acc + numberOfPagesForItem,
|
|
3395
|
-
0
|
|
3396
|
-
)
|
|
3389
|
+
numberOfTotalPages: reader.spine.spineLayout.numberOfPages
|
|
3397
3390
|
};
|
|
3398
3391
|
}),
|
|
3399
3392
|
distinctUntilChanged$1(isShallowEqual),
|
|
@@ -5668,12 +5661,7 @@ const createSpineItemLocator = ({
|
|
|
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 @@ const createNavigationResolver$1 = ({
|
|
|
5682
5670
|
}) => {
|
|
5683
5671
|
const spineItemLocator = createSpineItemLocator({ context, settings });
|
|
5684
5672
|
const getNavigationForLastPage = (spineItem) => {
|
|
5685
|
-
const
|
|
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 @@ class PaginationController extends DestroyableClass {
|
|
|
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
|
|
7385
|
-
const
|
|
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 @@ class ReaderSettingsManager extends SettingsManager3 {
|
|
|
7565
7538
|
const getAbsolutePageIndexFromPageIndex = ({
|
|
7566
7539
|
pageIndex,
|
|
7567
7540
|
spineItemOrId,
|
|
7568
|
-
|
|
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 @@ const getAbsolutePageIndexFromPageIndex = ({
|
|
|
7576
7546
|
const { currentAbsolutePage } = items.reduce(
|
|
7577
7547
|
(acc, item) => {
|
|
7578
7548
|
if (acc.found) return acc;
|
|
7579
|
-
const
|
|
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 @@ const getItemVisibilityForPosition = ({
|
|
|
7677
7640
|
};
|
|
7678
7641
|
const getSpineInfoFromAbsolutePageIndex = ({
|
|
7679
7642
|
absolutePageIndex,
|
|
7680
|
-
|
|
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
|
|
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 @@ const createSpineLocator = ({
|
|
|
7849
7802
|
spineItem,
|
|
7850
7803
|
restrictToScreen
|
|
7851
7804
|
}) => {
|
|
7852
|
-
const
|
|
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 @@ const createSpineLocator = ({
|
|
|
7926
7874
|
},
|
|
7927
7875
|
getAbsolutePageIndexFromPageIndex: (params) => getAbsolutePageIndexFromPageIndex({
|
|
7928
7876
|
...params,
|
|
7929
|
-
|
|
7930
|
-
settings,
|
|
7931
|
-
spineItemsManager,
|
|
7932
|
-
spineLayout
|
|
7877
|
+
spineItemsManager
|
|
7933
7878
|
}),
|
|
7934
7879
|
getSpineInfoFromAbsolutePageIndex: (params) => getSpineInfoFromAbsolutePageIndex({
|
|
7935
7880
|
...params,
|
|
7936
|
-
|
|
7937
|
-
settings,
|
|
7938
|
-
spineItemsManager,
|
|
7939
|
-
spineLayout
|
|
7881
|
+
spineItemsManager
|
|
7940
7882
|
}),
|
|
7941
7883
|
getSpinePositionFromSpineItem,
|
|
7942
7884
|
getSpineItemPositionFromSpinePosition,
|
|
@@ -8269,18 +8211,11 @@ class SpineLayout extends DestroyableClass {
|
|
|
8269
8211
|
}),
|
|
8270
8212
|
map(() => {
|
|
8271
8213
|
const items = spineItemsManager.items;
|
|
8272
|
-
const
|
|
8214
|
+
const pages = items.reduce((acc, item, itemIndex) => {
|
|
8273
8215
|
const itemLayout = this.getSpineItemRelativeLayoutInfo(item);
|
|
8274
|
-
const
|
|
8275
|
-
|
|
8276
|
-
|
|
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 @@ class SpineLayout extends DestroyableClass {
|
|
|
8291
8226
|
context
|
|
8292
8227
|
})
|
|
8293
8228
|
})
|
|
8294
|
-
})
|
|
8295
|
-
);
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
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 @@ class SpineLayout extends DestroyableClass {
|
|
|
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 @@ class SpineItem extends DestroyableClass {
|
|
|
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`);
|