@timelinekit/core 1.0.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.
- package/LICENSE +46 -0
- package/README.md +0 -0
- package/dist/__tests__/common/functions.test.d.ts +1 -0
- package/dist/__tests__/critical-path-calculator.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/clipboard.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/critical-path-calculator.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/export/data-exporter.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/lag.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/length.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/resource-list.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/resource.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/task-list.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/task-part.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/task-resource.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/task-warnings.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/task.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/work.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/model/working-calendar.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/performance.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/scroll-and-zoom.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/task-interactions.test.d.ts +1 -0
- package/dist/__tests__/ganttchart/undo-manager.test.d.ts +1 -0
- package/dist/__tests__/licensing/features.test.d.ts +1 -0
- package/dist/__tests__/licensing/license-key.test.d.ts +1 -0
- package/dist/__tests__/licensing/license-manager.test.d.ts +1 -0
- package/dist/__tests__/licensing/watermark.test.d.ts +1 -0
- package/dist/__tests__/model/lag.test.d.ts +1 -0
- package/dist/__tests__/model/length.test.d.ts +1 -0
- package/dist/__tests__/model/resource-list.test.d.ts +1 -0
- package/dist/__tests__/model/resource.test.d.ts +1 -0
- package/dist/__tests__/model/task-list.test.d.ts +1 -0
- package/dist/__tests__/model/task-part.test.d.ts +1 -0
- package/dist/__tests__/model/task-resource.test.d.ts +1 -0
- package/dist/__tests__/model/task-warnings.test.d.ts +1 -0
- package/dist/__tests__/model/task.test.d.ts +1 -0
- package/dist/__tests__/model/work.test.d.ts +1 -0
- package/dist/__tests__/model/working-calendar.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/export/scheduler-data-exporter.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/model/scheduler-data.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/model/scheduler-event.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/model/scheduler-resource.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/multi-select.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/performance.test.d.ts +1 -0
- package/dist/__tests__/resourcescheduler/serialization.test.d.ts +1 -0
- package/dist/__tests__/undo-manager.test.d.ts +1 -0
- package/dist/common/auto-scroll.d.ts +10 -0
- package/dist/common/base-background-renderer.d.ts +17 -0
- package/dist/common/base-chart-handler.d.ts +53 -0
- package/dist/common/base-chart-scroll-handler.d.ts +45 -0
- package/dist/common/base-divider.d.ts +21 -0
- package/dist/common/base-header-renderer.d.ts +23 -0
- package/dist/common/base-image-exporter.d.ts +6 -0
- package/dist/common/base-markers-renderer.d.ts +15 -0
- package/dist/common/base-pdf-exporter.d.ts +11 -0
- package/dist/common/calc.d.ts +2 -0
- package/dist/common/class-with-listeners.d.ts +7 -0
- package/dist/common/common.d.ts +60 -0
- package/dist/common/custom-property.d.ts +12 -0
- package/dist/common/drawing.d.ts +2 -0
- package/dist/common/export-utils.d.ts +60 -0
- package/dist/common/functions.d.ts +25 -0
- package/dist/common/handler-result.d.ts +8 -0
- package/dist/common/scrollbar-utils.d.ts +5 -0
- package/dist/common/text.d.ts +24 -0
- package/dist/ganttchart/chart/chart-scroll-handler.d.ts +5 -0
- package/dist/ganttchart/chart/chart-time-axis.d.ts +32 -0
- package/dist/ganttchart/chart/chart.d.ts +7 -0
- package/dist/ganttchart/chart/handlers/add-task-part.d.ts +11 -0
- package/dist/ganttchart/chart/handlers/connector-dots-handler.d.ts +16 -0
- package/dist/ganttchart/chart/handlers/handler.d.ts +32 -0
- package/dist/ganttchart/chart/handlers/handlers.d.ts +14 -0
- package/dist/ganttchart/chart/handlers/move-milestone.d.ts +11 -0
- package/dist/ganttchart/chart/handlers/move-task-part.d.ts +11 -0
- package/dist/ganttchart/chart/handlers/resize-task-part.d.ts +11 -0
- package/dist/ganttchart/chart/handlers/select-link.d.ts +11 -0
- package/dist/ganttchart/chart/handlers/select-task.d.ts +22 -0
- package/dist/ganttchart/chart/handlers/set-task-progress.d.ts +11 -0
- package/dist/ganttchart/chart/renderers/chart-background-renderer.d.ts +8 -0
- package/dist/ganttchart/chart/renderers/chart-header-renderer.d.ts +7 -0
- package/dist/ganttchart/chart/renderers/chart-links-renderer.d.ts +7 -0
- package/dist/ganttchart/chart/renderers/chart-markers-renderer.d.ts +7 -0
- package/dist/ganttchart/chart/renderers/chart-tasks-renderer.d.ts +14 -0
- package/dist/ganttchart/chart/renderers/renderer-base.d.ts +9 -0
- package/dist/ganttchart/chart/task-link.calculator.d.ts +16 -0
- package/dist/ganttchart/chart/task-progress-calculator.d.ts +9 -0
- package/dist/ganttchart/chart/tooltip/chart-tooltip-renderer.d.ts +11 -0
- package/dist/ganttchart/clipboard.d.ts +32 -0
- package/dist/ganttchart/critical-path-calculator.d.ts +7 -0
- package/dist/ganttchart/divider/divider.d.ts +5 -0
- package/dist/ganttchart/export/data-exporter.d.ts +30 -0
- package/dist/ganttchart/export/export-common.d.ts +23 -0
- package/dist/ganttchart/export/image-exporter.d.ts +7 -0
- package/dist/ganttchart/export/pdf-exporter.d.ts +12 -0
- package/dist/ganttchart/ganttchart-engine.d.ts +172 -0
- package/dist/ganttchart/locale.d.ts +66 -0
- package/dist/ganttchart/model/custom-property.d.ts +1 -0
- package/dist/ganttchart/model/lag.d.ts +16 -0
- package/dist/ganttchart/model/length.d.ts +16 -0
- package/dist/ganttchart/model/marker.d.ts +7 -0
- package/dist/ganttchart/model/rate.d.ts +9 -0
- package/dist/ganttchart/model/resource-list.d.ts +16 -0
- package/dist/ganttchart/model/resource.d.ts +29 -0
- package/dist/ganttchart/model/sheet-column.d.ts +27 -0
- package/dist/ganttchart/model/task-filters.d.ts +14 -0
- package/dist/ganttchart/model/task-link.d.ts +22 -0
- package/dist/ganttchart/model/task-list-adapter.d.ts +28 -0
- package/dist/ganttchart/model/task-list.d.ts +65 -0
- package/dist/ganttchart/model/task-part.d.ts +39 -0
- package/dist/ganttchart/model/task-resource.d.ts +18 -0
- package/dist/ganttchart/model/task-warnings.d.ts +15 -0
- package/dist/ganttchart/model/task.d.ts +131 -0
- package/dist/ganttchart/model/work.d.ts +17 -0
- package/dist/ganttchart/model/working-calendar.d.ts +32 -0
- package/dist/ganttchart/recalculator.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/cell-editor.d.ts +23 -0
- package/dist/ganttchart/sheet/editors/currency-editor.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/date-editor.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/decimal-editor.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/dialog-editor.d.ts +17 -0
- package/dist/ganttchart/sheet/editors/input-editor.d.ts +19 -0
- package/dist/ganttchart/sheet/editors/integer-editor.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/length-editor.d.ts +10 -0
- package/dist/ganttchart/sheet/editors/percent-editor.d.ts +6 -0
- package/dist/ganttchart/sheet/editors/text-editor.d.ts +5 -0
- package/dist/ganttchart/sheet/editors/work-editor.d.ts +7 -0
- package/dist/ganttchart/sheet/renderers/sheet-cell-renderer.d.ts +5 -0
- package/dist/ganttchart/sheet/renderers/sheet-icons-cell-renderer.d.ts +10 -0
- package/dist/ganttchart/sheet/renderers/sheet-name-cell-renderer.d.ts +9 -0
- package/dist/ganttchart/sheet/renderers/sheet-resources-cell-renderer.d.ts +9 -0
- package/dist/ganttchart/sheet/sheet-keyboard-navigation.d.ts +26 -0
- package/dist/ganttchart/sheet/sheet-rows-selection.d.ts +24 -0
- package/dist/ganttchart/sheet/sheet.d.ts +18 -0
- package/dist/ganttchart/themes/classic-theme.d.ts +4 -0
- package/dist/ganttchart/themes/dark-theme.d.ts +4 -0
- package/dist/ganttchart/themes/light-theme.d.ts +4 -0
- package/dist/ganttchart/themes/modern-theme.d.ts +4 -0
- package/dist/ganttchart/themes/theme.d.ts +129 -0
- package/dist/ganttchart/undo-manager.d.ts +13 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.js +1 -0
- package/dist/licensing/features.d.ts +21 -0
- package/dist/licensing/license-key.d.ts +7 -0
- package/dist/licensing/license-manager.d.ts +13 -0
- package/dist/licensing/watermark.d.ts +1 -0
- package/dist/locales/cs.d.ts +2 -0
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +1 -0
- package/dist/locales/es.d.ts +2 -0
- package/dist/locales/fr.d.ts +2 -0
- package/dist/locales/it.d.ts +2 -0
- package/dist/locales/ja.d.ts +2 -0
- package/dist/locales/ko.d.ts +2 -0
- package/dist/locales/nl.d.ts +2 -0
- package/dist/locales/pl.d.ts +2 -0
- package/dist/locales/pt.d.ts +2 -0
- package/dist/locales/ru.d.ts +2 -0
- package/dist/locales/sv.d.ts +2 -0
- package/dist/locales/zh.d.ts +2 -0
- package/dist/resourcescheduler/chart/handlers/add-event.d.ts +12 -0
- package/dist/resourcescheduler/chart/handlers/move-event.d.ts +12 -0
- package/dist/resourcescheduler/chart/handlers/resize-event.d.ts +12 -0
- package/dist/resourcescheduler/chart/handlers/scheduler-handler.d.ts +23 -0
- package/dist/resourcescheduler/chart/handlers/scheduler-handlers.d.ts +18 -0
- package/dist/resourcescheduler/chart/handlers/select-event.d.ts +26 -0
- package/dist/resourcescheduler/chart/renderers/scheduler-background-renderer.d.ts +8 -0
- package/dist/resourcescheduler/chart/renderers/scheduler-events-renderer.d.ts +7 -0
- package/dist/resourcescheduler/chart/renderers/scheduler-header-renderer.d.ts +7 -0
- package/dist/resourcescheduler/chart/renderers/scheduler-markers-renderer.d.ts +7 -0
- package/dist/resourcescheduler/chart/renderers/scheduler-renderer-base.d.ts +9 -0
- package/dist/resourcescheduler/chart/scheduler-chart-scroll-handler.d.ts +5 -0
- package/dist/resourcescheduler/chart/scheduler-chart.d.ts +9 -0
- package/dist/resourcescheduler/chart/tooltip/scheduler-tooltip-renderer.d.ts +13 -0
- package/dist/resourcescheduler/clipboard.d.ts +18 -0
- package/dist/resourcescheduler/divider/scheduler-divider.d.ts +5 -0
- package/dist/resourcescheduler/export/scheduler-data-exporter.d.ts +23 -0
- package/dist/resourcescheduler/export/scheduler-export-common.d.ts +15 -0
- package/dist/resourcescheduler/export/scheduler-image-exporter.d.ts +6 -0
- package/dist/resourcescheduler/export/scheduler-pdf-exporter.d.ts +12 -0
- package/dist/resourcescheduler/model/scheduler-data-adapter.d.ts +21 -0
- package/dist/resourcescheduler/model/scheduler-data.d.ts +52 -0
- package/dist/resourcescheduler/model/scheduler-event.d.ts +31 -0
- package/dist/resourcescheduler/model/scheduler-resource.d.ts +35 -0
- package/dist/resourcescheduler/resourcescheduler-engine.d.ts +211 -0
- package/dist/resourcescheduler/sheet/renderers/scheduler-icon-cell-renderer.d.ts +6 -0
- package/dist/resourcescheduler/sheet/scheduler-sheet.d.ts +21 -0
- package/dist/styles/gc.css +1 -0
- package/dist/table/editors/cell-editor.d.ts +23 -0
- package/dist/table/editors/currency-editor.d.ts +7 -0
- package/dist/table/editors/date-editor.d.ts +9 -0
- package/dist/table/editors/decimal-editor.d.ts +7 -0
- package/dist/table/editors/dialog-editor.d.ts +17 -0
- package/dist/table/editors/input-editor.d.ts +19 -0
- package/dist/table/editors/integer-editor.d.ts +7 -0
- package/dist/table/editors/percent-editor.d.ts +7 -0
- package/dist/table/editors/text-editor.d.ts +6 -0
- package/dist/table/renderers/table-cell-renderer.d.ts +8 -0
- package/dist/table/table-column.d.ts +32 -0
- package/dist/table/table-context.d.ts +49 -0
- package/dist/table/table-data-source.d.ts +30 -0
- package/dist/table/table-keyboard-navigation.d.ts +25 -0
- package/dist/table/table-rows-selection.d.ts +13 -0
- package/dist/table/table.d.ts +51 -0
- package/dist/table/tree-table-keyboard-navigation.d.ts +16 -0
- package/dist/table/tree-table.d.ts +17 -0
- package/package.json +99 -0
- package/styles/_common.scss +405 -0
- package/styles/gc.scss +82 -0
- package/styles/rs.scss +32 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
+
import { ChartTimeline } from "../ganttchart/chart/chart-time-axis";
|
|
3
|
+
import { TimelineKitLocale } from "../ganttchart/locale";
|
|
4
|
+
import { WorkingCalendar } from "../ganttchart/model/working-calendar";
|
|
5
|
+
import { GanttChartTheme } from "../ganttchart/themes/theme";
|
|
6
|
+
import { DateRange } from "../ganttchart/ganttchart-engine";
|
|
7
|
+
import { Cursor, Rect } from "../common/common";
|
|
8
|
+
import type { Marker } from "../ganttchart/model/marker";
|
|
9
|
+
import { SchedulerData, SchedulerResourceFilterFn } from "./model/scheduler-data";
|
|
10
|
+
import { SchedulerDataAdapter } from "./model/scheduler-data-adapter";
|
|
11
|
+
import { TableContext } from "../table/table-context";
|
|
12
|
+
import type { SchedulerCsvExportOptions, SchedulerExcelExportOptions } from "./export/scheduler-data-exporter";
|
|
13
|
+
import type { SchedulerPdfExportOptions } from "./export/scheduler-pdf-exporter";
|
|
14
|
+
import { SchedulerResource, SchedulerResourceEventArgs } from "./model/scheduler-resource";
|
|
15
|
+
import { SchedulerEvent, SchedulerEventEventArgs } from "./model/scheduler-event";
|
|
16
|
+
export interface SchedulerEventRenderArgs {
|
|
17
|
+
event: SchedulerEvent;
|
|
18
|
+
resource: SchedulerResource;
|
|
19
|
+
rect: Rect;
|
|
20
|
+
ctx: CanvasRenderingContext2D;
|
|
21
|
+
isSelected: boolean;
|
|
22
|
+
colorIndex: number;
|
|
23
|
+
}
|
|
24
|
+
export type SchedulerEventRenderFn = (args: SchedulerEventRenderArgs) => boolean;
|
|
25
|
+
export interface SchedulerEventTooltipArgs {
|
|
26
|
+
event: SchedulerEvent;
|
|
27
|
+
resource: SchedulerResource;
|
|
28
|
+
}
|
|
29
|
+
export interface SchedulerEventTooltipContent {
|
|
30
|
+
title: string;
|
|
31
|
+
lines: {
|
|
32
|
+
name: string;
|
|
33
|
+
value: string;
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
export type SchedulerEventTooltipFn = (args: SchedulerEventTooltipArgs) => SchedulerEventTooltipContent | null;
|
|
37
|
+
import { SchedulerSheet } from "./sheet/scheduler-sheet";
|
|
38
|
+
import type { SchedulerEventsPastedEventArgs } from "./clipboard";
|
|
39
|
+
export declare class ResourceSchedulerContext {
|
|
40
|
+
data: SchedulerData;
|
|
41
|
+
dataAdapter: SchedulerDataAdapter;
|
|
42
|
+
table: TableContext<SchedulerResource>;
|
|
43
|
+
timeline: ChartTimeline;
|
|
44
|
+
locale$: BehaviorSubject<TimelineKitLocale>;
|
|
45
|
+
calendar$: BehaviorSubject<WorkingCalendar>;
|
|
46
|
+
theme$: BehaviorSubject<GanttChartTheme>;
|
|
47
|
+
projectTimeline$: BehaviorSubject<DateRange>;
|
|
48
|
+
settings: ResourceSchedulerSettings;
|
|
49
|
+
get scrollTop$(): BehaviorSubject<number>;
|
|
50
|
+
autoScrolling: boolean;
|
|
51
|
+
selectedResources$: BehaviorSubject<SchedulerResource[]>;
|
|
52
|
+
canEdit$: BehaviorSubject<boolean>;
|
|
53
|
+
get canEdit(): boolean;
|
|
54
|
+
showGridLines$: BehaviorSubject<boolean>;
|
|
55
|
+
showTodayLine$: BehaviorSubject<boolean>;
|
|
56
|
+
markers$: BehaviorSubject<Marker[]>;
|
|
57
|
+
defaultSheetWidth: number;
|
|
58
|
+
dividerPositionChanged$: Subject<void>;
|
|
59
|
+
dividerResizing$: BehaviorSubject<boolean>;
|
|
60
|
+
chartMouseWheel$: Subject<any>;
|
|
61
|
+
chartRedrawn$: Subject<void>;
|
|
62
|
+
chartBackgroundRedrawn$: Subject<void>;
|
|
63
|
+
chartCursor$: Subject<Cursor>;
|
|
64
|
+
chartEventHover$: BehaviorSubject<SchedulerEvent | null>;
|
|
65
|
+
selectedEvents$: BehaviorSubject<SchedulerEvent[]>;
|
|
66
|
+
sheetRowMouseOver$: BehaviorSubject<SchedulerResourceEventArgs | null>;
|
|
67
|
+
eventMoving$: Subject<SchedulerEventMovingArgs>;
|
|
68
|
+
eventResizing$: Subject<SchedulerEventResizingArgs>;
|
|
69
|
+
eventCreating$: Subject<SchedulerEventCreatingArgs>;
|
|
70
|
+
eventDeleting$: Subject<SchedulerEventDeletingArgs>;
|
|
71
|
+
eventRendering$: BehaviorSubject<SchedulerEventRenderFn | null>;
|
|
72
|
+
eventTooltip$: BehaviorSubject<SchedulerEventTooltipFn | null>;
|
|
73
|
+
constructor();
|
|
74
|
+
get calendar(): WorkingCalendar;
|
|
75
|
+
getRowHeight(resource: SchedulerResource): number;
|
|
76
|
+
getEventY(resource: SchedulerResource, event: SchedulerEvent): number;
|
|
77
|
+
getRowY(resource: SchedulerResource): number;
|
|
78
|
+
getTotalContentHeight(): number;
|
|
79
|
+
get frozenSectionBottom(): number;
|
|
80
|
+
}
|
|
81
|
+
export declare class ResourceSchedulerEngine {
|
|
82
|
+
#private;
|
|
83
|
+
get data(): SchedulerData;
|
|
84
|
+
get sheet(): SchedulerSheet;
|
|
85
|
+
get calendar$(): BehaviorSubject<WorkingCalendar>;
|
|
86
|
+
set calendar$(value: WorkingCalendar);
|
|
87
|
+
get events(): ResourceSchedulerEvents;
|
|
88
|
+
get selectedResources(): SchedulerResource[];
|
|
89
|
+
get selectedEvents(): SchedulerEvent[];
|
|
90
|
+
set selectedEvents(value: SchedulerEvent[]);
|
|
91
|
+
get selectedEvent(): SchedulerEvent | null;
|
|
92
|
+
set selectedEvent(value: SchedulerEvent | null);
|
|
93
|
+
get canEdit(): boolean;
|
|
94
|
+
set canEdit(value: boolean);
|
|
95
|
+
get canUndo$(): BehaviorSubject<boolean>;
|
|
96
|
+
get canRedo$(): BehaviorSubject<boolean>;
|
|
97
|
+
undo(): void;
|
|
98
|
+
redo(): void;
|
|
99
|
+
get showGridLines(): boolean;
|
|
100
|
+
set showGridLines(value: boolean);
|
|
101
|
+
get showTodayLine(): boolean;
|
|
102
|
+
set showTodayLine(value: boolean);
|
|
103
|
+
get markers(): Marker[];
|
|
104
|
+
set markers(value: Marker[]);
|
|
105
|
+
addMarker(marker: Marker): void;
|
|
106
|
+
removeMarker(marker: Marker): void;
|
|
107
|
+
clearMarkers(): void;
|
|
108
|
+
get eventRendering(): SchedulerEventRenderFn | null;
|
|
109
|
+
set eventRendering(value: SchedulerEventRenderFn | null);
|
|
110
|
+
get eventTooltip(): SchedulerEventTooltipFn | null;
|
|
111
|
+
set eventTooltip(value: SchedulerEventTooltipFn | null);
|
|
112
|
+
get filter(): SchedulerResourceFilterFn | null;
|
|
113
|
+
set filter(value: SchedulerResourceFilterFn | null);
|
|
114
|
+
clearFilter(): void;
|
|
115
|
+
get projectTimeline(): DateRange;
|
|
116
|
+
set projectTimeline(value: DateRange);
|
|
117
|
+
get settings(): ResourceSchedulerSettings;
|
|
118
|
+
constructor(hostElement: any);
|
|
119
|
+
destroy(): void;
|
|
120
|
+
copy(): Promise<void>;
|
|
121
|
+
cut(): Promise<void>;
|
|
122
|
+
paste(): Promise<SchedulerEventsPastedEventArgs | null>;
|
|
123
|
+
zoomIn(): boolean;
|
|
124
|
+
zoomOut(): boolean;
|
|
125
|
+
scrollToDate(date: Date): void;
|
|
126
|
+
scrollToResource(resource: SchedulerResource): void;
|
|
127
|
+
goToProjectStart(): void;
|
|
128
|
+
zoomToFit(events?: SchedulerEvent[]): void;
|
|
129
|
+
exportToImage(): Promise<Blob>;
|
|
130
|
+
exportToCsv(options?: SchedulerCsvExportOptions): string;
|
|
131
|
+
exportToExcel(options?: SchedulerExcelExportOptions): Promise<Blob>;
|
|
132
|
+
exportToPdf(options?: SchedulerPdfExportOptions): Promise<Blob>;
|
|
133
|
+
freezeResource(resource: SchedulerResource): void;
|
|
134
|
+
unfreezeResource(resource: SchedulerResource): void;
|
|
135
|
+
isResourceFrozen(resource: SchedulerResource): boolean;
|
|
136
|
+
save(): string;
|
|
137
|
+
load(text: string): void;
|
|
138
|
+
}
|
|
139
|
+
export declare class ResourceSchedulerEvents {
|
|
140
|
+
resourceAdded$: Subject<SchedulerResourceEventArgs>;
|
|
141
|
+
resourceChanged$: Subject<SchedulerResourceEventArgs>;
|
|
142
|
+
resourceRemoved$: Subject<SchedulerResourceEventArgs>;
|
|
143
|
+
eventAdded$: Subject<SchedulerEventEventArgs>;
|
|
144
|
+
eventChanged$: Subject<SchedulerEventEventArgs>;
|
|
145
|
+
eventRemoved$: Subject<SchedulerEventEventArgs>;
|
|
146
|
+
eventSelected$: Subject<SchedulerEventEventArgs | null>;
|
|
147
|
+
eventDblClick$: Subject<SchedulerEventEventArgs>;
|
|
148
|
+
eventDeleting$: Subject<SchedulerEventDeletingArgs>;
|
|
149
|
+
eventsPasted$: Subject<SchedulerEventsPastedEventArgs>;
|
|
150
|
+
chartContextMenu$: Subject<SchedulerChartContextMenuArgs>;
|
|
151
|
+
eventMoving$: Subject<SchedulerEventMovingArgs>;
|
|
152
|
+
eventResizing$: Subject<SchedulerEventResizingArgs>;
|
|
153
|
+
eventCreating$: Subject<SchedulerEventCreatingArgs>;
|
|
154
|
+
sheetRowContextMenu$: Subject<SchedulerRowContextMenuEventArgs>;
|
|
155
|
+
sheetCellEditing$: Subject<boolean>;
|
|
156
|
+
projectTimeline$: Subject<DateRange>;
|
|
157
|
+
undone$: Subject<void>;
|
|
158
|
+
redone$: Subject<void>;
|
|
159
|
+
constructor(ctx: ResourceSchedulerContext, sheet: SchedulerSheet);
|
|
160
|
+
/** Called by engine to wire chart handler events */
|
|
161
|
+
_bindChartHandlers(chart: import("./chart/scheduler-chart").SchedulerChart): void;
|
|
162
|
+
}
|
|
163
|
+
export interface SchedulerRowContextMenuEventArgs {
|
|
164
|
+
selectedResources: SchedulerResource[];
|
|
165
|
+
mouseEvent: any;
|
|
166
|
+
}
|
|
167
|
+
export interface SchedulerChartContextMenuArgs {
|
|
168
|
+
date: Date;
|
|
169
|
+
resource: SchedulerResource;
|
|
170
|
+
event: SchedulerEvent | null;
|
|
171
|
+
mouseEvent: any;
|
|
172
|
+
}
|
|
173
|
+
export interface SchedulerEventMovingArgs {
|
|
174
|
+
event: SchedulerEvent;
|
|
175
|
+
newStartTime: Date;
|
|
176
|
+
newEndTime: Date;
|
|
177
|
+
newResource: SchedulerResource;
|
|
178
|
+
cancel: boolean;
|
|
179
|
+
adjustedStartTime?: Date;
|
|
180
|
+
adjustedEndTime?: Date;
|
|
181
|
+
}
|
|
182
|
+
export interface SchedulerEventResizingArgs {
|
|
183
|
+
event: SchedulerEvent;
|
|
184
|
+
edge: 'left' | 'right';
|
|
185
|
+
newStartTime: Date;
|
|
186
|
+
newEndTime: Date;
|
|
187
|
+
cancel: boolean;
|
|
188
|
+
adjustedStartTime?: Date;
|
|
189
|
+
adjustedEndTime?: Date;
|
|
190
|
+
}
|
|
191
|
+
export interface SchedulerEventDeletingArgs {
|
|
192
|
+
event: SchedulerEvent;
|
|
193
|
+
cancel: boolean;
|
|
194
|
+
}
|
|
195
|
+
export interface SchedulerEventCreatingArgs {
|
|
196
|
+
resource: SchedulerResource;
|
|
197
|
+
startTime: Date;
|
|
198
|
+
endTime: Date;
|
|
199
|
+
cancel: boolean;
|
|
200
|
+
adjustedStartTime?: Date;
|
|
201
|
+
adjustedEndTime?: Date;
|
|
202
|
+
}
|
|
203
|
+
export declare class ResourceSchedulerSettings {
|
|
204
|
+
#private;
|
|
205
|
+
get locale(): TimelineKitLocale;
|
|
206
|
+
set locale(value: TimelineKitLocale);
|
|
207
|
+
get theme(): GanttChartTheme;
|
|
208
|
+
set theme(value: GanttChartTheme);
|
|
209
|
+
changed$: Subject<void>;
|
|
210
|
+
constructor(ctx: ResourceSchedulerContext);
|
|
211
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TableCellValueFormatter } from "../../../table/table-column";
|
|
2
|
+
import { TableCellRenderer } from "../../../table/renderers/table-cell-renderer";
|
|
3
|
+
import { SchedulerResource } from "../../model/scheduler-resource";
|
|
4
|
+
export declare class SchedulerIconCellRenderer extends TableCellRenderer<SchedulerResource> {
|
|
5
|
+
redraw(cell: any, valueFormatter: TableCellValueFormatter<SchedulerResource>, item: SchedulerResource): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { Table } from "../../table/table";
|
|
3
|
+
import { TableColumn } from "../../table/table-column";
|
|
4
|
+
import { SchedulerResource } from "../model/scheduler-resource";
|
|
5
|
+
import { ResourceSchedulerContext, SchedulerRowContextMenuEventArgs } from "../resourcescheduler-engine";
|
|
6
|
+
import { SchedulerResourceEventArgs } from "../model/scheduler-resource";
|
|
7
|
+
export declare class SchedulerSheet extends Table<SchedulerResource> {
|
|
8
|
+
#private;
|
|
9
|
+
rowContextMenu$: Subject<SchedulerRowContextMenuEventArgs>;
|
|
10
|
+
rowMouseOver$: Subject<SchedulerResourceEventArgs | null>;
|
|
11
|
+
constructor(ctx: ResourceSchedulerContext, sheetElement: any);
|
|
12
|
+
protected getItemRowHeight(resource: SchedulerResource): number;
|
|
13
|
+
protected redrawItemRow(resource: SchedulerResource): void;
|
|
14
|
+
protected onComplexOperationFinished(): void;
|
|
15
|
+
addCustomStringColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
|
|
16
|
+
addCustomIntegerColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
|
|
17
|
+
addCustomDecimalColumn(code: string, displayName: string): TableColumn<SchedulerResource>;
|
|
18
|
+
getDefaultColumns(): TableColumn<SchedulerResource>[];
|
|
19
|
+
getCustomColumns(): TableColumn<SchedulerResource>[];
|
|
20
|
+
clearSelection(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.gc-host{display:block;height:100%;overflow:hidden}.gc-wrapper{width:100%;height:100%;display:flex;gap:0px;color:var(--gc-sheet-text-color, #000000)}.gc-divider{width:0px;height:100%;position:relative}.gc-divider .resizer{top:0px;bottom:0px;position:absolute;right:-10px;z-index:30;width:20px;cursor:ew-resize}.gc-sheet{height:100%;display:inline-block}.gc-sheet .row-header{width:30px}.gc-sheet .header{position:sticky;top:0;z-index:8;height:50px;border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .row-header{z-index:9;background-color:var(--gc-sheet-header-bg-color, #f8f8f8)}.gc-sheet .header .cell{display:flex;align-items:center;border-right:1px solid var(--gc-sheet-header-cell-divider-color, #a0a0a0);height:50px;padding-left:8px;padding-right:8px;position:relative;user-select:none}.gc-sheet .header .cell .resizer{height:100%;position:absolute;right:-10px;z-index:10;width:20px;cursor:ew-resize}.gc-sheet .header .cell.dotted{text-decoration:underline dotted !important}.gc-sheet .header .cell.hidden{display:none !important}.gc-sheet .content{overflow-x:auto;overflow-y:auto;height:100%;outline:none}.gc-sheet .content .row{height:30px;border-bottom:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);display:flex;align-items:center;gap:0px;background-color:var(--gc-sheet-bg-color, #ffffff)}.gc-sheet .content .row.hidden{display:none}.gc-sheet .content .row .row-header{background-color:var(--gc-sheet-header-bg-color, #f8f8f8);border-top:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-bottom:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-left:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0);border-right:1px solid var(--gc-sheet-header-cell-border-color, #a0a0a0) !important;justify-content:center;cursor:default !important;user-select:none}.gc-sheet .content .row .cell{display:flex;align-items:center;border-right:1px solid var(--gc-sheet-grid-line-color, #e0e0e0);height:30px;padding-left:8px;padding-right:8px;overflow-x:hidden;white-space:nowrap;user-select:none;position:relative}.gc-sheet .content .row .cell.row-header{position:sticky;left:0;z-index:2}.gc-sheet .content .row .cell .editor{height:28px;width:100%;padding-left:0px;padding-right:0px;border:none;background-color:var(--gc-editor-bg-color, #ffffff);color:var(--gc-editor-text-color, #000000)}.gc-sheet .content .row .cell input.editor{line-height:26px}.gc-sheet .content .row .cell input.editor:focus{outline:none}.gc-sheet .content .row .cell.focused{outline:2px solid var(--gc-sheet-focus-border-color, #4a7cf6);outline-offset:-2px}.gc-sheet .content .row .cell .highlight{border:1px solid var(--gc-sheet-highlight-border-color, #647ee8);position:absolute;z-index:10;left:0px;top:0px;right:0px;bottom:0px}.gc-sheet .content .row .cell.hidden{display:none !important}.gc-sheet .content .row .tree-with-name{flex-wrap:nowrap}.gc-sheet .content .row .tree-with-name .tree{margin-left:3px;display:flex;flex:0 0 auto;justify-content:end;align-items:center}.gc-sheet .content .row .tree-with-name .name{display:flex;align-items:center;padding-left:5px;overflow-x:visible;white-space:nowrap;user-select:none}.gc-sheet .content .row .resources{gap:7px}.gc-sheet .content .row .resources .wrapper{display:flex;align-items:center;gap:3px}.gc-sheet .content .row .resources .wrapper .avatar{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:10pt}.gc-sheet .content .row .resources .wrapper .capacity{font-size:11pt}.gc-sheet .content .row .task-summary{font-weight:bold}.gc-sheet .content .row.hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row:hover .cell{background-color:var(--gc-sheet-hover-bg-color, #f8f8f8)}.gc-sheet .content .row.selected{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .cell{background-color:var(--gc-sheet-selected-bg-color, #f8f8f8)}.gc-sheet .content .row.selected .row-header{background-color:var(--gc-sheet-selected-row-header-color, #e8e8e8)}.gc-chart{flex:1;height:100%;display:inline-block;overflow-x:scroll;overflow-y:hidden;z-index:16}.gc-chart .inner{width:1000px;height:1px}.gc-chart .canvas{height:100%;width:100%;position:absolute;z-index:15}.gc-chart.no-pointer-events{pointer-events:none}.gc-chart.cursor-pointer{cursor:pointer !important}.gc-chart.cursor-all-scroll{cursor:all-scroll !important}.gc-chart.cursor-ew-resize{cursor:ew-resize !important}.gc-chart.cursor-ns-resize{cursor:ns-resize !important}.gc-chart.cursor-nwse-resize{cursor:nwse-resize !important}.gc-chart.cursor-nesw-resize{cursor:nesw-resize !important}.gc-chart.cursor-crosshair{cursor:crosshair !important}.gc-tree-icon{display:flex;align-items:center;cursor:pointer;padding:5px 5px 5px 5px}.gc-tree-icon .tree-icon{width:6px;height:6px;display:inline-block;transform:rotate(0deg);transition:transform .3s ease;border-style:solid;border-width:2px 2px 0 0;border-color:var(--gc-tree-icon-color, #606060)}.gc-tree-icon.collapsed .tree-icon{transform:rotate(45deg);margin-bottom:3px}.gc-tree-icon.expanded .tree-icon{transform:rotate(-225deg);margin-bottom:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content,.gc-wrapper[data-color-scheme=light] .gc-chart{scrollbar-color:#ccc #f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-track{background:#f5f5f5}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb{background:#ccc;border-radius:6px}.gc-wrapper[data-color-scheme=light] .gc-sheet .content::-webkit-scrollbar-thumb:hover,.gc-wrapper[data-color-scheme=light] .gc-chart::-webkit-scrollbar-thumb:hover{background:#d8d8d8}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content,.gc-wrapper[data-color-scheme=dark] .gc-chart{scrollbar-color:#555 #1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar{width:12px;height:12px}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-track,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-track{background:#1e1e1e}.gc-wrapper[data-color-scheme=dark] .gc-sheet .content::-webkit-scrollbar-thumb,.gc-wrapper[data-color-scheme=dark] .gc-chart::-webkit-scrollbar-thumb{background:#555;border-radius:6px}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { TableColumn } from "../table-column";
|
|
3
|
+
import { TableContext } from "../table-context";
|
|
4
|
+
import { TableItem } from "../table-data-source";
|
|
5
|
+
export type CellEditEndDirection = 'none' | 'down' | 'up' | 'right' | 'left';
|
|
6
|
+
export type CellEditorValueGetter<TItem> = (item: TItem) => any;
|
|
7
|
+
export type CellEditorValueSetter<TItem> = (item: TItem, newValue: any) => void;
|
|
8
|
+
export declare abstract class TableCellEditor<TItem extends TableItem> {
|
|
9
|
+
#private;
|
|
10
|
+
protected context: TableContext<TItem> | null;
|
|
11
|
+
invalidValue$: Subject<void>;
|
|
12
|
+
editEnded$: Subject<CellEditEndDirection>;
|
|
13
|
+
protected cell: any;
|
|
14
|
+
protected item: TItem | null;
|
|
15
|
+
get columnCode(): string | null;
|
|
16
|
+
constructor(getter: CellEditorValueGetter<TItem>, setter: CellEditorValueSetter<TItem>);
|
|
17
|
+
init(context: TableContext<TItem>): void;
|
|
18
|
+
beginEdit(column: TableColumn<TItem>, cell: any, item: TItem): void;
|
|
19
|
+
protected abstract beginEditInternal(cell: any, item: TItem, value: any): void;
|
|
20
|
+
endEdit(newParsedValue: any, direction?: CellEditEndDirection): void;
|
|
21
|
+
cancelEdit(): void;
|
|
22
|
+
abstract endEditIfModifiedElseCancel(): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class CurrencyCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
protected onInputCreated(input: any): void;
|
|
5
|
+
formatValue(value: any): string;
|
|
6
|
+
tryParseValue(value: any): any | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class DateCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
onInputCreated(input: any): void;
|
|
5
|
+
formatValue(value: any): string;
|
|
6
|
+
protected getDefaultDate(): Date;
|
|
7
|
+
protected getLocale(): string;
|
|
8
|
+
tryParseValue(value: any): any | null;
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class DecimalCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
protected onInputCreated(input: any): void;
|
|
5
|
+
formatValue(value: any): string;
|
|
6
|
+
tryParseValue(value: any): any | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { TableItem } from "../table-data-source";
|
|
3
|
+
import { TableCellEditor } from "./cell-editor";
|
|
4
|
+
export declare class DialogCellEditor<TItem extends TableItem> extends TableCellEditor<TItem> {
|
|
5
|
+
beginEdit$: Subject<DialogEditorArgs<TItem>>;
|
|
6
|
+
cancelEdit$: Subject<void>;
|
|
7
|
+
endEdit$: Subject<void>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected beginEditInternal(cell: any, item: TItem, value: any): void;
|
|
10
|
+
endEditIfModifiedElseCancel(): void;
|
|
11
|
+
}
|
|
12
|
+
export interface DialogEditorArgs<TItem extends TableItem> {
|
|
13
|
+
item: TItem;
|
|
14
|
+
columnCode: string;
|
|
15
|
+
cancelEdit$: Subject<void>;
|
|
16
|
+
endEdit$: Subject<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { TableColumn } from "../table-column";
|
|
3
|
+
import { TableItem } from "../table-data-source";
|
|
4
|
+
import { TableCellEditor } from "./cell-editor";
|
|
5
|
+
export declare abstract class TableInputCellEditor<TItem extends TableItem> extends TableCellEditor<TItem> {
|
|
6
|
+
#private;
|
|
7
|
+
beginEdit$: Subject<InputEditorArgs<TItem>>;
|
|
8
|
+
beginEdit(column: TableColumn<TItem>, cell: any, item: TItem): void;
|
|
9
|
+
beginEditInternal(cell: any, item: TItem, value: any): void;
|
|
10
|
+
protected onInputCreated(input: any): void;
|
|
11
|
+
abstract tryParseValue(value: any): any | null;
|
|
12
|
+
abstract formatValue(value: any): string;
|
|
13
|
+
endEditIfModifiedElseCancel(): void;
|
|
14
|
+
}
|
|
15
|
+
export interface InputEditorArgs<TItem extends TableItem> {
|
|
16
|
+
input: any;
|
|
17
|
+
columnCode: string;
|
|
18
|
+
editor: TableInputCellEditor<TItem>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class IntegerCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
protected onInputCreated(input: any): void;
|
|
5
|
+
formatValue(value: any): string;
|
|
6
|
+
tryParseValue(value: any): any | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class PercentCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
protected onInputCreated(input: any): void;
|
|
5
|
+
formatValue(value: any): string;
|
|
6
|
+
tryParseValue(value: any): any | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TableItem } from "../table-data-source";
|
|
2
|
+
import { TableInputCellEditor } from "./input-editor";
|
|
3
|
+
export declare class TextCellEditor<TItem extends TableItem> extends TableInputCellEditor<TItem> {
|
|
4
|
+
formatValue(value: any): string;
|
|
5
|
+
tryParseValue(value: any): any;
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TableCellValueFormatter } from "../table-column";
|
|
2
|
+
import { TableItem } from "../table-data-source";
|
|
3
|
+
export declare abstract class TableCellRenderer<TItem extends TableItem> {
|
|
4
|
+
abstract redraw(cell: any, valueFormatter: TableCellValueFormatter<TItem>, item: TItem): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class DefaultTableCellRenderer<TItem extends TableItem> extends TableCellRenderer<TItem> {
|
|
7
|
+
redraw(cell: any, valueFormatter: TableCellValueFormatter<TItem>, item: TItem): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { TableCellEditor } from "./editors/cell-editor";
|
|
3
|
+
import { TableCellRenderer } from "./renderers/table-cell-renderer";
|
|
4
|
+
import { TableItem } from "./table-data-source";
|
|
5
|
+
export declare class TableColumn<TItem extends TableItem> {
|
|
6
|
+
#private;
|
|
7
|
+
get code(): string;
|
|
8
|
+
get name(): string;
|
|
9
|
+
set name(value: string);
|
|
10
|
+
get width(): number;
|
|
11
|
+
set width(value: number);
|
|
12
|
+
get minWidth(): number;
|
|
13
|
+
set minWidth(value: number);
|
|
14
|
+
get valueFormatter(): TableCellValueFormatter<TItem>;
|
|
15
|
+
get renderer(): TableCellRenderer<TItem>;
|
|
16
|
+
get align(): TextAlign | null;
|
|
17
|
+
get editor(): TableCellEditor<TItem> | null;
|
|
18
|
+
get isEditable(): TableCellIsEditable<TItem>;
|
|
19
|
+
get isVisible(): boolean;
|
|
20
|
+
set isVisible(value: boolean);
|
|
21
|
+
get tooltip(): string | null;
|
|
22
|
+
set tooltip(value: string | null);
|
|
23
|
+
get headerHtml(): string | null;
|
|
24
|
+
set headerHtml(value: string | null);
|
|
25
|
+
get isCustom(): boolean;
|
|
26
|
+
set isCustom(value: boolean);
|
|
27
|
+
changed$: Subject<TableColumn<TItem>>;
|
|
28
|
+
constructor(code: string, name: string, valueFormatter: TableCellValueFormatter<TItem>, renderer: TableCellRenderer<TItem>, editor: TableCellEditor<TItem> | null, isEditable: TableCellIsEditable<TItem>, width?: number, minWidth?: number, align?: TextAlign, tooltip?: string);
|
|
29
|
+
}
|
|
30
|
+
export type TableCellValueFormatter<TItem> = (item: TItem) => string;
|
|
31
|
+
export type TextAlign = 'Left' | 'Center' | 'Right';
|
|
32
|
+
export type TableCellIsEditable<TItem> = (item: TItem) => boolean;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
+
import { TableCellEditor } from "./editors/cell-editor";
|
|
3
|
+
import { DialogEditorArgs } from "./editors/dialog-editor";
|
|
4
|
+
import { InputEditorArgs } from "./editors/input-editor";
|
|
5
|
+
import { TableColumn } from "./table-column";
|
|
6
|
+
import { TableDataSource, TableItem, TableItemEventArgs } from "./table-data-source";
|
|
7
|
+
export interface TableFocusedCell<TItem extends TableItem> {
|
|
8
|
+
item: TItem;
|
|
9
|
+
columnIndex: number;
|
|
10
|
+
}
|
|
11
|
+
export interface TableCellEditing<TItem extends TableItem> {
|
|
12
|
+
cell: any;
|
|
13
|
+
editor: TableCellEditor<TItem>;
|
|
14
|
+
}
|
|
15
|
+
export interface TableRowEventArgs<TItem extends TableItem> {
|
|
16
|
+
item: TItem;
|
|
17
|
+
row: any;
|
|
18
|
+
}
|
|
19
|
+
export interface TableRowContextMenuEventArgs<TItem extends TableItem> {
|
|
20
|
+
selectedItems: TItem[];
|
|
21
|
+
mouseEvent: any;
|
|
22
|
+
}
|
|
23
|
+
export interface TableColumnHeaderEventArgs<TItem extends TableItem> {
|
|
24
|
+
column: TableColumn<TItem>;
|
|
25
|
+
mouseEvent: any;
|
|
26
|
+
}
|
|
27
|
+
export interface TableColumnEventArgs<TItem extends TableItem> {
|
|
28
|
+
column: TableColumn<TItem>;
|
|
29
|
+
}
|
|
30
|
+
export declare class TableContext<TItem extends TableItem> {
|
|
31
|
+
dataSource: TableDataSource<TItem>;
|
|
32
|
+
rowHeight: number;
|
|
33
|
+
canEdit$: BehaviorSubject<boolean>;
|
|
34
|
+
get canEdit(): boolean;
|
|
35
|
+
scrollTop$: BehaviorSubject<number>;
|
|
36
|
+
rowAdded$: Subject<TableRowEventArgs<TItem>>;
|
|
37
|
+
selectedItems$: BehaviorSubject<TItem[]>;
|
|
38
|
+
focusedCell$: BehaviorSubject<TableFocusedCell<TItem> | null>;
|
|
39
|
+
cellEditing$: BehaviorSubject<TableCellEditing<TItem> | null>;
|
|
40
|
+
cellInvalidValue$: Subject<void>;
|
|
41
|
+
cellDialogEdit$: Subject<DialogEditorArgs<TItem>>;
|
|
42
|
+
cellInputEdit$: Subject<InputEditorArgs<TItem>>;
|
|
43
|
+
columnHeaderContextMenu$: Subject<TableColumnHeaderEventArgs<TItem>>;
|
|
44
|
+
columnResized$: Subject<TableColumnEventArgs<TItem>>;
|
|
45
|
+
columnReordered$: Subject<TableColumnEventArgs<TItem>>;
|
|
46
|
+
rowContextMenu$: Subject<TableRowContextMenuEventArgs<TItem>>;
|
|
47
|
+
rowMouseOver$: BehaviorSubject<TableItemEventArgs<TItem> | null>;
|
|
48
|
+
constructor(dataSource: TableDataSource<TItem>, rowHeight?: number);
|
|
49
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
export interface TableItem {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
}
|
|
5
|
+
export interface TableItemEventArgs<TItem> {
|
|
6
|
+
item: TItem;
|
|
7
|
+
}
|
|
8
|
+
export interface TableDataSource<TItem extends TableItem> {
|
|
9
|
+
readonly length: number;
|
|
10
|
+
getItem(index: number): TItem;
|
|
11
|
+
getItemById(id: string): TItem | null;
|
|
12
|
+
indexOf(item: TItem): number;
|
|
13
|
+
addEmptyItem(): TItem;
|
|
14
|
+
insertEmptyItem(index: number): TItem;
|
|
15
|
+
removeItems(items: TItem[]): void;
|
|
16
|
+
getItemLabel(item: TItem): string;
|
|
17
|
+
getNextVisible(item: TItem): TItem | null;
|
|
18
|
+
getPreviousVisible(item: TItem): TItem | null;
|
|
19
|
+
itemChanged$: Subject<TableItemEventArgs<TItem>>;
|
|
20
|
+
itemRemoved$: Subject<TableItemEventArgs<TItem>>;
|
|
21
|
+
complexOperationFinished$: Subject<void>;
|
|
22
|
+
}
|
|
23
|
+
export interface TreeTableDataSource<TItem extends TableItem> extends TableDataSource<TItem> {
|
|
24
|
+
isItemHidden(item: TItem): boolean;
|
|
25
|
+
indent(items: TItem[]): void;
|
|
26
|
+
outdent(items: TItem[]): void;
|
|
27
|
+
moveUp(items: TItem[]): void;
|
|
28
|
+
moveDown(items: TItem[]): void;
|
|
29
|
+
itemCollapsedChanged$: Subject<TableItemEventArgs<TItem>>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TableColumn } from "./table-column";
|
|
2
|
+
import { TableContext, TableFocusedCell } from "./table-context";
|
|
3
|
+
import { TableItem } from "./table-data-source";
|
|
4
|
+
export interface TableNavigationHost<TItem extends TableItem> {
|
|
5
|
+
getColumns(): TableColumn<TItem>[];
|
|
6
|
+
getItemRow(item: TItem): any;
|
|
7
|
+
beginEdit(initialChar?: string): void;
|
|
8
|
+
deleteSelectedItems(): void;
|
|
9
|
+
insertItemAfterFocused(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class TableKeyboardNavigation<TItem extends TableItem> {
|
|
12
|
+
#private;
|
|
13
|
+
protected context: TableContext<TItem>;
|
|
14
|
+
protected content: any;
|
|
15
|
+
protected host: TableNavigationHost<TItem>;
|
|
16
|
+
constructor(context: TableContext<TItem>, content: any, host: TableNavigationHost<TItem>);
|
|
17
|
+
get focusedCell(): TableFocusedCell<TItem> | null;
|
|
18
|
+
onCellMousedown(cell: any, column: TableColumn<TItem>, item: TItem): void;
|
|
19
|
+
onCellDblClick(): void;
|
|
20
|
+
onEditEnded(direction: string): void;
|
|
21
|
+
onKeyDown(event: any): void;
|
|
22
|
+
protected handleCustomKeyDown(event: any, focused: TableFocusedCell<TItem>): boolean;
|
|
23
|
+
setFocus(item: TItem, columnIndex: number): void;
|
|
24
|
+
clearFocus(): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Subject } from "rxjs";
|
|
2
|
+
import { TableContext, TableRowContextMenuEventArgs } from "./table-context";
|
|
3
|
+
import { TableItem } from "./table-data-source";
|
|
4
|
+
export declare class TableRowsSelection<TItem extends TableItem> {
|
|
5
|
+
#private;
|
|
6
|
+
get items(): TItem[];
|
|
7
|
+
changed$: Subject<void>;
|
|
8
|
+
rowContextMenu$: Subject<TableRowContextMenuEventArgs<TItem>>;
|
|
9
|
+
constructor(context: TableContext<TItem>, content: any);
|
|
10
|
+
cancelRangeSelection(): void;
|
|
11
|
+
clear(): void;
|
|
12
|
+
updateWithCurrentSelection(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { TableColumn } from "./table-column";
|
|
2
|
+
import { TableContext } from "./table-context";
|
|
3
|
+
import { TableItem } from "./table-data-source";
|
|
4
|
+
import { TableKeyboardNavigation, TableNavigationHost } from "./table-keyboard-navigation";
|
|
5
|
+
import { TableRowsSelection } from "./table-rows-selection";
|
|
6
|
+
import { ClassWithListeners } from "../common/class-with-listeners";
|
|
7
|
+
export declare class Table<TItem extends TableItem> extends ClassWithListeners implements TableNavigationHost<TItem> {
|
|
8
|
+
#private;
|
|
9
|
+
protected get tableContext(): TableContext<TItem>;
|
|
10
|
+
protected get contentElement(): any;
|
|
11
|
+
protected get headerElement(): any;
|
|
12
|
+
protected get navigation(): TableKeyboardNavigation<TItem>;
|
|
13
|
+
protected get selection(): TableRowsSelection<TItem>;
|
|
14
|
+
protected get rowsContainer(): any;
|
|
15
|
+
constructor(context: TableContext<TItem>, tableElement: any);
|
|
16
|
+
protected createKeyboardNavigation(): TableKeyboardNavigation<TItem>;
|
|
17
|
+
getColumns(): TableColumn<TItem>[];
|
|
18
|
+
getItemRow(item: TItem): any;
|
|
19
|
+
beginEdit(initialChar?: string): void;
|
|
20
|
+
deleteSelectedItems(): void;
|
|
21
|
+
insertItemAfterFocused(): void;
|
|
22
|
+
addColumn(column: TableColumn<TItem>): void;
|
|
23
|
+
get columnsLength(): number;
|
|
24
|
+
getColumn(index: number): TableColumn<TItem>;
|
|
25
|
+
getColumnByCode(code: string): TableColumn<TItem> | null;
|
|
26
|
+
protected updateColumnVisibility(column: TableColumn<TItem>): void;
|
|
27
|
+
protected getItemRowHeight(item: TItem): number;
|
|
28
|
+
protected onItemChanged(item: TItem): void;
|
|
29
|
+
protected onItemRemoved(item: TItem): void;
|
|
30
|
+
protected onComplexOperationFinished(): void;
|
|
31
|
+
protected redrawItemRow(item: TItem): void;
|
|
32
|
+
protected redrawAll(): void;
|
|
33
|
+
protected updateColumnHeaders(): void;
|
|
34
|
+
scrollContentVertically(deltaY: number): void;
|
|
35
|
+
setScrollTop(value: number): void;
|
|
36
|
+
setHoverItem(item: TItem | null): void;
|
|
37
|
+
hideColumn(code: string): void;
|
|
38
|
+
removeColumn(code: string): void;
|
|
39
|
+
getColumnsContentWidth(): number;
|
|
40
|
+
getDefaultColumns(): TableColumn<TItem>[];
|
|
41
|
+
getCustomColumns(): TableColumn<TItem>[];
|
|
42
|
+
saveColumns(): ColumnState[];
|
|
43
|
+
loadColumns(states: ColumnState[]): void;
|
|
44
|
+
scrollToItem(item: TItem): void;
|
|
45
|
+
clearSelection(): void;
|
|
46
|
+
}
|
|
47
|
+
export interface ColumnState {
|
|
48
|
+
code: string;
|
|
49
|
+
width: number;
|
|
50
|
+
isVisible: boolean;
|
|
51
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TableContext, TableFocusedCell } from "./table-context";
|
|
2
|
+
import { TableItem } from "./table-data-source";
|
|
3
|
+
import { TableKeyboardNavigation, TableNavigationHost } from "./table-keyboard-navigation";
|
|
4
|
+
export interface TreeTableNavigationHost<TItem extends TableItem> extends TableNavigationHost<TItem> {
|
|
5
|
+
indentSelectedItems(): void;
|
|
6
|
+
outdentSelectedItems(): void;
|
|
7
|
+
moveUpSelectedItems(): void;
|
|
8
|
+
moveDownSelectedItems(): void;
|
|
9
|
+
toggleCollapsed(item: TItem): void;
|
|
10
|
+
canToggleCollapsed(item: TItem): boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class TreeTableKeyboardNavigation<TItem extends TableItem> extends TableKeyboardNavigation<TItem> {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(context: TableContext<TItem>, content: any, host: TreeTableNavigationHost<TItem>);
|
|
15
|
+
protected handleCustomKeyDown(event: any, focused: TableFocusedCell<TItem>): boolean;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TableContext } from "./table-context";
|
|
2
|
+
import { TableItem, TreeTableDataSource } from "./table-data-source";
|
|
3
|
+
import { TableKeyboardNavigation } from "./table-keyboard-navigation";
|
|
4
|
+
import { Table } from "./table";
|
|
5
|
+
import { TreeTableNavigationHost } from "./tree-table-keyboard-navigation";
|
|
6
|
+
export declare class TreeTable<TItem extends TableItem> extends Table<TItem> implements TreeTableNavigationHost<TItem> {
|
|
7
|
+
get treeDataSource(): TreeTableDataSource<TItem>;
|
|
8
|
+
constructor(context: TableContext<TItem>, tableElement: any);
|
|
9
|
+
protected createKeyboardNavigation(): TableKeyboardNavigation<TItem>;
|
|
10
|
+
protected redrawItemRow(item: TItem): void;
|
|
11
|
+
indentSelectedItems(): void;
|
|
12
|
+
outdentSelectedItems(): void;
|
|
13
|
+
moveUpSelectedItems(): void;
|
|
14
|
+
moveDownSelectedItems(): void;
|
|
15
|
+
toggleCollapsed(item: TItem): void;
|
|
16
|
+
canToggleCollapsed(item: TItem): boolean;
|
|
17
|
+
}
|