x-next 1.5.0 → 1.7.0

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 (171) hide show
  1. package/AI_USAGE.md +57 -4
  2. package/CHANGELOG.md +72 -0
  3. package/dist/_utils/color.d.ts +53 -0
  4. package/dist/components/color-picker/ColorPicker.d.ts +239 -0
  5. package/dist/components/color-picker/gradient-slider.d.ts +52 -0
  6. package/dist/components/color-picker/index.d.ts +238 -0
  7. package/dist/components/color-picker/panel.d.ts +721 -0
  8. package/dist/components/color-picker/sv-panel.d.ts +48 -0
  9. package/dist/components/date-picker/DatePicker.vue.d.ts +3 -3
  10. package/dist/components/date-picker/index.d.ts +6 -6
  11. package/dist/components/draggable/Draggable.d.ts +1 -1
  12. package/dist/components/draggable/index.d.ts +2 -2
  13. package/dist/components/drawer/index.d.ts +6 -6
  14. package/dist/components/drawer/src/Drawer.vue.d.ts +3 -3
  15. package/dist/components/dropdown/Dropdown.vue.d.ts +34 -4
  16. package/dist/components/dropdown/DropdownButton.vue.d.ts +35 -5
  17. package/dist/components/dropdown/DropdownSubmenu.vue.d.ts +34 -4
  18. package/dist/components/dropdown/dropdown-panel.vue.d.ts +30 -0
  19. package/dist/components/dropdown/index.d.ts +209 -29
  20. package/dist/components/form/FormItem.vue.d.ts +12 -12
  21. package/dist/components/form/form-item-label.vue.d.ts +3 -3
  22. package/dist/components/form/index.d.ts +24 -24
  23. package/dist/components/form-select/Select.d.ts +3 -3
  24. package/dist/components/form-select/SelectDropdown.vue.d.ts +30 -0
  25. package/dist/components/form-select/index.d.ts +66 -6
  26. package/dist/components/form-slider/Slider.vue.d.ts +3 -3
  27. package/dist/components/form-slider/index.d.ts +6 -6
  28. package/dist/components/form-slider/slider-button.vue.d.ts +3 -3
  29. package/dist/components/grid/Row.vue.d.ts +3 -3
  30. package/dist/components/grid/index.d.ts +9 -9
  31. package/dist/components/heatmap/Heatmap.d.ts +311 -0
  32. package/dist/components/heatmap/helpers/matrix.d.ts +58 -0
  33. package/dist/components/heatmap/index.d.ts +372 -0
  34. package/dist/components/heatmap/interface.d.ts +57 -0
  35. package/dist/components/image/Image.vue.d.ts +125 -17
  36. package/dist/components/image/ImagePreview.vue.d.ts +97 -7
  37. package/dist/components/image/ImagePreviewAction.d.ts +3 -3
  38. package/dist/components/image/ImagePreviewGroup.vue.d.ts +100 -7
  39. package/dist/components/image/hooks/use-image-drag.d.ts +2 -2
  40. package/dist/components/image/index.d.ts +712 -124
  41. package/dist/components/image/interface.d.ts +9 -1
  42. package/dist/components/image/preview-toolbar.vue.d.ts +3 -3
  43. package/dist/components/index.d.ts +3 -0
  44. package/dist/components/menu/sub-menu-pop.vue.d.ts +3 -3
  45. package/dist/components/network/Network.vue.d.ts +1 -1
  46. package/dist/components/network/index.d.ts +3 -3
  47. package/dist/components/network/utils.d.ts +2 -0
  48. package/dist/components/pagination/page-item-ellipsis.vue.d.ts +9 -0
  49. package/dist/components/pagination/page-jumper.vue.d.ts +6 -0
  50. package/dist/components/pagination/page-options.vue.d.ts +6 -6
  51. package/dist/components/popconfirm/src/popup.vue.d.ts +3 -3
  52. package/dist/components/popover/Popover.d.ts +1 -1
  53. package/dist/components/popover/index.d.ts +3 -3
  54. package/dist/components/popup/Popup.d.ts +1 -1
  55. package/dist/components/popup/index.d.ts +3 -3
  56. package/dist/components/skeleton/SkeletonShape.vue.d.ts +3 -3
  57. package/dist/components/skeleton/index.d.ts +6 -6
  58. package/dist/components/space/Space.d.ts +1 -1
  59. package/dist/components/space/index.d.ts +3 -3
  60. package/dist/components/spin/Spin.d.ts +38 -0
  61. package/dist/components/spin/index.d.ts +30 -0
  62. package/dist/components/table/Table.d.ts +1 -1
  63. package/dist/components/table/index.d.ts +3 -3
  64. package/dist/components/tabs/Tabs.d.ts +1 -1
  65. package/dist/components/tabs/index.d.ts +3 -3
  66. package/dist/components/time-picker/TimePicker.vue.d.ts +3 -3
  67. package/dist/components/time-picker/index.d.ts +6 -6
  68. package/dist/components/tooltip/Tooltip.vue.d.ts +1 -1
  69. package/dist/components/tooltip/index.d.ts +3 -3
  70. package/dist/components/trigger/Trigger.d.ts +1 -1
  71. package/dist/components/trigger/index.d.ts +3 -3
  72. package/dist/components/upload/Upload.d.ts +372 -0
  73. package/dist/components/upload/context.d.ts +28 -0
  74. package/dist/components/upload/index.d.ts +656 -0
  75. package/dist/components/upload/interface.d.ts +110 -0
  76. package/dist/components/upload/props.d.ts +321 -0
  77. package/dist/components/upload/upload-list-item.d.ts +15 -0
  78. package/dist/components/upload/upload-list.d.ts +11 -0
  79. package/dist/components/upload/upload-picture-item.d.ts +20 -0
  80. package/dist/components/upload/upload-trigger.d.ts +8 -0
  81. package/dist/components/upload/utils.d.ts +48 -0
  82. package/dist/components/watermark/Watermark.d.ts +1 -1
  83. package/dist/components/watermark/index.d.ts +3 -3
  84. package/dist/es/_styles/palette-aliases.js +10 -4
  85. package/dist/es/_utils/color.js +73 -0
  86. package/dist/es/components/button/Button.js +2 -2
  87. package/dist/es/components/color-picker/ColorPicker.js +239 -0
  88. package/dist/es/components/color-picker/gradient-slider.js +79 -0
  89. package/dist/es/components/color-picker/index.js +8 -0
  90. package/dist/es/components/color-picker/panel.js +307 -0
  91. package/dist/es/components/color-picker/sv-panel.js +99 -0
  92. package/dist/es/components/dropdown/dropdown-panel.vue.js +17 -17
  93. package/dist/es/components/form-input/Input.js +7 -7
  94. package/dist/es/components/form-input/InputPassword.vue2.js +2 -2
  95. package/dist/es/components/form-input/InputSearch.js +2 -2
  96. package/dist/es/components/form-input-number/InputNumber.js +12 -12
  97. package/dist/es/components/heatmap/Heatmap.js +334 -0
  98. package/dist/es/components/heatmap/helpers/matrix.js +106 -0
  99. package/dist/es/components/heatmap/index.js +8 -0
  100. package/dist/es/components/image/Image.vue.js +55 -45
  101. package/dist/es/components/image/Image.vue2.js +113 -92
  102. package/dist/es/components/image/ImagePreview.vue.js +66 -53
  103. package/dist/es/components/image/ImagePreview.vue2.js +219 -171
  104. package/dist/es/components/image/ImagePreviewAction.js +12 -15
  105. package/dist/es/components/image/ImagePreviewGroup.vue.js +21 -20
  106. package/dist/es/components/image/ImagePreviewGroup.vue2.js +45 -39
  107. package/dist/es/components/image/hooks/use-image-drag.js +16 -14
  108. package/dist/es/components/index.js +123 -117
  109. package/dist/es/components/menu/sub-menu-pop.vue2.js +12 -12
  110. package/dist/es/components/network/Network.vue2.js +72 -72
  111. package/dist/es/components/network/utils.js +44 -35
  112. package/dist/es/components/pagination/Pagination.js +113 -104
  113. package/dist/es/components/pagination/page-item-ellipsis.vue.js +13 -12
  114. package/dist/es/components/pagination/page-item-ellipsis.vue2.js +19 -15
  115. package/dist/es/components/pagination/page-jumper.vue.js +13 -12
  116. package/dist/es/components/pagination/page-jumper.vue2.js +7 -4
  117. package/dist/es/components/pagination/page-options.vue.js +4 -3
  118. package/dist/es/components/pagination/page-options.vue2.js +17 -15
  119. package/dist/es/components/skeleton/Skeleton.vue.js +11 -9
  120. package/dist/es/components/skeleton/SkeletonLine.vue.js +9 -8
  121. package/dist/es/components/skeleton/SkeletonShape.vue.js +8 -7
  122. package/dist/es/components/spin/Spin.js +124 -60
  123. package/dist/es/components/table/Table.js +3 -1
  124. package/dist/es/components/trigger/Trigger.js +19 -19
  125. package/dist/es/components/upload/Upload.js +420 -0
  126. package/dist/es/components/upload/context.js +4 -0
  127. package/dist/es/components/upload/index.js +8 -0
  128. package/dist/es/components/upload/props.js +321 -0
  129. package/dist/es/components/upload/upload-list-item.js +138 -0
  130. package/dist/es/components/upload/upload-list.js +48 -0
  131. package/dist/es/components/upload/upload-picture-item.js +109 -0
  132. package/dist/es/components/upload/upload-trigger.js +89 -0
  133. package/dist/es/components/upload/utils.js +195 -0
  134. package/dist/es/icons/_self/empty-better.js +25 -8
  135. package/dist/es/icons/_self/upload-icons.js +103 -0
  136. package/dist/es/index.js +168 -162
  137. package/dist/es/locale/en-US.js +39 -1
  138. package/dist/es/locale/zh-CN.js +39 -1
  139. package/dist/es/style.css +1 -1
  140. package/dist/icons/_self/upload-icons.d.ts +523 -0
  141. package/dist/index.cjs +4 -4
  142. package/dist/index.umd.js +4 -4
  143. package/dist/locale/interface.d.ts +60 -0
  144. package/dist/style/base.css +1 -1
  145. package/dist/style/button.css +1 -1
  146. package/dist/style/color-picker.css +1 -0
  147. package/dist/style/color-picker.js +2 -0
  148. package/dist/style/date-picker.css +1 -1
  149. package/dist/style/empty.css +1 -1
  150. package/dist/style/form-checkbox.css +1 -1
  151. package/dist/style/form-input-tag.css +1 -1
  152. package/dist/style/form-input.css +1 -1
  153. package/dist/style/form-radio.css +1 -1
  154. package/dist/style/form-textarea.css +1 -1
  155. package/dist/style/form.css +1 -1
  156. package/dist/style/heatmap.css +1 -0
  157. package/dist/style/heatmap.js +2 -0
  158. package/dist/style/image.css +1 -1
  159. package/dist/style/menu.css +1 -1
  160. package/dist/style/pagination.css +1 -1
  161. package/dist/style/skeleton.css +1 -1
  162. package/dist/style/spin.css +1 -1
  163. package/dist/style/steps.css +1 -1
  164. package/dist/style/table.css +1 -1
  165. package/dist/style/upload.css +1 -0
  166. package/dist/style/upload.js +2 -0
  167. package/dist/style.css +1 -1
  168. package/dist/types.d.ts +3 -0
  169. package/package.json +1 -1
  170. package/volar.d.ts +3 -0
  171. package/dist/es/_hooks/use-popup-overflow-hidden.js +0 -29
@@ -0,0 +1,311 @@
1
+ import { PropType, SlotsType } from 'vue';
2
+ import { HeatmapCell, HeatmapData, HeatmapFirstDayOfWeek, HeatmapLoadingProps, HeatmapRange, HeatmapResolvedRange, HeatmapSize, HeatmapTooltipProps } from './interface';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ /**
5
+ * @zh 热力图数据
6
+ * @en Heatmap data
7
+ */
8
+ data: {
9
+ type: PropType<HeatmapData>;
10
+ default: () => never[];
11
+ };
12
+ /**
13
+ * @zh 要渲染的自然年;设置后优先于 startDate / endDate
14
+ * @en Year to render; takes priority over startDate / endDate
15
+ */
16
+ year: {
17
+ type: NumberConstructor;
18
+ };
19
+ /**
20
+ * @zh 自定义范围起始(时间戳或日期字符串)
21
+ * @en Custom range start (timestamp or date string)
22
+ */
23
+ startDate: {
24
+ type: PropType<HeatmapRange>;
25
+ };
26
+ /**
27
+ * @zh 自定义范围结束(时间戳或日期字符串)
28
+ * @en Custom range end (timestamp or date string)
29
+ */
30
+ endDate: {
31
+ type: PropType<HeatmapRange>;
32
+ };
33
+ /**
34
+ * @zh 由浅到深的色阶;不传使用内置主色阶
35
+ * @en Colors from light to dark; built-in primary ramp when omitted
36
+ */
37
+ activeColors: {
38
+ type: PropType<string[]>;
39
+ };
40
+ /**
41
+ * @zh 最小值(含无数据格)的颜色
42
+ * @en Color for the minimum value and cells without data
43
+ */
44
+ minimumColor: {
45
+ type: StringConstructor;
46
+ };
47
+ /**
48
+ * @zh 格子尺寸
49
+ * @en Cell size
50
+ * @values 'small', 'medium', 'large'
51
+ * @defaultValue 'medium'
52
+ */
53
+ size: {
54
+ type: PropType<HeatmapSize>;
55
+ };
56
+ /**
57
+ * @zh 一周的起始日(0 为周日)
58
+ * @en First day of the week (0 is Sunday)
59
+ * @defaultValue 0
60
+ */
61
+ firstDayOfWeek: {
62
+ type: PropType<HeatmapFirstDayOfWeek>;
63
+ default: number;
64
+ validator: (value: number) => boolean;
65
+ };
66
+ /**
67
+ * @zh 是否展示星期标签
68
+ * @en Whether to show weekday labels
69
+ * @defaultValue true
70
+ */
71
+ showWeekLabels: {
72
+ type: BooleanConstructor;
73
+ default: boolean;
74
+ };
75
+ /**
76
+ * @zh 是否展示月份标签
77
+ * @en Whether to show month labels
78
+ * @defaultValue true
79
+ */
80
+ showMonthLabels: {
81
+ type: BooleanConstructor;
82
+ default: boolean;
83
+ };
84
+ /**
85
+ * @zh 是否展示颜色图例
86
+ * @en Whether to show the color indicator
87
+ * @defaultValue true
88
+ */
89
+ showColorIndicator: {
90
+ type: BooleanConstructor;
91
+ default: boolean;
92
+ };
93
+ /**
94
+ * @zh 鼠标悬浮提示;传对象时透传给内部浮层
95
+ * @en Hover tooltip; pass an object to configure the inner popup
96
+ * @defaultValue true
97
+ */
98
+ tooltip: {
99
+ type: PropType<HeatmapTooltipProps>;
100
+ default: boolean;
101
+ };
102
+ /**
103
+ * @zh 加载中
104
+ * @en Loading state
105
+ * @defaultValue false
106
+ */
107
+ loading: {
108
+ type: PropType<HeatmapLoadingProps>;
109
+ default: boolean;
110
+ };
111
+ /**
112
+ * @zh 无障碍名称;设置后根节点带 role="img"
113
+ * @en Accessible name; adds role="img" to the root when set
114
+ */
115
+ ariaLabel: {
116
+ type: StringConstructor;
117
+ };
118
+ }>, {
119
+ t: (key: import('../..').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
120
+ className: {
121
+ block: string;
122
+ element: (className: string) => string;
123
+ modifier: (className: string) => string;
124
+ is: (className: string) => string;
125
+ };
126
+ mergedSize: import('vue').ComputedRef<"mini" | "small" | "medium" | "large">;
127
+ cells: import('vue').ComputedRef<HeatmapCell[]>;
128
+ rows: import('vue').ComputedRef<HeatmapCell[][]>;
129
+ range: import('vue').ComputedRef<HeatmapResolvedRange | null>;
130
+ gridStyle: import('vue').ComputedRef<{
131
+ '--x-heatmap-cell-size': string;
132
+ gridTemplateRows: string;
133
+ }>;
134
+ weekdayLabels: import('vue').ComputedRef<string[]>;
135
+ monthLabels: import('vue').ComputedRef<{
136
+ text: string;
137
+ colIndex: number;
138
+ }[]>;
139
+ activeCell: import('vue').ComputedRef<HeatmapCell | null>;
140
+ tooltipEnabled: import('vue').ComputedRef<boolean>;
141
+ tooltipStyle: import('vue').ComputedRef<{
142
+ left?: undefined;
143
+ top?: undefined;
144
+ } | {
145
+ left: string;
146
+ top: string;
147
+ }>;
148
+ cellColor: (cell: HeatmapCell) => string;
149
+ cellLabel: (cell: HeatmapCell) => string;
150
+ handleCellClick: (cell: HeatmapCell, ev: MouseEvent) => void;
151
+ throttledMove: {
152
+ (...args: any[]): void;
153
+ cancel(): void;
154
+ };
155
+ clearActive: () => void;
156
+ isInRange: (cell: HeatmapCell) => boolean;
157
+ colorPalette: import('vue').ComputedRef<string[]>;
158
+ slots: Readonly<{
159
+ tooltip?: ((props: unknown) => unknown) | undefined;
160
+ cell?: ((props: unknown) => unknown) | undefined;
161
+ footer?: (() => unknown) | undefined;
162
+ indicator?: ((props: {
163
+ colors: string[];
164
+ }) => unknown) | undefined;
165
+ 'indicator-leading-text'?: (() => unknown) | undefined;
166
+ 'indicator-trailing-text'?: (() => unknown) | undefined;
167
+ }>;
168
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
169
+ /**
170
+ * @zh 点击某个日期格时触发
171
+ * @en Emitted when a day cell is clicked
172
+ * @param {HeatmapCell} cell
173
+ * @param {MouseEvent} ev
174
+ */
175
+ cellClick: (cell: HeatmapCell, ev: MouseEvent) => true;
176
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
177
+ /**
178
+ * @zh 热力图数据
179
+ * @en Heatmap data
180
+ */
181
+ data: {
182
+ type: PropType<HeatmapData>;
183
+ default: () => never[];
184
+ };
185
+ /**
186
+ * @zh 要渲染的自然年;设置后优先于 startDate / endDate
187
+ * @en Year to render; takes priority over startDate / endDate
188
+ */
189
+ year: {
190
+ type: NumberConstructor;
191
+ };
192
+ /**
193
+ * @zh 自定义范围起始(时间戳或日期字符串)
194
+ * @en Custom range start (timestamp or date string)
195
+ */
196
+ startDate: {
197
+ type: PropType<HeatmapRange>;
198
+ };
199
+ /**
200
+ * @zh 自定义范围结束(时间戳或日期字符串)
201
+ * @en Custom range end (timestamp or date string)
202
+ */
203
+ endDate: {
204
+ type: PropType<HeatmapRange>;
205
+ };
206
+ /**
207
+ * @zh 由浅到深的色阶;不传使用内置主色阶
208
+ * @en Colors from light to dark; built-in primary ramp when omitted
209
+ */
210
+ activeColors: {
211
+ type: PropType<string[]>;
212
+ };
213
+ /**
214
+ * @zh 最小值(含无数据格)的颜色
215
+ * @en Color for the minimum value and cells without data
216
+ */
217
+ minimumColor: {
218
+ type: StringConstructor;
219
+ };
220
+ /**
221
+ * @zh 格子尺寸
222
+ * @en Cell size
223
+ * @values 'small', 'medium', 'large'
224
+ * @defaultValue 'medium'
225
+ */
226
+ size: {
227
+ type: PropType<HeatmapSize>;
228
+ };
229
+ /**
230
+ * @zh 一周的起始日(0 为周日)
231
+ * @en First day of the week (0 is Sunday)
232
+ * @defaultValue 0
233
+ */
234
+ firstDayOfWeek: {
235
+ type: PropType<HeatmapFirstDayOfWeek>;
236
+ default: number;
237
+ validator: (value: number) => boolean;
238
+ };
239
+ /**
240
+ * @zh 是否展示星期标签
241
+ * @en Whether to show weekday labels
242
+ * @defaultValue true
243
+ */
244
+ showWeekLabels: {
245
+ type: BooleanConstructor;
246
+ default: boolean;
247
+ };
248
+ /**
249
+ * @zh 是否展示月份标签
250
+ * @en Whether to show month labels
251
+ * @defaultValue true
252
+ */
253
+ showMonthLabels: {
254
+ type: BooleanConstructor;
255
+ default: boolean;
256
+ };
257
+ /**
258
+ * @zh 是否展示颜色图例
259
+ * @en Whether to show the color indicator
260
+ * @defaultValue true
261
+ */
262
+ showColorIndicator: {
263
+ type: BooleanConstructor;
264
+ default: boolean;
265
+ };
266
+ /**
267
+ * @zh 鼠标悬浮提示;传对象时透传给内部浮层
268
+ * @en Hover tooltip; pass an object to configure the inner popup
269
+ * @defaultValue true
270
+ */
271
+ tooltip: {
272
+ type: PropType<HeatmapTooltipProps>;
273
+ default: boolean;
274
+ };
275
+ /**
276
+ * @zh 加载中
277
+ * @en Loading state
278
+ * @defaultValue false
279
+ */
280
+ loading: {
281
+ type: PropType<HeatmapLoadingProps>;
282
+ default: boolean;
283
+ };
284
+ /**
285
+ * @zh 无障碍名称;设置后根节点带 role="img"
286
+ * @en Accessible name; adds role="img" to the root when set
287
+ */
288
+ ariaLabel: {
289
+ type: StringConstructor;
290
+ };
291
+ }>> & Readonly<{
292
+ onCellClick?: ((cell: HeatmapCell, ev: MouseEvent) => any) | undefined;
293
+ }>, {
294
+ loading: HeatmapLoadingProps;
295
+ data: HeatmapData;
296
+ tooltip: HeatmapTooltipProps;
297
+ firstDayOfWeek: HeatmapFirstDayOfWeek;
298
+ showWeekLabels: boolean;
299
+ showMonthLabels: boolean;
300
+ showColorIndicator: boolean;
301
+ }, SlotsType<{
302
+ tooltip?: (props: unknown) => unknown;
303
+ cell?: (props: unknown) => unknown;
304
+ footer?: () => unknown;
305
+ indicator?: (props: {
306
+ colors: string[];
307
+ }) => unknown;
308
+ 'indicator-leading-text'?: () => unknown;
309
+ 'indicator-trailing-text'?: () => unknown;
310
+ }>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
311
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import { dayjs } from '../../../_utils/date';
2
+ import { HeatmapCell, HeatmapData, HeatmapFirstDayOfWeek, HeatmapRange, HeatmapResolvedRange, HeatmapSize } from '../interface';
3
+ /**
4
+ * 热力图日期矩阵算法。
5
+ *
6
+ * 与 DatePicker 保持一致:按 `firstDayOfWeek` 对齐周首时使用 offset 公式,
7
+ * 不用 `dayjs().startOf('week')`——后者依赖 dayjs 全局 locale,
8
+ * 会和按 `firstDayOfWeek` 排布的网格错位(date-picker 已踩过此坑)。
9
+ */
10
+ /** 单元格边长(像素) */
11
+ export declare const CELL_SIZE: Record<HeatmapSize, number>;
12
+ /** 默认色阶档位数(不含 minimumColor 档) */
13
+ export declare const DEFAULT_COLOR_LEVELS = 5;
14
+ /** 该日期所在周的周首 */
15
+ export declare const startOfWeekByDay: (value: ReturnType<typeof dayjs>, firstDayOfWeek: HeatmapFirstDayOfWeek) => import('dayjs').Dayjs;
16
+ /**
17
+ * 解析要渲染的日期范围。
18
+ *
19
+ * 优先级:`year` > `startDate`/`endDate` > 从 `data` 推导(首尾 timestamp)。
20
+ * 返回的起止都已按 `firstDayOfWeek` 对齐到周首与周末,因此列数恒为整数。
21
+ */
22
+ export declare const resolveRange: (props: {
23
+ year?: number;
24
+ startDate?: number | string;
25
+ endDate?: number | string;
26
+ data?: HeatmapData;
27
+ }, firstDayOfWeek: HeatmapFirstDayOfWeek) => HeatmapResolvedRange | null;
28
+ /** 把数据按「当天零点时间戳」索引,渲染时 O(1) 命中 */
29
+ export declare const indexDataByDay: (data: HeatmapData) => Map<number, number | null>;
30
+ /**
31
+ * 值 → 色阶档位。
32
+ *
33
+ * 返回 `0` 表示该格使用 `minimumColor`(无数据或无效值);
34
+ * 有效值按 `[min, max]` 均分到 `1..levels`。当 max === min 时统一取最高档,
35
+ * 避免整片数据同值时全部落到最浅档。
36
+ */
37
+ export declare const getColorLevel: (value: number | null | undefined, min: number, max: number, levels: number) => number;
38
+ /** 数据中有效值的最小/最大值;无有效值时返回 null */
39
+ export declare const getValueExtent: (data: HeatmapData) => {
40
+ min: number;
41
+ max: number;
42
+ } | null;
43
+ /**
44
+ * 构建 7 行 × weeks 列的可渲染格子。
45
+ * 每格带时间戳、值、色阶档位与坐标;`outOfRange` 用于区分「补齐的首尾格」。
46
+ */
47
+ export declare const buildMatrix: (range: HeatmapResolvedRange, dataMap: Map<number, number | null>, extent: {
48
+ min: number;
49
+ max: number;
50
+ } | null, levels: number) => HeatmapCell[];
51
+ /** 每列的月份归属,供月标签定位(列内取一个有效日,整列同月) */
52
+ export declare const getMonthLabels: (range: HeatmapResolvedRange, cells: HeatmapCell[], monthLabelFormatter: (value: ReturnType<typeof dayjs>) => string) => {
53
+ text: string;
54
+ colIndex: number;
55
+ }[];
56
+ /** 该格是否落在用户请求的原始范围内(用于视觉上弱化补齐格) */
57
+ export declare const isCellInRequestedRange: (cell: HeatmapCell, from: ReturnType<typeof dayjs>, to: ReturnType<typeof dayjs>) => boolean;
58
+ export type { HeatmapRange };