@xpyjs/gantt-core 0.0.1-alpha.2 → 0.0.1-alpha.4
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.
- package/dist/style.css +1 -0
- package/dist/x-gantt.js +6442 -0
- package/dist/x-gantt.umd.cjs +18 -0
- package/package.json +1 -1
- package/types/GanttContext.d.ts +33 -0
- package/types/XGantt.d.ts +248 -0
- package/types/event/index.d.ts +75 -0
- package/types/index.d.ts +13 -0
- package/types/logo.d.ts +2 -0
- package/types/models/Baseline.d.ts +37 -0
- package/types/models/Task.d.ts +77 -0
- package/types/rendering/RenderScheduler.d.ts +93 -0
- package/types/rendering/Renderer.d.ts +52 -0
- package/types/rendering/chart/ChartBaseline.d.ts +50 -0
- package/types/rendering/chart/ChartBody.d.ts +102 -0
- package/types/rendering/chart/ChartGrid.d.ts +37 -0
- package/types/rendering/chart/ChartHeader.d.ts +54 -0
- package/types/rendering/chart/ChartHoliday.d.ts +38 -0
- package/types/rendering/chart/ChartLink.d.ts +87 -0
- package/types/rendering/chart/ChartRow.d.ts +17 -0
- package/types/rendering/chart/ChartSlider.d.ts +58 -0
- package/types/rendering/chart/ChartToday.d.ts +31 -0
- package/types/rendering/chart/ChartWeekend.d.ts +43 -0
- package/types/rendering/chart/Pattern.d.ts +19 -0
- package/types/rendering/chart/index.d.ts +34 -0
- package/types/rendering/other/GuideLine.d.ts +50 -0
- package/types/rendering/other/MiddleResizeLine.d.ts +15 -0
- package/types/rendering/scrollbar/index.d.ts +132 -0
- package/types/rendering/table/Checkbox.d.ts +39 -0
- package/types/rendering/table/TableBody.d.ts +25 -0
- package/types/rendering/table/TableCell.d.ts +43 -0
- package/types/rendering/table/TableHeader.d.ts +13 -0
- package/types/rendering/table/TableHeaderCell.d.ts +20 -0
- package/types/rendering/table/TableHeaderGroup.d.ts +15 -0
- package/types/rendering/table/TableRow.d.ts +57 -0
- package/types/rendering/table/index.d.ts +15 -0
- package/types/store/ColumnManager.d.ts +81 -0
- package/types/store/DataManager.d.ts +132 -0
- package/types/store/OptionManager.d.ts +12 -0
- package/types/store/TimeAxis.d.ts +88 -0
- package/types/store/index.d.ts +21 -0
- package/types/types/baseline.d.ts +16 -0
- package/types/types/chart.d.ts +59 -0
- package/types/types/event.d.ts +29 -0
- package/types/types/global.d.ts +9 -0
- package/types/types/index.d.ts +26 -0
- package/types/types/link.d.ts +23 -0
- package/types/types/options.d.ts +827 -0
- package/types/types/render.d.ts +26 -0
- package/types/types/styles.d.ts +37 -0
- package/types/types/table.d.ts +139 -0
- package/types/utils/color.d.ts +148 -0
- package/types/utils/helpers.d.ts +47 -0
- package/types/utils/id.d.ts +1 -0
- package/types/utils/logger.d.ts +88 -0
- package/types/utils/size.d.ts +7 -0
- package/types/utils/time.d.ts +9 -0
|
@@ -0,0 +1,827 @@
|
|
|
1
|
+
import { EmitData, EmitBaseline } from ".";
|
|
2
|
+
import { IChartOptions } from "./chart";
|
|
3
|
+
import { ILink } from "./link";
|
|
4
|
+
import { IPattern } from "./styles";
|
|
5
|
+
import { ITableOptions } from "./table";
|
|
6
|
+
|
|
7
|
+
export type XGanttUnit = "hour" | "day" | "week" | "month" | "quarter";
|
|
8
|
+
export type TaskType = "task" | "milestone" | "summary";
|
|
9
|
+
|
|
10
|
+
export interface IGanttOptions {
|
|
11
|
+
/** 日志 level。 默认 info */
|
|
12
|
+
logLevel?: "debug" | "info" | "warn" | "error" | "none";
|
|
13
|
+
|
|
14
|
+
/** 源数据 */
|
|
15
|
+
data: any[];
|
|
16
|
+
|
|
17
|
+
/** 字段映射配置 */
|
|
18
|
+
fields: {
|
|
19
|
+
/** ID字段 */
|
|
20
|
+
id: string;
|
|
21
|
+
|
|
22
|
+
/** 开始时间字段 */
|
|
23
|
+
startTime: string;
|
|
24
|
+
|
|
25
|
+
/** 结束时间字段 */
|
|
26
|
+
endTime: string;
|
|
27
|
+
|
|
28
|
+
/** 名称字段 */
|
|
29
|
+
name: string;
|
|
30
|
+
|
|
31
|
+
/** 进度字段 */
|
|
32
|
+
progress: string;
|
|
33
|
+
|
|
34
|
+
/** 子项字段 */
|
|
35
|
+
children: string;
|
|
36
|
+
|
|
37
|
+
/** 任务类型字段 */
|
|
38
|
+
type: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** 关联配置 */
|
|
42
|
+
links: {
|
|
43
|
+
/**
|
|
44
|
+
* 关联数据集合
|
|
45
|
+
*
|
|
46
|
+
* - 每一条数据都需要指定自己的 key 作为唯一 id,默认 'id'。 XGantt 内部不会修改它,仅用于修改数据与本地数据对比更新使用,否则无法更新。字段名称除指定字段外,任意使用,可以通过 key 来配置
|
|
47
|
+
* - 每条数据应当具有正确的 `from`、`to` 属性,这样就可以保证关连线的位置。每一个 `from`、`to` 属性都应当绑定正确的数据 `id`,如果绑定不正确,关连线无法渲染
|
|
48
|
+
* - 支持单独设置每一条连线。除明确标明不支持单独配置的属性外,大部分属性均支持在 data 中单独配置。
|
|
49
|
+
*
|
|
50
|
+
* @notice 使用 links 功能之前,确保对应源数据中有 `id`(id 字段可以自定义) 字段
|
|
51
|
+
* @notice 当 `from` 和 `to` 一样时,不会连线。
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const data = [
|
|
55
|
+
* {
|
|
56
|
+
* from: 1, // id 为 1 的数据
|
|
57
|
+
* to: 2 // id 为 2 的数据
|
|
58
|
+
* }
|
|
59
|
+
* ]
|
|
60
|
+
*/
|
|
61
|
+
data: ILink[];
|
|
62
|
+
/** 指定唯一 id 的字段。 默认 'id'。 如果没有找到对应字段,可能会导致关联线无法查找/更新/删除 */
|
|
63
|
+
key: string;
|
|
64
|
+
/** 是否展示关联线。不支持单独配置 */
|
|
65
|
+
show: boolean;
|
|
66
|
+
/** 创建相关设置 */
|
|
67
|
+
create: {
|
|
68
|
+
/**
|
|
69
|
+
* 是否允许创建连线。
|
|
70
|
+
*
|
|
71
|
+
* @default false
|
|
72
|
+
*
|
|
73
|
+
* @description 开启时,所有节点将按照 from 与 to 属性规则允许创建连线
|
|
74
|
+
*/
|
|
75
|
+
enabled: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 创建点的展示方式
|
|
78
|
+
*
|
|
79
|
+
* @default 'hover'
|
|
80
|
+
*
|
|
81
|
+
* - `always` - 始终展示
|
|
82
|
+
* - `hover` - 鼠标悬停在任务条时展示
|
|
83
|
+
*/
|
|
84
|
+
mode: "always" | "hover";
|
|
85
|
+
/** 创建点的颜色 */
|
|
86
|
+
color?: string;
|
|
87
|
+
/** 透明度 */
|
|
88
|
+
opacity?: number;
|
|
89
|
+
/** 内圈空心半径。 默认 3 */
|
|
90
|
+
radius: number;
|
|
91
|
+
/** 线条宽度。 默认 2 */
|
|
92
|
+
width: number;
|
|
93
|
+
/**
|
|
94
|
+
* 是否允许节点作为起始点创建连线。允许开启后,将可以通过创建按钮去链接被允许的任务节点
|
|
95
|
+
*
|
|
96
|
+
* @default true
|
|
97
|
+
*
|
|
98
|
+
* @argument {true} - 允许创建连线
|
|
99
|
+
* @argument {false} - 不允许创建连线
|
|
100
|
+
* @argument {"S"} - 允许以 S,也就是左侧起始点作为起点创建连线
|
|
101
|
+
* @argument {"F"} - 允许以 F,也就是右侧结束点作为起点创建连线
|
|
102
|
+
*/
|
|
103
|
+
from: boolean | "S" | "F" | ((row: EmitData) => boolean | "S" | "F");
|
|
104
|
+
/**
|
|
105
|
+
* 是否允许节点被链接。如果允许,可以将当前任务节点作为被连接点
|
|
106
|
+
*
|
|
107
|
+
* @default true
|
|
108
|
+
*
|
|
109
|
+
* @argument {true} - 允许创建连线
|
|
110
|
+
* @argument {false} - 不允许创建连线
|
|
111
|
+
* @argument {"S"} - 允许以 S,也就是左侧起始点作为终点创建连线
|
|
112
|
+
* @argument {"F"} - 允许以 F,也就是右侧结束点作为终点创建连线
|
|
113
|
+
*/
|
|
114
|
+
to:
|
|
115
|
+
| boolean
|
|
116
|
+
| "S"
|
|
117
|
+
| "F"
|
|
118
|
+
| ((row: EmitData, from: EmitData) => boolean | "S" | "F");
|
|
119
|
+
};
|
|
120
|
+
/** 默认关连线的颜色。每一条线可以单独配置后覆盖当前颜色。默认主色 */
|
|
121
|
+
color?: string;
|
|
122
|
+
/**
|
|
123
|
+
* 转角到起始或结束点的距离。它指起始点或结束点到转向点的距离,防止出现连线初始就转向,目视不好定位的情况。
|
|
124
|
+
*
|
|
125
|
+
* @default 20
|
|
126
|
+
*/
|
|
127
|
+
distance: number;
|
|
128
|
+
/** 线条的起点/终点位置与任务条的距离。 默认 5 */
|
|
129
|
+
gap: number;
|
|
130
|
+
/** 线条的虚线设定。 默认 [6, 3] */
|
|
131
|
+
dash: number[];
|
|
132
|
+
/** 线条的宽度。 默认 1 */
|
|
133
|
+
width: number;
|
|
134
|
+
/** 箭头设置 */
|
|
135
|
+
arrow: {
|
|
136
|
+
/** 箭头颜色。 可单独配置,默认继承 link 的颜色 */
|
|
137
|
+
color?: string;
|
|
138
|
+
/** 箭头宽度 */
|
|
139
|
+
width: number;
|
|
140
|
+
/** 箭头高度 */
|
|
141
|
+
height: number;
|
|
142
|
+
};
|
|
143
|
+
/** 原点大小。 默认 3 */
|
|
144
|
+
radius: number;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/** 基线配置 */
|
|
148
|
+
baselines: {
|
|
149
|
+
/**
|
|
150
|
+
* 基线数据集合
|
|
151
|
+
*
|
|
152
|
+
* - 每条基线数据需要包含对应任务的关联ID
|
|
153
|
+
* - 基线数据应包含开始时间、结束时间等信息
|
|
154
|
+
* - 支持多条基线数据对应同一个任务
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* const baselines = [
|
|
158
|
+
* {
|
|
159
|
+
* id: 'baseline_1',
|
|
160
|
+
* taskId: 'task_1', // 对应任务的ID
|
|
161
|
+
* startTime: '2024-01-01',
|
|
162
|
+
* endTime: '2024-01-15',
|
|
163
|
+
* name: '原计划'
|
|
164
|
+
* }
|
|
165
|
+
* ]
|
|
166
|
+
*/
|
|
167
|
+
data: any[];
|
|
168
|
+
|
|
169
|
+
/** 是否展示基线 */
|
|
170
|
+
show: boolean;
|
|
171
|
+
|
|
172
|
+
/** 指定关联任务 id 的字段。默认 'taskId' */
|
|
173
|
+
taskKey: string;
|
|
174
|
+
|
|
175
|
+
/** 数据字段支持单独配置。默认与 data 保持一致,共享 fields 配置。 */
|
|
176
|
+
fields: {
|
|
177
|
+
/** 开始时间字段 */
|
|
178
|
+
startTime: string;
|
|
179
|
+
/** 结束时间字段 */
|
|
180
|
+
endTime: string;
|
|
181
|
+
/** 名称字段 */
|
|
182
|
+
name: string;
|
|
183
|
+
/** 基线数据 id */
|
|
184
|
+
id: string;
|
|
185
|
+
/** 禁用高亮对比的字段。该字段默认值为 true */
|
|
186
|
+
highlight: string;
|
|
187
|
+
/** 指定指示器的字段 */
|
|
188
|
+
target: string;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* 基线展示形式
|
|
193
|
+
*
|
|
194
|
+
* @param shadow - 以阴影形式展示基线
|
|
195
|
+
* @param line - 以线条形式展示基线
|
|
196
|
+
*
|
|
197
|
+
* @description 'line'
|
|
198
|
+
*/
|
|
199
|
+
mode: 'shadow' | 'line';
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* 基线条高度
|
|
203
|
+
*
|
|
204
|
+
* @description 当 mode 为 'shadow' 时,默认与 bar 的高度一致;
|
|
205
|
+
* @description 当 mode 为 'line' 时,默认 5px
|
|
206
|
+
*/
|
|
207
|
+
height?: number | string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* 与 bar 的偏移展示量。
|
|
211
|
+
*
|
|
212
|
+
* @description 为保证可视化的时间不会出现偏移,只在 y 轴上做偏移
|
|
213
|
+
* @description 正数向下偏移,负数向上偏移
|
|
214
|
+
* @description 在 'line' 模式下使用 offset,会影响 position 的最终位置
|
|
215
|
+
*/
|
|
216
|
+
offset?: number;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* 基线条相对任务条的位置。默认 'bottom'
|
|
220
|
+
*
|
|
221
|
+
* @description 仅当 mode 为 'line' 时有效。
|
|
222
|
+
*/
|
|
223
|
+
position: 'top' | 'bottom' | 'center';
|
|
224
|
+
|
|
225
|
+
/** 基线条背景颜色。默认 #999 */
|
|
226
|
+
backgroundColor: string;
|
|
227
|
+
|
|
228
|
+
/** 基线条透明度。默认 0.6 */
|
|
229
|
+
opacity: number;
|
|
230
|
+
|
|
231
|
+
/** 基线条圆角。默认 2 */
|
|
232
|
+
radius: number | number[];
|
|
233
|
+
|
|
234
|
+
/** 基线标签配置 */
|
|
235
|
+
label: {
|
|
236
|
+
/** 是否显示标签。默认 false */
|
|
237
|
+
show: boolean;
|
|
238
|
+
/** 标签内容。默认使用 name 字段 */
|
|
239
|
+
field?: string;
|
|
240
|
+
/** 强制显示标签
|
|
241
|
+
*
|
|
242
|
+
* @description 当基线过小时,系统会自动隐藏。如果你需要强制显示标签,可以设置为 true,不过可能文本显示会很奇怪,建议配合 fontSize 使用。
|
|
243
|
+
*/
|
|
244
|
+
forceDisplay?: boolean;
|
|
245
|
+
/** 标签文字颜色。默认 #666 */
|
|
246
|
+
color: string;
|
|
247
|
+
/** 标签字体大小。默认 10 */
|
|
248
|
+
fontSize: number;
|
|
249
|
+
/** 标签字体。默认 'Arial' */
|
|
250
|
+
fontFamily: string;
|
|
251
|
+
/** 标签位置。默认 'right' */
|
|
252
|
+
position: 'left' | 'right' | 'center';
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* 基线对比分析配置
|
|
257
|
+
*
|
|
258
|
+
* @description 如果一个任务配置了多个基线,默认情况下:
|
|
259
|
+
* - 1、 高亮状态是和所有基线匹配。如果不希望某条基线进行对比,请在基线数据中添加 `highlight: false` 字段。
|
|
260
|
+
* - 2、 指示器只会和第一个基线进行匹配。如果需要指定对比基线,请在基线数据中添加 `target: true` 字段。
|
|
261
|
+
*/
|
|
262
|
+
compare: {
|
|
263
|
+
/** 是否启用对比功能。默认 false */
|
|
264
|
+
enabled: boolean;
|
|
265
|
+
/** 时间容差(天)。在此范围内认为是准时完成。默认 0.5 */
|
|
266
|
+
tolerance: number;
|
|
267
|
+
/** 差异显示模式 */
|
|
268
|
+
mode: 'highlight' | 'indicator' | 'both';
|
|
269
|
+
/** 以何种基准展示对比。基线高亮只会以一种(起始/结束)基线进行对比。默认以结束时间为基准('end') */
|
|
270
|
+
target: 'start' | 'end'
|
|
271
|
+
|
|
272
|
+
/** 超期任务的高亮配置 */
|
|
273
|
+
delayed: {
|
|
274
|
+
/** 高亮颜色。默认 #ff4444 */
|
|
275
|
+
backgroundColor: string;
|
|
276
|
+
/** 高亮颜色的透明度。默认 0.8 */
|
|
277
|
+
opacity: number;
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
/** 提前完成任务的高亮配置 */
|
|
281
|
+
ahead: {
|
|
282
|
+
/** 高亮颜色。默认 #44ff44 */
|
|
283
|
+
backgroundColor: string;
|
|
284
|
+
/** 高亮颜色透明度。默认 0.8 */
|
|
285
|
+
opacity: number;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* 差异指示器配置
|
|
290
|
+
*
|
|
291
|
+
* @description 展示在任务条左右两侧,用于显示与基线时间差异的内容
|
|
292
|
+
*/
|
|
293
|
+
indicator: {
|
|
294
|
+
/**
|
|
295
|
+
* 是否展示指示器
|
|
296
|
+
*
|
|
297
|
+
* @default true
|
|
298
|
+
*
|
|
299
|
+
* @description 可以配置展示起始、结束,或者同时展示。
|
|
300
|
+
* @description true 与 'both' 效果一致,两侧都会展示。
|
|
301
|
+
*/
|
|
302
|
+
show: boolean | 'start' | 'end' | 'both';
|
|
303
|
+
/** 显示位置。当前支持任务条两侧的上端或者下端 */
|
|
304
|
+
position: 'top' | 'bottom';
|
|
305
|
+
/** 超期指示器大小。默认 6 */
|
|
306
|
+
size: number;
|
|
307
|
+
/** 标签字体大小。默认 10 */
|
|
308
|
+
fontSize: number;
|
|
309
|
+
/** 标签字体。默认 'Arial' */
|
|
310
|
+
fontFamily: string;
|
|
311
|
+
|
|
312
|
+
/** 提前任务指示器配置 */
|
|
313
|
+
ahead: {
|
|
314
|
+
/** 任务提前,是否显示指示器。默认展示 */
|
|
315
|
+
show: boolean;
|
|
316
|
+
/** 显示文本。如果不需要展示文本,请设置为空字符 */
|
|
317
|
+
text?: string | ((diff: number, row: EmitBaseline) => string);
|
|
318
|
+
/** 提前指示器颜色。默认 #1baf1b */
|
|
319
|
+
color: string;
|
|
320
|
+
/** 高亮颜色透明度 */
|
|
321
|
+
opacity: number;
|
|
322
|
+
};
|
|
323
|
+
/** 超期任务指示器配置 */
|
|
324
|
+
delayed: {
|
|
325
|
+
/** 任务超期,是否显示指示器。默认展示 */
|
|
326
|
+
show: boolean;
|
|
327
|
+
/** 显示文本。如果不需要展示文本,请设置为空字符 */
|
|
328
|
+
text?: string | ((diff: number, row: EmitBaseline) => string);
|
|
329
|
+
/** 超期指示器颜色。默认 #af1b1b */
|
|
330
|
+
color: string;
|
|
331
|
+
/** 高亮颜色透明度 */
|
|
332
|
+
opacity: number;
|
|
333
|
+
};
|
|
334
|
+
/** 按时任务指示器配置 */
|
|
335
|
+
ontime: {
|
|
336
|
+
/** 任务正常,是否显示指示器。默认不展示 */
|
|
337
|
+
show: boolean;
|
|
338
|
+
/** 显示文本。如果不需要展示文本,请设置为空字符 */
|
|
339
|
+
text?: string | ((diff: number, row: EmitBaseline) => string);
|
|
340
|
+
/** 按时的指示器颜色。默认 #999 */
|
|
341
|
+
color: string;
|
|
342
|
+
/** 高亮颜色透明度 */
|
|
343
|
+
opacity: number;
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* 里程碑配置
|
|
351
|
+
*
|
|
352
|
+
* @description 里程碑是一个特殊的任务类型,通常用于标记项目中的重要节点或事件。它没有持续时间,默认只会使用开始时间
|
|
353
|
+
*/
|
|
354
|
+
milestone: {
|
|
355
|
+
/**
|
|
356
|
+
* 启用里程碑模式
|
|
357
|
+
*
|
|
358
|
+
* @description 默认情况下,所有任务都是普通任务模式。启用里程碑模式后,会将标记为里程碑的任务展示为特殊形状。
|
|
359
|
+
*/
|
|
360
|
+
show: boolean;
|
|
361
|
+
/** 里程碑形状。默认 'diamond' */
|
|
362
|
+
shape: 'diamond' | 'star' | 'triangle' | 'circle' | ((row: EmitData) => 'diamond' | 'star' | 'triangle' | 'circle');
|
|
363
|
+
/** 形状大小。默认形状半径与 bar 大小一致。但最大不会超过整行高度 */
|
|
364
|
+
size?: number | ((row: EmitData) => number | undefined);
|
|
365
|
+
/** 里程碑颜色。默认与 bar 颜色保持一致 */
|
|
366
|
+
color?: string | ((row: EmitData) => string | undefined);
|
|
367
|
+
/** 边框样式配置 */
|
|
368
|
+
border: {
|
|
369
|
+
width?: number | ((row: EmitData) => number | undefined);
|
|
370
|
+
color?: string | ((row: EmitData) => string | undefined);
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
/** 里程碑标签配置 */
|
|
374
|
+
label: {
|
|
375
|
+
/** 是否显示里程碑标签。默认 false */
|
|
376
|
+
show: boolean | ((row: EmitData) => boolean);
|
|
377
|
+
/** 标签文本 */
|
|
378
|
+
text: string | ((row: EmitData) => string);
|
|
379
|
+
/** 标签位置。默认 'top-right' */
|
|
380
|
+
position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | ((row: EmitData) => 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right');
|
|
381
|
+
/** 标签字体大小。默认 12 */
|
|
382
|
+
fontSize: number | ((row: EmitData) => number);
|
|
383
|
+
/** 标签字体粗细 */
|
|
384
|
+
fontFamily: string | ((row: EmitData) => string);
|
|
385
|
+
/** 标签颜色。默认与里程碑的颜色保持一致 */
|
|
386
|
+
color?: string | ((row: EmitData) => string | undefined);
|
|
387
|
+
};
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
/** 主色调。默认 #eca710 */
|
|
391
|
+
primaryColor: string;
|
|
392
|
+
|
|
393
|
+
/** 甘特图宽度 */
|
|
394
|
+
width?: number;
|
|
395
|
+
|
|
396
|
+
/** 甘特图高度 */
|
|
397
|
+
height?: number;
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* 日期格式化格式。所有展示日期的地方都使用该格式化格式
|
|
401
|
+
*
|
|
402
|
+
* @default 'YYYY-MM-DD HH:mm:ss'
|
|
403
|
+
*
|
|
404
|
+
* @description 该格式将用于所有日期字段的格式化。至少需要格式化到指定单位的粒度,否则会丢失精度,导致出现渲染异常。
|
|
405
|
+
*
|
|
406
|
+
* @see 参考 dayjs 的 {@link https://day.js.org/docs/en/display/format|format} 文档
|
|
407
|
+
*/
|
|
408
|
+
dateFormat: string;
|
|
409
|
+
|
|
410
|
+
/** 展开配置 */
|
|
411
|
+
expand: {
|
|
412
|
+
/**
|
|
413
|
+
* 是否展示展开
|
|
414
|
+
*
|
|
415
|
+
* @default true
|
|
416
|
+
*
|
|
417
|
+
* @description 如果不展示展开按钮,则所有数据都将展开,不会被收起
|
|
418
|
+
*/
|
|
419
|
+
show: boolean;
|
|
420
|
+
/**
|
|
421
|
+
* 是否默认展开
|
|
422
|
+
*
|
|
423
|
+
* @default true
|
|
424
|
+
*/
|
|
425
|
+
enabled: boolean;
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
/** 选择配置 */
|
|
429
|
+
selection: {
|
|
430
|
+
/** 是否启用选择功能 */
|
|
431
|
+
enabled: boolean;
|
|
432
|
+
/**
|
|
433
|
+
* 右键点击时是否包含自身
|
|
434
|
+
*
|
|
435
|
+
* @default true
|
|
436
|
+
*
|
|
437
|
+
* @description 如果禁用,则右键点击选择框时,不会影响自身的选择,有时候这会反直觉。
|
|
438
|
+
*/
|
|
439
|
+
includeSelf: boolean;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* 时间刻度
|
|
444
|
+
*
|
|
445
|
+
* @default 'day'
|
|
446
|
+
*/
|
|
447
|
+
unit: XGanttUnit;
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* 显示语言。配置参考 {@link https://day.js.org/docs/en/i18n/i18n|dayjs i18n}
|
|
451
|
+
*
|
|
452
|
+
* @default 'en'
|
|
453
|
+
*/
|
|
454
|
+
locale: string;
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* 当鼠标选停在具有起止时间的任务行上时,是否高亮对应的表头时间。
|
|
458
|
+
*
|
|
459
|
+
* @description 仅针对单位为 `day` 时生效
|
|
460
|
+
*/
|
|
461
|
+
highlight?: boolean;
|
|
462
|
+
|
|
463
|
+
/** 表格配置 */
|
|
464
|
+
table: ITableOptions;
|
|
465
|
+
|
|
466
|
+
/** 图表配置 */
|
|
467
|
+
chart: IChartOptions;
|
|
468
|
+
|
|
469
|
+
/** 整体的边框,以及纵向网格线 */
|
|
470
|
+
border: {
|
|
471
|
+
/** 是否展示边框 */
|
|
472
|
+
show?: boolean;
|
|
473
|
+
/** 边框颜色。默认 #e5e5e5 */
|
|
474
|
+
color: string;
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
/** 头部配置 */
|
|
478
|
+
header: {
|
|
479
|
+
/**
|
|
480
|
+
* 表头高度。 >= 30
|
|
481
|
+
*
|
|
482
|
+
* @default 80
|
|
483
|
+
*/
|
|
484
|
+
height: number;
|
|
485
|
+
/** 背景颜色。默认使用主色调 */
|
|
486
|
+
backgroundColor?: string;
|
|
487
|
+
/** 文字颜色 */
|
|
488
|
+
color: string;
|
|
489
|
+
/**
|
|
490
|
+
* 文字大小
|
|
491
|
+
*
|
|
492
|
+
* @default 14
|
|
493
|
+
*/
|
|
494
|
+
fontSize: number;
|
|
495
|
+
/**
|
|
496
|
+
* 文字粗细
|
|
497
|
+
*
|
|
498
|
+
* @default 600
|
|
499
|
+
*/
|
|
500
|
+
fontWeight: number | string;
|
|
501
|
+
/**
|
|
502
|
+
* 文字字体
|
|
503
|
+
*
|
|
504
|
+
* @default 'Arial'
|
|
505
|
+
*/
|
|
506
|
+
fontFamily: string;
|
|
507
|
+
};
|
|
508
|
+
|
|
509
|
+
/** 行属性配置 */
|
|
510
|
+
row: {
|
|
511
|
+
/**
|
|
512
|
+
* 行高。 [20, 70]
|
|
513
|
+
*
|
|
514
|
+
* @default 30
|
|
515
|
+
*/
|
|
516
|
+
height: number;
|
|
517
|
+
/**
|
|
518
|
+
* 不同层级行的缩进宽度
|
|
519
|
+
*
|
|
520
|
+
* @default 16
|
|
521
|
+
*/
|
|
522
|
+
indent: number;
|
|
523
|
+
/** 背景颜色。数组可以根据行层级选择指定样式 */
|
|
524
|
+
backgroundColor?: string | string[] | ((row: EmitData) => string);
|
|
525
|
+
/** 悬停行样式 */
|
|
526
|
+
hover: {
|
|
527
|
+
/**
|
|
528
|
+
* 悬停的背景颜色
|
|
529
|
+
*
|
|
530
|
+
* @default #000
|
|
531
|
+
*/
|
|
532
|
+
backgroundColor: string;
|
|
533
|
+
/**
|
|
534
|
+
* 透明度
|
|
535
|
+
*
|
|
536
|
+
* @default 0.05
|
|
537
|
+
*/
|
|
538
|
+
opacity: number;
|
|
539
|
+
};
|
|
540
|
+
/** 选择行样式 */
|
|
541
|
+
select: {
|
|
542
|
+
/**
|
|
543
|
+
* 背景颜色
|
|
544
|
+
*
|
|
545
|
+
* @default #000
|
|
546
|
+
*/
|
|
547
|
+
backgroundColor: string;
|
|
548
|
+
/**
|
|
549
|
+
* 透明度
|
|
550
|
+
*
|
|
551
|
+
* @default 0.1
|
|
552
|
+
*/
|
|
553
|
+
opacity: number;
|
|
554
|
+
};
|
|
555
|
+
};
|
|
556
|
+
|
|
557
|
+
/** 任务条配置 */
|
|
558
|
+
bar: {
|
|
559
|
+
/**
|
|
560
|
+
* 任务条高度。支持百分比,将按 row 的 height 计算
|
|
561
|
+
*
|
|
562
|
+
* @default 20
|
|
563
|
+
*/
|
|
564
|
+
height: number | string | ((row: EmitData) => string | number);
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* 是否显示任务条
|
|
568
|
+
*
|
|
569
|
+
* @default true
|
|
570
|
+
*/
|
|
571
|
+
show?: boolean | ((row: EmitData) => boolean);
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* 显示在任务条上的字段内容。如果配置了 label,则会显示 label 的内容。支持点语法对嵌套字段进行访问
|
|
575
|
+
*/
|
|
576
|
+
field?: string;
|
|
577
|
+
/**
|
|
578
|
+
* 显示在任务条上的文本内容。它的优先级比 field 高
|
|
579
|
+
*/
|
|
580
|
+
label?: string | ((row: EmitData) => string);
|
|
581
|
+
/** 任务条移动规则 */
|
|
582
|
+
move: {
|
|
583
|
+
/** 允许移动移动/缩放 */
|
|
584
|
+
enabled?: boolean | ((row: EmitData) => boolean);
|
|
585
|
+
/**
|
|
586
|
+
* 是否锁定时间范围。如果锁定,拖动将无法超出范围
|
|
587
|
+
*/
|
|
588
|
+
lock?: boolean;
|
|
589
|
+
/**
|
|
590
|
+
* 是否允许左右分别单独移动。移动规则同整体效果
|
|
591
|
+
*/
|
|
592
|
+
single?: {
|
|
593
|
+
/** 是否允许左移 */
|
|
594
|
+
left?: boolean | ((row: EmitData) => boolean);
|
|
595
|
+
/** 是否允许右移 */
|
|
596
|
+
right?: boolean | ((row: EmitData) => boolean);
|
|
597
|
+
/**
|
|
598
|
+
* 左右移动手柄的背景颜色
|
|
599
|
+
*
|
|
600
|
+
* @default bar.backgroundColor.brighten(30)
|
|
601
|
+
*/
|
|
602
|
+
backgroundColor?: string;
|
|
603
|
+
/** 左右移动手柄的透明度 */
|
|
604
|
+
opacity?: number;
|
|
605
|
+
/**
|
|
606
|
+
* 允许给手柄设置一个 svg 图标。设为 null 可以置空。
|
|
607
|
+
*
|
|
608
|
+
* @description 仅支持 svg 图标,`<svg>...</svg>` 的字符串形式。
|
|
609
|
+
*/
|
|
610
|
+
icon?: string | null;
|
|
611
|
+
};
|
|
612
|
+
/**
|
|
613
|
+
* 是否按单位移动
|
|
614
|
+
* @description 启用后,移动每次最小为一格,也就是一格最小单位宽度
|
|
615
|
+
*/
|
|
616
|
+
byUnit: boolean;
|
|
617
|
+
/** 配置联动 */
|
|
618
|
+
link: {
|
|
619
|
+
/**
|
|
620
|
+
* 子级联动配置
|
|
621
|
+
*
|
|
622
|
+
* - none: 不联动
|
|
623
|
+
* - scale: 按比例缩放。按照伸缩比例进行联动
|
|
624
|
+
* - fixed: 按固定值缩放。仅针对两边超出进行缩放
|
|
625
|
+
*/
|
|
626
|
+
child: "none" | "scale" | "fixed";
|
|
627
|
+
/**
|
|
628
|
+
* 父级联动配置
|
|
629
|
+
*
|
|
630
|
+
* - none: 不联动
|
|
631
|
+
* - strict: 严格在父级范围内
|
|
632
|
+
* - expand: 父级跟随极值扩展
|
|
633
|
+
*/
|
|
634
|
+
parent: "none" | "strict" | "expand";
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
/** 背景颜色 */
|
|
638
|
+
backgroundColor?: string | ((row: EmitData) => string | undefined);
|
|
639
|
+
/** 圆角 */
|
|
640
|
+
radius?: number | number[] | ((row: EmitData) => number | number[] | undefined);
|
|
641
|
+
/** 阴影颜色 */
|
|
642
|
+
shadowColor?: string | ((row: EmitData) => string | undefined);
|
|
643
|
+
/** 阴影模糊度 */
|
|
644
|
+
shadowBlur?: number | ((row: EmitData) => number | undefined);
|
|
645
|
+
/** 阴影偏移量 */
|
|
646
|
+
shadowOffsetX?: number | ((row: EmitData) => number | undefined);
|
|
647
|
+
/** 阴影偏移量 */
|
|
648
|
+
shadowOffsetY?: number | ((row: EmitData) => number | undefined);
|
|
649
|
+
/** 文字颜色 */
|
|
650
|
+
color?: string | ((row: EmitData) => string | undefined);
|
|
651
|
+
/** 任务条的字体大小 */
|
|
652
|
+
fontSize?: number | ((row: EmitData) => number | undefined);
|
|
653
|
+
/** 任务条的字体 */
|
|
654
|
+
fontFamily?: string | ((row: EmitData) => string | undefined);
|
|
655
|
+
/** 任务条的文本对齐方式 */
|
|
656
|
+
align?: "left" | "center" | "right" | ((row: EmitData) => "left" | "center" | "right" | undefined);
|
|
657
|
+
/** 任务条的文本垂直对齐方式 */
|
|
658
|
+
verticalAlign?: "top" | "middle" | "bottom" | ((row: EmitData) => "top" | "middle" | "bottom" | undefined);
|
|
659
|
+
/** 进度样式 */
|
|
660
|
+
progress?: {
|
|
661
|
+
/** 是否显示进度 */
|
|
662
|
+
show?: boolean | ((row: EmitData) => boolean);
|
|
663
|
+
/**
|
|
664
|
+
* 进度百分比的基准值。数据中的进度值将会以这个值作为 100% 的基准值
|
|
665
|
+
*
|
|
666
|
+
* @default 100
|
|
667
|
+
*
|
|
668
|
+
* @description 一般来说,这个值是百分比的满分值,通常是 1 或者 100。 所有进度值将按照它进行换算
|
|
669
|
+
*/
|
|
670
|
+
targetVal?: number;
|
|
671
|
+
/** 颜色 */
|
|
672
|
+
backgroundColor?: string | ((row: EmitData) => string | undefined);
|
|
673
|
+
/** 文本颜色 */
|
|
674
|
+
color?: string | ((row: EmitData) => string | undefined);
|
|
675
|
+
/**
|
|
676
|
+
* 基于任务条颜色的高亮百分比 0-100
|
|
677
|
+
*
|
|
678
|
+
* @description 优先级比 backgroundColor 低。默认 30
|
|
679
|
+
*
|
|
680
|
+
* @default 30
|
|
681
|
+
*/
|
|
682
|
+
amount?: number;
|
|
683
|
+
/** 透明度 */
|
|
684
|
+
opacity?: number | ((row: EmitData) => number | undefined);
|
|
685
|
+
/** 圆角 */
|
|
686
|
+
radius?: number | number[] | ((row: EmitData) => number | number[] | undefined);
|
|
687
|
+
/** 进度小数位 0-10 */
|
|
688
|
+
decimal?: number;
|
|
689
|
+
/**
|
|
690
|
+
* 文本显示位置
|
|
691
|
+
*
|
|
692
|
+
* - top 在进度条上方
|
|
693
|
+
* - right 在进度条右侧外部
|
|
694
|
+
* - inside 在进度条右侧内部
|
|
695
|
+
*/
|
|
696
|
+
textAlign?: "top" | "right" | "inside" | ((row: EmitData) => "top" | "right" | "inside" | undefined);
|
|
697
|
+
/** 字体大小。默认 10 */
|
|
698
|
+
fontSize?: number | ((row: EmitData) => number | undefined);
|
|
699
|
+
/** 字体样式。默认斜体 */
|
|
700
|
+
fontStyle?: string | ((row: EmitData) => string | undefined);
|
|
701
|
+
};
|
|
702
|
+
};
|
|
703
|
+
|
|
704
|
+
/** 今日时间线配置 */
|
|
705
|
+
today: {
|
|
706
|
+
/**
|
|
707
|
+
* 是否展示今日线
|
|
708
|
+
*
|
|
709
|
+
* @default true
|
|
710
|
+
*/
|
|
711
|
+
show: boolean;
|
|
712
|
+
/**
|
|
713
|
+
* 如何展示今日时间线
|
|
714
|
+
*
|
|
715
|
+
* @param line 展示一条竖线,以当前时间为准
|
|
716
|
+
* @param block 会将今天的整个区域进行填充
|
|
717
|
+
*
|
|
718
|
+
* @default 'line'
|
|
719
|
+
*/
|
|
720
|
+
type: "line" | "block";
|
|
721
|
+
/**
|
|
722
|
+
* 线条的颜色
|
|
723
|
+
*
|
|
724
|
+
* @default lightblue
|
|
725
|
+
*/
|
|
726
|
+
backgroundColor: string;
|
|
727
|
+
/**
|
|
728
|
+
* 线条的透明度
|
|
729
|
+
*
|
|
730
|
+
* @default 1
|
|
731
|
+
*/
|
|
732
|
+
opacity: number;
|
|
733
|
+
/**
|
|
734
|
+
* 线条的宽度。 当 type 为 line 时有效。
|
|
735
|
+
*
|
|
736
|
+
* @default 1
|
|
737
|
+
*/
|
|
738
|
+
width: number;
|
|
739
|
+
};
|
|
740
|
+
|
|
741
|
+
/** 周末配置 */
|
|
742
|
+
weekend: {
|
|
743
|
+
/**
|
|
744
|
+
* 是否展示周
|
|
745
|
+
* @default true
|
|
746
|
+
*/
|
|
747
|
+
show: boolean;
|
|
748
|
+
/**
|
|
749
|
+
* 周末的背景颜色
|
|
750
|
+
*
|
|
751
|
+
* @default #c9c9c9
|
|
752
|
+
*/
|
|
753
|
+
backgroundColor: string;
|
|
754
|
+
/**
|
|
755
|
+
* 透明度
|
|
756
|
+
*
|
|
757
|
+
* @default 0.1
|
|
758
|
+
*/
|
|
759
|
+
opacity: number;
|
|
760
|
+
} & IPattern;
|
|
761
|
+
|
|
762
|
+
/** 节假日期配置 */
|
|
763
|
+
holiday: {
|
|
764
|
+
/**
|
|
765
|
+
* 是否展示节假日。
|
|
766
|
+
*/
|
|
767
|
+
show?: boolean;
|
|
768
|
+
/**
|
|
769
|
+
* 背景颜色。默认使用主色
|
|
770
|
+
*/
|
|
771
|
+
backgroundColor?: string;
|
|
772
|
+
/**
|
|
773
|
+
* 透明度
|
|
774
|
+
*
|
|
775
|
+
* @default 0.1
|
|
776
|
+
*/
|
|
777
|
+
opacity: number;
|
|
778
|
+
/**
|
|
779
|
+
* 配置节假日期。可以针对不同节假日配置不同的背景颜色。默认使用统一配置颜色
|
|
780
|
+
*/
|
|
781
|
+
holidays?: Array<
|
|
782
|
+
{
|
|
783
|
+
date: Date | number | string | Array<Date | number | string>;
|
|
784
|
+
backgroundColor?: string;
|
|
785
|
+
opacity?: number;
|
|
786
|
+
} & IPattern
|
|
787
|
+
>;
|
|
788
|
+
} & IPattern;
|
|
789
|
+
|
|
790
|
+
/** 滚动条配置 */
|
|
791
|
+
scrollbar?: {
|
|
792
|
+
/** 是否显示水平滚动条 */
|
|
793
|
+
showHorizontal?: boolean;
|
|
794
|
+
/** 是否显示垂直滚动条 */
|
|
795
|
+
showVertical?: boolean;
|
|
796
|
+
track?: {
|
|
797
|
+
/** 滚动条轨道尺寸 (px) */
|
|
798
|
+
size?: number;
|
|
799
|
+
/** 滚动条轨道圆角 (px),默认 4px */
|
|
800
|
+
radius?: number;
|
|
801
|
+
/** 滚动条轨道颜色,默认 transparent */
|
|
802
|
+
color?: string;
|
|
803
|
+
};
|
|
804
|
+
thumb?: {
|
|
805
|
+
/** 滚动条滑块最小尺寸 (px),默认 30px */
|
|
806
|
+
size?: number;
|
|
807
|
+
/** 滚动条滑块圆角 (px),默认 4px */
|
|
808
|
+
radius?: number;
|
|
809
|
+
/** 滚动条滑块颜色,默认 rgba(0, 0, 0, 0.4) */
|
|
810
|
+
color?: string;
|
|
811
|
+
};
|
|
812
|
+
/** 鼠标悬停时显示滚动条的延迟时间 (ms),默认 0 */
|
|
813
|
+
showDelay?: number;
|
|
814
|
+
/** 鼠标离开后隐藏滚动条的延迟时间 (ms),默认 500 */
|
|
815
|
+
hideDelay?: number;
|
|
816
|
+
/** 滚动条显示动画时长 (ms),默认 200 */
|
|
817
|
+
showDuration?: number;
|
|
818
|
+
/** 滚动条隐藏动画时长 (ms),默认 200 */
|
|
819
|
+
hideDuration?: number;
|
|
820
|
+
/**
|
|
821
|
+
* 滚动动画持续时间 (ms), 默认 100
|
|
822
|
+
*
|
|
823
|
+
* @description 它用于控制滚动条跳转时长,而非滚轮的滚动
|
|
824
|
+
*/
|
|
825
|
+
animationDuration?: number;
|
|
826
|
+
};
|
|
827
|
+
}
|