@bryntum/taskboard-angular 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.
Files changed (76) hide show
  1. package/README.md +230 -15
  2. package/package.json +1 -1
  3. package/src/lib/bryntum-button-group.component.ts +1213 -0
  4. package/src/lib/bryntum-button.component.ts +1190 -0
  5. package/src/lib/bryntum-chat-panel.component.ts +1435 -0
  6. package/src/lib/bryntum-checkbox-group.component.ts +1478 -0
  7. package/src/lib/bryntum-checkbox.component.ts +1333 -0
  8. package/src/lib/bryntum-chip-view.component.ts +1225 -0
  9. package/src/lib/bryntum-code-editor.component.ts +1419 -0
  10. package/src/lib/bryntum-color-field.component.ts +1334 -0
  11. package/src/lib/bryntum-column-combo.component.ts +1645 -0
  12. package/src/lib/bryntum-column-filter-field.component.ts +1360 -0
  13. package/src/lib/bryntum-column-picker-button.component.ts +1200 -0
  14. package/src/lib/bryntum-column-scroll-button.component.ts +1200 -0
  15. package/src/lib/bryntum-combo.component.ts +1634 -0
  16. package/src/lib/bryntum-container.component.ts +1166 -0
  17. package/src/lib/bryntum-date-field.component.ts +1413 -0
  18. package/src/lib/bryntum-date-picker.component.ts +1756 -0
  19. package/src/lib/bryntum-date-range-field.component.ts +1417 -0
  20. package/src/lib/bryntum-date-time-field.component.ts +1261 -0
  21. package/src/lib/bryntum-demo-code-editor.component.ts +1441 -0
  22. package/src/lib/bryntum-demo-header.component.ts +141 -0
  23. package/src/lib/bryntum-display-field.component.ts +1308 -0
  24. package/src/lib/bryntum-duration-field.component.ts +1390 -0
  25. package/src/lib/bryntum-editor.component.ts +1343 -0
  26. package/src/lib/bryntum-field-filter-picker-group.component.ts +1308 -0
  27. package/src/lib/bryntum-field-filter-picker.component.ts +1272 -0
  28. package/src/lib/bryntum-field-set.component.ts +1408 -0
  29. package/src/lib/bryntum-file-field.component.ts +1313 -0
  30. package/src/lib/bryntum-file-picker.component.ts +1199 -0
  31. package/src/lib/bryntum-filter-field.component.ts +1367 -0
  32. package/src/lib/bryntum-fullscreen-button.component.ts +53 -0
  33. package/src/lib/bryntum-hint.component.ts +1506 -0
  34. package/src/lib/bryntum-label.component.ts +989 -0
  35. package/src/lib/bryntum-list.component.ts +1196 -0
  36. package/src/lib/bryntum-menu.component.ts +1520 -0
  37. package/src/lib/bryntum-month-picker.component.ts +1400 -0
  38. package/src/lib/bryntum-number-field.component.ts +1368 -0
  39. package/src/lib/bryntum-paging-toolbar.component.ts +1243 -0
  40. package/src/lib/bryntum-panel.component.ts +1377 -0
  41. package/src/lib/bryntum-password-field.component.ts +1296 -0
  42. package/src/lib/bryntum-project-combo.component.ts +1648 -0
  43. package/src/lib/bryntum-radio-group.component.ts +1446 -0
  44. package/src/lib/bryntum-radio.component.ts +1333 -0
  45. package/src/lib/bryntum-resources-combo.component.ts +1644 -0
  46. package/src/lib/bryntum-scheduler-project-combo.component.ts +1638 -0
  47. package/src/lib/bryntum-slide-toggle.component.ts +1333 -0
  48. package/src/lib/bryntum-slider.component.ts +1112 -0
  49. package/src/lib/bryntum-splitter.component.ts +1025 -0
  50. package/src/lib/bryntum-swimlane-combo.component.ts +1644 -0
  51. package/src/lib/bryntum-swimlane-filter-field.component.ts +1377 -0
  52. package/src/lib/bryntum-swimlane-picker-button.component.ts +1200 -0
  53. package/src/lib/bryntum-swimlane-scroll-button.component.ts +1200 -0
  54. package/src/lib/bryntum-tab-panel.component.ts +1441 -0
  55. package/src/lib/bryntum-tag-combo.component.ts +1651 -0
  56. package/src/lib/bryntum-task-board-base.component.ts +2388 -0
  57. package/src/lib/bryntum-task-board-field-filter-picker-group.component.ts +1316 -0
  58. package/src/lib/bryntum-task-board-field-filter-picker.component.ts +1254 -0
  59. package/src/lib/bryntum-task-board-project-model.component.ts +1026 -0
  60. package/src/lib/bryntum-task-board.component.ts +2392 -0
  61. package/src/lib/bryntum-task-color-combo.component.ts +1334 -0
  62. package/src/lib/bryntum-task-filter-field.component.ts +1377 -0
  63. package/src/lib/bryntum-text-area-field.component.ts +1312 -0
  64. package/src/lib/bryntum-text-area-picker-field.component.ts +1343 -0
  65. package/src/lib/bryntum-text-field.component.ts +1321 -0
  66. package/src/lib/bryntum-time-field.component.ts +1388 -0
  67. package/src/lib/bryntum-time-picker.component.ts +1207 -0
  68. package/src/lib/bryntum-todo-list-field.component.ts +1318 -0
  69. package/src/lib/bryntum-toolbar.component.ts +1234 -0
  70. package/src/lib/bryntum-undo-redo.component.ts +1179 -0
  71. package/src/lib/bryntum-widget.component.ts +982 -0
  72. package/src/lib/bryntum-year-picker.component.ts +1423 -0
  73. package/src/lib/bryntum-zoom-slider.component.ts +1122 -0
  74. package/src/lib/taskboard.module.ts +232 -0
  75. package/src/lib/wrapper.helper.ts +89 -0
  76. package/src/public-api.ts +77 -0
@@ -0,0 +1,2388 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /**
3
+ * Angular wrapper for Bryntum TaskBoardBase
4
+ */
5
+
6
+ import { Component, ElementRef, EventEmitter, Output, Input, SimpleChange, SimpleChanges, OnDestroy, OnInit } from '@angular/core';
7
+
8
+ import WrapperHelper from './wrapper.helper';
9
+
10
+ import { AlignSpec, AssignmentModel, AssignmentModelConfig, Base, BryntumScrollOptions, CardSize, ColumnDrag, ColumnDragConfig, ColumnFilter, ColumnFilterConfig, ColumnHeaderMenu, ColumnHeaderMenuConfig, ColumnLock, ColumnLockConfig, ColumnModel, ColumnModelConfig, ColumnRename, ColumnRenameConfig, ColumnResize, ColumnResizeConfig, ColumnSort, ColumnSortConfig, ColumnToolbars, ColumnToolbarsConfig, Container, ContainerItemConfig, DomConfig, FilterBar, FilterBarConfig, KeyMapConfig, Mask, MaskConfig, Menu, MenuItem, MenuItemEntry, Model, PagingToolbarConfig, Panel, PanelCollapserConfig, PanelCollapserOverlayConfig, PanelHeader, ProjectModel, ProjectModelConfig, Rectangle, ResourceModel, ResourceModelConfig, ScrollManagerConfig, Scroller, ScrollerConfig, SimpleTaskEdit, SimpleTaskEditConfig, StateProvider, Store, StoreConfig, SwimlaneDrag, SwimlaneDragConfig, SwimlaneModel, SwimlaneModelConfig, TabConfig, TaskBoard, TaskBoardBase, TaskBoardBaseListeners, TaskDrag, TaskDragConfig, TaskDragSelect, TaskDragSelectConfig, TaskEdit, TaskEditConfig, TaskEditor, TaskItemOptions, TaskMenu, TaskMenuConfig, TaskModel, TaskModelConfig, TaskTooltip, TaskTooltipConfig, Tool, ToolConfig, ToolbarConfig, ToolbarItems, Widget } from '@bryntum/taskboard';
11
+
12
+ import { StringHelper } from '@bryntum/taskboard';
13
+
14
+ export type BryntumTaskBoardBaseProps = {
15
+ // Configs
16
+ /**
17
+ * The name of the event that should activate a task and trigger editing (if an editing feature is active).
18
+ * Available options are: 'taskClick', 'taskDblClick' or null (disable)
19
+ */
20
+ activateTaskEvent ? : 'taskClick'|'taskDblClick'|null
21
+ /**
22
+ * Element (or element id) to adopt as this Widget's encapsulating element. The widget's
23
+ * content will be placed inside this element.
24
+ * ...
25
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-adopt)
26
+ */
27
+ adopt ? : HTMLElement|string
28
+ /**
29
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
30
+ * ...
31
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-align)
32
+ */
33
+ align ? : AlignSpec|string
34
+ /**
35
+ * When this widget is a child of a [Container](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container), it will by default be participating in a
36
+ * flexbox layout. This config allows you to set this widget's
37
+ * [align-self](https://developer.mozilla.org/en-US/docs/Web/CSS/align-self) style.
38
+ */
39
+ alignSelf ? : string
40
+ /**
41
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating) and being shown through [showBy](#Core/widget/Widget#function-showBy).*
42
+ * `true` to show a connector arrow pointing to the align target.
43
+ */
44
+ anchor ? : boolean
45
+ /**
46
+ * Element (or the id of an element) to append this widget's element to. Can be configured, or set once at
47
+ * runtime. To access the element of a rendered widget, see [element](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#property-element).
48
+ */
49
+ appendTo ? : HTMLElement|string
50
+ /**
51
+ * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject
52
+ * into an element which will be linked using the `aria-describedby` attribute.
53
+ * ...
54
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-ariaDescription)
55
+ */
56
+ ariaDescription ? : string
57
+ /**
58
+ * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject as
59
+ * the `aria-label` attribute.
60
+ * ...
61
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-ariaLabel)
62
+ */
63
+ ariaLabel ? : string
64
+ /**
65
+ * Inline [assignments](https://bryntum.com/products/scheduler/docs#Scheduler/model/AssignmentModel), will be loaded into an internally created
66
+ * [AssignmentStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/AssignmentStore) as a part of a [project](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel).
67
+ */
68
+ assignments ? : AssignmentModel[]|object[]|AssignmentModelConfig[]
69
+ /**
70
+ * Set to `true` to auto generate columns when [columns](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/TaskBoardColumns#config-columns) is undefined.
71
+ * ...
72
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-autoGenerateColumns)
73
+ */
74
+ autoGenerateColumns ? : boolean
75
+ /**
76
+ * Set to `true` to auto generate swimlanes when [swimlanes](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/TaskBoardSwimlanes#config-swimlanes) is undefined.
77
+ * ...
78
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-autoGenerateSwimlanes)
79
+ */
80
+ autoGenerateSwimlanes ? : boolean
81
+ /**
82
+ * A Config object representing the configuration of a [Toolbar](https://bryntum.com/products/taskboard/docs/api/Core/widget/Toolbar),
83
+ * or array of config objects representing the child items of a Toolbar. Another way to add a bbar is to use [strips](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-strips).
84
+ * ...
85
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-bbar)
86
+ */
87
+ bbar ? : (ContainerItemConfig|string)[]|ToolbarConfig|PagingToolbarConfig|null
88
+ /**
89
+ * Custom CSS classes to add to the panel's body element.
90
+ * ...
91
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-bodyCls)
92
+ */
93
+ bodyCls ? : string|object
94
+ /**
95
+ * Items to add to each card's body.
96
+ * ...
97
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-bodyItems)
98
+ */
99
+ bodyItems ? : Record<string, TaskItemOptions>
100
+ /**
101
+ * An object where property names with a truthy value indicate which events should bubble up the ownership
102
+ * hierarchy when triggered.
103
+ * ...
104
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-bubbleEvents)
105
+ */
106
+ bubbleEvents ? : object
107
+ /**
108
+ * Set to `false` to not call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.
109
+ * ...
110
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-callOnFunctions)
111
+ */
112
+ callOnFunctions ? : boolean
113
+ /**
114
+ * An array of [CardSize](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/ResponsiveCards#typedef-CardSize) objects to use as responsive levels based on card widths.
115
+ * ...
116
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-cardSizes)
117
+ */
118
+ cardSizes ? : CardSize
119
+ /**
120
+ * By default, if an event handler throws an exception, the error propagates up the stack and the
121
+ * application state is undefined. Code which follows the event handler will *not* be executed.
122
+ * ...
123
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-catchEventHandlerExceptions)
124
+ */
125
+ catchEventHandlerExceptions ? : boolean
126
+ /**
127
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
128
+ * Set to `true` to centre the Widget in browser viewport space.
129
+ */
130
+ centered ? : boolean
131
+ /**
132
+ * Columns hold their tasks in stores chained off the project's task store. Filters applied to the project store
133
+ * are by default not applied to the column stores; they are only affected by their own filters. By configuring
134
+ * `chainFilters : true`, the filters from the project store will also be taken into account when filtering the
135
+ * columns.
136
+ * ...
137
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-chainFilters)
138
+ */
139
+ chainFilters ? : boolean
140
+ /**
141
+ * Custom CSS classes to add to element.
142
+ * May be specified as a space separated string, or as an object in which property names
143
+ * with truthy values are used as the class names:
144
+ * ...
145
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-cls)
146
+ */
147
+ cls ? : string|object
148
+ /**
149
+ * Controls whether the panel is collapsed (the body of the panel is hidden while only the header is
150
+ * visible). Only valid if the panel is [collapsible](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-collapsible).
151
+ */
152
+ collapsed ? : boolean
153
+ /**
154
+ * Specify `true` to hide the column title instead of rotating it on collapse.
155
+ * ...
156
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-collapseTitle)
157
+ */
158
+ collapseTitle ? : boolean
159
+ /**
160
+ * This config enables collapsibility for the panel. See [collapsed](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-collapsed).
161
+ * ...
162
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-collapsible)
163
+ */
164
+ collapsible ? : boolean|PanelCollapserConfig|PanelCollapserOverlayConfig
165
+ /**
166
+ * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets
167
+ * `style` block.
168
+ * ...
169
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-color)
170
+ */
171
+ color ? : string
172
+ /**
173
+ * Programmatic control over which column to start in when used in a grid layout.
174
+ */
175
+ column ? : number
176
+ /**
177
+ * Field on a task record used to determine which column the task belongs to.
178
+ * ...
179
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-columnField)
180
+ */
181
+ columnField ? : string
182
+ /**
183
+ * Store containing the TaskBoard columns. A tasks [columnField](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/TaskBoardColumns#config-columnField) is matched against the `id` of a
184
+ * column to determine in which column it is displayed.
185
+ * ...
186
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-columns)
187
+ */
188
+ columns ? : ColumnModel[]|ColumnModelConfig[]|string[]|Store|string|StoreConfig
189
+ /**
190
+ * A function which renders the text, HTML, or `DomConfig` object to show as the column title. If you provide a
191
+ * `DomConfig` object, it will replace the title element and you are responsible for styling it + laying it out.
192
+ * ...
193
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-columnTitleRenderer)
194
+ * @param {object} renderData
195
+ * @param {TaskBoard.model.ColumnModel} columnRecord The column instance
196
+ * @returns {string,DomConfig}
197
+ */
198
+ columnTitleRenderer ? : (renderData: object, columnRecord: ColumnModel) => string|DomConfig
199
+ config ? : object
200
+ /**
201
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating) or [positioned](#Core/widget/Widget#config-positioned).*
202
+ * Element, Widget or Rectangle to which this Widget is constrained.
203
+ */
204
+ constrainTo ? : HTMLElement|Widget|Rectangle
205
+ /**
206
+ * Initial CSS variables to set.
207
+ * ...
208
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-css)
209
+ */
210
+ css ? : Record<string, string>
211
+ /**
212
+ * CSS variable prefix, appended to the keys used in [css](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-css).
213
+ * ...
214
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-cssVarPrefix)
215
+ */
216
+ cssVarPrefix ? : string
217
+ /**
218
+ * When this Widget configuration is used in the Grid's RowExpander feature's `widget` config, provide the
219
+ * field on the expanded record to use for populating this widget's store (if applicable)
220
+ */
221
+ dataField ? : string
222
+ /**
223
+ * Object to apply to elements dataset (each key will be used as a data-attribute on the element)
224
+ */
225
+ dataset ? : Record<string, string>
226
+ /**
227
+ * Check for CSS compatibility issues when upgrading to v7. Performs the following checks:
228
+ * ...
229
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-detectCSSCompatibilityIssues)
230
+ */
231
+ detectCSSCompatibilityIssues ? : boolean
232
+ /**
233
+ * Disable or enable the widget. It is similar to [readOnly](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-readOnly) except a disabled widget
234
+ * cannot be focused, uses a different rendition (usually greyish) and does not allow selecting its value.
235
+ * ...
236
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-disabled)
237
+ */
238
+ disabled ? : boolean|'inert'
239
+ /**
240
+ * Controls the placement of this widget when it is added to a [panel's ](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel)
241
+ * [strips collection](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,
242
+ * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's
243
+ * body. Such widgets are called "edge strips".
244
+ * ...
245
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-dock)
246
+ */
247
+ dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object
248
+ /**
249
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
250
+ * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a ´handleSelector´
251
+ * property which controls when a drag should start.
252
+ * ...
253
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-draggable)
254
+ */
255
+ draggable ? : boolean|{
256
+ handleSelector?: string
257
+ }
258
+ /**
259
+ * Make this Panel a docked drawer which slides out from one side of the browser viewport by default.
260
+ * ...
261
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-drawer)
262
+ * @param {'start','left','end','right','top','bottom'} side The side of the viewport to dock the drawer to. * `'start'` means the `inline-start` side. * `'end'` means the `inline-end` side.
263
+ * @param {string,number} size The size of the drawer in its collapsible axis.
264
+ * @param {boolean} inline If using the [appendTo](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-appendTo) config to place the drawer inside a host widget, this may be set to `true` to make the drawer inline within that host. Note that, if using this, the layout of the host element must have `flex-direction` set appropriately.
265
+ * @param {boolean,object} autoClose Specifies what user actions should automatically close the drawer. Defaults to closing when the user clicks outside of the drawer or when focus moves outside of the drawer.
266
+ * @param {boolean,string} autoClose.mousedown If the user clicks outside of the drawer, the drawer will automatically be hidden. If the value is a string, it is used as a CSS selector to filter clicks which should close the drawer.
267
+ * @param {boolean,string} autoClose.focusout If focus moves outside of the drawer, the drawer will automatically be hidden.
268
+ * @param {string} autoClose.mouseout Hides the drawer when the mouse leaves the drawer after the `autoCloseDelay` period.
269
+ * @param {number} autoCloseDelay When using `mouseout`, this is the delay in milliseconds
270
+ */
271
+ drawer ? : boolean|{side?: 'start'|'left'|'end'|'right'|'top'|'bottom', size?: string|number, inline?: boolean, autoClose: { mousedown?: boolean|string, focusout?: boolean|string, mouseout?: string }, autoCloseDelay?: number}
272
+ /**
273
+ * Whether to draw cards on scroll, or only when scrolling ends.
274
+ * ...
275
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-drawOnScroll)
276
+ */
277
+ drawOnScroll ? : boolean
278
+ /**
279
+ * An object specifying attributes to assign to the root element of this widget.
280
+ * Set `null` value to attribute to remove it.
281
+ * ...
282
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-elementAttributes)
283
+ */
284
+ elementAttributes ? : Record<string, string|null>
285
+ extraData ? : any
286
+ /**
287
+ * When this widget is a child of a [Container](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container), it will by default be participating in a
288
+ * flexbox layout. This config allows you to set this widget's
289
+ * [flex](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) style.
290
+ * This may be configured as a single number or a `&lt;flex-grow&gt; &lt;flex-shrink&gt; &lt;flex-basis&gt;` format string.
291
+ * numeric-only values are interpreted as the `flex-grow` value.
292
+ */
293
+ flex ? : number|string
294
+ /**
295
+ * Set to `true` to move the widget out of the document flow and position it
296
+ * absolutely in browser viewport space.
297
+ */
298
+ floating ? : boolean
299
+ /**
300
+ * Config object of a footer. May contain a `dock`, `html` and a `cls` property. A footer is not a widget,
301
+ * but rather plain HTML that follows the last element of the panel's body and [strips](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-strips).
302
+ * ...
303
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-footer)
304
+ */
305
+ footer ? : {
306
+ dock?: 'top'|'right'|'bottom'|'left'|'start'|'end'
307
+ html?: string
308
+ cls?: string
309
+ }|string
310
+ /**
311
+ * Items to add to each card's footer.
312
+ * ...
313
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-footerItems)
314
+ */
315
+ footerItems ? : Record<string, TaskItemOptions>
316
+ /**
317
+ * The function is called for each task as part of the render loop, and is expected to return the height in
318
+ * pixels for the task. Using this function is only recommended when using partial virtualized rendering, see
319
+ * the [virtualize](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/TaskBoardVirtualization#config-virtualize) setting.
320
+ * ...
321
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-getTaskHeight)
322
+ * @param {TaskBoard.model.TaskModel} taskRecord The task record
323
+ * @returns {number} The height of the task in pixels
324
+ */
325
+ getTaskHeight ? : (taskRecord: TaskModel) => number
326
+ /**
327
+ * A config [object](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#typedef-PanelHeader) for the panel's header or a string in place of a `title`.
328
+ * ...
329
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-header)
330
+ */
331
+ header ? : string|boolean|PanelHeader
332
+ /**
333
+ * Items to add to each card's header.
334
+ * ...
335
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-headerItems)
336
+ */
337
+ headerItems ? : Record<string, TaskItemOptions>
338
+ /**
339
+ * Widget's height, used to set element `style.height`. Either specify a valid height string or a number,
340
+ * which will get 'px' appended. We recommend using CSS as the primary way to control height, but in some
341
+ * cases this config is convenient.
342
+ */
343
+ height ? : string|number
344
+ /**
345
+ * Configure with true to make widget initially hidden.
346
+ */
347
+ hidden ? : boolean
348
+ /**
349
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
350
+ * ...
351
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-hideAnimation)
352
+ */
353
+ hideAnimation ? : boolean|object
354
+ /**
355
+ * By default, the header text is HTML-encoded. Set this flag to `false` disable this and allow html
356
+ * elements in the column headers. Can also be specified on a single
357
+ * [column](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ColumnModel#field-htmlEncodeHeaderText).
358
+ */
359
+ htmlEncodeHeaderText ? : boolean
360
+ /**
361
+ * An icon to show before the [title](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-title). Either pass a CSS class as a string, or pass a
362
+ * [DomConfig](https://bryntum.com/products/taskboard/docs/api/Core/helper/DomHelper#typedef-DomConfig) object describing an element to represent the icon.
363
+ */
364
+ icon ? : string|DomConfig
365
+ /**
366
+ * Widget id, if not specified one will be generated. Also used for lookups through Widget.getById
367
+ */
368
+ id ? : string
369
+ /**
370
+ * Determines if the widgets read-only state should be controlled by its parent.
371
+ * ...
372
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-ignoreParentReadOnly)
373
+ */
374
+ ignoreParentReadOnly ? : boolean
375
+ /**
376
+ * Convenience setting to align input fields of child widgets. By default, the Field input element is
377
+ * placed immediately following the `label`. If you prefer to have all input fields aligned to the
378
+ * right, set this config to `'end'`.
379
+ * ...
380
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-inputFieldAlign)
381
+ */
382
+ inputFieldAlign ? : 'start'|'end'
383
+ /**
384
+ * Element (or element id) to insert this widget before. If provided, [appendTo](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-appendTo) config is ignored.
385
+ */
386
+ insertBefore ? : HTMLElement|string
387
+ /**
388
+ * Element (or element id) to append this widget element to, as a first child. If provided, [appendTo](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-appendTo) config is ignored.
389
+ */
390
+ insertFirst ? : HTMLElement|string
391
+ /**
392
+ * A template method (empty by default) allowing you to control if a task can be selected or not.
393
+ * ...
394
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-isTaskSelectable)
395
+ * @param {TaskBoard.model.TaskModel} taskRecord The task record
396
+ * @returns {boolean} `true` if the task can be selected, otherwise `false`
397
+ */
398
+ isTaskSelectable ? : (taskRecord: TaskModel) => boolean
399
+ /**
400
+ * See [Keyboard shortcuts](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoard#keyboard-shortcuts) for details
401
+ */
402
+ keyMap ? : Record<string, KeyMapConfig>
403
+ /**
404
+ * Convenience setting to use same label placement on all child widgets.
405
+ * ...
406
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-labelPosition)
407
+ */
408
+ labelPosition ? : 'before'|'above'|'align-before'|'auto'|null
409
+ /**
410
+ * The listener set for this object.
411
+ * ...
412
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-listeners)
413
+ */
414
+ listeners ? : TaskBoardBaseListeners
415
+ /**
416
+ * A [Mask](https://bryntum.com/products/taskboard/docs/api/Core/widget/Mask) config object, or a message to be shown when a store is performing a remote
417
+ * operation, or Crud Manager is loading data from the sever. Set to `null` to disable default load mask.
418
+ */
419
+ loadMask ? : string|MaskConfig|null
420
+ /**
421
+ * A [Mask](https://bryntum.com/products/taskboard/docs/api/Core/widget/Mask) config object to adjust the [maskDefaults](#Core/widget/Widget#config-maskDefaults)
422
+ * when data is loading. The message and optional configuration from the
423
+ * [loadMask](https://bryntum.com/products/taskboard/docs/api/Core/mixin/LoadMaskable#config-loadMask) config take priority over these options, just as they do
424
+ * for `maskDefaults`, respectively.
425
+ * ...
426
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-loadMaskDefaults)
427
+ */
428
+ loadMaskDefaults ? : MaskConfig
429
+ /**
430
+ * A [Mask](https://bryntum.com/products/taskboard/docs/api/Core/widget/Mask) config object to adjust the [maskDefaults](#Core/widget/Widget#config-maskDefaults)
431
+ * when an error occurs loading data.
432
+ * ...
433
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-loadMaskError)
434
+ */
435
+ loadMaskError ? : MaskConfig|Mask|boolean
436
+ /**
437
+ * A class translations of which are used for translating this entity.
438
+ * This is often used when translations of an item are defined on its container class.
439
+ * For example:
440
+ * ...
441
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-localeClass)
442
+ */
443
+ localeClass ? : typeof Base
444
+ /**
445
+ * Set to `false` to disable localization of this object.
446
+ */
447
+ localizable ? : boolean
448
+ /**
449
+ * List of properties which values should be translated automatically upon a locale applying.
450
+ * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),
451
+ * you could use 'localeKey' meta configuration.
452
+ * Example:
453
+ * ...
454
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-localizableProperties)
455
+ */
456
+ localizableProperties ? : string[]
457
+ /**
458
+ * Widget's margin. This may be configured as a single number or a `TRBL` format string.
459
+ * numeric-only values are interpreted as pixels.
460
+ */
461
+ margin ? : number|string
462
+ /**
463
+ * This config object contains the defaults for the [Mask](https://bryntum.com/products/taskboard/docs/api/Core/widget/Mask) created for the
464
+ * [masked](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-masked) config. Any properties specified in the `masked` config will override these
465
+ * values.
466
+ */
467
+ maskDefaults ? : MaskConfig
468
+ /**
469
+ * Set to `true` to apply the default mask to the widget. Alternatively, this can be the mask message or a
470
+ * [Mask](https://bryntum.com/products/taskboard/docs/api/Core/widget/Mask) config object.
471
+ */
472
+ masked ? : boolean|string|MaskConfig
473
+ /**
474
+ * The element's maxHeight. Can be either a String or a Number (which will have 'px' appended). Note that
475
+ * like [height](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.
476
+ */
477
+ maxHeight ? : string|number
478
+ /**
479
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
480
+ * ...
481
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-maximizeOnMobile)
482
+ */
483
+ maximizeOnMobile ? : number|string
484
+ /**
485
+ * The elements maxWidth. Can be either a String or a Number (which will have 'px' appended). Note that
486
+ * like [width](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.
487
+ */
488
+ maxWidth ? : string|number
489
+ /**
490
+ * The element's minHeight. Can be either a String or a Number (which will have 'px' appended). Note that
491
+ * like [height](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.
492
+ */
493
+ minHeight ? : string|number
494
+ /**
495
+ * The elements minWidth. Can be either a String or a Number (which will have 'px' appended). Note that
496
+ * like [width](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.
497
+ */
498
+ minWidth ? : string|number
499
+ /**
500
+ * Default values to apply to task records created by task boards features (such as the column header menu and
501
+ * the column toolbar)
502
+ */
503
+ newTaskDefaults ? : TaskModelConfig
504
+ /**
505
+ * The owning Widget of this Widget. If this Widget is directly contained (that is, it is one of the
506
+ * [items](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container#property-items) of a Container), this config will be ignored. In this case
507
+ * the owner is <strong>always</strong> the encapsulating Container.
508
+ * ...
509
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-owner)
510
+ */
511
+ owner ? : Widget|any
512
+ /**
513
+ * Specify plugins (an array of classes) in config
514
+ */
515
+ plugins ? : Function[]
516
+ /**
517
+ * Set to `true` when a widget is rendered into another widget's [contentElement](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#property-contentElement), but must
518
+ * not participate in the standard layout of that widget, and must be positioned relatively to that
519
+ * widget's [contentElement](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#property-contentElement).
520
+ * ...
521
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-positioned)
522
+ */
523
+ positioned ? : boolean
524
+ /**
525
+ * A function called on each render before adding items to a tasks card, allowing runtime manipulation of them.
526
+ * ...
527
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-processItems)
528
+ * @param {object} context
529
+ * @param {Record<string, TaskItemOptions>} context.headerItems Item config objects for the task header, keyed by ref
530
+ * @param {Record<string, TaskItemOptions>} context.bodyItems Item config objects for the task body, keyed by ref
531
+ * @param {Record<string, TaskItemOptions>} context.footerItems Item config objects for the task footer, keyed by ref
532
+ * @param {TaskBoard.model.TaskModel} context.taskRecord Record representing task to be rendered
533
+ * @returns {boolean,void} Returning `false` from this function prevents the menu being shown
534
+ */
535
+ processItems ? : (context: { headerItems: Record<string, TaskItemOptions>, bodyItems: Record<string, TaskItemOptions>, footerItems: Record<string, TaskItemOptions>, taskRecord: TaskModel }) => boolean|void
536
+ /**
537
+ * A [project config object](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel#configs) or an instance that holds all stores and
538
+ * data used by the TaskBoard.
539
+ * ...
540
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-project)
541
+ */
542
+ project ? : ProjectModel|ProjectModelConfig|object
543
+ /**
544
+ * Whether this widget is read-only. This is only valid if the widget is an input
545
+ * field, <strong>or contains input fields at any depth</strong>.
546
+ * ...
547
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-readOnly)
548
+ */
549
+ readOnly ? : boolean
550
+ /**
551
+ * [Record](https://bryntum.com/products/taskboard/docs/api/Core/data/Model) whose values will be used to populate fields in the container.
552
+ * ...
553
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-record)
554
+ */
555
+ record ? : Model
556
+ relayStoreEvents ? : boolean
557
+ /**
558
+ * Either a default `rendition` to apply to all child widgets, or a map of renditions keyed by child widget
559
+ * `type`.
560
+ * ...
561
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-rendition)
562
+ */
563
+ rendition ? : string|Record<string, string>|null
564
+ /**
565
+ * Path to load resource images from. Used by the for example the resource picker in the task editor and by the
566
+ * ResourceAvatars task item. Set this to display miniature images for each resource using their `image` field.
567
+ * ...
568
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-resourceImagePath)
569
+ */
570
+ resourceImagePath ? : string
571
+ /**
572
+ * Inline [resources](https://bryntum.com/products/scheduler/docs#Scheduler/model/ResourceModel), will be loaded into an internally created
573
+ * [ResourceStore](https://bryntum.com/products/scheduler/docs#Scheduler/data/ResourceStore) as a part of a [project](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ProjectModel).
574
+ */
575
+ resources ? : ResourceModel[]|object[]|ResourceModelConfig[]
576
+ /**
577
+ * Specifies the various responsive state objects keyed by their name. Each key (except `'*'`, see below) in
578
+ * this object is a state name (see [responsiveState](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveState)) and its corresponding value is the
579
+ * associated [ResponsiveState](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#typedef-ResponsiveState) object.
580
+ * ...
581
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-responsive)
582
+ */
583
+ responsive ? : object
584
+ /**
585
+ * Set to `true` to mark this instance as the default [responsiveTarget](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveTarget) for descendants that do
586
+ * not specify an explicit [responsiveTarget](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveTarget) of their own.
587
+ */
588
+ responsiveRoot ? : boolean
589
+ /**
590
+ * The name of the active state of the [responsive](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsive) config. This is assigned internally
591
+ * and should not be assigned directly.
592
+ */
593
+ responsiveState ? : string
594
+ /**
595
+ * The widget whose size and other properties drive this object's responsive behavior. If this config is not
596
+ * specified, the closest ancestor that specified [responsiveRoot=true](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveRoot) will be
597
+ * used. If there is no such ancestor, then the instance using this mixin is used.
598
+ * ...
599
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-responsiveTarget)
600
+ */
601
+ responsiveTarget ? : string|Widget
602
+ /**
603
+ * If you are rendering this widget to a shadow root inside a web component, set this config to the shadowRoot. If not inside a web component, set it to `document.body`
604
+ */
605
+ rootElement ? : ShadowRoot|HTMLElement
606
+ /**
607
+ * This may be configured as `true` to make the widget's element use the `direction:rtl` style.
608
+ * ...
609
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-rtl)
610
+ */
611
+ rtl ? : boolean
612
+ /**
613
+ * Specifies whether (and optionally in which axes) a Widget may scroll. `true` means this widget may scroll
614
+ * in both axes. May be an object containing boolean `overflowX` and `overflowY` properties which are
615
+ * applied to CSS style properties `overflowX` and `overflowY`. If they are boolean, they are translated to
616
+ * CSS overflow properties thus:
617
+ * ...
618
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-scrollable)
619
+ */
620
+ scrollable ? : boolean|ScrollerConfig|Scroller
621
+ /**
622
+ * Defines what to do if document is scrolled while Widget is visible (only relevant when floating is set to `true`).
623
+ * Valid values: ´null´: do nothing, ´hide´: hide the widget or ´realign´: realign to the target if possible.
624
+ */
625
+ scrollAction ? : 'hide'|'realign'|null
626
+ /**
627
+ * Configuration values for the [ScrollManager](https://bryntum.com/products/taskboard/docs/api/Core/util/ScrollManager) class. It is used to manage column/body
628
+ * scrolling during task, column or swimlane drag.
629
+ * ...
630
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-scrollManager)
631
+ */
632
+ scrollManager ? : ScrollManagerConfig
633
+ /**
634
+ * Default scroll options, see the options for [scrollIntoView](https://bryntum.com/products/taskboard/docs/api/Core/helper/util/Scroller#function-scrollIntoView)
635
+ * ...
636
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-scrollOptions)
637
+ */
638
+ scrollOptions ? : BryntumScrollOptions
639
+ /**
640
+ * Selected tasks.
641
+ */
642
+ selectedTasks ? : TaskModel[]
643
+ /**
644
+ * Configure with `true` to change the default behaviour of keyboard navigation from moving focus to selecting
645
+ * tasks:
646
+ * ...
647
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-selectOnNavigation)
648
+ */
649
+ selectOnNavigation ? : boolean|string
650
+ /**
651
+ * *Only valid if this Widget is [floating](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-floating).*
652
+ * ...
653
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-showAnimation)
654
+ */
655
+ showAnimation ? : boolean|object
656
+ /**
657
+ * Show an icon to expand/collapse columns and swimlanes in their headers.
658
+ * ...
659
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-showCollapseInHeader)
660
+ */
661
+ showCollapseInHeader ? : boolean
662
+ /**
663
+ * By default, a tooltip showing `Expand XX`/`Collapse XX` is shown when hovering the expand/collapse icon for
664
+ * a column or swimlane. To disable the tooltip, set this to `false`.
665
+ */
666
+ showCollapseTooltip ? : boolean
667
+ /**
668
+ * Show task count for a column in its header, appended after the title
669
+ * ...
670
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-showCountInHeader)
671
+ */
672
+ showCountInHeader ? : boolean
673
+ /**
674
+ * Programmatic control over how many columns to span when used in a grid layout.
675
+ */
676
+ span ? : number
677
+ /**
678
+ * This value can be one of the following:
679
+ * ...
680
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-stateful)
681
+ */
682
+ stateful ? : boolean|object|string[]
683
+ /**
684
+ * The events that, when fired by this component, should trigger it to save its state by calling
685
+ * [saveState](https://bryntum.com/products/taskboard/docs/api/Core/mixin/State#function-saveState).
686
+ * ...
687
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-statefulEvents)
688
+ */
689
+ statefulEvents ? : object|string[]
690
+ /**
691
+ * The key to use when saving this object's state in the [stateProvider](https://bryntum.com/products/taskboard/docs/api/Core/mixin/State#config-stateProvider). If this config is
692
+ * not assigned, and [stateful](https://bryntum.com/products/taskboard/docs/api/Core/mixin/State#config-stateful) is not set to `false`, the [id](#Core/widget/Widget#config-id)
693
+ * (if explicitly specified) will be used as the `stateId`.
694
+ * ...
695
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-stateId)
696
+ */
697
+ stateId ? : string
698
+ /**
699
+ * The `StateProvider` to use to save and restore this object's [state](https://bryntum.com/products/taskboard/docs/api/Core/mixin/State#property-state). By default, `state`
700
+ * will be saved using the [default state provider](https://bryntum.com/products/taskboard/docs/api/Core/state/StateProvider#property-instance-static).
701
+ * ...
702
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-stateProvider)
703
+ */
704
+ stateProvider ? : StateProvider
705
+ /**
706
+ * Makes column and swimlane headers sticky
707
+ * ...
708
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-stickyHeaders)
709
+ */
710
+ stickyHeaders ? : boolean
711
+ /**
712
+ * Setting this will cause cards to expand to share the available width if there are fewer than
713
+ * [tasksPerRow](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tasksPerRow).
714
+ * ...
715
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-stretchCards)
716
+ */
717
+ stretchCards ? : boolean
718
+ /**
719
+ * Specify `true` to match fields by their `name` property only when assigning a [record](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container#config-record),
720
+ * without falling back to `ref`.
721
+ */
722
+ strictRecordMapping ? : boolean
723
+ /**
724
+ * An object containing widgets keyed by name. By default (when no `type` is given), strips are
725
+ * [toolbars](https://bryntum.com/products/taskboard/docs/api/Core/widget/Toolbar). If you want to pass an array, you can use
726
+ * the toolbar's [items](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container#config-items).
727
+ * ...
728
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-strips)
729
+ */
730
+ strips ? : Record<string, ContainerItemConfig>
731
+ /**
732
+ * Field on a task record used to determine which swimlane the task belongs to.
733
+ * ...
734
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-swimlaneField)
735
+ */
736
+ swimlaneField ? : string
737
+ /**
738
+ * An empty function by default, but provided so that you can override it. This function is called each time
739
+ * a swimlane is rendered into the task board. It allows you to manipulate the DOM config object used for the
740
+ * swimlane before it is synced to DOM, thus giving you control over styling and contents.
741
+ * ...
742
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-swimlaneRenderer)
743
+ * @param {object} detail An object containing the information needed to render a swimlane.
744
+ * @param {TaskBoard.model.SwimlaneModel} detail.swimlaneRecord The swimlane.
745
+ * @param {DomConfig} detail.swimlaneConfig DOM config object for the swimlane
746
+ * @returns {void}
747
+ */
748
+ swimlaneRenderer ? : (detail: { swimlaneRecord: SwimlaneModel, swimlaneConfig: DomConfig }) => void
749
+ /**
750
+ * Store containing the TaskBoard swimlanes. A tasks [swimlaneField](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/mixin/TaskBoardSwimlanes#config-swimlaneField) is matched against the `id`
751
+ * of a swimlane to determine in which swimlane it is displayed.
752
+ * ...
753
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-swimlanes)
754
+ */
755
+ swimlanes ? : SwimlaneModel[]|SwimlaneModelConfig[]|Store|string|StoreConfig
756
+ /**
757
+ * TaskBoard does not use a sync mask by default. If you want one, see
758
+ * [syncMask](https://bryntum.com/products/taskboard/docs/api/Core/mixin/LoadMaskable#config-syncMask) for configuration options.
759
+ */
760
+ syncMask ? : string|object|null
761
+ /**
762
+ * A configuration for the [tab](https://bryntum.com/products/taskboard/docs/api/Core/widget/Tab) created for this widget when it is placed in a
763
+ * [TabPanel](https://bryntum.com/products/taskboard/docs/api/Core/widget/TabPanel). For example, this config can be used to control the icon of the `tab` for
764
+ * this widget:
765
+ * ...
766
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tab)
767
+ */
768
+ tab ? : boolean|TabConfig
769
+ /**
770
+ * When this container is used as a tab in a TabPanel, these items are added to the
771
+ * [TabBar](https://bryntum.com/products/taskboard/docs/api/Core/widget/TabBar) when this container is the active tab.
772
+ * ...
773
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tabBarItems)
774
+ */
775
+ tabBarItems ? : ToolbarItems[]|Widget[]
776
+ /**
777
+ * An empty function by default, but provided so that you can override it. This function is called each time
778
+ * a task is rendered into the task board. It allows you to manipulate the DOM config object used for the card
779
+ * before it is synced to DOM, thus giving you control over styling and contents.
780
+ * ...
781
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-taskRenderer)
782
+ * @param {object} detail An object containing the information needed to render a task.
783
+ * @param {TaskBoard.model.TaskModel} detail.taskRecord The task record.
784
+ * @param {TaskBoard.model.ColumnModel} detail.columnRecord The column the task will be displayed in.
785
+ * @param {TaskBoard.model.SwimlaneModel} detail.swimlaneRecord The swimlane the task will be displayed in.
786
+ * @param {DomConfig} detail.cardConfig DOM config object for the cards element
787
+ * @returns {void}
788
+ */
789
+ taskRenderer ? : (detail: { taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, cardConfig: DomConfig }) => void
790
+ /**
791
+ * Inline [tasks](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/TaskModel), will be loaded into an internally created
792
+ * [TaskStore](https://bryntum.com/products/taskboard/docs/api/TaskBoard/store/TaskStore) as a part of a [project](#TaskBoard/model/ProjectModel).
793
+ */
794
+ tasks ? : TaskModel[]|object[]|TaskModelConfig[]
795
+ /**
796
+ * Allows sorting tasks in the UI independent of how they are sorted in the task store.
797
+ * ...
798
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-taskSorterFn)
799
+ * @param {TaskBoard.model.TaskModel} first The first task to compare
800
+ * @param {TaskBoard.model.TaskModel} second The second task to compare
801
+ * @returns {number} Return `1` if first task is greater than second task, `-1` if the opposite is true or `0` if they are equal
802
+ */
803
+ taskSorterFn ? : boolean|((first: TaskModel, second: TaskModel) => number)
804
+ /**
805
+ * Controls how many cards are rendered to a row in each column. Can be controlled on a per column basis by
806
+ * setting [tasksPerRow](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ColumnModel#field-tasksPerRow)
807
+ * ...
808
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tasksPerRow)
809
+ */
810
+ tasksPerRow ? : number
811
+ /**
812
+ * A Config object representing the configuration of a [Toolbar](https://bryntum.com/products/taskboard/docs/api/Core/widget/Toolbar),
813
+ * or array of config objects representing the child items of a Toolbar.
814
+ * This creates a toolbar docked to the top of the panel immediately below the header.
815
+ * ...
816
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tbar)
817
+ */
818
+ tbar ? : (ContainerItemConfig|string)[]|ToolbarConfig|PagingToolbarConfig|null
819
+ /**
820
+ * A title to display in the header or owning TabPanel. Causes creation and docking of a header
821
+ * to the top if no header is configured.
822
+ * ...
823
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-title)
824
+ */
825
+ title ? : string
826
+ /**
827
+ * The [tools](https://bryntum.com/products/taskboard/docs/api/Core/widget/Tool) to add either before or after the `title` in the Panel header. Each
828
+ * property name is the reference by which an instantiated tool may be retrieved from the live
829
+ * `[tools](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Toolable#property-tools)` property.
830
+ * ...
831
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-tools)
832
+ */
833
+ tools ? : Record<string, ToolConfig>|null
834
+ /**
835
+ * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified
836
+ * as a space separated string, an array of strings, or as an object in which property names with truthy
837
+ * values are used as the class names.
838
+ * ...
839
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-ui)
840
+ */
841
+ ui ? : 'plain'|'toolbar'|string|object
842
+ /**
843
+ * Experimental, animate actions that cannot be animated using CSS transitions. Currently includes:
844
+ * ...
845
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-useDomTransition)
846
+ */
847
+ useDomTransition ? : boolean
848
+ /**
849
+ * By turning on this setting you enable partial virtualized rendering for the board, which reduces initial
850
+ * rendering time and makes interaction less sluggish when using thousands of tasks. The tradeoff is that
851
+ * scrolling in most cases will be slower.
852
+ * ...
853
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-virtualize)
854
+ */
855
+ virtualize ? : boolean
856
+ /**
857
+ * A widgets weight determines its position among siblings when added to a [Container](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container).
858
+ * Higher weights go further down.
859
+ */
860
+ weight ? : number
861
+ /**
862
+ * Widget's width, used to set element `style.width`. Either specify a valid width string or a number, which
863
+ * will get 'px' appended. We recommend using CSS as the primary way to control width, but in some cases
864
+ * this config is convenient.
865
+ */
866
+ width ? : string|number
867
+ /**
868
+ * The x position for the widget.
869
+ * ...
870
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-x)
871
+ */
872
+ x ? : number
873
+ /**
874
+ * The y position for the widget.
875
+ * ...
876
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#config-y)
877
+ */
878
+ y ? : number
879
+
880
+ // Features
881
+ /**
882
+ * This feature allows users to drag columns on the TaskBoard to change the column order. Drag is initiated upon
883
+ * mouse down in the column header. Try it out below!
884
+ * ...
885
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnDrag)
886
+ */
887
+ columnDragFeature ? : object|boolean|string|ColumnDrag|ColumnDragConfig
888
+ /**
889
+ * Adds the ability to filter each column of the TaskBoard.
890
+ * ...
891
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnFilter)
892
+ */
893
+ columnFilterFeature ? : object|boolean|string|ColumnFilter|ColumnFilterConfig
894
+ /**
895
+ * Adds a menu button (`···`) to column headers, clicking it displays a menu. Items are populated by other features
896
+ * and/or application code.
897
+ * ...
898
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnHeaderMenu)
899
+ */
900
+ columnHeaderMenuFeature ? : object|boolean|string|ColumnHeaderMenu|ColumnHeaderMenuConfig
901
+ /**
902
+ * Allows user to lock columns to the left or right using the new [locked](https://bryntum.com/products/taskboard/docs/api/TaskBoard/model/ColumnModel#field-locked) field
903
+ * on columns.
904
+ * ...
905
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnLock)
906
+ */
907
+ columnLockFeature ? : object|boolean|string|ColumnLock|ColumnLockConfig
908
+ /**
909
+ * Allows user to rename columns by either double-clicking column text, or via the column header menu.
910
+ * ...
911
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnRename)
912
+ */
913
+ columnRenameFeature ? : object|boolean|string|ColumnRename|ColumnRenameConfig
914
+ /**
915
+ * This feature allows users to change the width of individual TaskBoard columns. Resize is initiated upon mouse down on
916
+ * the separator element between column headers. Try it out below!
917
+ * ...
918
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnResize)
919
+ */
920
+ columnResizeFeature ? : object|boolean|string|ColumnResize|ColumnResizeConfig
921
+ /**
922
+ * Adds the ability to sort each column of the TaskBoard.
923
+ * ...
924
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnSort)
925
+ */
926
+ columnSortFeature ? : object|boolean|string|ColumnSort|ColumnSortConfig
927
+ /**
928
+ * Adds toolbars to the top and/or bottom of each column. By default it adds a bottom toolbar containing a single button
929
+ * for adding events to that column/swimlane:
930
+ * ...
931
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnToolbars)
932
+ */
933
+ columnToolbarsFeature ? : object|boolean|string|ColumnToolbars|ColumnToolbarsConfig
934
+ /**
935
+ * Adds the ability to quick search in configured fields of tasks.
936
+ * Renders a filter bar below each column's header.
937
+ * ...
938
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/FilterBar)
939
+ */
940
+ filterBarFeature ? : object|boolean|string|FilterBar|FilterBarConfig
941
+ /**
942
+ * This feature allows inline editing of tasks. Double-clicking an item starts editing it:
943
+ * ...
944
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/SimpleTaskEdit)
945
+ */
946
+ simpleTaskEditFeature ? : object|boolean|string|SimpleTaskEdit|SimpleTaskEditConfig
947
+ /**
948
+ * This feature allows users to drag drop swimlanes on the TaskBoard changing their order (by grabbing their header).
949
+ * ...
950
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/SwimlaneDrag)
951
+ */
952
+ swimlaneDragFeature ? : object|boolean|string|SwimlaneDrag|SwimlaneDragConfig
953
+ /**
954
+ * This feature allows cards on the TaskBoard to be dragged across swimlanes and columns but also vertically in the
955
+ * same column to change the order:
956
+ * ...
957
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskDrag)
958
+ */
959
+ taskDragFeature ? : object|boolean|string|TaskDrag|TaskDragConfig
960
+ /**
961
+ * Enables users to click and drag to select cards on the TaskBoard (marquee selection).
962
+ * ...
963
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskDragSelect)
964
+ */
965
+ taskDragSelectFeature ? : object|boolean|string|TaskDragSelect|TaskDragSelectConfig
966
+ /**
967
+ * This features allows the user to edit tasks in a popup editor that can either be shown centered on screen (the
968
+ * default, double click a task to show the editor):
969
+ * ...
970
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskEdit)
971
+ */
972
+ taskEditFeature ? : object|boolean|string|TaskEdit|TaskEditConfig
973
+ /**
974
+ * Displays a context menu for tasks. Items are populated by other features and/or application code.
975
+ * ...
976
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskMenu)
977
+ */
978
+ taskMenuFeature ? : object|boolean|string|TaskMenu|TaskMenuConfig
979
+ /**
980
+ * Displays a tooltip when hovering a task. By default the tooltip displays:
981
+ * ...
982
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskTooltip)
983
+ */
984
+ taskTooltipFeature ? : object|boolean|string|TaskTooltip|TaskTooltipConfig
985
+
986
+ }
987
+
988
+ @Component({
989
+ selector : 'bryntum-task-board-base',
990
+ template : ''
991
+ })
992
+ export class BryntumTaskBoardBaseComponent implements OnInit, OnDestroy {
993
+
994
+ public static instanceClass = TaskBoardBase;
995
+
996
+ public static instanceName = 'TaskBoardBase';
997
+
998
+ private static bryntumEvents: string[] = [
999
+ 'onActivateTask',
1000
+ 'onBeforeColumnDrag',
1001
+ 'onBeforeColumnDrop',
1002
+ 'onBeforeColumnResize',
1003
+ 'onBeforeDestroy',
1004
+ 'onBeforeHide',
1005
+ 'onBeforeResponsiveStateChange',
1006
+ 'onBeforeShow',
1007
+ 'onBeforeSimpleTaskEdit',
1008
+ 'onBeforeStateApply',
1009
+ 'onBeforeStateSave',
1010
+ 'onBeforeTaskDrag',
1011
+ 'onBeforeTaskDrop',
1012
+ 'onBeforeTaskEdit',
1013
+ 'onBeforeTaskEditShow',
1014
+ 'onBeforeTaskRemove',
1015
+ 'onCatchAll',
1016
+ 'onCellMenuItem',
1017
+ 'onCellMenuShow',
1018
+ 'onCellMenuToggleItem',
1019
+ 'onCollapse',
1020
+ 'onColumnCollapse',
1021
+ 'onColumnDrag',
1022
+ 'onColumnDragAbort',
1023
+ 'onColumnDragEnd',
1024
+ 'onColumnDragStart',
1025
+ 'onColumnDrop',
1026
+ 'onColumnExpand',
1027
+ 'onColumnFilterHide',
1028
+ 'onColumnFilterShow',
1029
+ 'onColumnFilterToggle',
1030
+ 'onColumnHeaderClick',
1031
+ 'onColumnHeaderContextMenu',
1032
+ 'onColumnHeaderDblClick',
1033
+ 'onColumnHeaderMenuBeforeShow',
1034
+ 'onColumnResize',
1035
+ 'onColumnResizeStart',
1036
+ 'onColumnTitleClick',
1037
+ 'onColumnTitleContextMenu',
1038
+ 'onColumnTitleDblClick',
1039
+ 'onColumnToggle',
1040
+ 'onDestroy',
1041
+ 'onDirtyStateChange',
1042
+ 'onElementCreated',
1043
+ 'onExpand',
1044
+ 'onFocusIn',
1045
+ 'onFocusOut',
1046
+ 'onHide',
1047
+ 'onPaint',
1048
+ 'onReadOnly',
1049
+ 'onRecompose',
1050
+ 'onRemoveTaskElement',
1051
+ 'onRenderTask',
1052
+ 'onRenderTasks',
1053
+ 'onResize',
1054
+ 'onResponsiveStateChange',
1055
+ 'onSelectionChange',
1056
+ 'onShow',
1057
+ 'onSimpleTaskEditCancel',
1058
+ 'onSimpleTaskEditComplete',
1059
+ 'onSwimlaneCollapse',
1060
+ 'onSwimlaneExpand',
1061
+ 'onSwimlaneHeaderClick',
1062
+ 'onSwimlaneHeaderContextMenu',
1063
+ 'onSwimlaneHeaderDblClick',
1064
+ 'onSwimlaneToggle',
1065
+ 'onTaskClick',
1066
+ 'onTaskDblClick',
1067
+ 'onTaskDrag',
1068
+ 'onTaskDragAbort',
1069
+ 'onTaskDragEnd',
1070
+ 'onTaskDragStart',
1071
+ 'onTaskDrop',
1072
+ 'onTaskMenuBeforeShow',
1073
+ 'onTaskMenuItem',
1074
+ 'onTaskMenuShow',
1075
+ 'onTaskMenuToggleItem',
1076
+ 'onTaskMouseEnter',
1077
+ 'onTaskMouseLeave',
1078
+ 'onToolClick'
1079
+ ];
1080
+
1081
+ private static bryntumFeatureNames: string[] = [
1082
+ 'columnDragFeature',
1083
+ 'columnFilterFeature',
1084
+ 'columnHeaderMenuFeature',
1085
+ 'columnLockFeature',
1086
+ 'columnRenameFeature',
1087
+ 'columnResizeFeature',
1088
+ 'columnSortFeature',
1089
+ 'columnToolbarsFeature',
1090
+ 'filterBarFeature',
1091
+ 'simpleTaskEditFeature',
1092
+ 'swimlaneDragFeature',
1093
+ 'taskDragFeature',
1094
+ 'taskDragSelectFeature',
1095
+ 'taskEditFeature',
1096
+ 'taskMenuFeature',
1097
+ 'taskTooltipFeature'
1098
+ ];
1099
+
1100
+ private static bryntumConfigs: string[] = BryntumTaskBoardBaseComponent.bryntumFeatureNames.concat([
1101
+ 'activateTaskEvent',
1102
+ 'adopt',
1103
+ 'align',
1104
+ 'alignSelf',
1105
+ 'anchor',
1106
+ 'appendTo',
1107
+ 'ariaDescription',
1108
+ 'ariaLabel',
1109
+ 'assignments',
1110
+ 'autoGenerateColumns',
1111
+ 'autoGenerateSwimlanes',
1112
+ 'bbar',
1113
+ 'bodyCls',
1114
+ 'bodyItems',
1115
+ 'bubbleEvents',
1116
+ 'callOnFunctions',
1117
+ 'cardSizes',
1118
+ 'catchEventHandlerExceptions',
1119
+ 'centered',
1120
+ 'chainFilters',
1121
+ 'cls',
1122
+ 'collapsed',
1123
+ 'collapseTitle',
1124
+ 'collapsible',
1125
+ 'color',
1126
+ 'column',
1127
+ 'columnField',
1128
+ 'columns',
1129
+ 'columnTitleRenderer',
1130
+ 'config',
1131
+ 'constrainTo',
1132
+ 'css',
1133
+ 'cssVarPrefix',
1134
+ 'dataField',
1135
+ 'dataset',
1136
+ 'detectCSSCompatibilityIssues',
1137
+ 'disabled',
1138
+ 'dock',
1139
+ 'draggable',
1140
+ 'drawer',
1141
+ 'drawOnScroll',
1142
+ 'elementAttributes',
1143
+ 'extraData',
1144
+ 'flex',
1145
+ 'floating',
1146
+ 'footer',
1147
+ 'footerItems',
1148
+ 'getTaskHeight',
1149
+ 'header',
1150
+ 'headerItems',
1151
+ 'height',
1152
+ 'hidden',
1153
+ 'hideAnimation',
1154
+ 'htmlEncodeHeaderText',
1155
+ 'icon',
1156
+ 'id',
1157
+ 'ignoreParentReadOnly',
1158
+ 'inputFieldAlign',
1159
+ 'insertBefore',
1160
+ 'insertFirst',
1161
+ 'isTaskSelectable',
1162
+ 'keyMap',
1163
+ 'labelPosition',
1164
+ 'listeners',
1165
+ 'loadMask',
1166
+ 'loadMaskDefaults',
1167
+ 'loadMaskError',
1168
+ 'localeClass',
1169
+ 'localizable',
1170
+ 'localizableProperties',
1171
+ 'margin',
1172
+ 'maskDefaults',
1173
+ 'masked',
1174
+ 'maxHeight',
1175
+ 'maximizeOnMobile',
1176
+ 'maxWidth',
1177
+ 'minHeight',
1178
+ 'minWidth',
1179
+ 'newTaskDefaults',
1180
+ 'owner',
1181
+ 'plugins',
1182
+ 'positioned',
1183
+ 'processItems',
1184
+ 'project',
1185
+ 'readOnly',
1186
+ 'record',
1187
+ 'relayStoreEvents',
1188
+ 'rendition',
1189
+ 'resourceImagePath',
1190
+ 'resources',
1191
+ 'responsive',
1192
+ 'responsiveRoot',
1193
+ 'responsiveState',
1194
+ 'responsiveTarget',
1195
+ 'rootElement',
1196
+ 'rtl',
1197
+ 'scrollable',
1198
+ 'scrollAction',
1199
+ 'scrollManager',
1200
+ 'scrollOptions',
1201
+ 'selectedTasks',
1202
+ 'selectOnNavigation',
1203
+ 'showAnimation',
1204
+ 'showCollapseInHeader',
1205
+ 'showCollapseTooltip',
1206
+ 'showCountInHeader',
1207
+ 'span',
1208
+ 'stateful',
1209
+ 'statefulEvents',
1210
+ 'stateId',
1211
+ 'stateProvider',
1212
+ 'stickyHeaders',
1213
+ 'stretchCards',
1214
+ 'strictRecordMapping',
1215
+ 'strips',
1216
+ 'swimlaneField',
1217
+ 'swimlaneRenderer',
1218
+ 'swimlanes',
1219
+ 'syncMask',
1220
+ 'tab',
1221
+ 'tabBarItems',
1222
+ 'taskRenderer',
1223
+ 'tasks',
1224
+ 'taskSorterFn',
1225
+ 'tasksPerRow',
1226
+ 'tbar',
1227
+ 'title',
1228
+ 'tools',
1229
+ 'ui',
1230
+ 'useDomTransition',
1231
+ 'virtualize',
1232
+ 'weight',
1233
+ 'width',
1234
+ 'x',
1235
+ 'y'
1236
+ ]);
1237
+
1238
+ private static bryntumConfigsOnly: string[] = [
1239
+ 'activateTaskEvent',
1240
+ 'adopt',
1241
+ 'align',
1242
+ 'anchor',
1243
+ 'ariaDescription',
1244
+ 'ariaLabel',
1245
+ 'autoGenerateColumns',
1246
+ 'autoGenerateSwimlanes',
1247
+ 'bbar',
1248
+ 'bodyCls',
1249
+ 'bubbleEvents',
1250
+ 'cardSizes',
1251
+ 'centered',
1252
+ 'chainFilters',
1253
+ 'collapseTitle',
1254
+ 'collapsible',
1255
+ 'color',
1256
+ 'columnTitleRenderer',
1257
+ 'config',
1258
+ 'constrainTo',
1259
+ 'cssVarPrefix',
1260
+ 'dataField',
1261
+ 'detectCSSCompatibilityIssues',
1262
+ 'dock',
1263
+ 'draggable',
1264
+ 'drawer',
1265
+ 'elementAttributes',
1266
+ 'floating',
1267
+ 'footer',
1268
+ 'header',
1269
+ 'hideAnimation',
1270
+ 'htmlEncodeHeaderText',
1271
+ 'icon',
1272
+ 'ignoreParentReadOnly',
1273
+ 'listeners',
1274
+ 'loadMask',
1275
+ 'loadMaskDefaults',
1276
+ 'loadMaskError',
1277
+ 'localeClass',
1278
+ 'localizable',
1279
+ 'localizableProperties',
1280
+ 'maskDefaults',
1281
+ 'masked',
1282
+ 'newTaskDefaults',
1283
+ 'owner',
1284
+ 'plugins',
1285
+ 'positioned',
1286
+ 'processItems',
1287
+ 'record',
1288
+ 'relayStoreEvents',
1289
+ 'resourceImagePath',
1290
+ 'responsive',
1291
+ 'responsiveRoot',
1292
+ 'responsiveState',
1293
+ 'responsiveTarget',
1294
+ 'rootElement',
1295
+ 'scrollable',
1296
+ 'scrollAction',
1297
+ 'scrollManager',
1298
+ 'scrollOptions',
1299
+ 'selectOnNavigation',
1300
+ 'showAnimation',
1301
+ 'showCollapseInHeader',
1302
+ 'showCountInHeader',
1303
+ 'stateful',
1304
+ 'statefulEvents',
1305
+ 'stateId',
1306
+ 'stateProvider',
1307
+ 'stickyHeaders',
1308
+ 'strips',
1309
+ 'swimlaneRenderer',
1310
+ 'syncMask',
1311
+ 'tab',
1312
+ 'tabBarItems',
1313
+ 'taskRenderer',
1314
+ 'taskSorterFn',
1315
+ 'tasksPerRow',
1316
+ 'tbar',
1317
+ 'ui',
1318
+ 'useDomTransition',
1319
+ 'weight'
1320
+ ];
1321
+
1322
+ private static bryntumProps: string[] = BryntumTaskBoardBaseComponent.bryntumFeatureNames.concat([
1323
+ 'alignSelf',
1324
+ 'anchorSize',
1325
+ 'appendTo',
1326
+ 'assignments',
1327
+ 'bodyItems',
1328
+ 'callOnFunctions',
1329
+ 'catchEventHandlerExceptions',
1330
+ 'cls',
1331
+ 'collapsed',
1332
+ 'column',
1333
+ 'columnField',
1334
+ 'columns',
1335
+ 'css',
1336
+ 'dataset',
1337
+ 'disabled',
1338
+ 'drawOnScroll',
1339
+ 'extraData',
1340
+ 'flex',
1341
+ 'focusVisible',
1342
+ 'footerItems',
1343
+ 'getTaskHeight',
1344
+ 'hasChanges',
1345
+ 'headerItems',
1346
+ 'height',
1347
+ 'hidden',
1348
+ 'id',
1349
+ 'inputFieldAlign',
1350
+ 'insertBefore',
1351
+ 'insertFirst',
1352
+ 'isTaskSelectable',
1353
+ 'keyMap',
1354
+ 'labelPosition',
1355
+ 'margin',
1356
+ 'maxHeight',
1357
+ 'maximizeOnMobile',
1358
+ 'maxWidth',
1359
+ 'minHeight',
1360
+ 'minWidth',
1361
+ 'parent',
1362
+ 'project',
1363
+ 'readOnly',
1364
+ 'rendition',
1365
+ 'resources',
1366
+ 'rtl',
1367
+ 'selectedTasks',
1368
+ 'showCollapseTooltip',
1369
+ 'span',
1370
+ 'state',
1371
+ 'stretchCards',
1372
+ 'strictRecordMapping',
1373
+ 'swimlaneField',
1374
+ 'swimlanes',
1375
+ 'tasks',
1376
+ 'title',
1377
+ 'tools',
1378
+ 'virtualize',
1379
+ 'width',
1380
+ 'x',
1381
+ 'y'
1382
+ ]);
1383
+
1384
+ private elementRef: ElementRef;
1385
+ public instance!: TaskBoardBase;
1386
+
1387
+ private bryntumConfig = {
1388
+ adopt : undefined,
1389
+ appendTo : undefined,
1390
+ href : undefined,
1391
+ angularComponent : this,
1392
+ features : {},
1393
+ listeners : {}
1394
+ };
1395
+
1396
+ constructor(element: ElementRef) {
1397
+ this.elementRef = element;
1398
+ }
1399
+
1400
+ // Configs only
1401
+ @Input() activateTaskEvent ! : 'taskClick'|'taskDblClick'|null;
1402
+ @Input() adopt ! : HTMLElement|string;
1403
+ @Input() align ! : AlignSpec|string;
1404
+ @Input() anchor ! : boolean;
1405
+ @Input() ariaDescription ! : string;
1406
+ @Input() ariaLabel ! : string;
1407
+ @Input() autoGenerateColumns ! : boolean;
1408
+ @Input() autoGenerateSwimlanes ! : boolean;
1409
+ @Input() bbar ! : (ContainerItemConfig|string)[]|ToolbarConfig|PagingToolbarConfig|null;
1410
+ @Input() bodyCls ! : string|object;
1411
+ @Input() bubbleEvents ! : object;
1412
+ @Input() cardSizes ! : CardSize;
1413
+ @Input() centered ! : boolean;
1414
+ @Input() chainFilters ! : boolean;
1415
+ @Input() collapseTitle ! : boolean;
1416
+ @Input() collapsible ! : boolean|PanelCollapserConfig|PanelCollapserOverlayConfig;
1417
+ @Input() color ! : string;
1418
+ @Input() columnTitleRenderer ! : (renderData: object, columnRecord: ColumnModel) => string|DomConfig;
1419
+ @Input() config ! : object;
1420
+ @Input() constrainTo ! : HTMLElement|Widget|Rectangle;
1421
+ @Input() cssVarPrefix ! : string;
1422
+ @Input() dataField ! : string;
1423
+ @Input() detectCSSCompatibilityIssues ! : boolean;
1424
+ @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;
1425
+ @Input() draggable ! : boolean|{
1426
+ handleSelector?: string
1427
+ };
1428
+ @Input() drawer ! : boolean|{side?: 'start'|'left'|'end'|'right'|'top'|'bottom', size?: string|number, inline?: boolean, autoClose: { mousedown?: boolean|string, focusout?: boolean|string, mouseout?: string }, autoCloseDelay?: number};
1429
+ @Input() elementAttributes ! : Record<string, string|null>;
1430
+ @Input() floating ! : boolean;
1431
+ @Input() footer ! : {
1432
+ dock?: 'top'|'right'|'bottom'|'left'|'start'|'end'
1433
+ html?: string
1434
+ cls?: string
1435
+ }|string;
1436
+ @Input() header ! : string|boolean|PanelHeader;
1437
+ @Input() hideAnimation ! : boolean|object;
1438
+ @Input() htmlEncodeHeaderText ! : boolean;
1439
+ @Input() icon ! : string|DomConfig;
1440
+ @Input() ignoreParentReadOnly ! : boolean;
1441
+ @Input() listeners ! : TaskBoardBaseListeners;
1442
+ @Input() loadMask ! : string|MaskConfig|null;
1443
+ @Input() loadMaskDefaults ! : MaskConfig;
1444
+ @Input() loadMaskError ! : MaskConfig|Mask|boolean;
1445
+ @Input() localeClass ! : typeof Base;
1446
+ @Input() localizable ! : boolean;
1447
+ @Input() localizableProperties ! : string[];
1448
+ @Input() maskDefaults ! : MaskConfig;
1449
+ @Input() masked ! : boolean|string|MaskConfig;
1450
+ @Input() newTaskDefaults ! : TaskModelConfig;
1451
+ @Input() owner ! : Widget|any;
1452
+ @Input() plugins ! : Function[];
1453
+ @Input() positioned ! : boolean;
1454
+ @Input() processItems ! : (context: { headerItems: Record<string, TaskItemOptions>, bodyItems: Record<string, TaskItemOptions>, footerItems: Record<string, TaskItemOptions>, taskRecord: TaskModel }) => boolean|void;
1455
+ @Input() record ! : Model;
1456
+ @Input() relayStoreEvents ! : boolean;
1457
+ @Input() resourceImagePath ! : string;
1458
+ @Input() responsive ! : object;
1459
+ @Input() responsiveRoot ! : boolean;
1460
+ @Input() responsiveState ! : string;
1461
+ @Input() responsiveTarget ! : string|Widget;
1462
+ @Input() rootElement ! : ShadowRoot|HTMLElement;
1463
+ @Input() scrollable ! : boolean|ScrollerConfig|Scroller;
1464
+ @Input() scrollAction ! : 'hide'|'realign'|null;
1465
+ @Input() scrollManager ! : ScrollManagerConfig;
1466
+ @Input() scrollOptions ! : BryntumScrollOptions;
1467
+ @Input() selectOnNavigation ! : boolean|string;
1468
+ @Input() showAnimation ! : boolean|object;
1469
+ @Input() showCollapseInHeader ! : boolean;
1470
+ @Input() showCountInHeader ! : boolean;
1471
+ @Input() stateful ! : boolean|object|string[];
1472
+ @Input() statefulEvents ! : object|string[];
1473
+ @Input() stateId ! : string;
1474
+ @Input() stateProvider ! : StateProvider;
1475
+ @Input() stickyHeaders ! : boolean;
1476
+ @Input() strips ! : Record<string, ContainerItemConfig>;
1477
+ @Input() swimlaneRenderer ! : (detail: { swimlaneRecord: SwimlaneModel, swimlaneConfig: DomConfig }) => void;
1478
+ @Input() syncMask ! : string|object|null;
1479
+ @Input() tab ! : boolean|TabConfig;
1480
+ @Input() tabBarItems ! : ToolbarItems[]|Widget[];
1481
+ @Input() taskRenderer ! : (detail: { taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, cardConfig: DomConfig }) => void;
1482
+ @Input() taskSorterFn ! : boolean|((first: TaskModel, second: TaskModel) => number);
1483
+ @Input() tasksPerRow ! : number;
1484
+ @Input() tbar ! : (ContainerItemConfig|string)[]|ToolbarConfig|PagingToolbarConfig|null;
1485
+ @Input() ui ! : 'plain'|'toolbar'|string|object;
1486
+ @Input() useDomTransition ! : boolean;
1487
+ @Input() weight ! : number;
1488
+
1489
+ // Configs and properties
1490
+ @Input() alignSelf ! : string;
1491
+ @Input() appendTo ! : HTMLElement|string;
1492
+ @Input() assignments ! : AssignmentModel[]|object[]|AssignmentModelConfig[];
1493
+ @Input() bodyItems ! : Record<string, TaskItemOptions>;
1494
+ @Input() callOnFunctions ! : boolean;
1495
+ @Input() catchEventHandlerExceptions ! : boolean;
1496
+ @Input() cls ! : string|object;
1497
+ @Input() collapsed ! : boolean;
1498
+ @Input() column ! : number;
1499
+ @Input() columnField ! : string;
1500
+ @Input() columns ! : Store|ColumnModel[]|ColumnModelConfig[]|string[]|string|StoreConfig;
1501
+ @Input() css ! : typeof Proxy|Record<string, string>;
1502
+ @Input() dataset ! : object|Record<string, string>;
1503
+ @Input() disabled ! : boolean|'inert';
1504
+ @Input() drawOnScroll ! : boolean;
1505
+ @Input() extraData ! : any;
1506
+ @Input() flex ! : number|string;
1507
+ @Input() footerItems ! : Record<string, TaskItemOptions>;
1508
+ @Input() getTaskHeight ! : (taskRecord: TaskModel) => number;
1509
+ @Input() headerItems ! : Record<string, TaskItemOptions>;
1510
+ @Input() height ! : number|string;
1511
+ @Input() hidden ! : boolean;
1512
+ @Input() id ! : string;
1513
+ @Input() inputFieldAlign ! : 'start'|'end';
1514
+ @Input() insertBefore ! : HTMLElement|string;
1515
+ @Input() insertFirst ! : HTMLElement|string;
1516
+ @Input() isTaskSelectable ! : (taskRecord: TaskModel) => boolean;
1517
+ @Input() keyMap ! : Record<string, KeyMapConfig>;
1518
+ @Input() labelPosition ! : 'before'|'above'|'align-before'|'auto'|null;
1519
+ @Input() margin ! : number|string;
1520
+ @Input() maxHeight ! : string|number;
1521
+ @Input() maximizeOnMobile ! : number|string;
1522
+ @Input() maxWidth ! : string|number;
1523
+ @Input() minHeight ! : string|number;
1524
+ @Input() minWidth ! : string|number;
1525
+ @Input() project ! : ProjectModel|ProjectModelConfig|object;
1526
+ @Input() readOnly ! : boolean;
1527
+ @Input() rendition ! : string|Record<string, string>|null;
1528
+ @Input() resources ! : ResourceModel[]|object[]|ResourceModelConfig[];
1529
+ @Input() rtl ! : boolean;
1530
+ @Input() selectedTasks ! : TaskModel[];
1531
+ @Input() showCollapseTooltip ! : boolean;
1532
+ @Input() span ! : number;
1533
+ @Input() stretchCards ! : boolean;
1534
+ @Input() strictRecordMapping ! : boolean;
1535
+ @Input() swimlaneField ! : string;
1536
+ @Input() swimlanes ! : Store|SwimlaneModel[]|SwimlaneModelConfig[]|string|StoreConfig;
1537
+ @Input() tasks ! : TaskModel[]|object[]|TaskModelConfig[];
1538
+ @Input() title ! : string;
1539
+ @Input() tools ! : Record<string, Tool|ToolConfig>|null|Record<string, Tool>|Record<string, ToolConfig>;
1540
+ @Input() virtualize ! : boolean;
1541
+ @Input() width ! : number|string;
1542
+ @Input() x ! : number;
1543
+ @Input() y ! : number;
1544
+
1545
+ // Properties only
1546
+ @Input() anchorSize ! : number[];
1547
+ @Input() focusVisible ! : boolean;
1548
+ @Input() hasChanges ! : boolean;
1549
+ @Input() parent ! : Widget;
1550
+ @Input() state ! : any;
1551
+
1552
+ // Features
1553
+ @Input() columnDragFeature ! : object|boolean|string|ColumnDrag|ColumnDragConfig;
1554
+ @Input() columnFilterFeature ! : object|boolean|string|ColumnFilter|ColumnFilterConfig;
1555
+ @Input() columnHeaderMenuFeature ! : object|boolean|string|ColumnHeaderMenu|ColumnHeaderMenuConfig;
1556
+ @Input() columnLockFeature ! : object|boolean|string|ColumnLock|ColumnLockConfig;
1557
+ @Input() columnRenameFeature ! : object|boolean|string|ColumnRename|ColumnRenameConfig;
1558
+ @Input() columnResizeFeature ! : object|boolean|string|ColumnResize|ColumnResizeConfig;
1559
+ @Input() columnSortFeature ! : object|boolean|string|ColumnSort|ColumnSortConfig;
1560
+ @Input() columnToolbarsFeature ! : object|boolean|string|ColumnToolbars|ColumnToolbarsConfig;
1561
+ @Input() filterBarFeature ! : object|boolean|string|FilterBar|FilterBarConfig;
1562
+ @Input() simpleTaskEditFeature ! : object|boolean|string|SimpleTaskEdit|SimpleTaskEditConfig;
1563
+ @Input() swimlaneDragFeature ! : object|boolean|string|SwimlaneDrag|SwimlaneDragConfig;
1564
+ @Input() taskDragFeature ! : object|boolean|string|TaskDrag|TaskDragConfig;
1565
+ @Input() taskDragSelectFeature ! : object|boolean|string|TaskDragSelect|TaskDragSelectConfig;
1566
+ @Input() taskEditFeature ! : object|boolean|string|TaskEdit|TaskEditConfig;
1567
+ @Input() taskMenuFeature ! : object|boolean|string|TaskMenu|TaskMenuConfig;
1568
+ @Input() taskTooltipFeature ! : object|boolean|string|TaskTooltip|TaskTooltipConfig;
1569
+
1570
+ // Events emitters
1571
+ /**
1572
+ * Triggered when a task is "activated" by pressing `Enter` or double clicking it.
1573
+ * ...
1574
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-activateTask)
1575
+ * @param {object} event Event object
1576
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1577
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task record
1578
+ * @param {MouseEvent} event.event Browser event
1579
+ */
1580
+ @Output() onActivateTask: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, event: MouseEvent }) => void)|string>();
1581
+ /**
1582
+ * Fires on the owning TaskBoard before column dragging starts. Return `false` to prevent the action
1583
+ * @param {object} event Event object
1584
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1585
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column to be dragged
1586
+ */
1587
+ @Output() onBeforeColumnDrag: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => Promise<boolean>|boolean|void)|string>();
1588
+ /**
1589
+ * Fires on the owning TaskBoard when dropping a column, before the operation completes. Handles async
1590
+ * listeners, returning `false` from one will abort the operation
1591
+ * ...
1592
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeColumnDrop)
1593
+ * @param {object} event Event object
1594
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1595
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Dropped column
1596
+ * @param {TaskBoard.model.ColumnModel} event.beforeColumn Dropped before this column
1597
+ */
1598
+ @Output() onBeforeColumnDrop: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, beforeColumn: ColumnModel }) => Promise<boolean>|boolean|void)|string>();
1599
+ /**
1600
+ * This event is fired prior to starting a column resize gesture. The resize is canceled if a listener returns
1601
+ * `false`.
1602
+ * @param {object} event Event object
1603
+ * @param {TaskBoard.view.TaskBoard} event.source The TaskBoard instance
1604
+ * @param {TaskBoard.model.ColumnModel} event.column The column
1605
+ * @param {Event} event.domEvent The browser event
1606
+ */
1607
+ @Output() onBeforeColumnResize: any = new EventEmitter<((event: { source: TaskBoard, column: ColumnModel, domEvent: Event }) => Promise<boolean>|boolean|void)|string>();
1608
+ /**
1609
+ * Fires before an object is destroyed.
1610
+ * @param {object} event Event object
1611
+ * @param {Core.Base} event.source The Object that is being destroyed.
1612
+ */
1613
+ @Output() onBeforeDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();
1614
+ /**
1615
+ * Triggered before a widget is hidden. Return `false` to prevent the action.
1616
+ * @param {object} event Event object
1617
+ * @param {Core.widget.Widget} event.source The widget being hidden.
1618
+ */
1619
+ @Output() onBeforeHide: any = new EventEmitter<((event: { source: Widget }) => Promise<boolean>|boolean|void)|string>();
1620
+ /**
1621
+ * Triggered before a new [responsiveState](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveState) is applied.
1622
+ * @param {object} event Event object
1623
+ * @param {Core.widget.Widget} event.source The widget whose `responsiveState` is to be changed
1624
+ * @param {string} event.state The new value for the widget's `responsiveState`
1625
+ * @param {string} event.oldState The previous value for the widget's `responsiveState`
1626
+ */
1627
+ @Output() onBeforeResponsiveStateChange: any = new EventEmitter<((event: { source: Widget, state: string, oldState: string }) => void)|string>();
1628
+ /**
1629
+ * Triggered before a widget is shown. Return `false` to prevent the action.
1630
+ * @param {object} event Event object
1631
+ * @param {Core.widget.Widget,any} event.source The widget being shown
1632
+ */
1633
+ @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();
1634
+ /**
1635
+ * Fires on the owning TaskBoard before displaying an inline editor. Returning `false` stops the editor from
1636
+ * being shown.
1637
+ * ...
1638
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeSimpleTaskEdit)
1639
+ * @param {object} event Event object
1640
+ * @param {TaskBoard.view.TaskBoard} event.source The task board
1641
+ * @param {TaskBoard.feature.SimpleTaskEdit} event.simpleTaskEdit The simpleTaskEdit feature
1642
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The record about to be shown in the editor
1643
+ * @param {string} event.field Field name being edited
1644
+ */
1645
+ @Output() onBeforeSimpleTaskEdit: any = new EventEmitter<((event: { source: TaskBoard, simpleTaskEdit: SimpleTaskEdit, taskRecord: TaskModel, field: string }) => Promise<boolean>|boolean|void)|string>();
1646
+ /**
1647
+ * Fired before state is applied to the source. Allows editing the state object or preventing the operation.
1648
+ * @param {object} event Event object
1649
+ * @param {any} event.state State object config
1650
+ */
1651
+ @Output() onBeforeStateApply: any = new EventEmitter<((event: { state: any }) => Promise<boolean>|boolean|void)|string>();
1652
+ /**
1653
+ * Fired before state is saved by the StateProvider. Allows editing the state object or preventing the operation.
1654
+ * @param {object} event Event object
1655
+ * @param {any} event.state State object config
1656
+ */
1657
+ @Output() onBeforeStateSave: any = new EventEmitter<((event: { state: any }) => Promise<boolean>|boolean|void)|string>();
1658
+ /**
1659
+ * Fires on the owning TaskBoard before task dragging starts. Return `false` to prevent the action
1660
+ * @param {object} event Event object
1661
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1662
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Tasks to be dragged
1663
+ * @param {Event} event.domEvent The mouse event
1664
+ */
1665
+ @Output() onBeforeTaskDrag: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], domEvent: Event }) => Promise<boolean>|boolean|void)|string>();
1666
+ /**
1667
+ * Fires on the owning TaskBoard when tasks are dropped, before the operation completes. Handles async
1668
+ * listeners, returning `false` from one will abort the operation
1669
+ * ...
1670
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeTaskDrop)
1671
+ * @param {object} event Event object
1672
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1673
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Dropped tasks
1674
+ * @param {TaskBoard.model.ColumnModel} event.targetColumn Dropped on this column
1675
+ * @param {TaskBoard.model.SwimlaneModel} event.targetSwimlane Dropped in this swimlane (if used)
1676
+ * @param {Event} event.domEvent The mouse event
1677
+ */
1678
+ @Output() onBeforeTaskDrop: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], targetColumn: ColumnModel, targetSwimlane: SwimlaneModel, domEvent: Event }) => Promise<boolean>|boolean|void)|string>();
1679
+ /**
1680
+ * Fires on the owning TaskBoard before a task is displayed in an editor.
1681
+ * ...
1682
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeTaskEdit)
1683
+ * @param {object} event Event object
1684
+ * @param {TaskBoard.view.TaskBoard} event.source The owning TaskBoard
1685
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The record about to be shown in the task editor
1686
+ */
1687
+ @Output() onBeforeTaskEdit: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel }) => Promise<boolean>|boolean|void)|string>();
1688
+ /**
1689
+ * Fires on the owning TaskBoard when the editor for a task is available, but before it is populated with data
1690
+ * and shown. Allows manipulating fields etc.
1691
+ * ...
1692
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeTaskEditShow)
1693
+ * @param {object} event Event object
1694
+ * @param {TaskBoard.view.TaskBoard} event.source The owning TaskBoard
1695
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The record about to be shown in the task editor
1696
+ * @param {TaskBoard.widget.TaskEditor} event.editor The editor
1697
+ */
1698
+ @Output() onBeforeTaskEditShow: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, editor: TaskEditor }) => void)|string>();
1699
+ /**
1700
+ * Triggered when one or more tasks are to be removed by a call to `removeTask()`.
1701
+ * ...
1702
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-beforeTaskRemove)
1703
+ * @param {object} event Event object
1704
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1705
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Task records to be removed
1706
+ */
1707
+ @Output() onBeforeTaskRemove: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[] }) => Promise<boolean>|boolean|void)|string>();
1708
+ /**
1709
+ * Fires when any other event is fired from the object.
1710
+ * ...
1711
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-catchAll)
1712
+ * @param {object} event Event object
1713
+ * @param {{[key: string]: any, type: string}} event.event The Object that contains event details
1714
+ * @param {string} event.event.type The type of the event which is caught by the listener
1715
+ */
1716
+ @Output() onCatchAll: any = new EventEmitter<((event: {[key: string]: any, type: string}) => void)|string>();
1717
+ /**
1718
+ * This event fires on the owning TaskBoard when an item is selected in the column header menu.
1719
+ * @param {object} event Event object
1720
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
1721
+ * @param {Core.widget.Menu} event.menu The menu
1722
+ * @param {Core.widget.MenuItem} event.item Selected menu item
1723
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord The column
1724
+ */
1725
+ @Output() onCellMenuItem: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, item: MenuItem, columnRecord: ColumnModel }) => void)|string>();
1726
+ /**
1727
+ * This event fires on the owning TaskBoard after the context menu is shown for a column header.
1728
+ * @param {object} event Event object
1729
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
1730
+ * @param {Core.widget.Menu} event.menu The menu
1731
+ * @param {Record<string, MenuItemEntry>} event.items Menu item configs
1732
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord The column
1733
+ */
1734
+ @Output() onCellMenuShow: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, items: Record<string, MenuItemEntry>, columnRecord: ColumnModel }) => void)|string>();
1735
+ /**
1736
+ * This event fires on the owning TaskBoard when a check item is toggled in the column header menu.
1737
+ * @param {object} event Event object
1738
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
1739
+ * @param {Core.widget.Menu} event.menu The menu
1740
+ * @param {Core.widget.MenuItem} event.item Selected menu item
1741
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord The column
1742
+ * @param {boolean} event.checked Checked or not
1743
+ */
1744
+ @Output() onCellMenuToggleItem: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, item: MenuItem, columnRecord: ColumnModel, checked: boolean }) => void)|string>();
1745
+ /**
1746
+ * Fires when a Panel is collapsed using the [collapsible](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-collapsible) setting.
1747
+ * @param {object} event Event object
1748
+ * @param {Core.widget.Panel} event.source This Panel.
1749
+ */
1750
+ @Output() onCollapse: any = new EventEmitter<((event: { source: Panel }) => void)|string>();
1751
+ /**
1752
+ * Triggered when a column is collapsed.
1753
+ * @param {object} event Event object
1754
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1755
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1756
+ */
1757
+ @Output() onColumnCollapse: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1758
+ /**
1759
+ * Fires on the owning TaskBoard when a column is dragged, if the drag leads to a change compared to
1760
+ * the last columnDrag event.
1761
+ * ...
1762
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnDrag)
1763
+ * @param {object} event Event object
1764
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1765
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column being dragged
1766
+ * @param {TaskBoard.model.ColumnModel} event.beforeColumn Insert before this column on drop, `null` if last
1767
+ */
1768
+ @Output() onColumnDrag: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, beforeColumn: ColumnModel }) => void)|string>();
1769
+ /**
1770
+ * Fires on the owning TaskBoard when a drag operation is aborted (invalid drop or aborted using ESC)
1771
+ * @param {object} event Event object
1772
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1773
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Dragged column
1774
+ */
1775
+ @Output() onColumnDragAbort: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1776
+ /**
1777
+ * Fires on the owning TaskBoard when a previously started drag operation ends, no matter the
1778
+ * outcome of it (whether valid, invalid or aborted)
1779
+ * @param {object} event Event object
1780
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1781
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Affected column
1782
+ */
1783
+ @Output() onColumnDragEnd: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1784
+ /**
1785
+ * Fires on the owning TaskBoard when column dragging starts
1786
+ * @param {object} event Event object
1787
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1788
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column to be dragged
1789
+ */
1790
+ @Output() onColumnDragStart: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1791
+ /**
1792
+ * Fires on the owning TaskBoard when a column is successfully dropped (after the drop transition
1793
+ * has finished)
1794
+ * @param {object} event Event object
1795
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
1796
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Dropped column
1797
+ * @param {TaskBoard.model.ColumnModel} event.beforeColumn Dropped before this column (`null` if last)
1798
+ * @param {TaskBoard.model.SwimlaneModel} event.targetSwimlane Dropped in this swimlane (if used)
1799
+ */
1800
+ @Output() onColumnDrop: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, beforeColumn: ColumnModel, targetSwimlane: SwimlaneModel }) => void)|string>();
1801
+ /**
1802
+ * Triggered when a column is expanded.
1803
+ * @param {object} event Event object
1804
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1805
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1806
+ */
1807
+ @Output() onColumnExpand: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1808
+ /**
1809
+ * Triggered when the column filter is hidden.
1810
+ * @param {object} event Event object
1811
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1812
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1813
+ */
1814
+ @Output() onColumnFilterHide: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1815
+ /**
1816
+ * Triggered when the column filter is displayed.
1817
+ * @param {object} event Event object
1818
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1819
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1820
+ */
1821
+ @Output() onColumnFilterShow: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel }) => void)|string>();
1822
+ /**
1823
+ * Triggered when the column filter visibility is toggled.
1824
+ * @param {object} event Event object
1825
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1826
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1827
+ * @param {boolean} event.visible True if filter popup is visible, false otherwise
1828
+ */
1829
+ @Output() onColumnFilterToggle: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, visible: boolean }) => void)|string>();
1830
+ /**
1831
+ * Triggered when a column header is clicked.
1832
+ * ...
1833
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnHeaderClick)
1834
+ * @param {object} event Event object
1835
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1836
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1837
+ * @param {MouseEvent} event.event Browser event
1838
+ */
1839
+ @Output() onColumnHeaderClick: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1840
+ /**
1841
+ * Triggered when a column header is right-clicked.
1842
+ * ...
1843
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnHeaderContextMenu)
1844
+ * @param {object} event Event object
1845
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1846
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1847
+ * @param {MouseEvent} event.event Browser event
1848
+ */
1849
+ @Output() onColumnHeaderContextMenu: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1850
+ /**
1851
+ * Triggered when a column header is double-clicked.
1852
+ * ...
1853
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnHeaderDblClick)
1854
+ * @param {object} event Event object
1855
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1856
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1857
+ * @param {MouseEvent} event.event Browser event
1858
+ */
1859
+ @Output() onColumnHeaderDblClick: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1860
+ /**
1861
+ * This event fires on the owning TaskBoard before the menu is shown for a column header.
1862
+ * Allows manipulation of the items to show in the same way as in the [processItems](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/ColumnHeaderMenu#config-processItems).
1863
+ * ...
1864
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnHeaderMenuBeforeShow)
1865
+ * @param {object} event Event object
1866
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
1867
+ * @param {Core.widget.Menu} event.menu The menu
1868
+ * @param {Record<string, MenuItemEntry>} event.items Menu item configs
1869
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord The column
1870
+ */
1871
+ @Output() onColumnHeaderMenuBeforeShow: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, items: Record<string, MenuItemEntry>, columnRecord: ColumnModel }) => Promise<boolean>|boolean|void)|string>();
1872
+ /**
1873
+ * This event is fired after a resize gesture is completed.
1874
+ * @param {object} event Event object
1875
+ * @param {TaskBoard.view.TaskBoard} event.source The TaskBoard instance
1876
+ * @param {TaskBoard.model.ColumnModel} event.column The column
1877
+ * @param {Event} event.domEvent The browser event
1878
+ */
1879
+ @Output() onColumnResize: any = new EventEmitter<((event: { source: TaskBoard, column: ColumnModel, domEvent: Event }) => void)|string>();
1880
+ /**
1881
+ * This event is fired when a column resize gesture starts.
1882
+ * @param {object} event Event object
1883
+ * @param {TaskBoard.view.TaskBoard} event.source The TaskBoard instance
1884
+ * @param {TaskBoard.model.ColumnModel} event.column The column
1885
+ * @param {Event} event.domEvent The browser event
1886
+ */
1887
+ @Output() onColumnResizeStart: any = new EventEmitter<((event: { source: TaskBoard, column: ColumnModel, domEvent: Event }) => void)|string>();
1888
+ /**
1889
+ * Triggered when a column title element is clicked.
1890
+ * ...
1891
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnTitleClick)
1892
+ * @param {object} event Event object
1893
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1894
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1895
+ * @param {MouseEvent} event.event Browser event
1896
+ */
1897
+ @Output() onColumnTitleClick: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1898
+ /**
1899
+ * Triggered when a column title element is right-clicked.
1900
+ * ...
1901
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnTitleContextMenu)
1902
+ * @param {object} event Event object
1903
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1904
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1905
+ * @param {MouseEvent} event.event Browser event
1906
+ */
1907
+ @Output() onColumnTitleContextMenu: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1908
+ /**
1909
+ * Triggered when a column title element is double-clicked.
1910
+ * ...
1911
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-columnTitleDblClick)
1912
+ * @param {object} event Event object
1913
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1914
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1915
+ * @param {MouseEvent} event.event Browser event
1916
+ */
1917
+ @Output() onColumnTitleDblClick: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, event: MouseEvent }) => void)|string>();
1918
+ /**
1919
+ * Triggered when the column collapsed state is toggled.
1920
+ * @param {object} event Event object
1921
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
1922
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record
1923
+ * @param {boolean} event.collapse `true` if the column is being collapsed.
1924
+ */
1925
+ @Output() onColumnToggle: any = new EventEmitter<((event: { source: TaskBoard, columnRecord: ColumnModel, collapse: boolean }) => void)|string>();
1926
+ /**
1927
+ * Fires when an object is destroyed.
1928
+ * @param {object} event Event object
1929
+ * @param {Core.Base} event.source The Object that is being destroyed.
1930
+ */
1931
+ @Output() onDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();
1932
+ /**
1933
+ * Fires when a field is mutated and the state of the [hasChanges](https://bryntum.com/products/taskboard/docs/api/Core/widget/Container#property-hasChanges) property changes
1934
+ * @param {object} event Event object
1935
+ * @param {Core.widget.Container} event.source The container.
1936
+ * @param {boolean} event.dirty The dirty state of the Container - `true` if there are any fields which have been changed since initial load.
1937
+ */
1938
+ @Output() onDirtyStateChange: any = new EventEmitter<((event: { source: Container, dirty: boolean }) => void)|string>();
1939
+ /**
1940
+ * Triggered when a widget's [element](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#property-element) is available.
1941
+ * @param {object} event Event object
1942
+ * @param {HTMLElement} event.element The Widget's element.
1943
+ */
1944
+ @Output() onElementCreated: any = new EventEmitter<((event: { element: HTMLElement }) => void)|string>();
1945
+ /**
1946
+ * Fires when a Panel is expanded using the [collapsible](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-collapsible) setting.
1947
+ * @param {object} event Event object
1948
+ * @param {Core.widget.Panel} event.source This Panel.
1949
+ */
1950
+ @Output() onExpand: any = new EventEmitter<((event: { source: Panel }) => void)|string>();
1951
+ /**
1952
+ * Fired when focus enters this Widget.
1953
+ * @param {object} event Event object
1954
+ * @param {Core.widget.Widget} event.source This Widget
1955
+ * @param {HTMLElement} event.fromElement The element which lost focus.
1956
+ * @param {HTMLElement} event.toElement The element which gained focus.
1957
+ * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.
1958
+ * @param {Core.widget.Widget} event.toWidget The widget which gained focus.
1959
+ * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.
1960
+ */
1961
+ @Output() onFocusIn: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();
1962
+ /**
1963
+ * Fired when focus exits this Widget's ownership tree. This is different from a `blur` event.
1964
+ * focus moving from within this Widget's ownership tree, even if there are floating widgets
1965
+ * will not trigger this event. This is when focus exits this widget completely.
1966
+ * @param {object} event Event object
1967
+ * @param {Core.widget.Widget} event.source This Widget
1968
+ * @param {HTMLElement} event.fromElement The element which lost focus.
1969
+ * @param {HTMLElement} event.toElement The element which gained focus.
1970
+ * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.
1971
+ * @param {Core.widget.Widget} event.toWidget The widget which gained focus.
1972
+ * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.
1973
+ */
1974
+ @Output() onFocusOut: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();
1975
+ /**
1976
+ * Triggered after a widget was hidden
1977
+ * @param {object} event Event object
1978
+ * @param {Core.widget.Widget} event.source The widget
1979
+ */
1980
+ @Output() onHide: any = new EventEmitter<((event: { source: Widget }) => void)|string>();
1981
+ /**
1982
+ * Triggered when a widget which had been in a non-visible state for any reason
1983
+ * achieves visibility.
1984
+ * ...
1985
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-paint)
1986
+ * @param {object} event Event object
1987
+ * @param {Core.widget.Widget} event.source The widget being painted.
1988
+ * @param {boolean} event.firstPaint `true` if this is the first paint.
1989
+ */
1990
+ @Output() onPaint: any = new EventEmitter<((event: { source: Widget, firstPaint: boolean }) => void)|string>();
1991
+ /**
1992
+ * Fired when a Widget's read only state is toggled
1993
+ * @param {object} event Event object
1994
+ * @param {boolean} event.readOnly Read only or not
1995
+ */
1996
+ @Output() onReadOnly: any = new EventEmitter<((event: { readOnly: boolean }) => void)|string>();
1997
+ /**
1998
+ * This event is fired after a widget's elements have been synchronized due to a direct or indirect call
1999
+ * to [recompose](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#function-recompose), if this results in some change to the widget's rendered DOM elements.
2000
+ */
2001
+ @Output() onRecompose: any = new EventEmitter<(() => void)|string>();
2002
+ /**
2003
+ * Triggered when a tasks element is removed.
2004
+ * ...
2005
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-removeTaskElement)
2006
+ * @param {object} event Event object
2007
+ * @param {TaskBoard.view.TaskBoard} event.source TaskBoard instance
2008
+ * @param {string,number} event.taskId Id of the task (not the record itself since it might be removed)
2009
+ * @param {HTMLElement} event.element Tasks element
2010
+ */
2011
+ @Output() onRemoveTaskElement: any = new EventEmitter<((event: { source: TaskBoard, taskId: string|number, element: HTMLElement }) => void)|string>();
2012
+ /**
2013
+ * Triggered when a task is rendered.
2014
+ * ...
2015
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-renderTask)
2016
+ * @param {object} event Event object
2017
+ * @param {TaskBoard.view.TaskBoard} event.source TaskBoard instance
2018
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task being rendered
2019
+ * @param {boolean} event.isRefresh `true` if the element was updated, `false` if it was added
2020
+ * @param {HTMLElement} event.element Tasks element
2021
+ */
2022
+ @Output() onRenderTask: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, isRefresh: boolean, element: HTMLElement }) => void)|string>();
2023
+ /**
2024
+ * Triggered when all tasks in the task board are rendered
2025
+ * @param {object} event Event object
2026
+ * @param {TaskBoard.view.TaskBoard} event.source TaskBoard instance
2027
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Tasks being rendered
2028
+ */
2029
+ @Output() onRenderTasks: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[] }) => void)|string>();
2030
+ /**
2031
+ * Fired when the encapsulating element of a Widget resizes *only when [monitorResize](https://bryntum.com/products/taskboard/docs/api/Core/widget/Widget#config-monitorResize) is `true`*.
2032
+ * @param {object} event Event object
2033
+ * @param {Core.widget.Widget} event.source This Widget
2034
+ * @param {number} event.width The new width
2035
+ * @param {number} event.height The new height
2036
+ * @param {number} event.oldWidth The old width
2037
+ * @param {number} event.oldHeight The old height
2038
+ */
2039
+ @Output() onResize: any = new EventEmitter<((event: { source: Widget, width: number, height: number, oldWidth: number, oldHeight: number }) => void)|string>();
2040
+ /**
2041
+ * Triggered when a new [responsiveState](https://bryntum.com/products/taskboard/docs/api/Core/widget/mixin/Responsive#config-responsiveState) is applied.
2042
+ * @param {object} event Event object
2043
+ * @param {Core.widget.Widget} event.source The widget whose `responsiveState` has changed
2044
+ * @param {string} event.state The new value for the widget's `responsiveState`
2045
+ * @param {string} event.oldState The previous value for the widget's `responsiveState`
2046
+ */
2047
+ @Output() onResponsiveStateChange: any = new EventEmitter<((event: { source: Widget, state: string, oldState: string }) => void)|string>();
2048
+ /**
2049
+ * Triggered when task selection changes.
2050
+ * @param {object} event Event object
2051
+ * @param {TaskBoard.view.TaskBoard} event.source TaskBoard instance
2052
+ * @param {'select','deselect'} event.action Either 'select' or 'deselect', depending on operation
2053
+ * @param {TaskBoard.model.TaskModel[]} event.selection All currently selected tasks
2054
+ * @param {TaskBoard.model.TaskModel[]} event.select Tasks selected by the operation
2055
+ * @param {TaskBoard.model.TaskModel[]} event.deselect Tasks deselected by the operation
2056
+ */
2057
+ @Output() onSelectionChange: any = new EventEmitter<((event: { source: TaskBoard, action: 'select'|'deselect', selection: TaskModel[], select: TaskModel[], deselect: TaskModel[] }) => void)|string>();
2058
+ /**
2059
+ * Triggered after a widget is shown.
2060
+ * @param {object} event Event object
2061
+ * @param {Core.widget.Widget} event.source The widget
2062
+ */
2063
+ @Output() onShow: any = new EventEmitter<((event: { source: Widget }) => void)|string>();
2064
+ /**
2065
+ * Fires on the owning TaskBoard when inline editing of a field is cancelled (by pressing ESC).
2066
+ * ...
2067
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-simpleTaskEditCancel)
2068
+ * @param {object} event Event object
2069
+ * @param {TaskBoard.view.TaskBoard} event.source The task board
2070
+ * @param {TaskBoard.feature.SimpleTaskEdit} event.simpleTaskEdit The simpleTaskEdit feature
2071
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Record that was edited
2072
+ * @param {string} event.field Field name being edited
2073
+ */
2074
+ @Output() onSimpleTaskEditCancel: any = new EventEmitter<((event: { source: TaskBoard, simpleTaskEdit: SimpleTaskEdit, taskRecord: TaskModel, field: string }) => Promise<boolean>|boolean|void)|string>();
2075
+ /**
2076
+ * Fires on the owning TaskBoard when inline editing of a field has successfully finished.
2077
+ * ...
2078
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-simpleTaskEditComplete)
2079
+ * @param {object} event Event object
2080
+ * @param {TaskBoard.view.TaskBoard} event.source The task board
2081
+ * @param {TaskBoard.feature.SimpleTaskEdit} event.simpleTaskEdit The simpleTaskEdit feature
2082
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Record that was edited
2083
+ * @param {string} event.field Field name being edited
2084
+ */
2085
+ @Output() onSimpleTaskEditComplete: any = new EventEmitter<((event: { source: TaskBoard, simpleTaskEdit: SimpleTaskEdit, taskRecord: TaskModel, field: string }) => Promise<boolean>|boolean|void)|string>();
2086
+ /**
2087
+ * Triggered when a swimlane is collapsed.
2088
+ * @param {object} event Event object
2089
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2090
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2091
+ */
2092
+ @Output() onSwimlaneCollapse: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel }) => void)|string>();
2093
+ /**
2094
+ * Triggered when a swimlane is expanded.
2095
+ * @param {object} event Event object
2096
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2097
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2098
+ */
2099
+ @Output() onSwimlaneExpand: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel }) => void)|string>();
2100
+ /**
2101
+ * Triggered when a swimlane header is clicked.
2102
+ * ...
2103
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-swimlaneHeaderClick)
2104
+ * @param {object} event Event object
2105
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2106
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2107
+ * @param {MouseEvent} event.event Browser event
2108
+ */
2109
+ @Output() onSwimlaneHeaderClick: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2110
+ /**
2111
+ * Triggered when a swimlane header is right-clicked.
2112
+ * ...
2113
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-swimlaneHeaderContextMenu)
2114
+ * @param {object} event Event object
2115
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2116
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2117
+ * @param {MouseEvent} event.event Browser event
2118
+ */
2119
+ @Output() onSwimlaneHeaderContextMenu: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2120
+ /**
2121
+ * Triggered when a swimlane header is double-clicked.
2122
+ * ...
2123
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-swimlaneHeaderDblClick)
2124
+ * @param {object} event Event object
2125
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2126
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2127
+ * @param {MouseEvent} event.event Browser event
2128
+ */
2129
+ @Output() onSwimlaneHeaderDblClick: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2130
+ /**
2131
+ * Triggered when the swimlane collapsed state is toggled.
2132
+ * @param {object} event Event object
2133
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2134
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record
2135
+ * @param {boolean} event.collapse `true` if the column is being collapsed.
2136
+ */
2137
+ @Output() onSwimlaneToggle: any = new EventEmitter<((event: { source: TaskBoard, swimlaneRecord: SwimlaneModel, collapse: boolean }) => void)|string>();
2138
+ /**
2139
+ * Triggered when a card is clicked.
2140
+ * ...
2141
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskClick)
2142
+ * @param {object} event Event object
2143
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2144
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task record
2145
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record for the tasks column
2146
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record for the tasks swimlane (if used)
2147
+ * @param {MouseEvent} event.event Browser event
2148
+ */
2149
+ @Output() onTaskClick: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2150
+ /**
2151
+ * Triggered when a card is double-clicked
2152
+ * ...
2153
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskDblClick)
2154
+ * @param {object} event Event object
2155
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2156
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task record
2157
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record for the tasks column
2158
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record for the tasks swimlane (if used)
2159
+ * @param {MouseEvent} event.event Browser event
2160
+ */
2161
+ @Output() onTaskDblClick: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2162
+ /**
2163
+ * Fires on the owning TaskBoard when tasks are dragged, if the drag leads to any changes compared to
2164
+ * the last taskDrag event (moved to a new column or changed order within a column).
2165
+ * ...
2166
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskDrag)
2167
+ * @param {object} event Event object
2168
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
2169
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Dragged tasks
2170
+ * @param {TaskBoard.model.ColumnModel} event.targetColumn Currently over this column
2171
+ * @param {TaskBoard.model.SwimlaneModel} event.targetSwimlane Currently over this swimlane (if used)
2172
+ * @param {Event} event.domEvent The mouse event
2173
+ */
2174
+ @Output() onTaskDrag: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], targetColumn: ColumnModel, targetSwimlane: SwimlaneModel, domEvent: Event }) => void)|string>();
2175
+ /**
2176
+ * Fires on the owning TaskBoard when a drag operation is aborted (invalid drop or aborted using ESC)
2177
+ * @param {object} event Event object
2178
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
2179
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Dragged tasks
2180
+ */
2181
+ @Output() onTaskDragAbort: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[] }) => void)|string>();
2182
+ /**
2183
+ * Fires on the owning TaskBoard when a previously started drag operation ends, no matter the
2184
+ * outcome of it (whether valid, invalid or aborted)
2185
+ * @param {object} event Event object
2186
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
2187
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Affected tasks
2188
+ * @param {Event} event.domEvent The mouse event
2189
+ */
2190
+ @Output() onTaskDragEnd: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], domEvent: Event }) => void)|string>();
2191
+ /**
2192
+ * Fires on the owning TaskBoard when task dragging starts
2193
+ * @param {object} event Event object
2194
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
2195
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Tasks to be dragged
2196
+ * @param {Event} event.domEvent The mouse event
2197
+ */
2198
+ @Output() onTaskDragStart: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], domEvent: Event }) => void)|string>();
2199
+ /**
2200
+ * Fires on the owning TaskBoard when tasks are successfully dropped (after the drop transition has
2201
+ * finished)
2202
+ * @param {object} event Event object
2203
+ * @param {TaskBoard.view.TaskBoard} event.source Owning TaskBoard
2204
+ * @param {TaskBoard.model.TaskModel[]} event.taskRecords Dropped tasks
2205
+ * @param {TaskBoard.model.ColumnModel} event.targetColumn Dropped on this column
2206
+ * @param {TaskBoard.model.SwimlaneModel} event.targetSwimlane Dropped in this swimlane (if used)
2207
+ * @param {Event} event.domEvent The mouse event
2208
+ */
2209
+ @Output() onTaskDrop: any = new EventEmitter<((event: { source: TaskBoard, taskRecords: TaskModel[], targetColumn: ColumnModel, targetSwimlane: SwimlaneModel, domEvent: Event }) => void)|string>();
2210
+ /**
2211
+ * This event fires on the owning TaskBoard before the context menu is shown for a task.
2212
+ * Allows manipulation of the items to show in the same way as in the [processItems](https://bryntum.com/products/taskboard/docs/api/TaskBoard/feature/TaskMenu#config-processItems).
2213
+ * ...
2214
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskMenuBeforeShow)
2215
+ * @param {object} event Event object
2216
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
2217
+ * @param {Core.widget.Menu} event.menu The menu
2218
+ * @param {Record<string, MenuItemEntry>} event.items Menu item configs
2219
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The task
2220
+ */
2221
+ @Output() onTaskMenuBeforeShow: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, items: Record<string, MenuItemEntry>, taskRecord: TaskModel }) => Promise<boolean>|boolean|void)|string>();
2222
+ /**
2223
+ * This event fires on the owning TaskBoard when an item is selected in the task context menu.
2224
+ * @param {object} event Event object
2225
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
2226
+ * @param {Core.widget.Menu} event.menu The menu
2227
+ * @param {Core.widget.MenuItem} event.item Selected menu item
2228
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The task
2229
+ */
2230
+ @Output() onTaskMenuItem: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, item: MenuItem, taskRecord: TaskModel }) => void)|string>();
2231
+ /**
2232
+ * This event fires on the owning TaskBoard after the context menu is shown for a task.
2233
+ * @param {object} event Event object
2234
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
2235
+ * @param {Core.widget.Menu} event.menu The menu
2236
+ * @param {Record<string, MenuItemEntry>} event.items Menu item configs
2237
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The task
2238
+ */
2239
+ @Output() onTaskMenuShow: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, items: Record<string, MenuItemEntry>, taskRecord: TaskModel }) => void)|string>();
2240
+ /**
2241
+ * This event fires on the owning TaskBoard when a check item is toggled in the task context menu.
2242
+ * @param {object} event Event object
2243
+ * @param {TaskBoard.view.TaskBoard} event.source The grid
2244
+ * @param {Core.widget.Menu} event.menu The menu
2245
+ * @param {Core.widget.MenuItem} event.item Selected menu item
2246
+ * @param {TaskBoard.model.TaskModel} event.taskRecord The task
2247
+ * @param {boolean} event.checked Checked or not
2248
+ */
2249
+ @Output() onTaskMenuToggleItem: any = new EventEmitter<((event: { source: TaskBoard, menu: Menu, item: MenuItem, taskRecord: TaskModel, checked: boolean }) => void)|string>();
2250
+ /**
2251
+ * Triggered when the mouse enters a card
2252
+ * ...
2253
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskMouseEnter)
2254
+ * @param {object} event Event object
2255
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2256
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task record
2257
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record for the tasks column
2258
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record for the tasks swimlane (if used)
2259
+ * @param {MouseEvent} event.event Browser event
2260
+ */
2261
+ @Output() onTaskMouseEnter: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2262
+ /**
2263
+ * Triggered when the mouse leaves a card
2264
+ * ...
2265
+ * [View online docs...](https://bryntum.com/products/taskboard/docs/api/TaskBoard/view/TaskBoardBase#event-taskMouseLeave)
2266
+ * @param {object} event Event object
2267
+ * @param {TaskBoard.view.TaskBoard} event.source This TaskBoard
2268
+ * @param {TaskBoard.model.TaskModel} event.taskRecord Task record
2269
+ * @param {TaskBoard.model.ColumnModel} event.columnRecord Column record for the tasks column
2270
+ * @param {TaskBoard.model.SwimlaneModel} event.swimlaneRecord Swimlane record for the tasks swimlane (if used)
2271
+ * @param {MouseEvent} event.event Browser event
2272
+ */
2273
+ @Output() onTaskMouseLeave: any = new EventEmitter<((event: { source: TaskBoard, taskRecord: TaskModel, columnRecord: ColumnModel, swimlaneRecord: SwimlaneModel, event: MouseEvent }) => void)|string>();
2274
+ /**
2275
+ * A header [tool](https://bryntum.com/products/taskboard/docs/api/Core/widget/Panel#config-tools) has been clicked.
2276
+ * @param {object} event Event object
2277
+ * @param {Core.widget.Tool} event.source This Panel.
2278
+ * @param {Core.widget.Tool} event.tool The tool which is being clicked.
2279
+ */
2280
+ @Output() onToolClick: any = new EventEmitter<((event: { source: Tool, tool: Tool }) => void)|string>();
2281
+
2282
+ /**
2283
+ * Create and append the underlying widget
2284
+ */
2285
+ ngOnInit(): void {
2286
+ const
2287
+ me = this,
2288
+ {
2289
+ elementRef,
2290
+ bryntumConfig
2291
+ } = me,
2292
+ {
2293
+ instanceClass,
2294
+ instanceName,
2295
+ bryntumConfigs,
2296
+ bryntumEvents
2297
+ } = BryntumTaskBoardBaseComponent;
2298
+
2299
+ bryntumConfigs.filter(prop => prop in this).forEach(prop => {
2300
+ // @ts-ignore
2301
+ WrapperHelper.applyPropValue(bryntumConfig, prop, this[prop]);
2302
+ if (['features', 'config'].includes(prop)) {
2303
+ WrapperHelper.devWarningConfigProp(instanceName, prop);
2304
+ }
2305
+ });
2306
+ // @ts-ignore
2307
+ bryntumEvents.filter(event => this[event] && this[event].observers.length > 0).forEach(event => {
2308
+ const
2309
+ uncapitalize = (str: string) => str.charAt(0).toLowerCase() + str.slice(1),
2310
+ eventName = (str: string) => uncapitalize(str.slice(2));
2311
+
2312
+ // @ts-ignore
2313
+ bryntumConfig.listeners[eventName(event)] = e => {
2314
+ // @ts-ignore
2315
+ me[event].emit(e);
2316
+ // EventEmitter does not return values in the normal way, work around it by setting `returnValue` flag
2317
+ // in Angular listeners
2318
+ return e.returnValue;
2319
+ };
2320
+ });
2321
+
2322
+ // If component has no container specified in config then use adopt to Wrapper's element
2323
+ const
2324
+ containerParam = [
2325
+ 'adopt',
2326
+ 'appendTo',
2327
+ 'insertAfter',
2328
+ 'insertBefore'
2329
+ // @ts-ignore
2330
+ ].find(prop => bryntumConfig[prop]);
2331
+ if (!containerParam) {
2332
+ if (instanceName === 'Button' || elementRef.nativeElement.getRootNode() instanceof ShadowRoot) {
2333
+ // Button should always be <a> or <button> inside owner element
2334
+ bryntumConfig.appendTo = elementRef.nativeElement;
2335
+ }
2336
+ else {
2337
+ bryntumConfig.adopt = elementRef.nativeElement;
2338
+ }
2339
+ }
2340
+ else {
2341
+ WrapperHelper.devWarningContainer(instanceName, containerParam);
2342
+ }
2343
+
2344
+ // @ts-ignore
2345
+ me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);
2346
+
2347
+ // Backwards compatibility for gridInstance, schedulerInstance etc.
2348
+ // @ts-ignore
2349
+ me[StringHelper.uncapitalize(instanceName) + 'Instance'] = me.instance;
2350
+ //
2351
+ }
2352
+
2353
+ /**
2354
+ * Watch for changes
2355
+ * @param changes
2356
+ */
2357
+ ngOnChanges(changes: SimpleChanges): void {
2358
+ const
2359
+ { instance } = this,
2360
+ { instanceName } = BryntumTaskBoardBaseComponent;
2361
+ if (!instance) {
2362
+ return;
2363
+ }
2364
+ // Iterate over all changes
2365
+ Object.entries(changes).forEach(([prop, change]) => {
2366
+ const
2367
+ newValue = (change as SimpleChange).currentValue,
2368
+ { instance } = this,
2369
+ { bryntumConfigsOnly, bryntumProps } = BryntumTaskBoardBaseComponent;
2370
+ if (bryntumProps.includes(prop)) {
2371
+ WrapperHelper.applyPropValue(instance, prop, newValue, false);
2372
+ if (bryntumConfigsOnly.includes(prop)) {
2373
+ WrapperHelper.devWarningUpdateProp(instanceName, prop);
2374
+ }
2375
+ }
2376
+ });
2377
+ }
2378
+
2379
+ /**
2380
+ * Destroy the component
2381
+ */
2382
+ ngOnDestroy(): void {
2383
+ // @ts-ignore
2384
+ if (this.instance && this.instance.destroy) {
2385
+ this.instance.destroy();
2386
+ }
2387
+ }
2388
+ }