1 line
28 KiB
JavaScript
1 line
28 KiB
JavaScript
define(["exports","./../dialoghelper/dialoghelper.js","./../common/globalize.js","./../emby-apiclient/connectionmanager.js","./../common/inputmanager.js","../layoutmanager.js","./../actionsheet/actionsheet.js","./../loading/loading.js","./../fluidheader/fluidheader.js","./../dialogsidebar/indexsidebar.js","./../common/appsettings.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-slider/emby-slider.js","./foliate/view.js"],function(_exports,_dialoghelper,_globalize,_connectionmanager,_inputmanager,_layoutmanager,_actionsheet,_loading,_fluidheader,_indexsidebar,_appsettings,_embyDialogclosebutton,_embyInput,_embySlider,_view){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(){var self=this;function throttle(callback){var throttleTimer=null;return function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];throttleTimer&&clearTimeout(throttleTimer),throttleTimer=setTimeout(function(){throttleTimer=null,callback.apply(void 0,args)},THROTTLE)}}function getBackgroundContainer(){return self.dlg.querySelector(".ebookBackgroundPaginator")}function getBookContainer(){return self.dlg.querySelector(".ebookContainer")}function getScrollbarContainer(){return self.dlg.querySelector(".ebookOverlayScroller")}function getOverlayContainer(){return self.dlg.querySelector(".ebookOverlayPaginator")}function getTocContainer(){return self.dlg.querySelector(".ebookTocDrawer")}function getScrollbarVirtualContainerHeight(){return self.isFixedLayout()?self.getPageCount()*getBookContainer().clientHeight:self.loadedView?self.totalBookSize/(fontSize=parseFloat(getComputedStyle(self.loadedView.body).fontSize),parseFloat(getComputedStyle(self.loadedView.documentElement).columnWidth)*(getBookContainer().clientHeight-2*FOL_MARGIN)/(SCROLLBAR_EST_CHAR_COEF*Math.pow(fontSize,2)))*SCROLLBAR_EST_PAGE_HEIGHT:SCROLLBAR_BASE_RESOLUTION;var fontSize}function setScrollbarHeight(){var container=getScrollbarContainer();container.children[0].style.height=container.offsetHeight+getScrollbarVirtualContainerHeight()+"px"}function moveScrollToFraction(fraction){var fraction=fraction*getScrollbarVirtualContainerHeight(),scrollbarContainer=getScrollbarContainer();fraction!==scrollbarContainer.scrollTop&&self.scrollState!==SCROLL_STATE_MANUAL&&(self.scrollState=SCROLL_STATE_AUTO,scrollbarContainer.scrollTop=fraction)}function getBookViewportOffset(){var bookContainer=getBookContainer();return bookContainer.offsetWidth-bookContainer.clientWidth}function bestChoiceForLocale(obj,locale){var simpleLocale,options,bestKey;return"object"==typeof obj&&locale?obj[locale]||(obj[simpleLocale=(simpleLocale=locale.match(/^([a-z]+)(-|_|$)/i))&&simpleLocale[1]]?obj[simpleLocale]:(bestKey=(bestKey=(options=Object.keys(obj)).find(function(option){return option.startsWith(locale)}))||options.find(function(option){return option.startsWith(simpleLocale)}))?obj[bestKey]:null):null}function bestMetadataChoice(obj){var pick=bestChoiceForLocale(obj,_globalize.default.getCurrentLocale());return pick=(pick=!pick&&self.view.book.metadata.language?bestChoiceForLocale(obj,self.view.book.metadata.language):pick)||Object.values(obj)[0]||""}function forceDir(dir,addClass,removeClass){getBackgroundContainer().setAttribute("dir",dir),getBookContainer().setAttribute("dir",dir),getScrollbarContainer().setAttribute("dir",dir),getOverlayContainer().setAttribute("dir",dir);var tocScrollSlider=getTocContainer().firstElementChild,tocScrollSlider=(tocScrollSlider&&tocScrollSlider.setAttribute("dir",dir),self.dlg.querySelector(".ebookControls"));tocScrollSlider.setAttribute("dir",dir),"ltr"===dir?tocScrollSlider.querySelectorAll(".autortl").forEach(function(control){control.classList.remove("autortl"),control.classList.add("forceltr")}):tocScrollSlider.querySelectorAll(".forceltr").forEach(function(control){control.classList.remove("forceltr"),control.classList.add("autortl")}),addClass&&tocScrollSlider.classList.add(addClass),removeClass&&tocScrollSlider.classList.remove(removeClass)}function isTocOpen(){var tocContainer=getTocContainer();return self.tocSidebar&&tocContainer.classList.contains("sidebar")&&!tocContainer.classList.contains("hide")}function adjustOverlayPaginatorSizes(){var previousTarget,bgPreviousTarget,renderDetails,outsideOffset;self.isFixedLayout()&&(previousTarget=getOverlayContainer().querySelector(".previousTarget"),bgPreviousTarget=getBackgroundContainer().querySelector(".previousTarget"),"center"!==(renderDetails=self.view.renderer.getRenderDetails()).side&&renderDetails.leftWidth&&renderDetails.rightWidth?(previousTarget.style.flexGrow=0,previousTarget.style.width=renderDetails.leftWidth+"px",outsideOffset=(getBackgroundContainer().clientWidth-getOverlayContainer().querySelector(".paginatorFlexContainer").offsetWidth)/2,bgPreviousTarget.style.flexGrow=0,bgPreviousTarget.style.width=renderDetails.leftWidth+outsideOffset+"px"):(previousTarget.style.flexGrow=1,previousTarget.style.width="",bgPreviousTarget.style.flexGrow=1,bgPreviousTarget.style.width=""))}function setupPageSizes(){var bookContainer=getBookContainer(),pageSizeButton=self.dlg.querySelector(".ebook-pagesize");pageSizeButton.addEventListener("click",function(){var items;_actionsheet.default.show({title:_globalize.default.translate("LabelPageSize"),items:(items=[],PAGE_SIZES.forEach(function(option,i){items.push({id:i,Name:_globalize.default.translate(option.tag),icon:option.icon})}),items),hasItemSelectionState:!1,fields:["Name"],positionTo:pageSizeButton,positionY:"bottom",positionX:"right",transformOrigin:"right top",resolveOnClick:!0,hasItemIcon:!0}).then(function(pageSizeIndex){pageSizeIndex=PAGE_SIZES[pageSizeIndex];self.setPageWidth(bookContainer.clientHeight*pageSizeIndex.ratio)}).catch(function(){})}),self.dlg.addEventListener("resize",function(_ref){_ref=_ref.detail;self.isFullWidth(null,_ref.previousWidth)&&_ref.width>_ref.previousWidth?self.setPageWidth(_ref.width):self.setPageWidth()})}function setupUIElements(){function overlayClickHandler(pageChangeFunction){return function(mouseEvent){if(!self.inputingPage){if(self.loadedView){var contentOffset=self.measureRectangle.getClientRects()[0];if(contentOffset){var inlineTarget=self.loadedView.elementFromPoint(mouseEvent.x-contentOffset.x,mouseEvent.y-contentOffset.y);if(inlineTarget&&["A","BUTTON","INPUT"].find(function(tagName){return tagName===inlineTarget.tagName.toUpperCase()}))return void inlineTarget.click()}}return pageChangeFunction()}}}var toc,scrollbarContainer,anchorPosition,resizeWidth,bookContainer,resizeTarget,textSizeButton,dlg=self.dlg,prevSection=(!function(){var dlg,pageCount,pageinput,maxLength;self.isFixedLayout()&&(dlg=self.dlg,pageCount=self.getPageCount(),dlg.querySelector(".ebookPages > .total").textContent=pageCount||"?",pageinput=dlg.querySelector(".page-input"),pageCount&&(maxLength=String(pageCount).length,pageinput.maxLength=maxLength,pageinput.style.width=maxLength+"ch"),dlg.querySelector(".ebookPercentage").classList.add("hide"),dlg.querySelector(".ebookPages").classList.remove("hide"),pageinput.addEventListener("keydown",function(e){e.ctrlKey||e.metaKey||e.altKey||e.key.match(/[0-9]/)||["Backspace","Delete","ArrowLeft","ArrowRight","Enter","Home","End","Insert","Tab"].includes(e.key)||e.preventDefault()}),pageinput.addEventListener("focus",function(e){e.target.select(),self.inputingPage=!0}),pageinput.addEventListener("blur",function(e){setTimeout(function(){self.inputingPage=!1},100)}),pageinput.addEventListener("change",function(e){e=parseInt(e.target.value)-1;e<0||pageCount&&pageCount<=e?pageinput.value=self.getCurrentPage()+1:self.view.goTo(e)}))}(),dlg.querySelector(".ebook-previous").addEventListener("click",function(){return self.previousPage()}),dlg.querySelector(".ebook-next").addEventListener("click",function(){return self.nextPage()}),prevSection=self.dlg.querySelector(".ebook-prevsection"),nextSection=self.dlg.querySelector(".ebook-nextsection"),toc=self.dlg.querySelector(".ebook-toc"),self.isSectioned()?(prevSection.addEventListener("click",function(){return self.previousSection()}),nextSection.addEventListener("click",function(){return self.nextSection()}),toc.addEventListener("click",self.showHideToc)):(prevSection.remove(),nextSection.remove(),toc.remove()),getOverlayContainer()),nextSection=(prevSection.querySelector(".previousTarget").addEventListener("click",overlayClickHandler(self.previousPage)),prevSection.querySelector(".nextTarget").addEventListener("click",overlayClickHandler(self.nextPage)),getBackgroundContainer());return nextSection.querySelector(".previousTarget").addEventListener("click",function(){return!self.inputingPage&&self.previousPage()}),nextSection.querySelector(".nextTarget").addEventListener("click",function(){return!self.inputingPage&&self.nextPage()}),self.view.addEventListener("relocate",function(){adjustOverlayPaginatorSizes()}),scrollbarContainer=getScrollbarContainer(),_layoutmanager.default.tv?scrollbarContainer.style.visibility="hidden":(self.isFixedLayout()?setScrollbarHeight():self.view.renderer.addEventListener("create-overlayer",function(){setScrollbarHeight()}),scrollbarContainer.addEventListener("scroll",throttle(function(){var scroll;self.scrollState===SCROLL_STATE_AUTO?self.scrollState=SCROLL_STATE_IDLE:(self.scrollState=SCROLL_STATE_MANUAL,scroll=scrollbarContainer.scrollTop/getScrollbarVirtualContainerHeight(),self.view.goToFraction(scroll))})),self.view.addEventListener("relocate",function(e){moveScrollToFraction(e.detail.fraction||0)}),self.view.addEventListener("relocate",throttle(function(){self.scrollState===SCROLL_STATE_MANUAL&&(self.scrollState=SCROLL_STATE_IDLE)})),self.dlg.addEventListener("resize",function(){setScrollbarHeight()})),bookContainer=getBookContainer(),resizeTarget=getOverlayContainer().querySelector(".resizeTarget"),_layoutmanager.default.tv?resizeTarget.style.visibility="hidden":(resizeWidth=function(e){var rtl=isRTL(),dx=rtl?e.x-anchorPosition:anchorPosition-e.x;!rtl&&(0<dx&&e.x>resizeTarget.offsetLeft+resizeTarget.offsetWidth||dx<0&&e.x<resizeTarget.offsetLeft)||rtl&&(0<dx&&e.x<resizeTarget.offsetLeft||dx<0&&e.x>resizeTarget.offsetLeft+resizeTarget.offsetWidth)||self.setPageWidth(bookContainer.offsetWidth+2*dx)&&(anchorPosition=e.x)},resizeTarget.addEventListener("mousedown",function(e){anchorPosition=e.x,document.addEventListener("mousemove",resizeWidth,{capture:!0})}),document.addEventListener("mouseup",function(){document.removeEventListener("mousemove",resizeWidth,{capture:!0})})),setupPageSizes(),textSizeButton=self.dlg.querySelector(".ebook-textsize"),self.isFixedLayout()?textSizeButton.remove():(textSizeButton.addEventListener("click",function(){function updateValue(){self.setFontSize(parseFloat(slider.value))}var sliderDlg=_dialoghelper.default.createDialog({removeOnClose:!0,autoFocus:!0,positionTo:textSizeButton,positionY:"bottom",positionX:"right",transformOrigin:"right top",transparentBackground:"auto",blurBackground:!1,lowResXMargin:!0,lowResAutoHeight:!0}),slider=(sliderDlg.classList.add("actionSheet"),sliderDlg.classList.add("dialog-blur"),sliderDlg.innerHTML='\n <p class="actionSheetTitle secondaryText actionSheetTitle-small">'+_globalize.default.translate("LabelTextSize")+'</p>\n <div is="emby-scroller" data-miniscrollbar="true" data-horizontal="false" data-focusscroll="true" class="actionSheetScroller-padding-inline">\n <div class="actionsheetScrollSlider actionSheetScroller-padding-top actionSheetScroller-padding-bottom scrollSlider flex flex-direction-column">\n <div class="ebookTextSizeContainer sliderContainer flex-grow">\n <input is="emby-slider" type="range" step="'+TEXT_SIZES_STEP+'" min="'+TEXT_SIZES_MIN+'" max="'+TEXT_SIZES_MAX+'"\n value="'+self.currentTextSize+'" data-bubble="false" class="textSizeSlider" />\n </div>\n <div class="ebookTextSizeLabels">\n <div style="float: left">'+_globalize.default.translate("Smaller")+'</div>\n <div style="float: right">'+_globalize.default.translate("Larger")+"</div>\n </div>\n </div>\n </div>\n ",sliderDlg.querySelector(".textSizeSlider"));slider.setValue(self.currentTextSize);slider.addEventListener("input",updateValue),slider.addEventListener("change",updateValue),slider.addEventListener("endediting",function(){_dialoghelper.default.close(sliderDlg)}),_dialoghelper.default.open(sliderDlg)}),self.view.renderer.addEventListener("create-overlayer",function(e){e=e.detail.doc;self.baseFontSize=parseFloat(getComputedStyle(e.body).fontSize),e.querySelectorAll("p").forEach(function(p){p.dataset.originalSize=parseFloat(getComputedStyle(p).fontSize)}),self.setFontSize(self.currentTextSize)})),dlg}function abortWithReason(signal){_loading.default.hide();signal=signal.reason;return signal||((signal=new Error("Aborted")).name="AbortError"),signal}function updateHeaderLabels(){var nextSection,currentIndex,prevLabel,_self$flatToc,nextLabel,titleElm=self.dlg.querySelector(".ebookDialogHeaderTitle");self.currentTocItem&&self.currentTocItem.label?titleElm.textContent=self.currentTocItem.label:titleElm.textContent=self.getBookTitle(),self.isSectioned()&&(titleElm=self.dlg.querySelector(".ebook-prevsection"),nextSection=self.dlg.querySelector(".ebook-nextsection"),currentIndex=self.getCurrentSectionIndex(),0<self.currentSectionFraction||0===currentIndex?prevLabel=_globalize.default.translate("StartOfSection"):(prevLabel=_globalize.default.translate("PreviousSection"),(_self$flatToc=null==(_self$flatToc=self.flatToc[currentIndex-1])?void 0:_self$flatToc.label)&&(prevLabel+=" - "+_self$flatToc)),titleElm.setAttribute("title",prevLabel),titleElm.setAttribute("aria-label",prevLabel),currentIndex>=self.flatToc.length-1?nextLabel="":(nextLabel=_globalize.default.translate("NextSection"),(titleElm=null==(_self$flatToc=self.flatToc[currentIndex+1])?void 0:_self$flatToc.label)&&(nextLabel+=" - "+titleElm)),nextSection.setAttribute("title",nextLabel),nextSection.setAttribute("aria-label",nextLabel))}function setupDialog(template){var dlg=self.dlg=_dialoghelper.default.createDialog({removeOnClose:!0,autoFocus:!0,size:"fullscreen"}),template=(dlg.classList.add("ebookPlayerDialog"),dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(template),self.view=document.createElement("foliate-view"));return dlg.querySelector(".ebookContent").append(template),template.addEventListener("relocate",function(e){self.currentFraction=e.detail.fraction||0,self.currentPageItem=e.detail.pageItem,self.currentTocItem=e.detail.tocItem,dlg.querySelector(".position").textContent=Math.round(100*self.currentFraction),dlg.querySelector(".page-input").value=self.getCurrentPage()+1,self.tocSidebar&&self.currentTocItem&&self.tocSidebar.selectItem(self.currentTocItem.id||self.currentTocItem.href)}),getScrollbarContainer().addEventListener("click",function(mouseEvent){mouseEvent.target.style.pointerEvents="none";var newTarget=document.elementFromPoint(mouseEvent.clientX,mouseEvent.clientY);if(mouseEvent.target.style.pointerEvents="auto",newTarget)return mouseEvent=new MouseEvent("click",mouseEvent),newTarget.dispatchEvent(mouseEvent),mouseEvent}),dlg}function open(url,name,knownType){return self.view.open(url,{smartSpreads:!0,forceType:knownType}).then(function(){return self.view.book.getCover()}).then(function(coverBlob){self.view.renderer.addEventListener("create-overlayer",function(e){self.loadedView=e.detail.doc;var measureRectangle=document.createElement("div");measureRectangle.style.position="absolute",e.detail.attach({element:measureRectangle,redraw:function(){}}),self.measureRectangle=measureRectangle}),self.totalBookSize=self.view.book.sections.map(function(s){return"no"!==s.linear&&0<s.size?s.size:0}).reduce(function(a,b){return a+b},0),self.fileName=name,updateHeaderLabels(),"rtl"===(_self$view1=null==(_self$view1=self.view)?void 0:_self$view1.book.dir)&&self.forceRTL(),"ltr"===_self$view1&&self.forceLTR(),self.view.renderer.addEventListener("relocate",function(e){self.currentSectionFraction=e.detail.fraction,updateHeaderLabels()}),self.view.renderer.setAttribute("max-column-count",FOL_MAX_COLUMN_COUNT),self.view.renderer.setAttribute("gap",100*FOL_COLUMN_GAP+"%"),self.view.renderer.setAttribute("margin",FOL_MARGIN+"px"),self.updateMaxColumnWidth();var _self$view1=self.dlg,extractItems=(_self$view1.addEventListener("resize",function(){self.updateMaxColumnWidth()}),self.isFixedLayout()||(self.view.renderer.style.background=DEFAULT_BACKGROUND),self.flatToc=[],function(arr){for(var entry of arr){var subitems=entry.subitems,entry=babelHelpers.objectWithoutProperties(entry,_excluded);self.flatToc.push(entry),subitems&&extractItems(subitems)}});return extractItems(self.view.book.toc),coverBlob&&(self.bookCover=URL.createObjectURL(coverBlob)),_self$view1.classList.contains("dialog-noanimation")?firstPage():_self$view1.addEventListener("animationend",firstPage,{once:!0}),_self$view1})}function firstPage(){self.view.next().then(function(){var bookContainer=getBookContainer();self.setPageWidth(bookContainer.clientHeight*INITIAL_PAGE_RATIO)})}function isRTL(){return self.dlg&&"rtl"===getComputedStyle(getBookContainer()).direction}function setupInputs(){function wheelScroll(delta){0<delta?self.nextPage():self.previousPage()}var dlg=self.dlg,scrollbarContainer=getScrollbarContainer(),overlayContainer=getOverlayContainer();return scrollbarContainer.addEventListener("wheel",function(e){e.preventDefault(),wheelScroll(e.deltaY)}),overlayContainer.addEventListener("wheel",function(e){wheelScroll(e.deltaY)}),_inputmanager.default.on(dlg,function(e){"back"===e.detail.command&&(isTocOpen()?self.showHideToc():self.view.history.canGoBack?self.view.history.back():_dialoghelper.default.close(dlg),e.stopPropagation(),e.preventDefault())},{capture:!0}),_inputmanager.default.on(dlg,function(e){var command=e.detail.command,_e$detail$originalEve=null==(_e$detail$originalEve=e.detail.originalEvent)?void 0:_e$detail$originalEve.ctrlKey,rtl=isRTL(),tocOpen=isTocOpen();if(!document.activeElement.closest(".formDialogHeader")){if(!self.isFixedLayout()){if("red"===command||"up"===command&&_e$detail$originalEve)return self.currentTextSize>TEXT_SIZES_MIN&&self.setFontSize(self.currentTextSize-TEXT_SIZES_STEP),void e.preventDefault();if("green"===command||"down"===command&&_e$detail$originalEve)return self.currentTextSize<TEXT_SIZES_MAX&&self.setFontSize(self.currentTextSize+TEXT_SIZES_STEP),void e.preventDefault()}"yellow"===command||(!rtl&&"left"===command||rtl&&"right"===command)&&_e$detail$originalEve?(self.nextPageSize(),e.preventDefault()):"blue"===command||(!rtl&&"right"===command||rtl&&"left"===command)&&_e$detail$originalEve?(self.previousPageSize(),e.preventDefault()):("home"===command&&_e$detail$originalEve&&(self.goToFraction(0),e.preventDefault()),"end"===command&&_e$detail$originalEve&&(self.goToFraction(1),e.preventDefault()),(!rtl&&"left"===command||rtl&&"right"===command||"previous"===command||"pageup"===command)&&(self.previousPage(),e.preventDefault()),(!rtl&&"right"===command||rtl&&"left"===command||"next"===command||"pagedown"===command)&&(self.nextPage(),e.preventDefault()),self.isSectioned()&&("rewind"!==command&&("up"!==command||tocOpen)||(self.previousSection(),e.preventDefault()),"fastforward"!==command&&("down"!==command||tocOpen)||(self.nextSection(),e.preventDefault()),"guide"===command||"unknown"===command&&"t"===(null==(_e$detail$originalEve=e.detail.originalEvent)?void 0:_e$detail$originalEve.key))&&(self.showHideToc(),e.preventDefault()),"stop"===command&&(_dialoghelper.default.close(dlg),e.preventDefault()))}}),dlg}self.dlg=null,self.view=null,self.tocSidebar=null,self.flatToc=[],self.bookCover=null,self.currentFraction=0,self.currentSectionFraction=0,self.currentPageItem=null,self.currentTocItem=null,self.currentTextSize=parseFloat(_appsettings.default.get(APPSETTINGS_TEXTSIZE)||1),self.resizeObserver=null,self.fileName="",self.baseFontSize=16,self.totalBookSize=0,self.loadedView=null,self.measureRectangle=null,self.previousWidth=null,self.inputingPage=!1,self.scrollState=SCROLL_STATE_IDLE,self.previousPage=function(delta){return self.view.prev(delta||1)},self.nextPage=function(delta){return self.view.next(delta||1)},self.goToFraction=function(fraction){return self.view.goToFraction(fraction)},self.isFixedLayout=function(){var _self$view;return"pre-paginated"===(null==(_self$view=self.view)||null==(_self$view=_self$view.book.rendition)?void 0:_self$view.layout)},self.isSectioned=function(){var _self$view2;return(!self.isFixedLayout()||"comic-book"!==(null==(_self$view2=self.view)?void 0:_self$view2.book.type))&&(null==(_self$view2=self.view)?void 0:_self$view2.book.toc)},self.getPageCount=function(){var _self$view4;return self.isFixedLayout()?null==(_self$view4=self.view)?void 0:_self$view4.book.sections.length:null==(_self$view4=self.view)||null==(_self$view4=_self$view4.book.pageList)?void 0:_self$view4.length},self.getCurrentPage=function(){var _self$view6;return self.isFixedLayout()?null==(_self$view6=self.view)?void 0:_self$view6.renderer.index:null==(_self$view6=self.view)||!_self$view6.book.pageList||null==(_self$view6=self.currentPageItem)?void 0:_self$view6.id},self.getCurrentSectionIndex=function(){var _self$currentTocItem,currentSection=null==(_self$currentTocItem=self.currentTocItem)?void 0:_self$currentTocItem.id;return Math.max(self.flatToc.findIndex(function(item){return item.id===currentSection}),0)},self.previousSection=function(){var targetIndex=0===self.currentSectionFraction?Math.max(self.getCurrentSectionIndex()-1,0):self.getCurrentSectionIndex();return self.view.goTo(self.flatToc[targetIndex].href)},self.nextSection=function(){var targetIndex=Math.min(self.getCurrentSectionIndex()+1,self.flatToc.length-1);return self.view.goTo(self.flatToc[targetIndex].href)},self.isFullWidth=function(checkWidth,dialogWidth){return checkWidth=checkWidth||getBookContainer().offsetWidth,(dialogWidth=dialogWidth||self.dlg.clientWidth)-1<=checkWidth},self.setPageWidth=function(newWidth){var bookContainer=getBookContainer(),currentWidth=bookContainer.offsetWidth,bookViewOffset=(newWidth=newWidth||currentWidth,getBookViewportOffset()),bookViewOffset=(self.isFullWidth(newWidth)?newWidth=self.dlg.clientWidth:newWidth-bookViewOffset<bookContainer.clientHeight*MINIMUM_PAGE_VIEWPORT_RATIO&&(newWidth=Math.round(bookContainer.clientHeight*MINIMUM_PAGE_VIEWPORT_RATIO+bookViewOffset)),newWidth!==currentWidth);return bookContainer.style.width=newWidth+"px",getOverlayContainer().querySelector(".paginatorFlexContainer").style.width=newWidth-(getBookViewportOffset()-self.dlg.querySelector(".resizeTarget").offsetWidth)+"px",bookViewOffset&&setTimeout(function(){adjustOverlayPaginatorSizes()},100),bookViewOffset},self.updateMaxColumnWidth=function(){var pageHeight=getBookContainer().clientHeight;self.view.renderer.setAttribute("max-inline-size",pageHeight*ISO216_PAGE_SIDE_RATIO/2/(1+FOL_COLUMN_GAP)+"px")},self.currentPageSize=function(){var bookContainer=getBookContainer(),currentWidth=bookContainer.offsetWidth,targetIndex=PAGE_SIZES.findIndex(function(pageSizeOption){return bookContainer.clientHeight*pageSizeOption.ratio>currentWidth});return-1===targetIndex?PAGE_SIZES.length-1:0===targetIndex?-.5:Math.round(bookContainer.clientHeight*PAGE_SIZES[targetIndex-1].ratio)===currentWidth?targetIndex-1:targetIndex-.5},self.previousPageSize=function(){var pageSizeOption=PAGE_SIZES[Math.max(Math.ceil(self.currentPageSize())-1,0)];self.setPageWidth(getBookContainer().clientHeight*pageSizeOption.ratio)},self.nextPageSize=function(){var pageSizeOption=PAGE_SIZES[Math.min(Math.floor(self.currentPageSize())+1,PAGE_SIZES.length-1)];self.setPageWidth(getBookContainer().clientHeight*pageSizeOption.ratio)},self.setFontSize=function(currentTextSize){var documentFontSize=self.baseFontSize*currentTextSize;self.loadedView.body.style.fontSize=documentFontSize+"px",self.currentTextSize=currentTextSize,_appsettings.default.set(APPSETTINGS_TEXTSIZE,currentTextSize),self.loadedView.querySelectorAll("p").forEach(function(p){var paragraphOriginalSize=parseFloat(p.dataset.originalSize);p.style.fontSize=paragraphOriginalSize*currentTextSize+"px"}),setScrollbarHeight(),moveScrollToFraction(self.currentFraction)},self.getBookTitle=function(){var _self$view9,_self$view8;return null!=(_self$view8=self.view)&&_self$view8.book.metadata.title?"string"!=typeof(_self$view8=self.view.book.metadata.title)||null!=(_self$view9=self.view)&&null!=(_self$view9=_self$view9.book.metadata.title)&&_self$view9.endsWith("Download")?bestMetadataChoice(_self$view8):self.view.book.metadata.title:self.fileName},self.getBookAuthor=function(){var _self$view0=null==(_self$view0=self.view)||null==(_self$view0=_self$view0.book.metadata.author)?void 0:_self$view0.name;return _self$view0?"string"==typeof _self$view0?_self$view0:bestMetadataChoice(_self$view0):null},self.forceRTL=function(){forceDir("rtl","rtl")},self.forceLTR=function(){forceDir("ltr",null,"rtl")},self.showHideToc=function(){var tocContainer=getTocContainer();self.tocSidebar&&tocContainer.classList.contains("sidebar")?self.tocSidebar.toggle():(self.tocSidebar=_indexsidebar.default.show({container:tocContainer,className:"ebookTocDrawer",header:'<h4><div class="ebook-toc-title"></div><div class="ebook-toc-author secondaryText"></div></h4>',reverse:!0,items:self.view.book.toc,callback:function(href){self.view.goTo(href)}}),self.tocSidebar.ready.then(function(tocContainer){tocContainer.querySelector(".ebook-toc-title").textContent=self.getBookTitle(),tocContainer.querySelector(".ebook-toc-author").textContent=self.getBookAuthor();var bookContainer=getBookContainer();bookContainer.getAttribute("dir")&&tocContainer.firstElementChild.setAttribute("dir",bookContainer.getAttribute("dir")),self.currentTocItem&&self.tocSidebar.selectItem(self.currentTocItem.id||self.currentTocItem.href)}))},self.show=function(item,signal){if(_loading.default.show(),null!=signal&&signal.aborted)throw abortWithReason(signal);var apiClient=_connectionmanager.default.getApiClient(item);return require([PATH_TEMPLATE]).then(function(responses){return setupDialog(responses[0])}).then(function(){return open(apiClient.getItemOriginalFileUrl(item.Id),item.Name,function(item){return(item=item.FileName||"").match(/\.fb2$/i)?"application/fictionbook2":item.match(/\.(fbz|fb2\.zip)$/i)?"application/fictionbook2+zip":void 0}(item))}).then(function(){if(null!=signal&&signal.aborted)throw self.clear(),abortWithReason(signal)}).then(setupUIElements).then(setupInputs).then(function(dlg){if(null!=signal&&signal.aborted)throw self.clear(),abortWithReason(signal);_fluidheader.default.fluidify({container:dlg.querySelector(".formDialogHeader"),defaultLTR:!0,item:item}),self.previousWidth=self.dlg.offsetWidth,self.resizeObserver=new ResizeObserver(function(){self.dlg.dispatchEvent(new CustomEvent("resize",{detail:{previousWidth:self.previousWidth,width:self.dlg.offsetWidth,deltaWidth:self.dlg.offsetWidth-self.previousWidth}})),self.previousWidth=self.dlg.offsetWidth}),self.resizeObserver.observe(self.dlg),_dialoghelper.default.open(dlg)}).finally(function(){_loading.default.hide()})},self.clear=function(){var _self$view10;self.resizeObserver&&(self.resizeObserver.unobserve(self.dlg),self.resizeObserver=null),null!=(_self$view10=self.view)&&_self$view10.close(),null!=(_self$view10=self.tocSidebar)&&_self$view10.destroy(),self.dlg=null,self.view=null,self.tocSidebar=null,self.flatToc=[],self.currentFraction=0,self.currentSectionFraction=0,self.currentPageItem=null,self.currentTocItem=null,self.loadedView=null,self.measureRectangle=null,self.previousWidth=null,self.inputingPage=!1,self.scrollState=SCROLL_STATE_IDLE}};var _excluded=["subitems"],PATH_TEMPLATE=(require(["formDialogStyle","css!modules/ebookplayer/ebookplayer.css"]),"text!./modules/ebookplayer/ebookplayer.template.html"),APPSETTINGS_TEXTSIZE="ebooktextsize",SCROLLBAR_BASE_RESOLUTION=1e6,SCROLLBAR_EST_CHAR_COEF=.72,SCROLLBAR_EST_PAGE_HEIGHT=1500,SCROLL_STATE_IDLE=0,SCROLL_STATE_AUTO=1,SCROLL_STATE_MANUAL=2,THROTTLE=250,MINIMUM_PAGE_VIEWPORT_RATIO=.5,FOL_MAX_COLUMN_COUNT=4,FOL_COLUMN_GAP=.07,FOL_MARGIN=48,DEFAULT_BACKGROUND="white",ISO216_PAGE_SIDE_RATIO=Math.sqrt(2),TEXT_SIZES_MIN=.6,TEXT_SIZES_STEP=.1,TEXT_SIZES_MAX=2.5,PAGE_SIZES=[{tag:"PageNarrow",icon:"width_normal",ratio:MINIMUM_PAGE_VIEWPORT_RATIO},{tag:"PageSingle",icon:"width_wide",ratio:ISO216_PAGE_SIDE_RATIO/2},{tag:"PageBook",icon:"width_full",ratio:ISO216_PAGE_SIDE_RATIO},{tag:"PageMaximized",icon:"smart_screen",ratio:10}],INITIAL_PAGE_RATIO=ISO216_PAGE_SIDE_RATIO}); |