{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH-stable/src/internal/individuals-as-points/common/actions.js"],"names":["equalArrays","FilterActionType","NullActionType","ResetDrawingInformationActionType","GroupActionType","ColorActionType","EmptyFilterActionType","SelectActionType","InspectActionType","ThemeGroupAddedActionType","ThemeGroupRemovedActionType","ThemeGroupUpdatedActionType","ActionType","Action","constructor","isGlobal","groupsData","runOn","data","getType","NullAction","filters","ResetDrawingInformationAction","forEach","element","drawing","currentColor","defaultColor","currentSize","defaultSize","currentPosition","x","defaultPosition","y","GroupAction","attribute","axis","objectTypes","setAttribute","Error","includes","values","groups","Object","keys","key","push","FilterAction","dataProcessor","combinationLogic","includesStop","addedFilters","removedFilters","getAllFilters","addFilter","atomicFilter","some","filter","equals","removeFilter","removedFilter","find","splice","indexOf","getAddedFilters","setAddedFilters","getRemovedFilters","setRemovedFilters","getCombinationLogic","setCombinationLogic","setDataProcessor","setIncludeStop","_filterSTOPAccordingToFlag","length","_runOnDataWithCombinationLogicAnd","_runOnDataWithCombinationLogicOr","stopFilter","AtomicFilterAction","filteredData","resultingData","i","resultMap","index","resultArray","arrayTypes","filterAttribute","filterValues","atomicFilterAction","setFilterValues","getFilterValues","getAttribute","setArrayTypes","setObjectTypes","TypeError","_runOnArrayTypeAttributeData","_runOnObjectTypeAttributeData","_runOnFlatData","value","getUniqueValueFromIndividual","isIncluded","filterValue","elementValue","valueObject","SelectAction","filterAction","colorStore","colorAction","ColorAction","setColorStore","isSelected","selectedIndividuals","individual","setColorsByFlags","_resetCurrentColorToDefault","isColoredByAttribute","attributeColor","getColorForValue","isInspected","inspectColor","deselectColor","setCurrentColorsTo","colortype","InspectAction","selection","uninspectAll","inspectIndividual","id","uid","ThemeGroupAddedAction","themeGroupUUID","themeGroupName","themes","color","uuid","name","ThemeGroupRemovedAction","ThemeGroupUpdatedAction"],"mappings":"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","file":"actions.js","sourcesContent":["export const FilterActionType = \"filterAction\"\nexport const NullActionType = \"nullAction\"\nexport const ResetDrawingInformationActionType = \"resetDrawingInformationAction\"\nexport const GroupActionType = \"groupAction\"\nexport const ColorActionType = \"colorAction\"\nexport const EmptyFilterActionType = \"emptyFilterAction\"\nexport const SelectActionType = \"selectAction\"\nexport const InspectActionType = \"inspectAction\"\nexport const ThemeGroupAddedActionType = \"themeGroupAddedAction\"\nexport const ThemeGroupRemovedActionType = \"themeGroupRemovedAction\"\nexport const ThemeGroupUpdatedActionType = \"themeGroupUpdatedAction\"\nexport const ActionType = \"action\"\n\nimport { equalArrays } from \"./utils.js\"\n\n\nclass Action {\n  constructor (isGlobal=false) {\n    this.isGlobal = isGlobal\n    this.groupsData = this.groupsData()\n  }\n  \n  isGlobal() {\n    return this.isGlobal\n  }\n  \n  groupsData() {\n    return false\n  }\n  \n  runOn(data) {\n    return data\n  }\n  \n  getType() {\n    return ActionType\n  }\n}\n\nexport class NullAction extends Action {\n  constructor(isGlobal=false) {\n    super(isGlobal)\n    this.filters = []\n  }\n  \n  runOn(data) {\n    return data\n  }\n  \n  getType() {\n    return NullActionType\n  }\n}\n\nexport class ResetDrawingInformationAction extends Action {\n  constructor(isGlobal=true) {\n    super(isGlobal)\n  }\n  \n  runOn(data) {\n    data.forEach(element => {\n      element.drawing.currentColor = element.drawing.defaultColor\n      element.drawing.currentSize = element.drawing.defaultSize\n      element.drawing.currentPosition.x = element.drawing.defaultPosition.x\n      element.drawing.currentPosition.y = element.drawing.defaultPosition.y\n    })\n    return data\n  }\n  \n  getType() {\n    return ResetDrawingInformationActionType\n  }\n}\n\nexport class GroupAction extends Action {\n  constructor (attribute, isGlobal=false, axis=\"x\", objectTypes=[\"themes\"]) {\n    super(isGlobal)\n    this.attribute = attribute\n    this.objectTypes = objectTypes\n    this.axis = axis\n  }\n  \n  groupsData() {\n    return true\n  }\n  \n  setAttribute(attribute) {\n    this.attribute = attribute\n    return this\n  }\n  \n  runOn(data) {\n    if ((typeof this.attribute) === \"undefined\") {\n      throw new Error('The grouping attribute must be set.')\n    }\n    \n    if(this.attribute === \"none\") {\n      return {\"all\": data}\n    }\n    \n    if (this.objectTypes.includes(this.attribute)) {\n      //TODO\n      return {}\n    } else {\n      let values = {}\n      data.forEach(element => {\n        values[element[this.attribute]] = true\n      })\n\n      let groups = {}\n      Object.keys(values).forEach(key => {\n        groups[key] = []\n      })\n\n      data.forEach(element => {\n        groups[element[this.attribute]].push(element)\n      })\n      return groups\n    }        \n  }\n  \n  getType() {\n    return GroupActionType\n  }\n}\n\nexport class FilterAction extends Action {\n  constructor(dataProcessor = null, isGlobal = true, filters = [], combinationLogic = \"and\", includesStop = true) {\n    super(isGlobal)\n    this.filters = filters\n    this.addedFilters = [] // added and removed Filters only occur for info transfer between two panes or control panel and pane and do not get set in the state of a pane\n    this.removedFilters = []\n    this.combinationLogic = combinationLogic\n    this.includesStop = includesStop\n    this.dataProcessor = dataProcessor\n  }\n  \n  getType() {\n    return FilterActionType\n  }\n  \n  getAllFilters() {\n    return this.filters\n  }\n  \n  addFilter(atomicFilter) {\n    if (!this.filters.some(filter => filter.equals(atomicFilter))) {\n      this.filters.push(atomicFilter)\n    }\n  }\n  \n  removeFilter(atomicFilter) {\n    let removedFilter = this.filters.find(filter => filter.equals(atomicFilter))\n    if (removedFilter) {\n      this.filters.splice(this.filters.indexOf(removedFilter), 1)\n    }  \n  }\n  \n  getAddedFilters() {\n    return this.addedFilters\n  }\n  \n  setAddedFilters(filters) {\n    this.addedFilters = filters\n  }\n  \n  getRemovedFilters() {\n    return this.removedFilters \n  }\n  \n  setRemovedFilters(filters) {\n    this.removedFilters = filters\n  }\n  \n  getCombinationLogic() {\n    return this.combinationLogic\n  }\n  \n  setCombinationLogic(combinationLogic) {\n    switch(combinationLogic) {\n      case \"logic and\":\n        this.combinationLogic = \"and\"\n        break\n      case \"and\":\n        this.combinationLogic = \"and\"\n        break\n      case \"logic or\":\n        this.combinationLogic = \"or\"\n        break\n      case \"or\":\n        this.combinationLogic = \"or\"\n        break\n      default:\n        this.combinationLogic = \"and\"\n        break\n    }\n  }\n  \n  setDataProcessor(dataProcessor) {\n    this.dataProcessor = dataProcessor\n  }\n  \n  setIncludeStop(includesStop) {\n    this.includesStop = includesStop\n    return this\n  }\n  \n  runOn(data) {\n    data = this._filterSTOPAccordingToFlag(data)\n    \n    if (this.filters.length > 0) {\n      switch(this.combinationLogic) {\n        case \"and\":\n          return this._runOnDataWithCombinationLogicAnd(data)\n        case \"or\":\n          return this._runOnDataWithCombinationLogicOr(data)\n        default:\n          return this._runOnDataWithCombinationLogicAnd(data)\n      }\n    } else {\n      return data\n    }\n  }\n  \n  _filterSTOPAccordingToFlag(data) {\n    if (this.includesStop) {\n      return data\n    } else {\n      // get correct values from dataProcessor\n      let stopFilter = new AtomicFilterAction(\"consent_withdrawn\", [\"FALSE\"], this.dataProcessor)\n      let filteredData = stopFilter.runOn(data)\n      return filteredData\n    }\n  }\n  \n  _runOnDataWithCombinationLogicAnd(data) {\n    let resultingData = data\n    for (let i=0; i< this.filters.length; i++) {\n      let atomicFilter = this.filters[i]\n      resultingData = atomicFilter.runOn(resultingData)\n    }    \n    return resultingData\n  }\n  \n  _runOnDataWithCombinationLogicOr(data) {\n    let resultMap = {}\n    for(let i=0; i < this.filters.length; i++) {\n      let atomicFilter = this.filters[i]\n      let filteredData = atomicFilter.runOn(data)\n      filteredData.forEach(element => {\n        resultMap[element.index] = element\n      })\n    }\n    \n    let resultArray = []\n    Object.keys(resultMap).forEach(index => {\n      resultArray.push(resultMap[index])\n    })\n    \n    return resultArray\n  }\n}\n\nexport class AtomicFilterAction extends Action {\n  constructor(attribute, values, dataProcessor, isGlobal=true, arrayTypes=[\"languages\"], objectTypes=[\"themes\"]) {\n    super(isGlobal)\n    this.filterAttribute = attribute\n    this.filterValues = values\n    this.dataProcessor = dataProcessor\n    this.isGlobal = isGlobal\n    this.arrayTypes = arrayTypes\n    this.objectTypes = objectTypes\n  }\n  \n  equals(atomicFilterAction) {\n    return atomicFilterAction.filterAttribute === this.filterAttribute && equalArrays(atomicFilterAction.filterValues, this.filterValues)\n  }\n  \n  getType() {\n    return FilterActionType\n  }\n  \n  setAttribute(attribute) {\n    this.filterAttribute = attribute\n    return this\n  }\n  \n  setFilterValues(filterValues) {\n    this.filterValues = filterValues\n    return this\n  }\n  \n  getFilterValues() {\n    return this.filterValues\n  }\n  \n  getAttribute() {\n    return this.filterAttribute\n  }\n  \n  setArrayTypes(arrayTypes) {\n    this.arrayTypes = arrayTypes\n    return this\n  }\n  \n  setObjectTypes(objectTypes) {\n    this.objectTypes = objectTypes\n    return this \n  }\n  \n  runOn(data) {\n    if ((typeof this.filterAttribute) === \"undefined\") {\n      throw new TypeError('The filtering attribute must be set.')\n    }\n    \n    if (this.filterValues.length === 0) {\n      throw new TypeError('The filtering value must be set.')\n    }\n        \n    if (this.arrayTypes.includes(this.filterAttribute)) {\n      return this._runOnArrayTypeAttributeData(data)\n    } else if (this.objectTypes.includes(this.filterAttribute)) {\n      return this._runOnObjectTypeAttributeData(data)\n    } else {\n      return this._runOnFlatData(data)\n    } \n  }\n  \n  _runOnFlatData(data) {\n    return data.filter(element => {\n      let value = this.dataProcessor.getUniqueValueFromIndividual(element, this.filterAttribute)\n      return this.filterValues.includes(value)\n    })\n  }\n  \n  _runOnArrayTypeAttributeData(data) {\n    return data.filter(element => {\n      let isIncluded = false\n      this.filterValues.forEach(filterValue => {\n        let elementValue = this.dataProcessor.getUniqueValueFromIndividual(element, this.filterAttribute)\n        if (elementValue === filterValue) {\n          isIncluded = true\n        }\n      })\n      return isIncluded\n    })\n  }\n  \n  _runOnObjectTypeAttributeData(data) {\n    return data.filter(element => {\n      let valueObject = this.dataProcessor.getUniqueValueFromIndividual(element, this.filterAttribute)\n      let isIncluded = false\n      Object.keys(valueObject).forEach(key => {\n        if (valueObject[key].some(value => this.filterValues.includes(value))) {\n          isIncluded = true\n        }\n      })\n      return isIncluded\n    })\n  }\n}\n\n\nexport class SelectAction extends Action {\n  constructor(filterAction = new FilterAction(), dataProcessor = null, colorStore = null, isGlobal=true) {\n    super(isGlobal)\n    this.dataProcessor = dataProcessor\n    this.colorStore = colorStore\n    this.colorAction = new ColorAction(\"\", true, dataProcessor, colorStore)\n    this.filterAction = filterAction\n    this.filterAction.setDataProcessor(dataProcessor)\n  }\n  \n  getType() {\n    return SelectActionType\n  }\n  \n  addFilter(filter) {\n    this.filterAction.addFilter(filter)\n  }\n  \n  removeFilter(atomicFilter) {\n    this.filterAction.removeFilter(atomicFilter)\n  }\n  \n  getAddedFilters() {\n    return this.filterAction.getAddedFilters()\n  }\n  \n  setAddedFilters(filters) {\n    this.filterAction.setAddedFilters(filters)\n  }\n  \n  getRemovedFilters() {\n    return this.filterAction.getRemovedFilters()\n  }\n  \n  setRemovedFilters(filters) {\n    this.filterAction.setRemovedFilters(filters)\n  }\n  \n  getAllFilters() {\n    return this.filterAction.getAllFilters()\n  }\n  \n  setArrayTypes(arrayTypes) {\n    this.filterAction.setArrayTypes(arrayTypes)\n    return this\n  }\n  \n  setObjectTypes(objectTypes) {\n    this.filterAction.setObjectTypes(objectTypes)\n    return this \n  }\n  \n  setIncludeStop(includesStop) {\n    this.filterAction.setIncludeStop(includesStop)\n  }\n  \n  getCombinationLogic() {\n    return this.filterAction.getCombinationLogic()\n  }\n  \n  setCombinationLogic(combinationLogic) {\n    this.filterAction.setCombinationLogic(combinationLogic)\n  } \n  \n  setDataProcessor(dataProcessor) {\n    this.dataProcessor = dataProcessor\n    this.filterAction.setDataProcessor(dataProcessor)\n  }\n  \n  setColorStore(colorStore) {\n    this.colorStore = colorStore\n  }\n  \n  runOn(data) {\n    data.forEach(element => {\n      element.isSelected = false\n    })\n    \n    let selectedIndividuals = this.filterAction.runOn(data)\n    \n    selectedIndividuals.forEach(individual => {\n      individual.isSelected = true\n    })\n    \n    this.colorAction.setColorsByFlags(data)\n        \n    return selectedIndividuals\n  }\n}\n\nexport class ColorAction extends Action {\n  constructor(attribute = \"none\", isGlobal=true, dataProcessor = null, colorStore = null) {\n    super(isGlobal)\n    this.attribute = attribute\n    this.dataProcessor = dataProcessor\n    this.colorStore = colorStore\n  }\n  \n  getType() {\n    return ColorActionType\n  }\n  \n  setAttribute(attribute) {\n    this.attribute = attribute\n    return this\n  }\n  \n  setDataProcessor(dataProcessor) {\n    this.dataProcessor = dataProcessor\n  }\n  \n  setColorStore(colorStore) {\n    this.colorStore = colorStore\n  }\n  \n  runOn(data) {\n    if ((typeof this.attribute) === \"undefined\") {\n      throw new TypeError('The coloring attribute must be set.')\n    }\n    \n    if (this.attribute === \"none\") {\n      this._resetCurrentColorToDefault(data)\n      return data\n    } \n    \n    data.forEach(element => {\n      element.isColoredByAttribute = true\n      let value = this.dataProcessor.getUniqueValueFromIndividual(element, this.attribute)\n      element.drawing.attributeColor = this.colorStore.getColorForValue(this.attribute, value)\n    })\n    this.setColorsByFlags(data)\n    \n    return data\n  }\n  \n  setColorsByFlags(data) {\n    data.forEach(element => {\n      if (element.isInspected) {\n        element.drawing.currentColor = element.drawing.inspectColor\n      } else if (!element.isSelected) {\n        element.drawing.currentColor = element.drawing.deselectColor\n      } else if (element.isColoredByAttribute) {\n        element.drawing.currentColor = element.drawing.attributeColor\n      } else {\n        element.drawing.currentColor = element.drawing.defaultColor\n      }\n    })\n  }\n  \n  setCurrentColorsTo(data, colortype) {\n    data.forEach(element => {\n      element.drawing.currentColor = element.drawing[colortype]\n    })\n  }\n  \n  _resetCurrentColorToDefault(data) {\n    data.forEach(element => {\n      element.isColoredByAttribute = false\n    })\n    this.setColorsByFlags(data)\n  }\n}\n\nexport class InspectAction extends Action {\n  constructor(element = null, isGlobal=true, dataProcessor = null, colorStore = null) {\n    super(isGlobal)\n    this.selection = element\n    this.colorAction = new ColorAction(\"\", true, dataProcessor, colorStore)\n  }\n  \n  setDataProcessor(dataProcessor) {\n    this.colorAction.setDataProcessor(dataProcessor)\n  }\n  \n  setColorStore(colorStore) {\n    this.colorAction.setColorStore(colorStore)\n  }\n  \n  getType() {\n    return InspectActionType\n  }\n  \n  runOn(data) {\n    this.uninspectAll(data)\n    this.inspectIndividual(data)\n  }\n  \n  uninspectAll(data) {\n    data.forEach(element => {\n      element.isInspected = false\n    })\n    \n    this.colorAction.setColorsByFlags(data)\n  }\n  \n  inspectIndividual(data) {\n    if (this.selection) {\n      data.forEach(element => {\n        // not nice quickfix, data set should be consistent here\n        if (this.selection.id) {\n          if (element.id === this.selection.id) {\n            element.isInspected = true\n            element.drawing.currentColor = this.selection.drawing.inspectColor\n          }\n        } else if (this.selection.uid) {\n          if (element.uid === this.selection.uid) {\n            element.isInspected = true\n            element.drawing.currentColor = this.selection.drawing.inspectColor\n          }\n        }\n         \n      }) \n    }\n  }\n}\n\nexport class ThemeGroupAddedAction extends Action {\n  constructor(themeGroupUUID, themeGroupName, themes, isGlobal, color){\n    super(isGlobal)\n    this.uuid = themeGroupUUID\n    this.name = themeGroupName\n    this.themes = themes\n    this.color = color\n  }\n  \n  getType() {\n    return ThemeGroupAddedActionType\n  }\n}\n\nexport class ThemeGroupRemovedAction {\n  constructor(themeGroupUUID, isGlobal) {\n    this.uuid = themeGroupUUID\n    this.isGlobal = isGlobal\n  }\n  \n  getType() {\n    return ThemeGroupRemovedActionType\n  }\n}\n\nexport class ThemeGroupUpdatedAction {\n  constructor(themeGroupUUID, themeGroupName, themes, isGlobal, color) {\n    this.uuid = themeGroupUUID\n    this.name = themeGroupName\n    this.themes = themes\n    this.color = color\n  }\n  \n  getType() {\n    return ThemeGroupUpdatedActionType\n  }\n}"]}