{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/src/components/halo/lively-halo-vivide-save-application-item.js"],"names":["HaloItem","getName","writeFile","basePath","LivelyHaloVivideSaveApplicationItem","onClick","evt","saveTarget","window","name","description","url","undefined","stringToSave","stringify","createJSON","script","inputSources","i","v","outputs","inputs","widget","id"],"mappings":"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","file":"lively-halo-vivide-save-application-item.js","sourcesContent":["\"enable aexpr\";\n\nimport HaloItem from 'src/components/halo/lively-halo-item.js';\nimport {getName, writeFile} from 'src/client/vivide/scripts/saving.js';\n\nconst basePath = \"src/client/vivide/scripts/applications/\";\n\n\nexport default class LivelyHaloVivideSaveApplicationItem extends HaloItem {\n  async onClick(evt){\n    const saveTarget = window.that;\n    const {name, description, url} = await getName(saveTarget, \"application\");\n    if(name===undefined) return;\n    this.storedViews = [];\n    // set the name on the saveTarget\n    /*\n    We have to save a multitude of things:\n    inputData\n    scriptSteps\n    And for applications:\n    input targets\n    output targets\n    */\n    const stringToSave = JSON.stringify(this.createJSON(saveTarget, name, description));\n    this.storedViews = [];\n    writeFile(url, stringToSave);\n  }\n  \n  createJSON(saveTarget, name, description){\n    this.storedViews.push(saveTarget.id);\n    saveTarget.applicationName = name;\n    saveTarget.description = description;\n    const script = saveTarget.myCurrentScript.toJSON();\n    const inputSources = saveTarget.inportSources\n      .filter(i => !this.storedViews.includes(i.id))\n      .map(v => {\n        return this.createJSON(v, name);\n      });\n    const outputs = saveTarget.outportTargets\n      .filter(i => !this.storedViews.includes(i.id))\n      .map(v => {\n        return this.createJSON(v, name);\n      });\n    const inputs = saveTarget.input;\n    const stringToSave = {description, script, outputs, inputSources, inputs, widget: saveTarget.widget.tagName.toLowerCase(), id: saveTarget.id};\n    return stringToSave;\n  }\n}"]}