first commit
This commit is contained in:
1
modules/ebookplayer/ebookplayer.css
Normal file
1
modules/ebookplayer/ebookplayer.css
Normal file
@@ -0,0 +1 @@
|
||||
.ebookDialogCloseButton{box-sizing:content-box;width:1.7em}.ebookDialogHeaderTitle{min-width:10em}.ebookDialogHeaderSpacer{-webkit-flex-grow:1;flex-grow:1}.ebookDialogContent{position:relative;overflow-y:hidden}.ebookBackgroundPaginator{position:absolute;z-index:5;top:0;bottom:0;width:100%}.ebookContainer{position:relative;z-index:10;height:100%;border-style:solid;border-color:transparent;border-width:0;border-inline-start-width:0.5em;margin:0 auto;box-sizing:border-box}.ebookContent{height:100%;color:#000}@supports (scrollbar-gutter:stable){.ebookContainer,.ebookOverlayPaginator{scrollbar-gutter:stable}}.ebookOverlayScroller{position:absolute;z-index:100;top:0;bottom:0;left:0;right:0}.ebookOverlayScrollerFiller{height:100%;pointer-events:none}.ebookOverlayPaginator{position:absolute;z-index:110;top:0;bottom:0;width:100%;pointer-events:none}.paginatorFlexContainer{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-align-items:stretch;align-items:stretch;height:100%;width:100%;margin:0 auto;pointer-events:auto}.paginatorFlexContainer>.previousTarget,.paginatorFlexContainer>.nextTarget{-webkit-flex-grow:1;flex-grow:1}.paginatorFlexContainer>.resizeTarget{width:.5em;cursor:ew-resize;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.resizeTargetHandle{-webkit-margin-start:-0.3em;margin-inline-start:-.3em;color:hsla(var(--button-background-hue),var(--button-background-saturation),calc(var(--button-background-lightness) + 10%),var(--button-background-alpha));user-select:none;-webkit-user-select:none}.tocHeader{position:relative;overflow:hidden;display:-webkit-flex;display:flex}.ebook-toc-cover{float:left;max-height:4ch;max-width:1.414ch}.ebook-toc-title,.ebook-toc-author{overflow:hidden;text-overflow:ellipsis}.ebookControls{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row}.ebookControls>.separatedAfter{-webkit-margin-end:.4em;margin-inline-end:.4em}.ebookControls>.separatedBefore{-webkit-margin-start:.4em;margin-inline-start:.4em}.ebook-progress{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.ebook-progress>.progress-text{padding:0 .5ch}.ebook-progress>.progress-number{padding:0;width:3ch;text-align:end}.ebook-progress>.page-input{box-sizing:content-box;width:4ch;text-align:end;display:inline-block}.ebookTextSizeLabels{margin:.5em 0}
|
||||
1
modules/ebookplayer/ebookplayer.js
Normal file
1
modules/ebookplayer/ebookplayer.js
Normal file
File diff suppressed because one or more lines are too long
68
modules/ebookplayer/ebookplayer.template.html
Normal file
68
modules/ebookplayer/ebookplayer.template.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<div class="formDialogHeader">
|
||||
<button class="ebookDialogCloseButton" type="button" is="emby-dialogclosebutton" closetype="done"></button>
|
||||
|
||||
<h3 class="ebookDialogHeaderTitle formDialogHeaderTitle withEllipsis fluidHeaderItem"></h3>
|
||||
|
||||
<div class="ebookDialogHeaderSpacer"></div>
|
||||
|
||||
<div class="ebookControls">
|
||||
|
||||
<button type="button" class="ebook-textsize dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" title="${LabelTextSize}" aria-label="${LabelTextSize}"></button>
|
||||
<button type="button" class="ebook-pagesize separatedAfter dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" title="${LabelPageSize}" aria-label="${LabelPageSize}"></button>
|
||||
|
||||
<button type="button" class="ebook-prevsection autortl dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" data-fluid-priority="2" title="${PreviousSection}" aria-label="${PreviousSection}"></button>
|
||||
<button type="button" class="ebook-previous autortl dialogHeaderButton md-icon paper-icon-button-light" title="${PreviousPage}" aria-label="${PreviousPage}"></button>
|
||||
|
||||
<div class="ebookPercentage ebook-progress">
|
||||
<div class="position progress-number" title="${PositionInBook}" aria-label="${PositionInBook}"></div>
|
||||
<div class="progress-text">%</div>
|
||||
</div>
|
||||
|
||||
<div class="ebookPages ebook-progress hide">
|
||||
<input type="text" is="emby-input" class="page-input" maxlength="4" title="${CurrentPage}" aria-label="${CurrentPage}">
|
||||
<div class="progress-text">/</div>
|
||||
<div class="total progress-number" title="${TotalPages}" aria-label="${TotalPages}"></div>
|
||||
</div>
|
||||
|
||||
<button type="button" class="ebook-next autortl dialogHeaderButton md-icon paper-icon-button-light" title="${NextPage}" aria-label="${NextPage}"></button>
|
||||
<button type="button" class="ebook-nextsection autortl dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" title="${NextSection}" aria-label="${NextSection}"></button>
|
||||
|
||||
</div>
|
||||
|
||||
<button type="button" class="ebook-toc dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" data-fluid-priority="-1" title="${TableOfContents}" aria-label="${TableOfContents}"></button>
|
||||
|
||||
<button type="button" class="ebook-more separatedBefore dialogHeaderButton fluidHeaderMore paper-icon-button-light md-icon" title="${More}" aria-label="${More}"></button>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="formDialogContent ebookDialogContent">
|
||||
|
||||
<div class="ebookBackgroundPaginator">
|
||||
<div class="paginatorFlexContainer">
|
||||
<a class="previousTarget"></a>
|
||||
<a class="nextTarget"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ebookContainer scrollY">
|
||||
<div class="ebookContent"></div>
|
||||
</div>
|
||||
|
||||
<div class="ebookOverlayScroller dialog-scrollY scrollY overflowYScroll">
|
||||
<div class="ebookOverlayScrollerFiller"></div>
|
||||
</div>
|
||||
|
||||
<div class="ebookOverlayPaginator scrollY">
|
||||
<div class="paginatorFlexContainer">
|
||||
<a class="resizeTarget">
|
||||
<i class="md-icon resizeTargetHandle"></i>
|
||||
</a>
|
||||
<a class="previousTarget"></a>
|
||||
<a class="nextTarget"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ebookTocDrawer focuscontainer padded-bottom-page">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
1
modules/ebookplayer/foliate/comic-book.js
Normal file
1
modules/ebookplayer/foliate/comic-book.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/epub.js
Normal file
1
modules/ebookplayer/foliate/epub.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/epubcfi.js
Normal file
1
modules/ebookplayer/foliate/epubcfi.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/fb2.js
Normal file
1
modules/ebookplayer/foliate/fb2.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/fixed-layout.js
Normal file
1
modules/ebookplayer/foliate/fixed-layout.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/mobi.js
Normal file
1
modules/ebookplayer/foliate/mobi.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/overlayer.js
Normal file
1
modules/ebookplayer/foliate/overlayer.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/paginator.js
Normal file
1
modules/ebookplayer/foliate/paginator.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/progress.js
Normal file
1
modules/ebookplayer/foliate/progress.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/search.js
Normal file
1
modules/ebookplayer/foliate/search.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/foliate/text-walker.js
Normal file
1
modules/ebookplayer/foliate/text-walker.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){function _createForOfIteratorHelper(r,e){var o,a,u,n,t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return u=!(a=!0),{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}};if(Array.isArray(r)||(t=function(r,a){{var t;if(r)return"string"==typeof r?_arrayLikeToArray(r,a):"Map"===(t="Object"===(t={}.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:t)||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r))||e&&r&&"number"==typeof r.length)return t&&(r=t),n=0,{s:e=function(){},n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.textWalker=void 0;function walkRange(range,walker){for(var nodes=[],node=walker.currentNode;node;node=walker.nextNode()){var compare=range.comparePoint(node,0);if(0===compare)nodes.push(node);else if(0<compare)break}return nodes}function walkDocument(_,walker){for(var nodes=[],node=walker.nextNode();node;node=walker.nextNode())nodes.push(node);return nodes}function acceptNode(node){return 1===node.nodeType?"script"===(node=node.tagName.toLowerCase())||"style"===node?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT}var filter=NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_CDATA_SECTION;_exports.textWalker=function*(x,func){var _step,_x$commonAncestorCont=null!=(_x$commonAncestorCont=null!=(_x$commonAncestorCont=x.commonAncestorContainer)?_x$commonAncestorCont:x.body)?_x$commonAncestorCont:x,_x$commonAncestorCont=document.createTreeWalker(_x$commonAncestorCont,filter,{acceptNode:acceptNode}),nodes=(x.commonAncestorContainer?walkRange:walkDocument)(x,_x$commonAncestorCont),_iterator=_createForOfIteratorHelper(func(nodes.map(function(node){return node.nodeValue}),function(startIndex,startOffset,endIndex,endOffset){var range=document.createRange();return range.setStart(nodes[startIndex],startOffset),range.setEnd(nodes[endIndex],endOffset),range}));try{for(_iterator.s();!(_step=_iterator.n()).done;)yield _step.value}catch(err){_iterator.e(err)}finally{_iterator.f()}}});
|
||||
1
modules/ebookplayer/foliate/view.js
Normal file
1
modules/ebookplayer/foliate/view.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/ebookplayer/plugin.js
Normal file
1
modules/ebookplayer/plugin.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(){this.name="E-book Viewer",this.type="mediaplayer",this.id="ebookplayer",this.priority=1;var self=this;self.ebookplayer=null,self.play=function(options,signal){return signal.aborted?((signal=signal.reason)||((signal=new Error("Aborted")).name="AbortError"),Promise.reject(signal)):null===self.ebookplayer?Emby.importModule(PATH_PLAYER).then(function(playermodule){return self.ebookplayer=new playermodule,self.ebookplayer.show(options.item)}):self.ebookplayer.show(options.item)},self.stop=function(options){return null!==self.ebookplayer&&self.ebookplayer.clear(),Promise.resolve()},self.destroy=function(options){self.stop()},self.isPlaying=function(mediaType){return(!mediaType||"Book"===mediaType)&&null!==self.ebookplayer&&null!==self.ebookplayer.currentPage},self.pause=function(){},self.unpause=function(){},self.paused=function(){return!1},self.getVolume=function(){return 100},self.setVolume=function(){},self.volumeUp=function(){},self.volumeDown=function(){},self.setMute=function(mute){},self.currentTime=function(){},self.duration=function(){},self.isMuted=function(){return!1},self.canPlayMediaType=function(mediaType){return"Book"===mediaType},self.canPlayItem=function(item,playOptions){switch(null==(item=item.Container)?void 0:item.toLowerCase()){case"epub":case"mobi":case"kf8":case"azw3":case"cbz":case"cbr":case"cbt":case"cb7":case"fb2":case"fbz":return!0;default:return!1}}};var PATH_PLAYER="./modules/ebookplayer/ebookplayer.js"});
|
||||
Reference in New Issue
Block a user