@timelinekit/angular 1.0.1 → 1.0.3
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 +174 -0
- package/dist/__tests__/eventcalendar.test.d.ts +1 -0
- package/dist/eventcalendar.component.d.ts +48 -0
- package/dist/ganttchart.component.d.ts +13 -8
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/resourcescheduler.component.d.ts +39 -7
- package/package.json +36 -33
package/LICENSE
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
TimelineKit Commercial License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-present TimelineKit. All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software is licensed under the TimelineKit Commercial License.
|
|
6
|
+
|
|
7
|
+
1. FREE TIER
|
|
8
|
+
|
|
9
|
+
You may use the Free tier of TimelineKit in any project (including commercial
|
|
10
|
+
projects) without purchasing a license. The Free tier includes core Gantt
|
|
11
|
+
chart functionality with a watermark overlay.
|
|
12
|
+
|
|
13
|
+
2. PRO TIER
|
|
14
|
+
|
|
15
|
+
A paid license key is required to unlock Pro features and remove the
|
|
16
|
+
watermark. Pro features include: Critical Path, Baseline, Resource
|
|
17
|
+
Management, Working Calendar, Markers, Filtering, Undo/Redo, Clipboard,
|
|
18
|
+
Constraints, Custom Properties, Resource Scheduler, Export, Additional
|
|
19
|
+
Themes, and Additional Locales.
|
|
20
|
+
|
|
21
|
+
3. PERPETUAL LICENSE
|
|
22
|
+
|
|
23
|
+
A purchased license is perpetual for the major version it was purchased for.
|
|
24
|
+
It never expires and does not require renewal to continue using the same
|
|
25
|
+
major version.
|
|
26
|
+
|
|
27
|
+
If a new major version is released during the active subscription period,
|
|
28
|
+
the license also covers that new version — perpetually.
|
|
29
|
+
|
|
30
|
+
If a new major version is released after the subscription period has ended,
|
|
31
|
+
a subscription renewal is required to use that new version.
|
|
32
|
+
|
|
33
|
+
4. RESTRICTIONS
|
|
34
|
+
|
|
35
|
+
You may not:
|
|
36
|
+
- Redistribute, sublicense, or resell the Pro software or license keys
|
|
37
|
+
- Remove or circumvent the licensing mechanism or watermark
|
|
38
|
+
- Use a single license key across multiple organizations
|
|
39
|
+
|
|
40
|
+
5. NO WARRANTY
|
|
41
|
+
|
|
42
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
43
|
+
IMPLIED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR
|
|
44
|
+
OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
|
|
45
|
+
|
|
46
|
+
For questions, contact support@timelinekit.com.
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# @timelinekit/angular
|
|
2
|
+
|
|
3
|
+
Angular components for [TimelineKit](https://timelinekit.com) — high-performance, canvas-rendered scheduling components.
|
|
4
|
+
|
|
5
|
+
For a full feature overview, themes, localization, and export options, see the [`@timelinekit/core` README](https://www.npmjs.com/package/@timelinekit/core).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @timelinekit/angular @timelinekit/core
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Requires Angular 19 or later.
|
|
14
|
+
|
|
15
|
+
## Components
|
|
16
|
+
|
|
17
|
+
| Component | Import | Selector | Styles |
|
|
18
|
+
|-----------|--------|----------|--------|
|
|
19
|
+
| Gantt Chart | `GanttChart` | `<gk-gantt-chart>` | `@timelinekit/core/dist/styles/index.css` |
|
|
20
|
+
| Resource Scheduler | `ResourceScheduler` | `<gk-resource-scheduler>` | `@timelinekit/core/dist/styles/index.css` |
|
|
21
|
+
| Event Calendar | `EventCalendar` | `<gk-event-calendar>` | `@timelinekit/core/dist/styles/index.css` |
|
|
22
|
+
|
|
23
|
+
All components are standalone. All types from `@timelinekit/core` are re-exported from this package for convenience.
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Gantt Chart
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { Component, ViewChild, AfterViewInit } from '@angular/core';
|
|
31
|
+
import { GanttChart, Task, TaskLink } from '@timelinekit/angular';
|
|
32
|
+
|
|
33
|
+
@Component({
|
|
34
|
+
selector: 'app-root',
|
|
35
|
+
imports: [GanttChart],
|
|
36
|
+
template: `
|
|
37
|
+
<div style="height: 600px">
|
|
38
|
+
<gk-gantt-chart #gantt />
|
|
39
|
+
</div>
|
|
40
|
+
`,
|
|
41
|
+
})
|
|
42
|
+
export class AppComponent implements AfterViewInit {
|
|
43
|
+
@ViewChild('gantt') gantt!: GanttChart;
|
|
44
|
+
|
|
45
|
+
ngAfterViewInit() {
|
|
46
|
+
const taskA = this.gantt.list.addTask(new Task({ id: '1', name: 'Design', startTime: '2027-01-05', endTime: '2027-01-09' }));
|
|
47
|
+
const taskB = this.gantt.list.addTask(new Task({ id: '2', name: 'Development', startTime: '2027-01-12', endTime: '2027-01-23' }));
|
|
48
|
+
this.gantt.list.addLink(new TaskLink({ id: 'l1', from: taskA, to: taskB, type: 'finishToStart' }));
|
|
49
|
+
this.gantt.zoomToFit();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Add styles to your `angular.json`:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
"styles": [
|
|
58
|
+
"node_modules/@timelinekit/core/dist/styles/index.css",
|
|
59
|
+
"src/styles.css"
|
|
60
|
+
]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Resource Scheduler
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
import { Component, ViewChild, AfterViewInit } from '@angular/core';
|
|
67
|
+
import { ResourceScheduler, SchedulerResource, SchedulerEvent } from '@timelinekit/angular';
|
|
68
|
+
|
|
69
|
+
@Component({
|
|
70
|
+
selector: 'app-root',
|
|
71
|
+
imports: [ResourceScheduler],
|
|
72
|
+
template: `
|
|
73
|
+
<div style="height: 600px">
|
|
74
|
+
<gk-resource-scheduler #scheduler />
|
|
75
|
+
</div>
|
|
76
|
+
`,
|
|
77
|
+
})
|
|
78
|
+
export class AppComponent implements AfterViewInit {
|
|
79
|
+
@ViewChild('scheduler') scheduler!: ResourceScheduler;
|
|
80
|
+
|
|
81
|
+
ngAfterViewInit() {
|
|
82
|
+
const resource = this.scheduler.data.addResource(new SchedulerResource({ id: '1', name: 'Room A' }));
|
|
83
|
+
this.scheduler.data.addEvent(new SchedulerEvent({
|
|
84
|
+
id: 'e1',
|
|
85
|
+
resourceId: resource.id,
|
|
86
|
+
name: 'Meeting',
|
|
87
|
+
startTime: '2027-01-05T09:00',
|
|
88
|
+
endTime: '2027-01-05T10:30',
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
"styles": [
|
|
96
|
+
"node_modules/@timelinekit/core/dist/styles/index.css",
|
|
97
|
+
"src/styles.css"
|
|
98
|
+
]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Event Calendar
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { Component, ViewChild, AfterViewInit } from '@angular/core';
|
|
105
|
+
import { EventCalendar, CalendarItem } from '@timelinekit/angular';
|
|
106
|
+
|
|
107
|
+
@Component({
|
|
108
|
+
selector: 'app-root',
|
|
109
|
+
imports: [EventCalendar],
|
|
110
|
+
template: `
|
|
111
|
+
<div style="height: 600px">
|
|
112
|
+
<gk-event-calendar #calendar />
|
|
113
|
+
</div>
|
|
114
|
+
`,
|
|
115
|
+
})
|
|
116
|
+
export class AppComponent implements AfterViewInit {
|
|
117
|
+
@ViewChild('calendar') calendar!: EventCalendar;
|
|
118
|
+
|
|
119
|
+
ngAfterViewInit() {
|
|
120
|
+
this.calendar.data.addItem(new CalendarItem({
|
|
121
|
+
id: '1',
|
|
122
|
+
name: 'Team Standup',
|
|
123
|
+
startTime: '2027-01-05T09:00',
|
|
124
|
+
endTime: '2027-01-05T09:30',
|
|
125
|
+
type: 'Meeting',
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
"styles": [
|
|
133
|
+
"node_modules/@timelinekit/core/dist/styles/index.css",
|
|
134
|
+
"src/styles.css"
|
|
135
|
+
]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## API Access
|
|
139
|
+
|
|
140
|
+
Access the component API via `@ViewChild`:
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
@ViewChild('gantt') gantt!: GanttChart;
|
|
144
|
+
|
|
145
|
+
ngAfterViewInit() {
|
|
146
|
+
this.gantt.list.addTask(...);
|
|
147
|
+
this.gantt.zoomIn();
|
|
148
|
+
this.gantt.undo();
|
|
149
|
+
this.gantt.exportToImage();
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Licensing
|
|
154
|
+
|
|
155
|
+
TimelineKit is free to use with a watermark. Purchase a license to remove it:
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
import { setLicense } from '@timelinekit/angular';
|
|
159
|
+
|
|
160
|
+
setLicense('your-license-key');
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
See [pricing](https://timelinekit.com/pricing) for details.
|
|
164
|
+
|
|
165
|
+
## Resources
|
|
166
|
+
|
|
167
|
+
- [Documentation](https://timelinekit.com/docs)
|
|
168
|
+
- [Live Demos](https://timelinekit.com/gantt-chart/demo)
|
|
169
|
+
- [Examples](https://github.com/timelinekit/examples)
|
|
170
|
+
- [Support](mailto:support@timelinekit.com)
|
|
171
|
+
|
|
172
|
+
## License
|
|
173
|
+
|
|
174
|
+
See [LICENSE](./LICENSE) for details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ElementRef, OnDestroy } from '@angular/core';
|
|
2
|
+
import { CalendarData, CalendarEntry, EventCalendarEvents, EventCalendarSettings } from '@timelinekit/core';
|
|
3
|
+
import type { ViewMode, EntryRenderFn, EntryTooltipFn, CalendarImageExportOptions, CalendarPdfExportOptions, CalendarIcsExportOptions, CalendarIcsImportOptions, CalendarIcsImportResult, CalendarCsvExportOptions, CalendarExcelExportOptions } from '@timelinekit/core';
|
|
4
|
+
export declare class EventCalendar implements OnDestroy {
|
|
5
|
+
#private;
|
|
6
|
+
private el;
|
|
7
|
+
get data(): CalendarData;
|
|
8
|
+
get events(): EventCalendarEvents;
|
|
9
|
+
get settings(): EventCalendarSettings;
|
|
10
|
+
get viewMode(): ViewMode;
|
|
11
|
+
set viewMode(value: ViewMode);
|
|
12
|
+
get currentDate(): Date;
|
|
13
|
+
set currentDate(value: Date);
|
|
14
|
+
get selectedEntries(): CalendarEntry[];
|
|
15
|
+
set selectedEntries(value: CalendarEntry[]);
|
|
16
|
+
get selectedEntry(): CalendarEntry | null;
|
|
17
|
+
set selectedEntry(value: CalendarEntry | null);
|
|
18
|
+
get canEdit(): boolean;
|
|
19
|
+
set canEdit(value: boolean);
|
|
20
|
+
get sidebarVisible(): boolean;
|
|
21
|
+
set sidebarVisible(value: boolean);
|
|
22
|
+
get canUndo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
23
|
+
get canRedo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
24
|
+
undo(): void;
|
|
25
|
+
redo(): void;
|
|
26
|
+
today(): void;
|
|
27
|
+
next(): void;
|
|
28
|
+
previous(): void;
|
|
29
|
+
goToDate(date: Date): void;
|
|
30
|
+
get entryRendering(): EntryRenderFn | null;
|
|
31
|
+
set entryRendering(value: EntryRenderFn | null);
|
|
32
|
+
get entryTooltip(): EntryTooltipFn | null;
|
|
33
|
+
set entryTooltip(value: EntryTooltipFn | null);
|
|
34
|
+
copyEntries(entries?: CalendarEntry[]): Promise<void>;
|
|
35
|
+
cutEntries(entries?: CalendarEntry[]): Promise<void>;
|
|
36
|
+
pasteEntries(): Promise<void>;
|
|
37
|
+
exportToImage(options?: CalendarImageExportOptions): Promise<Blob>;
|
|
38
|
+
exportToPdf(options?: CalendarPdfExportOptions): Promise<Blob>;
|
|
39
|
+
exportToIcs(options?: CalendarIcsExportOptions): Blob;
|
|
40
|
+
exportToIcsText(options?: CalendarIcsExportOptions): string;
|
|
41
|
+
importFromIcs(text: string, options?: CalendarIcsImportOptions): CalendarIcsImportResult;
|
|
42
|
+
exportToCsv(options?: CalendarCsvExportOptions): string;
|
|
43
|
+
exportToExcel(options?: CalendarExcelExportOptions): Promise<Blob>;
|
|
44
|
+
save(): string;
|
|
45
|
+
load(text: string): void;
|
|
46
|
+
constructor(el: ElementRef);
|
|
47
|
+
ngOnDestroy(): void;
|
|
48
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
-
import { TaskList, ResourceList, WorkingCalendar,
|
|
3
|
-
import type { Marker,
|
|
4
|
-
export declare class GanttChart implements OnInit {
|
|
1
|
+
import { ElementRef, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { TaskList, ResourceList, WorkingCalendar, GanttSheet, DateRange, GanttChartEvents, GanttChartSettings, Task } from '@timelinekit/core';
|
|
3
|
+
import type { Marker, GanttCsvExportOptions, GanttPdfExportOptions, GanttExcelExportOptions, TaskFilterFn, TasksPastedEventArgs, ColumnState, TimelineKitLocale } from '@timelinekit/core';
|
|
4
|
+
export declare class GanttChart implements OnInit, OnDestroy {
|
|
5
5
|
#private;
|
|
6
6
|
private el;
|
|
7
7
|
get list(): TaskList;
|
|
@@ -10,6 +10,8 @@ export declare class GanttChart implements OnInit {
|
|
|
10
10
|
set workingCalendar(value: WorkingCalendar);
|
|
11
11
|
get canEdit(): boolean;
|
|
12
12
|
set canEdit(value: boolean);
|
|
13
|
+
get autoZoomToFit(): boolean;
|
|
14
|
+
set autoZoomToFit(value: boolean);
|
|
13
15
|
get showGridLines(): boolean;
|
|
14
16
|
set showGridLines(value: boolean);
|
|
15
17
|
get showCriticalPath(): boolean;
|
|
@@ -31,6 +33,7 @@ export declare class GanttChart implements OnInit {
|
|
|
31
33
|
clearBaseline(): void;
|
|
32
34
|
constructor(el: ElementRef);
|
|
33
35
|
ngOnInit(): void;
|
|
36
|
+
ngOnDestroy(): void;
|
|
34
37
|
zoomIn(): boolean;
|
|
35
38
|
zoomOut(): boolean;
|
|
36
39
|
indent(): void;
|
|
@@ -47,8 +50,10 @@ export declare class GanttChart implements OnInit {
|
|
|
47
50
|
get events(): GanttChartEvents;
|
|
48
51
|
get projectTimeline(): DateRange;
|
|
49
52
|
set projectTimeline(value: DateRange);
|
|
53
|
+
get locale(): TimelineKitLocale;
|
|
54
|
+
set locale(value: TimelineKitLocale);
|
|
50
55
|
get settings(): GanttChartSettings;
|
|
51
|
-
get sheet():
|
|
56
|
+
get sheet(): GanttSheet;
|
|
52
57
|
get canUndo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
53
58
|
get canRedo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
54
59
|
undo(): void;
|
|
@@ -56,9 +61,9 @@ export declare class GanttChart implements OnInit {
|
|
|
56
61
|
save(): string;
|
|
57
62
|
load(text: string): void;
|
|
58
63
|
exportToImage(): Promise<Blob>;
|
|
59
|
-
exportToCsv(options?:
|
|
60
|
-
exportToPdf(options?:
|
|
61
|
-
exportToExcel(options?:
|
|
64
|
+
exportToCsv(options?: GanttCsvExportOptions): string;
|
|
65
|
+
exportToPdf(options?: GanttPdfExportOptions): Promise<Blob>;
|
|
66
|
+
exportToExcel(options?: GanttExcelExportOptions): Promise<Blob>;
|
|
62
67
|
copy(): Promise<void>;
|
|
63
68
|
cut(): Promise<void>;
|
|
64
69
|
paste(): Promise<TasksPastedEventArgs | null>;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import{Component as n}from"@angular/core";import{GanttChartEngine as t,ResourceSchedulerEngine as i}from"@
|
|
1
|
+
import{__decorate as e}from"tslib";import{Component as n}from"@angular/core";import{GanttChartEngine as t,ResourceSchedulerEngine as i,EventCalendarEngine as s}from"@timelinekit/core";export*from"@timelinekit/core";let r=class{el;get list(){return this.#e.list}get resources(){return this.#e.resources}get workingCalendar(){return this.#e.calendar$.getValue()}set workingCalendar(e){this.#e.calendar$.next(e)}get canEdit(){return this.#e.canEdit}set canEdit(e){this.#e.canEdit=e}get autoZoomToFit(){return this.#e.autoZoomToFit}set autoZoomToFit(e){this.#e.autoZoomToFit=e}get showGridLines(){return this.#e.showGridLines}set showGridLines(e){this.#e.showGridLines=e}get showCriticalPath(){return this.#e.showCriticalPath}set showCriticalPath(e){this.#e.showCriticalPath=e}get showBaseline(){return this.#e.showBaseline}set showBaseline(e){this.#e.showBaseline=e}get showTodayLine(){return this.#e.showTodayLine}set showTodayLine(e){this.#e.showTodayLine=e}get markers(){return this.#e.markers}set markers(e){this.#e.markers=e}addMarker(e){this.#e.addMarker(e)}removeMarker(e){this.#e.removeMarker(e)}clearMarkers(){this.#e.clearMarkers()}get filter(){return this.#e.filter}set filter(e){this.#e.filter=e}clearFilter(){this.#e.clearFilter()}get hasBaseline(){return this.#e.hasBaseline}saveBaseline(){this.#e.saveBaseline()}clearBaseline(){this.#e.clearBaseline()}#e;constructor(e){this.el=e,this.#e=new t(this.el.nativeElement)}ngOnInit(){}ngOnDestroy(){this.#e.destroy()}zoomIn(){return this.#e.zoomIn()}zoomOut(){return this.#e.zoomOut()}indent(){this.#e.indent()}outdent(){this.#e.outdent()}moveUp(){this.#e.moveUp()}moveDown(){this.#e.moveDown()}get selectedTasks(){return this.#e.selectedTasks}goToProjectStart(){this.#e.goToProjectStart()}scrollToDate(e){this.#e.scrollToDate(e)}scrollToTask(e){this.#e.scrollToTask(e)}zoomToFit(e){this.#e.zoomToFit(e)}saveColumns(){return this.#e.saveColumns()}loadColumns(e){this.#e.loadColumns(e)}get events(){return this.#e.events}get projectTimeline(){return this.#e.projectTimeline}set projectTimeline(e){this.#e.projectTimeline=e}get locale(){return this.#e.settings.locale}set locale(e){this.#e.settings.locale=e}get settings(){return this.#e.settings}get sheet(){return this.#e.sheet}get canUndo$(){return this.#e.canUndo$}get canRedo$(){return this.#e.canRedo$}undo(){this.#e.undo()}redo(){this.#e.redo()}save(){return this.#e.save()}load(e){return this.#e.load(e)}async exportToImage(){return this.#e.exportToImage()}exportToCsv(e){return this.#e.exportToCsv(e)}async exportToPdf(e){return this.#e.exportToPdf(e)}async exportToExcel(e){return this.#e.exportToExcel(e)}async copy(){return this.#e.copy()}async cut(){return this.#e.cut()}async paste(){return this.#e.paste()}};r=e([n({selector:"gk-gantt-chart",templateUrl:"./ganttchart.component.html",styleUrls:["./ganttchart.component.scss"],standalone:!0})],r);let o=class{el;get data(){return this.#e.data}get workingCalendar(){return this.#e.calendar$.getValue()}set workingCalendar(e){this.#e.calendar$.next(e)}get canEdit(){return this.#e.canEdit}set canEdit(e){this.#e.canEdit=e}get autoZoomToFit(){return this.#e.autoZoomToFit}set autoZoomToFit(e){this.#e.autoZoomToFit=e}get showGridLines(){return this.#e.showGridLines}set showGridLines(e){this.#e.showGridLines=e}get showTodayLine(){return this.#e.showTodayLine}set showTodayLine(e){this.#e.showTodayLine=e}get markers(){return this.#e.markers}set markers(e){this.#e.markers=e}addMarker(e){this.#e.addMarker(e)}removeMarker(e){this.#e.removeMarker(e)}clearMarkers(){this.#e.clearMarkers()}get filter(){return this.#e.filter}set filter(e){this.#e.filter=e}clearFilter(){this.#e.clearFilter()}get eventRendering(){return this.#e.eventRendering}set eventRendering(e){this.#e.eventRendering=e}get eventTooltip(){return this.#e.eventTooltip}set eventTooltip(e){this.#e.eventTooltip=e}get projectTimeline(){return this.#e.projectTimeline}set projectTimeline(e){this.#e.projectTimeline=e}get selectedResources(){return this.#e.selectedResources}get selectedEvents(){return this.#e.selectedEvents}set selectedEvents(e){this.#e.selectedEvents=e}get selectedEvent(){return this.#e.selectedEvent}set selectedEvent(e){this.#e.selectedEvent=e}get settings(){return this.#e.settings}get sheet(){return this.#e.sheet}get events(){return this.#e.events}get canUndo$(){return this.#e.canUndo$}get canRedo$(){return this.#e.canRedo$}#e;constructor(e){this.el=e,this.#e=new i(this.el.nativeElement)}ngOnInit(){}ngOnDestroy(){this.#e.destroy()}undo(){this.#e.undo()}redo(){this.#e.redo()}async copy(){await this.#e.copy()}async cut(){await this.#e.cut()}async paste(){return this.#e.paste()}zoomIn(){return this.#e.zoomIn()}zoomOut(){return this.#e.zoomOut()}goToProjectStart(){this.#e.goToProjectStart()}scrollToDate(e){this.#e.scrollToDate(e)}scrollToResource(e){this.#e.scrollToResource(e)}scrollToEvent(e){this.#e.scrollToEvent(e)}zoomToFit(e){this.#e.zoomToFit(e)}saveColumns(){return this.#e.saveColumns()}loadColumns(e){this.#e.loadColumns(e)}sortResources(e){this.#e.sortResources(e)}freezeResource(e){this.#e.freezeResource(e)}unfreezeResource(e){this.#e.unfreezeResource(e)}isResourceFrozen(e){return this.#e.isResourceFrozen(e)}async exportToImage(){return this.#e.exportToImage()}exportToCsv(e){return this.#e.exportToCsv(e)}async exportToExcel(e){return this.#e.exportToExcel(e)}async exportToPdf(e){return this.#e.exportToPdf(e)}save(){return this.#e.save()}load(e){this.#e.load(e)}};o=e([n({selector:"gk-resource-scheduler",templateUrl:"./resourcescheduler.component.html",styleUrls:["./resourcescheduler.component.scss"],standalone:!0})],o);let g=class{el;get data(){return this.#e.data}get events(){return this.#e.events}get settings(){return this.#e.settings}get viewMode(){return this.#e.viewMode}set viewMode(e){this.#e.viewMode=e}get currentDate(){return this.#e.currentDate}set currentDate(e){this.#e.currentDate=e}get selectedEntries(){return this.#e.selectedEntries}set selectedEntries(e){this.#e.selectedEntries=e}get selectedEntry(){return this.#e.selectedEntry}set selectedEntry(e){this.#e.selectedEntry=e}get canEdit(){return this.#e.canEdit}set canEdit(e){this.#e.canEdit=e}get sidebarVisible(){return this.#e.sidebarVisible}set sidebarVisible(e){this.#e.sidebarVisible=e}get canUndo$(){return this.#e.canUndo$}get canRedo$(){return this.#e.canRedo$}undo(){this.#e.undo()}redo(){this.#e.redo()}today(){this.#e.today()}next(){this.#e.next()}previous(){this.#e.previous()}goToDate(e){this.#e.goToDate(e)}get entryRendering(){return this.#e.entryRendering}set entryRendering(e){this.#e.entryRendering=e}get entryTooltip(){return this.#e.entryTooltip}set entryTooltip(e){this.#e.entryTooltip=e}async copyEntries(e){return this.#e.copyEntries(e)}async cutEntries(e){return this.#e.cutEntries(e)}async pasteEntries(){return this.#e.pasteEntries()}async exportToImage(e){return this.#e.exportToImage(e)}async exportToPdf(e){return this.#e.exportToPdf(e)}exportToIcs(e){return this.#e.exportToIcs(e)}exportToIcsText(e){return this.#e.exportToIcsText(e)}importFromIcs(e,n){return this.#e.importFromIcs(e,n)}exportToCsv(e){return this.#e.exportToCsv(e)}async exportToExcel(e){return this.#e.exportToExcel(e)}save(){return this.#e.save()}load(e){this.#e.load(e)}#e;constructor(e){this.el=e,this.#e=new s(this.el.nativeElement)}ngOnDestroy(){this.#e.destroy()}};g=e([n({selector:"gk-event-calendar",templateUrl:"./eventcalendar.component.html",styleUrls:["./eventcalendar.component.scss"],standalone:!0})],g);export{g as EventCalendar,r as GanttChart,o as ResourceScheduler};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
-
import { SchedulerData, SchedulerResource, WorkingCalendar, SchedulerSheet, DateRange, ResourceSchedulerEvents, ResourceSchedulerSettings } from '@
|
|
3
|
-
import type { ColumnState } from '@
|
|
4
|
-
export declare class ResourceScheduler implements OnInit {
|
|
1
|
+
import { ElementRef, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { SchedulerData, SchedulerResource, SchedulerEvent, WorkingCalendar, SchedulerSheet, DateRange, ResourceSchedulerEvents, ResourceSchedulerSettings } from '@timelinekit/core';
|
|
3
|
+
import type { Marker, ColumnState, SchedulerResourceFilterFn, SchedulerEventRenderFn, SchedulerEventTooltipFn, SchedulerCsvExportOptions, SchedulerExcelExportOptions, SchedulerPdfExportOptions, SchedulerEventsPastedEventArgs } from '@timelinekit/core';
|
|
4
|
+
export declare class ResourceScheduler implements OnInit, OnDestroy {
|
|
5
5
|
#private;
|
|
6
6
|
private el;
|
|
7
7
|
get data(): SchedulerData;
|
|
@@ -9,29 +9,61 @@ export declare class ResourceScheduler implements OnInit {
|
|
|
9
9
|
set workingCalendar(value: WorkingCalendar);
|
|
10
10
|
get canEdit(): boolean;
|
|
11
11
|
set canEdit(value: boolean);
|
|
12
|
+
get autoZoomToFit(): boolean;
|
|
13
|
+
set autoZoomToFit(value: boolean);
|
|
12
14
|
get showGridLines(): boolean;
|
|
13
15
|
set showGridLines(value: boolean);
|
|
14
16
|
get showTodayLine(): boolean;
|
|
15
17
|
set showTodayLine(value: boolean);
|
|
18
|
+
get markers(): Marker[];
|
|
19
|
+
set markers(value: Marker[]);
|
|
20
|
+
addMarker(marker: Marker): void;
|
|
21
|
+
removeMarker(marker: Marker): void;
|
|
22
|
+
clearMarkers(): void;
|
|
23
|
+
get filter(): SchedulerResourceFilterFn | null;
|
|
24
|
+
set filter(value: SchedulerResourceFilterFn | null);
|
|
25
|
+
clearFilter(): void;
|
|
26
|
+
get eventRendering(): SchedulerEventRenderFn | null;
|
|
27
|
+
set eventRendering(value: SchedulerEventRenderFn | null);
|
|
28
|
+
get eventTooltip(): SchedulerEventTooltipFn | null;
|
|
29
|
+
set eventTooltip(value: SchedulerEventTooltipFn | null);
|
|
16
30
|
get projectTimeline(): DateRange;
|
|
17
31
|
set projectTimeline(value: DateRange);
|
|
18
32
|
get selectedResources(): SchedulerResource[];
|
|
33
|
+
get selectedEvents(): SchedulerEvent[];
|
|
34
|
+
set selectedEvents(value: SchedulerEvent[]);
|
|
35
|
+
get selectedEvent(): SchedulerEvent | null;
|
|
36
|
+
set selectedEvent(value: SchedulerEvent | null);
|
|
19
37
|
get settings(): ResourceSchedulerSettings;
|
|
20
38
|
get sheet(): SchedulerSheet;
|
|
21
39
|
get events(): ResourceSchedulerEvents;
|
|
40
|
+
get canUndo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
41
|
+
get canRedo$(): import("rxjs").BehaviorSubject<boolean>;
|
|
22
42
|
constructor(el: ElementRef);
|
|
23
43
|
ngOnInit(): void;
|
|
44
|
+
ngOnDestroy(): void;
|
|
45
|
+
undo(): void;
|
|
46
|
+
redo(): void;
|
|
47
|
+
copy(): Promise<void>;
|
|
48
|
+
cut(): Promise<void>;
|
|
49
|
+
paste(): Promise<SchedulerEventsPastedEventArgs | null>;
|
|
24
50
|
zoomIn(): boolean;
|
|
25
51
|
zoomOut(): boolean;
|
|
26
52
|
goToProjectStart(): void;
|
|
27
53
|
scrollToDate(date: Date): void;
|
|
28
54
|
scrollToResource(resource: SchedulerResource): void;
|
|
29
|
-
|
|
55
|
+
scrollToEvent(event: SchedulerEvent): void;
|
|
56
|
+
zoomToFit(events?: SchedulerEvent[]): void;
|
|
57
|
+
saveColumns(): ColumnState[];
|
|
58
|
+
loadColumns(states: ColumnState[]): void;
|
|
59
|
+
sortResources(compareFn: (a: SchedulerResource, b: SchedulerResource) => number): void;
|
|
30
60
|
freezeResource(resource: SchedulerResource): void;
|
|
31
61
|
unfreezeResource(resource: SchedulerResource): void;
|
|
32
62
|
isResourceFrozen(resource: SchedulerResource): boolean;
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
exportToImage(): Promise<Blob>;
|
|
64
|
+
exportToCsv(options?: SchedulerCsvExportOptions): string;
|
|
65
|
+
exportToExcel(options?: SchedulerExcelExportOptions): Promise<Blob>;
|
|
66
|
+
exportToPdf(options?: SchedulerPdfExportOptions): Promise<Blob>;
|
|
35
67
|
save(): string;
|
|
36
68
|
load(text: string): void;
|
|
37
69
|
}
|
package/package.json
CHANGED
|
@@ -1,33 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@timelinekit/angular",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/index.js"
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "rollup -c"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@timelinekit/angular",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "rollup -c",
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"test:watch": "vitest"
|
|
17
|
+
},
|
|
18
|
+
"peerDependencies": {
|
|
19
|
+
"@angular/core": ">=19.0.0",
|
|
20
|
+
"@timelinekit/core": "workspace:*"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@timelinekit/core": "workspace:*"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@angular/core": "^21.2.0",
|
|
27
|
+
"rxjs": "~7.8.0",
|
|
28
|
+
"tslib": "^2.3.0",
|
|
29
|
+
"vitest": "^4.0.8"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
]
|
|
36
|
+
}
|