`}}class jt extends Ft{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 Ut extends jt{setDefaultValue(e=[],t=e){this.element.setDefaultValue(new me(e[0]))}renderInput(){return O`
`}}
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/const Wt=1;class Xt{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 Kt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Xt{constructor(e){var t;if(super(e),e.type!==Wt||"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 Yt extends mt{toggleAdvancedDisplayHandler;getDraggableElement(){return this.element.querySelector(".ueb-window-top")}createDraggableObject(){return new ht(this.element,this.element.blueprint,{draggableElement:this.getDraggableElement(),ignoreTranslateCompensate:!0,movementSpace:this.element.blueprint,stepSize:1})}render(){return O`
`}}class ei extends St{renderIcon(){return ct.referencePin}}class ti extends jt{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 O`
X
Y
Z
`}}class ii extends Ft{}class ni extends jt{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 O`
X
Y
Z
`}}class ri extends Ke{static#rt={"/Script/CoreUObject.LinearColor":Zt,"/Script/CoreUObject.Rotator":ti,"/Script/CoreUObject.Vector":ni,bool:_t,int:Ut,MUTABLE_REFERENCE:ei,name:Jt,real:Qt,string:ii};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 ri.#rt.MUTABLE_REFERENCE;if("exec"===e.getType())return Gt;let t;return e.isInput()&&(t=ri.#rt[e.getType()]),t??St}nodeElement;connections=0;constructor(e,t,i){super(e,t??new(ri.getTypeTemplate(e))),this.pinId=this.entity.PinId,this.pinType=this.entity.getType(),this.advancedView=this.entity.bAdvancedView,this.defaultValue=this.entity.getDefaultValue(),this.color=ri.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 si extends Ye{static#xe={window:Yt,"color-picker":qt};static properties={...Ye.properties,type:{type:Yt,attribute:"data-type",reflect:!0,converter:{fromAttribute:(e,t)=>si.#xe[e],toAttribute:(e,t)=>Object.entries(si.#xe).find((([t,i])=>e==i))[0]}}};constructor(e={}){e.type.constructor==String&&(e.type=si.#xe[e.type]),e.type??=Yt,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 oi 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 ai extends oi{#st;constructor(e,t){super(void 0,t),this.#st=e}write(e,t,i=!1){return this.#st(t,i)}}class li extends oi{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 ai(((e,t)=>"()"),null)),se.registerSerializer(Array,new ai(((e,t)=>`(${e.map((e=>se.getSerializer(le.getType(e)).serialize(e,t)+",")).join("")})`),Array)),se.registerSerializer(Boolean,new ai(((e,t)=>e?t?"true":"True":t?"false":"False"),Boolean)),se.registerSerializer(he,new oi(e,he)),se.registerSerializer(de,new li(de)),se.registerSerializer(pe,new li(pe)),se.registerSerializer(me,new li(me)),se.registerSerializer(ge,new oi((e=>`${ge.lookbehind}(${e})`),ge,"",", ",!1,"",(e=>""))),se.registerSerializer(be,new oi(e,be)),se.registerSerializer(fe,new oi(e,fe)),se.registerSerializer(ye,new oi((e=>`${ye.lookbehind}(${e})`),ye,"",", ",!1,"",(e=>""))),se.registerSerializer(we,new oi(e,we)),se.registerSerializer(Number,new ai((e=>e.toString()),Number)),se.registerSerializer(Ae,new ze),se.registerSerializer(ue,new ai((e=>(e.type??"")+(e.path?e.type?`'"${e.path}"'`:`"${e.path}"`:"")),ue)),se.registerSerializer(Ee,new li(Ee)),se.registerSerializer(Le,new oi((e=>`${Le.lookbehind} (${e})`),Le,"",",",!0)),se.registerSerializer(Se,new oi((e=>e),Se,""," ",!1,"",(e=>""))),se.registerSerializer(ve,new li(ve)),se.registerSerializer(Pe,new oi(e,Pe)),se.registerSerializer(String,new ai(((e,t)=>t?le.escapeString(e):`"${le.escapeString(e)}"`),String)),se.registerSerializer(Ce,new ai(((e,t)=>`${e.P}, ${e.Y}, ${e.R}`),Ce)),se.registerSerializer(xe,new ai(((e,t)=>`${e.X}, ${e.Y}, ${e.Z}`),xe)),se.registerSerializer(Ne,new li(Ne)),se.registerSerializer(Oe,new oi(((e,t)=>`${t.lookbehind??""}(${e})`),Oe)),se.registerSerializer(Te,new oi(e,Te)),se.registerSerializer(ke,new oi(e,ke))}(),customElements.define("ueb-color-handler",Dt),Qe.registerElement("ueb-color-handler",Dt),customElements.define("ueb-input",Rt),Qe.registerElement("ueb-input",Rt),customElements.define("ueb-link",ut),Qe.registerElement("ueb-link",ut),customElements.define("ueb-node",xt),Qe.registerElement("ueb-node",xt),customElements.define("ueb-pin",ri),Qe.registerElement("ueb-pin",ri),customElements.define("ueb-selector",At),Qe.registerElement("ueb-selector",At),customElements.define("ueb-ui-slider",It),Qe.registerElement("ueb-ui-slider",It),customElements.define("ueb-window",si),Qe.registerElement("ueb-window",si);export{$t as Blueprint,te as Configuration,ut as LinkElement,xt as NodeElement};