{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/demos/swd21/pipes-and-filters/exampleRun2.js"],"names":["Pipe","ActiveFilter","OutputPipe","PipeActive","FilterPassive","ExampleRun2","constructor","dataSource","pipe","opipe","opipePassive","filterPassive","elements","parsedElements","JSON","parse","filter","elem","name","pipeActive","activeFilter","pushDataIntoPipe","newData","pushElement","startActiveFilter","activeFilterData","createExampleRun","dataFromSource","getDataFromSource","parsedData","view","inputField","stringify","startBtn","btn","shift","value","stopBtn","stop","outputField","outputFieldPassive","resetBtn","startActivePipeBtn","addElement","setOutputElement","divDataSource","append","divButtons1","divBuffer","divButtons2","divBuffer2","divResetAll","data","fetch","then","r","text"],"mappings":"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","file":"exampleRun2.js","sourcesContent":["import Pipe from \"./pipe.js\";\nimport ActiveFilter from \"./activeFilter.js\";\nimport OutputPipe from \"./pipe2.js;\"\nimport PipeActive from \"./pipeActive.js\"\nimport FilterPassive from \"./filterPassive.js\"\n\nexport default class ExampleRun2 {\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    \n    this.opipePassive = new OutputPipe();\n    \n    this.filterPassive = new FilterPassive((elements) => {\n      var parsedElements = JSON.parse(elements)\n      return parsedElements.filter(elem => elem.name != \"Apfel\")\n    }, this.opipePassive)\n    this.pipeActive = new PipeActive(this.filterPassive)\n    \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    var parsedData = JSON.parse(dataFromSource)\n    \n    var view = <div></div>\n    var inputField = <textarea rows=\"15\" cols=\"50\">{JSON.stringify(parsedData)}</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            this.pushDataIntoPipe(parsedData.shift());\n            inputField.value = JSON.stringify(parsedData)\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  var outputFieldPassive = <textarea rows=\"15\" cols=\"50\" id=\"outputTextFieldPassive\"></textarea>\n        \n   var resetBtn =      \n       <button click={ () => {\n           outputField.value = \"\";\n           outputFieldPassive.value = \"\";\n           parsedData = JSON.parse(dataFromSource)\n           inputField.value = JSON.stringify(parsedData)\n        }}>reset all</button>\n       \n   var startActivePipeBtn =      \n       <button click={ () => {\n           // TODO call active pipe\n           \n           this.pipeActive.addElement(outputField.value)\n        }}>start active pipe</button>\n       \n       \n    //pass outputField to oPipe \n    this.opipe.setOutputElement(outputField);\n    //pass outputField to oPipe \n    this.opipePassive.setOutputElement(outputFieldPassive)\n    \n    var divDataSource = <div></div>\n    divDataSource.append(inputField)\n    \n    var divButtons1 = <div></div>\n    divButtons1.append(startBtn, btn, stopBtn)\n    \n    var divBuffer = <div></div>\n    divBuffer.append(outputField)\n    \n    var divButtons2 = <div></div>\n    divButtons2.append(startActivePipeBtn)\n    \n    var divBuffer2 = <div></div>\n    divBuffer2.append(outputFieldPassive)\n    \n    var divResetAll = <div></div>\n    divResetAll.append(resetBtn)\n    \n    view.append(divDataSource, divButtons1, divBuffer, divButtons2, divBuffer2, divResetAll)\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"]}