dashboard-ui/modules/genericedit/genericedit.js
2023-08-31 15:30:17 +02:00

1 line
45 KiB
JavaScript

define(["exports","./../common/globalize.js","./../actionsheet/actionsheet.js","./../layoutmanager.js","./../focusmanager.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-textarea/emby-textarea.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-checkbox/emby-checkbox.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-multilineselect/emby-multilineselect.js","./../emby-elements/emby-radio/emby-radio.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../listview/listview.js"],function(_exports,_globalize,_actionsheet,_layoutmanager,_focusmanager,_embyInput,_embyTextarea,_embyButton,_embyCheckbox,_embySelect,_embyMultilineselect,_embyRadio,_embyToggle,_paperIconButtonLight,_listview){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","flexStyles","material-icons","css!legacy/dashboard.css","css!modules/genericedit/genericedit.css"]);var statusColorNone="transparent",statusColorOk="#8bc34a",statusColorWarning="#ffc107",statusColorError="#f44336",statusColorDisabled="#919191",statusColorGhosted="#dcdcdc",genericEditDx=null;function checkGetDx(editorRoot){return genericEditDx||!function isDxRequired(item){switch(item.EditorType){case"DxDataGrid":case"DxPivotGrid":case"DataGrid":case"PivotGrid":return!0}if(item.EditorItems)for(var i=0;i<item.EditorItems.length;i++){var subItem=item.EditorItems[i];if(isDxRequired(subItem))return!0}return!1}(editorRoot)?Promise.resolve():require(["https://mediabrowser.github.io/genericedit_dx/genericedit_dx.js"],function(result){return genericEditDx=result,Promise.resolve()})}var customEditors={};function getEditor(type){return customEditors[type]}var commandProcessors={};function actionSheetHandler(e){var innerListItem=e.target.closest(".listItem-inner");if(!innerListItem||innerListItem.classList.contains("focusable")||document.activeElement&&innerListItem.contains(document.activeElement)&&innerListItem!==document.activeElement||_focusmanager.default.autoFocus(innerListItem,{findAutoFocusElement:!1}),e.Data1)return!0;var button=e.target.closest("BUTTON");if(button&&"button"===button.type&&button.subMenuButtons){for(var menuButtons=button.subMenuButtons,menuItems=[],hasItemIcon=!1,p=0;p<menuButtons.length;p++){var buttonAttribs=' data-data1="'+menuButtons[p].Data1+'" data-data2="'+menuButtons[p].Data2+'" ';menuButtons[p].Icon&&(hasItemIcon=!0),menuItems.push({name:menuButtons[p].Caption,icon:menuButtons[p].Icon,escapedAttribs:"item"+p+'" '+buttonAttribs+' x="',id:"item"+p})}var container=this;return container.classList.add("actionsheet-open"),_actionsheet.default.show({items:menuItems,positionTo:button,title:"",hasItemIcon:hasItemIcon}).then(function(id){container.classList.remove("actionsheet-open");for(var event=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1}),q=0;q<menuButtons.length;q++)id==="item"+q&&(event.Data1=menuButtons[q].Data1,event.Data2=menuButtons[q].Data2,event.ConfirmationPrompt=menuButtons[q].ConfirmationPrompt,event.Caption=menuButtons[q].Caption);button.dispatchEvent(event)},function(){container.classList.remove("actionsheet-open")}),e.cancelBubble=!0}return!1}function applyPropertyConditions(root,container,targetValue,targetId){for(var i=0;i<root.PropertyConditions.length;i++){var condition=root.PropertyConditions[i];if(condition.TargetPropertyId===targetId){var affectedElement=container.querySelector("#"+condition.AffectedPropertyId.split(".").join("\\."));if(affectedElement){var conditionResult=!1;switch(condition.SimpleCondition){case"IsTrue":conditionResult=!0===targetValue;break;case"IsFalse":conditionResult=!1===targetValue;break;case"IsNull":conditionResult=null==targetValue;break;case"IsNotNullOrEmpty":conditionResult=!(null==targetValue||""===targetValue)}switch(condition.ValueCondition){case"IsEqual":conditionResult=targetValue===condition.Value;break;case"IsNotEqual":conditionResult=targetValue!==condition.Value;break;case"IsGreater":conditionResult=targetValue>condition.Value;break;case"IsGreaterOrEqual":conditionResult=targetValue>=condition.Value;break;case"IsLess":conditionResult=targetValue<condition.Value;break;case"IsLessOrEqual":conditionResult=targetValue<=condition.Value}switch(condition.ConditionType){case"Visible":var viewElement=affectedElement,isInput="radioGroup"===(viewElement="select-one"===(viewElement="checkbox"===viewElement.type?viewElement.parentElement.parentElement:viewElement).type?viewElement.parentElement:viewElement).className||"INPUT"===viewElement.tagName||"TEXTAREA"===viewElement.tagName,isInput=(isInput&&viewElement.parentElement.classList.contains("inputContainer")?viewElement=viewElement.parentElement:isInput&&viewElement.parentElement.parentElement.classList.contains("inputContainer")?viewElement=viewElement.parentElement.parentElement:isInput&&viewElement.parentElement.parentElement.parentElement.classList.contains("inputContainer")&&(viewElement=viewElement.parentElement.parentElement.parentElement),"SELECT"===viewElement.tagName);isInput&&viewElement.parentElement.classList.contains("selectContainer")?viewElement=viewElement.parentElement:isInput&&viewElement.parentElement.parentElement.classList.contains("selectContainer")?viewElement=viewElement.parentElement.parentElement:isInput&&viewElement.parentElement.parentElement.parentElement.classList.contains("selectContainer")&&(viewElement=viewElement.parentElement.parentElement.parentElement),conditionResult?viewElement.classList.remove("hide"):viewElement.classList.add("hide");break;case"Enabled":affectedElement.disabled=!conditionResult}}}}}function onFilePickerButtonClick(){var context=this;require(["directorybrowser"],function(DirectoryBrowser){var picker=new DirectoryBrowser,DirectoryBrowser="true"===context.getAttribute("isFolderPicker"),inputId=(inputId="#"+context.getAttribute("inputId")).split(".").join("\\."),container=context.closest(".filePickerContainer");picker.show({includeFiles:!DirectoryBrowser,includeDirectories:!0,path:container.querySelector(inputId).value,callback:function(path){var element;path&&((element=container.querySelector(inputId)).value=path,element.dispatchEvent(new Event("change",{bubbles:!0}))),picker.close()},header:context.getAttribute("fieldName")})})}function renderSingleItem(item){switch(item.extraClasses="",item.IsAdvanced&&(item.extraClasses+=" advanced"),item.EditorType){case"Group":return function(item){var html='<div class="verticalSection'+item.extraClasses+'" style="margin-top: 0.5em;" id="'+item.Id+'">';{var desccriptionClass;(item.DisplayName||item.Description)&&(html='<div class="verticalSection'+item.extraClasses+'" style="margin-top: 2em;" id="'+item.Id+'">',html+='<div class="sectionTitleContainer">',item.DisplayName&&(html+='<h2 class="sectionTitle">'+item.DisplayName+"</h2>"),desccriptionClass="ge-section-description",item.TitleButton&&(html+=function(item){var attributes=[],item=(attributes.push('is="emby-button"'),attributes.push('id="'+item.Id+'"'),attributes.push('type="button"'),attributes.push('class="fab btnButtonItem submit sectionTitleButton'+item.extraClasses+'"'),attributes.push('style="margin-left:0.9em !important; opacity: 0.6;font-size: 0.9em;"'),"<button "+attributes.join(" ")+">");return item+='<i class="buttonIcon md-icon button-icon secondaryText"></i><span class="buttonText"></span></button>'}(item.TitleButton),desccriptionClass+=" ge-section-withtitlebutton-description"),html+="</div>",item.Description)&&(html+='<p class="'+desccriptionClass+'">'+formatDescription(item.Description)+"</p>")}return html=(html+='<div class="sectionContent">')+item.EditorItems.map(renderSingleItem).join("")+"</div></div>"}(item);case"Text":return function(item){var element=item.MultiLine?"textarea":"input",elementIs="emby-"+element,elemType="text",style="";item.IsPassword&&(elemType="password");var map=new Map;item.MultiLine&&item.LineCount&&1<item.LineCount&&(map.set("rows",item.LineCount),style="overflow: auto; resize: none;");item.AllowEmpty||map.set("required","required");item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled"));_layoutmanager.default.tv&&map.set("autocomplete","off");return map.set("maxlength",item.MaxLength),map.set("label",item.DisplayName),DIV(null,"inputContainer"+item.extraClasses,null,function(children){item.MultiLine?children.push(LABEL(null,null,null,function(children2){children2.push(EL(element,item.Id,null,style,elementIs,elemType,map))})):children.push(EL(element,item.Id,null,style,elementIs,elemType,map)),children.push(DIV(null,"fieldDescription",null,item.Description))})}(item);case"Numeric":return function(item){var attributes=[];attributes.push('is="emby-input"'),attributes.push('type="number"'),attributes.push('id="'+item.Id+'"'),item.AllowEmpty||attributes.push('required="required"');item.IsReadOnly&&(attributes.push('readonly="readonly"'),attributes.push('disabled="disabled"'));_layoutmanager.default.tv&&attributes.push('autocomplete="off"');null!==item.MinValue&&void 0!==item.MinValue&&attributes.push('min="'+item.MinValue+'"');null!==item.MaxValue&&void 0!==item.MaxValue&&attributes.push('max="'+item.MaxValue+'"');item.DecimalPlaces&&0<item.DecimalPlaces&&(zeros=Array(item.DecimalPlaces).join("0"),attributes.push('step="0.'+zeros+'1"'));attributes.push('label="'+item.DisplayName+'"');var zeros='<div class="inputContainer'+item.extraClasses+'">';return zeros=(zeros+="<input "+attributes.join(" ")+" />")+'<div class="fieldDescription">'+item.Description+"</div></div>"}(item);case"Boolean":return function(item){var map=new Map;item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled"));return DIV(null,"checkboxContainer checkboxContainer-withDescription"+item.extraClasses,null,function(children){children.push(LABEL(null,null,null,function(){return INPUT(item.Id,"checkbox","emby-checkbox",null,null,map,function(){return style=cls=id=null,contentFunc=item.DisplayName,EL("span",id,cls,style,null,null,null,contentFunc);var id,cls,style,contentFunc})})),item.Description&&children.push(DIV(null,"fieldDescription checkboxFieldDescription",null,item.Description))})}(item);case"SelectSingle":return renderSelect(item,!1);case"SelectMultiple":return renderSelect(item,!0);case"Date":return function(item){var attributes=[];attributes.push('is="emby-input"'),attributes.push('type="date"'),attributes.push('id="'+item.Id+'"'),item.AllowEmpty||attributes.push('required="required"');item.IsReadOnly&&(attributes.push('readonly="readonly"'),attributes.push('disabled="disabled"'));attributes.push('label="'+item.DisplayName+'"');var html='<div class="inputContainer'+item.extraClasses+'">';return html=(html+="<input "+attributes.join(" ")+" />")+'<div class="fieldDescription">'+item.Description+"</div></div>"}(item);case"FilePath":return renderFilePicker(item,!1);case"FolderPath":return renderFilePicker(item,!0);case"StatusItem":return function(item){item='<div Id="'+item.Id+'" class="paperListItem listItem statusItem'+item.extraClasses+'">';return item=(item=(item=(item+='<div data-action="none" class="itemAction statusItemIcon" style="height: 3.5em; min-width: 3.2em; align-self: start; margin-top: 0.6em;"><i class="statusIcon md-icon" style="font-size: 3em;">check_circle_outline</i>')+'<div class="mdl-spinner statusSpinner" style="position: initial;margin-top: 0.2em; margin-left: 0.2em; vertical-align: top;height: 2.6em;width: 2.6em;z-index: auto;top: initial;left: initial;"><div class="mdl-spinner__layer mdl-spinner__layer-1"><div class="mdl-spinner__circle-clipper mdl-spinner__left"><div class="mdl-spinner__circle mdl-spinner__circleLeft"></div></div><div class="mdl-spinner__circle-clipper mdl-spinner__right"><div class="mdl-spinner__circle mdl-spinner__circleRight"></div></div></div></div></div>')+'<div class="listItemBody two-line"><div class="primaryText listItemBodyText listItemBodyText-nowrap" style="font-size: 1.2em;">&nbsp;</div><div class="secondaryText listItemBodyText listItemBodyText-secondary">&nbsp;</div>')+"</div></div>"}(item);case"ProgressItem":return function(item){var attributes=[],html=(attributes.push('id="'+item.Id+'"'),attributes.push('min="0"'),attributes.push('max="0"'),attributes.push('style="width: 100%; height: 2em;"'),attributes.push('label="'+item.DisplayName+'"'),'<div class="inputContainer'+item.extraClasses+'">');return html=(html+="<progress "+attributes.join(" ")+" />")+'<div class="fieldDescription">'+item.Description+"</div></div>"}(item);case"ButtonItem":return function(item){return DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return renderButtonItemCore(item)})})}(item);case"ButtonGroup":return function(item){if(item.IsBottomPanel)return function(item){return DIV(null,"verticalSection","position: absolute; bottom: 0.5em; left: 0.8em; z-index: 100000;",function(){return DIV(null,"horizontalSection allSection",null,function(){return item.EditorItems.map(renderButtonItemCore).join("")})})}(item);return DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return item.EditorItems.map(renderButtonItemCore).join("")})})}(item);case"CaptionItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 1em;",function(){return DIV(null,"sectionTitleContainer",null,function(){return EL("h3",null,"sectionTitle captionText",void 0,null,null,null,void 0)})})}(item);case"LabelItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 0.5em;",function(){return'<p><a target="_blank" class="labelText"></a></p>'})}(item);case"SpacerItem":return function(item){return DIV(item.Id,"verticalSection"+item.extraClasses)}(item);case"ItemList":return function(item){return DIV(null,item.extraClasses,null,function(children){children.push(DIV(item.Id,"paperList visualCardBox vertical-list ge-itemlist")),children.push(DIV(null,"fieldDescription",null,item.Description))})}(item);case"RadioGroup":return function(item){var map=new Map;return map.set("itemssourceid",item.ItemsSourceId),DIV(null,"radioContainer"+item.extraClasses,null,function(children){item.DisplayName&&children.push(LABEL("radioLabel",null,item.Id,item.DisplayName)),children.push(EL("div",item.Id,"radioGroup",null,null,null,map))})}(item);case"DxDataGrid":case"DataGrid":return genericEditDx.renderDataGridElement(item);case"DxPivotGrid":case"PivotGrid":return genericEditDx.renderPivotGridElement(item);default:var editor=getEditor(item.EditorType);return editor?editor.renderSingleItem(item):"<div>Unknown cofig element type: "+item.ElementType+"</div>"}}function renderSelect(item,multiselect){var html,containerClass,map,elementName;return item.ShowAsRadio?function(item){var map=new Map;return map.set("itemssourceid",item.ItemsSourceId),map.set("staticitemssourceid",item.StaticItemsSourceId),DIV(null,"radioContainer"+item.extraClasses,null,function(children){item.DisplayName&&children.push(LABEL("radioLabel",null,item.Id,item.DisplayName)),children.push(EL("div",item.Id,"radioGroup",null,null,null,map,function(){return item.SelectOptions.map(renderRadioItem,item).join("")}))})}(item):(html="",containerClass="selectContainer",elementName="emby-select",map=new Map,item.AllowEmpty||map.set("required","required"),item.IsReadOnly&&map.set("disabled","disabled"),multiselect&&map.set("multiple","multiple"),map.set("allselected-labeltext",_globalize.default.translate("All")),map.set("empty-is-not-all","True"),map.set("itemssourceid",item.ItemsSourceId),map.set("staticitemssourceid",item.StaticItemsSourceId),map.set("label",item.DisplayName),item.MultiLine&&1<item.LineCount&&(elementName="emby-multilineselect",multiselect=_layoutmanager.default.tv?Math.ceil(item.LineCount/2):item.LineCount,map.set("size",multiselect),html+="<style>.multilineSelectContainer .selectArrowContainer { display: none; }</style>",containerClass+=" multilineSelectContainer"),html+DIV(null,containerClass+item.extraClasses,null,function(children){children.push(EL("select",item.Id,null,null,elementName,null,map,function(){return item.SelectOptions.map(renderSelectOption).join("")})),children.push(DIV(null,"fieldDescription",null,item.Description))}))}function renderSelectOption(option){var disabled=option.IsEnabled?"":"disabled";return'<option value="'+option.Value+'" Id="'+option.Value+'" Name="'+option.Name+'" title="'+(option.DisplayHint||"")+'" '+disabled+" >"+option.Name+"</option>"}function renderFilePicker(item,isFolderPicker){var map=new Map,buttonMap=(item.AllowEmpty||map.set("required","required"),item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled")),map.set("label",item.DisplayName),_layoutmanager.default.tv&&map.set("autocomplete","off"),new Map);return buttonMap.set("title",_globalize.default.translate("ButtonSelectDirectory")),buttonMap.set("inputId",item.Id),buttonMap.set("fieldName",item.DisplayName),buttonMap.set("isFolderPicker",isFolderPicker),DIV(null,"inputContainer"+item.extraClasses,null,function(children){children.push(DIV(null,"flex align-items-center",null,function(c2){c2.push(DIV(null,"flex-grow",null,function(){return INPUT(item.Id,"text","emby-input","ge-picker",null,map)})),c2.push(EL("button",null,"filePickerButton emby-input-iconbutton",null,"paper-icon-button-light","button",buttonMap,function(){return EL("i",null,"md-icon",null,null,null,null,"search")}))})),children.push(DIV(null,"fieldDescription",null,item.Description))})}function renderButtonItemCore(item){var attributes=[],item=(attributes.push('is="emby-button"'),attributes.push('id="'+item.Id+'"'),attributes.push('type="button"'),attributes.push('class="raised raised-mini btnButtonItem emby-button'+item.extraClasses+'"'),attributes.push('style="margin-left:0;"'),"<button "+attributes.join(" ")+">");return item+'<i class="buttonIcon md-icon button-icon button-icon-left secondaryText"></i><span class="buttonText"></span>'+"</button>"}function renderRadioItem(item,x,y){var disabled=item.IsEnabled?"":'disabled="disabled"',disabled='<label class="radio-label-block"><input type="radio" is="emby-radio" name="'+this.Id+'" value="'+item.Value+'" '+disabled+' /><span><span class="radio-label-block-primarytext">'+item.Name+"</span>";return disabled+="</span></label>"}function renderRadioGroupItem(item,x,y){var disabled=item.IsEnabled?"":'disabled="disabled"',disabled='<label class="radio-label-block"><input type="radio" is="emby-radio" name="'+this.id+'" value="'+item.Value+'" '+disabled+' /><span><span class="radio-label-block-primarytext">'+item.PrimaryText+"</span>";return item.SecondaryText&&(disabled+='<br /><span class="radio-label-block-secondarytext">'+item.SecondaryText+"</span>"),disabled+="</span></label>"}function objHash(obj){for(var objStr=JSON.stringify(obj),hash=0,i=0;i<objStr.length;i++)hash=(hash<<5)-hash+objStr.charCodeAt(i),hash|=0;return""+hash}function renderItemListItems(listElement,items){var hash=objHash(items);if(listElement.getAttribute("hash")!==hash){if(0===listElement.childElementCount){var itemElements=items.map(createItemListItem,listElement.id);listElement.replaceChildren.apply(listElement,babelHelpers.toConsumableArray(itemElements))}else{for(;listElement.childElementCount>items.length;)listElement.lastElementChild.remove();for(var i=0;i<items.length;i++){var itemElement,item=items[i],itemHash=objHash(item);i<listElement.childElementCount?(itemElement=listElement.children[i]).getAttribute("hash")!==itemHash&&createItemListItem(item,i,0,listElement.id,itemElement).setAttribute("hash",itemHash):((itemElement=createItemListItem(item,i,0,listElement.id,null)).setAttribute("hash",itemHash),listElement.append(itemElement))}}listElement.setAttribute("hash",hash)}}function createItemListItem(item,index,itemArray,listId,existingElement){var contentElem,listId=(listId||this)+".listitem"+index,index=null,existingElement=(existingElement&&("A"===existingElement.tagName&&item.HyperLink||"DIV"===existingElement.tagName)&&(index=existingElement),item.HyperLink?(index=index||document.createElement("a",{is:"emby-linkbutton"})).href=item.HyperLink:index=index||document.createElement("div"),index.firstElementChild&&"DIV"===index.firstElementChild.tagName?contentElem=index.firstElementChild:((contentElem=document.createElement("div")).classList.add("ge-itemlist-listitem-listitemcontent","listItem-inner"),index.append(contentElem)),item.Button1||item.Button2||item.Toggle?(contentElem.classList.remove("focusable"),contentElem.classList.add("focuscontainer-x"),contentElem.tabIndex=null,contentElem.removeAttribute("tabindex")):(contentElem.classList.add("focusable"),contentElem.classList.remove("focuscontainer-x"),contentElem.tabIndex=0),existingElement&&existingElement!==index&&existingElement.replaceWith(index),index.id=listId,index.setAttribute("hash",objHash(item)),index.classList.add("paperListItem","listItem","listItem-border","ge-itemlist-listitem"),item.HyperLink||index.classList.add("listItem-touchzoom","listItem-touchzoom-transition"),item.IsSubItem&&index.classList.add("ge-sublistitem"),contentElem.querySelector(".ge-itemlist-listitem-imagecontainer")||contentElem.querySelector(".ge-sublistitem-imagecontainer"));if(item.Icon&&"NoIcons"!==item.IconMode){for(var imageContainer=existingElement||document.createElement("div"),iconModeClasses=(item.IsSubItem?imageContainer.classList.add("ge-sublistitem-imagecontainer"):imageContainer.classList.add("listItemImageContainer","ge-itemlist-listitem-imagecontainer"),item.SecondaryText?imageContainer.classList.remove("ge-listitemicon-singlerow"):imageContainer.classList.add("ge-listitemicon-singlerow"),["ge-icon-largeincircle","ge-icon-largeregular","ge-icon-smallincircle","ge-icon-smallregular"]),mode=(item.IconMode||"xxx").toLowerCase(),i=0;i<iconModeClasses.length;i++)0<iconModeClasses[i].indexOf(mode)?imageContainer.classList.add(iconModeClasses[i]):imageContainer.classList.remove(iconModeClasses[i]);var existingSpinner=imageContainer.querySelector(".statusSpinner"),existingIcon=imageContainer.querySelector("i");"Loading"===item.Icon||"InProgress"===item.Status?(existingSpinner||((itemSpinner=document.createElement("div")).classList.add("mdl-spinner","statusSpinner"),(spinnerLlayer=document.createElement("div")).classList.add("mdl-spinner__layer","mdl-spinner__layer-1"),(spinnerLleft=document.createElement("div")).classList.add("mdl-spinner__circle-clipper","mdl-spinner__left"),(circleLeft=document.createElement("div")).classList.add("mdl-spinner__circle","mdl-spinner__circleLef"),(spinnerRight=document.createElement("div")).classList.add("mdl-spinner__circle-clipper","mdl-spinner__right"),(circleRight=document.createElement("div")).classList.add("mdl-spinner__circle","mdl-spinner__circleRight"),spinnerLleft.append(circleLeft),spinnerRight.append(circleRight),spinnerLlayer.append(spinnerLleft,spinnerRight),itemSpinner.append(spinnerLlayer),imageContainer.append(itemSpinner)),imageContainer.style.backgroundColor=null,existingIcon&&existingIcon.remove()):((circleLeft=existingIcon||document.createElement("i")).innerText=item.Icon,circleLeft.classList.add("md-icon"),"LargeInCircle"===item.IconMode||"SmallInCircle"===item.IconMode?(circleLeft.style.color="None"===item.Status?"transparent":"#ffffffee",imageContainer.style.backgroundColor=getStatusColor(item.Status)):(circleLeft.style.color=getStatusColor(item.Status),imageContainer.style.backgroundColor=null),existingSpinner&&existingSpinner.remove(),existingIcon||imageContainer.appendChild(circleLeft)),existingElement||contentElem.append(imageContainer)}else existingElement&&existingElement.remove();var circleLeft,progressInner,progressSpan,circleRight=contentElem.querySelector(".listItemBody"),spinnerLleft=circleRight||document.createElement("div"),spinnerRight=(spinnerLleft.classList.add("listItemBody","ge-listitembody"),item.SecondaryText?spinnerLleft.classList.remove("ge-listitembody-singlerow"):spinnerLleft.classList.add("ge-listitembody-singlerow"),"LargeRegular"===item.IconMode||"LargeInCircle"===item.IconMode||item.Button1||item.Button2||item.Toggle||item.PrimaryText&&item.SecondaryText?spinnerLleft.classList.remove("ge-listitembody-smallheight"):spinnerLleft.classList.add("ge-listitembody-smallheight"),spinnerLleft.querySelector(".listItemBodyText-primary")),spinnerLlayer=spinnerRight||document.createElement("div"),itemSpinner=(spinnerLlayer.classList.add("listItemBodyText","listItemBodyText-primary","listItemBodyText-nowrap"),spinnerLlayer.style.fontWeight=item.Tag?"500":null,spinnerLlayer.cachedText!==item.PrimaryText&&(spinnerLlayer.innerHTML=item.PrimaryText,spinnerLlayer.cachedText=item.PrimaryText),spinnerLlayer.querySelector(".ge-listitem-tag")),existingIcon=(item.Tag?((existingSpinner=itemSpinner||document.createElement("span")).classList.add("ge-listitem-tag"),existingSpinner.innerText=item.Tag.Text,itemSpinner||spinnerLlayer.append(existingSpinner," ")):itemSpinner&&itemSpinner.remove(),spinnerRight||spinnerLleft.append(spinnerLlayer),spinnerLleft.querySelector(".listItemBodyText-secondary")),existingElement=(item.SecondaryText?((circleLeft=existingIcon||document.createElement("div")).classList.add("listItemBodyText","listItemBodyText-secondary","listItemBodyText-nowrap"),circleLeft.cachedText!==item.SecondaryText&&(circleLeft.innerText=item.SecondaryText,circleLeft.cachedText=item.SecondaryText),existingIcon?item.ShowSecondaryFirst&&spinnerLleft.children[0]!==existingIcon?spinnerLleft.insertAdjacentElement("afterbegin",existingIcon):item.ShowSecondaryFirst||spinnerLleft.children[0]!==existingIcon||spinnerLleft.insertAdjacentElement("beforeend",existingIcon):item.ShowSecondaryFirst?spinnerLleft.insertAdjacentElement("afterbegin",circleLeft):spinnerLleft.append(circleLeft)):existingIcon&&existingIcon.remove(),spinnerLleft.querySelector(".ge-progress")),spinnerRight=(item.HasPercentage?(existingElement?(progressInner=spinnerLleft.querySelector(".ge-progress-inner"),progressSpan=spinnerLleft.querySelector(".ge-progress-span")):((existingSpinner=document.createElement("div")).classList.add("ge-progress"),(itemSpinner=document.createElement("div")).classList.add("ge-progress-outer"),(progressInner=document.createElement("div")).classList.add("ge-progress-inner"),(progressSpan=document.createElement("span")).classList.add("ge-progress-span"),itemSpinner.append(progressInner),existingSpinner.append(itemSpinner,progressSpan),spinnerLleft.append(existingSpinner)),progressInner&&(progressInner.style.width=item.PercentComplete+"%"),progressSpan&&(progressSpan.innerText=item.PercentComplete+"%")):existingElement&&existingElement.remove(),circleRight||contentElem.append(spinnerLleft),createListButton(contentElem,item.Button1,listId,"button1"),createListButton(contentElem,item.Button2,listId,"button2"),!function(contentElem,toggle,toggleId){var toggleContainer,toggleInput,toggleDiv,toggleLabel,existingContainer=contentElem.querySelector(".ge-itemlist-listitem-togglecontainer");toggle?(toggleContainer=existingContainer||document.createElement("div"),existingContainer?(toggleInput=toggleContainer.querySelector("INPUT"),toggleDiv=toggleContainer.querySelector("DIV")):(toggleContainer.classList.add("checkboxContainer","ge-itemlist-listitem-togglecontainer"),toggleLabel=document.createElement("label"),(toggleInput=document.createElement("input",{is:"emby-toggle"})).id=toggleId,toggleInput.type="checkbox",toggleInput.classList.add("noautofocus"),(toggleDiv=document.createElement("div")).classList.add("ge-togglelabel"),(toggleId=document.createElement("span")).innerHTML="&nbsp;",toggleLabel.append(toggleInput,toggleId,toggleDiv),toggleContainer.append(toggleLabel)),toggleInput.readOnly=!toggle.IsEnabled,toggleInput.disabled=!toggle.IsEnabled,toggleInput.checked=!!toggle.IsChecked,toggleInput.setAttribute("data-data1",toggle.Data1||""),toggleInput.setAttribute("data-data2",toggle.Data2||""),toggleInput.setAttribute("data-prompt",toggle.ConfirmationPrompt||""),toggleDiv.innerText=toggle.Caption,toggleContainer.title=toggle.Caption||"",existingContainer||contentElem.insertAdjacentElement("beforeend",toggleContainer)):existingContainer&&existingContainer.remove()}(contentElem,item.Toggle,listId+".toggle"),index.querySelector(".paperlist"));return!item.HyperLink&&item.SubItems?(item.SubItems.forEach(function(si){si.IsSubItem=!0}),(spinnerLlayer=spinnerRight||document.createElement("div")).id=listId+".SubList",spinnerLlayer.classList.add("paperlist","ge-itemlist","ge-subitemlist"),!item.Icon||"LargeRegular"!==item.IconMode&&"LargeInCircle"!==item.IconMode?item.Icon&&"NoIcons"!==item.IconMode?(spinnerLlayer.classList.remove("ge-subitemlist-largeindent"),spinnerLlayer.classList.add("ge-subitemlist-smallindent")):(spinnerLlayer.classList.remove("ge-subitemlist-largeindent"),spinnerLlayer.classList.remove("ge-subitemlist-smallindent")):(spinnerLlayer.classList.add("ge-subitemlist-largeindent"),spinnerLlayer.classList.remove("ge-subitemlist-smallindent")),renderItemListItems(spinnerLlayer,item.SubItems),spinnerRight||index.append(spinnerLlayer)):spinnerRight&&spinnerRight.remove(),index}function createListButton(contentElem,button,buttonId,cls){var buttonElem,buttonIcon,existingButton=contentElem.querySelector("."+cls);button?((buttonElem=existingButton||document.createElement("button",{is:"emby-button"})).type="button",button.Caption?buttonElem.classList.add("raised","raised-mini"):buttonElem.classList.add("paper-icon-button-light"),buttonElem.classList.add("emby-button"),buttonElem.classList.add(cls),buttonElem.id=buttonId+"."+cls,buttonElem.setAttribute("data-data1",button.Data1||""),buttonElem.setAttribute("data-data2",button.Data2||""),buttonElem.setAttribute("data-prompt",button.ConfirmationPrompt||""),buttonElem.title=button.Caption||"",buttonId=buttonElem.querySelector(".md-icon"),button.Icon?((buttonIcon=buttonId||document.createElement("i")).innerText=button.Icon,buttonIcon.classList.add("md-icon"),buttonIcon.classList.add("button-icon"),function(element,cls,condition){condition?element.classList.add(cls):element.classList.remove(cls)}(buttonIcon,"button-icon-left",button.Caption),buttonIcon.classList.add("secondaryText"),buttonId||buttonElem.insertAdjacentElement("afterbegin",buttonIcon)):buttonId&&buttonId.remove(),buttonIcon=buttonElem.querySelector("span"),button.Caption?((buttonId=buttonIcon||document.createElement("span")).innerText=button.Caption,buttonIcon||(buttonElem.insertAdjacentElement("beforeend",buttonId),buttonElem.append(buttonId))):buttonIcon&&buttonIcon.remove(),buttonElem.disabled=!button.IsEnabled,buttonElem.subMenuButtons=button.SubMenuButtons,existingButton||contentElem.append(buttonElem),"button2"===cls&&contentElem.lastElementChild!==buttonElem&&contentElem.insertAdjacentElement("beforeend",buttonElem)):existingButton&&existingButton.remove()}function formatDescription(description){return description&&0!==description.length?description.split("\n").join("<br />"):null}function getAllItems(editorRoot){var allItems=[];return editorRoot&&editorRoot.EditorItems&&function collectItems(item,allItems){item.TitleButton&&allItems.push(item.TitleButton);if(item.EditorItems)for(var i=0;i<item.EditorItems.length;i++)collectItems(item.EditorItems[i],allItems);else allItems.push(item)}(editorRoot,allItems),allItems}function hasValue(sourceObject,propertyPath){if(null!==sourceObject){for(var subObject=sourceObject,pathElements=propertyPath.split("."),i=0;i<pathElements.length;i++){var pathElement=pathElements[i].replace("colitem","");if(!subObject||!Object.hasOwn(subObject,pathElement))return;subObject=subObject[pathElement]}return 1}}function getValue(sourceObject,propertyPath){for(var subObject=sourceObject,pathElements=propertyPath.split("."),i=0;i<pathElements.length;i++){var pathElement=pathElements[i].replace("colitem","");if(!Object.hasOwn(subObject,pathElement))return null;subObject=subObject[pathElement]}return subObject}function setValue(sourceObject,propertyPath,value){for(var subObject=sourceObject,pathElements=propertyPath.split("."),i=0;i<pathElements.length-1;i++){var pathElement=pathElements[i].replace("colitem","");if(!Object.hasOwn(subObject,pathElement))return;subObject=subObject[pathElement]}subObject[pathElements[pathElements.length-1]]=value}function EL(elementType,id,elemClass,style,is,type,attribs,contentFunc){var map=new Map,attributes=(map.set("id",id),map.set("class",elemClass),map.set("style",style),map.set("is",is),map.set("type",type),attribs&&attribs.forEach(function(value,key){map.set(key,value)}),[]),id=(map.forEach(function(value,key){null!=value&&attributes.push(key+'="'+value+'"')}),"<"+elementType+" "+attributes.join(" ")+">");return contentFunc&&("function"==typeof contentFunc?(style=contentFunc(elemClass=[]),id=id+elemClass.join(" ")+(style||"")):id+=contentFunc),id+="</"+elementType+">"}function getStatusColor(status){switch(status){case"None":return statusColorNone;case"Succeeded":return statusColorOk;case"Failed":return statusColorError;case"Warning":return statusColorWarning;case"Unknown":return statusColorGhosted;default:return statusColorDisabled}}function DIV(id,cls,style,contentFunc){return EL("div",id,cls,style,null,null,null,contentFunc)}function LABEL(cls,style,for1,contentFunc){var map=new Map;return for1&&0<for1.length&&map.set("for",for1),EL("label",null,cls,style,null,null,map,contentFunc)}function INPUT(id,type,is,cls,style,attribs,contentFunc){return EL("input",id,cls,style,is,type,attribs,contentFunc)}_exports.default={renderForm:function(editObjectContainer,container){return editObjectContainer&&editObjectContainer.EditorRoot?(container.classList.add("ge-container"),checkGetDx(editObjectContainer.EditorRoot).then(function(){var root=editObjectContainer.EditorRoot,sectionStyle="",valueObject=(container.style.height&&(sectionStyle="height: "+container.style.height+";"),container.innerHTML=DIV(null,"verticalSection",sectionStyle,function(children){root.DisplayName||root.Description?(children.push(DIV(null,"sectionTitleContainer",null,function(c2){var id,cls,style,contentFunc;root.DisplayName&&c2.push((cls="sectionTitle",style=id=null,contentFunc=root.DisplayName,EL("h1",id,cls,style,null,null,null,contentFunc))),root.Description&&c2.push(function(id,cls,style,contentFunc){return EL("p",id,cls,style,null,null,null,contentFunc)}(null,"ge-section-description",null,formatDescription(root.Description)))})),children.push(DIV(null,"sectionContent",null,function(){return root.EditorItems.map(renderSingleItem).join("")}))):children.push(root.EditorItems.map(renderSingleItem).join(""))}),!function(container){container.classList.add("filePickerContainer");for(var buttons=container.querySelectorAll(".filePickerButton"),i=0;i<buttons.length;++i)buttons[i].addEventListener("click",onFilePickerButtonClick)}(container),editObjectContainer.Object);function onChangeHandler(e){if("number"===e.target.type||"text"===e.target.type&&!e.target.classList.contains("ge-picker")){if("change"===e.type)return}else if("input"===e.type)return;var targetValue=e.target.value,targetId=("checkbox"===e.target.type&&(targetValue=e.target.checked),e.target.id);if("radio"===e.target.type&&(targetId=e.target.name),applyPropertyConditions(root,container,targetValue,targetId),root.PostbackActions){for(var timerId,action=null,i=0;i<root.PostbackActions.length;i++)if(root.PostbackActions[i].TargetEditorId===targetId){action=root.PostbackActions[i];break}action&&(timerId=setTimeout(function(){clearTimeout(timerId);var event=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});event.Data1=action.PostbackCommandId,event.Data2=getValue(valueObject,action.CommandParameterPropertyId),container.dispatchEvent(event)},50))}}return container.lastChangeHandler&&container.removeEventListener("change",container.lastChangeHandler),container.lastInputHandler&&container.removeEventListener("input",container.lastInputHandler),container.lastChangeHandler=onChangeHandler,container.lastInputHandler=onChangeHandler,container.addEventListener("change",container.lastChangeHandler),container.addEventListener("input",container.lastChangeHandler),container.removeEventListener("click",actionSheetHandler),container.addEventListener("click",actionSheetHandler),Promise.resolve()})):Promise.resolve()},getItemValues:function(editObjectContainer,container){if(editObjectContainer){editObjectContainer.isDataValid=!0;for(var valueObject=editObjectContainer.Object,allItems=getAllItems(editObjectContainer.EditorRoot),s=0;s<allItems.length;s++){var item=allItems[s];if("StatusItem"!==item.EditorType&&"ProgressItem"!==item.EditorType&&"ButtonItem"!==item.EditorType&&"CaptionItem"!==item.EditorType&&"ItemList"!==item.EditorType){var isoString,elementId=item.Id.split(".").join("\\."),elementId=container.querySelector("#"+elementId);if(elementId&&valueObject)if("checkbox"===elementId.type)setValue(valueObject,item.Id,elementId.checked);else if("select-multiple"===elementId.type){var selectedValues=(elementId.values||Array.from(elementId.selectedOptions).map(function(option){return option.value})).join(",");setValue(valueObject,item.Id,selectedValues)}else if(elementId.classList.contains("radioGroup")){for(var radios=elementId.querySelectorAll("INPUT"),i=0;i<radios.length;i++)if(radios[i].checked){setValue(valueObject,item.Id,radios[i].value);break}}else"DataGrid"===item.EditorType||"DxDataGrid"===item.EditorType?genericEditDx.getDataGridValues(elementId,editObjectContainer,valueObject):"Date"===item.EditorType?(isoString=null==(selectedValues=elementId.valueAsDateUtc)?void 0:selectedValues.toISOString(),setValue(valueObject,item.Id,isoString)):(isoString=getEditor(item.EditorType))?isoString.setValue(elementId,editObjectContainer,valueObject,item):setValue(valueObject,item.Id,elementId.value)}}}},runGridCommand:function(container,commandParam){return genericEditDx.runGridCommand(container,commandParam)},setFormValues:function(editObjectContainer,container){if(editObjectContainer){for(var valueObject=editObjectContainer.Object,defaultValueObject=editObjectContainer.DefaultObject,allItems=getAllItems(editObjectContainer.EditorRoot),s=0;s<allItems.length;s++){var item=allItems[s],elementId=item.Id.split(".").join("\\."),element=container.querySelector("#"+elementId);if(element){if("select-one"===element.type||"select-multiple"===element.type||"radioGroup"===element.className){var staticitemssourceid=element.attributes.getNamedItem("staticitemssourceid");if(staticitemssourceid){var sourceItems=getValue(valueObject,staticitemssourceid.value);if(sourceItems)for(var n=element.options.length-1;0<=n;n--){var node=element.options[n];node.value&&0<node.value.length&&-1===sourceItems.indexOf(node.value)&&element.remove(n)}}var staticitemssourceid=element.attributes.getNamedItem("itemssourceid");if(staticitemssourceid){var sourceItems2=getValue(valueObject,staticitemssourceid.value);if(sourceItems2)if(element.innerHTML="","radioGroup"===element.className)staticitemssourceid=sourceItems2,(listElement=element).innerHTML=null,staticitemssourceid=staticitemssourceid.map(renderRadioGroupItem,listElement).join(""),listElement.innerHTML=staticitemssourceid;else for(var n2=0;n2<sourceItems2.length;n2++){var item2=sourceItems2[n2],opt=document.createElement("option");opt.value=item2.Value,opt.text=item2.Name,opt.disabled=!item2.IsEnabled,element.add(opt)}}}if("StatusItem"===item.EditorType){var listElement=getValue(valueObject,item.Id);if(listElement){element.querySelector(".primaryText").innerText=listElement.Caption;var staticitemssourceid=element.querySelector(".secondaryText"),statusText=listElement.StatusText||"",icon=(staticitemssourceid.innerText=statusText,element.querySelector(".statusIcon")),statusText=element.querySelector(".statusSpinner");switch("InProgress"===listElement.Status?(icon.classList.add("hide"),statusText.classList.remove("hide")):(icon.classList.remove("hide"),statusText.classList.add("hide")),icon.style.color=getStatusColor(listElement.Status),listElement.Status){case"None":icon.innerText="",icon.classList.add("autortl");break;case"Succeeded":icon.innerText="check_circle_outline",icon.classList.remove("autortl");break;case"Failed":icon.innerText="error_outline",icon.classList.add("autortl");break;case"Warning":icon.innerText="help_outline",icon.classList.add("autortl");break;case"Unavailable":icon.innerText="remove_circle_outline",icon.classList.add("autortl")}}}else if("ButtonItem"===item.EditorType){statusText=getValue(valueObject,item.Id);statusText&&((buttonText=element.querySelector(".buttonText")).innerText=statusText.Caption||"",element.setAttribute("data-caption",buttonText.innerText),buttonText=element.querySelector(".buttonIcon"),statusText.Icon?(buttonText.innerText=statusText.Icon,buttonText.classList.remove("hide")):(buttonText.innerText="",buttonText.classList.add("hide")),element.disable=!statusText.IsEnabled,statusText.IsVisible?element.classList.remove("hide"):element.classList.add("hide"),statusText.SubMenuButtons&&(element.subMenuButtons=statusText.SubMenuButtons),statusText.Data1&&element.setAttribute("data-data1",statusText.Data1),statusText.Data2&&element.setAttribute("data-data2",statusText.Data2),statusText.ConfirmationPrompt?element.setAttribute("data-prompt",statusText.ConfirmationPrompt):element.removeAttribute("data-prompt"))}else if("CaptionItem"===item.EditorType){var buttonText=getValue(valueObject,item.Id);buttonText&&(element.querySelector(".captionText").innerText=buttonText.Caption||"",buttonText.IsVisible?element.classList.remove("hide"):element.classList.add("hide"))}else if("LabelItem"===item.EditorType){var labelValue=getValue(valueObject,item.Id);labelValue&&((labelElement=element.querySelector(".labelText")).innerText=labelValue.Text||"",labelValue.HyperLink?labelElement.setAttribute("href",labelValue.HyperLink):labelElement.removeAttribute("href"),labelValue.IsVisible?element.classList.remove("hide"):element.classList.add("hide"))}else if("SpacerItem"===item.EditorType){var labelElement=getValue(valueObject,item.Id);if(labelElement)switch(labelElement.Size||"Small"){case"Small":element.style.height="1em";break;case"Medium":element.style.height="2em";break;case"Large":element.style.height="4em";break;case"XLarge":element.style.height="8em"}}else if("ProgressItem"===item.EditorType){labelValue=getValue(valueObject,item.Id);labelValue&&(labelValue.CurrentValue&&(element.value=labelValue.CurrentValue),labelValue.MaxValue&&(element.max=labelValue.MaxValue),labelValue.ProgressText)&&(element.innerText=labelValue.ProgressText)}else if("ItemList"===item.EditorType){var listValue=getValue(valueObject,item.Id);listValue&&renderItemListItems(element,listValue)}else if("RadioGroup"===item.EditorType||"SelectSingle"===item.EditorType&&item.ShowAsRadio)for(var radios=element.querySelectorAll("INPUT"),i=0;i<radios.length;i++)radios[i].checked=radios[i].value===getValue(valueObject,item.Id);else if("DataGrid"===item.EditorType||"DxDataGrid"===item.EditorType)genericEditDx.setDataGridValues(valueObject,item,element,container,elementId);else if("PivotGrid"===item.EditorType||"DxPivotGrid"===item.EditorType)genericEditDx.setPivotGridValues(valueObject,item,element);else if("Date"===item.EditorType)try{var dateValue=getValue(valueObject,item.Id);element.valueAsNumberUtc=Date.parse(dateValue)}catch(e){element.value=""}else if(getEditor(item.EditorType))getEditor(item.EditorType).setValues(valueObject,item,element,container,elementId);else if(hasValue(valueObject,item.Id))if("checkbox"===element.type)element.checked=getValue(valueObject,item.Id);else if("select-multiple"===element.type){var selectedValues2=getValue(valueObject,item.Id).split(",");if(1===selectedValues2.length&&0===selectedValues2[0].length&&(selectedValues2=[]),element.values=selectedValues2,element.options)for(i=0;i<element.options.length;i++){var option=element.options[i],isSelected=0<=selectedValues2.indexOf(element.options[i].value);option.selected=isSelected}}else if(element.classList.contains("radioGroup")){var _radios=element.querySelectorAll("INPUT");for(i=0;i<_radios.length;i++)_radios[i].checked=_radios[i].value===getValue(valueObject,item.Id)}else element.value=getValue(valueObject,item.Id);else if(hasValue(defaultValueObject,item.Id)){if("checkbox"===element.type)element.checked=getValue(defaultValueObject,item.Id);else if("select-multiple"===element.type){listValue=getValue(defaultValueObject,item.Id).split(",");element.values=listValue}else if(element.classList.contains("radioGroup")){var radios2=element.querySelectorAll("INPUT");for(i=0;i<radios2.length;i++)radios2[i].checked=radios2[i].value===getValue(defaultValueObject,item.Id)}}else"select-one"!==element.type&&"select-multiple"!==element.type||(element.value="")}}for(var root=editObjectContainer.EditorRoot,t=0;t<root.PropertyConditions.length;t++){var condition=root.PropertyConditions[t];applyPropertyConditions(root,container,getValue(valueObject,condition.TargetPropertyId),condition.TargetPropertyId)}}},resetToDefaults:function(editObjectContainer,container){for(var editors=editObjectContainer.EditorRoot.EditorItems,n=0;n<editors.length;n++){var editor=editors[n],defval=getValue(editObjectContainer.DefaultObject,editor.Id);setValue(editObjectContainer.Object,editor.Id,defval)}},registerEditor:function(type,editor){customEditors[type]=editor},runCommand:function(commandId,element,itemId){return!!(commandId=function(commandId){return commandProcessors[commandId]}(commandId))&&(commandId(element,itemId),!0)},registerCommandProcessor:function(commandId,processor){commandProcessors[commandId]=processor}}});