{"version":3,"sources":["https://lively-kernel.org/voices/BP2019RH1-report/content/topic5/tests/double-rendering.js"],"names":["getHexStringWithTwoCharacters","createAgeGroups","getMax","getColorStringFromImageData","imageData","x","y","startPosition","width","red","data","green","blue","drawBars","context","canvasDimensions","groups","colorSelector","clearRect","height","groupKeys","Object","keys","dataLengths","map","key","length","max","forEach","groupKey","index","barHeight","Math","floor","barWidth","fillStyle","fillRect","createColorMapping","mapping","uniqueColor","createColoredAgeGroups","toString"],"mappings":";;;;;;AACEA,mC,YAAAA,6B;AACAC,qB,YAAAA,e;AACAC,Y,YAAAA,M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGK,eAASC,2BAAT,CAAqCC,SAArC,EAAgDC,CAAhD,EAAoDC,CAApD,EAAuD;AAC5D,YAAIC,gBAAgB,CAACD,IAAIF,UAAUI,KAAd,GAAsBH,CAAvB,IAA4B,CAAhD;;AAEA,YAAII,MAAMT,8BAA8BI,UAAUM,IAAV,CAAeH,aAAf,CAA9B,CAAV;AACA,YAAII,QAAQX,8BAA8BI,UAAUM,IAAV,CAAeH,gBAAc,CAA7B,CAA9B,CAAZ;AACA,YAAIK,OAAOZ,8BAA8BI,UAAUM,IAAV,CAAeH,gBAAc,CAA7B,CAA9B,CAAX;;AAEA,eAAO,MAAME,GAAN,GAAYE,KAAZ,GAAoBC,IAA3B;AACD;;;;AAEM,eAASC,QAAT,CAAkBC,OAAlB,EAA2BC,gBAA3B,EAA6CC,MAA7C,EAAqDC,aAArD,EAAoE;AACzEH,gBAAQI,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwBH,iBAAiBP,KAAzC,EAAgDO,iBAAiBI,MAAjE;;AAEA,YAAIC,YAAYC,OAAOC,IAAP,CAAYN,MAAZ,CAAhB;;AAEA,YAAIO,cAAcH,UAAUI,GAAV,CAAcC,OAAOT,OAAOS,GAAP,EAAYf,IAAZ,CAAiBgB,MAAtC,CAAlB;AACA,YAAIC,MAAMzB,OAAOqB,WAAP,CAAV;;AAEAH,kBAAUQ,OAAV,CAAkB,CAACC,QAAD,EAAWC,KAAX,KAAqB;AACrC,cAAIC,YAAYC,KAAKC,KAAL,CAAWlB,iBAAiBI,MAAjB,IAA2BH,OAAOa,QAAP,EAAiBnB,IAAjB,CAAsBgB,MAAtB,GAA+BC,GAA1D,CAAX,CAAhB;AACA,cAAIO,WAAWF,KAAKC,KAAL,CAAWlB,iBAAiBP,KAAjB,GAAyBY,UAAUM,MAA9C,CAAf;;AAEAZ,kBAAQqB,SAAR,GAAoBnB,OAAOa,QAAP,EAAiBZ,aAAjB,CAApB;;AAEAH,kBAAQsB,QAAR,CACEF,WAAWJ,KADb,EAEE,CAFF,EAGEI,WAAW,CAHb,EAIEH,SAJF;AAMD,SAZD;AAaD;;;;AAEM,eAASM,kBAAT,CAA4BrB,MAA5B,EAAoC;AACzC,YAAIsB,UAAU,EAAd;;AAEAjB,eAAOC,IAAP,CAAYN,MAAZ,EAAoBY,OAApB,CAA4BC,YAAY;AACtCS,kBAAQtB,OAAOa,QAAP,EAAiBU,WAAzB,IAAwCV,QAAxC;AACD,SAFD;;AAIA,eAAOS,OAAP;AACD;;;;AAEM,eAASE,sBAAT,CAAgC9B,IAAhC,EAAsC;AAC3C,YAAIM,SAASf,gBAAgBS,IAAhB,CAAb;;AAEAW,eAAOC,IAAP,CAAYN,MAAZ,EAAoBY,OAApB,CAA4B,CAACC,QAAD,EAAWC,KAAX,KAAqB;AAC/Cd,iBAAOa,QAAP,EAAiB,OAAjB,IAA4B,SAA5B;AACAb,iBAAOa,QAAP,EAAiB,aAAjB,IAAkC,WAAWC,MAAMW,QAAN,CAAe,EAAf,CAA7C;AACD,SAHD;;AAKA,eAAOzB,MAAP;AACD","file":"double-rendering.js","sourcesContent":["import {\n  getHexStringWithTwoCharacters,\n  createAgeGroups,\n  getMax\n} from \"./utils.js\"\n\nexport function getColorStringFromImageData(imageData, x , y) {\n  let startPosition = (y * imageData.width + x) * 4\n  \n  let red = getHexStringWithTwoCharacters(imageData.data[startPosition])\n  let green = getHexStringWithTwoCharacters(imageData.data[startPosition+1])\n  let blue = getHexStringWithTwoCharacters(imageData.data[startPosition+2])\n\n  return \"#\" + red + green + blue\n}\n\nexport function drawBars(context, canvasDimensions, groups, colorSelector) {  \n  context.clearRect(0, 0, canvasDimensions.width, canvasDimensions.height)\n  \n  let groupKeys = Object.keys(groups)\n  \n  let dataLengths = groupKeys.map(key => groups[key].data.length)\n  let max = getMax(dataLengths)\n  \n  groupKeys.forEach((groupKey, index) => {\n    let barHeight = Math.floor(canvasDimensions.height * (groups[groupKey].data.length / max))\n    let barWidth = Math.floor(canvasDimensions.width / groupKeys.length)\n    \n    context.fillStyle = groups[groupKey][colorSelector]\n    \n    context.fillRect(\n      barWidth * index,\n      0,\n      barWidth - 5,\n      barHeight\n    )\n  })\n}\n\nexport function createColorMapping(groups) {\n  let mapping = {}\n  \n  Object.keys(groups).forEach(groupKey => {\n    mapping[groups[groupKey].uniqueColor] = groupKey\n  })\n  \n  return mapping\n}\n\nexport function createColoredAgeGroups(data) {\n  let groups = createAgeGroups(data)\n  \n  Object.keys(groups).forEach((groupKey, index) => {\n    groups[groupKey][\"color\"] = \"#ffee00\"\n    groups[groupKey][\"uniqueColor\"] = \"#ffee0\" + index.toString(16)\n  })\n  \n  return groups\n}"]}