{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/bp2019-control-panel-widget.js"],"names":["Morph","assertSizeListenerInterface","collapse","Bp2019ControlPanelWidget","initialize","sizeListeners","controlPanelContainer","get","addEventListener","_notifySizeListeners","collapsed","toggleButton","classList","toggle","addSizeListener","listener","push","forEach","onSizeChange"],"mappings":";;;;;;AAAOA,W;;AACEC,iC,qDAAAA,2B;;AAEAC,c,gDAAAA,Q;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEM,YAAMC,wBAAN,SAAuCH,KAAvC,CAA6C;;AAE1D,cAAMI,UAAN,GAAmB;AACjB,eAAKC,aAAL,GAAqB,EAArB;AACA,eAAKC,qBAAL,GAA6B,KAAKC,GAAL,CAAS;;AAEtC;AAF6B,WAA7B,CAGA,KAAKD,qBAAL,CAA2BE,gBAA3B,CAA4C,qBAA5C,EAAmE,MAAM;AAAC,iBAAKC,oBAAL;AAA4B,WAAtG;;AAEA,eAAKC,SAAL,GAAiB,KAAjB;;AAEA,eAAKC,YAAL,GAAoB,KAAKJ,GAAL,CAAS,8BAAT,CAApB;AACA,eAAKI,YAAL,CAAkBH,gBAAlB,CAAmC,OAAnC,EAA4C,MAAM;AAChD,iBAAKE,SAAL,GAAiB,CAAC,KAAKA,SAAvB;AACAR,qBAAS,IAAT,EAAe,0BAAf,EAA2C,QAA3C;AACA,iBAAKS,YAAL,CAAkBC,SAAlB,CAA4BC,MAA5B,CAAmC,iBAAnC;AACA,iBAAKF,YAAL,CAAkBC,SAAlB,CAA4BC,MAA5B,CAAmC,eAAnC;AACA,iBAAKJ,oBAAL;AACD,WAND;AAOD;;AAEDK,wBAAgBC,QAAhB,EAA0B;AACxBd,sCAA4Bc,QAA5B;AACA,eAAKV,aAAL,CAAmBW,IAAnB,CAAwBD,QAAxB;AACD;;AAEDN,+BAAuB;AACrB,eAAKJ,aAAL,CAAmBY,OAAnB,CAA2BF,YAAYA,SAASG,YAAT,CAAsB,KAAKR,SAA3B,CAAvC;AACD;;AA5ByD;;yBAAvCP,wB","file":"bp2019-control-panel-widget.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\nimport { assertSizeListenerInterface } from \"../src/internal/individuals-as-points/common/interfaces.js\";\n\nimport { collapse } from \"../src/internal/individuals-as-points/common/utils.js\"\n\nexport default class Bp2019ControlPanelWidget extends Morph {\n  \n  async initialize() {\n    this.sizeListeners = []\n    this.controlPanelContainer = this.get(\"#control-panel-container\")\n    \n    //only supports Chrome, for cross platform support integration of other transitionEnd Events is needed \n    this.controlPanelContainer.addEventListener('webkitTransitionEnd', () => {this._notifySizeListeners()})\n    \n    this.collapsed = false\n    \n    this.toggleButton = this.get(\"#control-panel-toggle-button\")\n    this.toggleButton.addEventListener(\"click\", () => {\n      this.collapsed = !this.collapsed\n      collapse(this, \"#control-panel-container\", \"toggle\")\n      this.toggleButton.classList.toggle(\"collapse-button\")\n      this.toggleButton.classList.toggle(\"expand-button\")\n      this._notifySizeListeners()\n    })    \n  }\n  \n  addSizeListener(listener) {\n    assertSizeListenerInterface(listener)\n    this.sizeListeners.push(listener)\n  }\n  \n  _notifySizeListeners() {\n    this.sizeListeners.forEach(listener => listener.onSizeChange(this.collapsed)) \n  }\n  \n}"]}