mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-04 08:28:17 +08:00
34 lines
195 KiB
JavaScript
34 lines
195 KiB
JavaScript
/**
|
||
* @license
|
||
* Copyright 2019 Google LLC
|
||
* SPDX-License-Identifier: BSD-3-Clause
|
||
*/
|
||
const e=window,t=e.ShadowRoot&&(void 0===e.ShadyCSS||e.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),n=new WeakMap;class s{constructor(e,t,n){if(this._$cssResult$=!0,n!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const i=this.t;if(t&&void 0===e){const t=void 0!==i&&1===i.length;t&&(e=n.get(i)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),t&&n.set(i,e))}return e}toString(){return this.cssText}}const r=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,i,n)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+e[n+1]),e[0]);return new s(n,e,i)},a=t?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const i of e.cssRules)t+=i.cssText;return(e=>new s("string"==typeof e?e:e+"",void 0,i))(t)})(e):e
|
||
/**
|
||
* @license
|
||
* Copyright 2017 Google LLC
|
||
* SPDX-License-Identifier: BSD-3-Clause
|
||
*/;var o;const l=window,u=l.trustedTypes,c=u?u.emptyScript:"",h=l.reactiveElementPolyfillSupport,d={toAttribute(e,t){switch(t){case Boolean:e=e?c:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let i=e;switch(t){case Boolean:i=null!==e;break;case Number:i=null===e?null:Number(e);break;case Object:case Array:try{i=JSON.parse(e)}catch(e){i=null}}return i}},p=(e,t)=>t!==e&&(t==t||e==e),m={attribute:!0,type:String,converter:d,reflect:!1,hasChanged:p};class g extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,i)=>{const n=this._$Ep(i,t);void 0!==n&&(this._$Ev.set(n,i),e.push(n))})),e}static createProperty(e,t=m){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const i="symbol"==typeof e?Symbol():"__"+e,n=this.getPropertyDescriptor(e,i,t);void 0!==n&&Object.defineProperty(this.prototype,e,n)}}static getPropertyDescriptor(e,t,i){return{get(){return this[t]},set(n){const s=this[e];this[t]=n,this.requestUpdate(e,s,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||m}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const i of t)this.createProperty(i,e[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const i=new Set(e.flat(1/0).reverse());for(const e of i)t.unshift(a(e))}else void 0!==e&&t.push(a(e));return t}static _$Ep(e,t){const i=t.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof e?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,i;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(i=e.hostConnected)||void 0===i||i.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var i;const n=null!==(i=this.shadowRoot)&&void 0!==i?i:this.attachShadow(this.constructor.shadowRootOptions);return((i,n)=>{t?i.adoptedStyleSheets=n.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):n.forEach((t=>{const n=document.createElement("style"),s=e.litNonce;void 0!==s&&n.setAttribute("nonce",s),n.textContent=t.cssText,i.appendChild(n)}))})(n,this.constructor.elementStyles),n}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,i){this._$AK(e,i)}_$EO(e,t,i=m){var n;const s=this.constructor._$Ep(e,i);if(void 0!==s&&!0===i.reflect){const r=(void 0!==(null===(n=i.converter)||void 0===n?void 0:n.toAttribute)?i.converter:d).toAttribute(t,i.type);this._$El=e,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$El=null}}_$AK(e,t){var i;const n=this.constructor,s=n._$Ev.get(e);if(void 0!==s&&this._$El!==s){const e=n.getPropertyOptions(s),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(i=e.converter)||void 0===i?void 0:i.fromAttribute)?e.converter:d;this._$El=s,this[s]=r.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,i){let n=!0;void 0!==e&&(((i=i||this.constructor.getPropertyOptions(e)).hasChanged||p)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===i.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,i))):n=!1),!this.isUpdatePending&&n&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const i=this._$AL;try{t=this.shouldUpdate(i),t?(this.willUpdate(i),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(i)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(i)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}
|
||
/**
|
||
* @license
|
||
* Copyright 2017 Google LLC
|
||
* SPDX-License-Identifier: BSD-3-Clause
|
||
*/
|
||
var b;g.finalized=!0,g.elementProperties=new Map,g.elementStyles=[],g.shadowRootOptions={mode:"open"},null==h||h({ReactiveElement:g}),(null!==(o=l.reactiveElementVersions)&&void 0!==o?o:l.reactiveElementVersions=[]).push("1.4.2");const y=window,f=y.trustedTypes,v=f?f.createPolicy("lit-html",{createHTML:e=>e}):void 0,w=`lit$${(Math.random()+"").slice(9)}$`,E="?"+w,S=`<${E}>`,C=document,x=(e="")=>C.createComment(e),P=e=>null===e||"object"!=typeof e&&"function"!=typeof e,k=Array.isArray,L=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,N=/-->/g,T=/>/g,A=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),M=/'/g,D=/"/g,B=/^(?:script|style|textarea|title)$/i,$=(e=>(t,...i)=>({_$litType$:e,strings:t,values:i}))(1),H=Symbol.for("lit-noChange"),z=Symbol.for("lit-nothing"),O=new WeakMap,R=C.createTreeWalker(C,129,null,!1),V=(e,t)=>{const i=e.length-1,n=[];let s,r=2===t?"<svg>":"",a=L;for(let t=0;t<i;t++){const i=e[t];let o,l,u=-1,c=0;for(;c<i.length&&(a.lastIndex=c,l=a.exec(i),null!==l);)c=a.lastIndex,a===L?"!--"===l[1]?a=N:void 0!==l[1]?a=T:void 0!==l[2]?(B.test(l[2])&&(s=RegExp("</"+l[2],"g")),a=A):void 0!==l[3]&&(a=A):a===A?">"===l[0]?(a=null!=s?s:L,u=-1):void 0===l[1]?u=-2:(u=a.lastIndex-l[2].length,o=l[1],a=void 0===l[3]?A:'"'===l[3]?D:M):a===D||a===M?a=A:a===N||a===T?a=L:(a=A,s=void 0);const h=a===A&&e[t+1].startsWith("/>")?" ":"";r+=a===L?i+S:u>=0?(n.push(o),i.slice(0,u)+"$lit$"+i.slice(u)+w+h):i+w+(-2===u?(n.push(void 0),t):h)}const o=r+(e[i]||"<?>")+(2===t?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==v?v.createHTML(o):o,n]};class I{constructor({strings:e,_$litType$:t},i){let n;this.parts=[];let s=0,r=0;const a=e.length-1,o=this.parts,[l,u]=V(e,t);if(this.el=I.createElement(l,i),R.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(n=R.nextNode())&&o.length<a;){if(1===n.nodeType){if(n.hasAttributes()){const e=[];for(const t of n.getAttributeNames())if(t.endsWith("$lit$")||t.startsWith(w)){const i=u[r++];if(e.push(t),void 0!==i){const e=n.getAttribute(i.toLowerCase()+"$lit$").split(w),t=/([.?@])?(.*)/.exec(i);o.push({type:1,index:s,name:t[2],strings:e,ctor:"."===t[1]?U:"?"===t[1]?W:"@"===t[1]?Z:j})}else o.push({type:6,index:s})}for(const t of e)n.removeAttribute(t)}if(B.test(n.tagName)){const e=n.textContent.split(w),t=e.length-1;if(t>0){n.textContent=f?f.emptyScript:"";for(let i=0;i<t;i++)n.append(e[i],x()),R.nextNode(),o.push({type:2,index:++s});n.append(e[t],x())}}}else if(8===n.nodeType)if(n.data===E)o.push({type:2,index:s});else{let e=-1;for(;-1!==(e=n.data.indexOf(w,e+1));)o.push({type:7,index:s}),e+=w.length-1}s++}}static createElement(e,t){const i=C.createElement("template");return i.innerHTML=e,i}}function _(e,t,i=e,n){var s,r,a,o;if(t===H)return t;let l=void 0!==n?null===(s=i._$Co)||void 0===s?void 0:s[n]:i._$Cl;const u=P(t)?void 0:t._$litDirective$;return(null==l?void 0:l.constructor)!==u&&(null===(r=null==l?void 0:l._$AO)||void 0===r||r.call(l,!1),void 0===u?l=void 0:(l=new u(e),l._$AT(e,i,n)),void 0!==n?(null!==(a=(o=i)._$Co)&&void 0!==a?a:o._$Co=[])[n]=l:i._$Cl=l),void 0!==l&&(t=_(e,l._$AS(e,t.values),l,n)),t}class F{constructor(e,t){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var t;const{el:{content:i},parts:n}=this._$AD,s=(null!==(t=null==e?void 0:e.creationScope)&&void 0!==t?t:C).importNode(i,!0);R.currentNode=s;let r=R.nextNode(),a=0,o=0,l=n[0];for(;void 0!==l;){if(a===l.index){let t;2===l.type?t=new G(r,r.nextSibling,this,e):1===l.type?t=new l.ctor(r,l.name,l.strings,this,e):6===l.type&&(t=new X(r,this,e)),this.u.push(t),l=n[++o]}a!==(null==l?void 0:l.index)&&(r=R.nextNode(),a++)}return s}p(e){let t=0;for(const i of this.u)void 0!==i&&(void 0!==i.strings?(i._$AI(e,i,t),t+=i.strings.length-2):i._$AI(e[t])),t++}}class G{constructor(e,t,i,n){var s;this.type=2,this._$AH=z,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=i,this.options=n,this._$Cm=null===(s=null==n?void 0:n.isConnected)||void 0===s||s}get _$AU(){var e,t;return null!==(t=null===(e=this._$AM)||void 0===e?void 0:e._$AU)&&void 0!==t?t:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=_(this,e,t),P(e)?e===z||null==e||""===e?(this._$AH!==z&&this._$AR(),this._$AH=z):e!==this._$AH&&e!==H&&this.g(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):(e=>k(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]))(e)?this.k(e):this.g(e)}O(e,t=this._$AB){return this._$AA.parentNode.insertBefore(e,t)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==z&&P(this._$AH)?this._$AA.nextSibling.data=e:this.T(C.createTextNode(e)),this._$AH=e}$(e){var t;const{values:i,_$litType$:n}=e,s="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=I.createElement(n.h,this.options)),n);if((null===(t=this._$AH)||void 0===t?void 0:t._$AD)===s)this._$AH.p(i);else{const e=new F(s,this),t=e.v(this.options);e.p(i),this.T(t),this._$AH=e}}_$AC(e){let t=O.get(e.strings);return void 0===t&&O.set(e.strings,t=new I(e)),t}k(e){k(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let i,n=0;for(const s of e)n===t.length?t.push(i=new G(this.O(x()),this.O(x()),this,this.options)):i=t[n],i._$AI(s),n++;n<t.length&&(this._$AR(i&&i._$AB.nextSibling,n),t.length=n)}_$AR(e=this._$AA.nextSibling,t){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){var t;void 0===this._$AM&&(this._$Cm=e,null===(t=this._$AP)||void 0===t||t.call(this,e))}}class j{constructor(e,t,i,n,s){this.type=1,this._$AH=z,this._$AN=void 0,this.element=e,this.name=t,this._$AM=n,this.options=s,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=z}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,i,n){const s=this.strings;let r=!1;if(void 0===s)e=_(this,e,t,0),r=!P(e)||e!==this._$AH&&e!==H,r&&(this._$AH=e);else{const n=e;let a,o;for(e=s[0],a=0;a<s.length-1;a++)o=_(this,n[i+a],t,a),o===H&&(o=this._$AH[a]),r||(r=!P(o)||o!==this._$AH[a]),o===z?e=z:e!==z&&(e+=(null!=o?o:"")+s[a+1]),this._$AH[a]=o}r&&!n&&this.j(e)}j(e){e===z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=e?e:"")}}class U extends j{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===z?void 0:e}}const K=f?f.emptyScript:"";class W extends j{constructor(){super(...arguments),this.type=4}j(e){e&&e!==z?this.element.setAttribute(this.name,K):this.element.removeAttribute(this.name)}}class Z extends j{constructor(e,t,i,n,s){super(e,t,i,n,s),this.type=5}_$AI(e,t=this){var i;if((e=null!==(i=_(this,e,t,0))&&void 0!==i?i:z)===H)return;const n=this._$AH,s=e===z&&n!==z||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,r=e!==z&&(n===z||s);s&&this.element.removeEventListener(this.name,this,n),r&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var t,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(t=this.options)||void 0===t?void 0:t.host)&&void 0!==i?i:this.element,e):this._$AH.handleEvent(e)}}class X{constructor(e,t,i){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(e){_(this,e)}}const q=y.litHtmlPolyfillSupport;null==q||q(I,G),(null!==(b=y.litHtmlVersions)&&void 0!==b?b:y.litHtmlVersions=[]).push("2.4.0");
|
||
/**
|
||
* @license
|
||
* Copyright 2017 Google LLC
|
||
* SPDX-License-Identifier: BSD-3-Clause
|
||
*/
|
||
var Y,Q;class J extends g{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e,t;const i=super.createRenderRoot();return null!==(e=(t=this.renderOptions).renderBefore)&&void 0!==e||(t.renderBefore=i.firstChild),i}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=((e,t,i)=>{var n,s;const r=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:t;let a=r._$litPart$;if(void 0===a){const e=null!==(s=null==i?void 0:i.renderBefore)&&void 0!==s?s:null;r._$litPart$=a=new G(t.insertBefore(x(),e),e,void 0,null!=i?i:{})}return a._$AI(e),a})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Do)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Do)||void 0===e||e.setConnected(!1)}render(){return H}}J.finalized=!0,J._$litElement$=!0,null===(Y=globalThis.litElementHydrateSupport)||void 0===Y||Y.call(globalThis,{LitElement:J});const ee=globalThis.litElementPolyfillSupport;null==ee||ee({LitElement:J}),(null!==(Q=globalThis.litElementVersions)&&void 0!==Q?Q:globalThis.litElementVersions=[]).push("3.2.2");class te{static nodeColors={blue:r``,gray:r``,green:r``,lime:r``,red:r``,turquoise:r``};static alphaPattern="repeating-conic-gradient(#7c8184 0% 25%, #c2c3c4 0% 50%) 50% / 10px 10px";static colorDragEventName="ueb-color-drag";static colorPickEventName="ueb-color-pick";static colorWindowEventName="ueb-color-window";static colorWindowName="Color Picker";static defaultCommentHeight=96;static defaultCommentWidth=400;static deleteNodesKeyboardKey="Delete";static distanceThreshold=5;static dragEventName="ueb-drag";static dragGeneralEventName="ueb-drag-general";static edgeScrollThreshold=50;static editTextEventName={begin:"ueb-edit-text-begin",end:"ueb-edit-text-end"};static enableZoomIn=["LeftControl","RightControl"];static expandGridSize=400;static focusEventName={begin:"blueprint-focus",end:"blueprint-unfocus"};static fontSize=r``;static gridAxisLineColor=r``;static gridExpandThreshold=.25;static gridLineColor=r``;static gridLineWidth=1;static gridSet=8;static gridSetLineColor=r``;static gridShrinkThreshold=4;static gridSize=16;static hexColorRegex=/^\s*#(?<r>[0-9a-fA-F]{2})(?<g>[0-9a-fA-F]{2})(?<b>[0-9a-fA-F]{2})([0-9a-fA-F]{2})?|#(?<rs>[0-9a-fA-F])(?<gs>[0-9a-fA-F])(?<bs>[0-9a-fA-F])\s*$/;static keysSeparator=/[\.\(\)]/;static knotOffset=[-26,-16];static linkCurveHeight=15;static linkCurveWidth=80;static linkMinWidth=100;static nameRegexSpaceReplacement=new RegExp("^K2(?:[Nn]ode)?_|(?<=[a-z])(?=[A-Z0-9])|(?<=[A-Z])(?=[A-Z][a-z](?![a-z]+_)|[0-9])|(?<=[014-9]|[23](?!D(?:[^a-z]|$)))(?=[a-zA-Z])|\\s*_+\\s*|\\s{2,}","g");static linkRightSVGPath=(e,t,i)=>{let n=100-e;return`M ${e} 0 C ${t.toFixed(3)} 0, ${i.toFixed(3)} 0, 50 50 S ${(n-t+e).toFixed(3)} 100, ${n.toFixed(3)} 100`};static maxZoom=7;static minZoom=-12;static mouseWheelFactor=.2;static nodeDragGeneralEventName="ueb-node-drag-general";static nodeDragEventName="ueb-node-drag";static nodeName=(e,t)=>`${e}_${t}`;static nodeRadius=8;static nodeReflowEventName="ueb-node-reflow";static nodeType={addDelegate:"/Script/BlueprintGraph.K2Node_AddDelegate",callArrayFunction:"/Script/BlueprintGraph.K2Node_CallArrayFunction",callFunction:"/Script/BlueprintGraph.K2Node_CallFunction",comment:"/Script/UnrealEd.EdGraphNode_Comment",commutativeAssociativeBinaryOperator:"/Script/BlueprintGraph.K2Node_CommutativeAssociativeBinaryOperator",componentBoundEvent:"/Script/BlueprintGraph.K2Node_ComponentBoundEvent",createDelegate:"/Script/BlueprintGraph.K2Node_CreateDelegate",customEvent:"/Script/BlueprintGraph.K2Node_CustomEvent",doN:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:Do N",doOnce:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:DoOnce",dynamicCast:"/Script/BlueprintGraph.K2Node_DynamicCast",enum:"/Script/CoreUObject.Enum",enumLiteral:"/Script/BlueprintGraph.K2Node_EnumLiteral",event:"/Script/BlueprintGraph.K2Node_Event",executionSequence:"/Script/BlueprintGraph.K2Node_ExecutionSequence",forEachElementInEnum:"/Script/BlueprintGraph.K2Node_ForEachElementInEnum",forEachLoop:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForEachLoop",forEachLoopWithBreak:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForEachLoopWithBreak",forLoop:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForLoop",forLoopWithBreak:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForLoopWithBreak",functionEntry:"/Script/BlueprintGraph.K2Node_FunctionEntry",getInputAxisKeyValue:"/Script/BlueprintGraph.K2Node_GetInputAxisKeyValue",ifThenElse:"/Script/BlueprintGraph.K2Node_IfThenElse",inputAxisKeyEvent:"/Script/BlueprintGraph.K2Node_InputAxisKeyEvent",inputDebugKey:"/Script/InputBlueprintNodes.K2Node_InputDebugKey",inputKey:"/Script/BlueprintGraph.K2Node_InputKey",inputVectorAxisEvent:"/Script/BlueprintGraph.K2Node_InputVectorAxisEvent",isValid:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:IsValid",knot:"/Script/BlueprintGraph.K2Node_Knot",macro:"/Script/BlueprintGraph.K2Node_MacroInstance",makeArray:"/Script/BlueprintGraph.K2Node_MakeArray",makeMap:"/Script/BlueprintGraph.K2Node_MakeMap",makeSet:"/Script/BlueprintGraph.K2Node_MakeSet",multiGate:"/Script/BlueprintGraph.K2Node_MultiGate",pawn:"/Script/Engine.Pawn",promotableOperator:"/Script/BlueprintGraph.K2Node_PromotableOperator",reverseForEachLoop:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ReverseForEachLoop",select:"/Script/BlueprintGraph.K2Node_Select",switchEnum:"/Script/BlueprintGraph.K2Node_SwitchEnum",userDefinedEnum:"/Script/Engine.UserDefinedEnum",variableGet:"/Script/BlueprintGraph.K2Node_VariableGet",variableSet:"/Script/BlueprintGraph.K2Node_VariableSet",whileLoop:"/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:WhileLoop"};static pinColor={"/Script/CoreUObject.Rotator":r``,"/Script/CoreUObject.Transform":r``,"/Script/CoreUObject.Vector":r``,bool:r``,byte:r``,class:r``,default:r``,delegate:r``,enum:r``,exec:r``,int:r``,int64:r``,interface:r``,name:r``,object:r``,real:r``,string:r``,struct:r``,text:r``,wildcard:r``};static pinInputWrapWidth=134;static removeEventName="ueb-element-delete";static scale={[-12]:.133333,[-11]:.166666,[-10]:.2,[-9]:.233333,[-8]:.266666,[-7]:.3,[-6]:.333333,[-5]:.375,[-4]:.5,[-3]:.675,[-2]:.75,[-1]:.875,0:1,1:1.25,2:1.375,3:1.5,4:1.675,5:1.75,6:1.875,7:2};static selectAllKeyboardKey="(bCtrl=True,Key=A)";static smoothScrollTime=1e3;static stringEscapedCharacters=/['"\\]/g;static trackingMouseEventName={begin:"ueb-tracking-mouse-begin",end:"ueb-tracking-mouse-end"};static windowApplyEventName="ueb-window-apply";static windowApplyButtonText="OK";static windowCancelEventName="ueb-window-cancel";static windowCancelButtonText="Cancel";static windowCloseEventName="ueb-window-close";static ModifierKeys=["Ctrl","Shift","Alt","Meta"];static Keys={Backspace:"Backspace",Tab:"Tab",LeftControl:"ControlLeft",RightControl:"ControlRight",LeftShift:"ShiftLeft",RightShift:"ShiftRight",LeftAlt:"AltLeft",RightAlt:"AltRight",Enter:"Enter",Pause:"Pause",CapsLock:"CapsLock",Escape:"Escape",Space:"Space",PageUp:"PageUp",PageDown:"PageDown",End:"End",Home:"Home",ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",PrintScreen:"PrintScreen",Insert:"Insert",Delete:"Delete",Zero:"Digit0",One:"Digit1",Two:"Digit2",Three:"Digit3",Four:"Digit4",Five:"Digit5",Six:"Digit6",Seven:"Digit7",Eight:"Digit8",Nine:"Digit9",A:"KeyA",B:"KeyB",C:"KeyC",D:"KeyD",E:"KeyE",F:"KeyF",G:"KeyG",H:"KeyH",I:"KeyI",K:"KeyK",L:"KeyL",M:"KeyM",N:"KeyN",O:"KeyO",P:"KeyP",Q:"KeyQ",R:"KeyR",S:"KeyS",T:"KeyT",U:"KeyU",V:"KeyV",W:"KeyW",X:"KeyX",Y:"KeyY",Z:"KeyZ",NumPadZero:"Numpad0",NumPadOne:"Numpad1",NumPadTwo:"Numpad2",NumPadThree:"Numpad3",NumPadFour:"Numpad4",NumPadFive:"Numpad5",NumPadSix:"Numpad6",NumPadSeven:"Numpad7",NumPadEight:"Numpad8",NumPadNine:"Numpad9",Multiply:"NumpadMultiply",Add:"NumpadAdd",Subtract:"NumpadSubtract",Decimal:"NumpadDecimal",Divide:"NumpadDivide",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",NumLock:"NumLock",ScrollLock:"ScrollLock"}}class ie{#e;get target(){return this.#e}#t;get blueprint(){return this.#t}options;listenHandler=()=>this.listenEvents();unlistenHandler=()=>this.unlistenEvents();constructor(e,t,i={}){i.consumeEvent??=!1,i.listenOnFocus??=!1,i.unlistenOnTextEdit??=!1,this.#e=e,this.#t=t,this.options=i}setup(){this.options.listenOnFocus&&(this.blueprint.addEventListener(te.focusEventName.begin,this.listenHandler),this.blueprint.addEventListener(te.focusEventName.end,this.unlistenHandler)),this.options.unlistenOnTextEdit&&(this.blueprint.addEventListener(te.editTextEventName.begin,this.unlistenHandler),this.blueprint.addEventListener(te.editTextEventName.end,this.listenHandler)),this.blueprint.focused&&this.listenEvents()}cleanup(){this.unlistenEvents(),this.blueprint.removeEventListener(te.focusEventName.begin,this.listenHandler),this.blueprint.removeEventListener(te.focusEventName.end,this.unlistenHandler),this.blueprint.removeEventListener(te.editTextEventName.begin,this.unlistenHandler),this.blueprint.removeEventListener(te.editTextEventName.end,this.listenHandler)}listenEvents(){}unlistenEvents(){}}class ne{#i;constructor(e){this.#i=e}compute(e){return this.#i(e)}}class se{static#n=new Map;static registerSerializer(e,t){se.#n.set(e,t)}static getSerializer(e){return se.#n.get(e)}}class re{#s;get types(){return this.#s}constructor(...e){this.#s=e}getFirstType(){return this.#s[0]}}class ae{static emptyObj={};static booleanConverter={fromAttribute:(e,t)=>{},toAttribute:(e,t)=>!0===e?"true":!1===e?"false":""};static sigmoid(e,t=1.7){return 1/(1+e/(1-e)**-t)}static sigmoidPositive(e,t=3.7,i=1.1){return 1-Math.exp(-((e/i)**t))}static clamp(e,t=-1/0,i=1/0){return Math.min(Math.max(e,t),i)}static getScale(e){const t=e.blueprint?.getScale()??getComputedStyle(e).getPropertyValue("--ueb-scale");return""!=t?parseFloat(t):1}static minDecimals(e,t=1,i=1e-8){const n=e*10**t;return Math.abs(n%1)>i?e.toString():e.toFixed(t)}static numberFromText(e=""){switch(e=e.toLowerCase()){case"zero":return 0;case"one":return 1;case"two":return 2;case"three":return 3;case"four":return 4;case"five":return 5;case"six":return 6;case"seven":return 7;case"eight":return 8;case"nine":return 9}}static roundDecimals(e,t=1){const i=10**t;return Math.round(e*i)/i}static approximatelyEqual(e,t,i=1e-8){return!(Math.abs(e-t)>i)}static convertLocation(e,t,i=!1){const n=i?1:1/ae.getScale(t),s=t.getBoundingClientRect();return[Math.round((e[0]-s.x)*n),Math.round((e[1]-s.y)*n)]}static isSerialized(e,t,i=e.constructor.attributes?.[t]){return i?.constructor===Object&&i.serialized}static objectGet(e,t,i){if(void 0!==e){if(!(t instanceof Array))throw new TypeError("UEBlueprint: Expected keys to be an array");return 0!=t.length&&t[0]in e&&void 0!==e[t[0]]?1==t.length?e[t[0]]:ae.objectGet(e[t[0]],t.slice(1),i):i}}static objectSet(e,t,i,n=!1,s=Object){if(!(t instanceof Array))throw new TypeError("Expected keys to be an array.");if(1==t.length){if(n||t[0]in e||void 0===e[t[0]])return e[t[0]]=i,!0}else if(t.length>0)return!n||e[t[0]]instanceof Object||(e[t[0]]=new s),ae.objectSet(e[t[0]],t.slice(1),i,n,s);return!1}static equals(e,t){return e?.equals&&t?.equals?e.equals(t):(e=ae.sanitize(e),t=ae.sanitize(t),e?.constructor===BigInt&&t?.constructor===Number?t=BigInt(t):e?.constructor===Number&&t?.constructor===BigInt&&(e=BigInt(e)),e===t||e instanceof Array&&t instanceof Array&&(e.length===t.length&&e.every(((e,i)=>ae.equals(e,t[i])))))}static getType(e){return null===e?null:e?.constructor===Object&&e?.type instanceof Function?e.type:e?.constructor}static isValueOfType(e,t,i=!1){return i&&null===e||e instanceof t||e?.constructor===t}static sanitize(e,t=e?.constructor){if(t instanceof Array&&(t=t[0]),t instanceof ne)return e;if(t instanceof re){let i=t.types.find((t=>ae.isValueOfType(e,t,!1)));i||(i=t.getFirstType()),t=i}return t&&!ae.isValueOfType(e,t,!0)&&(e=t===BigInt?BigInt(e):new t(e)),(e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof BigInt)&&(e=e.valueOf()),e}static snapToGrid(e,t,i){return 1===i?[e,t]:[i*Math.round(e/i),i*Math.round(t/i)]}static mergeArrays(e=[],t=[]){let i=[];e=[...e],t=[...t];e:for(;;){for(let n=0;n<t.length;++n)for(let s=0;s<e.length;++s)if(e[s]==t[n]){i.push(...e.splice(0,s),...t.splice(0,n),...e.splice(0,1)),t.shift();continue e}break e}return[...new Set(i.concat(...e,...t))]}static escapeString(e){return e.replaceAll(new RegExp(`(${te.stringEscapedCharacters.source})`,"g"),"\\$1").replaceAll("\n","\\n").replaceAll("\t","\\t")}static unescapeString(e){return e.replaceAll("\\t","\t").replaceAll("\\n","\n").replaceAll(new RegExp(`\\\\(${te.stringEscapedCharacters.source})`,"g"),"$1")}static clearHTMLWhitespace(e){return e.replaceAll(" "," ").replaceAll("<br>","\n").replaceAll(/(\<!--.*?\-->)/g,"")}static capitalFirstLetter(e){return 0===e.length?e:e.charAt(0).toUpperCase()+e.slice(1)}static formatStringName(e=""){return e.replace(/^\s*b/,"").replaceAll(te.nameRegexSpaceReplacement," ").trim().split(" ").map((e=>ae.capitalFirstLetter(e))).join(" ")}static encodeKeyName(e){return e.replaceAll(".","$")}static decodeKeyName(e){return e.replaceAll("$",".")}static getIdFromReference(e){return e.replace(/(?:.+\.)?([^\.]+)$/,"$1").replaceAll(/(?<=[a-z\d])(?=[A-Z])|(?<=[a-zA-Z])(?=\d)|(?<=[A-Z]{2})(?=[A-Z][a-z])/g,"-").toLowerCase()}static printLinearColor(e){return`${Math.round(255*e.R.valueOf())}, ${Math.round(255*e.G.valueOf())}, ${Math.round(255*e.B.valueOf())}`}static getPolarCoordinates(e,t,i=!1){let n=Math.atan2(t,e);return i&&n<0&&(n=2*Math.PI+n),[Math.sqrt(e*e+t*t),n]}static getCartesianCoordinates(e,t){return[e*Math.cos(t),e*Math.sin(t)]}static range(e=0,t=0,i=(t>=e?1:-1)){return Array.from({length:Math.ceil((t-e)/i)},((t,n)=>e+n*i))}static paste(e,t){const i=new ClipboardEvent("paste",{bubbles:!0,cancelable:!0,clipboardData:new DataTransfer});i.clipboardData.setData("text",t),e.dispatchEvent(i)}static animate(e,t,i,n,s=(e=>{const t=e**3.5;return t/(t+(1-e)**3.5)})){let r;const a=o=>{void 0===r&&(r=o);let l=(o-r)/i;ae.approximatelyEqual(l,1)||l>1?l=1:requestAnimationFrame(a);const u=e+(t-e)*s(l);n(u)};requestAnimationFrame(a)}}class oe{static lookbehind="";static attributes={};static defaultAttribute={showDefault:!0,nullable:!1,ignored:!1,serialized:!1,expected:!1,inlined:!1};constructor(e={},t=!1){const i=this.constructor,n=i.attributes;e.constructor!==Object&&1===Object.keys(n).length&&(e={[Object.keys(n)[0]]:e});const s=Object.keys(e),r=Object.keys(n),a=ae.mergeArrays(r,s);for(let r of a){let a=e[r],o=n[r];if(!t)if(r in n)s.length>0&&!(r in e)&&o.showDefault&&!o.ignored&&console.warn(`UEBlueprint: ${i.name} will add attribute ${r} missing from the serialized data`);else{const e=a instanceof Array?`[${a[0].constructor.name}]`:a.constructor.name;console.warn(`UEBlueprint: Attribute ${r} (of type ${e}) in the serialized data is not defined in ${i.name}.attributes`)}if(!o){this[r]=a;continue}let l=o.default,u=o.type;u instanceof ne&&(u=u.compute(this)),u instanceof Array&&(u=Array),l instanceof Function&&(l=l(this)),void 0===u&&(u=ae.getType(l));const c=o.predicate?e=>{Object.defineProperties(this,{["#"+r]:{writable:!0,enumerable:!1},[r]:{enumerable:!0,get(){return this["#"+r]},set(e){o.predicate?.(e)?this["#"+r]=e:console.warn(`UEBlueprint: Tried to assign attribute ${r} to${i.name} not satisfying the predicate`)}}}),this[r]=e}:e=>this[r]=e;void 0===a?(u instanceof re&&(u=null!=l?u.types.find((e=>l instanceof e||l.constructor==e))??u.getFirstType():u.getFirstType()),void 0===l&&(l=ae.sanitize(new u)),o.showDefault?(o.serialized&&u!==String&&l.constructor===String&&(l=se.getSerializer(u).read(l)),c(ae.sanitize(l,u))):c(void 0)):(a?.constructor===String&&o.serialized&&u!==String&&(a=se.getSerializer(u).read(a)),c(ae.sanitize(a,u)))}}static cleanupAttributes(e,t=""){for(const i in e){const n=e[i];if(void 0!==n.type||n.default instanceof Function||(n.type=n.default instanceof Array?[ae.getType(n.default[0])]:ae.getType(n.default)),e[i]={...oe.defaultAttribute,...n},void 0===n.default){if(void 0===n.type)throw new Error(`UEBlueprint: Expected either "type" or "value" property in ${this.name} attribute ${t}`+i);n[i]=ae.sanitize(void 0,n.type)}null===n.default&&(e[i].nullable=!0)}}static isValueOfType(e,t){return null!=e&&(e instanceof t||e.constructor===t)}static expectsAllKeys(){return!Object.values(this.attributes).filter((e=>!e.ignored)).some((e=>!e.expected))}unexpectedKeys(){return Object.keys(this).length-Object.keys(this.constructor.attributes).length}equals(e){const t=Object.keys(this),i=Object.keys(this);if(t.length!=i.length)return!1;for(const i of t){if(this[i]instanceof oe&&!this[i].equals(e[i]))return!1;if(!ae.equals(this[i],e[i]))return!1}return!0}}class le extends oe{static attributes={...super.attributes,value:{default:0,predicate:e=>e%1==0&&e>1<<31&&e<-(1<<31)}};static{this.cleanupAttributes(this.attributes)}constructor(e=0){super(e),this.value}valueOf(){return this.value}toString(){return this.value.toString()}}class ue extends le{static attributes={...super.attributes,value:{...super.attributes.value,predicate:e=>e%1==0&&e>=0&&e<256}};static{this.cleanupAttributes(this.attributes)}constructor(e=0){super(e)}}class ce extends oe{static attributes={value:{default:""}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.value}valueOf(){return this.value}toString(){return this.value}}class he extends ce{}class de extends oe{static lookbehind="INVTEXT";static attributes={value:{default:""}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.value}}class pe extends oe{static lookbehind="NSLOCTEXT";static attributes={namespace:{default:""},key:{default:""},value:{default:""}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.namespace,this.key,this.value}toString(){return ae.capitalFirstLetter(this.value)}}class me extends oe{static lookbehind="LOCGEN_FORMAT_NAMED";static attributes={value:{type:[new re(pe,String,de,me)]}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.value}}class ge extends oe{static attributes={value:{default:""}};static{this.cleanupAttributes(this.attributes)}static generateGuid(e=!0){let t=new Uint32Array(4);!0===e&&crypto.getRandomValues(t);let i="";return t.forEach((e=>{i+=("0".repeat(8)+e.toString(16).toUpperCase()).slice(-8)})),new ge({value:i})}constructor(e){e||(e=ge.generateGuid().value),super(e),this.value}valueOf(){return this.value}toString(){return this.value}}class be extends oe{static attributes={type:{default:""},path:{default:""}};static{this.cleanupAttributes(this.attributes)}constructor(e={}){e.constructor===String&&(e={path:e}),super(e),this.type,this.path}getName(){return this.path.match(/[^\.\/]+$/)?.[0]??""}}class ye extends oe{static attributes={MemberParent:{type:be,showDefault:!1},MemberName:{type:String,showDefault:!1},MemberGuid:{type:ge,showDefault:!1}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.MemberParent,this.MemberName,this.MemberGuid}}class fe extends oe{static attributes={value:{default:""}};static{this.cleanupAttributes(this.attributes)}static attributeConverter={fromAttribute:(e,t)=>new fe(e),toAttribute:(e,t)=>e.toString()};constructor(e){super(e),this.value}valueOf(){return this.value}toString(){return this.value}}class ve extends oe{static attributes={...super.attributes,value:{default:0n,predicate:e=>e>=-(1n<<63n)&&e<1n<<63n}};static{this.cleanupAttributes(this.attributes)}constructor(e=0){super(e),this.value}valueOf(){return this.value}toString(){return this.value.toString()}}class we extends oe{static attributes={ActionName:{default:""},bShift:{default:!1},bCtrl:{default:!1},bAlt:{default:!1},bCmd:{default:!1},Key:{type:fe}};static{this.cleanupAttributes(this.attributes)}constructor(e={}){super(e,!0),this.ActionName,this.bShift,this.bCtrl,this.bAlt,this.bCmd,this.Key}}class Ee extends oe{static attributes={value:{default:0}};static{this.cleanupAttributes(this.attributes)}constructor(e=0){super(e),this.value=ae.clamp(this.value,0,1)}valueOf(){return this.value}toString(){return this.value.toFixed(6)}}class Se extends oe{static attributes={R:{type:Ee,expected:!0},G:{type:Ee,expected:!0},B:{type:Ee,expected:!0},A:{type:Ee,default:()=>new Ee(1)},H:{type:Ee,showDefault:!0,ignored:!0},S:{type:Ee,showDefault:!0,ignored:!0},V:{type:Ee,showDefault:!0,ignored:!0}};static{this.cleanupAttributes(this.attributes)}static linearToSRGB(e){return e<=0?0:e>=1?1:e<.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055}static sRGBtoLinear(e){return e<=0?0:e>=1?1:e<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}static getWhite(){return new Se({R:1,G:1,B:1})}constructor(e){e instanceof Array&&(e={R:e[0]??0,G:e[1]??0,B:e[2]??0,A:e[3]??1}),super(e),this.R,this.G,this.B,this.A,this.H,this.S,this.V,this.#r()}#r(){const e=this.R.value,t=this.G.value,i=this.B.value;if(ae.approximatelyEqual(e,t)&&ae.approximatelyEqual(e,i)&&ae.approximatelyEqual(t,i))return this.S.value=0,void(this.V.value=e);const n=Math.max(e,t,i),s=Math.min(e,t,i),r=n-s;let a;switch(n){case s:a=0;break;case e:a=(t-i)/r+(t<i?6:0);break;case t:a=(i-e)/r+2;break;case i:a=(e-t)/r+4}a/=6,this.H.value=a,this.S.value=0==n?0:r/n,this.V.value=n}setFromRGBA(e,t,i,n=1){this.R.value=e,this.G.value=t,this.B.value=i,this.A.value=n,this.#r()}setFromHSVA(e,t,i,n=1){const s=Math.floor(6*e),r=6*e-s,a=i*(1-t),o=[i,i*(1-r*t),a,a,i*(1-(1-r)*t),i],[l,u,c]=[o[s%6],o[(s+4)%6],o[(s+2)%6]];this.R.value=l,this.G.value=u,this.B.value=c,this.A.value=n,this.H.value=e,this.S.value=t,this.V.value=i}setFromWheelLocation(e,t,i,n){const[s,r]=ae.getPolarCoordinates(e,t,!0);this.setFromHSVA(1-r/(2*Math.PI),s,i,n)}toRGBA(){return[Math.round(255*this.R.value),Math.round(255*this.G.value),Math.round(255*this.B.value),Math.round(255*this.A.value)]}toSRGBA(){return[Math.round(255*Se.linearToSRGB(this.R.value)),Math.round(255*Se.linearToSRGB(this.G.value)),Math.round(255*Se.linearToSRGB(this.B.value)),Math.round(255*this.A.value)]}toRGBAString(){return this.toRGBA().map((e=>e.toString(16).toUpperCase().padStart(2,"0"))).join("")}toSRGBAString(){return this.toSRGBA().map((e=>e.toString(16).toUpperCase().padStart(2,"0"))).join("")}toHSVA(){return[this.H.value,this.S.value,this.V.value,this.A.value]}toNumber(){return(Math.round(255*this.R.value)<<24)+(Math.round(255*this.G.value)<<16)+(Math.round(255*this.B.value)<<8)+Math.round(255*this.A.value)}setFromRGBANumber(e){this.A.value=(255&e)/255,this.B.value=(e>>8&255)/255,this.G.value=(e>>16&255)/255,this.R.value=(e>>24&255)/255,this.#r()}setFromSRGBANumber(e){this.A.value=(255&e)/255,this.B.value=Se.sRGBtoLinear((e>>8&255)/255),this.G.value=Se.sRGBtoLinear((e>>16&255)/255),this.R.value=Se.sRGBtoLinear((e>>24&255)/255),this.#r()}toString(){return ae.printLinearColor(this)}}class Ce extends oe{static attributes={MacroGraph:{type:be},GraphBlueprint:{type:be},GraphGuid:{type:ge}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.MacroGraph,this.GraphBlueprint,this.GuidEntity}getMacroName(){const e=this.MacroGraph.path.search(":");return this.MacroGraph.path.substring(e+1)}}class xe extends le{constructor(e=0){super(e),this.value=Math.round(ae.clamp(this.value,0))}}class Pe extends oe{static attributes={value:{default:""}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.value}valueOf(){return this.value}toString(){return this.value}}class ke extends oe{static attributes={objectName:{type:Pe},pinGuid:{type:ge}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.objectName,this.pinGuid}}class Le extends oe{static attributes={PinCategory:{default:""},PinSubCategory:{default:""},PinSubCategoryObject:{type:be},PinSubCategoryMemberReference:{type:ye,default:null},PinValueType:{type:Le,default:null},ContainerType:{type:Pe},bIsReference:{default:!1},bIsConst:{default:!1},bIsWeakPointer:{default:!1},bIsUObjectWrapper:{default:!1},bSerializeAsSinglePrecisionFloat:{default:!1}};static{this.cleanupAttributes(this.attributes)}constructor(e={},t=!1){super(e,t),this.PinCategory,this.PinSubCategory,this.PinSubCategoryObject,this.PinSubCategoryMemberReference,this.PinValueType,this.ContainerType,this.bIsReference,this.bIsConst,this.bIsWeakPointer,this.bIsUObjectWrapper,this.bIsUObjectWrapper}copyTypeFrom(e){this.PinCategory=e.PinCategory,this.PinSubCategory=e.PinSubCategory,this.PinSubCategoryObject=e.PinSubCategoryObject,this.PinSubCategoryMemberReference=e.PinSubCategoryMemberReference,this.PinValueType=e.PinValueType,this.ContainerType=e.ContainerType,this.bIsReference=e.bIsReference,this.bIsConst=e.bIsConst,this.bIsWeakPointer=e.bIsWeakPointer,this.bIsUObjectWrapper=e.bIsUObjectWrapper,this.bSerializeAsSinglePrecisionFloat=e.bSerializeAsSinglePrecisionFloat}}class Ne extends oe{static attributes={R:{default:0},P:{default:0},Y:{default:0}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.R,this.P,this.Y}getRoll(){return this.R}getPitch(){return this.P}getYaw(){return this.Y}}class Te extends Ne{}class Ae extends oe{static attributes={X:{default:0,expected:!0},Y:{default:0,expected:!0}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.X,this.Y}}class Me extends Ae{}class De extends oe{static attributes={X:{default:0,expected:!0},Y:{default:0,expected:!0},Z:{default:0,expected:!0}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.X,this.Y,this.Z}}class Be extends De{}class $e extends oe{static#a={"/Script/CoreUObject.LinearColor":Se,"/Script/CoreUObject.Rotator":Ne,"/Script/CoreUObject.Vector":De,"/Script/CoreUObject.Vector2D":Ae,bool:Boolean,byte:ue,enum:he,exec:String,int:le,int64:ve,name:String,real:Number,string:String};static#o={"/Script/CoreUObject.Vector2D":Me,"/Script/CoreUObject.Vector":Be,"/Script/CoreUObject.Rotator":Te};static lookbehind="Pin";static attributes={PinId:{type:ge},PinName:{default:""},PinFriendlyName:{type:new re(pe,me,String),showDefault:!1},PinToolTip:{type:String,showDefault:!1},Direction:{type:String,showDefault:!1},PinType:{type:Le,inlined:!0},LinkedTo:{type:[ke],showDefault:!1},SubPins:{type:[ke],showDefault:!1},ParentPin:{type:ke,showDefault:!1},DefaultValue:{type:new ne((e=>e.getEntityType(!0)??String)),serialized:!0,showDefault:!1},AutogeneratedDefaultValue:{type:String,showDefault:!1},DefaultObject:{type:be,showDefault:!1,default:null},PersistentGuid:{type:ge},bHidden:{default:!1},bNotConnectable:{default:!1},bDefaultValueIsReadOnly:{default:!1},bDefaultValueIsIgnored:{default:!1},bAdvancedView:{default:!1},bOrphanedPin:{default:!1}};static{this.cleanupAttributes(this.attributes)}constructor(e={},t=!1){super(e,t),this.PinId,this.PinName,this.PinFriendlyName,this.PinToolTip,this.Direction,this.PinType,this.LinkedTo,this.DefaultValue,this.AutogeneratedDefaultValue,this.DefaultObject,this.PersistentGuid,this.bHidden,this.bNotConnectable,this.bDefaultValueIsReadOnly,this.bDefaultValueIsIgnored,this.bAdvancedView,this.bOrphanedPin}getType(){const e=this.PinType.PinSubCategoryObject;return"struct"===this.PinType.PinCategory||"object"===this.PinType.PinCategory?e.path:"byte"!==this.PinType.PinCategory||e.type!==te.nodeType.enum&&e.type!==te.nodeType.userDefinedEnum?this.PinType.PinCategory:"enum"}getEntityType(e=!1){const t=this.getType(),i=$e.#a[t],n=$e.#o[t];return e&&void 0!==n?n:i}getDisplayName(){let e=null;return this.PinToolTip&&(e=this.PinToolTip.match(/\s*(.+?(?=\n)|.+\S)\s*/))?e[1]:this.PinFriendlyName?ae.formatStringName(this.PinFriendlyName.toString()):ae.formatStringName(this.PinName)}copyTypeFrom(e){this.PinType.PinCategory=e.PinType.PinCategory,this.PinType.PinSubCategory=e.PinType.PinSubCategory,this.PinType.PinSubCategoryObject=e.PinType.PinSubCategoryObject,this.PinType.PinSubCategoryMemberReference=e.PinType.PinSubCategoryMemberReference,this.PinType.PinValueType=e.PinType.PinValueType,this.PinType.ContainerType=e.PinType.ContainerType,this.PinType.bIsReference=e.PinType.bIsReference,this.PinType.bIsConst=e.PinType.bIsConst,this.PinType.bIsWeakPointer=e.PinType.bIsWeakPointer,this.PinType.bIsUObjectWrapper=e.PinType.bIsUObjectWrapper,this.PinType$bSerializeAsSinglePrecisionFloat=e.PinType$bSerializeAsSinglePrecisionFloat}getDefaultValue(e=!1){return void 0===this.DefaultValue&&e&&(this.DefaultValue=new(this.getEntityType(!0))),this.DefaultValue}isExecution(){return"exec"===this.PinType.PinCategory}isHidden(){return this.bHidden}isInput(){return!this.bHidden&&"EGPD_Output"!=this.Direction}isOutput(){return!this.bHidden&&"EGPD_Output"==this.Direction}isLinked(){return this.LinkedTo?.length>0??!1}linkTo(e,t){const i=this.LinkedTo?.some((i=>i.objectName.toString()==e&&i.pinGuid.valueOf()==t.PinId.valueOf()));return!i&&((this.LinkedTo??=[]).push(new ke({objectName:e,pinGuid:t.PinId})),!0)}unlinkFrom(e,t){const i=this.LinkedTo?.findIndex((i=>i.objectName.toString()==e&&i.pinGuid.valueOf()==t.PinId.valueOf()));return i>=0&&(this.LinkedTo.splice(i,1),0!==this.LinkedTo.length||$e.attributes.LinkedTo.showDefault||(this.LinkedTo=void 0),!0)}getSubCategory(){return this.PinType.PinSubCategoryObject.path}pinColor(){return te.pinColor[this.getType()]??te.pinColor[this.PinType.PinCategory.toLowerCase()]??te.pinColor.default}}class He{static array=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 0H0V4H4V0Z" fill="currentColor"/><path d="M10 0H6V4H10V0Z" fill="currentColor"/><path d="M16 0H12V4H16V0Z" fill="currentColor"/><path d="M4 6H0V10H4V6Z" fill="currentColor"/><path class="ueb-pin-tofill" d="M10 6H6V10H10V6Z" fill="black"/><path d="M16 6H12V10H16V6Z" fill="currentColor"/><path d="M4 12H0V16H4V12Z" fill="currentColor"/><path d="M10 12H6V16H10V12Z" fill="currentColor"/><path d="M16 12H12V16H16V12Z" fill="currentColor"/></svg>`;static branchNode=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11 2H6C5.44772 2 5 2.44772 5 3V13C5 13.5523 5.44772 14 6 14H11V12H7V4H11V2Z" fill="white"/><rect x="1" y="7" width="4" height="2" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 6L15 3L11 0V6Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 16L15 13L11 10V16Z" fill="white"/></svg>`;static breakStruct=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 14L10 12L11 11L13 13L14 12L14 15L11 15L12 14Z" fill="white"/><path d="M13 3L11 5L10 4L12 2L11 1L14 1L14 4L13 3Z" fill="white"/><path d="M7.975 6H3.025C1.90662 6 1 6.90662 1 8.025V8.475C1 9.59338 1.90662 10.5 3.025 10.5H7.975C9.09338 10.5 10 9.59338 10 8.475V8.025C10 6.90662 9.09338 6 7.975 6Z" fill="white"/></svg>`;static cast=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 12L16 7.5L12 3V12Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M0 11L4 7.5L0 4V11Z" fill="white"/><rect opacity="0.5" x="5" y="6" width="1" height="3" fill="white"/><rect opacity="0.5" x="7" y="6" width="1" height="3" fill="white"/><rect opacity="0.5" x="9" y="6" width="1" height="3" fill="white"/><rect x="9" y="6" width="3" height="3" fill="white"/></svg>`;static close=$`<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><line x1="2" y1="2" x2="30" y2="30" stroke="currentColor" stroke-width="4"/><line x1="30" y1="2" x2="2" y2="30" stroke="currentColor" stroke-width="4"/></svg>`;static correct=$`<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path fill="#2da800" d="M 2 16 L 14 30 L 30 2 L 13 22 Z"/></svg>`;static delegate=$`<svg viewBox="-2 -2 32 32" xmlns="http://www.w3.org/2000/svg"><rect class="ueb-pin-tofill" fill="black" width="28" height="28" rx="4" stroke="currentColor" stroke-width="5"/></svg>`;static doN=$`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="M1 12V8H9V4L16 10L9 16V12H1Z"/><path fill="white" d="M7 6L6 6L4 2.66667V6H3V1H4L6 4.33333V1H7V6Z"/></svg>`;static doOnce=$`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M1 12V8H9V4L16 10L9 16V12H1Z" fill="white"/><path d="M6 6H5L4.98752 2.42387L4 2.8642V1.893L5.89305 1H6V6Z" fill="white"/><rect x="4" y="5" width="3" height="1" fill="white"/></svg>`;static enum=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="M9 5V0H2V16H14V5H9ZM3.2 4.4L4.5 4H4.6V7H4V4.7L3.2 4.9V4.4ZM4.7 14.8C4.6 14.9 4.3 15 4 15C3.7 15 3.5 14.9 3.3 14.8C3.1 14.6 3 14.4 3 14.2H3.6C3.6 14.3 3.6 14.4 3.7 14.5C3.8 14.6 3.9 14.6 4 14.6C4.1 14.6 4.2 14.6 4.3 14.5C4.4 14.4 4.4 14.3 4.4 14.2C4.4 13.9 4.2 13.8 3.9 13.8H3.7V13.3H4C4.1 13.3 4.3 13.3 4.3 13.2C4.4 13.1 4.4 13 4.4 12.9C4.4 12.8 4.4 12.7 4.3 12.6C4.2 12.5 4.1 12.5 4 12.5C3.9 12.5 3.8 12.5 3.7 12.6C3.6 12.7 3.6 12.7 3.6 12.8H3C3 12.6 3 12.5 3.1 12.4C3.2 12.3 3.3 12.2 3.4 12.1C3.7 12 3.8 12 4 12C4.3 12 4.6 12.1 4.7 12.2C4.9 12.4 5 12.6 5 12.8C5 12.9 5 13.1 4.9 13.2C4.8 13.3 4.7 13.4 4.6 13.5C4.8 13.6 4.9 13.6 5 13.8C5 13.8 5 14 5 14.1C5 14.4 4.9 14.6 4.7 14.8ZM5.1 11H3.1V10.6L4.1 9.6C4.2 9.5 4.3 9.3 4.4 9.2C4.4 9.1 4.4 9 4.4 8.9C4.4 8.8 4.4 8.7 4.3 8.6C4.2 8.5 4.1 8.5 4 8.5C3.9 8.5 3.8 8.5 3.7 8.6C3.6 8.7 3.6 8.8 3.6 9H3C3 8.8 3 8.7 3.1 8.5C3.2 8.4 3.3 8.2 3.5 8.1C3.7 8 3.8 8 4 8C4.3 8 4.5 8.1 4.7 8.2C4.9 8.4 5 8.6 5 8.8C5 9 5 9.1 4.9 9.3C4.8 9.4 4.7 9.6 4.5 9.8L3.8 10.5H5.1V11ZM12 15H6V14H12V15ZM12 11H6V10H12V11ZM12 7H6V6H12V7Z"/><path d="M9 0H8L14 6V5L9 0Z" fill="white"/></svg>`;static event=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.929031" y="8" width="10" height="10" rx="0.5" transform="rotate(-45 0.929031 8)" stroke="white"/><path d="M5 4.00024L8 1.00024V6.00024H3L5 4.00024Z" fill="white"/><path d="M6 13.0002L3 10.0002L8 10.0002L8 15.0002L6 13.0002Z" fill="white"/><path d="M4.53551 6.82854L4.53551 11.0712L0.999977 7.53564L4.53551 4.00011L4.53551 6.82854Z" fill="white"/></svg>`;static execPin=$`<svg viewBox="-2 0 16 16" xmlns="http://www.w3.org/2000/svg"><path class="ueb-pin-tofill" stroke-width="1.25" stroke="white" fill="none" d="M 2 1 a 2 2 0 0 0 -2 2 v 10 a 2 2 0 0 0 2 2 h 4 a 2 2 0 0 0 1.519 -0.698 l 4.843 -5.651 a 1 1 0 0 0 0 -1.302 L 7.52 1.7 a 2 2 0 0 0 -1.519 -0.698 z"/></svg>`;static expandIcon=$`<svg fill="currentColor" viewBox="4 4 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M 16.003 18.626 l 7.081 -7.081 L 25 13.46 l -8.997 8.998 -9.003 -9 1.917 -1.916 z"/></svg>`;static forEachLoop=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 2C1.8 2 0 3.8 0 6V9C0 11.2 2 13 4 13H10V11H5C3.2 11 2 9.7 2 8V7C2 5.63882 2.76933 4.53408 4 4.14779V2ZM12 4C13.8 4 14 5.3 14 7V8C14 8.8 13.7 9.5 13.3 10L15.2 11.4C15.7 10.7 16 9.9 16 9V6C16 3.8 14.2 2 12 2V4Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 16L13 12L8 8V16Z" fill="white"/><rect x="5" y="1" width="1" height="4" fill="white"/><rect x="7" y="1" width="1" height="4" fill="white"/><rect x="9" y="1" width="1" height="4" fill="white"/><rect x="11" y="2" width="1" height="2" fill="white"/></svg>`;static functionSymbol=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.72002 6.0699C9.88111 4.96527 10.299 3.9138 10.94 2.99991C10.94 2.99991 10.94 3.05991 10.94 3.08991C10.94 3.36573 11.0496 3.63026 11.2446 3.8253C11.4397 4.02033 11.7042 4.12991 11.98 4.12991C12.2558 4.12991 12.5204 4.02033 12.7154 3.8253C12.9105 3.63026 13.02 3.36573 13.02 3.08991C13.0204 2.90249 12.9681 2.71873 12.8691 2.5596C12.7701 2.40047 12.6283 2.27237 12.46 2.18991H12.37C11.8725 2.00961 11.3275 2.00961 10.83 2.18991C9.21002 2.63991 8.58002 4.99991 8.58002 4.99991L8.40002 5.1199H5.40002L5.15002 6.1199H8.27002L7.27002 11.4199C7.11348 12.0161 6.79062 12.5555 6.33911 12.9751C5.8876 13.3948 5.32607 13.6773 4.72002 13.7899C4.78153 13.655 4.81227 13.5081 4.81002 13.3599C4.81002 13.0735 4.69624 12.7988 4.4937 12.5962C4.29116 12.3937 4.01646 12.2799 3.73002 12.2799C3.44359 12.2799 3.16889 12.3937 2.96635 12.5962C2.76381 12.7988 2.65002 13.0735 2.65002 13.3599C2.66114 13.605 2.75692 13.8386 2.92104 14.021C3.08517 14.2033 3.30746 14.3231 3.55002 14.3599C7.91002 15.1999 8.55002 11.4499 8.55002 11.4499L9.55002 7.05991H12.55L12.8 6.05991H9.64002L9.72002 6.0699Z" fill="currentColor"/></svg>`;static gamepad=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="m 15.2107 8.525 c -0.6619 -1.7207 -1.9856 -4.8978 -3.3094 -4.8978 c -1.9856 0 -1.9856 1.8532 -2.7799 1.8532 c -0.3971 0 -1.8532 0 -2.3827 0 c -0.7943 0 -0.7943 -1.8532 -2.6475 -1.8532 c -1.3238 0 -2.6475 3.0446 -3.3094 4.8978 c -1.059 3.3094 -1.1914 4.8979 1.1914 4.8979 c 2.6475 0 2.6475 -3.0445 5.9569 -3.0445 c 3.3094 0 3.4418 3.0445 5.9569 3.0445 c 2.5151 0 2.5151 -1.5885 1.3238 -4.8979 z m -8.472 0 h -1.3238 v 1.3238 h -1.3238 v -1.3238 h -1.3238 v -1.3238 h 1.3238 v -1.3238 h 1.3238 v 1.3238 h 1.3238 v 1.3238 z m 4.6331 1.5887 c -1.1914 0 -2.2504 -0.9268 -2.2504 -2.2505 c 0 -1.1913 0.9267 -2.2503 2.2504 -2.2503 c 1.3238 0 2.2504 0.9266 2.2504 2.2503 c 0 1.1915 -1.059 2.2505 -2.2504 2.2505 z m -0.0001 -2.9124 c -0.3971 0 -0.6619 0.2648 -0.6619 0.6619 c 0 0.3971 0.2648 0.6619 0.6619 0.6619 c 0.3971 0 0.6619 -0.2648 0.6619 -0.6619 c 0 -0.3971 -0.2648 -0.6619 -0.6619 -0.6619 z"/></svg>`;static genericPin=$`<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><circle class="ueb-pin-tofill" cx="16" cy="16" r="13" fill="black" stroke="currentColor" stroke-width="5"/><path fill="currentColor" d="M 34 6 L 34 26 L 42 16 Z"/></svg>`;static keyboard=$`<svg viewBox="0 -3 16 16" xmlns="http://www.w3.org/2000/svg"><path fill="white" d="M 1 10 H 15 c 0.2652 0 0.5195 -0.1054 0.707 -0.293 c 0.1875 -0.1875 0.293 -0.4418 0.293 -0.707 v -8 c 0 -0.2652 -0.1054 -0.5195 -0.293 -0.707 c -0.1875 -0.1875 -0.4418 -0.293 -0.707 -0.293 H 1 c -0.2652 0 -0.5195 0.1054 -0.707 0.293 c -0.1875 0.1875 -0.293 0.4418 -0.293 0.707 V 9 c 0 0.2652 0.1054 0.5195 0.293 0.707 c 0.1875 0.1875 0.4418 0.293 0.707 0.293 Z M 14 6 h -3 v -2 h 3 v 2 Z M 13 1 h 2 v 2 h -2 v -2 Z M 10 1 h 2 v 2 h -2 v -2 Z M 10 6 h -2 v -2 h 2 v 2 Z M 7 1 h 2 v 2 h -2 v -2 Z M 7 6 h -2 v -2 h 2 v 2 Z M 4 1 h 2 v 2 h -2 v -2 Z M 4 6 h -2 v -2 h 2 v 2 Z M 1 1 h 2 v 2 h -2 v -2 Z M 1 7 h 2 v 2 h -2 v -2 M 4 7 h 8 v 2 h -8 v -2 M 13 7 h 2 v 2 h -2 v -2 Z"/></svg>`;static loop=$`<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><defs><style>.cls-1{fill:#fff;fill-rule:evenodd}.cls-2{fill:none}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_4" data-name="Layer 4"><path class="cls-1" d="M16,2H4A4,4,0,0,0,0,6v4a4.14,4.14,0,0,0,4,4H9v5l8-6L9,7v5H4.5A2.36,2.36,0,0,1,2,9.5v-3A2.36,2.36,0,0,1,4.5,4h11A2.36,2.36,0,0,1,18,6.5V9a3,3,0,0,1-.69,2l1.88,1.41A4,4,0,0,0,20,10V6A4,4,0,0,0,16,2Z"/><rect class="cls-2" width="20" height="20"/></g></g></svg>`;static macro=$`<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 2.92L10 12.29L14.55 2.61C14.662 2.4259 14.8189 2.27332 15.0061 2.16661C15.1933 2.05989 15.4045 2.00256 15.62 2H19L18.66 2.89C18.66 2.89 17.17 3.04 17.11 3.63C17.05 4.22 16 15.34 15.93 16.13C15.86 16.92 17.33 17.13 17.33 17.13L17.17 17.99H13.84C13.7241 17.9764 13.612 17.9399 13.5103 17.8826C13.4086 17.8253 13.3194 17.7484 13.2477 17.6562C13.176 17.5641 13.1234 17.4586 13.0929 17.346C13.0624 17.2333 13.0546 17.1157 13.07 17L14.43 5.52L10 14.57C9.8 15.03 9.07 15.72 8.63 15.71H7.75L6.05 4.86L3.54 17.39C3.51941 17.5514 3.44327 17.7005 3.32465 17.8118C3.20603 17.9232 3.05235 17.9897 2.89 18H1L1.11 17.09C1.11 17.09 2.21 17.09 2.3 16.69C2.39 16.29 5.3 3.76 5.41 3.32C5.52 2.88 4.19 2.81 4.19 2.81L4.46 2H6.62C7.09 2 7.92 2.38 8 2.92Z" fill="white"/></svg>`;static map=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 0H0V4H4V0Z" fill="currentColor"/><path d="M4 6H0V10H4V6Z" fill="currentColor"/><path d="M4 12H0V16H4V12Z" fill="currentColor"/><path d="M16 0H6V4H16V0Z" fill="white"/><path d="M16 6H6V10H16V6Z" fill="white"/><path d="M16 12H6V16H16V12Z" fill="white"/></svg>`;static makeArray=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H13V6H15V4Z" fill="white"/><path d="M15 7H13V9H15V7Z" fill="white"/><path d="M15 10H13V12H15V10Z" fill="white"/><path d="M12 4H10V6H12V4Z" fill="white"/><path d="M12 7H10V9H12V7Z" fill="white"/><path d="M12 10H10V12H12V10Z" fill="white"/><path d="M9 4H7V6H9V4Z" fill="white"/><path d="M9 7H7V9H9V7Z" fill="white"/><path d="M9 10H7V12H9V10Z" fill="white"/><path d="M3 4L1 1.99995L2 1L4 3L5 1.99995L5 5L2 5L3 4Z" fill="white"/><path d="M4 13L1.99995 15L1 14L3 12L1.99995 11L5 11L5 14L4 13Z" fill="white"/></svg>`;static makeMap=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15 4H10V6H15V4Z" fill="white"/><path d="M15 7H10V9H15V7Z" fill="white"/><path d="M15 10H10V12H15V10Z" fill="white"/><path d="M9 4H7V6H9V4Z" fill="white"/><path d="M9 7H7V9H9V7Z" fill="white"/><path d="M9 10H7V12H9V10Z" fill="white"/><path d="M3 4L1 1.99995L2 1L4 3L5 1.99995L5 5L2 5L3 4Z" fill="white"/><path d="M4 13L1.99995 15L1 14L3 12L1.99995 11L5 11L5 14L4 13Z" fill="white"/></svg>`;static makeSet=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 4L1 1.99995L2 1L4 3L5 1.99995L5 5L2 5L3 4Z" fill="white"/><path d="M4 13L1.99995 15L1 14L3 12L1.99995 11L5 11L5 14L4 13Z" fill="white"/><path d="M6 8.00205V7.43062C6.40147 7.37088 6.79699 7.28299 7.18286 7.16777C7.30414 7.11578 7.40659 7.03462 7.47858 6.93348C7.57165 6.81021 7.63108 6.66933 7.65215 6.52205C7.6832 6.31181 7.69609 6.09976 7.69072 5.88777C7.67539 5.53753 7.70341 5.18685 7.77429 4.84205C7.81918 4.66059 7.92446 4.49533 8.07643 4.36777C8.26269 4.22923 8.48285 4.13138 8.71929 4.08205C9.01252 4.02392 9.31249 3.99706 9.61287 4.00205H9.85715V4.57348C9.66398 4.58307 9.47806 4.64211 9.32179 4.7435C9.16552 4.84489 9.04559 4.9843 8.97644 5.14491C8.92057 5.24999 8.89621 5.36613 8.90572 5.48205C8.90572 5.64205 8.90572 5.95062 8.86715 6.40205C8.85805 6.6136 8.81697 6.8231 8.74501 7.02491C8.69216 7.17345 8.60697 7.3113 8.49429 7.43062C8.33135 7.64 8.1415 7.83177 7.92858 8.00205" fill="white"/><path d="M7.92858 8.00195C8.14537 8.18165 8.33547 8.3852 8.49429 8.60767C8.60419 8.72229 8.6892 8.85404 8.74501 8.99624C8.81697 9.19805 8.85805 9.40755 8.86715 9.6191C8.89286 10.0724 8.90572 10.381 8.90572 10.5448C8.89679 10.6607 8.92112 10.7767 8.97644 10.882C9.05077 11.0375 9.17272 11.1714 9.32842 11.2683C9.48411 11.3653 9.66731 11.4215 9.85715 11.4305V12.002H9.61287C9.31086 12.0112 9.0087 11.9881 8.71286 11.9334C8.47744 11.8816 8.25788 11.784 8.07001 11.6477C7.91926 11.5193 7.81421 11.3543 7.76786 11.1734C7.69764 10.8285 7.66962 10.4779 7.68429 10.1277C7.69081 9.91186 7.67791 9.69593 7.64572 9.48195C7.62465 9.33468 7.56522 9.1938 7.47215 9.07052C7.40016 8.96939 7.29771 8.88822 7.17643 8.83624C6.79266 8.72131 6.3993 8.63342 6 8.57338V8.00195" fill="white"/><path d="M13.0712 8.00197C12.8582 7.83169 12.6684 7.63992 12.5054 7.43054C12.3942 7.31461 12.3091 7.18076 12.2547 7.03626C12.1828 6.83445 12.1417 6.62495 12.1326 6.4134C12.1326 5.96197 12.094 5.6534 12.094 5.4934C12.1058 5.37369 12.0814 5.25334 12.0233 5.14483C11.9541 4.98422 11.8342 4.84481 11.6779 4.74342C11.5217 4.64203 11.3357 4.58299 11.1426 4.5734V4.00197H11.3869C11.6889 3.99277 11.991 4.01579 12.2869 4.07054C12.5233 4.11987 12.7435 4.21772 12.9297 4.35626C13.0817 4.48382 13.187 4.64908 13.2319 4.83054C13.3027 5.17534 13.3308 5.52602 13.3154 5.87626C13.3094 6.09206 13.3223 6.30795 13.354 6.52197C13.3751 6.66925 13.4345 6.81013 13.5276 6.9334C13.5996 7.03454 13.702 7.1157 13.8233 7.16769C14.2071 7.28262 14.6004 7.37051 14.9997 7.43054V8.00197" fill="white"/><path d="M14.9997 8.00195V8.57338C14.5983 8.63312 14.2027 8.72102 13.8169 8.83624C13.6956 8.88822 13.5931 8.96939 13.5212 9.07052C13.4281 9.1938 13.3686 9.33468 13.3476 9.48195C13.3154 9.69593 13.3025 9.91186 13.309 10.1277C13.3237 10.4779 13.2957 10.8285 13.2254 11.1734C13.1791 11.3543 13.074 11.5193 12.9233 11.6477C12.7354 11.784 12.5159 11.8816 12.2804 11.9334C11.9846 11.9881 11.6824 12.0112 11.3804 12.002H11.1426V11.4305C11.3353 11.4196 11.5205 11.36 11.6765 11.2588C11.8325 11.1576 11.9528 11.0189 12.0233 10.8591C12.0786 10.7539 12.1029 10.6378 12.094 10.522C12.094 10.3543 12.1069 10.0458 12.1326 9.59624C12.1417 9.38469 12.1828 9.17519 12.2547 8.97338C12.3105 8.83119 12.3955 8.69943 12.5054 8.58481C12.666 8.37037 12.856 8.17457 13.0712 8.00195" fill="white"/></svg>`;static makeStruct=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 4L1 1.99995L2 1L4 3L5 1.99995L5 5L2 5L3 4Z" fill="white"/><path d="M4 13L1.99995 15L1 14L3 12L1.99995 11L5 11L5 14L4 13Z" fill="white"/><path d="M12.975 6H8.025C6.90662 6 6 6.90662 6 8.025V8.475C6 9.59338 6.90662 10.5 8.025 10.5H12.975C14.0934 10.5 15 9.59338 15 8.475V8.025C15 6.90662 14.0934 6 12.975 6Z" fill="white"/></svg>`;static mouse=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.5" fill-rule="evenodd" clip-rule="evenodd" d="M8.85714 8.34043H14L13.9143 6.6383H8.85714V0H7.14286V6.6383H2.08571L2 8.34043H7.14286H8.85714Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8.85714 0C11 0.595745 13.4 3.31915 13.9143 6.6383H8.85714V0ZM7.14286 0C5 0.595745 2.6 3.31915 2.08571 6.6383H7.14286V0ZM8.85714 8.34043H7.14286H2C2 12.5957 3.02857 16 8 16C12.9714 16 14 12.5957 14 8.34043H8.85714Z" fill="white"/></svg>`;static node=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="16" height="15" rx="1" fill="white" fill-opacity="0.5"/><rect x="0.5" y="0.5" width="15" height="14" rx="0.5" stroke="white"/><rect x="1" width="14" height="5" fill="white"/></svg>`;static questionMark=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 15C9.10456 15 10 14.1046 10 13C10 11.8954 9.10456 11 8 11C6.89544 11 6 11.8954 6 13C6 14.1046 6.89544 15 8 15Z" fill="white"/><path d="M5 4.86697C5.15 3.33619 6.5 2.26465 8 2.26465C9.65 2.26465 11 3.64235 11 5.3262C11 7.01005 8 7.92852 8 9.00006" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>`;static referencePin=$`<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><polygon class="ueb-pin-tofill" points="4 16 16 4 28 16 16 28" stroke="currentColor" stroke-width="5"/></svg>`;static reject=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="red" stroke-width="2" stroke-miterlimit="10" d="M12.5 3.5L3.5 12.5"/><path fill="red" d="M8 2C11.3 2 14 4.7 14 8C14 11.3 11.3 14 8 14C4.7 14 2 11.3 2 8C2 4.7 4.7 2 8 2ZM8 0.5C3.9 0.5 0.5 3.9 0.5 8C0.5 12.1 3.9 15.5 8 15.5C12.1 15.5 15.5 12.1 15.5 8C15.5 3.9 12.1 0.5 8 0.5Z"/></svg>`;static set=$`<svg viewBox="2 2 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7.99956V6.99956C1.62451 6.89501 2.23976 6.7412 2.84 6.53956C3.02865 6.44859 3.18802 6.30655 3.3 6.12956C3.44478 5.91383 3.53723 5.6673 3.57 5.40956C3.6183 5.04164 3.63836 4.67055 3.63 4.29956C3.60615 3.68664 3.64974 3.07296 3.76 2.46956C3.82982 2.152 3.99359 1.86279 4.23 1.63956C4.51974 1.39713 4.86221 1.22589 5.23 1.13956C5.68612 1.03782 6.15275 0.990826 6.62 0.999563H7V1.99956C6.69952 2.01634 6.4103 2.11967 6.16722 2.2971C5.92414 2.47453 5.73757 2.71849 5.63 2.99956C5.5431 3.18346 5.5052 3.3867 5.52 3.58956C5.52 3.86956 5.52 4.40956 5.46 5.19956C5.44584 5.56977 5.38194 5.9364 5.27 6.28956C5.18779 6.5495 5.05527 6.79074 4.88 6.99956C4.62654 7.36597 4.33121 7.70157 4 7.99956" fill="currentColor"/><path d="M4 7.99951C4.33723 8.31397 4.63295 8.67019 4.88 9.05951C5.05095 9.2601 5.18319 9.49067 5.27 9.73951C5.38194 10.0927 5.44584 10.4593 5.46 10.8295C5.5 11.6228 5.52 12.1628 5.52 12.4495C5.5061 12.6523 5.54395 12.8553 5.63 13.0395C5.74563 13.3117 5.93533 13.546 6.17752 13.7157C6.41972 13.8854 6.70468 13.9837 7 13.9995V14.9995H6.62C6.15021 15.0156 5.68019 14.9753 5.22 14.8795C4.85378 14.7889 4.51224 14.6181 4.22 14.3795C3.98551 14.1548 3.8221 13.8662 3.75 13.5495C3.64077 12.946 3.59718 12.3324 3.62 11.7195C3.63014 11.3418 3.61007 10.964 3.56 10.5895C3.52723 10.3318 3.43478 10.0852 3.29 9.86951C3.17802 9.69252 3.01865 9.55048 2.83 9.45951C2.23302 9.25838 1.62113 9.10457 1 8.99951V7.99951" fill="currentColor"/><path d="M12 7.99955C11.6688 7.70156 11.3735 7.36596 11.12 6.99955C10.947 6.79667 10.8146 6.56242 10.73 6.30955C10.6181 5.95638 10.5542 5.58976 10.54 5.21954C10.54 4.42954 10.48 3.88955 10.48 3.60955C10.4983 3.40004 10.4604 3.18944 10.37 2.99955C10.2624 2.71847 10.0759 2.47452 9.83278 2.29708C9.5897 2.11965 9.30048 2.01632 9 1.99955V0.999545H9.38C9.84979 0.983442 10.3198 1.02373 10.78 1.11955C11.1478 1.20587 11.4903 1.37711 11.78 1.61955C12.0164 1.84278 12.1802 2.13198 12.25 2.44955C12.3603 3.05294 12.4039 3.66662 12.38 4.27955C12.3706 4.6572 12.3907 5.03501 12.44 5.40954C12.4728 5.66728 12.5652 5.91382 12.71 6.12955C12.822 6.30653 12.9813 6.44858 13.17 6.53955C13.767 6.74067 14.3789 6.89448 15 6.99955V7.99955" fill="currentColor"/><path d="M15 7.99951V8.99951C14.3755 9.10406 13.7602 9.25787 13.16 9.45951C12.9713 9.55048 12.812 9.69252 12.7 9.86951C12.5552 10.0852 12.4628 10.3318 12.43 10.5895C12.3799 10.964 12.3599 11.3418 12.37 11.7195C12.3928 12.3324 12.3492 12.946 12.24 13.5495C12.1679 13.8662 12.0045 14.1548 11.77 14.3795C11.4778 14.6181 11.1362 14.7889 10.77 14.8795C10.3098 14.9753 9.83979 15.0156 9.37 14.9995H9V13.9995C9.2998 13.9803 9.58791 13.876 9.83056 13.6989C10.0732 13.5218 10.2603 13.2792 10.37 12.9995C10.456 12.8153 10.4939 12.6123 10.48 12.4095C10.48 12.1162 10.5 11.5762 10.54 10.7895C10.5542 10.4193 10.6181 10.0527 10.73 9.69951C10.8168 9.45067 10.9491 9.2201 11.12 9.01951C11.3698 8.64424 11.6654 8.30159 12 7.99951" fill="currentColor"/></svg>`;static select=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="2" width="6" height="2" fill="white"/><rect x="10" y="7" width="3" height="2" fill="white"/><path d="M12 5L15 8L12 11V5Z" fill="white"/><rect x="1" y="7" width="8" height="2" fill="white"/><rect x="5" y="4" width="2" height="9" fill="white"/><rect x="1" y="12" width="6" height="2" fill="white"/></svg>`;static sequence=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="2" width="5" height="2" fill="white"/><rect y="7" width="8" height="2" fill="white"/><rect x="3" y="4" width="2" height="9" fill="white"/><rect x="3" y="12" width="5" height="2" fill="white"/><rect x="10" y="2" width="6" height="2" fill="white"/><rect x="10" y="7" width="4" height="2" fill="white"/><rect x="10" y="12" width="2" height="2" fill="white"/></svg>`;static switch=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="2" width="6" height="2" fill="white"/><rect y="7" width="9" height="2" fill="white"/><rect x="3" y="4" width="2" height="9" fill="white"/><rect x="3" y="12" width="6" height="2" fill="white"/><rect x="10" y="2" width="3" height="2" fill="white"/><path d="M12 0L15 3L12 6V0Z" fill="white"/></svg>`;static touchpad=$`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="white" fill-rule="evenodd" clip-rule="evenodd" d="M13 0H3C2.4 0 2 0.4 2 1V15C2 15.6 2.4 16 3 16H13C13.6 16 14 15.6 14 15V1C14 0.4 13.6 0 13 0ZM8 15.5C7.2 15.5 6.5 14.8 6.5 14C6.5 13.2 7.2 12.5 8 12.5C8.8 12.5 9.5 13.2 9.5 14C9.5 14.8 8.8 15.5 8 15.5ZM13 12H3V1H13V12Z"/><path opacity="0.5" d="M13 1H3V12H13V1Z" fill="white"/></svg>`}class ze extends oe{static lookbehind="UserDefinedPin"}class Oe extends oe{static attributes={MemberScope:{default:"",showDefault:!1},MemberName:{default:""},MemberGuid:{type:ge},bSelfContext:{default:!1,showDefault:!1}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.MemberName,this.GuidEntity,this.bSelfContext}}class Re extends oe{static attributes={Class:{type:be},Name:{default:""},AxisKey:{type:ce,showDefault:!1},InputAxisKey:{type:ce,showDefault:!1},bIsPureFunc:{default:!1,showDefault:!1},bIsConstFunc:{default:!1,showDefault:!1},VariableReference:{type:Oe,default:null,showDefault:!1},SelfContextInfo:{type:ce,default:null,showDefault:!1},DelegatePropertyName:{type:String,showDefault:!1},DelegateOwnerClass:{type:be,showDefault:!1},ComponentPropertyName:{type:String,showDefault:!1},EventReference:{type:ye,default:null,showDefault:!1},FunctionReference:{type:ye,default:null,showDefault:!1},CustomFunctionName:{type:String,showDefault:!1},TargetType:{type:be,default:null,showDefault:!1},MacroGraphReference:{type:Ce,default:null,showDefault:!1},Enum:{type:be,showDefault:!1},InputKey:{type:ce,showDefault:!1},bOverrideFunction:{type:Boolean,showDefault:!1},bInternalEvent:{type:Boolean,showDefault:!1},bConsumeInput:{type:Boolean,showDefault:!1},bExecuteWhenPaused:{type:Boolean,showDefault:!1},bOverrideParentBinding:{type:Boolean,showDefault:!1},bControl:{type:Boolean,showDefault:!1},bAlt:{type:Boolean,showDefault:!1},bShift:{type:Boolean,showDefault:!1},bCommand:{type:Boolean,showDefault:!1},CommentColor:{type:Se,showDefault:!1},bCommentBubbleVisible_InDetailsPanel:{type:Boolean,showDefault:!1},bColorCommentBubble:{type:Boolean,default:!1,showDefault:!1},MoveMode:{type:ce,showDefault:!1},NodePosX:{type:le,showDefault:!1},NodePosY:{type:le,showDefault:!1},NodeWidth:{type:le,showDefault:!1},NodeHeight:{type:le,showDefault:!1},bCommentBubblePinned:{type:Boolean,showDefault:!1},bCommentBubbleVisible:{type:Boolean,showDefault:!1},NodeComment:{type:String,showDefault:!1},AdvancedPinDisplay:{type:fe,default:null,showDefault:!1},EnabledState:{type:fe,default:null,showDefault:!1},NodeGuid:{type:ge},ErrorType:{type:le,showDefault:!1},ErrorMsg:{type:String,default:"",showDefault:!1},CustomProperties:{type:[new re($e,ze)]}};static nameRegex=/^(\w+?)(?:_(\d+))?$/;static sequencerScriptingNameRegex=/\/Script\/SequencerScripting\.MovieSceneScripting(.+)Channel/;static#l={A_AccentGrave:"à",Add:"Num +",C_Cedille:"ç",Decimal:"Num .",Divide:"Num /",E_AccentAigu:"é",E_AccentGrave:"è",F1:"F1",F10:"F10",F11:"F11",F12:"F12",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",Gamepad_Special_Left_X:"Touchpad Button X Axis",Gamepad_Special_Left_Y:"Touchpad Button Y Axis",Mouse2D:"Mouse XY 2D-Axis",Multiply:"Num *",Section:"§",Subtract:"Num -",Tilde:"`"};static{this.cleanupAttributes(this.attributes)}static keyName(e){let t=Re.#l[e];if(t)return t;if(t=ae.numberFromText(e)?.toString(),t)return t;const i=e.match(/NumPad([a-zA-Z]+)/);return i&&(t=ae.numberFromText(i[1]),t)?"Num "+t:void 0}constructor(e,t=!1){super(e,t),this.Class,this.Name,this.AxisKey,this.InputAxisKey,this.bIsPureFunc,this.bIsConstFunc,this.VariableReference,this.SelfContextInfo,this.DelegatePropertyName,this.DelegateOwnerClass,this.ComponentPropertyName,this.EventReference,this.FunctionReference,this.CustomFunctionName,this.TargetType,this.MacroGraphReference,this.Enum,this.InputKey,this.bOverrideFunction,this.bInternalEvent,this.bConsumeInput,this.bExecuteWhenPaused,this.bOverrideParentBinding,this.bControl,this.bAlt,this.bShift,this.bCommand,this.CommentColor,this.bCommentBubbleVisible_InDetailsPanel,this.NodePosX,this.NodePosY,this.NodeWidth,this.NodeHeight,this.bCommentBubblePinned,this.bCommentBubbleVisible,this.NodeComment,this.AdvancedPinDisplay,this.EnabledState,this.NodeGuid,this.ErrorType,this.ErrorMsg,this.CustomProperties}getClass(){return this.Class.path}getType(){let e=this.getClass();return this.MacroGraphReference?.MacroGraph?.path?this.MacroGraphReference.MacroGraph.path:e}getObjectName(e=!1){return e?this.getNameAndCounter()[0]:this.Name}getNameAndCounter(){const e=this.getObjectName(!1).match(Re.nameRegex);let t="",i=null;return e?(e.length>1&&(t=e[1]),e.length>2&&(i=parseInt(e[2])),[t,i]):["",0]}getCounter(){return this.getNameAndCounter()[1]}getNodeWidth(){return this.NodeWidth??this.getType()==te.nodeType.comment?te.defaultCommentWidth:void 0}setNodeWidth(e){this.NodeWidth||(this.NodeWidth=new le),this.NodeWidth.value=e}getNodeHeight(){return this.NodeHeight??this.getType()==te.nodeType.comment?te.defaultCommentHeight:void 0}setNodeHeight(e){this.NodeHeight||(this.NodeHeight=new le),this.NodeHeight.value=e}getNodePosX(){return this.NodePosX?.value??0}setNodePosX(e){this.NodePosX||(this.NodePosX=new le),this.NodePosX.value=Math.round(e)}getNodePosY(){return this.NodePosY?.value??0}setNodePosY(e){this.NodePosY||(this.NodePosY=new le),this.NodePosY.value=Math.round(e)}isEvent(){switch(this.getClass()){case te.nodeType.customEvent:case te.nodeType.event:case te.nodeType.inputAxisKeyEvent:case te.nodeType.inputVectorAxisEvent:return!0}return!1}isDevelopmentOnly(){const e=this.getClass();return"DevelopmentOnly"===this.EnabledState?.toString()||e.includes("Debug",Math.max(0,e.lastIndexOf(".")))}getHIDAttribute(){return this.InputKey??this.AxisKey??this.InputAxisKey}getDelegatePin(){return this.CustomProperties?.find((e=>"delegate"===e.PinType.PinCategory))}nodeDisplayName(){switch(this.getType()){case te.nodeType.componentBoundEvent:return`${ae.formatStringName(this.DelegatePropertyName)} (${this.ComponentPropertyName})`;case te.nodeType.createDelegate:return"Create Event";case te.nodeType.customEvent:if(this.CustomFunctionName)return this.CustomFunctionName;case te.nodeType.dynamicCast:return this.TargetType?`Cast To ${this.TargetType?.getName()}`:"Bad cast node";case te.nodeType.enumLiteral:return`Literal enum ${this.Enum?.getName()}`;case te.nodeType.event:return`Event ${(this.EventReference?.MemberName??"").replace(/^Receive/,"")}`;case te.nodeType.executionSequence:return"Sequence";case te.nodeType.forEachElementInEnum:return`For Each ${this.Enum?.getName()}`;case te.nodeType.forEachLoopWithBreak:return"For Each Loop with Break";case te.nodeType.ifThenElse:return"Branch";case te.nodeType.variableGet:return"";case te.nodeType.variableSet:return"SET";case te.nodeType.switchEnum:return`Switch on ${this.Enum?.getName()??"Enum"}`}const e=this.getHIDAttribute();if(e){const t=e.toString();let i=Re.keyName(t)??ae.formatStringName(t);return this.getClass()===te.nodeType.inputDebugKey?i="Debug Key "+i:this.getClass()===te.nodeType.getInputAxisKeyValue&&(i="Get "+i),i}if(this.getClass()===te.nodeType.macro)return ae.formatStringName(this.MacroGraphReference?.getMacroName());let t=this.FunctionReference?.MemberName;if(t){const e=this.FunctionReference.MemberParent?.path??"";switch(t){case"AddKey":{let t=e.match(Re.sequencerScriptingNameRegex);if(t)return`Add Key (${ae.formatStringName(t[1])})`}break;case"LineTraceSingle":return"Line Trace By Channel";case"LineTraceSingleByProfile":return"Line Trace By Profile"}switch(e){case"/Script/Engine.KismetMathLibrary":if(t.startsWith("Conv_"))return"";if(t.startsWith("Percent_"))return"%";if(t.startsWith("EqualEqual_"))return"==";const e=t.match(/[BF]([A-Z]\w+)/);switch(e&&(t=e[1]),t){case"Abs":return"ABS";case"Exp":return"e";case"LineTraceSingle":return"Line Trace By Channel";case"Max":case"MaxInt64":return"MAX";case"Min":case"MinInt64":return"MIN"}break;case"/Script/Engine.BlueprintSetLibrary":{const e=t.match(/Set_(\w+)/);if(e)return ae.formatStringName(e[1]).toUpperCase()}break;case"/Script/Engine.BlueprintMapLibrary":{const e=t.match(/Map_(\w+)/);if(e)return ae.formatStringName(e[1]).toUpperCase()}}return ae.formatStringName(t)}return ae.formatStringName(this.getNameAndCounter()[0])}nodeColor(){switch(this.getClass()){case te.nodeType.callFunction:return this.bIsPureFunc?te.nodeColors.green:te.nodeColors.blue;case te.nodeType.inputDebugKey:case te.nodeType.inputKey:return te.nodeColors.red;case te.nodeType.createDelegate:case te.nodeType.enumLiteral:case te.nodeType.makeArray:case te.nodeType.makeMap:case te.nodeType.select:return te.nodeColors.green;case te.nodeType.executionSequence:case te.nodeType.ifThenElse:case te.nodeType.macro:case te.nodeType.multiGate:return te.nodeColors.gray;case te.nodeType.dynamicCast:return te.nodeColors.turquoise;case te.nodeType.switchEnum:return te.nodeColors.lime}return this.isEvent()?te.nodeColors.red:this.bIsPureFunc?te.nodeColors.green:te.nodeColors.blue}nodeIcon(){switch(this.getType()){case te.nodeType.addDelegate:case te.nodeType.createDelegate:return He.node;case te.nodeType.customEvent:return He.event;case te.nodeType.doN:return He.doN;case te.nodeType.doOnce:return He.doOnce;case te.nodeType.dynamicCast:return He.cast;case te.nodeType.enumLiteral:return He.enum;case te.nodeType.event:return He.event;case te.nodeType.executionSequence:case te.nodeType.multiGate:return He.sequence;case te.nodeType.forEachElementInEnum:case te.nodeType.forLoop:case te.nodeType.forLoopWithBreak:case te.nodeType.whileLoop:return He.loop;case te.nodeType.forEachLoop:case te.nodeType.forEachLoopWithBreak:return He.forEachLoop;case te.nodeType.ifThenElse:return He.branchNode;case te.nodeType.isValid:return He.questionMark;case te.nodeType.makeArray:return He.makeArray;case te.nodeType.makeMap:return He.makeMap;case te.nodeType.makeSet:return He.makeSet;case te.nodeType.select:return He.select;case te.nodeType.switchEnum:return He.switch}if(this.nodeDisplayName().startsWith("Break"))return He.breakStruct;if(this.getClass()===te.nodeType.macro)return He.macro;const e=this.getHIDAttribute()?.toString();return e?e.includes("Mouse")?He.mouse:e.includes("Gamepad_Special")?He.keyboard:e.includes("Gamepad")||e.includes("Steam")?He.gamepad:e.includes("Touch")?He.touchpad:He.keyboard:this.getDelegatePin()?He.event:He.functionSymbol}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Ve(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ie={exports:{}};"undefined"!=typeof self&&self;var _e=Ve(Ie.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){function n(e){if(!(this instanceof n))return new n(e);this._=e}var s=n.prototype;function r(e,t){for(var i=0;i<e;i++)t(i)}function a(e,t,i){return function(e,t){r(t.length,(function(i){e(t[i],i,t)}))}((function(i,n,s){t=e(t,i,n,s)}),i),t}function o(e,t){return a((function(t,i,n,s){return t.concat([e(i,n,s)])}),[],t)}function l(e,t){var i={v:0,buf:t};return r(e,(function(){var e;i={v:i.v<<1|(e=i.buf,e[0]>>7),buf:function(e){var t=a((function(e,t,i,n){return e.concat(i===n.length-1?Buffer.from([t,0]).readUInt16BE(0):n.readUInt16BE(i))}),[],e);return Buffer.from(o((function(e){return(e<<1&65535)>>8}),t))}(i.buf)}})),i}function u(){return"undefined"!=typeof Buffer}function c(){if(!u())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function h(e){c();var t=a((function(e,t){return e+t}),0,e);if(t%8!=0)throw new Error("The bits ["+e.join(", ")+"] add up to "+t+" which is not an even number of bytes; the total should be divisible by 8");var i,s=t/8,r=(i=function(e){return e>48},a((function(e,t){return e||(i(t)?t:e)}),null,e));if(r)throw new Error(r+" bit range requested exceeds 48 bit (6 byte) Number max.");return new n((function(t,i){var n=s+i;return n>t.length?S(i,s.toString()+" bytes"):E(n,a((function(e,t){var i=l(t,e.buf);return{coll:e.coll.concat(i.v),buf:i.buf}}),{coll:[],buf:t.slice(i,n)},e).coll)}))}function d(e,t){return new n((function(i,n){return c(),n+t>i.length?S(n,t+" bytes for "+e):E(n+t,i.slice(n,n+t))}))}function p(e,t){if("number"!=typeof(i=t)||Math.floor(i)!==i||t<0||t>6)throw new Error(e+" requires integer length in range [0, 6].");var i}function m(e){return p("uintBE",e),d("uintBE("+e+")",e).map((function(t){return t.readUIntBE(0,e)}))}function g(e){return p("uintLE",e),d("uintLE("+e+")",e).map((function(t){return t.readUIntLE(0,e)}))}function b(e){return p("intBE",e),d("intBE("+e+")",e).map((function(t){return t.readIntBE(0,e)}))}function y(e){return p("intLE",e),d("intLE("+e+")",e).map((function(t){return t.readIntLE(0,e)}))}function f(e){return e instanceof n}function v(e){return"[object Array]"==={}.toString.call(e)}function w(e){return u()&&Buffer.isBuffer(e)}function E(e,t){return{status:!0,index:e,value:t,furthest:-1,expected:[]}}function S(e,t){return v(t)||(t=[t]),{status:!1,index:-1,value:null,furthest:e,expected:t}}function C(e,t){if(!t)return e;if(e.furthest>t.furthest)return e;var i=e.furthest===t.furthest?function(e,t){if(function(){if(void 0!==n._supportsSet)return n._supportsSet;var e="undefined"!=typeof Set;return n._supportsSet=e,e}()&&Array.from){for(var i=new Set(e),s=0;s<t.length;s++)i.add(t[s]);var r=Array.from(i);return r.sort(),r}for(var a={},o=0;o<e.length;o++)a[e[o]]=!0;for(var l=0;l<t.length;l++)a[t[l]]=!0;var u=[];for(var c in a)({}).hasOwnProperty.call(a,c)&&u.push(c);return u.sort(),u}(e.expected,t.expected):t.expected;return{status:e.status,index:e.index,value:e.value,furthest:t.furthest,expected:i}}var x={};function P(e,t){if(w(e))return{offset:t,line:-1,column:-1};e in x||(x[e]={});for(var i=x[e],n=0,s=0,r=0,a=t;a>=0;){if(a in i){n=i[a].line,0===r&&(r=i[a].lineStart);break}("\n"===e.charAt(a)||"\r"===e.charAt(a)&&"\n"!==e.charAt(a+1))&&(s++,0===r&&(r=a+1)),a--}var o=n+s,l=t-r;return i[t]={line:o,lineStart:r},{offset:t,line:o+1,column:l+1}}function k(e){if(!f(e))throw new Error("not a parser: "+e)}function L(e,t){return"string"==typeof e?e.charAt(t):e[t]}function N(e){if("number"!=typeof e)throw new Error("not a number: "+e)}function T(e){if("function"!=typeof e)throw new Error("not a function: "+e)}function A(e){if("string"!=typeof e)throw new Error("not a string: "+e)}var M=2,D=3,B=8,$=5*B,H=4*B,z=" ";function O(e,t){return new Array(t+1).join(e)}function R(e,t,i){var n=t-e.length;return n<=0?e:O(i,n)+e}function V(e,t,i,n){return{from:e-t>0?e-t:0,to:e+i>n?n:e+i}}function I(e,t){var i,n,s,r,l,u=t.index,c=u.offset,h=1;if(c===e.length)return"Got the end of the input";if(w(e)){var d=c-c%B,p=c-d,m=V(d,$,H+B,e.length),g=o((function(e){return o((function(e){return R(e.toString(16),2,"0")}),e)}),function(e,t){var i=e.length,n=[],s=0;if(i<=t)return[e.slice()];for(var r=0;r<i;r++)n[s]||n.push([]),n[s].push(e[r]),(r+1)%t==0&&s++;return n}(e.slice(m.from,m.to).toJSON().data,B));r=function(e){return 0===e.from&&1===e.to?{from:e.from,to:e.to}:{from:e.from/B,to:Math.floor(e.to/B)}}(m),n=d/B,i=3*p,p>=4&&(i+=1),h=2,s=o((function(e){return e.length<=4?e.join(" "):e.slice(0,4).join(" ")+" "+e.slice(4).join(" ")}),g),(l=(8*(r.to>0?r.to-1:r.to)).toString(16).length)<2&&(l=2)}else{var b=e.split(/\r\n|[\n\r\u2028\u2029]/);i=u.column-1,n=u.line-1,r=V(n,M,D,b.length),s=b.slice(r.from,r.to),l=r.to.toString().length}var y=n-r.from;return w(e)&&(l=(8*(r.to>0?r.to-1:r.to)).toString(16).length)<2&&(l=2),a((function(t,n,s){var a,o=s===y,u=o?"> ":z;return a=w(e)?R((8*(r.from+s)).toString(16),l,"0"):R((r.from+s+1).toString(),l," "),[].concat(t,[u+a+" | "+n],o?[z+O(" ",l)+" | "+R("",i," ")+O("^",h)]:[])}),[],s).join("\n")}function _(e,t){return["\n","-- PARSING FAILED "+O("-",50),"\n\n",I(e,t),"\n\n",(i=t.expected,1===i.length?"Expected:\n\n"+i[0]:"Expected one of the following: \n\n"+i.join(", ")),"\n"].join("");var i}function F(e){return void 0!==e.flags?e.flags:[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.unicode?"u":"",e.sticky?"y":""].join("")}function G(){for(var e=[].slice.call(arguments),t=e.length,i=0;i<t;i+=1)k(e[i]);return n((function(i,n){for(var s,r=new Array(t),a=0;a<t;a+=1){if(!(s=C(e[a]._(i,n),s)).status)return s;r[a]=s.value,n=s.index}return C(E(n,r),s)}))}function j(){var e=[].slice.call(arguments);if(0===e.length)throw new Error("seqMap needs at least one argument");var t=e.pop();return T(t),G.apply(null,e).map((function(e){return t.apply(null,e)}))}function U(){var e=[].slice.call(arguments),t=e.length;if(0===t)return Y("zero alternates");for(var i=0;i<t;i+=1)k(e[i]);return n((function(t,i){for(var n,s=0;s<e.length;s+=1)if((n=C(e[s]._(t,i),n)).status)return n;return n}))}function K(e,t){return W(e,t).or(q([]))}function W(e,t){return k(e),k(t),j(e,t.then(e).many(),(function(e,t){return[e].concat(t)}))}function Z(e){A(e);var t="'"+e+"'";return n((function(i,n){var s=n+e.length,r=i.slice(n,s);return r===e?E(s,r):S(n,t)}))}function X(e,t){!function(e){if(!(e instanceof RegExp))throw new Error("not a regexp: "+e);for(var t=F(e),i=0;i<t.length;i++){var n=t.charAt(i);if("i"!==n&&"m"!==n&&"u"!==n&&"s"!==n)throw new Error('unsupported regexp flag "'+n+'": '+e)}}(e),arguments.length>=2?N(t):t=0;var i=function(e){return RegExp("^(?:"+e.source+")",F(e))}(e),s=""+e;return n((function(e,n){var r=i.exec(e.slice(n));if(r){if(0<=t&&t<=r.length){var a=r[0],o=r[t];return E(n+a.length,o)}return S(n,"valid match group (0 to "+r.length+") in "+s)}return S(n,s)}))}function q(e){return n((function(t,i){return E(i,e)}))}function Y(e){return n((function(t,i){return S(i,e)}))}function Q(e){if(f(e))return n((function(t,i){var n=e._(t,i);return n.index=i,n.value="",n}));if("string"==typeof e)return Q(Z(e));if(e instanceof RegExp)return Q(X(e));throw new Error("not a string, regexp, or parser: "+e)}function J(e){return k(e),n((function(t,i){var n=e._(t,i),s=t.slice(i,n.index);return n.status?S(i,'not "'+s+'"'):E(i,null)}))}function ee(e){return T(e),n((function(t,i){var n=L(t,i);return i<t.length&&e(n)?E(i+1,n):S(i,"a character/byte matching "+e)}))}function te(e,t){arguments.length<2&&(t=e,e=void 0);var i=n((function(e,n){return i._=t()._,i._(e,n)}));return e?i.desc(e):i}function ie(){return Y("fantasy-land/empty")}s.parse=function(e){if("string"!=typeof e&&!w(e))throw new Error(".parse must be called with a string or Buffer as its argument");var t,i=this.skip(ae)._(e,0);return t=i.status?{status:!0,value:i.value}:{status:!1,index:P(e,i.furthest),expected:i.expected},delete x[e],t},s.tryParse=function(e){var t=this.parse(e);if(t.status)return t.value;var i=_(e,t),n=new Error(i);throw n.type="ParsimmonError",n.result=t,n},s.assert=function(e,t){return this.chain((function(i){return e(i)?q(i):Y(t)}))},s.or=function(e){return U(this,e)},s.trim=function(e){return this.wrap(e,e)},s.wrap=function(e,t){return j(e,this,t,(function(e,t){return t}))},s.thru=function(e){return e(this)},s.then=function(e){return k(e),G(this,e).map((function(e){return e[1]}))},s.many=function(){var e=this;return n((function(t,i){for(var n=[],s=void 0;;){if(!(s=C(e._(t,i),s)).status)return C(E(i,n),s);if(i===s.index)throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause");i=s.index,n.push(s.value)}}))},s.tieWith=function(e){return A(e),this.map((function(t){if(function(e){if(!v(e))throw new Error("not an array: "+e)}(t),t.length){A(t[0]);for(var i=t[0],n=1;n<t.length;n++)A(t[n]),i+=e+t[n];return i}return""}))},s.tie=function(){return this.tieWith("")},s.times=function(e,t){var i=this;return arguments.length<2&&(t=e),N(e),N(t),n((function(n,s){for(var r=[],a=void 0,o=void 0,l=0;l<e;l+=1){if(o=C(a=i._(n,s),o),!a.status)return o;s=a.index,r.push(a.value)}for(;l<t&&(o=C(a=i._(n,s),o),a.status);l+=1)s=a.index,r.push(a.value);return C(E(s,r),o)}))},s.result=function(e){return this.map((function(){return e}))},s.atMost=function(e){return this.times(0,e)},s.atLeast=function(e){return j(this.times(e),this.many(),(function(e,t){return e.concat(t)}))},s.map=function(e){T(e);var t=this;return n((function(i,n){var s=t._(i,n);return s.status?C(E(s.index,e(s.value)),s):s}))},s.contramap=function(e){T(e);var t=this;return n((function(i,n){var s=t.parse(e(i.slice(n)));return s.status?E(n+i.length,s.value):s}))},s.promap=function(e,t){return T(e),T(t),this.contramap(e).map(t)},s.skip=function(e){return G(this,e).map((function(e){return e[0]}))},s.mark=function(){return j(ne,this,ne,(function(e,t,i){return{start:e,value:t,end:i}}))},s.node=function(e){return j(ne,this,ne,(function(t,i,n){return{name:e,value:i,start:t,end:n}}))},s.sepBy=function(e){return K(this,e)},s.sepBy1=function(e){return W(this,e)},s.lookahead=function(e){return this.skip(Q(e))},s.notFollowedBy=function(e){return this.skip(J(e))},s.desc=function(e){v(e)||(e=[e]);var t=this;return n((function(i,n){var s=t._(i,n);return s.status||(s.expected=e),s}))},s.fallback=function(e){return this.or(q(e))},s.ap=function(e){return j(e,this,(function(e,t){return e(t)}))},s.chain=function(e){var t=this;return n((function(i,n){var s=t._(i,n);return s.status?C(e(s.value)._(i,s.index),s):s}))},s.concat=s.or,s.empty=ie,s.of=q,s["fantasy-land/ap"]=s.ap,s["fantasy-land/chain"]=s.chain,s["fantasy-land/concat"]=s.concat,s["fantasy-land/empty"]=s.empty,s["fantasy-land/of"]=s.of,s["fantasy-land/map"]=s.map;var ne=n((function(e,t){return E(t,P(e,t))})),se=n((function(e,t){return t>=e.length?S(t,"any character/byte"):E(t+1,L(e,t))})),re=n((function(e,t){return E(e.length,e.slice(t))})),ae=n((function(e,t){return t<e.length?S(t,"EOF"):E(t,null)})),oe=X(/[0-9]/).desc("a digit"),le=X(/[0-9]*/).desc("optional digits"),ue=X(/[a-z]/i).desc("a letter"),ce=X(/[a-z]*/i).desc("optional letters"),he=X(/\s*/).desc("optional whitespace"),de=X(/\s+/).desc("whitespace"),pe=Z("\r"),me=Z("\n"),ge=Z("\r\n"),be=U(ge,me,pe).desc("newline"),ye=U(be,ae);n.all=re,n.alt=U,n.any=se,n.cr=pe,n.createLanguage=function(e){var t={};for(var i in e)({}).hasOwnProperty.call(e,i)&&function(i){t[i]=te((function(){return e[i](t)}))}(i);return t},n.crlf=ge,n.custom=function(e){return n(e(E,S))},n.digit=oe,n.digits=le,n.empty=ie,n.end=ye,n.eof=ae,n.fail=Y,n.formatError=_,n.index=ne,n.isParser=f,n.lazy=te,n.letter=ue,n.letters=ce,n.lf=me,n.lookahead=Q,n.makeFailure=S,n.makeSuccess=E,n.newline=be,n.noneOf=function(e){return ee((function(t){return e.indexOf(t)<0})).desc("none of '"+e+"'")},n.notFollowedBy=J,n.of=q,n.oneOf=function(e){for(var t=e.split(""),i=0;i<t.length;i++)t[i]="'"+t[i]+"'";return ee((function(t){return e.indexOf(t)>=0})).desc(t)},n.optWhitespace=he,n.Parser=n,n.range=function(e,t){return ee((function(i){return e<=i&&i<=t})).desc(e+"-"+t)},n.regex=X,n.regexp=X,n.sepBy=K,n.sepBy1=W,n.seq=G,n.seqMap=j,n.seqObj=function(){for(var e,t={},i=0,s=(e=arguments,Array.prototype.slice.call(e)),r=s.length,a=0;a<r;a+=1){var o=s[a];if(!f(o)){if(v(o)&&2===o.length&&"string"==typeof o[0]&&f(o[1])){var l=o[0];if(Object.prototype.hasOwnProperty.call(t,l))throw new Error("seqObj: duplicate key "+l);t[l]=!0,i++;continue}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(0===i)throw new Error("seqObj expects at least one named parser, found zero");return n((function(e,t){for(var i,n={},a=0;a<r;a+=1){var o,l;if(v(s[a])?(o=s[a][0],l=s[a][1]):(o=null,l=s[a]),!(i=C(l._(e,t),i)).status)return i;o&&(n[o]=i.value),t=i.index}return C(E(t,n),i)}))},n.string=Z,n.succeed=q,n.takeWhile=function(e){return T(e),n((function(t,i){for(var n=i;n<t.length&&e(L(t,n));)n++;return E(n,t.slice(i,n))}))},n.test=ee,n.whitespace=de,n["fantasy-land/empty"]=ie,n["fantasy-land/of"]=q,n.Binary={bitSeq:h,bitSeqObj:function(e){c();var t={},i=0,n=o((function(e){if(v(e)){var n=e;if(2!==n.length)throw new Error("["+n.join(", ")+"] should be length 2, got length "+n.length);if(A(n[0]),N(n[1]),Object.prototype.hasOwnProperty.call(t,n[0]))throw new Error("duplicate key in bitSeqObj: "+n[0]);return t[n[0]]=!0,i++,n}return N(e),[null,e]}),e);if(i<1)throw new Error("bitSeqObj expects at least one named pair, got ["+e.join(", ")+"]");var s=o((function(e){return e[0]}),n);return h(o((function(e){return e[1]}),n)).map((function(e){return a((function(e,t){return null!==t[0]&&(e[t[0]]=t[1]),e}),{},o((function(t,i){return[t,e[i]]}),s))}))},byte:function(e){if(c(),N(e),e>255)throw new Error("Value specified to byte constructor ("+e+"=0x"+e.toString(16)+") is larger in value than a single byte.");var t=(e>15?"0x":"0x0")+e.toString(16);return n((function(i,n){var s=L(i,n);return s===e?E(n+1,s):S(n,t)}))},buffer:function(e){return d("buffer",e).map((function(e){return Buffer.from(e)}))},encodedString:function(e,t){return d("string",t).map((function(t){return t.toString(e)}))},uintBE:m,uint8BE:m(1),uint16BE:m(2),uint32BE:m(4),uintLE:g,uint8LE:g(1),uint16LE:g(2),uint32LE:g(4),intBE:b,int8BE:b(1),int16BE:b(2),int32BE:b(4),intLE:y,int8LE:y(1),int16LE:y(2),int32LE:y(4),floatBE:d("floatBE",4).map((function(e){return e.readFloatBE(0)})),floatLE:d("floatLE",4).map((function(e){return e.readFloatLE(0)})),doubleBE:d("doubleBE",8).map((function(e){return e.readDoubleBE(0)})),doubleLE:d("doubleLE",8).map((function(e){return e.readDoubleLE(0)}))},e.exports=n}]));class Fe extends oe{static attributes={TerminalCategory:{default:"",showDefault:!1},TerminalSubCategory:{default:"",showDefault:!1},bTerminalIsConst:{default:!1,showDefault:!1},bTerminalIsWeakPointer:{default:!1,showDefault:!1},bTerminalIsUObjectWrapper:{default:!1,showDefault:!1}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e),this.TerminalCategory,this.TerminalSubCategory,this.bTerminalIsConst,this.bTerminalIsWeakPointer,this.bTerminalIsUObjectWrapper}}class Ge extends oe{static attributes={lookbehind:{default:"",showDefault:!1,ignore:!0}};static{this.cleanupAttributes(this.attributes)}constructor(e){super(e,!0),this.lookbehind}}let je=_e;class Ue{static separatedBy=(e,t,i=1)=>new RegExp(e+"(?:"+t+e+")"+(1===i?"*":2===i?"+":`{${i},}`));static Regex=class{static ByteInteger=/0*(?:25[0-5]|2[0-4]\d|1?\d?\d)(?!\d|\.)/;static HexDigit=/[0-9a-fA-F]/;static InlineOptWhitespace=/[^\S\n]*/;static InlineWhitespace=/[^\S\n]+/;static InsideString=/(?:[^"\\]|\\.)*/;static Integer=/[\-\+]?\d+(?!\d|\.)/;static MultilineWhitespace=/\s*\n\s*/;static Number=/[-\+]?\d+(?:\.\d+)?(?!\d|\.)/;static RealUnit=/\+?(?:0(?:\.\d+)?|1(?:\.0+)?)(?![\.\d])/;static Word=Ue.separatedBy("[a-zA-Z]","_");static Symbol=/[a-zA-Z_]\w*/;static DotSeparatedSymbols=Ue.separatedBy(this.Symbol.source,"\\.");static PathFragment=Ue.separatedBy(this.Symbol.source,"[\\.:]");static PathSpaceFragment=Ue.separatedBy(this.Symbol.source,"[\\.:\\ ]");static Path=new RegExp(`(?:\\/${this.PathFragment.source}){2,}`);static PathOptSpace=new RegExp(`(?:\\/${this.PathSpaceFragment.source}){2,}`)};static null=je.lazy((()=>je.regex(/\(\s*\)/).map((()=>null))));static true=je.lazy((()=>je.regex(/true/i).map((()=>!0))));static false=je.lazy((()=>je.regex(/false/i).map((()=>!1))));static boolean=je.lazy((()=>Ue.regexMap(/(true)|false/i,(e=>!!e[1]))));static number=je.lazy((()=>je.regex(Ue.Regex.Number).map(Number)));static integer=je.lazy((()=>je.regex(Ue.Regex.Integer).map(Number)));static bigInt=je.lazy((()=>je.regex(Ue.Regex.Integer).map(BigInt)));static realUnit=je.lazy((()=>je.regex(Ue.Regex.RealUnit).map(Number)));static naturalNumber=je.lazy((()=>je.regex(/\d+/).map(Number)));static byteNumber=je.lazy((()=>je.regex(Ue.Regex.ByteInteger).map(Number)));static string=je.lazy((()=>Ue.regexMap(new RegExp(`"(${Ue.Regex.InsideString.source})"`),(([e,t])=>t)).map((e=>ae.unescapeString(e)))));static colorValue=this.byteNumber;static word=je.regex(Ue.Regex.Word);static pathQuotes=Ue.regexMap(new RegExp(`"(${Ue.Regex.PathOptSpace.source}|${Ue.Regex.Symbol.source})"|'"(${Ue.Regex.PathOptSpace.source}|${Ue.Regex.Symbol.source})"'`),(([e,t,i,n])=>t??i??n));static path=Ue.regexMap(new RegExp(`(${Ue.Regex.Path.source})|"(${Ue.Regex.PathOptSpace.source})"|'"(${Ue.Regex.PathOptSpace.source})"'`),(([e,t,i,n])=>t??i??n));static symbol=je.regex(Ue.Regex.Symbol);static attributeName=je.regex(Ue.Regex.DotSeparatedSymbols);static guid=je.regex(new RegExp(`${Ue.Regex.HexDigit.source}{32}`));static commaSeparation=je.regex(/\s*,\s*(?!\))/);static equalSeparation=je.regex(/\s*=\s*/);static typeReference=je.alt(je.regex(Ue.Regex.Path),this.symbol);static hexColorChannel=je.regex(new RegExp(Ue.Regex.HexDigit.source+"{2}"));static regexMap(e,t){const i=RegExp("^(?:"+e.source+")",e.flags),n=""+e;return je(((e,s)=>{const r=i.exec(e.slice(s));return r?je.makeSuccess(s+r[0].length,t(r)):je.makeFailure(s,n)}))}static grammarFor(e,t=(e?.constructor===Object?e.type:e?.constructor),i=this.unknownValue){let n=i;if(t instanceof Array)n=je.seq(je.regex(/\(\s*/),this.grammarFor(void 0,t[0]).sepBy(this.commaSeparation),je.regex(/\s*(?:,\s*)?\)/)).map((([e,t,i])=>t));else if(t instanceof re)n=t.types.map((e=>this.grammarFor(void 0,e))).reduce(((e,t)=>t&&t!==this.unknownValue&&e!==this.unknownValue?je.alt(e,t):this.unknownValue));else if(e?.constructor===Object)n=this.grammarFor(void 0,t);else switch(t){case BigInt:n=this.bigInt;break;case Boolean:n=this.boolean;break;case ue:n=this.byteEntity;break;case he:n=this.enumEntity;break;case me:n=this.formatTextEntity;break;case ye:n=this.functionReferenceEntity;break;case ge:n=this.guidEntity;break;case fe:n=this.identifierEntity;break;case ve:n=this.integer64Entity;break;case le:n=this.integerEntity;break;case de:n=this.invariantTextEntity;break;case we:n=this.keyBindingEntity;break;case Se:n=this.linearColorEntity;break;case pe:n=this.localizedTextEntity;break;case Ce:n=this.macroGraphReferenceEntity;break;case Number:n=this.number;break;case be:n=this.objectReferenceEntity;break;case Pe:n=this.pathSymbolEntity;break;case $e:n=this.pinEntity;break;case ke:n=this.pinReferenceEntity;break;case Fe:n=this.pinTypeEntity;break;case Ee:n=this.realUnitEntity;break;case Ne:n=this.rotatorEntity;break;case Te:n=this.simpleSerializationRotatorEntity;break;case Me:n=this.simpleSerializationVector2DEntity;break;case Be:n=this.simpleSerializationVectorEntity;break;case String:n=this.string;break;case ce:n=this.symbolEntity;break;case ze:n=this.userDefinedPinEntity;break;case Oe:n=this.variableReferenceEntity;break;case Ae:n=this.vector2DEntity;break;case De:n=this.vectorEntity}return e?.constructor===Object&&(e.serialized&&t.constructor!==String&&(n=n==this.unknownValue?this.string:je.seq(je.string('"'),n,je.string('"'))),e.nullable&&(n=je.alt(n,this.null))),n}static getAttribute(e,t){let i,n;if(e instanceof re)for(let n of e.types)if(i=this.getAttribute(n,t))return i;return e instanceof oe.constructor?(i=e.attributes[t[0]],n=i?.type):e instanceof Array&&(i=e[t[0]],n=i),t.length>1?this.getAttribute(n,t.slice(1)):i}static createAttributeGrammar(e,t=this.equalSeparation){return je.seq(this.attributeName,t).chain((([t,i])=>{const n=t.split(te.keysSeparator);return this.grammarFor(this.getAttribute(e,n)).map((e=>t=>ae.objectSet(t,n,e,!0)))}))}static createEntityGrammar=(e,t=!0)=>je.seq(e.lookbehind.length?je.regex(new RegExp(`${e.lookbehind}\\s*\\(\\s*`)):je.regex(/\(\s*/),this.createAttributeGrammar(e).sepBy1(this.commaSeparation),je.regex(/\s*(?:,\s*)?\)/)).map((([e,t,i])=>{let n={};return t.forEach((e=>e(n))),n})).chain((i=>{let n,s=Object.keys(i);if(Object.keys(e.attributes).filter((t=>e.attributes[t].expected)).find((e=>!s.includes(e)&&(n=e))))return je.fail("Missing key "+n);const r=Object.keys(i).filter((t=>!(t in e.attributes))).length;return!t&&r>0?je.fail("Too many unknown keys"):je.succeed(new e(i))}));static byteEntity=je.lazy((()=>this.byteNumber.map((e=>new ue(e)))));static enumEntity=je.lazy((()=>this.symbol.map((e=>new he(e)))));static formatTextEntity=je.lazy((()=>je.seq(je.regex(new RegExp(`${me.lookbehind}\\s*`)),this.grammarFor(me.attributes.value))));static functionReferenceEntity=je.lazy((()=>this.createEntityGrammar(ye)));static guidEntity=je.lazy((()=>this.guid.map((e=>new ge(e)))));static identifierEntity=je.lazy((()=>this.symbol.map((e=>new fe(e)))));static integer64Entity=je.lazy((()=>this.bigInt.map((e=>new ve(e)))));static integerEntity=je.lazy((()=>this.integer.map((e=>new le(e)))));static invariantTextEntity=je.lazy((()=>je.alt(je.seq(je.regex(new RegExp(`${de.lookbehind}\\s*\\(`)),this.grammarFor(de.attributes.value),je.regex(/\s*\)/)).map((([e,t,i])=>t)),je.regex(new RegExp(de.lookbehind)).map((()=>""))).map((e=>new de(e)))));static keyBindingEntity=je.lazy((()=>je.alt(this.identifierEntity.map((e=>new we({Key:e}))),this.createEntityGrammar(we))));static linearColorEntity=je.lazy((()=>this.createEntityGrammar(Se,!1)));static localizedTextEntity=je.lazy((()=>Ue.regexMap(new RegExp(String.raw`${pe.lookbehind}\s*\(`+String.raw`\s*"(${Ue.Regex.InsideString.source})"\s*,`+String.raw`\s*"(${Ue.Regex.InsideString.source})"\s*,`+String.raw`\s*"(${Ue.Regex.InsideString.source})"\s*`+String.raw`(?:,\s+)?`+String.raw`\)`),(e=>new pe({namespace:e[1],key:e[2],value:e[3]})))));static macroGraphReferenceEntity=je.lazy((()=>this.createEntityGrammar(Ce)));static naturalNumberEntity=je.lazy((()=>this.naturalNumber.map((e=>new xe(e)))));static noneReferenceEntity=je.lazy((()=>je.string("None").map((()=>new be({type:"None",path:""})))));static typeReferenceEntity=je.lazy((()=>this.typeReference.map((e=>new be({type:e,path:""})))));static pathReferenceEntity=je.lazy((()=>this.path.map((e=>new be({type:"",path:e})))));static fullReferenceEntity=je.lazy((()=>je.seq(this.typeReference,je.optWhitespace,this.pathQuotes).map((([e,t,i])=>new be({type:e,path:i})))));static objectReferenceEntity=je.lazy((()=>je.alt(this.noneReferenceEntity,this.fullReferenceEntity,this.pathReferenceEntity,this.typeReferenceEntity)));static pathSymbolEntity=je.lazy((()=>this.symbol.map((e=>new Pe(e)))));static pinEntity=je.lazy((()=>this.createEntityGrammar($e)));static pinReferenceEntity=je.lazy((()=>je.seq(this.pathSymbolEntity,je.whitespace,this.guidEntity).map((([e,t,i])=>new ke({objectName:e,pinGuid:i})))));static pinTypeEntity=je.lazy((()=>this.createEntityGrammar(Fe)));static realUnitEntity=je.lazy((()=>this.realUnit.map((e=>new Ee(e)))));static rotatorEntity=je.lazy((()=>this.createEntityGrammar(Ne,!1)));static simpleSerializationRotatorEntity=je.lazy((()=>je.seq(this.number,this.commaSeparation,this.number,this.commaSeparation,this.number).map((([e,t,i,n,s])=>new Te({R:s,P:e,Y:i})))));static simpleSerializationVector2DEntity=je.lazy((()=>je.seq(this.number,this.commaSeparation,this.number).map((([e,t,i])=>new Me({X:e,Y:i})))));static simpleSerializationVectorEntity=je.lazy((()=>je.seq(this.number,this.commaSeparation,this.number,this.commaSeparation,this.number).map((([e,t,i,n,s])=>new Be({X:e,Y:i,Z:s})))));static symbolEntity=je.lazy((()=>this.symbol.map((e=>new ce(e)))));static userDefinedPinEntity=je.lazy((()=>this.createEntityGrammar(ze)));static variableReferenceEntity=je.lazy((()=>this.createEntityGrammar(Oe)));static vector2DEntity=je.lazy((()=>this.createEntityGrammar(Ae,!1)));static vectorEntity=je.lazy((()=>this.createEntityGrammar(De,!1)));static unknownKeysEntity=je.lazy((()=>je.seq(this.regexMap(new RegExp(`(${this.Regex.Symbol.source}\\s*)?\\(\\s*`),(e=>e[1]??"")),this.attributeName.skip(this.equalSeparation).chain((e=>this.unknownValue.map((t=>i=>i[e]=t)))).sepBy1(this.commaSeparation),je.regex(/\s*(?:,\s*)?\)/)).map((([e,t,i])=>{let n={};return t.forEach((e=>e(n))),e.length&&(n.lookbehind=e),new Ge(n)}))));static unknownValue=je.lazy((()=>je.alt(this.boolean,this.guidEntity,this.noneReferenceEntity,this.null,this.number,this.string,this.localizedTextEntity,this.invariantTextEntity,this.formatTextEntity,this.pinReferenceEntity,this.vectorEntity,this.linearColorEntity,this.vector2DEntity,this.objectReferenceEntity,this.unknownKeysEntity,this.symbol,this.grammarFor(void 0,[ke]))));static customProperty=je.lazy((()=>je.seq(je.regex(/CustomProperties\s+/),this.grammarFor(void 0,Re.attributes.CustomProperties.type[0])).map((([e,t])=>e=>{e.CustomProperties||(e.CustomProperties=[]),e.CustomProperties.push(t)}))));static inlinedArrayEntry=je.lazy((()=>je.seq(this.symbol,this.regexMap(new RegExp("\\s*\\(\\s*(\\d+)\\s*\\)\\s*\\=\\s*"),(e=>e[1]))).chain((([e,t])=>this.grammarFor(Re.attributes[e]).map((t=>i=>(i[e]??=[]).push(t)))))));static objectEntity=je.lazy((()=>je.seq(je.regex(/Begin\s+Object/),je.seq(je.whitespace,je.alt(this.customProperty,this.createAttributeGrammar(Re),this.inlinedArrayEntry)).map((([e,t])=>t)).many(),je.regex(/\s+End\s+Object/)).map((([e,t,i])=>{let n={};return t.forEach((e=>e(n))),new Re(n)}))));static multipleObject=je.lazy((()=>je.seq(je.optWhitespace,this.objectEntity,je.seq(je.whitespace,this.objectEntity).map((([e,t])=>t)).many(),je.optWhitespace).map((([e,t,i,n])=>[t,...i]))));static linearColorFromHex=je.lazy((()=>Ue.regexMap(new RegExp(`#(${Ue.Regex.HexDigit.source}{2})(${Ue.Regex.HexDigit.source}{2})(${Ue.Regex.HexDigit.source}{2})(${this.Regex.HexDigit.source}{2})?`),(e=>[e[1],e[2],e[3],e[4]??"FF"])).map((([e,t,i,n])=>new Se({R:parseInt(e,16)/255,G:parseInt(t,16)/255,B:parseInt(i,16)/255,A:parseInt(n,16)/255})))));static linearColorRGBList=je.lazy((()=>je.seq(this.byteNumber,this.commaSeparation,this.byteNumber,this.commaSeparation,this.byteNumber).map((([e,t,i,n,s])=>new Se({R:e/255,G:i/255,B:s/255,A:1})))));static linearColorRGBAList=je.lazy((()=>je.seq(this.byteNumber,this.commaSeparation,this.byteNumber,this.commaSeparation,this.byteNumber,this.commaSeparation,this.byteNumber).map((([e,t,i,n,s,r,a])=>new Se({R:e/255,G:i/255,B:s/255,A:a})))));static linearColorRGB=je.lazy((()=>je.seq(je.regex(/rgb\s*\(\s*/),this.linearColorRGBList,je.regex(/\s*\)/)).map((([e,t,i])=>t))));static linearColorRGBA=je.lazy((()=>je.seq(je.regex(/rgba\s*\(\s*/),this.linearColorRGBAList,je.regex(/\s*\)/)).map((([e,t,i])=>t))));static linearColorFromAnyFormat=je.lazy((()=>je.alt(this.linearColorFromHex,this.linearColorRGBA,this.linearColorRGB,this.linearColorRGBList)))}class Ke{static bracketsWrapped=(e,t)=>`(${e})`;static same=e=>e;constructor(e,t=Ke.same,i="",n=",",s=!1,r="=",a=(e=>e)){this.entityType=e,this.wrap=t,this.attributePrefix=i,this.attributeSeparator=n,this.trailingSeparator=s,this.attributeValueConjunctionSign=r,this.attributeKeyPrinter=a}read(e){return this.doRead(e)}write(e,t=!1){return this.doWrite(e,t)}doRead(e){const t=Ue.grammarFor(void 0,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}doWrite(e,t,i=this.wrap,n=this.attributePrefix,s=this.attributeSeparator,r=this.trailingSeparator,a=this.attributeValueConjunctionSign,o=this.attributeKeyPrinter){let l="";const u=e.constructor.attributes??{},c=ae.mergeArrays(Object.keys(u),Object.keys(e));let h=!0;for(const i of c){const r=e[i];if(void 0!==r&&this.showProperty(e,i)){const c=ae.isSerialized(e,i);if(h?h=!1:l+=s,u[i]?.inlined){l+=this.doWrite(r,t,Ke.same,n,s,!1,a,u[i].type instanceof Array?e=>o(`${i}(${e})`):e=>o(`${i}.${e}`));continue}l+=n+o(i)+this.attributeValueConjunctionSign+(c?`"${this.doWriteValue(r,!0)}"`:this.doWriteValue(r,t))}}return r&&l.length&&(l+=this.attributeSeparator),i(l,e.constructor)}doWriteValue(e,t){const i=ae.getType(e),n=se.getSerializer(i);if(!n)throw new Error(`Unknown value type "${i.name}", a serializer must be registered in the SerializerFactory class, check initializeSerializerFactory.js`);return n.doWrite(e,t)}showProperty(e,t){const i=this.entityType.attributes[t],n=e[t];return i?.constructor!==Object||!i.ignored&&(!ae.equals(i.value,n)||i.showDefault)}}class We extends Ke{constructor(){super(Re,void 0," ","\n",!1)}showProperty(e,t){switch(t){case"Class":case"Name":case"CustomProperties":return!1}return super.showProperty(e,t)}doRead(e){const t=Ue.objectEntity.parse(e);if(!t.status)throw new Error("Error when trying to parse the object.");return t.value}readMultiple(e){const t=Ue.multipleObject.parse(e);if(!t.status)throw new Error("Error when trying to parse the object.");return t.value}doWrite(e,t,i=this.wrap,n=this.attributePrefix,s=this.attributeSeparator,r=this.trailingSeparator,a=this.attributeValueConjunctionSign,o=this.attributeKeyPrinter){if(!(e instanceof Re))return super.doWrite(e,t);return`Begin Object Class=${e.Class.path} Name=${this.doWriteValue(e.Name,t)}\n`+super.doWrite(e,t)+e.CustomProperties.map((e=>this.attributeSeparator+this.attributePrefix+"CustomProperties "+se.getSerializer($e).write(e))).join("")+"\nEnd Object\n"}}class Ze extends ie{static#u=new We;#c;constructor(e,t,i={}){i.listenOnFocus??=!0,i.unlistenOnTextEdit??=!0,super(e,t,i);let n=this;this.#c=e=>n.copied()}listenEvents(){window.addEventListener("copy",this.#c)}unlistenEvents(){window.removeEventListener("copy",this.#c)}getSerializedText(){return this.blueprint.getNodes(!0).map((e=>Ze.#u.write(e.entity,!1))).join("")}copied(){const e=this.getSerializedText();navigator.clipboard.writeText(e)}}class Xe{element;get blueprint(){return this.element.blueprint}#h=[];get inputObjects(){return this.#h}initialize(e){this.element=e}createInputObjects(){return[]}getInputObject(e){return this.inputObjects.find((t=>t.constructor==e))}setup(){this.#h.forEach((e=>e.setup()))}cleanup(){this.#h.forEach((e=>e.cleanup()))}willUpdate(e){}update(e){}render(){return $``}firstUpdated(e){}updated(e){}inputSetup(){this.#h=this.createInputObjects()}}class qe extends ie{#d;constructor(e,t,i={}){i.activateAnyKey??=!1,i.activationKeys??=[],i.consumeEvent??=!0,i.listenOnFocus??=!0,i.unlistenOnTextEdit??=!0,i.activationKeys instanceof Array||(i.activationKeys=[i.activationKeys]),i.activationKeys=i.activationKeys.map((e=>{if(e instanceof we)return e;if("string"==typeof e){const t=Ue.keyBindingEntity.parse(e);if(t.status)return t.value}throw new Error("Unexpected key value")})),super(e,t,i),this.#d=this.options.activationKeys??[];let n=this;this.keyDownHandler=e=>{(this.options.activateAnyKey||n.#d.some((t=>(e=>e.bShift||"LeftShift"==e.Key||"RightShift"==e.Key)(t)==e.shiftKey&&(e=>e.bCtrl||"LeftControl"==e.Key||"RightControl"==e.Key)(t)==e.ctrlKey&&(e=>e.bAlt||"LeftAlt"==e.Key||"RightAlt"==e.Key)(t)==e.altKey&&te.Keys[t.Key]==e.code)))&&(i.consumeEvent&&(e.preventDefault(),e.stopImmediatePropagation()),n.fire(),document.removeEventListener("keydown",n.keyDownHandler),document.addEventListener("keyup",n.keyUpHandler))},this.keyUpHandler=e=>{(this.options.activateAnyKey||n.#d.some((t=>t.bShift&&"Shift"==e.key||t.bCtrl&&"Control"==e.key||t.bAlt&&"Alt"==e.key||t.bCmd&&"Meta"==e.key||te.Keys[t.Key]==e.code)))&&(i.consumeEvent&&e.stopImmediatePropagation(),n.unfire(),document.removeEventListener("keyup",this.keyUpHandler),document.addEventListener("keydown",this.keyDownHandler))}}listenEvents(){document.addEventListener("keydown",this.keyDownHandler)}unlistenEvents(){document.removeEventListener("keydown",this.keyDownHandler)}fire(){}unfire(){}}class Ye extends qe{constructor(e,t,i={}){i.activationKeys=te.deleteNodesKeyboardKey,super(e,t,i)}fire(){this.blueprint.removeGraphElement(...this.blueprint.getNodes(!0))}}class Qe extends ie{constructor(e,t,i={}){i.ignoreTranslateCompensate??=!1,i.ignoreScale??=!1,i.movementSpace??=t.getGridDOMElement()??document.documentElement,super(e,t,i),this.movementSpace=i.movementSpace}locationFromEvent(e){const t=ae.convertLocation([e.clientX,e.clientY],this.movementSpace,this.options.ignoreScale);return this.options.ignoreTranslateCompensate?t:this.blueprint.compensateTranslation(t[0],t[1])}}class Je extends Qe{#p=e=>{e.preventDefault();const t=this.locationFromEvent(e);this.wheel(Math.sign(e.deltaY*te.mouseWheelFactor),t)};#m=e=>e.preventDefault();constructor(e,t,i={}){i.listenOnFocus=!0,i.strictTarget??=!1,super(e,t,i),this.strictTarget=i.strictTarget}listenEvents(){this.movementSpace.addEventListener("wheel",this.#p,!1),this.movementSpace.parentElement?.addEventListener("wheel",this.#m)}unlistenEvents(){this.movementSpace.removeEventListener("wheel",this.#p,!1),this.movementSpace.parentElement?.removeEventListener("wheel",this.#m)}wheel(e,t){}}class et extends Je{#g=!1;get enableZoonIn(){return this.#g}set enableZoonIn(e){e!=this.#g&&(this.#g=e)}wheel(e,t){let i=this.blueprint.getZoom();e=-e,!this.enableZoonIn&&0==i&&e>0||(i+=e,this.blueprint.setZoom(i,t))}}class tt extends qe{#b;constructor(e,t,i={}){i.activationKeys=te.enableZoomIn,super(e,t,i)}fire(){this.#b=this.blueprint.getInputObject(et),this.#b.enableZoonIn=!0}unfire(){this.#b.enableZoonIn=!1}}class it extends qe{constructor(e,t,i={}){i.activationKeys=te.selectAllKeyboardKey,super(e,t,i)}fire(){this.blueprint.selectAll()}}class nt extends J{#y=[];#t;get blueprint(){return this.#t}set blueprint(e){this.#t=e}#f;get entity(){return this.#f}set entity(e){this.#f=e}#v;get template(){return this.#v}isInitialized=!1;isSetup=!1;inputObjects=[];initialize(e,t){this.requestUpdate(),this.#f=e,this.#v=t,this.#v.initialize(this),this.isConnected&&this.updateComplete.then((()=>this.setup())),this.isInitialized=!0}connectedCallback(){super.connectedCallback(),this.blueprint=this.closest("ueb-blueprint"),this.isInitialized&&(this.requestUpdate(),this.updateComplete.then((()=>this.setup())))}disconnectedCallback(){super.disconnectedCallback(),this.isSetup&&this.updateComplete.then((()=>this.cleanup())),this.acknowledgeDelete()}createRenderRoot(){return this}shouldUpdate(e){return this.isInitialized&&this.isConnected}setup(){this.template.setup(),this.isSetup=!0}cleanup(){this.template.cleanup(),this.isSetup=!1}willUpdate(e){super.willUpdate(e),this.template.willUpdate(e)}update(e){super.update(e),this.template.update(e)}render(){return this.template.render()}firstUpdated(e){super.firstUpdated(e),this.template.firstUpdated(e),this.template.inputSetup()}updated(e){super.updated(e),this.template.updated(e);for(const t of this.#y)t(e);this.#y=[]}addNextUpdatedCallbacks(e,t=!1){this.#y.push(e),t&&this.requestUpdate()}acknowledgeDelete(){let e=new CustomEvent(te.removeEventName);this.dispatchEvent(e)}isSameGraph(e){return this.blueprint&&this.blueprint==e?.blueprint}getInputObject(e){return this.template.inputObjects.find((t=>t.constructor==e))}}class st extends nt{static properties={...super.properties,locationX:{type:Number,attribute:!1},locationY:{type:Number,attribute:!1},sizeX:{type:Number,attribute:!1},sizeY:{type:Number,attribute:!1}};static dragEventName=te.dragEventName;static dragGeneralEventName=te.dragGeneralEventName;constructor(){super(),this.locationX=0,this.locationY=0,this.sizeX=0,this.sizeY=0}computeSizes(){const e=this.getBoundingClientRect();this.sizeX=this.blueprint.scaleCorrect(e.width),this.sizeY=this.blueprint.scaleCorrect(e.height)}firstUpdated(e){super.firstUpdated(e),this.computeSizes()}setLocation(e,t,i=!0){const n=e-this.locationX,s=t-this.locationY;if(this.locationX=e,this.locationY=t,this.blueprint&&i){const e=new CustomEvent(this.constructor.dragEventName,{detail:{value:[n,s]},bubbles:!1,cancelable:!0});this.dispatchEvent(e)}}addLocation(e,t,i=!0){this.setLocation(this.locationX+e,this.locationY+t,i)}acknowledgeDrag(e){const t=new CustomEvent(this.constructor.dragGeneralEventName,{detail:{value:e},bubbles:!0,cancelable:!0});this.dispatchEvent(t)}snapToGrid(){const e=ae.snapToGrid(this.locationX,this.locationY,te.gridSize);this.locationX==e[0]&&this.locationY==e[1]||this.setLocation(e[0],e[1])}topBoundary(e=!1){return this.template.topBoundary(e)}rightBoundary(e=!1){return this.template.rightBoundary(e)}bottomBoundary(e=!1){return this.template.bottomBoundary(e)}leftBoundary(e=!1){return this.template.leftBoundary(e)}}class rt extends Qe{#w=e=>{if(this.blueprint.setFocused(!0),e.button===this.options.clickButton)this.options.strictTarget&&e.target!=e.currentTarget||(this.options.consumeEvent&&e.stopImmediatePropagation(),this.#E.addEventListener("mousemove",this.#S),document.addEventListener("mouseup",this.#C),this.clickedPosition=this.locationFromEvent(e),this.blueprint.mousePosition[0]=this.clickedPosition[0],this.blueprint.mousePosition[1]=this.clickedPosition[1],this.target instanceof st&&(this.clickedOffset=[this.clickedPosition[0]-this.target.locationX,this.clickedPosition[1]-this.target.locationY]),this.clicked(this.clickedPosition));else this.options.exitAnyButton||this.#C(e)};#S=e=>{this.options.consumeEvent&&e.stopImmediatePropagation(),this.#E.removeEventListener("mousemove",this.#S),this.#E.addEventListener("mousemove",this.#x);const t=this.getEvent(te.trackingMouseEventName.begin);this.#P=0==this.target.dispatchEvent(t);const i=this.locationFromEvent(e);this.lastLocation=ae.snapToGrid(this.clickedPosition[0],this.clickedPosition[1],this.stepSize),this.startDrag(i),this.started=!0};#x=e=>{this.options.consumeEvent&&e.stopImmediatePropagation();const t=this.locationFromEvent(e),i=[e.movementX,e.movementY];if(this.dragTo(t,i),this.#P&&(this.blueprint.mousePosition=t),this.options.scrollGraphEdge){const e=Math.sqrt(i[0]*i[0]+i[1]*i[1]),n=this.blueprint.scaleCorrect(te.edgeScrollThreshold),s=this.blueprint.template.gridLeftVisibilityBoundary()+n,r=this.blueprint.template.gridRightVisibilityBoundary()-n;let a=0;t[0]<s?a=t[0]-s:t[0]>r&&(a=t[0]-r);const o=this.blueprint.template.gridTopVisibilityBoundary()+n,l=this.blueprint.template.gridBottomVisibilityBoundary()-n;let u=0;t[1]<o?u=t[1]-o:t[1]>l&&(u=t[1]-l),a=ae.clamp(this.blueprint.scaleCorrectReverse(a)**3*e*.6,-20,20),u=ae.clamp(this.blueprint.scaleCorrectReverse(u)**3*e*.6,-20,20),this.blueprint.scrollDelta(a,u)}};#C=e=>{if(!this.options.exitAnyButton||e.button==this.options.clickButton){if(this.options.consumeEvent&&e.stopImmediatePropagation(),this.#E.removeEventListener("mousemove",this.#S),this.#E.removeEventListener("mousemove",this.#x),document.removeEventListener("mouseup",this.#C),this.started&&this.endDrag(),this.unclicked(),this.#P){const e=this.getEvent(te.trackingMouseEventName.end);this.target.dispatchEvent(e),this.#P=!1}this.started=!1}};#P=!1;#E;#k;clickedOffset=[0,0];clickedPosition=[0,0];lastLocation=[0,0];started=!1;stepSize=1;constructor(e,t,i={}){i.clickButton??=0,i.consumeEvent??=!0,i.draggableElement??=e,i.exitAnyButton??=!0,i.moveEverywhere??=!1,i.movementSpace??=t?.getGridDOMElement(),i.repositionOnClick??=!1,i.scrollGraphEdge??=!1,i.strictTarget??=!1,super(e,t,i),this.stepSize=parseInt(i?.stepSize??te.gridSize),this.#E=this.options.moveEverywhere?document.documentElement:this.movementSpace,this.#k=this.options.draggableElement,this.listenEvents()}listenEvents(){super.listenEvents(),this.#k.addEventListener("mousedown",this.#w),2==this.options.clickButton&&this.#k.addEventListener("contextmenu",(e=>e.preventDefault()))}unlistenEvents(){super.unlistenEvents(),this.#k.removeEventListener("mousedown",this.#w)}getEvent(e){return new CustomEvent(e,{detail:{tracker:this},bubbles:!0,cancelable:!0})}clicked(e){}startDrag(e){}dragTo(e,t){}endDrag(){}unclicked(e){}}class at extends rt{startDrag(){this.blueprint.scrolling=!0}dragTo(e,t){this.blueprint.scrollDelta(-t[0],-t[1])}endDrag(){this.blueprint.scrolling=!1}}class ot extends Qe{#L=null;#N=e=>{e.preventDefault(),this.blueprint.mousePosition=this.locationFromEvent(e)};#T=e=>{this.#L||(e.preventDefault(),this.#L=e.detail.tracker,this.unlistenMouseMove())};#A=e=>{this.#L==e.detail.tracker&&(e.preventDefault(),this.#L=null,this.listenMouseMove())};constructor(e,t,i={}){i.listenOnFocus=!0,super(e,t,i)}listenMouseMove(){this.target.addEventListener("mousemove",this.#N)}unlistenMouseMove(){this.target.removeEventListener("mousemove",this.#N)}listenEvents(){this.listenMouseMove(),this.blueprint.addEventListener(te.trackingMouseEventName.begin,this.#T),this.blueprint.addEventListener(te.trackingMouseEventName.end,this.#A)}unlistenEvents(){this.unlistenMouseMove(),this.blueprint.removeEventListener(te.trackingMouseEventName.begin,this.#T),this.blueprint.removeEventListener(te.trackingMouseEventName.end,this.#A)}}class lt{static#M=new Map;static registerElement(e,t){lt.#M.set(e,t)}static getConstructor(e){return lt.#M.get(e)}}class ut extends ie{static#u=new We;#D;constructor(e,t,i={}){i.listenOnFocus??=!0,i.unlistenOnTextEdit??=!0,super(e,t,i);let n=this;this.#D=e=>n.pasted(e.clipboardData.getData("Text"))}listenEvents(){window.addEventListener("paste",this.#D)}unlistenEvents(){window.removeEventListener("paste",this.#D)}pasted(e){let t=0,i=0,n=0,s=ut.#u.readMultiple(e).map((e=>{let s=lt.getConstructor("ueb-node").newObject(e);return t+=s.locationY,i+=s.locationX,++n,s}));t/=n,i/=n,s.length>0&&this.blueprint.unselectAll();let r=this.blueprint.mousePosition;return s.forEach((e=>{e.addLocation(r[0]-i,r[1]-t),e.snapToGrid(),e.setSelected(!0)})),this.blueprint.addGraphElement(...s),!0}}class ct extends rt{constructor(e,t,i={}){i.scrollGraphEdge??=!0,super(e,t,i),this.selectorElement=this.blueprint.template.selectorElement}startDrag(){this.selectorElement.beginSelect(this.clickedPosition)}dragTo(e,t){this.selectorElement.selectTo(e)}endDrag(){this.started&&this.selectorElement.endSelect()}unclicked(){this.started||this.blueprint.unselectAll()}}class ht extends ie{#B=e=>this.clickedSomewhere(e.target);constructor(e,t,i={}){i.listenOnFocus=!0,super(e,t,i),this.blueprint.focus&&document.addEventListener("click",this.#B)}clickedSomewhere(e){e.closest("ueb-blueprint")||this.blueprint.setFocused(!1)}listenEvents(){document.addEventListener("click",this.#B)}unlistenEvents(){document.removeEventListener("click",this.#B)}}class dt extends Xe{static styleVariables={"--ueb-font-size":`${te.fontSize}`,"--ueb-grid-axis-line-color":`${te.gridAxisLineColor}`,"--ueb-grid-expand":`${te.expandGridSize}px`,"--ueb-grid-line-color":`${te.gridLineColor}`,"--ueb-grid-line-width":`${te.gridLineWidth}px`,"--ueb-grid-set-line-color":`${te.gridSetLineColor}`,"--ueb-grid-set":`${te.gridSet}`,"--ueb-grid-size":`${te.gridSize}px`,"--ueb-link-min-width":`${te.linkMinWidth}`,"--ueb-node-radius":`${te.nodeRadius}px`};#$=new ResizeObserver((e=>{const t=e.find((e=>e.target===this.viewportElement))?.devicePixelContentBoxSize?.[0];t&&(this.viewportSize[0]=t.inlineSize,this.viewportSize[1]=t.blockSize)}));headerElement;overlayElement;viewportElement;selectorElement;gridElement;linksContainerElement;nodesContainerElement;viewportSize=[0,0];initialize(e){super.initialize(e),this.element.style.cssText=Object.entries(dt.styleVariables).map((([e,t])=>`${e}:${t};`)).join("")}setup(){super.setup(),this.#$.observe(this.viewportElement,{box:"device-pixel-content-box"});const e=this.viewportElement.getBoundingClientRect();this.viewportSize[0]=e.width,this.viewportSize[1]=e.height,this.blueprint.nodes.length>0&&(this.blueprint.requestUpdate(),this.blueprint.updateComplete.then((()=>this.centerContentInViewport())))}cleanup(){super.cleanup(),this.#$.unobserve(this.viewportElement)}createInputObjects(){return[...super.createInputObjects(),new Ze(this.element.getGridDOMElement(),this.element),new ut(this.element.getGridDOMElement(),this.element),new Ye(this.element.getGridDOMElement(),this.element),new it(this.element.getGridDOMElement(),this.element),new et(this.element.getGridDOMElement(),this.element),new ct(this.element.getGridDOMElement(),this.element,{clickButton:0,exitAnyButton:!0,moveEverywhere:!0}),new at(this.element.getGridDOMElement(),this.element,{clickButton:2,exitAnyButton:!1,moveEverywhere:!0}),new ht(this.element.getGridDOMElement(),this.element),new ot(this.element.getGridDOMElement(),this.element),new tt(this.element.getGridDOMElement(),this.element)]}render(){return $`<div class="ueb-viewport-header"><div class="ueb-viewport-zoom">Zoom ${0==this.element.zoom?"1:1":(this.element.zoom>0?"+":"")+this.element.zoom}</div></div><div class="ueb-viewport-overlay"></div><div class="ueb-viewport-body"><div class="ueb-grid" style="--ueb-additional-x:${Math.round(this.element.translateX)}--ueb-additional-y:${Math.round(this.element.translateY)}--ueb-translate-x:${Math.round(this.element.translateX)}--ueb-translate-y:${Math.round(this.element.translateY)}"><div class="ueb-grid-content"><div data-links></div><div data-nodes></div><ueb-selector></ueb-selector></div></div></div>`}firstUpdated(e){super.firstUpdated(e),this.headerElement=this.element.querySelector(".ueb-viewport-header"),this.overlayElement=this.element.querySelector(".ueb-viewport-overlay"),this.viewportElement=this.element.querySelector(".ueb-viewport-body"),this.selectorElement=this.element.querySelector("ueb-selector"),this.gridElement=this.viewportElement.querySelector(".ueb-grid"),this.linksContainerElement=this.element.querySelector("[data-links]"),this.linksContainerElement.append(...this.element.getLinks()),this.nodesContainerElement=this.element.querySelector("[data-nodes]"),this.nodesContainerElement.append(...this.element.getNodes()),this.viewportElement.scroll(te.expandGridSize,te.expandGridSize)}willUpdate(e){super.willUpdate(e),this.headerElement&&e.has("zoom")&&(this.headerElement.classList.add("ueb-zoom-changed"),this.headerElement.addEventListener("animationend",(()=>this.headerElement.classList.remove("ueb-zoom-changed"))))}updated(e){if(super.updated(e),(e.has("scrollX")||e.has("scrollY"))&&this.viewportElement.scroll(this.element.scrollX,this.element.scrollY),e.has("zoom")){this.element.style.setProperty("--ueb-scale",this.blueprint.getScale());const t=e.get("zoom"),i=Math.min(t,this.element.zoom),n=Math.max(t,this.element.zoom),s=ae.range(i,n),r=e=>`ueb-zoom-${e}`;t<this.element.zoom?(this.element.classList.remove(...s.filter((e=>e<0)).map(r)),this.element.classList.add(...s.filter((e=>e>0)).map(r))):(this.element.classList.remove(...s.filter((e=>e>0)).map(r)),this.element.classList.add(...s.filter((e=>e<0)).map(r)))}}getCommentNodes(e=!1){return this.element.querySelectorAll(`ueb-node[data-type="${te.nodeType.comment}"]${e?'[data-selected="true"]':""}`)}getPin(e){return this.element.querySelector(`ueb-node[data-name="${e.objectName}"] ueb-pin[data-id="${e.pinGuid}"]`)}getCopyInputObject(){return this.getInputObject(Ze)}isPointVisible(e,t){return!1}gridTopVisibilityBoundary(){return this.blueprint.scaleCorrect(this.blueprint.scrollY)-this.blueprint.translateY}gridRightVisibilityBoundary(){return this.blueprint,this.gridLeftVisibilityBoundary()+this.blueprint.scaleCorrect(this.viewportSize[0])}gridBottomVisibilityBoundary(){return this.gridTopVisibilityBoundary()+this.blueprint.scaleCorrect(this.viewportSize[1])}gridLeftVisibilityBoundary(){return this.blueprint.scaleCorrect(this.blueprint.scrollX)-this.blueprint.translateX}centerViewport(e=0,t=0,i=!0){const n=this.gridLeftVisibilityBoundary()+this.blueprint.scaleCorrect(this.viewportSize[0]/2),s=this.gridTopVisibilityBoundary()+this.blueprint.scaleCorrect(this.viewportSize[1]/2);this.blueprint.scrollDelta(this.blueprint.scaleCorrectReverse(e-n),this.blueprint.scaleCorrectReverse(t-s),i)}centerContentInViewport(e=!0){let t=0,i=0;const n=this.blueprint.getNodes();for(const e of n)t+=e.leftBoundary()+e.rightBoundary(),i+=e.topBoundary()+e.bottomBoundary();t=n.length>0?Math.round(t/(2*n.length)):0,i=n.length>0?Math.round(i/(2*n.length)):0,this.centerViewport(t,i,e)}}class pt extends nt{static properties={...super.properties,fromX:{type:Number,attribute:!1},fromY:{type:Number,attribute:!1},toX:{type:Number,attribute:!1},toY:{type:Number,attribute:!1}};constructor(){super(),this.fromX=0,this.fromY=0,this.toX=0,this.toY=0}setBothLocations([e,t]){this.fromX=e,this.fromY=t,this.toX=e,this.toY=t}addSourceLocation(e,t){this.fromX+=e,this.fromY+=t}addDestinationLocation(e,t){this.toX+=e,this.toY+=t}}class mt extends Xe{update(e){super.update(e);const[t,i,n,s]=[Math.round(this.element.fromX),Math.round(this.element.fromY),Math.round(this.element.toX),Math.round(this.element.toY)],[r,a,o,l]=[Math.min(t,n),Math.min(i,s),Math.abs(t-n),Math.abs(i-s)];(e.has("fromX")||e.has("toX"))&&(this.element.style.left=`${r}px`,this.element.style.width=`${o}px`),(e.has("fromY")||e.has("toY"))&&(this.element.style.top=`${a}px`,this.element.style.height=`${l}px`)}}class gt extends Re{constructor(e={},t){super(e,!0),this.Class=new be("/Script/BlueprintGraph.K2Node_Knot"),this.Name="K2Node_Knot";const i=new $e({PinName:"InputPin"},!0),n=new $e({PinName:"OutputPin",Direction:"EGPD_Output"},!0);t&&(i.copyTypeFrom(t),n.copyTypeFrom(t)),this.CustomProperties=[i,n]}}class bt extends Qe{static ignoreDbClick=e=>{};#H=e=>{this.options.strictTarget&&e.target!==e.currentTarget||(this.options.consumeEvent&&e.stopImmediatePropagation(),this.clickedPosition=this.locationFromEvent(e),this.blueprint.mousePosition[0]=this.clickedPosition[0],this.blueprint.mousePosition[1]=this.clickedPosition[1],this.dbclicked(this.clickedPosition))};#z;get onDbClick(){return this.#z}set onDbClick(e){this.#z=e}clickedPosition=[0,0];constructor(e,t,i={},n=bt.ignoreDbClick){i.consumeEvent??=!0,i.strictTarget??=!1,super(e,t,i),this.#z=n,this.listenEvents()}listenEvents(){this.target.addEventListener("dblclick",this.#H)}unlistenEvents(){this.target.removeEventListener("dblclick",this.#H)}dbclicked(e){this.onDbClick(e)}}class yt extends mt{static decreasingValue(e,t){const i=-e*t[0]**2,n=t[1]-i/t[0];return e=>i/e+n}static clampedLine(e,t){if(e[0]>t[0]){const i=e;e=t,t=i}const i=(t[1]-e[1])/(t[0]-e[0]),n=e[1]-i*e[0];return s=>s<e[0]?e[1]:s>t[0]?t[1]:i*s+n}static c1DecreasingValue=yt.decreasingValue(-.15,[100,15]);static c2DecreasingValue=yt.decreasingValue(-.05,[500,130]);static c2Clamped=yt.clampedLine([0,80],[200,40]);#O=`ueb-id-${Math.floor(1e12*Math.random())}`;#R=e=>{const t=new gt({},this.element.sourcePin.entity),i=lt.getConstructor("ueb-node").newObject(t);i.setLocation(...this.blueprint.snapToGrid(...e));const n=i.template;this.blueprint.addGraphElement(i);const s=this.element.getInputPin(),r=this.element.getOutputPin();this.element.sourcePin=null,this.element.destinationPin=null;const a=lt.getConstructor("ueb-link").newObject(r,n.inputPin);this.blueprint.addGraphElement(a),this.element.sourcePin=n.outputPin,this.element.destinationPin=s};createInputObjects(){return[...super.createInputObjects(),new bt(this.element.querySelector(".ueb-link-area"),this.blueprint,void 0,(e=>{e[0]+=te.knotOffset[0],e[1]+=te.knotOffset[1],this.#R(e)}))]}willUpdate(e){super.willUpdate(e);const t=this.element.sourcePin,i=this.element.destinationPin;if(e.has("fromX")||e.has("toX")){const e=this.element.fromX,n=this.element.toX,s=t?.nodeElement.getType()==te.nodeType.knot,r=i?.nodeElement.getType()==te.nodeType.knot;!s||i&&!r||(t?.isInput()&&n>e+te.distanceThreshold?this.element.sourcePin=t.nodeElement.template.outputPin:t?.isOutput()&&n<e-te.distanceThreshold&&(this.element.sourcePin=t.nodeElement.template.inputPin)),!r||t&&!s||(i?.isInput()&&n<e-te.distanceThreshold?this.element.destinationPin=i.nodeElement.template.outputPin:i?.isOutput()&&n>e+te.distanceThreshold&&(this.element.destinationPin=i.nodeElement.template.inputPin))}const n=Math.max(Math.abs(this.element.fromX-this.element.toX),1),s=Math.max(Math.abs(this.element.fromY-this.element.toY),1),r=Math.max(n,te.linkMinWidth),a=n/r,o=this.element.originatesFromInput?this.element.fromX<this.element.toX:this.element.toX<this.element.fromX;this.element.startPixels=n<r?(r-n)/2:0,this.element.startPercentage=o?this.element.startPixels+100*a:this.element.startPixels;const l=this.element.startPercentage+(o?yt.c1DecreasingValue(r):10)*a,u=s/Math.max(30,n),c=yt.c2Clamped(n)*ae.sigmoidPositive(1.2*a+.5*u,1.5,1.8)+this.element.startPercentage;this.element.svgPathD=te.linkRightSVGPath(this.element.startPercentage,l,c)}update(e){super.update(e),e.has("originatesFromInput")&&this.element.style.setProperty("--ueb-from-input",this.element.originatesFromInput?"1":"0");const t=this.element.sourcePin??this.element.destinationPin;t&&this.element.style.setProperty("--ueb-link-color-rgb",ae.printLinearColor(t.color)),this.element.style.setProperty("--ueb-y-reflected",""+(this.element.fromY>this.element.toY?1:0)),this.element.style.setProperty("--ueb-start-percentage",`${Math.round(this.element.startPercentage)}%`),this.element.style.setProperty("--ueb-link-start",`${Math.round(this.element.startPixels)}`)}render(){return $`<svg version="1.2" baseProfile="tiny" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="none"><g class="ueb-link-area"><path id="${this.#O}" fill="none" vector-effect="non-scaling-stroke" d="${this.element.svgPathD}"/><use href="#${this.#O}" pointer-events="stroke" stroke-width="20"/></g></svg> ${this.element.linkMessageIcon||this.element.linkMessageText?$`<div class="ueb-link-message">${this.element.linkMessageIcon!==z?$`<span class="ueb-link-message-icon">${this.element.linkMessageIcon}</span>`:z} ${this.element.linkMessageText!==z?$`<span class="ueb-link-message-text">${this.element.linkMessageText}</span>`:z}</div>`:z}`}}class ft extends pt{static properties={...super.properties,source:{type:String,reflect:!0},destination:{type:String,reflect:!0},dragging:{type:Boolean,attribute:"data-dragging",converter:ae.booleanConverter,reflect:!0},originatesFromInput:{type:Boolean,attribute:!1},svgPathD:{type:String,attribute:!1},linkMessageIcon:{type:String,attribute:!1},linkMessageText:{type:String,attribute:!1}};#V;get sourcePin(){return this.#V}set sourcePin(e){this.#I(e,!1)}#_;get destinationPin(){return this.#_}set destinationPin(e){this.#I(e,!0)}#F=()=>this.remove();#G=e=>this.addSourceLocation(...e.detail.value);#j=e=>this.addDestinationLocation(...e.detail.value);#U=e=>this.setSourceLocation();#K=e=>this.setDestinationLocation();linkMessageIcon=z;linkMessageText=z;pathElement;constructor(){super(),this.source=null,this.destination=null,this.dragging=!1,this.originatesFromInput=!1,this.startPercentage=0,this.svgPathD="",this.startPixels=0}static newObject(e,t){const i=new ft;return i.initialize(e,t),i}initialize(e,t){super.initialize({},new yt),e&&(this.sourcePin=e,t||(this.toX=this.fromX,this.toY=this.fromY)),t&&(this.destinationPin=t,e||(this.fromX=this.toX,this.fromY=this.toY))}#I(e,t){const i=()=>t?this.destinationPin:this.sourcePin;if(i()!=e){if(i()){const e=i().getNodeElement();e.removeEventListener(te.removeEventName,this.#F),e.removeEventListener(te.nodeDragEventName,t?this.#j:this.#G),e.removeEventListener(te.nodeReflowEventName,t?this.#K:this.#U),this.#W()}if(t?this.#_=e:this.#V=e,i()){const e=i().getNodeElement();e.addEventListener(te.removeEventName,this.#F),e.addEventListener(te.nodeDragEventName,t?this.#j:this.#G),e.addEventListener(te.nodeReflowEventName,t?this.#K:this.#U),t?this.setDestinationLocation():(this.setSourceLocation(),this.originatesFromInput=this.sourcePin.isInput()),this.#Z()}}}#Z(){this.sourcePin&&this.destinationPin&&(this.sourcePin.linkTo(this.destinationPin),this.destinationPin.linkTo(this.sourcePin))}#W(){this.sourcePin&&this.destinationPin&&(this.sourcePin.unlinkFrom(this.destinationPin,!1),this.destinationPin.unlinkFrom(this.sourcePin,!1))}cleanup(){super.cleanup(),this.#W(),this.sourcePin=null,this.destinationPin=null}setSourceLocation(e=null,t=!0){if(null==e){const i=this;if(t&&(!this.hasUpdated||!this.sourcePin.hasUpdated))return void Promise.all([this.updateComplete,this.sourcePin.updateComplete]).then((()=>i.setSourceLocation(null,!1)));e=this.sourcePin.template.getLinkLocation()}const[i,n]=e;this.fromX=i,this.fromY=n}setDestinationLocation(e=null,t=!0){if(null==e){const i=this;if(t&&(!this.hasUpdated||!this.destinationPin.hasUpdated))return void Promise.all([this.updateComplete,this.destinationPin.updateComplete]).then((()=>i.setDestinationLocation(null,!1)));e=this.destinationPin.template.getLinkLocation()}this.toX=e[0],this.toY=e[1]}getInputPin(){return this.sourcePin?.isInput()?this.sourcePin:this.destinationPin}setInputPin(e){this.sourcePin?.isInput()&&(this.sourcePin=e),this.destinationPin=e}getOutputPin(){return this.destinationPin?.isOutput()?this.destinationPin:this.sourcePin}setOutputPin(e){this.destinationPin?.isOutput()&&(this.destinationPin=e),this.sourcePin=e}startDragging(){this.dragging=!0}finishDragging(){this.dragging=!1}removeMessage(){this.linkMessageIcon=z,this.linkMessageText=z}setMessageConvertType(){this.linkMessageIcon="ueb-icon-conver-type",this.linkMessageText=`Convert ${this.sourcePin.pinType} to ${this.destinationPin.pinType}.`}setMessageCorrect(){this.linkMessageIcon=He.correct,this.linkMessageText=z}setMessageReplace(){this.linkMessageIcon=He.correct,this.linkMessageText=z}setMessageDirectionsIncompatible(){this.linkMessageIcon=He.reject,this.linkMessageText=$`Directions are not compatbile.`}setMessagePlaceNode(){this.linkMessageIcon="ueb-icon-place-node",this.linkMessageText=$`Place a new node.`}setMessageReplaceLink(){this.linkMessageIcon=He.correct,this.linkMessageText=$`Replace existing input connections.`}setMessageReplaceOutputLink(){this.linkMessageIcon=He.correct,this.linkMessageText=$`Replace existing output connections.`}setMessageSameNode(){this.linkMessageIcon=He.reject,this.linkMessageText=$`Both are on the same node.`}setMEssagetypesIncompatible(){this.linkMessageIcon=He.reject,this.linkMessageText=$`${this.sourcePin.pinType} is not compatible with ${this.destinationPin.pinType}.`}}class vt extends rt{clicked(e){this.options.repositionOnClick&&(this.target.setLocation(...this.stepSize>1?ae.snapToGrid(e[0],e[1],this.stepSize):e),this.clickedOffset=[0,0])}dragTo(e,t){const i=[this.target.locationX??this.lastLocation[0],this.target.locationY??this.lastLocation[1]],[n,s]=this.stepSize>1?[ae.snapToGrid(e[0],e[1],this.stepSize),ae.snapToGrid(i[0],i[1],this.stepSize)]:[e,i];0==(t=[n[0]-this.lastLocation[0],n[1]-this.lastLocation[1]])[0]&&0==t[1]||(t[0]+=s[0]-i[0],t[1]+=s[1]-i[1],this.dragAction(n,t),this.lastLocation=n)}dragAction(e,t){this.target.setLocation(e[0]-this.clickedOffset[0],e[1]-this.clickedOffset[1])}}class wt extends vt{#X;#q;#Y;#Q;constructor(e,t,i={}){super(e,t,i),i.onClicked&&(this.#X=i.onClicked),i.onStartDrag&&(this.#q=i.onStartDrag),i.onDrag&&(this.#Y=i.onDrag),i.onEndDrag&&(this.#Q=i.onEndDrag)}clicked(e){super.clicked(e),this.#X?.()}startDrag(){super.startDrag(),this.#q?.()}dragAction(e,t){this.#Y?.(e,t)}endDrag(){super.endDrag(),this.#Q?.()}}class Et extends Xe{getDraggableElement(){return this.element}createDraggableObject(){return new vt(this.element,this.blueprint,{draggableElement:this.getDraggableElement()})}createInputObjects(){return[...super.createInputObjects(),this.createDraggableObject()]}topBoundary(e=!1){return this.element.locationY}rightBoundary(e=!1){return this.element.locationX+this.element.sizeX}bottomBoundary(e=!1){return this.element.locationY+this.element.sizeY}leftBoundary(e=!1){return this.element.locationX}centerInViewport(){const e=Math.min(this.blueprint.template.viewportSize[0]/10,this.blueprint.template.viewportSize[1]/10),t=this.leftBoundary()-this.blueprint.template.gridLeftVisibilityBoundary(),i=this.blueprint.template.gridRightVisibilityBoundary()-this.rightBoundary();let n=Math.max((t+i)/2,e);const s=this.topBoundary()-this.blueprint.template.gridTopVisibilityBoundary(),r=this.blueprint.template.gridBottomVisibilityBoundary()-this.bottomBoundary();let a=Math.max((s+r)/2,e);this.blueprint.scrollDelta(t-n,s-a,!0)}}class St extends Et{update(e){super.update(e),e.has("locationX")&&(this.element.style.left=`${this.element.locationX}px`),e.has("locationY")&&(this.element.style.top=`${this.element.locationY}px`)}}class Ct extends vt{startDrag(){this.target.selected||(this.blueprint.unselectAll(),this.target.setSelected(!0))}dragAction(e,t){this.target.acknowledgeDrag(t)}unclicked(){this.started?(this.blueprint.getNodes(!0).forEach((e=>e.boundComments.filter((t=>!e.isInsideComment(t))).forEach((t=>e.unbindFromComment(t))))),this.blueprint.getCommentNodes().forEach((e=>e.template.manageNodesBind()))):(this.blueprint.unselectAll(),this.target.setSelected(!0))}}class xt extends St{getDraggableElement(){return this.element}createDraggableObject(){return new Ct(this.element,this.blueprint,{draggableElement:this.getDraggableElement(),scrollGraphEdge:!0})}firstUpdated(e){super.firstUpdated(e),this.element.selected&&!this.element.listeningDrag&&this.element.setSelected(!0)}}class Pt extends xt{#J=!1;static nodeStyleClasses=["ueb-node-style-default"];toggleAdvancedDisplayHandler=()=>{this.element.toggleShowAdvancedPinDisplay(),this.element.addNextUpdatedCallbacks((()=>this.element.acknowledgeReflow()),!0)};initialize(e){super.initialize(e),this.element.classList.add(...this.constructor.nodeStyleClasses),this.element.style.setProperty("--ueb-node-color",this.getColor().cssText)}getColor(){return this.element.entity.nodeColor()}render(){return $`<div class="ueb-node-border"><div class="ueb-node-wrapper"><div class="ueb-node-top">${this.renderTop()}</div><div class="ueb-node-content"><div class="ueb-node-inputs"></div><div class="ueb-node-outputs"></div></div>${this.element.entity.isDevelopmentOnly()?$`<div class="ueb-node-developmentonly"><span class="ueb-node-developmentonly-text">Development Only</span></div>`:z} ${this.element.advancedPinDisplay?$`<div class="ueb-node-expansion" @click="${this.toggleAdvancedDisplayHandler}">${He.expandIcon}</div>`:z}</div></div>`}renderNodeIcon(){return this.element.entity.nodeIcon()}renderNodeName(){return this.element.getNodeDisplayName()}renderTop(){const e=this.renderNodeIcon(),t=this.renderNodeName();return $`<div class="ueb-node-name">${e?$`<div class="ueb-node-name-symbol">${e}</div>`:z} ${t?$`<div class="ueb-node-name-text ueb-ellipsis-nowrap-text">${t} ${this.#J&&this.getTargetType().length>0?$`<div class="ueb-node-subtitle-text ueb-ellipsis-nowrap-text">Target is ${ae.formatStringName(this.getTargetType())}</div>`:z}</div>`:z}</div>`}firstUpdated(e){super.firstUpdated(e),this.setupPins(),this.element.updateComplete.then((()=>this.element.acknowledgeReflow()))}setupPins(){const e=this.element.querySelector(".ueb-node-inputs"),t=this.element.querySelector(".ueb-node-outputs");this.element.nodeNameElement=this.element.querySelector(".ueb-node-name-text");let i=!1,n=!1;this.element.getPinElements().forEach((s=>{s.isInput()?(e.appendChild(s),i=!0):s.isOutput()&&(t.appendChild(s),n=!0)})),i&&this.element.classList.add("ueb-node-has-inputs"),n&&this.element.classList.add("ueb-node-has-outputs")}createPinElements(){return this.element.getPinEntities().filter((e=>!e.isHidden())).map((e=>(this.#J=this.#J||"self"===e.PinName&&"Target"===e.getDisplayName(),lt.getConstructor("ueb-pin").newObject(e,void 0,this.element))))}getTargetType(){return this.element.entity.FunctionReference?.MemberParent?.getName()??"Untitled"}getPinElements(e){return e.querySelectorAll("ueb-pin")}linksChanged(){}}class kt extends Pt{#ee=document.createElement("div");#te=document.createElement("div");#ie=document.createElement("div");#ne=document.createElement("div");#se=document.createElement("div");#re=document.createElement("div");#ae=document.createElement("div");#oe=document.createElement("div");initialize(e){super.initialize(e),this.element.classList.add("ueb-resizeable"),this.#ee.classList.add("ueb-resizeable-top"),this.#te.classList.add("ueb-resizeable-right"),this.#ie.classList.add("ueb-resizeable-bottom"),this.#ne.classList.add("ueb-resizeable-left"),this.#se.classList.add("ueb-resizeable-top-right"),this.#re.classList.add("ueb-resizeable-bottom-right"),this.#ae.classList.add("ueb-resizeable-bottom-left"),this.#oe.classList.add("ueb-resizeable-top-left")}update(e){super.update(e),this.element.sizeX>=0&&e.has("sizeX")&&(this.element.style.width=`${this.element.sizeX}px`),this.element.sizeY>=0&&e.has("sizeY")&&(this.element.style.height=`${this.element.sizeY}px`)}firstUpdated(e){super.firstUpdated(e),this.element.append(this.#ee,this.#te,this.#ie,this.#ne,this.#se,this.#re,this.#ae,this.#oe)}createInputObjects(){return[...super.createInputObjects(),new wt(this.#ee,this.blueprint,{onDrag:(e,t)=>{t[1]=e[1]-this.element.topBoundary(),this.setSizeY(this.element.sizeY-t[1])&&this.element.addLocation(0,t[1],!1)},onEndDrag:()=>this.endResize()}),new wt(this.#te,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.rightBoundary(),this.setSizeX(this.element.sizeX+t[0])},onEndDrag:()=>this.endResize()}),new wt(this.#ie,this.blueprint,{onDrag:(e,t)=>{t[1]=e[1]-this.element.bottomBoundary(),this.setSizeY(this.element.sizeY+t[1])},onEndDrag:()=>this.endResize()}),new wt(this.#ne,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.leftBoundary(),this.setSizeX(this.element.sizeX-t[0])&&this.element.addLocation(t[0],0,!1)},onEndDrag:()=>this.endResize()}),new wt(this.#se,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.rightBoundary(),t[1]=e[1]-this.element.topBoundary(),this.setSizeX(this.element.sizeX+t[0]),this.setSizeY(this.element.sizeY-t[1])&&this.element.addLocation(0,t[1],!1)},onEndDrag:()=>this.endResize()}),new wt(this.#re,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.rightBoundary(),t[1]=e[1]-this.element.bottomBoundary(),this.setSizeX(this.element.sizeX+t[0]),this.setSizeY(this.element.sizeY+t[1])},onEndDrag:()=>this.endResize()}),new wt(this.#ae,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.leftBoundary(),t[1]=e[1]-this.element.bottomBoundary(),this.setSizeX(this.element.sizeX-t[0])&&this.element.addLocation(t[0],0,!1),this.setSizeY(this.element.sizeY+t[1])},onEndDrag:()=>this.endResize()}),new wt(this.#oe,this.blueprint,{onDrag:(e,t)=>{t[0]=e[0]-this.element.leftBoundary(),t[1]=e[1]-this.element.topBoundary(),this.setSizeX(this.element.sizeX-t[0])&&this.element.addLocation(t[0],0,!1),this.setSizeY(this.element.sizeY-t[1])&&this.element.addLocation(0,t[1],!1)},onEndDrag:()=>this.endResize()})]}setSizeX(e){return this.element.setNodeWidth(e),!0}setSizeY(e){return this.element.setNodeHeight(e),!0}endResize(){}}class Lt extends kt{#le=Se.getWhite();#ue=0;initialize(e){e.entity.CommentColor&&(this.#le.setFromRGBANumber(e.entity.CommentColor.toNumber()),this.#le.setFromHSVA(this.#le.H.value,this.#le.S.value,.67*Math.pow(this.#le.V.value,.45))),e.classList.add("ueb-node-style-comment","ueb-node-resizeable"),e.sizeX=25*te.gridSize,e.sizeY=6*te.gridSize,super.initialize(e)}getColor(){return r`${Math.round(255*this.#le.R.value)}${Math.round(255*this.#le.G.value)}${Math.round(255*this.#le.B.value)}`}getDraggableElement(){return this.element.querySelector(".ueb-node-top")}render(){return $`<div class="ueb-node-border"><div class="ueb-node-wrapper"><div class="ueb-node-top">${this.element.entity.NodeComment}</div></div></div>`}firstUpdated(e){super.firstUpdated(e);const t=this.getDraggableElement().getBoundingClientRect();this.#ue=t.height}manageNodesBind(){let e=this.blueprint.getNodes();for(let t of e)t.topBoundary()>=this.element.topBoundary()&&t.rightBoundary()<=this.element.rightBoundary()&&t.bottomBoundary()<=this.element.bottomBoundary()&&t.leftBoundary()>=this.element.leftBoundary()?t.bindToComment(this.element):t.unbindFromComment(this.element)}setSizeX(e){return(e=Math.round(e))>=te.gridSet*te.gridSize&&(this.element.setNodeWidth(e),!0)}setSizeY(e){return(e=Math.round(e))>=3*te.gridSize&&(this.element.setNodeHeight(e),!0)}endResize(){this.manageNodesBind()}topBoundary(e=!1){return this.element.locationY}rightBoundary(e=!1){return this.element.locationX+this.element.sizeX}bottomBoundary(e=!1){return e?this.element.locationY+this.#ue:super.bottomBoundary()}leftBoundary(e=!1){return this.element.locationX}}class Nt extends rt{#ce;#he=null;#de=e=>{if(!this.enteredPin){this.linkValid=!1,this.enteredPin=e.target;const t=this.link.sourcePin??this.target,i=this.enteredPin,n=t.isOutput()?t:i;t.nodeElement.getType()===te.nodeType.knot||i.nodeElement.getType()===te.nodeType.knot?(this.link.setMessageCorrect(),this.linkValid=!0):t.getNodeElement()===i.getNodeElement()?this.link.setMessageSameNode():t.isOutput()===i.isOutput()?this.link.setMessageDirectionsIncompatible():this.blueprint.getLinks(t,i).length?(this.link.setMessageReplaceLink(),this.linkValid=!0):"exec"===n.entity.getType()&&n.isLinked?(this.link.setMessageReplaceOutputLink(),this.linkValid=!0):(this.link.setMessageCorrect(),this.linkValid=!0)}};#pe=e=>{this.enteredPin==e.target&&(this.enteredPin=null,this.linkValid=!1,this.link?.setMessagePlaceNode())};link;enteredPin;linkValid=!1;constructor(e,t,i={}){i.scrollGraphEdge??=!0,super(e,t,i)}startDrag(e){this.target.nodeElement.getType()==te.nodeType.knot&&(this.#he=this.target),this.link=lt.getConstructor("ueb-link").newObject(this.target,null),this.blueprint.template.linksContainerElement.prepend(this.link),this.link.setMessagePlaceNode(),this.#ce=this.blueprint.querySelectorAll("ueb-pin"),this.#ce.forEach((e=>{e!=this.target&&(e.addEventListener("mouseenter",this.#de),e.addEventListener("mouseleave",this.#pe))})),this.link.startDragging(),this.link.setDestinationLocation(e)}dragTo(e,t){this.link.setDestinationLocation(e)}endDrag(){if(this.#ce.forEach((e=>{e.removeEventListener("mouseenter",this.#de),e.removeEventListener("mouseleave",this.#pe)})),this.enteredPin&&this.linkValid){if(this.#he){const e=this.#he!==this.link.sourcePin?this.link.sourcePin:this.enteredPin;if(this.#he.isInput()&&e.isInput()||this.#he.isOutput()&&e.isOutput()){const e=this.#he.template.getOppositePin();this.#he===this.link.sourcePin?this.link.sourcePin=e:this.enteredPin=e}}else this.enteredPin.nodeElement.getType()===te.nodeType.knot&&(this.enteredPin=this.enteredPin.template.getOppositePin());this.blueprint.addGraphElement(this.link),this.link.destinationPin=this.enteredPin,this.link.removeMessage(),this.link.finishDragging()}else this.link.finishDragging(),this.link.remove();this.enteredPin=null,this.link=null,this.#ce=null}}class Tt extends Pt{#me=!1;#ge=!1;#be="";static nodeStyleClasses=["ueb-node-style-glass"];initialize(e){super.initialize(e),this.#be=this.element.getNodeDisplayName()}render(){return $`<div class="ueb-node-border"><div class="ueb-node-wrapper">${this.#be?$`<div class="ueb-node-top"><div class="ueb-node-name"><span class="ueb-node-name-text ueb-ellipsis-nowrap-text">${this.#be}</span></div></div>`:z}<div class="ueb-node-content">${this.#me?$`<div class="ueb-node-inputs"></div>`:z} ${this.#ge?$`<div class="ueb-node-outputs"></div>`:z}</div></div></div>`}createPinElements(){return this.element.getPinEntities().filter((e=>!e.isHidden())).map((e=>{this.#me||=e.isInput(),this.#ge||=e.isOutput();return lt.getConstructor("ueb-pin").newObject(e,void 0,this.element)}))}}class At extends Tt{static nodeStyleClasses=[...super.nodeStyleClasses,"ueb-node-style-conversion"]}class Mt extends Tt{static nodeStyleClasses=[...super.nodeStyleClasses,"ueb-node-style-operation"]}class Dt extends Xe{static canWrapInput=!0;#ye;get iconElement(){return this.#ye}#fe;get wrapperElement(){return this.#fe}isNameRendered=!0;setup(){super.setup(),this.element.nodeElement=this.element.closest("ueb-node");const e=this.element.nodeElement.template;(e instanceof At||e instanceof Mt)&&(this.isNameRendered=!1,this.element.requestUpdate())}createInputObjects(){return[new Nt(this.element,this.blueprint,{moveEverywhere:!0,draggableElement:this.#fe})]}render(){const e=$`<div class="ueb-pin-icon">${this.renderIcon()}</div>`,t=$`<div class="ueb-pin-content">${this.isNameRendered?this.renderName():z} ${this.element.isInput()&&!this.element.entity.bDefaultValueIsIgnored?this.renderInput():$``}</div>`;return $`<div class="ueb-pin-wrapper">${this.element.isInput()?$`${e}${t}`:$`${t}${e}`}</div>`}renderIcon(){switch(this.element.entity.PinType.ContainerType.toString()){case"Array":return He.array;case"Set":return He.set;case"Map":return He.map}return"delegate"===this.element.entity.PinType.PinCategory.toLocaleLowerCase()?He.delegate:He.genericPin}renderName(){return $`<span class="ueb-pin-name">${this.element.getPinDisplayName()}</span>`}renderInput(){return $``}updated(e){if(super.updated(e),this.element.isInput()&&e.has("isLinked")){const e=this.element.nodeElement;e.addNextUpdatedCallbacks((()=>e.acknowledgeReflow())),e.requestUpdate()}}firstUpdated(e){super.firstUpdated(e),this.element.style.setProperty("--ueb-pin-color-rgb",this.element.entity.pinColor().cssText),this.#ye=this.element.querySelector(".ueb-pin-icon svg")??this.element,this.#fe=this.element.querySelector(".ueb-pin-wrapper")}getLinkLocation(){const e=this.iconElement.getBoundingClientRect(),t=[this.element.isInput()?e.left:e.right,(e.top+e.bottom)/2],i=ae.convertLocation(t,this.blueprint.template.gridElement);return this.blueprint.compensateTranslation(i[0],i[1])}getClickableElement(){return this.#fe??this.element}}class Bt extends Dt{render(){return $`<div class="ueb-pin-wrapper"><div class="ueb-pin-icon">${this.renderIcon()}</div></div>`}}class $t extends Pt{static nodeStyleClasses=[...super.nodeStyleClasses,"ueb-node-style-event"];firstUpdated(e){super.firstUpdated(e),this.element.querySelector(".ueb-node-top").appendChild(this.createDelegatePinElement())}renderTop(){const e=this.renderNodeIcon(),t=this.renderNodeName(),i=this.element.getType()===te.nodeType.customEvent&&(this.element.entity.CustomFunctionName||this.element.entity.FunctionReference.MemberParent);return $`<div class="ueb-node-name">${e?$`<div class="ueb-node-name-symbol">${e}</div>`:z} ${t?$`<div class="ueb-node-name-text ueb-ellipsis-nowrap-text">${t} ${i?$`<div class="ueb-node-subtitle-text ueb-ellipsis-nowrap-text">Custom Event</div>`:z}</div>`:z}</div>`}createDelegatePinElement(){const e=lt.getConstructor("ueb-pin").newObject(this.element.getPinEntities().find((e=>!e.isHidden()&&"delegate"===e.PinType.PinCategory)),new Bt,this.element);return e.template.isNameRendered=!1,e}createPinElements(){return this.element.getPinEntities().filter((e=>!e.isHidden()&&"delegate"!==e.PinType.PinCategory)).map((e=>lt.getConstructor("ueb-pin").newObject(e,void 0,this.element)))}}class Ht extends st{static properties={...super.properties,selected:{type:Boolean,attribute:"data-selected",reflect:!0,converter:ae.booleanConverter}};dragHandler=e=>this.addLocation(...e.detail.value);constructor(){super(),this.selected=!1,this.listeningDrag=!1}setup(){super.setup(),this.setSelected(this.selected)}cleanup(){super.cleanup(),this.blueprint.removeEventListener(te.nodeDragGeneralEventName,this.dragHandler)}setSelected(e=!0){this.selected=e,this.blueprint&&(this.selected?(this.listeningDrag=!0,this.blueprint.addEventListener(te.nodeDragGeneralEventName,this.dragHandler)):(this.blueprint.removeEventListener(te.nodeDragGeneralEventName,this.dragHandler),this.listeningDrag=!1))}}class zt extends Bt{render(){return this.element.isOutput()?super.render():$``}getOppositePin(){const e=this.element.nodeElement.template;return this.element.isOutput()?e.inputPin:e.outputPin}getLinkLocation(){const e=(this.element.isInput()?this.element.nodeElement.template.outputPin.template:this).iconElement.getBoundingClientRect(),t=[this.element.isInput()?e.left:e.right,(e.top+e.bottom)/2],i=ae.convertLocation(t,this.blueprint.template.gridElement);return this.blueprint.compensateTranslation(i[0],i[1])}}class Ot extends Pt{static#ve=new Set;#we=null;#Ee;get inputPin(){return this.#Ee}#Se;get outputPin(){return this.#Se}initialize(e){super.initialize(e),this.element.classList.add("ueb-node-style-minimal")}findDirectionaPin(e){if(e.nodeElement.getType()!==te.nodeType.knot||Ot.#ve.has(e))return Ot.#ve.clear(),!0;Ot.#ve.add(e);for(let t of e.getLinks().map((e=>this.blueprint.getPin(e))))if(this.findDirectionaPin(t))return!0;return!1}render(){return $`<div class="ueb-node-border"></div>`}setupPins(){this.element.getPinElements().forEach((e=>this.element.querySelector(".ueb-node-border").appendChild(e)))}getPinElements(e){return e.querySelectorAll("ueb-pin")}createPinElements(){const e=this.element.getPinEntities().filter((e=>!e.isHidden())),t=e[e[0].isInput()?0:1],i=e[e[0].isOutput()?0:1],n=lt.getConstructor("ueb-pin");return[this.#Ee=n.newObject(t,new zt,this.element),this.#Se=n.newObject(i,new zt,this.element)]}linksChanged(){}}class Rt extends Tt{initialize(e){super.initialize(e),e.getType()===te.nodeType.variableGet?this.element.classList.add("ueb-node-style-getter"):e.getType()===te.nodeType.variableSet&&this.element.classList.add("ueb-node-style-setter")}setupPins(){super.setupPins();let e=this.element.getPinElements().find((e=>!e.entity.isHidden()&&!e.entity.isExecution()));this.element.style.setProperty("--ueb-node-color",e.getColor().cssText)}}class Vt extends Ht{static properties={...Ht.properties,typePath:{type:String,attribute:"data-type",reflect:!0},nodeName:{type:String,attribute:"data-name",reflect:!0},advancedPinDisplay:{type:String,attribute:"data-advanced-display",converter:fe.attributeConverter,reflect:!0},enabledState:{type:String,attribute:"data-enabled-state",reflect:!0},nodeDisplayName:{type:String,attribute:!1},pureFunction:{type:Boolean,converter:ae.booleanConverter,attribute:"data-pure-function",reflect:!0}};static dragEventName=te.nodeDragEventName;static dragGeneralEventName=te.nodeDragGeneralEventName;get blueprint(){return super.blueprint}set blueprint(e){super.blueprint=e,this.#Ce.forEach((t=>t.blueprint=e))}#xe;get nodeNameElement(){return this.#xe}set nodeNameElement(e){this.#xe=e}#Ce=[];boundComments=[];#Pe=!1;#ke=e=>{this.selected||this.#Pe||(this.#Pe=!0,this.addNextUpdatedCallbacks((()=>this.#Pe=!1)),this.addLocation(...e.detail.value))};static getTypeTemplate(e){if(e.getClass()===te.nodeType.callFunction||e.getClass()===te.nodeType.commutativeAssociativeBinaryOperator||e.getClass()===te.nodeType.callArrayFunction){const t=e.FunctionReference.MemberParent?.path??"";if("/Script/Engine.KismetMathLibrary"===t||"/Script/Engine.KismetArrayLibrary"===t){if(e.FunctionReference.MemberName?.startsWith("Conv_"))return At;if(e.FunctionReference.MemberName?.startsWith("Percent_"))return Mt;switch(e.FunctionReference.MemberName){case"Array_Add":case"Array_Identical":case"Abs":case"Array_Add":case"BMax":case"BMin":case"Exp":case"FMax":case"FMin":case"Max":case"MaxInt64":case"Min":case"MinInt64":return Mt}}if("/Script/Engine.BlueprintSetLibrary"===t)return Mt;if("/Script/Engine.BlueprintMapLibrary"===t)return Mt}switch(e.getClass()){case te.nodeType.comment:return Lt;case te.nodeType.createDelegate:return Pt;case te.nodeType.promotableOperator:return Mt;case te.nodeType.knot:return Ot;case te.nodeType.variableGet:case te.nodeType.variableSet:return Rt}return e.isEvent()?$t:Pt}static fromSerializedObject(e){e=e.trim();let t=se.getSerializer(Re).read(e);return Vt.newObject(t)}static newObject(e=new Re,t=new(Vt.getTypeTemplate(e))){const i=new Vt;return i.initialize(e,t),i}initialize(e=new Re,t=new(Vt.getTypeTemplate(e))){super.initialize(e,t),this.#Ce=this.template.createPinElements(),this.typePath=this.entity.getType(),this.nodeName=this.entity.getObjectName(),this.advancedPinDisplay=this.entity.AdvancedPinDisplay?.toString(),this.enabledState=this.entity.EnabledState,this.nodeDisplayName=this.getNodeDisplayName(),this.pureFunction=this.entity.bIsPureFunc,this.dragLinkObjects=[],super.setLocation(this.entity.getNodePosX(),this.entity.getNodePosY()),this.entity.NodeWidth&&this.entity.NodeHeight?(this.sizeX=this.entity.NodeWidth.value,this.sizeY=this.entity.NodeHeight.value):this.updateComplete.then((()=>this.computeSizes()))}getUpdateComplete(){return Promise.all([super.getUpdateComplete(),...this.getPinElements().map((e=>e.updateComplete))]).then((()=>!0))}bindToComment(e){e==this||this.boundComments.includes(e)||(e.addEventListener(te.nodeDragEventName,this.#ke),this.boundComments.push(e))}unbindFromComment(e){const t=this.boundComments.indexOf(e);t>=0&&(e.removeEventListener(te.nodeDragEventName,this.#ke),this.boundComments[t]=this.boundComments[this.boundComments.length-1],this.boundComments.pop())}isInsideComment(e){return this.topBoundary()>=e.topBoundary()&&this.rightBoundary()<=e.rightBoundary()&&this.bottomBoundary()<=e.bottomBoundary()&&this.leftBoundary()>=e.leftBoundary()}getType(){return this.entity.getType()}getNodeName(){return this.entity.getObjectName()}getNodeDisplayName(){return this.entity.nodeDisplayName()}setNodeWidth(e){this.entity.setNodeWidth(e),this.sizeX=e,this.acknowledgeReflow()}setNodeHeight(e){this.entity.setNodeHeight(e),this.sizeY=e,this.acknowledgeReflow()}sanitizeLinks(e=[]){this.getPinElements().forEach((t=>t.sanitizeLinks(e)))}rename(e){if(this.entity.Name==e)return!1;for(let t of this.getPinElements())for(let i of t.getLinks())this.blueprint.getPin(i).redirectLink(t,new ke({objectName:e,pinGuid:t.entity.PinId}));this.entity.Name=e,this.nodeName=this.entity.Name}getPinElements(){return this.#Ce}getPinEntities(){return this.entity.CustomProperties.filter((e=>e instanceof $e))}setLocation(e=0,t=0,i=!0){this.entity.setNodePosX(e),this.entity.setNodePosY(t),super.setLocation(e,t,i)}acknowledgeReflow(){this.requestUpdate(),this.updateComplete.then((()=>this.computeSizes()));let e=new CustomEvent(te.nodeReflowEventName);this.dispatchEvent(e)}setShowAdvancedPinDisplay(e){this.entity.AdvancedPinDisplay=new fe(e?"Shown":"Hidden"),this.advancedPinDisplay=this.entity.AdvancedPinDisplay}toggleShowAdvancedPinDisplay(){this.setShowAdvancedPinDisplay("Shown"!=this.entity.AdvancedPinDisplay?.toString())}}class It extends nt{static properties={selecting:{type:Boolean,attribute:"data-selecting",reflect:!0,converter:ae.booleanConverter},scrolling:{type:Boolean,attribute:"data-scrolling",reflect:!0,converter:ae.booleanConverter},focused:{type:Boolean,attribute:"data-focused",reflect:!0,converter:ae.booleanConverter},zoom:{type:Number,attribute:"data-zoom",reflect:!0},scrollX:{type:Number,attribute:!1},scrollY:{type:Number,attribute:!1},additionalX:{type:Number,attribute:!1},additionalY:{type:Number,attribute:!1},translateX:{type:Number,attribute:!1},translateY:{type:Number,attribute:!1}};static nodeBoundariesSupplier=e=>({primaryInf:e.leftBoundary(!0),primarySup:e.rightBoundary(!0),secondaryInf:e.topBoundary(!0),secondarySup:e.bottomBoundary(!0)});static nodeSelectToggleFunction=(e,t)=>{e.setSelected(t)};#Le=new Map;nodes=[];links=[];mousePosition=[0,0];waitingExpandUpdate=!1;constructor(){super(),this.selecting=!1,this.scrolling=!1,this.focused=!1,this.zoom=0,this.scrollX=te.expandGridSize,this.scrollY=te.expandGridSize,this.translateX=te.expandGridSize,this.translateY=te.expandGridSize,super.initialize({},new dt)}initialize(){}getGridDOMElement(){return this.template.gridElement}getScroll(){return[this.scrollX,this.scrollY]}setScroll(e,t){this.scrollX=e,this.scrollY=t}scrollDelta(e=0,t=0,i=!1,n=te.smoothScrollTime){if(i){let i=[0,0];ae.animate(0,e,n,(e=>{this.scrollDelta(e-i[0],0,!1),i[0]=e})),ae.animate(0,t,n,(e=>{this.scrollDelta(0,e-i[1],!1),i[1]=e}))}else{const i=[2*te.expandGridSize,2*te.expandGridSize];let n=this.getScroll(),s=[n[0]+e,n[1]+t],r=[0,0];for(let e=0;e<2;++e)s[e]<te.gridExpandThreshold*te.expandGridSize?r[e]=-1:s[e]>i[e]-te.gridExpandThreshold*te.expandGridSize&&(r[e]=1);0==r[0]&&0==r[1]||this.seamlessExpand(r[0],r[1]),n=this.getScroll(),s=[n[0]+e,n[1]+t],this.setScroll(s[0],s[1])}}scrollCenter(){const e=this.getScroll(),t=[this.translateX-e[0],this.translateY-e[1]],i=this.getViewportSize().map((e=>e/2)),n=[t[0]-i[0],t[1]-i[1]];this.scrollDelta(n[0],n[1],!0)}getViewportSize(){return[this.template.viewportElement.clientWidth,this.template.viewportElement.clientHeight]}getScrollMax(){return[this.template.viewportElement.scrollWidth-this.template.viewportElement.clientWidth,this.template.viewportElement.scrollHeight-this.template.viewportElement.clientHeight]}snapToGrid(e,t){return ae.snapToGrid(e,t,te.gridSize)}seamlessExpand(e,t){e=Math.round(e),t=Math.round(t);let i=this.getScale();[e,t]=[-e*te.expandGridSize,-t*te.expandGridSize],0!=e&&(this.scrollX+=e,e/=i),0!=t&&(this.scrollY+=t,t/=i),this.translateX+=e,this.translateY+=t}progressiveSnapToGrid(e){return te.expandGridSize*Math.round(e/te.expandGridSize+.5*Math.sign(e))}getZoom(){return this.zoom}setZoom(e,t){if((e=ae.clamp(e,te.minZoom,te.maxZoom))==this.zoom)return;let i=this.getScale();if(this.zoom=e,t){t[0]+=this.translateX,t[1]+=this.translateY;let e=this.getScale()/i,n=[e*t[0],e*t[1]];this.scrollDelta((n[0]-t[0])*i,(n[1]-t[1])*i)}}getScale(){return te.scale[this.getZoom()]}scaleCorrect(e){return e/this.getScale()}scaleCorrectReverse(e){return e*this.getScale()}compensateTranslation(e,t){return[e-=this.translateX,t-=this.translateY]}getNodes(e=!1,[t,i,n,s]=[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER]){let r=this.nodes;return e&&(r=r.filter((e=>e.selected))),(t>Number.MIN_SAFE_INTEGER||i<Number.MAX_SAFE_INTEGER||n<Number.MAX_SAFE_INTEGER||s>Number.MIN_SAFE_INTEGER)&&(r=r.filter((e=>e.topBoundary()>=t&&e.rightBoundary()<=i&&e.bottomBoundary()<=n&&e.leftBoundary()>=s))),r}getCommentNodes(e=!1){let t=[...this.template.getCommentNodes(e)];return 0===t.length&&(t=this.nodes.filter((t=>t.getType()===te.nodeType.comment&&(!e||t.selected)))),t}getPin(e){let t=this.template.getPin(e);return t&&t.nodeElement.getNodeName()==e.objectName.toString()||(t=[...this.nodes.find((t=>e.objectName.toString()==t.getNodeName()))?.getPinElements()??[]].find((t=>e.pinGuid.toString()==t.getPinId().toString()))),t}getLinks(e=null,t=null){if(null==e!=(null==t)){const i=e??t;return this.links.filter((e=>e.sourcePin==i||e.destinationPin==i))}return null!=e&&null!=t?this.links.filter((i=>i.sourcePin==e&&i.destinationPin==t||i.sourcePin==t&&i.destinationPin==e)):this.links}getLink(e,t,i=!1){return this.links.find((n=>n.sourcePin==e&&n.destinationPin==t||!i&&n.sourcePin==t&&n.destinationPin==e))}selectAll(){this.getNodes().forEach((e=>It.nodeSelectToggleFunction(e,!0)))}unselectAll(){this.getNodes().forEach((e=>It.nodeSelectToggleFunction(e,!1)))}addGraphElement(...e){const t=e=>{const i=e.currentTarget;i.removeEventListener(te.removeEventName,t);const n=i instanceof Vt?this.nodes:i instanceof ft?this.links:null,s=n?.indexOf(i);if(s>=0){const e=n.pop();s<n.length&&(n[s]=e)}};for(const i of e)if(i.blueprint=this,i instanceof Vt&&!this.nodes.includes(i)){const e=i.entity.getObjectName(),n=this.nodes.find((t=>t.entity.getObjectName()==e));if(n){let e=n.entity.getObjectName(!0);this.#Le[e]=this.#Le[e]??-1;do{++this.#Le[e]}while(this.nodes.find((t=>t.entity.getObjectName()==te.nodeName(e,this.#Le[e]))));n.rename(te.nodeName(e,this.#Le[e]))}this.nodes.push(i),i.addEventListener(te.removeEventName,t),this.template.nodesContainerElement?.appendChild(i)}else i instanceof ft&&!this.links.includes(i)&&(this.links.push(i),i.addEventListener(te.removeEventName,t),this.template.linksContainerElement&&!this.template.linksContainerElement.contains(i)&&this.template.linksContainerElement.appendChild(i));e.filter((e=>e instanceof Vt)).forEach((t=>t.sanitizeLinks(e))),e.filter((e=>e instanceof Vt&&e.getType()==te.nodeType.comment)).forEach((e=>e.updateComplete.then((()=>e.template.manageNodesBind()))))}removeGraphElement(...e){for(let t of e){if(t.closest("ueb-blueprint")!==this)return;t.remove()}}setFocused(e=!0){if(this.focused==e)return;let t=new CustomEvent(e?te.focusEventName.begin:te.focusEventName.end);this.focused=e,this.focused||this.unselectAll(),this.dispatchEvent(t)}acknowledgeEditText(e){const t=new CustomEvent(e?te.editTextEventName.begin:te.editTextEventName.end);this.dispatchEvent(t)}}customElements.define("ueb-blueprint",It);class _t extends Et{#Ne;get locationChangeCallback(){return this.#Ne}set locationChangeCallback(e){this.#Ne=e}movementSpace;movementSpaceSize=[0,0];firstUpdated(e){super.firstUpdated(e),this.movementSpace=this.element.parentElement}setup(){super.setup();const e=this.movementSpace.getBoundingClientRect();this.movementSpaceSize=[e.width,e.height]}createDraggableObject(){return new vt(this.element,this.blueprint,{draggableElement:this.movementSpace,ignoreTranslateCompensate:!0,moveEverywhere:!0,movementSpace:this.movementSpace,repositionOnClick:!0,stepSize:1})}adjustLocation(e,t){return this.locationChangeCallback?.(e,t),[e,t]}}class Ft extends _t{adjustLocation(e,t){const i=Math.round(this.movementSpaceSize[0]/2);e-=i,t=-(t-i);let[n,s]=ae.getPolarCoordinates(e,t);return n=Math.min(n,i),[e,t]=ae.getCartesianCoordinates(n,s),this.locationChangeCallback?.(e/i,t/i),[e=Math.round(e+i),t=Math.round(-t+i)]}}class Gt extends st{windowElement;setup(){super.setup(),this.windowElement=this.closest("ueb-window")}setLocation(e,t){super.setLocation(...this.template.adjustLocation(e,t))}}class jt extends Gt{constructor(){super(),super.initialize({},new Ft)}static newObject(){return new jt}initialize(){}}class Ut extends _t{adjustLocation(e,t){return e=ae.clamp(e,0,this.movementSpaceSize[0]),t=ae.clamp(t,0,this.movementSpaceSize[1]),this.locationChangeCallback?.(e/this.movementSpaceSize[0],1-t/this.movementSpaceSize[1]),[e,t]}}class Kt extends Gt{constructor(){super(),super.initialize({},new Ut)}static newObject(){return new Kt}initialize(){}}class Wt extends Xe{#Te=()=>{this.blueprint.acknowledgeEditText(!0),this.element.selectOnFocus&&getSelection().selectAllChildren(this.element)};#Ae=()=>{this.blueprint.acknowledgeEditText(!1),getSelection().removeAllRanges()};#Me=e=>e.target.querySelectorAll("br").forEach((e=>e.remove()));#De=e=>{"Enter"!=e.code||e.shiftKey||e.target.blur()};initialize(e){super.initialize(e),this.element.classList.add("ueb-pin-input-content"),this.element.setAttribute("role","textbox"),this.element.contentEditable="true"}setup(){super.setup(),this.element.addEventListener("focus",this.#Te),this.element.addEventListener("focusout",this.#Ae),this.element.singleLine&&this.element.addEventListener("input",this.#Me),this.element.blurOnEnter&&this.element.addEventListener("keydown",this.#De)}cleanup(){super.cleanup(),this.element.removeEventListener("focus",this.#Te),this.element.removeEventListener("focusout",this.#Ae),this.element.removeEventListener("input",this.#Me),this.element.removeEventListener("keydown",this.#De)}}class Zt extends nt{static properties={...super.properties,singleLine:{type:Boolean,attribute:"data-single-line",converter:ae.booleanConverter,reflect:!0},selectOnFocus:{type:Boolean,attribute:"data-select-focus",converter:ae.booleanConverter,reflect:!0},blurOnEnter:{type:Boolean,attribute:"data-blur-enter",converter:ae.booleanConverter,reflect:!0}};constructor(){super(),this.singleLine=!1,this.selectOnFocus=!0,this.blurOnEnter=!0,super.initialize({},new Wt)}static newObject(){return new Zt}initialize(){}}class Xt extends rt{constructor(e,t,i={}){i.consumeEvent=!0,super(e,t,i)}}class qt extends Dt{#Be;#$e=e=>this.element.setDefaultValue(this.#Be.checked);firstUpdated(e){super.firstUpdated(e),this.#Be=this.element.querySelector(".ueb-pin-input")}setup(){super.setup(),this.#Be?.addEventListener("change",this.#$e)}cleanup(){super.cleanup(),this.#Be?.removeEventListener("change",this.#$e)}createInputObjects(){return[...super.createInputObjects(),new Xt(this.#Be,this.blueprint)]}renderInput(){return $`<input type="checkbox" class="ueb-pin-input" ?checked="${this.element.defaultValue}">`}}class Yt extends Dt{renderIcon(){return He.execPin}renderName(){let e=this.element.entity.PinName;if(this.element.entity.PinFriendlyName)e=this.element.entity.PinFriendlyName.toString();else if("execute"===e||"then"===e)return $``;return $`${ae.formatStringName(e)}`}}class Qt extends Dt{static singleLineInput=!1;static selectOnFocus=!0;#He;get inputContentElements(){return this.#He}static stringFromInputToUE(e){return e.replace(/(?=\n\s*)\n$/,"").replaceAll("\n","\\r\n")}static stringFromUEToInput(e){return e.replaceAll(/(?:\r|(?<=(?:^|[^\\])(?:\\\\)*)\\r)(?=\n)/g,"").replace(/(?<=\n\s*)$/,"\n")}#ze=()=>this.setInputs(this.getInputs(),!0);#Oe=e=>this.#Re(e.target);#Re(e){const t=this.blueprint.scaleCorrect(e.getBoundingClientRect().width)+this.nameWidth,i=this.element.classList.contains("ueb-pin-input-wrap");!i&&t>te.pinInputWrapWidth?this.element.classList.add("ueb-pin-input-wrap"):i&&t<=te.pinInputWrapWidth&&this.element.classList.remove("ueb-pin-input-wrap")}firstUpdated(e){super.firstUpdated(e),this.#He=[...this.element.querySelectorAll("ueb-input")],this.constructor.canWrapInput&&(this.nameWidth=this.blueprint.scaleCorrect(this.element.querySelector(".ueb-pin-name").getBoundingClientRect().width),this.inputContentElements.forEach((e=>this.#Re(e))))}setup(){super.setup(),this.#He.forEach((e=>{e.addEventListener("focusout",this.#ze),this.constructor.canWrapInput&&e.addEventListener("input",this.#Oe)}))}cleanup(){super.cleanup(),this.#He.forEach((e=>{e.removeEventListener("focusout",this.#ze),e.removeEventListener("input",this.#Oe)}))}createInputObjects(){return[...super.createInputObjects(),...this.#He.map((e=>new Xt(e,this.blueprint)))]}getInput(){return this.getInputs().reduce(((e,t)=>e+t),"")}getInputs(){return this.#He.map((e=>ae.clearHTMLWhitespace(e.innerHTML)))}setInputs(e=[],t=!0){this.#He.forEach(this.constructor.singleLineInput?(t,i)=>t.innerText=e[i]:(t,i)=>t.innerText=e[i].replaceAll("\n","")),t&&this.setDefaultValue(e.map((e=>Qt.stringFromInputToUE(e))),e),this.element.addNextUpdatedCallbacks((()=>this.element.nodeElement.acknowledgeReflow()))}setDefaultValue(e=[],t=e){this.element.setDefaultValue(e.join(""))}renderInput(){const e=this.constructor.singleLineInput,t=this.constructor.selectOnFocus;return $`<div class="ueb-pin-input"><ueb-input .singleLine="${e}" .selectOnFocus="${t}" .innerText="${Qt.stringFromUEToInput(this.element.getDefaultValue()?.toString()??"")}"></ueb-input></div>`}}class Jt extends Qt{static singleLineInput=!0;setInputs(e=[],t=!1){if(e&&0!=e.length||(e=[this.getInput()]),super.setInputs(e,!1),t){let i=[];for(const n of e){let e=parseFloat(n);isNaN(e)&&(e=0,t=!1),i.push(e)}this.setDefaultValue(i,e)}}setDefaultValue(e=[],t){this.element.setDefaultValue(e[0])}}class ei extends Jt{setDefaultValue(e=[],t=e){this.element.getDefaultValue(!0).value=e[0],this.inputContentElements[0].innerText=this.element.getDefaultValue()?.toString(),this.element.requestUpdate()}renderInput(){return $`<div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.element.getDefaultValue()?.toString()??"0"}"></ueb-input></div>`}}class ti extends ei{setInputs(e=[],t=!1){if(e&&0!=e.length||(e=[this.getInput()]),super.setInputs(e,!1),t){if(!e[0].match(/[\-\+]?[0-9]+/))return;const t=[BigInt(e[0])];this.setDefaultValue(t,e)}}}
|
||
/**
|
||
* @license
|
||
* Copyright 2017 Google LLC
|
||
* SPDX-License-Identifier: BSD-3-Clause
|
||
*/const ii=1;class ni{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 si=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends ni{constructor(e){var t;if(super(e),e.type!==ii||"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 H}});class ri extends St{toggleAdvancedDisplayHandler;getDraggableElement(){return this.element.querySelector(".ueb-window-top")}createDraggableObject(){return new vt(this.element,this.blueprint,{draggableElement:this.getDraggableElement(),ignoreScale:!0,ignoreTranslateCompensate:!1,movementSpace:this.blueprint,stepSize:1})}setup(){const e=this.blueprint.template.gridLeftVisibilityBoundary(),t=this.blueprint.template.gridTopVisibilityBoundary();this.element.locationX=this.blueprint.scaleCorrectReverse(this.blueprint.mousePosition[0]-e),this.element.locationY=this.blueprint.scaleCorrectReverse(this.blueprint.mousePosition[1]-t),this.element.updateComplete.then((()=>{const e=this.blueprint.getBoundingClientRect();this.element.locationX+this.element.sizeX>e.width&&(this.element.locationX=e.width-this.element.sizeX),this.element.locationX=Math.max(0,this.element.locationX),this.element.locationY+this.element.sizeY>e.height&&(this.element.locationY=e.height-this.element.sizeY),this.element.locationY=Math.max(0,this.element.locationY)}))}render(){return $`<div class="ueb-window"><div class="ueb-window-top"><div class="ueb-window-name ueb-ellipsis-nowrap-text">${this.renderWindowName()}</div><div class="ueb-window-close" @click="${()=>this.element.remove()}">${He.close}</div></div><div class="ueb-window-content">${this.renderContent()}</div></div>`}renderWindowName(){return $`Window`}renderContent(){return $``}apply(){this.element.dispatchEvent(new CustomEvent(te.windowApplyEventName)),this.element.remove()}cancel(){this.element.dispatchEvent(new CustomEvent(te.windowCancelEventName)),this.element.remove()}}class ai extends ri{#Ve;#Ie;#_e;#Fe;#Ge;#je;#Ue;#Ke;#We;#Ze;#Xe=e=>{const t=ae.clearHTMLWhitespace(e.target.innerHTML),i=parseInt(t,16);isNaN(i)||(this.color.setFromRGBANumber(i),this.element.requestUpdate())};#qe=e=>{const t=ae.clearHTMLWhitespace(e.target.innerHTML),i=parseInt(t,16);isNaN(i)||(this.color.setFromSRGBANumber(i),this.element.requestUpdate())};#Ye=e=>t=>{"Enter"==t.code&&(t.preventDefault(),e(t))};#le=new Se;get color(){return this.#le}set color(e){e.toNumber()!=this.color?.toNumber()&&(this.element.requestUpdate("color",this.#le),this.#le=e)}#Qe=new Se;get fullColor(){return this.#Qe}#Je;get initialColor(){return this.#Je}#et=new Se;#tt(e,t,i=!1){const n=this.color.toRGBAString(),s=`${n.substring(0,2*e)}${t}${n.substring(2+2*e)}`;return i?`${s.substring(0,6)}FF`:s}initialize(e){super.initialize(e),this.#Je=this.element.windowOptions.getPinColor(),this.color.setFromHSVA(this.initialColor.H.value,this.initialColor.S.value,this.initialColor.V.value,this.initialColor.A.value),this.fullColor.setFromHSVA(this.color.H.value,1,1,1)}firstUpdated(e){this.#Ve=this.element.querySelector(".ueb-color-picker-wheel ueb-color-handler"),this.#Ie=this.element.querySelector(".ueb-color-picker-saturation ueb-ui-slider"),this.#_e=this.element.querySelector(".ueb-color-picker-value ueb-ui-slider"),this.#Fe=this.element.querySelector(".ueb-color-picker-r ueb-ui-slider"),this.#Ge=this.element.querySelector(".ueb-color-picker-g ueb-ui-slider"),this.#je=this.element.querySelector(".ueb-color-picker-b ueb-ui-slider"),this.#Ue=this.element.querySelector(".ueb-color-picker-a ueb-ui-slider"),this.#Ke=this.element.querySelector(".ueb-color-picker-h ueb-ui-slider"),this.#We=this.element.querySelector(".ueb-color-picker-s ueb-ui-slider"),this.#Ze=this.element.querySelector(".ueb-color-picker-v ueb-ui-slider"),this.#Ve.template.locationChangeCallback=(e,t)=>{this.color.setFromWheelLocation(e,t,this.color.V.value,this.color.A.value),this.fullColor.setFromHSVA(this.color.H.value,1,1,1),this.element.requestUpdate()},this.#Ie.template.locationChangeCallback=(e,t)=>{this.color.setFromHSVA(this.color.H.value,t,this.color.V.value,this.color.A.value),this.element.requestUpdate()},this.#_e.template.locationChangeCallback=(e,t)=>{this.color.setFromHSVA(this.color.H.value,this.color.S.value,t,this.color.A.value),this.element.requestUpdate()},this.#Fe.template.locationChangeCallback=(e,t)=>{this.color.setFromRGBA(e,this.color.G.value,this.color.B.value,this.color.A.value),this.element.requestUpdate()},this.#Ge.template.locationChangeCallback=(e,t)=>{this.color.setFromRGBA(this.color.R.value,e,this.color.B.value,this.color.A.value),this.element.requestUpdate()},this.#je.template.locationChangeCallback=(e,t)=>{this.color.setFromRGBA(this.color.R.value,this.color.G.value,e,this.color.A.value),this.element.requestUpdate()},this.#Ue.template.locationChangeCallback=(e,t)=>{this.color.setFromRGBA(this.color.R.value,this.color.G.value,this.color.B.value,e),this.element.requestUpdate()},this.#Ke.template.locationChangeCallback=(e,t)=>{this.color.setFromHSVA(e,this.color.S.value,this.color.V.value,this.color.A.value),this.element.requestUpdate()},this.#We.template.locationChangeCallback=(e,t)=>{this.color.setFromHSVA(this.color.H.value,e,this.color.V.value,this.color.A.value),this.element.requestUpdate()},this.#Ze.template.locationChangeCallback=(e,t)=>{this.color.setFromHSVA(this.color.H.value,this.color.S.value,e,this.color.A.value),this.element.requestUpdate()}}renderSlider(e){let t="",i=0,n="";const s=e=>`linear-gradient(to right, #${this.#tt(e,"00",!0)}, #${this.#tt(e,"ff",!0)})`;switch(e){case 0:t="r",i=this.color.R.value,n=s(e);break;case 1:t="g",i=this.color.G.value,n=s(e);break;case 2:t="b",i=this.color.B.value,n=s(e);break;case 3:t="a",i=this.color.A.value,n=`${te.alphaPattern}, ${s(e)}`;break;case 4:t="h",i=360*this.color.H.value,n="linear-gradient(to right, #f00 0%, #ff0 16.666%, #0f0 33.333%, #0ff 50%, #00f 66.666%, #f0f 83.333%, #f00 100%)";break;case 5:t="s",i=this.color.S.value,n=`linear-gradient(to right,#${this.#et.setFromHSVA(this.color.H.value,0,this.color.V.value,1),this.#et.toRGBAString()},#${this.#et.setFromHSVA(this.color.H.value,1,this.color.V.value,1),this.#et.toRGBAString()})`;break;case 6:t="v",i=this.color.V.value,n=`linear-gradient(to right, #000, #${this.fullColor.toRGBAString()})`}return n=`background: ${n};`,$`<div class="ueb-color-picker-${t.toLowerCase()}"><span class="ueb-color-control-label">${t.toUpperCase()}</span><div><div class="ueb-horizontal-slider"><span class="ueb-horizontal-slider-text" .innerText="${ae.minDecimals(ae.roundDecimals(i,3))}"></span><ueb-ui-slider></ueb-ui-slider></div><div class="ueb-color-picker-gradient" style="${n}"></div></div></div>`}renderContent(){const e=2*this.color.H.value*Math.PI,t={"--ueb-color-r":this.color.R.toString(),"--ueb-color-g":this.color.G.toString(),"--ueb-color-b":this.color.B.toString(),"--ueb-color-a":this.color.A.toString(),"--ueb-color-h":this.color.H.toString(),"--ueb-color-s":this.color.S.toString(),"--ueb-color-v":this.color.V.toString(),"--ueb-color-wheel-x":100*(this.color.S.value*Math.cos(e)*.5+.5)+"%","--ueb-color-wheel-y":100*(this.color.S.value*Math.sin(e)*.5+.5)+"%"},i=this.color.toRGBAString(),n=this.color.toSRGBAString(),s=this.fullColor.toRGBAString();return $`<div class="ueb-color-picker" style="${si(t)}"><div class="ueb-color-picker-toolbar"><div class="ueb-color-picker-theme"></div><div class="ueb-color-picker-srgb"></div></div><div class="ueb-color-picker-main"><div class="ueb-color-picker-wheel"><ueb-color-handler></ueb-color-handler></div><div class="ueb-color-picker-saturation ueb-vertical-slider" style="background-color:#${s}"><ueb-ui-slider></ueb-ui-slider></div><div class="ueb-color-picker-value ueb-vertical-slider" style="background-color:#${s}"><ueb-ui-slider></ueb-ui-slider></div><div class="ueb-color-picker-preview">Old<div class="ueb-color-picker-preview-old" style="background:#${this.#Je.toRGBAString()}"></div><div class="ueb-color-picker-preview-new"><div class="ueb-color-picker-preview-1" style="background:#${this.#tt(3,"FF")}"></div><div class="ueb-color-picker-preview-2" style="background:${`linear-gradient(#${i}, #${i}),${te.alphaPattern}`}"></div></div>New</div></div><div class="ueb-color-picker-advanced-toggle ueb-toggle-control">Advanced</div><div class="ueb-color-picker-advanced"><div class="ueb-color-picker-column">${this.renderSlider(0)} ${this.renderSlider(1)} ${this.renderSlider(2)} ${this.renderSlider(3)}</div><div class="ueb-color-picker-column">${this.renderSlider(4)} ${this.renderSlider(5)} ${this.renderSlider(6)}<div class="ueb-color-control"><span class="ueb-color-control-label">Hex Linear</span><div class="ueb-color-picker-hex-linear ueb-text-input"><ueb-input .innerText="${i}" @focusout="${this.#Xe}" @keydown="${this.#Ye(this.#Xe)}"></ueb-input></div></div><div class="ueb-color-control"><span class="ueb-color-control-label">Hex sRGB</span><div class="ueb-color-picker-hex-srgb ueb-text-input"><ueb-input .innerText="${n}" @focusout="${this.#qe}" @keydown="${this.#Ye(this.#qe)}"></ueb-input></div></div></div></div><div class="ueb-buttons"><div class="ueb-color-picker-ok ueb-button" @click="${()=>this.apply()}">${te.windowApplyButtonText}</div><div class="ueb-color-picker-cancel ueb-button" @click="${()=>this.cancel()}">${te.windowCancelButtonText}</div></div></div>`}renderWindowName(){return $`${te.colorWindowName}`}}class oi extends Dt{#it;#nt=e=>{e.preventDefault(),this.blueprint.setFocused(!0),this.#it=lt.getConstructor("ueb-window").newObject({type:new ai,windowOptions:{getPinColor:()=>this.element.defaultValue,setPinColor:e=>this.element.setDefaultValue(e)}}),this.blueprint.append(this.#it);const t=()=>{this.element.setDefaultValue(this.#it.template.color)},i=()=>{this.#it.removeEventListener(te.windowApplyEventName,t),this.#it.removeEventListener(te.windowCloseEventName,i),this.#it=null};this.#it.addEventListener(te.windowApplyEventName,t),this.#it.addEventListener(te.windowCloseEventName,i)};renderInput(){return $`<span class="ueb-pin-input" data-linear-color="${this.element.getDefaultValue()?.toString()??z}" @click="${this.#nt}" style="--ueb-linear-color:rgba(${this.element.getDefaultValue()?.toString()??z})"></span>`}}class li extends Qt{static singleLineInput=!0}class ui extends Jt{setDefaultValue(e=[],t=e){this.element.setDefaultValue(e[0])}renderInput(){return $`<div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${ae.minDecimals(this.element.getDefaultValue()??0)}"></ueb-input></div>`}}class ci extends Dt{renderIcon(){return He.referencePin}}class hi extends Jt{#st(){return ae.minDecimals(this.element.getDefaultValue()?.R??0)}#rt(){return ae.minDecimals(this.element.getDefaultValue()?.P??0)}#at(){return ae.minDecimals(this.element.getDefaultValue()?.Y??0)}setDefaultValue(e=[],t=e){const i=this.element.getDefaultValue(!0);if(!(i instanceof Ne))throw new TypeError("Expected DefaultValue to be a RotatorEntity");i.R=e[0],i.P=e[1],i.Y=e[2],this.element.requestUpdate("DefaultValue",i)}renderInput(){return $`<div class="ueb-pin-input-wrapper"><span class="ueb-pin-input-label">X</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#st()}"></ueb-input></div><span class="ueb-pin-input-label">Y</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#rt()}"></ueb-input></div><span class="ueb-pin-input-label">Z</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#at()}"></ueb-input></div></div>`}}class di extends Qt{}class pi extends Jt{#ot(){return ae.minDecimals(this.element.getDefaultValue()?.X??0)}#at(){return ae.minDecimals(this.element.getDefaultValue()?.Y??0)}setDefaultValue(e,t){const i=this.element.getDefaultValue(!0);if(!(i instanceof Ae))throw new TypeError("Expected DefaultValue to be a Vector2DEntity");i.X=e[0],i.Y=e[1],this.element.requestUpdate("DefaultValue",i)}renderInput(){return $`<div class="ueb-pin-input-wrapper"><span class="ueb-pin-input-label">X</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#ot()}"></ueb-input></div><span class="ueb-pin-input-label">Y</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#at()}"></ueb-input></div></div>`}}class mi extends Jt{#ot(){return ae.minDecimals(this.element.getDefaultValue()?.X??0)}#at(){return ae.minDecimals(this.element.getDefaultValue()?.Y??0)}#lt(){return ae.minDecimals(this.element.getDefaultValue()?.Z??0)}setDefaultValue(e,t){const i=this.element.getDefaultValue(!0);if(!(i instanceof De))throw new TypeError("Expected DefaultValue to be a VectorEntity");i.X=e[0],i.Y=e[1],i.Z=e[2],this.element.requestUpdate("DefaultValue",i)}renderInput(){return $`<div class="ueb-pin-input-wrapper"><span class="ueb-pin-input-label">X</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#ot()}"></ueb-input></div><span class="ueb-pin-input-label">Y</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#at()}"></ueb-input></div><span class="ueb-pin-input-label">Z</span><div class="ueb-pin-input"><ueb-input .singleLine="${!0}" .innerText="${this.#lt()}"></ueb-input></div></div>`}}class gi extends nt{static#ut={"/Script/CoreUObject.LinearColor":oi,"/Script/CoreUObject.Rotator":hi,"/Script/CoreUObject.Vector":mi,"/Script/CoreUObject.Vector2D":pi,bool:qt,byte:ei,int:ei,int64:ti,MUTABLE_REFERENCE:ci,name:li,real:ui,string:di};static properties={pinId:{type:ge,converter:{fromAttribute:(e,t)=>e?Ue.guidEntity.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:Se,converter:{fromAttribute:(e,t)=>e?Ue.linearColorFromAnyFormat.parse(e).value:null,toAttribute:(e,t)=>e?ae.printLinearColor(e):null},attribute:"data-color",reflect:!0},defaultValue:{type:String,attribute:!1},isLinked:{type:Boolean,converter:ae.booleanConverter,attribute:"data-linked",reflect:!0},pinDirection:{type:String,attribute:"data-direction",reflect:!0}};nodeElement;static getTypeTemplate(e){if(e.PinType.bIsReference&&!e.PinType.bIsConst)return gi.#ut.MUTABLE_REFERENCE;if("exec"===e.getType())return Yt;let t;return e.isInput()&&(t=gi.#ut[e.getType()]),t??Dt}static newObject(e=new $e,t=new(gi.getTypeTemplate(e)),i){const n=new gi;return n.initialize(e,t,i),n}initialize(e=new $e,t=new(gi.getTypeTemplate(e)),i){super.initialize(e,t),this.pinId=this.entity.PinId,this.pinType=this.entity.getType(),this.advancedView=this.entity.bAdvancedView,this.defaultValue=this.entity.getDefaultValue(),this.color=gi.properties.color.converter.fromAttribute(this.getColor().toString()),this.isLinked=!1,this.pinDirection=e.isInput()?"input":e.isOutput()?"output":"hidden",this.nodeElement=i}setup(){super.setup(),this.nodeElement=this.closest("ueb-node")}createPinReference(){return new ke({objectName:this.nodeElement.getNodeName(),pinGuid:this.getPinId()})}getPinId(){return this.entity.PinId}getPinName(){return this.entity.PinName}getPinDisplayName(){return this.entity.getDisplayName()}getColor(){return this.entity.pinColor()}isInput(){return this.entity.isInput()}isOutput(){return this.entity.isOutput()}getLinkLocation(){return this.template.getLinkLocation()}getNodeElement(){return this.nodeElement}getLinks(){return this.entity.LinkedTo??[]}getDefaultValue(e=!1){return this.defaultValue=this.entity.getDefaultValue(e)}setDefaultValue(e){this.entity.DefaultValue=e,this.defaultValue=e}sanitizeLinks(e=[]){this.entity.LinkedTo=this.entity.LinkedTo?.filter((t=>{let i=this.blueprint.getPin(t);if(i){if(e.length&&!e.includes(i.nodeElement))return!1;let t=this.blueprint.getLink(this,i);t||(t=lt.getConstructor("ueb-link").newObject(this,i),this.blueprint.addGraphElement(t))}return i})),this.isLinked=this.entity.isLinked()}linkTo(e){const t=this.createPinReference();!this.isLinked||!this.isOutput()||"exec"!==this.pinType&&"exec"!==e.pinType||this.getLinks().some((e=>t.equals(e)))||this.unlinkFromAll(),this.entity.linkTo(e.getNodeElement().getNodeName(),e.entity)&&(this.isLinked=this.entity.isLinked(),this.nodeElement?.template.linksChanged())}unlinkFrom(e,t=!0){this.entity.unlinkFrom(e.getNodeElement().getNodeName(),e.entity)&&(this.isLinked=this.entity.isLinked(),this.nodeElement?.template.linksChanged(),t&&this.blueprint.getLink(this,e)?.remove())}unlinkFromAll(){const e=this.getLinks().length;this.getLinks().map((e=>this.blueprint.getPin(e))).forEach((e=>this.unlinkFrom(e))),e&&this.nodeElement?.template.linksChanged()}redirectLink(e,t){const i=this.getLinks().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 bi{constructor(e=(e=>e),t=null){this.array=new Uint32Array(t),this.comparisonValueSupplier=e,this.length=0,this.currentPosition=0}get(e){return e>=0&&e<this.length?this.array[e]:null}getArray(){return this.array}getPosition(e){let t=0,i=this.length;for(;t<i;){let n=Math.floor((t+i)/2);this.comparisonValueSupplier(this.array[n])<e?t=n+1:i=n}return t}reserve(e){if(this.array.length<e){let t=new Uint32Array(e);t.set(this.array),this.array=t}}insert(e,t=null){let i=this.getPosition(this.comparisonValueSupplier(e));return(i<this.currentPosition||null!=t&&i==this.currentPosition&&this.comparisonValueSupplier(e)<t)&&++this.currentPosition,this.shiftRight(i),this.array[i]=e,++this.length,i}remove(e){let t=this.getPosition(this.comparisonValueSupplier(e));this.array[t]==e&&this.removeAt(t)}removeAt(e){return e<this.currentPosition&&--this.currentPosition,this.shiftLeft(e),--this.length,e}getNext(){return this.currentPosition>=0&&this.currentPosition<this.length?this.get(this.currentPosition):null}getNextValue(){return this.currentPosition>=0&&this.currentPosition<this.length?this.comparisonValueSupplier(this.get(this.currentPosition)):Number.MAX_SAFE_INTEGER}getPrev(){return this.currentPosition>0?this.get(this.currentPosition-1):null}getPrevValue(){return this.currentPosition>0?this.comparisonValueSupplier(this.get(this.currentPosition-1)):Number.MIN_SAFE_INTEGER}shiftLeft(e,t=1){this.array.set(this.array.subarray(e+t),e)}shiftRight(e,t=1){this.array.set(this.array.subarray(e,-t),e+t)}}class yi{constructor(e,t,i,n){this.initialPosition=e,this.finalPosition=e,this.metadata=new Array(t.length),this.primaryOrder=new bi((e=>this.metadata[e].primaryBoundary)),this.secondaryOrder=new bi((e=>this.metadata[e].secondaryBoundary)),this.selectFunc=n,this.rectangles=t,this.primaryOrder.reserve(this.rectangles.length),this.secondaryOrder.reserve(this.rectangles.length),t.forEach(((e,t)=>{let s={primaryBoundary:this.initialPosition[0],secondaryBoundary:this.initialPosition[1],rectangle:t,onSecondaryAxis:!1};this.metadata[t]=s,n(e,!1);const r=i(e);this.initialPosition[1]<r.secondaryInf?s.secondaryBoundary=r.secondaryInf:r.secondarySup<this.initialPosition[1]?s.secondaryBoundary=r.secondarySup:s.onSecondaryAxis=!0,this.initialPosition[0]<r.primaryInf?(s.primaryBoundary=r.primaryInf,this.primaryOrder.insert(t)):r.primarySup<this.initialPosition[0]?(s.primaryBoundary=r.primarySup,this.primaryOrder.insert(t)):r.secondarySup<this.initialPosition[1]||this.initialPosition[1]<r.secondaryInf?this.secondaryOrder.insert(t):n(e,!0)})),this.primaryOrder.currentPosition=this.primaryOrder.getPosition(this.initialPosition[0]),this.secondaryOrder.currentPosition=this.secondaryOrder.getPosition(this.initialPosition[1]),this.computeBoundaries()}computeBoundaries(){this.boundaries={primaryN:{v:this.primaryOrder.getPrevValue(),i:this.primaryOrder.getPrev()},primaryP:{v:this.primaryOrder.getNextValue(),i:this.primaryOrder.getNext()},secondaryN:{v:this.secondaryOrder.getPrevValue(),i:this.secondaryOrder.getPrev()},secondaryP:{v:this.secondaryOrder.getNextValue(),i:this.secondaryOrder.getNext()}}}selectTo(e){const t=[Math.sign(e[0]-this.initialPosition[0]),Math.sign(e[1]-this.initialPosition[1])],i=(i,n)=>{if(this.metadata[i].onSecondaryAxis)this.selectFunc(this.rectangles[i],n);else if(n){this.secondaryOrder.insert(i,e[1]);const n=this.metadata[i].secondaryBoundary;Math.sign(e[1]-n)==t[1]&&Math.sign(n-this.initialPosition[1])==t[1]&&this.selectFunc(this.rectangles[i],!0)}else this.selectFunc(this.rectangles[i],!1),this.secondaryOrder.remove(i);this.computeBoundaries(),this.selectTo(e)};e[0]<this.boundaries.primaryN.v?(--this.primaryOrder.currentPosition,i(this.boundaries.primaryN.i,this.initialPosition[0]>this.boundaries.primaryN.v&&e[0]<this.initialPosition[0])):e[0]>this.boundaries.primaryP.v&&(++this.primaryOrder.currentPosition,i(this.boundaries.primaryP.i,this.initialPosition[0]<this.boundaries.primaryP.v&&this.initialPosition[0]<e[0]));const n=(t,i)=>{this.selectFunc(this.rectangles[t],i),this.computeBoundaries(),this.selectTo(e)};e[1]<this.boundaries.secondaryN.v?(--this.secondaryOrder.currentPosition,n(this.boundaries.secondaryN.i,this.initialPosition[1]>this.boundaries.secondaryN.v&&e[1]<this.initialPosition[1])):e[1]>this.boundaries.secondaryP.v&&(++this.secondaryOrder.currentPosition,n(this.boundaries.secondaryP.i,this.initialPosition[1]<this.boundaries.secondaryP.v&&this.initialPosition[1]<e[1])),this.finalPosition=e}}class fi extends mt{}class vi extends pt{selectionModel=null;constructor(){super(),super.initialize({},new fi)}static newObject(){return new vi}initialize(){}beginSelect(e){const t=this.blueprint.constructor;this.blueprint.selecting=!0,this.setBothLocations(e),this.selectionModel=new yi(e,this.blueprint.getNodes(),t.nodeBoundariesSupplier,t.nodeSelectToggleFunction)}selectTo(e){this.selectionModel.selectTo(e),this.toX=e[0],this.toY=e[1]}endSelect(){this.blueprint.selecting=!1,this.selectionModel=null,this.fromX=0,this.fromY=0,this.toX=0,this.toY=0}}class wi extends st{static#ct={window:ri,"color-picker":ai};static properties={...st.properties,type:{type:ri,attribute:"data-type",reflect:!0,converter:{fromAttribute:(e,t)=>wi.#ct[e],toAttribute:(e,t)=>Object.entries(wi.#ct).find((([t,i])=>e.constructor===i))?.[0]}}};static newObject(e={},t=e.type??new ri){const i=new wi;return i.initialize(e,t),i}initialize(e={},t=e.type??new ri){e.windowOptions??={},this.type=e.type,this.windowOptions=e.windowOptions,super.initialize(e,t)}computeSizes(){const e=this.getBoundingClientRect();this.sizeX=e.width,this.sizeY=e.height}cleanup(){super.cleanup(),this.acknowledgeClose()}acknowledgeClose(){let e=new CustomEvent(te.windowCloseEventName);this.dispatchEvent(e)}}class Ei extends Ke{#ht;constructor(e,t){super(t),this.#ht=e}doWrite(e,t=!1){return this.#ht(e,t)}}class Si extends Ke{constructor(e){super(e)}doWrite(e,t){return t||e.constructor!==String?ae.escapeString(e.toString()):`"${ae.escapeString(e.toString())}"`}}se.registerSerializer(null,new Ei(((e,t)=>"()"),null)),se.registerSerializer(Array,new Ei(((e,t)=>`(${e.map((e=>se.getSerializer(ae.getType(e)).write(e,t)+",")).join("")})`),Array)),se.registerSerializer(BigInt,new Si(BigInt)),se.registerSerializer(Boolean,new Ei(((e,t)=>e?t?"true":"True":t?"false":"False"),Boolean)),se.registerSerializer(ue,new Si(ue)),se.registerSerializer(he,new Si(he)),se.registerSerializer(ye,new Ke(ye,Ke.bracketsWrapped)),se.registerSerializer(ge,new Si(ge)),se.registerSerializer(fe,new Si(fe)),se.registerSerializer(ve,new Si(ve)),se.registerSerializer(le,new Si(le)),se.registerSerializer(de,new Ke(de,(e=>`${de.lookbehind}(${e})`),"",", ",!1,"",(e=>""))),se.registerSerializer(we,new Ke(we,Ke.bracketsWrapped)),se.registerSerializer(Se,new Ke(Se,Ke.bracketsWrapped)),se.registerSerializer(pe,new Ke(pe,(e=>`${pe.lookbehind}(${e})`),"",", ",!1,"",(e=>""))),se.registerSerializer(Ce,new Ke(Ce,Ke.bracketsWrapped)),se.registerSerializer(Number,new Si(Number)),se.registerSerializer(Re,new We),se.registerSerializer(be,new Ei((e=>(e.type??"")+(e.path?e.type?`'"${e.path}"'`:`"${e.path}"`:"")),be)),se.registerSerializer(Pe,new Si(Pe)),se.registerSerializer($e,new Ke($e,(e=>`${$e.lookbehind} (${e})`),"",",",!0)),se.registerSerializer(ke,new Ke(ke,(e=>e),""," ",!1,"",(e=>""))),se.registerSerializer(Fe,new Ke(Fe,Ke.bracketsWrapped)),se.registerSerializer(Ee,new Si(Ee)),se.registerSerializer(Ne,new Ke(Ne,Ke.bracketsWrapped)),se.registerSerializer(String,new Ei(((e,t)=>t?ae.escapeString(e):`"${ae.escapeString(e)}"`),String)),se.registerSerializer(Te,new Ei(((e,t)=>`${e.P}, ${e.Y}, ${e.R}`),Te)),se.registerSerializer(Me,new Ei(((e,t)=>`${e.X}, ${e.Y}`),Me)),se.registerSerializer(Be,new Ei(((e,t)=>`${e.X}, ${e.Y}, ${e.Z}`),Be)),se.registerSerializer(ce,new Si(ce)),se.registerSerializer(Ge,new Ke(Ge,((e,t)=>`${t.lookbehind??""}(${e})`))),se.registerSerializer(Oe,new Ke(Oe,Ke.bracketsWrapped)),se.registerSerializer(Ae,new Ke(Ae,Ke.bracketsWrapped)),se.registerSerializer(De,new Ke(De,Ke.bracketsWrapped)),customElements.define("ueb-color-handler",jt),lt.registerElement("ueb-color-handler",jt),customElements.define("ueb-input",Zt),lt.registerElement("ueb-input",Zt),customElements.define("ueb-link",ft),lt.registerElement("ueb-link",ft),customElements.define("ueb-node",Vt),lt.registerElement("ueb-node",Vt),customElements.define("ueb-pin",gi),lt.registerElement("ueb-pin",gi),customElements.define("ueb-selector",vi),lt.registerElement("ueb-selector",vi),customElements.define("ueb-ui-slider",Kt),lt.registerElement("ueb-ui-slider",Kt),customElements.define("ueb-window",wi),lt.registerElement("ueb-window",wi);export{It as Blueprint,te as Configuration,ft as LinkElement,Vt as NodeElement,ae as Utility};
|