first commit

This commit is contained in:
2026-02-09 10:48:21 +01:00
commit 15f28c0dd6
848 changed files with 107188 additions and 0 deletions

View 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}

File diff suppressed because one or more lines are too long

View 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}">&#xe245;</button>
<button type="button" class="ebook-pagesize separatedAfter dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" title="${LabelPageSize}" aria-label="${LabelPageSize}">&#xf779;</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}">&#xe045;</button>
<button type="button" class="ebook-previous autortl dialogHeaderButton md-icon paper-icon-button-light" title="${PreviousPage}" aria-label="${PreviousPage}">&#xe5cb;</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}">&#xe5cc;</button>
<button type="button" class="ebook-nextsection autortl dialogHeaderButton fluidHeaderItem md-icon paper-icon-button-light" title="${NextSection}" aria-label="${NextSection}">&#xe044;</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}">&#xe8de;</button>
<button type="button" class="ebook-more separatedBefore dialogHeaderButton fluidHeaderMore paper-icon-button-light md-icon" title="${More}" aria-label="${More}">&#xe5d3;</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">&#xe945;</i>
</a>
<a class="previousTarget"></a>
<a class="nextTarget"></a>
</div>
</div>
<div class="ebookTocDrawer focuscontainer padded-bottom-page">
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View 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()}}});

File diff suppressed because one or more lines are too long

View 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"});