@prose-reader/core 1.367.0 → 1.369.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/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/spineItem/SpineItem.d.ts +1 -0
- package/dist/spineItem/SpineItem.test.d.ts +1 -0
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -193,7 +193,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
193
193
|
`,t.className=`${W}-controlled-navigator`,t.innerHTML=``,t.appendChild(e),this.viewport.value.element.appendChild(t),this.element$.next(t)})),c=(0,t.combineLatest)([n.watch([`computedPageTurnDirection`,`computedPageTurnMode`,`numberOfAdjacentSpineItemToPreLoad`]),this.element$]).pipe((0,t.tap)(([,e])=>{n.values.computedPageTurnMode===`scrollable`?l(e.style,`display`,`contents`):l(e.style,`display`,`block`)}));this.layout$=c.pipe((0,t.tap)(()=>{Tr.info(`layout`,n.values)}),(0,t.share)()),this.isNavigating$=this.navigateSubject.pipe((0,t.distinctUntilChanged)((t,n)=>(0,e.isShallowEqual)(t.position,n.position)),(0,t.map)(({animation:e,position:t})=>(Tr.info(`Navigation requested`,{animation:e,position:t}),{type:`manualAdjust`,shouldAnimate:!(!e||e===`turn`&&n.values.computedPageTurnAnimation===`none`),animation:e,position:t})),(0,t.switchMap)(e=>{let r=this.element$.getValue();return l(r.style,`transition`,`none`),l(r.style,`opacity`,`1`),(0,t.merge)((0,t.of)(!0),(0,t.of)(null).pipe((0,t.mergeMap)(()=>{if(e?.type!==`manualAdjust`)return(0,t.of)(!1);let r=e.animation===`snap`?n.values.snapAnimationDuration:n.values.computedPageTurnAnimationDuration,i=e.animation===`snap`?`slide`:n.values.computedPageTurnAnimation;return(0,t.of)(e).pipe(e.shouldAnimate?(0,t.delay)(1,t.animationFrameScheduler):t.identity,(0,t.tap)(t=>{let n=this.element$.getValue();t.shouldAnimate?i===`fade`?(l(n.style,`transition`,`opacity ${r/2}ms`),l(n.style,`opacity`,`0`)):(e.animation===`snap`||i===`slide`)&&(l(n.style,`transition`,`transform ${r}ms`),l(n.style,`opacity`,`1`)):(l(n.style,`transition`,`none`),l(n.style,`opacity`,`1`))}),(0,t.tap)(e=>{i!==`fade`&&this.applyNavigationPosition(e.position)}),e.shouldAnimate?(0,t.delay)(r/2,t.animationFrameScheduler):t.identity,(0,t.tap)(e=>{let t=this.element$.getValue();i===`fade`&&(this.applyNavigationPosition(e.position),l(t.style,`opacity`,`1`))}),e.shouldAnimate?(0,t.delay)(r/2,t.animationFrameScheduler):t.identity,(0,t.tap)(e=>{i===`fade`&&this.applyNavigationPosition(e.position)}))}),(0,t.map)(()=>!1)))}),(0,t.startWith)(!1),(0,t.shareReplay)(1)),(0,t.merge)(s,this.isNavigating$,this.layout$).pipe((0,t.takeUntil)(this.destroy$)).subscribe()}applyNavigationPosition(e){let t=this.element$.getValue(),n=Cr(e);l(t.style,`transform`,`translate(${n.x}px, ${n.y}px)`),this.hookManager.execute(`onViewportOffsetAdjust`,void 0)}navigate(e){this.navigateSubject.next(e)}destroy(){super.destroy(),this.element$.getValue().remove(),this.element$.complete()}get viewportPosition(){let e=this.element$.getValue(),t=e.ownerDocument.defaultView?.getComputedStyle(e),n=t?.transform||t?.webkitTransform;return!n||n===`none`?new H({x:0,y:0}):wr(new DOMMatrix(n))}},Dr=()=>e=>e.pipe((0,t.map)(({navigation:e,pagination:t,...n})=>({navigation:{...e,paginationBeginCfi:t.beginCfi},...n}))),Or=(e,n,r)=>e.bridgeEvent.pagination$.pipe((0,t.withLatestFrom)(n),(0,t.filter)(([e,t])=>e.navigationId===t.id),(0,t.switchMap)(([e,n])=>(r.spineItemsManager.get(n.spineItem)?.isReady$.pipe((0,t.first)())??(0,t.of)(!1)).pipe((0,t.filter)(e=>e),(0,t.map)(()=>({pagination:e,navigation:n})))),Dr(),(0,t.distinctUntilChanged)((e,t)=>e.navigation.paginationBeginCfi===t.navigation.paginationBeginCfi),(0,t.map)(({navigation:e})=>({...e,meta:{triggeredBy:`pagination`},requestedPosition:e.position}))),kr=({navigationResolver:e,getNavigationVisibleArea:n})=>r=>r.pipe((0,t.map)(([t,r])=>{let i=t.position,a=i?n():void 0,o=i&&a?e.clampPositionInSpine(i,a):void 0;return{previousNavigation:r,navigation:{type:`api`,meta:{triggeredBy:`user`},id:Symbol(`user`),animation:`turn`,...t,requestedPosition:i,requestedVisibleArea:a,position:o}}})),Ar=({navigationResolver:e})=>n=>n.pipe((0,t.map)(t=>{if(t.navigation.cfi){let n=e.getNavigationForCfi(t.navigation.cfi);if(n)return{...t,navigation:{...t.navigation,position:n}}}return t})),jr=({navigation:e,previousNavigation:t,settings:n})=>e.directionFromLastNavigation?e.directionFromLastNavigation:e.url!==void 0||e.cfi!==void 0?`anchor`:t.spineItem===void 0||e.spineItem||!e.position?`forward`:n.values.computedPageTurnDirection===`vertical`?e.position.y>t.position.y||e.position.y===t.position.y&&t.directionFromLastNavigation!==`backward`?`forward`:`backward`:Math.abs(e.position.x)>Math.abs(t.position.x)||e.position.x===t.position.x&&t.directionFromLastNavigation!==`backward`?`forward`:`backward`,Mr=({context:e,settings:n})=>r=>r.pipe((0,t.map)(({navigation:t,previousNavigation:r})=>{let i=jr({context:e,navigation:t,previousNavigation:r,settings:n});return{previousNavigation:r,navigation:{...t,directionFromLastNavigation:i},direction:i}})),Nr=({spineItemsManager:e,navigationResolver:n,settings:r,viewport:i})=>a=>a.pipe((0,t.map)(({navigation:t,...a})=>{let o=e.get(t.spineItem);if(t.position)return r.values.computedPageTurnMode===`scrollable`?{navigation:{...t,position:t.position},...a}:{navigation:{...t,position:n.clampPositionInSpine(t.position,i.absoluteViewport)},...a};if(!o)return{navigation:{...t,position:a.previousNavigation.position},...a};let s=n.getNavigationForSpineIndexOrId(o),c=r.values.computedPageTurnMode===`scrollable`?new U({x:s.x+a.previousNavigation.position.x,y:s.y}):n.clampPositionInSpine(s,i.absoluteViewport);return{navigation:{...t,position:c},...a}})),Pr=({settings:e,spineItemsManager:n,navigationResolver:r,spineLocator:i,cfi:a})=>o=>{let s=t=>{let{position:o,spineItem:s,cfi:c,directionFromLastNavigation:l}=t,{navigationSnapThreshold:u,computedPageTurnMode:d}=e.values;if(s!==void 0){let e=n.get(s);if(e)return e}if(typeof s==`number`)return s>n.items.length-1?n.get(n.items.length-1):n.get(0);if(c){let e=a.getSpineItemFromCfi(c);if(e)return e}if(o&&d===`controlled`){let{beginIndex:e,endIndex:t}=i.getVisibleSpineItemsFromPosition({position:o,threshold:u,restrictToScreen:!1})??{},a=(l===`forward`||l===`anchor`?t:e)??e,s=n.get(a);if(!s)return;let{endPageIndex:c,beginPageIndex:d}=i.getVisiblePagesFromViewportPosition({position:o,spineItem:s,threshold:u,restrictToScreen:!1})??{},f=(l===`forward`||l===`anchor`?c:d)??0,p=r.getNavigationForSpineItemPage({pageIndex:f,spineItemId:s}),m=i.getVisibleSpineItemsFromPosition({position:p,threshold:u,restrictToScreen:!1}),h=l===`forward`||l===`anchor`?m?.beginIndex:m?.endIndex;return n.get(h)}return o&&d===`scrollable`?i.getSpineItemFromPosition(o):n.get(0)};return o.pipe((0,t.map)(({navigation:e,...t})=>{let r=s(e);return{navigation:{...e,spineItem:n.getSpineItemIndex(r)},...t}}))},Fr=({spine:e})=>n=>n.pipe((0,t.switchMap)(({navigation:n,...r})=>{let i=e.getSpineItemSpineLayoutInfo(n.spineItem),a=e.spineItemsManager.get(n.spineItem);return(a?.isReady$??(0,t.of)(!1)).pipe((0,t.first)(),(0,t.map)(e=>({navigation:{...n,spineItemHeight:i?.height,spineItemWidth:i?.width,spineItemLeft:i.left,spineItemTop:i.top,spineItemIsUsingVerticalWriting:a?.isUsingVerticalWriting(),spineItemIsReady:e},...r})))})),Ir=({settings:e,spineItemsManager:n,spineLocator:r,navigationResolver:i})=>a=>{let o=t=>{let{navigationSnapThreshold:a,computedPageTurnMode:o}=e.values,s=n.get(t.spineItem);if(!(!s||!t.position)){if(o===`controlled`){let{endPageIndex:e,beginPageIndex:n}=r.getVisiblePagesFromViewportPosition({position:t.position,spineItem:s,threshold:a,restrictToScreen:!1})??{},o=(t.directionFromLastNavigation===`forward`||t.directionFromLastNavigation===`anchor`?e:n)??0,c=i.getNavigationForSpineItemPage({pageIndex:o,spineItemId:s}),l=r.getVisiblePagesFromViewportPosition({position:c,spineItem:s,threshold:{type:`percentage`,value:0},restrictToScreen:!0}),u=(t.directionFromLastNavigation===`forward`||t.directionFromLastNavigation===`anchor`?l?.beginPageIndex:l?.endPageIndex)??0;return r.spineItemLocator.getSpineItemPositionFromPageIndex({pageIndex:u,spineItem:s})}return r.getSpineItemPositionFromSpinePosition(t.position,s)}};return a.pipe((0,t.map)(({navigation:e,...t})=>({navigation:{...e,positionInSpineItem:o(e)},...t})))},Lr=({navigationResolver:e})=>n=>n.pipe((0,t.map)(t=>{if(t.navigation.url){let n=e.getNavigationForUrl(t.navigation.url);if(n)return{...t,navigation:{...t.navigation,position:n.position,spineItem:n.spineItemId}}}return t})),Rr=class{constructor(){this.isLockedSubject=new t.BehaviorSubject(0),this.isLocked$=this.isLockedSubject.pipe((0,t.map)(e=>!!e),(0,t.distinctUntilChanged)())}lock(){let e=!1;return this.isLockedSubject.next(this.isLockedSubject.getValue()+1),()=>{e||(e=!0,this.isLockedSubject.next(this.isLockedSubject.getValue()-1))}}},zr=({spineLocator:e,navigation:n,navigationResolver:r,spineItemsManager:i,spine:a,cfiManager:o})=>{let s=i.get(n.spineItem);return s?s.isReady$.pipe((0,t.first)(),(0,t.map)(t=>{let i=a.getSpineItemSpineLayoutInfo(s),c=e.isPositionWithinSpineItem(n.position,s),l=i.width-(n.spineItemWidth??0),u=i.height-(n.spineItemHeight??0),d=l!==0||u!==0;if(n.url!==void 0&&(l||u||t&&!n.spineItemIsReady)){let e=r.getNavigationForUrl(n.url);if(e)return e.position}let f=n.cfi??n.paginationBeginCfi;if(f!==void 0&&!o.isRootCfi(f)&&(l||u||t&&!n.spineItemIsReady)){let e=r.getNavigationForCfi(f);if(e)return e}if(c&&d&&n.directionFromLastNavigation===`backward`){let e=new z({x:(n.positionInSpineItem?.x??0)+l,y:(n.positionInSpineItem?.y??0)+u});return r.getNavigationFromSpineItemPosition({spineItem:s,spineItemPosition:e})}if(n.positionInSpineItem&&n.spineItemHeight&&n.spineItemWidth){let t=e.spineItemLocator.getSpineItemPageIndexFromPosition({itemWidth:n.spineItemWidth,itemHeight:n.spineItemHeight,isUsingVerticalWriting:!!n.spineItemIsUsingVerticalWriting,position:n.positionInSpineItem});return r.getNavigationForSpineItemPage({pageIndex:t,spineItemId:s})}return c?r.getNavigationForPosition(n.position):r.getNavigationForSpineIndexOrId(s)})):(0,t.of)(new H({x:0,y:0}))},Br=({navigation:e,spineLocator:t,spineItemsManager:n,settings:r,navigationResolver:i,spine:a})=>{let{spineItem:o}=e,s=n.get(o);if(!s)return new H({x:0,y:0});let{height:c,top:l}=a.getSpineItemSpineLayoutInfo(s),u=t.isPositionWithinSpineItem(e.position,s),d=e.positionInSpineItem??new z({y:0,x:0});if(r.values.computedPageTurnDirection===`vertical`){if(l===e.spineItemTop&&c===e.spineItemHeight&&u)return e.position;if(l===e.spineItemTop&&c===e.spineItemHeight&&!u)return i.getNavigationForSpineIndexOrId(s);if(l!==e.spineItemTop){let n=t.getSafeSpineItemPositionFromUnsafeSpineItemPosition(e.positionInSpineItem??new z({x:0,y:0}),s);return t.getSpinePositionFromSpineItemPosition({spineItemPosition:n,spineItem:s})}if(l===e.spineItemTop&&c!==e.spineItemHeight){let n=(e.spineItemHeight??d.y)-d.y,r=new z({y:e.directionFromLastNavigation===`backward`?c-n:d.y,x:e.position.x});if(u){let e=t.getSafeSpineItemPositionFromUnsafeSpineItemPosition(r,s);return t.getSpinePositionFromSpineItemPosition({spineItemPosition:e,spineItem:s})}if(!u){if(!(e.position.y<l)){let r=new z({y:c-n,x:e.position.x});return t.getSpinePositionFromSpineItemPosition({spineItemPosition:t.getSafeSpineItemPositionFromUnsafeSpineItemPosition(r,s),spineItem:s})}return i.getNavigationForSpineIndexOrId(s)}}}return e.position},Vr=({navigation:e,spineItemsManager:n,settings:r,spineLocator:i,navigationResolver:a,spine:o,cfiManager:s})=>r.values.computedPageTurnMode===`scrollable`?(0,t.of)(Br({navigation:e,spineLocator:i,navigationResolver:a,settings:r,spineItemsManager:n,spine:o})):zr({navigation:e,spineLocator:i,navigationResolver:a,spineItemsManager:n,spine:o,cfiManager:s}),Hr=({settings:e,navigationResolver:n,context:r,spine:i,cfiManager:a})=>o=>o.pipe((0,t.switchMap)(o=>Vr({spineLocator:i.locator,navigation:o.navigation,navigationResolver:n,settings:e,spineItemsManager:i.spineItemsManager,spineItemLocator:i.locator.spineItemLocator,context:r,spine:i,cfiManager:a}).pipe((0,t.map)(e=>({...o,navigation:{...o.navigation,position:e}}))))),Ur=i.namespace(`navigation/InternalNavigator`),Wr=(e,t)=>e===t||!!e&&!!t&&e.x===t.x&&e.y===t.y,Gr=(e,t)=>e===t||!!e&&!!t&&e.width===t.width&&e.height===t.height,Kr=(e,t)=>e.id===t.id&&Wr(e.position,t.position)&&Wr(e.requestedPosition,t.requestedPosition)&&Gr(e.requestedVisibleArea,t.requestedVisibleArea),qr=class extends q{constructor(e,n,r,i,a,o,s,c,l,u){super(),this.settings=e,this.context=n,this.userNavigation$=r,this.getActiveNavigationModeController=i,this.navigationModeLayout$=a,this.navigationResolver=o,this.spine=s,this.viewport=c,this.cfiManager=l,this.isUserInteractionLocked$=u,this.navigationSubject=new t.BehaviorSubject({animation:!1,position:new H({x:0,y:0}),meta:{triggeredBy:`user`},requestedPosition:new H({x:0,y:0}),spineItemIsReady:!1,type:`api`,id:Symbol(`init`)}),this.navigation$=this.navigationSubject.pipe((0,t.map)(({position:e,id:t,requestedPosition:n,requestedVisibleArea:r,meta:i})=>({position:e,id:t,requestedPosition:n,requestedVisibleArea:r,triggeredBy:i.triggeredBy})),(0,t.distinctUntilChanged)(Kr),(0,t.shareReplay)(1)),this.locker=new Rr;let d=r.pipe((0,t.withLatestFrom)(this.navigationSubject),kr({navigationResolver:o,getNavigationVisibleArea:()=>i().getNavigationVisibleArea()}),Lr({navigationResolver:o}),Ar({navigationResolver:o}),Mr({context:n,settings:e}),Pr({context:n,cfi:l,navigationResolver:o,settings:e,spineItemsManager:s.spineItemsManager,spineLocator:s.locator}),Ir({navigationResolver:o,settings:e,spineItemsManager:s.spineItemsManager,spineLocator:s.locator}),Fr({spine:s})).pipe(Nr({navigationResolver:o,spineItemsManager:s.spineItemsManager,settings:e,viewport:c}),(0,t.withLatestFrom)(u),(0,t.switchMap)(([r,i])=>{let a=r.navigation.cfi||r.navigation.url||e.values.computedPageTurnMode===`scrollable`||i;return(0,t.of)(r).pipe(a?t.identity:Hr({navigationResolver:o,settings:e,spine:s,context:n,cfiManager:l}))}),Ir({spineItemsManager:s.spineItemsManager,spineLocator:s.locator,settings:e,navigationResolver:o}),(0,t.map)(e=>e.navigation),(0,t.share)()),f=d.pipe((0,t.withLatestFrom)(u),(0,t.filter)(([,e])=>e),(0,t.switchMap)(([e])=>{let n=this.locker.lock();return u.pipe((0,t.filter)(e=>!e),(0,t.first)(),(0,t.map)(()=>({navigation:{...e,animation:`snap`}})),(0,t.finalize)(()=>{n()}),(0,t.takeUntil)(d))}),(0,t.share)());(0,t.merge)((0,t.merge)((0,t.merge)(a,s.layout$).pipe((0,t.switchMap)(()=>(0,t.of)(null).pipe((0,t.switchMap)(()=>u.pipe((0,t.filter)(e=>!e),(0,t.first)())),(0,t.map)(()=>({navigation:{...this.navigationSubject.getValue(),animation:!1}})),(0,t.takeUntil)((0,t.merge)(f,d))))),f).pipe(Hr({navigationResolver:o,settings:e,context:n,spine:s,cfiManager:l}),(0,t.map)(({navigation:e})=>({navigation:{...e,meta:{triggeredBy:`restoration`},requestedPosition:e.position}})),Pr({context:n,cfi:l,navigationResolver:o,settings:e,spineItemsManager:s.spineItemsManager,spineLocator:s.locator}),Fr({spine:s}),Ir({spineItemsManager:s.spineItemsManager,spineLocator:s.locator,settings:e,navigationResolver:o}),(0,t.map)(({navigation:e})=>e),(0,t.share)()),d,Or(n,this.navigationSubject,s)).pipe((0,t.withLatestFrom)(this.navigationSubject),e=>e.pipe((0,t.tap)(([e])=>{let t=e.type===`scroll`,n=e.meta.triggeredBy===`pagination`,r=e.meta.triggeredBy===`restoration`;if(t&&!r||n)return;let i={position:e.position,animation:e.animation};this.getActiveNavigationModeController().navigate(i)})),e=>e.pipe((0,t.tap)(([e,t])=>{Ur.info(`navigation updated from ${e.meta.triggeredBy} of type ${e.type}`,{previousNavigation:t,currentNavigation:e}),this.navigationSubject.next(e)})),(0,t.takeUntil)(this.destroy$)).subscribe()}get navigation(){return this.navigationSubject.getValue()}},Z=(e,t,n)=>{let r=n-e,i=t*e*n/(n||1);return Math.max(0,Math.min(r,i))},Jr=(e,t)=>(t||0)===0||(e||0)===0?1:Math.floor(Math.max(1,e/t)),Yr=(e,t,n)=>{let r=Jr(n,t),i=[...Array(r)].map((e,n)=>n*t);return e>=r*t?i[i.length-1]||0:i.find(n=>e<n+t)||0},Xr=(e,t,n)=>{let r=[...Array(n)].map((e,n)=>n*t);return e<=0||n===0?0:e>=n*t?n-1:r.findIndex(n=>e<n+t)??0},Zr=({itemWidth:e,itemHeight:t,spineItemPosition:n})=>new z({x:Math.min(e,Math.max(0,n.x)),y:Math.min(t,Math.max(0,n.y))}),Qr=({itemHeight:e,itemWidth:t,isUsingVerticalWriting:n,pageWidth:r,pageHeight:i,pageTurnDirection:a,pageTurnMode:o})=>a===`vertical`&&o===`scrollable`?1:n||a===`vertical`?Jr(e,i):Jr(t,r),$r=({itemWidth:e,itemHeight:t,position:n,isUsingVerticalWriting:r,pageWidth:i,pageHeight:a,pageTurnDirection:o,pageTurnMode:s,isRTL:c})=>{let l=Zr({spineItemPosition:n,itemHeight:t,itemWidth:e}).x,u=Qr({isUsingVerticalWriting:r,itemHeight:t,itemWidth:e,pageWidth:i,pageHeight:a,pageTurnDirection:o,pageTurnMode:s});if(r)return Xr(n.y,a,u);let d=Xr(l,i,u);return c?u-1-d:d},ei=({pageIndex:e,itemLayout:t,context:n,isUsingVerticalWriting:r,viewport:i})=>{if(r)return new z({x:0,y:Z(i.pageSize.height,e,t.height)});let a=Z(i.pageSize.width,e,t.width);return n.isRTL()?new z({x:t.width-a-i.pageSize.width,y:0}):new z({x:a,y:0})},ti=({context:e,settings:t,viewport:n})=>{let r=(e,t,r)=>{let i;e?.nodeName===`img`||e?.textContent===``&&e.nodeType===Node.ELEMENT_NODE?i=e.getBoundingClientRect().x:e&&(i=(e?g(e,t):void 0)?.getBoundingClientRect().x||i);let a=r.layoutInfo?.width||0,o=n.pageSize.width;if(i!==void 0)return new z({x:Yr(i,o,a),y:0})};return{getSpineItemPositionFromNode:r,getSpineItemPositionFromPageIndex:({pageIndex:t,spineItem:r})=>ei({context:e,isUsingVerticalWriting:!!r.isUsingVerticalWriting(),itemLayout:r.layoutInfo,pageIndex:t,viewport:n}),getSpineItemPageIndexFromPosition:r=>$r({...r,isRTL:e.isRTL(),pageWidth:n.pageSize.width,pageHeight:n.pageSize.height,pageTurnDirection:t.values.computedPageTurnDirection,pageTurnMode:t.values.pageTurnMode}),getSpineItemPageIndexFromNode:(i,a,o)=>{let s=r(i,a,o),{height:c,width:l}=o.layoutInfo;return s?$r({isUsingVerticalWriting:!!o.isUsingVerticalWriting(),position:s,itemHeight:c,itemWidth:l,isRTL:e.isRTL(),pageWidth:n.pageSize.width,pageHeight:n.pageSize.height,pageTurnDirection:t.values.computedPageTurnDirection,pageTurnMode:t.values.pageTurnMode}):void 0},getSpineItemClosestPositionFromUnsafePosition:(e,t)=>{let{width:r,height:i}=t.layoutInfo;return new z({x:Yr(e.x,n.pageSize.width,r),y:Yr(e.y,n.pageSize.height,i)})},getSpineItemPagePositionFromSpineItemPosition:(t,r,i)=>{let{width:a,height:o}=i.layoutInfo,s=n.pageSize.width,c=n.pageSize.height;if(i.isUsingVerticalWriting()){let e=Z(c,r,o);return new B({x:t.x,y:t.y-e})}let l=Z(s,r,a);if(e.isRTL()){let e=a-(r+1)*s;return new B({x:t.x-Math.max(0,e),y:t.y})}return new B({x:t.x-l,y:t.y})}}},ni=({context:e,settings:t,viewport:n})=>{let r=ti({context:e,settings:t,viewport:n});return{getNavigationForLastPage:e=>{let t=e.numberOfPages;return r.getSpineItemPositionFromPageIndex({pageIndex:t-1,spineItem:e})},getNavigationForPosition:(e,t)=>r.getSpineItemClosestPositionFromUnsafePosition(t,e),getNavigationFromNode:(e,t,n)=>r.getSpineItemPositionFromNode(t,n,e)||new z({x:0,y:0})}},ri=({size:e,isRTL:t,spineItemsManager:n,spine:r})=>{let i=n.get(n.items.length-1);if(!i)return;let a=r.getSpineItemSpineLayoutInfo(i),o=Math.max(0,a.bottom-e.height);if(t){let t=n.get(0),i=t?r.getSpineItemSpineLayoutInfo(t).right:0;return{xMin:a.left,xMax:Math.max(0,i-e.width),yMin:0,yMax:o}}return{xMin:0,xMax:Math.max(0,a.right-e.width),yMin:0,yMax:o}},ii=({position:e,size:t,isRTL:n,spineItemsManager:r,spine:i})=>{let a=ri({size:t,isRTL:n,spineItemsManager:r,spine:i});if(!a)return new U({x:0,y:0});let o=Math.min(Math.max(a.yMin,e.y),a.yMax);return new U({x:n?Math.max(a.xMin,Math.min(a.xMax,e.x)):Math.min(Math.max(a.xMin,e.x),a.xMax),y:o})},ai=({position:e,size:t,isRTL:n,spineItemsManager:r,spine:i})=>{let a=ri({size:t,isRTL:n,spineItemsManager:r,spine:i});if(a){if(e.y<a.yMin)return`start`;if(e.y>a.yMax)return`end`;if(n){if(e.x>a.xMax)return`start`;if(e.x<a.xMin)return`end`}else{if(e.x<a.xMin)return`start`;if(e.x>a.xMax)return`end`}}},Q=({position:e,pageSizeWidth:t,visibleAreaRectWidth:n})=>{let{x:r,y:i}=e,a=r%n===0?r:r-t;return e instanceof U?new U({x:a,y:i}):new H({x:a,y:i})},oi=({viewportPosition:e,spineLocator:t,spineItemNavigationResolver:n,viewport:r})=>{let i=t.getSpineItemFromPosition(e);if(i){let a=t.getSpineItemPositionFromSpinePosition(e,i),o=n.getNavigationForPosition(i,a);return Q({position:t.getSpinePositionFromSpineItemPosition({spineItemPosition:o,spineItem:i}),pageSizeWidth:r.pageSize.width,visibleAreaRectWidth:r.absoluteViewport.width})}return new H({x:0,y:0})},si=({pageIndex:e,spineItemsManager:t,spineItemId:n,spineLocator:r,spineItemNavigationResolver:i,viewport:a})=>{let o=t.get(n);if(!o)return oi({viewportPosition:new H({x:e*a.pageSize.width,y:0}),spineItemNavigationResolver:i,spineLocator:r,viewport:a});let s=r.spineItemLocator.getSpineItemPositionFromPageIndex({pageIndex:e,spineItem:o});return Q({position:r.getSpinePositionFromSpineItemPosition({spineItemPosition:s,spineItem:o}),pageSizeWidth:a.pageSize.width,visibleAreaRectWidth:a.absoluteViewport.width})},ci=(e,t)=>{if(w(t,`iframe`)){let n=t.contentDocument,r=e.trim();if(!n||r.length===0)return;if(r.startsWith(`#`)){let e=r.slice(1);return e.length===0?void 0:n.getElementById(e)}try{return n.querySelector(r)}catch{return}}},li=({anchor:e,spineItem:t,spine:n})=>{let r=ci(e,t.renderer.getDocumentFrame());return r?n.spineItemLocator.getSpineItemPositionFromNode(r,0,t)?.x??0:0},ui=({anchor:e,spineItem:t,spineLocator:n,spine:r})=>{let i=li({anchor:e,spineItem:t,spine:r});return n.getSpinePositionFromSpineItemPosition({spineItemPosition:new z({x:i,y:0}),spineItem:t})},di=({anchor:e,spineItem:t,spineLocator:n,spine:r,pageSizeWidth:i,visibleAreaRectWidth:a})=>Q({position:ui({anchor:e,spineItem:t,spineLocator:n,spine:r}),pageSizeWidth:i,visibleAreaRectWidth:a}),fi=({spine:e,spineItemsManager:t,spineLocator:n,url:r,context:i,pageSizeWidth:a,visibleAreaRectWidth:o})=>{try{let s=r instanceof URL?r:new URL(r),c=`${s.origin}${s.pathname}`,l=i.manifest.spineItems.find(e=>e.href===c);if(l){let r=t.get(l.id);if(r)return{position:Q({position:di({anchor:s.hash,spineItem:r,spine:e,spineLocator:n,pageSizeWidth:a,visibleAreaRectWidth:o}),pageSizeWidth:a,visibleAreaRectWidth:o}),spineItemId:l.id}}return}catch(e){console.error(e);return}},pi=({spineItem:e,spineItemPosition:t,spineLocator:n,spineItemLocator:r,viewport:i})=>{let a=r.getSpineItemClosestPositionFromUnsafePosition(t,e);return Q({position:n.getSpinePositionFromSpineItemPosition({spineItemPosition:a,spineItem:e}),pageSizeWidth:i.pageSize.width,visibleAreaRectWidth:i.absoluteViewport.width})},mi=`spineNavigator`,hi=({context:e,spineItemsManager:t,locator:n,settings:r,spine:a,viewport:o,cfi:s})=>{let c=ni({context:e,settings:r,viewport:o});return{getNavigationForUrl:r=>fi({context:e,spineItemsManager:t,spineLocator:n,url:r,pageSizeWidth:o.pageSize.width,visibleAreaRectWidth:o.absoluteViewport.width,spine:a}),getNavigationForSpineItemPage:e=>si({...e,spineItemsManager:t,spineItemNavigationResolver:c,spineLocator:n,viewport:o}),getNavigationFromSpineItemPosition:e=>pi({...e,spineItemLocator:n.spineItemLocator,spineLocator:n,viewport:o}),getNavigationForCfi:e=>{let{node:t,offset:r=0,spineItem:a}=s.resolveCfi({cfi:e});if(!a){i.warn(mi,`unable to detect item id from cfi ${e}`);return}let l=t?c.getNavigationFromNode(a,t,r):new z({x:0,y:0});return Q({position:n.getSpinePositionFromSpineItemPosition({spineItemPosition:l,spineItem:a}),pageSizeWidth:o.pageSize.width,visibleAreaRectWidth:o.absoluteViewport.width})},getNavigationForLastPage:e=>{let t=c.getNavigationForLastPage(e);return Q({position:n.getSpinePositionFromSpineItemPosition({spineItemPosition:t,spineItem:e}),pageSizeWidth:o.pageSize.width,visibleAreaRectWidth:o.absoluteViewport.width})},getNavigationForSpineIndexOrId:e=>{let r=t.get(e);return r?Q({position:n.getSpinePositionFromSpineItem(r),pageSizeWidth:o.pageSize.width,visibleAreaRectWidth:o.absoluteViewport.width}):new H({x:0,y:0})},getNavigationForPosition:e=>oi({viewportPosition:e,spineItemNavigationResolver:c,spineLocator:n,viewport:o}),getMostPredominantNavigationForPosition:i=>{let s=r.values.computedPageTurnDirection,l=.5,u=ii({position:new H({x:s===`horizontal`?i.x+o.absoluteViewport.width*l:0,y:s===`horizontal`?0:i.y+o.absoluteViewport.height*l}),size:o.absoluteViewport,isRTL:e.isRTL(),spineItemsManager:t,spine:a});return oi({spineItemNavigationResolver:c,spineLocator:n,viewportPosition:u,viewport:o})},clampPositionInSpine:(n,r)=>ii({position:n,size:r,isRTL:e.isRTL(),spineItemsManager:t,spine:a}),getBoundaryForPosition:(n,r=o.absoluteViewport)=>ai({position:n,size:r,isRTL:e.isRTL(),spineItemsManager:t,spine:a}),isNavigationGoingForwardFrom:(e,t)=>r.values.computedPageTurnDirection===`vertical`?e.y>t.y:e.x>t.x,arePositionsDifferent:(e,t)=>e.x!==t.x||e.y!==t.y,getAdjustedPositionForSpread:e=>Q({position:e,pageSizeWidth:o.pageSize.width,visibleAreaRectWidth:o.absoluteViewport.width}),spineItemNavigator:c}},gi=({spineItemsManager:n,context:r,hookManager:a,spine:o,settings:s,viewport:c,cfi:l})=>{let u=new t.Subject,d=u.asObservable(),f=new Rr,p=l,m=hi({cfi:p,context:r,settings:s,spineItemsManager:n,locator:o.locator,spine:o,viewport:c}),h=new Er(s,a,r,o,c),g=new tr(c,s,a,o,r),_=[g,h],v=new qr(s,r,d,()=>_.find(e=>e.isActive())??h,(0,t.merge)(..._.flatMap(e=>e.layout$?[e.layout$]:[])),m,o,c,p,f.isLocked$),y=(0,t.combineLatest)([..._.map(e=>e.isNavigating$),f.isLocked$,v.locker.isLocked$]).pipe((0,t.map)(e=>e.some(e=>e)?`busy`:`free`),(0,t.distinctUntilChanged)(),(0,t.shareReplay)(1)),b=v.navigation$.pipe((0,t.map)(({position:e})=>e),(0,t.distinctUntilChanged)(e.isShallowEqual),(0,t.shareReplay)(1));return{destroy:()=>{_.forEach(e=>{e.destroy()}),v.destroy()},getNavigation:()=>v.navigation,internalNavigator:v,scrollNavigationController:g,controlledNavigationController:h,navigationState$:y,navigate:e=>{i.info(`User navigation`,e),u.next(e)},lock:()=>f.lock(),isLocked$:f.isLocked$,navigationResolver:m,navigation$:v.navigation$,position$:b}},_i=class extends M{constructor(e,t){super({beginPageIndexInSpineItem:void 0,beginNumberOfPagesInSpineItem:0,beginCfi:void 0,beginSpineItemIndex:void 0,endPageIndexInSpineItem:void 0,endNumberOfPagesInSpineItem:0,endCfi:void 0,endSpineItemIndex:void 0,navigationId:void 0}),this.context=e,this.spineItemsManager=t}update(e){this.mergeCompare(e)}},vi=class extends q{constructor(e,n,r,i,a,o,s){super(),this.context=e,this.pagination=n,this.spineItemsManager=r,this.spine=i,this.spineItemLocator=a,this.isNavigationLocked$=o,this.cfi=s;let c=(0,t.merge)(this.context.bridgeEvent.navigation$,i.layout$).pipe((0,t.switchMap)(()=>{let e=({spineItem:e,position:t})=>this.spine.locator.getVisiblePagesFromViewportPosition({spineItem:e,position:t,threshold:{type:`percentage`,value:.5}});return this.isNavigationLocked$.pipe((0,t.filter)(e=>!e),(0,t.take)(1),(0,t.withLatestFrom)(this.context.bridgeEvent.navigation$),(0,t.tap)(([,t])=>{let{position:n}=t,r=this.pagination.value,{beginIndex:i,endIndex:a}=this.spine.locator.getVisibleSpineItemsFromPosition({position:n,threshold:{type:`percentage`,value:.5}})??{},o=this.spineItemsManager.get(i),s=this.spineItemsManager.get(a);if(!o||!s)return;let c=r.beginCfi,l=r.endCfi,{beginPageIndex:u=0}=e({spineItem:o,position:n})??{},{endPageIndex:d=0}=e({spineItem:s,position:n})??{},f=c===void 0||this.cfi.isRootCfi(c)||r.beginSpineItemIndex!==i,p=r.endSpineItemIndex!==a||l===void 0||this.cfi.isRootCfi(l),m=f?this.cfi.generateRootCfi(o.item):c,h=p?this.cfi.generateRootCfi(s.item):l,g=o.numberOfPages,_=s.numberOfPages;this.pagination.update({beginCfi:m,beginNumberOfPagesInSpineItem:g,beginPageIndexInSpineItem:u,beginSpineItemIndex:i,endCfi:h,endNumberOfPagesInSpineItem:_,endPageIndexInSpineItem:d,endSpineItemIndex:a,navigationId:t.id})}))}));(0,t.merge)(c,c.pipe(j(this.context.bridgeEvent.viewportFree$),(0,t.tap)(()=>{let{beginSpineItemIndex:e,endSpineItemIndex:t,beginPageIndexInSpineItem:n,endPageIndexInSpineItem:r}=this.pagination.value;if(n===void 0||r===void 0||e===void 0||t===void 0)return;let i=this.spineItemsManager.get(e),a=this.spineItemsManager.get(t);if(i===void 0||a===void 0)return;let o=this.spine.pages.fromSpineItemPageIndex(i,n),s=this.spine.pages.fromSpineItemPageIndex(a,r);this.pagination.update({beginCfi:o?.firstVisibleNode?this.cfi.generateCfiForSpineItemPage({spineItem:i.item,pageNode:o?.firstVisibleNode}):this.cfi.generateRootCfi(i.item),endCfi:s?.firstVisibleNode?this.cfi.generateCfiForSpineItemPage({spineItem:a.item,pageNode:s?.firstVisibleNode}):this.cfi.generateRootCfi(a.item)})}))).pipe((0,t.takeUntil)(this.destroy$)).subscribe()}},yi=class extends q{constructor(e){super();let n={...this.getDefaultSettings(),...e};this.inputSettings=n,this.outputSettingsUpdateSubject=new t.Subject,this._settings$=this.outputSettingsUpdateSubject.asObservable().pipe((0,t.shareReplay)(1)),this._settings$.subscribe()}_prepareUpdate(t){let n=(0,e.shallowMergeIfDefined)(this.inputSettings,t),r=this.getOutputSettings(n),i=!(0,e.isShallowEqual)(this.outputSettings,r);return{hasChanged:i,state:r,commit:()=>(this.inputSettings=n,this.outputSettings=r,i&&this.outputSettingsUpdateSubject.next(r),r)}}update(e){let{commit:t}=this._prepareUpdate(e);t()}get values(){if(!this.outputSettings){let{commit:e}=this._prepareUpdate(this.inputSettings);return e()}return this.outputSettings}get values$(){if(!this.outputSettings){let{commit:e}=this._prepareUpdate(this.inputSettings);e()}return this._settings$}watch(n){return this.values$.pipe(ge(n),(0,t.distinctUntilChanged)(e.isShallowEqual))}destroy(){super.destroy(),this.outputSettingsUpdateSubject.complete()}},bi=class extends yi{constructor(e,n){super(e),this.context=n,n.watch([`hasVerticalWriting`]).pipe((0,t.tap)(()=>this.update(this.values)),(0,t.takeUntil)(this.destroy$)).subscribe()}getComputedSettings(e){let t=this.context.manifest,n=this.context.value.hasVerticalWriting??!1,r={computedPageTurnDirection:e.pageTurnDirection,computedPageTurnAnimation:e.pageTurnAnimation,computedPageTurnMode:e.pageTurnMode,computedPageTurnAnimationDuration:0,computedSpreadMode:At({spreadMode:e.spreadMode,manifest:t})};return t.renditionFlow===`scrolled-continuous`&&(r.computedPageTurnMode=`scrollable`),r.computedPageTurnMode===`scrollable`&&(r.computedPageTurnDirection=`vertical`),n&&r.computedPageTurnAnimation===`slide`&&(i.warn(`pageTurnAnimation ${r.computedPageTurnAnimation} incompatible with current book, switching back to default`),r.computedPageTurnAnimation=`none`),r.computedPageTurnMode===`scrollable`?(r.computedPageTurnAnimationDuration=0,r.computedPageTurnAnimation=`none`):r.computedPageTurnAnimationDuration=e.pageTurnAnimationDuration===void 0?300:e.pageTurnAnimationDuration,r}getOutputSettings(e){let t=this.getComputedSettings(e);return{...this.outputSettings,...e,...t}}getDefaultSettings(){return{spreadMode:!1,pageTurnAnimation:`slide`,pageTurnDirection:`horizontal`,pageTurnAnimationDuration:void 0,pageTurnMode:`controlled`,snapAnimationDuration:300,navigationSnapThreshold:{type:`pixels`,value:40},numberOfAdjacentSpineItemToPreLoad:3}}},xi=class extends q{constructor(n,r,i,a,o,s){super(),this.context=n,this.spineItemsManager=r,this.spineLocator=i,this.settings=a,this.spineLayout=o,this.viewport=s,this.forcedOpenSubject=new t.BehaviorSubject(new Map);let c=this.forcedOpenSubject.pipe((0,t.map)(e=>Array.from(e.keys()).sort((e,t)=>e-t)),(0,t.distinctUntilChanged)(e.arrayEqual),(0,t.shareReplay)({bufferSize:1,refCount:!0}));(0,t.merge)(this.context.bridgeEvent.position$,this.viewport.layout$,this.spineLayout.layout$,c,a.watch([`numberOfAdjacentSpineItemToPreLoad`])).pipe((0,t.debounceTime)(100),(0,t.filter)(()=>L(this.context.value.rootElement)),j(this.context.bridgeEvent.viewportFree$),(0,t.withLatestFrom)(this.context.bridgeEvent.position$,c),(0,t.map)(([,e,t])=>{let{numberOfAdjacentSpineItemToPreLoad:n}=a.values,{beginIndex:o=0,endIndex:s=0}=i.getVisibleSpineItemsFromPosition({position:e,threshold:{type:`percentage`,value:0},useAbsoluteViewport:!1})||{},c=n===1/0?0:o-n,l=n===1/0?r.items.length-1:s+n,u=Array.from({length:l-c+1},(e,t)=>c+t),d=[...t,...u];r.items.forEach((e,t)=>{d.includes(t)?e.load():e.unload()})})).pipe((0,t.takeUntil)(this.destroy$)).subscribe()}forceOpen(e){let t=e.map(e=>typeof e==`number`?e:e.index),n=e=>{let n=this.forcedOpenSubject.value;t.forEach(t=>{let r=n.get(t)||0,i=e?r+1:r-1;i<=0?n.delete(t):n.set(t,i)}),this.forcedOpenSubject.next(n)};return n(!0),()=>{this.isDestroyed||n(!1)}}destroy(){super.destroy(),this.forcedOpenSubject.complete()}},Si=(e,t,n)=>{let r=(n.width-t.width)/2,i=(n.height-t.height)/2;return new U({x:e.x-r,y:e.y-i})},Ci=class e extends DOMRect{constructor(...e){super(...e),this.__symbol=Symbol(`ViewportPosition`)}static from(t,n){if(n){let r=t;return new e(r.x,r.y,n.width,n.height)}let r=t;return new e(r.x,r.y,r.width,r.height)}},wi=class{constructor({width:e,height:t}){this.__symbol=Symbol(`AbsoluteViewport`),this.width=e,this.height=t}},Ti=class{constructor({width:e,height:t}){this.__symbol=Symbol(`RelativeViewport`),this.width=e,this.height=t}},Ei=({pageIndex:e,spineItemOrId:t,spineItemsManager:n})=>{let r=n.items,i=n.get(t);if(!i)return;let{currentAbsolutePage:a}=r.reduce((t,n)=>{if(t.found)return t;let r=n.numberOfPages;return i===n&&e<=r-1?{currentAbsolutePage:t.currentAbsolutePage+e,found:!0}:{...t,currentAbsolutePage:t.currentAbsolutePage+r}},{currentAbsolutePage:0,found:!1});return a},Di=({itemHeight:e,itemWidth:t,visibleWidthOfItem:n,visibleHeightOfItem:r,threshold:i})=>{let a=n/t,o=r/e;return i.type===`percentage`?a>=i.value&&o>=i.value:n>=i.value&&r>=i.value},Oi=({visibleWidthOfItem:e,visibleHeightOfItem:t,threshold:n,viewportPosition:r})=>{let i=e/r.width,a=t/r.height;return n.type===`percentage`?a>=n.value&&i>=n.value:t>=n.value&&e>=n.value},ki=({itemPosition:{bottom:e,left:t,right:n,top:r,width:i,height:a},threshold:o,viewportPosition:s,restrictToScreen:c})=>{let l=s.x,u=s.x+(s.width-1),d=s.y,f=Math.max(s.y+(s.height-1),0),p=Math.max(0,Math.min(n,u)-Math.max(t,l)),m=Math.max(0,Math.min(e,f)-Math.max(r,d));if(p<=0||m<=0)return{visible:!1};let h=Oi({threshold:o,visibleHeightOfItem:m,visibleWidthOfItem:p,viewportPosition:s});return c?{visible:h}:{visible:Di({itemHeight:a,itemWidth:i,threshold:o,visibleHeightOfItem:m,visibleWidthOfItem:p})||h}},Ai=({position:e,spineItemsManager:t,spineLayout:n})=>{let r=t.items.find(t=>{let{left:r,right:i,bottom:a,top:o}=n.getSpineItemSpineLayoutInfo(t),s=e.x>=r&&e.x<i,c=e.y>=o&&e.y<a;return s&&c});return e.x===0&&!r?t.items[0]:r},ji=({spineItemPosition:e,itemLayout:{left:t,top:n}})=>new H({x:t+e.x,y:n+e.y}),Mi=({position:e,threshold:t,restrictToScreen:n,spineItemsManager:r,spineLayout:i,useAbsoluteViewport:a=!0,viewport:o})=>{let s=Ai({position:e,spineItemsManager:r,spineLayout:i})||r.get(0),c=a?o.absoluteViewport:o.relativeViewport,l=Si(e,o.absoluteViewport,c),u=Ci.from(l,c),d=[];for(let e of r.items){let{visible:r}=ki({itemPosition:i.getSpineItemSpineLayoutInfo(e),threshold:t,viewportPosition:u,restrictToScreen:n});r&&d.push(e)}let f=d[0]??s,p=d[d.length-1]??f;if(!f||!p)return;let m=r.getSpineItemIndex(f),h=r.getSpineItemIndex(p);return{beginIndex:m??0,endIndex:h??0}},Ni=({spineItemsManager:e,context:t,spineItemLocator:n,settings:r,spineLayout:i,viewport:a})=>{let o=(e,t)=>{let{left:n,top:r}=i.getSpineItemSpineLayoutInfo(t);return new z({x:Math.max(e.x-n,0),y:Math.max(e.y-r,0)})},s=e=>ji({spineItemPosition:new z({x:0,y:0}),itemLayout:i.getSpineItemSpineLayoutInfo(e)}),c=t=>e.items.find(e=>e.renderer.getDocumentFrame()===t),l=(t,r,i)=>{if(typeof i==`number`){let a=e.get(i);return a?n.getSpineItemPageIndexFromNode(t,r||0,a):void 0}return n.getSpineItemPageIndexFromNode(t,r||0,i)},u=({position:e,threshold:t,spineItem:r,restrictToScreen:a,useAbsoluteViewport:o=!0,viewport:s})=>{let c=r.numberOfPages,l=Array.from(Array(c)).map((e,t)=>{let a=ji({spineItemPosition:n.getSpineItemPositionFromPageIndex({pageIndex:t,spineItem:r}),itemLayout:i.getSpineItemSpineLayoutInfo(r)});return{index:t,absolutePosition:{width:s.pageSize.width,height:s.pageSize.height,left:a.x,top:a.y,bottom:a.y+s.pageSize.height,right:a.x+s.pageSize.width}}}).reduce((n,{absolutePosition:r,index:i})=>{let c=o?s.absoluteViewport:s.relativeViewport,l=Si(e,s.absoluteViewport,c),{visible:u}=ki({viewportPosition:Ci.from(l,c),restrictToScreen:a,threshold:t,itemPosition:r});return u?[...n,i]:n},[]),u=l[0],d=l[l.length-1]??u;if(!(u===void 0||d===void 0))return{beginPageIndex:u,endPageIndex:d}};return{getSpinePositionFromSpineItemPosition:({spineItem:e,spineItemPosition:t})=>ji({itemLayout:i.getSpineItemSpineLayoutInfo(e),spineItemPosition:t}),_getAbsolutePageIndexFromPageIndex:n=>Ei({...n,context:t,settings:r,spineItemsManager:e,spineLayout:i}),getSpineItemPagePositionFromSpinePosition:t=>{let r=Ai({position:t,spineItemsManager:e,spineLayout:i});if(!r)return;let s=o(t,r),c=n.getSpineItemPageIndexFromPosition({itemWidth:r.layoutInfo.width,itemHeight:r.layoutInfo.height,position:s,isUsingVerticalWriting:!!r.isUsingVerticalWriting()});return{spineItem:r,spineItemPageIndex:c,spineItemPagePosition:n.getSpineItemPagePositionFromSpineItemPosition(s,c,r),pageSize:a.value.pageSize}},getSpinePositionFromSpineItem:s,getSpineItemPositionFromSpinePosition:o,getSpineItemFromPosition:t=>Ai({position:t,spineItemsManager:e,spineLayout:i}),getSpineItemFromIframe:c,getSpineItemPageIndexFromNode:l,getVisibleSpineItemsFromPosition:t=>Mi({settings:r,spineItemsManager:e,spineLayout:i,viewport:a,...t}),getVisiblePagesFromViewportPosition:e=>u({...e,viewport:a}),isPositionWithinSpineItem:(e,t)=>{let{bottom:n,left:r,right:a,top:o}=i.getSpineItemSpineLayoutInfo(t);return e.x>=r&&e.x<=a&&e.y<=n&&e.y>=o},spineItemLocator:n,getSafeSpineItemPositionFromUnsafeSpineItemPosition:(e,t)=>{let{height:n,width:r}=i.getSpineItemSpineLayoutInfo(t);return new z({x:Math.min(Math.max(0,e.x),r),y:Math.min(Math.max(0,e.y),n)})}}},Pi=class extends q{constructor(n){super(),this.spineItemsManager=n;let r=n.items;this.itemStateChange$=(0,t.merge)(...r.map(n=>n.pipe((0,t.map)(e=>({item:n,...e})),(0,t.distinctUntilChanged)(e.isShallowEqual)))).pipe((0,t.share)()),this.itemResize$=(0,t.merge)(...r.map(e=>A(e.element).pipe((0,t.map)(t=>({entries:t,item:e}))))).pipe((0,t.share)()),this.itemLoad$=(0,t.merge)(...r.map(e=>e.loaded$.pipe((0,t.map)(()=>e)))).pipe((0,t.share)()),this.itemUnload$=(0,t.merge)(...r.map(e=>e.unloaded$.pipe((0,t.map)(()=>e)))).pipe((0,t.share)())}},Fi=class extends q{constructor(e,n,r,i,a){super(),this.spineItemsManager=e,this.spineItemsObserver=n,this.context=r,this.settings=i,this.viewport=a,this.externalLayoutTrigger=new t.Subject,this.spineItemsRelativeLayouts=[];let o=(0,t.merge)(n.itemLoad$,n.itemUnload$).pipe((0,t.map)(()=>({immediate:!1}))),s=(0,t.merge)(this.externalLayoutTrigger,o);this.layout$=s.pipe((0,t.tap)(()=>{this.spineItemsManager.items.forEach(e=>{e.markDirty()})}),(0,t.debounce)(e=>e.immediate?(0,t.of)(void 0):(0,t.timer)(50)),(0,t.switchMap)(()=>{let n=[];return this.spineItemsManager.items.reduce((o,s,c)=>o.pipe((0,t.concatMap)(({horizontalOffset:o,verticalOffset:l})=>{let u=o%a.absoluteViewport.width===0,d=c===e.items.length-1,f=i.values.computedPageTurnDirection===`vertical`,p=r.isRTL(),m=this.getSpreadPosition(u,p),{edgeX:h,edgeY:g}=this.getStartEdges(f,u,o,l,a.absoluteViewport.height);return s.layout({spreadPosition:m,horizontalOffset:o,isLastItem:d,edgeX:h,edgeY:g}).pipe((0,t.map)(({width:e,height:t})=>{let r=this.createSpineItemLayout(f,p,h,g,e,t,a.absoluteViewport.width);return n[c]=r,{horizontalOffset:h+e,verticalOffset:f?g+t:0}}))})),(0,t.of)({horizontalOffset:0,verticalOffset:0})).pipe((0,t.tap)(()=>{this.spineItemsRelativeLayouts=n}))}),(0,t.takeUntil)(this.destroy$),(0,t.share)()),this.layout$.subscribe(),this.watchForVerticalWritingUpdate()}watchForVerticalWritingUpdate(){this.spineItemsObserver.itemLoad$.pipe((0,t.tap)(e=>{this.context.update({hasVerticalWriting:e.isUsingVerticalWriting()})}),(0,t.takeUntil)(this.destroy$)).subscribe()}layout(e={}){this.externalLayoutTrigger.next(e)}getSpineItemSpineLayoutInfo(e){let t=this.spineItemsManager.getSpineItemIndex(e)??0;return this.spineItemsRelativeLayouts[t]||new V({left:0,right:0,top:0,bottom:0,width:0,height:0,x:0,y:0})}get numberOfPages(){return this.spineItemsManager.items.reduce((e,t)=>e+t.numberOfPages,0)}destroy(){super.destroy(),this.externalLayoutTrigger.complete()}getSpreadPosition(e,t){return this.settings.values.computedSpreadMode?e?t?`right`:`left`:t?`left`:`right`:`none`}getStartEdges(e,t,n,r,i){return e?{edgeX:t?0:n,edgeY:t?r:r-i}:{edgeX:n,edgeY:0}}createSpineItemLayout(e,t,n,r,i,a,o){if(e)return new V({left:n,right:i+n,top:r,bottom:a+r,height:a,width:i,x:n,y:r});let s=t?o-n-i:n;return new V({right:t?o-n:n+i,left:s,x:s,top:r,bottom:a,height:a,width:i,y:r})}},Ii=class extends q{constructor(e,r,i,a,o,s){super(),this.context=e,this.pagination=r,this.spineItemsManager=i,this.spineItemLocator=a,this.settings=o,this.viewport=s,this.elementSubject=new t.BehaviorSubject(void 0),this.element$=this.elementSubject.asObservable(),this.spineItemsObserver=new Pi(i),this.spineLayout=new Fi(i,this.spineItemsObserver,e,o,s),this.locator=Ni({context:e,spineItemsManager:i,spineItemLocator:a,settings:o,spineLayout:this.spineLayout,viewport:s}),this.spineItemsLoader=new xi(this.context,i,this.locator,o,this.spineLayout,this.viewport),this.pages=new J(this.spineLayout,this.spineItemsManager,this.spineItemLocator,this.context,this.locator,this.viewport);let c=e.watch(`rootElement`).pipe((0,n.filter)(L),(0,n.tap)(()=>{let e=this.context.document.createElement(`div`);e.style.cssText=`
|
|
194
194
|
height: 100%;
|
|
195
195
|
position: relative;
|
|
196
|
-
`,e.className=`${W}-spine`,this.elementSubject.next(e)}));(0,t.merge)(this.element$.pipe((0,n.filter)(L),(0,n.tap)(e=>{this.spineItemsManager.items.forEach(t=>{t.attach(e)})})),c).pipe((0,n.takeUntil)(this.destroy$)).subscribe()}get element(){return this.elementSubject.getValue()}layout(e){this.spineLayout.layout(e)}getSpineItemSpineLayoutInfo(e){return this.spineLayout.getSpineItemSpineLayoutInfo(e)}get layout$(){return this.pages.layout$}destroy(){super.destroy(),this.pages.destroy(),this.spineItemsLoader.destroy(),this.elementSubject.getValue()?.remove(),this.elementSubject.complete()}},Li=class extends De{onUnload(){}onCreateDocument(){return(0,t.of)(this.context.document.createElement(`div`))}onLoadDocument(){return t.EMPTY}onLayout(){return(0,t.of)(void 0)}onRenderHeadless(){return t.EMPTY}getDocumentFrame(){}},Ri=class extends q{constructor(n,r,i,a,o,s,c){super(),this.item=n,this.containerElement=r,this.context=i,this.hookManager=a,this.renderer=o,this.settings=s,this.viewport=c,this.layoutTriggerSubject=new t.Subject,this.lastLayout=null,this.computeLayoutInformation=({isLastItem:t,horizontalOffset:n,spreadPosition:r})=>{let i=this.viewport.value.pageSize.width,a=`none`,o=n%this.viewport.absoluteViewport.width===0,s=this.context.manifest,c=_r(s);if(this.settings.values.computedSpreadMode){!c&&this.renderer.renditionLayout===`reflowable`&&!t&&(i=this.viewport.value.pageSize.width*2),!c&&this.renderer.renditionLayout===`reflowable`&&t&&o&&(i=this.viewport.value.pageSize.width*2);let n=o&&t&&c,s=(0,e.getItemSpreadPosition)(this.item);s!==void 0&&s!==r?(a=`before`,i=this.viewport.value.pageSize.width*2):n&&(a=this.context.isRTL()?`before`:`after`,i=this.viewport.value.pageSize.width*2)}return{minimumWidth:i,blankPagePosition:a}},this.adjustPositionOfElement=({right:e,left:t,top:n})=>{e===void 0?u(this.containerElement.style,`right`):l(this.containerElement.style,`right`,`${e}px`),t===void 0?u(this.containerElement.style,`left`):l(this.containerElement.style,`left`,`${t}px`),n===void 0?u(this.containerElement.style,`top`):l(this.containerElement.style,`top`,`${n}px`)},this.updateContainerLayout=({minimumWidth:n,edgeX:r,edgeY:i})=>a=>a.pipe((0,t.map)(t=>{let{width:a,height:o}=((0,e.isShallowEqual)(this.lastLayout?.pageSize,this.viewport.pageSize)?this.lastLayout:void 0)??{},{width:s=a,height:c=o}=t??{},{width:u,height:d}=this.viewport.pageSize,f=this.validateDimension(s??u,u,n),p=this.settings.values.computedPageTurnMode===`scrollable`?c??d:this.validateDimension(c??d,d,d);return this.lastLayout={width:f,height:p,pageSize:this.viewport.pageSize},l(this.containerElement.style,`width`,`${f}px`),l(this.containerElement.style,`height`,`${p}px`),this.settings.values.computedPageTurnDirection===`vertical`?(this.adjustPositionOfElement({top:i,left:r}),{width:f,height:p}):(this.adjustPositionOfElement(this.context.isRTL()?{right:r,top:0}:{left:r,top:0}),{width:f,height:p})})),this.layout=e=>{let n=_e(this.didLayout$.pipe((0,t.first)()));return this.layoutTriggerSubject.next(e),n()};let d=this.layoutTriggerSubject.pipe((0,t.switchMap)(({spreadPosition:e,horizontalOffset:n,isLastItem:r,edgeX:i,edgeY:a})=>{let{blankPagePosition:o,minimumWidth:s}=this.computeLayoutInformation({horizontalOffset:n,isLastItem:r,spreadPosition:e});this.hookManager.execute(`item.onBeforeLayout`,{blankPagePosition:o,item:this.item,minimumWidth:s});let c=this.renderer.layout({blankPagePosition:o,minPageSpread:s/this.viewport.pageSize.width,minimumWidth:s,spreadPosition:e});return(0,t.merge)((0,t.of)({type:`start`}),c.pipe(this.updateContainerLayout({minimumWidth:s,edgeX:i,edgeY:a}),(0,t.map)(e=>(this.hookManager.execute(`item.onAfterLayout`,{blankPagePosition:o,item:this.item,minimumWidth:s}),{type:`end`,data:e}))))}),(0,t.share)());this.didLayout$=d.pipe((0,t.filter)(e=>e.type===`end`),(0,t.map)(e=>e.data),(0,t.share)())}validateDimension(e,t,n){if(e<=0)return n;let r=Math.ceil(Math.max(e,n)/t)*t;return Math.max(r,t)}get layoutInfo(){let e=this.containerElement.style;return{width:e.width?parseFloat(e.width):0,height:e.height?parseFloat(e.height):0}}},$=class extends M{constructor(e,r,i,a,o,s){super({isLoaded:!1,isReady:!1,isDirty:!1,isError:!1,error:void 0}),this.item=e,this.context=r,this.settings=i,this.hookManager=a,this.index=o,this.viewport=s,this.attach=e=>{this.hookManager.execute(`item.onBeforeContainerAttach`,{element:this.containerElement,item:this.item}),e.appendChild(this.containerElement)},this.load=()=>{this.renderer.load()},this.unload=()=>{this.renderer.unload()},this.markDirty=()=>{this.
|
|
196
|
+
`,e.className=`${W}-spine`,this.elementSubject.next(e)}));(0,t.merge)(this.element$.pipe((0,n.filter)(L),(0,n.tap)(e=>{this.spineItemsManager.items.forEach(t=>{t.attach(e)})})),c).pipe((0,n.takeUntil)(this.destroy$)).subscribe()}get element(){return this.elementSubject.getValue()}layout(e){this.spineLayout.layout(e)}getSpineItemSpineLayoutInfo(e){return this.spineLayout.getSpineItemSpineLayoutInfo(e)}get layout$(){return this.pages.layout$}destroy(){super.destroy(),this.pages.destroy(),this.spineItemsLoader.destroy(),this.elementSubject.getValue()?.remove(),this.elementSubject.complete()}},Li=class extends De{onUnload(){}onCreateDocument(){return(0,t.of)(this.context.document.createElement(`div`))}onLoadDocument(){return t.EMPTY}onLayout(){return(0,t.of)(void 0)}onRenderHeadless(){return t.EMPTY}getDocumentFrame(){}},Ri=class extends q{constructor(n,r,i,a,o,s,c){super(),this.item=n,this.containerElement=r,this.context=i,this.hookManager=a,this.renderer=o,this.settings=s,this.viewport=c,this.layoutTriggerSubject=new t.Subject,this.lastLayout=null,this.computeLayoutInformation=({isLastItem:t,horizontalOffset:n,spreadPosition:r})=>{let i=this.viewport.value.pageSize.width,a=`none`,o=n%this.viewport.absoluteViewport.width===0,s=this.context.manifest,c=_r(s);if(this.settings.values.computedSpreadMode){!c&&this.renderer.renditionLayout===`reflowable`&&!t&&(i=this.viewport.value.pageSize.width*2),!c&&this.renderer.renditionLayout===`reflowable`&&t&&o&&(i=this.viewport.value.pageSize.width*2);let n=o&&t&&c,s=(0,e.getItemSpreadPosition)(this.item);s!==void 0&&s!==r?(a=`before`,i=this.viewport.value.pageSize.width*2):n&&(a=this.context.isRTL()?`before`:`after`,i=this.viewport.value.pageSize.width*2)}return{minimumWidth:i,blankPagePosition:a}},this.adjustPositionOfElement=({right:e,left:t,top:n})=>{e===void 0?u(this.containerElement.style,`right`):l(this.containerElement.style,`right`,`${e}px`),t===void 0?u(this.containerElement.style,`left`):l(this.containerElement.style,`left`,`${t}px`),n===void 0?u(this.containerElement.style,`top`):l(this.containerElement.style,`top`,`${n}px`)},this.updateContainerLayout=({minimumWidth:n,edgeX:r,edgeY:i})=>a=>a.pipe((0,t.map)(t=>{let{width:a,height:o}=((0,e.isShallowEqual)(this.lastLayout?.pageSize,this.viewport.pageSize)?this.lastLayout:void 0)??{},{width:s=a,height:c=o}=t??{},{width:u,height:d}=this.viewport.pageSize,f=this.validateDimension(s??u,u,n),p=this.settings.values.computedPageTurnMode===`scrollable`?c??d:this.validateDimension(c??d,d,d);return this.lastLayout={width:f,height:p,pageSize:this.viewport.pageSize},l(this.containerElement.style,`width`,`${f}px`),l(this.containerElement.style,`height`,`${p}px`),this.settings.values.computedPageTurnDirection===`vertical`?(this.adjustPositionOfElement({top:i,left:r}),{width:f,height:p}):(this.adjustPositionOfElement(this.context.isRTL()?{right:r,top:0}:{left:r,top:0}),{width:f,height:p})})),this.layout=e=>{let n=_e(this.didLayout$.pipe((0,t.first)()));return this.layoutTriggerSubject.next(e),n()};let d=this.layoutTriggerSubject.pipe((0,t.switchMap)(({spreadPosition:e,horizontalOffset:n,isLastItem:r,edgeX:i,edgeY:a})=>{let{blankPagePosition:o,minimumWidth:s}=this.computeLayoutInformation({horizontalOffset:n,isLastItem:r,spreadPosition:e});this.hookManager.execute(`item.onBeforeLayout`,{blankPagePosition:o,item:this.item,minimumWidth:s});let c=this.renderer.layout({blankPagePosition:o,minPageSpread:s/this.viewport.pageSize.width,minimumWidth:s,spreadPosition:e});return(0,t.merge)((0,t.of)({type:`start`}),c.pipe(this.updateContainerLayout({minimumWidth:s,edgeX:i,edgeY:a}),(0,t.map)(e=>(this.hookManager.execute(`item.onAfterLayout`,{blankPagePosition:o,item:this.item,minimumWidth:s}),{type:`end`,data:e}))))}),(0,t.share)());this.didLayout$=d.pipe((0,t.filter)(e=>e.type===`end`),(0,t.map)(e=>e.data),(0,t.share)())}validateDimension(e,t,n){if(e<=0)return n;let r=Math.ceil(Math.max(e,n)/t)*t;return Math.max(r,t)}get layoutInfo(){let e=this.containerElement.style;return{width:e.width?parseFloat(e.width):0,height:e.height?parseFloat(e.height):0}}},$=class extends M{constructor(e,r,i,a,o,s){super({isLoaded:!1,isReady:!1,isDirty:!1,isError:!1,error:void 0}),this.item=e,this.context=r,this.settings=i,this.hookManager=a,this.index=o,this.viewport=s,this.attach=e=>{this.hookManager.execute(`item.onBeforeContainerAttach`,{element:this.containerElement,item:this.item}),e.appendChild(this.containerElement)},this.load=()=>{this.renderer.load()},this.unload=()=>{this.renderer.unload()},this.markDirty=()=>{this.updateState({isDirty:!0})},this.destroy=()=>{this.isDestroyed||(super.destroy(),this._layout.destroy(),this.renderer.destroy(),this.containerElement.remove())},this.isUsingVerticalWriting=()=>!!this.renderer.writingMode?.startsWith(`vertical`),this.layout=e=>this._layout.layout(e),this.containerElement=zi(e,r.document);let c=this.settings.values.getRenderer?.(e);this.resourcesHandler=new N(e,this.settings);let l={context:r,settings:i,hookManager:a,item:e,containerElement:this.containerElement,resourcesHandler:this.resourcesHandler,viewport:this.viewport};this.renderer=c?c(l):new Li(l),this._layout=new Ri(e,this.containerElement,r,a,this.renderer,this.settings,this.viewport);let u=this.renderer.state$.pipe((0,n.tap)(({state:e,error:t})=>{this.updateState({isLoaded:e===`loaded`,isError:e===`error`,error:e===`error`?t:void 0})}));this.didLayout$=this._layout.didLayout$.pipe((0,n.tap)(()=>{this.updateState({isDirty:!1,isReady:!0})}),(0,n.share)()),(0,t.merge)(u,this.didLayout$).pipe((0,n.takeUntil)(this.destroy$)).subscribe()}updateState(e){let t={...this.value,...e};this.mergeCompare({...t,isReady:t.isReady&&t.isLoaded})}get isReady$(){return this.watch(`isReady`)}get element(){return this.containerElement}get readingDirection(){return this.renderer.readingDirection}get loaded$(){return this.renderer.loaded$}get unloaded$(){return this.renderer.unloaded$}get renditionLayout(){return this.renderer.renditionLayout}get layoutInfo(){return this._layout.layoutInfo}get numberOfPages(){return Qr({isUsingVerticalWriting:!!this.isUsingVerticalWriting(),itemHeight:this._layout.layoutInfo.height,itemWidth:this._layout.layoutInfo.width,pageWidth:this.viewport.pageSize.width,pageHeight:this.viewport.pageSize.height,pageTurnDirection:this.settings.values.computedPageTurnDirection,pageTurnMode:this.settings.values.pageTurnMode})}},zi=(e,t)=>{let n=t.createElement(`div`);return n.setAttribute(`data-${gt}`,``),n.classList.add(`spineItem`),n.classList.add(`spineItem-${e.renditionLayout??`reflowable`}`),n.style.cssText=`
|
|
197
197
|
position: absolute;
|
|
198
198
|
overflow: hidden;
|
|
199
199
|
`,n.dataset.isReady=`false`,n},Bi=class extends q{constructor(e,t,n,r){super(),this.context=e,this.settings=t,this.hookManager=n,this.viewport=r,this.items=e.manifest.spineItems.map((i,a)=>new $(i,e,t,n,a,r))}get(e){return typeof e==`number`?this.items[e]:typeof e==`string`?this.items.find(({item:t})=>t.id===e):e}comparePositionOf(e,t){let n=this.getSpineItemIndex(e)??0,r=this.getSpineItemIndex(t)??0;return n>r?`after`:n===r?`same`:`before`}getSpineItemIndex(e){return(e instanceof $?e:this.get(e))?.index}destroy(){this.items.forEach(e=>{e.destroy()}),super.destroy()}},Vi=class extends M{constructor(e,n){let r=e.document.createElement(`div`);r.setAttribute(`data-${mt}`,``),super({element:r,pageSize:{width:1,height:1},width:1,height:1}),this.context=e,this.settingsManager=n,this.layoutSubject=new t.Subject,this.layout$=this.layoutSubject.asObservable(),(0,t.merge)(this.settingsManager.watch([`computedSpreadMode`]).pipe((0,t.tap)(()=>{this.mergeCompare({pageSize:this.calculatePageSize(this.value)})})),this.context.watch(`rootElement`).pipe((0,t.tap)(()=>{this.layout()}))).pipe((0,t.takeUntil)(this.destroy$)).subscribe()}calculatePageSize(e){let{computedSpreadMode:t}=this.settingsManager.values;return{width:t?e.width/2:e.width,height:e.height}}syncAbsoluteViewportCssVariables(e){let{style:t}=this.value.element;e.width>0?l(t,_t,`${e.width}px`):u(t,_t),e.height>0?l(t,G,`${e.height}px`):u(t,G)}layout(){let e={width:this.value.element.clientWidth,height:this.value.element.clientHeight};this.syncAbsoluteViewportCssVariables(e),this.mergeCompare({pageSize:this.calculatePageSize(e),...e}),this.layoutSubject.next()}get absoluteViewport(){return new wi({width:this.value.width,height:this.value.height})}get pageSize(){return this.value.pageSize}get scaleFactor(){let e=this.absoluteViewport;return e.width?(this.value.element.getBoundingClientRect()?.width||e.width)/e.width:1}get relativeViewport(){let e=this.absoluteViewport,t=this.scaleFactor;return new Ti({width:e.width/t,height:e.height/t})}destroy(){super.destroy(),this.layoutSubject.complete(),this.value.element.remove()}},Hi=({manifest:e,cfi:r,ownerDocument:a=globalThis.document,...o})=>{let s=crypto.randomUUID(),c=`${ft}-core-${s}`,l=new t.Subject,u=new t.Subject,d=new xr,f=new yr(e,a),p=new bi(o,f),m=new br(f,p),h=new Vi(f,p),g=new Bi(f,p,d,h),_=new gr(d,g),v=ti({context:f,settings:p,viewport:h}),y=new _i(f,g),b=new Ii(f,y,g,v,p,h),x=gi({cfi:_,context:f,spineItemsManager:g,hookManager:d,spine:b,settings:p,viewport:h}),ee=new vi(f,y,g,b,v,x.isLocked$,_);x.navigationState$.subscribe(f.bridgeEvent.viewportStateSubject),x.navigation$.subscribe(f.bridgeEvent.navigationSubject),x.position$.subscribe(f.bridgeEvent.positionSubject),y.subscribe(f.bridgeEvent.paginationSubject);let S=(e={})=>{l.next(e)},C=e=>{if(f.value.rootElement)throw Error(`This reader is already mounted. A reader renders a single book, destroy it and create a new reader instead.`);if(e.ownerDocument!==f.document)throw Error("The container element must belong to the reader's document. Pass `ownerDocument` to `createReader` when mounting into a foreign document (eg: an iframe's contentDocument).");i.log(`mount`,{containerElement:e}),T(f.document,c,Sr);let t=Gi(e,s);f.update({rootElement:t}),S({immediate:!0})},w=p.watch([`computedSpreadMode`]).pipe((0,n.skip)(1),(0,n.tap)(()=>S())),te=(0,t.merge)(l.pipe((0,n.tap)(e=>{f.value.rootElement&&(h.layout(),b.layout(e))}),(0,n.takeUntil)(u)),w).subscribe();return{id:s,context:f,spine:b,hookManager:d,cfi:_,navigation:x,spineItemsObserver:b.spineItemsObserver,spineItemsManager:g,layout:S,mount:C,destroy:()=>{let e=f.value.rootElement;e&&(ne(f.document,c),Ki(e)),te.unsubscribe(),g.destroy(),ee.destroy(),p.destroy(),y.destroy(),f.destroy(),x.destroy(),b.destroy(),m.destroy(),u.next(),u.complete(),h.destroy()},pagination:{get state(){return y.value},get state$(){return y}},settings:p,renderHeadless:e=>g.get(e)?.renderer.renderHeadless()??(0,t.of)(void 0),viewport:h,viewportState$:f.bridgeEvent.viewportState$,viewportFree$:f.bridgeEvent.viewportFree$,mounted$:f.watch(`rootElement`).pipe((0,n.map)(L),(0,n.distinctUntilChanged)()),features:m,$:{destroy$:u}}},Ui=`${W}-reader`,Wi=`data-prose-reader-container`,Gi=(e,t)=>(e.classList.add(Ui),o(e,pt,t),o(e,Wi,t),e),Ki=e=>{e.classList.remove(Ui),e.removeAttribute(pt),e.removeAttribute(Wi)},qi=Wn(Te(Jn(we(le(qn(ar(tn(tt(It(ue(pe(zn(Ft(Kn(Hi))))))))))))))),Ji=e=>t=>e(t),Yi=5e3,Xi=(e,{itemReadinessTimeoutMs:n=Yi}={})=>Vt(e).pipe((0,t.switchMap)(r=>{if(r.boundary===`start`)return(0,t.of)(r);let i=e.spineItemsManager.items,a=i[i.length-1];return a?a.value.isReady?(0,t.of)(r):a.isReady$.pipe((0,t.filter)(Boolean),(0,t.first)(),(0,t.map)(()=>r),n===1/0?t.identity:(0,t.timeout)({first:n,with:()=>t.EMPTY}),Bt(e.navigation)):t.EMPTY}),(0,t.share)());exports.AbstractSpinePosition=it,exports.CSS_VAR_ABSOLUTE_VIEWPORT_HEIGHT=G,exports.CSS_VAR_ABSOLUTE_VIEWPORT_WIDTH=_t,exports.CfiManager=gr,exports.Context=yr,exports.ControlledNavigationController=Er,exports.DestroyableClass=q,exports.DocumentRenderer=De,exports.Features=br,exports.HTML_ATTRIBUTE_DATA_READER_ID=pt,exports.HTML_PREFIX=W,exports.HTML_PREFIX_SCROLL_NAVIGATOR=ht,exports.HTML_PREFIX_SPINE_ITEM=gt,exports.HTML_PREFIX_VIEWPORT=mt,exports.HTML_STYLE_PREFIX=ft,exports.HookManager=xr,exports.InternalNavigator=qr,exports.LayoutEntry=R,exports.Locker=Rr,exports.PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE=dt,exports.PROSE_READER_NAMESPACE=lt,exports.Pages=J,exports.Pagination=_i,exports.PaginationController=vi,exports.ReactiveEntity=M,exports.ResourceHandler=N,exports.ResourcesLocator=an,exports.ScrollNavigationController=tr,exports.ScrollPosition=$n,exports.SettingsManager=yi,exports.Spine=Ii,exports.SpineItem=$,exports.SpineItemPageLayout=nt,exports.SpineItemPageSpineLayout=rt,exports.SpineItemPosition=z,exports.SpineItemSpineLayout=V,exports.SpineItemsManager=Bi,exports.SpineItemsObserver=Pi,exports.SpinePosition=H,exports.UnboundScrollPosition=er,exports.UnboundSpineItemPagePosition=B,exports.UnboundSpinePosition=U,exports.VIEWPORT_ADJUSTMENT_THROTTLE=ut,exports.Viewport=Vi,exports.consolidate=rn,exports.createReader=qi,exports.deferIdle=ye,exports.deferNextResult=_e,exports.generateCfiForSpineItemPage=cr,exports.generateCfiFromRange=lr,exports.generateRootCfi=or,exports.getAttributeValueFromString=ie,exports.getBase64FromBlob=me,exports.getFrameViewportInfo=D,exports.getItemAnchor=ur,exports.htmlEnhancer=tt,exports.idle=ve,exports.injectCSS=T,exports.injectCSSToFrame=ae,exports.isDefined=L,exports.isHtmlElement=C,exports.isHtmlTagElement=w,exports.isRootCfi=fr,Object.defineProperty(exports,"isShallowEqual",{enumerable:!0,get:function(){return e.isShallowEqual}}),exports.layoutEnhancer=Ft,exports.mapKeysTo=ge,exports.observeBookBoundaryReached=Xi,exports.observeIntersection=xe,exports.observeMutation=be,exports.observeNextSettledNavigation=zt,exports.observeResize=A,exports.observeSettledNavigation=Rt,exports.paginationEnhancer=zn,exports.parseCfi=mr,exports.pick=he,exports.removeAttributeIfPresent=s,exports.removeCSS=oe,exports.removeStylePropertyIfPresent=u,exports.resolveCfi=hr,exports.rootEnhancer=Ji,exports.setAttributeIfChanged=o,exports.setPropertyIfChanged=c,exports.setStylePropertyIfChanged=l,exports.shouldEnableSpreadModeForViewport=Mt,exports.shouldUseComputedSpreadModeForViewport=Nt,exports.spinePositionToSpineItemSpineLayout=sn,exports.takeUntilNextNavigationSettled=Bt,exports.upsertCSSToFrame=E,exports.waitForFrameLoad=se,exports.waitForFrameReady=ce,exports.waitForNavigationSettled=Lt,exports.waitForSwitch=j,exports.watchKeys=k;
|