first commit

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

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
define(["exports","./../../common/globalize.js","./../../layoutmanager.js","./../../common/usersettings/usersettings.js","./../../dialoghelper/dialoghelper.js","./../emby-scroller/emby-scroller.js","./../emby-toggle/emby-toggle.js","./../emby-select/emby-select.js","./../emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_globalize,_layoutmanager,_usersettings,_dialoghelper,_embyScroller,_embyToggle,_embySelect,_embyDialogclosebutton){function load(context){for(var chkIndicators=context.querySelectorAll(".chkIndicator"),i=0,length=chkIndicators.length;i<length;i++){var type=chkIndicators[i].getAttribute("data-type");"true"===chkIndicators[i].getAttribute("data-default")?chkIndicators[i].checked="false"!==_usersettings.default.get("guide-indicator-"+type):chkIndicators[i].checked="true"===_usersettings.default.get("guide-indicator-"+type)}context.querySelector(".chkColorCodedBackgrounds").checked="true"===_usersettings.default.get("guide-colorcodedbackgrounds"),context.querySelector(".chkChannelNumber").checked=_usersettings.default.showChannelNumberInGuide(),context.querySelector(".selectChannelDisplay").value=_usersettings.default.guideChannelStyle(),function(context){for(var value,items=_usersettings.default.getLiveTvChannelSortOrders(_globalize.default),html="",i=0,length=items.length;i<length;i++){var item=items[i];html+='<option value="'+item.value+'">'+item.name+"</option>",item.selected&&(value=item.value)}(context=context.querySelector(".selectChannelSort")).innerHTML=html,context.value=value}(context)}function loadChannelTags(context,apiClient){var selectTags=context.querySelector(".selectTags");selectTags.getItems=function(query){var outerItemIds=query.Ids;return query.Ids=null,this.getLiveTvChannelTags(Object.assign({SortBy:"SortName",SortOrder:"Ascending",EnableImages:!1,EnableUserData:!1,OuterIds:outerItemIds},query))}.bind(apiClient),selectTags.parentContainer=context.querySelector(".fldTags"),function(context){var context=context.querySelector(".selectTags"),channelTagIds=(channelTagIds=_usersettings.default.get("guide-tagids"))?channelTagIds.split(","):[];context.values=channelTagIds}(context)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons"]);_exports.default={show:function(options,apiClient){return new Promise(function(resolve,reject){var settingsChanged=!1;require(["text!modules/emby-elements/guide/guide-settings.template.html"],function(template){var dialogOptions={removeOnClose:!0,scrollY:!1,offsetTop:2,positionTo:options.positionTo,positionX:options.positionX,positionY:options.positionY},dlg=(_layoutmanager.default.tv&&(dialogOptions.size="fullscreen"),_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(dlg.classList.add("formDialog"),"");dialogOptions+=_globalize.default.translateDocument(template,"sharedcomponents"),dlg.innerHTML=dialogOptions,dlg.addEventListener("change",function(){settingsChanged=!0}),dlg.addEventListener("close",function(){for(var context=dlg,chkIndicators=context.querySelectorAll(".chkIndicator"),i=0,length=chkIndicators.length;i<length;i++){var type=chkIndicators[i].getAttribute("data-type");_usersettings.default.set("guide-indicator-"+type,chkIndicators[i].checked)}_usersettings.default.showChannelNumberInGuide(context.querySelector(".chkChannelNumber").checked),_usersettings.default.guideChannelStyle(context.querySelector(".selectChannelDisplay").value),_usersettings.default.set("guide-colorcodedbackgrounds",context.querySelector(".chkColorCodedBackgrounds").checked),_usersettings.default.set(_usersettings.default.getLiveTvChannelSortSettingsKey(),context.querySelector(".selectChannelSort").value),_usersettings.default.set("guide-tagids",context.querySelector(".selectTags").getValues().join(",")),(settingsChanged?resolve:reject)()}),load(dlg),loadChannelTags(dlg,apiClient),_dialoghelper.default.open(dlg)})})}}});

View File

@@ -0,0 +1,82 @@
<div class="formDialogHeader">
<button type="button" is="emby-dialogclosebutton" closetype="done"></button>
<h3 class="formDialogHeaderTitle">
${Settings}
</h3>
</div>
<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="formDialogContent">
<form class="scrollSlider dialogContentInner dialog-content-centered padded-left padded-right fieldsets">
<fieldset>
<div class="fieldset-fields">
<div class="selectContainer fieldset-field">
<select is="emby-select" label="${SortChannelsBy}" class="selectChannelSort">
</select>
</div>
<div class="selectContainer fldTags fieldset-field hide">
<label>
<select is="emby-select" label="${LabelChannelTags}" class="selectTags" data-autoallany="false" multiple>
</select>
</label>
</div>
<div class="selectContainer fieldset-field">
<label>
<select is="emby-select" label="${LabelChannelDisplay}" class="selectChannelDisplay">
<option value="image">${Image}</option>
<option value="name">${Title}</option>
<option value="both">${Both}</option>
</select>
</label>
</div>
</div>
</fieldset>
<fieldset>
<legend>${HeaderShowFields}</legend>
<div class="fieldset-fields fieldset-fields-listitems">
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkChannelNumber" />
<span>${ChannelNumber}</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="4k" data-default="true" />
<span>4K</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="hd" />
<span>HD</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="live" data-default="true" />
<span>${Live}</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="new" />
<span>${AttributeNew}</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="premiere" data-default="true" />
<span>${Premiere}</span>
</label>
<label class="toggleContainer toggleContainer-listItem fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkIndicator" data-type="repeat" />
<span>${Repeat}</span>
</label>
</div>
</fieldset>
<fieldset>
<div class="fieldset-fields">
<label class="toggleContainer fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkColorCodedBackgrounds" />
<span>${EnableColorCodedBackgrounds}</span>
</label>
</div>
</fieldset>
</form>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.epgRow,.channelCell{contain:layout style paint}

View File

@@ -0,0 +1 @@
@media all and (orientation:portrait){.channelCell{width:11.3ch}.guideEpg-currentTimeIndicatorDot{-webkit-margin-start:11.3ch;margin-inline-start:11.3ch}.epgRow-portraittwoline{height:5.2em}.channelCellInner{-webkit-flex-direction:column;flex-direction:column;padding:.6em 1em .4em!important}.guideChannelImage{background-position:center center;height:auto;-webkit-flex-grow:1;flex-grow:1;max-width:initial}.guideChannelText{margin:0!important;-webkit-flex-grow:initial!important;flex-grow:initial!important;max-width:initial;-webkit-flex-shrink:0;flex-shrink:0}.guideChannelImage+.guideChannelText{font-size:82%;margin:.6em 0 0!important}.btnSelectDate{font-size:88%}}.epgRow-twoline{height:5.2em}.btnLiveGuide{position:fixed;top:50%;right:3.5em;inset-inline-start:initial;inset-inline-end:3.5em;z-index:99999999999999;color:#c00!important;font-weight:700;border-radius:100em;font-size:78%;padding:0;background:#fff!important;box-shadow:0 .18em .36em 0 rgb(0 0 0 / 16%);margin-top:-2.26em!important;margin-bottom:0!important;-webkit-margin-start:0!important;margin-inline-start:0!important;-webkit-margin-end:0!important;margin-inline-end:0!important;width:4.52em;height:4.52em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;overflow:hidden}@media not all and (pointer:fine){.btnLiveGuide{inset-inline-start:initial;inset-inline-end:2em}}.btnLiveGuideText{-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;height:100%;transition:background .2s ease-out;text-transform:uppercase}.btnLiveGuide:active>.btnLiveGuideText{background:rgba(204,51,51,.2)}@media not all and (min-height:38em){.btnLiveGuide{display:none!important}}.tvguide .emby-scrollbuttons{font-size:inherit}.tvguide .scrollbuttoncontainer{position:fixed!important;background:0 0!important;z-index:99999999999999;bottom:initial;top:50%;height:initial;left:initial;right:3.5em;inset-inline-start:initial;inset-inline-end:3.5em}@media all and (pointer:fine){.tvguide .scrollbuttoncontainer{right:2.8em;inset-inline-start:initial;inset-inline-end:2.8em;display:-webkit-flex;display:flex}}.tvguide .scrollbuttoncontainer-backwards{margin-top:-6em}.tvguide .scrollbuttoncontainer-forwards{margin-top:2.5em}.tvguide .emby-scrollbuttons-scrollbutton{color:#000!important;font-weight:700;border-radius:100em;font-size:140%;padding:0;background:#fff;box-shadow:0 .18em .36em 0 rgb(0 0 0 / 16%);width:2.518em;height:2.518em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;overflow:hidden;-webkit-transform:none!important;transform:none!important;margin:0!important}

View File

@@ -0,0 +1 @@
.channelCellInner-twoline{-webkit-flex-direction:column;flex-direction:column;padding:.6em 1em .4em!important}.channelCellInner-notext{padding:.7em 1em!important}.guideChannelImage-twoline{background-position:center center;height:auto;-webkit-flex-grow:1;flex-grow:1;max-width:initial;-webkit-margin-start:0;margin-inline-start:0}.channelCellInner-twoline .guideChannelText{margin:0!important;-webkit-flex-grow:initial!important;flex-grow:initial!important;max-width:initial;-webkit-flex-shrink:0;flex-shrink:0}.guideChannelImage-twoline+.guideChannelText{font-size:82%;margin:.6em 0 0!important}.programCell,.channelCell{outline:0!important}.timerIcon,.seriesTimerIcon{color:#c33!important}.seriesTimerIcon-inactive{color:inherit!important;opacity:.7}.guideOptions{-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center}.guideRequiresUnlock{margin:1em auto;text-align:center;padding:1em;-webkit-flex-shrink:0;flex-shrink:0}@supports selector(:hover) and (display:revert) and (column-gap:1em){.programMediaInfoItems{-webkit-column-gap:.8ch;column-gap:.8ch}}.guide-filter-button{padding-top:.3em;padding-bottom:.3em;margin:0 .25em}.guide-filters-active-icon{font-size:110%}

View File

@@ -0,0 +1 @@
.epgRow{height:3.2em}.epgRow-twoline{height:5em}

View File

@@ -0,0 +1 @@
.newTvProgram{background:hsl(209,100%,50.2%);color:#fff}.liveTvProgram{background:#c33;color:#fff}.premiereTvProgram{background:hsl(209,100%,50.2%);color:#fff}

View File

@@ -0,0 +1,59 @@
<div class="filterScroller flex flex-direction-row align-items-flex-start flex-shrink-zero hide focuscontainer-x" style="margin: .5em 0 1.5em;">
<div class="channelCell settingsChannelCell flex align-items-center justify-content-center" style="position:relative;">
<button is="paper-icon-button-light" type="button" class="guideIconButton btnGuideViewSettings secondaryText" data-focusscale="false">
<i class="md-icon">&#xe164;</i>
</button>
</div>
<div is="emby-scroller" data-scrollbuttons="false" data-forcescrollbar="true" data-mousewheel="false" data-horizontal="true" class="flex-shrink-zero flex align-self-center flex-shrink-one" style="font-size:90%;">
<div class="scrollSlider flex-shrink-zero flex align-self-center">
<button type="button" is="emby-button" class="raised raised-mini raised-outline guide-filter-button btnGuideCategory btnGuideCategory-all">${All}</button>
<div class="flex-shrink-zero flex align-self-center tagFilters">
</div>
<div class="flex-shrink-zero flex align-self-center hide">
<button type="button" is="emby-button" class="raised raised-mini raised-outline guide-filter-button btnGuideCategory" data-type="movies">${Movies}</button>
<button type="button" is="emby-button" class="raised raised-mini raised-outline guide-filter-button btnGuideCategory" data-type="sports">${Sports}</button>
<button type="button" is="emby-button" class="raised raised-mini raised-outline guide-filter-button btnGuideCategory" data-type="kids">${Kids}</button>
<button type="button" is="emby-button" class="raised raised-mini raised-outline guide-filter-button btnGuideCategory" data-type="news">${News}</button>
</div>
</div>
</div>
</div>
<div is="emby-scroller" class="headerScroller flex-shrink-zero" data-mousewheel="false" data-horizontal="true" data-forcenativescroll="true" data-scrollbuttons="false" data-focusscroll="false">
<div class="scrollSlider focuscontainer-x guide-headerTimeslots secondaryText epgScrollSlider">
<div class="channelCell firstChannelCell">
<button is="emby-button" class="btnSelectDate btnSelectDate-text button-link secondaryText" data-focusscale="false">
<span class="btnDateText" style="white-space:nowrap;"></span>
<i class="md-icon button-icon">&#xe313;</i>
</button>
<button is="paper-icon-button-light" type="button" class="guideIconButton btnGuideViewSettings secondaryText hide" data-focusscale="false">
<i class="md-icon">&#xe164;</i>
</button>
</div>
<div class="timeslotHeaders flex flex-grow flex-direction-row"></div>
</div>
</div>
<div is="emby-scroller" class="flex-grow virtualScrollerScrollContainer focuscontainer-y navout-up padded-bottom-page" data-dualscroll="true" data-horizontal="false" data-forcenativescroll="true" data-scrollbuttons="true" data-scrollbuttonstype="x" data-scrollbuttonparent="self" data-adaptiveborderxstart="0" data-adaptiveborderystart="0" data-adaptiveborderxend="30" data-adaptiveborderyend="30">
<div is="emby-itemscontainer" data-virtualscrolllayout="vertical-grid" data-scrollresizeobserver="true" class="itemsContainer vertical-list epgItemsContainer scrollSlider epgScrollSlider focuscontainer-x" data-contextmenu="true" style="position:relative;">
</div>
<button is="emby-button" class="btnLiveGuide raised hide" aria-label="${Live}" tabindex="-1"><span class="btnLiveGuideText">${Live}</span></button>
</div>