{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/components/bp2019-individual-visualization.js"],"names":["Morph","assertCanvasWidgetInterface","AVFParser","DataProcessor","ColorStore","deepCopy","IndividualVisualization","initialize","windowTitle","tabWidget","get","legend","inspector","canvasWidgets","getContents","_initializeCanvasWidgets","_updateCanvasesWithKenyaData","_registerDatasetSelection","applyAction","action","_applyActionToLegend","_applyActionToInspector","_applyActionToAllCanvasWidgets","unsavedChanges","_stopAllCanvasWidgets","forEach","canvasWidget","addListener","applyActionFromRootApplication","catch","lively","notify","datasetSelection","addEventListener","evt","_changeDataset","that","datasetName","target","value","_loadDatasetWithName","_updateCanvasesWithSomaliaData","data","_fetchKenyaData","initializeWithIndividualsFromKenia","_initializeColorScales","_transferDataToCanvases","_fetchSomaliaData","initializeWithIndividualsFromSomalia","setData","initializeWithValuesByAttribute","getValuesByAttribute","loadInferredCovidData","loadCompressedIndividualsWithKeysFromFile","stop"],"mappings":"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","file":"bp2019-individual-visualization.js","sourcesContent":["import Morph from 'src/components/widgets/lively-morph.js';\nimport { assertCanvasWidgetInterface } from '../src/internal/individuals-as-points/common/interfaces.js'\nimport { AVFParser } from \"https://lively-kernel.org/voices/parsing-data/avf-parser.js\"\nimport DataProcessor from '../src/internal/individuals-as-points/common/data-processor.js'\nimport ColorStore from '../src/internal/individuals-as-points/common/color-store.js'\nimport { deepCopy } from '../src/internal/individuals-as-points/common/utils.js'\n  \nexport default class IndividualVisualization extends Morph {\n  \n  async initialize() {\n    this.windowTitle = \"Individual visualizations\"\n    \n    this.tabWidget = this.get('#canvas-tab-widget');\n    this.legend = this.get('#legend-widget');\n    this.inspector = this.get('#inspector-widget')\n    \n    \n    \n    this.canvasWidgets = this.tabWidget.getContents();\n    this._initializeCanvasWidgets();\n    this._updateCanvasesWithKenyaData(this);\n    \n    this._registerDatasetSelection();\n  }\n  \n  // ------------------------------------------\n  // Public Methods\n  // ------------------------------------------\n  \n  /*MD ## Public MD*/\n  \n  applyAction(action) {\n    this._applyActionToLegend(action);\n    this._applyActionToInspector(action);\n    this._applyActionToAllCanvasWidgets(action);\n  }\n  \n  unsavedChanges(){\n    this._stopAllCanvasWidgets()\n    return false\n  }\n  \n  // ------------------------------------------\n  // Private Methods\n  // ------------------------------------------\n  \n  _initializeCanvasWidgets() {\n    this.canvasWidgets.forEach( (canvasWidget) => {\n      assertCanvasWidgetInterface(canvasWidget);\n      canvasWidget.addListener(this);\n    })\n  }\n  \n  _applyActionToAllCanvasWidgets(action) {\n    this.canvasWidgets.forEach((canvasWidget) => {\n      canvasWidget.applyActionFromRootApplication(action)\n        .catch(() => lively.notify(canvasWidget + \" could not handle \" + action));\n    })\n  }\n  \n  _registerDatasetSelection() {\n    let datasetSelection = this.get(\"#dataset-selection\");\n    datasetSelection.addEventListener(\"change\", (evt) => this._changeDataset(evt, this));\n  }\n  \n  _changeDataset(evt, that) {\n    let datasetName = evt.target.value;\n    this._loadDatasetWithName(datasetName, that);\n  }\n  \n  _loadDatasetWithName(datasetName, that) {\n    switch(datasetName) {\n      case 'Somalia':\n        this._updateCanvasesWithSomaliaData(that);\n        break;\n      case 'Kenya':\n        this._updateCanvasesWithKenyaData(that);\n        break;\n      default:\n        break;\n    }\n  }\n  \n  _applyActionToInspector(action) {\n    this.inspector.applyActionFromRootApplication(action);\n  }\n  \n  _applyActionToLegend(action){\n    this.legend.applyActionFromRootApplication(action);\n  }\n  \n  async _updateCanvasesWithKenyaData(that) {\n    that.data = await that._fetchKenyaData();\n    DataProcessor.initializeWithIndividualsFromKenia(that.data);\n    that._initializeColorScales();\n    that._transferDataToCanvases();\n  }\n  \n  async _updateCanvasesWithSomaliaData(that) {\n    that.data = await that._fetchSomaliaData();\n    DataProcessor.initializeWithIndividualsFromSomalia(that.data);\n    that._initializeColorScales();\n    that._transferDataToCanvases();\n  }\n  \n   _transferDataToCanvases() {\n    this.canvasWidgets.forEach( (canvasWidget) => {\n      canvasWidget.setData(deepCopy(this.data))\n        .catch(() => lively.notify(canvasWidget + \" failed to initialize\"));\n    })\n  }\n  \n  _initializeColorScales(){\n    ColorStore.initializeWithValuesByAttribute(DataProcessor.getValuesByAttribute());\n  }\n  \n  async _fetchKenyaData() {\n    let data = await AVFParser.loadInferredCovidData();\n    return data;\n  }\n  \n  async _fetchSomaliaData() {\n    let data = await AVFParser.loadCompressedIndividualsWithKeysFromFile(\"OCHA\");\n    return data;\n  }\n  \n  _stopAllCanvasWidgets() {\n    this.canvasWidgets.forEach( (canvasWidget) => {\n      if(canvasWidget.stop) {\n        canvasWidget.stop().catch(() => {\n          lively.notify(canvasWidget + \" could not be stopped\")\n        })\n      }\n      \n    })\n  }\n    \n}"]}