{"version":3,"sources":["https://lively-kernel.org/voices/BP2019RH1-report/content/topic5/tests/position-matching.js"],"names":["createAgeGroups","getMax","drawBars","context","canvasDimensions","groups","clearRect","width","height","Object","keys","forEach","groupKey","group","fillStyle","fillRect","x","y","createPositionedAgeGroups","data","groupKeys","dataLengths","map","key","length","max","index","barHeight","Math","floor","barWidth","positionMatchesGroup","position"],"mappings":";;;;;;AACEA,qB,YAAAA,e;AACAC,Y,YAAAA,M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGK,eAASC,QAAT,CAAkBC,OAAlB,EAA2BC,gBAA3B,EAA6CC,MAA7C,EAAqD;AAC1DF,gBAAQG,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwBF,iBAAiBG,KAAzC,EAAgDH,iBAAiBI,MAAjE;;AAGAC,eAAOC,IAAP,CAAYL,MAAZ,EAAoBM,OAApB,CAA4BC,YAAY;AACtC,cAAIC,QAAQR,OAAOO,QAAP,CAAZ;;AAEAT,kBAAQW,SAAR,GAAoB,QAApB;AACAX,kBAAQY,QAAR,CAAiBF,MAAMG,CAAvB,EAA0BH,MAAMI,CAAhC,EAAmCJ,MAAMN,KAAzC,EAAgDM,MAAML,MAAtD;AACD,SALD;AAMD;;;;AAEM,eAASU,yBAAT,CAAmCC,IAAnC,EAAyCf,gBAAzC,EAA2D;AAChE,YAAIC,SAASL,gBAAgBmB,IAAhB,CAAb;;AAEA,YAAIC,YAAYX,OAAOC,IAAP,CAAYL,MAAZ,CAAhB;AACA,YAAIgB,cAAcD,UAAUE,GAAV,CAAcC,OAAOlB,OAAOkB,GAAP,EAAYJ,IAAZ,CAAiBK,MAAtC,CAAlB;;AAEA,YAAIC,MAAMxB,OAAOoB,WAAP,CAAV;;AAEAD,kBAAUT,OAAV,CAAkB,CAACC,QAAD,EAAWc,KAAX,KAAqB;AACrC,cAAIb,QAAQR,OAAOO,QAAP,CAAZ;;AAEA,cAAIe,YAAYC,KAAKC,KAAL,CAAWzB,iBAAiBI,MAAjB,IAA2BK,MAAMM,IAAN,CAAWK,MAAX,GAAoBC,GAA/C,CAAX,CAAhB;AACA,cAAIK,WAAWF,KAAKC,KAAL,CAAWzB,iBAAiBG,KAAjB,GAAyBa,UAAUI,MAA9C,CAAf;;AAEAX,gBAAM,GAAN,IAAaiB,WAAWJ,KAAxB;AACAb,gBAAM,GAAN,IAAa,CAAb;AACAA,gBAAM,OAAN,IAAiBiB,WAAW,CAA5B;AACAjB,gBAAM,QAAN,IAAkBc,SAAlB;AACD,SAVD;;AAYA,eAAOtB,MAAP;AACD;;;;AAEM,eAAS0B,oBAAT,CAA8BC,QAA9B,EAAwCnB,KAAxC,EAA+C;AACpD,eAAOmB,SAAShB,CAAT,IAAcH,MAAMG,CAApB,IACLgB,SAAShB,CAAT,IAAcH,MAAMG,CAAN,GAAUH,MAAMN,KADzB,IAELyB,SAASf,CAAT,IAAcJ,MAAMI,CAFf,IAGLe,SAASf,CAAT,IAAcJ,MAAMI,CAAN,GAAUJ,MAAML,MAHhC;AAID","file":"position-matching.js","sourcesContent":["import { \n  createAgeGroups,\n  getMax\n} from \"./utils.js\"\n\nexport function drawBars(context, canvasDimensions, groups) {  \n  context.clearRect(0, 0, canvasDimensions.width, canvasDimensions.height)\n  \n  \n  Object.keys(groups).forEach(groupKey => {\n    let group = groups[groupKey]\n    \n    context.fillStyle = \"ffee00\"\n    context.fillRect(group.x, group.y, group.width, group.height)\n  })\n}\n\nexport function createPositionedAgeGroups(data, canvasDimensions) {\n  let groups = createAgeGroups(data)\n  \n  let groupKeys = Object.keys(groups)\n  let dataLengths = groupKeys.map(key => groups[key].data.length)\n  \n  let max = getMax(dataLengths)\n  \n  groupKeys.forEach((groupKey, index) => {\n    let group = groups[groupKey]\n    \n    let barHeight = Math.floor(canvasDimensions.height * (group.data.length / max))\n    let barWidth = Math.floor(canvasDimensions.width / groupKeys.length)\n    \n    group[\"x\"] = barWidth * index\n    group[\"y\"] = 0\n    group[\"width\"] = barWidth - 5\n    group[\"height\"] = barHeight\n  })\n  \n  return groups\n}\n\nexport function positionMatchesGroup(position, group) {\n  return position.x >= group.x &&\n    position.x <= group.x + group.width &&\n    position.y >= group.y &&\n    position.y <= group.y + group.height\n}"]}