{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/demos/swd21/pipes-and-filters/exampleRun1.js"],"names":["Pipe","ActiveFilter","OutputPipe","ExampleRun1","constructor","dataSource","pipe","opipe","activeFilter","pushDataIntoPipe","newData","pushElement","startActiveFilter","activeFilterData","createExampleRun","dataFromSource","getDataFromSource","view","inputField","JSON","stringify","parse","startBtn","btn","data","stopBtn","stop","outputField","clearBtn","value","setOutputElement","btnDiv","append","fetch","then","r","text"],"mappings":";;;;;;;;;;;;;;;AAAOA,U;;AACAC,kB;;AACAC,gB;;;;;;;;;;;AAFAF,+C;;;;;;;;;;;;;AACAC,uD;;;;;;;;;;;;;AACAC,qD;;;;;;;AAEQ,YAAMC,WAAN,CAAkB;;AAE/BC,sBAAc;AACZ,eAAKC,UAAL,GAAkB,yGAAlB;AACA,eAAKC,IAAL,GAAY,IAAIN,IAAJ,EAAZ;AACA,eAAKO,KAAL,GAAa,IAAIL,UAAJ,EAAb;AACA,eAAKM,YAAL,GAAoB,IAAIP,YAAJ,CAAiB,KAAKK,IAAtB,EAA4B,KAAKC,KAAjC,CAApB;AAED;;AAGD;AACAE,yBAAiBC,OAAjB,EAA0B;AACxB,eAAKJ,IAAL,CAAUK,WAAV,CAAsBD,OAAtB;AACD;;AAGD;AACA,cAAME,iBAAN,GAA0B;AACxB,eAAKJ,YAAL,CAAkBK,gBAAlB;AACD;;AAED,cAAMC,gBAAN,GAAwB;AACtB,cAAIC,iBAAiB,MAAM,KAAKC,iBAAL,EAA3B;;AAEA,cAAIC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;AACA,cAAIC,8EAA4B,IAA5B,mCAAsC,IAAtC,+BAA4CC,KAAKC,SAAL,CAAeD,KAAKE,KAAL,CAAWN,cAAX,CAAf,CAA5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAEA,cAAIO,wEAA0B,YAAY;AACpC,iBAAKV,iBAAL;AACD,WAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAIA,cAAIW,mEACa,YAAY;AACrB,gBAAIC,OAAO,MAAM,KAAKR,iBAAL,EAAjB;AACA,iBAAKP,gBAAL,CAAsBe,IAAtB;AACH,WAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAMD,cAAIC,uEACe,MAAM;AACjB,iBAAKjB,YAAL,CAAkBkB,IAAlB;AACF,WAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAKC,cAAIC,+EAA6B,IAA7B,mCAAuC,IAAvC,iCAA+C,iBAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAED,cAAIC,wEACgB,MAAM;AAClBD,wBAAYE,KAAZ,GAAoB,EAApB;AACF,WAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;;AAMC;AACA,eAAKtB,KAAL,CAAWuB,gBAAX,CAA4BH,WAA5B;;AAEA;AACA,cAAII;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;AACAA,iBAAOC,MAAP,CAAcV,QAAd,EAAwBC,GAAxB,EAA6BE,OAA7B,EAAsCG,QAAtC;AACAX,eAAKe,MAAL,CAAYD,MAAZ,EAAoBb,UAApB,EAAgCS,WAAhC;;AAEA,iBAAOV,IAAP;AACD;;AAGD,cAAMD,iBAAN,GAA0B;AACxB,cAAIQ,OAAQ,MAAMS,MAAM,KAAK5B,UAAX,EAAuB6B,IAAvB,CAA4BC,KAAKA,EAAEC,IAAF,EAAjC,CAAlB;AACA,iBAAOZ,IAAP;AACD;;AAlE8B;;yBAAZrB,W;;;;;;;;6BAAAA,4C","file":"exampleRun1.js","sourcesContent":["import Pipe from \"./pipe.js\";\nimport ActiveFilter from \"./activeFilter.js\";\nimport OutputPipe from \"./pipe2.js;\"\n\nexport default class ExampleRun1 {\n  \n  constructor() {\n    this.dataSource = \"https://lively-kernel.org/lively4/swd21-pipes-and-filters/demos/swd21/pipes-and-filters/datasource.json\";\n    this.pipe = new Pipe();\n    this.opipe = new OutputPipe();\n    this.activeFilter = new ActiveFilter(this.pipe, this.opipe)\n\n  }\n  \n  \n  // pushes Data into pipe as it is a active filter that checks the pipe in an interval\n  pushDataIntoPipe(newData) {\n    this.pipe.pushElement(newData)\n  }\n  \n  \n  // runs the active filter\n  async startActiveFilter() {\n    this.activeFilter.activeFilterData()\n  }\n  \n  async createExampleRun(){\n    var dataFromSource = await this.getDataFromSource();\n    \n    var view = <div></div>\n    var inputField = <textarea rows=\"15\" cols=\"50\">{JSON.stringify(JSON.parse(dataFromSource))}</textarea>\n    \n    var startBtn = <button click={async () => {\n          this.startActiveFilter();\n        }}>start Active Filter</button>\n        \n    var btn = \n      <button click={async () => {\n            var data = await this.getDataFromSource()\n            this.pushDataIntoPipe(data);\n        }}>push Data into Pipe</button>\n        \n   var stopBtn = \n      <button click={ () => {\n           this.activeFilter.stop();\n        }}>stop Active Filter</button>\n    \n    var outputField = <textarea rows=\"15\" cols=\"50\" id=\"outputTextField\"></textarea>             \n        \n   var clearBtn =      \n       <button click={ () => {\n           outputField.value = \"\";\n        }}>clear Data sink</button>\n       \n       \n    //pass outputField to oPipe \n    this.opipe.setOutputElement(outputField);\n    \n    //append all items to div and return \n    var btnDiv = <div></div>\n    btnDiv.append(startBtn, btn, stopBtn, clearBtn)\n    view.append(btnDiv, inputField, outputField)\n    \n    return view\n  }\n  \n  \n  async getDataFromSource() {\n    var data =  await fetch(this.dataSource).then(r => r.text())\n    return data;\n  }\n\n  \n  \n}\n\n"]}