@xpyjs/gantt-core 0.0.1-beta.4 → 0.0.1-rc.2

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xpyjs/gantt-core",
3
3
  "private": false,
4
- "version": "0.0.1-beta.4",
4
+ "version": "0.0.1-rc.2",
5
5
  "description": "A powerful and flexible Gantt chart component library for modern web applications with TypeScript support",
6
6
  "type": "module",
7
7
  "main": "./dist/x-gantt.umd.cjs",
@@ -24,6 +24,12 @@ export declare class XGanttContext implements IContext {
24
24
  * @return {boolean} 是否成功跳转
25
25
  */
26
26
  jumpTo(date?: any): boolean;
27
+ /**
28
+ * 滚动到指定任务节点。默认为第一个任务
29
+ *
30
+ * @return {boolean} 是否成功跳转
31
+ */
32
+ scrollTo(id?: string, highlight?: boolean): boolean;
27
33
  /**
28
34
  * 获取指定任务的所有相关联的完整路径,包含所有连接线与任务节点
29
35
  */
package/types/XGantt.d.ts CHANGED
@@ -174,8 +174,53 @@ export declare class XGantt {
174
174
  * ```
175
175
  */
176
176
  jumpTo(date?: any): boolean;
177
+ /**
178
+ * 滚动到指定任务
179
+ * @param id - 任务 ID,如果不传入则滚动到顶部
180
+ * @param highlight - 是否高亮任务,默认为 false
181
+ *
182
+ * @returns 是否成功滚动到指定任务
183
+ * - `true`: 成功滚动,任务已在视图中可见
184
+ * - `false`: 滚动失败,可能是任务 ID 无效或任务不可见
185
+ *
186
+ * @description 此方法将甘特图的视图滚动到指定任务的位置,使该任务在当前视窗中可见。并且支持跳转后高亮当前任务。
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * // 滚动到指定任务
191
+ * const success1 = gantt.scrollTo('task-1');
192
+ * const success2 = gantt.scrollTo('non-existent-id'); // 任务不存在,返回 false
193
+ *
194
+ * // 滚动到顶部
195
+ * const success3 = gantt.scrollTo();
196
+ *
197
+ * // 检查滚动结果
198
+ * if (gantt.scrollTo('task-2')) {
199
+ * console.log('成功滚动到任务 task-2');
200
+ * } else {
201
+ * console.log('滚动失败,任务 ID 可能无效');
202
+ * }
203
+ *
204
+ * // 滚动到任务并高亮
205
+ * gantt.scrollTo('task-3', true);
206
+ * ```
207
+ */
208
+ scrollTo(id?: string, highlight?: boolean): boolean;
177
209
  /**
178
210
  * 获取指定任务的所有相关联的完整路径,包含所有连接线与任务节点
211
+ *
212
+ * 结果集中包含前置链路信息、后置链路信息、所有节点、关联线的信息等
213
+ * - prev: 前置链路信息
214
+ * - chain: 所有源 -> 当前任务的完整路径(每条路径末尾为当前节点)
215
+ * - nodes: 前置方向所有唯一节点
216
+ * - links: 前置方向所有连线
217
+ * - next: 后置链路信息
218
+ * - chain: 当前任务 -> 所有汇的完整路径(每条路径首元素为当前节点)
219
+ * - nodes: 后置方向所有唯一节点
220
+ * - links: 后置方向所有连线
221
+ * - allNodes: 所有相关联的节点
222
+ * - allLinks: 所有相关联的连线
223
+ * - current: 当前任务
179
224
  */
180
225
  getDataChain(id: string): DataChain;
181
226
  /**
@@ -276,4 +321,22 @@ export declare class XGantt {
276
321
  * ```
277
322
  */
278
323
  off<K extends keyof EventMap>(event: K, cb?: EventMap[K]): void;
324
+ /**
325
+ * 根据任务 ID 获取对应的任务数据
326
+ * @param id 任务 ID
327
+ * @returns 任务数据
328
+ *
329
+ * @example
330
+ * ```typescript
331
+ * const data = gantt.getDataById('task-1');
332
+ * if (data) {
333
+ * console.log('任务名称:', data.name);
334
+ * }
335
+ * ```
336
+ */
337
+ getDataById(id: string): any | undefined;
338
+ /**
339
+ * 获取当前数据量总数。该数量为所有数据展开后的数据条数
340
+ */
341
+ getDataSize(): number;
279
342
  }
@@ -51,7 +51,8 @@ export declare enum EventName {
51
51
  SLIDER_CLICK = "slider-click",
52
52
  SLIDER_DBL_CLICK = "slider-dbl-click",
53
53
  SLIDER_CONTEXTMENU = "slider-contextmenu",
54
- SLIDER_MOVING = "slider-moving",
54
+ SLIDER_DRAGGING = "slider-dragging",
55
+ SLIDER_ENTER = "slider-enter",
55
56
  SLIDER_HOVER = "slider-hover",
56
57
  SLIDER_LEAVE = "slider-leave",
57
58
  SLIDER_BLINK = "slider-blink",
@@ -63,7 +64,8 @@ export declare enum EventName {
63
64
  TASK_DRAG_END = "task-drag-end",
64
65
  BASELINE_CLICK = "baseline-click",
65
66
  BASELINE_CONTEXTMENU = "baseline-contextmenu",
66
- BASELINE_MOUSEOVER = "baseline-mouseover",
67
+ BASELINE_MOUSEENTER = "baseline-mouseenter",
68
+ BASELINE_MOUSEMOVE = "baseline-mousemove",
67
69
  BASELINE_MOUSEOUT = "baseline-mouseout",
68
70
  ERROR = "error"
69
71
  }
@@ -80,6 +80,10 @@ export declare class DataManager {
80
80
  * 使用缓存提高性能,只有在必要时才会重建列表
81
81
  */
82
82
  getVisibleTasks(): Task[];
83
+ /**
84
+ * 获取一个任务是否可展示
85
+ */
86
+ isTaskVisible(task: Task): boolean;
83
87
  /**
84
88
  * 获取可展示任务数量
85
89
  */
@@ -2,28 +2,55 @@ import { ErrorType } from "../event";
2
2
  import { ILink } from "./link";
3
3
 
4
4
  export interface EventMap {
5
+ /** 加载完成事件 */
5
6
  loaded: () => void;
7
+ /** 错误事件 */
6
8
  error: (error: ErrorType, msg?: string) => void;
9
+ /** 关联线更新事件 */
7
10
  "update:link": (link: ILink) => void;
11
+ /** 创建关联线事件 */
8
12
  "create:link": (link: ILink) => void;
13
+ /** 关联线被选中事件,支持多个选中 */
9
14
  "select:link": (
15
+ /** 当前被新选中的关连线 */
10
16
  add: ILink | null,
17
+ /** 当前被取消选中的关联线 */
11
18
  cancel: ILink | null,
19
+ /** 所有目前被选中的关联线 */
12
20
  all: ILink[]
13
21
  ) => void;
22
+ /** 关联线右键点击事件 */
14
23
  "contextmenu:link": (e: MouseEvent, link: ILink) => void;
24
+ /** 任务被选中(checkbox)事件,支持多个选中 */
15
25
  select: (data: any[], checked: boolean, all: any[]) => void;
26
+ /** 行点击事件 */
16
27
  "click:row": (e: MouseEvent, data: any) => void;
28
+ /** 行双击事件 */
17
29
  "dblclick:row": (e: MouseEvent, data: any) => void;
30
+ /** 行右键点击事件 */
18
31
  "contextmenu:row": (e: MouseEvent, data: any) => void;
32
+ /** 任务条点击事件 */
19
33
  "click:slider": (e: MouseEvent, data: any) => void;
34
+ /** 任务条双击事件 */
20
35
  "dblclick:slider": (e: MouseEvent, data: any) => void;
36
+ /** 任务条右键点击事件 */
21
37
  "contextmenu:slider": (e: MouseEvent, data: any) => void;
38
+ /** 任务拖拽事件。当且仅当任务条拖拽结束时被触发 */
22
39
  move: (data: { row: any; old: any }[]) => void;
40
+ /** 鼠标移入任务条事件 */
41
+ "enter:slider": (e: MouseEvent, data: any) => void;
42
+ /** 鼠标悬停任务条事件。当鼠标一直处于任务条上时,会持续触发 */
23
43
  "hover:slider": (e: MouseEvent, data: any) => void;
44
+ /** 鼠标移出任务条事件 */
24
45
  "leave:slider": (e: MouseEvent, data: any) => void;
46
+ /** 基线点击事件 */
25
47
  "click:baseline": (e: MouseEvent, data: any, baseline: any) => void;
48
+ /** 基线右键点击事件 */
26
49
  "contextmenu:baseline": (e: MouseEvent, data: any, baseline: any) => void;
50
+ /** 基线鼠标移入事件 */
51
+ "enter:baseline": (e: MouseEvent, data: any, baseline: any) => void;
52
+ /** 基线鼠标悬停事件。当鼠标一直处于基线上时,会持续触发 */
27
53
  "hover:baseline": (e: MouseEvent, data: any, baseline: any) => void;
54
+ /** 基线鼠标移出事件 */
28
55
  "leave:baseline": (e: MouseEvent, data: any, baseline: any) => void;
29
56
  }