@bryntum/gantt-react 7.2.0 → 7.2.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 (120) hide show
  1. package/lib/BryntumAssignmentGrid.d.ts +6 -1
  2. package/lib/BryntumAssignmentGrid.js +1 -0
  3. package/lib/BryntumAssignmentGrid.js.map +1 -1
  4. package/lib/BryntumDemoHeader.d.ts +0 -1
  5. package/lib/BryntumDemoHeader.js +1 -2
  6. package/lib/BryntumDemoHeader.js.map +1 -1
  7. package/lib/BryntumGantt.d.ts +7 -1
  8. package/lib/BryntumGantt.js +2 -0
  9. package/lib/BryntumGantt.js.map +1 -1
  10. package/lib/BryntumGanttBase.d.ts +7 -1
  11. package/lib/BryntumGanttBase.js +2 -0
  12. package/lib/BryntumGanttBase.js.map +1 -1
  13. package/lib/BryntumGanttProjectModel.d.ts +6 -6
  14. package/lib/BryntumGrid.d.ts +6 -1
  15. package/lib/BryntumGrid.js +1 -0
  16. package/lib/BryntumGrid.js.map +1 -1
  17. package/lib/BryntumGridBase.d.ts +6 -1
  18. package/lib/BryntumGridBase.js +1 -0
  19. package/lib/BryntumGridBase.js.map +1 -1
  20. package/lib/BryntumResourceGrid.d.ts +18 -1
  21. package/lib/BryntumResourceGrid.js +57 -1
  22. package/lib/BryntumResourceGrid.js.map +1 -1
  23. package/lib/BryntumResourceHistogram.d.ts +6 -1
  24. package/lib/BryntumResourceHistogram.js +1 -0
  25. package/lib/BryntumResourceHistogram.js.map +1 -1
  26. package/lib/BryntumResourceUtilization.d.ts +6 -1
  27. package/lib/BryntumResourceUtilization.js +1 -0
  28. package/lib/BryntumResourceUtilization.js.map +1 -1
  29. package/lib/BryntumScheduler.d.ts +7 -1
  30. package/lib/BryntumScheduler.js +1 -0
  31. package/lib/BryntumScheduler.js.map +1 -1
  32. package/lib/BryntumSchedulerBase.d.ts +7 -1
  33. package/lib/BryntumSchedulerBase.js +1 -0
  34. package/lib/BryntumSchedulerBase.js.map +1 -1
  35. package/lib/BryntumSchedulerPro.d.ts +7 -1
  36. package/lib/BryntumSchedulerPro.js +1 -0
  37. package/lib/BryntumSchedulerPro.js.map +1 -1
  38. package/lib/BryntumSchedulerProBase.d.ts +7 -1
  39. package/lib/BryntumSchedulerProBase.js +1 -0
  40. package/lib/BryntumSchedulerProBase.js.map +1 -1
  41. package/lib/BryntumTimeline.d.ts +7 -1
  42. package/lib/BryntumTimeline.js +1 -0
  43. package/lib/BryntumTimeline.js.map +1 -1
  44. package/lib/BryntumTimelineHistogram.d.ts +6 -1
  45. package/lib/BryntumTimelineHistogram.js +1 -0
  46. package/lib/BryntumTimelineHistogram.js.map +1 -1
  47. package/lib/BryntumTreeGrid.d.ts +6 -1
  48. package/lib/BryntumTreeGrid.js +1 -0
  49. package/lib/BryntumTreeGrid.js.map +1 -1
  50. package/lib/BryntumVersionGrid.d.ts +6 -1
  51. package/lib/BryntumVersionGrid.js +1 -0
  52. package/lib/BryntumVersionGrid.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/BryntumAIFilterField.tsx +1 -1
  55. package/src/BryntumAssignmentField.tsx +3 -3
  56. package/src/BryntumAssignmentGrid.tsx +15 -6
  57. package/src/BryntumCalendarEditor.tsx +1 -1
  58. package/src/BryntumCalendarField.tsx +2 -2
  59. package/src/BryntumCalendarPicker.tsx +2 -2
  60. package/src/BryntumCheckbox.tsx +1 -1
  61. package/src/BryntumChecklistFilterCombo.tsx +2 -2
  62. package/src/BryntumChipView.tsx +1 -1
  63. package/src/BryntumColorField.tsx +1 -1
  64. package/src/BryntumCombo.tsx +2 -2
  65. package/src/BryntumConstraintTypePicker.tsx +2 -2
  66. package/src/BryntumCostAccrualField.tsx +2 -2
  67. package/src/BryntumDateField.tsx +1 -1
  68. package/src/BryntumDateRangeField.tsx +1 -1
  69. package/src/BryntumDateTimeField.tsx +1 -1
  70. package/src/BryntumDemoHeader.tsx +1 -4
  71. package/src/BryntumDependencyField.tsx +2 -2
  72. package/src/BryntumDependencyTypePicker.tsx +2 -2
  73. package/src/BryntumDisplayField.tsx +1 -1
  74. package/src/BryntumDurationField.tsx +1 -1
  75. package/src/BryntumEditor.tsx +3 -3
  76. package/src/BryntumEffortField.tsx +1 -1
  77. package/src/BryntumEndDateField.tsx +1 -1
  78. package/src/BryntumEventColorField.tsx +1 -1
  79. package/src/BryntumFileField.tsx +1 -1
  80. package/src/BryntumFilterField.tsx +1 -1
  81. package/src/BryntumGantt.tsx +26 -10
  82. package/src/BryntumGanttBase.tsx +26 -10
  83. package/src/BryntumGanttProjectModel.tsx +6 -6
  84. package/src/BryntumGrid.tsx +15 -6
  85. package/src/BryntumGridBase.tsx +15 -6
  86. package/src/BryntumGroupBar.tsx +1 -1
  87. package/src/BryntumHint.tsx +1 -1
  88. package/src/BryntumList.tsx +1 -1
  89. package/src/BryntumMenu.tsx +1 -1
  90. package/src/BryntumModelCombo.tsx +2 -2
  91. package/src/BryntumNumberField.tsx +1 -1
  92. package/src/BryntumPasswordField.tsx +1 -1
  93. package/src/BryntumProjectCombo.tsx +2 -2
  94. package/src/BryntumRadio.tsx +1 -1
  95. package/src/BryntumRateTableField.tsx +2 -2
  96. package/src/BryntumResourceCombo.tsx +2 -2
  97. package/src/BryntumResourceEditor.tsx +1 -1
  98. package/src/BryntumResourceFilter.tsx +1 -1
  99. package/src/BryntumResourceGrid.tsx +88 -7
  100. package/src/BryntumResourceHistogram.tsx +17 -8
  101. package/src/BryntumResourceTypeField.tsx +2 -2
  102. package/src/BryntumResourceUtilization.tsx +18 -9
  103. package/src/BryntumScheduler.tsx +24 -14
  104. package/src/BryntumSchedulerBase.tsx +24 -14
  105. package/src/BryntumSchedulerPro.tsx +24 -14
  106. package/src/BryntumSchedulerProBase.tsx +24 -14
  107. package/src/BryntumSchedulingDirectionPicker.tsx +2 -2
  108. package/src/BryntumSchedulingModePicker.tsx +2 -2
  109. package/src/BryntumSlideToggle.tsx +1 -1
  110. package/src/BryntumSlider.tsx +1 -1
  111. package/src/BryntumStartDateField.tsx +1 -1
  112. package/src/BryntumTextAreaField.tsx +1 -1
  113. package/src/BryntumTextAreaPickerField.tsx +1 -1
  114. package/src/BryntumTextField.tsx +1 -1
  115. package/src/BryntumTimeField.tsx +1 -1
  116. package/src/BryntumTimeline.tsx +24 -14
  117. package/src/BryntumTimelineHistogram.tsx +17 -8
  118. package/src/BryntumTreeCombo.tsx +2 -2
  119. package/src/BryntumTreeGrid.tsx +15 -6
  120. package/src/BryntumVersionGrid.tsx +15 -6
@@ -440,7 +440,7 @@ export type BryntumSchedulerProProps = {
440
440
  */
441
441
  emptyText? : string|EmptyTextDomConfig
442
442
  /**
443
- * Allow using [Delete] and [Backspace] to remove events/assignments
443
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
444
444
  */
445
445
  enableDeleteKey? : boolean
446
446
  /**
@@ -539,8 +539,8 @@ export type BryntumSchedulerProProps = {
539
539
  * @param {'tonal','filled','bordered','traced','outlined','indented','line','dashed','minimal','rounded','calendar','interday','gantt',null} detail.renderData.eventStyle The `eventStyle` of the event. Use this to apply custom styles to the event DOM element
540
540
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
541
541
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
542
- * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents.
543
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
542
+ * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents. <h3>Using JSX (React)</h3> When using the Bryntum React wrapper, the event renderer can return JSX elements: ```javascript eventRenderer({ eventRecord, resourceRecord, renderData }) { return &lt;MyEventComponent event={eventRecord} resource={resourceRecord} />; } ``` *Using JSX in the event renderer creates a React portal for each rendered event. For schedulers with many visible events or frequently re-rendered views, this may impact scrolling performance compared to returning plain strings or [DomConfig](https://bryntum.com/products/gantt/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
543
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
544
544
  */
545
545
  eventRenderer? : (detail: { eventRecord: SchedulerEventModel, resourceRecord: SchedulerResourceModel, assignmentRecord: SchedulerAssignmentModel, scheduler: Scheduler, renderData: { event: SchedulerEventModel, cls: DomClassList|string, wrapperCls: DomClassList|string, iconCls: DomClassList|string, left: number, width: number, height: number, style: string|Record<string, string>, wrapperStyle: string|Record<string, string>, eventStyle: 'tonal'|'filled'|'bordered'|'traced'|'outlined'|'indented'|'line'|'dashed'|'minimal'|'rounded'|'calendar'|'interday'|'gantt'|null, eventColor: string, ariaLabel: string, children: DomConfig[] } }) => string|DomConfig|DomConfig[]
546
546
  /**
@@ -1712,7 +1712,7 @@ export type BryntumSchedulerProProps = {
1712
1712
  */
1713
1713
  onAssignmentSelectionChange? : ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: SchedulerAssignmentModel[], deselected: SchedulerAssignmentModel[], selection: SchedulerAssignmentModel[] }) => void)|string
1714
1714
  /**
1715
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
1715
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
1716
1716
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
1717
1717
  * case records should be "manually" removed after confirmation:
1718
1718
  * ...
@@ -1770,7 +1770,7 @@ export type BryntumSchedulerProProps = {
1770
1770
  */
1771
1771
  onBeforeCellEditStart? : ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
1772
1772
  /**
1773
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
1773
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
1774
1774
  * buttons while [autoEdit](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
1775
1775
  * @param {object} event Event object
1776
1776
  * @param {Grid.view.Grid} event.source Owner grid
@@ -1962,7 +1962,7 @@ export type BryntumSchedulerProProps = {
1962
1962
  */
1963
1963
  onBeforeEventAdd? : ((event: { source: Scheduler, eventRecord: SchedulerEventModel, resourceRecords: SchedulerResourceModel[], assignmentRecords: SchedulerAssignmentModel[] }) => Promise<boolean>|boolean|void)|string
1964
1964
  /**
1965
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
1965
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
1966
1966
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
1967
1967
  * for async vetoing).
1968
1968
  * ...
@@ -3500,19 +3500,20 @@ export type BryntumSchedulerProProps = {
3500
3500
  * @param {Scheduler.model.SchedulerEventModel[]} event.originalEventRecords The event records that were copied
3501
3501
  * @param {Scheduler.model.SchedulerAssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
3502
3502
  * @param {Date} event.date The paste date
3503
- * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record
3503
+ * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
3504
+ * @param {Scheduler.model.SchedulerResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
3504
3505
  * @param {boolean} event.isCut `true` if this is a cut action
3505
3506
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
3506
3507
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
3507
3508
  */
3508
- onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3509
+ onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, resourceRecords: SchedulerResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3509
3510
  /**
3510
3511
  * Fires on the owning Grid when export has finished
3511
3512
  * @param {object} event Event object
3512
3513
  * @param {Response} event.response Optional response, if received
3513
3514
  * @param {Error} event.error Optional error, if exception occurred
3514
3515
  */
3515
- onPdfExport? : ((event: { response?: any, error?: Error }) => void)|string
3516
+ onPdfExport? : ((event: { response?: Response, error?: Error }) => void)|string
3516
3517
  /**
3517
3518
  * Fired on the owning Scheduler or Gantt widget when dragging the percent bar
3518
3519
  * @param {object} event Event object
@@ -4469,6 +4470,14 @@ export type BryntumSchedulerProProps = {
4469
4470
  * @param {boolean} event.hasChanges Whether any changes are recorded that are not yet attached to a version.
4470
4471
  */
4471
4472
  onTransactionChange? : ((event: { hasChanges: boolean }) => void)|string
4473
+ /**
4474
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
4475
+ * @param {object} event Event object
4476
+ * @param {Grid.view.Grid} event.source The grid instance
4477
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
4478
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
4479
+ */
4480
+ onTreeGroup? : ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
4472
4481
  /**
4473
4482
  * Fires when row locking is disabled.
4474
4483
  * @param {object} event Event object
@@ -4535,7 +4544,7 @@ export type BryntumSchedulerProProps = {
4535
4544
  cellEditFeature? : object|boolean|string|SchedulerProCellEdit|SchedulerProCellEditConfig
4536
4545
  /**
4537
4546
  * Right click to display context menu for cells. To invoke the cell menu in a keyboard-accessible manner, use the
4538
- * `SPACE` key when the cell is focused.
4547
+ * <kbd>Space</kbd> key when the cell is focused.
4539
4548
  * ...
4540
4549
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellMenu)
4541
4550
  */
@@ -4632,8 +4641,8 @@ export type BryntumSchedulerProProps = {
4632
4641
  */
4633
4642
  eventBufferFeature? : object|boolean|string|EventBuffer|EventBufferConfig
4634
4643
  /**
4635
- * Allow using <kbd>Ctrl</kbd>/<kbd>CMD</kbd> + <kbd>C</kbd>/<kbd>X</kbd> and <kbd>Ctrl</kbd>/<kbd>CMD</kbd> +
4636
- * <kbd>V</kbd> to copy/cut and paste events.
4644
+ * Allow using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>C</kbd>, <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>X</kbd> and
4645
+ * <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>V</kbd> to copy/cut and paste events.
4637
4646
  * ...
4638
4647
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Scheduler/feature/EventCopyPaste)
4639
4648
  */
@@ -4754,8 +4763,8 @@ export type BryntumSchedulerProProps = {
4754
4763
  filterBarFeature? : object|boolean|string|FilterBar|FilterBarConfig
4755
4764
  /**
4756
4765
  * Enables rendering and handling of row groups. The actual grouping is done in the store, but triggered by
4757
- * <kbd>shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4758
- * one anywhere on grid). Use <kbd>shift</kbd> + <kbd>alt</kbd> + click, or the context menu, to remove a column
4766
+ * <kbd>Shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4767
+ * one anywhere on grid). Use <kbd>Shift</kbd> + <kbd>Alt</kbd> + click, or the context menu, to remove a column
4759
4768
  * grouper.
4760
4769
  * ...
4761
4770
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/Group)
@@ -5713,6 +5722,7 @@ export class BryntumSchedulerPro extends React.Component<BryntumSchedulerProProp
5713
5722
  'onToggleNode',
5714
5723
  'onToolClick',
5715
5724
  'onTransactionChange',
5725
+ 'onTreeGroup',
5716
5726
  'onUnlockRows',
5717
5727
  'onUnsplit',
5718
5728
  'onVisibleDateRangeChange',
@@ -440,7 +440,7 @@ export type BryntumSchedulerProBaseProps = {
440
440
  */
441
441
  emptyText? : string|EmptyTextDomConfig
442
442
  /**
443
- * Allow using [Delete] and [Backspace] to remove events/assignments
443
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
444
444
  */
445
445
  enableDeleteKey? : boolean
446
446
  /**
@@ -539,8 +539,8 @@ export type BryntumSchedulerProBaseProps = {
539
539
  * @param {'tonal','filled','bordered','traced','outlined','indented','line','dashed','minimal','rounded','calendar','interday','gantt',null} detail.renderData.eventStyle The `eventStyle` of the event. Use this to apply custom styles to the event DOM element
540
540
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
541
541
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
542
- * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents.
543
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
542
+ * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents. <h3>Using JSX (React)</h3> When using the Bryntum React wrapper, the event renderer can return JSX elements: ```javascript eventRenderer({ eventRecord, resourceRecord, renderData }) { return &lt;MyEventComponent event={eventRecord} resource={resourceRecord} />; } ``` *Using JSX in the event renderer creates a React portal for each rendered event. For schedulers with many visible events or frequently re-rendered views, this may impact scrolling performance compared to returning plain strings or [DomConfig](https://bryntum.com/products/gantt/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
543
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
544
544
  */
545
545
  eventRenderer? : (detail: { eventRecord: SchedulerEventModel, resourceRecord: SchedulerResourceModel, assignmentRecord: SchedulerAssignmentModel, scheduler: Scheduler, renderData: { event: SchedulerEventModel, cls: DomClassList|string, wrapperCls: DomClassList|string, iconCls: DomClassList|string, left: number, width: number, height: number, style: string|Record<string, string>, wrapperStyle: string|Record<string, string>, eventStyle: 'tonal'|'filled'|'bordered'|'traced'|'outlined'|'indented'|'line'|'dashed'|'minimal'|'rounded'|'calendar'|'interday'|'gantt'|null, eventColor: string, ariaLabel: string, children: DomConfig[] } }) => string|DomConfig|DomConfig[]
546
546
  /**
@@ -1711,7 +1711,7 @@ export type BryntumSchedulerProBaseProps = {
1711
1711
  */
1712
1712
  onAssignmentSelectionChange? : ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: SchedulerAssignmentModel[], deselected: SchedulerAssignmentModel[], selection: SchedulerAssignmentModel[] }) => void)|string
1713
1713
  /**
1714
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
1714
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
1715
1715
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
1716
1716
  * case records should be "manually" removed after confirmation:
1717
1717
  * ...
@@ -1769,7 +1769,7 @@ export type BryntumSchedulerProBaseProps = {
1769
1769
  */
1770
1770
  onBeforeCellEditStart? : ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
1771
1771
  /**
1772
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
1772
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
1773
1773
  * buttons while [autoEdit](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
1774
1774
  * @param {object} event Event object
1775
1775
  * @param {Grid.view.Grid} event.source Owner grid
@@ -1961,7 +1961,7 @@ export type BryntumSchedulerProBaseProps = {
1961
1961
  */
1962
1962
  onBeforeEventAdd? : ((event: { source: Scheduler, eventRecord: SchedulerEventModel, resourceRecords: SchedulerResourceModel[], assignmentRecords: SchedulerAssignmentModel[] }) => Promise<boolean>|boolean|void)|string
1963
1963
  /**
1964
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
1964
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
1965
1965
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
1966
1966
  * for async vetoing).
1967
1967
  * ...
@@ -3499,19 +3499,20 @@ export type BryntumSchedulerProBaseProps = {
3499
3499
  * @param {Scheduler.model.SchedulerEventModel[]} event.originalEventRecords The event records that were copied
3500
3500
  * @param {Scheduler.model.SchedulerAssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
3501
3501
  * @param {Date} event.date The paste date
3502
- * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record
3502
+ * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
3503
+ * @param {Scheduler.model.SchedulerResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
3503
3504
  * @param {boolean} event.isCut `true` if this is a cut action
3504
3505
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
3505
3506
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
3506
3507
  */
3507
- onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3508
+ onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, resourceRecords: SchedulerResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3508
3509
  /**
3509
3510
  * Fires on the owning Grid when export has finished
3510
3511
  * @param {object} event Event object
3511
3512
  * @param {Response} event.response Optional response, if received
3512
3513
  * @param {Error} event.error Optional error, if exception occurred
3513
3514
  */
3514
- onPdfExport? : ((event: { response?: any, error?: Error }) => void)|string
3515
+ onPdfExport? : ((event: { response?: Response, error?: Error }) => void)|string
3515
3516
  /**
3516
3517
  * Fired on the owning Scheduler or Gantt widget when dragging the percent bar
3517
3518
  * @param {object} event Event object
@@ -4468,6 +4469,14 @@ export type BryntumSchedulerProBaseProps = {
4468
4469
  * @param {boolean} event.hasChanges Whether any changes are recorded that are not yet attached to a version.
4469
4470
  */
4470
4471
  onTransactionChange? : ((event: { hasChanges: boolean }) => void)|string
4472
+ /**
4473
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
4474
+ * @param {object} event Event object
4475
+ * @param {Grid.view.Grid} event.source The grid instance
4476
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
4477
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
4478
+ */
4479
+ onTreeGroup? : ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
4471
4480
  /**
4472
4481
  * Fires when row locking is disabled.
4473
4482
  * @param {object} event Event object
@@ -4534,7 +4543,7 @@ export type BryntumSchedulerProBaseProps = {
4534
4543
  cellEditFeature? : object|boolean|string|SchedulerProCellEdit|SchedulerProCellEditConfig
4535
4544
  /**
4536
4545
  * Right click to display context menu for cells. To invoke the cell menu in a keyboard-accessible manner, use the
4537
- * `SPACE` key when the cell is focused.
4546
+ * <kbd>Space</kbd> key when the cell is focused.
4538
4547
  * ...
4539
4548
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellMenu)
4540
4549
  */
@@ -4631,8 +4640,8 @@ export type BryntumSchedulerProBaseProps = {
4631
4640
  */
4632
4641
  eventBufferFeature? : object|boolean|string|EventBuffer|EventBufferConfig
4633
4642
  /**
4634
- * Allow using <kbd>Ctrl</kbd>/<kbd>CMD</kbd> + <kbd>C</kbd>/<kbd>X</kbd> and <kbd>Ctrl</kbd>/<kbd>CMD</kbd> +
4635
- * <kbd>V</kbd> to copy/cut and paste events.
4643
+ * Allow using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>C</kbd>, <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>X</kbd> and
4644
+ * <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>V</kbd> to copy/cut and paste events.
4636
4645
  * ...
4637
4646
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Scheduler/feature/EventCopyPaste)
4638
4647
  */
@@ -4753,8 +4762,8 @@ export type BryntumSchedulerProBaseProps = {
4753
4762
  filterBarFeature? : object|boolean|string|FilterBar|FilterBarConfig
4754
4763
  /**
4755
4764
  * Enables rendering and handling of row groups. The actual grouping is done in the store, but triggered by
4756
- * <kbd>shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4757
- * one anywhere on grid). Use <kbd>shift</kbd> + <kbd>alt</kbd> + click, or the context menu, to remove a column
4765
+ * <kbd>Shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4766
+ * one anywhere on grid). Use <kbd>Shift</kbd> + <kbd>Alt</kbd> + click, or the context menu, to remove a column
4758
4767
  * grouper.
4759
4768
  * ...
4760
4769
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/Group)
@@ -5711,6 +5720,7 @@ export class BryntumSchedulerProBase extends React.Component<BryntumSchedulerPro
5711
5720
  'onToggleNode',
5712
5721
  'onToolClick',
5713
5722
  'onTransactionChange',
5723
+ 'onTreeGroup',
5714
5724
  'onUnlockRows',
5715
5725
  'onUnsplit',
5716
5726
  'onVisibleDateRangeChange',
@@ -181,7 +181,7 @@ export type BryntumSchedulingDirectionPickerProps = {
181
181
  contentElementCls? : string|object
182
182
  /**
183
183
  * If configured as `true`, this means that when an unmatched string is typed into the
184
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
184
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
185
185
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-displayField).
186
186
  * ...
187
187
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/SchedulerPro/widget/SchedulingDirectionPicker#config-createOnUnmatched)
@@ -676,7 +676,7 @@ export type BryntumSchedulingDirectionPickerProps = {
676
676
  required? : boolean
677
677
  /**
678
678
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
679
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
679
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
680
680
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
681
681
  * behaviour will be activated.
682
682
  */
@@ -188,7 +188,7 @@ export type BryntumSchedulingModePickerProps = {
188
188
  contentElementCls? : string|object
189
189
  /**
190
190
  * If configured as `true`, this means that when an unmatched string is typed into the
191
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
191
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
192
192
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-displayField).
193
193
  * ...
194
194
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/SchedulerPro/widget/SchedulingModePicker#config-createOnUnmatched)
@@ -683,7 +683,7 @@ export type BryntumSchedulingModePickerProps = {
683
683
  required? : boolean
684
684
  /**
685
685
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
686
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
686
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
687
687
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
688
688
  * behaviour will be activated.
689
689
  */
@@ -480,7 +480,7 @@ export type BryntumSlideToggleProps = {
480
480
  required? : boolean
481
481
  /**
482
482
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
483
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
483
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
484
484
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
485
485
  * behaviour will be activated.
486
486
  */
@@ -491,7 +491,7 @@ export type BryntumSliderProps = {
491
491
  unit? : string
492
492
  /**
493
493
  * Initial value.
494
- * `String` value allows to link value by reference name.
494
+ * `String` value allows linking value by reference name.
495
495
  * ...
496
496
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Core/widget/Slider#config-value)
497
497
  */
@@ -562,7 +562,7 @@ export type BryntumStartDateFieldProps = {
562
562
  required? : boolean
563
563
  /**
564
564
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
565
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
565
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
566
566
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
567
567
  * behaviour will be activated.
568
568
  */
@@ -493,7 +493,7 @@ export type BryntumTextAreaFieldProps = {
493
493
  resize? : 'none'|'both'|'horizontal'|'vertical'
494
494
  /**
495
495
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
496
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
496
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
497
497
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
498
498
  * behaviour will be activated.
499
499
  */
@@ -508,7 +508,7 @@ export type BryntumTextAreaPickerFieldProps = {
508
508
  resize? : 'none'|'both'|'horizontal'|'vertical'
509
509
  /**
510
510
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
511
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
511
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
512
512
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
513
513
  * behaviour will be activated.
514
514
  */
@@ -497,7 +497,7 @@ export type BryntumTextFieldProps = {
497
497
  required? : boolean
498
498
  /**
499
499
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
500
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
500
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
501
501
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
502
502
  * behaviour will be activated.
503
503
  */
@@ -534,7 +534,7 @@ export type BryntumTimeFieldProps = {
534
534
  required? : boolean
535
535
  /**
536
536
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
537
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
537
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
538
538
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
539
539
  * behaviour will be activated.
540
540
  */
@@ -419,7 +419,7 @@ export type BryntumTimelineProps = {
419
419
  */
420
420
  emptyText? : string|EmptyTextDomConfig
421
421
  /**
422
- * Allow using [Delete] and [Backspace] to remove events/assignments
422
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
423
423
  */
424
424
  enableDeleteKey? : boolean
425
425
  /**
@@ -520,8 +520,8 @@ export type BryntumTimelineProps = {
520
520
  * @param {'tonal','filled','bordered','traced','outlined','indented','line','dashed','minimal','rounded','calendar','interday','gantt',null} detail.renderData.eventStyle The `eventStyle` of the event. Use this to apply custom styles to the event DOM element
521
521
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
522
522
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
523
- * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents.
524
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
523
+ * @param {DomConfig[]} detail.renderData.children An array of DOM configs used as children to the `b-sch-event` element. Can be populated with additional DOM configs to have more control over contents. <h3>Using JSX (React)</h3> When using the Bryntum React wrapper, the event renderer can return JSX elements: ```javascript eventRenderer({ eventRecord, resourceRecord, renderData }) { return &lt;MyEventComponent event={eventRecord} resource={resourceRecord} />; } ``` *Using JSX in the event renderer creates a React portal for each rendered event. For schedulers with many visible events or frequently re-rendered views, this may impact scrolling performance compared to returning plain strings or [DomConfig](https://bryntum.com/products/gantt/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
524
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
525
525
  */
526
526
  eventRenderer? : (detail: { eventRecord: SchedulerEventModel, resourceRecord: SchedulerResourceModel, assignmentRecord: SchedulerAssignmentModel, scheduler: Scheduler, renderData: { event: SchedulerEventModel, cls: DomClassList|string, wrapperCls: DomClassList|string, iconCls: DomClassList|string, left: number, width: number, height: number, style: string|Record<string, string>, wrapperStyle: string|Record<string, string>, eventStyle: 'tonal'|'filled'|'bordered'|'traced'|'outlined'|'indented'|'line'|'dashed'|'minimal'|'rounded'|'calendar'|'interday'|'gantt'|null, eventColor: string, ariaLabel: string, children: DomConfig[] } }) => string|DomConfig|DomConfig[]
527
527
  /**
@@ -1638,7 +1638,7 @@ export type BryntumTimelineProps = {
1638
1638
  */
1639
1639
  onAssignmentSelectionChange? : ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: SchedulerAssignmentModel[], deselected: SchedulerAssignmentModel[], selection: SchedulerAssignmentModel[] }) => void)|string
1640
1640
  /**
1641
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
1641
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
1642
1642
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
1643
1643
  * case records should be "manually" removed after confirmation:
1644
1644
  * ...
@@ -1696,7 +1696,7 @@ export type BryntumTimelineProps = {
1696
1696
  */
1697
1697
  onBeforeCellEditStart? : ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
1698
1698
  /**
1699
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
1699
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
1700
1700
  * buttons while [autoEdit](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
1701
1701
  * @param {object} event Event object
1702
1702
  * @param {Grid.view.Grid} event.source Owner grid
@@ -1888,7 +1888,7 @@ export type BryntumTimelineProps = {
1888
1888
  */
1889
1889
  onBeforeEventAdd? : ((event: { source: Scheduler, eventRecord: SchedulerEventModel, resourceRecords: SchedulerResourceModel[], assignmentRecords: SchedulerAssignmentModel[] }) => Promise<boolean>|boolean|void)|string
1890
1890
  /**
1891
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
1891
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
1892
1892
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
1893
1893
  * for async vetoing).
1894
1894
  * ...
@@ -3252,19 +3252,20 @@ export type BryntumTimelineProps = {
3252
3252
  * @param {Scheduler.model.SchedulerEventModel[]} event.originalEventRecords The event records that were copied
3253
3253
  * @param {Scheduler.model.SchedulerAssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
3254
3254
  * @param {Date} event.date The paste date
3255
- * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record
3255
+ * @param {Scheduler.model.SchedulerResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
3256
+ * @param {Scheduler.model.SchedulerResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
3256
3257
  * @param {boolean} event.isCut `true` if this is a cut action
3257
3258
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
3258
3259
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
3259
3260
  */
3260
- onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3261
+ onPasteNotAllowed? : ((event: { source: Scheduler, eventRecords: SchedulerEventModel[], assignmentRecords: SchedulerAssignmentModel[], originalEventRecords: SchedulerEventModel[], originalAssignmentRecords: SchedulerAssignmentModel[], date: Date, resourceRecord: SchedulerResourceModel, resourceRecords: SchedulerResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
3261
3262
  /**
3262
3263
  * Fires on the owning Grid when export has finished
3263
3264
  * @param {object} event Event object
3264
3265
  * @param {Response} event.response Optional response, if received
3265
3266
  * @param {Error} event.error Optional error, if exception occurred
3266
3267
  */
3267
- onPdfExport? : ((event: { response?: any, error?: Error }) => void)|string
3268
+ onPdfExport? : ((event: { response?: Response, error?: Error }) => void)|string
3268
3269
  /**
3269
3270
  * Fired after the [viewPreset](https://bryntum.com/products/gantt/docs/api/Scheduler/view/mixin/TimelineViewPresets#config-viewPreset) has changed.
3270
3271
  * @param {object} event Event object
@@ -4067,6 +4068,14 @@ export type BryntumTimelineProps = {
4067
4068
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
4068
4069
  */
4069
4070
  onToolClick? : ((event: { source: Tool, tool: Tool }) => void)|string
4071
+ /**
4072
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
4073
+ * @param {object} event Event object
4074
+ * @param {Grid.view.Grid} event.source The grid instance
4075
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
4076
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
4077
+ */
4078
+ onTreeGroup? : ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
4070
4079
  /**
4071
4080
  * Fires when row locking is disabled.
4072
4081
  * @param {object} event Event object
@@ -4126,7 +4135,7 @@ export type BryntumTimelineProps = {
4126
4135
  cellEditFeature? : object|boolean|string|GridCellEdit|GridCellEditConfig
4127
4136
  /**
4128
4137
  * Right click to display context menu for cells. To invoke the cell menu in a keyboard-accessible manner, use the
4129
- * `SPACE` key when the cell is focused.
4138
+ * <kbd>Space</kbd> key when the cell is focused.
4130
4139
  * ...
4131
4140
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellMenu)
4132
4141
  */
@@ -4218,8 +4227,8 @@ export type BryntumTimelineProps = {
4218
4227
  */
4219
4228
  dependencyMenuFeature? : object|boolean|string|DependencyMenu|DependencyMenuConfig
4220
4229
  /**
4221
- * Allow using <kbd>Ctrl</kbd>/<kbd>CMD</kbd> + <kbd>C</kbd>/<kbd>X</kbd> and <kbd>Ctrl</kbd>/<kbd>CMD</kbd> +
4222
- * <kbd>V</kbd> to copy/cut and paste events.
4230
+ * Allow using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>C</kbd>, <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>X</kbd> and
4231
+ * <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>V</kbd> to copy/cut and paste events.
4223
4232
  * ...
4224
4233
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Scheduler/feature/EventCopyPaste)
4225
4234
  */
@@ -4321,8 +4330,8 @@ export type BryntumTimelineProps = {
4321
4330
  filterBarFeature? : object|boolean|string|FilterBar|FilterBarConfig
4322
4331
  /**
4323
4332
  * Enables rendering and handling of row groups. The actual grouping is done in the store, but triggered by
4324
- * <kbd>shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4325
- * one anywhere on grid). Use <kbd>shift</kbd> + <kbd>alt</kbd> + click, or the context menu, to remove a column
4333
+ * <kbd>Shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
4334
+ * one anywhere on grid). Use <kbd>Shift</kbd> + <kbd>Alt</kbd> + click, or the context menu, to remove a column
4326
4335
  * grouper.
4327
4336
  * ...
4328
4337
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/Group)
@@ -5069,6 +5078,7 @@ export class BryntumTimeline extends React.Component<BryntumTimelineProps> {
5069
5078
  'onToggleGroup',
5070
5079
  'onToggleNode',
5071
5080
  'onToolClick',
5081
+ 'onTreeGroup',
5072
5082
  'onUnlockRows',
5073
5083
  'onUnsplit',
5074
5084
  'onVisibleDateRangeChange',
@@ -883,7 +883,7 @@ export type BryntumTimelineHistogramProps = {
883
883
  rootElement? : ShadowRoot|HTMLElement
884
884
  /**
885
885
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
886
- * overriden by specifying a [rowHeight](https://bryntum.com/products/gantt/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
886
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/gantt/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
887
887
  * a column [renderer](https://bryntum.com/products/gantt/docs/api/Grid/column/Column#config-renderer).
888
888
  * ...
889
889
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Scheduler/view/TimelineHistogram#config-rowHeight)
@@ -1226,7 +1226,7 @@ export type BryntumTimelineHistogramProps = {
1226
1226
 
1227
1227
  // Events
1228
1228
  /**
1229
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
1229
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
1230
1230
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
1231
1231
  * case records should be "manually" removed after confirmation:
1232
1232
  * ...
@@ -1263,7 +1263,7 @@ export type BryntumTimelineHistogramProps = {
1263
1263
  */
1264
1264
  onBeforeCellEditStart? : ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
1265
1265
  /**
1266
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
1266
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
1267
1267
  * buttons while [autoEdit](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
1268
1268
  * @param {object} event Event object
1269
1269
  * @param {Grid.view.Grid} event.source Owner grid
@@ -1341,7 +1341,7 @@ export type BryntumTimelineHistogramProps = {
1341
1341
  */
1342
1342
  onBeforeDestroy? : ((event: { source: Base }) => void)|string
1343
1343
  /**
1344
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
1344
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
1345
1345
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
1346
1346
  * for async vetoing).
1347
1347
  * ...
@@ -2129,7 +2129,7 @@ export type BryntumTimelineHistogramProps = {
2129
2129
  * @param {Response} event.response Optional response, if received
2130
2130
  * @param {Error} event.error Optional error, if exception occurred
2131
2131
  */
2132
- onPdfExport? : ((event: { response?: any, error?: Error }) => void)|string
2132
+ onPdfExport? : ((event: { response?: Response, error?: Error }) => void)|string
2133
2133
  /**
2134
2134
  * Fired after the [viewPreset](https://bryntum.com/products/gantt/docs/api/Scheduler/view/mixin/TimelineViewPresets#config-viewPreset) has changed.
2135
2135
  * @param {object} event Event object
@@ -2587,6 +2587,14 @@ export type BryntumTimelineHistogramProps = {
2587
2587
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
2588
2588
  */
2589
2589
  onToolClick? : ((event: { source: Tool, tool: Tool }) => void)|string
2590
+ /**
2591
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
2592
+ * @param {object} event Event object
2593
+ * @param {Grid.view.Grid} event.source The grid instance
2594
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
2595
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
2596
+ */
2597
+ onTreeGroup? : ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
2590
2598
  /**
2591
2599
  * Fires when row locking is disabled.
2592
2600
  * @param {object} event Event object
@@ -2646,7 +2654,7 @@ export type BryntumTimelineHistogramProps = {
2646
2654
  cellEditFeature? : object|boolean|string|GridCellEdit|GridCellEditConfig
2647
2655
  /**
2648
2656
  * Right click to display context menu for cells. To invoke the cell menu in a keyboard-accessible manner, use the
2649
- * `SPACE` key when the cell is focused.
2657
+ * <kbd>Space</kbd> key when the cell is focused.
2650
2658
  * ...
2651
2659
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/CellMenu)
2652
2660
  */
@@ -2754,8 +2762,8 @@ export type BryntumTimelineHistogramProps = {
2754
2762
  filterBarFeature? : object|boolean|string|FilterBar|FilterBarConfig
2755
2763
  /**
2756
2764
  * Enables rendering and handling of row groups. The actual grouping is done in the store, but triggered by
2757
- * <kbd>shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
2758
- * one anywhere on grid). Use <kbd>shift</kbd> + <kbd>alt</kbd> + click, or the context menu, to remove a column
2765
+ * <kbd>Shift</kbd> + clicking headers, or by using the context menu, or by using two finger tap (one on header,
2766
+ * one anywhere on grid). Use <kbd>Shift</kbd> + <kbd>Alt</kbd> + click, or the context menu, to remove a column
2759
2767
  * grouper.
2760
2768
  * ...
2761
2769
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/feature/Group)
@@ -3364,6 +3372,7 @@ export class BryntumTimelineHistogram extends React.Component<BryntumTimelineHis
3364
3372
  'onToggleGroup',
3365
3373
  'onToggleNode',
3366
3374
  'onToolClick',
3375
+ 'onTreeGroup',
3367
3376
  'onUnlockRows',
3368
3377
  'onUnsplit',
3369
3378
  'onVisibleDateRangeChange',
@@ -181,7 +181,7 @@ export type BryntumTreeComboProps = {
181
181
  contentElementCls? : string|object
182
182
  /**
183
183
  * If configured as `true`, this means that when an unmatched string is typed into the
184
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
184
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
185
185
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/gantt/docs/api/Core/widget/Combo#config-displayField).
186
186
  * ...
187
187
  * [View online docs...](https://bryntum.com/products/gantt/docs/api/Grid/widget/TreeCombo#config-createOnUnmatched)
@@ -676,7 +676,7 @@ export type BryntumTreeComboProps = {
676
676
  required? : boolean
677
677
  /**
678
678
  * If this field is not [readOnly](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
679
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
679
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
680
680
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/gantt/docs/api/Core/widget/Field#config-clearable)
681
681
  * behaviour will be activated.
682
682
  */