@bryntum/gantt-angular-thin 7.1.1 → 7.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +302 -15
- package/bundles/bryntum-gantt-angular-thin.umd.js +25 -17
- package/bundles/bryntum-gantt-angular-thin.umd.js.map +1 -1
- package/esm2015/lib/bryntum-assignment-grid.component.js +2 -2
- package/esm2015/lib/bryntum-gantt-base.component.js +13 -9
- package/esm2015/lib/bryntum-gantt.component.js +13 -9
- package/fesm2015/bryntum-gantt-angular-thin.js +25 -17
- package/fesm2015/bryntum-gantt-angular-thin.js.map +1 -1
- package/lib/bryntum-assignment-grid.component.d.ts +1 -1
- package/lib/bryntum-gantt-base.component.d.ts +8 -4
- package/lib/bryntum-gantt.component.d.ts +8 -4
- package/package.json +1 -1
- package/src/lib/bryntum-assignment-field.component.ts +1658 -0
- package/src/lib/bryntum-assignment-grid.component.ts +2821 -0
- package/src/lib/bryntum-calendar-picker.component.ts +1635 -0
- package/src/lib/bryntum-dependency-field.component.ts +1690 -0
- package/src/lib/bryntum-gantt-base.component.ts +5315 -0
- package/src/lib/bryntum-gantt-project-model.component.ts +1477 -0
- package/src/lib/bryntum-gantt.component.ts +5319 -0
- package/src/lib/gantt.module.ts +37 -0
- package/src/lib/wrapper.helper.ts +89 -0
- package/src/public-api.ts +12 -0
package/README.md
CHANGED
|
@@ -1,37 +1,323 @@
|
|
|
1
|
-
|
|
1
|
+
<div style="display: flex; justify-content: space-between; align-items: center; margin: 0 50px;">
|
|
2
|
+
<a href="https://bryntum.com/" rel="noopener" target="_blank">
|
|
3
|
+
<img width="350" src="https://bryntum.com/resources/bryntum_logo_blue.svg" alt="Bryntum logo">
|
|
4
|
+
</a>
|
|
5
|
+
<img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/angular.svg" alt="Angular" width="100">
|
|
6
|
+
</div>
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
8
|
+
# Angular wrapper for Bryntum Gantt Thin packages
|
|
9
|
+
|
|
10
|
+
This package provides a wrapper that turns Bryntum Gantt into an Angular component, exposing configuration options,
|
|
11
|
+
properties, features, and events.
|
|
12
|
+
|
|
13
|
+
> **Thin Package:** This is a thin wrapper package designed for applications that use multiple Bryntum products.
|
|
14
|
+
> Thin packages exclude bundled dependencies to avoid duplication. For details, see
|
|
15
|
+
> [Angular Multiple Products](https://bryntum.com/products/gantt/docs/guide/Gantt/integration/angular/multiple-products).
|
|
16
|
+
|
|
17
|
+
## Version Requirement
|
|
18
|
+
|
|
19
|
+
Wrapper is compiled for the **Angular Ivy** rendering engine (Angular 12+).
|
|
20
|
+
|
|
21
|
+
* Angular: `12` with Ivy support or higher
|
|
22
|
+
* TypeScript: `4.2` or higher
|
|
23
|
+
* Vite `5` or higher (starting with Angular `17`)
|
|
24
|
+
|
|
25
|
+
## Package Contents
|
|
26
|
+
|
|
27
|
+
| Path | Description |
|
|
28
|
+
|--------|----------------------------------|
|
|
29
|
+
| `lib/` | Component type definitions |
|
|
30
|
+
| `src/` | Original TypeScript source files |
|
|
5
31
|
|
|
6
32
|
## Installation
|
|
7
33
|
|
|
8
|
-
|
|
9
|
-
|
|
34
|
+
### Angular Wrapper
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install @bryntum/gantt-angular-thin@latest
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Component Package (Required)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install @bryntum/gantt-thin@latest
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Try Bryntum Online Demos
|
|
47
|
+
|
|
48
|
+
* [View Online Angular Demos](https://bryntum.com/products/gantt/examples/?framework=angular)
|
|
49
|
+
|
|
50
|
+
## Quick Start
|
|
51
|
+
|
|
52
|
+
Edit the `src/app/app-module.ts` file and add the following import:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
import { NgModule } from '@angular/core';
|
|
56
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
57
|
+
|
|
58
|
+
import { BryntumCoreModule } from '@bryntum/core-angular-thin';
|
|
59
|
+
import { BryntumGridModule } from '@bryntum/grid-angular-thin';
|
|
60
|
+
import { BryntumSchedulerModule } from '@bryntum/scheduler-angular-thin';
|
|
61
|
+
import { BryntumSchedulerProModule } from '@bryntum/schedulerpro-angular-thin';
|
|
62
|
+
import { BryntumGanttModule } from '@bryntum/gantt-angular-thin';
|
|
63
|
+
|
|
64
|
+
import { AppComponent } from './app';
|
|
65
|
+
|
|
66
|
+
@NgModule({
|
|
67
|
+
declarations : [
|
|
68
|
+
AppComponent
|
|
69
|
+
],
|
|
70
|
+
imports : [
|
|
71
|
+
BrowserModule,
|
|
72
|
+
BryntumCoreModule,
|
|
73
|
+
BryntumGridModule,
|
|
74
|
+
BryntumSchedulerModule,
|
|
75
|
+
BryntumSchedulerProModule,
|
|
76
|
+
BryntumGanttModule
|
|
77
|
+
],
|
|
78
|
+
providers : [],
|
|
79
|
+
bootstrap : [AppComponent]
|
|
80
|
+
})
|
|
81
|
+
export class AppModule {}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Create `src/app/app.config.ts` file with the following content:
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { BryntumGanttProps, BryntumGanttProjectModelProps } from '@bryntum/gantt-angular-thin';
|
|
88
|
+
|
|
89
|
+
export const projectProps: BryntumGanttProjectModelProps = {
|
|
90
|
+
// Automatically introduces a `startnoearlier` constraint for tasks that (a) have no predecessors,
|
|
91
|
+
// (b) do not use constraints and (c) aren't `manuallyScheduled`
|
|
92
|
+
autoSetConstraints : true,
|
|
93
|
+
loadUrl : 'data/data.json',
|
|
94
|
+
autoLoad : true
|
|
95
|
+
};
|
|
96
|
+
export const ganttProps: BryntumGanttProps = {
|
|
97
|
+
columns : [
|
|
98
|
+
{ type : 'name', width : 200 }
|
|
99
|
+
],
|
|
100
|
+
startDate : new Date(2026, 0, 1),
|
|
101
|
+
endDate : new Date(2026, 2, 1)
|
|
102
|
+
};
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Update the `src/app/app.ts` file with the following content:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
import { Component, ViewChild } from '@angular/core';
|
|
109
|
+
import { BryntumGanttComponent, BryntumGanttProjectModelComponent } from '@bryntum/gantt-angular-thin';
|
|
110
|
+
import { ganttProps, projectProps } from './app.config';
|
|
111
|
+
|
|
112
|
+
@Component({
|
|
113
|
+
selector : 'app-root',
|
|
114
|
+
standalone : false,
|
|
115
|
+
templateUrl : './app.html',
|
|
116
|
+
styleUrl : './app.css',
|
|
117
|
+
})
|
|
118
|
+
export class AppComponent {
|
|
119
|
+
|
|
120
|
+
ganttProps = ganttProps;
|
|
121
|
+
projectProps = projectProps;
|
|
122
|
+
|
|
123
|
+
@ViewChild('gantt') ganttComponent!: BryntumGanttComponent;
|
|
124
|
+
@ViewChild('project') projectComponent!: BryntumGanttProjectModelComponent;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Edit the `src/app/app.html` file and replace the content with the following:
|
|
10
129
|
|
|
11
|
-
|
|
130
|
+
```html
|
|
131
|
+
<bryntum-gantt-project-model
|
|
132
|
+
#project
|
|
133
|
+
[loadUrl] = "projectProps.loadUrl!"
|
|
134
|
+
[autoLoad] = "projectProps.autoLoad!"
|
|
135
|
+
[autoSetConstraints] = "projectProps.autoSetConstraints!"
|
|
136
|
+
></bryntum-gantt-project-model>
|
|
12
137
|
|
|
13
|
-
|
|
138
|
+
<bryntum-gantt
|
|
139
|
+
#gantt
|
|
140
|
+
[startDate] = "ganttProps.startDate!"
|
|
141
|
+
[columns] = "ganttProps.columns!"
|
|
142
|
+
[endDate] = "ganttProps.endDate!"
|
|
143
|
+
[project] = "project"
|
|
144
|
+
></bryntum-gantt>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
<details>
|
|
148
|
+
<summary>Create sample data (click to expand)</summary>
|
|
149
|
+
|
|
150
|
+
Create a `public/data/data.json` file for example data and add the following JSON data to it:
|
|
151
|
+
```javascript
|
|
152
|
+
{
|
|
153
|
+
"success": "true",
|
|
154
|
+
"tasks": {
|
|
155
|
+
"rows": [
|
|
156
|
+
{
|
|
157
|
+
"id": 1,
|
|
158
|
+
"name": "Documentation Project",
|
|
159
|
+
"expanded": true,
|
|
160
|
+
"children": [
|
|
161
|
+
{
|
|
162
|
+
"id": 2,
|
|
163
|
+
"name": "Preparation",
|
|
164
|
+
"expanded": true,
|
|
165
|
+
"children": [
|
|
166
|
+
{ "id": 6, "name": "Proof-read docs", "startDate": "2026-01-02", "endDate": "2026-01-09" },
|
|
167
|
+
{ "id": 3, "name": "Release docs", "startDate": "2026-01-09", "endDate": "2026-01-10" }
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": 4,
|
|
172
|
+
"name": "Development",
|
|
173
|
+
"expanded": true,
|
|
174
|
+
"children": [
|
|
175
|
+
{ "id": 7, "name": "Write API docs", "startDate": "2026-01-05", "endDate": "2026-01-12" },
|
|
176
|
+
{ "id": 8, "name": "Write tutorials", "startDate": "2026-01-10", "endDate": "2026-01-16" },
|
|
177
|
+
{ "id": 9, "name": "Create examples", "startDate": "2026-01-12", "endDate": "2026-01-18" }
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": 5,
|
|
182
|
+
"name": "Review & Release",
|
|
183
|
+
"expanded": true,
|
|
184
|
+
"children": [
|
|
185
|
+
{ "id": 10, "name": "Team review", "startDate": "2026-01-18", "endDate": "2026-01-20" },
|
|
186
|
+
{ "id": 11, "name": "Final approval", "startDate": "2026-01-20", "endDate": "2026-01-21" },
|
|
187
|
+
{ "id": 12, "name": "Public release", "startDate": "2026-01-22", "endDate": "2026-01-22" }
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
"dependencies": {
|
|
195
|
+
"rows": [
|
|
196
|
+
{ "fromTask": 6, "toTask": 3 },
|
|
197
|
+
{ "fromTask": 7, "toTask": 8 },
|
|
198
|
+
{ "fromTask": 8, "toTask": 9 },
|
|
199
|
+
{ "fromTask": 9, "toTask": 10 },
|
|
200
|
+
{ "fromTask": 10, "toTask": 11 },
|
|
201
|
+
{ "fromTask": 11, "toTask": 12 }
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
This is the data the Bryntum Gantt will use.
|
|
208
|
+
|
|
209
|
+
</details>
|
|
210
|
+
|
|
211
|
+
## Project Structure
|
|
212
|
+
|
|
213
|
+
### Product Dependencies
|
|
214
|
+
|
|
215
|
+
API packages:
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"dependencies": {
|
|
220
|
+
"@bryntum/core-thin": "7.1.2",
|
|
221
|
+
"@bryntum/engine-thin": "7.1.2",
|
|
222
|
+
"@bryntum/grid-thin": "7.1.2",
|
|
223
|
+
"@bryntum/scheduler-thin": "7.1.2",
|
|
224
|
+
"@bryntum/schedulerpro-thin": "7.1.2",
|
|
225
|
+
"@bryntum/gantt-thin": "7.1.2"
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Framework wrapper packages:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"dependencies": {
|
|
235
|
+
"@bryntum/core-angular-thin": "7.1.2",
|
|
236
|
+
"@bryntum/gantt-angular-thin": "7.1.2"
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Product Configuration
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
import { BryntumGanttProps } from '@bryntum/gantt-angular-thin';
|
|
14
245
|
|
|
15
|
-
|
|
16
|
-
|
|
246
|
+
const ganttProps : BryntumGanttProps = {
|
|
247
|
+
// Gantt configuration
|
|
248
|
+
};
|
|
17
249
|
```
|
|
18
250
|
|
|
19
|
-
|
|
251
|
+
### Product Styling
|
|
20
252
|
|
|
21
|
-
|
|
22
|
-
|
|
253
|
+
**SCSS/CSS:**
|
|
254
|
+
|
|
255
|
+
```css
|
|
256
|
+
/* FontAwesome is used for icons */
|
|
257
|
+
@import '@bryntum/core-thin/fontawesome/css/fontawesome.css';
|
|
258
|
+
@import "@bryntum/core-thin/fontawesome/css/solid.css";
|
|
259
|
+
/* Structural CSS */
|
|
260
|
+
@import '@bryntum/core-thin/core.css';
|
|
261
|
+
@import '@bryntum/grid-thin/grid.css';
|
|
262
|
+
@import '@bryntum/scheduler-thin/scheduler.css';
|
|
263
|
+
@import '@bryntum/schedulerpro-thin/schedulerpro.css';
|
|
264
|
+
@import '@bryntum/gantt-thin/gantt.css';
|
|
265
|
+
/* Theme */
|
|
266
|
+
@import '@bryntum/core-thin/material3-light.css';
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Product Localization
|
|
270
|
+
|
|
271
|
+
```javascript
|
|
272
|
+
import '@bryntum/gantt-thin/lib/localization/De.js'
|
|
23
273
|
```
|
|
24
274
|
|
|
25
|
-
## Integration
|
|
275
|
+
## Integration Guide
|
|
26
276
|
|
|
27
277
|
For details on installing and using this package, see the
|
|
28
278
|
[Angular Integration Guide](https://bryntum.com/products/gantt/docs/guide/Gantt/integration/angular/guide).
|
|
29
279
|
|
|
30
|
-
|
|
280
|
+
## Wrappers
|
|
281
|
+
|
|
282
|
+
Angular wrappers encapsulate Bryntum components as native Angular components, exposing all configuration options,
|
|
283
|
+
properties, features, and events through Angular-familiar patterns like inputs, outputs, and templates.
|
|
284
|
+
|
|
285
|
+
Visit [Wrappers documentation](https://bryntum.com/products/gantt/docs/guide/Gantt/integration/angular/guide#wrappers) for the complete list of available
|
|
286
|
+
wrapper components.
|
|
287
|
+
|
|
288
|
+
## Features
|
|
289
|
+
|
|
290
|
+
Features are optional modules that extend Bryntum Gantt functionality. Each feature is suffixed with `Feature` and
|
|
291
|
+
can be enabled and configured through standard Angular inputs.
|
|
292
|
+
|
|
293
|
+
Visit [Features documentation](https://bryntum.com/products/gantt/docs/guide/Gantt/integration/angular/guide#features) for the complete list of available
|
|
294
|
+
features and their configuration options.
|
|
295
|
+
|
|
296
|
+
## Explore All Bryntum Products
|
|
297
|
+
|
|
298
|
+
* [Bryntum Grid](https://bryntum.com/products/grid/) - High-performance data grid
|
|
299
|
+
* [Bryntum Scheduler](https://bryntum.com/products/scheduler/) - Resource scheduling component
|
|
300
|
+
* [Bryntum Scheduler Pro](https://bryntum.com/products/schedulerpro/) - Advanced scheduling with dependencies
|
|
301
|
+
* [Bryntum Gantt](https://bryntum.com/products/gantt/) - Project planning and management
|
|
302
|
+
* [Bryntum Calendar](https://bryntum.com/products/calendar/) - Full-featured calendar component
|
|
303
|
+
* [Bryntum TaskBoard](https://bryntum.com/products/taskboard/) - Kanban-style task management
|
|
304
|
+
|
|
305
|
+
Explore our comprehensive collection of demos:
|
|
306
|
+
|
|
307
|
+
| Product | <img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/js.svg" alt="JavaScript" width="30"><br>JavaScript | <img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/react.svg" alt="React" width="30"><br>React | <img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/vue.svg" alt="Vue" width="30"><br>Vue | <img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/angular.svg" alt="Angular" width="30"><br>Angular |
|
|
308
|
+
|-------------------|:------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------:|:----------------------------------------------------------------------:|:------------------------------------------------------------------------------:|
|
|
309
|
+
| **Grid** | [Grid JavaScript demos](https://bryntum.com/products/grid/examples/?framework=javascript) | [Grid React demos](https://bryntum.com/products/grid/examples/?framework=react) | [Grid Vue demos](https://bryntum.com/products/grid/examples/?framework=vue) | [Grid Angular demos](https://bryntum.com/products/grid/examples/?framework=angular) |
|
|
310
|
+
| **Scheduler** | [Scheduler JavaScript demos](https://bryntum.com/products/scheduler/examples/?framework=javascript) | [Scheduler React demos](https://bryntum.com/products/scheduler/examples/?framework=react) | [Scheduler Vue demos](https://bryntum.com/products/scheduler/examples/?framework=vue) | [Scheduler Angular demos](https://bryntum.com/products/scheduler/examples/?framework=angular) |
|
|
311
|
+
| **Scheduler Pro** | [Scheduler Pro JavaScript demos](https://bryntum.com/products/schedulerpro/examples/?framework=javascript) | [Scheduler Pro React demos](https://bryntum.com/products/schedulerpro/examples/?framework=react) | [Scheduler Pro Vue demos](https://bryntum.com/products/schedulerpro/examples/?framework=vue) | [Scheduler Pro Angular demos](https://bryntum.com/products/schedulerpro/examples/?framework=angular) |
|
|
312
|
+
| **Gantt** | [Gantt JavaScript demos](https://bryntum.com/products/gantt/examples/?framework=javascript) | [Gantt React demos](https://bryntum.com/products/gantt/examples/?framework=react) | [Gantt Vue demos](https://bryntum.com/products/gantt/examples/?framework=vue) | [Gantt Angular demos](https://bryntum.com/products/gantt/examples/?framework=angular) |
|
|
313
|
+
| **Calendar** | [Calendar JavaScript demos](https://bryntum.com/products/calendar/examples/?framework=javascript) | [Calendar React demos](https://bryntum.com/products/calendar/examples/?framework=react) | [Calendar Vue demos](https://bryntum.com/products/calendar/examples/?framework=vue) | [Calendar Angular demos](https://bryntum.com/products/calendar/examples/?framework=angular) |
|
|
314
|
+
| **TaskBoard** | [TaskBoard JavaScript demos](https://bryntum.com/products/taskboard/examples/?framework=javascript) | [TaskBoard React demos](https://bryntum.com/products/taskboard/examples/?framework=react) | [TaskBoard Vue demos](https://bryntum.com/products/taskboard/examples/?framework=vue) | [TaskBoard Angular demos](https://bryntum.com/products/taskboard/examples/?framework=angular) |
|
|
315
|
+
|
|
316
|
+
## Online references
|
|
31
317
|
|
|
32
|
-
* [Bryntum npm repository guide](https://bryntum.com/products/gantt/docs/guide/Gantt/npm-repository)
|
|
33
318
|
* [Bryntum Gantt documentation](https://bryntum.com/products/gantt/docs/)
|
|
34
319
|
* [Bryntum Gantt examples](https://bryntum.com/products/gantt/examples/)
|
|
320
|
+
|
|
35
321
|
* [Bryntum Support Forum](https://forum.bryntum.com/)
|
|
36
322
|
* [Contact us](https://bryntum.com/contact/)
|
|
37
323
|
|
|
@@ -42,3 +328,4 @@ Please visit the [Bryntum Gantt End User License](https://bryntum.com/products/g
|
|
|
42
328
|
|
|
43
329
|
Copyright © 2009-2026, Bryntum
|
|
44
330
|
All rights reserved.
|
|
331
|
+
|