{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/bp2019-venn-control-widget.js"],"names":["Morph","assertActionWidgetInterface","assertCanvasWidgetInterface","ColorAction","FilterAction","Bp2019ControlPanelWidget","VennControlWidget","initialize","listeners","colorStore","undefined","themeGroupWidget","get","controlWidgetRootContainer","addListener","setDataProcessor","dataProcessor","setColorStore","initializeAfterDataFetch","individuals","_initializeWidgets","applyAction","action","forEach","listener","push","setHeight","height","style","loadState","loaded","Object","keys","localAction","uuid","themes","_getAllUniqueThemes","Array","sort","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,UAAL,GAAkBC,SAAlB;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;;AAEDC,sBAAcR,UAAd,EAA0B;AACxB,eAAKA,UAAL,GAAkBA,UAAlB;AACA,eAAKE,gBAAL,CAAsBM,aAAtB,CAAoCR,UAApC;AACD;;AAED,cAAMS,wBAAN,CAA+BC,WAA/B,EAA4C;AAC1C,eAAKC,kBAAL,CAAwBD,WAAxB;AACD;;AAEDE,oBAAYC,MAAZ,EAAoB;AAClB,eAAKd,SAAL,CAAee,OAAf,CAAyBC,QAAD,IAAc;AACpCA,qBAASH,WAAT,CAAqBC,MAArB;AACD,WAFD;AAGD;;AAEDR,oBAAYU,QAAZ,EAAsB;AACpB,eAAKhB,SAAL,CAAeiB,IAAf,CAAoBD,QAApB;AACAtB,sCAA4BsB,QAA5B;AACD;;AAEDE,kBAAUC,MAAV,EAAkB;AAChB,eAAKd,0BAAL,CAAgCe,KAAhC,CAAsCD,MAAtC,GAA+CA,SAAS,IAAxD;AACD;;AAEDE,kBAAUP,MAAV,EAAkB;AAChB,cAAIQ,SAAS,EAAb;AACAC,iBAAOC,IAAP,CAAYV,MAAZ,EAAoBC,OAApB,CAA4BU,eAAe;AACzC,gBAAI,EAAE,OAAOX,OAAOW,WAAP,CAAP,KAA+B,QAAjC,CAAJ,EAAgD;AAC9C,kBAAI,CAACH,OAAOR,OAAOW,WAAP,EAAoBC,IAA3B,CAAL,EAAuC;AACrC,qBAAKvB,gBAAL,CAAsBkB,SAAtB,CAAgCP,OAAOW,WAAP,CAAhC;AACAH,uBAAOR,OAAOW,WAAP,EAAoBC,IAA3B,IAAmC,IAAnC;AACD;AACF;AACF,WAPD;AAQD;;AAED;AACA;AACA;;AAEAd,2BAAmBD,WAAnB,EAA+B;AAC7B,cAAIgB,SAAS,KAAKC,mBAAL,CAAyBjB,WAAzB,CAAb;AACAkB,gBAAMC,IAAN,CAAWH,MAAX;AACA,eAAKxB,gBAAL,CAAsB4B,kBAAtB,CAAyCJ,MAAzC;AACD;;AAEDC,4BAAoBjB,WAApB,EAAiC;AAC/B,cAAIqB,eAAe,IAAIC,GAAJ,EAAnB;;AAEA,cAAIC,oBAAoB,KAAK1B,aAAL,CAAmB2B,yBAAnB,CAA6CxB,WAA7C,EAA0D,QAA1D,CAAxB;AACAuB,4BAAkBnB,OAAlB,CAA2BqB,mBAAmB;AAC5CA,4BAAgBC,EAAhB,CAAmBtB,OAAnB,CAA4BuB,SAASN,aAAaO,GAAb,CAAiBD,KAAjB,CAArC;AACD,WAFD;;AAIA,iBAAO,CAAC,GAAGN,YAAJ,CAAP;AACD;AAzEqE;;yBAAnDlC,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.colorStore = undefined\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  setColorStore(colorStore) {\n    this.colorStore = colorStore\n    this.themeGroupWidget.setColorStore(colorStore)\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  loadState(action) {\n    let loaded = {}\n    Object.keys(action).forEach(localAction => {\n      if (!(typeof action[localAction] === \"string\")) {\n        if (!loaded[action[localAction].uuid]) {\n          this.themeGroupWidget.loadState(action[localAction])\n          loaded[action[localAction].uuid] = true\n        }\n      }\n    })\n  }\n  \n  // ------------------------------------------\n  // Private Methods\n  // ------------------------------------------\n  \n  _initializeWidgets(individuals){\n    let themes = this._getAllUniqueThemes(individuals)\n    Array.sort(themes)\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"]}