{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/menu-widget.js"],"names":["Morph","MenuWidget","initialize","rootContainer","get","tabDiv","tabContentDiv","addNewWidget","actionWidget","assertActionWidgetInterface","addTabButton","addTabContent","tabButton","id","addEventListener","openWidget","classList","add","append","className","actionWidgetName","hideCurrentTabContent","setTabBarInactive","displayClickedWidget","i","tabcontent","lively","queryAll","length","style","display","tablinks","replace","query","name","Error"],"mappings":";;;;;;;;;;;;;AAAOA,W;;;;;;;;;;;;;;;;;;AAEQ,YAAMC,UAAN,SAAyBD,KAAzB,CAA+B;AAC5C,cAAME,UAAN,GAAmB;AACjB,eAAKC,aAAL,GAAqB,KAAKC,GAAL,CAAS,iBAAT,CAArB;AACA,eAAKC,MAAL,GAAc,KAAKD,GAAL,CAAS,OAAT,CAAd;AACA,eAAKE,aAAL,GAAqB,KAAKF,GAAL,CAAS,cAAT,CAArB;AACD;;AAEDG,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,eAAKZ,MAAL,CAAYa,MAAZ,CAAmBN,SAAnB;AACD;;AAEDD,sBAAcH,YAAd,EAA4B;AAC1B,eAAKF,aAAL,CAAmBY,MAAnB,CAA0BV,YAA1B;AACAA,uBAAaW,SAAb,GAAyB,YAAzB;AACD;;AAEDJ,mBAAWK,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,KAAKxB,aAArB,EAAoC,aAApC,CAAb;AACA,eAAKqB,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,KAAKxB,aAArB,EAAoC,WAApC,CAAX;AACA,eAAKqB,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,KAAK9B,aAAlB,EAAiC,MAAMiB,gBAAvC,EAAyDS,KAAzD,CAA+DC,OAA/D,GAAyE,OAAzE;AACAJ,iBAAOO,KAAP,CAAa,KAAK9B,aAAlB,EAAiC,MAAMiB,gBAAN,GAAyB,SAA1D,EAAqED,SAArE,IAAkF,SAAlF;AACD;;AAEDV,oCAA4BD,YAA5B,EAA0C;AACxC,cAAK,OAAOA,aAAa0B,IAArB,KAA+B,WAAnC,EAAgD;AAC9C,kBAAM,IAAIC,KAAJ,CAAU,kCAAV,CAAN;AACD;AACF;AA1D2C;;yBAAzBlC,U","file":"menu-widget.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js'\n\nexport default class MenuWidget extends Morph {\n  async initialize() {\n    this.rootContainer = this.get(\"#root-container\")\n    this.tabDiv = this.get(\"#tabs\")\n    this.tabContentDiv = this.get(\"#tab-content\")\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"]}