{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/control-widget.js"],"names":["Morph","GroupChainingControlWidget","initialize","rootContainer","get","tabWidget","addNewWidget","actionWidget","assertActionWidgetInterface","addTabButton","addTabContent","tabButton","id","addEventListener","openWidget","classList","add","tabDiv","append","tabContentDiv","className","actionWidgetName","hideCurrentTabContent","setTabBarInactive","displayClickedWidget","i","tabcontent","lively","queryAll","length","style","display","tablinks","replace","query","name","Error"],"mappings":";;;;;;;;;;;;;AAAOA,W;;;;;;;;;;;;;;;;;;AAEQ,YAAMC,0BAAN,SAAyCD,KAAzC,CAA+C;AAC5D,cAAME,UAAN,GAAmB;AACjB,eAAKC,aAAL,GAAqB,KAAKC,GAAL,CAAS,iBAAT,CAArB;AACA,eAAKC,SAAL,GAAiB,KAAKD,GAAL,CAAS,aAAT,CAAjB;;AAEA;AAED;;AAEDE,qBAAaC,YAAb,EAA2B;AACzB,eAAKC,2BAAL,CAAiCD,YAAjC;AACA,eAAKE,YAAL,CAAkBF,YAAlB;AACA,eAAKG,aAAL,CAAmBH,YAAnB;AACD;;AAEDE,qBAAaF,YAAb,EAA2B;AACzB,cAAII,sEAAyBJ,aAAaK,EAAb,GAAkB,SAA3C,+BAAyDL,aAAaK,EAAtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAJ;AACAD,oBAAUE,gBAAV,CAA2B,OAA3B,EAAoC,MAAM;AAAE,iBAAKC,UAAL,CAAgBP,aAAaK,EAA7B;AAAkC,WAA9E;AACAD,oBAAUI,SAAV,CAAoBC,GAApB,CAAwB,UAAxB;AACA,eAAKC,MAAL,CAAYC,MAAZ,CAAmBP,SAAnB;AACD;;AAEDD,sBAAcH,YAAd,EAA4B;AAC1B,eAAKY,aAAL,CAAmBD,MAAnB,CAA0BX,YAA1B;AACAA,uBAAaa,SAAb,GAAyB,YAAzB;AACD;;AAEDN,mBAAWO,gBAAX,EAA6B;AAC3B,eAAKC,qBAAL;AACA,eAAKC,iBAAL;AACA,eAAKC,oBAAL,CAA0BH,gBAA1B;AACD;;AAEDC,gCAAuB;AACrB,cAAIG,CAAJ,EAAOC,UAAP;;AAEAA,uBAAaC,OAAOC,QAAP,CAAgB,KAAKzB,aAArB,EAAoC,aAApC,CAAb;AACA,eAAKsB,IAAI,CAAT,EAAYA,IAAIC,WAAWG,MAA3B,EAAmCJ,GAAnC,EAAwC;AACtCC,uBAAWD,CAAX,EAAcK,KAAd,CAAoBC,OAApB,GAA8B,MAA9B;AACD;AACF;;AAEDR,4BAAmB;AACjB,cAAIS,QAAJ,EAAcP,CAAd;;AAEAO,qBAAWL,OAAOC,QAAP,CAAgB,KAAKzB,aAArB,EAAoC,WAApC,CAAX;AACA,eAAKsB,IAAI,CAAT,EAAYA,IAAIO,SAASH,MAAzB,EAAiCJ,GAAjC,EAAsC;AACpCO,qBAASP,CAAT,EAAYL,SAAZ,GAAwBY,SAASP,CAAT,EAAYL,SAAZ,CAAsBa,OAAtB,CAA8B,SAA9B,EAAyC,EAAzC,CAAxB;AACD;AACF;;AAEDT,6BAAqBH,gBAArB,EAAsC;AACpCM,iBAAOO,KAAP,CAAa,KAAK/B,aAAlB,EAAiC,MAAMkB,gBAAvC,EAAyDS,KAAzD,CAA+DC,OAA/D,GAAyE,OAAzE;AACAJ,iBAAOO,KAAP,CAAa,KAAK/B,aAAlB,EAAiC,MAAMkB,gBAAN,GAAyB,SAA1D,EAAqED,SAArE,IAAkF,SAAlF;AACD;;AAEDZ,oCAA4BD,YAA5B,EAA0C;AACxC,cAAK,OAAOA,aAAa4B,IAArB,KAA+B,WAAnC,EAAgD;AAC9C,kBAAM,IAAIC,KAAJ,CAAU,kCAAV,CAAN;AACD;AACF;AA5D2D;;yBAAzCnC,0B","file":"control-widget.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js'\n\nexport default class GroupChainingControlWidget extends Morph {\n  async initialize() {\n    this.rootContainer = this.get(\"#root-container\");\n    this.tabWidget = this.get(\"#tab-widget\");\n    \n    // Add Actions to menu\n    \n  }\n  \n  addNewWidget(actionWidget) {\n    this.assertActionWidgetInterface(actionWidget);\n    this.addTabButton(actionWidget);\n    this.addTabContent(actionWidget);\n  }\n  \n  addTabButton(actionWidget) {\n    let tabButton = <button id={ actionWidget.id + \"-button\" }>{ actionWidget.id }</button>;\n    tabButton.addEventListener(\"click\", () => { this.openWidget(actionWidget.id) });\n    tabButton.classList.add(\"tablinks\")\n    this.tabDiv.append(tabButton);\n  }\n  \n  addTabContent(actionWidget) {\n    this.tabContentDiv.append(actionWidget);\n    actionWidget.className = \"tabcontent\";\n  }\n  \n  openWidget(actionWidgetName) {\n    this.hideCurrentTabContent();\n    this.setTabBarInactive();\n    this.displayClickedWidget(actionWidgetName);\n  }\n  \n  hideCurrentTabContent(){\n    var i, tabcontent;\n    \n    tabcontent = lively.queryAll(this.rootContainer, \".tabcontent\");\n    for (i = 0; i < tabcontent.length; i++) {\n      tabcontent[i].style.display = \"none\";\n    }\n  }\n  \n  setTabBarInactive(){\n    var tablinks, i;\n    \n    tablinks = lively.queryAll(this.rootContainer, \".tablinks\");\n    for (i = 0; i < tablinks.length; i++) {\n      tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\n    }\n  }\n  \n  displayClickedWidget(actionWidgetName){\n    lively.query(this.rootContainer, \"#\" + actionWidgetName).style.display = \"block\";\n    lively.query(this.rootContainer, \"#\" + actionWidgetName + \"-button\").className += \" active\";\n  }\n  \n  assertActionWidgetInterface(actionWidget) {\n    if ((typeof actionWidget.name) === \"undefined\") {\n      throw new Error('An ActionWidget must have a name');\n    }\n  }\n}\n"]}