{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH-stable/src/internal/individuals-as-points/venn/individuals-distributor.js"],"names":["IndividualsDistributor","constructor","setDistribution","individuals","orderedForceCenters","_resetForceCenters","_distributeIndividualsToForceCenter","_setHullsForGroups","forceCenters","forEach","forceCenter","resetIndividuals","resetIndividualsInGroups","individual","index","contains","setCenterForIndividual","addIndividual","themeGroups","themeGroup","fillHullWithIndividuals"],"mappings":";;;;;;;;AAAe,YAAMA,sBAAN,CAA6B;AAC1CC,sBAAc,CAEb;;AAED;AACA;AACA;;AAEAC,wBAAgBC,WAAhB,EAA6BC,mBAA7B,EAAkD;AAChD,eAAKC,kBAAL,CAAwBD,mBAAxB;AACA,eAAKE,mCAAL,CAAyCH,WAAzC,EAAsDC,mBAAtD;AACA,eAAKG,kBAAL,CAAwBH,mBAAxB;AACD;;AAED;AACA;AACA;;AAEAC,2BAAmBG,YAAnB,EAAiC;AAC/BA,uBAAaC,OAAb,CAAsBC,eAAe;AACnCA,wBAAYC,gBAAZ;AACAD,wBAAYE,wBAAZ;AACD,WAHD;AAID;;AAEDN,4CAAoCH,WAApC,EAAiDC,mBAAjD,EAAsE;AACpED,sBAAYM,OAAZ,CAAoBI,cAAc;AAChC,iBAAI,IAAIC,KAAR,IAAiBV,mBAAjB,EAAsC;AACpC,kBAAIM,cAAcN,oBAAoBU,KAApB,CAAlB;AACA,kBAAGJ,YAAYK,QAAZ,CAAqBF,UAArB,CAAH,EAAqC;AACnCH,4BAAYM,sBAAZ,CAAmCH,UAAnC;AACAH,4BAAYO,aAAZ,CAA0BJ,UAA1B;AACA;AACD;AACF;AACF,WATD;AAUD;;AAEDN,2BAAmBC,YAAnB,EAAiC;AAC/BA,uBAAaC,OAAb,CAAqBC,eAAe;AAClCA,wBAAYQ,WAAZ,CAAwBT,OAAxB,CAAgCU,cAAc;AAC5CA,yBAAWC,uBAAX;AACD,aAFD;AAGD,WAJD;AAKD;AA7CyC;;yBAAvBpB,sB","file":"individuals-distributor.js","sourcesContent":["export default class IndividualsDistributor {\n  constructor() {\n    \n  }\n  \n  // ------------------------------------------\n  // Public Methods\n  // ------------------------------------------\n  \n  setDistribution(individuals, orderedForceCenters) {\n    this._resetForceCenters(orderedForceCenters)\n    this._distributeIndividualsToForceCenter(individuals, orderedForceCenters)\n    this._setHullsForGroups(orderedForceCenters)\n  }\n  \n  // ------------------------------------------\n  // Private Methods\n  // ------------------------------------------\n  \n  _resetForceCenters(forceCenters) {\n    forceCenters.forEach( forceCenter => {\n      forceCenter.resetIndividuals()\n      forceCenter.resetIndividualsInGroups()\n    })\n  }\n  \n  _distributeIndividualsToForceCenter(individuals, orderedForceCenters) {\n    individuals.forEach(individual => {\n      for(let index in orderedForceCenters) {\n        let forceCenter = orderedForceCenters[index]\n        if(forceCenter.contains(individual)) {\n          forceCenter.setCenterForIndividual(individual)\n          forceCenter.addIndividual(individual)\n          break\n        }\n      }\n    })\n  }\n  \n  _setHullsForGroups(forceCenters) {\n    forceCenters.forEach(forceCenter => {\n      forceCenter.themeGroups.forEach(themeGroup => {\n        themeGroup.fillHullWithIndividuals()\n      })\n    })\n  }\n}"]}