EmbyCrackedClient/web/modules/genericedit/genericedit.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
48 KiB
JavaScript

import globalize from"./../common/globalize.js";import layoutManager from"./../layoutmanager.js";import focusManager from"./../focusmanager.js";import"./../emby-elements/emby-input/emby-input.js";import"./../emby-elements/emby-textarea/emby-textarea.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-checkbox/emby-checkbox.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-multilineselect/emby-multilineselect.js";import"./../emby-elements/emby-radio/emby-radio.js";import"./../emby-elements/emby-toggle/emby-toggle.js";import"./../emby-elements/emby-premierecontainer/emby-premierecontainer.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../listview/listview.js";require(["formDialogStyle","flexStyles","material-icons","css!legacy/dashboard.css","css!modules/genericedit/genericedit.css"]);let statusColorNone="transparent",statusColorOk="#8bc34a",statusColorWarning="#ffc107",statusColorError="#f44336",statusColorDisabled="#919191",statusColorGhosted="#dcdcdc";function showActionSheet(options){return Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}let genericEditDx=null;function checkGetDx(editorRoot){return genericEditDx||!isDxRequired(editorRoot)?Promise.resolve():require(["https://mediabrowser.github.io/genericedit_dx/genericedit_dx.js"],function(result){return genericEditDx=result,Promise.resolve()})}let customEditors={};function getEditor(type){return customEditors[type]}function registerEditor(type,editor){customEditors[type]=editor}let commandProcessors={};function getCommandProcessor(commandId){return commandProcessors[commandId]}function registerCommandProcessor(commandId,processor){commandProcessors[commandId]=processor}function runCommand(commandId,element,itemId){commandId=getCommandProcessor(commandId);return!!commandId&&(commandId(element,itemId),!0)}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.autoFocus(innerListItem,{findAutoFocusElement:!1}),e.Data1)return!0;let button=e.target.closest("BUTTON");if(button&&"button"===button.type&&button.subMenuButtons){let menuButtons=button.subMenuButtons;var menuItems=[];let hasItemIcon=!1;for(let p=0;p<menuButtons.length;p++){var buttonAttribs=' data-data1="'+menuButtons[p].Data1+'" data-data2="'+menuButtons[p].Data2+'" ',buttonAttribs="item"+p+'" '+buttonAttribs+' x="';menuButtons[p].Icon&&(hasItemIcon=!0),menuItems.push({name:menuButtons[p].Caption,icon:menuButtons[p].Icon,escapedAttribs:buttonAttribs,id:"item"+p})}let container=this;return container.classList.add("actionsheet-open"),showActionSheet({items:menuItems,positionTo:button,title:"",hasItemIcon:hasItemIcon}).then(function(id){container.classList.remove("actionsheet-open");var event=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});for(let 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 isDxRequired(item){switch(item.EditorType){case"DxDataGrid":case"DxPivotGrid":case"DataGrid":case"PivotGrid":return!0}if(item.EditorItems)for(let i=0;i<item.EditorItems.length;i++)if(isDxRequired(item.EditorItems[i]))return!0;return!1}function renderForm(editObjectContainer,container){return editObjectContainer&&editObjectContainer.EditorRoot?(container.classList.add("ge-container"),checkGetDx(editObjectContainer.EditorRoot).then(function(){let 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 innerHTML;root.DisplayName&&c2.push(H1(null,"sectionTitle",null,root.DisplayName)),root.Description&&c2.push(P(null,"ge-section-description",null,formatDescription(root.Description))),root.FeatureRequiresPremiere&&(innerHTML=globalize.translate("FeatureRequiresEmbyPremiere",'<a href="https://emby.media/premiere" data-preset="premiereinfo" is="emby-linkbutton" type="button" class="button-link">',"</a>"),c2.push(DIV(null,null,"margin:1em 0;",innerHTML,"emby-premierecontainer")))})),children.push(DIV(null,"sectionContent",null,function(){return root.EditorItems.map(renderSingleItem).join("")}))):children.push(root.EditorItems.map(renderSingleItem).join(""))}),container.PostbackActions=root.PostbackActions,registerFilePickerEvents(container),editObjectContainer.Object);function onChangeHandler(e){if("text"!==e.target.type||e.target.classList.contains("ge-picker")){if("input"===e.type)return}else if("change"===e.type)return;let 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),e.target.classList.contains("emby-list-toggle")&&e.target.dataset.data1&&e.target.dataset.data2){let timerId=setTimeout(()=>{clearTimeout(timerId);var event=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});event.Data1=e.target.dataset.data1,event.Data2=e.target.dataset.data2,container.dispatchEvent(event)},50)}if(container.PostbackActions){let action=null;for(let i=0;i<container.PostbackActions.length;i++)if(container.PostbackActions[i].TargetEditorId===targetId){action=container.PostbackActions[i];break}if(action){let timerId=setTimeout(()=>{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()}function applyPropertyConditions(root,container,targetValue,targetId){for(let 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){let 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":{let viewElement=affectedElement;var isInput="radioGroup"===(viewElement="checkbox"===viewElement.type?viewElement.parentElement.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(){let context=this;Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(DirectoryBrowser){let picker=new DirectoryBrowser;DirectoryBrowser="true"===context.getAttribute("isFolderPicker");let inputId="#"+context.getAttribute("inputId"),container=(inputId=inputId.split(".").join("\\."),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 registerFilePickerEvents(container){container.classList.add("filePickerContainer");var buttons=container.querySelectorAll(".filePickerButton");for(let i=0;i<buttons.length;++i)buttons[i].removeEventListener("click",onFilePickerButtonClick),buttons[i].addEventListener("click",onFilePickerButtonClick)}function renderSingleItem(item){switch(item.extraClasses="",item.IsAdvanced&&(item.extraClasses+=" advanced"),item.EditorType){case"Group":return renderItemGroup(item);case"Text":return renderText(item);case"Numeric":return renderNumeric(item);case"Boolean":return renderCheckBox(item);case"SelectSingle":return renderSelect(item,!1);case"SelectMultiple":return renderSelect(item,!0);case"Date":return renderDate(item);case"FilePath":return renderFilePicker(item,!1);case"FolderPath":return renderFilePicker(item,!0);case"StatusItem":return renderStatusItem(item);case"ProgressItem":return renderProgressItem(item);case"ButtonItem":return renderButtonItem(item);case"ButtonGroup":return renderButtonGroup(item);case"CaptionItem":return renderCaptionItem(item);case"LabelItem":return renderLabelItem(item);case"SpacerItem":return renderSpacerItem(item);case"ItemList":return renderItemList(item);case"RadioGroup":return renderRadioGroup(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 renderCheckBox(item){let map=new Map;return item.IsReadOnly&&(map.set("readonly","readonly"),map.set("disabled","disabled")),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 SPAN(null,null,null,item.DisplayName)})})),item.Description&&children.push(DIV(null,"fieldDescription checkboxFieldDescription",null,item.Description))})}function renderSelect(item,multiselect){if(item.ShowAsRadio)return renderRadio(item,!1);let html="",containerClass="selectContainer",elementName="emby-select",map=new Map;return item.AllowEmpty||map.set("required","required"),item.IsReadOnly&&map.set("disabled","disabled"),multiselect&&map.set("multiple","multiple"),map.set("allselected-labeltext",globalize.translate("All")),map.set("data-empty-is-all","false"),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.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(SELECT(item.Id,elementName,null,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 renderText(item){let element=item.MultiLine?"textarea":"input",elementIs="emby-"+element,elemType="text",style="",map=(item.IsPassword&&(elemType="password"),new Map);return 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.tv&&map.set("autocomplete","off"),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))})}function renderFilePicker(item,isFolderPicker){let 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.tv&&map.set("autocomplete","off"),new Map);return buttonMap.set("title",globalize.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 ICON(null,"md-icon",null,"search")}))})),children.push(DIV(null,"fieldDescription",null,item.Description))})}function renderStatusItem(item){item='<div Id="'+item.Id+'" class="infoBanner statusItem'+item.extraClasses+'" style="margin-top:1em;">';return item+'<div class="infoBannerIconContainer">'+'<i class="statusIcon infoBannerIcon md-icon">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="flex flex-direction-column">'+'<div class="infoBanner-primaryText">&nbsp;</div><div class="infoBanner-secondaryText">&nbsp;</div>'+"</div>"+"</div>"}function renderProgressItem(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>"}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=item+'<i class="buttonIcon md-icon button-icon button-icon-left"></i><span class="buttonText"></span>'+"</button>"}function renderTitleButtonItem(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=item+'<i class="buttonIcon md-icon button-icon"></i><span class="buttonText"></span>'+"</button>"}function renderButtonItem(item){return DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return renderButtonItemCore(item)})})}function renderButtonGroup(item){return item.IsBottomPanel?renderBottomButtonGroup(item):DIV(null,"verticalSection","margin-top: 1.2em;",function(){return DIV(null,"horizontalSection allSection",null,function(){return item.EditorItems.map(renderButtonItemCore).join("")})})}function renderBottomButtonGroup(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("")})})}function renderCaptionItem(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 1em;",function(){return DIV(null,"sectionTitleContainer",null,function(){return H3(null,"sectionTitle captionText")})})}function renderLabelItem(item){return DIV(item.Id,"verticalSection"+item.extraClasses,"margin-top: 0.5em;",function(){return'<p><a target="_blank" class="labelText"></a></p>'})}function renderSpacerItem(item){return DIV(item.Id,"verticalSection"+item.extraClasses)}function renderItemList(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))})}function renderRadio(item){let 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("")}))})}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 renderRadioGroup(item){let 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))})}function renderRadioGroupItems(listElement,items){var hash=objHash(items);listElement.getAttribute("hash")!==hash&&(items=items.map(renderRadioGroupItem,listElement).join(""),listElement.setAttribute("hash",hash),listElement.innerHTML=items)}function renderRadioGroupItem(item,x,y){var disabled=item.IsEnabled?"":'disabled="disabled"';let html='<label class="emby-radio-label"><input type="radio" is="emby-radio" name="'+this.id+'" id="'+this.id+"___"+item.Value+'" value="'+item.Value+'" '+disabled+' /><span class="radioButtonLabel">'+item.PrimaryText+"</span>";return html+="</label>",item.SecondaryText&&(html+='<div class="fieldDescription radioFieldDescription">'+item.SecondaryText+"</div>"),html}function objHash(obj){var objStr=JSON.stringify(obj);let hash=0;for(let 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(...itemElements)}else{for(;listElement.childElementCount>items.length;)listElement.lastElementChild.remove();for(let i=0;i<items.length;i++){var item=items[i],itemHash=objHash(item);if(i<listElement.childElementCount){var itemElement=listElement.children[i];itemElement.getAttribute("hash")!==itemHash&&createItemListItem(item,i,items,listElement.id,itemElement).setAttribute("hash",itemHash)}else{let newElement=createItemListItem(item,i,items,listElement.id,null);newElement.setAttribute("hash",itemHash),listElement.appendChild(newElement)}}}listElement.setAttribute("hash",hash)}}function addRemoveClass(element,cls,condition){condition?element.classList.add(cls):element.classList.remove(cls)}function getItemIcon(item){var standardIcon=item.StandardIcon;if(standardIcon)switch(standardIcon){case"Loading":return standardIcon;case"Add":return"add";case"Edit":return"edit";case"Refresh":return"refresh";case"Remove":return"remove_circle_outline";case"Delete":return"delete";case"ContextMenu":return"more_horiz";case"Download":return"download";case"AddToList":return"&#xe03b;"}return item.Icon}function createItemListItem(item,index,itemArray,listId,existingElement){listId=(listId||this)+".listitem"+index;let listElem=null;existingElement&&("A"===existingElement.tagName&&item.HyperLink||"DIV"===existingElement.tagName)&&(listElem=existingElement);let contentElem;item.HyperLink?(listElem=listElem||document.createElement("a",{is:"emby-linkbutton"})).href=item.HyperLink:listElem=listElem||document.createElement("div"),listElem.firstElementChild&&"DIV"===listElem.firstElementChild.tagName?contentElem=listElem.firstElementChild:((contentElem=document.createElement("div")).classList.add("ge-itemlist-listitem-listitemcontent","listItem-inner"),listElem.appendChild(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.setAttribute("tabindex","0")),existingElement&&existingElement!==listElem&&existingElement.replaceWith(listElem),listElem.id=listId,listElem.setAttribute("hash",objHash(item)),listElem.classList.add("listItem","listItem-border","ge-itemlist-listitem"),item.HyperLink||listElem.classList.add("listItem-touchzoom","listItem-touchzoom-transition"),item.IsSubItem&&listElem.classList.add("ge-sublistitem");index=contentElem.querySelector(".ge-itemlist-listitem-imagecontainer")||contentElem.querySelector(".ge-sublistitem-imagecontainer"),existingElement=getItemIcon(item);if(existingElement&&"NoIcons"!==item.IconMode){var imageContainer=index||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();for(let 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"===existingElement||"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.appendChild(circleLeft),spinnerRight.appendChild(circleRight),spinnerLlayer.append(spinnerLleft,spinnerRight),itemSpinner.appendChild(spinnerLlayer),imageContainer.appendChild(itemSpinner)),imageContainer.style.backgroundColor=null,existingIcon&&existingIcon.remove()):((circleLeft=existingIcon||document.createElement("i")).innerText=existingElement,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)),index||contentElem.appendChild(imageContainer)}else index&&index.remove();var 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.appendChild(spinnerLlayer),spinnerLleft.querySelector(".listItemBodyText-secondary")),index=(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.appendChild(circleLeft)):existingIcon&&existingIcon.remove(),spinnerLleft.querySelector(".ge-progress"));if(item.HasPercentage){let progressInner,progressSpan;index?(progressInner=spinnerLleft.querySelector(".itemProgressBarForeground"),progressSpan=spinnerLleft.querySelector(".itemProgressBarText")):((existingSpinner=document.createElement("div")).classList.add("ge-progress","flex","align-items-center"),(itemSpinner=document.createElement("div")).className="itemProgressBar itemProgressBarRound flex-grow",(progressInner=document.createElement("div")).className="itemProgressBarForeground itemProgressBarForegroundRound",(progressSpan=document.createElement("span")).classList.add("itemProgressBarText"),itemSpinner.appendChild(progressInner),existingSpinner.append(itemSpinner,progressSpan),spinnerLleft.appendChild(existingSpinner));spinnerRight=item.PercentComplete;progressInner&&(progressInner.style.width=spinnerRight+"%"),progressSpan&&(progressSpan.innerText=spinnerRight+"%")}else index&&index.remove();circleRight||contentElem.appendChild(spinnerLleft),createListButton(contentElem,item.Button1,listId,"button1"),createListButton(contentElem,item.Button2,listId,"button2"),createListToggle(contentElem,item.Toggle,listId+".toggle");var circleLeft,spinnerLlayer=listElem.querySelector(".paperlist");return!item.HyperLink&&item.SubItems?(item.SubItems.forEach(function(si){si.IsSubItem=!0}),(circleLeft=spinnerLlayer||document.createElement("div")).id=listId+".SubList",circleLeft.classList.add("paperlist","ge-itemlist","ge-subitemlist"),!existingElement||"LargeRegular"!==item.IconMode&&"LargeInCircle"!==item.IconMode?existingElement&&"NoIcons"!==item.IconMode?(circleLeft.classList.remove("ge-subitemlist-largeindent"),circleLeft.classList.add("ge-subitemlist-smallindent")):(circleLeft.classList.remove("ge-subitemlist-largeindent"),circleLeft.classList.remove("ge-subitemlist-smallindent")):(circleLeft.classList.add("ge-subitemlist-largeindent"),circleLeft.classList.remove("ge-subitemlist-smallindent")),renderItemListItems(circleLeft,item.SubItems),spinnerLlayer||listElem.appendChild(circleLeft)):spinnerLlayer&&spinnerLlayer.remove(),listElem}function createListButton(contentElem,button,buttonId,cls){var buttonElem,buttonIconValue,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"),(buttonIconValue=getItemIcon(button))?((buttonIcon=buttonId||document.createElement("i")).innerText=buttonIconValue,buttonIcon.classList.add("md-icon"),buttonIcon.classList.add("button-icon"),addRemoveClass(buttonIcon,"button-icon-left",button.Caption),buttonId||buttonElem.insertAdjacentElement("afterbegin",buttonIcon)):buttonId&&buttonId.remove(),buttonIconValue=buttonElem.querySelector("span"),button.Caption?((buttonIcon=buttonIconValue||document.createElement("span")).innerText=button.Caption,buttonIconValue||(buttonElem.insertAdjacentElement("beforeend",buttonIcon),buttonElem.appendChild(buttonIcon))):buttonIconValue&&buttonIconValue.remove(),buttonElem.disabled=!button.IsEnabled,buttonElem.subMenuButtons=button.SubMenuButtons,existingButton||contentElem.appendChild(buttonElem),"button2"===cls&&contentElem.lastElementChild!==buttonElem&&contentElem.insertAdjacentElement("beforeend",buttonElem)):existingButton&&existingButton.remove()}function createListToggle(contentElem,toggle,toggleId){var existingContainer=contentElem.querySelector(".ge-itemlist-listitem-togglecontainer");if(toggle){var toggleLabel,toggleContainer=existingContainer||document.createElement("div");let toggleInput,toggleDiv;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","emby-list-toggle"),(toggleDiv=document.createElement("div")).classList.add("ge-togglelabel"),(toggleId=document.createElement("span")).innerHTML="&nbsp;",toggleLabel.append(toggleInput,toggleId,toggleDiv),toggleContainer.appendChild(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)}else existingContainer&&existingContainer.remove()}function renderDate(item){var attributes=[],html=(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+'"'),'<div class="inputContainer'+item.extraClasses+'">');return html=(html+="<input "+attributes.join(" ")+" />")+('<div class="fieldDescription">'+item.Description+"</div>")+"</div>"}function renderNumeric(item){var attributes=[],zeros=(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.tv&&attributes.push('autocomplete="off"'),null!=item.MinValue&&attributes.push('min="'+item.MinValue+'"'),null!=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('inputmode="decimal"')):attributes.push('inputmode="numeric"'),attributes.push('label="'+item.DisplayName+'"'),'<div class="inputContainer'+item.extraClasses+'">');return zeros=(zeros+="<input "+attributes.join(" ")+" />")+('<div class="fieldDescription">'+item.Description+"</div>")+"</div>"}function renderItemGroup(item){var itemcount=item.EditorItems.length;let html='<div class="verticalSection'+item.extraClasses+'" style="margin-top: 0.5em;" id="'+item.Id+'" itemcount="'+itemcount+'">';if(item.DisplayName||item.Description){html='<div class="verticalSection'+item.extraClasses+'" style="margin-top: 2em;" id="'+item.Id+'" itemcount="'+itemcount+'">',html+='<div class="sectionTitleContainer">',item.DisplayName&&(html+='<h2 class="sectionTitle">'+item.DisplayName+"</h2>");let desccriptionClass="ge-section-description";item.TitleButton&&(html+=renderTitleButtonItem(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>"}function formatDescription(description){return description&&0!==description.length?description.split("\n").join("<br />"):null}function getAllItems(editorRoot){var allItems=[];return editorRoot&&editorRoot.EditorItems&&collectItems(editorRoot,allItems),allItems}function collectItems(item,allItems){if(item.TitleButton&&allItems.push(item.TitleButton),item.EditorItems)for(let i=0;i<item.EditorItems.length;i++)collectItems(item.EditorItems[i],allItems);else allItems.push(item)}function collectGroupItems(item,allItems){if("Group"===item.EditorType&&allItems.push(item),item.EditorItems)for(let i=0;i<item.EditorItems.length;i++)collectGroupItems(item.EditorItems[i],allItems)}function setFormValues(editObjectContainer,container){if(editObjectContainer){let i,s;var valueObject=editObjectContainer.Object,defaultValueObject=editObjectContainer.DefaultObject,allItems=getAllItems(editObjectContainer.EditorRoot),groupItems=[];collectGroupItems(editObjectContainer.EditorRoot,groupItems),container.PostbackActions=editObjectContainer.EditorRoot.PostbackActions;let hasGroupChange=!1;for(s=0;s<groupItems.length;s++){var itemcount,groupItem=groupItems[s],elementId=groupItem.Id.split(".").join("\\."),elementId=container.querySelector("#"+elementId);elementId&&(itemcount=groupItem.EditorItems.length,elementId.getAttribute("itemcount")!==""+itemcount)&&(elementId.outerHTML=renderItemGroup(groupItem),hasGroupChange=!0)}for(hasGroupChange&&registerFilePickerEvents(container),s=0;s<allItems.length;s++){var item=allItems[s];let 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(let 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)}}staticitemssourceid=element.attributes.getNamedItem("itemssourceid");if(staticitemssourceid){var sourceItems2=getValue(valueObject,staticitemssourceid.value);if(sourceItems2)if("radioGroup"===element.className)renderRadioGroupItems(element,sourceItems2);else{element.innerHTML="";for(let 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){staticitemssourceid=getValue(valueObject,item.Id);if(staticitemssourceid){element.querySelector(".infoBanner-primaryText").innerText=staticitemssourceid.Caption;var secondaryText=element.querySelector(".infoBanner-secondaryText"),statusText=staticitemssourceid.StatusText||"",icon=(secondaryText.innerText=statusText,element.querySelector(".statusIcon")),secondaryText=element.querySelector(".statusSpinner");switch("InProgress"===staticitemssourceid.Status?(icon.classList.add("hide"),secondaryText.classList.remove("hide")):(icon.classList.remove("hide"),secondaryText.classList.add("hide")),icon.style.color=getStatusColor(staticitemssourceid.Status),staticitemssourceid.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&&((secondaryText=element.querySelector(".buttonText")).innerText=statusText.Caption||"",element.setAttribute("data-caption",secondaryText.innerText),buttonIcon=element.querySelector(".buttonIcon"),(buttonValueIcon=getItemIcon(statusText))?(buttonIcon.innerText=buttonValueIcon,buttonIcon.classList.remove("hide")):(buttonIcon.innerText="",buttonIcon.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 buttonValueIcon=getValue(valueObject,item.Id);buttonValueIcon&&(element.querySelector(".captionText").innerText=buttonValueIcon.Caption||"",buttonValueIcon.IsVisible?element.classList.remove("hide"):element.classList.add("hide"))}else if("LabelItem"===item.EditorType){var buttonIcon=getValue(valueObject,item.Id);buttonIcon&&((labelElement=element.querySelector(".labelText")).innerText=buttonIcon.Text||"",buttonIcon.HyperLink?labelElement.setAttribute("href",buttonIcon.HyperLink):labelElement.removeAttribute("href"),buttonIcon.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){var progressValue=getValue(valueObject,item.Id);progressValue&&(progressValue.CurrentValue&&(element.value=progressValue.CurrentValue),progressValue.MaxValue&&(element.max=progressValue.MaxValue),progressValue.ProgressText)&&(element.innerText=progressValue.ProgressText)}else if("ItemList"===item.EditorType){progressValue=getValue(valueObject,item.Id);progressValue&&renderItemListItems(element,progressValue)}else if("RadioGroup"===item.EditorType||"SelectSingle"===item.EditorType&&item.ShowAsRadio){var radios=element.querySelectorAll("INPUT");for(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){let 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")){let 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){var selectedValues3=getValue(defaultValueObject,item.Id).split(",");element.values=selectedValues3}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="")}}var root=editObjectContainer.EditorRoot;for(let t=0;t<root.PropertyConditions.length;t++){var condition=root.PropertyConditions[t];applyPropertyConditions(root,container,getValue(valueObject,condition.TargetPropertyId),condition.TargetPropertyId)}}}function getItemValues(editObjectContainer,container){if(editObjectContainer){editObjectContainer.isDataValid=!0;var valueObject=editObjectContainer.Object,allItems=getAllItems(editObjectContainer.EditorRoot);for(let 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 editor,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(option=>option.value)).join(",");setValue(valueObject,item.Id,selectedValues)}else if(elementId.classList.contains("radioGroup")){var radios=elementId.querySelectorAll("INPUT");for(let 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?(selectedValues=elementId.valueAsDateUtc?.toISOString(),setValue(valueObject,item.Id,selectedValues)):(editor=getEditor(item.EditorType))?editor.setValue(elementId,editObjectContainer,valueObject,item):setValue(valueObject,item.Id,elementId.value)}}}}function hasValue(sourceObject,propertyPath){if(null===sourceObject)return!1;let subObject=sourceObject;var pathElements=propertyPath.split(".");for(let i=0;i<pathElements.length;i++){var pathElement=pathElements[i].replace("colitem","");if(!subObject||!Object.hasOwn(subObject,pathElement))return!1;subObject=subObject[pathElement]}return!0}function getValue(sourceObject,propertyPath){let subObject=sourceObject;var pathElements=propertyPath.split(".");for(let 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){let subObject=sourceObject;var pathElements=propertyPath.split(".");for(let i=0;i<pathElements.length-1;i++){var pathElement=pathElements[i].replace("colitem","");if(!Object.hasOwn(subObject,pathElement))return;subObject=subObject[pathElement]}sourceObject=pathElements[pathElements.length-1];subObject[sourceObject]=value}function resetToDefaults(editObjectContainer,container){var editors=editObjectContainer.EditorRoot.EditorItems;for(let n=0;n<editors.length;n++){var editor=editors[n],defval=getValue(editObjectContainer.DefaultObject,editor.Id);setValue(editObjectContainer.Object,editor.Id,defval)}}function EL(elementType,id,elemClass,style,is,type,attribs,contentFunc){let 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)}),[]),html=(map.forEach(function(value,key){null!=value&&attributes.push(key+'="'+value+'"')}),"<"+elementType+" "+attributes.join(" ")+">");return contentFunc&&("function"==typeof contentFunc?(elemClass=contentFunc(id=[]),html=html+id.join(" ")+(elemClass||"")):html+=contentFunc),html+="</"+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 P(id,cls,style,contentFunc,is){return EL("p",id,cls,style,is,null,null,contentFunc)}function DIV(id,cls,style,contentFunc,is){return EL("div",id,cls,style,is,null,null,contentFunc)}function H1(id,cls,style,contentFunc){return EL("h1",id,cls,style,null,null,null,contentFunc)}function H3(id,cls,style,contentFunc){return EL("h3",id,cls,style,null,null,null,contentFunc)}function SPAN(id,cls,style,contentFunc){return EL("span",id,cls,style,null,null,null,contentFunc)}function ICON(id,cls,style,contentFunc){return EL("i",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)}function SELECT(id,is,cls,style,attribs,contentFunc){return EL("select",id,cls,style,is,null,attribs,contentFunc)}function runGridCommand(container,commandParam){return genericEditDx.runGridCommand(container,commandParam)}export default{renderForm:renderForm,getItemValues:getItemValues,runGridCommand:runGridCommand,setFormValues:setFormValues,resetToDefaults:resetToDefaults,registerEditor:registerEditor,runCommand:runCommand,registerCommandProcessor:registerCommandProcessor};