@web-noise/core 0.0.12-fix4 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/lib.js CHANGED
@@ -1,2 +1,2 @@
1
- import{useState as e,useEffect as r,version as t}from"react";function a(e,r,t,a){Object.defineProperty(e,r,{get:t,set:a,enumerable:!0,configurable:!0})}var n={};a(n,"useWorker",()=>o),a(n,"useMessageChannel",()=>l);let o=t=>{let[a,n]=e(null);return r(()=>{let e=new Worker(t);return n(e),()=>{e?.terminate(),n(null)}},[]),a};console.log(888888,`React version: ${t}`);let l=()=>{let[t,a]=e(null);return r(()=>{let e=new MessageChannel;return e.port2.start(),a(e),()=>{a(null),e.port2.close()}},[]),t};var s={};a(s,"setParameterValue",()=>u),a(s,"fileToBase64",()=>c);let u=(e,r,t)=>{void 0!==r&&e.setValueAtTime(r,t.currentTime)},c=e=>new Promise((r,t)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>r(a.result?.toString()||""),a.onerror=e=>t(e)});Object.keys(s).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:function(){return s[e]}})});export{o as useWorker,l as useMessageChannel,u as setParameterValue,c as fileToBase64};
1
+ import{useState as e,useEffect as r}from"react";function t(e,r,t,a){Object.defineProperty(e,r,{get:t,set:a,enumerable:!0,configurable:!0})}var a={};t(a,"useWorker",()=>n),t(a,"useMessageChannel",()=>l);let n=t=>{let[a,n]=e(null);return r(()=>{let e=new Worker(t);return n(e),()=>{e?.terminate(),n(null)}},[]),a},l=()=>{let[t,a]=e(null);return r(()=>{let e=new MessageChannel;return e.port2.start(),a(e),()=>{a(null),e.port2.close()}},[]),t};var o={};t(o,"setParameterValue",()=>s),t(o,"fileToBase64",()=>u);let s=(e,r,t)=>{void 0!==r&&e.setValueAtTime(r,t.currentTime)},u=e=>new Promise((r,t)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>r(a.result?.toString()||""),a.onerror=e=>t(e)});Object.keys(o).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(a,e)||Object.defineProperty(a,e,{enumerable:!0,get:function(){return o[e]}})});export{n as useWorker,l as useMessageChannel,s as setParameterValue,u as fileToBase64};
2
2
  //# sourceMappingURL=lib.js.map
@@ -1 +1 @@
1
- {"mappings":"A,O,Y,C,C,a,C,C,W,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,C,E,E,E,Y,I,G,E,E,oB,I,GGEO,IAAM,EAAY,AAAC,IACxB,GAAM,CAAC,EAAQ,EAAU,CAAG,AAAA,EAAwB,MAWpD,OATA,AAAA,EAAU,KACR,IAAM,EAAY,IAAI,OAAO,GAE7B,OADA,EAAU,GACH,KACL,GAAW,YACX,EAAU,KACZ,CACF,EAAG,EAAE,EAEE,CACT,ECbA,QAAQ,GAAG,CAAC,OAAQ,CAAA,eAAA,EAAkB,EAAA,CAAS,EAExC,IAAM,EAAoB,KAC/B,GAAM,CAAC,EAAS,EAAW,CAAG,AAAA,EAAgC,MAU9D,OATA,AAAA,EAAU,KACR,IAAM,EAAa,IAAI,eAGvB,OAFA,EAAW,KAAK,CAAC,KAAK,GACtB,EAAW,GACJ,KACL,EAAW,MACX,EAAW,KAAK,CAAC,KAAK,EACxB,CACF,EAAG,EAAE,EACE,CACT,E,I,E,C,E,E,E,oB,I,G,E,E,e,I,GChBO,IAAM,EAAoB,CAC/B,EACA,EACA,KAEqB,KAAA,IAAV,GAGX,EAAM,cAAc,CAAC,EAAO,EAAa,WAAW,CACtD,EAEa,EAAe,AAAC,GACpB,IAAI,QAAQ,CAAC,EAAS,KAC3B,IAAM,EAAS,IAAI,WACnB,EAAO,aAAa,CAAC,GACrB,EAAO,MAAM,CAAG,IAAM,EAAQ,EAAO,MAAM,EAAE,YAAc,IAC3D,EAAO,OAAO,CAAG,AAAC,GAAU,EAAO,EACrC,G,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,A,C,C,E,A,C,E,U,K,S,C,K,iB,C,K,iB,C,K,Y","sources":["<anon>","packages/core/lib.ts","packages/core/src/lib/index.ts","packages/core/src/lib/hooks/useWorker.ts","packages/core/src/lib/hooks/useMessageChannel.ts","packages/core/src/lib/helpers.ts"],"sourcesContent":["import {useState as $2qEeL$useState, useEffect as $2qEeL$useEffect, version as $2qEeL$version} from \"react\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $4bd7a7548349db5f$exports = {};\n\n$parcel$export($4bd7a7548349db5f$exports, \"useWorker\", () => $925e30e6078450bc$export$3a5757a785a34769);\n$parcel$export($4bd7a7548349db5f$exports, \"useMessageChannel\", () => $e0ee9b956b7c064a$export$1e86115ead375efc);\n\nconst $925e30e6078450bc$export$3a5757a785a34769 = (url)=>{\n const [worker, setWorker] = (0, $2qEeL$useState)(null);\n (0, $2qEeL$useEffect)(()=>{\n const newWorker = new Worker(url);\n setWorker(newWorker);\n return ()=>{\n newWorker?.terminate();\n setWorker(null);\n };\n }, []);\n return worker;\n};\nvar $925e30e6078450bc$export$2e2bcd8739ae039 = $925e30e6078450bc$export$3a5757a785a34769;\n\n\n\nconsole.log(888888, `React version: ${(0, $2qEeL$version)}`);\nconst $e0ee9b956b7c064a$export$1e86115ead375efc = ()=>{\n const [channel, setChannel] = (0, $2qEeL$useState)(null);\n (0, $2qEeL$useEffect)(()=>{\n const newChannel = new MessageChannel();\n newChannel.port2.start();\n setChannel(newChannel);\n return ()=>{\n setChannel(null);\n newChannel.port2.close();\n };\n }, []);\n return channel;\n};\nvar $e0ee9b956b7c064a$export$2e2bcd8739ae039 = $e0ee9b956b7c064a$export$1e86115ead375efc;\n\n\nvar $380e1488605d504c$exports = {};\n\n$parcel$export($380e1488605d504c$exports, \"setParameterValue\", () => $380e1488605d504c$export$cd440e094f060920);\n$parcel$export($380e1488605d504c$exports, \"fileToBase64\", () => $380e1488605d504c$export$25df2e315be8e003);\nconst $380e1488605d504c$export$cd440e094f060920 = (param, value, audioContext)=>{\n if (typeof value === \"undefined\") return;\n param.setValueAtTime(value, audioContext.currentTime);\n};\nconst $380e1488605d504c$export$25df2e315be8e003 = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = ()=>resolve(reader.result?.toString() || \"\");\n reader.onerror = (error)=>reject(error);\n });\n};\n\n\n$parcel$exportWildcard($4bd7a7548349db5f$exports, $380e1488605d504c$exports);\n\n\n\n\nexport {$925e30e6078450bc$export$3a5757a785a34769 as useWorker, $e0ee9b956b7c064a$export$1e86115ead375efc as useMessageChannel, $380e1488605d504c$export$cd440e094f060920 as setParameterValue, $380e1488605d504c$export$25df2e315be8e003 as fileToBase64};\n//# sourceMappingURL=lib.js.map\n","export * from \"./src/lib\";\n","export { useWorker } from \"./hooks/useWorker\";\nexport { useMessageChannel } from \"./hooks/useMessageChannel\";\nexport * from \"./helpers\";\n","import { useEffect, useState } from \"react\";\n\nexport const useWorker = (url: string | URL) => {\n const [worker, setWorker] = useState<Worker | null>(null);\n\n useEffect(() => {\n const newWorker = new Worker(url);\n setWorker(newWorker);\n return () => {\n newWorker?.terminate();\n setWorker(null);\n };\n }, []);\n\n return worker;\n};\n\nexport default useWorker;\n","import { useEffect, useState, version } from \"react\";\n\nconsole.log(888888, `React version: ${version}`);\n\nexport const useMessageChannel = () => {\n const [channel, setChannel] = useState<MessageChannel | null>(null);\n useEffect(() => {\n const newChannel = new MessageChannel();\n newChannel.port2.start();\n setChannel(newChannel);\n return () => {\n setChannel(null);\n newChannel.port2.close();\n };\n }, []);\n return channel;\n};\n\nexport default useMessageChannel;\n","export const setParameterValue = (\n param: AudioParam,\n value: number | undefined,\n audioContext: AudioContext,\n): void => {\n if (typeof value === \"undefined\") {\n return;\n }\n param.setValueAtTime(value, audioContext.currentTime);\n};\n\nexport const fileToBase64 = (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result?.toString() || \"\");\n reader.onerror = (error) => reject(error);\n });\n};\n"],"names":["useState","$2qEeL$useState","useEffect","$2qEeL$useEffect","version","$2qEeL$version","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$4bd7a7548349db5f$exports","$925e30e6078450bc$export$3a5757a785a34769","$e0ee9b956b7c064a$export$1e86115ead375efc","url","worker","setWorker","newWorker","Worker","terminate","console","log","channel","setChannel","newChannel","MessageChannel","port2","start","close","$380e1488605d504c$exports","$380e1488605d504c$export$cd440e094f060920","$380e1488605d504c$export$25df2e315be8e003","param","value","audioContext","setValueAtTime","currentTime","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","toString","onerror","error","keys","forEach","key","prototype","hasOwnProperty","call","source","useWorker","useMessageChannel","setParameterValue","fileToBase64"],"version":3,"file":"lib.js.map"}
1
+ {"mappings":"A,O,Y,C,C,a,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,C,E,E,E,Y,I,G,E,E,oB,I,GGEO,IAAM,EAAY,AAAC,IACxB,GAAM,CAAC,EAAQ,EAAU,CAAG,AAAA,EAAwB,MAWpD,OATA,AAAA,EAAU,KACR,IAAM,EAAY,IAAI,OAAO,GAE7B,OADA,EAAU,GACH,KACL,GAAW,YACX,EAAU,KACZ,CACF,EAAG,EAAE,EAEE,CACT,ECba,EAAoB,KAC/B,GAAM,CAAC,EAAS,EAAW,CAAG,AAAA,EAAgC,MAU9D,OATA,AAAA,EAAU,KACR,IAAM,EAAa,IAAI,eAGvB,OAFA,EAAW,KAAK,CAAC,KAAK,GACtB,EAAW,GACJ,KACL,EAAW,MACX,EAAW,KAAK,CAAC,KAAK,EACxB,CACF,EAAG,EAAE,EACE,CACT,E,I,E,C,E,E,E,oB,I,G,E,E,e,I,GCdO,IAAM,EAAoB,CAC/B,EACA,EACA,KAEqB,KAAA,IAAV,GAGX,EAAM,cAAc,CAAC,EAAO,EAAa,WAAW,CACtD,EAEa,EAAe,AAAC,GACpB,IAAI,QAAQ,CAAC,EAAS,KAC3B,IAAM,EAAS,IAAI,WACnB,EAAO,aAAa,CAAC,GACrB,EAAO,MAAM,CAAG,IAAM,EAAQ,EAAO,MAAM,EAAE,YAAc,IAC3D,EAAO,OAAO,CAAG,AAAC,GAAU,EAAO,EACrC,G,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,A,C,C,E,A,C,E,U,K,S,C,K,iB,C,K,iB,C,K,Y","sources":["<anon>","packages/core/lib.ts","packages/core/src/lib/index.ts","packages/core/src/lib/hooks/useWorker.ts","packages/core/src/lib/hooks/useMessageChannel.ts","packages/core/src/lib/helpers.ts"],"sourcesContent":["import {useState as $2qEeL$useState, useEffect as $2qEeL$useEffect} from \"react\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $4bd7a7548349db5f$exports = {};\n\n$parcel$export($4bd7a7548349db5f$exports, \"useWorker\", () => $925e30e6078450bc$export$3a5757a785a34769);\n$parcel$export($4bd7a7548349db5f$exports, \"useMessageChannel\", () => $e0ee9b956b7c064a$export$1e86115ead375efc);\n\nconst $925e30e6078450bc$export$3a5757a785a34769 = (url)=>{\n const [worker, setWorker] = (0, $2qEeL$useState)(null);\n (0, $2qEeL$useEffect)(()=>{\n const newWorker = new Worker(url);\n setWorker(newWorker);\n return ()=>{\n newWorker?.terminate();\n setWorker(null);\n };\n }, []);\n return worker;\n};\nvar $925e30e6078450bc$export$2e2bcd8739ae039 = $925e30e6078450bc$export$3a5757a785a34769;\n\n\n\nconst $e0ee9b956b7c064a$export$1e86115ead375efc = ()=>{\n const [channel, setChannel] = (0, $2qEeL$useState)(null);\n (0, $2qEeL$useEffect)(()=>{\n const newChannel = new MessageChannel();\n newChannel.port2.start();\n setChannel(newChannel);\n return ()=>{\n setChannel(null);\n newChannel.port2.close();\n };\n }, []);\n return channel;\n};\nvar $e0ee9b956b7c064a$export$2e2bcd8739ae039 = $e0ee9b956b7c064a$export$1e86115ead375efc;\n\n\nvar $380e1488605d504c$exports = {};\n\n$parcel$export($380e1488605d504c$exports, \"setParameterValue\", () => $380e1488605d504c$export$cd440e094f060920);\n$parcel$export($380e1488605d504c$exports, \"fileToBase64\", () => $380e1488605d504c$export$25df2e315be8e003);\nconst $380e1488605d504c$export$cd440e094f060920 = (param, value, audioContext)=>{\n if (typeof value === \"undefined\") return;\n param.setValueAtTime(value, audioContext.currentTime);\n};\nconst $380e1488605d504c$export$25df2e315be8e003 = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = ()=>resolve(reader.result?.toString() || \"\");\n reader.onerror = (error)=>reject(error);\n });\n};\n\n\n$parcel$exportWildcard($4bd7a7548349db5f$exports, $380e1488605d504c$exports);\n\n\n\n\nexport {$925e30e6078450bc$export$3a5757a785a34769 as useWorker, $e0ee9b956b7c064a$export$1e86115ead375efc as useMessageChannel, $380e1488605d504c$export$cd440e094f060920 as setParameterValue, $380e1488605d504c$export$25df2e315be8e003 as fileToBase64};\n//# sourceMappingURL=lib.js.map\n","export * from \"./src/lib\";\n","export { useWorker } from \"./hooks/useWorker\";\nexport { useMessageChannel } from \"./hooks/useMessageChannel\";\nexport * from \"./helpers\";\n","import { useEffect, useState } from \"react\";\n\nexport const useWorker = (url: string | URL) => {\n const [worker, setWorker] = useState<Worker | null>(null);\n\n useEffect(() => {\n const newWorker = new Worker(url);\n setWorker(newWorker);\n return () => {\n newWorker?.terminate();\n setWorker(null);\n };\n }, []);\n\n return worker;\n};\n\nexport default useWorker;\n","import { useEffect, useState } from \"react\";\n\nexport const useMessageChannel = () => {\n const [channel, setChannel] = useState<MessageChannel | null>(null);\n useEffect(() => {\n const newChannel = new MessageChannel();\n newChannel.port2.start();\n setChannel(newChannel);\n return () => {\n setChannel(null);\n newChannel.port2.close();\n };\n }, []);\n return channel;\n};\n\nexport default useMessageChannel;\n","export const setParameterValue = (\n param: AudioParam,\n value: number | undefined,\n audioContext: AudioContext,\n): void => {\n if (typeof value === \"undefined\") {\n return;\n }\n param.setValueAtTime(value, audioContext.currentTime);\n};\n\nexport const fileToBase64 = (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result?.toString() || \"\");\n reader.onerror = (error) => reject(error);\n });\n};\n"],"names":["useState","$2qEeL$useState","useEffect","$2qEeL$useEffect","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$4bd7a7548349db5f$exports","$925e30e6078450bc$export$3a5757a785a34769","$e0ee9b956b7c064a$export$1e86115ead375efc","url","worker","setWorker","newWorker","Worker","terminate","channel","setChannel","newChannel","MessageChannel","port2","start","close","$380e1488605d504c$exports","$380e1488605d504c$export$cd440e094f060920","$380e1488605d504c$export$25df2e315be8e003","param","value","audioContext","setValueAtTime","currentTime","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","toString","onerror","error","keys","forEach","key","prototype","hasOwnProperty","call","source","useWorker","useMessageChannel","setParameterValue","fileToBase64"],"version":3,"file":"lib.js.map"}
package/dist/main.js CHANGED
@@ -1,4 +1,4 @@
1
- var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("react/jsx-runtime"),$fmhGi$emotionreact=require("@emotion/react"),$fmhGi$emotionstyled=require("@emotion/styled"),$fmhGi$nanoid=require("nanoid"),$fmhGi$react=require("react"),$fmhGi$reacticonsfa6=require("react-icons/fa6"),$fmhGi$reacticonsmd=require("react-icons/md"),$fmhGi$webnoisefetch=require("@web-noise/fetch"),$fmhGi$reactflow=require("reactflow"),$fmhGi$zustand=require("zustand"),$fmhGi$webnoisepatch=require("@web-noise/patch"),$fmhGi$jsondiffpatch=require("jsondiffpatch"),$fmhGi$emotioncss=require("@emotion/css");require("reactflow/dist/style.css");var $fmhGi$reactcontexify=require("react-contexify");require("react-contexify/dist/ReactContexify.css");var $fmhGi$jsfiledownload=require("js-file-download"),$fmhGi$hotkeysjs=require("hotkeys-js"),$fmhGi$reactdom=require("react-dom"),$fmhGi$reactfiledrop=require("react-file-drop"),$fmhGi$reacticonsfa=require("react-icons/fa"),$fmhGi$reresizable=require("re-resizable"),$fmhGi$reactgridlayout=require("react-grid-layout");require("react-grid-layout/css/styles.css");var $fmhGi$reacticonsai=require("react-icons/ai"),$fmhGi$reacticonsrx=require("react-icons/rx"),$fmhGi$reactmoderndrawer=require("react-modern-drawer");require("react-modern-drawer/dist/index.css");var $fmhGi$marked=require("marked");function $parcel$export(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}$parcel$export(module.exports,"Editor",()=>$985a60451d015e23$export$2e2bcd8739ae039),$parcel$export(module.exports,"EDITOR_DEFAULTS",()=>$985a60451d015e23$export$d31000d36961d6c2),$parcel$export(module.exports,"Wire",()=>$89d7409bb8708118$export$2e2bcd8739ae039),$parcel$export(module.exports,"WNNode",()=>$964548e125933395$export$361064385d50ec44),$parcel$export(module.exports,"TitleBar",()=>$964548e125933395$export$7e0b3af1e60a3273),$parcel$export(module.exports,"PortsPanel",()=>$964548e125933395$export$bfd3bd1fa283e3c6),$parcel$export(module.exports,"OutputPorts",()=>$964548e125933395$export$af4f9b41fc32ed9e),$parcel$export(module.exports,"OutputHandle",()=>$964548e125933395$export$496e5e1ee1696f64),$parcel$export(module.exports,"InputPorts",()=>$964548e125933395$export$f1afba0ff9ea1277),$parcel$export(module.exports,"InputHandle",()=>$964548e125933395$export$9ea0feffc20ee81),$parcel$export(module.exports,"Port",()=>$964548e125933395$export$a2d375858cc72119),$parcel$export(module.exports,"Modal",()=>$aecb885983569300$export$2e2bcd8739ae039),$parcel$export(module.exports,"EditableLabel",()=>$35ac08ca6453b68a$export$2e2bcd8739ae039),$parcel$export(module.exports,"useAudioNode",()=>$4772dd2712cec46e$export$2e2bcd8739ae039),$parcel$export(module.exports,"useNode",()=>$9f09b57f57ee1ef4$export$2e2bcd8739ae039),$parcel$export(module.exports,"useTheme",()=>$9a3ae56a32a010df$export$2e2bcd8739ae039),$parcel$export(module.exports,"useStore",()=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039),$parcel$export(module.exports,"theme",()=>$92db495027db752c$export$2e2bcd8739ae039),$parcel$export(module.exports,"isAudio",()=>$4f5dab380e6c5337$export$31c2336f657dc59f),$parcel$export(module.exports,"isPatch",()=>$4f5dab380e6c5337$export$e698b79c63b74136),$parcel$export(module.exports,"PortType",()=>$07dabc4e7d66bab5$export$b0b7b95ee465c83c);const $07dabc4e7d66bab5$export$956b3cf15d7c363="web-noise-drag-handle",$07dabc4e7d66bab5$export$21d634b1d5d9bee3=`.${$07dabc4e7d66bab5$export$956b3cf15d7c363}`,$07dabc4e7d66bab5$export$9f05d3e6ade4c09e={rowHeight:10,cols:4};!function(e){e.Gate="gate",e.Number="number",e.Audio="audio",e.Any="any"}($07dabc4e7d66bab5$export$b0b7b95ee465c83c||($07dabc4e7d66bab5$export$b0b7b95ee465c83c={}));const $507ef2c5e9b21f79$var$generateNodeId=e=>{let t=+new Date+Math.floor(1e3*Math.random());return e?.type?`${e.type}-${t}`:t.toString()};var $507ef2c5e9b21f79$export$2e2bcd8739ae039=$507ef2c5e9b21f79$var$generateNodeId;const $5d3bd1dd89353e9d$var$nodesStateCreator=(e,t)=>({nodes:[],edges:[],onNodesChange:t=>{e(({nodes:e})=>({nodes:(0,$fmhGi$reactflow.applyNodeChanges)(t,e).map(e=>({dragHandle:$07dabc4e7d66bab5$export$21d634b1d5d9bee3,...e}))}))},onEdgesChange:t=>{e(({edges:e})=>({edges:(0,$fmhGi$reactflow.applyEdgeChanges)(t,e)}))},onConnect:t=>{e(({edges:e})=>({edges:(0,$fmhGi$reactflow.addEdge)(t,e)}))},addNode:t=>{e(({nodes:e})=>({nodes:e.concat(t)}))},setNodes:t=>{e({nodes:t})},setEdges:t=>{e({edges:t})},setNodesAndEdges:({nodes:t,edges:r})=>{e({nodes:t,edges:r})},getNodesAndEdges:()=>{let{nodes:e,edges:r}=t();return{nodes:e,edges:r}},clearElements:()=>{e({nodes:[],edges:[]})},getNode:e=>{let{nodes:r}=t();return r.find(t=>t.id===e)||null},updateNodeData:(t,r)=>{e(({nodes:e})=>({nodes:e.map(e=>e.id===t?{...e,data:{...e.data,...r}}:e)}))},nodeTypes:{},setNodeTypes:t=>e({nodeTypes:t})});var $5d3bd1dd89353e9d$export$2e2bcd8739ae039=$5d3bd1dd89353e9d$var$nodesStateCreator;const $6ed350e010f7313a$var$cloneObject=e=>JSON.parse(JSON.stringify(e)),$6ed350e010f7313a$export$b1b92d12d1c2ae0e=(e,t)=>({history:{maxHistoryLength:5,buffer:[],pointer:0,skipCollect:!1,push:r=>{let{history:a}=t(),{maxHistoryLength:o,skipCollect:$}=a;$?e({history:{...a,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:t,pointer:a}=e,$=t.slice(Math.max(a-o+1,0),a);return{history:{...e,buffer:[...$,r],pointer:Math.min(a+1,o)}}})},back:()=>{let{nodes:r,edges:a,controlPanel:o,history:$}=t(),{buffer:i,pointer:c}=$,n=i[c-1];if(!n)return;let d=$fmhGi$jsondiffpatch.reverse(n);if(!d)return;let l=$6ed350e010f7313a$var$cloneObject({nodes:r,edges:a,controlPanel:o});e({...$fmhGi$jsondiffpatch.patch(l,d),history:{...$,pointer:c-1,skipCollect:!0}})},forward:()=>{let{nodes:r,edges:a,controlPanel:o,history:$}=t(),{buffer:i,pointer:c}=$,n=i[c];if(!n)return;let d=$6ed350e010f7313a$var$cloneObject({nodes:r,edges:a,controlPanel:o});e({...$fmhGi$jsondiffpatch.patch(d,n),history:{...$,pointer:c+1,skipCollect:!0}})},clear:()=>{let{history:r}=t();e({history:{...r,buffer:[],pointer:0,skipCollect:!0}})}}}),$6ed350e010f7313a$var$COLLECT_CHANGES_DEBOUNCE_TIME=500,$6ed350e010f7313a$export$4e64751394766316=(e,t)=>{let r,a=$fmhGi$jsondiffpatch.create({propertyFilter:(e,t)=>!!(t.parent?.parent?.childName==="controlPanel"||["data","position","controlPanel"].includes(t.parent?.childName))||["controlPanel","size","edges","nodes","data","label","config","values","position","x","y"].includes(e)}),o=t();return(e,$)=>{e.currentFileIndex!==$.currentFileIndex&&t().history.clear(),clearTimeout(r),o||(o=$),r=setTimeout(()=>{let r=a.diff(o,e);o=null,r&&t().history.push(r)},500)}},$6ed350e010f7313a$var$history=e=>(t,r,a)=>{let o=$6ed350e010f7313a$export$4e64751394766316(t,r);return a.subscribe(o),e((...e)=>t(...e),r,a)};var $6ed350e010f7313a$export$2e2bcd8739ae039=$6ed350e010f7313a$var$history;const $5f9c6d90a6525940$export$e364ea0c1dfb25e5=(e,t)=>{let r=new Set(e.map(e=>e.id)),a=new Set(t.map(e=>e.id));return{added:t.filter(e=>!r.has(e.id)),removed:e.filter(e=>!a.has(e.id))}},$95fc1576dd6d8cc3$export$62647b40ff8aed70=(e,t)=>({patch:(0,$fmhGi$webnoisepatch.createPatch)(),nodesState:{}}),$95fc1576dd6d8cc3$var$audioPatch=e=>(t,r,a)=>{a.subscribe(async(e,t)=>{});let o=new Set,$={...r(),nodes:[],edges:[]};return e(async(...e)=>{let a=r(),[i]=e,c={...$,..."function"==typeof i?i({...$}):i},n=$5f9c6d90a6525940$export$e364ea0c1dfb25e5($.nodes,c.nodes),d=$5f9c6d90a6525940$export$e364ea0c1dfb25e5($.edges,c.edges);$=c;let l=n.added,s=d.added,f=d.removed,p=n.removed,{patch:h}=a;if(l.length){let e=h.registerAudioNodes(l);o.add(e),await e,o.delete(e)}if(!(s.length||f.length||p.length))return void t(...e);if(o.size)try{await Promise.all([...o.values()])}catch(e){console.log("some error",e)}s.length&&h.registerAudioConnections(s),f.length&&h.unregisterAudioConnections(f),p.length&&h.unregisterAudioNodes(p),t(...e)},r,a)};var $95fc1576dd6d8cc3$export$2e2bcd8739ae039=$95fc1576dd6d8cc3$var$audioPatch;const $4f5dab380e6c5337$export$e698b79c63b74136=e=>!("type"in e)||"patch"===e.type,$4f5dab380e6c5337$export$31c2336f657dc59f=e=>"audio"===e.type,$e240ebb0a7a2ba54$var$projectStateCreator=(e,t)=>({project:{files:[]},setProject(t){e({project:t,currentFileIndex:0})},getProject:()=>t().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:r,updateFileContent:a,project:o}=t(),$=o.files[r];$4f5dab380e6c5337$export$31c2336f657dc59f($)||a(r,{...$,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:r,project:a}=t(),o=a.files[e];"audio"===o.type?console.log("audio file. skipping"):r(o.file)},currentFileIndex:0,setCurrentFileIndex(r){let{currentFileIndex:a}=t();r!==a&&e({currentFileIndex:r})},updateFileContent(r,a){let{project:o}=t();e({project:{...o,files:o.files.map((e,t)=>t===r?{...e,...a}:e)}})},updateFileName(r,a){let{project:o}=t();e({project:{...o,files:o.files.map((e,t)=>t===r?{...e,name:a}:e)}})},addFile(r){let{project:a}=t(),o=[...a.files,r];e({project:{...a,files:o}})},deleteFile:r=>{let{project:a,currentFileIndex:o}=t();e({project:{...a,files:a.files.filter((e,t)=>r!==t)}}),r<=o&&e({currentFileIndex:o-1})}});var $e240ebb0a7a2ba54$export$2e2bcd8739ae039=$e240ebb0a7a2ba54$var$projectStateCreator;const $7d1a5bdfd7b5aa4a$export$34c5bc865219488e=(...e)=>{let[t,r]=e;return{...$5d3bd1dd89353e9d$export$2e2bcd8739ae039(...e),...$6ed350e010f7313a$export$b1b92d12d1c2ae0e(...e),...$95fc1576dd6d8cc3$export$62647b40ff8aed70(...e),...$e240ebb0a7a2ba54$export$2e2bcd8739ae039(...e),setGraph:async({nodes:e,edges:t})=>{let{patch:a,createNodes:o,createEdges:$,setNodesAndEdges:i,nodes:c,edges:n}=r();i({nodes:[],edges:[]}),await o(e),$(t)},clearGraph:()=>{let{setGraph:e}=r();e({nodes:[],edges:[]})},createNodes:async e=>{let{createNode:t}=r();await Promise.all(e.map(e=>t(e)))},createNode:e=>{let{addNode:t,nodesConfiguration:a}=r(),{type:o,id:$,data:i}=e;if(void 0===o)throw Error(`node type is not defined for node: ${$}`);t({...e,data:{...i,config:{...a[o]?.defaultConfig,...i?.config}}})},removeNode:e=>r().removeNodes([e]),removeNodes:e=>{let{edges:a,nodes:o,onNodesDelete:$,removeEdges:i,removeNodesFromControlPanel:c}=r(),n=e.map(({id:e})=>e),d=[...e,...o.filter(({parentNode:e})=>e&&n.includes(e))];c(d),i((0,$fmhGi$reactflow.getConnectedEdges)(d,a)),$(d);let l=d.map(({id:e})=>e);t({nodes:o.filter(({id:e})=>!l.includes(e))})},removeEdges:e=>{let{edges:a,onEdgesDelete:o}=r(),$=e.map(({id:e})=>e);o(e),t({edges:a.filter(({id:e})=>!$.includes(e))})},createEdges:e=>{let{patch:t,edges:a,setEdges:o}=r();o(e)},onConnect:async e=>{let{edges:t,createEdges:a}=r();a((0,$fmhGi$reactflow.addEdge)(e,t))},onEdgesDelete:e=>{let{patch:t}=r()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:t,patch:a}=r();t(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:a}=r();t({plugins:e});let o=e.reduce((e,t)=>({...e,...t.components.reduce((e,t)=>({...e,[t.type]:t}),{})}),{}),$=Object.keys(o).reduce((e,t)=>({...e,[t]:o[t].node}),{}),i=Object.keys(o).reduce((e,t)=>({...e,[t]:o[t].audioNode}),{});(0,$fmhGi$webnoisepatch.setAudioNodeTypes)(i),a($),t(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...o}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{t(({config:t})=>({config:{...t,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:t,viewport:a}=r();return{...e(),controlPanel:t,viewport:a}},setEditorState:async({nodes:e,edges:a,controlPanel:o,viewport:$})=>{let{setGraph:i}=r();await i({nodes:e,edges:a}),await new Promise(e=>setTimeout(e,1e3)),t({controlPanel:o,viewport:$})},isHelpShown:!1,toggleHelp:()=>{let{isHelpShown:e}=r();t({isHelpShown:!e})},copyBuffer:{nodes:[],edges:[]},copy:e=>{t({copyBuffer:e})},copySelectedItems:()=>{let{nodes:e,edges:t,copy:a}=r(),o=e.filter(({selected:e})=>e),$=t.filter(({selected:e})=>e);o.length&&a({nodes:o,edges:$})},pasteBuffer:(e=0,a=0)=>{let{copyBuffer:o,createNodes:$,setEdges:i,nodes:c,edges:n}=r(),{nodes:d,edges:l}=o;if(!d.length)return;t({nodes:c.map(e=>({...e,selected:!1}))});let s=d.reduce((e,t)=>!e||t.position.x<e.position.x&&t.position.y<e.position.y?t:e),f=s.position.x-e,p=s.position.y-a,{nodes:h,mapping:m}=d.reduce((e,t)=>{let r=$507ef2c5e9b21f79$export$2e2bcd8739ae039(t);return{nodes:[...e.nodes,{...t,id:r,position:{x:t.position.x-f,y:t.position.y-p},selected:!0}],mapping:{...e.mapping,[t.id]:r}}},{nodes:[],mapping:{}});$(h);let b=l.map(e=>{let t=m[e.source]||e.source,r=m[e.target]||e.target;return{...e,id:e.id.replace(e.source,t).replace(e.target,r),source:t,target:r,selected:!0}});i([...n.map(e=>({...e,selected:!1})),...b])},getControlPanelNode:e=>{let{nodesConfiguration:t}=r(),{type:a}=e;if(!a)return null;let o=t[a]?.controlPanelNode;return o||(console.error(`could not find node for type ${a}`),null)},controlPanel:{show:!0,nodes:[],size:{width:200,height:100}},showControlPanel:()=>t(({controlPanel:e})=>({controlPanel:{...e,show:!0}})),hideControlPanel:()=>t(({controlPanel:e})=>({controlPanel:{...e,show:!1}})),addNodeToControlPanel:e=>{let{nodesConfiguration:a}=r(),o=e.type?a[e.type]?.defaultConfig:{},{height:$}=o?.size||{},i={id:e.id,...$?{height:$/$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight}:{}};t(({controlPanel:e})=>({controlPanel:{...e,nodes:[...e.nodes,i]}}))},removeNodeFromControlPanel:e=>r().removeNodesFromControlPanel([e]),removeNodesFromControlPanel:e=>{let r=e.map(({id:e})=>e);t(({controlPanel:e})=>{let t=e.nodes.filter(({id:e})=>!r.includes(e));return{controlPanel:{...e,nodes:t}}})},setControlPanelNodes:e=>{t(({controlPanel:t})=>({controlPanel:{...t,nodes:e}}))},setControlPanelSize:e=>{t(({controlPanel:t})=>({controlPanel:{...t,size:e}}))},viewport:{x:0,y:0,zoom:1},setViewport:e=>t({viewport:e})}},$7d1a5bdfd7b5aa4a$var$useStore=(0,$fmhGi$zustand.create)($95fc1576dd6d8cc3$export$2e2bcd8739ae039($6ed350e010f7313a$export$2e2bcd8739ae039($7d1a5bdfd7b5aa4a$export$34c5bc865219488e)));var $7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039=$7d1a5bdfd7b5aa4a$var$useStore;const $92db495027db752c$var$LEVA_COLOR_ACCENT2_BLUE="#007bff",$92db495027db752c$var$COLOR_GREEN_PRIMARY="#14df42",$92db495027db752c$var$COLOR_WHITE_PRIMARY="#ffffff",$92db495027db752c$var$colors={elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#14df42",whitePrimary:"#ffffff",error:"#db5353"},$92db495027db752c$var$zIndex={modal:9998,controlPanel:9999,resumeContextLayout:10003},$92db495027db752c$var$theme={colors:$92db495027db752c$var$colors,zIndex:$92db495027db752c$var$zIndex};var $92db495027db752c$export$2e2bcd8739ae039=$92db495027db752c$var$theme;(0,$fmhGi$emotioncss.injectGlobal)`
1
+ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("react/jsx-runtime"),$fmhGi$emotionreact=require("@emotion/react"),$fmhGi$emotionstyled=require("@emotion/styled"),$fmhGi$nanoid=require("nanoid"),$fmhGi$react=require("react"),$fmhGi$reacticonsfa6=require("react-icons/fa6"),$fmhGi$reacticonsmd=require("react-icons/md"),$fmhGi$webnoisefetch=require("@web-noise/fetch"),$fmhGi$reactflow=require("reactflow"),$fmhGi$zustand=require("zustand"),$fmhGi$webnoisepatch=require("@web-noise/patch"),$fmhGi$jsondiffpatch=require("jsondiffpatch"),$fmhGi$emotioncss=require("@emotion/css");require("reactflow/dist/style.css");var $fmhGi$reactcontexify=require("react-contexify");require("react-contexify/dist/ReactContexify.css");var $fmhGi$jsfiledownload=require("js-file-download"),$fmhGi$hotkeysjs=require("hotkeys-js"),$fmhGi$reactdom=require("react-dom"),$fmhGi$reactfiledrop=require("react-file-drop"),$fmhGi$reacticonsfa=require("react-icons/fa"),$fmhGi$reresizable=require("re-resizable"),$fmhGi$reactgridlayout=require("react-grid-layout");require("react-grid-layout/css/styles.css");var $fmhGi$reacticonsai=require("react-icons/ai"),$fmhGi$reacticonsrx=require("react-icons/rx"),$fmhGi$reactmoderndrawer=require("react-modern-drawer");require("react-modern-drawer/dist/index.css");var $fmhGi$marked=require("marked");function $parcel$export(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}function $parcel$interopDefault(e){return e&&e.__esModule?e.default:e}$parcel$export(module.exports,"Editor",()=>$985a60451d015e23$export$2e2bcd8739ae039),$parcel$export(module.exports,"EDITOR_DEFAULTS",()=>$985a60451d015e23$export$d31000d36961d6c2),$parcel$export(module.exports,"Wire",()=>$89d7409bb8708118$export$2e2bcd8739ae039),$parcel$export(module.exports,"WNNode",()=>$964548e125933395$export$361064385d50ec44),$parcel$export(module.exports,"TitleBar",()=>$964548e125933395$export$7e0b3af1e60a3273),$parcel$export(module.exports,"PortsPanel",()=>$964548e125933395$export$bfd3bd1fa283e3c6),$parcel$export(module.exports,"OutputPorts",()=>$964548e125933395$export$af4f9b41fc32ed9e),$parcel$export(module.exports,"OutputHandle",()=>$964548e125933395$export$496e5e1ee1696f64),$parcel$export(module.exports,"InputPorts",()=>$964548e125933395$export$f1afba0ff9ea1277),$parcel$export(module.exports,"InputHandle",()=>$964548e125933395$export$9ea0feffc20ee81),$parcel$export(module.exports,"Port",()=>$964548e125933395$export$a2d375858cc72119),$parcel$export(module.exports,"Modal",()=>$aecb885983569300$export$2e2bcd8739ae039),$parcel$export(module.exports,"EditableLabel",()=>$35ac08ca6453b68a$export$2e2bcd8739ae039),$parcel$export(module.exports,"useAudioNode",()=>$4772dd2712cec46e$export$2e2bcd8739ae039),$parcel$export(module.exports,"useNode",()=>$9f09b57f57ee1ef4$export$2e2bcd8739ae039),$parcel$export(module.exports,"useTheme",()=>$9a3ae56a32a010df$export$2e2bcd8739ae039),$parcel$export(module.exports,"useStore",()=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039),$parcel$export(module.exports,"theme",()=>$92db495027db752c$export$2e2bcd8739ae039),$parcel$export(module.exports,"isAudio",()=>$4f5dab380e6c5337$export$31c2336f657dc59f),$parcel$export(module.exports,"isPatch",()=>$4f5dab380e6c5337$export$e698b79c63b74136),$parcel$export(module.exports,"PortType",()=>$07dabc4e7d66bab5$export$b0b7b95ee465c83c);const $07dabc4e7d66bab5$export$956b3cf15d7c363="web-noise-drag-handle",$07dabc4e7d66bab5$export$21d634b1d5d9bee3=`.${$07dabc4e7d66bab5$export$956b3cf15d7c363}`,$07dabc4e7d66bab5$export$9f05d3e6ade4c09e={rowHeight:10,cols:4};!function(e){e.Gate="gate",e.Number="number",e.Audio="audio",e.Any="any"}($07dabc4e7d66bab5$export$b0b7b95ee465c83c||($07dabc4e7d66bab5$export$b0b7b95ee465c83c={}));const $507ef2c5e9b21f79$var$generateNodeId=e=>{let t=+new Date+Math.floor(1e3*Math.random());return e?.type?`${e.type}-${t}`:t.toString()};var $507ef2c5e9b21f79$export$2e2bcd8739ae039=$507ef2c5e9b21f79$var$generateNodeId;const $5d3bd1dd89353e9d$var$nodesStateCreator=(e,t)=>({nodes:[],edges:[],onNodesChange:t=>{e(({nodes:e})=>({nodes:(0,$fmhGi$reactflow.applyNodeChanges)(t,e).map(e=>({dragHandle:$07dabc4e7d66bab5$export$21d634b1d5d9bee3,...e}))}))},onEdgesChange:t=>{e(({edges:e})=>({edges:(0,$fmhGi$reactflow.applyEdgeChanges)(t,e)}))},onConnect:t=>{e(({edges:e})=>({edges:(0,$fmhGi$reactflow.addEdge)(t,e)}))},addNode:t=>{e(({nodes:e})=>({nodes:e.concat(t)}))},setNodes:t=>{e({nodes:t})},setEdges:t=>{e({edges:t})},setNodesAndEdges:({nodes:t,edges:r})=>{e({nodes:t,edges:r})},getNodesAndEdges:()=>{let{nodes:e,edges:r}=t();return{nodes:e,edges:r}},clearElements:()=>{e({nodes:[],edges:[]})},getNode:e=>{let{nodes:r}=t();return r.find(t=>t.id===e)||null},updateNodeData:(t,r)=>{e(({nodes:e})=>({nodes:e.map(e=>e.id===t?{...e,data:{...e.data,...r}}:e)}))},nodeTypes:{},setNodeTypes:t=>e({nodeTypes:t})});var $5d3bd1dd89353e9d$export$2e2bcd8739ae039=$5d3bd1dd89353e9d$var$nodesStateCreator;const $6ed350e010f7313a$var$cloneObject=e=>JSON.parse(JSON.stringify(e)),$6ed350e010f7313a$export$b1b92d12d1c2ae0e=(e,t)=>({history:{maxHistoryLength:5,buffer:[],pointer:0,skipCollect:!1,push:r=>{let{history:a}=t(),{maxHistoryLength:o,skipCollect:$}=a;$?e({history:{...a,skipCollect:!1}}):e(({history:e})=>{if(!e)return{};let{buffer:t,pointer:a}=e,$=t.slice(Math.max(a-o+1,0),a);return{history:{...e,buffer:[...$,r],pointer:Math.min(a+1,o)}}})},back:()=>{let{nodes:r,edges:a,controlPanel:o,history:$}=t(),{buffer:i,pointer:c}=$,d=i[c-1];if(!d)return;let n=$fmhGi$jsondiffpatch.reverse(d);if(!n)return;let l=$6ed350e010f7313a$var$cloneObject({nodes:r,edges:a,controlPanel:o});e({...$fmhGi$jsondiffpatch.patch(l,n),history:{...$,pointer:c-1,skipCollect:!0}})},forward:()=>{let{nodes:r,edges:a,controlPanel:o,history:$}=t(),{buffer:i,pointer:c}=$,d=i[c];if(!d)return;let n=$6ed350e010f7313a$var$cloneObject({nodes:r,edges:a,controlPanel:o});e({...$fmhGi$jsondiffpatch.patch(n,d),history:{...$,pointer:c+1,skipCollect:!0}})},clear:()=>{let{history:r}=t();e({history:{...r,buffer:[],pointer:0,skipCollect:!0}})}}}),$6ed350e010f7313a$var$COLLECT_CHANGES_DEBOUNCE_TIME=500,$6ed350e010f7313a$export$4e64751394766316=(e,t)=>{let r,a=$fmhGi$jsondiffpatch.create({propertyFilter:(e,t)=>!!(t.parent?.parent?.childName==="controlPanel"||["data","position","controlPanel"].includes(t.parent?.childName))||["controlPanel","size","edges","nodes","data","label","config","values","position","x","y"].includes(e)}),o=t();return(e,$)=>{e.currentFileIndex!==$.currentFileIndex&&t().history.clear(),clearTimeout(r),o||(o=$),r=setTimeout(()=>{let r=a.diff(o,e);o=null,r&&t().history.push(r)},500)}},$6ed350e010f7313a$var$history=e=>(t,r,a)=>{let o=$6ed350e010f7313a$export$4e64751394766316(t,r);return a.subscribe(o),e((...e)=>t(...e),r,a)};var $6ed350e010f7313a$export$2e2bcd8739ae039=$6ed350e010f7313a$var$history;const $5f9c6d90a6525940$export$e364ea0c1dfb25e5=(e,t)=>{let r=new Set(e.map(e=>e.id)),a=new Set(t.map(e=>e.id));return{added:t.filter(e=>!r.has(e.id)),removed:e.filter(e=>!a.has(e.id))}},$95fc1576dd6d8cc3$export$62647b40ff8aed70=(e,t)=>({patch:(0,$fmhGi$webnoisepatch.createPatch)(),nodesState:{}}),$95fc1576dd6d8cc3$var$audioPatch=e=>(t,r,a)=>{a.subscribe(async(e,t)=>{});let o=new Set,$={...r(),nodes:[],edges:[]};return e(async(...e)=>{let a=r(),[i]=e,c={...$,..."function"==typeof i?i({...$}):i},d=$5f9c6d90a6525940$export$e364ea0c1dfb25e5($.nodes,c.nodes),n=$5f9c6d90a6525940$export$e364ea0c1dfb25e5($.edges,c.edges);$=c;let l=d.added,s=n.added,f=n.removed,p=d.removed,{patch:h}=a;if(l.length){let e=h.registerAudioNodes(l);o.add(e),await e,o.delete(e)}if(!(s.length||f.length||p.length))return void t(...e);if(o.size)try{await Promise.all([...o.values()])}catch(e){console.log("some error",e)}s.length&&h.registerAudioConnections(s),f.length&&h.unregisterAudioConnections(f),p.length&&h.unregisterAudioNodes(p),t(...e)},r,a)};var $95fc1576dd6d8cc3$export$2e2bcd8739ae039=$95fc1576dd6d8cc3$var$audioPatch;const $4f5dab380e6c5337$export$e698b79c63b74136=e=>!("type"in e)||"patch"===e.type,$4f5dab380e6c5337$export$31c2336f657dc59f=e=>"audio"===e.type,$e240ebb0a7a2ba54$var$projectStateCreator=(e,t)=>({project:{files:[]},setProject(t){e({project:t,currentFileIndex:0})},getProject:()=>t().project,pullEditorChanges(){let{getEditorState:e,currentFileIndex:r,updateFileContent:a,project:o}=t(),$=o.files[r];$4f5dab380e6c5337$export$31c2336f657dc59f($)||a(r,{...$,file:e()})},syncEditorWithCurrentFile:()=>{let{currentFileIndex:e,setEditorState:r,project:a}=t(),o=a.files[e];"audio"===o.type?console.log("audio file. skipping"):r(o.file)},currentFileIndex:0,setCurrentFileIndex(r){let{currentFileIndex:a}=t();r!==a&&e({currentFileIndex:r})},updateFileContent(r,a){let{project:o}=t();e({project:{...o,files:o.files.map((e,t)=>t===r?{...e,...a}:e)}})},updateFileName(r,a){let{project:o}=t();e({project:{...o,files:o.files.map((e,t)=>t===r?{...e,name:a}:e)}})},addFile(r){let{project:a}=t(),o=[...a.files,r];e({project:{...a,files:o}})},deleteFile:r=>{let{project:a,currentFileIndex:o}=t();e({project:{...a,files:a.files.filter((e,t)=>r!==t)}}),r<=o&&e({currentFileIndex:o-1})}});var $e240ebb0a7a2ba54$export$2e2bcd8739ae039=$e240ebb0a7a2ba54$var$projectStateCreator;const $7d1a5bdfd7b5aa4a$export$34c5bc865219488e=(...e)=>{let[t,r]=e;return{...$5d3bd1dd89353e9d$export$2e2bcd8739ae039(...e),...$6ed350e010f7313a$export$b1b92d12d1c2ae0e(...e),...$95fc1576dd6d8cc3$export$62647b40ff8aed70(...e),...$e240ebb0a7a2ba54$export$2e2bcd8739ae039(...e),setGraph:async({nodes:e,edges:t})=>{let{patch:a,createNodes:o,createEdges:$,setNodesAndEdges:i,nodes:c,edges:d}=r();i({nodes:[],edges:[]}),await o(e),$(t)},clearGraph:()=>{let{setGraph:e}=r();e({nodes:[],edges:[]})},createNodes:async e=>{let{createNode:t}=r();await Promise.all(e.map(e=>t(e)))},createNode:e=>{let{addNode:t,nodesConfiguration:a}=r(),{type:o,id:$,data:i}=e;if(void 0===o)throw Error(`node type is not defined for node: ${$}`);t({...e,data:{...i,config:{...a[o]?.defaultConfig,...i?.config}}})},removeNode:e=>r().removeNodes([e]),removeNodes:e=>{let{edges:a,nodes:o,onNodesDelete:$,removeEdges:i,removeNodesFromControlPanel:c}=r(),d=e.map(({id:e})=>e),n=[...e,...o.filter(({parentNode:e})=>e&&d.includes(e))];c(n),i((0,$fmhGi$reactflow.getConnectedEdges)(n,a)),$(n);let l=n.map(({id:e})=>e);t({nodes:o.filter(({id:e})=>!l.includes(e))})},removeEdges:e=>{let{edges:a,onEdgesDelete:o}=r(),$=e.map(({id:e})=>e);o(e),t({edges:a.filter(({id:e})=>!$.includes(e))})},createEdges:e=>{let{patch:t,edges:a,setEdges:o}=r();o(e)},onConnect:async e=>{let{edges:t,createEdges:a}=r();a((0,$fmhGi$reactflow.addEdge)(e,t))},onEdgesDelete:e=>{let{patch:t}=r()},onNodesDelete:async e=>{let{removeNodesFromControlPanel:t,patch:a}=r();t(e)},plugins:[],setPlugins:async e=>{let{setNodeTypes:a}=r();t({plugins:e});let o=e.reduce((e,t)=>({...e,...t.components.reduce((e,t)=>({...e,[t.type]:t}),{})}),{}),$=Object.keys(o).reduce((e,t)=>({...e,[t]:o[t].node}),{}),i=Object.keys(o).reduce((e,t)=>({...e,[t]:o[t].audioNode}),{});(0,$fmhGi$webnoisepatch.setAudioNodeTypes)(i),a($),t(({nodesConfiguration:e})=>({nodesConfiguration:{...e,...o}}))},nodesConfiguration:{},config:{showMinimap:!1},setConfig:e=>{t(({config:t})=>({config:{...t,...e}}))},getEditorState:()=>{let{getNodesAndEdges:e,controlPanel:t,viewport:a}=r();return{...e(),controlPanel:t,viewport:a}},setEditorState:async({nodes:e,edges:a,controlPanel:o,viewport:$})=>{let{setGraph:i}=r();await i({nodes:e,edges:a}),await new Promise(e=>setTimeout(e,1e3)),t({controlPanel:o,viewport:$})},isHelpShown:!1,toggleHelp:()=>{let{isHelpShown:e}=r();t({isHelpShown:!e})},copyBuffer:{nodes:[],edges:[]},copy:e=>{t({copyBuffer:e})},copySelectedItems:()=>{let{nodes:e,edges:t,copy:a}=r(),o=e.filter(({selected:e})=>e),$=t.filter(({selected:e})=>e);o.length&&a({nodes:o,edges:$})},pasteBuffer:(e=0,a=0)=>{let{copyBuffer:o,createNodes:$,setEdges:i,nodes:c,edges:d}=r(),{nodes:n,edges:l}=o;if(!n.length)return;t({nodes:c.map(e=>({...e,selected:!1}))});let s=n.reduce((e,t)=>!e||t.position.x<e.position.x&&t.position.y<e.position.y?t:e),f=s.position.x-e,p=s.position.y-a,{nodes:h,mapping:m}=n.reduce((e,t)=>{let r=$507ef2c5e9b21f79$export$2e2bcd8739ae039(t);return{nodes:[...e.nodes,{...t,id:r,position:{x:t.position.x-f,y:t.position.y-p},selected:!0}],mapping:{...e.mapping,[t.id]:r}}},{nodes:[],mapping:{}});$(h);let b=l.map(e=>{let t=m[e.source]||e.source,r=m[e.target]||e.target;return{...e,id:e.id.replace(e.source,t).replace(e.target,r),source:t,target:r,selected:!0}});i([...d.map(e=>({...e,selected:!1})),...b])},getControlPanelNode:e=>{let{nodesConfiguration:t}=r(),{type:a}=e;if(!a)return null;let o=t[a]?.controlPanelNode;return o||(console.error(`could not find node for type ${a}`),null)},controlPanel:{show:!0,nodes:[],size:{width:200,height:100}},showControlPanel:()=>t(({controlPanel:e})=>({controlPanel:{...e,show:!0}})),hideControlPanel:()=>t(({controlPanel:e})=>({controlPanel:{...e,show:!1}})),addNodeToControlPanel:e=>{let{nodesConfiguration:a}=r(),o=e.type?a[e.type]?.defaultConfig:{},{height:$}=o?.size||{},i={id:e.id,...$?{height:$/$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight}:{}};t(({controlPanel:e})=>({controlPanel:{...e,nodes:[...e.nodes,i]}}))},removeNodeFromControlPanel:e=>r().removeNodesFromControlPanel([e]),removeNodesFromControlPanel:e=>{let r=e.map(({id:e})=>e);t(({controlPanel:e})=>{let t=e.nodes.filter(({id:e})=>!r.includes(e));return{controlPanel:{...e,nodes:t}}})},setControlPanelNodes:e=>{t(({controlPanel:t})=>({controlPanel:{...t,nodes:e}}))},setControlPanelSize:e=>{t(({controlPanel:t})=>({controlPanel:{...t,size:e}}))},viewport:{x:0,y:0,zoom:1},setViewport:e=>t({viewport:e})}},$7d1a5bdfd7b5aa4a$var$useStore=(0,$fmhGi$zustand.create)($95fc1576dd6d8cc3$export$2e2bcd8739ae039($6ed350e010f7313a$export$2e2bcd8739ae039($7d1a5bdfd7b5aa4a$export$34c5bc865219488e)));var $7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039=$7d1a5bdfd7b5aa4a$var$useStore;const $92db495027db752c$var$LEVA_COLOR_ACCENT2_BLUE="#007bff",$92db495027db752c$var$COLOR_GREEN_PRIMARY="#14df42",$92db495027db752c$var$COLOR_WHITE_PRIMARY="#ffffff",$92db495027db752c$var$colors={elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#14df42",whitePrimary:"#ffffff",error:"#db5353"},$92db495027db752c$var$zIndex={modal:9998,controlPanel:9999,resumeContextLayout:10003},$92db495027db752c$var$theme={colors:$92db495027db752c$var$colors,zIndex:$92db495027db752c$var$zIndex};var $92db495027db752c$export$2e2bcd8739ae039=$92db495027db752c$var$theme;(0,$fmhGi$emotioncss.injectGlobal)`
2
2
  .react-flow {
3
3
  .react-flow__pane {
4
4
  /* background: rgb(106 106 106); */
@@ -211,7 +211,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
211
211
  flex-grow: 1;
212
212
  height: 100%;
213
213
  overflow-y: scroll;
214
- `,$6287ff0589198af6$var$AddNode=({isOpen:e,closeMenu:t,mousePosition:r})=>{let a=$9a3ae56a32a010df$export$2e2bcd8739ae039(),{screenToFlowPosition:o}=(0,$fmhGi$reactflow.useReactFlow)(),{createNode:$}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({createNode:e})=>({createNode:e})),[i,c]=(0,$fmhGi$react.useState)({}),n=(0,$fmhGi$react.useCallback)(({type:e})=>{let{x:a,y:i}=o(r);$({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:a,y:i},targetPosition:$fmhGi$reactflow.Position.Left,sourcePosition:$fmhGi$reactflow.Position.Right}),t()},[r,o,$,t,r]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:()=>{t(),c({})},children:(0,$fmhGi$reactjsxruntime.jsxs)($6287ff0589198af6$var$AddNodeWrapper,{theme:a,children:[(0,$fmhGi$reactjsxruntime.jsx)($f5b2357f27640c96$export$2e2bcd8739ae039,{onChange:c,value:i}),(0,$fmhGi$reactjsxruntime.jsx)($6287ff0589198af6$var$PluginsPanel,{theme:a,children:(0,$fmhGi$reactjsxruntime.jsx)($ec89cc1a9fe4e2be$export$2e2bcd8739ae039,{filters:i,onTagClick:e=>{c(t=>({...t,tags:t.tags?.includes(e)?t.tags.filter(t=>t!==e):[...t.tags||[],e]}))},onComponentClick:e=>{n(e),c({})}})})]})}):null};var $6287ff0589198af6$export$2e2bcd8739ae039=$6287ff0589198af6$var$AddNode;const $0486152ce8944888$var$UploadPatchWrapper=$parcel$interopDefault($fmhGi$emotionstyled).div`
214
+ `,$6287ff0589198af6$var$AddNode=({isOpen:e,closeMenu:t,mousePosition:r})=>{let a=$9a3ae56a32a010df$export$2e2bcd8739ae039(),{screenToFlowPosition:o}=(0,$fmhGi$reactflow.useReactFlow)(),{createNode:$}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({createNode:e})=>({createNode:e})),[i,c]=(0,$fmhGi$react.useState)({}),d=(0,$fmhGi$react.useCallback)(({type:e})=>{let{x:a,y:i}=o(r);$({id:`${e}-${+new Date}`,type:e,data:{label:e},position:{x:a,y:i},targetPosition:$fmhGi$reactflow.Position.Left,sourcePosition:$fmhGi$reactflow.Position.Right}),t()},[r,o,$,t,r]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:()=>{t(),c({})},children:(0,$fmhGi$reactjsxruntime.jsxs)($6287ff0589198af6$var$AddNodeWrapper,{theme:a,children:[(0,$fmhGi$reactjsxruntime.jsx)($f5b2357f27640c96$export$2e2bcd8739ae039,{onChange:c,value:i}),(0,$fmhGi$reactjsxruntime.jsx)($6287ff0589198af6$var$PluginsPanel,{theme:a,children:(0,$fmhGi$reactjsxruntime.jsx)($ec89cc1a9fe4e2be$export$2e2bcd8739ae039,{filters:i,onTagClick:e=>{c(t=>({...t,tags:t.tags?.includes(e)?t.tags.filter(t=>t!==e):[...t.tags||[],e]}))},onComponentClick:e=>{d(e),c({})}})})]})}):null};var $6287ff0589198af6$export$2e2bcd8739ae039=$6287ff0589198af6$var$AddNode;const $0486152ce8944888$var$UploadPatchWrapper=$parcel$interopDefault($fmhGi$emotionstyled).div`
215
215
  display: flex;
216
216
  align-items: center;
217
217
  justify-content: center;
@@ -287,7 +287,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
287
287
  height: 8rem;
288
288
  `,$b6ead6c552b5468d$var$FileUploadMessage=$parcel$interopDefault($fmhGi$emotionstyled).div`
289
289
  font-size: 2rem;
290
- `,$b6ead6c552b5468d$var$UploadProject=({isOpen:e,closeMenu:t})=>{let r=$9a3ae56a32a010df$export$2e2bcd8739ae039(),a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setProject),o=(0,$fmhGi$react.useRef)(null),$=(0,$fmhGi$react.useCallback)(e=>{let[r]=e||[];r.text().then(JSON.parse).then(e=>{a(e),t()}).catch(console.error)},[a,t]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:t,children:(0,$fmhGi$reactjsxruntime.jsxs)($b6ead6c552b5468d$var$UploadProjectWrapper,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)("input",{onChange:({target:{files:e}})=>$(e),ref:o,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactfiledrop.FileDrop,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{o.current?.click()},onDrop:e=>$(e),children:(0,$fmhGi$reactjsxruntime.jsxs)($b6ead6c552b5468d$var$DropZoneInner,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$var$FileUploadIcon,{}),(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$var$FileUploadMessage,{children:"click or drop file here"})]})})]})}):null};var $b6ead6c552b5468d$export$2e2bcd8739ae039=$b6ead6c552b5468d$var$UploadProject;const $e15c51f83a85b4ad$export$3a5757a785a34769=e=>{let[t,r]=(0,$fmhGi$react.useState)(null);return(0,$fmhGi$react.useEffect)(()=>{let t=new Worker(e);return r(t),()=>{t?.terminate(),r(null)}},[]),t};var $e15c51f83a85b4ad$export$2e2bcd8739ae039=$e15c51f83a85b4ad$export$3a5757a785a34769;console.log(888888,`React version: ${$fmhGi$react.version}`);const $57c70618ccf03bcf$export$1e86115ead375efc=()=>{let[e,t]=(0,$fmhGi$react.useState)(null);return(0,$fmhGi$react.useEffect)(()=>{let e=new MessageChannel;return e.port2.start(),t(e),()=>{t(null),e.port2.close()}},[]),e};var $57c70618ccf03bcf$export$2e2bcd8739ae039=$57c70618ccf03bcf$export$1e86115ead375efc;const $81158361350173a6$export$cd440e094f060920=(e,t,r)=>{void 0!==t&&e.setValueAtTime(t,r.currentTime)},$81158361350173a6$export$25df2e315be8e003=e=>new Promise((t,r)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>t(a.result?.toString()||""),a.onerror=e=>r(e)}),$a6e103adb12b0598$var$UploadAudioWrapper=$parcel$interopDefault($fmhGi$emotionstyled).div`
290
+ `,$b6ead6c552b5468d$var$UploadProject=({isOpen:e,closeMenu:t})=>{let r=$9a3ae56a32a010df$export$2e2bcd8739ae039(),a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setProject),o=(0,$fmhGi$react.useRef)(null),$=(0,$fmhGi$react.useCallback)(e=>{let[r]=e||[];r.text().then(JSON.parse).then(e=>{a(e),t()}).catch(console.error)},[a,t]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:t,children:(0,$fmhGi$reactjsxruntime.jsxs)($b6ead6c552b5468d$var$UploadProjectWrapper,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)("input",{onChange:({target:{files:e}})=>$(e),ref:o,type:"file",className:"hidden",style:{display:"none"},accept:".json"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactfiledrop.FileDrop,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{o.current?.click()},onDrop:e=>$(e),children:(0,$fmhGi$reactjsxruntime.jsxs)($b6ead6c552b5468d$var$DropZoneInner,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$var$FileUploadIcon,{}),(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$var$FileUploadMessage,{children:"click or drop file here"})]})})]})}):null};var $b6ead6c552b5468d$export$2e2bcd8739ae039=$b6ead6c552b5468d$var$UploadProject;const $e15c51f83a85b4ad$export$3a5757a785a34769=e=>{let[t,r]=(0,$fmhGi$react.useState)(null);return(0,$fmhGi$react.useEffect)(()=>{let t=new Worker(e);return r(t),()=>{t?.terminate(),r(null)}},[]),t};var $e15c51f83a85b4ad$export$2e2bcd8739ae039=$e15c51f83a85b4ad$export$3a5757a785a34769;const $57c70618ccf03bcf$export$1e86115ead375efc=()=>{let[e,t]=(0,$fmhGi$react.useState)(null);return(0,$fmhGi$react.useEffect)(()=>{let e=new MessageChannel;return e.port2.start(),t(e),()=>{t(null),e.port2.close()}},[]),e};var $57c70618ccf03bcf$export$2e2bcd8739ae039=$57c70618ccf03bcf$export$1e86115ead375efc;const $81158361350173a6$export$cd440e094f060920=(e,t,r)=>{void 0!==t&&e.setValueAtTime(t,r.currentTime)},$81158361350173a6$export$25df2e315be8e003=e=>new Promise((t,r)=>{let a=new FileReader;a.readAsDataURL(e),a.onload=()=>t(a.result?.toString()||""),a.onerror=e=>r(e)}),$a6e103adb12b0598$var$UploadAudioWrapper=$parcel$interopDefault($fmhGi$emotionstyled).div`
291
291
  display: flex;
292
292
  align-items: center;
293
293
  justify-content: center;
@@ -325,7 +325,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
325
325
  height: 8rem;
326
326
  `,$a6e103adb12b0598$var$FileUploadMessage=$parcel$interopDefault($fmhGi$emotionstyled).div`
327
327
  font-size: 2rem;
328
- `,$a6e103adb12b0598$var$UploadAudio=({isOpen:e,closeMenu:t})=>{let r=$9a3ae56a32a010df$export$2e2bcd8739ae039();$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({setGraph:e})=>e),$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setEditorState);let a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addFile),o=(0,$fmhGi$react.useRef)(null),$=(0,$fmhGi$react.useCallback)(async e=>{let[r]=e||[],o=await $81158361350173a6$export$25df2e315be8e003(r);a({type:"audio",id:`audio-file-${+new Date}`,name:r.name,file:o}),t()},[a,t]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:t,children:(0,$fmhGi$reactjsxruntime.jsxs)($a6e103adb12b0598$var$UploadAudioWrapper,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)("input",{onChange:({target:{files:e}})=>$(e),ref:o,type:"file",className:"hidden",style:{display:"none"},accept:".wav,.mp3,.ogg"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactfiledrop.FileDrop,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{o.current?.click()},onDrop:e=>$(e),children:(0,$fmhGi$reactjsxruntime.jsxs)($a6e103adb12b0598$var$DropZoneInner,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$var$FileUploadIcon,{}),(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$var$FileUploadMessage,{children:"click or drop file here"})]})})]})}):null};var $a6e103adb12b0598$export$2e2bcd8739ae039=$a6e103adb12b0598$var$UploadAudio;const $1648f5ec674bd0e4$export$d4cd258d01c03112="editor-menu",$1648f5ec674bd0e4$export$59ce2a6808e35a29=()=>{let{show:e}=(0,$fmhGi$reactcontexify.useContextMenu)({id:$1648f5ec674bd0e4$export$d4cd258d01c03112});return{onContextMenu:e}},$1648f5ec674bd0e4$var$EditorContextMenu=({editorContextMenu:e=[]})=>{let t=$9a3ae56a32a010df$export$2e2bcd8739ae039(),[r,a]=(0,$fmhGi$react.useState)({x:0,y:0}),[o,$]=(0,$fmhGi$react.useState)(!1),[i,c]=(0,$fmhGi$react.useState)(!1),[n,d]=(0,$fmhGi$react.useState)(!1),[l,s]=(0,$fmhGi$react.useState)(!1),f=(0,$fmhGi$react.useCallback)((e,t)=>{a({x:e,y:t}),$(!0)},[$]),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.pasteBuffer),{screenToFlowPosition:h}=(0,$fmhGi$reactflow.useReactFlow)(),m=(0,$fmhGi$react.useCallback)(e=>{let{x:t,y:r}=h(e);p(t,r)},[$,h]),b=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({clearGraph:e})=>e),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getEditorState),x=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getProject),g=(0,$fmhGi$react.useCallback)(()=>{b()},[b]),v=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.toggleHelp),G=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.back),j=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.forward),y=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.pointer),w=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.buffer),C=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copySelectedItems),P=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodes),k=(0,$fmhGi$react.useMemo)(()=>P.filter(({selected:e})=>e),[P]),N=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copyBuffer),D=(0,$fmhGi$reactflow.useReactFlow)(),z=(0,$fmhGi$react.useCallback)(()=>{let e={...u()};$parcel$interopDefault($fmhGi$jsfiledownload)(JSON.stringify(e,null,2),"web-noise-patch.json")},[u,D]),M=(0,$fmhGi$react.useCallback)(()=>{let e={...x()};$parcel$interopDefault($fmhGi$jsfiledownload)(JSON.stringify(e,null,2),"web-noise-project.json")},[u,D]);return(0,$fmhGi$react.useEffect)(()=>($parcel$interopDefault($fmhGi$hotkeysjs)("command+shift+a",()=>(f(200,50),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("shift+/",()=>(v(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+z",()=>(G(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+shift+z",()=>(j(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+c",()=>(C(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+v",()=>(m({x:200,y:50}),!1)),()=>{$parcel$interopDefault($fmhGi$hotkeysjs).unbind()}),[f,m]),(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)($6287ff0589198af6$export$2e2bcd8739ae039,{isOpen:o,closeMenu:()=>$(!1),mousePosition:r}),(0,$fmhGi$reactjsxruntime.jsx)($0486152ce8944888$export$2e2bcd8739ae039,{isOpen:i,closeMenu:()=>c(!1)}),(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$export$2e2bcd8739ae039,{isOpen:n,closeMenu:()=>d(!1)}),(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$export$2e2bcd8739ae039,{isOpen:l,closeMenu:()=>s(!1)}),(0,$fmhGi$reactjsxruntime.jsxs)($cf67378495ee564c$export$98eff9c5659394e3,{id:$1648f5ec674bd0e4$export$d4cd258d01c03112,animation:!1,colors:t.colors,children:[(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:({triggerEvent:{clientX:e,clientY:t}})=>f(e,t),children:"Add Node (⌘+⇧+A)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:g,children:"Delete All"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:z,children:"Download patch"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>c(!0),children:"Upload patch"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:M,children:"Download project"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>d(!0),children:"Upload project"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>s(!0),children:"Upload Audio File"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:0===y,onClick:G,children:"Undo (⌘+z)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:y===w.length,onClick:j,children:"Redo (⌘+⇧+Z)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:!k.length,onClick:C,children:"Copy Selected (⌘+c)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:!N.nodes.length,onClick:({triggerEvent:{clientX:e,clientY:t}})=>m({x:e,y:t}),children:"Paste (⌘+v)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),e.map((e,t)=>(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{children:e},t)),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:v,children:"Help (⇧+?)"})]})]})};var $1648f5ec674bd0e4$export$2e2bcd8739ae039=$1648f5ec674bd0e4$var$EditorContextMenu;const $8c457fe18f140d5d$export$d4cd258d01c03112="editor-node-menu",$8c457fe18f140d5d$export$cbbbfb9fb15f3780=()=>{let{show:e}=(0,$fmhGi$reactcontexify.useContextMenu)({id:$8c457fe18f140d5d$export$d4cd258d01c03112});return{onContextMenu:(0,$fmhGi$react.useCallback)((t,r)=>{t.stopPropagation(),e(t,{props:{node:r}})},[])}},$8c457fe18f140d5d$var$NodeContextMenu=e=>{let t=$9a3ae56a32a010df$export$2e2bcd8739ae039(),r=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodes),a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addNodeToControlPanel),o=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodeFromControlPanel),$=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copy),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodesConfiguration),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.controlPanel.nodes),n=(0,$fmhGi$react.useCallback)(({props:e})=>!!e?.node.type&&!!c.find(({id:t})=>t===e.node.id),[c]),d=(0,$fmhGi$react.useCallback)(({props:e})=>{if(!e?.node.type)return!1;let t=i[e.node.type];return!!t?.controlPanelNode},[i]);return(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactjsxruntime.Fragment,{children:(0,$fmhGi$reactjsxruntime.jsxs)($cf67378495ee564c$export$98eff9c5659394e3,{id:$8c457fe18f140d5d$export$d4cd258d01c03112,animation:!1,colors:t.colors,children:[(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:e=>r([e.props.node]),children:"Delete Node (DEL)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{hidden:(...e)=>!d(...e)||n(...e),onClick:e=>a(e.props.node),children:"Add To Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{hidden:(...e)=>!d(...e)||!n(...e),onClick:e=>o(e.props.node),children:"Remove From Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:e=>$({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})};var $8c457fe18f140d5d$export$2e2bcd8739ae039=$8c457fe18f140d5d$var$NodeContextMenu;const $4772dd2712cec46e$var$useAudioNode=e=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({patch:e})=>e).audioNodes.get(e);var $4772dd2712cec46e$export$2e2bcd8739ae039=$4772dd2712cec46e$var$useAudioNode;const $9f09b57f57ee1ef4$var$useNode=e=>{let t=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({updateNodeData:e})=>e);return{updateNodeValues:(0,$fmhGi$react.useCallback)(r=>t(e,{values:r}),[e,t]),updateNodeConfig:(0,$fmhGi$react.useCallback)(r=>t(e,{config:r}),[e,t]),updateNodeLabel:(0,$fmhGi$react.useCallback)(r=>t(e,{label:r}),[e,t])}};var $9f09b57f57ee1ef4$export$2e2bcd8739ae039=$9f09b57f57ee1ef4$var$useNode;const $35ac08ca6453b68a$export$5abe11f802ebd1f2=$parcel$interopDefault($fmhGi$emotionstyled).input`
328
+ `,$a6e103adb12b0598$var$UploadAudio=({isOpen:e,closeMenu:t})=>{let r=$9a3ae56a32a010df$export$2e2bcd8739ae039();$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({setGraph:e})=>e),$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setEditorState);let a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addFile),o=(0,$fmhGi$react.useRef)(null),$=(0,$fmhGi$react.useCallback)(async e=>{let[r]=e||[],o=await $81158361350173a6$export$25df2e315be8e003(r);a({type:"audio",id:`audio-file-${+new Date}`,name:r.name,file:o}),t()},[a,t]);return e?(0,$fmhGi$reactjsxruntime.jsx)($aecb885983569300$export$2e2bcd8739ae039,{onClose:t,children:(0,$fmhGi$reactjsxruntime.jsxs)($a6e103adb12b0598$var$UploadAudioWrapper,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)("input",{onChange:({target:{files:e}})=>$(e),ref:o,type:"file",className:"hidden",style:{display:"none"},accept:".wav,.mp3,.ogg"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactfiledrop.FileDrop,{className:"drop-zone-wrapper",targetClassName:"drop-zone",draggingOverTargetClassName:"drop-zone-drag-over",onTargetClick:()=>{o.current?.click()},onDrop:e=>$(e),children:(0,$fmhGi$reactjsxruntime.jsxs)($a6e103adb12b0598$var$DropZoneInner,{theme:r,children:[(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$var$FileUploadIcon,{}),(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$var$FileUploadMessage,{children:"click or drop file here"})]})})]})}):null};var $a6e103adb12b0598$export$2e2bcd8739ae039=$a6e103adb12b0598$var$UploadAudio;const $1648f5ec674bd0e4$export$d4cd258d01c03112="editor-menu",$1648f5ec674bd0e4$export$59ce2a6808e35a29=()=>{let{show:e}=(0,$fmhGi$reactcontexify.useContextMenu)({id:$1648f5ec674bd0e4$export$d4cd258d01c03112});return{onContextMenu:e}},$1648f5ec674bd0e4$var$EditorContextMenu=({editorContextMenu:e=[]})=>{let t=$9a3ae56a32a010df$export$2e2bcd8739ae039(),[r,a]=(0,$fmhGi$react.useState)({x:0,y:0}),[o,$]=(0,$fmhGi$react.useState)(!1),[i,c]=(0,$fmhGi$react.useState)(!1),[d,n]=(0,$fmhGi$react.useState)(!1),[l,s]=(0,$fmhGi$react.useState)(!1),f=(0,$fmhGi$react.useCallback)((e,t)=>{a({x:e,y:t}),$(!0)},[$]),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.pasteBuffer),{screenToFlowPosition:h}=(0,$fmhGi$reactflow.useReactFlow)(),m=(0,$fmhGi$react.useCallback)(e=>{let{x:t,y:r}=h(e);p(t,r)},[$,h]),b=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({clearGraph:e})=>e),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getEditorState),x=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getProject),g=(0,$fmhGi$react.useCallback)(()=>{b()},[b]),v=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.toggleHelp),G=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.back),j=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.forward),y=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.pointer),w=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.history.buffer),C=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copySelectedItems),P=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodes),k=(0,$fmhGi$react.useMemo)(()=>P.filter(({selected:e})=>e),[P]),N=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copyBuffer),D=(0,$fmhGi$reactflow.useReactFlow)(),z=(0,$fmhGi$react.useCallback)(()=>{let e={...u()};$parcel$interopDefault($fmhGi$jsfiledownload)(JSON.stringify(e,null,2),"web-noise-patch.json")},[u,D]),M=(0,$fmhGi$react.useCallback)(()=>{let e={...x()};$parcel$interopDefault($fmhGi$jsfiledownload)(JSON.stringify(e,null,2),"web-noise-project.json")},[u,D]);return(0,$fmhGi$react.useEffect)(()=>($parcel$interopDefault($fmhGi$hotkeysjs)("command+shift+a",()=>(f(200,50),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("shift+/",()=>(v(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+z",()=>(G(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+shift+z",()=>(j(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+c",()=>(C(),!1)),$parcel$interopDefault($fmhGi$hotkeysjs)("command+v",()=>(m({x:200,y:50}),!1)),()=>{$parcel$interopDefault($fmhGi$hotkeysjs).unbind()}),[f,m]),(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)($6287ff0589198af6$export$2e2bcd8739ae039,{isOpen:o,closeMenu:()=>$(!1),mousePosition:r}),(0,$fmhGi$reactjsxruntime.jsx)($0486152ce8944888$export$2e2bcd8739ae039,{isOpen:i,closeMenu:()=>c(!1)}),(0,$fmhGi$reactjsxruntime.jsx)($b6ead6c552b5468d$export$2e2bcd8739ae039,{isOpen:d,closeMenu:()=>n(!1)}),(0,$fmhGi$reactjsxruntime.jsx)($a6e103adb12b0598$export$2e2bcd8739ae039,{isOpen:l,closeMenu:()=>s(!1)}),(0,$fmhGi$reactjsxruntime.jsxs)($cf67378495ee564c$export$98eff9c5659394e3,{id:$1648f5ec674bd0e4$export$d4cd258d01c03112,animation:!1,colors:t.colors,children:[(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:({triggerEvent:{clientX:e,clientY:t}})=>f(e,t),children:"Add Node (⌘+⇧+A)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:g,children:"Delete All"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:z,children:"Download patch"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>c(!0),children:"Upload patch"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:M,children:"Download project"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>n(!0),children:"Upload project"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:()=>s(!0),children:"Upload Audio File"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:0===y,onClick:G,children:"Undo (⌘+z)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:y===w.length,onClick:j,children:"Redo (⌘+⇧+Z)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:!k.length,onClick:C,children:"Copy Selected (⌘+c)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{disabled:!N.nodes.length,onClick:({triggerEvent:{clientX:e,clientY:t}})=>m({x:e,y:t}),children:"Paste (⌘+v)"}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),e.map((e,t)=>(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{children:e},t)),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactcontexify.Separator,{}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:v,children:"Help (⇧+?)"})]})]})};var $1648f5ec674bd0e4$export$2e2bcd8739ae039=$1648f5ec674bd0e4$var$EditorContextMenu;const $8c457fe18f140d5d$export$d4cd258d01c03112="editor-node-menu",$8c457fe18f140d5d$export$cbbbfb9fb15f3780=()=>{let{show:e}=(0,$fmhGi$reactcontexify.useContextMenu)({id:$8c457fe18f140d5d$export$d4cd258d01c03112});return{onContextMenu:(0,$fmhGi$react.useCallback)((t,r)=>{t.stopPropagation(),e(t,{props:{node:r}})},[])}},$8c457fe18f140d5d$var$NodeContextMenu=e=>{let t=$9a3ae56a32a010df$export$2e2bcd8739ae039(),r=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodes),a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addNodeToControlPanel),o=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodeFromControlPanel),$=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.copy),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodesConfiguration),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.controlPanel.nodes),d=(0,$fmhGi$react.useCallback)(({props:e})=>!!e?.node.type&&!!c.find(({id:t})=>t===e.node.id),[c]),n=(0,$fmhGi$react.useCallback)(({props:e})=>{if(!e?.node.type)return!1;let t=i[e.node.type];return!!t?.controlPanelNode},[i]);return(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactjsxruntime.Fragment,{children:(0,$fmhGi$reactjsxruntime.jsxs)($cf67378495ee564c$export$98eff9c5659394e3,{id:$8c457fe18f140d5d$export$d4cd258d01c03112,animation:!1,colors:t.colors,children:[(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:e=>r([e.props.node]),children:"Delete Node (DEL)"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{hidden:(...e)=>!n(...e)||d(...e),onClick:e=>a(e.props.node),children:"Add To Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{hidden:(...e)=>!n(...e)||!d(...e),onClick:e=>o(e.props.node),children:"Remove From Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($cf67378495ee564c$export$ef9839ae55b8ba40,{onClick:e=>$({nodes:[e.props.node],edges:[]}),children:"Copy (⌘+c)"})]})})};var $8c457fe18f140d5d$export$2e2bcd8739ae039=$8c457fe18f140d5d$var$NodeContextMenu;const $4772dd2712cec46e$var$useAudioNode=e=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({patch:e})=>e).audioNodes.get(e);var $4772dd2712cec46e$export$2e2bcd8739ae039=$4772dd2712cec46e$var$useAudioNode;const $9f09b57f57ee1ef4$var$useNode=e=>{let t=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({updateNodeData:e})=>e);return{updateNodeValues:(0,$fmhGi$react.useCallback)(r=>t(e,{values:r}),[e,t]),updateNodeConfig:(0,$fmhGi$react.useCallback)(r=>t(e,{config:r}),[e,t]),updateNodeLabel:(0,$fmhGi$react.useCallback)(r=>t(e,{label:r}),[e,t])}};var $9f09b57f57ee1ef4$export$2e2bcd8739ae039=$9f09b57f57ee1ef4$var$useNode;const $35ac08ca6453b68a$export$5abe11f802ebd1f2=$parcel$interopDefault($fmhGi$emotionstyled).input`
329
329
  width: 100%;
330
330
  background: none;
331
331
  border: none;
@@ -354,7 +354,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
354
354
  padding: 0.3rem;
355
355
  border-radius: 0.2rem;
356
356
  }
357
- `,$35ac08ca6453b68a$var$EditableLabel=({onChange:e,value:t="",className:r})=>{let a=(0,$fmhGi$react.useRef)(null),[o,$]=(0,$fmhGi$react.useState)(!1),i=(0,$fmhGi$react.useCallback)(e=>{e.target?.select(),$(!0)},[$]),c=(0,$fmhGi$react.useCallback)(()=>{window.getSelection()?.collapseToEnd(),$(!1)},[$]),n=(0,$fmhGi$react.useCallback)(()=>{c(),a.current&&e(a.current.value)},[a,c,e]),d=(0,$fmhGi$react.useCallback)(()=>{c(),a.current&&t&&(a.current.value=t)},[a,c,t]);return(0,$fmhGi$react.useEffect)(()=>{a.current&&(a.current.value=t)},[t,a]),(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$5abe11f802ebd1f2,{ref:a,type:"text",readOnly:!o,onDoubleClick:e=>i(e),onBlur:n,onKeyDown:e=>{switch(e.key){case"Escape":d();break;case"Enter":n()}},className:r})};var $35ac08ca6453b68a$export$2e2bcd8739ae039=$35ac08ca6453b68a$var$EditableLabel;const $37b2ffed43ea9fcb$var$NodeInfoWrapper=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
357
+ `,$35ac08ca6453b68a$var$EditableLabel=({onChange:e,value:t="",className:r})=>{let a=(0,$fmhGi$react.useRef)(null),[o,$]=(0,$fmhGi$react.useState)(!1),i=(0,$fmhGi$react.useCallback)(e=>{e.target?.select(),$(!0)},[$]),c=(0,$fmhGi$react.useCallback)(()=>{window.getSelection()?.collapseToEnd(),$(!1)},[$]),d=(0,$fmhGi$react.useCallback)(()=>{c(),a.current&&e(a.current.value)},[a,c,e]),n=(0,$fmhGi$react.useCallback)(()=>{c(),a.current&&t&&(a.current.value=t)},[a,c,t]);return(0,$fmhGi$react.useEffect)(()=>{a.current&&(a.current.value=t)},[t,a]),(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$5abe11f802ebd1f2,{ref:a,type:"text",readOnly:!o,onDoubleClick:e=>i(e),onBlur:d,onKeyDown:e=>{switch(e.key){case"Escape":n();break;case"Enter":d()}},className:r})};var $35ac08ca6453b68a$export$2e2bcd8739ae039=$35ac08ca6453b68a$var$EditableLabel;const $37b2ffed43ea9fcb$var$NodeInfoWrapper=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
358
358
  height: 100%;
359
359
  width: 100%;
360
360
  overflow: scroll;
@@ -444,7 +444,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
444
444
  left: -3px;
445
445
  `),$964548e125933395$export$9ea0feffc20ee81=({...e})=>(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$StyledInputHandle,{...e,type:"target",position:$fmhGi$reactflow.Position.Left}),$964548e125933395$export$222539e2a2fac4e0=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled)($964548e125933395$var$StyledHandle)`
446
446
  right: -3px;
447
- `),$964548e125933395$export$496e5e1ee1696f64=e=>(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$222539e2a2fac4e0,{...e,type:"source",position:$fmhGi$reactflow.Position.Right}),$964548e125933395$export$7e0b3af1e60a3273=({className:e,...t})=>(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$1bdb8f2d1fe25c22,{...t,className:[e,$07dabc4e7d66bab5$export$956b3cf15d7c363].join(" ")}),$964548e125933395$var$useNodeManifest=e=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(t=>t.nodesConfiguration[e]),$964548e125933395$var$useConfigNode=e=>{let{configNode:t}=$964548e125933395$var$useNodeManifest(e);return{ConfigNode:t}},$964548e125933395$export$361064385d50ec44=e=>{let{id:t,children:r,selected:a,...o}=e,$=$9a3ae56a32a010df$export$2e2bcd8739ae039(),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({getNode:e})=>e),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodesConfiguration),[n,d]=(0,$fmhGi$react.useState)(!1),{info:l}=$964548e125933395$var$useNodeManifest(e.type),s=(0,$fmhGi$react.useMemo)(()=>c[e.type].resizable??!1,[c,e.type]),{updateNodeLabel:f,updateNodeConfig:p}=$9f09b57f57ee1ef4$export$2e2bcd8739ae039(t),{data:h}=i(t)||{},m=$4772dd2712cec46e$export$2e2bcd8739ae039(t),{ConfigNode:b}=$964548e125933395$var$useConfigNode(o.type),[u,x]=(0,$fmhGi$react.useState)(!1);if(!m)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"can't find audio node"});if(m.loading)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"loading"});if(m.error)return(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$var$NodeErrorWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:["error: ",m.error.toString()]});if(!m.node)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"can't find audio node"});let g=h?.config?.size,{node:{inputs:v,outputs:G}}=m;return(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$var$NodeWrapper,{children:[(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$7e0b3af1e60a3273,{children:[l&&(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$InfoIconWrapper,{onClickCapture:()=>d(!0)}),(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$2e2bcd8739ae039,{value:h?.label??"No Name",onChange:f}),b&&(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$SettingsIconWrapper,{onClickCapture:()=>x(e=>!e)})]}),(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$bfd3bd1fa283e3c6,{theme:$,children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$f1afba0ff9ea1277,{children:v?Object.keys(v).map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$a2d375858cc72119,{children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$9ea0feffc20ee81,{id:e,portType:v[e].type}),(0,$fmhGi$reactjsxruntime.jsx)("span",{children:e})]},t)):null}),(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$af4f9b41fc32ed9e,{children:G?Object.keys(G).map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$a2d375858cc72119,{children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$496e5e1ee1696f64,{id:e,portType:G[e].type}),(0,$fmhGi$reactjsxruntime.jsx)("span",{children:e})]},t)):null})]}),b&&u&&a?(0,$fmhGi$reactjsxruntime.jsx)(b,{...e}):s?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reresizable.Resizable,{size:g,minWidth:180,minHeight:30,enable:{bottom:!0,bottomRight:!0,right:!0},onResizeStop:(e,t,r,a)=>{let o=g?{width:g.width+a.width,height:g.height+a.height}:r.getBoundingClientRect();p({...h?.config,size:o})},children:r}):r,(0,$fmhGi$reactjsxruntime.jsx)($37b2ffed43ea9fcb$export$2e2bcd8739ae039,{isOpen:n,type:e.type,onClose:()=>d(!1),node:m.node})]})},$0243de1c9dad2904$export$86de09faaa70680d=$parcel$interopDefault($fmhGi$emotionstyled).div`
447
+ `),$964548e125933395$export$496e5e1ee1696f64=e=>(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$222539e2a2fac4e0,{...e,type:"source",position:$fmhGi$reactflow.Position.Right}),$964548e125933395$export$7e0b3af1e60a3273=({className:e,...t})=>(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$1bdb8f2d1fe25c22,{...t,className:[e,$07dabc4e7d66bab5$export$956b3cf15d7c363].join(" ")}),$964548e125933395$var$useNodeManifest=e=>$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(t=>t.nodesConfiguration[e]),$964548e125933395$var$useConfigNode=e=>{let{configNode:t}=$964548e125933395$var$useNodeManifest(e);return{ConfigNode:t}},$964548e125933395$export$361064385d50ec44=e=>{let{id:t,children:r,selected:a,...o}=e,$=$9a3ae56a32a010df$export$2e2bcd8739ae039(),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({getNode:e})=>e),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodesConfiguration),[d,n]=(0,$fmhGi$react.useState)(!1),{info:l}=$964548e125933395$var$useNodeManifest(e.type),s=(0,$fmhGi$react.useMemo)(()=>c[e.type].resizable??!1,[c,e.type]),{updateNodeLabel:f,updateNodeConfig:p}=$9f09b57f57ee1ef4$export$2e2bcd8739ae039(t),{data:h}=i(t)||{},m=$4772dd2712cec46e$export$2e2bcd8739ae039(t),{ConfigNode:b}=$964548e125933395$var$useConfigNode(o.type),[u,x]=(0,$fmhGi$react.useState)(!1);if(!m)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"can't find audio node"});if(m.loading)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"loading"});if(m.error)return(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$var$NodeErrorWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:["error: ",m.error.toString()]});if(!m.node)return(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$NodeLoaderWrapper,{className:$07dabc4e7d66bab5$export$956b3cf15d7c363,children:"can't find audio node"});let g=h?.config?.size,{node:{inputs:v,outputs:G}}=m;return(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$var$NodeWrapper,{children:[(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$7e0b3af1e60a3273,{children:[l&&(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$InfoIconWrapper,{onClickCapture:()=>n(!0)}),(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$2e2bcd8739ae039,{value:h?.label??"No Name",onChange:f}),b&&(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$var$SettingsIconWrapper,{onClickCapture:()=>x(e=>!e)})]}),(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$bfd3bd1fa283e3c6,{theme:$,children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$f1afba0ff9ea1277,{children:v?Object.keys(v).map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$a2d375858cc72119,{children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$9ea0feffc20ee81,{id:e,portType:v[e].type}),(0,$fmhGi$reactjsxruntime.jsx)("span",{children:e})]},t)):null}),(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$af4f9b41fc32ed9e,{children:G?Object.keys(G).map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($964548e125933395$export$a2d375858cc72119,{children:[(0,$fmhGi$reactjsxruntime.jsx)($964548e125933395$export$496e5e1ee1696f64,{id:e,portType:G[e].type}),(0,$fmhGi$reactjsxruntime.jsx)("span",{children:e})]},t)):null})]}),b&&u&&a?(0,$fmhGi$reactjsxruntime.jsx)(b,{...e}):s?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reresizable.Resizable,{size:g,minWidth:180,minHeight:30,enable:{bottom:!0,bottomRight:!0,right:!0},onResizeStop:(e,t,r,a)=>{let o=g?{width:g.width+a.width,height:g.height+a.height}:r.getBoundingClientRect();p({...h?.config,size:o})},children:r}):r,(0,$fmhGi$reactjsxruntime.jsx)($37b2ffed43ea9fcb$export$2e2bcd8739ae039,{isOpen:d,type:e.type,onClose:()=>n(!1),node:m.node})]})},$0243de1c9dad2904$export$86de09faaa70680d=$parcel$interopDefault($fmhGi$emotionstyled).div`
448
448
  width: 100%;
449
449
  padding: 0.4rem 0;
450
450
  white-space: nowrap;
@@ -551,7 +551,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
551
551
  border-color: ${({theme:e})=>e.colors.whitePrimary};
552
552
  border-width: 1px;
553
553
  }
554
- `,$43256c10008ac3d3$var$ControlPanel=()=>{let e=$9a3ae56a32a010df$export$2e2bcd8739ae039(),t=(0,$fmhGi$react.useRef)(null),r=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodes),{show:a,nodes:o,size:$}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.controlPanel),{width:i=200,height:c}=$,n=(0,$fmhGi$react.useMemo)(()=>{let e=o.map(({id:e})=>e);return r.filter(({id:t})=>e.includes(t))},[r,o]),d=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.showControlPanel),l=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.hideControlPanel),s=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setControlPanelNodes),f=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setControlPanelSize),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodeFromControlPanel),[h,m]=(0,$fmhGi$react.useState)(!0),b=(0,$fmhGi$react.useMemo)(()=>{let e=o.reduce((e,{height:t=$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight,x:r,y:a=0})=>{let o=a+t;return o>e?o:e},0);return o.map(({id:t,width:r,height:a,x:o,y:$})=>({i:t,w:r||$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.cols,h:a||6,x:o??0,y:$??e}))},[o]);return n.length?(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelIconWrapper,{theme:e,ref:t,onClick:d,children:(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsrx.RxDashboard,{})}),(0,$fmhGi$reactjsxruntime.jsxs)($parcel$interopDefault($fmhGi$reactmoderndrawer),{open:a,onClose:l,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$ControlPanelHeader,{theme:e,children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelTitle,{children:"Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelIconsBar,{children:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$CloseIconWrapper,{onClick:l,theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsmd.MdClose,{})})})]}),(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$ControlPanelWrapper,{children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelSettings,{children:h?(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$LockGridWrapper,{theme:e,onClick:()=>m(!1),children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsai.AiFillLock,{}),"Unlock grid"]}):(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$LockGridWrapper,{theme:e,onClick:()=>m(!0),children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsai.AiFillUnlock,{}),"Lock grid"]})}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reresizable.Resizable,{enable:{top:!1,right:!h,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},handleComponent:{right:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$GridResizeHandle,{theme:e})},minWidth:120,size:{width:i,height:"auto"},onResizeStop:(e,t,r,a)=>{f({width:i+a.width,height:c+a.height})},children:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelBody,{theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($parcel$interopDefault($fmhGi$reactgridlayout),{layout:b,className:"layout",cols:$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.cols,rowHeight:$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight,width:i,margin:[0,0],isResizable:!h,draggableHandle:".grid-item-handle",onLayoutChange:e=>{requestAnimationFrame(()=>{s(e.map(({i:e,w:t,h:r,x:a,y:o})=>({id:e,width:t,height:r,x:a,y:o})))})},children:n.map(t=>(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelItemWrapper,{theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($30e0ee654347e09b$export$2e2bcd8739ae039,{node:t,showControls:!h,onDelete:p})},t.id))})})})]})]})]}):null};var $43256c10008ac3d3$export$2e2bcd8739ae039=$43256c10008ac3d3$var$ControlPanel,$f9b3d81f3279b7f3$exports={};$f9b3d81f3279b7f3$exports="# Quick start\n\n## Add node\n - Mouse right click\n - Select **'Add Node'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Press `CMD+SHIFT+A`\n\n<br/>\n\n## Connect nodes\n - Mouse left click and hold on source port\n - Drop on target port\n\n<br/>\n\n## Delete Node or Connection\n - Mouse right click on node/connection\n - Select **'Delete Node'**/**'Delete Connection'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Mouse left click on node/connection, then press `Backspace`\n\n<br/>\n\n\n## Move node\n - Drag and Drop\n\n<br/>\n\n## Upload file\n - Drag and drop audio or patch files onto the application\n - Uploaded file appears as a new tab in the tabs bar at the top\n - Click on the tab to view or edit the file\n\n\n";const $c1639f96a5ce6d94$var$MdPreview=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
554
+ `,$43256c10008ac3d3$var$ControlPanel=()=>{let e=$9a3ae56a32a010df$export$2e2bcd8739ae039(),t=(0,$fmhGi$react.useRef)(null),r=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.nodes),{show:a,nodes:o,size:$}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.controlPanel),{width:i=200,height:c}=$,d=(0,$fmhGi$react.useMemo)(()=>{let e=o.map(({id:e})=>e);return r.filter(({id:t})=>e.includes(t))},[r,o]),n=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.showControlPanel),l=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.hideControlPanel),s=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setControlPanelNodes),f=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setControlPanelSize),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.removeNodeFromControlPanel),[h,m]=(0,$fmhGi$react.useState)(!0),b=(0,$fmhGi$react.useMemo)(()=>{let e=o.reduce((e,{height:t=$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight,x:r,y:a=0})=>{let o=a+t;return o>e?o:e},0);return o.map(({id:t,width:r,height:a,x:o,y:$})=>({i:t,w:r||$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.cols,h:a||6,x:o??0,y:$??e}))},[o]);return d.length?(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelIconWrapper,{theme:e,ref:t,onClick:n,children:(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsrx.RxDashboard,{})}),(0,$fmhGi$reactjsxruntime.jsxs)($parcel$interopDefault($fmhGi$reactmoderndrawer),{open:a,onClose:l,direction:"left",className:"",size:"auto",enableOverlay:!1,style:{background:e.colors.elevation1,position:"absolute"},children:[(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$ControlPanelHeader,{theme:e,children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelTitle,{children:"Control Panel"}),(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelIconsBar,{children:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$CloseIconWrapper,{onClick:l,theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsmd.MdClose,{})})})]}),(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$ControlPanelWrapper,{children:[(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelSettings,{children:h?(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$LockGridWrapper,{theme:e,onClick:()=>m(!1),children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsai.AiFillLock,{}),"Unlock grid"]}):(0,$fmhGi$reactjsxruntime.jsxs)($43256c10008ac3d3$var$LockGridWrapper,{theme:e,onClick:()=>m(!0),children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsai.AiFillUnlock,{}),"Lock grid"]})}),(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reresizable.Resizable,{enable:{top:!1,right:!h,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},handleComponent:{right:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$GridResizeHandle,{theme:e})},minWidth:120,size:{width:i,height:"auto"},onResizeStop:(e,t,r,a)=>{f({width:i+a.width,height:c+a.height})},children:(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelBody,{theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($parcel$interopDefault($fmhGi$reactgridlayout),{layout:b,className:"layout",cols:$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.cols,rowHeight:$07dabc4e7d66bab5$export$9f05d3e6ade4c09e.rowHeight,width:i,margin:[0,0],isResizable:!h,draggableHandle:".grid-item-handle",onLayoutChange:e=>{requestAnimationFrame(()=>{s(e.map(({i:e,w:t,h:r,x:a,y:o})=>({id:e,width:t,height:r,x:a,y:o})))})},children:d.map(t=>(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$var$ControlPanelItemWrapper,{theme:e,children:(0,$fmhGi$reactjsxruntime.jsx)($30e0ee654347e09b$export$2e2bcd8739ae039,{node:t,showControls:!h,onDelete:p})},t.id))})})})]})]})]}):null};var $43256c10008ac3d3$export$2e2bcd8739ae039=$43256c10008ac3d3$var$ControlPanel,$f9b3d81f3279b7f3$exports={};$f9b3d81f3279b7f3$exports="# Quick start\n\n## Add node\n - Mouse right click\n - Select **'Add Node'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Press `CMD+SHIFT+A`\n\n<br/>\n\n## Connect nodes\n - Mouse left click and hold on source port\n - Drop on target port\n\n<br/>\n\n## Delete Node or Connection\n - Mouse right click on node/connection\n - Select **'Delete Node'**/**'Delete Connection'** from context menu\n\n ### &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or\n\n - Mouse left click on node/connection, then press `Backspace`\n\n<br/>\n\n\n## Move node\n - Drag and Drop\n\n<br/>\n\n## Upload file\n - Drag and drop audio or patch files onto the application\n - Uploaded file appears as a new tab in the tabs bar at the top\n - Click on the tab to view or edit the file\n\n\n";const $c1639f96a5ce6d94$var$MdPreview=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
555
555
  font-family: var(--leva-fonts-mono);
556
556
  font-size: 0.7rem;
557
557
  box-sizing: border-box;
@@ -596,7 +596,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
596
596
  `,$568bdb85edee4bec$var$Icon=$parcel$interopDefault($fmhGi$emotionstyled)($fmhGi$reacticonsfa.FaVolumeOff)`
597
597
  width: 7rem;
598
598
  height: 7rem;
599
- `,$568bdb85edee4bec$var$ResumeContext=()=>{let e=$9a3ae56a32a010df$export$2e2bcd8739ae039(),t=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({patch:e})=>e).audioContext,[r,a]=(0,$fmhGi$react.useState)("running"===t.state);return r?null:(0,$fmhGi$reactjsxruntime.jsxs)($568bdb85edee4bec$var$Layout,{theme:e,onClick:()=>{t.resume(),a(!0)},children:[(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Row,{children:(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Message,{theme:e,children:"Click anywhere to resume audio context"})}),(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Row,{children:(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Icon,{})})]})};var $568bdb85edee4bec$export$2e2bcd8739ae039=$568bdb85edee4bec$var$ResumeContext;const $15213dc9c3a207a8$var$ToggleMinimap=()=>{let e=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({setConfig:e})=>e),{showMinimap:t}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({config:e})=>e);return(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.ControlButton,{onClick:()=>e({showMinimap:!t}),children:t?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsfa.FaMap,{}):(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsfa.FaRegMap,{})})};var $15213dc9c3a207a8$export$2e2bcd8739ae039=$15213dc9c3a207a8$var$ToggleMinimap;const $89d7409bb8708118$var$Wire=({id:e,sourceX:t,sourceY:r,targetX:a,targetY:o,sourcePosition:$,targetPosition:i,style:c={},data:n,markerStart:d,markerEnd:l,source:s,target:f,sourceHandleId:p,targetHandleId:h,selected:m})=>{let b=$9a3ae56a32a010df$export$2e2bcd8739ae039(),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({getNode:e})=>e),x=u(s),g=u(f),v=x?.selected||g?.selected;(0,$fmhGi$react.useEffect)(()=>{if(p&&h)return console.log(`connected ${s} to ${f}`),()=>{console.log(`disconnected ${s} from ${f}`)}},[s,p,f,h]);let[G]=(0,$fmhGi$reactflow.getBezierPath)({targetX:a,targetY:o,targetPosition:i,sourceX:t,sourceY:r,sourcePosition:$});return(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)("path",{id:e,style:{...c,stroke:m?b.colors.accent2:v?b.colors.highlight3:b.colors.highlight2},className:"react-flow__edge-path Wire",d:G,markerEnd:l}),(0,$fmhGi$reactjsxruntime.jsx)("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:G,markerEnd:l})]})};var $89d7409bb8708118$export$2e2bcd8739ae039=$89d7409bb8708118$var$Wire;console.log(99999,`React version: ${$fmhGi$react.version}`);const $927ea3f966266523$var$onNodeDragStop=(e,t)=>console.log("drag stop",t),$927ea3f966266523$var$onNodeClick=(e,t)=>console.log("click",t),$927ea3f966266523$var$snapGrid=[20,20],$927ea3f966266523$export$72cb76f559fbafcf=({editorState:e,plugins:t=[],editorContextMenu:r=[],onChange:a=()=>{},...o})=>{let $=(0,$fmhGi$react.useMemo)(()=>({wire:$89d7409bb8708118$export$2e2bcd8739ae039}),[]),{nodes:i,edges:c,controlPanel:n,onNodesChange:d,onNodesDelete:l,onEdgesChange:s,onEdgesDelete:f,onConnect:p,setPlugins:h,setViewport:m,viewport:b}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({config:e})=>e),x=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({nodeTypes:e})=>e);(0,$fmhGi$react.useEffect)(()=>{h(t)},[t]);let[g,v]=(0,$fmhGi$react.useState)(null);(0,$fmhGi$react.useEffect)(()=>{g&&a({nodes:i,edges:c,controlPanel:n,viewport:b})},[i,c,n,b]);let G=(0,$fmhGi$react.useCallback)(e=>{g||(v(e),console.log("flow loaded:",e))},[g]),{onContextMenu:j}=$1648f5ec674bd0e4$export$59ce2a6808e35a29(),{onContextMenu:y}=$8c457fe18f140d5d$export$cbbbfb9fb15f3780(),{onContextMenu:w}=$198f40b4dcd41028$export$8b2e4a15453bac1e();return(0,$fmhGi$react.useEffect)(()=>{b&&g?.setViewport(b)},[b,g]),(0,$fmhGi$reactflow.useOnViewportChange)({onEnd:m}),(0,$fmhGi$reactjsxruntime.jsxs)($parcel$interopDefault($fmhGi$reactflow),{nodes:i,edges:c,onNodesChange:d,onNodesDelete:l,onEdgesChange:s,onConnect:p,onNodeDragStop:$927ea3f966266523$var$onNodeDragStop,onEdgesDelete:f,onInit:G,onNodeClick:$927ea3f966266523$var$onNodeClick,onContextMenu:j,onNodeContextMenu:y,onEdgeContextMenu:w,nodeTypes:x,edgeTypes:$,snapGrid:$927ea3f966266523$var$snapGrid,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,disableKeyboardA11y:!0,children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.Background,{variant:$fmhGi$reactflow.BackgroundVariant.Dots,gap:12}),u.showMinimap?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.MiniMap,{}):null,(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactflow.Controls,{style:{right:"1rem",left:"initial",bottom:"40%",top:"initial"},showInteractive:!1,children:[(0,$fmhGi$reactjsxruntime.jsx)($15213dc9c3a207a8$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($a50aac6c340eccc7$export$78bddedbcf2939ac,{})]}),(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($c1639f96a5ce6d94$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($1648f5ec674bd0e4$export$2e2bcd8739ae039,{editorContextMenu:r}),(0,$fmhGi$reactjsxruntime.jsx)($8c457fe18f140d5d$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($198f40b4dcd41028$export$2e2bcd8739ae039,{})]})},$927ea3f966266523$export$7cda8d932e2f33c0=e=>(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.ReactFlowProvider,{children:(0,$fmhGi$reactjsxruntime.jsx)($927ea3f966266523$export$72cb76f559fbafcf,{...e})});var $927ea3f966266523$export$2e2bcd8739ae039=$927ea3f966266523$export$7cda8d932e2f33c0;const $985a60451d015e23$export$d31000d36961d6c2={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},$985a60451d015e23$export$6cd5d5c1dae69a36=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
599
+ `,$568bdb85edee4bec$var$ResumeContext=()=>{let e=$9a3ae56a32a010df$export$2e2bcd8739ae039(),t=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({patch:e})=>e).audioContext,[r,a]=(0,$fmhGi$react.useState)("running"===t.state);return r?null:(0,$fmhGi$reactjsxruntime.jsxs)($568bdb85edee4bec$var$Layout,{theme:e,onClick:()=>{t.resume(),a(!0)},children:[(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Row,{children:(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Message,{theme:e,children:"Click anywhere to resume audio context"})}),(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Row,{children:(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$var$Icon,{})})]})};var $568bdb85edee4bec$export$2e2bcd8739ae039=$568bdb85edee4bec$var$ResumeContext;const $15213dc9c3a207a8$var$ToggleMinimap=()=>{let e=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({setConfig:e})=>e),{showMinimap:t}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({config:e})=>e);return(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.ControlButton,{onClick:()=>e({showMinimap:!t}),children:t?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsfa.FaMap,{}):(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reacticonsfa.FaRegMap,{})})};var $15213dc9c3a207a8$export$2e2bcd8739ae039=$15213dc9c3a207a8$var$ToggleMinimap;const $89d7409bb8708118$var$Wire=({id:e,sourceX:t,sourceY:r,targetX:a,targetY:o,sourcePosition:$,targetPosition:i,style:c={},data:d,markerStart:n,markerEnd:l,source:s,target:f,sourceHandleId:p,targetHandleId:h,selected:m})=>{let b=$9a3ae56a32a010df$export$2e2bcd8739ae039(),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({getNode:e})=>e),x=u(s),g=u(f),v=x?.selected||g?.selected;(0,$fmhGi$react.useEffect)(()=>{if(p&&h)return console.log(`connected ${s} to ${f}`),()=>{console.log(`disconnected ${s} from ${f}`)}},[s,p,f,h]);let[G]=(0,$fmhGi$reactflow.getBezierPath)({targetX:a,targetY:o,targetPosition:i,sourceX:t,sourceY:r,sourcePosition:$});return(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactjsxruntime.Fragment,{children:[(0,$fmhGi$reactjsxruntime.jsx)("path",{id:e,style:{...c,stroke:m?b.colors.accent2:v?b.colors.highlight3:b.colors.highlight2},className:"react-flow__edge-path Wire",d:G,markerEnd:l}),(0,$fmhGi$reactjsxruntime.jsx)("path",{style:{...c,strokeWidth:8,color:"transparent",opacity:0,cursor:"pointer"},d:G,markerEnd:l})]})};var $89d7409bb8708118$export$2e2bcd8739ae039=$89d7409bb8708118$var$Wire;const $927ea3f966266523$var$onNodeDragStop=(e,t)=>console.log("drag stop",t),$927ea3f966266523$var$onNodeClick=(e,t)=>console.log("click",t),$927ea3f966266523$var$snapGrid=[20,20],$927ea3f966266523$export$72cb76f559fbafcf=({editorState:e,plugins:t=[],editorContextMenu:r=[],onChange:a=()=>{},...o})=>{let $=(0,$fmhGi$react.useMemo)(()=>({wire:$89d7409bb8708118$export$2e2bcd8739ae039}),[]),{nodes:i,edges:c,controlPanel:d,onNodesChange:n,onNodesDelete:l,onEdgesChange:s,onEdgesDelete:f,onConnect:p,setPlugins:h,setViewport:m,viewport:b}=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(),u=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({config:e})=>e),x=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(({nodeTypes:e})=>e);(0,$fmhGi$react.useEffect)(()=>{h(t)},[t]);let[g,v]=(0,$fmhGi$react.useState)(null);(0,$fmhGi$react.useEffect)(()=>{g&&a({nodes:i,edges:c,controlPanel:d,viewport:b})},[i,c,d,b]);let G=(0,$fmhGi$react.useCallback)(e=>{g||(v(e),console.log("flow loaded:",e))},[g]),{onContextMenu:j}=$1648f5ec674bd0e4$export$59ce2a6808e35a29(),{onContextMenu:y}=$8c457fe18f140d5d$export$cbbbfb9fb15f3780(),{onContextMenu:w}=$198f40b4dcd41028$export$8b2e4a15453bac1e();return(0,$fmhGi$react.useEffect)(()=>{b&&g?.setViewport(b)},[b,g]),(0,$fmhGi$reactflow.useOnViewportChange)({onEnd:m}),(0,$fmhGi$reactjsxruntime.jsxs)($parcel$interopDefault($fmhGi$reactflow),{nodes:i,edges:c,onNodesChange:n,onNodesDelete:l,onEdgesChange:s,onConnect:p,onNodeDragStop:$927ea3f966266523$var$onNodeDragStop,onEdgesDelete:f,onInit:G,onNodeClick:$927ea3f966266523$var$onNodeClick,onContextMenu:j,onNodeContextMenu:y,onEdgeContextMenu:w,nodeTypes:x,edgeTypes:$,snapGrid:$927ea3f966266523$var$snapGrid,defaultViewport:e?.viewport,defaultEdgeOptions:{type:"wire"},snapToGrid:!0,fitView:!0,disableKeyboardA11y:!0,children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.Background,{variant:$fmhGi$reactflow.BackgroundVariant.Dots,gap:12}),u.showMinimap?(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.MiniMap,{}):null,(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$reactflow.Controls,{style:{right:"1rem",left:"initial",bottom:"40%",top:"initial"},showInteractive:!1,children:[(0,$fmhGi$reactjsxruntime.jsx)($15213dc9c3a207a8$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($a50aac6c340eccc7$export$78bddedbcf2939ac,{})]}),(0,$fmhGi$reactjsxruntime.jsx)($568bdb85edee4bec$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($43256c10008ac3d3$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($c1639f96a5ce6d94$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($1648f5ec674bd0e4$export$2e2bcd8739ae039,{editorContextMenu:r}),(0,$fmhGi$reactjsxruntime.jsx)($8c457fe18f140d5d$export$2e2bcd8739ae039,{}),(0,$fmhGi$reactjsxruntime.jsx)($198f40b4dcd41028$export$2e2bcd8739ae039,{})]})},$927ea3f966266523$export$7cda8d932e2f33c0=e=>(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$reactflow.ReactFlowProvider,{children:(0,$fmhGi$reactjsxruntime.jsx)($927ea3f966266523$export$72cb76f559fbafcf,{...e})});var $927ea3f966266523$export$2e2bcd8739ae039=$927ea3f966266523$export$7cda8d932e2f33c0;const $985a60451d015e23$export$d31000d36961d6c2={nodes:[],edges:[],controlPanel:{nodes:[],show:!1,size:{width:200,height:100}},viewport:{x:0,y:0,zoom:1.5}},$985a60451d015e23$export$6cd5d5c1dae69a36=(0,$fmhGi$emotionreact.withTheme)($parcel$interopDefault($fmhGi$emotionstyled).div`
600
600
  display: flex;
601
601
  flex-direction: column;
602
602
  height: 100%;
@@ -681,7 +681,7 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
681
681
  &:hover {
682
682
  color: ${({theme:e})=>e.colors.whitePrimary};
683
683
  }
684
- `),$985a60451d015e23$var$generateId=()=>(0,$fmhGi$nanoid.nanoid)(),$985a60451d015e23$var$generateEmptyFile=()=>({file:$985a60451d015e23$export$d31000d36961d6c2,name:"Unnamed",type:"patch",id:$985a60451d015e23$var$generateId()}),$985a60451d015e23$export$86fbec116b87613f=({...e})=>{let{projectState:t,theme:r}=e,a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.currentFileIndex),o=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.project.files[e.currentFileIndex]),$=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setCurrentFileIndex),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.project),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setProject),n=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getProject),d=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.updateFileName),l=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addFile),s=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.deleteFile),f=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.syncEditorWithCurrentFile),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setEditorState);$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.pullEditorChanges);let[h,m]=(0,$fmhGi$react.useState)(!1);return(0,$fmhGi$react.useEffect)(()=>{c(t||{files:[$985a60451d015e23$var$generateEmptyFile()]});let e=t?.files[0];e?.file&&e?.type!=="audio"&&p(e.file)},[t]),(0,$fmhGi$react.useEffect)(()=>{let e=async(...e)=>{let t=new Request(...e),r=n().files,a=t.url.replace("project://",""),o=r.find(({id:e})=>e===a);return o?$4f5dab380e6c5337$export$e698b79c63b74136(o)?new Response(JSON.stringify(o.file??null)):$4f5dab380e6c5337$export$31c2336f657dc59f(o)?fetch(o.file):new Response(null):new Response(`File not found: ${t.url}`,{status:404})};return(0,$fmhGi$webnoisefetch.registerFetcher)("project://*",e),()=>{}},[n]),(0,$fmhGi$react.useEffect)(()=>{f()},[a,f]),(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$emotionreact.ThemeProvider,{theme:r||$92db495027db752c$export$2e2bcd8739ae039,children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$emotionreact.Global,{styles:(0,$fmhGi$emotionreact.css)`
684
+ `),$985a60451d015e23$var$generateId=()=>(0,$fmhGi$nanoid.nanoid)(),$985a60451d015e23$var$generateEmptyFile=()=>({file:$985a60451d015e23$export$d31000d36961d6c2,name:"Unnamed",type:"patch",id:$985a60451d015e23$var$generateId()}),$985a60451d015e23$export$86fbec116b87613f=({...e})=>{let{projectState:t,theme:r}=e,a=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.currentFileIndex),o=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.project.files[e.currentFileIndex]),$=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setCurrentFileIndex),i=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.project),c=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setProject),d=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.getProject),n=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.updateFileName),l=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.addFile),s=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.deleteFile),f=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.syncEditorWithCurrentFile),p=$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.setEditorState);$7d1a5bdfd7b5aa4a$export$2e2bcd8739ae039(e=>e.pullEditorChanges);let[h,m]=(0,$fmhGi$react.useState)(!1);return(0,$fmhGi$react.useEffect)(()=>{c(t||{files:[$985a60451d015e23$var$generateEmptyFile()]});let e=t?.files[0];e?.file&&e?.type!=="audio"&&p(e.file)},[t]),(0,$fmhGi$react.useEffect)(()=>{let e=async(...e)=>{let t=new Request(...e),r=d().files,a=t.url.replace("project://",""),o=r.find(({id:e})=>e===a);return o?$4f5dab380e6c5337$export$e698b79c63b74136(o)?new Response(JSON.stringify(o.file??null)):$4f5dab380e6c5337$export$31c2336f657dc59f(o)?fetch(o.file):new Response(null):new Response(`File not found: ${t.url}`,{status:404})};return(0,$fmhGi$webnoisefetch.registerFetcher)("project://*",e),()=>{}},[d]),(0,$fmhGi$react.useEffect)(()=>{f()},[a,f]),(0,$fmhGi$reactjsxruntime.jsxs)($fmhGi$emotionreact.ThemeProvider,{theme:r||$92db495027db752c$export$2e2bcd8739ae039,children:[(0,$fmhGi$reactjsxruntime.jsx)($fmhGi$emotionreact.Global,{styles:(0,$fmhGi$emotionreact.css)`
685
685
  :root {
686
686
  --leva-colors-elevation1: #292d39;
687
687
  --leva-colors-elevation2: #181c20;
@@ -738,5 +738,5 @@ var $07dabc4e7d66bab5$export$b0b7b95ee465c83c,$fmhGi$reactjsxruntime=require("re
738
738
  --leva-fontWeights-folder: normal;
739
739
  --leva-fontWeights-button: normal;
740
740
  }
741
- `}),(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$6cd5d5c1dae69a36,{onDragOver:e=>{e.preventDefault(),e.stopPropagation(),m(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),m(!1)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),m(!1),Array.from(e.dataTransfer.files).forEach(async e=>{if("application/json"===e.type){let t=JSON.parse(await e.text());if(t.files&&t.files.length){if(!window.confirm("This action will replace your current project. Continue?"))return;c(t),$(0),f();return}l({...$985a60451d015e23$var$generateEmptyFile(),file:{...t,controlPanel:{...$985a60451d015e23$export$d31000d36961d6c2.controlPanel,...t.controlPanel}},name:e.name},e.name);return}if(e.type.match(/^audio\//)){let t=await $81158361350173a6$export$25df2e315be8e003(e);l({type:"audio",id:`audio-file-${+new Date}`,name:e.name,file:t});return}console.error("Unsupported file type",e)})},children:[(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$2206531ad8592d57,{children:[i.files.map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$3e41faf802a29e71,{onClick:()=>{$(t)},active:t===a,children:[(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$2e2bcd8739ae039,{onChange:e=>d(t,e),value:e.name||"Unnamed"}),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$cae179f078f4b4a4,{onClick:e=>{e.stopPropagation(),window.confirm("Do you really want to delete this file?")&&s(t)}})]},t)),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$61e5b3c7bace77b8,{onClick:()=>{l($985a60451d015e23$var$generateEmptyFile()),$(i.files.length)},children:(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$3aef34186a092045,{})})]}),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$8d546ef2006cd0a2,{children:(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$b38a2fd24b22fb35,{file:o,...e})}),h&&(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$6bc5189622b1f4ec,{children:"Drop file(s) to upload to the project"})]})]})};var $985a60451d015e23$export$2e2bcd8739ae039=$985a60451d015e23$export$86fbec116b87613f;
741
+ `}),(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$6cd5d5c1dae69a36,{onDragOver:e=>{e.preventDefault(),e.stopPropagation(),m(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),m(!1)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),m(!1),Array.from(e.dataTransfer.files).forEach(async e=>{if("application/json"===e.type){let t=JSON.parse(await e.text());if(t.files&&t.files.length){if(!window.confirm("This action will replace your current project. Continue?"))return;c(t),$(0),f();return}l({...$985a60451d015e23$var$generateEmptyFile(),file:{...t,controlPanel:{...$985a60451d015e23$export$d31000d36961d6c2.controlPanel,...t.controlPanel}},name:e.name},e.name);return}if(e.type.match(/^audio\//)){let t=await $81158361350173a6$export$25df2e315be8e003(e);l({type:"audio",id:`audio-file-${+new Date}`,name:e.name,file:t});return}console.error("Unsupported file type",e)})},children:[(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$2206531ad8592d57,{children:[i.files.map((e,t)=>(0,$fmhGi$reactjsxruntime.jsxs)($985a60451d015e23$export$3e41faf802a29e71,{onClick:()=>{$(t)},active:t===a,children:[(0,$fmhGi$reactjsxruntime.jsx)($35ac08ca6453b68a$export$2e2bcd8739ae039,{onChange:e=>n(t,e),value:e.name||"Unnamed"}),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$cae179f078f4b4a4,{onClick:e=>{e.stopPropagation(),window.confirm("Do you really want to delete this file?")&&s(t)}})]},t)),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$61e5b3c7bace77b8,{onClick:()=>{l($985a60451d015e23$var$generateEmptyFile()),$(i.files.length)},children:(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$3aef34186a092045,{})})]}),(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$8d546ef2006cd0a2,{children:(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$b38a2fd24b22fb35,{file:o,...e})}),h&&(0,$fmhGi$reactjsxruntime.jsx)($985a60451d015e23$export$6bc5189622b1f4ec,{children:"Drop file(s) to upload to the project"})]})]})};var $985a60451d015e23$export$2e2bcd8739ae039=$985a60451d015e23$export$86fbec116b87613f;
742
742
  //# sourceMappingURL=main.js.map