{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/scratch/individualsAsPoints/regl/groupchaining/node-modules/grouping.js"],"names":["ROOT_PARENT_ID","GROUP_TYPE","Grouping","constructor","groupingKey","individuals","prevGrouping","next","prev","groupingNodes","createGroupingNodes","appliedGroupingKeys","getAppliedGroupingKeys","uniqueValuesForKey","Set","map","item","forEach","groupingValue","push","id","parentId","nodeType","addGrouping","getGroupingStructure","applyGrouping"],"mappings":";;;;;;;;AAAA,YAAMA,iBAAiB,MAAvB;;;;;;;;;;;;;;AACA,YAAMC,aAAa,QAAnB;;;;;;;;;;;;;;;AAEO,YAAMC,QAAN,CAAe;;AAEpBC,oBAAYC,WAAZ,EAAyBC,WAAzB,EAAsCC,YAAtC,EAAoD;AAClD,eAAKC,IAAL,GAAY,IAAZ;AACA,eAAKC,IAAL,GAAYF,YAAZ;AACA,eAAKF,WAAL,GAAmBA,WAAnB;AACA,eAAKC,WAAL,GAAmBA,WAAnB;AACA,eAAKI,aAAL,GAAqB,KAAKC,mBAAL,CAAyBL,WAAzB,EAAsCD,WAAtC,CAArB;AACD;;AAEDM,4BAAoBL,WAApB,EAAiCD,WAAjC,EAA6C;AAC3C,cAAIK,gBAAgB,EAApB;AACA,cAAGL,eAAe,MAAlB,EAAyB,CAExB,CAFD,MAEO;AACL,gBAAIO,sBAAsB,KAAKC,sBAAL,EAA1B;AACA,gBAAIC,qBAAqB,CAAC,GAAG,IAAIC,GAAJ,CAAQT,YAAYU,GAAZ,CAAgBC,QAAQA,KAAKZ,WAAL,CAAxB,CAAR,CAAJ,CAAzB;AACAS,+BAAmBI,OAAnB,CAA4BC,aAAD,IAAmB;AAC5CT,4BAAcU,IAAd,CAAmB,EAACC,IAAIF,aAAL,EAAoBG,UAAUrB,cAA9B,EAA8CsB,UAAUrB,UAAxD,EAAnB;AACD,aAFD;AAGD;AAEF;;AAEDsB,sBAAc;AACZ;AACA;AACD;;AAEDC,+BAAsB;AACpB,cAAG,KAAKjB,IAAL,IAAa,IAAhB,EAAqB,CAEpB;AACF;;AAEDK,iCAAyB;AACvB,cAAG,KAAKJ,IAAL,KAAc,IAAjB,EAAuB;AACrB,mBAAO,CAAE,KAAKJ,WAAP,CAAP;AACD,WAFD,MAEO;AACL,mBAAO,KAAKI,IAAL,CAAUI,sBAAV,GAAmCO,IAAnC,CAAwC,KAAKf,WAA7C,CAAP;AACD;AACF;;AAEDqB,wBAAgB;AACd;AACD;;AA7CmB","file":"grouping.js","sourcesContent":["const ROOT_PARENT_ID = \"asdf\"\nconst GROUP_TYPE = \"parent\";\n\nexport class Grouping {\n  \n  constructor(groupingKey, individuals, prevGrouping) {\n    this.next = null;\n    this.prev = prevGrouping;\n    this.groupingKey = groupingKey;\n    this.individuals = individuals;\n    this.groupingNodes = this.createGroupingNodes(individuals, groupingKey);\n  }\n  \n  createGroupingNodes(individuals, groupingKey){\n    var groupingNodes = [];\n    if(groupingKey == \"root\"){\n      \n    } else {\n      var appliedGroupingKeys = this.getAppliedGroupingKeys();\n      var uniqueValuesForKey = [...new Set(individuals.map(item => item[groupingKey]))];\n      uniqueValuesForKey.forEach((groupingValue) => {\n        groupingNodes.push({id: groupingValue, parentId: ROOT_PARENT_ID, nodeType: GROUP_TYPE});\n      });\n    }\n    \n  }\n  \n  addGrouping() {\n    //check for next Grouping\n    //if null, apply group chaining\n  }\n  \n  getGroupingStructure(){\n    if(this.next == null){\n      \n    }\n  }\n  \n  getAppliedGroupingKeys() {\n    if(this.prev === null) {\n      return [ this.groupingKey ];\n    } else {\n      return this.prev.getAppliedGroupingKeys().push(this.groupingKey); \n    }\n  }\n  \n  applyGrouping() {\n    //get grouping Keys from prevs  \n  }\n  \n  \n}"]}