@keenaioc/data-view 0.0.0-poc.1 → 0.2.0-alpha.11
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/CHANGELOG.md +138 -0
- package/DATA-PRIVACY.md +20 -0
- package/INTEGRATION.md +258 -0
- package/KNOWN-LIMITATIONS.md +63 -0
- package/LICENSE +41 -0
- package/README.md +73 -5
- package/dist/column-actions.d.ts +47 -0
- package/dist/column-actions.d.ts.map +1 -0
- package/dist/column-actions.js +92 -0
- package/dist/column-actions.js.map +1 -0
- package/dist/column-menu.d.ts +25 -0
- package/dist/column-menu.d.ts.map +1 -0
- package/dist/column-menu.js +64 -0
- package/dist/column-menu.js.map +1 -0
- package/dist/contracts.d.ts +33 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +84 -0
- package/dist/contracts.js.map +1 -0
- package/dist/data-view.d.ts +3 -0
- package/dist/data-view.d.ts.map +1 -0
- package/dist/data-view.js +883 -0
- package/dist/data-view.js.map +1 -0
- package/dist/engine.d.ts +35 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +315 -0
- package/dist/engine.js.map +1 -0
- package/dist/field-order.d.ts +8 -0
- package/dist/field-order.d.ts.map +1 -0
- package/dist/field-order.js +28 -0
- package/dist/field-order.js.map +1 -0
- package/dist/gantt-bar.d.ts +17 -0
- package/dist/gantt-bar.d.ts.map +1 -0
- package/dist/gantt-bar.js +142 -0
- package/dist/gantt-bar.js.map +1 -0
- package/dist/gantt-dependencies.d.ts +27 -0
- package/dist/gantt-dependencies.d.ts.map +1 -0
- package/dist/gantt-dependencies.js +218 -0
- package/dist/gantt-dependencies.js.map +1 -0
- package/dist/gantt-dependency-ui.d.ts +37 -0
- package/dist/gantt-dependency-ui.d.ts.map +1 -0
- package/dist/gantt-dependency-ui.js +79 -0
- package/dist/gantt-dependency-ui.js.map +1 -0
- package/dist/gantt-grid.d.ts +27 -0
- package/dist/gantt-grid.d.ts.map +1 -0
- package/dist/gantt-grid.js +72 -0
- package/dist/gantt-grid.js.map +1 -0
- package/dist/gantt-operations.d.ts +14 -0
- package/dist/gantt-operations.d.ts.map +1 -0
- package/dist/gantt-operations.js +103 -0
- package/dist/gantt-operations.js.map +1 -0
- package/dist/group-order.d.ts +8 -0
- package/dist/group-order.d.ts.map +1 -0
- package/dist/group-order.js +24 -0
- package/dist/group-order.js.map +1 -0
- package/dist/group-settings.d.ts +17 -0
- package/dist/group-settings.d.ts.map +1 -0
- package/dist/group-settings.js +44 -0
- package/dist/group-settings.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/operations.d.ts +11 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +117 -0
- package/dist/operations.js.map +1 -0
- package/dist/registry.d.ts +17 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +482 -0
- package/dist/registry.js.map +1 -0
- package/dist/remote-data.d.ts +19 -0
- package/dist/remote-data.d.ts.map +1 -0
- package/dist/remote-data.js +67 -0
- package/dist/remote-data.js.map +1 -0
- package/dist/row-move.d.ts +7 -0
- package/dist/row-move.d.ts.map +1 -0
- package/dist/row-move.js +27 -0
- package/dist/row-move.js.map +1 -0
- package/dist/schedule-view.d.ts +27 -0
- package/dist/schedule-view.d.ts.map +1 -0
- package/dist/schedule-view.js +122 -0
- package/dist/schedule-view.js.map +1 -0
- package/dist/schedule.d.ts +28 -0
- package/dist/schedule.d.ts.map +1 -0
- package/dist/schedule.js +97 -0
- package/dist/schedule.js.map +1 -0
- package/dist/style.css +1028 -0
- package/dist/timeline.d.ts +25 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +58 -0
- package/dist/timeline.js.map +1 -0
- package/dist/toolbar.d.ts +10 -0
- package/dist/toolbar.d.ts.map +1 -0
- package/dist/toolbar.js +31 -0
- package/dist/toolbar.js.map +1 -0
- package/dist/types.d.ts +474 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/use-remote-data.d.ts +18 -0
- package/dist/use-remote-data.d.ts.map +1 -0
- package/dist/use-remote-data.js +12 -0
- package/dist/use-remote-data.js.map +1 -0
- package/dist/use-row-move.d.ts +12 -0
- package/dist/use-row-move.d.ts.map +1 -0
- package/dist/use-row-move.js +151 -0
- package/dist/use-row-move.js.map +1 -0
- package/dist/v2-panels.d.ts +37 -0
- package/dist/v2-panels.d.ts.map +1 -0
- package/dist/v2-panels.js +118 -0
- package/dist/v2-panels.js.map +1 -0
- package/dist/view-state.d.ts +30 -0
- package/dist/view-state.d.ts.map +1 -0
- package/dist/view-state.js +94 -0
- package/dist/view-state.js.map +1 -0
- package/dist/view-workspace.d.ts +3 -0
- package/dist/view-workspace.d.ts.map +1 -0
- package/dist/view-workspace.js +95 -0
- package/dist/view-workspace.js.map +1 -0
- package/dist/virtual-list.d.ts +12 -0
- package/dist/virtual-list.d.ts.map +1 -0
- package/dist/virtual-list.js +46 -0
- package/dist/virtual-list.js.map +1 -0
- package/package.json +19 -16
- package/index.d.ts +0 -2
- package/index.js +0 -5
- package/react.d.ts +0 -2
- package/react.js +0 -8
- package/style.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DataSource, DataViewQuery } from "./types.js";
|
|
2
|
+
export type RemoteSnapshot<Row> = {
|
|
3
|
+
queryKey: string;
|
|
4
|
+
rows: Row[];
|
|
5
|
+
total?: number;
|
|
6
|
+
complete: boolean;
|
|
7
|
+
loading: boolean;
|
|
8
|
+
error: string | null;
|
|
9
|
+
groupCounts?: Record<string, number>;
|
|
10
|
+
};
|
|
11
|
+
/** Only the host's data source talks to its backend. No database or transport dependency. */
|
|
12
|
+
export declare function createRemoteController<Row>(source: DataSource<Row>, getRowId: (row: Row) => string, onChange: (state: RemoteSnapshot<Row>) => void): {
|
|
13
|
+
setQuery(next: DataViewQuery): void;
|
|
14
|
+
loadMore: () => Promise<void>;
|
|
15
|
+
retry(): void;
|
|
16
|
+
dispose(): void;
|
|
17
|
+
readonly state: RemoteSnapshot<Row>;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=remote-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-data.d.ts","sourceRoot":"","sources":["../src/remote-data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,MAAM,cAAc,CAAC,GAAG,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AACrL,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI;mBA2BhI,aAAa;;;;;EAW/B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { dataViewQueryKey } from "./contracts.js";
|
|
2
|
+
/** Only the host's data source talks to its backend. No database or transport dependency. */
|
|
3
|
+
export function createRemoteController(source, getRowId, onChange) {
|
|
4
|
+
let generation = 0, abort = null;
|
|
5
|
+
let query = null, cursor, snapshot;
|
|
6
|
+
let state = { queryKey: "", rows: [], complete: false, loading: false, error: null };
|
|
7
|
+
let cursors = new Set();
|
|
8
|
+
const publish = (patch) => { state = { ...state, ...patch }; onChange(state); };
|
|
9
|
+
async function load() {
|
|
10
|
+
if (!query || state.loading || state.complete)
|
|
11
|
+
return;
|
|
12
|
+
const n = generation;
|
|
13
|
+
abort = new AbortController();
|
|
14
|
+
publish({ loading: true, error: null });
|
|
15
|
+
try {
|
|
16
|
+
const result = await source.query({ query, cursor, snapshot, signal: abort.signal });
|
|
17
|
+
if (n !== generation)
|
|
18
|
+
return;
|
|
19
|
+
if (!Number.isSafeInteger(result.total) || result.total < 0 || !result.snapshot || (snapshot && snapshot !== result.snapshot))
|
|
20
|
+
throw new Error("查詢結果版本或總數無效,請重新查詢");
|
|
21
|
+
if (state.total !== undefined && result.total !== state.total)
|
|
22
|
+
throw new Error("載入期間資料總數改變,請重新查詢");
|
|
23
|
+
if (result.nextCursor && (cursors.has(result.nextCursor) || !result.rows.length))
|
|
24
|
+
throw new Error("資料來源未提供下一段有效結果");
|
|
25
|
+
const ids = new Set(state.rows.map(getRowId));
|
|
26
|
+
for (const row of result.rows) {
|
|
27
|
+
const id = getRowId(row);
|
|
28
|
+
if (!id || ids.has(id))
|
|
29
|
+
throw new Error("分批結果含重複或無效資料 ID,請重新查詢");
|
|
30
|
+
ids.add(id);
|
|
31
|
+
}
|
|
32
|
+
const rows = [...state.rows, ...result.rows];
|
|
33
|
+
if (rows.length > result.total || (!result.nextCursor && rows.length !== result.total))
|
|
34
|
+
throw new Error("資料尚未完整,請重新查詢");
|
|
35
|
+
cursor = result.nextCursor ?? undefined;
|
|
36
|
+
snapshot = result.snapshot;
|
|
37
|
+
if (cursor)
|
|
38
|
+
cursors.add(cursor);
|
|
39
|
+
publish({ rows, total: result.total, complete: !cursor, loading: false, groupCounts: result.groupCounts ?? state.groupCounts });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (n === generation)
|
|
43
|
+
publish({ loading: false, error: error instanceof Error ? error.message : "查詢失敗", complete: false });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
setQuery(next) {
|
|
48
|
+
const key = dataViewQueryKey(next);
|
|
49
|
+
if (query && key === state.queryKey)
|
|
50
|
+
return;
|
|
51
|
+
generation++;
|
|
52
|
+
abort?.abort();
|
|
53
|
+
query = next;
|
|
54
|
+
cursor = undefined;
|
|
55
|
+
snapshot = undefined;
|
|
56
|
+
cursors = new Set();
|
|
57
|
+
publish({ queryKey: key, rows: [], total: undefined, groupCounts: undefined, complete: false, loading: false, error: null });
|
|
58
|
+
void load();
|
|
59
|
+
},
|
|
60
|
+
loadMore: load,
|
|
61
|
+
retry() { const current = query; query = null; if (current)
|
|
62
|
+
this.setQuery(current); },
|
|
63
|
+
dispose() { generation++; abort?.abort(); },
|
|
64
|
+
get state() { return state; },
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=remote-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-data.js","sourceRoot":"","sources":["../src/remote-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FieldDefinition, GroupPathPart, GroupRule, RowMoveRequest } from "./types.js";
|
|
2
|
+
export declare function rowGroupPaths<Row>(rows: Row[], fields: FieldDefinition<Row>[], groups: GroupRule[], getRowId: (row: Row) => string): {
|
|
3
|
+
rowPaths: Map<string, GroupPathPart[]>;
|
|
4
|
+
groupPaths: Map<string, GroupPathPart[]>;
|
|
5
|
+
};
|
|
6
|
+
export declare function validateRowMove<Row>(request: RowMoveRequest<Row>, groups: GroupRule[]): "不能移動到自己" | "請選擇完整且可讀的分組落點" | "缺少落點資料 ID" | null;
|
|
7
|
+
//# sourceMappingURL=row-move.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-move.d.ts","sourceRoot":"","sources":["../src/row-move.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/G,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM;;;EAYlI;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,oDAKrF"}
|
package/dist/row-move.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { buildGroupTree } from "./engine.js";
|
|
2
|
+
export function rowGroupPaths(rows, fields, groups, getRowId) {
|
|
3
|
+
const rowPaths = new Map(), groupPaths = new Map();
|
|
4
|
+
function visit(nodes, parent) {
|
|
5
|
+
for (const node of nodes) {
|
|
6
|
+
const path = node.fieldId ? [...parent, { fieldId: node.fieldId, key: node.key, valueKey: node.valueKey ?? "" }] : parent;
|
|
7
|
+
groupPaths.set(node.key, path);
|
|
8
|
+
if (node.children.length)
|
|
9
|
+
visit(node.children, path);
|
|
10
|
+
else
|
|
11
|
+
for (const row of node.rows)
|
|
12
|
+
rowPaths.set(getRowId(row), path);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
visit(buildGroupTree(rows, fields, groups), []);
|
|
16
|
+
return { rowPaths, groupPaths };
|
|
17
|
+
}
|
|
18
|
+
export function validateRowMove(request, groups) {
|
|
19
|
+
if (request.targetRowId === request.rowId)
|
|
20
|
+
return "不能移動到自己";
|
|
21
|
+
if (request.targetGroupPath.length !== groups.length || request.targetGroupPath.some((part, index) => part.fieldId !== groups[index].fieldId || part.valueKey === "__restricted__"))
|
|
22
|
+
return "請選擇完整且可讀的分組落點";
|
|
23
|
+
if (request.position !== "groupEnd" && !request.targetRowId)
|
|
24
|
+
return "缺少落點資料 ID";
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=row-move.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-move.js","sourceRoot":"","sources":["../src/row-move.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,UAAU,aAAa,CAAM,IAAW,EAAE,MAA8B,EAAE,MAAmB,EAAE,QAA8B;IACjI,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,EAAE,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrG,SAAS,KAAK,CAAC,KAA+B,EAAE,MAAuB;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1H,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;;gBAChD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI;oBAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AACD,MAAM,UAAU,eAAe,CAAM,OAA4B,EAAE,MAAmB;IACpF,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,CAAC;QAAE,OAAO,eAAe,CAAC;IAC5M,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { BatchCommit, GanttDependencyChange, GanttDependencyState, CellCommit, DataViewConfig, DataViewPermissions, FieldDefinition, ViewLocation, DataViewMetrics, DataViewGroupNode } from "./types.js";
|
|
3
|
+
export declare function ScheduleView<Row>({ rows, fields, getRowId, view, onOpen, compact, permissions, busy, onCommit, allRows, dependencies, onDependencyChange, onScheduleCommit, onLocationChange, onToggleGroup, renderLeftHeader, renderLeftRow, renderMobileRow, metrics, getRowLabel, groupLabel, onLoadNearEnd }: {
|
|
4
|
+
metrics?: DataViewMetrics;
|
|
5
|
+
getRowLabel?: (row: Row) => string;
|
|
6
|
+
groupLabel?: (node: DataViewGroupNode<Row>) => ReactNode;
|
|
7
|
+
onLoadNearEnd?: (el: HTMLElement) => void;
|
|
8
|
+
onLocationChange?: (patch: ViewLocation) => void;
|
|
9
|
+
onToggleGroup?: (key: string) => void;
|
|
10
|
+
renderLeftHeader?: () => ReactNode;
|
|
11
|
+
renderLeftRow?: (row: Row) => ReactNode;
|
|
12
|
+
renderMobileRow?: (row: Row) => ReactNode;
|
|
13
|
+
rows: Row[];
|
|
14
|
+
fields: FieldDefinition<Row>[];
|
|
15
|
+
getRowId: (row: Row) => string;
|
|
16
|
+
view: DataViewConfig;
|
|
17
|
+
onOpen: (row: Row) => void;
|
|
18
|
+
compact?: boolean;
|
|
19
|
+
permissions?: DataViewPermissions<Row>;
|
|
20
|
+
busy?: boolean;
|
|
21
|
+
onCommit?: (changes: CellCommit<Row>[]) => Promise<boolean>;
|
|
22
|
+
allRows?: Row[];
|
|
23
|
+
dependencies?: GanttDependencyState<Row>;
|
|
24
|
+
onDependencyChange?: (change: GanttDependencyChange) => Promise<boolean>;
|
|
25
|
+
onScheduleCommit?: (request: BatchCommit<Row>) => Promise<boolean>;
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=schedule-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-view.d.ts","sourceRoot":"","sources":["../src/schedule-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ7E,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAgB,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7N,wBAAgB,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAe,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,OAAsC,EAAE,WAA2J,EAAE,UAA4D,EAAE,aAAwB,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,2CA2Fp3C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { dateDay, dayString, monthDays, scheduleRows, shiftMonth } from "./schedule.js";
|
|
5
|
+
import { resolveMetrics } from "./contracts.js";
|
|
6
|
+
import { GanttGrid } from "./gantt-grid.js";
|
|
7
|
+
import { scheduleEntries, timelineWindow } from "./timeline.js";
|
|
8
|
+
import { createGanttReschedulePlan, validateGanttScheduleGuard } from "./gantt-dependencies.js";
|
|
9
|
+
import { GanttDependencyPanel, GanttRescheduleReview, scheduleRowLabel } from "./gantt-dependency-ui.js";
|
|
10
|
+
import { ganttDuration } from "./gantt-operations.js";
|
|
11
|
+
export function ScheduleView({ rows, fields, getRowId, view, onOpen, compact = false, permissions, busy, onCommit, allRows = rows, dependencies, onDependencyChange, onScheduleCommit, onLocationChange, onToggleGroup, renderLeftHeader, renderLeftRow, renderMobileRow, metrics = resolveMetrics(view.density), getRowLabel = (row) => scheduleRowLabel(row, fields, { titleFieldId: (view.gantt ?? view.calendar)?.titleFieldId ?? "", startFieldId: "", endFieldId: "" }), groupLabel = (node) => `${node.label} · ${node.rows.length}`, onLoadNearEnd = () => { } }) {
|
|
12
|
+
const type = view.viewType === "gantt" ? "gantt" : "calendar";
|
|
13
|
+
const mapping = type === "gantt" ? view.gantt : view.calendar;
|
|
14
|
+
const [localLocation, setLocalLocation] = useState(view.location ?? {});
|
|
15
|
+
const loc = useMemo(() => onLocationChange ? view.location ?? {} : localLocation, [onLocationChange, view.location, localLocation]);
|
|
16
|
+
const mobileRef = useRef(null);
|
|
17
|
+
const locRef = useRef(loc);
|
|
18
|
+
useEffect(() => { locRef.current = loc; }, [loc]);
|
|
19
|
+
useEffect(() => { if (mobileRef.current)
|
|
20
|
+
mobileRef.current.scrollTop = locRef.current.mobileTop ?? 0; }, [type]);
|
|
21
|
+
function patch(p) { if (onLocationChange)
|
|
22
|
+
onLocationChange(p);
|
|
23
|
+
else {
|
|
24
|
+
locRef.current = { ...locRef.current, ...p };
|
|
25
|
+
setLocalLocation(locRef.current);
|
|
26
|
+
} }
|
|
27
|
+
const month = loc.month ?? new Date().toISOString().slice(0, 7);
|
|
28
|
+
const day = loc.calendarDay ?? null;
|
|
29
|
+
const showUnscheduled = view.schedulePolicy?.showUnscheduled === true && (loc.showUnscheduled ?? false);
|
|
30
|
+
const [showInvalid, setShowInvalid] = useState(false);
|
|
31
|
+
const anchorDate = loc.anchorDate ?? `${month}-01`;
|
|
32
|
+
const scale = loc.scale ?? "month";
|
|
33
|
+
const range = timelineWindow(anchorDate, scale);
|
|
34
|
+
function setMonth(value) { patch({ month: value, anchorDate: `${value}-01`, timelineLeft: undefined }); }
|
|
35
|
+
function setDay(value) { patch({ calendarDay: value }); }
|
|
36
|
+
function setShowUnscheduled(value) { patch({ showUnscheduled: value }); }
|
|
37
|
+
const [message, setMessage] = useState("");
|
|
38
|
+
const [dependencyPanel, setDependencyPanel] = useState(false);
|
|
39
|
+
const [proposal, setProposal] = useState(null);
|
|
40
|
+
const [reviewError, setReviewError] = useState("");
|
|
41
|
+
const resolveProposal = useRef(null);
|
|
42
|
+
const applying = useRef(false);
|
|
43
|
+
useEffect(() => () => { resolveProposal.current?.("cancelled"); resolveProposal.current = null; }, []);
|
|
44
|
+
async function requestSchedule(changes) {
|
|
45
|
+
if (!dependencies)
|
|
46
|
+
return onCommit ? onCommit(changes) : false;
|
|
47
|
+
if (!onScheduleCommit || resolveProposal.current || !view.gantt)
|
|
48
|
+
return false;
|
|
49
|
+
const plan = createGanttReschedulePlan({ rows: allRows, fields, mapping: view.gantt, getRowId, dependencies, changes, permissions });
|
|
50
|
+
setReviewError("");
|
|
51
|
+
setProposal({ plan, mapping: { ...view.gantt } });
|
|
52
|
+
return new Promise((resolve) => { resolveProposal.current = resolve; });
|
|
53
|
+
}
|
|
54
|
+
function closeProposal() {
|
|
55
|
+
if (busy || applying.current)
|
|
56
|
+
return;
|
|
57
|
+
resolveProposal.current?.("cancelled");
|
|
58
|
+
resolveProposal.current = null;
|
|
59
|
+
setProposal(null);
|
|
60
|
+
setReviewError("");
|
|
61
|
+
}
|
|
62
|
+
async function applyProposal() {
|
|
63
|
+
if (!proposal || !onScheduleCommit || busy || applying.current)
|
|
64
|
+
return;
|
|
65
|
+
applying.current = true;
|
|
66
|
+
try {
|
|
67
|
+
if (proposal.mapping.startFieldId !== view.gantt?.startFieldId || proposal.mapping.endFieldId !== view.gantt?.endFieldId || proposal.mapping.workdaysOnly !== view.gantt?.workdaysOnly)
|
|
68
|
+
throw new Error("日期設定已變更,請取消後重新預覽");
|
|
69
|
+
validateGanttScheduleGuard(proposal.plan.request.scheduleGuard, allRows, fields, getRowId, dependencies);
|
|
70
|
+
const saved = await onScheduleCommit(proposal.plan.request);
|
|
71
|
+
if (!saved) {
|
|
72
|
+
setReviewError("未套用改期。請取消後確認儲存提示,再重新預覽。");
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
resolveProposal.current?.(true);
|
|
76
|
+
resolveProposal.current = null;
|
|
77
|
+
setProposal(null);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
setReviewError(error instanceof Error ? error.message : "改期未完成");
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
applying.current = false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const data = useMemo(() => mapping ? scheduleRows(rows, fields, getRowId, type, mapping) : { items: [], unscheduled: rows, invalid: [] }, [rows, fields, getRowId, type, mapping]);
|
|
87
|
+
const days = monthDays(month);
|
|
88
|
+
const inMonth = data.items.filter((item) => item.start <= days.end && item.end >= days.start);
|
|
89
|
+
const pageItems = day === null ? inMonth : data.items.filter((item) => item.start <= day && item.end >= day);
|
|
90
|
+
const entries = useMemo(() => scheduleEntries(rows, fields, { groups: view.groups, collapsedGroups: view.collapsedGroups }), [rows, fields, view.groups, view.collapsedGroups]);
|
|
91
|
+
const count = type === "gantt" ? entries.length : showUnscheduled ? data.unscheduled.length : pageItems.length;
|
|
92
|
+
const paged = pageItems;
|
|
93
|
+
const ganttEntries = entries;
|
|
94
|
+
const itemMap = new Map(data.items.map((item) => [item.id, item]));
|
|
95
|
+
const configured = mapping?.titleFieldId && (type === "gantt" ? view.gantt?.startFieldId && view.gantt.endFieldId : view.calendar?.dateFieldId);
|
|
96
|
+
if (!configured)
|
|
97
|
+
return _jsxs("div", { className: "hy-dv-state", children: [_jsxs("strong", { children: ["\u5148\u8A2D\u5B9A", type === "gantt" ? "甘特圖" : "行事曆", "\u6B04\u4F4D"] }), _jsx("p", { children: "\u958B\u555F\u4E0A\u65B9\u8A2D\u5B9A\uFF0C\u9078\u64C7\u6A19\u984C\u53CA\u65E5\u671F\u4F86\u6E90\uFF1B\u4E0D\u6703\u5EFA\u7ACB\u53E6\u4E00\u4EFD\u8CC7\u6599\u3002" })] });
|
|
98
|
+
return _jsxs("div", { className: `hy-dv-schedule ${compact ? "is-compact" : ""}`, style: { "--hy-month-days": days.end - days.start + 1 }, children: [_jsxs("div", { className: "hy-dv-schedule-nav", children: [type === "gantt" && _jsxs(_Fragment, { children: [_jsxs("label", { children: ["\u6642\u9593\u5C3A\u5EA6", _jsx("select", { "aria-label": "\u6642\u9593\u5C3A\u5EA6", value: scale, onChange: (e) => patch({ scale: e.target.value, timelineLeft: undefined }), children: [["week", "週"], ["month", "月"], ["quarter", "季"], ["year", "年"]].map(([v, name]) => _jsx("option", { value: v, children: name }, v)) })] }), _jsxs("label", { children: ["\u5B9A\u4F4D\u65E5\u671F", _jsx("input", { type: "date", value: anchorDate, onChange: (e) => { if (dateDay(e.target.value) !== null)
|
|
99
|
+
patch({ anchorDate: e.target.value, timelineLeft: undefined }); } })] })] }), _jsx("button", { onClick: () => navigate(-1), "aria-label": "\u4E0A\u4E00\u500B\u671F\u9593", children: "\u2190" }), type !== "gantt" && _jsxs("label", { children: ["\u6708\u4EFD ", _jsx("input", { type: "month", value: month, onChange: (e) => { if (dateDay(`${e.target.value}-01`) !== null) {
|
|
100
|
+
setMonth(e.target.value);
|
|
101
|
+
setDay(null);
|
|
102
|
+
} } })] }), _jsx("button", { onClick: () => navigate(1), "aria-label": "\u4E0B\u4E00\u500B\u671F\u9593", children: "\u2192" }), _jsx("button", { onClick: () => { patch({ month: new Date().toISOString().slice(0, 7), anchorDate: new Date().toISOString().slice(0, 10), timelineLeft: undefined, calendarDay: null }); }, children: "\u4ECA\u5929" }), _jsx("span", { children: type === "gantt" ? `${dayString(range.start)} ~ ${dayString(range.end)}` : `本月 ${inMonth.length} 筆` }), view.schedulePolicy?.showUnscheduled === true && type !== "gantt" && _jsxs("button", { "aria-pressed": showUnscheduled, onClick: () => { setShowUnscheduled(!showUnscheduled); }, children: ["\u5C1A\u672A\u6392\u5B9A ", data.unscheduled.length] }), view.schedulePolicy?.showInvalidDates === true && _jsxs("button", { "aria-pressed": showInvalid, onClick: () => setShowInvalid(!showInvalid), children: ["\u65E5\u671F\u683C\u5F0F\u9700\u4FEE\u6B63 ", data.invalid.length] }), type === "gantt" && dependencies && _jsx("button", { onClick: () => setDependencyPanel(true), disabled: Boolean(proposal), children: "\u4F9D\u8CF4\u9023\u7DDA" })] }), type === "gantt" && _jsxs("div", { className: "hy-dv-gantt-help", children: [_jsxs("span", { className: "hy-dv-schedule-wide", children: [onCommit ? "可拖曳整條移動日期,左右端調整天數;點一下開啟詳情。" : "點排程查看詳情。", dependencies ? " 放開後先預覽,確認才會改期。" : "", view.gantt?.workdaysOnly ? " 工作天以週一至週五計算。" : " 天數包含開始與結束當日。"] }), _jsx("span", { className: "hy-dv-schedule-narrow", children: "\u9EDE\u5361\u7247\u67E5\u770B\u8207\u7DE8\u8F2F\u65E5\u671F\uFF1B\u6B04\u4F4D\u8A2D\u5B9A\u53EF\u8ABF\u6574\u5361\u7247\u986F\u793A\u5167\u5BB9\u3002" }), _jsx("span", { role: "status", "aria-live": "polite", children: message })] }), (view.schedulePolicy?.showInvalidDates === true && showInvalid) || type !== "gantt" && showUnscheduled ? _jsx("div", { className: "hy-dv-agenda", children: (view.schedulePolicy?.showInvalidDates === true && showInvalid ? data.invalid : data.unscheduled).map((row) => _jsx("button", { onClick: () => onOpen(row), children: getRowLabel(row) }, getRowId(row))) }) : _jsxs(_Fragment, { children: [type === "gantt" ? _jsxs(_Fragment, { children: [_jsx("div", { className: "hy-dv-schedule-wide", children: _jsx(GanttGrid, { metrics: metrics, groupLabel: groupLabel, onLoadNearEnd: onLoadNearEnd, getRowLabel: getRowLabel, entries: ganttEntries, items: data.items, fields: fields, getRowId: getRowId, view: view, window: range, onLocationChange: patch, onToggleGroup: onToggleGroup, renderLeftHeader: renderLeftHeader, renderLeftRow: renderLeftRow, onOpen: onOpen, onCommit: onCommit ? requestSchedule : undefined, onMessage: setMessage, busy: busy || Boolean(proposal), permissions: permissions, dependencies: dependencies }) }), _jsx("div", { ref: mobileRef, className: "hy-dv-schedule-narrow hy-dv-agenda hy-dv-mobile-scroll", onScroll: (e) => { onLoadNearEnd(e.currentTarget); patch({ mobileTop: e.currentTarget.scrollTop }); }, children: ganttEntries.map((entry) => {
|
|
103
|
+
if (entry.kind === "group")
|
|
104
|
+
return _jsxs("button", { className: "hy-dv-mobile-group-title", style: { paddingLeft: 10 + 16 * entry.node.depth }, "aria-expanded": !view.collapsedGroups.includes(entry.node.key), onClick: () => onToggleGroup?.(entry.node.key), children: [view.collapsedGroups.includes(entry.node.key) ? "›" : "⌄", " ", groupLabel(entry.node)] }, `g:${entry.node.key}`);
|
|
105
|
+
const item = itemMap.get(getRowId(entry.row));
|
|
106
|
+
return _jsxs("div", { className: "hy-dv-schedule-card", children: [item ? agendaItem(item) : _jsx("button", { onClick: () => onOpen(entry.row), children: getRowLabel(entry.row) }), renderMobileRow?.(entry.row)] }, getRowId(entry.row));
|
|
107
|
+
}) })] }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "hy-dv-calendar hy-dv-schedule-wide", children: [["日", "一", "二", "三", "四", "五", "六"].map((d) => _jsx("strong", { className: "hy-dv-weekday", children: d }, d)), days.grid.map((d) => {
|
|
108
|
+
const events = data.items.filter((item) => item.start <= d && item.end >= d);
|
|
109
|
+
return _jsxs("div", { className: `hy-dv-calendar-day ${d < days.start || d > days.end ? "is-outside" : ""}`, children: [_jsx("button", { className: "hy-dv-day-number", "aria-label": `查看 ${dayString(d)}`, onClick: () => { setDay(d); }, children: Number(dayString(d).slice(-2)) }), events.slice(0, 3).map((item) => _jsxs("button", { className: "hy-dv-event", style: { backgroundColor: item.color }, onClick: () => onOpen(item.row), title: `${item.time} ${item.title}`, children: [item.time !== "全天" && _jsxs("small", { children: [item.time, " "] }), item.title] }, item.id)), events.length > 3 && _jsxs("button", { className: "hy-dv-more", onClick: () => { setDay(d); }, children: ["\u53E6 ", events.length - 3, " \u7B46"] })] }, d);
|
|
110
|
+
})] }), _jsxs("div", { className: day === null ? "hy-dv-schedule-narrow" : "", children: [day !== null && _jsxs("div", { className: "hy-dv-schedule-nav", children: [_jsx("strong", { children: dayString(day) }), _jsx("button", { onClick: () => { setDay(null); }, children: "\u56DE\u5230\u5168\u6708" })] }), _jsx("div", { className: "hy-dv-agenda", children: paged.map(agendaItem) })] })] }), !count && _jsx("p", { className: "hy-dv-state", children: "\u6B64\u65E5\u671F\u7BC4\u570D\u6C92\u6709\u6392\u7A0B\u3002" })] }), _jsx("p", { className: "hy-dv-keyboard-help", children: "\u65E5\u671F\u4F9D\u8CC7\u6599\u7684 ISO \u65E5\u671F\u5448\u73FE\uFF1B\u6642\u5340\u7531\u63A5\u5165\u5C08\u6848\u7D71\u4E00\u3002" }), dependencyPanel && dependencies && view.gantt && _jsx(GanttDependencyPanel, { rows: allRows, fields: fields, mapping: view.gantt, getRowId: getRowId, state: dependencies, onChange: onDependencyChange, onClose: () => setDependencyPanel(false), busy: busy === true }), proposal && _jsx(GanttRescheduleReview, { plan: proposal.plan, fields: fields, mapping: proposal.mapping, onClose: closeProposal, onApply: () => void applyProposal(), busy: busy === true, error: reviewError })] });
|
|
111
|
+
function navigate(delta) {
|
|
112
|
+
if (type !== "gantt") {
|
|
113
|
+
setMonth(shiftMonth(month, delta));
|
|
114
|
+
setDay(null);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const value = scale === "week" ? dayString(dateDay(anchorDate) + delta * 7) : `${shiftMonth(anchorDate.slice(0, 7), delta * (scale === "quarter" ? 3 : scale === "year" ? 12 : 1))}-01`;
|
|
118
|
+
patch({ anchorDate: value, timelineLeft: undefined });
|
|
119
|
+
}
|
|
120
|
+
function agendaItem(item) { return _jsxs("button", { onClick: () => onOpen(item.row), style: { borderLeftColor: item.color }, children: [_jsx("strong", { children: item.title }), _jsxs("span", { children: [dayString(item.start), item.end !== item.start ? ` 至 ${dayString(item.end)}` : "", type === "gantt" && view.gantt?.showDuration !== false ? ` · ${ganttDuration(item.start, item.end, view.gantt?.workdaysOnly)}${view.gantt?.workdaysOnly ? " 工作天" : " 天"}` : "", " \u00B7 ", item.time || item.group || "排程", item.progress === undefined ? "" : ` · ${Math.round(item.progress * 100)}%`] })] }, item.id); }
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=schedule-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-view.js","sourceRoot":"","sources":["../src/schedule-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CalendarMapping, FieldDefinition, GanttMapping } from "./types.js";
|
|
2
|
+
export declare const DAY_MS = 86400000;
|
|
3
|
+
/** Use the supplied ISO wall date, not the browser timezone. Adapters convert zones. */
|
|
4
|
+
export declare function dateDay(value: unknown): number | null;
|
|
5
|
+
export declare function dayString(day: number): string;
|
|
6
|
+
export declare function monthDays(month: string): {
|
|
7
|
+
start: number;
|
|
8
|
+
end: number;
|
|
9
|
+
grid: number[];
|
|
10
|
+
};
|
|
11
|
+
export declare function shiftMonth(month: string, direction: number): string;
|
|
12
|
+
export type ScheduleItem<Row> = {
|
|
13
|
+
row: Row;
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
start: number;
|
|
17
|
+
end: number;
|
|
18
|
+
time: string;
|
|
19
|
+
color?: string;
|
|
20
|
+
group?: string;
|
|
21
|
+
progress?: number;
|
|
22
|
+
};
|
|
23
|
+
export declare function scheduleRows<Row>(rows: Row[], fields: FieldDefinition<Row>[], getRowId: (row: Row) => string, type: "gantt" | "calendar", mapping: GanttMapping | CalendarMapping): {
|
|
24
|
+
items: ScheduleItem<Row>[];
|
|
25
|
+
unscheduled: Row[];
|
|
26
|
+
invalid: Row[];
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=schedule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjF,eAAO,MAAM,MAAM,WAAa,CAAC;AACjC,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIrD;AACD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAA+D;AACpG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM;;;;EAOtC;AACD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAG1D;AACD,MAAM,MAAM,YAAY,CAAC,GAAG,IAAI;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErK,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,eAAe;;;;EAgDjL"}
|
package/dist/schedule.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { getFieldValue } from "./engine.js";
|
|
2
|
+
import { getFieldTypeDefinition, formatReadableValue } from "./registry.js";
|
|
3
|
+
export const DAY_MS = 86_400_000;
|
|
4
|
+
/** Use the supplied ISO wall date, not the browser timezone. Adapters convert zones. */
|
|
5
|
+
export function dateDay(value) {
|
|
6
|
+
if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}(?:$|T)/.test(value))
|
|
7
|
+
return null;
|
|
8
|
+
const day = value.slice(0, 10);
|
|
9
|
+
const timestamp = Date.parse(`${day}T00:00:00Z`);
|
|
10
|
+
return Number.isFinite(timestamp) && new Date(timestamp).toISOString().slice(0, 10) === day ? timestamp / DAY_MS : null;
|
|
11
|
+
}
|
|
12
|
+
export function dayString(day) { return new Date(day * DAY_MS).toISOString().slice(0, 10); }
|
|
13
|
+
export function monthDays(month) {
|
|
14
|
+
const start = dateDay(`${month}-01`);
|
|
15
|
+
if (start === null)
|
|
16
|
+
throw new Error("無效月份");
|
|
17
|
+
const date = new Date(start * DAY_MS);
|
|
18
|
+
const end = Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1) / DAY_MS - 1;
|
|
19
|
+
const gridStart = start - date.getUTCDay();
|
|
20
|
+
return { start, end, grid: Array.from({ length: 42 }, (_, i) => gridStart + i) };
|
|
21
|
+
}
|
|
22
|
+
export function shiftMonth(month, direction) {
|
|
23
|
+
const date = new Date(`${month}-01T00:00:00Z`);
|
|
24
|
+
date.setUTCMonth(date.getUTCMonth() + direction);
|
|
25
|
+
return date.toISOString().slice(0, 7);
|
|
26
|
+
}
|
|
27
|
+
export function scheduleRows(rows, fields, getRowId, type, mapping) {
|
|
28
|
+
const definitions = new Map(fields.map((f) => [f.id, f]));
|
|
29
|
+
function read(row, id) {
|
|
30
|
+
const field = definitions.get(id ?? "");
|
|
31
|
+
return field && !field.internal && field.canRead?.({ row, field }) !== false ? getFieldValue(row, field) : undefined;
|
|
32
|
+
}
|
|
33
|
+
const items = [];
|
|
34
|
+
const unscheduled = [];
|
|
35
|
+
const invalid = [];
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
const titleField = definitions.get(mapping.titleFieldId);
|
|
38
|
+
const titleValue = read(row, mapping.titleFieldId);
|
|
39
|
+
const title = titleField?.internal || titleField?.canRead?.({ row, field: titleField }) === false ? "無權限" : titleField ? formatReadableValue(titleValue, { ...titleField, internal: false }, row) || "未命名" : "未命名";
|
|
40
|
+
if (type === "gantt") {
|
|
41
|
+
const m = mapping;
|
|
42
|
+
const startValue = read(row, m.startFieldId);
|
|
43
|
+
const endValue = read(row, m.endFieldId);
|
|
44
|
+
const start = dateDay(startValue);
|
|
45
|
+
const end = dateDay(endValue);
|
|
46
|
+
const empty = (v) => v == null || v === "";
|
|
47
|
+
if ((!empty(startValue) && start === null) || (!empty(endValue) && end === null) || (start !== null && end !== null && end < start)) {
|
|
48
|
+
invalid.push(row);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (start === null || end === null) {
|
|
52
|
+
unscheduled.push(row);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const field = definitions.get(m.groupFieldId ?? "");
|
|
56
|
+
const value = read(row, m.groupFieldId);
|
|
57
|
+
const group = field ? field.canRead?.({ row, field }) === false ? "無權限" : getFieldTypeDefinition(field.type).group(value, field).label : undefined;
|
|
58
|
+
const progressValue = read(row, m.progressFieldId);
|
|
59
|
+
const progress = progressValue == null || progressValue === "" || !Number.isFinite(Number(progressValue)) ? undefined : Math.max(0, Math.min(1, Number(progressValue)));
|
|
60
|
+
const colorField = definitions.get(m.colorFieldId ?? "");
|
|
61
|
+
const colorValue = read(row, m.colorFieldId);
|
|
62
|
+
const candidateColor = m.colorMode === "field" ? colorValue == null ? undefined : colorField?.options?.find((o) => o.value === String(colorValue))?.color : m.color;
|
|
63
|
+
const color = candidateColor && /^#[0-9a-f]{6}$/i.test(candidateColor) ? candidateColor : "#316bff";
|
|
64
|
+
items.push({ row, id: getRowId(row), title, start, end, time: "", group, progress, color });
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const m = mapping;
|
|
68
|
+
const dateValue = read(row, m.dateFieldId);
|
|
69
|
+
const day = dateDay(dateValue);
|
|
70
|
+
if (dateValue == null || dateValue === "") {
|
|
71
|
+
unscheduled.push(row);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const startValue = read(row, m.startTimeFieldId);
|
|
75
|
+
const endValue = read(row, m.endTimeFieldId);
|
|
76
|
+
const hasStart = startValue != null && startValue !== "";
|
|
77
|
+
const hasEnd = endValue != null && endValue !== "";
|
|
78
|
+
// Optional time fields are complete dateTime values. Date field remains the anchor.
|
|
79
|
+
const startTime = hasStart && typeof startValue === "string" ? startValue.slice(11, 16) : "";
|
|
80
|
+
const endTime = hasEnd && typeof endValue === "string" ? endValue.slice(11, 16) : "";
|
|
81
|
+
const end = hasEnd ? dateDay(endValue) : day;
|
|
82
|
+
if (day === null || end === null || end < day ||
|
|
83
|
+
(hasStart && (dateDay(startValue) !== day || !/^([01]\d|2[0-3]):[0-5]\d$/.test(startTime))) ||
|
|
84
|
+
(hasEnd && !/^([01]\d|2[0-3]):[0-5]\d$/.test(endTime)) ||
|
|
85
|
+
(end === day && startTime && endTime && endTime < startTime)) {
|
|
86
|
+
invalid.push(row);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const colorField = definitions.get(m.colorFieldId ?? "");
|
|
90
|
+
const colorValue = read(row, m.colorFieldId);
|
|
91
|
+
const color = colorValue == null ? undefined : colorField?.options?.find((o) => o.value === String(colorValue))?.color;
|
|
92
|
+
items.push({ row, id: getRowId(row), title, start: day, end, time: startTime ? `${startTime}${endTime ? `–${endTime}` : ""}` : "全天", color: color && /^#[0-9a-f]{6}$/i.test(color) ? color : undefined });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return { items, unscheduled, invalid };
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=schedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"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"}
|