rndefine("#RNMainHTMLGenerator",["exports","#RNMainCore/EventManager","lit","#RNMainFormBuilderCore/ExecutionChain","#RNMainFormBuilderCore/ShowHideCondition.Options","#RNMainFormBuilderCore/ConditionProcessorBase"],(function(e,t,n,l,i,r){"use strict";class s{constructor(e,t={},n=null){this.FormBuilder=e,this.Options=t,this.Field=n}ParseContent(e,s,a=[],o=[]){var d,u,h,c;if(null==s)return null;for(let C of s)switch(C.type){case"paragraph":let s=this.CreateAndAppend(e,"p");null!=(null==C||null===(d=C.attrs)||void 0===d?void 0:d.align)&&(s.style.textAlign=C.attrs.align),null==C.content&&s.appendChild(document.createElement("br")),this.ParseContent(s,C.content,a);break;case"text":this.ParseText(e,C);break;case"horizontal_rule":this.CreateAndAppend(e,"hr");break;case"heading":let f=C.attrs.level,b=this.CreateAndAppend(e,"h"+f);null!=(null==C||null===(u=C.attrs)||void 0===u?void 0:u.align)&&(b.style.textAlign=C.attrs.align),this.ParseContent(b,C.content,a);break;case"blockquote":let k=this.CreateAndAppend(e,"blockQuote");this.ParseContent(k,C.content,a);break;case"bullet_list":let A=this.CreateAndAppend(e,"ul");this.ParseContent(A,C.content,a);break;case"ordered_list":let v=this.CreateAndAppend(e,"ol");this.ParseContent(v,C.content,a);break;case"list_item":let y=this.CreateAndAppend(e,"li");this.ParseContent(y,C.content,a);break;case"table":let g=this.CreateAndAppend(e,"table"),x=this.CreateAndAppend(g,"tbody");this.ParseContent(x,C.content,a);break;case"table_row":let P=this.CreateAndAppend(e,"tr");this.ParseContent(P,C.content,a);break;case"table_cell":let M=this.CreateAndAppend(e,"td");this.ParseContent(M,C.content,a);break;case"hard_break":this.CreateAndAppend(e,"br");break;case"image":let B=this.CreateAndAppend(e,"img");B.src=C.attrs.url;let T=null!==(h=C.attrs.width)&&void 0!==h?h:"",w=null!==(c=C.attrs.height)&&void 0!==c?c:"";""==T&&(B.style.maxWidth="300px"),""==w&&(B.style.maxHeight="300px"),B.style.width=T,B.style.height=w;break;case"condition":let E;try{E=JSON.parse(C.attrs.condition),E=(new i.ShowHideConditionOptions).Merge(E)}catch(e){break}let O=document.createElement("div");e.appendChild(O);for(let e of E.ElementsUsed)"Field"==e.Type&&a.push(e.Id);o.push(new Promise(((e,t)=>{(new r.ConditionProcessorBase).Initialize(this.FormBuilder,E,new l.ExecutionChain(this.Field)).then((t=>{t.ExecuteCondition(!1,new l.ExecutionChain(this.Field)).then((t=>{E.ShowWhenTrue==t?this.ParseContent(O,C.content,a,o):O.remove(),e()}))}))})));break;case"formula":let H=C.attrs.formula;if(null!=H&&null!=this.FormBuilder)for(let e of H.FieldsUsed){let t=this.FormBuilder.GetFieldById(e,!0,!0);null!=t&&a.push(t)}let L=null!=this.Field?this.Field.FormBuilder:this.FormBuilder,G=t.EventManager.Publish("CalculateFormula",{FieldList:L.GetFields(!1,!0,!0),Formula:H,Owner:L,Chain:null,Field:this.Field});if(null!=this.Options.FormulaFormatter&&(G=this.Options.FormulaFormatter(G)),null!=G){let t=document.createElement("span");t.innerText=G,null!=C.marks&&this.ApplyMarks(t,C.marks),e.appendChild(t)}break;case"field":let{id:N,type:_,options:S}=C.attrs,z="Unknown",I=document.createElement("div");if(I.style.display="inline-block","fixed"==_){if(null!=this.FormBuilder){var p,m;z=(null!=this.Field?this.Field:this.FormBuilder).ParseFixedField(null==C||null===(p=C.attrs)||void 0===p?void 0:p.id,null===(m=C.attrs)||void 0===m?void 0:m.options,this.Field),this.FormBuilder.IsDesign&&""!=z.trim()&&(z="["+z+"]")}I.innerText=z}else{var F;let e=null===(F=this.FormBuilder)||void 0===F?void 0:F.GetFieldById(N,!0,!0);null!=e?(a.indexOf(e)<0&&a.push(e),null!=this.Options.FieldFormatter?(z=this.Options.FieldFormatter(e),I.innerText=z):null!=e&&(z=e.GetHtml(),"string"==typeof z?I.innerText=z:I.innerHTML=n.renderInline(z,!0).innerHTML)):I.innerText=z}null!=this.Options.CustomFieldFormatter&&(I=this.Options.CustomFieldFormatter(I,C)),null!=C.marks&&(I=this.ApplyMarks(I,C.marks)),e.appendChild(I);break;default:if(null!=this.Options.NodeFormatter){let t=this.Options.NodeFormatter(C);null!=t&&e.appendChild(t);continue}console.error("Unknown type ",C)}return{Code:e,Fields:a,Promises:o}}CreateAndAppend(e,t){let n=document.createElement(t);return e.appendChild(n),n}ParseText(e,t){if(null==t.marks||0==t.marks.length){let n=document.createTextNode(t.text);return void e.appendChild(n)}let n=document.createElement("span");n.innerText=t.text,n=this.ApplyMarks(n,t.marks),e.appendChild(n)}ApplyMarks(e,t){for(let n of t)switch(n.type){case"strong":e.style.fontWeight="bold";break;case"em":e.style.fontStyle="italic";break;case"link":let t=document.createElement("a");t.href=n.attrs.href,t.target=n.attrs.target,t.appendChild(e),e=t;break;case"color":e.style.color=n.attrs.color;break;case"fontsize":""!=n.attrs.size&&(e.style.fontSize=n.attrs.size,e.style.lineHeight=n.attrs.size);break;case"fontfamily":e.style.fontFamily=n.attrs.name;break;default:console.error("Undefined mark",n)}return e}}function a(e,t){var n;if(null!=(null===(n=t.HTML)||void 0===n?void 0:n.Fields)&&null!=(null==e?void 0:e.Fields))for(let n of t.HTML.Fields)if(null!=t.FormBuilder){let l=t.FormBuilder.GetFieldById(n,!1,!0,!1);null!=l&&-1==e.Fields.indexOf(l)&&e.Fields.push(l)}}function o(e){var t,n;let l=new s(e.FormBuilder,null!==(t=e.Options)&&void 0!==t?t:{},e.Field),i=document.createElement("div");i.classList.add("rnHTML");let r=l.ParseContent(i,null===(n=e.HTML)||void 0===n?void 0:n.content);return null!=r&&r.Promises.length>0?Promise.all(r.Promises).then((t=>(a(r,e),r))):(a(r,e),r)}t.EventManager.Subscribe("GetHTML",(e=>o(e))),t.EventManager.Subscribe("GetHTMLAsync",(e=>new Promise(((t,n)=>{let l=o(e);l instanceof Promise?l.then((e=>t(e))):t(l)})))),e.HTMLGenerator=s,Object.defineProperty(e,"__esModule",{value:!0})}));