/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@flow-connect/common@2.0.3/dist/common.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(()=>{"use strict";var e={822:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayIndex=void 0;const a=s(772);class i extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"data",dataType:"array"},{type:a.TerminalType.IN,name:"index",dataType:"number"},{type:a.TerminalType.OUT,name:"value",dataType:"any"}])}created(e){const{style:t={},name:s="Array Index",width:a=120}=e;this.width=a,this.name=s,this.style=Object.assign({rowHeight:10},t)}process(e){e&&e[0]&&"number"==typeof e[1]&&this.setOutputs(0,e[0][e[1]])}}t.ArrayIndex=i},689:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ArraySource=void 0;const a=s(650),i=s(772),n=s(566);class o extends i.Node{constructor(){super()}setupIO(){this.addTerminals([{type:i.TerminalType.OUT,name:"array",dataType:"array"}])}created(e){const{width:t=180,name:s="Array Source",style:a={},state:i={}}=e;this.width=t,this.name=s,this.state=Object.assign(Object.assign({},o.DefaultState),i),this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners(),this.checkNumber(),this.checkRange()}process(){this.checkNumber(),this.checkRange();let e=[];if(this.state.range)for(let t=this.state.min;t<=this.state.max;t+=this.state.step)e.push(t);else if(!this.arrayInput.inputEl.validity.patternMismatch){if(!this.arrayInput.value)return;e=this.arrayInput.value.split(","),this.state.number&&(e=e.map((e=>Number(e.trim()))))}this.setOutputs(0,e)}checkNumber(){this.rangeLayout.visible=this.state.number}checkRange(){this.state.number&&this.state.range?(this.arrayInput.visible=!1,this.rangeStack.visible=!0):(this.arrayInput.visible=!0,this.rangeStack.visible=!1)}setupUI(){this.numberToggle=this.createUI("core/toggle",{propName:"number",input:!0,output:!0,height:10,style:{grow:.2}}),this.rangeToggle=this.createUI("core/toggle",{propName:"range",input:!0,output:!0,height:10,style:{grow:.2}}),this.rangeLayout=this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Range ?",style:{grow:.4}}),this.rangeToggle],style:{spacing:10}}),this.minInput=this.createUI("core/input",{propName:"min",height:20,style:{type:n.InputType.Number,grow:.4,step:"any"}}),this.maxInput=this.createUI("core/input",{propName:"max",height:20,style:{type:n.InputType.Number,grow:.4,step:"any"}});let e=this.createUI("core/x-layout",{childs:[this.minInput,this.createUI("core/label",{text:"to",style:{grow:.2,align:a.Align.Center}}),this.maxInput],style:{spacing:5}});this.stepInput=this.createUI("core/input",{propName:"step",height:20,style:{type:n.InputType.Number,step:"any",grow:.6}}),this.rangeStack=this.createUI("core/stack",{childs:[e,this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Step",style:{grow:.4}}),this.stepInput],style:{spacing:5}})],style:{spacing:10}}),this.arrayInput=this.createUI("core/input",{propName:"rawInput",value:"",height:20,style:{pattern:"^[^,]+(s*,s*[^,]+)*$"}}),this.ui.append([this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Numbers ?",style:{grow:.4}}),this.numberToggle],style:{spacing:10}}),this.rangeLayout,this.rangeStack,this.arrayInput])}setupListeners(){this.watch("min",(()=>this.process())),this.watch("max",(()=>this.process())),this.watch("number",(()=>this.process())),this.watch("range",(()=>this.process())),this.watch("step",(()=>this.process())),this.watch("rawInput",(()=>this.process()))}}t.ArraySource=o,o.DefaultState={number:!0,range:!1,min:0,max:100,step:.1,rawInput:""}},970:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanSource=void 0;const a=s(772);class i extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"value",dataType:"boolean"}])}created(e){const{width:t=130,name:s="Boolean Source",state:a={},style:n={}}=e;this.width=t,this.name=s,this.state=Object.assign(Object.assign({},i.DefaultState),a),this.style=Object.assign({rowHeight:10},n),this.setupUI(),this.setupListeners()}process(){this.setOutputs(0,this.state.value)}setupUI(){this.toggleInput=this.createUI("core/toggle",{propName:"value",input:!0,output:!0,height:10,style:{grow:.4}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Value"}),this.toggleInput],style:{spacing:20}}))}setupListeners(){this.watch("value",(()=>this.process()))}}t.BooleanSource=i,i.DefaultState={value:!1}},883:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=void 0;const a=s(650),i=s(772),n=s(566);class o extends i.Node{constructor(){super(),this.buffer=[]}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"data",dataType:"any"},{type:a.TerminalType.OUT,name:"buffer",dataType:"array"}])}created(e){const{width:t=150,name:s="Buffer",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({size:10},e.state),i),this.setupUI(),this.setupListeners()}process(e){if(null===e[0]||void 0===e[0])return;const t=(0,a.clampMin)(this.state.size,1);this.buffer.length===t?this.buffer.shift():this.buffer.length>t&&this.buffer.splice(0,this.buffer.length-t+1),this.buffer.push(e[0]),this.setOutputs("buffer",this.buffer)}setupUI(){this.sizeInput=this.createUI("core/input",{propName:"size",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:.7}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Size",style:{grow:.3}}),this.sizeInput],style:{spacing:20}}))}setupListeners(){this.watch("size",(()=>this.process(this.getInputs())))}}t.Buffer=o},542:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Compare=void 0;const a=s(650),i=s(772);class n extends i.Node{constructor(){super()}setupIO(){this.addTerminals([{type:i.TerminalType.IN,name:"x",dataType:"any"},{type:i.TerminalType.IN,name:"y",dataType:"any"},{type:i.TerminalType.OUT,name:"result",dataType:"boolean"}])}created(e){const{width:t=150,name:s="Compare",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},n.DefaultState),i),this.setupUI(),this.setupListeners()}process(e){if(!(0,a.exists)(e[0])||!(0,a.exists)(e[1]))return;let t;switch(this.state.value){case"==":t=e[0]==e[1];break;case"===":t=e[0]===e[1];break;case"!=":t=e[0]!=e[1];break;case"!==":t=e[0]!==e[1];break;case"<":t=e[0]<e[1];break;case"<=":t=e[0]<=e[1];break;case">":t=e[0]>e[1];break;case">=":t=e[0]>=e[1];break;case"&&":t=e[0]&&e[1];break;case"||":t=e[0]||e[1];break;default:t=!1}this.setOutputs(0,t)}setupUI(){const e=this.createUI("core/select",{values:["==","===","!=","!==","<","<=",">",">=","&&","||"],propName:"value",input:!0,output:!0,height:15,style:{fontSize:"14px"}});this.ui.append(e)}setupListeners(){this.watch("value",(()=>this.process(this.getInputs())))}}t.Compare=n,n.DefaultState={value:"=="}},59:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Delay=void 0;const a=s(772),i=s(25),n=s(566);class o extends a.Node{constructor(){super(),this.eventQueue=new i.List(((e,t)=>e.timeoutId-t.timeoutId))}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"event",dataType:"event"},{type:a.TerminalType.OUT,name:"trigger",dataType:"event"}])}created(e){const{width:t=130,name:s="Delay",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},o.DefaultState),i),this.setupUI(),this.setupListeners()}process(){}triggerEvent(e){if(e===this.eventQueue.head){let e=this.eventQueue.removeFirst();this.outputs[0].emit(e.data)}}setupUI(){this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Delay",style:{grow:.3}}),this.createUI("core/input",{propName:"delay",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:.7}})],style:{spacing:10}}))}setupListeners(){this.eventQueue.on("removefirst",(()=>{for(;this.eventQueue.head&&performance.now()-this.eventQueue.head.data.start>=this.state.delay;){let e=this.eventQueue.removeFirst(!1);this.outputs[0].emit(e.data)}})),this.inputs[0].on("event",((e,t)=>{let s=new i.ListNode;s.data={data:t,timeoutId:window.setTimeout((()=>this.triggerEvent(s)),this.state.delay),start:performance.now()},this.eventQueue.append(s)})),this.flow.on("start",(()=>{this.eventQueue.forEach((e=>{e.data.start=performance.now()+e.data.remaining-this.state.delay,e.data.timeoutId=window.setTimeout((()=>this.triggerEvent(e)),e.data.remaining)}))})),this.flow.on("stop",(()=>{this.eventQueue.forEach((e=>{clearTimeout(e.data.timeoutId),e.data.remaining=performance.now()-e.data.start}))}))}}t.Delay=o,o.DefaultState={delay:0}},779:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FileSource=void 0;const a=s(772);class i extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"file",dataType:"file"}])}created(e){const{width:t=130,name:s="File Source",style:a={},state:n={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},i.DefaultState),n),this.setupUI(),this.setupListeners()}process(){this.setOutputs(0,this.state.file)}setupUI(){this.fileInput=this.createUI("core/source",{propName:"file",input:!0,output:!0,height:20}),this.ui.append(this.fileInput)}setupListeners(){this.watch("file",(()=>this.process()))}}t.FileSource=i,i.DefaultState={file:null}},891:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalEvent=void 0;const a=s(772),i=s(700),n=s(25),o=s(566);class r extends a.Node{constructor(){super(),this.eventId=-1}setupIO(e){this.addTerminals([{type:e.globalEventType===i.GlobalEventType.Emitter?a.TerminalType.IN:a.TerminalType.OUT,name:e.globalEventType===i.GlobalEventType.Emitter?"emit":"receive",dataType:"event"}])}created(e){this.globalEventName=e.globalEventName,this.globalEventType=e.globalEventType;const{width:t=150,name:s="Global Event",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},r.DefaultState),i),this.setupUI(),this.setupListeners()}process(){}setupUI(){this.eventInput=this.createUI("core/input",{propName:"name",height:20,style:{type:o.InputType.Text,grow:.6}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Event",style:{grow:.4}}),this.eventInput],style:{spacing:10}}))}setupListeners(){this.globalEventType===i.GlobalEventType.Emitter?this.inputs[0].on("event",((e,t)=>this.flow.globalEvents.call(this.state.name,t))):this.eventId=this.flow.globalEvents.on(this.state.name,(e=>this.outputs[0].emit(e))),this.watch("name",(e=>{this.flow.globalEvents.off(e,this.eventId),this.eventId=this.flow.globalEvents.on(this.state.name,(e=>this.outputs[0].emit(e)))}))}}t.GlobalEvent=r,r.DefaultState={name:(0,n.uuid)()}},776:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JsonSource=void 0;const a=s(772),i=s(25),n=s(566);class o extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"value",dataType:"any"}])}created(e){const{width:t=150,name:s="JSON Source",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign({value:""},i),this.setupUI(),this.setupListeners()}process(){if(this.input.value)try{const e=JSON.parse(this.input.value);this.setOutputs(0,e)}catch(e){this.input.inputEl.style.backgroundColor="red",i.Log.error("JSON parse error",e)}}setupUI(){this.input=this.createUI("core/input",{propName:"value",value:"",input:!0,output:!0,height:20,style:{type:n.InputType.Text,grow:.7}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Value",style:{grow:.3}}),this.input],style:{spacing:20}}))}setupListeners(){this.watch("value",(()=>this.process()))}}t.JsonSource=o},213:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Log=void 0;const a=s(772),i=s(25);class n extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"Log 1",dataType:"event"},{type:a.TerminalType.IN,name:"Log 2",dataType:"any"}])}created(e){const{width:t=170,name:s="Log",style:a={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners()}process(){}addNewTerminal(e){this.addTerminal({type:a.TerminalType.IN,dataType:"event"===e?e:"any",name:"Log "+(this.inputs.length+1)}).on(e,((e,t)=>i.Log.log(e.name,t)))}setupUI(){this.addEventButton=this.createUI("core/button",{text:"Add Event",style:{grow:.5}}),this.addDataButton=this.createUI("core/button",{text:"Add Data",style:{grow:.5}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.addEventButton,this.addDataButton],style:{spacing:20}}))}setupListeners(){this.inputs.forEach((e=>{"event"===e.dataType?e.on("event",((e,t)=>i.Log.log(e.name+":",t))):e.on("data",((e,t)=>i.Log.log(e.name+":",t)))})),this.addEventButton.on("click",(()=>this.addNewTerminal("event"))),this.addDataButton.on("click",(()=>this.addNewTerminal("data")))}}t.Log=n},376:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NumberRange=void 0;const a=s(650),i=s(772),n=s(566);class o extends i.Node{constructor(){super(),this.startValue=0,this.value=0}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"trigger",dataType:"event"},{type:a.TerminalType.IN,name:"reset",dataType:"event"},{type:a.TerminalType.OUT,name:"value",dataType:"number"}])}created(e){const{width:t=200,name:s="Number Range",state:a={},style:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},i),this.state=Object.assign(Object.assign({},o.DefaultState),a),this.setupUI(),this.setupListeners()}process(){this.value=(0,a.clamp)(this.value+this.state.step,this.state.min,this.state.max),this.state.loop&&(this.value=this.startValue,this.setOutputs(0,this.value))}setupUI(){this.minInput=this.createUI("core/input",{propName:"min",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:.3,step:"any"}}),this.maxInput=this.createUI("core/input",{propName:"max",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:.3,step:"any"}}),this.stepInput=this.createUI("core/input",{propName:"step",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:.3,step:"any"}}),this.loopToggle=this.createUI("core/toggle",{propName:"loop",input:!0,output:!0,height:10,style:{grow:.2}}),this.ui.append([this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Min",style:{grow:.2}}),this.minInput,this.createUI("core/label",{text:"Max",style:{grow:.2}}),this.maxInput],style:{spacing:5}}),this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Step",style:{grow:.2}}),this.stepInput],style:{spacing:5}}),this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Loop ?",style:{grow:.2}}),this.loopToggle],style:{spacing:10}})])}setupListeners(){this.watch("min",(()=>this.process())),this.watch("max",(()=>this.process())),this.watch("step",(()=>this.process())),this.watch("loop",(()=>this.process())),this.inputs[0].on("event",(()=>this.process())),this.inputs[1].on("event",(()=>this.value=this.state.min))}}t.NumberRange=o,o.DefaultState={min:0,max:100,step:1,loop:!1}},215:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NumberSource=void 0;const a=s(772),i=s(566);class n extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"value",dataType:"number"}])}created(e){const{width:t=160,name:s="Number Source",state:a={},style:i={}}=e;this.width=t,this.name=s,this.state=Object.assign(Object.assign({},n.DefaultState),a),this.style=Object.assign({rowHeight:10},i),this.setupUI(),this.setupListeners()}process(){this.input.style.step=this.state.fractional?"any":"",this.setOutputs(0,this.state.fractional?this.state.value:Math.floor(this.state.value))}setupUI(){this.fractionalToggle=this.createUI("core/toggle",{propName:"fractional",input:!0,output:!0,height:10,style:{grow:.2}}),this.input=this.createUI("core/input",{value:0,propName:"value",input:!0,output:!0,height:20,style:{type:i.InputType.Number,grow:.6,step:this.state.fractional?"any":""}}),this.ui.append([this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Value",style:{grow:.4}}),this.input],style:{spacing:20}}),this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Fractional ?",style:{grow:.5}}),this.fractionalToggle],style:{spacing:20}})])}setupListeners(){this.watch("fractional",(()=>this.process())),this.watch("value",(()=>this.process())),this.outputs[0].on("connect",(()=>this.process())),this.on("process",(()=>this.process()))}}t.NumberSource=n,n.DefaultState={fractional:!1,value:0}},696:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Property=void 0;const a=s(772);class i extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"object",dataType:"any"},{type:a.TerminalType.IN,name:"key",dataType:"string"},{type:a.TerminalType.OUT,name:"value",dataType:"any"}])}created(e){const{width:t=130,name:s="Property",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a)}process(e){e[0]&&this.setOutputs(0,e[0][e[1]])}}t.Property=i},388:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Random=void 0;const a=s(772),i=s(25),n=s(566);class o extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"trigger",dataType:"event"},{type:a.TerminalType.OUT,name:"value",dataType:"number"}])}created(e){const{width:t=150,name:s="Random",style:a={},state:i={}}=e;this.width=t,this.name=s,this.state=Object.assign(Object.assign({},o.DefaultState),i),this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners()}process(){let e;e=this.state.fractional?(0,i.getRandom)(this.state.min,this.state.max):Math.floor((0,i.getRandom)(Math.floor(this.state.min),Math.floor(this.state.max))),this.setOutputs(0,e)}setupUI(){this.minInput=this.createUI("core/input",{propName:"min",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:1,step:"any"}}),this.maxInput=this.createUI("core/input",{propName:"max",input:!0,output:!0,height:20,style:{type:n.InputType.Number,grow:1,step:"any"}}),this.fractionalToggle=this.createUI("core/toggle",{propName:"fractional",input:!0,output:!0,height:10,style:{grow:.2}}),this.ui.append([this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Min:",style:{grow:.3}}),this.minInput],style:{spacing:20}}),this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Max:",style:{grow:.3}}),this.maxInput],style:{spacing:20}}),this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Fractional ?",style:{grow:.8}}),this.fractionalToggle],style:{spacing:10}})])}setupListeners(){this.watch("min",(()=>this.process())),this.watch("max",(()=>this.process())),this.watch("fractional",(()=>this.process())),this.inputs[0].on("event",(()=>this.process()))}}t.Random=o,o.DefaultState={min:0,max:100,fractional:!1}},505:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringSource=void 0;const a=s(772),i=s(566);class n extends a.Node{constructor(){super(),this.process=()=>this.setOutputs(0,this.state.value)}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"value",dataType:"string"}])}created(e){const{width:t=160,name:s="String Source",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners()}setupUI(){this.input=this.createUI("core/input",{value:"",propName:"value",input:!0,output:!0,height:20,style:{type:i.InputType.Text,grow:.7}}),this.ui.append(this.createUI("core/x-layout",{childs:[this.createUI("core/label",{text:"Value",style:{grow:.3}}),this.input],style:{spacing:10}}))}setupListeners(){this.watch("value",(()=>this.process()))}}t.StringSource=n,n.DefaultState={value:""}},795:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncData=void 0;const a=s(650),i=s(772);class n extends i.Node{constructor(){super(),this.eventIds=[],this.hold={}}setupIO(e){if(this.addTerminals([{type:i.TerminalType.IN,name:"Data 1",dataType:"any"},{type:i.TerminalType.IN,name:"Data 2",dataType:"any"},{type:i.TerminalType.OUT,name:"synced",dataType:"any"}]),(0,a.exists)(e.noOfInputs))for(let t=0;t<e.noOfInputs-2;t++)this.addTerminal({type:i.TerminalType.IN,dataType:"any",name:"Data "+(this.inputs.length+1)})}created(e){const{width:t=160,name:s="Sync Data",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},n.DefaultState),i),this.setupUI(),this.setupListeners()}process(){const e=[];for(let t of this.inputs){if(!this.hold.hasOwnProperty(t.id))return;e.push(this.hold[t.id])}"full"===this.state.syncType&&(this.state.hold={}),this.outputs[0].emit(e);for(let e of this.inputs)if(e.connectors.length>0&&void 0===e.getData())return;this.setOutputs(0,this.getInputs())}setupUI(){this.syncTypeInput=this.createUI("core/radio-group",{values:["partial","full"],selected:this.state.syncType,propName:"syncType",height:20}),this.addButton=this.createUI("core/button",{text:"Add",input:!0,output:!0,height:20}),this.ui.append([this.syncTypeInput,this.addButton])}setupListeners(){this.addButton.on("click",(()=>{const e=this.addTerminal({type:i.TerminalType.IN,dataType:"any",name:"Data "+(this.inputs.length+1)});this.eventIds.push(e.on("data",((e,t)=>{this.hold[e.id]=t,this.process()})))}));for(let e of this.inputs)this.eventIds.push(e.on("data",((e,t)=>{this.hold[e.id]=t,this.process()})))}}t.SyncData=n,n.DefaultState={syncType:"partial"}},79:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncEvent=void 0;const a=s(650),i=s(772);class n extends i.Node{constructor(){super(),this.hold={}}setupIO(e){if(this.addTerminals([{type:i.TerminalType.IN,name:"Event 1",dataType:"event"},{type:i.TerminalType.IN,name:"Event 2",dataType:"event"},{type:i.TerminalType.OUT,name:"synced",dataType:"event"}]),(0,a.exists)(e.noOfEvents))for(let t=0;t<e.noOfEvents-2;t++)this.addTerminal({type:i.TerminalType.IN,dataType:"event",name:"Event "+(this.inputs.length+1)})}created(e){const{width:t=160,name:s="Sync Event",style:a={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners()}process(){let e=[];for(let t of this.inputs){if(!this.hold.hasOwnProperty(t.id))return;e.push(this.hold[t.id])}this.hold={},this.outputs[0].emit(e)}setupUI(){this.addButton=this.createUI("core/button",{text:"Add",input:!0,output:!0,height:20}),this.ui.append(this.addButton)}setupListeners(){this.inputs.forEach((e=>e.on("event",((e,t)=>{this.hold[e.id]=t,this.process()})))),this.addButton.on("click",(()=>{this.addTerminal({type:i.TerminalType.IN,dataType:"event",name:"Event "+(this.inputs.length+1)}).on("event",((e,t)=>{this.hold[e.id]=t,this.process()}))}))}}t.SyncEvent=n},351:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Timer=void 0;const a=s(772),i=s(566);class n extends a.Node{constructor(){super(),this.lastTrigger=Number.MIN_VALUE}setupIO(){this.addTerminals([{type:a.TerminalType.OUT,name:"timer",dataType:"event"}])}created(e){const{width:t=120,name:s="Timer",style:a={},state:i={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.state=Object.assign(Object.assign({},n.DefaultState),i),this.setupUI(),this.setupListeners()}process(){}setupUI(){this.ui.append(this.createUI("core/input",{propName:"delay",height:20,style:{type:i.InputType.Number}}))}setupListeners(){this.flow.on("tickreset",(()=>this.lastTrigger=Number.MIN_VALUE)),this.flow.on("tick",(()=>{let e=this.flow.flowConnect.time;e-this.lastTrigger>=this.state.delay&&(this.outputs[0].emit(this.state.emitValue),this.lastTrigger=e)}))}}t.Timer=n,n.DefaultState={delay:1e3,emitValue:null}},589:function(e,t,s){var a=this&&this.__awaiter||function(e,t,s,a){return new(s||(s=Promise))((function(i,n){function o(e){try{p(a.next(e))}catch(e){n(e)}}function r(e){try{p(a.throw(e))}catch(e){n(e)}}function p(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,r)}p((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ToArray=void 0;const i=s(772);class n extends i.Node{constructor(){super()}setupIO(e){this.addTerminals(e.noOfInputs&&e.noOfInputs>0?new Array(e.noOfInputs).fill(null).map(((e,t)=>({type:i.TerminalType.IN,name:"In "+(t+1),dataType:"any"}))):[{type:i.TerminalType.IN,name:"In 1",dataType:"any"}]),this.addTerminal({type:i.TerminalType.OUT,name:"out",dataType:"array"})}created(e){const{width:t=100,name:s="To Array",style:a={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a),this.setupUI(),this.setupListeners()}process(e){this.setOutputs(0,[...e])}setupUI(){this.addButton=this.createUI("core/button",{text:"Add",style:{grow:.5}}),this.ui.append(this.addButton)}setupListeners(){this.addButton.on("click",(()=>this.addTerminal({type:i.TerminalType.IN,dataType:"any",name:"In "+this.inputs.length+1})))}serialize(e){const t=Object.create(null,{serialize:{get:()=>super.serialize}});return a(this,void 0,void 0,(function*(){const s=yield t.serialize.call(this,e);return s.noOfInputs=this.inputs.length,s}))}}t.ToArray=n},789:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToVector=void 0;const a=s(772),i=s(25);class n extends a.Node{constructor(){super()}setupIO(){this.addTerminals([{type:a.TerminalType.IN,name:"x",dataType:"any"},{type:a.TerminalType.IN,name:"y",dataType:"any"},{type:a.TerminalType.OUT,name:"vector",dataType:"any"}])}created(e){const{width:t=100,name:s="To Vector",style:a={}}=e;this.width=t,this.name=s,this.style=Object.assign({rowHeight:10},a)}process(e){if("number"==typeof e[0]&&"number"==typeof e[1])this.setOutputs(0,{x:e[0],y:e[1]});else if(Array.isArray(e[0])&&Array.isArray(e[1])){let t=[];for(let s=0;s<e[0].length;s++)t.push({x:e[0][s],y:e[1][s]});this.setOutputs(0,t)}else i.Log.error("Type mismatch: Inputs to standard node 'ToVector' should be of same type")}}t.ToVector=n},650:e=>{e.exports={AVLTree,AVLTreeNode,Align,BiMap,Button,CanvasType,Color,Connector,Container,Dial,Display,Envelope,Evaluator,Flow,FlowConnect,FlowConnectState,FlowState,GlobalEventType,Graph,GraphNode,Group,Hooks,HorizontalLayout,Image,Input,InputType,LOD,Label,Lexer,List,ListNode,Log,LogLevel,Node,NodeButton,NodeState,Parser,RadioGroup,Select,Slider,Slider2D,Source,Stack,SubFlowNode,Terminal,TerminalType,Toggle,Token,TokenType,TunnelNode,UINode,VSlider,Vector,ViewPort,binarySearch,canConnect,capitalize,clamp,clampMax,clampMin,cloneAudioBuffer,denormalize,exists,getRandom,intersects,isEmpty,isInRange,isVector,lerp,noop,normalize,uuid}},25:e=>{e.exports={AVLTree,AVLTreeNode,BiMap,Evaluator,Lexer,List,ListNode,Log,LogLevel,Parser,Token,TokenType,binarySearch,canConnect,capitalize,clamp,clampMax,clampMin,cloneAudioBuffer,denormalize,exists,getRandom,intersects,isEmpty,isInRange,isVector,lerp,noop,normalize,uuid}},700:e=>{e.exports={Align,GlobalEventType,LOD,ViewPort}},566:e=>{e.exports={Button,CanvasType,Container,Dial,Display,Envelope,HorizontalLayout,Image,Input,InputType,Label,RadioGroup,Select,Slider,Slider2D,Source,Stack,Toggle,UINode,VSlider}},772:e=>{e.exports={Color,Connector,Flow,FlowState,Graph,GraphNode,Group,Hooks,Node,NodeButton,NodeState,SubFlowNode,Terminal,TerminalType,TunnelNode,Vector}}},t={};function s(a){var i=t[a];if(void 0!==i)return i.exports;var n=t[a]={exports:{}};return e[a].call(n.exports,n,n.exports,s),n.exports}var a={};(()=>{var e=a;Object.defineProperty(e,"__esModule",{value:!0});const t=s(650),i=s(351),n=s(213),o=s(883),r=s(589),p=s(822),l=s(689),u=s(388),h=s(970),c=s(776),d=s(215),y=s(505),m=s(779),g=s(542),T=s(696),I=s(79),v=s(795),b=s(59),w=s(789),f=s(376),N=s(891);t.FlowConnect.register({type:"node",name:"common/timer"},i.Timer),t.FlowConnect.register({type:"node",name:"common/log"},n.Log),t.FlowConnect.register({type:"node",name:"common/buffer"},o.Buffer),t.FlowConnect.register({type:"node",name:"common/to-array"},r.ToArray),t.FlowConnect.register({type:"node",name:"common/array-index"},p.ArrayIndex),t.FlowConnect.register({type:"node",name:"common/array-source"},l.ArraySource),t.FlowConnect.register({type:"node",name:"common/random"},u.Random),t.FlowConnect.register({type:"node",name:"common/boolean-source"},h.BooleanSource),t.FlowConnect.register({type:"node",name:"common/json-source"},c.JsonSource),t.FlowConnect.register({type:"node",name:"common/number-source"},d.NumberSource),t.FlowConnect.register({type:"node",name:"common/string-source"},y.StringSource),t.FlowConnect.register({type:"node",name:"common/file-source"},m.FileSource),t.FlowConnect.register({type:"node",name:"common/compare"},g.Compare),t.FlowConnect.register({type:"node",name:"common/property"},T.Property),t.FlowConnect.register({type:"node",name:"common/sync-event"},I.SyncEvent),t.FlowConnect.register({type:"node",name:"common/sync-data"},v.SyncData),t.FlowConnect.register({type:"node",name:"common/delay"},b.Delay),t.FlowConnect.register({type:"node",name:"common/to-vector"},w.ToVector),t.FlowConnect.register({type:"node",name:"common/number-range"},f.NumberRange),t.FlowConnect.register({type:"node",name:"common/global-event"},N.GlobalEvent)})(),(window.StandardNodes=window.StandardNodes||{}).Common=a})();
//# sourceMappingURL=common.js.map