{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/src/internal/individuals-as-points/group-chaining/grouping-layouter.js"],"names":["d3","GroupingLayouter","constructor","canvasWidth","canvasHeight","pointPadding","layout","pack","size","padding","setParentIdKey","key","parentIdKey","setIdKey","idKey","setColorScaleForDomain","uniqueKeyValues","colorScale","scaleOrdinal","schemePaired","domain","getColorForValue","value","rgb","createLayout","flatTreeStructure","root","stratify","id","d","parentId","sum","nodes","descendants"],"mappings":";;;;;;AAAOA,Q;;;;;;;;;;;;;;;;;;AAEA,YAAMC,gBAAN,CAAuB;;AAE5BC,oBAAYC,WAAZ,EAAyBC,YAAzB,EAAuCC,YAAvC,EAAoD;AAClD,eAAKC,MAAL,GAAcN,GAAGO,IAAH,GAAUC,IAAV,CAAe,CAACL,WAAD,EAAcC,YAAd,CAAf,EAA4CK,OAA5C,CAAoDJ,YAApD,CAAd;AACD;;AAEDK,uBAAeC,GAAf,EAAmB;AACjB,eAAKC,WAAL,GAAmBD,GAAnB;AACD;;AAEDE,iBAASF,GAAT,EAAa;AACX,eAAKG,KAAL,GAAaH,GAAb;AACD;;AAEDI,+BAAuBC,eAAvB,EAAwC;AACtC,eAAKC,UAAL,GAAkBjB,GAAGkB,YAAH,CAAgBlB,GAAGmB,YAAnB,EAAiCC,MAAjC,CAAwCJ,eAAxC,CAAlB;AACD;;AAEDK,yBAAiBC,KAAjB,EAAwB;AACtB,iBAAOtB,GAAGuB,GAAH,CAAO,KAAKN,UAAL,CAAgBK,KAAhB,CAAP,CAAP;AACD;;AAEDE,qBAAaC,iBAAb,EAA+B;;AAE7B,cAAIC,OAAO1B,GAAG2B,QAAH,GAAcC,EAAd,CAAiBC,KAAKA,EAAE,KAAKf,KAAP,CAAtB,EAAqCgB,QAArC,CAA8CD,KAAKA,EAAE,KAAKjB,WAAP,CAAnD,EAAwEa,iBAAxE,CAAX;AACAC,eAAKK,GAAL,CAASF,KAAK;AAAE,mBAAO,CAAP;AAAU,WAA1B;AACA,eAAKvB,MAAL,CAAYoB,IAAZ;AACA,cAAIM,QAAQN,KAAKO,WAAL,EAAZ;AACA,iBAAOD,KAAP;AACD;;AA7B2B","file":"grouping-layouter.js","sourcesContent":["import d3 from \"src/external/d3.v5.js\"\n\nexport class GroupingLayouter {\n  \n  constructor(canvasWidth, canvasHeight, pointPadding){\n    this.layout = d3.pack().size([canvasWidth, canvasHeight]).padding(pointPadding);\n  }\n  \n  setParentIdKey(key){\n    this.parentIdKey = key;\n  }\n  \n  setIdKey(key){\n    this.idKey = key;\n  }\n  \n  setColorScaleForDomain(uniqueKeyValues) {\n    this.colorScale = d3.scaleOrdinal(d3.schemePaired).domain(uniqueKeyValues);\n  }\n  \n  getColorForValue(value) {\n    return d3.rgb(this.colorScale(value));\n  }\n  \n  createLayout(flatTreeStructure){\n    \n    var root = d3.stratify().id(d => d[this.idKey]).parentId(d => d[this.parentIdKey])(flatTreeStructure)\n    root.sum(d => { return 1 });\n    this.layout(root);\n    var nodes = root.descendants();\n    return nodes;\n  }\n  \n}"]}