{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-petrinet/src/components/widgets/lively-code-mirror-code-augmentations.js"],"names":["CodeMirrorCodeAugmentations","constructor","astCapabilities","codeMirror","updateColorPickers","codeChanged","colorLiterals","getColorLiterals","red","old","getAllMarks","forEach","marker","type","clear","path","location","line","node","loc","end","ch","column","picker","document","createElement","value","height","width","bookmark","setBookmark","addEventListener","event","currentLocation","find","updateColor","target"],"mappings":";;;;;;;;;;;;AAAe,YAAMA,2BAAN,CAAkC;;AAE/CC,oBAAYC,eAAZ,EAA6BC,UAA7B,EAAyC;AACvC,eAAKD,eAAL,GAAuBA,eAAvB;AACA,eAAKC,UAAL,GAAkBA,UAAlB;AACA,eAAKC,kBAAL;AACD;;AAEDC,sBAAc;AACZ,eAAKD,kBAAL;AACD;AACD;;AAEAA,6BAAqB;AACnB,gBAAME,gBAAgB,KAAKJ,eAAL,CAAqBK,gBAArB,EAAtB;AACA,cAAI,CAACD,aAAL,EAAoB;AAClB;AACD;AACD,cAAIE,MAAM,SAAV;AACA,gBAAMC,MAAM,KAAKN,UAAL,CAAgBO,WAAhB,EAAZ;AACAD,cAAIE,OAAJ,CAAYC,UAAU;AACpB,gBAAIA,OAAOC,IAAP,KAAgB,UAApB,EAAgC;AAC9BD,qBAAOE,KAAP;AACD;AACF,WAJD;AAKAR,wBAAcK,OAAd,CAAsBI,QAAQ;AAC5B,kBAAMC,WAAW,EAAEC,MAAMF,KAAKG,IAAL,CAAUC,GAAV,CAAcC,GAAd,CAAkBH,IAAlB,GAAyB,CAAjC,EAAoCI,IAAIN,KAAKG,IAAL,CAAUC,GAAV,CAAcC,GAAd,CAAkBE,MAA1D,EAAjB;AACA,gBAAIC,4BAASC,SAASC,aAAT,CAAuB,OAAvB,CAAT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAJ;AACAF,mBAAOV,IAAP,GAAc,OAAd;AACAU,mBAAOG,KAAP,GAAeX,KAAKG,IAAL,CAAUQ,KAAzB;AACAH,mBAAOI,MAAP,GAAgB,IAAhB;AACAJ,mBAAOK,KAAP,GAAe,IAAf;AACA,kBAAMC,WAAW,KAAK1B,UAAL,CAAgB2B,WAAhB,CAA4Bd,QAA5B,EAAsCO,MAAtC,CAAjB;AACAA,mBAAOQ,gBAAP,CAAwB,QAAxB,EAAkCC,SAAS;AACzC,oBAAMC,kBAAkBJ,SAASK,IAAT,EAAxB;AACA,mBAAKhC,eAAL,CAAqBiC,WAArB,CAAiCF,eAAjC,EAAkDD,MAAMI,MAAN,CAAaV,KAA/D;AACD,aAHD;AAID,WAZD;AAaD;AAtC8C;;yBAA5B1B,2B","file":"lively-code-mirror-code-augmentations.js","sourcesContent":["export default class CodeMirrorCodeAugmentations {\n\n  constructor(astCapabilities, codeMirror) {\n    this.astCapabilities = astCapabilities;\n    this.codeMirror = codeMirror;\n    this.updateColorPickers();\n  }\n\n  codeChanged() {\n    this.updateColorPickers();\n  }\n  /*MD ## Color Picker MD*/\n\n  updateColorPickers() {\n    const colorLiterals = this.astCapabilities.getColorLiterals();\n    if (!colorLiterals) {\n      return;\n    }\n    var red = \"#800080\";\n    const old = this.codeMirror.getAllMarks();\n    old.forEach(marker => {\n      if (marker.type === \"bookmark\") {\n        marker.clear();\n      }\n    });\n    colorLiterals.forEach(path => {\n      const location = { line: path.node.loc.end.line - 1, ch: path.node.loc.end.column };\n      var picker = document.createElement(\"input\");\n      picker.type = \"color\";\n      picker.value = path.node.value;\n      picker.height = \"15\";\n      picker.width = \"15\";\n      const bookmark = this.codeMirror.setBookmark(location, picker);\n      picker.addEventListener('change', event => {\n        const currentLocation = bookmark.find();\n        this.astCapabilities.updateColor(currentLocation, event.target.value);\n      });\n    });\n  }\n}"]}