bloom-player 2.11.5 → 2.11.6

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.
@@ -8047,7 +8047,7 @@ Add a <Suspense fallback=...> component higher in the tree to provide a loading
8047
8047
  display:none !important;
8048
8048
  }
8049
8049
  `.replace(`
8050
- `,"").replace("\r","")}const ic=[];function CB(){return ic.length>0}function TB(t){const e=ic.pop();if(e)return{bookUrl:t===e.bookId?void 0:uh(e.bookId),pageId:e.pageId}}function EB(t,e,n){const a=t.target.closest("[href], [data-href]");if(!a)return;t.preventDefault(),t.stopPropagation();const i=(a.getAttribute("href")||a.getAttribute("data-href"))??void 0;if(!i)return;if(i.startsWith("http://")||i.startsWith("https://")){window.open(i,"_blank","noreferrer");return}let r,s;if(i==="back"){const c=ic.pop();return c?{bookUrl:e===c.bookId?void 0:uh(c.bookId),pageId:c.pageId}:void 0}else if(i.startsWith("/book/")){const c=MB(i);r=c.bookId,s=c.pageId,c.bookId===e&&(r=void 0)}else i.startsWith("#")&&(s=i.substring(1));const u=n();if(r)return ny(e,u),{bookUrl:uh(r),pageId:s};if(s)return ny(e,u),{pageId:s}}function ny(t,e,n){ic.push({bookId:t,pageId:e})}function uh(t){return`/book/${t}/index.htm`}function MB(t){try{const e=new URL(t,window.location.origin);if(!e.pathname.startsWith("/book/"))throw new Error("Invalid book URL format");const n=e.pathname.replace("/book/",""),a=e.hash.replace("#","");return{bookId:n,pageId:a}}catch(e){return console.error("Error parsing book URL:",e),{bookId:void 0,pageId:void 0}}}class Se extends D.Component{constructor(e,n){super(e,n),this.activityManager=new $L,this.initialPages=["loading..."],this.initialStyleRules="",this.originalPageClass="Device16x9Portrait",this.bookInfo=new lh,this.bookInteraction=new pB,this.indicesOfPagesWhereWeShouldPreserveDOMState={},this.startingUpSwiper=!0,this.state={pages:this.initialPages,pageIdToIndexMap:{},styleRules:this.initialStyleRules,importedBodyAttributes:{},currentSwiperIndex:0,isLoading:!0,loadFailed:!1,loadErrorHtml:"",ignorePhonyClick:!1,isFinishUpForNewBookComplete:!1,inPauseForced:!1,bookUrl:""},this.isPagesLocalized=!1,this.currentPageHidesNavigationButtons=!1,this.handleDocumentLevelKeyDown=i=>{i.key==="Home"&&(this.goToFirstPage(),i.preventDefault()),i.key==="End"&&(this.goToLastPage(),i.preventDefault())},this.distributionSource="",this.finishUpCalled=!1,this.hasImageDescriptions=!1,this.handlePageVideoComplete=i=>{i.page===Se.currentPage&&this.playAudioAndAnimation(i.page)},this.handlePlayFailed=()=>{this.setState({inPauseForced:!0}),this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!0)},this.handlePlayCompleted=()=>{Mn(Ve.MediaFinished),this.props.imageDescriptionCallback(!1)},this.handleToggleImageDescription=i=>{this.props.imageDescriptionCallback(i)},this.handlePageNarrationComplete=i=>{if(i&&(Mn(Ve.MediaFinished),this.shouldAutoPlay())){const r=this.props.autoplayCount??0,s=this.state.startPageIndex??0,u=this.swiperInstance.slides.length-1;let c=this.props.autoplayCount?Math.min(s+r-1,u):u;this.swiperInstance.activeIndex>=c?(this.music.pause(),this.props.shouldReportSoundLog&&OC(),jC(),CT({})):this.swiperInstance.slideNext()}},this.skipAutoPlay=!1,this.sentBloomNotification=!1;const a=e.url.startsWith("http")?new URL(e.url):new URL(e.url,window.location.origin);a.hash?(this.state.startPageId=a.hash.substring(1),a.hash=""):this.state.startPageIndex=e.startPageIndex,this.state.bookUrl=a.href,Se.currentPagePlayer=this,this.legacyQuestionHandler=new HL(e.locationOfDistFolder)}componentDidMount(){rn.setUp(),window.addEventListener("focus",()=>this.handleWindowFocus()),window.addEventListener("blur",()=>this.handleWindowBlur()),document.addEventListener("keydown",e=>this.handleDocumentLevelKeyDown(e)),document.addEventListener("pointerdown",e=>{(e.target.closest("[href], [data-href]")||e.target.closest(".bloom-videoContainer")&&!e.target.closest("[data-draggable-id]"))&&(e.stopPropagation(),e.preventDefault())},{capture:!0}),document.addEventListener("dragstart",e=>{this.activityManager.getActivityAbsorbsDragging()||e.preventDefault()},{capture:!0}),this.componentDidUpdate(this.props,this.state)}CanGoBack(){return CB()}HandleBackButtonClickedIfHavePlayerHistory(){const e=TB(this.bookInfo.bookInstanceId);return e?(this.navigate(e.bookUrl,e.pageId),!0):!1}navigate(e,n){if(e){const a=new URL(e,this.state.bookUrl);this.setState({bookUrl:a.href,startPageId:n,startPageIndex:void 0})}else if(n!==void 0){const a=this.state.pageIdToIndexMap[n];this.swiperInstance.slideTo(a)}}handleWindowFocus(){const e=localStorage.getItem($l),n=localStorage.getItem(Zg);e&&n==this.sourceUrl&&(this.bookInteraction.beginReadTime=Date.now()-parseInt(e,10))}handleWindowBlur(){const e=Date.now()-this.bookInteraction.beginReadTime;localStorage.setItem($l,e.toString()),localStorage.setItem(Zg,this.sourceUrl)}componentDidUpdate(e,n){var a;try{if(!this.props.url||this.state.loadFailed)return;this.initializeMedia();const i=this.preprocessUrl();if(i&&i!=="/working"&&i!==this.sourceUrl){this.finishUpCalled=!1,this.setState({isLoading:!0,loadFailed:!1}),this.metaDataObject=void 0,this.htmlElement=void 0,this.sourceUrl=i;const r=this.sourceUrl.lastIndexOf("/"),s=this.sourceUrl.lastIndexOf("%2f");let u;r>s?u=this.sourceUrl.substring(r+1,this.sourceUrl.length):u=this.sourceUrl.substring(s+3,this.sourceUrl.length);const c=u.endsWith(".htm"),h=c?this.sourceUrl:this.sourceUrl+"/"+u+".htm";this.urlPrefix=c?this.sourceUrl.substring(0,Math.max(r,s)):this.sourceUrl,this.music.urlPrefix=this.urlPrefix,tC(this.music.urlPrefix);const g=Za.get(this.fullUrl(".distribution")).then(M=>M,M=>({data:""})),k=Za.get(h),b=Za.get(this.fullUrl("meta.json"));Promise.all([k,b,g]).then(M=>{const[E,z,A]=M;this.metaDataObject=z==null?void 0:z.data,this.distributionSource=A.data;const S=new DOMParser().parseFromString(E==null?void 0:E.data,"text/html"),N=S.documentElement,L=N.getElementsByTagName("body")[0];this.bookInfo.setSomeBookInfoFromBody(L),this.localizeOnce(),this.props.shouldReportSoundLog&&(this.videoList=this.getVideoList(S)),this.animation.PlayAnimations=this.bookInfo.playAnimations,this.collectBodyAttributes(L),this.makeNonEditable(L),this.htmlElement=N;const j=N.getElementsByClassName("bloom-page")[0];this.originalPageClass="Device16x9Portrait",j&&(this.originalPageClass=Se.getPageSizeClass(j)),this.legacyQuestionHandler.generateQuizPagesFromLegacyJSON(this.urlPrefix,L,this.originalPageClass,()=>{this.finishUp()})}).catch(M=>this.HandleLoadingError(M))}else if(e.landscape!==this.props.landscape||e.useOriginalPageSize!==this.props.useOriginalPageSize||e.autoplay!==this.props.autoplay){const r=document.getElementsByClassName("bloom-page");for(let s=0;s<r.length;s++){const u=r[s];this.setPageSizeClass(u)}}!this.state.isLoading&&(n.isLoading||e.activeLanguageCode!==this.props.activeLanguageCode)&&(this.updateDivVisibilityByLangCode(n.isLoading),this.updateOverlayPositionsByLangCode(),this.finishUpCalled&&this.finishUp(!1)),this.state.currentSwiperIndex!=n.currentSwiperIndex&&((a=this.rootDiv)==null||a.querySelectorAll(Wp).forEach(r=>{const s=Ls(r).getNiceScroll();s&&s.length>0&&s.remove()})),!this.state.isLoading&&(n.isLoading||e.shouldReadImageDescriptions!==this.props.shouldReadImageDescriptions)&&this.finishUpCalled&&(this.setIndex(this.state.currentSwiperIndex),this.showingPage(this.state.currentSwiperIndex)),this.state.isFinishUpForNewBookComplete&&e.landscape!==this.props.landscape&&(this.setIndex(this.state.currentSwiperIndex),this.showingPage(this.state.currentSwiperIndex)),e.paused!==this.props.paused&&this.handlePausePlay(),this.swiperInstance&&this.swiperInstance.lazy.load()}catch(i){this.setState({isLoading:!1,loadFailed:!0,loadErrorHtml:i.message})}}collectBodyAttributes(e){for(var n={},a=0;a<e.attributes.length;a++)n[e.attributes.item(a).nodeName]=e.attributes.item(a).nodeValue;this.setState({importedBodyAttributes:n})}HandleLoadingError(e){let a=`<p>There was a problem displaying this book: ${e.message}<p>`;(e.config&&e.config.url&&e.config.url.startsWith("file://")||e.message.indexOf("404")>=0)&&(a="<p>This book (or some part of it) was not found.<p>",e.config&&e.config.url&&(a+=`<p class='errorDetails'>${PB(e.config.url)}</p>`)),this.setState({isLoading:!1,loadFailed:!0,loadErrorHtml:a})}async finishUp(e=!0){if(this.finishUpCalled=!0,!this.htmlElement)return;const n=this.htmlElement.getElementsByClassName("bloom-page"),a=[];e&&(this.bookInfo.totalNumberedPages=0,this.bookInfo.questionCount=0,this.activityManager.collectActivityContextForBook(n),this.bookInteraction.clearPagesShown(),this.music.processAllMusicForBook(n));const i=this.bookInfo.getPreferredTranslationLanguages(),r=i[0]===this.props.activeLanguageCode||!this.props.activeLanguageCode,s={},u=h=>h.classList.contains("bloom-interactive-page")||h.classList.contains("simple-comprehension-quiz")||h.getAttribute("data-activity")=="iframe"||h.getElementsByClassName("questions").length>0;s.length=0,s.cover=0;for(let h=0;h<n.length;h++){const g=n[h],k=g.getAttribute("id");k&&(s[k]=h);const b=this.setPageSizeClass(g);g.setAttribute("data-index",h.toString(10)),h===0&&this.props.reportBookProperties&&this.props.reportBookProperties({landscape:b,canRotate:this.bookInfo.canRotate,preferredLanguages:i,pageNumbers:Array.from(n).map(E=>E.getAttribute("data-page-number")??""),isRtl:this.metaDataObject.isRtl,internalUrl:this.state.bookUrl}),e&&(this.fixRelativeUrls(g),g.classList.contains("numberedPage")&&(this.indexOflastNumberedPage=h,this.bookInfo.totalNumberedPages++),(g.getAttribute("data-analyticscategories")||g.getAttribute("data-analyticsCategories"))==="comprehension"&&this.bookInfo.questionCount++),this.showOrHideL1OnlyText(g,r);const M=u(g);M&&this.activityManager.initializePageHtml(this.urlPrefix,g,a.length),(!this.props.skipActivities||!M)&&a.push(g.outerHTML)}if(e){const h=this.htmlElement.getElementsByTagName("head")[0];this.bookInfo.setSomeBookInfoFromHead(h);const g=this.htmlElement.getElementsByTagName("body")[0];if(this.metaDataObject&&(this.bookInfo.setSomeBookInfoFromMetadata(this.metaDataObject,g),this.reportBookOpened(g)),this.props.controlsCallback){const k=fs.createLangDataArrayFromDomAndMetadata(g,this.metaDataObject);this.hasImageDescriptions=AB(g),this.props.controlsCallback(k,this.hasImageDescriptions,b=>{var M;(M=this.swiperInstance)==null||M.slideTo(b)})}}if(e){var c;try{c=await kB(this.htmlElement,this.urlPrefix,this.bookInfo,()=>this.legacyQuestionHandler.getPromiseForAnyQuizCss())}catch(h){this.HandleLoadingError(h),c=""}if(this.startingUpSwiper=!0,this.state.startPageId){if(s[this.state.startPageId]===void 0)throw new Error(`Page ID ${this.state.startPageId} not found in the current pageIdToIndexMap`);this.setState({startPageIndex:s[this.state.startPageId]})}this.setState({pages:a,pageIdToIndexMap:s,styleRules:c,isLoading:!1,currentSwiperIndex:this.state.startPageIndex??0})}else this.setState({pages:a,isLoading:!1});this.props.pageStylesAreNowInstalled(),e?window.setTimeout(()=>{this.setState({isFinishUpForNewBookComplete:!0});const h=this.startingUpSwiper;this.startingUpSwiper=!1;var g=this.state.startPageIndex??0;this.setIndex(g),this.showingPage(g),h&&this.addScrollbarsToPageWhenReady(this.swiperInstance.activeIndex);const k=document.getElementsByClassName("swiper-button-next")[0],b=document.getElementsByClassName("swiper-button-prev")[0];b==null||b.setAttribute("tabindex","4"),k==null||k.setAttribute("tabindex","5"),k==null||k.focus()},500):Se.currentPage&&window.setTimeout(()=>{this.setIndex(Se.currentPageIndex),this.showingPage(Se.currentPageIndex)},200)}showOrHideL1OnlyText(e,n){e.querySelectorAll(".coverBottomBookTopic, .coverBottomLangName").forEach(a=>{n||a.classList.contains("bloom-content1")?a.classList.remove("do-not-display"):a.classList.add("do-not-display")})}localizeOnce(){!this.isPagesLocalized&&this.state.pages!==this.initialPages&&this.state.styleRules!==this.initialStyleRules&&(rn.localizePages(document.body,this.bookInfo.getPreferredTranslationLanguages()),this.isPagesLocalized=!0)}initializeMedia(){this.video||(this.video=new Zi,this.video.PageVideoComplete=new Ur,this.video.PageVideoComplete.subscribe(this.handlePageVideoComplete)),this.animation||(this.animation=new Ir),ta.subscribe(this.handlePageNarrationComplete),Er.subscribe(this.handlePlayFailed),Ua.subscribe(this.handlePlayCompleted),Z1(this.storeAudioAnalytics.bind(this)),Ma.subscribe(this.handleToggleImageDescription.bind(this)),J1(()=>{var e;return(e=this.swiperInstance)==null?void 0:e.animating}),Q1(e=>Ky(e,1)),this.music||(this.music=new KC,this.music.PlayFailed=new Ur,this.music.PlayFailed.subscribe(()=>{this.setState({inPauseForced:!0}),this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!0)}))}preprocessUrl(){let e=this.state.bookUrl;if(e===void 0||e.trim()==="")throw new Error("The url parameter was empty. It should point to the url of a book.");return e.endsWith("/")&&(e=e.substring(0,e.length-1)),e.endsWith("%2f")&&(e=e.substring(0,e.length-3)),e}handlePausePlay(){this.props.paused?this.pauseAllMultimedia():Se.currentPage!==Ey()||yn===Ve.MediaFinished?this.resetForNewPageAndPlay(Se.currentPage):yn===Ve.VideoPaused?this.video.play():(EC(),this.animation.PlayAnimation(),this.music.play())}getAllBloomCanvasElementsOnPage(){var a,i;const e=(a=this.htmlElement)==null?void 0:a.ownerDocument.getElementsByClassName("bloom-canvas");if(e&&e.length>0)return Array.from(e);const n=(i=this.htmlElement)==null?void 0:i.ownerDocument.getElementsByClassName("bloom-imageContainer");return n?Array.from(n).filter(r=>r.parentElement.closest(".bloom-imageContainer")===null):[]}updateOverlayPositionsByLangCode(){if(!(!this.props.activeLanguageCode||!this.htmlElement))try{const e=this.props.activeLanguageCode;this.getAllBloomCanvasElementsOnPage().forEach(n=>{Array.from(n.querySelectorAll(Ns)).forEach(i=>{const r=Array.from(i.getElementsByClassName("bloom-editable")).find(s=>s.getAttribute("lang")===e);if(r){const s=r.getAttribute("data-bubble-alternate");if(s){const u=JSON.parse(s.replace(/`/g,'"'));i.setAttribute("style",u.style)}}});const a=Array.from(n.getElementsByClassName("comical-alternate")).find(i=>i.getAttribute("data-lang")===e);if(a){const i=n.getElementsByClassName("comical-generated")[0];i&&(i.classList.remove("comical-generated"),i.classList.add("comical-alternate"),i.style.display="none"),a.classList.remove("comical-alternate"),a.classList.add("comical-generated"),a.style.removeProperty("display")}})}catch(e){console.error(e)}}updateDivVisibilityByLangCode(e){if(!this.props.activeLanguageCode||!this.htmlElement)return;const a=this.bookInfo.getPreferredTranslationLanguages()[0]===this.props.activeLanguageCode||!this.props.activeLanguageCode,i=this.props.activeLanguageCode,r=this.htmlElement.ownerDocument.evaluate(".//div[contains(@class, 'bloom-translationGroup')]",this.htmlElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null),s="bloom-visibility-code-on";for(let u=0;u<r.snapshotLength;u++){const c=r.snapshotItem(u),h=c.getAttribute("data-default-languages"),g=h?h.split(/,| /):[],k=g==null||g.length===0||!g[0]||g.includes("V")||g.includes("L1")||Se.areStringsEqualInvariantCultureIgnoreCase(g[0],"auto"),b=c.childNodes;for(let M=0;M<b.length;M++){const E=b.item(M);!E||!E.classList||!E.classList.contains("bloom-editable")||(e&&E.setAttribute("data-original-class",E.getAttribute("class")||""),a?E.setAttribute("class",E.getAttribute("data-original-class")||""):k&&(E.getAttribute("lang")===i?(E.classList.add(s),Array.from(E.classList).forEach(A=>{A.startsWith("bloom-content")&&E.classList.remove(A)}),E.classList.add("bloom-content1"),E.classList.add("bloom-contentFirst")):E.classList.remove(s)))}}}static areStringsEqualInvariantCultureIgnoreCase(e,n){return e.localeCompare(n,"en-US",{sensitivity:"accent"})===0}static isDivInL2(e){return e.classList.contains("bloom-contentNational1")}static isDivInL3(e){return e.classList.contains("bloom-contentNational2")}componentWillUnmount(){this.pauseAllMultimedia(),document.removeEventListener("keydown",e=>this.handleDocumentLevelKeyDown(e)),this.unsubscribeAllEvents()}unsubscribeAllEvents(){this.video.PageVideoComplete.unsubscribe(this.handlePageVideoComplete),ta.unsubscribe(this.handlePageNarrationComplete),Er.unsubscribe(this.handlePlayFailed),Ua.unsubscribe(this.handlePlayCompleted),Ma.unsubscribe(this.handleToggleImageDescription)}pauseAllMultimedia(){yn===Ve.VideoPlaying?this.video.pause():yn===Ve.AudioPlaying&&(MC(),this.animation.PauseAnimation()),this.music.pause()}reportBookOpened(e){const n=this.bookInfo.getAmbientAnalyticsProps();this.distributionSource&&(n.distributionSource=this.distributionSource),xT(n),Hy("BookOrShelf opened",{})}sendUpdateOfBookProgressReportToExternalContext(){const e=this.bookInteraction.getProgressReportPropertiesForAnalytics();TT("Pages Read",e)}makeNonEditable(e){const n=e.ownerDocument.evaluate(".//*[@contenteditable]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let a=0;a<n.snapshotLength;a++)n.snapshotItem(a).removeAttribute("contenteditable")}setPageSizeClass(e){return Se.setPageSizeClass(e,this.bookInfo.canRotate,this.props.landscape,this.props.useOriginalPageSize||this.bookInfo.hasFeature("comic"),this.originalPageClass)}static getPageSizeClass(e){const a=(e.getAttribute("class")||"").match(/\b\S*?(Portrait|Landscape)\b/);return a&&a.length?a[0]:""}static setPageSizeClass(e,n,a,i,r){let s=!1;const u=this.getPageSizeClass(e);if(u){s=n?a:u.endsWith("Landscape");let c="";i?c=s?r.replace("Portrait","Landscape"):r.replace("Landscape","Portrait"):c=s?"Device16x9Landscape":"Device16x9Portrait",u!==c&&(e.classList.remove(u),e.classList.add(c))}return s}goToFirstPage(){this.swiperInstance.slideTo(0)}goToLastPage(){this.swiperInstance.slideTo(99999)}fixRelativeUrls(e){const n=e.ownerDocument.evaluate(".//*[@src]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let r=0;r<n.snapshotLength;r++){const s=n.snapshotItem(r);if(!s)continue;const u=s.getAttribute("src"),c=this.fullUrl(u);s.setAttribute("src",c)}const a=e.ownerDocument.evaluate(".//*[@style]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null),i=new RegExp(/background-image:url\(['"](.*)['"]\)/);for(let r=0;r<a.snapshotLength;r++){const s=a.snapshotItem(r);if(!s)continue;const u=s.getAttribute("style")||"",c=i.exec(u);if(!c)continue;const h=this.fullUrl(c[1]),g=u.replace(i,"");s.setAttribute("style",g),s.setAttribute("data-background",h),s.classList.add("swiper-lazy")}}fullUrl(e){return this.urlPrefix+"/"+e}getRootDiv(){return this.rootDiv}slideNext(){this.swiperInstance&&this.swiperInstance.slideNext()}slidePrevious(){this.swiperInstance&&this.swiperInstance.slidePrev()}getPlayerOptionsForPage(e){if(!e)return;let n=e.getAttribute("data-player-options");if(n)try{return n=n.replace(/'/g,'"'),JSON.parse(n)}catch(a){console.log("getPlayerOptionsForPage failed to parse json: "+n+" with error "+a.message);return}}render(){var i;const e=this.activityManager.getActivityAbsorbsDragging();if(this.state.isLoading)return D.createElement(cz,{className:"loadingSpinner",color:"secondary"});if(this.state.loadFailed)return D.createElement(D.Fragment,null,D.createElement(ik,{className:"loadFailedIcon",color:"secondary"}),D.createElement("div",{className:"loadErrorMessage",dangerouslySetInnerHTML:{__html:this.state.loadErrorHtml}}));oC(this.props.shouldReadImageDescriptions&&this.hasImageDescriptions);const n={getSwiper:r=>{var s,u;this.swiperInstance=r,(s=this.metaDataObject)!=null&&s.isRtl&&this.swiperInstance&&((u=this.swiperInstance.el)==null||u.setAttribute("dir","rtl"),this.swiperInstance.rtl=!0,this.swiperInstance.rtlTranslate=!0)},simulateTouch:!0,touchStartPreventDefault:!1,on:{slideChange:()=>{this.state.inPauseForced&&this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!1),this.setState({inPauseForced:!1}),this.startingUpSwiper||this.showingPage(this.swiperInstance.activeIndex)},slideChangeTransitionStart:()=>{this.startingUpSwiper||this.setIndex(this.swiperInstance.activeIndex)},slideChangeTransitionEnd:()=>{this.addScrollbarsToPageWhenReady(this.swiperInstance.activeIndex)}},keyboard:{enabled:!0,onlyInViewport:!1},preloadImages:!1,lazy:{loadPrevNext:!0,loadOnTransitionStart:!0,loadPrevNextAmount:2},shouldSwiperUpdate:!0};this.startingUpSwiper&&(n.activeSlideKey=(i=this.state.startPageIndex)==null?void 0:i.toString());let a="bloomPlayer";return this.currentPageHidesNavigationButtons?a+=" hideNextPrevButtons extraScalingForChrome85Bug":(this.props.outsideButtonPageClass&&(a+=" "+this.props.outsideButtonPageClass),e&&(a+=" showNavigationButtonsEvenOnTouchDevices")),D.createElement("div",{"aria-label":"Player Content",className:a+(this.props.extraClassNames?" "+this.props.extraClassNames:""),ref:r=>this.rootDiv=r},D.createElement(V1,{key:this.shouldAutoPlay()?"fade":"slide",...n,effect:this.shouldAutoPlay()?"fade":"slide"},this.state.pages.map((r,s)=>{const c=Math.abs(s-this.state.currentSwiperIndex)<2||this.indicesOfPagesWhereWeShouldPreserveDOMState[s];return D.createElement("div",{key:s,className:"page-preview-slide",onClick:h=>this.handlePageClick(h)},c?D.createElement(D.Fragment,null,D.createElement("style",{scoped:!0},this.state.styleRules),D.createElement("div",{...this.state.importedBodyAttributes,className:`bloomPlayer-page ${this.bookInfo.hasAppearanceSystem?"appearance-system":""} ${this.state.importedBodyAttributes.class??""}`,dangerouslySetInnerHTML:{__html:r}})):"")})),D.createElement("div",{className:"swiper-button-prev "+(this.metaDataObject.isRtl?"swiper-button-right":"swiper-button-left")+(this.props.hideSwiperButtons||this.state.currentSwiperIndex===0?" swiper-button-disabled":""),onClick:()=>this.slidePrevious(),onTouchStart:r=>{this.setState({ignorePhonyClick:!0})}},D.createElement(Ca,{className:"nav-button",disableRipple:!0},this.metaDataObject.isRtl?D.createElement(ah,{titleAccess:rn.getTranslation("Button.Prev",this.props.preferredUiLanguages,"Previous Page")}):D.createElement(nh,{titleAccess:rn.getTranslation("Button.Prev",this.props.preferredUiLanguages,"Previous Page")}))),D.createElement("div",{className:"swiper-button-next "+(this.metaDataObject.isRtl?"swiper-button-left":"swiper-button-right")+(this.props.hideSwiperButtons||this.state.currentSwiperIndex>=this.state.pages.length-1?" swiper-button-disabled":""),onClick:()=>this.slideNext(),onTouchStart:r=>{this.setState({ignorePhonyClick:!0})}},D.createElement(Ca,{className:"nav-button",disableRipple:!0},this.metaDataObject.isRtl?D.createElement(nh,{titleAccess:rn.getTranslation("Button.Next",this.props.preferredUiLanguages,"Next Page")}):D.createElement(ah,{titleAccess:rn.getTranslation("Button.Next",this.props.preferredUiLanguages,"Next Page")}))))}shouldAutoPlay(){var e=this.bookInfo.autoAdvance&&this.props.landscape;return this.props.autoplay==="yes"?e=!0:this.props.autoplay==="no"&&(e=!1),e&&!this.skipAutoPlay}setIndex(e){if(this.state.isLoading||this.startingUpSwiper)return;this.setState({currentSwiperIndex:e});const n=this.getPageAtSwiperIndex(e);n&&(this.setPageSizeClass(n),this.animation.HandlePageBeforeVisible(n),this.video.hidingPage(),this.video.HandlePageBeforeVisible(n),NC(),this.music.hidingPage(),yn===Ve.AudioPaused||yn===Ve.VideoPaused?Mn(Ve.NewPageMediaPaused):(this.skipAutoPlay=!0,yC(),this.skipAutoPlay=!1,Mn(Ve.NewPage)))}getPageAtSwiperIndex(e){if(this.swiperInstance==null)return null;const n=this.swiperInstance.slides[e];return n?n.getElementsByClassName("bloom-page")[0]:null}getPageIdFromIndex(e){const n=this.getPageAtSwiperIndex(e);if(!n)throw new Error("No bloomPage at index "+e);return n.getAttribute("id")}static getCurrentPage(){return Se.currentPage}isXmatterPage(){const e=Se.currentPage;if(!e)return!0;const n=e.getAttribute("class");return!n||n.indexOf("bloom-page")<0||n.indexOf("bloom-backMatter")>=0||n.indexOf("bloom-frontMatter")>=0?!0:e.hasAttribute("data-xmatter-page")}showingPage(e){if(this.state.isLoading||this.startingUpSwiper)return;this.props.pageChanged&&this.props.pageChanged(e);const n=this.getPageAtSwiperIndex(e);if(!n){window.setTimeout(()=>this.showingPage(e),50);return}const a=this.getPlayerOptionsForPage(n);this.currentPageHidesNavigationButtons=!!(a&&a.hideNavigation),this.props.hidingNavigationButtonsCallback&&this.props.hidingNavigationButtonsCallback(this.currentPageHidesNavigationButtons),this.activityManager.showingPage(e,n)&&(this.indicesOfPagesWhereWeShouldPreserveDOMState[e]=!0),window.setTimeout(()=>{Se.currentPage=n,Se.currentPageIndex=e,Se.currentPageHasVideo=Zi.pageHasVideo(n),this.setPageSizeClass(n),this.props.paused||this.resetForNewPageAndPlay(n),this.isXmatterPage()||(this.bookInteraction.pageShown(e),e===this.indexOflastNumberedPage&&(this.bookInteraction.lastNumberedPageWasRead=!0)),this.props.reportPageProperties&&this.props.reportPageProperties({hasAudio:TC(n),hasMusic:this.music.pageHasMusic(n),hasVideo:Se.currentPageHasVideo}),this.bookInteraction.reportedAudioOnCurrentPage=!1,this.bookInteraction.reportedVideoOnCurrentPage=!1,this.sendUpdateOfBookProgressReportToExternalContext(),this.swiperInstance.params.noSwiping=this.activityManager.getActivityAbsorbsDragging(),this.swiperInstance.params.touchRatio=this.activityManager.getActivityAbsorbsDragging()?0:1,this.activityManager.getActivityAbsorbsTyping()?this.swiperInstance.keyboard.disable():this.swiperInstance.keyboard.enable(),Array.from(n.querySelectorAll("[data-sound]")).forEach(r=>{r.addEventListener("click",$p)})},0)}addScrollbarsToPageWhenReady(e){if(this.state.isLoading||this.startingUpSwiper)return;const n=this.getPageAtSwiperIndex(e);if(!n){window.setTimeout(()=>this.addScrollbarsToPageWhenReady(e),50);return}vB(n,Se.handlePointerMoveEvent)}static handlePointerMoveEvent(e){var n;e.pointerType==="mouse"&&((n=e.target)!=null&&n.closest(".nicescroll-cursors"))&&e.stopPropagation()}storeAudioAnalytics(e){e<.001||Number.isNaN(e)||(this.bookInteraction.totalAudioDuration+=e,!this.isXmatterPage()&&(this.bookInteraction.reportedAudioOnCurrentPage||(this.bookInteraction.reportedAudioOnCurrentPage=!0,this.bookInteraction.audioPageShown(Se.currentPageIndex)),this.sendUpdateOfBookProgressReportToExternalContext()))}static storeVideoAnalytics(e){if(e<.001)return;const n=Se.currentPagePlayer;n.bookInteraction.totalVideoDuration+=e,!n.bookInteraction.reportedVideoOnCurrentPage&&!n.isXmatterPage()&&(n.bookInteraction.reportedVideoOnCurrentPage=!0,n.bookInteraction.videoPageShown(Se.currentPageIndex)),n.sendUpdateOfBookProgressReportToExternalContext()}resetForNewPageAndPlay(e){this.props.paused||(this.animation.PlayAnimation(),Ty(e),Se.currentPageHasVideo?(Mn(Ve.VideoPlaying),this.video.HandlePageVisible(e),this.music.pause()):this.playAudioAndAnimation(e))}playAudioAndAnimation(e){if(this.activityManager.getActivityManagesSound()){this.activityManager.doInitialSoundAndAnimation();return}if(Mn(Ve.AudioPlaying),!e)return;const n=AC(e);this.animation.HandlePageDurationAvailable(e,n);const a=()=>{Py(e),Ir.pageHasAnimation(e)&&this.animation.HandlePageBeforeVisible(e),this.animation.HandlePageVisible(e),this.music.HandlePageVisible(e)};if(!this.sentBloomNotification&&(this.sentBloomNotification=!0,this.props.shouldReportSoundLog)){$y("/publish/av/startRecording",this.videoList).then(a);return}a()}getVideoList(e){let n="";for(const r of Array.from(e.getElementsByTagName("video"))){var a=r,i=a.getElementsByTagName("source")[0].getAttribute("src");n&&(n+="|"),n+=i}return n}handlePageClick(e){if(!this.state.ignorePhonyClick&&!this.activityManager.getActivityAbsorbsClicking()&&!e.target.closest(".bloom-videoContainer")){const n=EB(e.nativeEvent,this.bookInfo.bookInstanceId,()=>this.getPageIdFromIndex(this.state.currentSwiperIndex));n?(this.navigate(n.bookUrl,n.pageId),e.stopPropagation(),e.preventDefault()):this.props.onContentClick&&this.props.onContentClick(e)}this.setState({ignorePhonyClick:!1})}}function PB(t){return t.replace("%23","#").replace(/[\u00A0-\u9999<>\&]/gim,e=>"&#"+e.charCodeAt(0)+";")}function AB(t){return t.ownerDocument.evaluate("//div[contains(@class, 'bloom-imageDescription')]/div[contains(@class, 'bloom-editable') and contains(@class, 'bloom-visibility-code-on')]//*[contains(@class, 'audio-sentence') or contains(@class, 'bloom-highlightSegment')]",t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength>0?!0:t.ownerDocument.evaluate("//div[contains(@class, 'bloom-imageDescription')]/div[contains(@class, 'bloom-editable') and contains(@class, 'bloom-visibility-code-on') and @data-audiorecordingmode='TextBox']/p[text()]",t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength>0}var _p={},NB=ya,LB=ba;Object.defineProperty(_p,"__esModule",{value:!0});var jk=_p.default=void 0,zB=LB(Nn()),BB=NB(wa()),DB=(0,BB.default)(zB.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");jk=_p.default=DB;var Fp={},IB=ya,jB=ba;Object.defineProperty(Fp,"__esModule",{value:!0});var Rk=Fp.default=void 0,RB=jB(Nn()),OB=IB(wa()),KB=(0,OB.default)(RB.createElement("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz");Rk=Fp.default=KB;var Vp={},$B=ya,qB=ba;Object.defineProperty(Vp,"__esModule",{value:!0});var Gp=Vp.default=void 0,HB=qB(Nn()),WB=$B(wa()),_B=(0,WB.default)(HB.createElement("path",{d:"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}),"PlayCircleOutline");Gp=Vp.default=_B;var Up={},FB=ya,VB=ba;Object.defineProperty(Up,"__esModule",{value:!0});var Ok=Up.default=void 0,GB=VB(Nn()),UB=FB(wa()),YB=(0,UB.default)(GB.createElement("path",{d:"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"}),"PauseCircleOutline");Ok=Up.default=YB;var Yp={},XB=ya,ZB=ba;Object.defineProperty(Yp,"__esModule",{value:!0});var Kk=Yp.default=void 0,JB=ZB(Nn()),QB=XB(wa()),tD=(0,QB.default)(JB.createElement("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"}),"Language");Kk=Yp.default=tD;var Xp={},eD=ya,nD=ba;Object.defineProperty(Xp,"__esModule",{value:!0});var $k=Xp.default=void 0,aD=nD(Nn()),iD=eD(wa()),rD=(0,iD.default)(aD.createElement("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"}),"Fullscreen");$k=Xp.default=rD;var Zp={},oD=ya,sD=ba;Object.defineProperty(Zp,"__esModule",{value:!0});var qk=Zp.default=void 0,lD=sD(Nn()),uD=oD(wa()),cD=(0,uD.default)(lD.createElement("path",{d:"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"}),"FullscreenExit");qk=Zp.default=cD;function dD(t){return kt.createElement(eh,{...t,width:"21",height:"20",viewBox:"0 0 21 20"},kt.createElement("path",{d:"M20.6181 9.909C20.6181 9.909 17.3581 3.70568 10.2454 3.70568C10.1127 3.70568 9.9821 3.70851 9.8522 3.71275L9.23133 0.590958L8.27889 0.807585L8.87136 3.78574C2.72807 4.50344 0 9.86355 0 9.86355C0 9.86355 0.566707 11.0581 1.77366 12.4165L1.27674 9.91983C1.26639 9.90052 1.26089 9.89016 1.26089 9.89016C1.26089 9.89016 1.45882 9.53343 1.86833 9.01188L2.73952 13.3918C3.09729 13.7179 3.49205 14.0383 3.92423 14.3419L2.68074 8.09074C2.92754 7.84068 3.20826 7.58049 3.52199 7.32171L5.05787 15.0424C5.40441 15.2277 5.77033 15.3993 6.15474 15.5514L4.38901 6.67725C4.6772 6.48487 4.98565 6.29932 5.31568 6.12485L7.26481 15.9206C7.59924 16.0118 7.94578 16.0871 8.30509 16.146L7.56314 12.4167C7.89823 12.8518 8.32205 13.2046 8.80465 13.4464L9.36563 16.2656C9.59813 16.2802 9.83459 16.2891 10.0765 16.2891C10.1734 16.2891 10.2694 16.2873 10.3654 16.2844L9.86541 13.773C10.0112 13.7923 10.1591 13.8033 10.3099 13.8033C10.4957 13.8033 10.6783 13.7883 10.8559 13.7588L11.9801 19.4091L12.9321 19.1924L12.3108 16.0683C17.848 14.9378 20.6181 9.909 20.6181 9.909ZM6.88084 8.9881L6.22651 5.69889C6.53386 5.57339 6.8575 5.45942 7.19546 5.35982L7.6228 7.50844C7.28066 7.93015 7.02351 8.43381 6.88084 8.9881ZM8.46692 6.74577L8.14503 5.12836C8.45547 5.06785 8.77691 5.01958 9.11002 4.9859L9.3773 6.32923C9.05322 6.42294 8.74741 6.56375 8.46692 6.74577ZM10.3467 6.19713L10.0944 4.93033C10.1472 4.92963 10.1998 4.92845 10.2533 4.92845C10.4858 4.92845 10.713 4.93599 10.9365 4.94941C13.2188 5.33628 14.964 7.44981 14.964 9.99965C14.964 12.1188 13.7579 13.9352 12.0406 14.7106L11.7914 13.4565C13.0153 12.8558 13.8654 11.5342 13.8654 9.99942C13.8652 7.91226 12.2936 6.21856 10.3467 6.19713ZM14.5336 14.0984C15.4349 13.0056 15.9823 11.5718 15.9823 9.99942C15.9823 8.35399 15.3821 6.8595 14.405 5.74928C17.7771 7.16772 19.3574 9.92642 19.3574 9.92642C19.3574 9.92642 17.7491 12.6074 14.5336 14.0984Z"}))}const hi="#d65649",fD="#2e2e2e",hD="#febf00",Hk=ps({palette:{primary:{main:fD,contrastText:hi},secondary:{main:hi}}});var Jp={},pD=ya,gD=ba;Object.defineProperty(Jp,"__esModule",{value:!0});var Wk=Jp.default=void 0,mD=gD(Nn()),vD=pD(wa()),yD=(0,vD.default)(mD.createElement("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}),"VolumeUp");Wk=Jp.default=yD;const bD=t=>{const[e,n]=D.useState((t.languages.filter(s=>s.IsSelected)[0]||t.languages[0]).Code),a=s=>{const u=s.target.value;n(u),t.onClose(u)},i=()=>{t.onClose("")},r=()=>{const s=t.languages.map(u=>kt.createElement("div",{className:"chooserItem",key:u.Code},kt.createElement(Hz,{value:u.Code,control:kt.createElement(eB,null),label:u.Name,checked:u.Code===e}),kt.createElement("span",{className:"spacer"}),kt.createElement(Wk,{className:"icon",visibility:u.HasAudio?"inherit":"hidden"})));return kt.createElement("div",{className:"radioGroupDiv"},s)};return kt.createElement(Pz,{className:"languageMenu",onClose:i,"aria-labelledby":"language-menu-title",open:!0,scroll:"paper"},kt.createElement(Dz,{id:"language-menu-title"},"Languages in this book:"),kt.createElement(Kz,{component:"fieldset"},kt.createElement(nB,{className:"radioGroup","aria-label":"languages",name:"languages",value:e,onChange:a},r())),kt.createElement(Lz,null,kt.createElement(iz,{onClick:i,color:"secondary"},"Close")))};var Fo=(t=>(t[t.showArrow=0]="showArrow",t[t.showEllipsis=1]="showEllipsis",t[t.showNothing=2]="showNothing",t))(Fo||{});const wD=t=>{const[e,n]=D.useState(!1),a="button"+(t.bookLanguages.length<2?" disabled":""),i=E=>{n(!1),E!==""&&(t.onLanguageChanged(E),s({lang:E}))},r=()=>{try{document.fullscreenElement!=null||document.webkitFullscreenElement!=null?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullScreen&&document.webkitExitFullScreen():document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen()}catch(E){console.error("RequestFullScreen failed: ",E)}},s=E=>{if(!t.videoPreviewMode)return;const z={lang:t.activeLanguageCode,imageDescriptions:t.readImageDescriptions,...E};$y("publish/av/videoSettings",encodeURIComponent(JSON.stringify(z)))},u=rn.getTranslation("Audio.Pause",t.preferredLanguages,"Pause"),c=t.paused?kt.createElement(Gp,{titleAccess:t.playLabel}):kt.createElement(Ok,{titleAccess:u}),h=rn.getTranslation("Button.ReadImageDescriptions",t.preferredLanguages,"Read Image Descriptions"),g=rn.getTranslation("Button.IgnoreImageDescriptions",t.preferredLanguages,"Ignore Image Descriptions"),k=ps({palette:{primary:{main:hD},secondary:{main:Hk.palette.secondary.main}}}),b=kt.createElement(_l,{theme:k},kt.createElement(dD,{"aria-label":t.readImageDescriptions?"Read image descriptions":"Ignore image descriptions",titleAccess:t.readImageDescriptions?g:h,opacity:t.readImageDescriptions?1:.38,color:t.nowReadingImageDescription?"primary":"secondary"})),M=t.extraButtons?t.extraButtons.map(E=>kt.createElement(Ca,{key:E.id,color:"secondary",title:E.description,onClick:()=>Ia({messageType:E.id})},kt.createElement("img",{style:{maxHeight:"24px",maxWidth:"24px"},src:E.iconUrl}))):void 0;return kt.createElement(UL,{color:"primary",className:`control-bar ${t.visible?", visible":""}`,id:"control-bar",elevation:0,position:"relative"},kt.createElement(hB,null,!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary",onClick:()=>{t.backClicked&&t.backClicked()},"data-testid":"history-back-button",disabled:t.getBackButtonState()===2},t.getBackButtonState()===0?kt.createElement(jk,{"aria-label":"Go Back",titleAccess:rn.getTranslation("Button.Back",t.preferredLanguages,"Back")}):t.getBackButtonState()===1&&kt.createElement(Rk,{"aria-label":"More Menu",titleAccess:rn.getTranslation("Button.More",t.preferredLanguages,"More")})),kt.createElement("div",{className:"filler"}),t.bookHasImageDescriptions&&kt.createElement(Ca,{onClick:()=>{t.onReadImageDescriptionToggled(),s({imageDescriptions:!t.readImageDescriptions})}},b),t.bookLanguages.length>1&&kt.createElement(Ca,{className:a,"aria-label":"Choose Language",color:"secondary",onClick:()=>{n(!0)}},kt.createElement(Kk,{titleAccess:rn.getTranslation("Button.ChooseLanguage",t.preferredLanguages,"Choose Language")})),e&&kt.createElement(bD,{languages:t.bookLanguages,onClose:i}),!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary","aria-label":"PlayPause",onClick:()=>{t.pausedChanged&&t.pausedChanged(!t.paused)}},t.showPlayPause?c:null),M,document.fullscreenEnabled&&t.canShowFullScreen&&!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary",onClick:()=>r()},document.fullscreenElement==null?kt.createElement($k,{"aria-label":"Full Screen",titleAccess:rn.getTranslation("Button.FullScreen",t.preferredLanguages,"Full Screen")}):kt.createElement(qk,{"aria-label":"Exit Full Screen",titleAccess:rn.getTranslation("Button.ExitFullScreen",t.preferredLanguages,"Exit Full Screen")}))))};function _d(t,e){return Math.round(t/e)*e}function kD(t){if(!(!t||t==="cover")){if(/^\d+$/.test(t))return t;try{return t.replace(new RegExp("(?![0-9])\\p{Nd}","gu"),e=>{const n=e.charCodeAt(0);return(n&15)-6*(new RegExp("\\p{Nd}","u").test(String.fromCodePoint(n|15))?1:0)})}catch{return}}}const xD="bloom-player",SD="A library for displaying Bloom books in iframes or WebViews",CD="SIL Global",TD="MIT",ED="2.11.5",MD=!1,PD={type:"git",url:"https://github.com/BloomBooks/bloom-player.git"},AD="module",ND="lib/shared.es.js",LD="lib/index.d.ts",zD={".":{types:"./lib/index.d.ts",import:"./lib/shared.es.js",default:"./lib/shared.es.js"}},BD={"// COMMENTS: make the action a space rather than empty string so `yarn run` can list the scripts":" ","//":" ","// 'yarn dev' will build, watch, start a server, and open the player in a brower":" ","// You can edit index-for-developing.html to point to different books":" ","// Or just use 'yarn storybook' and skip this dev approach entirely":" ",dev:"vite","build:standalone":"vite build","build:sharedlib":"vite build --mode lib",test:"vitest","// blame.ignoreRevsFile - This allows blame to see through commits that are only there to format code.":" ",prepare:"husky install && git config blame.ignoreRevsFile .git-blame-ignore-revs",storybook:"storybook dev -p 6006","// run this when working with stories that use an iframe and bloomplayer.htm instead of the raw react components":" ",watchForStorybook:"yarn vite build --watch --mode development","strings:download":"crowdin download --config src/l10n/crowdin.yml && yarn strings:compile","strings:upload":"crowdin upload --config src/l10n/crowdin.yml","strings:compile":"yarn tsx ./src/l10n/compileL10Strings.ts","strings:sync":"yarn strings:upload && yarn strings:download"},DD={"@material-ui/core":"^4.12.3","@material-ui/icons":"^4.11.2",axios:"^0.18.0","dynamic-import-polyfill":"^0.1.1","jquery.nicescroll":"^3.7.6",react:"^17.0.2","react-dom":"^17.0.2","react-id-swiper":"2.3.2","style-scoped":"^0.2.1",swiper:"^4.5.0"},ID={"@crowdin/cli":"^4.2.0","@storybook/addon-essentials":"8.4.6","@storybook/addon-interactions":"^8.4.6","@storybook/addon-links":"8.4.6","@storybook/blocks":"8.4.6","@storybook/react":"8.4.6","@storybook/react-vite":"8.4.6","@storybook/test":"8.4.6","@types/jquery":"^3.5.5","@types/jquery.nicescroll":"^3.7.1","@types/node":"^22.7.6","@types/react":"^17.0.2","@types/react-dom":"^17.0.2",editorconfig:"^2.0.0",eslint:"^9.12.0","eslint-plugin-storybook":"^0.11.1",husky:"8.0.3",jsdom:"^25.0.1",less:"^4.2.0",prettier:"^3.3.3","semantic-release":"24.1.2",storybook:"8.4.6",tsx:"^4.19.1",typescript:"*",vite:"^5.4.9","vite-plugin-dts":"^4.5.3","vite-plugin-html":"^3.2.2","vite-plugin-static-copy":"^2.0.0",vitest:"^2.1.3"},jD=["dist/*.js","dist/bloomplayer.htm","dist/*.mp3","lib/*.js","lib/*.d.ts","lib/*.js.map","src/shared/event.ts","src/shared/narration.ts","src/shared/dragActivityRuntime.ts","src/shared/scrolling.ts","src/shared/index.ts","dist/*.css","dist/*.tsv"],RD={node:"20.15.1",yarn:"1.22.19"},OD={name:xD,description:SD,author:CD,license:TD,version:ED,private:!1,"// sideeffects might need to be ['*.css'] to avoid 'shaking' our CSS, if we ever get tree shaking working":"",sideEffects:MD,repository:PD,type:AD,module:ND,types:LD,exports:zD,scripts:BD,dependencies:DD,devDependencies:ID,"// The four src/ files are directly exported so BloomDesktop can consume them as shared code.":"",files:jD,volta:RD},KD=()=>{const[t,e]=D.useState(!1),n=OD.version,a=new Date("2025-06-10T20:24:31.370Z").toLocaleDateString();return D.useEffect(()=>{const i=s=>{s.key==="Control"&&e(!0)},r=s=>{s.key==="Control"&&e(!1)};return window.addEventListener("keydown",i),window.addEventListener("keyup",r),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",r)}},[]),t?kt.createElement("div",{className:"version-control",style:{color:hi,fontFamily:"sans-serif",padding:"5px",zIndex:1e3}},"Bloom Player v",n," (built ",a,")"):null};let Fd=!1,ch=t=>{};function $D(t){ch&&ch(t)}let ay=0,iy=0;function ry(){const t=/iPad|iPhone|iPod/.test(navigator.platform);let e,n,a;t&&(e=document.getElementsByClassName("bloomPlayer")[0],n=e.parentElement,a=e.nextSibling,n.removeChild(e));const i=document.documentElement.clientWidth,r=document.documentElement.clientHeight;return t&&n.insertBefore(e,a),{width:i,height:r}}const qD=t=>{const[e,n]=D.useState(t.autoplay),a=t.centerVertically===void 0?!0:t.centerVertically;NT(ht=>{ht.pause?(Fd=!L,j(!0)):ht.resume&&Fd?j(!1):ht.play?(j(!1),ht.autoplay&&n(ht.autoplay)):ht.reset?(h(t.startPage??0),Ge.current&&Ge.current(t.startPage??0)):ht.controlAction&&rt(ht.controlAction)});const[i,r]=D.useState(!1),[s,u]=D.useState(t.initiallyShowAppBar),[c,h]=D.useState(t.startPage??0),[g,k]=D.useState([""]),[b,M]=D.useState(!1),[E,z]=D.useState(!1),[A,x]=D.useState(""),[S,N]=D.useState("Device16x9Portrait");D.useEffect(()=>{u(t.initiallyShowAppBar)},[t.initiallyShowAppBar]),D.useEffect(()=>{s?MT():PT()},[s]),D.useEffect(()=>{j(t.paused)},[t.paused]);const[L,j]=D.useState(t.paused),[f,V]=D.useState(!1),G=rn.getBloomUiLanguage(),W=G==="en"?[G]:[G,"en"],[pt,ft]=D.useState(W);D.useEffect(()=>{L||(Fd=!1)},[L]);const[ot,Z]=D.useState(!1),[$,o]=D.useState(!1),[tt,v]=D.useState(!1),[Q,st]=D.useState(!1),[ut,I]=D.useState(!1),[lt,gt]=D.useState(0),[Tt,Ct]=D.useState(9/16),jt=[],[Wt,Yt]=D.useState(jt),[_t,Te]=D.useState(""),Ge=D.useRef(),[hn,ke]=D.useState(!0),[ve,Ue]=D.useState(!1),[Et,xe]=D.useState(!1),[qn,We]=D.useState(0),C=()=>{We(ht=>ht+1)},[B,_]=D.useState("");D.useEffect(()=>{mt()},[ut,qn,ot,t.useOriginalPageSize]),D.useEffect(()=>()=>{const ht=document.getElementById("scale-style-sheet");ht&&ht.parentNode.removeChild(ht)},[]);const X=D.useRef(),rt=ht=>{switch(ht){case"navigate-to-next-page":X&&X.current&&X.current.slideNext();break;case"navigate-to-previous-page":X&&X.current&&X.current.slidePrevious();break;default:console.log("'handleControlMessage' received an unknown message.");return}},mt=()=>{const ht=document.getElementsByClassName("swiper-slide-active")[0];let zt=null;if(ht&&(zt=ht.getElementsByClassName("bloom-page")[0]),!zt||!ut){window.setTimeout(C,100);return}let qe=document.getElementById("scale-style-sheet");qe||(qe=document.createElement("style"),qe.setAttribute("type","text/css"),qe.setAttribute("id","scale-style-sheet"),document.head.appendChild(qe));let pe=lt,Jt=Tt;const ge=Se.getPageSizeClass(zt);(t.url!==A||ge!==S)&&(x(t.url),N(ge),window.onresize=()=>{const{width:ca,height:$a}=ry();($a!==iy||ca!==ay)&&C()},pe=Math.max(zt.offsetHeight,zt.offsetWidth),Jt=Math.min(zt.offsetHeight,zt.offsetWidth)/pe,Ct(Jt),gt(pe));const{width:St,height:Bt}=ry();ay=St,iy=Bt;const ee=St>Bt;if(ee!==ot){Z(ee);return}let ye=0,ce=0;const Xe=window.getComputedStyle(document.body);Xe&&Xe.marginTop&&(ye=parseInt(Xe.marginTop,10)),Xe&&Xe.marginBottom&&(ce=parseInt(Xe.marginBottom,10));const ue=zt.getAttribute("class").indexOf("Landscape")>=0,ii=ue?pe*Jt:pe,en=ue?pe:pe*Jt;let ua=ye+ce;if(s){const ca=document.getElementById("control-bar");ca&&(ua+=ca.offsetHeight);const $a=document.getElementById("pageNumberControl");$a&&(ua+=$a.offsetHeight)}const Oa=Bt-ua,ri=Ft({pageWidth:en,pageHeight:ii,desiredPageHeight:Oa}),gr=re(en);let Ze=Math.min(ri,gr);const Ne=ii*Ze;let Ka=Ne*Jt/Ze;ue&&(Ka=Ne/Jt/Ze);const Oi=St/Ze-Ka;let Tn="",ka=Math.max((St-en*Ze)/2,0);t.roundMarginToNearestK&&(ka=_d(ka,t.roundMarginToNearestK));const uo=ka,co=Ze,rc=30;if(Oi>100*2)Tn="largeOutsideButtons";else if(Oi>rc*2)Tn="smallOutsideButtons";else if(St>407&&navigator.userAgent.includes("Chrome")&&!t.hideSwiperButtons){const $a=new RegExp(" Chrome/([0-9]+).").exec(navigator.userAgent),mr=parseInt($a[1]);mr&&mr<90&&(Ze*=.9,ka=Math.max((St-en*Ze)/2,0),Tn="smallOutsideButtons extraScalingForChrome85Bug")}Tn!==B&&_(Tn);let fo="";if(a){const ca=(Bt-Ne-ua)/2;ca>0&&(fo=`translate(0, ${ca.toFixed(0)}px) `)}qe.innerText=`.bloomPlayer {
8050
+ `,"").replace("\r","")}const ic=[];function CB(){return ic.length>0}function TB(t){const e=ic.pop();if(e)return{bookUrl:t===e.bookId?void 0:uh(e.bookId),pageId:e.pageId}}function EB(t,e,n){const a=t.target.closest("[href], [data-href]");if(!a)return;t.preventDefault(),t.stopPropagation();const i=(a.getAttribute("href")||a.getAttribute("data-href"))??void 0;if(!i)return;if(i.startsWith("http://")||i.startsWith("https://")){window.open(i,"_blank","noreferrer");return}let r,s;if(i==="back"){const c=ic.pop();return c?{bookUrl:e===c.bookId?void 0:uh(c.bookId),pageId:c.pageId}:void 0}else if(i.startsWith("/book/")){const c=MB(i);r=c.bookId,s=c.pageId,c.bookId===e&&(r=void 0)}else i.startsWith("#")&&(s=i.substring(1));const u=n();if(r)return ny(e,u),{bookUrl:uh(r),pageId:s};if(s)return ny(e,u),{pageId:s}}function ny(t,e,n){ic.push({bookId:t,pageId:e})}function uh(t){return`/book/${t}/index.htm`}function MB(t){try{const e=new URL(t,window.location.origin);if(!e.pathname.startsWith("/book/"))throw new Error("Invalid book URL format");const n=e.pathname.replace("/book/",""),a=e.hash.replace("#","");return{bookId:n,pageId:a}}catch(e){return console.error("Error parsing book URL:",e),{bookId:void 0,pageId:void 0}}}class Se extends D.Component{constructor(e,n){super(e,n),this.activityManager=new $L,this.initialPages=["loading..."],this.initialStyleRules="",this.originalPageClass="Device16x9Portrait",this.bookInfo=new lh,this.bookInteraction=new pB,this.indicesOfPagesWhereWeShouldPreserveDOMState={},this.startingUpSwiper=!0,this.state={pages:this.initialPages,pageIdToIndexMap:{},styleRules:this.initialStyleRules,importedBodyAttributes:{},currentSwiperIndex:0,isLoading:!0,loadFailed:!1,loadErrorHtml:"",ignorePhonyClick:!1,isFinishUpForNewBookComplete:!1,inPauseForced:!1,bookUrl:""},this.isPagesLocalized=!1,this.currentPageHidesNavigationButtons=!1,this.handleDocumentLevelKeyDown=i=>{i.key==="Home"&&(this.goToFirstPage(),i.preventDefault()),i.key==="End"&&(this.goToLastPage(),i.preventDefault())},this.distributionSource="",this.finishUpCalled=!1,this.hasImageDescriptions=!1,this.handlePageVideoComplete=i=>{i.page===Se.currentPage&&this.playAudioAndAnimation(i.page)},this.handlePlayFailed=()=>{this.setState({inPauseForced:!0}),this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!0)},this.handlePlayCompleted=()=>{Mn(Ve.MediaFinished),this.props.imageDescriptionCallback(!1)},this.handleToggleImageDescription=i=>{this.props.imageDescriptionCallback(i)},this.handlePageNarrationComplete=i=>{if(i&&(Mn(Ve.MediaFinished),this.shouldAutoPlay())){const r=this.props.autoplayCount??0,s=this.state.startPageIndex??0,u=this.swiperInstance.slides.length-1;let c=this.props.autoplayCount?Math.min(s+r-1,u):u;this.swiperInstance.activeIndex>=c?(this.music.pause(),this.props.shouldReportSoundLog&&OC(),jC(),CT({})):this.swiperInstance.slideNext()}},this.skipAutoPlay=!1,this.sentBloomNotification=!1;const a=e.url.startsWith("http")?new URL(e.url):new URL(e.url,window.location.origin);a.hash?(this.state.startPageId=a.hash.substring(1),a.hash=""):this.state.startPageIndex=e.startPageIndex,this.state.bookUrl=a.href,Se.currentPagePlayer=this,this.legacyQuestionHandler=new HL(e.locationOfDistFolder)}componentDidMount(){rn.setUp(),window.addEventListener("focus",()=>this.handleWindowFocus()),window.addEventListener("blur",()=>this.handleWindowBlur()),document.addEventListener("keydown",e=>this.handleDocumentLevelKeyDown(e)),document.addEventListener("pointerdown",e=>{(e.target.closest("[href], [data-href]")||e.target.closest(".bloom-videoContainer")&&!e.target.closest("[data-draggable-id]"))&&(e.stopPropagation(),e.preventDefault())},{capture:!0}),document.addEventListener("dragstart",e=>{this.activityManager.getActivityAbsorbsDragging()||e.preventDefault()},{capture:!0}),this.componentDidUpdate(this.props,this.state)}CanGoBack(){return CB()}HandleBackButtonClickedIfHavePlayerHistory(){const e=TB(this.bookInfo.bookInstanceId);return e?(this.navigate(e.bookUrl,e.pageId),!0):!1}navigate(e,n){if(e){const a=new URL(e,this.state.bookUrl);this.setState({bookUrl:a.href,startPageId:n,startPageIndex:void 0})}else if(n!==void 0){const a=this.state.pageIdToIndexMap[n];this.swiperInstance.slideTo(a)}}handleWindowFocus(){const e=localStorage.getItem($l),n=localStorage.getItem(Zg);e&&n==this.sourceUrl&&(this.bookInteraction.beginReadTime=Date.now()-parseInt(e,10))}handleWindowBlur(){const e=Date.now()-this.bookInteraction.beginReadTime;localStorage.setItem($l,e.toString()),localStorage.setItem(Zg,this.sourceUrl)}componentDidUpdate(e,n){var a;try{if(!this.props.url||this.state.loadFailed)return;this.initializeMedia();const i=this.preprocessUrl();if(i&&i!=="/working"&&i!==this.sourceUrl){this.finishUpCalled=!1,this.setState({isLoading:!0,loadFailed:!1}),this.metaDataObject=void 0,this.htmlElement=void 0,this.sourceUrl=i;const r=this.sourceUrl.lastIndexOf("/"),s=this.sourceUrl.lastIndexOf("%2f");let u;r>s?u=this.sourceUrl.substring(r+1,this.sourceUrl.length):u=this.sourceUrl.substring(s+3,this.sourceUrl.length);const c=u.endsWith(".htm"),h=c?this.sourceUrl:this.sourceUrl+"/"+u+".htm";this.urlPrefix=c?this.sourceUrl.substring(0,Math.max(r,s)):this.sourceUrl,this.music.urlPrefix=this.urlPrefix,tC(this.music.urlPrefix);const g=Za.get(this.fullUrl(".distribution")).then(M=>M,M=>({data:""})),k=Za.get(h),b=Za.get(this.fullUrl("meta.json"));Promise.all([k,b,g]).then(M=>{const[E,z,A]=M;this.metaDataObject=z==null?void 0:z.data,this.distributionSource=A.data;const S=new DOMParser().parseFromString(E==null?void 0:E.data,"text/html"),N=S.documentElement,L=N.getElementsByTagName("body")[0];this.bookInfo.setSomeBookInfoFromBody(L),this.localizeOnce(),this.props.shouldReportSoundLog&&(this.videoList=this.getVideoList(S)),this.animation.PlayAnimations=this.bookInfo.playAnimations,this.collectBodyAttributes(L),this.makeNonEditable(L),this.htmlElement=N;const j=N.getElementsByClassName("bloom-page")[0];this.originalPageClass="Device16x9Portrait",j&&(this.originalPageClass=Se.getPageSizeClass(j)),this.legacyQuestionHandler.generateQuizPagesFromLegacyJSON(this.urlPrefix,L,this.originalPageClass,()=>{this.finishUp()})}).catch(M=>this.HandleLoadingError(M))}else if(e.landscape!==this.props.landscape||e.useOriginalPageSize!==this.props.useOriginalPageSize||e.autoplay!==this.props.autoplay){const r=document.getElementsByClassName("bloom-page");for(let s=0;s<r.length;s++){const u=r[s];this.setPageSizeClass(u)}}!this.state.isLoading&&(n.isLoading||e.activeLanguageCode!==this.props.activeLanguageCode)&&(this.updateDivVisibilityByLangCode(n.isLoading),this.updateOverlayPositionsByLangCode(),this.finishUpCalled&&this.finishUp(!1)),this.state.currentSwiperIndex!=n.currentSwiperIndex&&((a=this.rootDiv)==null||a.querySelectorAll(Wp).forEach(r=>{const s=Ls(r).getNiceScroll();s&&s.length>0&&s.remove()})),!this.state.isLoading&&(n.isLoading||e.shouldReadImageDescriptions!==this.props.shouldReadImageDescriptions)&&this.finishUpCalled&&(this.setIndex(this.state.currentSwiperIndex),this.showingPage(this.state.currentSwiperIndex)),this.state.isFinishUpForNewBookComplete&&e.landscape!==this.props.landscape&&(this.setIndex(this.state.currentSwiperIndex),this.showingPage(this.state.currentSwiperIndex)),e.paused!==this.props.paused&&this.handlePausePlay(),this.swiperInstance&&this.swiperInstance.lazy.load()}catch(i){this.setState({isLoading:!1,loadFailed:!0,loadErrorHtml:i.message})}}collectBodyAttributes(e){for(var n={},a=0;a<e.attributes.length;a++)n[e.attributes.item(a).nodeName]=e.attributes.item(a).nodeValue;this.setState({importedBodyAttributes:n})}HandleLoadingError(e){let a=`<p>There was a problem displaying this book: ${e.message}<p>`;(e.config&&e.config.url&&e.config.url.startsWith("file://")||e.message.indexOf("404")>=0)&&(a="<p>This book (or some part of it) was not found.<p>",e.config&&e.config.url&&(a+=`<p class='errorDetails'>${PB(e.config.url)}</p>`)),this.setState({isLoading:!1,loadFailed:!0,loadErrorHtml:a})}async finishUp(e=!0){if(this.finishUpCalled=!0,!this.htmlElement)return;const n=this.htmlElement.getElementsByClassName("bloom-page"),a=[];e&&(this.bookInfo.totalNumberedPages=0,this.bookInfo.questionCount=0,this.activityManager.collectActivityContextForBook(n),this.bookInteraction.clearPagesShown(),this.music.processAllMusicForBook(n));const i=this.bookInfo.getPreferredTranslationLanguages(),r=i[0]===this.props.activeLanguageCode||!this.props.activeLanguageCode,s={},u=h=>h.classList.contains("bloom-interactive-page")||h.classList.contains("simple-comprehension-quiz")||h.getAttribute("data-activity")=="iframe"||h.getElementsByClassName("questions").length>0;s.length=0,s.cover=0;for(let h=0;h<n.length;h++){const g=n[h],k=g.getAttribute("id");k&&(s[k]=h);const b=this.setPageSizeClass(g);g.setAttribute("data-index",h.toString(10)),h===0&&this.props.reportBookProperties&&this.props.reportBookProperties({landscape:b,canRotate:this.bookInfo.canRotate,preferredLanguages:i,pageNumbers:Array.from(n).map(E=>E.getAttribute("data-page-number")??""),isRtl:this.metaDataObject.isRtl,internalUrl:this.state.bookUrl}),e&&(this.fixRelativeUrls(g),g.classList.contains("numberedPage")&&(this.indexOflastNumberedPage=h,this.bookInfo.totalNumberedPages++),(g.getAttribute("data-analyticscategories")||g.getAttribute("data-analyticsCategories"))==="comprehension"&&this.bookInfo.questionCount++),this.showOrHideL1OnlyText(g,r);const M=u(g);M&&this.activityManager.initializePageHtml(this.urlPrefix,g,a.length),(!this.props.skipActivities||!M)&&a.push(g.outerHTML)}if(e){const h=this.htmlElement.getElementsByTagName("head")[0];this.bookInfo.setSomeBookInfoFromHead(h);const g=this.htmlElement.getElementsByTagName("body")[0];if(this.metaDataObject&&(this.bookInfo.setSomeBookInfoFromMetadata(this.metaDataObject,g),this.reportBookOpened(g)),this.props.controlsCallback){const k=fs.createLangDataArrayFromDomAndMetadata(g,this.metaDataObject);this.hasImageDescriptions=AB(g),this.props.controlsCallback(k,this.hasImageDescriptions,b=>{var M;(M=this.swiperInstance)==null||M.slideTo(b)})}}if(e){var c;try{c=await kB(this.htmlElement,this.urlPrefix,this.bookInfo,()=>this.legacyQuestionHandler.getPromiseForAnyQuizCss())}catch(h){this.HandleLoadingError(h),c=""}if(this.startingUpSwiper=!0,this.state.startPageId){if(s[this.state.startPageId]===void 0)throw new Error(`Page ID ${this.state.startPageId} not found in the current pageIdToIndexMap`);this.setState({startPageIndex:s[this.state.startPageId]})}this.setState({pages:a,pageIdToIndexMap:s,styleRules:c,isLoading:!1,currentSwiperIndex:this.state.startPageIndex??0})}else this.setState({pages:a,isLoading:!1});this.props.pageStylesAreNowInstalled(),e?window.setTimeout(()=>{this.setState({isFinishUpForNewBookComplete:!0});const h=this.startingUpSwiper;this.startingUpSwiper=!1;var g=this.state.startPageIndex??0;this.setIndex(g),this.showingPage(g),h&&this.addScrollbarsToPageWhenReady(this.swiperInstance.activeIndex);const k=document.getElementsByClassName("swiper-button-next")[0],b=document.getElementsByClassName("swiper-button-prev")[0];b==null||b.setAttribute("tabindex","4"),k==null||k.setAttribute("tabindex","5"),k==null||k.focus()},500):Se.currentPage&&window.setTimeout(()=>{this.setIndex(Se.currentPageIndex),this.showingPage(Se.currentPageIndex)},200)}showOrHideL1OnlyText(e,n){e.querySelectorAll(".coverBottomBookTopic, .coverBottomLangName").forEach(a=>{n||a.classList.contains("bloom-content1")?a.classList.remove("do-not-display"):a.classList.add("do-not-display")})}localizeOnce(){!this.isPagesLocalized&&this.state.pages!==this.initialPages&&this.state.styleRules!==this.initialStyleRules&&(rn.localizePages(document.body,this.bookInfo.getPreferredTranslationLanguages()),this.isPagesLocalized=!0)}initializeMedia(){this.video||(this.video=new Zi,this.video.PageVideoComplete=new Ur,this.video.PageVideoComplete.subscribe(this.handlePageVideoComplete)),this.animation||(this.animation=new Ir),ta.subscribe(this.handlePageNarrationComplete),Er.subscribe(this.handlePlayFailed),Ua.subscribe(this.handlePlayCompleted),Z1(this.storeAudioAnalytics.bind(this)),Ma.subscribe(this.handleToggleImageDescription.bind(this)),J1(()=>{var e;return(e=this.swiperInstance)==null?void 0:e.animating}),Q1(e=>Ky(e,1)),this.music||(this.music=new KC,this.music.PlayFailed=new Ur,this.music.PlayFailed.subscribe(()=>{this.setState({inPauseForced:!0}),this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!0)}))}preprocessUrl(){let e=this.state.bookUrl;if(e===void 0||e.trim()==="")throw new Error("The url parameter was empty. It should point to the url of a book.");return e.endsWith("/")&&(e=e.substring(0,e.length-1)),e.endsWith("%2f")&&(e=e.substring(0,e.length-3)),e}handlePausePlay(){this.props.paused?this.pauseAllMultimedia():Se.currentPage!==Ey()||yn===Ve.MediaFinished?this.resetForNewPageAndPlay(Se.currentPage):yn===Ve.VideoPaused?this.video.play():(EC(),this.animation.PlayAnimation(),this.music.play())}getAllBloomCanvasElementsOnPage(){var a,i;const e=(a=this.htmlElement)==null?void 0:a.ownerDocument.getElementsByClassName("bloom-canvas");if(e&&e.length>0)return Array.from(e);const n=(i=this.htmlElement)==null?void 0:i.ownerDocument.getElementsByClassName("bloom-imageContainer");return n?Array.from(n).filter(r=>r.parentElement.closest(".bloom-imageContainer")===null):[]}updateOverlayPositionsByLangCode(){if(!(!this.props.activeLanguageCode||!this.htmlElement))try{const e=this.props.activeLanguageCode;this.getAllBloomCanvasElementsOnPage().forEach(n=>{Array.from(n.querySelectorAll(Ns)).forEach(i=>{const r=Array.from(i.getElementsByClassName("bloom-editable")).find(s=>s.getAttribute("lang")===e);if(r){const s=r.getAttribute("data-bubble-alternate");if(s){const u=JSON.parse(s.replace(/`/g,'"'));i.setAttribute("style",u.style)}}});const a=Array.from(n.getElementsByClassName("comical-alternate")).find(i=>i.getAttribute("data-lang")===e);if(a){const i=n.getElementsByClassName("comical-generated")[0];i&&(i.classList.remove("comical-generated"),i.classList.add("comical-alternate"),i.style.display="none"),a.classList.remove("comical-alternate"),a.classList.add("comical-generated"),a.style.removeProperty("display")}})}catch(e){console.error(e)}}updateDivVisibilityByLangCode(e){if(!this.props.activeLanguageCode||!this.htmlElement)return;const a=this.bookInfo.getPreferredTranslationLanguages()[0]===this.props.activeLanguageCode||!this.props.activeLanguageCode,i=this.props.activeLanguageCode,r=this.htmlElement.ownerDocument.evaluate(".//div[contains(@class, 'bloom-translationGroup')]",this.htmlElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null),s="bloom-visibility-code-on";for(let u=0;u<r.snapshotLength;u++){const c=r.snapshotItem(u),h=c.getAttribute("data-default-languages"),g=h?h.split(/,| /):[],k=g==null||g.length===0||!g[0]||g.includes("V")||g.includes("L1")||Se.areStringsEqualInvariantCultureIgnoreCase(g[0],"auto"),b=c.childNodes;for(let M=0;M<b.length;M++){const E=b.item(M);!E||!E.classList||!E.classList.contains("bloom-editable")||(e&&E.setAttribute("data-original-class",E.getAttribute("class")||""),a?E.setAttribute("class",E.getAttribute("data-original-class")||""):k&&(E.getAttribute("lang")===i?(E.classList.add(s),Array.from(E.classList).forEach(A=>{A.startsWith("bloom-content")&&E.classList.remove(A)}),E.classList.add("bloom-content1"),E.classList.add("bloom-contentFirst")):E.classList.remove(s)))}}}static areStringsEqualInvariantCultureIgnoreCase(e,n){return e.localeCompare(n,"en-US",{sensitivity:"accent"})===0}static isDivInL2(e){return e.classList.contains("bloom-contentNational1")}static isDivInL3(e){return e.classList.contains("bloom-contentNational2")}componentWillUnmount(){this.pauseAllMultimedia(),document.removeEventListener("keydown",e=>this.handleDocumentLevelKeyDown(e)),this.unsubscribeAllEvents()}unsubscribeAllEvents(){this.video.PageVideoComplete.unsubscribe(this.handlePageVideoComplete),ta.unsubscribe(this.handlePageNarrationComplete),Er.unsubscribe(this.handlePlayFailed),Ua.unsubscribe(this.handlePlayCompleted),Ma.unsubscribe(this.handleToggleImageDescription)}pauseAllMultimedia(){yn===Ve.VideoPlaying?this.video.pause():yn===Ve.AudioPlaying&&(MC(),this.animation.PauseAnimation()),this.music.pause()}reportBookOpened(e){const n=this.bookInfo.getAmbientAnalyticsProps();this.distributionSource&&(n.distributionSource=this.distributionSource),xT(n),Hy("BookOrShelf opened",{})}sendUpdateOfBookProgressReportToExternalContext(){const e=this.bookInteraction.getProgressReportPropertiesForAnalytics();TT("Pages Read",e)}makeNonEditable(e){const n=e.ownerDocument.evaluate(".//*[@contenteditable]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let a=0;a<n.snapshotLength;a++)n.snapshotItem(a).removeAttribute("contenteditable")}setPageSizeClass(e){return Se.setPageSizeClass(e,this.bookInfo.canRotate,this.props.landscape,this.props.useOriginalPageSize||this.bookInfo.hasFeature("comic"),this.originalPageClass)}static getPageSizeClass(e){const a=(e.getAttribute("class")||"").match(/\b\S*?(Portrait|Landscape)\b/);return a&&a.length?a[0]:""}static setPageSizeClass(e,n,a,i,r){let s=!1;const u=this.getPageSizeClass(e);if(u){s=n?a:u.endsWith("Landscape");let c="";i?c=s?r.replace("Portrait","Landscape"):r.replace("Landscape","Portrait"):c=s?"Device16x9Landscape":"Device16x9Portrait",u!==c&&(e.classList.remove(u),e.classList.add(c))}return s}goToFirstPage(){this.swiperInstance.slideTo(0)}goToLastPage(){this.swiperInstance.slideTo(99999)}fixRelativeUrls(e){const n=e.ownerDocument.evaluate(".//*[@src]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let r=0;r<n.snapshotLength;r++){const s=n.snapshotItem(r);if(!s)continue;const u=s.getAttribute("src"),c=this.fullUrl(u);s.setAttribute("src",c)}const a=e.ownerDocument.evaluate(".//*[@style]",e,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null),i=new RegExp(/background-image:url\(['"](.*)['"]\)/);for(let r=0;r<a.snapshotLength;r++){const s=a.snapshotItem(r);if(!s)continue;const u=s.getAttribute("style")||"",c=i.exec(u);if(!c)continue;const h=this.fullUrl(c[1]),g=u.replace(i,"");s.setAttribute("style",g),s.setAttribute("data-background",h),s.classList.add("swiper-lazy")}}fullUrl(e){return this.urlPrefix+"/"+e}getRootDiv(){return this.rootDiv}slideNext(){this.swiperInstance&&this.swiperInstance.slideNext()}slidePrevious(){this.swiperInstance&&this.swiperInstance.slidePrev()}getPlayerOptionsForPage(e){if(!e)return;let n=e.getAttribute("data-player-options");if(n)try{return n=n.replace(/'/g,'"'),JSON.parse(n)}catch(a){console.log("getPlayerOptionsForPage failed to parse json: "+n+" with error "+a.message);return}}render(){var i;const e=this.activityManager.getActivityAbsorbsDragging();if(this.state.isLoading)return D.createElement(cz,{className:"loadingSpinner",color:"secondary"});if(this.state.loadFailed)return D.createElement(D.Fragment,null,D.createElement(ik,{className:"loadFailedIcon",color:"secondary"}),D.createElement("div",{className:"loadErrorMessage",dangerouslySetInnerHTML:{__html:this.state.loadErrorHtml}}));oC(this.props.shouldReadImageDescriptions&&this.hasImageDescriptions);const n={getSwiper:r=>{var s,u;this.swiperInstance=r,(s=this.metaDataObject)!=null&&s.isRtl&&this.swiperInstance&&((u=this.swiperInstance.el)==null||u.setAttribute("dir","rtl"),this.swiperInstance.rtl=!0,this.swiperInstance.rtlTranslate=!0)},simulateTouch:!0,touchStartPreventDefault:!1,on:{slideChange:()=>{this.state.inPauseForced&&this.props.setForcedPausedCallback&&this.props.setForcedPausedCallback(!1),this.setState({inPauseForced:!1}),this.startingUpSwiper||this.showingPage(this.swiperInstance.activeIndex)},slideChangeTransitionStart:()=>{this.startingUpSwiper||this.setIndex(this.swiperInstance.activeIndex)},slideChangeTransitionEnd:()=>{this.addScrollbarsToPageWhenReady(this.swiperInstance.activeIndex)}},keyboard:{enabled:!0,onlyInViewport:!1},preloadImages:!1,lazy:{loadPrevNext:!0,loadOnTransitionStart:!0,loadPrevNextAmount:2},shouldSwiperUpdate:!0};this.startingUpSwiper&&(n.activeSlideKey=(i=this.state.startPageIndex)==null?void 0:i.toString());let a="bloomPlayer";return this.currentPageHidesNavigationButtons?a+=" hideNextPrevButtons extraScalingForChrome85Bug":(this.props.outsideButtonPageClass&&(a+=" "+this.props.outsideButtonPageClass),e&&(a+=" showNavigationButtonsEvenOnTouchDevices")),D.createElement("div",{"aria-label":"Player Content",className:a+(this.props.extraClassNames?" "+this.props.extraClassNames:""),ref:r=>this.rootDiv=r},D.createElement(V1,{key:this.shouldAutoPlay()?"fade":"slide",...n,effect:this.shouldAutoPlay()?"fade":"slide"},this.state.pages.map((r,s)=>{const c=Math.abs(s-this.state.currentSwiperIndex)<2||this.indicesOfPagesWhereWeShouldPreserveDOMState[s];return D.createElement("div",{key:s,className:"page-preview-slide",onClick:h=>this.handlePageClick(h)},c?D.createElement(D.Fragment,null,D.createElement("style",{scoped:!0},this.state.styleRules),D.createElement("div",{...this.state.importedBodyAttributes,className:`bloomPlayer-page ${this.bookInfo.hasAppearanceSystem?"appearance-system":""} ${this.state.importedBodyAttributes.class??""}`,dangerouslySetInnerHTML:{__html:r}})):"")})),D.createElement("div",{className:"swiper-button-prev "+(this.metaDataObject.isRtl?"swiper-button-right":"swiper-button-left")+(this.props.hideSwiperButtons||this.state.currentSwiperIndex===0?" swiper-button-disabled":""),onClick:()=>this.slidePrevious(),onTouchStart:r=>{this.setState({ignorePhonyClick:!0})}},D.createElement(Ca,{className:"nav-button",disableRipple:!0},this.metaDataObject.isRtl?D.createElement(ah,{titleAccess:rn.getTranslation("Button.Prev",this.props.preferredUiLanguages,"Previous Page")}):D.createElement(nh,{titleAccess:rn.getTranslation("Button.Prev",this.props.preferredUiLanguages,"Previous Page")}))),D.createElement("div",{className:"swiper-button-next "+(this.metaDataObject.isRtl?"swiper-button-left":"swiper-button-right")+(this.props.hideSwiperButtons||this.state.currentSwiperIndex>=this.state.pages.length-1?" swiper-button-disabled":""),onClick:()=>this.slideNext(),onTouchStart:r=>{this.setState({ignorePhonyClick:!0})}},D.createElement(Ca,{className:"nav-button",disableRipple:!0},this.metaDataObject.isRtl?D.createElement(nh,{titleAccess:rn.getTranslation("Button.Next",this.props.preferredUiLanguages,"Next Page")}):D.createElement(ah,{titleAccess:rn.getTranslation("Button.Next",this.props.preferredUiLanguages,"Next Page")}))))}shouldAutoPlay(){var e=this.bookInfo.autoAdvance&&this.props.landscape;return this.props.autoplay==="yes"?e=!0:this.props.autoplay==="no"&&(e=!1),e&&!this.skipAutoPlay}setIndex(e){if(this.state.isLoading||this.startingUpSwiper)return;this.setState({currentSwiperIndex:e});const n=this.getPageAtSwiperIndex(e);n&&(this.setPageSizeClass(n),this.animation.HandlePageBeforeVisible(n),this.video.hidingPage(),this.video.HandlePageBeforeVisible(n),NC(),this.music.hidingPage(),yn===Ve.AudioPaused||yn===Ve.VideoPaused?Mn(Ve.NewPageMediaPaused):(this.skipAutoPlay=!0,yC(),this.skipAutoPlay=!1,Mn(Ve.NewPage)))}getPageAtSwiperIndex(e){if(this.swiperInstance==null)return null;const n=this.swiperInstance.slides[e];return n?n.getElementsByClassName("bloom-page")[0]:null}getPageIdFromIndex(e){const n=this.getPageAtSwiperIndex(e);if(!n)throw new Error("No bloomPage at index "+e);return n.getAttribute("id")}static getCurrentPage(){return Se.currentPage}isXmatterPage(){const e=Se.currentPage;if(!e)return!0;const n=e.getAttribute("class");return!n||n.indexOf("bloom-page")<0||n.indexOf("bloom-backMatter")>=0||n.indexOf("bloom-frontMatter")>=0?!0:e.hasAttribute("data-xmatter-page")}showingPage(e){if(this.state.isLoading||this.startingUpSwiper)return;this.props.pageChanged&&this.props.pageChanged(e);const n=this.getPageAtSwiperIndex(e);if(!n){window.setTimeout(()=>this.showingPage(e),50);return}const a=this.getPlayerOptionsForPage(n);this.currentPageHidesNavigationButtons=!!(a&&a.hideNavigation),this.props.hidingNavigationButtonsCallback&&this.props.hidingNavigationButtonsCallback(this.currentPageHidesNavigationButtons),this.activityManager.showingPage(e,n)&&(this.indicesOfPagesWhereWeShouldPreserveDOMState[e]=!0),window.setTimeout(()=>{Se.currentPage=n,Se.currentPageIndex=e,Se.currentPageHasVideo=Zi.pageHasVideo(n),this.setPageSizeClass(n),this.props.paused||this.resetForNewPageAndPlay(n),this.isXmatterPage()||(this.bookInteraction.pageShown(e),e===this.indexOflastNumberedPage&&(this.bookInteraction.lastNumberedPageWasRead=!0)),this.props.reportPageProperties&&this.props.reportPageProperties({hasAudio:TC(n),hasMusic:this.music.pageHasMusic(n),hasVideo:Se.currentPageHasVideo}),this.bookInteraction.reportedAudioOnCurrentPage=!1,this.bookInteraction.reportedVideoOnCurrentPage=!1,this.sendUpdateOfBookProgressReportToExternalContext(),this.swiperInstance.params.noSwiping=this.activityManager.getActivityAbsorbsDragging(),this.swiperInstance.params.touchRatio=this.activityManager.getActivityAbsorbsDragging()?0:1,this.activityManager.getActivityAbsorbsTyping()?this.swiperInstance.keyboard.disable():this.swiperInstance.keyboard.enable(),Array.from(n.querySelectorAll("[data-sound]")).forEach(r=>{r.addEventListener("click",$p)})},0)}addScrollbarsToPageWhenReady(e){if(this.state.isLoading||this.startingUpSwiper)return;const n=this.getPageAtSwiperIndex(e);if(!n){window.setTimeout(()=>this.addScrollbarsToPageWhenReady(e),50);return}vB(n,Se.handlePointerMoveEvent)}static handlePointerMoveEvent(e){var n;e.pointerType==="mouse"&&((n=e.target)!=null&&n.closest(".nicescroll-cursors"))&&e.stopPropagation()}storeAudioAnalytics(e){e<.001||Number.isNaN(e)||(this.bookInteraction.totalAudioDuration+=e,!this.isXmatterPage()&&(this.bookInteraction.reportedAudioOnCurrentPage||(this.bookInteraction.reportedAudioOnCurrentPage=!0,this.bookInteraction.audioPageShown(Se.currentPageIndex)),this.sendUpdateOfBookProgressReportToExternalContext()))}static storeVideoAnalytics(e){if(e<.001)return;const n=Se.currentPagePlayer;n.bookInteraction.totalVideoDuration+=e,!n.bookInteraction.reportedVideoOnCurrentPage&&!n.isXmatterPage()&&(n.bookInteraction.reportedVideoOnCurrentPage=!0,n.bookInteraction.videoPageShown(Se.currentPageIndex)),n.sendUpdateOfBookProgressReportToExternalContext()}resetForNewPageAndPlay(e){this.props.paused||(this.animation.PlayAnimation(),Ty(e),Se.currentPageHasVideo?(Mn(Ve.VideoPlaying),this.video.HandlePageVisible(e),this.music.pause()):this.playAudioAndAnimation(e))}playAudioAndAnimation(e){if(this.activityManager.getActivityManagesSound()){this.activityManager.doInitialSoundAndAnimation();return}if(Mn(Ve.AudioPlaying),!e)return;const n=AC(e);this.animation.HandlePageDurationAvailable(e,n);const a=()=>{Py(e),Ir.pageHasAnimation(e)&&this.animation.HandlePageBeforeVisible(e),this.animation.HandlePageVisible(e),this.music.HandlePageVisible(e)};if(!this.sentBloomNotification&&(this.sentBloomNotification=!0,this.props.shouldReportSoundLog)){$y("/publish/av/startRecording",this.videoList).then(a);return}a()}getVideoList(e){let n="";for(const r of Array.from(e.getElementsByTagName("video"))){var a=r,i=a.getElementsByTagName("source")[0].getAttribute("src");n&&(n+="|"),n+=i}return n}handlePageClick(e){if(!this.state.ignorePhonyClick&&!this.activityManager.getActivityAbsorbsClicking()&&!e.target.closest(".bloom-videoContainer")){const n=EB(e.nativeEvent,this.bookInfo.bookInstanceId,()=>this.getPageIdFromIndex(this.state.currentSwiperIndex));n?(this.navigate(n.bookUrl,n.pageId),e.stopPropagation(),e.preventDefault()):this.props.onContentClick&&this.props.onContentClick(e)}this.setState({ignorePhonyClick:!1})}}function PB(t){return t.replace("%23","#").replace(/[\u00A0-\u9999<>\&]/gim,e=>"&#"+e.charCodeAt(0)+";")}function AB(t){return t.ownerDocument.evaluate("//div[contains(@class, 'bloom-imageDescription')]/div[contains(@class, 'bloom-editable') and contains(@class, 'bloom-visibility-code-on')]//*[contains(@class, 'audio-sentence') or contains(@class, 'bloom-highlightSegment')]",t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength>0?!0:t.ownerDocument.evaluate("//div[contains(@class, 'bloom-imageDescription')]/div[contains(@class, 'bloom-editable') and contains(@class, 'bloom-visibility-code-on') and @data-audiorecordingmode='TextBox']/p[text()]",t,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength>0}var _p={},NB=ya,LB=ba;Object.defineProperty(_p,"__esModule",{value:!0});var jk=_p.default=void 0,zB=LB(Nn()),BB=NB(wa()),DB=(0,BB.default)(zB.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");jk=_p.default=DB;var Fp={},IB=ya,jB=ba;Object.defineProperty(Fp,"__esModule",{value:!0});var Rk=Fp.default=void 0,RB=jB(Nn()),OB=IB(wa()),KB=(0,OB.default)(RB.createElement("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz");Rk=Fp.default=KB;var Vp={},$B=ya,qB=ba;Object.defineProperty(Vp,"__esModule",{value:!0});var Gp=Vp.default=void 0,HB=qB(Nn()),WB=$B(wa()),_B=(0,WB.default)(HB.createElement("path",{d:"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}),"PlayCircleOutline");Gp=Vp.default=_B;var Up={},FB=ya,VB=ba;Object.defineProperty(Up,"__esModule",{value:!0});var Ok=Up.default=void 0,GB=VB(Nn()),UB=FB(wa()),YB=(0,UB.default)(GB.createElement("path",{d:"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z"}),"PauseCircleOutline");Ok=Up.default=YB;var Yp={},XB=ya,ZB=ba;Object.defineProperty(Yp,"__esModule",{value:!0});var Kk=Yp.default=void 0,JB=ZB(Nn()),QB=XB(wa()),tD=(0,QB.default)(JB.createElement("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"}),"Language");Kk=Yp.default=tD;var Xp={},eD=ya,nD=ba;Object.defineProperty(Xp,"__esModule",{value:!0});var $k=Xp.default=void 0,aD=nD(Nn()),iD=eD(wa()),rD=(0,iD.default)(aD.createElement("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"}),"Fullscreen");$k=Xp.default=rD;var Zp={},oD=ya,sD=ba;Object.defineProperty(Zp,"__esModule",{value:!0});var qk=Zp.default=void 0,lD=sD(Nn()),uD=oD(wa()),cD=(0,uD.default)(lD.createElement("path",{d:"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"}),"FullscreenExit");qk=Zp.default=cD;function dD(t){return kt.createElement(eh,{...t,width:"21",height:"20",viewBox:"0 0 21 20"},kt.createElement("path",{d:"M20.6181 9.909C20.6181 9.909 17.3581 3.70568 10.2454 3.70568C10.1127 3.70568 9.9821 3.70851 9.8522 3.71275L9.23133 0.590958L8.27889 0.807585L8.87136 3.78574C2.72807 4.50344 0 9.86355 0 9.86355C0 9.86355 0.566707 11.0581 1.77366 12.4165L1.27674 9.91983C1.26639 9.90052 1.26089 9.89016 1.26089 9.89016C1.26089 9.89016 1.45882 9.53343 1.86833 9.01188L2.73952 13.3918C3.09729 13.7179 3.49205 14.0383 3.92423 14.3419L2.68074 8.09074C2.92754 7.84068 3.20826 7.58049 3.52199 7.32171L5.05787 15.0424C5.40441 15.2277 5.77033 15.3993 6.15474 15.5514L4.38901 6.67725C4.6772 6.48487 4.98565 6.29932 5.31568 6.12485L7.26481 15.9206C7.59924 16.0118 7.94578 16.0871 8.30509 16.146L7.56314 12.4167C7.89823 12.8518 8.32205 13.2046 8.80465 13.4464L9.36563 16.2656C9.59813 16.2802 9.83459 16.2891 10.0765 16.2891C10.1734 16.2891 10.2694 16.2873 10.3654 16.2844L9.86541 13.773C10.0112 13.7923 10.1591 13.8033 10.3099 13.8033C10.4957 13.8033 10.6783 13.7883 10.8559 13.7588L11.9801 19.4091L12.9321 19.1924L12.3108 16.0683C17.848 14.9378 20.6181 9.909 20.6181 9.909ZM6.88084 8.9881L6.22651 5.69889C6.53386 5.57339 6.8575 5.45942 7.19546 5.35982L7.6228 7.50844C7.28066 7.93015 7.02351 8.43381 6.88084 8.9881ZM8.46692 6.74577L8.14503 5.12836C8.45547 5.06785 8.77691 5.01958 9.11002 4.9859L9.3773 6.32923C9.05322 6.42294 8.74741 6.56375 8.46692 6.74577ZM10.3467 6.19713L10.0944 4.93033C10.1472 4.92963 10.1998 4.92845 10.2533 4.92845C10.4858 4.92845 10.713 4.93599 10.9365 4.94941C13.2188 5.33628 14.964 7.44981 14.964 9.99965C14.964 12.1188 13.7579 13.9352 12.0406 14.7106L11.7914 13.4565C13.0153 12.8558 13.8654 11.5342 13.8654 9.99942C13.8652 7.91226 12.2936 6.21856 10.3467 6.19713ZM14.5336 14.0984C15.4349 13.0056 15.9823 11.5718 15.9823 9.99942C15.9823 8.35399 15.3821 6.8595 14.405 5.74928C17.7771 7.16772 19.3574 9.92642 19.3574 9.92642C19.3574 9.92642 17.7491 12.6074 14.5336 14.0984Z"}))}const hi="#d65649",fD="#2e2e2e",hD="#febf00",Hk=ps({palette:{primary:{main:fD,contrastText:hi},secondary:{main:hi}}});var Jp={},pD=ya,gD=ba;Object.defineProperty(Jp,"__esModule",{value:!0});var Wk=Jp.default=void 0,mD=gD(Nn()),vD=pD(wa()),yD=(0,vD.default)(mD.createElement("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}),"VolumeUp");Wk=Jp.default=yD;const bD=t=>{const[e,n]=D.useState((t.languages.filter(s=>s.IsSelected)[0]||t.languages[0]).Code),a=s=>{const u=s.target.value;n(u),t.onClose(u)},i=()=>{t.onClose("")},r=()=>{const s=t.languages.map(u=>kt.createElement("div",{className:"chooserItem",key:u.Code},kt.createElement(Hz,{value:u.Code,control:kt.createElement(eB,null),label:u.Name,checked:u.Code===e}),kt.createElement("span",{className:"spacer"}),kt.createElement(Wk,{className:"icon",visibility:u.HasAudio?"inherit":"hidden"})));return kt.createElement("div",{className:"radioGroupDiv"},s)};return kt.createElement(Pz,{className:"languageMenu",onClose:i,"aria-labelledby":"language-menu-title",open:!0,scroll:"paper"},kt.createElement(Dz,{id:"language-menu-title"},"Languages in this book:"),kt.createElement(Kz,{component:"fieldset"},kt.createElement(nB,{className:"radioGroup","aria-label":"languages",name:"languages",value:e,onChange:a},r())),kt.createElement(Lz,null,kt.createElement(iz,{onClick:i,color:"secondary"},"Close")))};var Fo=(t=>(t[t.showArrow=0]="showArrow",t[t.showEllipsis=1]="showEllipsis",t[t.showNothing=2]="showNothing",t))(Fo||{});const wD=t=>{const[e,n]=D.useState(!1),a="button"+(t.bookLanguages.length<2?" disabled":""),i=E=>{n(!1),E!==""&&(t.onLanguageChanged(E),s({lang:E}))},r=()=>{try{document.fullscreenElement!=null||document.webkitFullscreenElement!=null?document.exitFullscreen?document.exitFullscreen():document.webkitExitFullScreen&&document.webkitExitFullScreen():document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen()}catch(E){console.error("RequestFullScreen failed: ",E)}},s=E=>{if(!t.videoPreviewMode)return;const z={lang:t.activeLanguageCode,imageDescriptions:t.readImageDescriptions,...E};$y("publish/av/videoSettings",encodeURIComponent(JSON.stringify(z)))},u=rn.getTranslation("Audio.Pause",t.preferredLanguages,"Pause"),c=t.paused?kt.createElement(Gp,{titleAccess:t.playLabel}):kt.createElement(Ok,{titleAccess:u}),h=rn.getTranslation("Button.ReadImageDescriptions",t.preferredLanguages,"Read Image Descriptions"),g=rn.getTranslation("Button.IgnoreImageDescriptions",t.preferredLanguages,"Ignore Image Descriptions"),k=ps({palette:{primary:{main:hD},secondary:{main:Hk.palette.secondary.main}}}),b=kt.createElement(_l,{theme:k},kt.createElement(dD,{"aria-label":t.readImageDescriptions?"Read image descriptions":"Ignore image descriptions",titleAccess:t.readImageDescriptions?g:h,opacity:t.readImageDescriptions?1:.38,color:t.nowReadingImageDescription?"primary":"secondary"})),M=t.extraButtons?t.extraButtons.map(E=>kt.createElement(Ca,{key:E.id,color:"secondary",title:E.description,onClick:()=>Ia({messageType:E.id})},kt.createElement("img",{style:{maxHeight:"24px",maxWidth:"24px"},src:E.iconUrl}))):void 0;return kt.createElement(UL,{color:"primary",className:`control-bar ${t.visible?", visible":""}`,id:"control-bar",elevation:0,position:"relative"},kt.createElement(hB,null,!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary",onClick:()=>{t.backClicked&&t.backClicked()},"data-testid":"history-back-button",disabled:t.getBackButtonState()===2},t.getBackButtonState()===0?kt.createElement(jk,{"aria-label":"Go Back",titleAccess:rn.getTranslation("Button.Back",t.preferredLanguages,"Back")}):t.getBackButtonState()===1&&kt.createElement(Rk,{"aria-label":"More Menu",titleAccess:rn.getTranslation("Button.More",t.preferredLanguages,"More")})),kt.createElement("div",{className:"filler"}),t.bookHasImageDescriptions&&kt.createElement(Ca,{onClick:()=>{t.onReadImageDescriptionToggled(),s({imageDescriptions:!t.readImageDescriptions})}},b),t.bookLanguages.length>1&&kt.createElement(Ca,{className:a,"aria-label":"Choose Language",color:"secondary",onClick:()=>{n(!0)}},kt.createElement(Kk,{titleAccess:rn.getTranslation("Button.ChooseLanguage",t.preferredLanguages,"Choose Language")})),e&&kt.createElement(bD,{languages:t.bookLanguages,onClose:i}),!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary","aria-label":"PlayPause",onClick:()=>{t.pausedChanged&&t.pausedChanged(!t.paused)}},t.showPlayPause?c:null),M,document.fullscreenEnabled&&t.canShowFullScreen&&!t.videoPreviewMode&&kt.createElement(Ca,{color:"secondary",onClick:()=>r()},document.fullscreenElement==null?kt.createElement($k,{"aria-label":"Full Screen",titleAccess:rn.getTranslation("Button.FullScreen",t.preferredLanguages,"Full Screen")}):kt.createElement(qk,{"aria-label":"Exit Full Screen",titleAccess:rn.getTranslation("Button.ExitFullScreen",t.preferredLanguages,"Exit Full Screen")}))))};function _d(t,e){return Math.round(t/e)*e}function kD(t){if(!(!t||t==="cover")){if(/^\d+$/.test(t))return t;try{return t.replace(new RegExp("(?![0-9])\\p{Nd}","gu"),e=>{const n=e.charCodeAt(0);return(n&15)-6*(new RegExp("\\p{Nd}","u").test(String.fromCodePoint(n|15))?1:0)})}catch{return}}}const xD="bloom-player",SD="A library for displaying Bloom books in iframes or WebViews",CD="SIL Global",TD="MIT",ED="2.11.6",MD=!1,PD={type:"git",url:"https://github.com/BloomBooks/bloom-player.git"},AD="module",ND="lib/shared.es.js",LD="lib/index.d.ts",zD={".":{types:"./lib/index.d.ts",import:"./lib/shared.es.js",default:"./lib/shared.es.js"}},BD={"// COMMENTS: make the action a space rather than empty string so `yarn run` can list the scripts":" ","//":" ","// 'yarn dev' will build, watch, start a server, and open the player in a brower":" ","// You can edit index-for-developing.html to point to different books":" ","// Or just use 'yarn storybook' and skip this dev approach entirely":" ",dev:"vite","build:standalone":"vite build","build:sharedlib":"vite build --mode lib",test:"vitest","// blame.ignoreRevsFile - This allows blame to see through commits that are only there to format code.":" ",prepare:"husky install && git config blame.ignoreRevsFile .git-blame-ignore-revs",storybook:"storybook dev -p 6006","// run this when working with stories that use an iframe and bloomplayer.htm instead of the raw react components":" ",watchForStorybook:"yarn vite build --watch --mode development","strings:download":"crowdin download --config src/l10n/crowdin.yml && yarn strings:compile","strings:upload":"crowdin upload --config src/l10n/crowdin.yml","strings:compile":"yarn tsx ./src/l10n/compileL10Strings.ts","strings:sync":"yarn strings:upload && yarn strings:download"},DD={"@material-ui/core":"^4.12.3","@material-ui/icons":"^4.11.2",axios:"^0.18.0","dynamic-import-polyfill":"^0.1.1","jquery.nicescroll":"^3.7.6",react:"^17.0.2","react-dom":"^17.0.2","react-id-swiper":"2.3.2","style-scoped":"^0.2.1",swiper:"^4.5.0"},ID={"@crowdin/cli":"^4.2.0","@storybook/addon-essentials":"8.4.6","@storybook/addon-interactions":"^8.4.6","@storybook/addon-links":"8.4.6","@storybook/blocks":"8.4.6","@storybook/react":"8.4.6","@storybook/react-vite":"8.4.6","@storybook/test":"8.4.6","@types/jquery":"^3.5.5","@types/jquery.nicescroll":"^3.7.1","@types/node":"^22.7.6","@types/react":"^17.0.2","@types/react-dom":"^17.0.2",editorconfig:"^2.0.0",eslint:"^9.12.0","eslint-plugin-storybook":"^0.11.1",husky:"8.0.3",jsdom:"^25.0.1",less:"^4.2.0",prettier:"^3.3.3","semantic-release":"24.1.2",storybook:"8.4.6",tsx:"^4.19.1",typescript:"*",vite:"^5.4.9","vite-plugin-dts":"^4.5.3","vite-plugin-html":"^3.2.2","vite-plugin-static-copy":"^2.0.0",vitest:"^2.1.3"},jD=["dist/*.js","dist/bloomplayer.htm","dist/*.mp3","lib/*.js","lib/*.d.ts","lib/*.js.map","src/shared/event.ts","src/shared/narration.ts","src/shared/dragActivityRuntime.ts","src/shared/scrolling.ts","src/shared/index.ts","dist/*.css","dist/*.tsv"],RD={node:"20.15.1",yarn:"1.22.19"},OD={name:xD,description:SD,author:CD,license:TD,version:ED,private:!1,"// sideeffects might need to be ['*.css'] to avoid 'shaking' our CSS, if we ever get tree shaking working":"",sideEffects:MD,repository:PD,type:AD,module:ND,types:LD,exports:zD,scripts:BD,dependencies:DD,devDependencies:ID,"// The four src/ files are directly exported so BloomDesktop can consume them as shared code.":"",files:jD,volta:RD},KD=()=>{const[t,e]=D.useState(!1),n=OD.version,a=new Date("2025-06-11T21:58:53.507Z").toLocaleDateString();return D.useEffect(()=>{const i=s=>{s.key==="Control"&&e(!0)},r=s=>{s.key==="Control"&&e(!1)};return window.addEventListener("keydown",i),window.addEventListener("keyup",r),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",r)}},[]),t?kt.createElement("div",{className:"version-control",style:{color:hi,fontFamily:"sans-serif",padding:"5px",zIndex:1e3}},"Bloom Player v",n," (built ",a,")"):null};let Fd=!1,ch=t=>{};function $D(t){ch&&ch(t)}let ay=0,iy=0;function ry(){const t=/iPad|iPhone|iPod/.test(navigator.platform);let e,n,a;t&&(e=document.getElementsByClassName("bloomPlayer")[0],n=e.parentElement,a=e.nextSibling,n.removeChild(e));const i=document.documentElement.clientWidth,r=document.documentElement.clientHeight;return t&&n.insertBefore(e,a),{width:i,height:r}}const qD=t=>{const[e,n]=D.useState(t.autoplay),a=t.centerVertically===void 0?!0:t.centerVertically;NT(ht=>{ht.pause?(Fd=!L,j(!0)):ht.resume&&Fd?j(!1):ht.play?(j(!1),ht.autoplay&&n(ht.autoplay)):ht.reset?(h(t.startPage??0),Ge.current&&Ge.current(t.startPage??0)):ht.controlAction&&rt(ht.controlAction)});const[i,r]=D.useState(!1),[s,u]=D.useState(t.initiallyShowAppBar),[c,h]=D.useState(t.startPage??0),[g,k]=D.useState([""]),[b,M]=D.useState(!1),[E,z]=D.useState(!1),[A,x]=D.useState(""),[S,N]=D.useState("Device16x9Portrait");D.useEffect(()=>{u(t.initiallyShowAppBar)},[t.initiallyShowAppBar]),D.useEffect(()=>{s?MT():PT()},[s]),D.useEffect(()=>{j(t.paused)},[t.paused]);const[L,j]=D.useState(t.paused),[f,V]=D.useState(!1),G=rn.getBloomUiLanguage(),W=G==="en"?[G]:[G,"en"],[pt,ft]=D.useState(W);D.useEffect(()=>{L||(Fd=!1)},[L]);const[ot,Z]=D.useState(!1),[$,o]=D.useState(!1),[tt,v]=D.useState(!1),[Q,st]=D.useState(!1),[ut,I]=D.useState(!1),[lt,gt]=D.useState(0),[Tt,Ct]=D.useState(9/16),jt=[],[Wt,Yt]=D.useState(jt),[_t,Te]=D.useState(""),Ge=D.useRef(),[hn,ke]=D.useState(!0),[ve,Ue]=D.useState(!1),[Et,xe]=D.useState(!1),[qn,We]=D.useState(0),C=()=>{We(ht=>ht+1)},[B,_]=D.useState("");D.useEffect(()=>{mt()},[ut,qn,ot,t.useOriginalPageSize]),D.useEffect(()=>()=>{const ht=document.getElementById("scale-style-sheet");ht&&ht.parentNode.removeChild(ht)},[]);const X=D.useRef(),rt=ht=>{switch(ht){case"navigate-to-next-page":X&&X.current&&X.current.slideNext();break;case"navigate-to-previous-page":X&&X.current&&X.current.slidePrevious();break;default:console.log("'handleControlMessage' received an unknown message.");return}},mt=()=>{const ht=document.getElementsByClassName("swiper-slide-active")[0];let zt=null;if(ht&&(zt=ht.getElementsByClassName("bloom-page")[0]),!zt||!ut){window.setTimeout(C,100);return}let qe=document.getElementById("scale-style-sheet");qe||(qe=document.createElement("style"),qe.setAttribute("type","text/css"),qe.setAttribute("id","scale-style-sheet"),document.head.appendChild(qe));let pe=lt,Jt=Tt;const ge=Se.getPageSizeClass(zt);(t.url!==A||ge!==S)&&(x(t.url),N(ge),window.onresize=()=>{const{width:ca,height:$a}=ry();($a!==iy||ca!==ay)&&C()},pe=Math.max(zt.offsetHeight,zt.offsetWidth),Jt=Math.min(zt.offsetHeight,zt.offsetWidth)/pe,Ct(Jt),gt(pe));const{width:St,height:Bt}=ry();ay=St,iy=Bt;const ee=St>Bt;if(ee!==ot){Z(ee);return}let ye=0,ce=0;const Xe=window.getComputedStyle(document.body);Xe&&Xe.marginTop&&(ye=parseInt(Xe.marginTop,10)),Xe&&Xe.marginBottom&&(ce=parseInt(Xe.marginBottom,10));const ue=zt.getAttribute("class").indexOf("Landscape")>=0,ii=ue?pe*Jt:pe,en=ue?pe:pe*Jt;let ua=ye+ce;if(s){const ca=document.getElementById("control-bar");ca&&(ua+=ca.offsetHeight);const $a=document.getElementById("pageNumberControl");$a&&(ua+=$a.offsetHeight)}const Oa=Bt-ua,ri=Ft({pageWidth:en,pageHeight:ii,desiredPageHeight:Oa}),gr=re(en);let Ze=Math.min(ri,gr);const Ne=ii*Ze;let Ka=Ne*Jt/Ze;ue&&(Ka=Ne/Jt/Ze);const Oi=St/Ze-Ka;let Tn="",ka=Math.max((St-en*Ze)/2,0);t.roundMarginToNearestK&&(ka=_d(ka,t.roundMarginToNearestK));const uo=ka,co=Ze,rc=30;if(Oi>100*2)Tn="largeOutsideButtons";else if(Oi>rc*2)Tn="smallOutsideButtons";else if(St>407&&navigator.userAgent.includes("Chrome")&&!t.hideSwiperButtons){const $a=new RegExp(" Chrome/([0-9]+).").exec(navigator.userAgent),mr=parseInt($a[1]);mr&&mr<90&&(Ze*=.9,ka=Math.max((St-en*Ze)/2,0),Tn="smallOutsideButtons extraScalingForChrome85Bug")}Tn!==B&&_(Tn);let fo="";if(a){const ca=(Bt-Ne-ua)/2;ca>0&&(fo=`translate(0, ${ca.toFixed(0)}px) `)}qe.innerText=`.bloomPlayer {
8051
8051
  width: ${Ka}px;
8052
8052
  transform-origin: left top 0;
8053
8053
  transform: ${fo}scale(${Ze});
@@ -8060,4 +8060,4 @@ Add a <Suspense fallback=...> component higher in the tree to provide a loading
8060
8060
  }
8061
8061
  }
8062
8062
  .bloomPlayer-page {height: ${Ne/Ze}px; overflow: hidden;}`,wB(zt,Ze),i||r(!0)},Ft=ht=>{const{pageWidth:zt,pageHeight:qe,desiredPageHeight:pe}=ht,Jt=pe/qe;if(!t.roundPageWidthToNearestK)return Jt;const ge=zt*Jt;return _d(ge,t.roundPageWidthToNearestK)/zt},re=ht=>{let zt=document.body.offsetWidth;return t.roundPageWidthToNearestK&&(zt=_d(zt,t.roundPageWidthToNearestK)),zt/ht};D.useEffect(()=>{f&&!L&&V(!1);const ht=document.getElementById("root");ht&&(ch=zt=>{(zt.key===" "||zt.key==="ArrowRight"&&f)&&(zt.preventDefault(),zt.stopImmediatePropagation(),j(!L),V(!1))},ht.addEventListener("keydown",$D,{capture:!0}))});const oe=ht=>{_t!==ht&&(fs.selectNewLanguageCode(Wt,ht),Te(ht))},Ot=(ht,zt,qe)=>{Ge.current=qe;let pe;if(t.videoSettings){const Jt=JSON.parse(t.videoSettings);pe=Jt.lang,ke(Jt.imageDescriptions??!1)}t.initialLanguageCode&&(pe=t.initialLanguageCode),pe&&ht.map(Jt=>Jt.Code).includes(pe)?fs.selectNewLanguageCode(ht,pe):pe=ht.length>0?ht[0].Code:"",Te(pe),Yt(ht),Ue(zt),t.videoPreviewMode&&!s&&u(!0)},Ie=rn.getTranslation("Audio.Play",pt,"Play"),_e=rn.getTranslation("Audio.ReadAloud",pt,"Read Aloud"),Cn=$?_e:Ie,{allowToggleAppBar:pn,showBackButton:la,initiallyShowAppBar:Ra,locationOfDistFolder:Ye,hideFullScreenButton:Mt,...ln}=t,H=ps({palette:{primary:{main:"#000",contrastText:"#FFF"},secondary:{main:"#FFF"}}}),Lt=ht=>{xe(ht)},Xt=Re({root:{color:hi,height:2,padding:"15px 0"},active:{},valueLabel:{left:"calc(50% - 16px)",top:-31,"& *":{background:hi,color:"white"}},track:{height:4,opacity:.5},rail:{height:2,opacity:.5,backgroundColor:hi},mark:{backgroundColor:"transparent"},markActive:{backgroundColor:"transparent"},markLabel:{top:20,fontSize:"0.6rem",color:hi},markLabelActive:{top:20,fontSize:"0.6rem",color:hi}})(cB),Oe=ps({direction:"rtl"}),Ae=kt.createElement(Xt,{valueLabelDisplay:"on",min:1,max:g.length,step:1,disabled:E,defaultValue:c+1,onChangeCommitted:(ht,zt)=>{zt-1!=c&&(h(zt-1),Ge.current&&Ge.current(zt-1))},valueLabelFormat:(ht,zt)=>g[ht-1],marks:[{value:g.length,label:g.length.toString()}]});return kt.createElement("div",{className:"reactRoot"},f&&kt.createElement(kt.Fragment,null,kt.createElement("div",{className:"bigButtonOverlay"},kt.createElement(_l,{theme:H},kt.createElement(Ca,{color:"secondary",onClick:()=>{V(!1),j(!1)}},kt.createElement(Gp,{titleAccess:Cn,preserveAspectRatio:"xMidYMid meet"})))),kt.createElement("div",{className:"behindBigButtonOverlay"})),kt.createElement(wD,{getBackButtonState:()=>{var ht;return(ht=X.current)!=null&&ht.CanGoBack()?Fo.showArrow:la?window===window.top?Fo.showArrow:Fo.showEllipsis:Fo.showNothing},visible:s,paused:L,pausedChanged:ht=>j(ht),playLabel:Cn,preferredLanguages:pt,backClicked:()=>{var ht;(ht=X.current)!=null&&ht.HandleBackButtonClickedIfHavePlayerHistory()||ET()},showPlayPause:$||tt||Q,bookLanguages:Wt,activeLanguageCode:_t,onLanguageChanged:oe,canShowFullScreen:!t.hideFullScreenButton,extraButtons:t.extraButtons,bookHasImageDescriptions:ve,readImageDescriptions:hn,onReadImageDescriptionToggled:()=>ke(!hn),nowReadingImageDescription:Et,videoPreviewMode:t.videoPreviewMode}),kt.createElement(KD,null),kt.createElement(Se,{ref:X,url:t.url,landscape:ot,paused:L,preferredUiLanguages:pt,pageStylesAreNowInstalled:()=>{I(!0)},locationOfDistFolder:t.locationOfDistFolder,reportBookProperties:ht=>{const zt={landscape:ht.landscape,canRotate:ht.canRotate};ST(zt),ft([G].concat(ht.preferredLanguages)),k(ht.pageNumbers),M(ht.isRtl),ht.internalUrl!=Vd&&(Vd&&C(),Vd=ht.internalUrl)},controlsCallback:Ot,setForcedPausedCallback:ht=>{ht?(j(ht),V(!0)):V(!1)},reportPageProperties:ht=>{o(ht.hasAudio),v(ht.hasMusic),st(ht.hasVideo)},onContentClick:ht=>{t.allowToggleAppBar&&(u(!s),window.setTimeout(C,300+50))},activeLanguageCode:_t,useOriginalPageSize:t.useOriginalPageSize,hideSwiperButtons:t.hideSwiperButtons,autoplay:e,skipActivities:t.skipActivities,outsideButtonPageClass:B,extraClassNames:i?"":"hidePlayer",shouldReadImageDescriptions:hn,imageDescriptionCallback:Lt,pageChanged:ht=>{ht!=c&&h(ht)},hidingNavigationButtonsCallback:ht=>{ht!=E&&z(ht)},shouldReportSoundLog:t.shouldReportSoundLog,startPageIndex:t.startPage,autoplayCount:t.autoplayCount}),s&&!t.videoPreviewMode&&kt.createElement("div",{id:"pageNumberControl",className:"MuiToolbar-gutters"},b?kt.createElement(_l,{theme:Oe},Ae):Ae))};function HD(){const t=Sa("extraButtons");if(!t)return[];const e=decodeURIComponent(t);try{return JSON.parse(e)}catch(n){return console.error("Failed to parse extra button info "+JSON.stringify(n)),AT("error decoding extraButtons param "+t+": "+n),[]}}function WD(){rC(parseFloat(Sa("defaultDuration","3.0")));const t=Sa("autoplay","motion"),e=Sa("start-page"),n=kD(e),a=n?parseInt(n):void 0,i=Sa("autoplay-count"),r=e?parseInt(i):void 0,s=Vn("paused",!1);Ri.render(kt.createElement(_l,{theme:Hk},kt.createElement(qD,{url:Sa("url"),allowToggleAppBar:Vn("allowToggleAppBar",!1),showBackButton:Vn("showBackButton",!1),initiallyShowAppBar:Vn("initiallyShowAppBar",!0),centerVertically:Vn("centerVertically",!0),initialLanguageCode:Sa("lang"),videoSettings:Sa("videoSettings"),paused:s,locationOfDistFolder:"",useOriginalPageSize:Vn("useOriginalPageSize",!1),hideFullScreenButton:Vn("hideFullScreenButton",!1),autoplay:t,skipActivities:Vn("skipActivities",!1),videoPreviewMode:Vn("videoPreviewMode",!1),hideSwiperButtons:Vn("hideNavButtons",!1),extraButtons:HD(),shouldReportSoundLog:Vn("reportSoundLog",!1),startPage:a,autoplayCount:r,roundPageWidthToNearestK:Xg("roundPageWidthToNearestK"),roundMarginToNearestK:Xg("roundMarginToNearestK")})),document.getElementById("root"))}let Vd="";WD();
8063
- //# sourceMappingURL=bloomPlayer.Dv1kv42h.js.map
8063
+ //# sourceMappingURL=bloomPlayer._TRaWTXJ.js.map
@@ -18,7 +18,7 @@
18
18
 
19
19
  <!-- At build time, we replace the target of this script tag to point at the
20
20
  the bloom player bundle with the cache-busting hash in its name. -->
21
- <script src="bloomPlayer.Dv1kv42h.js"></script>
21
+ <script src="bloomPlayer._TRaWTXJ.js"></script>
22
22
  </body>
23
23
 
24
24
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "A library for displaying Bloom books in iframes or WebViews",
4
4
  "author": "SIL Global",
5
5
  "license": "MIT",
6
- "version": "2.11.5",
6
+ "version": "2.11.6",
7
7
  "private": false,
8
8
  "// sideeffects might need to be ['*.css'] to avoid 'shaking' our CSS, if we ever get tree shaking working": "",
9
9
  "sideEffects": false,