{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/bp2019-venn-control-widget.js"],"names":["Morph","assertActionWidgetInterface","assertCanvasWidgetInterface","DataProcessor","VennControlWidget","initialize","listeners","initializeAfterDataFetch","individuals","_initializeWidgets","applyAction","action","forEach","listener","addListener","push","themes","_getAllUniqueThemes","attributes","getAllAttributes","_initializeWidgetWithData","widgetName","dataForWidget","widget","get","initializeWithData","uniqueThemes","Set","individualsThemes","_getValuesFromIndividuals","individualTheme","L3","theme","add"],"mappings":";;;;;;AAAOA,W;;AACEC,iC,qDAAAA,2B;AAA6BC,iC,qDAAAA,2B;;AAC/BC,mB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGQ,YAAMC,iBAAN,SAAgCJ,KAAhC,CAAsC;AACnD,cAAMK,UAAN,GAAmB;AACjB,eAAKC,SAAL,GAAiB,EAAjB;AACD;;AAED;AACA;AACA;;AAEA,cAAMC,wBAAN,CAA+BC,WAA/B,EAA4C;AAC1C,eAAKC,kBAAL,CAAwBD,WAAxB;AACD;;AAEDE,oBAAYC,MAAZ,EAAoB;AAClB,eAAKL,SAAL,CAAeM,OAAf,CAAyBC,QAAD,IAAc;AACpCA,qBAASH,WAAT,CAAqBC,MAArB;AACD,WAFD;AAGD;;AAEDG,oBAAYD,QAAZ,EAAsB;AACpB,eAAKP,SAAL,CAAeS,IAAf,CAAoBF,QAApB;AACAX,sCAA4BW,QAA5B;AACD;;AAED;AACA;AACA;;AAEAJ,2BAAmBD,WAAnB,EAA+B;AAC7B,cAAIQ,SAAS,KAAKC,mBAAL,CAAyBT,WAAzB,CAAb;AACA,cAAIU,aAAaf,cAAcgB,gBAAd,EAAjB;AACA,eAAKC,yBAAL,CAA+B,qBAA/B,EAAsDJ,MAAtD;AACA,eAAKI,yBAAL,CAA+B,2BAA/B,EAA4DF,UAA5D;AACD;;AAEDE,kCAA0BC,UAA1B,EAAsCC,aAAtC,EAAoD;AAClD,cAAIC,SAAS,KAAKC,GAAL,CAASH,UAAT,CAAb;AACApB,sCAA4BsB,MAA5B;AACAA,iBAAOT,WAAP,CAAmB,IAAnB;AACAS,iBAAOE,kBAAP,CAA0BH,aAA1B;AACD;;AAEDL,4BAAoBT,WAApB,EAAiC;AAC/B,cAAIkB,eAAe,IAAIC,GAAJ,EAAnB;;AAEA,cAAIC,oBAAoBzB,cAAc0B,yBAAd,CAAwCrB,WAAxC,EAAqD,QAArD,CAAxB;AACAoB,4BAAkBhB,OAAlB,CAA2BkB,mBAAmB;AAC5CA,4BAAgBC,EAAhB,CAAmBnB,OAAnB,CAA4BoB,SAASN,aAAaO,GAAb,CAAiBD,KAAjB,CAArC;AACD,WAFD;;AAIA,iBAAO,CAAC,GAAGN,YAAJ,CAAP;AACD;AAnDkD;;yBAAhCtB,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 DataProcessor from '../src/internal/individuals-as-points/common/data-processor.js'\n\n\nexport default class VennControlWidget extends Morph {\n  async initialize() {\n    this.listeners = [];\n  }\n  \n  // ------------------------------------------\n  // Public Methods\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  // ------------------------------------------\n  // Private Methods\n  // ------------------------------------------\n  \n  _initializeWidgets(individuals){\n    let themes = this._getAllUniqueThemes(individuals)\n    let attributes = DataProcessor.getAllAttributes()\n    this._initializeWidgetWithData(\"#theme-group-widget\", themes)\n    this._initializeWidgetWithData(\"#individuals-color-widget\", attributes);\n  }\n  \n  _initializeWidgetWithData(widgetName, dataForWidget){\n    let widget = this.get(widgetName);\n    assertActionWidgetInterface(widget);\n    widget.addListener(this);\n    widget.initializeWithData(dataForWidget);\n  }\n  \n  _getAllUniqueThemes(individuals) {\n    let uniqueThemes = new Set()\n    \n    let individualsThemes = DataProcessor._getValuesFromIndividuals(individuals, 'themes')\n    individualsThemes.forEach( individualTheme => {\n      individualTheme.L3.forEach( theme => uniqueThemes.add(theme))\n    })\n    \n    return [...uniqueThemes]\n  }\n}\n"]}