@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.
Files changed (57) hide show
  1. package/dist/style.css +1 -0
  2. package/dist/x-gantt.js +6442 -0
  3. package/dist/x-gantt.umd.cjs +18 -0
  4. package/package.json +1 -1
  5. package/types/GanttContext.d.ts +33 -0
  6. package/types/XGantt.d.ts +248 -0
  7. package/types/event/index.d.ts +75 -0
  8. package/types/index.d.ts +13 -0
  9. package/types/logo.d.ts +2 -0
  10. package/types/models/Baseline.d.ts +37 -0
  11. package/types/models/Task.d.ts +77 -0
  12. package/types/rendering/RenderScheduler.d.ts +93 -0
  13. package/types/rendering/Renderer.d.ts +52 -0
  14. package/types/rendering/chart/ChartBaseline.d.ts +50 -0
  15. package/types/rendering/chart/ChartBody.d.ts +102 -0
  16. package/types/rendering/chart/ChartGrid.d.ts +37 -0
  17. package/types/rendering/chart/ChartHeader.d.ts +54 -0
  18. package/types/rendering/chart/ChartHoliday.d.ts +38 -0
  19. package/types/rendering/chart/ChartLink.d.ts +87 -0
  20. package/types/rendering/chart/ChartRow.d.ts +17 -0
  21. package/types/rendering/chart/ChartSlider.d.ts +58 -0
  22. package/types/rendering/chart/ChartToday.d.ts +31 -0
  23. package/types/rendering/chart/ChartWeekend.d.ts +43 -0
  24. package/types/rendering/chart/Pattern.d.ts +19 -0
  25. package/types/rendering/chart/index.d.ts +34 -0
  26. package/types/rendering/other/GuideLine.d.ts +50 -0
  27. package/types/rendering/other/MiddleResizeLine.d.ts +15 -0
  28. package/types/rendering/scrollbar/index.d.ts +132 -0
  29. package/types/rendering/table/Checkbox.d.ts +39 -0
  30. package/types/rendering/table/TableBody.d.ts +25 -0
  31. package/types/rendering/table/TableCell.d.ts +43 -0
  32. package/types/rendering/table/TableHeader.d.ts +13 -0
  33. package/types/rendering/table/TableHeaderCell.d.ts +20 -0
  34. package/types/rendering/table/TableHeaderGroup.d.ts +15 -0
  35. package/types/rendering/table/TableRow.d.ts +57 -0
  36. package/types/rendering/table/index.d.ts +15 -0
  37. package/types/store/ColumnManager.d.ts +81 -0
  38. package/types/store/DataManager.d.ts +132 -0
  39. package/types/store/OptionManager.d.ts +12 -0
  40. package/types/store/TimeAxis.d.ts +88 -0
  41. package/types/store/index.d.ts +21 -0
  42. package/types/types/baseline.d.ts +16 -0
  43. package/types/types/chart.d.ts +59 -0
  44. package/types/types/event.d.ts +29 -0
  45. package/types/types/global.d.ts +9 -0
  46. package/types/types/index.d.ts +26 -0
  47. package/types/types/link.d.ts +23 -0
  48. package/types/types/options.d.ts +827 -0
  49. package/types/types/render.d.ts +26 -0
  50. package/types/types/styles.d.ts +37 -0
  51. package/types/types/table.d.ts +139 -0
  52. package/types/utils/color.d.ts +148 -0
  53. package/types/utils/helpers.d.ts +47 -0
  54. package/types/utils/id.d.ts +1 -0
  55. package/types/utils/logger.d.ts +88 -0
  56. package/types/utils/size.d.ts +7 -0
  57. package/types/utils/time.d.ts +9 -0
@@ -0,0 +1,21 @@
1
+ import { OptionManager } from "./OptionManager";
2
+ import { DataManager } from "./DataManager";
3
+ import { ColumnManager } from "./ColumnManager";
4
+ import { TimeAxis } from "./TimeAxis";
5
+ import { Dayjs } from "dayjs";
6
+ import { IContext } from "@/types/render";
7
+ import { IOptionConfig, IOptions } from "@/types";
8
+ export declare class Store {
9
+ private context;
10
+ private optionManager;
11
+ private dataManager;
12
+ private columnManager;
13
+ private timeAxis;
14
+ constructor(context: IContext, options?: IOptions);
15
+ getOptionManager(): OptionManager;
16
+ getDataManager(): DataManager;
17
+ getColumnManager(): ColumnManager;
18
+ getTimeAxis(): TimeAxis;
19
+ setOption(options: IOptions, config?: IOptionConfig): void;
20
+ updateTime(start?: Dayjs, end?: Dayjs): void;
21
+ }
@@ -0,0 +1,16 @@
1
+ export type BaselineDiffStatus = 'ahead' | 'ontime' | 'delayed';
2
+
3
+ export interface BaselineDiff {
4
+ /** 开始时间差异 */
5
+ startDiff: number;
6
+ /** 开始状态 */
7
+ startStatus?: BaselineDiffStatus;
8
+ /** 结束时间差异 */
9
+ endDiff: number;
10
+ /** 结束状态 */
11
+ endStatus?: BaselineDiffStatus;
12
+ /** 差异单位 */
13
+ unit: string;
14
+ /** 进度偏差 */
15
+ progressDiff?: number;
16
+ }
@@ -0,0 +1,59 @@
1
+ import { XGanttUnit } from "./options";
2
+
3
+ export interface IChartOptions {
4
+ /**
5
+ * 开始时间。强制设置开始时间,覆盖数据中的开始时间。
6
+ *
7
+ * @description 给定开始时间后,图表将使用该日期作为起始,而不是数据的起始时间
8
+ */
9
+ startTime?: Date | string;
10
+
11
+ /**
12
+ * 结束时间。强制设置结束时间,覆盖数据中的结束时间
13
+ *
14
+ * @description 给定结束时间后,图表将使用该日期作为结束,而不是数据的结束时间
15
+ */
16
+ endTime?: Date | string;
17
+
18
+ /**
19
+ * 自适应 cell 宽度。允许右侧部分基于当前宽度,自适应自定义的起止时间。
20
+ *
21
+ * 当起止日期区间过短,会自动撑满整个区域。当日期区间过长,会以 cellWidth 的值作为最小值,绘制整个区域
22
+ *
23
+ * @requires startTime 此功能需要自定义起止时间
24
+ * @requires endTime 此功能需要自定义起止时间
25
+ *
26
+ * @description 此功能会导致 cellWidth 失效。所有 cell 会自动计算宽度
27
+ */
28
+ autoCellWidth: boolean;
29
+
30
+ /**
31
+ * 时间单元格宽度
32
+ *
33
+ * @description small | normal | large 会根据当前展示单位,自动计算宽度。或者直接给对象,指定具体每一个单位下 cell 的宽度值
34
+ *
35
+ * @description 如果同时给定了起止时间,则图表则只会渲染给定的时间区间,并且指定宽度将失效。(失效是指:如果给定时间区间范围小于可视范围,则会自动撑满宽度,此时每一格 cell 的宽度则会变为自动;如果时间区间范围大于可视范围,则继续按照当前设定宽度展示,超出部分可通过滚动条移动展示)
36
+ */
37
+ cellWidth:
38
+ | number
39
+ | "small"
40
+ | "normal"
41
+ | "large"
42
+ | Partial<Record<XGanttUnit, number>>;
43
+
44
+ /**
45
+ * 表头组(上层)格式化
46
+ *
47
+ * @description 字符串:使用 dayjs 的格式化功能参数。支持 {@link https://day.js.org/docs/en/display/format|默认占位符},以及所有 {@link https://day.js.org/docs/en/plugin/advanced-format|AdvancedFormat} 的占位符
48
+ * @description 函数:可以根据当前日期和单位,返回自定义的格式化字符串。如果函数返回为空,则回退到默认格式化
49
+ */
50
+ headerGroupFormat?: string | ((date: Date, unit: XGanttUnit) => string);
51
+
52
+ /**
53
+ * 表头单元格格式化
54
+ *
55
+ * @description 字符串:使用 dayjs 的格式化功能参数。支持 {@link https://day.js.org/docs/en/display/format|默认占位符},以及所有 {@link https://day.js.org/docs/en/plugin/advanced-format|AdvancedFormat} 的占位符
56
+ * @description 函数:可以根据当前日期和单位,返回自定义的格式化字符串。如果函数返回为空,则回退到默认格式化
57
+ */
58
+ headerCellFormat?: string | ((date: Date, unit: XGanttUnit) => string);
59
+ }
@@ -0,0 +1,29 @@
1
+ import { ErrorType } from "../event";
2
+ import { ILink } from "./link";
3
+
4
+ export interface EventMap {
5
+ loaded: () => void;
6
+ error: (error: ErrorType) => void;
7
+ "update:link": (link: ILink) => void;
8
+ "create:link": (link: ILink) => void;
9
+ "select:link": (
10
+ add: ILink | null,
11
+ cancel: ILink | null,
12
+ all: ILink[]
13
+ ) => void;
14
+ "contextmenu:link": (e: MouseEvent, link: ILink) => void;
15
+ select: (data: any[], checked: boolean, all: any[]) => void;
16
+ "click:row": (e: MouseEvent, data: any) => void;
17
+ "dblclick:row": (e: MouseEvent, data: any) => void;
18
+ "contextmenu:row": (e: MouseEvent, data: any) => void;
19
+ "click:slider": (e: MouseEvent, data: any) => void;
20
+ "dblclick:slider": (e: MouseEvent, data: any) => void;
21
+ "contextmenu:slider": (e: MouseEvent, data: any) => void;
22
+ move: (data: { row: any; old: any }[]) => void;
23
+ "hover:slider": (e: MouseEvent, data: any) => void;
24
+ "leave:slider": (e: MouseEvent, data: any) => void;
25
+ "click:baseline": (e: MouseEvent, data: any, baseline: any) => void;
26
+ "contextmenu:baseline": (e: MouseEvent, data: any, baseline: any) => void;
27
+ "hover:baseline": (e: MouseEvent, data: any, baseline: any) => void;
28
+ "leave:baseline": (e: MouseEvent, data: any, baseline: any) => void;
29
+ }
@@ -0,0 +1,9 @@
1
+ // 全局类型声明
2
+ declare const __VERSION__: string;
3
+
4
+ // 导出到全局命名空间
5
+ declare global {
6
+ const __VERSION__: string;
7
+ }
8
+
9
+ export {};
@@ -0,0 +1,26 @@
1
+ import { IGanttOptions } from "./options";
2
+
3
+ type DeepPartial<T> = {
4
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
5
+ };
6
+
7
+ export type IOptions = DeepPartial<IGanttOptions>;
8
+
9
+ export type IOptionConfig = {
10
+ /** 是否合并选项 */
11
+ merge?: boolean;
12
+ };
13
+
14
+ export interface EmitData {
15
+ /** 原始数据 */
16
+ data: any;
17
+ /** 当前数据的索引 */
18
+ $index: number;
19
+ /** 当前数据的层级。 1 开始 */
20
+ level: number;
21
+ }
22
+
23
+ export interface EmitBaseline extends EmitData {
24
+ /** 基线数据 */
25
+ baseline: any;
26
+ }
@@ -0,0 +1,23 @@
1
+ export interface ILink {
2
+ /** 起始任务 id */
3
+ from: any;
4
+ /** 截止任务 id */
5
+ to: any;
6
+ /** 自定义颜色 */
7
+ color?: string;
8
+ /**
9
+ * 连线类型。它允许用户配置连线的具体类型。具体讨论参考 {@link https://github.com/xpyjs/gantt/issues/119|关于前置后置任务的连线}
10
+ *
11
+ * 当前针对已知的四种类型进行了补充:
12
+ * - `FS` - Finish to Start
13
+ * - `FF` - Finish to Finish
14
+ * - `SS` - Start to Start
15
+ * - `SF` - Start to Finish
16
+ *
17
+ * 默认情况下使用 `FS`,即 Finish to Start。
18
+ *
19
+ * 无论如何配置,连线始终是 from - to 的方向,type 定义了连线在 from / to 任务中出现的位置,左侧定义为 Start,右侧定义为 Finish。
20
+ */
21
+ type?: "FS" | "FF" | "SS" | "SF";
22
+ [key: string]: any;
23
+ }