{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/src/components/demo/lively-petrinet-helper.js"],"names":["Helper","startDragAndDrop","mouseEvent","objectToDrag","offset","lively","getPosition","originalPosition","addEventListener","document","body","parentElement","evt","setPosition","addPt","subPt","removeEventListener","getRandomId","Math","random","toString","substring","getSelectedBorder","getDisselectedBorder","getPetrinetOf","component","petrinet","query","undefined","error","shuffled","array","i","length","j","floor"],"mappings":";;;;;;;;AAAO,YAAMA,MAAN,CAAa;;AAGlB,eAAOC,gBAAP,CAAwBC,UAAxB,EAAoCC,YAApC,EAAkD;AAChD,gBAAMC,SAASC,OAAOC,WAAP,CAAmBJ,UAAnB,CAAf;AACA,gBAAMK,mBAAmBF,OAAOC,WAAP,CAAmBH,YAAnB,CAAzB;AACAE,iBAAOG,gBAAP,CAAwB,YAAxB,EAAsCC,SAASC,IAAT,CAAcC,aAApD,EAAmE,aAAnE,EAAkFC,OAAO;AACvFP,mBAAOQ,WAAP,CAAmBV,YAAnB,EAAiCI,iBAAiBO,KAAjB,CAAuBT,OAAOC,WAAP,CAAmBM,GAAnB,EAAwBG,KAAxB,CAA8BX,MAA9B,CAAvB,CAAjC;AACD,WAFD;AAGAC,iBAAOG,gBAAP,CAAwB,YAAxB,EAAsCC,SAASC,IAAT,CAAcC,aAApD,EAAmE,WAAnE,EAAgFC,OAAO;AACrFP,mBAAOW,mBAAP,CAA2B,YAA3B,EAAyCP,SAASC,IAAT,CAAcC,aAAvD;AACD,WAFD;AAGD;;AAED,eAAOM,WAAP,GAAqB;AAClB,iBAAOC,KAAKC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC,CAAP;AACF;;AAED,eAAOC,iBAAP,GAA2B;AACzB,iBAAO,mBAAP;AACD;;AAED,eAAOC,oBAAP,GAA8B;AAC5B,iBAAO,mBAAP;AACD;;AAED,eAAOC,aAAP,CAAqBC,SAArB,EAA+B;AAC7B,gBAAMC,WAAWrB,OAAOsB,KAAP,CAAaF,SAAb,EAAwB,wBAAxB,CAAjB;AACA,cAAIC,aAAaE,SAAjB,EAA4B;AAC1BvB,mBAAOwB,KAAP,CAAa,oBAAb;AACD;AACD,iBAAOH,QAAP;AACD;;AAED,eAAOI,QAAP,CAAgBC,KAAhB,EAAuB;AACrB,cAAID,WAAW,CAAC,GAAGC,KAAJ,CAAf;AACA,eAAK,IAAIC,IAAIF,SAASG,MAAT,GAAkB,CAA/B,EAAkCD,IAAI,CAAtC,EAAyCA,GAAzC,EAA8C;AAC5C,kBAAME,IAAIhB,KAAKiB,KAAL,CAAWjB,KAAKC,MAAL,MAAiBa,IAAI,CAArB,CAAX,CAAV;AACA,aAACF,SAASE,CAAT,CAAD,EAAcF,SAASI,CAAT,CAAd,IAA6B,CAACJ,SAASI,CAAT,CAAD,EAAcJ,SAASE,CAAT,CAAd,CAA7B;AACD;AACD,iBAAOF,QAAP;AACD;;AAGD;;;;;;;;;;;;;;;;;;;;;AA5CkB;;;;;;;;;;4BAAP9B,uC","file":"lively-petrinet-helper.js","sourcesContent":["export class Helper {\n  \n  \n  static startDragAndDrop(mouseEvent, objectToDrag) {\n    const offset = lively.getPosition(mouseEvent);\n    const originalPosition = lively.getPosition(objectToDrag);\n    lively.addEventListener(\"dragObject\", document.body.parentElement, \"pointermove\", evt => {\n      lively.setPosition(objectToDrag, originalPosition.addPt(lively.getPosition(evt).subPt(offset)))\n    });\n    lively.addEventListener(\"dragObject\", document.body.parentElement, \"pointerup\", evt => {\n      lively.removeEventListener(\"dragObject\", document.body.parentElement)\n    });\n  }\n  \n  static getRandomId() {\n     return Math.random().toString(36).substring(7);\n  }\n  \n  static getSelectedBorder() {\n    return \"3px solid #FF6E40\"\n  }\n  \n  static getDisselectedBorder() {\n    return \"1px solid #333333\";\n  }\n  \n  static getPetrinetOf(component){\n    const petrinet = lively.query(component, \"lively-petrinet-editor\");\n    if (petrinet === undefined) {\n      lively.error(\"Error: No Petrinet\")\n    }\n    return petrinet;\n  }\n  \n  static shuffled(array) {\n    let shuffled = [...array];\n    for (let i = shuffled.length - 1; i > 0; i--) {\n      const j = Math.floor(Math.random() * (i + 1));\n      [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];\n    }\n    return shuffled;\n  }\n  \n  \n  /* The function works, but I got horrible errors when trying to change the innerHTML before saving, so we wont use prettyPrint.\n  static prettyPrinted(html) {\n    const tags = html.split(\"<\").slice(1);\n    const componentNames = tags.map(tag => tag.split(\" \")[0]).map(name => name.replace(\">\", \"\")).map(name => name.replace(\"/\", \"\"));\n    const withBeginningSymbol = tags.map(tag => \"<\" + tag);\n    const componentStack = [];\n    let prettyHtml = \"\"\n    for (let i = 0; i < tags.length; i++) {\n      const lastComponent = componentStack[componentStack.length-1];\n      const currentComponent = componentNames[i];\n      if (lastComponent === currentComponent) {\n        componentStack.pop();\n      } else {\n        componentStack.push(currentComponent);\n      }\n      prettyHtml += \"\\t\".repeat(componentStack.length) + withBeginningSymbol[i] + \"\\n\";\n    }\n    return prettyHtml;\n  }\n  */\n                            \n                            \n}"]}