{"version":3,"file":"HeatmapSplitWeeks.cjs","names":["getColumns","getHeatColor"],"sources":["../../src/Heatmap/HeatmapSplitWeeks.tsx"],"sourcesContent":["import { getColumns, HeatmapColumn } from './get-columns/get-columns';\nimport { getHeatColor } from './get-heat-color/get-heat-color';\nimport { HeatmapWeeksSharedProps } from './HeatmapWeeks.types';\n\nexport function HeatmapSplitWeeks({\n  data,\n  datesRange,\n  rectSize,\n  gap,\n  rectRadius,\n  min,\n  max,\n  colors,\n  withTooltip,\n  setHoveredRect,\n  getRectProps,\n  getStyles,\n}: HeatmapWeeksSharedProps) {\n  const rectSizeWithGap = rectSize + gap;\n\n  // Columns: computed by a helper so logic is isolated\n  const columns: HeatmapColumn[] = getColumns(datesRange, true);\n\n  return (\n    <>\n      {columns.map((col, columnIndex) => {\n        if (col.type === 'spacer') {\n          return (\n            <g\n              key={`spacer-${columnIndex}`}\n              transform={`translate(${columnIndex * rectSizeWithGap}, 0)`}\n            />\n          );\n        }\n\n        const week = datesRange[col.weekIndex];\n\n        const days = week.map((date, dayIndex) => {\n          if (!date) {\n            return null;\n          }\n          if (new Date(date).getUTCMonth() !== col.month) {\n            return null;\n          }\n\n          const hasValue = date in data && data[date] !== null;\n          const rectValue = hasValue ? data[date] : null;\n\n          return (\n            <rect\n              key={`${date}-${col.month}`}\n              width={rectSize}\n              height={rectSize}\n              x={gap}\n              y={dayIndex * rectSizeWithGap + gap}\n              rx={rectRadius}\n              data-empty={!hasValue || undefined}\n              fill={hasValue ? getHeatColor({ value: data[date], min, max, colors }) : undefined}\n              onPointerEnter={\n                withTooltip ? () => setHoveredRect({ date, value: rectValue }) : undefined\n              }\n              {...getRectProps?.({ date, value: rectValue })}\n              {...getStyles('rect')}\n            />\n          );\n        });\n\n        return (\n          <g\n            key={`col-${col.weekIndex}-${col.month}-${columnIndex}`}\n            transform={`translate(${columnIndex * rectSizeWithGap}, 0)`}\n            data-id=\"week\"\n          >\n            {days}\n          </g>\n        );\n      })}\n    </>\n  );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,kBAAkB,EAChC,MACA,YACA,UACA,KACA,YACA,KACA,KACA,QACA,aACA,gBACA,cACA,aAC0B;CAC1B,MAAM,kBAAkB,WAAW;AAKnC,QACE,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAA,UAH+BA,oBAAAA,WAAW,YAAY,KAAK,CAIhD,KAAK,KAAK,gBAAgB;AACjC,MAAI,IAAI,SAAS,SACf,QACE,iBAAA,GAAA,kBAAA,KAAC,KAAD,EAEE,WAAW,aAAa,cAAc,gBAAgB,OACtD,EAFK,UAAU,cAEf;EAMN,MAAM,OAFO,WAAW,IAAI,WAEV,KAAK,MAAM,aAAa;AACxC,OAAI,CAAC,KACH,QAAO;AAET,OAAI,IAAI,KAAK,KAAK,CAAC,aAAa,KAAK,IAAI,MACvC,QAAO;GAGT,MAAM,WAAW,QAAQ,QAAQ,KAAK,UAAU;GAChD,MAAM,YAAY,WAAW,KAAK,QAAQ;AAE1C,UACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAEE,OAAO;IACP,QAAQ;IACR,GAAG;IACH,GAAG,WAAW,kBAAkB;IAChC,IAAI;IACJ,cAAY,CAAC,YAAY,KAAA;IACzB,MAAM,WAAWC,uBAAAA,aAAa;KAAE,OAAO,KAAK;KAAO;KAAK;KAAK;KAAQ,CAAC,GAAG,KAAA;IACzE,gBACE,oBAAoB,eAAe;KAAE;KAAM,OAAO;KAAW,CAAC,GAAG,KAAA;IAEnE,GAAI,eAAe;KAAE;KAAM,OAAO;KAAW,CAAC;IAC9C,GAAI,UAAU,OAAO;IACrB,EAbK,GAAG,KAAK,GAAG,IAAI,QAapB;IAEJ;AAEF,SACE,iBAAA,GAAA,kBAAA,KAAC,KAAD;GAEE,WAAW,aAAa,cAAc,gBAAgB;GACtD,WAAQ;aAEP;GACC,EALG,OAAO,IAAI,UAAU,GAAG,IAAI,MAAM,GAAG,cAKxC;GAEN,EACD,CAAA"}