@prose-reader/core 1.201.0 → 1.202.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/createReaderWithEnhancer.d.ts +10 -10
- package/dist/enhancers/{layoutEnhancer → layout}/types.d.ts +1 -0
- package/dist/enhancers/layout/viewportMode.d.ts +3 -0
- package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +1 -1
- package/dist/enhancers/pagination/enhancer.d.ts +1 -1
- package/dist/enhancers/pagination/pagination.d.ts +1 -1
- package/dist/enhancers/pagination/progression.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +140 -90
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +142 -91
- package/dist/index.umd.cjs.map +1 -1
- package/dist/navigation/InternalNavigator.d.ts +1 -1
- package/dist/navigation/Navigator.d.ts +4 -2
- package/dist/navigation/UserScrollNavigation.d.ts +18 -0
- package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +1 -1
- package/dist/navigation/controllers/ScrollNavigationController.d.ts +1 -0
- package/dist/navigation/tests/utils.d.ts +0 -11
- package/dist/navigation/types.d.ts +11 -0
- package/dist/reader.d.ts +2 -2
- package/dist/settings/SettingsManagerOverload.d.ts +1 -0
- package/dist/spine/loader/SpineItemsLoader.d.ts +2 -1
- package/dist/viewport/Viewport.d.ts +5 -1
- package/package.json +3 -3
- package/dist/navigation/UserNavigator.d.ts +0 -29
- package/dist/enhancers/{layoutEnhancer → layout}/SettingsManager.d.ts +1 -1
- /package/dist/enhancers/{layoutEnhancer → layout}/createMovingSafePan$.d.ts +0 -0
- /package/dist/enhancers/{layoutEnhancer → layout}/fixReflowable.d.ts +0 -0
- /package/dist/enhancers/{layoutEnhancer → layout}/layoutEnhancer.d.ts +0 -0
- /package/dist/enhancers/{layoutEnhancer → layout}/layoutInfo.d.ts +0 -0
package/dist/index.umd.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function(global, factory) {
|
|
2
|
-
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("rxjs"), require("rxjs/operators"), require("@prose-reader/shared")
|
|
3
|
-
})(this, function(exports2, rxjs, operators, shared
|
|
2
|
+
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("rxjs"), require("rxjs/operators"), require("@prose-reader/shared")) : typeof define === "function" && define.amd ? define(["exports", "rxjs", "rxjs/operators", "@prose-reader/shared"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.prose = {}, global.rxjs, global.operators, global.shared));
|
|
3
|
+
})(this, function(exports2, rxjs, operators, shared) {
|
|
4
4
|
"use strict";
|
|
5
5
|
const getAttributeValueFromString = (string, key) => {
|
|
6
6
|
const regExp = new RegExp(`${key}\\s*=\\s*([0-9.]+)`, `i`);
|
|
@@ -731,9 +731,12 @@
|
|
|
731
731
|
...this.outputSettings
|
|
732
732
|
};
|
|
733
733
|
}
|
|
734
|
-
watch(
|
|
734
|
+
watch(keyOrKeys) {
|
|
735
|
+
if (Array.isArray(keyOrKeys)) {
|
|
736
|
+
return this.values$.pipe(watchKeys(keyOrKeys));
|
|
737
|
+
}
|
|
735
738
|
return this.values$.pipe(
|
|
736
|
-
|
|
739
|
+
operators.map((result) => result[keyOrKeys]),
|
|
737
740
|
operators.distinctUntilChanged(shared.isShallowEqual)
|
|
738
741
|
);
|
|
739
742
|
}
|
|
@@ -1070,8 +1073,9 @@
|
|
|
1070
1073
|
return rxjs.defer(() => this.onLayout(params)).pipe();
|
|
1071
1074
|
}
|
|
1072
1075
|
destroy() {
|
|
1073
|
-
|
|
1076
|
+
this.unload();
|
|
1074
1077
|
this.stateSubject.complete();
|
|
1078
|
+
super.destroy();
|
|
1075
1079
|
}
|
|
1076
1080
|
get writingMode() {
|
|
1077
1081
|
return void 0;
|
|
@@ -2053,6 +2057,7 @@
|
|
|
2053
2057
|
pageHorizontalMargin,
|
|
2054
2058
|
pageVerticalMargin,
|
|
2055
2059
|
layoutLayerTransition,
|
|
2060
|
+
viewportMode,
|
|
2056
2061
|
...rest
|
|
2057
2062
|
} = settings;
|
|
2058
2063
|
return rest;
|
|
@@ -2062,7 +2067,8 @@
|
|
|
2062
2067
|
layoutAutoResize: "container",
|
|
2063
2068
|
pageHorizontalMargin: 24,
|
|
2064
2069
|
pageVerticalMargin: 24,
|
|
2065
|
-
layoutLayerTransition: true
|
|
2070
|
+
layoutLayerTransition: true,
|
|
2071
|
+
viewportMode: "normal"
|
|
2066
2072
|
};
|
|
2067
2073
|
}
|
|
2068
2074
|
};
|
|
@@ -2240,6 +2246,24 @@
|
|
|
2240
2246
|
info$.pipe(rxjs.takeUntil(reader.$.destroy$)).subscribe();
|
|
2241
2247
|
return { layout$, info$ };
|
|
2242
2248
|
};
|
|
2249
|
+
const createViewportModeHandler = (reader, viewportMode$) => {
|
|
2250
|
+
return viewportMode$.pipe(
|
|
2251
|
+
rxjs.tap((viewportMode) => {
|
|
2252
|
+
reader.viewport.value.element.style.transition = `transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275)`;
|
|
2253
|
+
if (reader.settings.values.computedPageTurnMode === "scrollable") {
|
|
2254
|
+
reader.viewport.value.element.style.transformOrigin = `top`;
|
|
2255
|
+
} else {
|
|
2256
|
+
reader.viewport.value.element.style.transformOrigin = `center`;
|
|
2257
|
+
}
|
|
2258
|
+
if (viewportMode === `thumbnails`) {
|
|
2259
|
+
reader.viewport.value.element.style.transform = `scale(0.5)`;
|
|
2260
|
+
} else {
|
|
2261
|
+
reader.viewport.value.element.style.transform = `scale(1)`;
|
|
2262
|
+
}
|
|
2263
|
+
reader.layout();
|
|
2264
|
+
})
|
|
2265
|
+
);
|
|
2266
|
+
};
|
|
2243
2267
|
const layoutEnhancer = (next) => (options) => {
|
|
2244
2268
|
const {
|
|
2245
2269
|
pageHorizontalMargin,
|
|
@@ -2375,11 +2399,16 @@
|
|
|
2375
2399
|
})
|
|
2376
2400
|
);
|
|
2377
2401
|
const { layout$, info$ } = createLayoutInfo(reader);
|
|
2402
|
+
const viewportModeHandler$ = createViewportModeHandler(
|
|
2403
|
+
reader,
|
|
2404
|
+
settingsManager.watch(`viewportMode`)
|
|
2405
|
+
);
|
|
2378
2406
|
rxjs.merge(
|
|
2379
2407
|
updateSpineItemClassName$,
|
|
2380
2408
|
revealItemOnReady$,
|
|
2381
2409
|
movingSafePan$,
|
|
2382
|
-
layoutOnContainerResize
|
|
2410
|
+
layoutOnContainerResize$,
|
|
2411
|
+
viewportModeHandler$
|
|
2383
2412
|
).pipe(operators.takeUntil(reader.$.destroy$)).subscribe();
|
|
2384
2413
|
return {
|
|
2385
2414
|
...reader,
|
|
@@ -2698,7 +2727,7 @@
|
|
|
2698
2727
|
})
|
|
2699
2728
|
);
|
|
2700
2729
|
};
|
|
2701
|
-
const report$
|
|
2730
|
+
const report$3 = Report.namespace(`navigation`);
|
|
2702
2731
|
class SpineItemPosition {
|
|
2703
2732
|
constructor(position) {
|
|
2704
2733
|
this.__symbol = Symbol(`SpineItemPosition`);
|
|
@@ -3098,7 +3127,7 @@
|
|
|
3098
3127
|
pageIndex,
|
|
3099
3128
|
spineItemId
|
|
3100
3129
|
});
|
|
3101
|
-
report$
|
|
3130
|
+
report$3.debug(`.goToPageOfSpineItem()`, {
|
|
3102
3131
|
pageIndex,
|
|
3103
3132
|
spineItemId,
|
|
3104
3133
|
...rest,
|
|
@@ -3116,7 +3145,7 @@
|
|
|
3116
3145
|
const foundInfo = this.reader.spine.locator.getSpineInfoFromAbsolutePageIndex({
|
|
3117
3146
|
absolutePageIndex
|
|
3118
3147
|
});
|
|
3119
|
-
report$
|
|
3148
|
+
report$3.debug(`.goToAbsolutePageIndex()`, {
|
|
3120
3149
|
absolutePageIndex,
|
|
3121
3150
|
...rest,
|
|
3122
3151
|
foundInfo
|
|
@@ -3159,7 +3188,7 @@
|
|
|
3159
3188
|
}
|
|
3160
3189
|
let navigation = this.reader.navigation.getNavigation().position;
|
|
3161
3190
|
if (delta) {
|
|
3162
|
-
const viewportScale = this.reader.viewport.absoluteViewport.width / this.reader.viewport.
|
|
3191
|
+
const viewportScale = this.reader.viewport.absoluteViewport.width / this.reader.viewport.relativeViewport.width;
|
|
3163
3192
|
const correctedX = Math.floor(delta.x) - (((_b = this.lastDelta) == null ? void 0 : _b.x) || 0);
|
|
3164
3193
|
const correctedY = Math.floor(delta.y) - (((_c = this.lastDelta) == null ? void 0 : _c.y) || 0);
|
|
3165
3194
|
const x = Math.floor(
|
|
@@ -3285,7 +3314,7 @@
|
|
|
3285
3314
|
}
|
|
3286
3315
|
};
|
|
3287
3316
|
};
|
|
3288
|
-
const NAMESPACE$
|
|
3317
|
+
const NAMESPACE$4 = `paginationEnhancer`;
|
|
3289
3318
|
const consolidate = (item, reader) => {
|
|
3290
3319
|
var _a;
|
|
3291
3320
|
let itemPageIndex = (_a = item.meta) == null ? void 0 : _a.itemPageIndex;
|
|
@@ -3640,7 +3669,7 @@
|
|
|
3640
3669
|
);
|
|
3641
3670
|
return { paginationInfo$, getPaginationInfo: () => currentValue.value };
|
|
3642
3671
|
};
|
|
3643
|
-
Report.namespace(NAMESPACE$
|
|
3672
|
+
Report.namespace(NAMESPACE$4);
|
|
3644
3673
|
const paginationEnhancer = (next) => (options) => {
|
|
3645
3674
|
const reader = next(options);
|
|
3646
3675
|
const { paginationInfo$, getPaginationInfo } = trackPaginationInfo(reader);
|
|
@@ -6157,8 +6186,8 @@
|
|
|
6157
6186
|
);
|
|
6158
6187
|
})
|
|
6159
6188
|
);
|
|
6160
|
-
const NAMESPACE$
|
|
6161
|
-
const report$
|
|
6189
|
+
const NAMESPACE$3 = `navigation/InternalNavigator`;
|
|
6190
|
+
const report$2 = Report.namespace(NAMESPACE$3);
|
|
6162
6191
|
class InternalNavigator extends DestroyableClass {
|
|
6163
6192
|
constructor(settings, context, userNavigation$, viewportController, scrollNavigationController, navigationResolver, spine, isUserLocked$) {
|
|
6164
6193
|
super();
|
|
@@ -6360,7 +6389,7 @@
|
|
|
6360
6389
|
);
|
|
6361
6390
|
const notifyNavigationUpdate = (stream) => stream.pipe(
|
|
6362
6391
|
rxjs.tap(([currentNavigation, previousNavigation]) => {
|
|
6363
|
-
report$
|
|
6392
|
+
report$2.info(
|
|
6364
6393
|
`navigation updated from ${currentNavigation.meta.triggeredBy} of type ${currentNavigation.type}`,
|
|
6365
6394
|
{
|
|
6366
6395
|
previousNavigation,
|
|
@@ -6436,40 +6465,23 @@
|
|
|
6436
6465
|
return scaledDownPosition;
|
|
6437
6466
|
};
|
|
6438
6467
|
const SCROLL_FINISHED_DEBOUNCE_TIMEOUT = 500;
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
class UserNavigator extends DestroyableClass {
|
|
6442
|
-
constructor(settings, scrollNavigatorElement$, context, scrollHappeningFromBrowser$, spine) {
|
|
6468
|
+
class UserScrollNavigation extends DestroyableClass {
|
|
6469
|
+
constructor(settings, context, spine, scrollNavigationController, locker) {
|
|
6443
6470
|
super();
|
|
6444
6471
|
this.settings = settings;
|
|
6445
|
-
this.scrollNavigatorElement$ = scrollNavigatorElement$;
|
|
6446
6472
|
this.context = context;
|
|
6447
|
-
this.scrollHappeningFromBrowser$ = scrollHappeningFromBrowser$;
|
|
6448
6473
|
this.spine = spine;
|
|
6474
|
+
this.scrollNavigationController = scrollNavigationController;
|
|
6475
|
+
this.locker = locker;
|
|
6449
6476
|
this.navigationSubject = new rxjs.Subject();
|
|
6450
|
-
this.locker = new Locker();
|
|
6451
6477
|
this.navigation$ = this.navigationSubject.asObservable();
|
|
6452
|
-
const
|
|
6453
|
-
rxjs.filter(reactjrx.isDefined),
|
|
6454
|
-
rxjs.switchMap(
|
|
6455
|
-
(element) => settings.watch(["computedPageTurnMode"]).pipe(
|
|
6456
|
-
rxjs.switchMap(
|
|
6457
|
-
({ computedPageTurnMode }) => computedPageTurnMode === "controlled" ? rxjs.NEVER : rxjs.fromEvent(element, `scroll`).pipe(
|
|
6458
|
-
rxjs.withLatestFrom(scrollHappeningFromBrowser$),
|
|
6459
|
-
rxjs.filter(
|
|
6460
|
-
([, shouldAvoidScrollEvent]) => !shouldAvoidScrollEvent
|
|
6461
|
-
),
|
|
6462
|
-
rxjs.map(([event]) => event)
|
|
6463
|
-
)
|
|
6464
|
-
)
|
|
6465
|
-
)
|
|
6466
|
-
),
|
|
6467
|
-
rxjs.share()
|
|
6468
|
-
);
|
|
6469
|
-
const navigateOnScroll$ = userScroll$.pipe(
|
|
6478
|
+
const navigateOnScroll$ = this.scrollNavigationController.userScroll$.pipe(
|
|
6470
6479
|
rxjs.exhaustMap((event) => {
|
|
6471
6480
|
const unlock = this.locker.lock();
|
|
6472
|
-
return rxjs.merge(
|
|
6481
|
+
return rxjs.merge(
|
|
6482
|
+
this.scrollNavigationController.userScroll$,
|
|
6483
|
+
rxjs.of(event)
|
|
6484
|
+
).pipe(
|
|
6473
6485
|
rxjs.debounceTime(
|
|
6474
6486
|
SCROLL_FINISHED_DEBOUNCE_TIMEOUT,
|
|
6475
6487
|
rxjs.animationFrameScheduler
|
|
@@ -6485,7 +6497,7 @@
|
|
|
6485
6497
|
}),
|
|
6486
6498
|
spineElement: this.spine.element
|
|
6487
6499
|
});
|
|
6488
|
-
this.
|
|
6500
|
+
this.navigationSubject.next({
|
|
6489
6501
|
animation: false,
|
|
6490
6502
|
type: "scroll",
|
|
6491
6503
|
position: scaledDownPosition
|
|
@@ -6499,15 +6511,6 @@
|
|
|
6499
6511
|
);
|
|
6500
6512
|
rxjs.merge(navigateOnScroll$).pipe(rxjs.takeUntil(this.destroy$)).subscribe();
|
|
6501
6513
|
}
|
|
6502
|
-
/**
|
|
6503
|
-
* Remember that this navigation is not trustable.
|
|
6504
|
-
*
|
|
6505
|
-
* It needs to be verified and adjusted if necessary before becoming internal.
|
|
6506
|
-
*/
|
|
6507
|
-
navigate(to) {
|
|
6508
|
-
report$2.info(`.navigate`, to);
|
|
6509
|
-
this.navigationSubject.next(to);
|
|
6510
|
-
}
|
|
6511
6514
|
}
|
|
6512
6515
|
const spinePositionToTranslation = (position) => {
|
|
6513
6516
|
return {
|
|
@@ -6772,6 +6775,46 @@
|
|
|
6772
6775
|
rxjs.switchMap(() => rxjs.merge(rxjs.of(true), rxjs.of(false))),
|
|
6773
6776
|
rxjs.shareReplay(1)
|
|
6774
6777
|
);
|
|
6778
|
+
const isSpineScrolling$ = rxjs.merge(
|
|
6779
|
+
spine.element$.pipe(rxjs.switchMap((element) => observeResize(element))),
|
|
6780
|
+
spine.element$.pipe(rxjs.switchMap((element) => rxjs.fromEvent(element, "scroll"))),
|
|
6781
|
+
spine.spineItemsObserver.itemResize$
|
|
6782
|
+
).pipe(
|
|
6783
|
+
rxjs.switchMap(
|
|
6784
|
+
() => rxjs.timer(10).pipe(
|
|
6785
|
+
rxjs.map(() => false),
|
|
6786
|
+
rxjs.startWith(true)
|
|
6787
|
+
)
|
|
6788
|
+
),
|
|
6789
|
+
rxjs.distinctUntilChanged(),
|
|
6790
|
+
rxjs.startWith(false)
|
|
6791
|
+
);
|
|
6792
|
+
const scrollHappeningFromBrowser$ = rxjs.combineLatest([
|
|
6793
|
+
isSpineScrolling$,
|
|
6794
|
+
this.isScrolling$
|
|
6795
|
+
]).pipe(
|
|
6796
|
+
rxjs.map(
|
|
6797
|
+
([spineScrolling, viewportScrolling]) => spineScrolling || viewportScrolling
|
|
6798
|
+
),
|
|
6799
|
+
rxjs.shareReplay(1)
|
|
6800
|
+
);
|
|
6801
|
+
this.userScroll$ = this.watch("element").pipe(
|
|
6802
|
+
rxjs.filter(isDefined),
|
|
6803
|
+
rxjs.switchMap(
|
|
6804
|
+
(element) => settings.watch(["computedPageTurnMode"]).pipe(
|
|
6805
|
+
rxjs.switchMap(
|
|
6806
|
+
({ computedPageTurnMode }) => computedPageTurnMode === "controlled" ? rxjs.NEVER : rxjs.fromEvent(element, `scroll`).pipe(
|
|
6807
|
+
rxjs.withLatestFrom(scrollHappeningFromBrowser$),
|
|
6808
|
+
rxjs.filter(
|
|
6809
|
+
([, shouldAvoidScrollEvent]) => !shouldAvoidScrollEvent
|
|
6810
|
+
),
|
|
6811
|
+
rxjs.map(([event]) => event)
|
|
6812
|
+
)
|
|
6813
|
+
)
|
|
6814
|
+
)
|
|
6815
|
+
),
|
|
6816
|
+
rxjs.share()
|
|
6817
|
+
);
|
|
6775
6818
|
rxjs.merge(elementCreation$, toggleElementDisplay$, navigate$).pipe(rxjs.takeUntil(this.destroy$)).subscribe();
|
|
6776
6819
|
}
|
|
6777
6820
|
navigate(navigation) {
|
|
@@ -7415,6 +7458,8 @@
|
|
|
7415
7458
|
settings,
|
|
7416
7459
|
viewport
|
|
7417
7460
|
}) => {
|
|
7461
|
+
const userExplicitNavigationSubject = new rxjs.Subject();
|
|
7462
|
+
const locker = new Locker();
|
|
7418
7463
|
const navigationResolver = createNavigationResolver({
|
|
7419
7464
|
context,
|
|
7420
7465
|
settings,
|
|
@@ -7436,58 +7481,42 @@
|
|
|
7436
7481
|
spine,
|
|
7437
7482
|
context
|
|
7438
7483
|
);
|
|
7439
|
-
const
|
|
7440
|
-
spine.element$.pipe(operators.switchMap((element) => observeResize(element))),
|
|
7441
|
-
spine.element$.pipe(operators.switchMap((element) => rxjs.fromEvent(element, "scroll"))),
|
|
7442
|
-
spine.spineItemsObserver.itemResize$
|
|
7443
|
-
).pipe(
|
|
7444
|
-
operators.switchMap(
|
|
7445
|
-
() => rxjs.timer(10).pipe(
|
|
7446
|
-
operators.map(() => false),
|
|
7447
|
-
operators.startWith(true)
|
|
7448
|
-
)
|
|
7449
|
-
),
|
|
7450
|
-
operators.distinctUntilChanged(),
|
|
7451
|
-
operators.startWith(false)
|
|
7452
|
-
);
|
|
7453
|
-
const scrollHappeningFromBrowser$ = rxjs.combineLatest([
|
|
7454
|
-
isSpineScrolling$,
|
|
7455
|
-
scrollNavigationController.isScrolling$
|
|
7456
|
-
]).pipe(
|
|
7457
|
-
operators.map(
|
|
7458
|
-
([spineScrolling, viewportScrolling]) => spineScrolling || viewportScrolling
|
|
7459
|
-
),
|
|
7460
|
-
operators.shareReplay(1)
|
|
7461
|
-
);
|
|
7462
|
-
const userNavigator = new UserNavigator(
|
|
7484
|
+
const userScrollNavigation = new UserScrollNavigation(
|
|
7463
7485
|
settings,
|
|
7464
|
-
scrollNavigationController.watch("element"),
|
|
7465
7486
|
context,
|
|
7466
|
-
|
|
7467
|
-
|
|
7487
|
+
spine,
|
|
7488
|
+
scrollNavigationController,
|
|
7489
|
+
locker
|
|
7490
|
+
);
|
|
7491
|
+
const userNavigation$ = rxjs.merge(
|
|
7492
|
+
userExplicitNavigationSubject,
|
|
7493
|
+
userScrollNavigation.navigation$
|
|
7468
7494
|
);
|
|
7469
7495
|
const internalNavigator = new InternalNavigator(
|
|
7470
7496
|
settings,
|
|
7471
7497
|
context,
|
|
7472
|
-
|
|
7498
|
+
userNavigation$,
|
|
7473
7499
|
controlledNavigationController,
|
|
7474
7500
|
scrollNavigationController,
|
|
7475
7501
|
navigationResolver,
|
|
7476
7502
|
spine,
|
|
7477
|
-
|
|
7503
|
+
locker.isLocked$
|
|
7478
7504
|
);
|
|
7479
7505
|
const viewportState$ = rxjs.combineLatest([
|
|
7480
7506
|
controlledNavigationController.isNavigating$,
|
|
7481
7507
|
scrollNavigationController.isNavigating$,
|
|
7482
|
-
|
|
7508
|
+
locker.isLocked$,
|
|
7483
7509
|
internalNavigator.locker.isLocked$
|
|
7484
7510
|
]).pipe(
|
|
7485
7511
|
operators.map((states) => states.some((isLocked) => isLocked) ? `busy` : `free`),
|
|
7486
7512
|
operators.distinctUntilChanged(),
|
|
7487
7513
|
operators.shareReplay(1)
|
|
7488
7514
|
);
|
|
7515
|
+
const navigate = (to) => {
|
|
7516
|
+
userExplicitNavigationSubject.next(to);
|
|
7517
|
+
};
|
|
7489
7518
|
const destroy = () => {
|
|
7490
|
-
|
|
7519
|
+
userScrollNavigation.destroy();
|
|
7491
7520
|
controlledNavigationController.destroy();
|
|
7492
7521
|
internalNavigator.destroy();
|
|
7493
7522
|
};
|
|
@@ -7497,11 +7526,11 @@
|
|
|
7497
7526
|
internalNavigator,
|
|
7498
7527
|
scrollNavigationController,
|
|
7499
7528
|
controlledNavigationController,
|
|
7500
|
-
|
|
7529
|
+
locker,
|
|
7501
7530
|
viewportState$,
|
|
7502
|
-
navigate
|
|
7531
|
+
navigate,
|
|
7503
7532
|
lock() {
|
|
7504
|
-
return
|
|
7533
|
+
return locker.lock();
|
|
7505
7534
|
},
|
|
7506
7535
|
navigationResolver,
|
|
7507
7536
|
navigation$: internalNavigator.navigation$
|
|
@@ -8368,11 +8397,16 @@
|
|
|
8368
8397
|
loadSpineItems$.pipe(rxjs.takeUntil(this.destroy$)).subscribe();
|
|
8369
8398
|
}
|
|
8370
8399
|
forceOpen(spineItems) {
|
|
8371
|
-
|
|
8400
|
+
const indexes = spineItems.map(
|
|
8401
|
+
(item) => typeof item === "number" ? item : item.index
|
|
8402
|
+
);
|
|
8403
|
+
this.forcedOpenSubject.next([...this.forcedOpenSubject.value, indexes]);
|
|
8372
8404
|
return () => {
|
|
8373
8405
|
if (this.isDestroyed) return;
|
|
8374
8406
|
this.forcedOpenSubject.next(
|
|
8375
|
-
this.forcedOpenSubject.value.filter(
|
|
8407
|
+
this.forcedOpenSubject.value.filter(
|
|
8408
|
+
(arrayOfIndexes) => arrayOfIndexes !== indexes
|
|
8409
|
+
)
|
|
8376
8410
|
);
|
|
8377
8411
|
};
|
|
8378
8412
|
}
|
|
@@ -8954,11 +8988,23 @@
|
|
|
8954
8988
|
`;
|
|
8955
8989
|
element.className = `${HTML_PREFIX$1}-viewport`;
|
|
8956
8990
|
super({
|
|
8957
|
-
element
|
|
8991
|
+
element,
|
|
8992
|
+
pageSize: {
|
|
8993
|
+
width: 1,
|
|
8994
|
+
height: 1
|
|
8995
|
+
}
|
|
8958
8996
|
});
|
|
8959
8997
|
this.context = context;
|
|
8998
|
+
const updatePageSize$ = this.context.watch("visibleAreaRect").pipe(
|
|
8999
|
+
rxjs.tap(() => {
|
|
9000
|
+
this.update({
|
|
9001
|
+
pageSize: this.calculatePageSize()
|
|
9002
|
+
});
|
|
9003
|
+
})
|
|
9004
|
+
);
|
|
9005
|
+
rxjs.merge(updatePageSize$).pipe(rxjs.takeUntil(this.destroy$)).subscribe();
|
|
8960
9006
|
}
|
|
8961
|
-
|
|
9007
|
+
calculatePageSize() {
|
|
8962
9008
|
const absoluteViewport = this.absoluteViewport;
|
|
8963
9009
|
const { isUsingSpreadMode: isUsingSpreadMode2 } = this.context.state;
|
|
8964
9010
|
return {
|
|
@@ -8977,6 +9023,9 @@
|
|
|
8977
9023
|
* @important
|
|
8978
9024
|
*
|
|
8979
9025
|
* Contains long floating values.
|
|
9026
|
+
*
|
|
9027
|
+
* @todo take position of translate into consideration in something
|
|
9028
|
+
* like relativeViewportPosition or even better a ViewportSlicePosition
|
|
8980
9029
|
*/
|
|
8981
9030
|
get relativeViewport() {
|
|
8982
9031
|
const absoluteViewport = this.absoluteViewport;
|
|
@@ -9037,7 +9086,9 @@
|
|
|
9037
9086
|
);
|
|
9038
9087
|
navigator2.viewportState$.subscribe(context.bridgeEvent.viewportStateSubject);
|
|
9039
9088
|
navigator2.navigation$.subscribe(context.bridgeEvent.navigationSubject);
|
|
9040
|
-
navigator2.isLocked$.subscribe(
|
|
9089
|
+
navigator2.locker.isLocked$.subscribe(
|
|
9090
|
+
context.bridgeEvent.navigationIsLockedSubject
|
|
9091
|
+
);
|
|
9041
9092
|
pagination.state$.subscribe(context.bridgeEvent.paginationSubject);
|
|
9042
9093
|
const layout = () => {
|
|
9043
9094
|
var _a;
|