{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH-stable/components/bp2019-venn-control-widget.js"],"names":["Morph","assertActionWidgetInterface","assertCanvasWidgetInterface","ColorAction","FilterAction","Bp2019ControlPanelWidget","VennControlWidget","initialize","listeners","themeGroupWidget","get","controlWidgetRootContainer","addListener","setDataProcessor","dataProcessor","initializeAfterDataFetch","individuals","_initializeWidgets","applyAction","action","forEach","listener","push","setHeight","height","style","themes","_getAllUniqueThemes","initializeWithData","uniqueThemes","Set","individualsThemes","_getValuesFromIndividuals","individualTheme","L3","theme","add"],"mappings":";;;;;;AAAOA,W;;AACEC,iC,qDAAAA,2B;AAA6BC,iC,qDAAAA,2B;;AAC7BC,iB,kDAAAA,W;AAAaC,kB,kDAAAA,Y;;AACfC,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGQ,YAAMC,iBAAN,SAAgCD,wBAAhC,CAAyD;AACtE,cAAME,UAAN,GAAmB;AACjB,gBAAMA,UAAN;AACA,eAAKC,SAAL,GAAiB,EAAjB;AACA,eAAKC,gBAAL,GAAwB,KAAKC,GAAL,CAAS,qBAAT,CAAxB;AACA,eAAKC,0BAAL,GAAkC,KAAKD,GAAL,CAAS,+BAAT,CAAlC;AACA,eAAKD,gBAAL,CAAsBG,WAAtB,CAAkC,IAAlC;AACD;;AAED;AACA;AACA;;AAEAC,yBAAiBC,aAAjB,EAAgC;AAC9B,eAAKA,aAAL,GAAqBA,aAArB;AACD;;AAED,cAAMC,wBAAN,CAA+BC,WAA/B,EAA4C;AAC1C,eAAKC,kBAAL,CAAwBD,WAAxB;AACD;;AAEDE,oBAAYC,MAAZ,EAAoB;AAClB,eAAKX,SAAL,CAAeY,OAAf,CAAyBC,QAAD,IAAc;AACpCA,qBAASH,WAAT,CAAqBC,MAArB;AACD,WAFD;AAGD;;AAEDP,oBAAYS,QAAZ,EAAsB;AACpB,eAAKb,SAAL,CAAec,IAAf,CAAoBD,QAApB;AACAnB,sCAA4BmB,QAA5B;AACD;;AAEDE,kBAAUC,MAAV,EAAkB;AAChB,eAAKb,0BAAL,CAAgCc,KAAhC,CAAsCD,MAAtC,GAA+CA,SAAS,IAAxD;AACD;;AAED;AACA;AACA;;AAEAP,2BAAmBD,WAAnB,EAA+B;AAC7B,cAAIU,SAAS,KAAKC,mBAAL,CAAyBX,WAAzB,CAAb;AACA,eAAKP,gBAAL,CAAsBmB,kBAAtB,CAAyCF,MAAzC;AACD;;AAEDC,4BAAoBX,WAApB,EAAiC;AAC/B,cAAIa,eAAe,IAAIC,GAAJ,EAAnB;;AAEA,cAAIC,oBAAoB,KAAKjB,aAAL,CAAmBkB,yBAAnB,CAA6ChB,WAA7C,EAA0D,QAA1D,CAAxB;AACAe,4BAAkBX,OAAlB,CAA2Ba,mBAAmB;AAC5CA,4BAAgBC,EAAhB,CAAmBd,OAAnB,CAA4Be,SAASN,aAAaO,GAAb,CAAiBD,KAAjB,CAArC;AACD,WAFD;;AAIA,iBAAO,CAAC,GAAGN,YAAJ,CAAP;AACD;AAtDqE;;yBAAnDvB,iB","file":"bp2019-venn-control-widget.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js'\nimport { assertActionWidgetInterface, assertCanvasWidgetInterface } from '../src/internal/individuals-as-points/common/interfaces.js';\nimport { ColorAction, FilterAction } from \"../src/internal/individuals-as-points/common/actions.js\"\nimport Bp2019ControlPanelWidget from \"./bp2019-control-panel-widget.js\"\n\n\nexport default class VennControlWidget extends Bp2019ControlPanelWidget {\n  async initialize() {\n    super.initialize()\n    this.listeners = [];\n    this.themeGroupWidget = this.get(\"#theme-group-widget\")\n    this.controlWidgetRootContainer = this.get('#control-panel-root-container')\n    this.themeGroupWidget.addListener(this);\n  }\n  \n  // ------------------------------------------\n  // Public Methods\n  // ------------------------------------------\n  \n  setDataProcessor(dataProcessor) {\n    this.dataProcessor = dataProcessor\n  }\n  \n  async initializeAfterDataFetch(individuals) {\n    this._initializeWidgets(individuals);\n  }\n  \n  applyAction(action) {\n    this.listeners.forEach( (listener) => {\n      listener.applyAction(action);\n    })\n  }\n  \n  addListener(listener) {\n    this.listeners.push(listener);\n    assertCanvasWidgetInterface(listener);\n  }\n  \n  setHeight(height) {\n    this.controlWidgetRootContainer.style.height = height + \"px\"\n  }\n  \n  // ------------------------------------------\n  // Private Methods\n  // ------------------------------------------\n  \n  _initializeWidgets(individuals){\n    let themes = this._getAllUniqueThemes(individuals)\n    this.themeGroupWidget.initializeWithData(themes)\n  }\n  \n  _getAllUniqueThemes(individuals) {\n    let uniqueThemes = new Set()\n    \n    let individualsThemes = this.dataProcessor._getValuesFromIndividuals(individuals, 'themes')\n    individualsThemes.forEach( individualTheme => {\n      individualTheme.L3.forEach( theme => uniqueThemes.add(theme))\n    })\n    \n    return [...uniqueThemes]\n  }\n}\n"]}