`}}class Ft extends Gt{static singleLineInput=!0;setInputs(e=[],t=!1){e&&0!=e.length||(e=[this.getInput()]);let i=[];for(const t of e){let e=parseFloat(t);isNaN(e)&&(e=0,!1),i.push(e)}super.setInputs(e,!1),this.setDefaultValue(i,e)}setDefaultValue(e=[],t){this.element.setDefaultValue(e[0])}}class jt extends Ft{setDefaultValue(e=[],t=e){this.element.setDefaultValue(new me(e[0]))}renderInput(){return H`
`}}
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/const zt=1;class Ut{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}
/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/const Wt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Ut{constructor(e){var t;if(super(e),e.type!==zt||"style"!==e.name||(null===(t=e.strings)||void 0===t?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce(((t,i)=>{const n=e[i];return null==n?t:t+`${i=i.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${n};`}),"")}update(e,[t]){const{style:i}=e.element;if(void 0===this.vt){this.vt=new Set;for(const e in t)this.vt.add(e);return this.render(t)}this.vt.forEach((e=>{null==t[e]&&(this.vt.delete(e),e.includes("-")?i.removeProperty(e):i[e]="")}));for(const e in t){const n=t[e];null!=n&&(this.vt.add(e),e.includes("-")?i.setProperty(e,n):i[e]=n)}return D}});class Kt extends bt{toggleAdvancedDisplayHandler;getDraggableElement(){return this.element.querySelector(".ueb-window-top")}createDraggableObject(){return new gt(this.element,this.element.blueprint,{draggableElement:this.getDraggableElement(),ignoreTranslateCompensate:!0,movementSpace:this.element.blueprint,stepSize:1})}render(){return H`
`}}class Jt extends pt{renderIcon(){return ct.referencePin}}class Qt extends Ft{setDefaultValue(e=[],t=e){if(!(this.element.entity.DefaultValue instanceof Pe))throw new TypeError("Expected DefaultValue to be a VectorEntity");let i=this.element.entity.DefaultValue;i.R=e[0],i.P=e[1],i.Y=e[2]}renderInput(){return H`
X
Y
Z
`}}class ei extends Gt{}class ti extends Ft{setDefaultValue(e,t){if(!(this.element.entity.DefaultValue instanceof ke))throw new TypeError("Expected DefaultValue to be a VectorEntity");let i=this.element.entity.DefaultValue;i.X=e[0],i.Y=e[1],i.Z=e[2]}renderInput(){return H`
X
Y
Z
`}}class ii extends qe{static#We={"/Script/CoreUObject.LinearColor":Xt,"/Script/CoreUObject.Rotator":Qt,"/Script/CoreUObject.Vector":ti,bool:_t,int:jt,MUTABLE_REFERENCE:Jt,name:Zt,real:Yt,string:ei};static properties={pinId:{type:de,converter:{fromAttribute:(e,t)=>e?Ie.grammar.Guid.parse(e).value:null,toAttribute:(e,t)=>e?.toString()},attribute:"data-id",reflect:!0},pinType:{type:String,attribute:"data-type",reflect:!0},advancedView:{type:String,attribute:"data-advanced-view",reflect:!0},color:{type:fe,converter:{fromAttribute:(e,t)=>e?Ie.grammar.LinearColorFromAnyColor.parse(e).value:null,toAttribute:(e,t)=>e?le.printLinearColor(e):null},attribute:"data-color",reflect:!0},defaultValue:{type:String,attribute:!1},isLinked:{type:Boolean,converter:le.booleanConverter,attribute:"data-linked",reflect:!0},pinDirection:{type:String,attribute:"data-direction",reflect:!0}};static getTypeTemplate(e){if(e.PinType.bIsReference&&!e.PinType.bIsConst)return ii.#We.MUTABLE_REFERENCE;if("exec"===e.getType())return Rt;let t;return e.isInput()&&(t=ii.#We[e.getType()]),t??pt}nodeElement;connections=0;constructor(e,t,i){super(e,t??new(ii.getTypeTemplate(e))),this.pinId=this.entity.PinId,this.pinType=this.entity.getType(),this.advancedView=this.entity.bAdvancedView,this.defaultValue=this.entity.getDefaultValue(),this.color=ii.properties.color.converter.fromAttribute(this.getColor().toString()),this.isLinked=!1,this.pinDirection=e.isInput()?"input":e.isOutput()?"output":"hidden",this.nodeElement=i,this.entity.subscribe("PinToolTip",(e=>{let t=e.match(/\s*(.+?(?=\n)|.+\S)\s*/);return t?le.formatStringName(t[1]):le.formatStringName(this.entity.PinName)}))}getPinId(){return this.entity.PinId}getPinName(){return this.entity.PinName}getPinDisplayName(){return this.entity.getDisplayName()}getColor(){return te.getPinColor(this)}isInput(){return this.entity.isInput()}isOutput(){return this.entity.isOutput()}getLinkLocation(){return this.template.getLinkLocation()}getNodeElement(){return this.nodeElement}getLinks(){return this.entity.LinkedTo??[]}setDefaultValue(e){this.entity.DefaultValue=e,this.defaultValue=e}sanitizeLinks(e=[]){this.entity.LinkedTo=this.getLinks().filter((t=>{let i=this.blueprint.getPin(t);if(i){if(e.length&&!e.includes(i.nodeElement))return!1;this.blueprint.getLink(this,i,!0)||this.blueprint.addGraphElement(new(Qe.getConstructor("ueb-link"))(this,i))}return i}))}linkTo(e){this.entity.linkTo(e.getNodeElement().getNodeName(),e.entity)&&(this.isLinked=this.entity.isLinked(),this.nodeElement?.template.linksChanged())}unlinkFrom(e){this.entity.unlinkFrom(e.getNodeElement().getNodeName(),e.entity)&&(this.isLinked=this.entity.isLinked(),this.nodeElement?.template.linksChanged())}redirectLink(e,t){const i=this.entity.LinkedTo.findIndex((t=>t.objectName.toString()==e.getNodeElement().getNodeName()&&t.pinGuid.valueOf()==e.entity.PinId.valueOf()));return i>=0&&(this.entity.LinkedTo[i]=t,!0)}}class ni extends Xe{static#me={window:Kt,"color-picker":qt};static properties={...Xe.properties,type:{type:Kt,attribute:"data-type",reflect:!0,converter:{fromAttribute:(e,t)=>ni.#me[e],toAttribute:(e,t)=>Object.entries(ni.#me).find((([t,i])=>e==i))[0]}}};constructor(e={}){e.type.constructor==String&&(e.type=ni.#me[e.type]),e.type??=Kt,e.windowOptions??={},super({},new e.type),this.type=e.type,this.windowOptions=e.windowOptions}disconnectedCallback(){super.disconnectedCallback(),this.dispatchCloseEvent()}dispatchCloseEvent(){let e=new CustomEvent(te.windowCloseEventName);this.dispatchEvent(e)}}class ri extends Ie{constructor(e,t,i,n,r,s,o){e=e??(e=>`(${e})`),super(t,i,n,r,s,o),this.wrap=e}read(e){const t=Be.getGrammarForType(Ie.grammar,this.entityType).parse(e);if(!t.status)throw new Error(`Error when trying to parse the entity ${this.entityType.prototype.constructor.name}.`);return t.value}write(e,t,i=!1){return this.wrap(this.subWrite(e,[],t,i),t)}}class si extends ri{#Ke;constructor(e,t){super(void 0,t),this.#Ke=e}write(e,t,i=!1){return this.#Ke(t,i)}}class oi extends ri{constructor(e){super(void 0,e)}write(e,t,i){return i||t.constructor!==String?le.escapeString(t.toString()):`"${le.escapeString(t.toString())}"`}}!function(){const e=e=>`(${e})`;se.registerSerializer(null,new si(((e,t)=>"()"),null)),se.registerSerializer(Array,new si(((e,t)=>`(${e.map((e=>se.getSerializer(le.getType(e)).serialize(e,t)+",")).join("")})`),Array)),se.registerSerializer(Boolean,new si(((e,t)=>e?t?"true":"True":t?"false":"False"),Boolean)),se.registerSerializer(he,new ri(e,he)),se.registerSerializer(de,new oi(de)),se.registerSerializer(pe,new oi(pe)),se.registerSerializer(me,new oi(me)),se.registerSerializer(ge,new ri((e=>`${ge.lookbehind}(${e})`),ge,"",", ",!1,"",(e=>""))),se.registerSerializer(ve,new ri(e,ve)),se.registerSerializer(fe,new ri(e,fe)),se.registerSerializer(ye,new ri((e=>`${ye.lookbehind}(${e})`),ye,"",", ",!1,"",(e=>""))),se.registerSerializer(we,new ri(e,we)),se.registerSerializer(Number,new si((e=>e.toString()),Number)),se.registerSerializer(Te,new Ve),se.registerSerializer(ue,new si((e=>(e.type??"")+(e.path?e.type?`'"${e.path}"'`:`"${e.path}"`:"")),ue)),se.registerSerializer(Ee,new oi(Ee)),se.registerSerializer(Ne,new ri((e=>`${Ne.lookbehind} (${e})`),Ne,"",",",!0)),se.registerSerializer(Se,new ri((e=>e),Se,""," ",!1,"",(e=>""))),se.registerSerializer(be,new oi(be)),se.registerSerializer(Pe,new ri(e,Pe)),se.registerSerializer(String,new si(((e,t)=>t?le.escapeString(e):`"${le.escapeString(e)}"`),String)),se.registerSerializer(Ce,new si(((e,t)=>`${e.P}, ${e.Y}, ${e.R}`),Ce)),se.registerSerializer(xe,new si(((e,t)=>`${e.X}, ${e.Y}, ${e.Z}`),xe)),se.registerSerializer(Le,new oi(Le)),se.registerSerializer(He,new ri(((e,t)=>`${t.lookbehind??""}(${e})`),He)),se.registerSerializer(Ae,new ri(e,Ae)),se.registerSerializer(ke,new ri(e,ke))}(),customElements.define("ueb-color-handler",Ot),Qe.registerElement("ueb-color-handler",Ot),customElements.define("ueb-input",It),Qe.registerElement("ueb-input",It),customElements.define("ueb-link",ut),Qe.registerElement("ueb-link",ut),customElements.define("ueb-node",Ct),Qe.registerElement("ueb-node",Ct),customElements.define("ueb-pin",ii),Qe.registerElement("ueb-pin",ii),customElements.define("ueb-selector",Lt),Qe.registerElement("ueb-selector",Lt),customElements.define("ueb-ui-slider",Dt),Qe.registerElement("ueb-ui-slider",Dt),customElements.define("ueb-window",ni),Qe.registerElement("ueb-window",ni);export{At as Blueprint,te as Configuration,ut as LinkElement,Ct as NodeElement};