@bryntum/taskboard-angular-thin 7.1.1 → 7.1.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.
Files changed (26) hide show
  1. package/README.md +295 -15
  2. package/package.json +1 -1
  3. package/src/lib/bryntum-column-combo.component.ts +1646 -0
  4. package/src/lib/bryntum-column-filter-field.component.ts +1361 -0
  5. package/src/lib/bryntum-column-picker-button.component.ts +1201 -0
  6. package/src/lib/bryntum-column-scroll-button.component.ts +1201 -0
  7. package/src/lib/bryntum-project-combo.component.ts +1649 -0
  8. package/src/lib/bryntum-resources-combo.component.ts +1645 -0
  9. package/src/lib/bryntum-swimlane-combo.component.ts +1645 -0
  10. package/src/lib/bryntum-swimlane-filter-field.component.ts +1378 -0
  11. package/src/lib/bryntum-swimlane-picker-button.component.ts +1201 -0
  12. package/src/lib/bryntum-swimlane-scroll-button.component.ts +1201 -0
  13. package/src/lib/bryntum-tag-combo.component.ts +1652 -0
  14. package/src/lib/bryntum-task-board-base.component.ts +2389 -0
  15. package/src/lib/bryntum-task-board-field-filter-picker-group.component.ts +1317 -0
  16. package/src/lib/bryntum-task-board-field-filter-picker.component.ts +1255 -0
  17. package/src/lib/bryntum-task-board-project-model.component.ts +1027 -0
  18. package/src/lib/bryntum-task-board.component.ts +2393 -0
  19. package/src/lib/bryntum-task-color-combo.component.ts +1335 -0
  20. package/src/lib/bryntum-task-filter-field.component.ts +1378 -0
  21. package/src/lib/bryntum-todo-list-field.component.ts +1319 -0
  22. package/src/lib/bryntum-undo-redo.component.ts +1180 -0
  23. package/src/lib/bryntum-zoom-slider.component.ts +1123 -0
  24. package/src/lib/taskboard.module.ts +79 -0
  25. package/src/lib/wrapper.helper.ts +89 -0
  26. package/src/public-api.ts +26 -0
package/README.md CHANGED
@@ -1,37 +1,316 @@
1
- # Angular Ivy wrapper for Bryntum TaskBoard
1
+ <br>
2
+ <br>
2
3
 
3
- This package contains a wrapper that encapsulates Bryntum TaskBoard and turns it into an Angular component, exposing
4
- configuration options, properties, features, and events. Compiled for the Angular Ivy engine.
4
+ <p align="center">
5
+ <a href="https://bryntum.com/" rel="noopener" target="_blank">
6
+ <img width="350" src="https://bryntum.com/resources/bryntum_logo_blue.svg" alt="Bryntum logo">
7
+ </a>
8
+ &emsp;&emsp;&emsp;&emsp;&emsp;
9
+ <img src="https://bryntum.com/products/grid/docs/data/Core/images/logo/angular.svg" alt="Angular" width="100">
10
+ </p>
11
+
12
+ <br>
13
+
14
+ # Angular wrapper for Bryntum TaskBoard Thin packages
15
+
16
+ This package provides a wrapper that turns Bryntum TaskBoard into an Angular component, exposing configuration options,
17
+ properties, features, and events.
18
+
19
+ > **Thin Package:** This is a thin wrapper package designed for applications that use multiple Bryntum products.
20
+ > Thin packages exclude bundled dependencies to avoid duplication. For details, see
21
+ > [Angular Multiple Products](https://bryntum.com/products/taskboard/docs/guide/TaskBoard/integration/angular/multiple-products).
22
+
23
+ ## Version Requirement
24
+
25
+ Wrapper is compiled for the **Angular Ivy** rendering engine (Angular 12+).
26
+
27
+ * Angular: `12` with Ivy support or higher
28
+ * TypeScript: `4.2` or higher
29
+ * Vite `5` or higher (starting with Angular `17`)
30
+
31
+ ## Package Contents
32
+
33
+ | Path | Description |
34
+ |--------|----------------------------------|
35
+ | `lib/` | Component type definitions |
36
+ | `src/` | Original TypeScript source files |
5
37
 
6
38
  ## Installation
7
39
 
8
- The installation is performed by issuing the installation command in the root of the application folder.
9
- The specific command depends on the package manager used by the application.
40
+ ### Angular Wrapper
41
+
42
+ ```bash
43
+ npm install @bryntum/taskboard-angular-thin@latest
44
+ ```
45
+
46
+ ### Component Package (Required)
47
+
48
+ ```bash
49
+ npm install @bryntum/taskboard-thin@latest
50
+ ```
51
+
52
+ ## Try Bryntum Online Demos
53
+
54
+ * [View Online Angular Demos](https://bryntum.com/products/taskboard/examples/?framework=angular)
55
+
56
+ ## Quick Start
57
+
58
+ Edit the `src/app/app-module.ts` file and add the following import:
59
+
60
+ ```typescript
61
+ import { NgModule } from '@angular/core';
62
+ import { BrowserModule } from '@angular/platform-browser';
63
+
64
+ import { BryntumCoreModule } from '@bryntum/core-angular-thin';
65
+ import { BryntumTaskBoardModule } from '@bryntum/taskboard-angular-thin';
66
+
67
+ import { AppComponent } from './app';
68
+
69
+ @NgModule({
70
+ declarations : [
71
+ AppComponent
72
+ ],
73
+ imports : [
74
+ BrowserModule,
75
+ BryntumCoreModule,
76
+ BryntumTaskBoardModule
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 { BryntumTaskBoardProps, BryntumTaskBoardProjectModelProps } from '@bryntum/taskboard-angular-thin';
88
+
89
+ export const projectProps: BryntumTaskBoardProjectModelProps = {
90
+ loadUrl : 'data/data.json',
91
+ autoLoad : true
92
+ };
93
+
94
+ export const taskBoardProps: BryntumTaskBoardProps = {
95
+ columns : [
96
+ { id : 'todo', text : 'Todo', color : 'deep-orange' },
97
+ { id : 'doing', text : 'Doing', color : 'orange' },
98
+ { id : 'done', text : 'Done', color : 'light-green' }
99
+ ],
100
+ columnField : 'status'
101
+ };
102
+ ```
103
+
104
+ Update the `src/app/app.ts` file with the following content:
105
+
106
+ ```typescript
107
+ import { Component, ViewChild } from '@angular/core';
108
+ import { BryntumTaskBoardComponent, BryntumTaskBoardProjectModelComponent } from '@bryntum/taskboard-angular-thin';
109
+ import { taskBoardProps, projectProps } from './app.config';
110
+
111
+ @Component({
112
+ selector : 'app-root',
113
+ standalone : false,
114
+ templateUrl : './app.html',
115
+ styleUrl : './app.css'
116
+ })
117
+ export class AppComponent {
118
+
119
+ taskBoardProps = taskBoardProps;
120
+ projectProps = projectProps;
121
+
122
+ @ViewChild('taskboard') taskBoardComponent!: BryntumTaskBoardComponent;
123
+ @ViewChild('project') projectComponent!: BryntumTaskBoardProjectModelComponent;
124
+ }
125
+ ```
10
126
 
11
- The following are most frequently used:
127
+ Edit the `src/app/app.html` file and replace the content with the following:
12
128
 
13
- Install using `npm`:
129
+ ```html
130
+ <bryntum-task-board-project-model
131
+ #project
132
+ [loadUrl] = "projectProps.loadUrl!"
133
+ [autoLoad] = "projectProps.autoLoad!"
134
+ ></bryntum-task-board-project-model>
14
135
 
15
- ```shell
16
- npm install @bryntum/taskboard-angular@7.1.1
136
+ <bryntum-task-board
137
+ #taskboard
138
+ [project] = "project"
139
+ [columns] = "taskBoardProps.columns!"
140
+ [columnField] = "taskBoardProps.columnField!"
141
+ ></bryntum-task-board>
17
142
  ```
18
143
 
19
- Install using `yarn`:
144
+ <details>
145
+ <summary>Create sample data (click to expand)</summary>
20
146
 
21
- ```shell
22
- yarn add @bryntum/taskboard-angular@7.1.1
147
+ Create a `public/data/data.json` file for example data and add the following JSON data to it:
148
+ ```javascript
149
+ {
150
+ "success": true,
151
+ "tasks": {
152
+ "rows": [
153
+ { "id": 1, "name": "Design landing page", "status": "doing", "description": "Creating layout for the new landing page" },
154
+ { "id": 2, "name": "Set up database schema", "status": "todo", "description": "Define tables and relationships for user data" },
155
+ { "id": 3, "name": "Write API documentation", "status": "done", "description": "Document the REST endpoints for the project" },
156
+ { "id": 4, "name": "Create login screen", "status": "doing", "description": "Implement authentication UI with validation" },
157
+ { "id": 5, "name": "Integrate payment gateway", "status": "todo", "description": "Connect Stripe API to the backend" },
158
+ { "id": 6, "name": "Fix navigation bugs", "status": "done", "description": "Resolve reported issues with navbar links" },
159
+ { "id": 7, "name": "Build notification system", "status": "doing", "description": "Real-time push notifications for events" },
160
+ { "id": 8, "name": "Add unit tests", "status": "todo", "description": "Write tests for services and components" },
161
+ { "id": 9, "name": "Optimize image loading", "status": "done", "description": "Implement lazy loading for large images" },
162
+ { "id": 10, "name": "Deploy staging server", "status": "doing", "description": "Set up CI/CD pipeline for staging environment" },
163
+ { "id": 11, "name": "Create user profile page", "status": "todo", "description": "Design and implement profile management UI" },
164
+ { "id": 12, "name": "Implement role-based access control", "status": "todo", "description": "Restrict features based on user roles" },
165
+ { "id": 13, "name": "Set up error logging", "status": "todo", "description": "Integrate centralized error monitoring tool" },
166
+ { "id": 14, "name": "Improve form validation", "status": "todo", "description": "Enhance validation rules for all forms" },
167
+ { "id": 15, "name": "Add search functionality", "status": "todo", "description": "Implement search bar with filtering options" }
168
+ ]
169
+ },
170
+ "resources": {
171
+ "rows": [
172
+ { "id": 1, "name": "Angelo" },
173
+ { "id": 2, "name": "Celia" },
174
+ { "id": 3, "name": "Dave" },
175
+ { "id": 4, "name": "Emilia" },
176
+ { "id": 5, "name": "Gloria" },
177
+ { "id": 6, "name": "Henrik" },
178
+ { "id": 7, "name": "Kate" }
179
+ ]
180
+ },
181
+ "assignments": {
182
+ "rows": [
183
+ { "id": 1, "event": 1, "resource": 1 },
184
+ { "id": 2, "event": 2, "resource": 2 },
185
+ { "id": 3, "event": 3, "resource": 3 },
186
+ { "id": 4, "event": 4, "resource": 4 },
187
+ { "id": 5, "event": 5, "resource": 5 },
188
+ { "id": 6, "event": 6, "resource": 6 },
189
+ { "id": 7, "event": 7, "resource": 7 },
190
+ { "id": 8, "event": 8, "resource": 1 },
191
+ { "id": 9, "event": 9, "resource": 2 },
192
+ { "id": 10, "event": 10, "resource": 3 },
193
+ { "id": 11, "event": 11, "resource": 4 },
194
+ { "id": 12, "event": 12, "resource": 5 },
195
+ { "id": 13, "event": 1, "resource": 5 },
196
+ { "id": 14, "event": 2, "resource": 5 },
197
+ { "id": 15, "event": 3, "resource": 5 },
198
+ { "id": 16, "event": 4, "resource": 5 },
199
+ { "id": 17, "event": 6, "resource": 5 },
200
+ { "id": 18, "event": 7, "resource": 5 }
201
+ ]
202
+ }
203
+ }
23
204
  ```
24
205
 
25
- ## Integration guide
206
+ This is the data the Bryntum TaskBoard will use.
207
+
208
+ </details>
209
+
210
+ ## Project Structure
211
+
212
+ ### Product Dependencies
213
+
214
+ API packages:
215
+
216
+ ```json
217
+ {
218
+ "dependencies": {
219
+ "@bryntum/core-thin": "7.1.3",
220
+ "@bryntum/engine-thin": "7.1.3",
221
+ "@bryntum/taskboard-thin": "7.1.3"
222
+ }
223
+ }
224
+ ```
225
+
226
+ Framework wrapper packages:
227
+
228
+ ```json
229
+ {
230
+ "dependencies": {
231
+ "@bryntum/core-angular-thin": "7.1.3",
232
+ "@bryntum/taskboard-angular-thin": "7.1.3"
233
+ }
234
+ }
235
+ ```
236
+
237
+ ### Product Configuration
238
+
239
+ ```typescript
240
+ import { BryntumTaskBoardProps } from '@bryntum/taskboard-angular-thin';
241
+
242
+ const taskBoardProps : BryntumTaskBoardProps = {
243
+ // TaskBoard configuration
244
+ };
245
+ ```
246
+
247
+ ### Product Styling
248
+
249
+ **SCSS/CSS:**
250
+
251
+ ```css
252
+ /* FontAwesome is used for icons */
253
+ @import '@bryntum/core-thin/fontawesome/css/fontawesome.css';
254
+ @import "@bryntum/core-thin/fontawesome/css/solid.css";
255
+ /* Structural CSS */
256
+ @import '@bryntum/core-thin/core.css';
257
+ @import '@bryntum/taskboard-thin/taskboard.css';
258
+ /* Theme */
259
+ @import '@bryntum/core-thin/material3-light.css';
260
+ ```
261
+
262
+ ### Product Localization
263
+
264
+ ```javascript
265
+ import '@bryntum/taskboard-thin/lib/localization/De.js'
266
+ ```
267
+
268
+ ## Integration Guide
26
269
 
27
270
  For details on installing and using this package, see the
28
271
  [Angular Integration Guide](https://bryntum.com/products/taskboard/docs/guide/TaskBoard/integration/angular/guide).
29
272
 
30
- # Online references
273
+ ## Wrappers
274
+
275
+ Angular wrappers encapsulate Bryntum components as native Angular components, exposing all configuration options,
276
+ properties, features, and events through Angular-familiar patterns like inputs, outputs, and templates.
277
+
278
+ Visit [Wrappers documentation](https://bryntum.com/products/taskboard/docs/guide/TaskBoard/integration/angular/guide#wrappers) for the complete list of available
279
+ wrapper components.
280
+
281
+ ## Features
282
+
283
+ Features are optional modules that extend Bryntum TaskBoard functionality. Each feature is suffixed with `Feature` and
284
+ can be enabled and configured through standard Angular inputs.
285
+
286
+ Visit [Features documentation](https://bryntum.com/products/taskboard/docs/guide/TaskBoard/integration/angular/guide#features) for the complete list of available
287
+ features and their configuration options.
288
+
289
+ ## Explore All Bryntum Products
290
+
291
+ * [Bryntum Grid](https://bryntum.com/products/grid/) - High-performance data grid
292
+ * [Bryntum Scheduler](https://bryntum.com/products/scheduler/) - Resource scheduling component
293
+ * [Bryntum Scheduler Pro](https://bryntum.com/products/schedulerpro/) - Advanced scheduling with dependencies
294
+ * [Bryntum Gantt](https://bryntum.com/products/gantt/) - Project planning and management
295
+ * [Bryntum Calendar](https://bryntum.com/products/calendar/) - Full-featured calendar component
296
+ * [Bryntum TaskBoard](https://bryntum.com/products/taskboard/) - Kanban-style task management
297
+
298
+ Explore our comprehensive collection of demos:
299
+
300
+ | 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 |
301
+ |-------------------|:------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------:|:----------------------------------------------------------------------:|:------------------------------------------------------------------------------:|
302
+ | **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) |
303
+ | **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) |
304
+ | **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) |
305
+ | **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) |
306
+ | **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) |
307
+ | **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) |
308
+
309
+ ## Online references
31
310
 
32
- * [Bryntum npm repository guide](https://bryntum.com/products/taskboard/docs/guide/TaskBoard/npm-repository)
33
311
  * [Bryntum TaskBoard documentation](https://bryntum.com/products/taskboard/docs/)
34
312
  * [Bryntum TaskBoard examples](https://bryntum.com/products/taskboard/examples/)
313
+
35
314
  * [Bryntum Support Forum](https://forum.bryntum.com/)
36
315
  * [Contact us](https://bryntum.com/contact/)
37
316
 
@@ -42,3 +321,4 @@ Please visit the [Bryntum TaskBoard End User License](https://bryntum.com/produc
42
321
 
43
322
  Copyright © 2009-2026, Bryntum
44
323
  All rights reserved.
324
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bryntum/taskboard-angular-thin",
3
- "version": "7.1.1",
3
+ "version": "7.1.3",
4
4
  "description": "Angular IVY wrappers for Bryntum TaskBoard JavaScript component",
5
5
  "keywords": [
6
6
  "bryntum",