@mantine/charts 9.0.0-alpha.4 → 9.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/cjs/AreaChart/AreaChart.cjs +304 -376
  2. package/cjs/AreaChart/AreaChart.cjs.map +1 -1
  3. package/cjs/AreaChart/AreaGradient.cjs +32 -11
  4. package/cjs/AreaChart/AreaGradient.cjs.map +1 -1
  5. package/cjs/AreaChart/AreaSplit.cjs +24 -27
  6. package/cjs/AreaChart/AreaSplit.cjs.map +1 -1
  7. package/cjs/AreaChart/get-split-offset.cjs +18 -19
  8. package/cjs/AreaChart/get-split-offset.cjs.map +1 -1
  9. package/cjs/BarChart/BarChart.cjs +266 -364
  10. package/cjs/BarChart/BarChart.cjs.map +1 -1
  11. package/cjs/BarsList/BarsList.cjs +85 -115
  12. package/cjs/BarsList/BarsList.cjs.map +1 -1
  13. package/cjs/BarsList/BarsList.module.cjs +13 -0
  14. package/cjs/BarsList/BarsList.module.cjs.map +1 -0
  15. package/cjs/BubbleChart/BubbleChart.cjs +123 -143
  16. package/cjs/BubbleChart/BubbleChart.cjs.map +1 -1
  17. package/cjs/ChartLegend/ChartLegend.cjs +65 -83
  18. package/cjs/ChartLegend/ChartLegend.cjs.map +1 -1
  19. package/cjs/ChartLegend/ChartLegend.module.cjs +12 -0
  20. package/cjs/ChartLegend/ChartLegend.module.cjs.map +1 -0
  21. package/cjs/ChartTooltip/ChartTooltip.cjs +100 -116
  22. package/cjs/ChartTooltip/ChartTooltip.cjs.map +1 -1
  23. package/cjs/ChartTooltip/ChartTooltip.module.cjs +16 -0
  24. package/cjs/ChartTooltip/ChartTooltip.module.cjs.map +1 -0
  25. package/cjs/CompositeChart/CompositeChart.cjs +300 -389
  26. package/cjs/CompositeChart/CompositeChart.cjs.map +1 -1
  27. package/cjs/DonutChart/DonutChart.cjs +121 -168
  28. package/cjs/DonutChart/DonutChart.cjs.map +1 -1
  29. package/cjs/DonutChart/DonutChart.module.cjs +10 -0
  30. package/cjs/DonutChart/DonutChart.module.cjs.map +1 -0
  31. package/cjs/FunnelChart/FunnelChart.cjs +91 -129
  32. package/cjs/FunnelChart/FunnelChart.cjs.map +1 -1
  33. package/cjs/FunnelChart/FunnelChart.module.cjs +7 -0
  34. package/cjs/FunnelChart/FunnelChart.module.cjs.map +1 -0
  35. package/cjs/Heatmap/Heatmap.cjs +155 -188
  36. package/cjs/Heatmap/Heatmap.cjs.map +1 -1
  37. package/cjs/Heatmap/Heatmap.module.cjs +12 -0
  38. package/cjs/Heatmap/Heatmap.module.cjs.map +1 -0
  39. package/cjs/Heatmap/HeatmapSplitWeeks.cjs +47 -72
  40. package/cjs/Heatmap/HeatmapSplitWeeks.cjs.map +1 -1
  41. package/cjs/Heatmap/HeatmapWeeks.cjs +44 -57
  42. package/cjs/Heatmap/HeatmapWeeks.cjs.map +1 -1
  43. package/cjs/Heatmap/get-boundaries/get-boundaries.cjs +8 -10
  44. package/cjs/Heatmap/get-boundaries/get-boundaries.cjs.map +1 -1
  45. package/cjs/Heatmap/get-columns/get-columns.cjs +74 -64
  46. package/cjs/Heatmap/get-columns/get-columns.cjs.map +1 -1
  47. package/cjs/Heatmap/get-dates-range/get-dates-range.cjs +43 -54
  48. package/cjs/Heatmap/get-dates-range/get-dates-range.cjs.map +1 -1
  49. package/cjs/Heatmap/get-heat-color/get-heat-color.cjs +7 -8
  50. package/cjs/Heatmap/get-heat-color/get-heat-color.cjs.map +1 -1
  51. package/cjs/Heatmap/get-months-range/get-months-range.cjs +23 -19
  52. package/cjs/Heatmap/get-months-range/get-months-range.cjs.map +1 -1
  53. package/cjs/Heatmap/rotate-weekdays-names/rotate-weekdays-names.cjs +8 -10
  54. package/cjs/Heatmap/rotate-weekdays-names/rotate-weekdays-names.cjs.map +1 -1
  55. package/cjs/LineChart/LineChart.cjs +274 -341
  56. package/cjs/LineChart/LineChart.cjs.map +1 -1
  57. package/cjs/PieChart/PieChart.cjs +124 -171
  58. package/cjs/PieChart/PieChart.cjs.map +1 -1
  59. package/cjs/PieChart/PieChart.module.cjs +7 -0
  60. package/cjs/PieChart/PieChart.module.cjs.map +1 -0
  61. package/cjs/PointLabel/PointLabel.cjs +19 -20
  62. package/cjs/PointLabel/PointLabel.cjs.map +1 -1
  63. package/cjs/RadarChart/RadarChart.cjs +127 -157
  64. package/cjs/RadarChart/RadarChart.cjs.map +1 -1
  65. package/cjs/RadarChart/RadarChart.module.cjs +10 -0
  66. package/cjs/RadarChart/RadarChart.module.cjs.map +1 -0
  67. package/cjs/RadialBarChart/RadialBarChart.cjs +116 -147
  68. package/cjs/RadialBarChart/RadialBarChart.cjs.map +1 -1
  69. package/cjs/RadialBarChart/RadialBarChart.module.cjs +10 -0
  70. package/cjs/RadialBarChart/RadialBarChart.module.cjs.map +1 -0
  71. package/cjs/SankeyChart/SankeyChart.cjs +202 -0
  72. package/cjs/SankeyChart/SankeyChart.cjs.map +1 -0
  73. package/cjs/SankeyChart/SankeyChart.module.cjs +7 -0
  74. package/cjs/SankeyChart/SankeyChart.module.cjs.map +1 -0
  75. package/cjs/ScatterChart/ScatterChart.cjs +218 -274
  76. package/cjs/ScatterChart/ScatterChart.cjs.map +1 -1
  77. package/cjs/Sparkline/Sparkline.cjs +70 -99
  78. package/cjs/Sparkline/Sparkline.cjs.map +1 -1
  79. package/cjs/Sparkline/Sparkline.module.cjs +7 -0
  80. package/cjs/Sparkline/Sparkline.module.cjs.map +1 -0
  81. package/cjs/Treemap/Treemap.cjs +133 -0
  82. package/cjs/Treemap/Treemap.cjs.map +1 -0
  83. package/cjs/Treemap/Treemap.module.cjs +7 -0
  84. package/cjs/Treemap/Treemap.module.cjs.map +1 -0
  85. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  86. package/cjs/grid-chart.module.cjs +14 -0
  87. package/cjs/grid-chart.module.cjs.map +1 -0
  88. package/cjs/index.cjs +39 -44
  89. package/cjs/utils/get-series-labels/get-series-labels.cjs +16 -18
  90. package/cjs/utils/get-series-labels/get-series-labels.cjs.map +1 -1
  91. package/esm/AreaChart/AreaChart.mjs +306 -376
  92. package/esm/AreaChart/AreaChart.mjs.map +1 -1
  93. package/esm/AreaChart/AreaGradient.mjs +32 -9
  94. package/esm/AreaChart/AreaGradient.mjs.map +1 -1
  95. package/esm/AreaChart/AreaSplit.mjs +24 -25
  96. package/esm/AreaChart/AreaSplit.mjs.map +1 -1
  97. package/esm/AreaChart/get-split-offset.mjs +18 -17
  98. package/esm/AreaChart/get-split-offset.mjs.map +1 -1
  99. package/esm/BarChart/BarChart.mjs +268 -364
  100. package/esm/BarChart/BarChart.mjs.map +1 -1
  101. package/esm/BarsList/BarsList.mjs +84 -112
  102. package/esm/BarsList/BarsList.mjs.map +1 -1
  103. package/esm/BarsList/BarsList.module.mjs +13 -0
  104. package/esm/BarsList/BarsList.module.mjs.map +1 -0
  105. package/esm/BubbleChart/BubbleChart.mjs +122 -140
  106. package/esm/BubbleChart/BubbleChart.mjs.map +1 -1
  107. package/esm/ChartLegend/ChartLegend.mjs +64 -80
  108. package/esm/ChartLegend/ChartLegend.mjs.map +1 -1
  109. package/esm/ChartLegend/ChartLegend.module.mjs +12 -0
  110. package/esm/ChartLegend/ChartLegend.module.mjs.map +1 -0
  111. package/esm/ChartTooltip/ChartTooltip.mjs +99 -113
  112. package/esm/ChartTooltip/ChartTooltip.mjs.map +1 -1
  113. package/esm/ChartTooltip/ChartTooltip.module.mjs +16 -0
  114. package/esm/ChartTooltip/ChartTooltip.module.mjs.map +1 -0
  115. package/esm/CompositeChart/CompositeChart.mjs +299 -386
  116. package/esm/CompositeChart/CompositeChart.mjs.map +1 -1
  117. package/esm/DonutChart/DonutChart.mjs +120 -165
  118. package/esm/DonutChart/DonutChart.mjs.map +1 -1
  119. package/esm/DonutChart/DonutChart.module.mjs +10 -0
  120. package/esm/DonutChart/DonutChart.module.mjs.map +1 -0
  121. package/esm/FunnelChart/FunnelChart.mjs +93 -129
  122. package/esm/FunnelChart/FunnelChart.mjs.map +1 -1
  123. package/esm/FunnelChart/FunnelChart.module.mjs +7 -0
  124. package/esm/FunnelChart/FunnelChart.module.mjs.map +1 -0
  125. package/esm/Heatmap/Heatmap.mjs +154 -185
  126. package/esm/Heatmap/Heatmap.mjs.map +1 -1
  127. package/esm/Heatmap/Heatmap.module.mjs +12 -0
  128. package/esm/Heatmap/Heatmap.module.mjs.map +1 -0
  129. package/esm/Heatmap/HeatmapSplitWeeks.mjs +47 -70
  130. package/esm/Heatmap/HeatmapSplitWeeks.mjs.map +1 -1
  131. package/esm/Heatmap/HeatmapWeeks.mjs +44 -55
  132. package/esm/Heatmap/HeatmapWeeks.mjs.map +1 -1
  133. package/esm/Heatmap/get-boundaries/get-boundaries.mjs +8 -8
  134. package/esm/Heatmap/get-boundaries/get-boundaries.mjs.map +1 -1
  135. package/esm/Heatmap/get-columns/get-columns.mjs +74 -62
  136. package/esm/Heatmap/get-columns/get-columns.mjs.map +1 -1
  137. package/esm/Heatmap/get-dates-range/get-dates-range.mjs +43 -52
  138. package/esm/Heatmap/get-dates-range/get-dates-range.mjs.map +1 -1
  139. package/esm/Heatmap/get-heat-color/get-heat-color.mjs +7 -6
  140. package/esm/Heatmap/get-heat-color/get-heat-color.mjs.map +1 -1
  141. package/esm/Heatmap/get-months-range/get-months-range.mjs +23 -17
  142. package/esm/Heatmap/get-months-range/get-months-range.mjs.map +1 -1
  143. package/esm/Heatmap/rotate-weekdays-names/rotate-weekdays-names.mjs +8 -8
  144. package/esm/Heatmap/rotate-weekdays-names/rotate-weekdays-names.mjs.map +1 -1
  145. package/esm/LineChart/LineChart.mjs +276 -341
  146. package/esm/LineChart/LineChart.mjs.map +1 -1
  147. package/esm/PieChart/PieChart.mjs +126 -171
  148. package/esm/PieChart/PieChart.mjs.map +1 -1
  149. package/esm/PieChart/PieChart.module.mjs +7 -0
  150. package/esm/PieChart/PieChart.module.mjs.map +1 -0
  151. package/esm/PointLabel/PointLabel.mjs +19 -18
  152. package/esm/PointLabel/PointLabel.mjs.map +1 -1
  153. package/esm/RadarChart/RadarChart.mjs +129 -157
  154. package/esm/RadarChart/RadarChart.mjs.map +1 -1
  155. package/esm/RadarChart/RadarChart.module.mjs +10 -0
  156. package/esm/RadarChart/RadarChart.module.mjs.map +1 -0
  157. package/esm/RadialBarChart/RadialBarChart.mjs +118 -147
  158. package/esm/RadialBarChart/RadialBarChart.mjs.map +1 -1
  159. package/esm/RadialBarChart/RadialBarChart.module.mjs +10 -0
  160. package/esm/RadialBarChart/RadialBarChart.module.mjs.map +1 -0
  161. package/esm/SankeyChart/SankeyChart.mjs +200 -0
  162. package/esm/SankeyChart/SankeyChart.mjs.map +1 -0
  163. package/esm/SankeyChart/SankeyChart.module.mjs +7 -0
  164. package/esm/SankeyChart/SankeyChart.module.mjs.map +1 -0
  165. package/esm/ScatterChart/ScatterChart.mjs +220 -274
  166. package/esm/ScatterChart/ScatterChart.mjs.map +1 -1
  167. package/esm/Sparkline/Sparkline.mjs +69 -96
  168. package/esm/Sparkline/Sparkline.mjs.map +1 -1
  169. package/esm/Sparkline/Sparkline.module.mjs +7 -0
  170. package/esm/Sparkline/Sparkline.module.mjs.map +1 -0
  171. package/esm/Treemap/Treemap.mjs +131 -0
  172. package/esm/Treemap/Treemap.mjs.map +1 -0
  173. package/esm/Treemap/Treemap.module.mjs +7 -0
  174. package/esm/Treemap/Treemap.module.mjs.map +1 -0
  175. package/esm/grid-chart.module.mjs +14 -0
  176. package/esm/grid-chart.module.mjs.map +1 -0
  177. package/esm/index.mjs +19 -19
  178. package/esm/utils/get-series-labels/get-series-labels.mjs +16 -16
  179. package/esm/utils/get-series-labels/get-series-labels.mjs.map +1 -1
  180. package/lib/AreaChart/AreaChart.d.ts +1 -1
  181. package/lib/CompositeChart/CompositeChart.d.ts +1 -1
  182. package/lib/SankeyChart/SankeyChart.d.ts +71 -0
  183. package/lib/SankeyChart/index.d.ts +12 -0
  184. package/lib/Sparkline/Sparkline.d.ts +1 -1
  185. package/lib/Treemap/Treemap.d.ts +57 -0
  186. package/lib/Treemap/index.d.ts +10 -0
  187. package/package.json +7 -7
  188. package/cjs/BarsList/BarsList.module.css.cjs +0 -7
  189. package/cjs/BarsList/BarsList.module.css.cjs.map +0 -1
  190. package/cjs/ChartLegend/ChartLegend.module.css.cjs +0 -7
  191. package/cjs/ChartLegend/ChartLegend.module.css.cjs.map +0 -1
  192. package/cjs/ChartTooltip/ChartTooltip.module.css.cjs +0 -7
  193. package/cjs/ChartTooltip/ChartTooltip.module.css.cjs.map +0 -1
  194. package/cjs/DonutChart/DonutChart.module.css.cjs +0 -7
  195. package/cjs/DonutChart/DonutChart.module.css.cjs.map +0 -1
  196. package/cjs/FunnelChart/FunnelChart.module.css.cjs +0 -7
  197. package/cjs/FunnelChart/FunnelChart.module.css.cjs.map +0 -1
  198. package/cjs/Heatmap/Heatmap.module.css.cjs +0 -7
  199. package/cjs/Heatmap/Heatmap.module.css.cjs.map +0 -1
  200. package/cjs/PieChart/PieChart.module.css.cjs +0 -7
  201. package/cjs/PieChart/PieChart.module.css.cjs.map +0 -1
  202. package/cjs/RadarChart/RadarChart.module.css.cjs +0 -7
  203. package/cjs/RadarChart/RadarChart.module.css.cjs.map +0 -1
  204. package/cjs/RadialBarChart/RadialBarChart.module.css.cjs +0 -7
  205. package/cjs/RadialBarChart/RadialBarChart.module.css.cjs.map +0 -1
  206. package/cjs/Sparkline/Sparkline.module.css.cjs +0 -7
  207. package/cjs/Sparkline/Sparkline.module.css.cjs.map +0 -1
  208. package/cjs/grid-chart.module.css.cjs +0 -7
  209. package/cjs/grid-chart.module.css.cjs.map +0 -1
  210. package/cjs/index.cjs.map +0 -1
  211. package/esm/BarsList/BarsList.module.css.mjs +0 -5
  212. package/esm/BarsList/BarsList.module.css.mjs.map +0 -1
  213. package/esm/ChartLegend/ChartLegend.module.css.mjs +0 -5
  214. package/esm/ChartLegend/ChartLegend.module.css.mjs.map +0 -1
  215. package/esm/ChartTooltip/ChartTooltip.module.css.mjs +0 -5
  216. package/esm/ChartTooltip/ChartTooltip.module.css.mjs.map +0 -1
  217. package/esm/DonutChart/DonutChart.module.css.mjs +0 -5
  218. package/esm/DonutChart/DonutChart.module.css.mjs.map +0 -1
  219. package/esm/FunnelChart/FunnelChart.module.css.mjs +0 -5
  220. package/esm/FunnelChart/FunnelChart.module.css.mjs.map +0 -1
  221. package/esm/Heatmap/Heatmap.module.css.mjs +0 -5
  222. package/esm/Heatmap/Heatmap.module.css.mjs.map +0 -1
  223. package/esm/PieChart/PieChart.module.css.mjs +0 -5
  224. package/esm/PieChart/PieChart.module.css.mjs.map +0 -1
  225. package/esm/RadarChart/RadarChart.module.css.mjs +0 -5
  226. package/esm/RadarChart/RadarChart.module.css.mjs.map +0 -1
  227. package/esm/RadialBarChart/RadialBarChart.module.css.mjs +0 -5
  228. package/esm/RadialBarChart/RadialBarChart.module.css.mjs.map +0 -1
  229. package/esm/Sparkline/Sparkline.module.css.mjs +0 -5
  230. package/esm/Sparkline/Sparkline.module.css.mjs.map +0 -1
  231. package/esm/grid-chart.module.css.mjs +0 -5
  232. package/esm/grid-chart.module.css.mjs.map +0 -1
  233. package/esm/index.mjs.map +0 -1
@@ -1,57 +1,46 @@
1
- 'use client';
2
- import { jsx, Fragment } from 'react/jsx-runtime';
3
- import { getHeatColor } from './get-heat-color/get-heat-color.mjs';
4
-
5
- function HeatmapWeeks({
6
- data,
7
- datesRange,
8
- rectSize,
9
- gap,
10
- rectRadius,
11
- min,
12
- max,
13
- colors,
14
- withTooltip,
15
- setHoveredRect,
16
- getRectProps,
17
- getStyles
18
- }) {
19
- const rectSizeWithGap = rectSize + gap;
20
- return /* @__PURE__ */ jsx(Fragment, { children: datesRange.map((week, weekIndex) => {
21
- const days = week.map((date, dayIndex) => {
22
- if (!date) {
23
- return null;
24
- }
25
- const hasValue = date in data && data[date] !== null;
26
- const rectValue = hasValue ? data[date] : null;
27
- return /* @__PURE__ */ jsx(
28
- "rect",
29
- {
30
- width: rectSize,
31
- height: rectSize,
32
- x: gap,
33
- y: dayIndex * rectSizeWithGap + gap,
34
- rx: rectRadius,
35
- "data-empty": !hasValue || void 0,
36
- fill: hasValue ? getHeatColor({ value: data[date], min, max, colors }) : void 0,
37
- onPointerEnter: withTooltip ? () => setHoveredRect({ date, value: rectValue }) : void 0,
38
- ...getRectProps?.({ date, value: rectValue }),
39
- ...getStyles("rect")
40
- },
41
- date
42
- );
43
- });
44
- return /* @__PURE__ */ jsx(
45
- "g",
46
- {
47
- transform: `translate(${weekIndex * rectSizeWithGap}, 0)`,
48
- "data-id": "week",
49
- children: days
50
- },
51
- weekIndex
52
- );
53
- }) });
1
+ "use client";
2
+ import { getHeatColor } from "./get-heat-color/get-heat-color.mjs";
3
+ import { Fragment, jsx } from "react/jsx-runtime";
4
+ //#region packages/@mantine/charts/src/Heatmap/HeatmapWeeks.tsx
5
+ function HeatmapWeeks({ data, datesRange, rectSize, gap, rectRadius, min, max, colors, withTooltip, setHoveredRect, getRectProps, getStyles }) {
6
+ const rectSizeWithGap = rectSize + gap;
7
+ return /* @__PURE__ */ jsx(Fragment, { children: datesRange.map((week, weekIndex) => {
8
+ const days = week.map((date, dayIndex) => {
9
+ if (!date) return null;
10
+ const hasValue = date in data && data[date] !== null;
11
+ const rectValue = hasValue ? data[date] : null;
12
+ return /* @__PURE__ */ jsx("rect", {
13
+ width: rectSize,
14
+ height: rectSize,
15
+ x: gap,
16
+ y: dayIndex * rectSizeWithGap + gap,
17
+ rx: rectRadius,
18
+ "data-empty": !hasValue || void 0,
19
+ fill: hasValue ? getHeatColor({
20
+ value: data[date],
21
+ min,
22
+ max,
23
+ colors
24
+ }) : void 0,
25
+ onPointerEnter: withTooltip ? () => setHoveredRect({
26
+ date,
27
+ value: rectValue
28
+ }) : void 0,
29
+ ...getRectProps?.({
30
+ date,
31
+ value: rectValue
32
+ }),
33
+ ...getStyles("rect")
34
+ }, date);
35
+ });
36
+ return /* @__PURE__ */ jsx("g", {
37
+ transform: `translate(${weekIndex * rectSizeWithGap}, 0)`,
38
+ "data-id": "week",
39
+ children: days
40
+ }, weekIndex);
41
+ }) });
54
42
  }
55
-
43
+ //#endregion
56
44
  export { HeatmapWeeks };
57
- //# sourceMappingURL=HeatmapWeeks.mjs.map
45
+
46
+ //# sourceMappingURL=HeatmapWeeks.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapWeeks.mjs","sources":["../../src/Heatmap/HeatmapWeeks.tsx"],"sourcesContent":["import { getHeatColor } from './get-heat-color/get-heat-color';\nimport { HeatmapWeeksSharedProps } from './HeatmapWeeks.types';\n\nexport function HeatmapWeeks({\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 return (\n <>\n {datesRange.map((week, weekIndex) => {\n // Original simple logic without month splitting\n const days = week.map((date, dayIndex) => {\n if (!date) {\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}\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={weekIndex}\n transform={`translate(${weekIndex * rectSizeWithGap}, 0)`}\n data-id=\"week\"\n >\n {days}\n </g>\n );\n })}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeatmapWeeks.mjs","names":[],"sources":["../../src/Heatmap/HeatmapWeeks.tsx"],"sourcesContent":["import { getHeatColor } from './get-heat-color/get-heat-color';\nimport { HeatmapWeeksSharedProps } from './HeatmapWeeks.types';\n\nexport function HeatmapWeeks({\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 return (\n <>\n {datesRange.map((week, weekIndex) => {\n // Original simple logic without month splitting\n const days = week.map((date, dayIndex) => {\n if (!date) {\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}\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={weekIndex}\n transform={`translate(${weekIndex * rectSizeWithGap}, 0)`}\n data-id=\"week\"\n >\n {days}\n </g>\n );\n })}\n </>\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,aAAa,EAC3B,MACA,YACA,UACA,KACA,YACA,KACA,KACA,QACA,aACA,gBACA,cACA,aAC0B;CAC1B,MAAM,kBAAkB,WAAW;AAEnC,QACE,oBAAA,UAAA,EAAA,UACG,WAAW,KAAK,MAAM,cAAc;EAEnC,MAAM,OAAO,KAAK,KAAK,MAAM,aAAa;AACxC,OAAI,CAAC,KACH,QAAO;GAGT,MAAM,WAAW,QAAQ,QAAQ,KAAK,UAAU;GAChD,MAAM,YAAY,WAAW,KAAK,QAAQ;AAE1C,UACE,oBAAC,QAAD;IAEE,OAAO;IACP,QAAQ;IACR,GAAG;IACH,GAAG,WAAW,kBAAkB;IAChC,IAAI;IACJ,cAAY,CAAC,YAAY,KAAA;IACzB,MAAM,WAAW,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,KAaL;IAEJ;AAEF,SACE,oBAAC,KAAD;GAEE,WAAW,aAAa,YAAY,gBAAgB;GACpD,WAAQ;aAEP;GACC,EALG,UAKH;GAEN,EACD,CAAA"}
@@ -1,11 +1,11 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/get-boundaries/get-boundaries.ts
2
3
  function getBoundaries({ data, domain }) {
3
- if (Array.isArray(domain)) {
4
- return domain;
5
- }
6
- const values = Object.values(data);
7
- return [Math.min(...values), Math.max(...values)];
4
+ if (Array.isArray(domain)) return domain;
5
+ const values = Object.values(data);
6
+ return [Math.min(...values), Math.max(...values)];
8
7
  }
9
-
8
+ //#endregion
10
9
  export { getBoundaries };
11
- //# sourceMappingURL=get-boundaries.mjs.map
10
+
11
+ //# sourceMappingURL=get-boundaries.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-boundaries.mjs","sources":["../../../src/Heatmap/get-boundaries/get-boundaries.ts"],"sourcesContent":["interface GetBoundariesInput {\n data: Record<string, number>;\n domain?: [number, number];\n}\n\nexport function getBoundaries({ data, domain }: GetBoundariesInput) {\n if (Array.isArray(domain)) {\n return domain;\n }\n\n const values = Object.values(data);\n return [Math.min(...values), Math.max(...values)];\n}\n"],"names":[],"mappings":";AAKO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,aAAA,CAAc,CAAA,CAAE,IAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAuB,CAAA;AAClE,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAA;AACjC,CAAA,CAAA,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,IAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA;AAClD,CAAA;;"}
1
+ {"version":3,"file":"get-boundaries.mjs","names":[],"sources":["../../../src/Heatmap/get-boundaries/get-boundaries.ts"],"sourcesContent":["interface GetBoundariesInput {\n data: Record<string, number>;\n domain?: [number, number];\n}\n\nexport function getBoundaries({ data, domain }: GetBoundariesInput) {\n if (Array.isArray(domain)) {\n return domain;\n }\n\n const values = Object.values(data);\n return [Math.min(...values), Math.max(...values)];\n}\n"],"mappings":";;AAKA,SAAgB,cAAc,EAAE,MAAM,UAA8B;AAClE,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO;CAGT,MAAM,SAAS,OAAO,OAAO,KAAK;AAClC,QAAO,CAAC,KAAK,IAAI,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC"}
@@ -1,67 +1,79 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/get-columns/get-columns.ts
3
+ /**
4
+ * Builds a list of visual columns for the heatmap. When `splitMonths` is false,
5
+ * there is exactly one column per week. When `splitMonths` is true, weeks that
6
+ * span two months are split into two columns and a spacer column is inserted
7
+ * between different months.
8
+ */
2
9
  function getColumns(datesRange, splitMonths) {
3
- if (!splitMonths) {
4
- return datesRange.map((week, weekIndex) => {
5
- const firstDay = week.find((d) => d !== null);
6
- const month = new Date(firstDay).getUTCMonth();
7
- return { type: "column", month, weekIndex };
8
- });
9
- }
10
- const tmp = [];
11
- datesRange.forEach((week, weekIndex) => {
12
- const months = week.map((d) => d ? new Date(d).getUTCMonth() : null);
13
- let firstMonth = null;
14
- let boundaryIndex = null;
15
- for (let i = 0; i < months.length; i += 1) {
16
- if (months[i] === null) {
17
- continue;
18
- }
19
- if (firstMonth === null) {
20
- firstMonth = months[i];
21
- } else if (months[i] !== firstMonth) {
22
- boundaryIndex = i;
23
- break;
24
- }
25
- }
26
- if (firstMonth === null) {
27
- return;
28
- }
29
- if (boundaryIndex === null) {
30
- tmp.push({ type: "column", month: firstMonth, weekIndex });
31
- } else {
32
- let nextMonth = null;
33
- for (let i = boundaryIndex; i < months.length; i += 1) {
34
- if (months[i] !== null) {
35
- nextMonth = months[i];
36
- break;
37
- }
38
- }
39
- if (nextMonth === null) {
40
- tmp.push({ type: "column", month: firstMonth, weekIndex });
41
- } else {
42
- tmp.push({ type: "column", month: firstMonth, weekIndex });
43
- tmp.push({ type: "column", month: nextMonth, weekIndex });
44
- }
45
- }
46
- });
47
- const columns = [];
48
- for (let i = 0; i < tmp.length; i += 1) {
49
- if (i > 0 && tmp[i].month !== tmp[i - 1].month) {
50
- columns.push({ type: "spacer" });
51
- }
52
- columns.push(tmp[i]);
53
- }
54
- return columns;
10
+ if (!splitMonths) return datesRange.map((week, weekIndex) => {
11
+ const firstDay = week.find((d) => d !== null);
12
+ return {
13
+ type: "column",
14
+ month: new Date(firstDay).getUTCMonth(),
15
+ weekIndex
16
+ };
17
+ });
18
+ const tmp = [];
19
+ datesRange.forEach((week, weekIndex) => {
20
+ const months = week.map((d) => d ? new Date(d).getUTCMonth() : null);
21
+ let firstMonth = null;
22
+ let boundaryIndex = null;
23
+ for (let i = 0; i < months.length; i += 1) {
24
+ if (months[i] === null) continue;
25
+ if (firstMonth === null) firstMonth = months[i];
26
+ else if (months[i] !== firstMonth) {
27
+ boundaryIndex = i;
28
+ break;
29
+ }
30
+ }
31
+ if (firstMonth === null) return;
32
+ if (boundaryIndex === null) tmp.push({
33
+ type: "column",
34
+ month: firstMonth,
35
+ weekIndex
36
+ });
37
+ else {
38
+ let nextMonth = null;
39
+ for (let i = boundaryIndex; i < months.length; i += 1) if (months[i] !== null) {
40
+ nextMonth = months[i];
41
+ break;
42
+ }
43
+ if (nextMonth === null) tmp.push({
44
+ type: "column",
45
+ month: firstMonth,
46
+ weekIndex
47
+ });
48
+ else {
49
+ tmp.push({
50
+ type: "column",
51
+ month: firstMonth,
52
+ weekIndex
53
+ });
54
+ tmp.push({
55
+ type: "column",
56
+ month: nextMonth,
57
+ weekIndex
58
+ });
59
+ }
60
+ }
61
+ });
62
+ const columns = [];
63
+ for (let i = 0; i < tmp.length; i += 1) {
64
+ if (i > 0 && tmp[i].month !== tmp[i - 1].month) columns.push({ type: "spacer" });
65
+ columns.push(tmp[i]);
66
+ }
67
+ return columns;
55
68
  }
56
69
  function getFirstMonthColumnIndex(columns, month) {
57
- for (let i = 0; i < columns.length; i += 1) {
58
- const c = columns[i];
59
- if (c.type === "column" && c.month === month) {
60
- return i;
61
- }
62
- }
63
- return -1;
70
+ for (let i = 0; i < columns.length; i += 1) {
71
+ const c = columns[i];
72
+ if (c.type === "column" && c.month === month) return i;
73
+ }
74
+ return -1;
64
75
  }
65
-
76
+ //#endregion
66
77
  export { getColumns, getFirstMonthColumnIndex };
67
- //# sourceMappingURL=get-columns.mjs.map
78
+
79
+ //# sourceMappingURL=get-columns.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-columns.mjs","sources":["../../../src/Heatmap/get-columns/get-columns.ts"],"sourcesContent":["export type HeatmapColumn =\n | { type: 'spacer' }\n | { type: 'column'; month: number; weekIndex: number };\n\n/**\n * Builds a list of visual columns for the heatmap. When `splitMonths` is false,\n * there is exactly one column per week. When `splitMonths` is true, weeks that\n * span two months are split into two columns and a spacer column is inserted\n * between different months.\n */\nexport function getColumns(\n datesRange: (string | null)[][],\n splitMonths?: boolean\n): HeatmapColumn[] {\n if (!splitMonths) {\n return datesRange.map((week, weekIndex) => {\n // Determine month for labeling purposes: pick first non-null day\n const firstDay = week.find((d) => d !== null)! as string;\n const month = new Date(firstDay).getUTCMonth();\n return { type: 'column', month, weekIndex } as HeatmapColumn;\n });\n }\n\n const tmp: HeatmapColumn[] = [];\n datesRange.forEach((week, weekIndex) => {\n const months = week.map((d) => (d ? new Date(d).getUTCMonth() : null));\n let firstMonth: number | null = null;\n let boundaryIndex: number | null = null;\n for (let i = 0; i < months.length; i += 1) {\n if (months[i] === null) {\n continue;\n }\n if (firstMonth === null) {\n firstMonth = months[i]!;\n } else if (months[i] !== firstMonth) {\n boundaryIndex = i;\n break;\n }\n }\n\n if (firstMonth === null) {\n return; // should not happen\n }\n\n if (boundaryIndex === null) {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n } else {\n // Find nextMonth as first non-null month from boundaryIndex\n let nextMonth: number | null = null;\n for (let i = boundaryIndex; i < months.length; i += 1) {\n if (months[i] !== null) {\n nextMonth = months[i]!;\n break;\n }\n }\n if (nextMonth === null) {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n } else {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n tmp.push({ type: 'column', month: nextMonth, weekIndex });\n }\n }\n });\n\n // Insert spacer between adjacent columns when month changes\n const columns: HeatmapColumn[] = [];\n for (let i = 0; i < tmp.length; i += 1) {\n if (i > 0 && (tmp[i] as any).month !== (tmp[i - 1] as any).month) {\n columns.push({ type: 'spacer' });\n }\n columns.push(tmp[i]);\n }\n\n return columns;\n}\n\nexport function getFirstMonthColumnIndex(columns: HeatmapColumn[], month: number): number {\n for (let i = 0; i < columns.length; i += 1) {\n const c = columns[i];\n if (c.type === 'column' && c.month === month) {\n return i;\n }\n }\n\n return -1;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-columns.mjs","names":[],"sources":["../../../src/Heatmap/get-columns/get-columns.ts"],"sourcesContent":["export type HeatmapColumn =\n | { type: 'spacer' }\n | { type: 'column'; month: number; weekIndex: number };\n\n/**\n * Builds a list of visual columns for the heatmap. When `splitMonths` is false,\n * there is exactly one column per week. When `splitMonths` is true, weeks that\n * span two months are split into two columns and a spacer column is inserted\n * between different months.\n */\nexport function getColumns(\n datesRange: (string | null)[][],\n splitMonths?: boolean\n): HeatmapColumn[] {\n if (!splitMonths) {\n return datesRange.map((week, weekIndex) => {\n // Determine month for labeling purposes: pick first non-null day\n const firstDay = week.find((d) => d !== null)! as string;\n const month = new Date(firstDay).getUTCMonth();\n return { type: 'column', month, weekIndex } as HeatmapColumn;\n });\n }\n\n const tmp: HeatmapColumn[] = [];\n datesRange.forEach((week, weekIndex) => {\n const months = week.map((d) => (d ? new Date(d).getUTCMonth() : null));\n let firstMonth: number | null = null;\n let boundaryIndex: number | null = null;\n for (let i = 0; i < months.length; i += 1) {\n if (months[i] === null) {\n continue;\n }\n if (firstMonth === null) {\n firstMonth = months[i]!;\n } else if (months[i] !== firstMonth) {\n boundaryIndex = i;\n break;\n }\n }\n\n if (firstMonth === null) {\n return; // should not happen\n }\n\n if (boundaryIndex === null) {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n } else {\n // Find nextMonth as first non-null month from boundaryIndex\n let nextMonth: number | null = null;\n for (let i = boundaryIndex; i < months.length; i += 1) {\n if (months[i] !== null) {\n nextMonth = months[i]!;\n break;\n }\n }\n if (nextMonth === null) {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n } else {\n tmp.push({ type: 'column', month: firstMonth, weekIndex });\n tmp.push({ type: 'column', month: nextMonth, weekIndex });\n }\n }\n });\n\n // Insert spacer between adjacent columns when month changes\n const columns: HeatmapColumn[] = [];\n for (let i = 0; i < tmp.length; i += 1) {\n if (i > 0 && (tmp[i] as any).month !== (tmp[i - 1] as any).month) {\n columns.push({ type: 'spacer' });\n }\n columns.push(tmp[i]);\n }\n\n return columns;\n}\n\nexport function getFirstMonthColumnIndex(columns: HeatmapColumn[], month: number): number {\n for (let i = 0; i < columns.length; i += 1) {\n const c = columns[i];\n if (c.type === 'column' && c.month === month) {\n return i;\n }\n }\n\n return -1;\n}\n"],"mappings":";;;;;;;;AAUA,SAAgB,WACd,YACA,aACiB;AACjB,KAAI,CAAC,YACH,QAAO,WAAW,KAAK,MAAM,cAAc;EAEzC,MAAM,WAAW,KAAK,MAAM,MAAM,MAAM,KAAK;AAE7C,SAAO;GAAE,MAAM;GAAU,OADX,IAAI,KAAK,SAAS,CAAC,aAAa;GACd;GAAW;GAC3C;CAGJ,MAAM,MAAuB,EAAE;AAC/B,YAAW,SAAS,MAAM,cAAc;EACtC,MAAM,SAAS,KAAK,KAAK,MAAO,IAAI,IAAI,KAAK,EAAE,CAAC,aAAa,GAAG,KAAM;EACtE,IAAI,aAA4B;EAChC,IAAI,gBAA+B;AACnC,OAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,OAAI,OAAO,OAAO,KAChB;AAEF,OAAI,eAAe,KACjB,cAAa,OAAO;YACX,OAAO,OAAO,YAAY;AACnC,oBAAgB;AAChB;;;AAIJ,MAAI,eAAe,KACjB;AAGF,MAAI,kBAAkB,KACpB,KAAI,KAAK;GAAE,MAAM;GAAU,OAAO;GAAY;GAAW,CAAC;OACrD;GAEL,IAAI,YAA2B;AAC/B,QAAK,IAAI,IAAI,eAAe,IAAI,OAAO,QAAQ,KAAK,EAClD,KAAI,OAAO,OAAO,MAAM;AACtB,gBAAY,OAAO;AACnB;;AAGJ,OAAI,cAAc,KAChB,KAAI,KAAK;IAAE,MAAM;IAAU,OAAO;IAAY;IAAW,CAAC;QACrD;AACL,QAAI,KAAK;KAAE,MAAM;KAAU,OAAO;KAAY;KAAW,CAAC;AAC1D,QAAI,KAAK;KAAE,MAAM;KAAU,OAAO;KAAW;KAAW,CAAC;;;GAG7D;CAGF,MAAM,UAA2B,EAAE;AACnC,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACtC,MAAI,IAAI,KAAM,IAAI,GAAW,UAAW,IAAI,IAAI,GAAW,MACzD,SAAQ,KAAK,EAAE,MAAM,UAAU,CAAC;AAElC,UAAQ,KAAK,IAAI,GAAG;;AAGtB,QAAO;;AAGT,SAAgB,yBAAyB,SAA0B,OAAuB;AACxF,MAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;EAC1C,MAAM,IAAI,QAAQ;AAClB,MAAI,EAAE,SAAS,YAAY,EAAE,UAAU,MACrC,QAAO;;AAIX,QAAO"}
@@ -1,64 +1,55 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/get-dates-range/get-dates-range.ts
2
3
  function formatDate(date) {
3
- const y = date.getUTCFullYear();
4
- const m = String(date.getUTCMonth() + 1).padStart(2, "0");
5
- const d = String(date.getUTCDate()).padStart(2, "0");
6
- return `${y}-${m}-${d}`;
4
+ return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, "0")}-${String(date.getUTCDate()).padStart(2, "0")}`;
7
5
  }
8
6
  function addDays(date, days) {
9
- return new Date(date.getTime() + days * 864e5);
7
+ return new Date(date.getTime() + days * 864e5);
10
8
  }
11
9
  function toUtcMidnight(input) {
12
- if (typeof input === "string") {
13
- const m = input.match(/^(\d{4})-(\d{2})-(\d{2})$/);
14
- if (m) {
15
- const year = Number(m[1]);
16
- const month = Number(m[2]) - 1;
17
- const day = Number(m[3]);
18
- return new Date(Date.UTC(year, month, day));
19
- }
20
- const d = new Date(input);
21
- return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));
22
- }
23
- return new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));
10
+ if (typeof input === "string") {
11
+ const m = input.match(/^(\d{4})-(\d{2})-(\d{2})$/);
12
+ if (m) {
13
+ const year = Number(m[1]);
14
+ const month = Number(m[2]) - 1;
15
+ const day = Number(m[3]);
16
+ return new Date(Date.UTC(year, month, day));
17
+ }
18
+ const d = new Date(input);
19
+ return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));
20
+ }
21
+ return new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));
24
22
  }
25
23
  function startOfWeekUtc(date, firstDayOfWeek) {
26
- let value = new Date(date);
27
- while (value.getUTCDay() !== firstDayOfWeek) {
28
- value = addDays(value, -1);
29
- }
30
- return value;
24
+ let value = new Date(date);
25
+ while (value.getUTCDay() !== firstDayOfWeek) value = addDays(value, -1);
26
+ return value;
31
27
  }
32
28
  function endOfWeekUtc(date, firstDayOfWeek) {
33
- const day = date.getUTCDay();
34
- const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;
35
- return addDays(date, 6 - diff);
29
+ const day = date.getUTCDay();
30
+ return addDays(date, 6 - ((day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek));
36
31
  }
37
- function getDatesRange({
38
- startDate,
39
- endDate,
40
- withOutsideDates = true,
41
- firstDayOfWeek = 1
42
- } = {}) {
43
- const now = /* @__PURE__ */ new Date();
44
- const defaultStartLocal = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate());
45
- const defaultEndLocal = now;
46
- const start = startDate ? toUtcMidnight(startDate) : toUtcMidnight(defaultStartLocal);
47
- const end = endDate ? toUtcMidnight(endDate) : toUtcMidnight(defaultEndLocal);
48
- const startWeek = startOfWeekUtc(start, firstDayOfWeek);
49
- const endWeek = endOfWeekUtc(end, firstDayOfWeek);
50
- const dates = [];
51
- let current = startWeek;
52
- while (current <= endWeek) {
53
- const week = Array.from({ length: 7 }, (_, i) => {
54
- const day = addDays(current, i);
55
- return withOutsideDates || day >= start && day <= end ? formatDate(day) : null;
56
- });
57
- dates.push(week);
58
- current = addDays(current, 7);
59
- }
60
- return dates;
32
+ function getDatesRange({ startDate, endDate, withOutsideDates = true, firstDayOfWeek = 1 } = {}) {
33
+ const now = /* @__PURE__ */ new Date();
34
+ const defaultStartLocal = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate());
35
+ const defaultEndLocal = now;
36
+ const start = startDate ? toUtcMidnight(startDate) : toUtcMidnight(defaultStartLocal);
37
+ const end = endDate ? toUtcMidnight(endDate) : toUtcMidnight(defaultEndLocal);
38
+ const startWeek = startOfWeekUtc(start, firstDayOfWeek);
39
+ const endWeek = endOfWeekUtc(end, firstDayOfWeek);
40
+ const dates = [];
41
+ let current = startWeek;
42
+ while (current <= endWeek) {
43
+ const week = Array.from({ length: 7 }, (_, i) => {
44
+ const day = addDays(current, i);
45
+ return withOutsideDates || day >= start && day <= end ? formatDate(day) : null;
46
+ });
47
+ dates.push(week);
48
+ current = addDays(current, 7);
49
+ }
50
+ return dates;
61
51
  }
62
-
52
+ //#endregion
63
53
  export { getDatesRange };
64
- //# sourceMappingURL=get-dates-range.mjs.map
54
+
55
+ //# sourceMappingURL=get-dates-range.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-dates-range.mjs","sources":["../../../src/Heatmap/get-dates-range/get-dates-range.ts"],"sourcesContent":["function formatDate(date: Date): string {\n const y = date.getUTCFullYear();\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n}\n\nfunction addDays(date: Date, days: number): Date {\n return new Date(date.getTime() + days * 86400000);\n}\n\nfunction toUtcMidnight(input: Date | string): Date {\n if (typeof input === 'string') {\n const m = input.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\n if (m) {\n const year = Number(m[1]);\n const month = Number(m[2]) - 1; // 0-indexed\n const day = Number(m[3]);\n return new Date(Date.UTC(year, month, day));\n }\n\n const d = new Date(input);\n return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n }\n\n return new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n}\n\nfunction startOfWeekUtc(date: Date, firstDayOfWeek: number): Date {\n let value = new Date(date);\n while (value.getUTCDay() !== firstDayOfWeek) {\n value = addDays(value, -1);\n }\n\n return value;\n}\n\nfunction endOfWeekUtc(date: Date, firstDayOfWeek: number): Date {\n const day = date.getUTCDay();\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\n return addDays(date, 6 - diff);\n}\n\ninterface HeatmapOptions {\n startDate?: Date | string;\n endDate?: Date | string;\n withOutsideDates?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport function getDatesRange({\n startDate,\n endDate,\n withOutsideDates = true,\n firstDayOfWeek = 1,\n}: HeatmapOptions = {}): (string | null)[][] {\n const now = new Date();\n const defaultStartLocal = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate());\n const defaultEndLocal = now;\n\n const start = startDate ? toUtcMidnight(startDate) : toUtcMidnight(defaultStartLocal);\n const end = endDate ? toUtcMidnight(endDate) : toUtcMidnight(defaultEndLocal);\n\n const startWeek = startOfWeekUtc(start, firstDayOfWeek);\n const endWeek = endOfWeekUtc(end, firstDayOfWeek);\n const dates: (string | null)[][] = [];\n\n let current = startWeek;\n\n while (current <= endWeek) {\n const week = Array.from({ length: 7 }, (_, i) => {\n const day = addDays(current, i);\n return withOutsideDates || (day >= start && day <= end) ? formatDate(day) : null;\n });\n\n dates.push(week);\n current = addDays(current, 7);\n }\n\n return dates;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-dates-range.mjs","names":[],"sources":["../../../src/Heatmap/get-dates-range/get-dates-range.ts"],"sourcesContent":["function formatDate(date: Date): string {\n const y = date.getUTCFullYear();\n const m = String(date.getUTCMonth() + 1).padStart(2, '0');\n const d = String(date.getUTCDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n}\n\nfunction addDays(date: Date, days: number): Date {\n return new Date(date.getTime() + days * 86400000);\n}\n\nfunction toUtcMidnight(input: Date | string): Date {\n if (typeof input === 'string') {\n const m = input.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\n if (m) {\n const year = Number(m[1]);\n const month = Number(m[2]) - 1; // 0-indexed\n const day = Number(m[3]);\n return new Date(Date.UTC(year, month, day));\n }\n\n const d = new Date(input);\n return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n }\n\n return new Date(Date.UTC(input.getFullYear(), input.getMonth(), input.getDate()));\n}\n\nfunction startOfWeekUtc(date: Date, firstDayOfWeek: number): Date {\n let value = new Date(date);\n while (value.getUTCDay() !== firstDayOfWeek) {\n value = addDays(value, -1);\n }\n\n return value;\n}\n\nfunction endOfWeekUtc(date: Date, firstDayOfWeek: number): Date {\n const day = date.getUTCDay();\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\n return addDays(date, 6 - diff);\n}\n\ninterface HeatmapOptions {\n startDate?: Date | string;\n endDate?: Date | string;\n withOutsideDates?: boolean;\n firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport function getDatesRange({\n startDate,\n endDate,\n withOutsideDates = true,\n firstDayOfWeek = 1,\n}: HeatmapOptions = {}): (string | null)[][] {\n const now = new Date();\n const defaultStartLocal = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate());\n const defaultEndLocal = now;\n\n const start = startDate ? toUtcMidnight(startDate) : toUtcMidnight(defaultStartLocal);\n const end = endDate ? toUtcMidnight(endDate) : toUtcMidnight(defaultEndLocal);\n\n const startWeek = startOfWeekUtc(start, firstDayOfWeek);\n const endWeek = endOfWeekUtc(end, firstDayOfWeek);\n const dates: (string | null)[][] = [];\n\n let current = startWeek;\n\n while (current <= endWeek) {\n const week = Array.from({ length: 7 }, (_, i) => {\n const day = addDays(current, i);\n return withOutsideDates || (day >= start && day <= end) ? formatDate(day) : null;\n });\n\n dates.push(week);\n current = addDays(current, 7);\n }\n\n return dates;\n}\n"],"mappings":";;AAAA,SAAS,WAAW,MAAoB;AAItC,QAAO,GAHG,KAAK,gBAAgB,CAGnB,GAFF,OAAO,KAAK,aAAa,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI,CAExC,GADP,OAAO,KAAK,YAAY,CAAC,CAAC,SAAS,GAAG,IAAI;;AAItD,SAAS,QAAQ,MAAY,MAAoB;AAC/C,QAAO,IAAI,KAAK,KAAK,SAAS,GAAG,OAAO,MAAS;;AAGnD,SAAS,cAAc,OAA4B;AACjD,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,IAAI,MAAM,MAAM,4BAA4B;AAClD,MAAI,GAAG;GACL,MAAM,OAAO,OAAO,EAAE,GAAG;GACzB,MAAM,QAAQ,OAAO,EAAE,GAAG,GAAG;GAC7B,MAAM,MAAM,OAAO,EAAE,GAAG;AACxB,UAAO,IAAI,KAAK,KAAK,IAAI,MAAM,OAAO,IAAI,CAAC;;EAG7C,MAAM,IAAI,IAAI,KAAK,MAAM;AACzB,SAAO,IAAI,KAAK,KAAK,IAAI,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,CAAC;;AAGhF,QAAO,IAAI,KAAK,KAAK,IAAI,MAAM,aAAa,EAAE,MAAM,UAAU,EAAE,MAAM,SAAS,CAAC,CAAC;;AAGnF,SAAS,eAAe,MAAY,gBAA8B;CAChE,IAAI,QAAQ,IAAI,KAAK,KAAK;AAC1B,QAAO,MAAM,WAAW,KAAK,eAC3B,SAAQ,QAAQ,OAAO,GAAG;AAG5B,QAAO;;AAGT,SAAS,aAAa,MAAY,gBAA8B;CAC9D,MAAM,MAAM,KAAK,WAAW;AAE5B,QAAO,QAAQ,MAAM,MADP,MAAM,iBAAiB,IAAI,KAAK,MAAM,gBACtB;;AAUhC,SAAgB,cAAc,EAC5B,WACA,SACA,mBAAmB,MACnB,iBAAiB,MACC,EAAE,EAAuB;CAC3C,MAAM,sBAAM,IAAI,MAAM;CACtB,MAAM,oBAAoB,IAAI,KAAK,IAAI,aAAa,GAAG,GAAG,IAAI,UAAU,EAAE,IAAI,SAAS,CAAC;CACxF,MAAM,kBAAkB;CAExB,MAAM,QAAQ,YAAY,cAAc,UAAU,GAAG,cAAc,kBAAkB;CACrF,MAAM,MAAM,UAAU,cAAc,QAAQ,GAAG,cAAc,gBAAgB;CAE7E,MAAM,YAAY,eAAe,OAAO,eAAe;CACvD,MAAM,UAAU,aAAa,KAAK,eAAe;CACjD,MAAM,QAA6B,EAAE;CAErC,IAAI,UAAU;AAEd,QAAO,WAAW,SAAS;EACzB,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM;GAC/C,MAAM,MAAM,QAAQ,SAAS,EAAE;AAC/B,UAAO,oBAAqB,OAAO,SAAS,OAAO,MAAO,WAAW,IAAI,GAAG;IAC5E;AAEF,QAAM,KAAK,KAAK;AAChB,YAAU,QAAQ,SAAS,EAAE;;AAG/B,QAAO"}
@@ -1,9 +1,10 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/get-heat-color/get-heat-color.ts
2
3
  function getHeatColor({ value, min, max, colors }) {
3
- const percent = (value - min) / (max - min);
4
- const colorIndex = Math.round((colors.length - 1) * percent);
5
- return colors[colorIndex];
4
+ const percent = (value - min) / (max - min);
5
+ return colors[Math.round((colors.length - 1) * percent)];
6
6
  }
7
-
7
+ //#endregion
8
8
  export { getHeatColor };
9
- //# sourceMappingURL=get-heat-color.mjs.map
9
+
10
+ //# sourceMappingURL=get-heat-color.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-heat-color.mjs","sources":["../../../src/Heatmap/get-heat-color/get-heat-color.ts"],"sourcesContent":["interface GetHeatColorInput {\n value: number;\n min: number;\n max: number;\n colors: string[];\n}\n\nexport function getHeatColor({ value, min, max, colors }: GetHeatColorInput) {\n const percent = (value - min) / (max - min);\n const colorIndex = Math.round((colors.length - 1) * percent);\n return colors[colorIndex];\n}\n"],"names":[],"mappings":";AAOO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAsB,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,KAAK,OAAO,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA;AAC1B,CAAA;;"}
1
+ {"version":3,"file":"get-heat-color.mjs","names":[],"sources":["../../../src/Heatmap/get-heat-color/get-heat-color.ts"],"sourcesContent":["interface GetHeatColorInput {\n value: number;\n min: number;\n max: number;\n colors: string[];\n}\n\nexport function getHeatColor({ value, min, max, colors }: GetHeatColorInput) {\n const percent = (value - min) / (max - min);\n const colorIndex = Math.round((colors.length - 1) * percent);\n return colors[colorIndex];\n}\n"],"mappings":";;AAOA,SAAgB,aAAa,EAAE,OAAO,KAAK,KAAK,UAA6B;CAC3E,MAAM,WAAW,QAAQ,QAAQ,MAAM;AAEvC,QAAO,OADY,KAAK,OAAO,OAAO,SAAS,KAAK,QAAQ"}
@@ -1,20 +1,26 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/get-months-range/get-months-range.ts
2
3
  function getMonthsRange(weeksData) {
3
- let position = 0;
4
- let current = null;
5
- const result = [];
6
- weeksData.forEach((week) => {
7
- const day = week[0] === null ? week[week.length - 1] : week[0];
8
- const month = new Date(day).getUTCMonth();
9
- if (current !== month) {
10
- current = month;
11
- result.push({ month: current, position, size: 0 });
12
- }
13
- result[result.length - 1].size += 1;
14
- position += 1;
15
- });
16
- return result;
4
+ let position = 0;
5
+ let current = null;
6
+ const result = [];
7
+ weeksData.forEach((week) => {
8
+ const day = week[0] === null ? week[week.length - 1] : week[0];
9
+ const month = new Date(day).getUTCMonth();
10
+ if (current !== month) {
11
+ current = month;
12
+ result.push({
13
+ month: current,
14
+ position,
15
+ size: 0
16
+ });
17
+ }
18
+ result[result.length - 1].size += 1;
19
+ position += 1;
20
+ });
21
+ return result;
17
22
  }
18
-
23
+ //#endregion
19
24
  export { getMonthsRange };
20
- //# sourceMappingURL=get-months-range.mjs.map
25
+
26
+ //# sourceMappingURL=get-months-range.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-months-range.mjs","sources":["../../../src/Heatmap/get-months-range/get-months-range.ts"],"sourcesContent":["interface MonthRangeValue {\n /** 0 - 11, index of the month, used to retrieve month label from the array */\n month: number;\n\n /** Number of weeks displayed previously */\n position: number;\n\n /** Number of weeks in the month */\n size: number;\n}\n\nexport function getMonthsRange(weeksData: (string | null)[][]) {\n let position = 0;\n let current: number | null = null;\n const result: MonthRangeValue[] = [];\n\n weeksData.forEach((week) => {\n // it is guaranteed that week has at least 1 day\n const day = week[0] === null ? week[week.length - 1]! : week[0];\n const month = new Date(day).getUTCMonth();\n\n if (current !== month) {\n current = month;\n result.push({ month: current, position, size: 0 });\n }\n\n result[result.length - 1].size += 1;\n position += 1;\n });\n\n return result;\n}\n"],"names":[],"mappings":";AAWO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAA4B,CAAA,CAAC,CAAA;AAEnC,CAAA,CAAA,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,MAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,EAAK,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACnD,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,CAAA,CAAA;AAAA,CAAA,CACd,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}
1
+ {"version":3,"file":"get-months-range.mjs","names":[],"sources":["../../../src/Heatmap/get-months-range/get-months-range.ts"],"sourcesContent":["interface MonthRangeValue {\n /** 0 - 11, index of the month, used to retrieve month label from the array */\n month: number;\n\n /** Number of weeks displayed previously */\n position: number;\n\n /** Number of weeks in the month */\n size: number;\n}\n\nexport function getMonthsRange(weeksData: (string | null)[][]) {\n let position = 0;\n let current: number | null = null;\n const result: MonthRangeValue[] = [];\n\n weeksData.forEach((week) => {\n // it is guaranteed that week has at least 1 day\n const day = week[0] === null ? week[week.length - 1]! : week[0];\n const month = new Date(day).getUTCMonth();\n\n if (current !== month) {\n current = month;\n result.push({ month: current, position, size: 0 });\n }\n\n result[result.length - 1].size += 1;\n position += 1;\n });\n\n return result;\n}\n"],"mappings":";;AAWA,SAAgB,eAAe,WAAgC;CAC7D,IAAI,WAAW;CACf,IAAI,UAAyB;CAC7B,MAAM,SAA4B,EAAE;AAEpC,WAAU,SAAS,SAAS;EAE1B,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,KAAK,SAAS,KAAM,KAAK;EAC7D,MAAM,QAAQ,IAAI,KAAK,IAAI,CAAC,aAAa;AAEzC,MAAI,YAAY,OAAO;AACrB,aAAU;AACV,UAAO,KAAK;IAAE,OAAO;IAAS;IAAU,MAAM;IAAG,CAAC;;AAGpD,SAAO,OAAO,SAAS,GAAG,QAAQ;AAClC,cAAY;GACZ;AAEF,QAAO"}
@@ -1,11 +1,11 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/charts/src/Heatmap/rotate-weekdays-names/rotate-weekdays-names.ts
2
3
  function rotateWeekdaysNames(weekdayNames, firstDayOfWeek) {
3
- const rotated = [...weekdayNames];
4
- for (let i = 0; i < firstDayOfWeek; i += 1) {
5
- rotated.push(rotated.shift());
6
- }
7
- return rotated;
4
+ const rotated = [...weekdayNames];
5
+ for (let i = 0; i < firstDayOfWeek; i += 1) rotated.push(rotated.shift());
6
+ return rotated;
8
7
  }
9
-
8
+ //#endregion
10
9
  export { rotateWeekdaysNames };
11
- //# sourceMappingURL=rotate-weekdays-names.mjs.map
10
+
11
+ //# sourceMappingURL=rotate-weekdays-names.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate-weekdays-names.mjs","sources":["../../../src/Heatmap/rotate-weekdays-names/rotate-weekdays-names.ts"],"sourcesContent":["export function rotateWeekdaysNames(weekdayNames: string[], firstDayOfWeek: number) {\n const rotated = [...weekdayNames];\n for (let i = 0; i < firstDayOfWeek; i += 1) {\n rotated.push(rotated.shift() as string);\n }\n\n return rotated;\n}\n"],"names":[],"mappings":";AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAwB,cAAA,CAAA,CAAwB,CAAA;AAClF,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,YAAY,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,KAAK,CAAA,CAAA,CAAG,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA;AAAA,CAAA,CACxC,CAAA;AAEA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;;"}
1
+ {"version":3,"file":"rotate-weekdays-names.mjs","names":[],"sources":["../../../src/Heatmap/rotate-weekdays-names/rotate-weekdays-names.ts"],"sourcesContent":["export function rotateWeekdaysNames(weekdayNames: string[], firstDayOfWeek: number) {\n const rotated = [...weekdayNames];\n for (let i = 0; i < firstDayOfWeek; i += 1) {\n rotated.push(rotated.shift() as string);\n }\n\n return rotated;\n}\n"],"mappings":";;AAAA,SAAgB,oBAAoB,cAAwB,gBAAwB;CAClF,MAAM,UAAU,CAAC,GAAG,aAAa;AACjC,MAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,KAAK,EACvC,SAAQ,KAAK,QAAQ,OAAO,CAAW;AAGzC,QAAO"}