first commit
This commit is contained in:
1
modules/actionsheet/actionsheet.css
Normal file
1
modules/actionsheet/actionsheet.css
Normal file
File diff suppressed because one or more lines are too long
1
modules/actionsheet/actionsheet.js
Normal file
1
modules/actionsheet/actionsheet.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/addtolist/addtolist.js
Normal file
1
modules/addtolist/addtolist.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/alameda/alameda.js
Normal file
1
modules/alameda/alameda.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/alphanumericshortcuts/alphanumericshortcuts.css
Normal file
1
modules/alphanumericshortcuts/alphanumericshortcuts.css
Normal file
@@ -0,0 +1 @@
|
||||
.alphanumeric-shortcut{position:fixed;bottom:5%;right:5%;inset-inline-start:initial;inset-inline-end:5%;z-index:9999999;font-size:500%;padding:0 .5em .1em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.42em;border:0!important}
|
||||
1
modules/alphanumericshortcuts/alphanumericshortcuts.js
Normal file
1
modules/alphanumericshortcuts/alphanumericshortcuts.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../dom.js","./../focusmanager.js","./../dialoghelper/dialoghelper.js"],function(_exports,_dom,_focusmanager,_dialoghelper){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/alphanumericshortcuts/alphanumericshortcuts.css"]);var inputDisplayElement,alpanumericShortcutTimeout,currentDisplayText="";function clearAlphaNumericShortcutTimeout(){alpanumericShortcutTimeout&&(clearTimeout(alpanumericShortcutTimeout),alpanumericShortcutTimeout=null)}function resetAlphaNumericShortcutTimeout(instance){clearAlphaNumericShortcutTimeout(),alpanumericShortcutTimeout=setTimeout(function(){var value=currentDisplayText;currentDisplayText="",inputDisplayElement.innerHTML="",inputDisplayElement.classList.add("hide"),clearAlphaNumericShortcutTimeout(),function(instance,value){instance.onAlphaNumericValueEntered&&instance.onAlphaNumericValueEntered(value)}(this,value)}.bind(instance),2e3)}function onAlphanumericKeyPress(instance,e,chr){3<=currentDisplayText.length||(inputDisplayElement||((inputDisplayElement=document.createElement("div")).classList.add("alphanumeric-shortcut","hide","dialog"),_dom.default.allowBackdropFilter()&&inputDisplayElement.classList.add("dialog-blur"),document.body.appendChild(inputDisplayElement)),currentDisplayText+=chr,inputDisplayElement.innerHTML=currentDisplayText,inputDisplayElement.classList.remove("hide"),resetAlphaNumericShortcutTimeout(instance))}function AlphaNumericShortcuts(options){(this.options=options).focusScope=_focusmanager.default.getCurrentScope(),this.keyDownHandler=this.onKeyDown.bind(this),this.addEventListeners()}AlphaNumericShortcuts.prototype.onKeyDown=function(e){var options,tagName;e.ctrlKey||e.shiftKey||e.altKey||(options=this.options)&&options.focusScope===_focusmanager.default.getCurrentScope()&&"INPUT"!==(tagName=e.target.tagName)&&"TEXTAREA"!==tagName&&(e=(tagName=e.key)?tagName.match(/^[0-9a-zA-Z]+$/):null)&&1===(e=e.toString().toUpperCase()).length&&(options.itemsContainer,onAlphanumericKeyPress(this,0,e))},AlphaNumericShortcuts.prototype.addEventListeners=function(){var keyDownHandler;!this._eventHandlersBound&&(this._eventHandlersBound=!0,keyDownHandler=this.keyDownHandler)&&_dom.default.addEventListener(window,"keydown",keyDownHandler,{passive:!0})},AlphaNumericShortcuts.prototype.removeEventListeners=function(){this._eventHandlersBound=null;var keyDownHandler=this.keyDownHandler;keyDownHandler&&_dom.default.removeEventListener(window,"keydown",keyDownHandler,{passive:!0})},AlphaNumericShortcuts.prototype.pause=function(){this.removeEventListeners()},AlphaNumericShortcuts.prototype.resume=function(){this.addEventListeners()},AlphaNumericShortcuts.prototype.destroy=function(){this.removeEventListeners(),this.keyDownHandler=null,this.options=null};_exports.default=AlphaNumericShortcuts});
|
||||
1
modules/alphapicker/alphapicker.css
Normal file
1
modules/alphapicker/alphapicker.css
Normal file
@@ -0,0 +1 @@
|
||||
.alphaPicker{text-align:center;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-self:center;align-self:center;-webkit-user-select:none;user-select:none}.alphaPicker-fixed{position:fixed;top:9em;top:calc(9em + env(safe-area-inset-top,0));top:var(--header-height);top:calc(1em + var(--header-height));bottom:4.25em;bottom:calc(4.25em + env(safe-area-inset-bottom,0));z-index:1;-webkit-justify-content:center;justify-content:center}.alphaPickerRow{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-grow:1;flex-grow:1}.alphaPickerRow-vertical{-webkit-column-count:1;column-count:1;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-direction:column;flex-direction:column;font-size:82%;font-size:clamp(80%, 1rem, 82%);contain:layout style paint}.alphaPickerButton{border:0!important;cursor:pointer;outline:0!important;vertical-align:middle;font-family:inherit;font-size:inherit;min-width:initial;margin:0;padding:.1em .5em;width:auto;border-radius:.42em;-webkit-flex-shrink:0;flex-shrink:0;-webkit-flex-grow:1;flex-grow:1}.alphaPickerButton:focus::before{left:-.1em!important;right:-.1em!important}.alphaPicker:not(:focus-within) .alphaPickerButton-current{color:inherit!important}.alphaPickerButton-vertical{width:2.75ch;padding:0;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-padding-start:.5em;padding-inline-start:.5em;text-align:center;-webkit-column-break-inside:avoid;break-inside:avoid;max-height:1.4em;contain:layout style;font-weight:600}.alphaPickerButtonIcon{font-size:140%!important}
|
||||
1
modules/alphapicker/alphapicker.js
Normal file
1
modules/alphapicker/alphapicker.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/alphapicker/alphapicker_nontv.css
Normal file
1
modules/alphapicker/alphapicker_nontv.css
Normal file
@@ -0,0 +1 @@
|
||||
@media all and (pointer:fine){.alphaPickerButton-vertical{padding:0}}@media all and (pointer:fine){.alphaPickerRow-vertical{font-size:clamp(80%, 1rem, 88%)}}.alphaPicker-fixed-left{left:0;inset-inline-start:0;inset-inline-end:initial}.alphaPicker-fixed-right{right:0;inset-inline-start:initial;inset-inline-end:0}@media all and (min-width:50em){.alphaPicker-fixed-right{right:.5ch;inset-inline-start:initial;inset-inline-end:.5ch}}@media all and (pointer:fine){.alphaPicker-fixed-right{right:1.8ch;inset-inline-start:initial;inset-inline-end:1.8ch}}@media all and (min-width:62.5em){.alphaPickerButton-vertical{width:3.8ch}}@media all and (min-width:80em){.alphaPicker-fixed-right{right:1.8ch;inset-inline-start:initial;inset-inline-end:1.8ch}}@media all and (min-height:40em){.alphaPickerButton-vertical{max-height:1.6em}}@media all and (min-height:60em){.alphaPickerButton-vertical{max-height:1.8em}}@media all and (min-height:80em){.alphaPickerButton-vertical{max-height:2em}}@media not all and (min-height:29em){.alphaPicker-fixed{display:none!important}}
|
||||
1
modules/alphapicker/alphapicker_tv.css
Normal file
1
modules/alphapicker/alphapicker_tv.css
Normal file
@@ -0,0 +1 @@
|
||||
.alphaPicker-fixed{bottom:1.5em;bottom:calc(1.5em + env(safe-area-inset-bottom,0))}.alphaPickerRow-vertical{font-size:clamp(80%, 1rem, 88%)}.alphaPickerButton-vertical{width:3.2ch;min-height:initial;max-height:initial;padding:0}.alphaPicker-fixed-left{left:1.2ch;inset-inline-start:1.2ch;inset-inline-end:initial}.alphaPicker-fixed-right{right:1.2ch;inset-inline-start:initial;inset-inline-end:1.2ch}
|
||||
1
modules/appfooter/appfooter.css
Normal file
1
modules/appfooter/appfooter.css
Normal file
@@ -0,0 +1 @@
|
||||
.appfooter{position:fixed;left:0;right:0;bottom:0;inset-inline-start:0;inset-inline-end:0;z-index:1098;contain:layout style;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;padding-bottom:0;border-top:1px solid transparent;bottom:-1px!important}.appfooter-withContent{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);padding-bottom:env(safe-area-inset-bottom,0)}@media not all and (min-width:50em){.appfooter-withContent50w{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);padding-bottom:env(safe-area-inset-bottom,0)}}@media all and (min-width:60em){.appfooter-withFullDrawer{left:33.15ch;left:clamp(33.15ch,30%,45.5ch);right:0;inset-inline-start:33.15ch;inset-inline-start:clamp(33.15ch,30%,45.5ch);inset-inline-end:0}@media all and (pointer:fine){.appfooter-withFullDrawer{left:16.5em;left:calc(16.5em + env(safe-area-inset-left,0));right:0;inset-inline-start:16.5em;inset-inline-start:calc(16.5em + env(safe-area-inset-left,0));inset-inline-end:0}.appfooter-withFullDrawer.appFooter-rtl{inset-inline-start:calc(16.5em + env(safe-area-inset-right,0))}}.appfooter-withMiniDrawer{left:10ch;right:0;inset-inline-start:10ch;inset-inline-end:0}}
|
||||
1
modules/appfooter/appfooter.js
Normal file
1
modules/appfooter/appfooter.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../dom.js","./../emby-apiclient/events.js","./../common/appsettings.js"],function(_exports,_dom,_events,_appsettings){function setRtlClasses(instance){"rtl"===document.dir?instance.element.classList.add("appFooter-rtl"):instance.element.classList.remove("appFooter-rtl")}function AppFooter(){var elem,_this=this;this.element=((elem=document.createElement("div")).classList.add("appfooter"),_dom.default.allowBackdropFilter()&&elem.classList.add("appfooter-withbackdropfilter"),document.body.appendChild(elem),elem),setRtlClasses(this),_events.default.on(_appsettings.default,"change",function(e,name){"language"===name&&setRtlClasses(_this)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/appfooter/appfooter.css"]),AppFooter.prototype.add=function(elem){"string"==typeof elem?this.element.insertAdjacentHTML("beforeend",elem):this.element.appendChild(elem)},AppFooter.prototype.insert=function(elem){var thisElement=this.element;"string"==typeof elem?thisElement.insertAdjacentHTML("afterbegin",elem):thisElement.insertBefore(elem,thisElement.firstChild)},AppFooter.prototype.setWithContent=function(withContent){var thisElement=this.element;withContent?thisElement.classList.add("appfooter-withContent"):thisElement.classList.remove("appfooter-withContent")},AppFooter.prototype.setWithContent50w=function(withContent){var thisElement=this.element;withContent?thisElement.classList.add("appfooter-withContent50w"):thisElement.classList.remove("appfooter-withContent50w")},AppFooter.prototype.destroy=function(){this.element=null};_exports.default=new AppFooter});
|
||||
1
modules/appheader/appheader.css
Normal file
1
modules/appheader/appheader.css
Normal file
@@ -0,0 +1 @@
|
||||
:root{--headerlogo-background-position:left center}.rtl:root{--headerlogo-background-position:right center}.pageTitle{vertical-align:middle;margin:0;-webkit-align-items:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pageTitleWithLogo{background-position:left center;background-position:var(--headerlogo-background-position);background-size:contain;background-repeat:no-repeat;width:10.25em;height:1.25em}.pageTitleWithDefaultLogo{width:4.7em}.darkContentContainer .pageTitleWithDefaultLogo{background-image:url(../themes/logowhite.png)}.headerButton{-webkit-flex-shrink:0;flex-shrink:0}@supports selector(:hover) and (display:revert) and (column-gap:1em){.headerLeft,.headerRight{-webkit-column-gap:.55em;column-gap:.55em}.headerSectionItem{margin:0!important}.headerSelectedPlayer{-webkit-margin-end:-.5em!important;margin-inline-end:-.5em!important}}.pageTitle-marginstart{-webkit-margin-start:.5em!important;margin-inline-start:.5em!important}@media all and (display-mode:minimal-ui){.headerBackButton-showfullscreen{display:none!important}}.headerUserButtonImage{border-radius:1000px}.headroom-hidden.headroom-scrolling .headerSection{visibility:hidden}.skinHeader{container-type:inline-size;container-name:appheader}@supports (height:calc(3.125em + 2 * max(3em,4em))){.skinHeader{padding-top:max(1.2em,env(safe-area-inset-top,0))}}.skinHeader-withnowplaying{padding-top:0}.headerMiddle{overflow:hidden;-webkit-flex-grow:1;flex-grow:1;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin:0 auto}.headerMiddle-withSectionTabs{width:60%}.headerLeft{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;overflow:hidden;-webkit-padding-start:.85em;padding-inline-start:.85em;-webkit-flex-grow:1;flex-grow:1;max-width:60%}.headerRight{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end;white-space:nowrap;-webkit-padding-end:.85em;padding-inline-end:.85em;-webkit-flex-grow:0;flex-grow:0;-webkit-margin-start:auto;margin-inline-start:auto;max-width:40%}.headerLeft,.headerRight{box-sizing:border-box;-webkit-flex-shrink:1;flex-shrink:1;-webkit-flex-basis:auto;flex-basis:auto}.headerLeft,.headerRight,.headerMiddle{height:3.127em}.headerTop-withSectionTabs .headerLeft,.headerTop-withSectionTabs .headerRight{width:20%}.sectionTabs{text-align:center}.headerClock{margin:0 .25em;display:inline-block;vertical-align:middle;font-weight:600;font-size:118%}.headerSelectedPlayer{font-weight:400;max-width:10em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.button-help{color:#42a5f5!important}.btnHeaderPremiere{-webkit-margin-end:1em;margin-inline-end:1em}@media not all and (min-width:48em){.btnHeaderPremiere{display:none!important}}.tabs-viewmenubar{border-radius:100em;display:-webkit-flex;display:flex;container-type:initial!important;container-name:tabs-viewmenubar!important;padding-top:.25em;padding-bottom:.25em}.main-tab-button{padding:0 1.76ch!important;border-radius:100em!important;max-width:40ch;height:1.8em}
|
||||
1
modules/appheader/appheader.js
Normal file
1
modules/appheader/appheader.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/appheader/appheader_nontv.css
Normal file
1
modules/appheader/appheader_nontv.css
Normal file
@@ -0,0 +1 @@
|
||||
@media all and (orientation:portrait){.pageTitle:not(.pageTitleWithLogo){font-size:1.17em}}@media all and (min-width:60em){.headerHomeButton-withdockeddrawer,.headerMenuButton-withdockeddrawer{display:none!important}.skinHeader-withfulldrawer .pageTitleWithDefaultLogo{display:none}.headerLeft-withdockeddrawer{-webkit-padding-start:3rem;padding-inline-start:3rem}}@supports (container-type:inline-size){@container appheader not (min-width:120em){.headerTop-withSectionTabs{-webkit-flex-wrap:wrap;flex-wrap:wrap}.headerTop-withSectionTabs .headerLeft{width:70%;max-width:initial}.headerTop-withSectionTabs .headerRight{max-width:initial}.headerMiddle-withSectionTabs{-webkit-flex-grow:initial!important;flex-grow:initial!important;-webkit-flex-basis:100%;flex-basis:100%;-webkit-order:3;order:3;margin-top:.45em;width:initial}}}@supports not (container-type:inline-size){@media not all and (min-width:120em){.headerTop-withSectionTabs{-webkit-flex-wrap:wrap;flex-wrap:wrap}.headerTop-withSectionTabs .headerLeft{width:70%;max-width:initial}.headerTop-withSectionTabs .headerRight{max-width:initial}.headerMiddle-withSectionTabs{-webkit-flex-grow:initial!important;flex-grow:initial!important;-webkit-flex-basis:100%;flex-basis:100%;-webkit-order:3;order:3;margin-top:.45em;width:initial}}}@media not all and (min-width:66em){.headerMiddle-withSectionTabs{margin-top:0;height:2.5em}}@media (pointer:fine){.adjustHeaderForEmbeddedScroll{right:1.08em;inset-inline-start:0;inset-inline-end:1.08em}}@media all and (min-width:66em){.tabs-viewmenubar{-webkit-padding-start:3rem;padding-inline-start:3rem;-webkit-padding-end:3rem;padding-inline-end:3rem}}@media not all and (min-width:50em){.headerSettingsButton{display:none!important}}@supports (container-type:inline-size){@container appheader not (min-width:66em){.tabs-viewmenubar-backgroundcontainer{background:0 0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}@container appheader (min-width:66em){.tabs-viewmenubar{font-size:112%;-webkit-padding-start:.25em;padding-inline-start:.25em;-webkit-padding-end:.25em;padding-inline-end:.25em}}}@supports not (container-type:inline-size){@media not all and (min-width:66em){.tabs-viewmenubar-backgroundcontainer{background:0 0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}@media all and (min-width:66em){.tabs-viewmenubar{font-size:112%;-webkit-padding-start:.25em;padding-inline-start:.25em;-webkit-padding-end:.25em;padding-inline-end:.25em}}}@supports (container-type:inline-size){@container appheader (min-width:120em){.tabs-viewmenubar{font-size:116%;max-width:90%}.headerTop-withSectionTabs .headerLeft{-webkit-flex-grow:0;flex-grow:0}}}@supports not (container-type:inline-size){@media all and (min-width:120em){.tabs-viewmenubar{font-size:116%;max-width:90%}.headerTop-withSectionTabs .headerLeft{-webkit-flex-grow:0;flex-grow:0}}}@media not all and (min-width:37.5em){.headerLeft{max-width:calc(100% - 20ch)}.headerRight{max-width:20ch}.headerSelectedPlayer{display:none}}
|
||||
1
modules/appheader/appheader_tv.css
Normal file
1
modules/appheader/appheader_tv.css
Normal file
@@ -0,0 +1 @@
|
||||
.semiTransparent,.appHeader-withfocuspreview{text-shadow:.14em .14em .28em rgba(0,0,0,.45)}.headerNowPlaying{-webkit-flex-basis:100%;flex-basis:100%;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:0 2ch;padding-top:env(safe-area-inset-top,0);height:4em;box-sizing:border-box;margin-bottom:.8em}@supports (height:calc(3.125em + 2 * max(3em,4em))){.headerNowPlaying{height:calc(4em + env(safe-area-inset-top,0))}}.headerTop-withSectionTabs-hideTitle .pageTitle:not(.pageTitleWithDefaultLogo){display:none!important}.headerTop-withSectionTabs .headerHelpButton{display:none!important}.headerTop-withSectionTabs .headerLeft{-webkit-flex-grow:0;flex-grow:0}.tabs-viewmenubar{max-width:90%;font-size:inherit;-webkit-padding-start:.25em;padding-inline-start:.25em;-webkit-padding-end:.25em;padding-inline-end:.25em}
|
||||
1
modules/appheader/appheadercontent.js
Normal file
1
modules/appheader/appheadercontent.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var skinHeaderElement=document.querySelector(".skinHeader");function AppHeaderContent(){}AppHeaderContent.prototype.ensureSizeObserver=function(){this.resizeObserver||(this.resizeObserver=new ResizeObserver(function(){this._headerHeight=null}.bind(this),{}),this.resizeObserver.observe(skinHeaderElement))},AppHeaderContent.prototype.getHeight=function(){var height=this._headerHeight;return null==height&&((height=skinHeaderElement.offsetHeight)&&(this._headerHeight=height),this.ensureSizeObserver()),height};_exports.default=new AppHeaderContent});
|
||||
1
modules/approuter.js
Normal file
1
modules/approuter.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/babelhelpers.js
Normal file
1
modules/babelhelpers.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/backdrop/backdrop.js
Normal file
1
modules/backdrop/backdrop.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/backdrop/style.css
Normal file
1
modules/backdrop/style.css
Normal file
@@ -0,0 +1 @@
|
||||
.backdropContainer{contain:style size;position:fixed;top:0;left:0;right:0;bottom:0;inset-inline-start:0;inset-inline-end:0;z-index:-1;touch-action:none}.backdropImage{background-repeat:no-repeat;background-position:center center;background-size:cover;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;contain:layout style paint;object-fit:cover;object-position:center center;width:100%;height:100%;content-visibility:auto;background-color:#000}.backdropImage-contain{background-size:contain;object-fit:contain}.backdropImageFadeIn{-webkit-animation:backdrop-fadein .8s ease-out normal;animation:backdrop-fadein .8s ease-out normal}@-webkit-keyframes backdrop-fadein{from{opacity:0}to{opacity:1}}@keyframes backdrop-fadein{from{opacity:0}to{opacity:1}}
|
||||
1
modules/backdropscreensaver/plugin.js
Normal file
1
modules/backdropscreensaver/plugin.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../emby-apiclient/connectionmanager.js"],function(_exports,_connectionmanager){function BackdropScreenSaver(){this.name="Backdrop Screen Saver",this.type="screensaver",this.id="backdropscreensaver",this.supportsAnonymous=!1}function getItems(query){query=Object.assign({ImageTypes:"Backdrop",EnableImageTypes:"Backdrop",IncludeItemTypes:"Movie,Series,MusicArtist,Game",SortBy:"Random",Recursive:!0,ImageTypeLimit:1,Fields:"ProductionYear"},query);var apiClient=_connectionmanager.default.currentApiClient();return apiClient.getItems(apiClient.getCurrentUserId(),query)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,BackdropScreenSaver.prototype.show=function(){var instance;this.currentSlideshow||(instance=this,Emby.importModule("./modules/slideshow/slideshow.js").then(function(slideshow){instance.currentSlideshow||((slideshow=new slideshow({showTitle:!0,cover:!0,getItems:getItems,cardFields:["Name","ProductionYear"],interactive:!1,autoplay:!0})).show(),instance.currentSlideshow=slideshow)}))},BackdropScreenSaver.prototype.hide=function(){var currentSlideshow=this.currentSlideshow;currentSlideshow&&(currentSlideshow.hide(),this.currentSlideshow=null)};_exports.default=BackdropScreenSaver});
|
||||
1
modules/backmenu/backmenu.js
Normal file
1
modules/backmenu/backmenu.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../emby-apiclient/connectionmanager.js","./../common/servicelocator.js","./../layoutmanager.js","./../common/globalize.js","./../approuter.js","./../actionsheet/actionsheet.js","./../common/itemmanager/itemmanager.js"],function(_exports,_connectionmanager,_servicelocator,_layoutmanager,_globalize,_approuter,_actionsheet,_itemmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default=function(options){var apiClient=_connectionmanager.default.currentApiClient();return function(apiClient){return apiClient?_connectionmanager.default.getSignedInUsers(apiClient):Promise.resolve([])}(apiClient).then(function(signedInUsers){return function(apiClient){return apiClient?apiClient.getCurrentUser():Promise.resolve(null)}(apiClient).then(function(user){return _actionsheet.default.show({items:function(options,apiClient,user,signedInUsers){var items=[],showExit=_layoutmanager.default.tv&&_servicelocator.appHost.supports("exit"),exitFirst=options.exitFirst,userIcon=(showExit&&exitFirst&&items.push({name:_globalize.default.translate("Exit"),id:"exit",icon:""}),!1!==options.settings&&(items.push({name:_globalize.default.translate("HeaderAppSettings"),id:"settings",icon:"",secondaryText:_servicelocator.appHost.appName()+" "+_servicelocator.appHost.appVersion()}),user)&&user.Policy.IsAdministrator&&_approuter.default.getRouteInfo(_approuter.default.getRouteUrl("manageserver"))&&items.push({name:_globalize.default.translate("ManageEmbyServer"),id:"manageserver",icon:"dashboard"}),_servicelocator.appHost.supports("multiserver")&&items.push({name:_globalize.default.translate("HeaderChangeServer"),id:"selectserver",icon:_itemmanager.default.getDefaultIcon({Type:"Server"})}),_itemmanager.default.getDefaultIcon(user));if(apiClient&&!_connectionmanager.default.isLoggedIntoConnect()){for(var i=0,length=signedInUsers.length;i<length;i++){var signedInUser=signedInUsers[i];signedInUser.Id!==user.Id&&items.push({name:signedInUser.Name,id:"user-"+signedInUser.Id,ImageUrl:signedInUser.PrimaryImageTag?apiClient.getUserImageUrl(signedInUser.Id,{maxWidth:80,type:"Primary",tag:signedInUser.PrimaryImageTag}):null,icon:userIcon})}items.push({name:_globalize.default.translate("HeaderChangeUser"),id:"changeuser",icon:_itemmanager.default.getDefaultIcon({Type:"User"})})}return items.push({name:_globalize.default.translate("HeaderSignOut"),id:"logout",icon:""}),showExit&&!exitFirst&&items.push({name:_globalize.default.translate("Exit"),id:"exit",icon:""}),_servicelocator.appHost.supports("sleep")&&items.push({name:_globalize.default.translate("Sleep"),id:"sleep",icon:""}),_servicelocator.appHost.supports("shutdown")&&items.push({name:_globalize.default.translate("Shutdown"),id:"shutdown",icon:""}),_servicelocator.appHost.supports("restart")&&items.push({name:_globalize.default.translate("Restart"),id:"restart",icon:""}),items}(options,apiClient,user,signedInUsers),positionTo:options.positionTo,positionY:options.positionY,positionX:options.positionX,transformOrigin:options.transformOrigin,item:!1===options.showUserInfo?null:user,showServerName:!0,hasItemIcon:!0,hasItemImage:!0,roundImage:!0,fields:["Name","ShortOverview"],text:options.text,dialogSize:options.positionTo||!_layoutmanager.default.tv?null:"fullscreen"}).then(function(id){switch(id){case"logout":_approuter.default.logout(apiClient);break;case"changeuser":_approuter.default.showServerLogin({apiClient:apiClient});break;case"home":_approuter.default.goHome();break;case"exit":_servicelocator.appHost.exit();break;case"sleep":_servicelocator.appHost.sleep();break;case"shutdown":_servicelocator.appHost.shutdown();break;case"restart":_servicelocator.appHost.restart();break;case"settings":_approuter.default.showSettings();break;case"manageserver":_layoutmanager.default.tv?_approuter.default.showSettings({start:"server"}):_approuter.default.show(_approuter.default.getRouteUrl("manageserver"));break;case"selectserver":_approuter.default.showSelectServer();break;default:if(!(id||"").startsWith("user-"))return Promise.reject();var userId=id.substring(5);!function(apiClient,userId){_approuter.default.changeToUser({apiClient:apiClient,userId:userId}).catch(function(err){"aborterror"!==((null==err?void 0:err.name)||"").toLowerCase()&&console.log("error changing to user: "+err)})}(apiClient,userId)}return Promise.resolve()})})})}});
|
||||
1
modules/browser.js
Normal file
1
modules/browser.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var userAgent=navigator.userAgent,browser={},userAgentLower=userAgent.toLowerCase(),_navigator$platform=(/(edg)[ \/]([\w.]+)/.exec(userAgentLower)?browser.edg=!0:/(opera)[ \/]([\w.]+)/.exec(userAgentLower)||/(opr)[ \/]([\w.]+)/.exec(userAgentLower)?browser.opera=!0:/(firefox)[ \/]([\w.]+)/.exec(userAgentLower)&&(browser.firefox=!0),browser.firefox||(/(chrome)[ \/]([\w.]+)/.exec(userAgentLower)?browser.chrome=!0:(/(safari)[ \/]([\w.]+)/.exec(userAgentLower)||userAgentLower.includes("webkit"))&&(browser.safari=!0)),userAgentLower.includes("playstation")&&(browser.playstation=!0,browser.tv=!0,userAgentLower.includes("playstation 4"))&&(browser.ps4=!0),browser.xboxOne=!!userAgentLower.includes("xbox"),browser.tizen=userAgentLower.includes("tizen")||null!=globalThis.tizen,browser.netcast=userAgentLower.includes("netcast")||userAgentLower.includes("Web0S".toLowerCase()),browser.electron=userAgentLower.includes("electron"),browser.windows=userAgentLower.includes("windows"),browser.android=userAgentLower.includes("android"),browser.tizen&&(browser.sdkVersion=function(){var v;if("undefined"!=typeof tizen&&tizen.systeminfo)return v=tizen.systeminfo.getCapability("http://tizen.org/feature/platform.version"),parseFloat(v)}()),browser.tv=function(userAgent){return!!((userAgent=userAgent.toLowerCase()).includes("tv")||userAgent.includes("viera")||userAgent.includes("web0s")||userAgent.includes("zidoo"))}(userAgent),(browser.tv&&userAgentLower.includes("opr/")||globalThis.location&&(globalThis.location.href||"").toString().toLowerCase().includes("operatv"))&&(browser.tv=!0,browser.operaTv=!0),(browser.xboxOne||browser.playstation||browser.tizen||browser.netcast||browser.operaTv||userAgentLower.includes("smarthub")||userAgentLower.includes("smarttv")||userAgentLower.includes("tv/"))&&(browser.tv=!0),(null==(_navigator$platform=navigator.platform)?void 0:_navigator$platform.toLowerCase())||"");browser.iOS=userAgentLower.includes("ipad")||userAgentLower.includes("iphone")||userAgentLower.includes("ipod touch")||"iphone"===_navigator$platform||_navigator$platform.startsWith("mac")&&1<navigator.maxTouchPoints,browser.iOS||(browser.osx=userAgentLower.includes("mac os x")||_navigator$platform.startsWith("mac")),browser.chromecast=browser.chrome&&userAgentLower.includes("crkey"),function(browser,userAgent){var userAgentData=navigator.userAgentData;if(userAgentData||(userAgentData={},navigator.userAgentData=userAgentData),null==userAgentData.mobile)try{userAgentData.mobile=function(userAgent){var lower=userAgent.toLowerCase();if(lower.includes("android tv"))return!1;for(var terms=["mobi","ipad","iphone","ipod","silk","kindle fire","opera mini"],i=0,length=terms.length;i<length;i++)if(lower.includes(terms[i]))return!0;return"undefined"!=typeof document&&"ontouchstart"in document.documentElement}(userAgent)}catch(err){console.log("error setting userAgentData.mobile: "+err)}!function(userAgentData,browser){var brands=userAgentData.brands;if(brands||(userAgentData.brands=brands=[]),!brands.length){userAgentData=browser.edg?"Edge":browser.opera?"Opera":browser.chrome?"Chrome":browser.firefox?"Firefox":browser.safari?"Safari":"Web Browser";try{brands.push({brand:userAgentData})}catch(err){console.log("error adding brands: "+err)}if(browser.chrome)try{brands.push({brand:"Chromium"})}catch(err){console.log("error adding brands: "+err)}}}(userAgentData,browser),userAgentData.getHighEntropyValues||(userAgentData.getHighEntropyValues=function(){var info={};return this.android?info.platform="Android":this.iOS?info.platform="iOS":this.ipad?info.platform="iPadOS":this.osx?info.platform="macOS":this.xboxOne?info.platform="Xbox One":this.windows?info.platform="Windows":this.playstation?info.platform="PlayStation":this.netcast?info.platform="LG TV":this.tizen?info.platform="Samsung TV":this.operaTv&&(info.platform="Opera TV"),Promise.resolve(info)}.bind(browser))}(browser,userAgent),_exports.default=browser});
|
||||
1
modules/browserdeviceprofile.js
Normal file
1
modules/browserdeviceprofile.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/cardbuilder/card.css
Normal file
1
modules/cardbuilder/card.css
Normal file
File diff suppressed because one or more lines are too long
1
modules/cardbuilder/card_nontv.css
Normal file
1
modules/cardbuilder/card_nontv.css
Normal file
@@ -0,0 +1 @@
|
||||
@media not all and (pointer:fine){.cardBox-touchzoom{transition:-webkit-transform .6s ease-out;transition:transform .6s ease-out;transition-delay:0.1s}.card-autoactive:active,.itemElement-activetouch{z-index:10;contain:layout style}.card-autoactive:active>.cardBox-touchzoom,.itemElement-activetouch>.cardBox-touchzoom{-webkit-transform:scale(1.08);transform:scale(1.08)}}@media all and (min-width:60em) and (max-width:99em){.withFullDrawer{--app-cards-size-adjust:-1}}@media all and (orientation:landscape){:root{--backdrop-cards:2}}@media all and (orientation:portrait) and (min-width:24em){:root{--backdrop-cards:2}}@media all and (orientation:portrait) and (min-width:31.25em){:root{--square-cards:3}}@media all and (min-width:31.25em){:root{--four-three-cards:3}}@media all and (min-width:36em){:root{--square-cards:3;--portrait-cards:4}}@media all and (min-width:40em){:root{--square-cards:4;--small-sidefooter-cards:2}}@media all and (orientation:landscape) and (min-width:40em){:root{--portrait-cards:5}}@media all and (orientation:landscape) and (min-width:50em){:root{--square-cards:5}}@media all and (min-width:45em){:root{--four-three-cards:4;--sidefooter-cards:2}}@media all and (min-width:50em){:root{--small-sidefooter-cards:3}}@media (min-width:50em){:root{--backdrop-cards:3}}@media all and (min-width:55em){:root{--banner-cards:2;--square-cards:5;--portrait-cards:5}}@media (min-width:62.5em){:root{--backdrop-cards:4}}@media all and (min-width:66em){:root{--small-sidefooter-cards:4}}@media all and (min-width:70em){:root{--four-three-cards:5;--square-cards:6;--portrait-cards:6}}@media all and (min-width:76em){:root{--sidefooter-cards:3}}@media all and (min-width:82.5em){:root{--backdrop-cards:5}}@media all and (min-width:85em){:root{--square-cards:7;--portrait-cards:7}}@media all and (min-width:100em){:root{--banner-cards:3;--small-sidefooter-cards:5;--four-three-cards:6;--square-cards:8;--portrait-cards:8}}@media all and (min-width:115em){:root{--small-sidefooter-cards:6;--portrait-cards:9;--square-cards:9}}@media all and (min-width:120em){:root{--small-sidefooter-cards:6}}@media all and (min-width:130em){:root{--square-cards:10;--portrait-cards:10}}@media all and (min-width:131.25em){:root{--backdrop-cards:6;--four-three-cards:7;--sidefooter-cards:4}}@media all and (min-width:145em){:root{--square-cards:11;--portrait-cards:11}}@media all and (min-width:150em){:root{--banner-cards:4}}@media all and (min-width:160em){:root{--backdrop-cards:7;--small-sidefooter-cards:7;--four-three-cards:8;--square-cards:12;--portrait-cards:12}}@media all and (min-width:175em){:root{--square-cards:13;--portrait-cards:13}}@media all and (min-width:180em){:root{--small-sidefooter-cards:8;--four-three-cards:9}}@media all and (min-width:190em){:root{--square-cards:14;--portrait-cards:14}}@media all and (min-width:200em){:root{--banner-cards:5;--sidefooter-cards:5;--backdrop-cards:8;--small-sidefooter-cards:9;--four-three-cards:10}}@media all and (min-width:205em){:root{--square-cards:15;--portrait-cards:15}}@media all and (min-width:220em){:root{--sidefooter-cards:6;--backdrop-cards:9;--small-sidefooter-cards:10;--four-three-cards:11;--square-cards:16;--portrait-cards:16}}@media all and (min-width:240em){:root{--banner-cards:6;--sidefooter-cards:7;--small-sidefooter-cards:11;--four-three-cards:12;--square-cards:17;--portrait-cards:17}}
|
||||
1
modules/cardbuilder/card_nontv2.css
Normal file
1
modules/cardbuilder/card_nontv2.css
Normal file
@@ -0,0 +1 @@
|
||||
.cardOverlayButton{color:rgba(255,255,255,.76);margin:0;z-index:1}.cardOverlayButton-br{position:absolute;bottom:.5em;right:.25em;inset-inline-start:initial;inset-inline-end:.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:flex-end;justify-content:flex-end}.cardOverlayButton-fab{padding:.25em;font-size:140%}@media all and (orientation:portrait) and (max-width:35em){.scrollX{--backdrop-cards:1.2}}.cardOverlayContainer{background:rgba(51,51,51,.5);opacity:0;transition:opacity .2s ease-out;position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;-webkit-user-select:none;user-select:none;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;border-radius:.42em;z-index:2;contain:layout style;-webkit-user-select:none;user-select:none}@media not all and (pointer:fine){.cardOverlayContainer{display:none}}.cardContent-button+.cardOverlayContainer{cursor:pointer}.chkCardSelectContainer{font-size:88%;width:auto!important;margin:0!important;display:-webkit-inline-flex!important;display:inline-flex!important;-webkit-align-items:flex-start!important;align-items:flex-start!important;padding-top:.8em!important;position:absolute!important;top:0;left:0;inset-inline-start:0;inset-inline-end:initial;padding:.35em .25em!important}@media (pointer:fine){.card-hoverable:hover .cardOverlayContainer{opacity:1;display:-webkit-flex;display:flex}}.chkCardSelect{top:0;left:0;inset-inline-start:0;inset-inline-end:initial}.chkCardSelect-checkboxLabel::before{border-radius:100em!important;box-shadow:0 .25em .4375em rgba(0,0,0,.25)}.chkCardSelect-checkboxLabel::after{border-width:.2em!important}.cardOverlayFab-primary{font-size:280%;padding:.1em;position:absolute;top:50%;left:50%;inset-inline-start:50%;inset-inline-end:initial;margin-top:-.6em!important;margin-bottom:0!important;-webkit-margin-start:-.6em!important;margin-inline-start:-.6em!important;-webkit-margin-end:0!important;margin-inline-end:0!important}.multi-select-active .cardIndicator{display:none}.multi-select-active .cardOverlayContainer{opacity:1!important;display:-webkit-flex!important;display:flex!important}.multi-select-active .cardOverlayButton:not(.chkCardSelectContainer){display:none!important}.item-multiselected .cardOverlayContainer{background:0 0!important}
|
||||
1
modules/cardbuilder/card_post.css
Normal file
1
modules/cardbuilder/card_post.css
Normal file
@@ -0,0 +1 @@
|
||||
.cardPlayedIndicator,.cardTimerIndicator,.cardUserDisabledIcon{border-radius:100em;font-size:1.1em;height:1.25em;width:1.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;top:.18em;position:absolute;right:.18em;inset-inline-start:initial;inset-inline-end:.18em;contain:layout style}.cardTimerIndicator{font-size:1.28em}.cardUserDisabledIcon{font-size:1.4em;color:#777;background:#d3d3d3;height:1.4em;width:1.4em}.cardPlayedIndicator+.cardTimerIndicator{right:1.5em;inset-inline-start:initial;inset-inline-end:1.5em}.cardCountIndicator{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;top:.225em;position:absolute;right:.225em;inset-inline-start:initial;inset-inline-end:.225em;contain:layout style}.cardProgramIndicator{contain:layout style;display:-webkit-inline-flex;display:inline-flex;margin-top:0;margin-bottom:.2em;-webkit-margin-start:.35em;margin-inline-start:.35em;-webkit-margin-end:0;margin-inline-end:0;padding:.08em .5em;border-radius:.42em;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;text-transform:uppercase;text-shadow:none;font-size:86%;font-weight:600}.appfooter-drag-reorder-active{display:none!important}.dragClone .cardBox{transition:-webkit-transform ease-out .3s!important;transition:transform ease-out .3s!important}.dragClone.dragging .cardBox{-webkit-transform:scale(70%)!important;transform:scale(70%)!important}.dragClone .cardOverlayContainer{display:none!important}.cardIndicatorIcon{font-size:1.6em;top:.225em;left:.225em;inset-inline-start:.225em;inset-inline-end:initial;position:absolute;color:#fff}.cardIndicatorIcon-dragHandle{right:.225em;inset-inline-start:initial;inset-inline-end:.225em;text-shadow:.14em .14em .28em rgba(0,0,0,.45);cursor:pointer}.cardMediaInfoItems{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;-webkit-column-gap:initial!important;column-gap:initial!important;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.cardMediaInfoItem{-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.cardMediaInfoItem+.cardMediaInfoItem{-webkit-margin-start:.5em!important;margin-inline-start:.5em!important}.cardMediaInfoItem .starIcon{line-height:.96}.card.dragging-over{position:relative;contain:none!important;z-index:1}.dragging-over-left::before{content:' ';width:.24em;position:absolute;top:.8em;bottom:.8em;left:-.14em;inset-inline-start:-.14em;inset-inline-end:initial;z-index:99999;border-radius:100em}.dragging-over-right::after{content:' ';width:.24em;position:absolute;right:-.14em;top:.8em;bottom:.8em;inset-inline-start:initial;inset-inline-end:-.14em;z-index:99999;border-radius:100em}.cardProgressBarContainer{background:0 0!important;height:.22em}.visualCardBox-vibrant-lg::before{content:" ";position:absolute;top:0;bottom:0;left:0;right:0;inset-inline-start:0;inset-inline-end:0;background:rgba(0,0,0,.2);z-index:-1}.autoWidthCardBox{contain:layout style}.card:focus .cardContent-bxsborder{contain:initial;content-visibility:initial;overflow:visible}.card:focus-visible .cardContent-bxsborder-fv{contain:initial;content-visibility:initial;overflow:visible}.sideFooterCard:focus .cardBox-sideFooter-f{overflow:visible}.sideFooterCard:focus .cardContent-sideFooter-f{border-start-start-radius:inherit;border-end-start-radius:inherit}.card:focus .cardContent-bxsborder::before{content:" ";position:absolute;top:-.34em;left:-.34em;right:-.34em;bottom:-.34em;border-width:.22em;border-style:solid;border-radius:.6em}.card:focus-visible .cardContent-bxsborder-fv::before{content:" ";position:absolute;top:-.34em;left:-.34em;right:-.34em;bottom:-.34em;border-width:.22em;border-style:solid;border-radius:.6em}.card:focus .cardContent-round::before{border-radius:100em}.cardImage-bxsborder{border-radius:inherit}.cardImage-bxsborder-fv{border-radius:inherit}.buttonCardBox{border-radius:100em;margin:.4em}.buttonCardBox::before,.cardBox-sideFooter::before{display:none!important}.cardText-watching{visibility:hidden}.cardText-currentwatching{visibility:visible}
|
||||
1
modules/cardbuilder/card_sizes_base.css
Normal file
1
modules/cardbuilder/card_sizes_base.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard{width:16.6666667%}.squareCard-horiz{width:15.3333333vw}.portraitCard{width:16.6666667%}.portraitCard-horiz{width:15.3333333vw}.bannerCard{width:33.333333%}.bannerCard-horiz{width:30.66667vw}.sideFooterCard{width:25%}.sideFooterCard-horiz{width:23vw}.fourThreeCard{width:25%}.fourThreeCard-horiz{width:23vw}.backdropCard{width:25%}.backdropCard-horiz{width:23vw}
|
||||
0
modules/cardbuilder/card_sizes_container.css
Normal file
0
modules/cardbuilder/card_sizes_container.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_all.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_all.css
Normal file
@@ -0,0 +1 @@
|
||||
.spotlightItemsContainer{height:auto}.spotlightButtonsItemsContainer{container-type:initial;height:auto}.spotlightButtonCard-horizontal{width:33.333333%}
|
||||
1
modules/cardbuilder/card_sizes_horizontal_base.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_base.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard-xGrid{width:7em}.portraitCard-xGrid{width:7em}.fourThreeCard-xGrid{width:9em}.backdropCard-xGrid{width:12em}.wideSpotlightCard{width:24em!important}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important}
|
||||
1
modules/cardbuilder/card_sizes_horizontal_container.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_container.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((100cqh / (max((2 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((100cqh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((100cqh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((100cqh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important}
|
||||
1
modules/cardbuilder/card_sizes_horizontal_var.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_var.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((55vh / (2 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((55vh / (3 + var(--app-cards-size-adjust) + var(--user-cards-size-adjust))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((55vh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important}
|
||||
1
modules/cardbuilder/card_sizes_horizontal_varcalcmax.css
Normal file
1
modules/cardbuilder/card_sizes_horizontal_varcalcmax.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (1 / 1)) + .6em)}.portraitCard-xGrid{width:calc((((55vh / (max((2 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 2)) + .6em)}.fourThreeCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (3 / 4)) + .6em)}.backdropCard-xGrid{width:calc((((55vh / (max((3 + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))) - .6em)/ (9 / 16)) + .6em)}.wideSpotlightCard{width:calc((((55vh * 2 / 3) - .6em)/ (9 / 16)) + .6em)}.spotlightButtonCardContent-horizontal{height:calc((55vh / 3) - .6em);aspect-ratio:initial!important;padding-bottom:0!important}
|
||||
1
modules/cardbuilder/card_sizes_var.css
Normal file
1
modules/cardbuilder/card_sizes_var.css
Normal file
@@ -0,0 +1 @@
|
||||
.squareCard{width:16.6666667%;width:calc(100% / (var(--square-cards) + var(--app-cards-size-adjust)))}.squareCard-horiz{width:15.3333333vw;width:calc(93vw / var(--square-cards))}.portraitCard{width:16.6666667%;width:calc(100% / (var(--portrait-cards) + var(--app-cards-size-adjust)))}.portraitCard-horiz{width:15.3333333vw;width:calc(93vw / var(--portrait-cards))}.bannerCard{width:33.333333%;width:calc(100% / (var(--banner-cards) + var(--app-cards-size-adjust)))}.bannerCard-horiz{width:30.66667vw;width:calc(93vw / var(--banner-cards))}.sideFooterCard{width:25%;width:calc(100% / (var(--sidefooter-cards) + var(--app-cards-size-adjust)))}.sideFooterCard-horiz{width:23vw;width:calc(93vw / var(--sidefooter-cards))}.smallSideFooterCard{width:16.6666667%;width:calc(100% / (var(--small-sidefooter-cards) + var(--app-cards-size-adjust)))}.smallSideFooterCard-horiz{width:15.3333333vw;width:calc(93vw / (var(--small-sidefooter-cards)))}.fourThreeCard{width:25%;width:calc(100% / (var(--four-three-cards) + var(--app-cards-size-adjust)))}.fourThreeCard-horiz{width:23vw;width:calc(93vw / var(--four-three-cards))}.backdropCard{width:25%;width:calc(100% / (var(--backdrop-cards) + var(--app-cards-size-adjust)))}.backdropCard-horiz{width:23vw;width:calc(93vw / var(--backdrop-cards))}
|
||||
1
modules/cardbuilder/card_sizes_varcalcmax.css
Normal file
1
modules/cardbuilder/card_sizes_varcalcmax.css
Normal file
@@ -0,0 +1 @@
|
||||
@supports (width:max(10em,5vw)){.squareCard{width:calc(100% / max((var(--square-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),2))}.squareCard-horiz{width:calc(93vw / max((var(--square-cards) + var(--user-cards-size-adjust)),2))}.portraitCard{width:calc(100% / max((var(--portrait-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),3))}.portraitCard-horiz{width:calc(93vw / max((var(--portrait-cards) + var(--user-cards-size-adjust)),3))}.bannerCard{width:calc(100% / max((var(--banner-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.bannerCard-horiz{width:calc(93vw / max((var(--banner-cards) + var(--user-cards-size-adjust)),1))}.sideFooterCard{width:calc(100% / max((var(--sidefooter-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.sideFooterCard-horiz{width:calc(93vw / max((var(--sidefooter-cards) + var(--user-cards-size-adjust)),1))}.smallSideFooterCard{width:calc(100% / max((var(--small-sidefooter-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1.3))}.smallSideFooterCard-horiz{width:calc(93vw / max((var(--small-sidefooter-cards) + var(--user-cards-size-adjust)),1.3))}.fourThreeCard{width:calc(100% / max((var(--four-three-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),2))}.fourThreeCard-horiz{width:calc(93vw / max((var(--four-three-cards) + var(--user-cards-size-adjust)),2))}.backdropCard{width:calc(100% / max((var(--backdrop-cards) + var(--user-cards-size-adjust) + var(--app-cards-size-adjust)),1))}.backdropCard-horiz{width:calc(93vw / max((var(--backdrop-cards) + var(--user-cards-size-adjust)),1))}}
|
||||
1
modules/cardbuilder/card_tv2.css
Normal file
1
modules/cardbuilder/card_tv2.css
Normal file
@@ -0,0 +1 @@
|
||||
:root{--square-cards:5;--banner-cards:3;--sidefooter-cards:3;--small-sidefooter-cards:4;--portrait-cards:6;--backdrop-cards:4;--four-three-cards:5}
|
||||
1
modules/cardbuilder/cardbuilder.js
Normal file
1
modules/cardbuilder/cardbuilder.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/cardbuilder/cardpadder_legacy.css
Normal file
1
modules/cardbuilder/cardpadder_legacy.css
Normal file
@@ -0,0 +1 @@
|
||||
.cardOverlayContainer{bottom:initial!important}.cardPadder-backdrop{padding-bottom:56.25%}.cardPadder-margin.cardPadder-backdrop{margin-bottom:56.25%}.cardPadder-square{padding-bottom:100%}.cardPadder-margin.cardPadder-square{margin-bottom:100%}.cardPadder-portrait{padding-bottom:150%}.cardPadder-margin.cardPadder-portrait{margin-bottom:150%}.cardPadder-fourThree{padding-bottom:75%}.cardPadder-margin.cardPadder-fourThree{margin-bottom:75%}.cardPadder-banner{padding-bottom:18.5%}.cardPadder-margin.cardPadder-banner{margin-bottom:18.5%}
|
||||
1
modules/channelchanger/channelchanger.js
Normal file
1
modules/channelchanger/channelchanger.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../dom.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/usersettings/usersettings.js","./../common/playback/playbackmanager.js","./../common/itemmanager/itemmanager.js","./../common/globalize.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js"],function(_exports,_dom,_connectionmanager,_events,_usersettings,_playbackmanager,_itemmanager,_globalize,_loading,_dialoghelper){var currentChangeOptions,inputDisplayElement,alpanumericShortcutTimeout;function clearState(){clearAlphaNumericShortcutTimeout(),currentChangeOptions=null;var elem=inputDisplayElement;elem&&(elem.innerHTML="",elem.classList.add("hide"))}function onAlphanumericShortcutTimeout(){var options=currentChangeOptions,options=(clearState(),null==options?void 0:options.newItem);options&&(_loading.default.show(),_playbackmanager.default.play({items:[options]}))}function clearAlphaNumericShortcutTimeout(){alpanumericShortcutTimeout&&(clearTimeout(alpanumericShortcutTimeout),alpanumericShortcutTimeout=null)}function updateDisplayElement(options){var item=options.currentItem,offset=options.offset;!function(apiClient,options){var query;return options.channelsResult?Promise.resolve(options.channelsResult):(query={UserId:apiClient.getCurrentUserId(),IsAiring:!0,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",Fields:"ProgramPrimaryImageAspectRatio,PrimaryImageAspectRatio",EnableUserData:!1,SortBy:"ChannelNumber,SortName",AddCurrentProgram:!1},_usersettings.default.addLiveTvChannelSortingToQuery(query,_globalize.default),apiClient.getLiveTvChannels(query).then(function(result){return options.channelsResult=result}))}(_connectionmanager.default.getApiClient(item),options).then(function(result){for(var index=-1,channels=result.Items,i=0,length=channels.length;i<length;i++)if(channels[i].Id===item.Id){index=i;break}-1===index&&(index=0),index+=offset,index=Math.min(channels.length-1,index),index=Math.max(index,0),(item=channels[index])&&(options.numChannels=channels.length,options.newItem=item,options.newItemIndex=index,function(item){var html,elem=inputDisplayElement;elem&&(html="",html+=_itemmanager.default.getDisplayName(item,{channelNumberFirst:!0}),elem.innerHTML=html,elem.classList.remove("hide"))}(item))})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/alphanumericshortcuts/alphanumericshortcuts.css"]),_events.default.on(_playbackmanager.default,"playbackstop",clearState);_exports.default={onChannelChangeRequest:function(options){inputDisplayElement||((inputDisplayElement=document.createElement("div")).classList.add("alphanumeric-shortcut","hide","dialog"),_dom.default.allowBackdropFilter()&&inputDisplayElement.classList.add("dialog-blur"),document.body.appendChild(inputDisplayElement));var maxIndex,index,currentOptions=currentChangeOptions;currentOptions?(null!=(index=currentOptions.newItemIndex)&&(maxIndex=currentOptions.numChannels-1,(index=index+options.offset)<0?options.offset+=0-index:maxIndex<index&&(options.offset-=index-maxIndex)),currentOptions.offset+=options.offset,options=currentOptions):currentChangeOptions=options,updateDisplayElement(options),clearAlphaNumericShortcutTimeout(),alpanumericShortcutTimeout=setTimeout(onAlphanumericShortcutTimeout,2e3)}}});
|
||||
1
modules/chromecast/chromecasthelpers.js
Normal file
1
modules/chromecast/chromecasthelpers.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../common/servicelocator.js"],function(_exports,_connectionmanager,_events,_servicelocator){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var protocols="(?:(?:http|https|rtsp|ftp):\\/\\/)",linkRegExp=RegExp("(?:(?:(?:http|https|rtsp|ftp):\\/\\/)?(?:(?:[a-z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-f0-9]{2})){1,64}(?:\\:(?:[a-z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-f0-9]{2})){1,25})?\\@)?(?:((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?|(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[0-9])))(?:\\:\\d{1,5})?(?:\\/(?:(?:[a-z0-9\\/\\@\\&\\#\\~\\*\\_\\-\\+])|(?:\\%[a-f0-9]{2})|(?:[\\;\\?\\:\\.\\!\\'\\(\\)\\,\\=]+(?=(?:[a-z0-9\\/\\@\\&\\#\\~\\*\\_\\-\\+])|(?:\\%[a-f0-9]{2}))))*|\\b|$)","gi"),protocolRegExp=RegExp("^"+protocols,"i");var LinkParser={parse:function(text){for(var links=[],match=linkRegExp.exec(text);match;){var txt=match[0],pos=match.index,len=txt.length,url=function(url){return url=url.match(protocolRegExp)?url:"http://"+url}(text);links.push({pos:pos,text:txt,len:len,url:url}),match=linkRegExp.exec(text)}return links}},cache={};function clearCache(){cache={}}function addToCache(key,value){cache[key]={value:value,time:Date.now()}}_events.default.on(_connectionmanager.default,"localusersignedin",clearCache),_events.default.on(_connectionmanager.default,"localusersignedout",clearCache);_exports.default={getServerAddress:function(apiClient){var serverAddress=apiClient.serverAddress();if(!(address=(address=serverAddress).toLowerCase()).includes("127.0.0.1")&&!address.includes("localhost")){if(function(address){return 1===LinkParser.parse(address).length}(serverAddress))return Promise.resolve(serverAddress);if(serverAddress.toLowerCase().startsWith("https:")&&_servicelocator.appHost.supports("multiserver"))return Promise.resolve(serverAddress)}var address=function(key){key=cache[key];if(key&&Date.now()-key.time<18e4)return key.value;return null}(serverAddress);return address?Promise.resolve(address):apiClient.getEndpointInfo().then(function(endpoint){return endpoint.IsInNetwork?apiClient.getPublicSystemInfo().then(function(info){return info.LocalAddress?(addToCache(serverAddress,info.LocalAddress),info.LocalAddress):(addToCache(serverAddress,serverAddress),serverAddress)}):(addToCache(serverAddress,serverAddress),serverAddress)})}}});
|
||||
1
modules/chromecast/chromecastplayer.js
Normal file
1
modules/chromecast/chromecastplayer.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/colorjs/color.js
Normal file
1
modules/colorjs/color.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var calculateColorDifference=function(color1,color2){return Math.pow(color2.r-color1.r,2)+Math.pow(color2.g-color1.g,2)+Math.pow(color2.b-color1.b,2)},orderByLuminance=function(rgbValues){function calculateLuminance(p){return.2126*p.r+.7152*p.g+.0722*p.b}return rgbValues.sort(function(p1,p2){return calculateLuminance(p2)-calculateLuminance(p1)})};function buildPalette(colorsList){for(var orderedByColor=orderByLuminance(colorsList),colors=[],i=0;i<orderedByColor.length;i++){var color=orderedByColor[i];if(0<i)if(calculateColorDifference(color,orderedByColor[i-1])<120)continue;var rgb="rgb("+color.r+", "+color.g+", "+color.b+")";colors.push({css:rgb,color:color,relativeLuminance:function(color){var r_srgb=color.r/255,g_srgb=color.g/255,color=color.b/255;return.2126*(r_srgb<=.03928?r_srgb/12.92:Math.pow((.055+r_srgb)/1.055,2.4))+.7152*(g_srgb<=.03928?g_srgb/12.92:Math.pow((.055+g_srgb)/1.055,2.4))+.0722*(color<=.03928?color/12.92:Math.pow((.055+color)/1.055,2.4))}(color)})}return colors}var findBiggestColorRange=function(rgbValues){var rMin=Number.MAX_VALUE,gMin=Number.MAX_VALUE,bMin=Number.MAX_VALUE,rMax=Number.MIN_VALUE,gMax=Number.MIN_VALUE,bMax=Number.MIN_VALUE,rgbValues=(rgbValues.forEach(function(pixel){rMin=Math.min(rMin,pixel.r),gMin=Math.min(gMin,pixel.g),bMin=Math.min(bMin,pixel.b),rMax=Math.max(rMax,pixel.r),gMax=Math.max(gMax,pixel.g),bMax=Math.max(bMax,pixel.b)}),rMax-rMin),gRange=gMax-gMin,bRange=bMax-bMin,bRange=Math.max(rgbValues,gRange,bRange);return bRange===rgbValues?"r":bRange===gRange?"g":"b"},quantization=function(rgbValues,depth){var componentToSortBy,color;return 4===depth||0===rgbValues.length?((color=rgbValues.reduce(function(prev,curr){return prev.r+=curr.r,prev.g+=curr.g,prev.b+=curr.b,prev},{r:0,g:0,b:0})).r=Math.round(color.r/rgbValues.length),color.g=Math.round(color.g/rgbValues.length),color.b=Math.round(color.b/rgbValues.length),[color]):(componentToSortBy=findBiggestColorRange(rgbValues),rgbValues.sort(function(p1,p2){return p1[componentToSortBy]-p2[componentToSortBy]}),color=rgbValues.length/2,[].concat(babelHelpers.toConsumableArray(quantization(rgbValues.slice(0,color),depth+1)),babelHelpers.toConsumableArray(quantization(rgbValues.slice(1+color),depth+1))))};_exports.default={getPalette:function(url){return new Promise(function(resolve,reject){var image=new Image;image.crossOrigin="Anonymous",image.onload=function(){var canvas=document.createElement("canvas"),ctx=(canvas.width=image.width,canvas.height=image.height,canvas.getContext("2d"));ctx.drawImage(image,0,0);ctx=function(imageData){for(var rgbValues=[],i=0;i<imageData.length;i+=4){var rgb={r:imageData[i],g:imageData[i+1],b:imageData[i+2]};rgbValues.push(rgb)}return rgbValues}(ctx.getImageData(0,0,canvas.width,canvas.height).data),canvas=quantization(ctx,0);resolve(buildPalette(canvas))},image.onerror=reject,image.src=url})}}});
|
||||
1
modules/commandprocessor.js
Normal file
1
modules/commandprocessor.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/appsettings.js
Normal file
1
modules/common/appsettings.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/baseapprouter.js
Normal file
1
modules/common/baseapprouter.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/dataformatter.js
Normal file
1
modules/common/dataformatter.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./globalize.js"],function(_exports,_globalize){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var units=[["year",31536e6],["month",2592e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function numberToString(value,maximumFractionDigits){try{return new Intl.NumberFormat(_globalize.default.getCurrentLocales(),{style:"decimal",maximumFractionDigits:null==maximumFractionDigits?1:maximumFractionDigits}).format(value)}catch(err){return console.log("Error in NumberFormat: "+err),value}}function getRawResolutionText(item){return item.Width&&item.Height?item.Width+"x"+item.Height:null}_exports.default={formatRelativeTime:function(date,isPastEvent){for(var unit,date=(date="string"==typeof date?new Date(Date.parse(date)):date).getTime()-Date.now(),elapsedMsAbs=Math.abs(date),i=0,length=units.length;i<length&&!(elapsedMsAbs>=(unit=units[i])[1]);i++);return date=Math.round(date/unit[1]),!1!==isPastEvent&&-1<(date=Math.min(date,1))&&(date=-1,unit=units[units.length-1]),new Intl.RelativeTimeFormat(_globalize.default.getCurrentLocales(),{numeric:"always",style:"long"}).format(date,unit[0])},bitrateToString:function(value){return 1e3<(value/=1e3)?numberToString(value/=1e3,0)+" mbps":numberToString(parseInt(value))+" kbps"},sizeToString:function(size){var gb=1073741824;return gb<=size?numberToString(size/gb,1)+" GB":numberToString(size/1048576,1)+" MB"},numberToString:numberToString,getResolutionText:function(item){var videoStream,width,height;return"Video"===item.MediaType&&(videoStream=function(item){for(var _,mediaStreams=(null==(_=(item.MediaSources||[])[0])?void 0:_.MediaStreams)||item.MediaStreams||[],i=0,length=mediaStreams.length;i<length;i++){var mediaStream=mediaStreams[i];if("Video"===mediaStream.Type)return mediaStream}return null}(item))?(width=videoStream.Width,height=videoStream.Height,width&&height?3800<=width||2e3<=height?"4K":2500<=width||1400<=height?videoStream.IsInterlaced?"1440i":"1440p":1800<=width||1e3<=height?videoStream.IsInterlaced?"1080i":"1080p":1200<=width||700<=height?videoStream.IsInterlaced?"720i":"720p":700<=width||400<=height?videoStream.IsInterlaced?"480i":"480p":"SD":null):getRawResolutionText(item)}}});
|
||||
1
modules/common/datetime.js
Normal file
1
modules/common/datetime.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./globalize.js"],function(_exports,_globalize){function getDisplayRunningTime(ticks){var duration={},hours=ticks/36e9,hours=((hours=Math.floor(hours))&&(duration.hours=hours),(ticks-=36e9*hours)/6e8),hours=(ticks-=6e8*(hours=Math.floor(hours)),duration.minutes=hours,ticks/1e7),hours=Math.floor(hours);duration.seconds=hours;ticks=getDurationFormatter(_globalize.default.getCurrentLocale(),{style:"digital",fractionalDigits:0,hoursDisplay:"auto",minutesDisplay:"always",secondsDisplay:"always",millisecondsDisplay:"auto",microsecondsDisplay:"auto",nanosecondsDisplay:"auto"}).format(duration);return ticks=ticks.startsWith("0")?ticks.substring(1):ticks}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var toLocaleTimeStringSupportsLocales=function(){try{(new Date).toLocaleTimeString("i")}catch(e){return"RangeError"===e.name}return!1}(),dateTimeFormatters={};function getDateTimeFormatter(locale,options){var key=locale||"und",formatter=(key=(key=(key=(key=(key=(key=(key=(key=(key+=options.weekday||"null")+(options.year||"null"))+(options.month||"null"))+(options.day||"null"))+(options.hour||"null"))+(options.minute||"null"))+(options.second||"null"))+(options.dateStyle||"null"))+(options.timeStyle||"null"),dateTimeFormatters[key]);return formatter||(console.log("creating DateTimeFormat for "+locale+", with options: "+JSON.stringify(options)),formatter=new Intl.DateTimeFormat(locale,options),dateTimeFormatters[key]=formatter),formatter}var durationFormatters={};function getDurationFormatter(locale,options){var key=locale||"und",formatter=(key=(key=(key=(key=(key=(key=(key=(key+=options.style||"style")+(options.fractionalDigits||"fractionalDigits"))+(options.hoursDisplay||"hoursDisplay"))+(options.minutesDisplay||"minutesDisplay"))+(options.secondsDisplay||"secondsDisplay"))+(options.millisecondsDisplay||"millisecondsDisplay"))+(options.microsecondsDisplay||"microsecondsDisplay"))+(options.nanosecondsDisplay||"nanosecondsDisplay"),durationFormatters[key]);return formatter||(console.log("creating DurationFormat for "+locale+", with options: "+JSON.stringify(options)),formatter=new Intl.DurationFormat(locale,options),durationFormatters[key]=formatter),formatter}function toLocaleTimeString(date,options){if(date)return options=options||{},getDateTimeFormatter(_globalize.default.getCurrentDateTimeLocale(),options).format(date);throw new Error("date cannot be null")}_exports.default={parseISO8601Date:function(s){return new Date(Date.parse(s))},getDisplayRunningTime:getDisplayRunningTime,toLocaleDateString:function(date,options){if(date)return options=options||{},getDateTimeFormatter(_globalize.default.getCurrentDateTimeLocale(),options).format(date);throw new Error("date cannot be null")},toLocaleString:function(date,options){if(date)return options=options||{dateStyle:"short",timeStyle:"short"},getDateTimeFormatter(_globalize.default.getCurrentDateTimeLocale(),options).format(date);throw new Error("date cannot be null")},getDisplayTime:function(date){if(!date)throw new Error("date cannot be null");if("string"===(typeof date).toString().toLowerCase())try{date=new Date(Date.parse(date))}catch(err){return date}var time,suffix,timeLower;return toLocaleTimeStringSupportsLocales?toLocaleTimeString(date,{hour:"numeric",minute:"2-digit"}):((timeLower=(time=toLocaleTimeString(date)).toLowerCase()).includes("am")||timeLower.includes("pm")?(time=timeLower,timeLower=date.getHours()%12,suffix=11<date.getHours()?"pm":"am",time=(timeLower=timeLower||12)+(timeLower=":"+(timeLower=(timeLower=date.getMinutes())<10?"0"+timeLower:timeLower))+suffix):2<(date=time.split(":")).length&&(date.length=2,time=date.join(":")),time)},isRelativeDay:function(date,offsetInDays){var yesterday;if(date)return offsetInDays=(yesterday=new Date).getDate()+offsetInDays,yesterday.setDate(offsetInDays),date.getFullYear()===yesterday.getFullYear()&&date.getMonth()===yesterday.getMonth()&&date.getDate()===offsetInDays;throw new Error("date cannot be null")},toLocaleTimeString:toLocaleTimeString,supportsLocalization:function(){return toLocaleTimeStringSupportsLocales},getHumanReadableRuntime:function(ticks){var days=Math.trunc(ticks/864e9),hours=Math.trunc(ticks%864e9/36e9),minutes=Math.trunc(ticks%36e9/6e8),duration={},hasValue=!1;return days&&(duration.days=days,hasValue=!0),hours&&(duration.hours=hours,hasValue=!0),minutes&&(duration.minutes=minutes,hasValue=!0),hasValue?getDurationFormatter(_globalize.default.getCurrentLocale(),{style:"narrow"}).format(duration):getDisplayRunningTime(ticks)}}});
|
||||
1
modules/common/dialogs/alert.js
Normal file
1
modules/common/dialogs/alert.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../dialog/dialog.js"],function(_exports,_globalize,_dialog){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(text,title){title="string"==typeof text?{title:title,text:text}:text;text=[];!1!==title.confirmButton&&text.push({name:title.confirmText||_globalize.default.translate("ButtonGotIt"),id:"ok",href:title.confirmHref});return title.buttons=text,title.dialogType="alert",(0,_dialog.default)(title).then(function(result){return"ok"===result?Promise.resolve():Promise.reject()})}});
|
||||
1
modules/common/dialogs/confirm.js
Normal file
1
modules/common/dialogs/confirm.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../dialog/dialog.js"],function(_exports,_globalize,_dialog){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(text,title){var options;options="string"==typeof text?{title:title,text:text}:text;title=[];title.push({name:options.cancelText||_globalize.default.translate("Cancel"),id:"cancel",type:"cancel"===options.primary?null:"cancel"}),title.push({name:options.confirmText||_globalize.default.translate("ButtonOk"),id:"ok",type:"cancel"===options.primary?"cancel":"submit"}),"cancel"!==options.primary&&title.reverse();return options.buttons=title,options.dialogType="confirm",(0,_dialog.default)(options).then(function(result){return"ok"===result?Promise.resolve():options.cancelResult?Promise.reject(options.cancelResult):Promise.reject()})}});
|
||||
1
modules/common/filesystem.js
Normal file
1
modules/common/filesystem.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={fileExists:function(path){return Promise.reject()},directoryExists:function(path){return Promise.reject()}}});
|
||||
1
modules/common/globalize.js
Normal file
1
modules/common/globalize.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../emby-apiclient/events.js","./../emby-apiclient/connectionmanager.js","./appsettings.js"],function(_exports,_events,_connectionmanager,_appsettings){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var currentCulture,currentDateTimeCulture,currentLocales,cacheParam,allTranslations={},allStrings={},rtlLocales=["ar","he","fa","ur","ug"],arabicLocales=["ar","fa","ur","ug"];function getCurrentLocale(){return currentCulture}function normalizeNavigatorLanguage(lang){return lang=lang&&lang.split("@")[0]}function updateCurrentCulture(){var dir,dateTimeCulture,culture=_appsettings.default.language()||function(){var culture="undefined"==typeof document?null:document.documentElement.getAttribute("data-culture");return culture||(navigator.language?normalizeNavigatorLanguage(navigator.language):navigator.userLanguage?normalizeNavigatorLanguage(navigator.userLanguage):navigator.languages&&navigator.languages.length?normalizeNavigatorLanguage(navigator.languages[0]):"en-us")}();"undefined"!=typeof document&&CSS.supports("text-align","start")&&CSS.supports("inset-inline-start","0")&&(dir=rtlLocales.includes((culture||"").toLowerCase())?"rtl":"ltr","rtl"==(document.dir=dir)?document.documentElement.classList.add("rtl"):document.documentElement.classList.remove("rtl"),arabicLocales.includes((culture||"").toLowerCase())?document.documentElement.classList.add("rtl-arabic"):document.documentElement.classList.remove("rtl-arabic")),currentCulture=normalizeLocaleName(culture),currentLocales=[currentCulture];try{dateTimeCulture=_appsettings.default.dateTimeLocale()}catch(err){}currentDateTimeCulture=dateTimeCulture?normalizeLocaleName(dateTimeCulture):currentCulture,function(culture){for(var i in allTranslations)ensureTranslation(allTranslations[i],culture)}(currentCulture),_connectionmanager.default.setCurrentLocale(currentCulture)}function ensureTranslation(translationInfo,culture){return translationInfo.dictionaries[culture]?Promise.resolve():function(translations,lang){lang=normalizeLocaleName(lang);var filtered=translations.filter(function(t){return normalizeLocaleName(t.lang)===lang});filtered.length||(filtered=translations.filter(function(t){return"en-us"===normalizeLocaleName(t.lang)}));if(!filtered.length)return Promise.resolve();translations=filtered[0].path;cacheParam&&(translations=(translations+=-1===translations.indexOf("?")?"?":"&")+cacheParam);return("undefined"==typeof XMLHttpRequest?function(url){return fetch(url).then(function(response){return response.json()})}:function(url){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.onload=function(e){this.status<400?resolve(JSON.parse(this.response)):resolve()},xhr.onerror=function(){resolve()},xhr.send()})})(translations)}(translationInfo.translations,culture).then(function(dictionary){translationInfo.dictionaries[culture]=!0,dictionary&&(allStrings[culture]?allStrings[culture]=Object.assign(dictionary,allStrings[culture]||{}):allStrings[culture]=dictionary)})}function normalizeLocaleName(culture){var parts=(culture=culture.replace("_","-")).split("-"),parts=(culture=2===parts.length&&parts[0].toLowerCase()===parts[1].toLowerCase()?parts[0].toLowerCase():culture).toLowerCase();return"ca-es"===parts?"ca":"sv-se"===parts?"sv":parts}function register(options){allTranslations[options.name]={translations:options.strings||options.translations,dictionaries:{}}}function translateKey(key){var dictionary=allStrings[currentCulture];if(dictionary){dictionary=dictionary[key];if(dictionary)return dictionary}return key}function translate(key){for(var val=translateKey(key),i=1;i<arguments.length;i++)val=val.replaceAll("{"+(i-1)+"}",arguments[i]);return val}function translateHtml(html){var endIndex,startIndex=html.indexOf("${");return-1===startIndex||-1===(endIndex=html.indexOf("}",startIndex+=2))?html:(endIndex=translateKey(startIndex=html.substring(startIndex,endIndex)),translateHtml(html=html.replace("${"+startIndex+"}",endIndex)))}updateCurrentCulture(),_events.default.on(_connectionmanager.default,"localusersignedin",updateCurrentCulture),_events.default.on(_appsettings.default,"change",function(e,name){switch(name){case"language":case"datetimelocale":updateCurrentCulture()}});_exports.default={getString:translate,translate:translate,translateDocument:translateHtml,translateHtml:translateHtml,loadStrings:function(options){var locale=currentCulture;return"string"==typeof options?ensureTranslation(allTranslations[options],locale):(register(options),ensureTranslation(allTranslations[options.name],locale))},getCurrentLocale:getCurrentLocale,getCurrentDateTimeLocale:function(){return currentDateTimeCulture},getCurrentLocales:function(){return currentLocales},register:register,setCacheParam:function(value){cacheParam=value}}});
|
||||
1
modules/common/imagehelper.js
Normal file
1
modules/common/imagehelper.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/input/api.js
Normal file
1
modules/common/input/api.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/inputmanager.js
Normal file
1
modules/common/inputmanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/itemhelper.js
Normal file
1
modules/common/itemhelper.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./itemmanager/itemmanager.js"],function(_exports,_itemmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={getDisplayName:function(item,options){return _itemmanager.default.getDisplayName(item,options)},supportsAddingToCollection:function(item,user){return _itemmanager.default.canAddToCollection(item,user)},supportsAddingToPlaylist:function(item){return _itemmanager.default.canAddToPlaylist(item)},canDelete:function(item,user){return _itemmanager.default.canDelete(item,user)},canEdit:function(item,user){return _itemmanager.default.canEdit([item],user)},canEditImages:function(item,user){return _itemmanager.default.canEditImages(item,user)},canMarkPlayed:function(item){return _itemmanager.default.canMarkPlayed(item)},canRate:function(item){return _itemmanager.default.canRate(item)},canConvert:function(item,user){return _itemmanager.default.canConvert(item,user)},canRefreshMetadata:function(item,user){return _itemmanager.default.canRefreshMetadata(item,user)},supportsMediaSourceSelection:function(item){switch(item.Type){case"Movie":case"Trailer":case"Video":case"Episode":case"MusicVideo":case"TvChannel":return!0;default:return!1}},supportsExtras:function(item){if(item.IsFolder)return!1;switch(item.Type){case"TvChannel":case"Program":return!1}return"Video"===item.MediaType},normalizeMediaStreamForDisplay:function(item,mediaSource,stream){return"Subtitle"===(stream=Object.assign({},stream)).Type&&"Audio"===item.MediaType&&(stream.SubtitleType="Lyrics"),"MediaStream"!==stream.Type&&(stream.StreamType=stream.Type,stream.Type="MediaStream"),stream.ServerId=item.ServerId,stream.ItemId=item.Id,stream.MediaSourceId=mediaSource.Id,stream}}});
|
||||
1
modules/common/itemmanager/baseitemcontroller.js
Normal file
1
modules/common/itemmanager/baseitemcontroller.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/itemmanager/genericitemcontroller.js
Normal file
1
modules/common/itemmanager/genericitemcontroller.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./baseitemcontroller.js","./../globalize.js"],function(_exports,_baseitemcontroller,_globalize){function GenericItemController(){_baseitemcontroller.default.apply(this,arguments)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(GenericItemController.prototype,_baseitemcontroller.default.prototype),GenericItemController.prototype.getTypeNames=function(){return["GenericListItem"]},GenericItemController.prototype.getDisplayName=function(item,options){return item.Name},GenericItemController.prototype.isSingleItemFetchRequired=function(typeName){return!1},GenericItemController.prototype.getDefaultIcon=function(item){return item.Icon||"folder"},GenericItemController.prototype.canDelete=function(item,user){return!0===item.CanDelete},GenericItemController.prototype.getDeleteCommand=function(items){var cmd=_baseitemcontroller.default.prototype.getDeleteCommand.apply(this,arguments),item=items[0];return"remove"===(null==item?void 0:item.DeleteType)&&(cmd.name=_globalize.default.translate("Remove"),cmd.icon="remove_circle"),cmd},GenericItemController.prototype.enableLibraryItemDeleteConfirmation=function(){return!1},GenericItemController.prototype.canRefreshMetadata=function(item,user){return!1},GenericItemController.prototype.getNameSortOption=function(itemType){return null},GenericItemController.prototype.canAddToPlaylist=function(item){return!1},GenericItemController.prototype.canAddToCollection=function(item,user){return!1},GenericItemController.prototype.canConvert=function(item,user){return!1},GenericItemController.prototype.canEdit=function(items,user){return 1===items.length&&!0===items[0].CanEdit},GenericItemController.prototype.canRate=function(item){return!1},GenericItemController.prototype.canMarkPlayed=function(item){return!1},GenericItemController.prototype.canEditImages=function(item,user){return!1},GenericItemController.prototype.canEditSubtitles=function(item,user){return!1},GenericItemController.prototype.editItems=function(items,options){return Promise.reject("nocommands")},GenericItemController.prototype.enableDeleteConfirmation=function(options){return!!this.getDeleteMessages(options.items[0])},GenericItemController.prototype.showDeleteConfirmation=function(options){return this.enableDeleteConfirmation(options)?_baseitemcontroller.default.prototype.showDeleteConfirmation.apply(this,arguments):Promise.resolve()},GenericItemController.prototype.isDeletePrimaryCommand=function(itemType){return!0},GenericItemController.prototype.getDeleteMessages=function(item){return"remove"===item.DeleteType?{single:{text:_globalize.default.translate("ConfirmRemoveItem"),title:_globalize.default.translate("Remove"),confirmText:_globalize.default.translate("Remove")},plural:{text:_globalize.default.translate("ConfirmRemoveItem"),title:_globalize.default.translate("Remove"),confirmText:_globalize.default.translate("Remove")}}:{single:{text:_globalize.default.translate("DeleteDeviceConfirmation"),title:_globalize.default.translate("HeaderDeleteItem")},plural:{text:_globalize.default.translate("DeleteDeviceConfirmation"),title:_globalize.default.translate("HeaderDeleteItems")}}},GenericItemController.prototype.deleteItemsInternal=function(options){return Promise.reject("nocommands")},GenericItemController.prototype.getCommands=function(options){return _baseitemcontroller.default.prototype.getCommands.apply(this,arguments)},GenericItemController.prototype.executeCommand=function(command,items,options){return _baseitemcontroller.default.prototype.executeCommand.apply(this,arguments)},GenericItemController.prototype.resolveField=function(item,field){return _baseitemcontroller.default.prototype.resolveField.apply(this,arguments)},GenericItemController.prototype.canReorder=function(item,user){return item.CanReorder},GenericItemController.prototype.canMoveUp=function(item,user){return!!this.canReorder(item,user)&&item.CanMoveUp},GenericItemController.prototype.canMoveDown=function(item,user){return!!this.canReorder(item,user)&&item.CanMoveDown},GenericItemController.prototype.moveInOrder=function(items,options){return Promise.reject()};_exports.default=GenericItemController});
|
||||
1
modules/common/itemmanager/itemmanager.js
Normal file
1
modules/common/itemmanager/itemmanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/itemsrefresher.js
Normal file
1
modules/common/itemsrefresher.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/methodtimer.js
Normal file
1
modules/common/methodtimer.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./servicelocator.js","./../emby-apiclient/events.js"],function(_exports,_servicelocator,_events){function onInterval(){this._lastInterval=Date.now();var options=this.options;options&&options.onInterval()}function MethodTimer(options){this.options=options,this.boundOnAppResume=function(){var options,started=this.isStarted();this.stopInterval(),started&&((started=this._lastInterval)&&(options=this.options)&&started+options.timeoutMs<=Date.now()&&onInterval.call(this),this.startInterval())}.bind(this),this.boundOnInterval=onInterval.bind(this),_events.default.on(_servicelocator.appHost,"resume",this.boundOnAppResume),this.startInterval()}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,MethodTimer.prototype.stopInterval=function(){this._interval&&(("interval"===this._intervalType?clearInterval:clearTimeout)(this._interval),this._interval=null,this._intervalType=null)},MethodTimer.prototype.startInterval=function(){this._lastInterval=Date.now(),"interval"===this.options.type?(this._interval=setInterval(this.boundOnInterval,this.options.timeoutMs),this._intervalType="interval"):this._interval=setTimeout(this.boundOnInterval,this.options.timeoutMs)},MethodTimer.prototype.isStarted=function(){return null!=this._interval},MethodTimer.prototype.destroy=function(){this.options=null,this.boundOnAppResume&&(_events.default.off(_servicelocator.appHost,"resume",this.boundOnAppResume),this.boundOnAppResume=null),this.stopInterval(),this.boundOnInterval=null,this._lastInterval=null};_exports.default=MethodTimer});
|
||||
1
modules/common/playback/experimentalwarnings.js
Normal file
1
modules/common/playback/experimentalwarnings.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../servicelocator.js","./../usersettings/usersettings.js"],function(_exports,_servicelocator,_usersettings){function getResolvedPromise(){return Promise.resolve()}function showMessage(text,userSettingsKey,appHostFeature){var dayNum,options;return _servicelocator.appHost.supports(appHostFeature)||(userSettingsKey+=(appHostFeature=new Date).getFullYear()+"-w"+(appHostFeature=appHostFeature,dayNum=(appHostFeature=new Date(Date.UTC(appHostFeature.getFullYear(),appHostFeature.getMonth(),appHostFeature.getDate()))).getUTCDay()||7,appHostFeature.setUTCDate(appHostFeature.getUTCDate()+4-dayNum),dayNum=new Date(Date.UTC(appHostFeature.getUTCFullYear(),0,1)),Math.ceil(((appHostFeature-dayNum)/864e5+1)/7)),"1"===_usersettings.default.get(userSettingsKey,!1))?Promise.resolve():(_usersettings.default.set(userSettingsKey,"1",!1),options=text,Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}).catch(getResolvedPromise))}function ExpirementalPlaybackWarnings(){this.name="Experimental playback warnings",this.type="preplayintercept",this.id="expirementalplaybackwarnings"}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ExpirementalPlaybackWarnings.prototype.intercept=function(options){options=options.item;return options?"iso"===options.Container||"blurayiso"===options.Container||"dvdiso"===options.Container?showMessage("Playback of ISO files in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native ISO support.","isoexpirementalinfo","nativeisoplayback"):"bluray"===options.Container?showMessage("Playback of Bluray folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Bluray folder support.","blurayexpirementalinfo","nativeblurayplayback"):"dvd"===options.Container?showMessage("Playback of Dvd folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Dvd folder support.","dvdexpirementalinfo","nativedvdplayback"):Promise.resolve():Promise.resolve()};_exports.default=ExpirementalPlaybackWarnings});
|
||||
1
modules/common/playback/playaccessvalidation.js
Normal file
1
modules/common/playback/playaccessvalidation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../emby-apiclient/connectionmanager.js"],function(_exports,_globalize,_connectionmanager){function showErrorMessage(){return options=_globalize.default.translate("MessagePlayAccessRestricted"),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}).then(function(){return Promise.reject()});var options}function PlayAccessValidation(){this.name="Playback validation",this.type="preplayintercept",this.id="playaccessvalidation",this.order=-2}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlayAccessValidation.prototype.intercept=function(options){var item=options.item;return(item=item&&item.ServerId)?_connectionmanager.default.getApiClient(item).getCurrentUser().then(function(user){return user.Policy.EnableMediaPlayback?Promise.resolve():options.fullscreen?showErrorMessage():Promise.reject()}):Promise.resolve()};_exports.default=PlayAccessValidation});
|
||||
1
modules/common/playback/playbackactions.js
Normal file
1
modules/common/playback/playbackactions.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./playbackmanager.js","./../globalize.js","./../../emby-apiclient/connectionmanager.js"],function(_exports,_playbackmanager,_globalize,_connectionmanager){function promptUserToPlayActiveRecording(timer,displayItem,options){var items=[];return items.push({name:_globalize.default.translate("PlayFromLivePosition"),id:"playlive",icon:""}),items.push({name:_globalize.default.translate("PlayFromStartOfRecording"),id:"playrecording",icon:""}),function(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}({items:items,item:displayItem,text:_globalize.default.translate("ThisChannelIsActivelyRecording"),hasItemIcon:!0,longPreview:!0}).then(function(result){return"playrecording"===result?function(timer,options){return _connectionmanager.default.getApiClient(timer).getLiveTvRecordings({TimerId:timer.Id,IsInProgress:!0}).then(function(result){result=result.Items.filter(function(i){return i.TimerId===timer.Id})[0];return result?_playbackmanager.default.play({items:[result]}):_playbackmanager.default.play(options)})}(timer,options):"playlive"===result?_playbackmanager.default.play(options):options.cancelResult?Promise.reject(options.cancelResult):Promise.reject()})}function playChannelWithTimerId(displayItem,timerId,options){return _connectionmanager.default.getApiClient(displayItem).getLiveTvTimer(timerId).then(function(timer){return function(timer,displayItem,options){var now=Date.now();return now>=Date.parse(timer.StartDate)&&now<Date.parse(timer.EndDate)?promptUserToPlayActiveRecording(timer,displayItem,options):_playbackmanager.default.play(options)}(timer,displayItem,options)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={play:function(options){var _options$items;if(1===(null==(_options$items=options.items)?void 0:_options$items.length)){var item=options.items[0];switch(item.Type){case"TvChannel":return function(item,options){var _item$CurrentProgram=null==(_item$CurrentProgram=item.CurrentProgram)?void 0:_item$CurrentProgram.TimerId;return _item$CurrentProgram?playChannelWithTimerId(item.CurrentProgram||item,_item$CurrentProgram,options):_playbackmanager.default.play(options)}(item,options);case"Program":return function(item,options){var timerId=item.TimerId;return timerId?playChannelWithTimerId(item,timerId,options):_playbackmanager.default.play(options)}(item,options)}}return _playbackmanager.default.play(options)}}});
|
||||
1
modules/common/playback/playbackmanager.js
Normal file
1
modules/common/playback/playbackmanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/playbackvalidation.js
Normal file
1
modules/common/playback/playbackvalidation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./playbackmanager.js","./../../emby-apiclient/apiclient.js"],function(_exports,_playbackmanager,_apiclient){function validatePlayback(options){var feature="playback";if("playback"===(feature=!options.item||"TvChannel"!==options.item.Type&&"Recording"!==options.item.Type?feature:"livetv")){var player=_playbackmanager.default.getCurrentPlayer();if(player&&!player.isLocalPlayer)return Promise.resolve()}return function(feature,options){return Emby.importModule("./modules/registrationservices/registrationservices.js").then(function(registrationServices){return registrationServices.validateFeature(feature,options)})}(feature,options).then(function(result){result&&result.enableTimeLimit&&(stopAutoStopTimer(),autoStopTimeout=setTimeout(onAutoStopTimeout,63e3))})}var autoStopTimeout;function onAutoStopTimeout(){stopAutoStopTimer(),_playbackmanager.default.stop()}function stopAutoStopTimer(){autoStopTimeout&&(clearTimeout(autoStopTimeout),autoStopTimeout=null)}function PlaybackValidation(){this.name="Playback validation",this.type="preplayintercept",this.id="playbackvalidation",this.order=-1}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlaybackValidation.prototype.intercept=function(options){return!options.fullscreen||options.item&&_apiclient.default.isLocalItem(options.item)?Promise.resolve():validatePlayback(options)};_exports.default=PlaybackValidation});
|
||||
1
modules/common/playback/playersettingsmenu.js
Normal file
1
modules/common/playback/playersettingsmenu.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/playqueueconfirmation.js
Normal file
1
modules/common/playback/playqueueconfirmation.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../dialog/dialog.js","./playbackmanager.js"],function(_exports,_globalize,_dialog,_playbackmanager){function PlayQueueConfirmation(){this.name="Play Queue Confirmation",this.type="preplayintercept",this.id="playqueueconfirmation"}function showConfirmation(playOptions){var player=_playbackmanager.default.getCurrentPlayer(),options={text:_globalize.default.translate("AfterThisPlaysConfirmation")},items=[];return items.push({name:_globalize.default.translate("Keep"),id:"keep",type:"submit"}),items.push({name:_globalize.default.translate("Clear"),id:"clear"}),items.push({name:_globalize.default.translate("Cancel"),id:"cancel",type:"cancel"}),options.buttons=items,(0,_dialog.default)(options).then(function(result){return"cancel"===result?Promise.reject():"keep"===result?function(options,player){var currentPlaylistIndex=_playbackmanager.default.getCurrentPlaylistIndex(player);return-1===currentPlaylistIndex?Promise.resolve():_playbackmanager.default.getPlaylist({StartIndex:currentPlaylistIndex},player).then(function(result){var items=options.items,result=result.Items;if(!result.length)return Promise.resolve();items.push.apply(items,babelHelpers.toConsumableArray(result))})}(playOptions,player):Promise.resolve()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,PlayQueueConfirmation.prototype.intercept=function(options){var item=options.item;if(item&&"play"===options.command&&"Audio"===options.mediaType&&_playbackmanager.default.isPlayingAudio()&&options.fullscreen){item=_playbackmanager.default.getCurrentPlaylistLength();if(1<item)return showConfirmation(options)}return Promise.resolve()};_exports.default=PlayQueueConfirmation});
|
||||
1
modules/common/playback/playqueuemanager.js
Normal file
1
modules/common/playback/playqueuemanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/playback/sleeptimermenu.js
Normal file
1
modules/common/playback/sleeptimermenu.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../globalize.js","./../../actionsheet/actionsheet.js","./playbackmanager.js","./../dataformatter.js"],function(_exports,_globalize,_actionsheet,_playbackmanager,_dataformatter){function showToast(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={show:function(options){for(var player=options.player,menuItems=[],currentMode=_playbackmanager.default.getSleepTimerMode(player),now=(currentMode&&"None"!==currentMode&&menuItems.push({name:_globalize.default.translate("TurnOffTimer"),id:"stoptimer"}),menuItems.push({name:_globalize.default.translate("AfterCurrentItem"),id:"afteritem"}),Date.now()),increments=[3e5,6e5,9e5,12e5,18e5,27e5,36e5,72e5,108e5,144e5],i=0,length=increments.length;i<length;i++){var time=now+increments[i],date=new Date(time);menuItems.push({name:_dataformatter.default.formatRelativeTime(date,!1),id:time})}return _actionsheet.default.show({items:menuItems,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY,transformOrigin:options.transformOrigin,noTextWrap:options.noTextWrap,title:_globalize.default.translate("HeaderStopPlayback"),hasItemSelectionState:!1}).then(function(result){switch(result){case"afteritem":_playbackmanager.default.setSleepTimer({sleepTimerMode:"AfterItem"},player),showToast({text:_globalize.default.translate("SleepTimerIsSet"),icon:""});break;case"stoptimer":_playbackmanager.default.setSleepTimer({sleepTimerMode:"None"},player),showToast({text:_globalize.default.translate("SleepTimerIsOff"),icon:""});break;default:var _time=parseInt(result);_time&&!isNaN(_time)&&(_playbackmanager.default.setSleepTimer({sleepTimerMode:"AtTime",sleepTimerEndTime:new Date(_time)},player),showToast({text:_globalize.default.translate("SleepTimerIsSet"),icon:""}))}})}}});
|
||||
1
modules/common/pluginmanager.js
Normal file
1
modules/common/pluginmanager.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/qualitydetection.js
Normal file
1
modules/common/qualitydetection.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){function supportsConnectionTypeDetection(){if("undefined"!=typeof navigator){var connection=navigator.connection;if(connection){var connectionType=connection.type;if(connectionType||void 0!==connectionType)return!0;connectionType=connection.effectiveType;if("slow-2g"===connectionType||"2g"===connectionType||"3g"===connectionType)return!0}}return!1}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={supportsConnectionTypeDetection:supportsConnectionTypeDetection,getDefaultQuality:function(networkType){switch(networkType){case"wan":return function(){if("undefined"!=typeof navigator){var connection=navigator.connection;if(connection){var downlink=connection.downlink;if(downlink&&0<downlink&&downlink<Number.POSITIVE_INFINITY)return downlink=downlink*1e6*.7,downlink=parseInt(downlink);if((downlink=connection.downlinkMax)&&0<downlink&&downlink<Number.POSITIVE_INFINITY)return downlink=downlink*1e6*.7,downlink=parseInt(downlink)}}return null}()||(supportsConnectionTypeDetection()?12e6:4000002);case"cellular":return 1000001;default:return 2e8}}}});
|
||||
1
modules/common/qualityoptions.js
Normal file
1
modules/common/qualityoptions.js
Normal file
File diff suppressed because one or more lines are too long
1
modules/common/querystring.js
Normal file
1
modules/common/querystring.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={paramsToString:function(params){var key,urlSearchParams=new URLSearchParams;for(key in params){var value=params[key];null!=value&&""!==value&&urlSearchParams.set(key,value)}return urlSearchParams.toString()}}});
|
||||
1
modules/common/recordinghelper.js
Normal file
1
modules/common/recordinghelper.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../emby-apiclient/connectionmanager.js","./../loading/loading.js","./globalize.js","./itemmanager/itemmanager.js"],function(_exports,_connectionmanager,_loading,_globalize,_itemmanager){function showToast(options){Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function changeRecordingToSeries(apiClient,timerId,programId,confirmTimerCancellation){return _loading.default.show(),apiClient.getItem(apiClient.getCurrentUserId(),programId).then(function(item){return item.IsSeries?apiClient.getNewLiveTvTimerDefaults({programId:programId}).then(function(timerDefaults){return apiClient.createLiveTvSeriesTimer(timerDefaults).then(function(){_loading.default.hide(),showToast(_globalize.default.translate("SeriesRecordingScheduled"))})}):cancelTimer(apiClient,timerId,confirmTimerCancellation).then(function(result){return _loading.default.hide(),Promise.resolve(result)})})}function cancelTimer(apiClient,timerId,confirm){return _itemmanager.default.deleteItems({items:[{Id:timerId,ServerId:apiClient.serverId(),Type:"Timer"}],confirm:!0===confirm,navigate:!1})}function createRecording(apiClient,programId,isSeries){return _loading.default.show(),apiClient.getNewLiveTvTimerDefaults({programId:programId}).then(function(item){return(isSeries?apiClient.createLiveTvSeriesTimer(item):apiClient.createLiveTvTimer(item)).then(function(){_loading.default.hide(),showToast(_globalize.default.translate("RecordingScheduled"))})})}function showMultiCancellationPrompt(serverId,programId,timerId,timerStatus,seriesTimerId){var options,items=[];return items.push({name:_globalize.default.translate("HeaderKeepRecording"),id:"cancel",type:"submit"}),items.push("InProgress"===timerStatus?{name:_globalize.default.translate("HeaderStopRecording"),id:"canceltimer",type:"cancel"}:{name:_globalize.default.translate("HeaderCancelRecording"),id:"canceltimer",type:"cancel"}),items.push({name:_globalize.default.translate("HeaderCancelSeries"),id:"cancelseriestimer",type:"cancel"}),options={text:_globalize.default.translate("MessageConfirmRecordingCancellation"),buttons:items},Emby.importModule("./modules/dialog/dialog.js").then(function(dialog){return dialog(options)}).then(function(result){var apiClient=_connectionmanager.default.getApiClient(serverId);return"canceltimer"===result?(_loading.default.show(),cancelTimer(apiClient,timerId,!0)):"cancelseriestimer"===result?(_loading.default.show(),apiClient.cancelLiveTvSeriesTimer(seriesTimerId).then(function(){showToast(_globalize.default.translate("SeriesCancelled")),_loading.default.hide()})):Promise.resolve()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={cancelTimer:cancelTimer,createRecording:createRecording,changeRecordingToSeries:changeRecordingToSeries,toggleRecording:function(serverId,programId,timerId,timerStatus,seriesTimerId){var apiClient=_connectionmanager.default.getApiClient(serverId),hasTimer=timerId&&"Cancelled"!==timerStatus;return seriesTimerId&&hasTimer?showMultiCancellationPrompt(serverId,0,timerId,timerStatus,seriesTimerId):hasTimer&&programId?changeRecordingToSeries(apiClient,timerId,programId,!0):programId?createRecording(apiClient,programId):Promise.reject()}}});
|
||||
1
modules/common/responsehelper.js
Normal file
1
modules/common/responsehelper.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../loading/loading.js","./globalize.js"],function(_exports,_loading,_globalize){function ResponseHelper(){}function showAlertAndReject(options,response){function onDone(){return Promise.reject(response)}return function(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}(options).then(onDone,onDone)}function getErrorObject(response,msg,errorTitle,options){return errorTitle||!1!==(null==options?void 0:options.enableDefaultTitle)&&(errorTitle=_globalize.default.translate("Error")),"string"==typeof response&&msg.push(response),{title:errorTitle,text:msg.join("\n\n")||_globalize.default.translate("DefaultErrorMessage"),html:msg.join("<br/><br/>")||_globalize.default.translate("DefaultErrorMessage"),response:response,centerText:msg.length<2}}function getErrorInfo(response,options){var _response$headers,errorCode=response.errorCode||response,errorTitle=response.errorTitle;switch(errorCode){case"noitems":return Promise.resolve({text:_globalize.default.translate("NoSelectedItemsSupportOperation"),response:response});case"nocommands":return Promise.resolve({text:_globalize.default.translate("NoOperationsForSelectedItems"),response:response});case"RateLimitExceeded":return Promise.resolve({title:errorTitle||_globalize.default.translate("HeaderPlaybackError"),text:_globalize.default.translate("RateLimitExceeded"),response:response});case"NoPlayableItems":case"NoCompatibleStream":case"PlaceHolder":return Promise.resolve({title:errorTitle||_globalize.default.translate("HeaderPlaybackError"),text:_globalize.default.translate("PlaybackError"+errorCode),response:response})}errorTitle||401===response.status&&(errorTitle=_globalize.default.translate("HeaderSignInError"));var msg=[];return response.json&&"application/json"===(null==(_response$headers=response.headers)?void 0:_response$headers.get("Content-Type"))?response.json().then(function(responseInfo){return responseInfo.Message&&msg.push(responseInfo.Message),responseInfo.Title&&(errorTitle=responseInfo.Title),getErrorObject(response,msg,errorTitle,options)}):response.text?response.text().then(function(responseText){return responseText&&msg.push(responseText),getErrorObject(response,msg,errorTitle,options)}):Promise.resolve(getErrorObject(response,msg,errorTitle,options))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ResponseHelper.prototype.handleConfigurationSavedResponse=function(response){var options;return _loading.default.hide(),options=_globalize.default.translate("SettingsSaved"),Emby.importModule("./modules/toast/toast.js").then(function(toast){toast(options)}),Promise.resolve(response)},ResponseHelper.prototype.getErrorInfo=getErrorInfo,ResponseHelper.prototype.handleErrorResponse=function(response){return _loading.default.hide(),console.error(response||"Error",new Error),getErrorInfo(response).then(function(errorInfo){return showAlertAndReject(errorInfo)})};_exports.default=new ResponseHelper});
|
||||
1
modules/common/servershutdown.js
Normal file
1
modules/common/servershutdown.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./dialogs/confirm.js","./globalize.js"],function(_exports,_confirm,_globalize){function formatTextWithDisruptions(text,disruptions){return text=disruptions.length?(text=(text+="\n\n")+_globalize.default.translate("FollowingActivityWillBeDisrupted")+"\n\n")+disruptions.map(function(i){return"- "+i}).join("\n"):text}function formatHtmlWithDisruptions(text,disruptions){return disruptions.length?(text=(text+="<p>")+_globalize.default.translate("FollowingActivityWillBeDisrupted")+"</p><ul>")+disruptions.map(function(i){return"<li>"+i+"</li>"}).join("")+"</ul>":null}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;_exports.default={confirmRestartOrShutdown:function(options){return function(options){return options=[(options=options.apiClient).getSessions({IsPlaying:!0}),options.getLiveTvRecordings({IsInProgress:!0})],Promise.all(options).then(function(responses){var sessions=responses[0],responses=responses[1].Items,list=[];return 1===sessions.length?list.push(_globalize.default.translate("OneActivePlaybackSession")):sessions.length&&list.push(_globalize.default.translate("NumActivePlaybackSessions",sessions.length)),1===responses.length?list.push(_globalize.default.translate("OneActiveRecording")):responses.length&&list.push(_globalize.default.translate("NumActiveRecordings",responses.length)),list})}(options).then(function(disruptions){return("shutdown"===options.type?function(disruptions){return(0,_confirm.default)({title:_globalize.default.translate("Shutdown"),text:formatTextWithDisruptions(_globalize.default.translate("MessageConfirmShutdown"),disruptions),html:formatHtmlWithDisruptions(_globalize.default.translate("MessageConfirmShutdown"),disruptions),confirmText:_globalize.default.translate("Shutdown"),primary:"cancel",centerText:0===disruptions.length})}:function(disruptions){return(0,_confirm.default)({title:_globalize.default.translate("Restart"),text:formatTextWithDisruptions(_globalize.default.translate("MessageConfirmRestart"),disruptions),html:formatHtmlWithDisruptions(_globalize.default.translate("MessageConfirmRestart"),disruptions),confirmText:_globalize.default.translate("Restart"),primary:"cancel",centerText:0===disruptions.length})})(disruptions)})}}});
|
||||
1
modules/common/servicelocator.js
Normal file
1
modules/common/servicelocator.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports"],function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.iapManager=_exports.fullscreenManager=_exports.fileRepository=_exports.cameraUpload=_exports.appStorage=_exports.appLogger=_exports.appHost=_exports.apiClientFactory=void 0,_exports.initialize=function(services){services.appStorage&&(_exports.appStorage=services.appStorage);services.appHost&&(_exports.appHost=services.appHost);services.fullscreenManager&&(_exports.fullscreenManager=services.fullscreenManager);services.shell&&(_exports.shell=services.shell);services.iapManager&&(_exports.iapManager=services.iapManager);services.wakeOnLan&&(_exports.wakeOnLan=services.wakeOnLan);services.serverDiscovery&&(_exports.serverDiscovery=services.serverDiscovery);services.fileRepository&&(_exports.fileRepository=services.fileRepository);services.itemRepository&&(_exports.itemRepository=services.itemRepository);services.transferManager&&(_exports.transferManager=services.transferManager);services.userActionRepository&&(_exports.userActionRepository=services.userActionRepository);services.localSync&&(_exports.localSync=services.localSync);services.cameraUpload&&(_exports.cameraUpload=services.cameraUpload);services.apiClientFactory&&(_exports.apiClientFactory=services.apiClientFactory);services.appLogger&&(_exports.appLogger=services.appLogger)},_exports.wakeOnLan=_exports.userActionRepository=_exports.transferManager=_exports.shell=_exports.serverDiscovery=_exports.localSync=_exports.itemRepository=void 0});
|
||||
1340
modules/common/strings/ar.json
Normal file
1340
modules/common/strings/ar.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/bg.json
Normal file
1340
modules/common/strings/bg.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/ca.json
Normal file
1340
modules/common/strings/ca.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/cs.json
Normal file
1340
modules/common/strings/cs.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/da.json
Normal file
1340
modules/common/strings/da.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/de.json
Normal file
1340
modules/common/strings/de.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/el.json
Normal file
1340
modules/common/strings/el.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/en-GB.json
Normal file
1340
modules/common/strings/en-GB.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/en-US.json
Normal file
1340
modules/common/strings/en-US.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/es-AR.json
Normal file
1340
modules/common/strings/es-AR.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/es-MX.json
Normal file
1340
modules/common/strings/es-MX.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/es-US.json
Normal file
1340
modules/common/strings/es-US.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/es.json
Normal file
1340
modules/common/strings/es.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/et.json
Normal file
1340
modules/common/strings/et.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/fa.json
Normal file
1340
modules/common/strings/fa.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/fi.json
Normal file
1340
modules/common/strings/fi.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/fr-CA.json
Normal file
1340
modules/common/strings/fr-CA.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/fr.json
Normal file
1340
modules/common/strings/fr.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/he.json
Normal file
1340
modules/common/strings/he.json
Normal file
File diff suppressed because it is too large
Load Diff
1340
modules/common/strings/hi.json
Normal file
1340
modules/common/strings/hi.json
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user