@bryntum/scheduler-thin-trial 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 (143) hide show
  1. package/fluent2-dark.css +31 -31
  2. package/high-contrast-dark.css +32 -32
  3. package/lib/crud/AbstractCrudManagerMixin.js +1 -1
  4. package/lib/data/mixin/EventStoreMixin.js +1 -1
  5. package/lib/data/mixin/RecurringTimeSpansMixin.js +1 -1
  6. package/lib/feature/EventCopyPaste.js +1 -1
  7. package/lib/feature/EventDrag.js +1 -1
  8. package/lib/feature/EventEdit.js +1 -1
  9. package/lib/feature/EventResize.css +2 -2
  10. package/lib/feature/LockRows.js +1 -1
  11. package/lib/feature/ResourceMenu.js +1 -1
  12. package/lib/feature/ScheduleContext.js +1 -1
  13. package/lib/feature/SimpleEventEdit.js +1 -1
  14. package/lib/feature/Split.js +1 -1
  15. package/lib/feature/TreeSummary.js +1 -1
  16. package/lib/feature/base/DragBase.js +1 -1
  17. package/lib/feature/base/EditBase.js +1 -1
  18. package/lib/feature/base/ResourceTimeRangesBase.js +1 -1
  19. package/lib/feature/export/exporter/SchedulerExporterMixin.js +1 -1
  20. package/lib/feature/export/exporter/SinglePageUnscaledExporter.js +1 -1
  21. package/lib/feature/mixin/DependencyCreation.js +1 -1
  22. package/lib/localization/Ar.js +2 -1
  23. package/lib/localization/Bg.js +2 -1
  24. package/lib/localization/Ca.js +2 -1
  25. package/lib/localization/Cs.js +2 -1
  26. package/lib/localization/Da.js +2 -1
  27. package/lib/localization/De.js +2 -1
  28. package/lib/localization/El.js +2 -1
  29. package/lib/localization/En.js +2 -1
  30. package/lib/localization/EnGb.js +2 -1
  31. package/lib/localization/Es.js +2 -1
  32. package/lib/localization/Et.js +2 -1
  33. package/lib/localization/Eu.js +2 -1
  34. package/lib/localization/Fi.js +2 -1
  35. package/lib/localization/FrFr.js +2 -1
  36. package/lib/localization/Gl.js +2 -1
  37. package/lib/localization/He.js +2 -1
  38. package/lib/localization/Hi.js +2 -1
  39. package/lib/localization/Hr.js +2 -1
  40. package/lib/localization/Hu.js +2 -1
  41. package/lib/localization/Id.js +2 -1
  42. package/lib/localization/It.js +2 -1
  43. package/lib/localization/Ja.js +2 -1
  44. package/lib/localization/Kk.js +2 -1
  45. package/lib/localization/Ko.js +2 -1
  46. package/lib/localization/Lt.js +2 -1
  47. package/lib/localization/Lv.js +2 -1
  48. package/lib/localization/Ms.js +2 -1
  49. package/lib/localization/Nl.js +2 -1
  50. package/lib/localization/No.js +2 -1
  51. package/lib/localization/Pl.js +2 -1
  52. package/lib/localization/Pt.js +2 -1
  53. package/lib/localization/PtBr.js +2 -1
  54. package/lib/localization/Ro.js +2 -1
  55. package/lib/localization/Ru.js +2 -1
  56. package/lib/localization/Sk.js +2 -1
  57. package/lib/localization/Sl.js +2 -1
  58. package/lib/localization/Sr.js +2 -1
  59. package/lib/localization/SrRs.js +2 -1
  60. package/lib/localization/SvSE.js +2 -1
  61. package/lib/localization/Th.js +2 -1
  62. package/lib/localization/Tr.js +2 -1
  63. package/lib/localization/Uk.js +2 -1
  64. package/lib/localization/Vi.js +2 -1
  65. package/lib/localization/ZhCn.js +2 -1
  66. package/lib/localization/ZhTw.js +2 -1
  67. package/lib/model/RecurrenceModel.js +1 -1
  68. package/lib/model/TimeSpan.js +1 -1
  69. package/lib/model/mixin/EventModelMixin.js +1 -1
  70. package/lib/model/mixin/RecurringTimeSpan.js +1 -1
  71. package/lib/view/ResourceHeader.js +1 -1
  72. package/lib/view/SchedulerBase.js +1 -1
  73. package/lib/view/TimelineBase.js +1 -1
  74. package/lib/view/mixin/EventNavigation.js +1 -1
  75. package/lib/view/mixin/EventSelection.js +1 -1
  76. package/lib/view/mixin/RecurringEvents.js +1 -1
  77. package/lib/view/mixin/SchedulerDom.js +1 -1
  78. package/lib/view/mixin/SchedulerEventRendering.js +1 -1
  79. package/lib/view/mixin/SchedulerScroll.js +1 -1
  80. package/lib/view/mixin/TimelineDomEvents.js +1 -1
  81. package/lib/view/mixin/TimelineViewPresets.js +1 -1
  82. package/lib/view/mixin/TimelineZoomable.js +1 -1
  83. package/lib/view/orientation/HorizontalRendering.js +1 -1
  84. package/lib/view/orientation/VerticalRendering.js +1 -1
  85. package/lib/view/recurrence/RecurrenceEditorPanel.js +1 -1
  86. package/lib/view/recurrence/RecurrenceLegendButton.js +1 -1
  87. package/lib/widget/EventColorField.js +1 -1
  88. package/lib/widget/SchedulerDatePicker.css +1 -1
  89. package/lib/widget/ViewPresetCombo.js +1 -1
  90. package/locales/scheduler.locale.Ar.js +1 -1
  91. package/locales/scheduler.locale.Bg.js +1 -1
  92. package/locales/scheduler.locale.Ca.js +1 -1
  93. package/locales/scheduler.locale.Cs.js +1 -1
  94. package/locales/scheduler.locale.Da.js +1 -1
  95. package/locales/scheduler.locale.De.js +1 -1
  96. package/locales/scheduler.locale.El.js +1 -1
  97. package/locales/scheduler.locale.En.js +1 -1
  98. package/locales/scheduler.locale.EnGb.js +1 -1
  99. package/locales/scheduler.locale.Es.js +1 -1
  100. package/locales/scheduler.locale.Et.js +1 -1
  101. package/locales/scheduler.locale.Eu.js +1 -1
  102. package/locales/scheduler.locale.Fi.js +1 -1
  103. package/locales/scheduler.locale.FrFr.js +1 -1
  104. package/locales/scheduler.locale.Gl.js +1 -1
  105. package/locales/scheduler.locale.He.js +1 -1
  106. package/locales/scheduler.locale.Hi.js +1 -1
  107. package/locales/scheduler.locale.Hr.js +1 -1
  108. package/locales/scheduler.locale.Hu.js +1 -1
  109. package/locales/scheduler.locale.Id.js +1 -1
  110. package/locales/scheduler.locale.It.js +1 -1
  111. package/locales/scheduler.locale.Ja.js +1 -1
  112. package/locales/scheduler.locale.Kk.js +1 -1
  113. package/locales/scheduler.locale.Ko.js +1 -1
  114. package/locales/scheduler.locale.Lt.js +1 -1
  115. package/locales/scheduler.locale.Lv.js +1 -1
  116. package/locales/scheduler.locale.Ms.js +1 -1
  117. package/locales/scheduler.locale.Nl.js +1 -1
  118. package/locales/scheduler.locale.No.js +1 -1
  119. package/locales/scheduler.locale.Pl.js +1 -1
  120. package/locales/scheduler.locale.Pt.js +1 -1
  121. package/locales/scheduler.locale.PtBr.js +1 -1
  122. package/locales/scheduler.locale.Ro.js +1 -1
  123. package/locales/scheduler.locale.Ru.js +1 -1
  124. package/locales/scheduler.locale.Sk.js +1 -1
  125. package/locales/scheduler.locale.Sl.js +1 -1
  126. package/locales/scheduler.locale.Sr.js +1 -1
  127. package/locales/scheduler.locale.SrRs.js +1 -1
  128. package/locales/scheduler.locale.SvSE.js +1 -1
  129. package/locales/scheduler.locale.Th.js +1 -1
  130. package/locales/scheduler.locale.Tr.js +1 -1
  131. package/locales/scheduler.locale.Uk.js +1 -1
  132. package/locales/scheduler.locale.Vi.js +1 -1
  133. package/locales/scheduler.locale.ZhCn.js +1 -1
  134. package/locales/scheduler.locale.ZhTw.js +1 -1
  135. package/material3-dark.css +31 -31
  136. package/package.json +1 -1
  137. package/scheduler.css +3 -3
  138. package/scheduler.css.map +2 -2
  139. package/scheduler.d.ts +366 -156
  140. package/stockholm-dark.css +32 -32
  141. package/svalbard-dark.css +32 -32
  142. package/visby-dark.css +34 -33
  143. package/visby-light.css +2 -1
package/scheduler.d.ts CHANGED
@@ -942,6 +942,8 @@ type DurationColumnConfig = {
942
942
  headerMenuItems?: Record<string, MenuItemEntry>
943
943
  /**
944
944
  * Renderer function for the column header.
945
+ * ...
946
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/DurationColumn#config-headerRenderer)
945
947
  * @param {object} renderData
946
948
  * @param {Grid.column.Column} renderData.column This column
947
949
  * @param {HTMLElement} renderData.headerElement The header element
@@ -992,7 +994,7 @@ type DurationColumnConfig = {
992
994
  id?: string|number
993
995
  /**
994
996
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
995
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
997
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
996
998
  */
997
999
  instantUpdate?: boolean
998
1000
  /**
@@ -1177,7 +1179,7 @@ type DurationColumnConfig = {
1177
1179
  */
1178
1180
  responsiveLevels?: object
1179
1181
  /**
1180
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
1182
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
1181
1183
  * revert the field to the value it had when the edit began. If the value is *not* changed
1182
1184
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
1183
1185
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -1688,6 +1690,8 @@ type EventColorColumnConfig = {
1688
1690
  headerMenuItems?: Record<string, MenuItemEntry>
1689
1691
  /**
1690
1692
  * Renderer function for the column header.
1693
+ * ...
1694
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/EventColorColumn#config-headerRenderer)
1691
1695
  * @param {object} renderData
1692
1696
  * @param {Grid.column.Column} renderData.column This column
1693
1697
  * @param {HTMLElement} renderData.headerElement The header element
@@ -1738,7 +1742,7 @@ type EventColorColumnConfig = {
1738
1742
  id?: string|number
1739
1743
  /**
1740
1744
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
1741
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
1745
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
1742
1746
  */
1743
1747
  instantUpdate?: boolean
1744
1748
  /**
@@ -1910,7 +1914,7 @@ type EventColorColumnConfig = {
1910
1914
  */
1911
1915
  responsiveLevels?: object
1912
1916
  /**
1913
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
1917
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
1914
1918
  * revert the field to the value it had when the edit began. If the value is *not* changed
1915
1919
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
1916
1920
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -2396,6 +2400,8 @@ type ResourceCollapseColumnConfig = {
2396
2400
  headerMenuItems?: Record<string, MenuItemEntry>
2397
2401
  /**
2398
2402
  * Renderer function for the column header.
2403
+ * ...
2404
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/ResourceCollapseColumn#config-headerRenderer)
2399
2405
  * @param {object} renderData
2400
2406
  * @param {Grid.column.Column} renderData.column This column
2401
2407
  * @param {HTMLElement} renderData.headerElement The header element
@@ -2446,7 +2452,7 @@ type ResourceCollapseColumnConfig = {
2446
2452
  id?: string|number
2447
2453
  /**
2448
2454
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
2449
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
2455
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
2450
2456
  */
2451
2457
  instantUpdate?: boolean
2452
2458
  /**
@@ -2598,7 +2604,7 @@ type ResourceCollapseColumnConfig = {
2598
2604
  */
2599
2605
  responsiveLevels?: object
2600
2606
  /**
2601
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
2607
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
2602
2608
  * revert the field to the value it had when the edit began. If the value is *not* changed
2603
2609
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
2604
2610
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -3082,6 +3088,8 @@ type ResourceInfoColumnConfig = {
3082
3088
  headerMenuItems?: Record<string, MenuItemEntry>
3083
3089
  /**
3084
3090
  * Renderer function for the column header.
3091
+ * ...
3092
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/ResourceInfoColumn#config-headerRenderer)
3085
3093
  * @param {object} renderData
3086
3094
  * @param {Grid.column.Column} renderData.column This column
3087
3095
  * @param {HTMLElement} renderData.headerElement The header element
@@ -3132,7 +3140,7 @@ type ResourceInfoColumnConfig = {
3132
3140
  id?: string|number
3133
3141
  /**
3134
3142
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
3135
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
3143
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
3136
3144
  */
3137
3145
  instantUpdate?: boolean
3138
3146
  /**
@@ -3284,7 +3292,7 @@ type ResourceInfoColumnConfig = {
3284
3292
  */
3285
3293
  responsiveLevels?: object
3286
3294
  /**
3287
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
3295
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
3288
3296
  * revert the field to the value it had when the edit began. If the value is *not* changed
3289
3297
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
3290
3298
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -3823,6 +3831,8 @@ type ScaleColumnConfig = {
3823
3831
  headerMenuItems?: Record<string, MenuItemEntry>
3824
3832
  /**
3825
3833
  * Renderer function for the column header.
3834
+ * ...
3835
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/ScaleColumn#config-headerRenderer)
3826
3836
  * @param {object} renderData
3827
3837
  * @param {Grid.column.Column} renderData.column This column
3828
3838
  * @param {HTMLElement} renderData.headerElement The header element
@@ -3873,7 +3883,7 @@ type ScaleColumnConfig = {
3873
3883
  id?: string|number
3874
3884
  /**
3875
3885
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
3876
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
3886
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
3877
3887
  */
3878
3888
  instantUpdate?: boolean
3879
3889
  /**
@@ -4045,7 +4055,7 @@ type ScaleColumnConfig = {
4045
4055
  */
4046
4056
  responsiveLevels?: object
4047
4057
  /**
4048
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
4058
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
4049
4059
  * revert the field to the value it had when the edit began. If the value is *not* changed
4050
4060
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
4051
4061
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -4545,6 +4555,8 @@ type TimeAxisColumnConfig = {
4545
4555
  headerMenuItems?: Record<string, MenuItemEntry>
4546
4556
  /**
4547
4557
  * Renderer function for the column header.
4558
+ * ...
4559
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/TimeAxisColumn#config-headerRenderer)
4548
4560
  * @param {object} renderData
4549
4561
  * @param {Grid.column.Column} renderData.column This column
4550
4562
  * @param {HTMLElement} renderData.headerElement The header element
@@ -4595,7 +4607,7 @@ type TimeAxisColumnConfig = {
4595
4607
  id?: string|number
4596
4608
  /**
4597
4609
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
4598
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
4610
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
4599
4611
  */
4600
4612
  instantUpdate?: boolean
4601
4613
  /**
@@ -4771,7 +4783,7 @@ type TimeAxisColumnConfig = {
4771
4783
  */
4772
4784
  responsiveLevels?: object
4773
4785
  /**
4774
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
4786
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
4775
4787
  * revert the field to the value it had when the edit began. If the value is *not* changed
4776
4788
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
4777
4789
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -5248,6 +5260,8 @@ type VerticalTimeAxisColumnConfig = {
5248
5260
  headerMenuItems?: Record<string, MenuItemEntry>
5249
5261
  /**
5250
5262
  * Renderer function for the column header.
5263
+ * ...
5264
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/column/VerticalTimeAxisColumn#config-headerRenderer)
5251
5265
  * @param {object} renderData
5252
5266
  * @param {Grid.column.Column} renderData.column This column
5253
5267
  * @param {HTMLElement} renderData.headerElement The header element
@@ -5294,7 +5308,7 @@ type VerticalTimeAxisColumnConfig = {
5294
5308
  id?: string|number
5295
5309
  /**
5296
5310
  * Set to `true` to have the [CellEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit) feature update the record being edited live upon
5297
- * field edit instead of when editing is finished by using `TAB` or `ENTER`
5311
+ * field edit instead of when editing is finished by using <kbd>Tab</kbd> or <kbd>Enter</kbd>
5298
5312
  */
5299
5313
  instantUpdate?: boolean
5300
5314
  /**
@@ -5466,7 +5480,7 @@ type VerticalTimeAxisColumnConfig = {
5466
5480
  */
5467
5481
  responsiveLevels?: object
5468
5482
  /**
5469
- * Setting this option means that pressing the `ESCAPE` key after editing the field will
5483
+ * Setting this option means that pressing the <kbd>Escape</kbd> key after editing the field will
5470
5484
  * revert the field to the value it had when the edit began. If the value is *not* changed
5471
5485
  * from when the edit started, the input field's [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
5472
5486
  * behaviour will be activated. Finally, the edit will be canceled.
@@ -27895,8 +27909,8 @@ type EventCopyPasteConfig = {
27895
27909
  }
27896
27910
 
27897
27911
  /**
27898
- * Allow using <kbd>Ctrl</kbd>/<kbd>CMD</kbd> + <kbd>C</kbd>/<kbd>X</kbd> and <kbd>Ctrl</kbd>/<kbd>CMD</kbd> +
27899
- * <kbd>V</kbd> to copy/cut and paste events.
27912
+ * Allow using <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>C</kbd>, <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>X</kbd> and
27913
+ * <kbd>Ctrl</kbd>/<kbd>Cmd</kbd>+<kbd>V</kbd> to copy/cut and paste events.
27900
27914
  * ...
27901
27915
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/feature/EventCopyPaste)
27902
27916
  */
@@ -30651,7 +30665,7 @@ type EventTooltipConfig = {
30651
30665
  */
30652
30666
  closeAction?: 'hide'|'destroy'
30653
30667
  /**
30654
- * Close popup when `ESC` key is pressed.
30668
+ * Close popup when <kbd>Escape</kbd> key is pressed.
30655
30669
  */
30656
30670
  closeOnEscape?: boolean
30657
30671
  /**
@@ -35412,7 +35426,7 @@ export class ScrollButtons extends InstancePlugin {
35412
35426
  */
35413
35427
  type SimpleEventEditListenersTypes = {
35414
35428
  /**
35415
- * Fired when cancellation has been requested, either by `ESC`, or focus loss (if configured to cancel on blur).
35429
+ * Fired when cancellation has been requested, either by <kbd>Escape</kbd>, or focus loss (if configured to cancel on blur).
35416
35430
  * The cancellation may be vetoed, in which case, focus is moved back into the editor.
35417
35431
  * @param {object} event Event object
35418
35432
  * @param {object} event.oldValue The original value.
@@ -35421,7 +35435,7 @@ type SimpleEventEditListenersTypes = {
35421
35435
  */
35422
35436
  beforeCancel: (event: { oldValue: object, value: object, source: Editor }) => Promise<boolean>|boolean|void
35423
35437
  /**
35424
- * Fired when an edit completion has been requested, either by `ENTER`, or focus loss (if configured to complete on blur).
35438
+ * Fired when an edit completion has been requested, either by <kbd>Enter</kbd>, or focus loss (if configured to complete on blur).
35425
35439
  * The completion may be vetoed, in which case, focus is moved back into the editor.
35426
35440
  * @param {object} event Event object
35427
35441
  * @param {object} event.oldValue The original value.
@@ -35503,7 +35517,7 @@ type SimpleEventEditListeners = {
35503
35517
  */
35504
35518
  thisObj?: object
35505
35519
  /**
35506
- * Fired when cancellation has been requested, either by `ESC`, or focus loss (if configured to cancel on blur).
35520
+ * Fired when cancellation has been requested, either by <kbd>Escape</kbd>, or focus loss (if configured to cancel on blur).
35507
35521
  * The cancellation may be vetoed, in which case, focus is moved back into the editor.
35508
35522
  * @param {object} event Event object
35509
35523
  * @param {object} event.oldValue The original value.
@@ -35512,7 +35526,7 @@ type SimpleEventEditListeners = {
35512
35526
  */
35513
35527
  beforeCancel?: ((event: { oldValue: object, value: object, source: Editor }) => Promise<boolean>|boolean|void)|string
35514
35528
  /**
35515
- * Fired when an edit completion has been requested, either by `ENTER`, or focus loss (if configured to complete on blur).
35529
+ * Fired when an edit completion has been requested, either by <kbd>Enter</kbd>, or focus loss (if configured to complete on blur).
35516
35530
  * The completion may be vetoed, in which case, focus is moved back into the editor.
35517
35531
  * @param {object} event Event object
35518
35532
  * @param {object} event.oldValue The original value.
@@ -35661,7 +35675,7 @@ type SimpleEventEditConfig = {
35661
35675
  */
35662
35676
  triggerEvent?: string
35663
35677
  /**
35664
- * Fired when cancellation has been requested, either by `ESC`, or focus loss (if configured to cancel on blur).
35678
+ * Fired when cancellation has been requested, either by <kbd>Escape</kbd>, or focus loss (if configured to cancel on blur).
35665
35679
  * The cancellation may be vetoed, in which case, focus is moved back into the editor.
35666
35680
  * @param {object} event Event object
35667
35681
  * @param {object} event.oldValue The original value.
@@ -35670,7 +35684,7 @@ type SimpleEventEditConfig = {
35670
35684
  */
35671
35685
  onBeforeCancel?: ((event: { oldValue: object, value: object, source: Editor }) => Promise<boolean>|boolean|void)|string
35672
35686
  /**
35673
- * Fired when an edit completion has been requested, either by `ENTER`, or focus loss (if configured to complete on blur).
35687
+ * Fired when an edit completion has been requested, either by <kbd>Enter</kbd>, or focus loss (if configured to complete on blur).
35674
35688
  * The completion may be vetoed, in which case, focus is moved back into the editor.
35675
35689
  * @param {object} event Event object
35676
35690
  * @param {object} event.oldValue The original value.
@@ -35762,7 +35776,7 @@ export class SimpleEventEdit extends InstancePlugin {
35762
35776
  */
35763
35777
  readonly isSimpleEventEdit: boolean
35764
35778
  /**
35765
- * Fired when cancellation has been requested, either by `ESC`, or focus loss (if configured to cancel on blur).
35779
+ * Fired when cancellation has been requested, either by <kbd>Escape</kbd>, or focus loss (if configured to cancel on blur).
35766
35780
  * The cancellation may be vetoed, in which case, focus is moved back into the editor.
35767
35781
  * @param {object} event Event object
35768
35782
  * @param {object} event.oldValue The original value.
@@ -35771,7 +35785,7 @@ export class SimpleEventEdit extends InstancePlugin {
35771
35785
  */
35772
35786
  onBeforeCancel: ((event: { oldValue: object, value: object, source: Editor }) => Promise<boolean>|boolean|void)|string
35773
35787
  /**
35774
- * Fired when an edit completion has been requested, either by `ENTER`, or focus loss (if configured to complete on blur).
35788
+ * Fired when an edit completion has been requested, either by <kbd>Enter</kbd>, or focus loss (if configured to complete on blur).
35775
35789
  * The completion may be vetoed, in which case, focus is moved back into the editor.
35776
35790
  * @param {object} event Event object
35777
35791
  * @param {object} event.oldValue The original value.
@@ -39553,7 +39567,7 @@ type TooltipBaseConfig = {
39553
39567
  */
39554
39568
  closeAction?: 'hide'|'destroy'
39555
39569
  /**
39556
- * Close popup when `ESC` key is pressed.
39570
+ * Close popup when <kbd>Escape</kbd> key is pressed.
39557
39571
  */
39558
39572
  closeOnEscape?: boolean
39559
39573
  /**
@@ -40550,7 +40564,7 @@ type ExcelExporterConfig = {
40550
40564
  */
40551
40565
  localizableProperties?: string[]
40552
40566
  /**
40553
- * This hook allows to use 3rd party libraries to generate XLSX files.
40567
+ * This hook allows using 3rd party libraries to generate XLSX files.
40554
40568
  * ...
40555
40569
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/feature/experimental/ExcelExporter#config-xlsProvider)
40556
40570
  */
@@ -42190,7 +42204,7 @@ type SinglePageUnscaledExporterConfig = {
42190
42204
 
42191
42205
  /**
42192
42206
  * A single page exporter. Used by the [PdfExport](https://bryntum.com/products/scheduler/docs/api/Scheduler/feature/export/PdfExport) feature to export to single page.
42193
- * Content is exported with dimensions required to fit all requested rows and columns. This allows to generate PDF page
42207
+ * Content is exported with dimensions required to fit all requested rows and columns. This allows generating a PDF page
42194
42208
  * not constrained by the standard paper formats.
42195
42209
  * ...
42196
42210
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/feature/export/exporter/SinglePageUnscaledExporter)
@@ -44073,7 +44087,7 @@ type EventModelConfig = {
44073
44087
  */
44074
44088
  resourceId?: string|number
44075
44089
  /**
44076
- * Ids of the resources this event is associated with (can be used for for multiple assignments).
44090
+ * Ids of the resources this event is associated with (can be used for multiple assignments).
44077
44091
  * Any event using `resourceIds` will have assignments in AssignmentStore generated automatically.
44078
44092
  * It only applies if is configured with `persist: true`.
44079
44093
  * ...
@@ -44257,7 +44271,7 @@ export class EventModel extends TimeSpan {
44257
44271
  */
44258
44272
  resourceId: string|number
44259
44273
  /**
44260
- * Ids of the resources this event is associated with (can be used for for multiple assignments).
44274
+ * Ids of the resources this event is associated with (can be used for multiple assignments).
44261
44275
  * Any event using `resourceIds` will have assignments in AssignmentStore generated automatically.
44262
44276
  * It only applies if is configured with `persist: true`.
44263
44277
  */
@@ -44313,6 +44327,14 @@ export class EventModel extends TimeSpan {
44313
44327
  * @param {Date} date The date to find an exception for.
44314
44328
  */
44315
44329
  hasException(date: Date): boolean;
44330
+ /**
44331
+ * Returns `true` if this recurring timespan has any occurrences within the specified date range.
44332
+ * More efficient than [getOccurrencesForDateRange](https://bryntum.com/products/scheduler/docs/api/Scheduler/model/mixin/RecurringTimeSpan#function-getOccurrencesForDateRange) when you only need to check
44333
+ * existence, since it short-circuits on the first match without materializing all occurrences.
44334
+ * @param {Date} startDate The start date of the range.
44335
+ * @param {Date} endDate The end date of the range.
44336
+ */
44337
+ hasOccurrencesInDateRange(startDate: Date, endDate: Date): boolean;
44316
44338
  /**
44317
44339
  * Returns true if this event is assigned to a certain resource.
44318
44340
  * @param {Scheduler.model.ResourceModel,string,number} resource The resource to query for
@@ -44996,7 +45018,8 @@ export class ProjectModel extends Model {
44996
45018
  readonly lastChild: Model
44997
45019
  /**
44998
45020
  * Get a map of the modified fields in form of an object. The field´s [dataSource](https://bryntum.com/products/scheduler/docs/api/Core/data/field/DataField#config-dataSource)
44999
- * is used as the property name in the returned object. The record´s id is always included.
45021
+ * is used as the property name in the returned object. The record's id is included unless its
45022
+ * [persist](https://bryntum.com/products/scheduler/docs/api/Core/data/field/DataField#config-persist) config is `false`.
45000
45023
  */
45001
45024
  readonly modificationData: object
45002
45025
  /**
@@ -45593,6 +45616,13 @@ type RecurrenceModelConfig = {
45593
45616
  * @deprecated This field has been deprecated. Please read the [guide](https://bryntum.com/products/scheduler/docs/api/Grid/guides/data/lazyloading.md) to find out if your app needs to use the new [isFullyLoaded](https://bryntum.com/products/scheduler/docs/api/Core/data/mixin/TreeNode#field-isFullyLoaded) field.
45594
45617
  */
45595
45618
  remoteChildCount?: number
45619
+ /**
45620
+ * Set to a IANA time zone (i.e. `Europe/Stockholm`) to force the occurrences to be calculated in that
45621
+ * configured time zone.
45622
+ * ...
45623
+ * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/model/RecurrenceModel#config-timeZone)
45624
+ */
45625
+ timeZone?: string
45596
45626
  }
45597
45627
 
45598
45628
  /**
@@ -45666,6 +45696,11 @@ export class RecurrenceModel extends Model {
45666
45696
  * The timespan this recurrence is associated with.
45667
45697
  */
45668
45698
  timeSpan: TimeSpan
45699
+ /**
45700
+ * Set to a IANA time zone (i.e. `Europe/Stockholm`) to force the occurrences to be calculated in that
45701
+ * configured time zone.
45702
+ */
45703
+ timeZone: string
45669
45704
  }
45670
45705
 
45671
45706
  /**
@@ -46187,6 +46222,14 @@ export class ResourceTimeRangeModel extends TimeSpan {
46187
46222
  * @param {Date} date The date to find an exception for.
46188
46223
  */
46189
46224
  hasException(date: Date): boolean;
46225
+ /**
46226
+ * Returns `true` if this recurring timespan has any occurrences within the specified date range.
46227
+ * More efficient than [getOccurrencesForDateRange](https://bryntum.com/products/scheduler/docs/api/Scheduler/model/mixin/RecurringTimeSpan#function-getOccurrencesForDateRange) when you only need to check
46228
+ * existence, since it short-circuits on the first match without materializing all occurrences.
46229
+ * @param {Date} startDate The start date of the range.
46230
+ * @param {Date} endDate The end date of the range.
46231
+ */
46232
+ hasOccurrencesInDateRange(startDate: Date, endDate: Date): boolean;
46190
46233
  /**
46191
46234
  * Override of [Model](https://bryntum.com/products/scheduler/docs/api/Core/data/Model)'s method. If an [isOccurrence](#Scheduler/model/mixin/RecurringTimeSpan#property-isOccurrence) is passed, it is detached from
46192
46235
  * its parent recurring event. If it still has a recurrence then the recurring event is changed to stop at the
@@ -46415,6 +46458,14 @@ export class TimeRangeModel extends TimeSpan {
46415
46458
  * @param {Date} date The date to find an exception for.
46416
46459
  */
46417
46460
  hasException(date: Date): boolean;
46461
+ /**
46462
+ * Returns `true` if this recurring timespan has any occurrences within the specified date range.
46463
+ * More efficient than [getOccurrencesForDateRange](https://bryntum.com/products/scheduler/docs/api/Scheduler/model/mixin/RecurringTimeSpan#function-getOccurrencesForDateRange) when you only need to check
46464
+ * existence, since it short-circuits on the first match without materializing all occurrences.
46465
+ * @param {Date} startDate The start date of the range.
46466
+ * @param {Date} endDate The end date of the range.
46467
+ */
46468
+ hasOccurrencesInDateRange(startDate: Date, endDate: Date): boolean;
46418
46469
  /**
46419
46470
  * Override of [Model](https://bryntum.com/products/scheduler/docs/api/Core/data/Model)'s method. If an [isOccurrence](#Scheduler/model/mixin/RecurringTimeSpan#property-isOccurrence) is passed, it is detached from
46420
46471
  * its parent recurring event. If it still has a recurrence then the recurring event is changed to stop at the
@@ -46838,7 +46889,7 @@ type EventModelMixinClassConfig = {
46838
46889
  */
46839
46890
  resourceId?: string|number
46840
46891
  /**
46841
- * Ids of the resources this event is associated with (can be used for for multiple assignments).
46892
+ * Ids of the resources this event is associated with (can be used for multiple assignments).
46842
46893
  * Any event using `resourceIds` will have assignments in AssignmentStore generated automatically.
46843
46894
  * It only applies if is configured with `persist: true`.
46844
46895
  * ...
@@ -46956,7 +47007,7 @@ export class EventModelMixinClass {
46956
47007
  */
46957
47008
  resourceId: string|number
46958
47009
  /**
46959
- * Ids of the resources this event is associated with (can be used for for multiple assignments).
47010
+ * Ids of the resources this event is associated with (can be used for multiple assignments).
46960
47011
  * Any event using `resourceIds` will have assignments in AssignmentStore generated automatically.
46961
47012
  * It only applies if is configured with `persist: true`.
46962
47013
  */
@@ -47510,6 +47561,14 @@ export class RecurringTimeSpanClass {
47510
47561
  * @param {Date} date The date to find an exception for.
47511
47562
  */
47512
47563
  hasException(date: Date): boolean;
47564
+ /**
47565
+ * Returns `true` if this recurring timespan has any occurrences within the specified date range.
47566
+ * More efficient than [getOccurrencesForDateRange](https://bryntum.com/products/scheduler/docs/api/Scheduler/model/mixin/RecurringTimeSpan#function-getOccurrencesForDateRange) when you only need to check
47567
+ * existence, since it short-circuits on the first match without materializing all occurrences.
47568
+ * @param {Date} startDate The start date of the range.
47569
+ * @param {Date} endDate The end date of the range.
47570
+ */
47571
+ hasOccurrencesInDateRange(startDate: Date, endDate: Date): boolean;
47513
47572
  /**
47514
47573
  * Override of [Model](https://bryntum.com/products/scheduler/docs/api/Core/data/Model)'s method. If an [isOccurrence](#Scheduler/model/mixin/RecurringTimeSpan#property-isOccurrence) is passed, it is detached from
47515
47574
  * its parent recurring event. If it still has a recurrence then the recurring event is changed to stop at the
@@ -50947,7 +51006,7 @@ type EventEditorConfig = {
50947
51006
  */
50948
51007
  closeAction?: 'hide'|'destroy'
50949
51008
  /**
50950
- * Close popup when `ESC` key is pressed.
51009
+ * Close popup when <kbd>Escape</kbd> key is pressed.
50951
51010
  */
50952
51011
  closeOnEscape?: boolean
50953
51012
  /**
@@ -52781,7 +52840,7 @@ type SchedulerListenersTypes = {
52781
52840
  */
52782
52841
  assignmentSelectionChange: (event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void
52783
52842
  /**
52784
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
52843
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
52785
52844
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
52786
52845
  * case records should be "manually" removed after confirmation:
52787
52846
  * ...
@@ -52849,7 +52908,7 @@ type SchedulerListenersTypes = {
52849
52908
  */
52850
52909
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
52851
52910
  /**
52852
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
52911
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
52853
52912
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
52854
52913
  * @param {object} event Event object
52855
52914
  * @param {Grid.view.Grid} event.source Owner grid
@@ -53031,7 +53090,7 @@ type SchedulerListenersTypes = {
53031
53090
  */
53032
53091
  beforeEventAdd: (event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void
53033
53092
  /**
53034
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
53093
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
53035
53094
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
53036
53095
  * for async vetoing).
53037
53096
  * ...
@@ -54395,12 +54454,13 @@ type SchedulerListenersTypes = {
54395
54454
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
54396
54455
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
54397
54456
  * @param {Date} event.date The paste date
54398
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
54457
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
54458
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
54399
54459
  * @param {boolean} event.isCut `true` if this is a cut action
54400
54460
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
54401
54461
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
54402
54462
  */
54403
- pasteNotAllowed: (event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void
54463
+ pasteNotAllowed: (event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void
54404
54464
  /**
54405
54465
  * Fires on the owning Grid when export has finished
54406
54466
  * @param {object} event Event object
@@ -55210,6 +55270,14 @@ type SchedulerListenersTypes = {
55210
55270
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
55211
55271
  */
55212
55272
  toolClick: (event: { source: Tool, tool: Tool }) => void
55273
+ /**
55274
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
55275
+ * @param {object} event Event object
55276
+ * @param {Grid.view.Grid} event.source The grid instance
55277
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
55278
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
55279
+ */
55280
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
55213
55281
  /**
55214
55282
  * Fires when row locking is disabled.
55215
55283
  * @param {object} event Event object
@@ -55318,7 +55386,7 @@ type SchedulerListeners = {
55318
55386
  */
55319
55387
  assignmentSelectionChange?: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
55320
55388
  /**
55321
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
55389
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
55322
55390
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
55323
55391
  * case records should be "manually" removed after confirmation:
55324
55392
  * ...
@@ -55386,7 +55454,7 @@ type SchedulerListeners = {
55386
55454
  */
55387
55455
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
55388
55456
  /**
55389
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
55457
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
55390
55458
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
55391
55459
  * @param {object} event Event object
55392
55460
  * @param {Grid.view.Grid} event.source Owner grid
@@ -55568,7 +55636,7 @@ type SchedulerListeners = {
55568
55636
  */
55569
55637
  beforeEventAdd?: ((event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void)|string
55570
55638
  /**
55571
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
55639
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
55572
55640
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
55573
55641
  * for async vetoing).
55574
55642
  * ...
@@ -56932,12 +57000,13 @@ type SchedulerListeners = {
56932
57000
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
56933
57001
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
56934
57002
  * @param {Date} event.date The paste date
56935
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
57003
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
57004
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
56936
57005
  * @param {boolean} event.isCut `true` if this is a cut action
56937
57006
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
56938
57007
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
56939
57008
  */
56940
- pasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
57009
+ pasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
56941
57010
  /**
56942
57011
  * Fires on the owning Grid when export has finished
56943
57012
  * @param {object} event Event object
@@ -57747,6 +57816,14 @@ type SchedulerListeners = {
57747
57816
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
57748
57817
  */
57749
57818
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
57819
+ /**
57820
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
57821
+ * @param {object} event Event object
57822
+ * @param {Grid.view.Grid} event.source The grid instance
57823
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
57824
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
57825
+ */
57826
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
57750
57827
  /**
57751
57828
  * Fires when row locking is disabled.
57752
57829
  * @param {object} event Event object
@@ -58338,7 +58415,7 @@ type SchedulerConfig = {
58338
58415
  */
58339
58416
  emptyText?: string|EmptyTextDomConfig
58340
58417
  /**
58341
- * Allow using [Delete] and [Backspace] to remove events/assignments
58418
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
58342
58419
  */
58343
58420
  enableDeleteKey?: boolean
58344
58421
  /**
@@ -58439,8 +58516,8 @@ type SchedulerConfig = {
58439
58516
  * @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
58440
58517
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
58441
58518
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
58442
- * @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.
58443
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
58519
+ * @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/scheduler/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
58520
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
58444
58521
  */
58445
58522
  eventRenderer?: (detail: { eventRecord: EventModel, resourceRecord: ResourceModel, assignmentRecord: AssignmentModel, scheduler: Scheduler, renderData: { event: EventModel, 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[]
58446
58523
  /**
@@ -59580,7 +59657,7 @@ type SchedulerConfig = {
59580
59657
  */
59581
59658
  onAssignmentSelectionChange?: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
59582
59659
  /**
59583
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
59660
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
59584
59661
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
59585
59662
  * case records should be "manually" removed after confirmation:
59586
59663
  * ...
@@ -59648,7 +59725,7 @@ type SchedulerConfig = {
59648
59725
  */
59649
59726
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
59650
59727
  /**
59651
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
59728
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
59652
59729
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
59653
59730
  * @param {object} event Event object
59654
59731
  * @param {Grid.view.Grid} event.source Owner grid
@@ -59830,7 +59907,7 @@ type SchedulerConfig = {
59830
59907
  */
59831
59908
  onBeforeEventAdd?: ((event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void)|string
59832
59909
  /**
59833
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
59910
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
59834
59911
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
59835
59912
  * for async vetoing).
59836
59913
  * ...
@@ -61194,12 +61271,13 @@ type SchedulerConfig = {
61194
61271
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
61195
61272
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
61196
61273
  * @param {Date} event.date The paste date
61197
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
61274
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
61275
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
61198
61276
  * @param {boolean} event.isCut `true` if this is a cut action
61199
61277
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
61200
61278
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
61201
61279
  */
61202
- onPasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
61280
+ onPasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
61203
61281
  /**
61204
61282
  * Fires on the owning Grid when export has finished
61205
61283
  * @param {object} event Event object
@@ -62009,6 +62087,14 @@ type SchedulerConfig = {
62009
62087
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
62010
62088
  */
62011
62089
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
62090
+ /**
62091
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
62092
+ * @param {object} event Event object
62093
+ * @param {Grid.view.Grid} event.source The grid instance
62094
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
62095
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
62096
+ */
62097
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
62012
62098
  /**
62013
62099
  * Fires when row locking is disabled.
62014
62100
  * @param {object} event Event object
@@ -62067,7 +62153,7 @@ export class Scheduler extends SchedulerBase {
62067
62153
  */
62068
62154
  onAssignmentSelectionChange: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
62069
62155
  /**
62070
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
62156
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
62071
62157
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
62072
62158
  * case records should be "manually" removed after confirmation:
62073
62159
  * ...
@@ -62098,7 +62184,7 @@ export class Scheduler extends SchedulerBase {
62098
62184
  */
62099
62185
  onBeforeDestroy: ((event: { source: Base }) => void)|string
62100
62186
  /**
62101
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
62187
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
62102
62188
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
62103
62189
  * for async vetoing).
62104
62190
  * ...
@@ -62750,7 +62836,7 @@ type SchedulerBaseListenersTypes = {
62750
62836
  */
62751
62837
  assignmentSelectionChange: (event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void
62752
62838
  /**
62753
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
62839
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
62754
62840
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
62755
62841
  * case records should be "manually" removed after confirmation:
62756
62842
  * ...
@@ -62818,7 +62904,7 @@ type SchedulerBaseListenersTypes = {
62818
62904
  */
62819
62905
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
62820
62906
  /**
62821
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
62907
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
62822
62908
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
62823
62909
  * @param {object} event Event object
62824
62910
  * @param {Grid.view.Grid} event.source Owner grid
@@ -63000,7 +63086,7 @@ type SchedulerBaseListenersTypes = {
63000
63086
  */
63001
63087
  beforeEventAdd: (event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void
63002
63088
  /**
63003
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
63089
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
63004
63090
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
63005
63091
  * for async vetoing).
63006
63092
  * ...
@@ -64364,12 +64450,13 @@ type SchedulerBaseListenersTypes = {
64364
64450
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
64365
64451
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
64366
64452
  * @param {Date} event.date The paste date
64367
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
64453
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
64454
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
64368
64455
  * @param {boolean} event.isCut `true` if this is a cut action
64369
64456
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
64370
64457
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
64371
64458
  */
64372
- pasteNotAllowed: (event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void
64459
+ pasteNotAllowed: (event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void
64373
64460
  /**
64374
64461
  * Fires on the owning Grid when export has finished
64375
64462
  * @param {object} event Event object
@@ -65179,6 +65266,14 @@ type SchedulerBaseListenersTypes = {
65179
65266
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
65180
65267
  */
65181
65268
  toolClick: (event: { source: Tool, tool: Tool }) => void
65269
+ /**
65270
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
65271
+ * @param {object} event Event object
65272
+ * @param {Grid.view.Grid} event.source The grid instance
65273
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
65274
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
65275
+ */
65276
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
65182
65277
  /**
65183
65278
  * Fires when row locking is disabled.
65184
65279
  * @param {object} event Event object
@@ -65287,7 +65382,7 @@ type SchedulerBaseListeners = {
65287
65382
  */
65288
65383
  assignmentSelectionChange?: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
65289
65384
  /**
65290
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
65385
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
65291
65386
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
65292
65387
  * case records should be "manually" removed after confirmation:
65293
65388
  * ...
@@ -65355,7 +65450,7 @@ type SchedulerBaseListeners = {
65355
65450
  */
65356
65451
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
65357
65452
  /**
65358
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
65453
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
65359
65454
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
65360
65455
  * @param {object} event Event object
65361
65456
  * @param {Grid.view.Grid} event.source Owner grid
@@ -65537,7 +65632,7 @@ type SchedulerBaseListeners = {
65537
65632
  */
65538
65633
  beforeEventAdd?: ((event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void)|string
65539
65634
  /**
65540
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
65635
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
65541
65636
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
65542
65637
  * for async vetoing).
65543
65638
  * ...
@@ -66901,12 +66996,13 @@ type SchedulerBaseListeners = {
66901
66996
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
66902
66997
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
66903
66998
  * @param {Date} event.date The paste date
66904
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
66999
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
67000
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
66905
67001
  * @param {boolean} event.isCut `true` if this is a cut action
66906
67002
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
66907
67003
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
66908
67004
  */
66909
- pasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
67005
+ pasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
66910
67006
  /**
66911
67007
  * Fires on the owning Grid when export has finished
66912
67008
  * @param {object} event Event object
@@ -67716,6 +67812,14 @@ type SchedulerBaseListeners = {
67716
67812
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
67717
67813
  */
67718
67814
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
67815
+ /**
67816
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
67817
+ * @param {object} event Event object
67818
+ * @param {Grid.view.Grid} event.source The grid instance
67819
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
67820
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
67821
+ */
67822
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
67719
67823
  /**
67720
67824
  * Fires when row locking is disabled.
67721
67825
  * @param {object} event Event object
@@ -68306,7 +68410,7 @@ type SchedulerBaseConfig = {
68306
68410
  */
68307
68411
  emptyText?: string|EmptyTextDomConfig
68308
68412
  /**
68309
- * Allow using [Delete] and [Backspace] to remove events/assignments
68413
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
68310
68414
  */
68311
68415
  enableDeleteKey?: boolean
68312
68416
  /**
@@ -68407,8 +68511,8 @@ type SchedulerBaseConfig = {
68407
68511
  * @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
68408
68512
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
68409
68513
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
68410
- * @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.
68411
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
68514
+ * @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/scheduler/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
68515
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
68412
68516
  */
68413
68517
  eventRenderer?: (detail: { eventRecord: EventModel, resourceRecord: ResourceModel, assignmentRecord: AssignmentModel, scheduler: Scheduler, renderData: { event: EventModel, 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[]
68414
68518
  /**
@@ -69548,7 +69652,7 @@ type SchedulerBaseConfig = {
69548
69652
  */
69549
69653
  onAssignmentSelectionChange?: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
69550
69654
  /**
69551
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
69655
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
69552
69656
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
69553
69657
  * case records should be "manually" removed after confirmation:
69554
69658
  * ...
@@ -69616,7 +69720,7 @@ type SchedulerBaseConfig = {
69616
69720
  */
69617
69721
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
69618
69722
  /**
69619
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
69723
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
69620
69724
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
69621
69725
  * @param {object} event Event object
69622
69726
  * @param {Grid.view.Grid} event.source Owner grid
@@ -69798,7 +69902,7 @@ type SchedulerBaseConfig = {
69798
69902
  */
69799
69903
  onBeforeEventAdd?: ((event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void)|string
69800
69904
  /**
69801
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
69905
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
69802
69906
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
69803
69907
  * for async vetoing).
69804
69908
  * ...
@@ -71162,12 +71266,13 @@ type SchedulerBaseConfig = {
71162
71266
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
71163
71267
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
71164
71268
  * @param {Date} event.date The paste date
71165
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
71269
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
71270
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
71166
71271
  * @param {boolean} event.isCut `true` if this is a cut action
71167
71272
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
71168
71273
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
71169
71274
  */
71170
- onPasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
71275
+ onPasteNotAllowed?: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
71171
71276
  /**
71172
71277
  * Fires on the owning Grid when export has finished
71173
71278
  * @param {object} event Event object
@@ -71977,6 +72082,14 @@ type SchedulerBaseConfig = {
71977
72082
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
71978
72083
  */
71979
72084
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
72085
+ /**
72086
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
72087
+ * @param {object} event Event object
72088
+ * @param {Grid.view.Grid} event.source The grid instance
72089
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
72090
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
72091
+ */
72092
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
71980
72093
  /**
71981
72094
  * Fires when row locking is disabled.
71982
72095
  * @param {object} event Event object
@@ -72755,7 +72868,7 @@ export class SchedulerBase extends TimelineBase {
72755
72868
  */
72756
72869
  onAssignmentSelectionChange: ((event: { source: Scheduler, action: 'select'|'deselect'|'update'|'clear', selected: AssignmentModel[], deselected: AssignmentModel[], selection: AssignmentModel[] }) => void)|string
72757
72870
  /**
72758
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
72871
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
72759
72872
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
72760
72873
  * case records should be "manually" removed after confirmation:
72761
72874
  * ...
@@ -72894,7 +73007,7 @@ export class SchedulerBase extends TimelineBase {
72894
73007
  */
72895
73008
  onBeforeEventAdd: ((event: { source: Scheduler, eventRecord: EventModel, resourceRecords: ResourceModel[], assignmentRecords: AssignmentModel[] }) => Promise<boolean>|boolean|void)|string
72896
73009
  /**
72897
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
73010
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
72898
73011
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
72899
73012
  * for async vetoing).
72900
73013
  * ...
@@ -73666,12 +73779,13 @@ export class SchedulerBase extends TimelineBase {
73666
73779
  * @param {Scheduler.model.EventModel[]} event.originalEventRecords The event records that were copied
73667
73780
  * @param {Scheduler.model.AssignmentModel[]} event.originalAssignmentRecords The assignment records that were copied
73668
73781
  * @param {Date} event.date The paste date
73669
- * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record
73782
+ * @param {Scheduler.model.ResourceModel} event.resourceRecord The target resource record. When multiple resources are pasted to, this will be the top resource
73783
+ * @param {Scheduler.model.ResourceModel[]} event.resourceRecords All target resource records that the events would be pasted to
73670
73784
  * @param {boolean} event.isCut `true` if this is a cut action
73671
73785
  * @param {string} event.entityName 'event' to distinguish this event from other `pasteNotAllowed` events
73672
73786
  * @param {'overlappingEvents','resourceReadOnly'} event.reason A string id to use for displaying an error message to the user.
73673
73787
  */
73674
- onPasteNotAllowed: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
73788
+ onPasteNotAllowed: ((event: { source: Scheduler, eventRecords: EventModel[], assignmentRecords: AssignmentModel[], originalEventRecords: EventModel[], originalAssignmentRecords: AssignmentModel[], date: Date, resourceRecord: ResourceModel, resourceRecords: ResourceModel[], isCut: boolean, entityName: string, reason: 'overlappingEvents'|'resourceReadOnly' }) => void)|string
73675
73789
  /**
73676
73790
  * Fired after the [viewPreset](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/mixin/TimelineViewPresets#config-viewPreset) has changed.
73677
73791
  * @param {object} event Event object
@@ -74892,7 +75006,7 @@ export class SchedulerBase extends TimelineBase {
74892
75006
  */
74893
75007
  zoomToLevel(preset: number, options?: ChangePresetOptions): number|null;
74894
75008
  /**
74895
- * Sets time frame to specified range and applies zoom level which allows to fit all columns to this range.
75009
+ * Sets time frame to specified range and applies zoom level which allows fitting all columns to this range.
74896
75010
  * @param {object} config The time frame.
74897
75011
  */
74898
75012
  zoomToSpan(config: {
@@ -74912,7 +75026,7 @@ export class SchedulerBase extends TimelineBase {
74912
75026
  */
74913
75027
  type TimelineBaseListenersTypes = {
74914
75028
  /**
74915
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
75029
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
74916
75030
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
74917
75031
  * case records should be "manually" removed after confirmation:
74918
75032
  * ...
@@ -74959,7 +75073,7 @@ type TimelineBaseListenersTypes = {
74959
75073
  */
74960
75074
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
74961
75075
  /**
74962
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
75076
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
74963
75077
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
74964
75078
  * @param {object} event Event object
74965
75079
  * @param {Grid.view.Grid} event.source Owner grid
@@ -75027,7 +75141,7 @@ type TimelineBaseListenersTypes = {
75027
75141
  */
75028
75142
  beforeDestroy: (event: { source: Base }) => void
75029
75143
  /**
75030
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
75144
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
75031
75145
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
75032
75146
  * for async vetoing).
75033
75147
  * ...
@@ -76047,6 +76161,14 @@ type TimelineBaseListenersTypes = {
76047
76161
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
76048
76162
  */
76049
76163
  toolClick: (event: { source: Tool, tool: Tool }) => void
76164
+ /**
76165
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
76166
+ * @param {object} event Event object
76167
+ * @param {Grid.view.Grid} event.source The grid instance
76168
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
76169
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
76170
+ */
76171
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
76050
76172
  /**
76051
76173
  * Fires when row locking is disabled.
76052
76174
  * @param {object} event Event object
@@ -76083,7 +76205,7 @@ type TimelineBaseListeners = {
76083
76205
  */
76084
76206
  thisObj?: object
76085
76207
  /**
76086
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
76208
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
76087
76209
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
76088
76210
  * case records should be "manually" removed after confirmation:
76089
76211
  * ...
@@ -76130,7 +76252,7 @@ type TimelineBaseListeners = {
76130
76252
  */
76131
76253
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
76132
76254
  /**
76133
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
76255
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
76134
76256
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
76135
76257
  * @param {object} event Event object
76136
76258
  * @param {Grid.view.Grid} event.source Owner grid
@@ -76198,7 +76320,7 @@ type TimelineBaseListeners = {
76198
76320
  */
76199
76321
  beforeDestroy?: ((event: { source: Base }) => void)|string
76200
76322
  /**
76201
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
76323
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
76202
76324
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
76203
76325
  * for async vetoing).
76204
76326
  * ...
@@ -77218,6 +77340,14 @@ type TimelineBaseListeners = {
77218
77340
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
77219
77341
  */
77220
77342
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
77343
+ /**
77344
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
77345
+ * @param {object} event Event object
77346
+ * @param {Grid.view.Grid} event.source The grid instance
77347
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
77348
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
77349
+ */
77350
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
77221
77351
  /**
77222
77352
  * Fires when row locking is disabled.
77223
77353
  * @param {object} event Event object
@@ -78050,7 +78180,7 @@ type TimelineBaseConfig = {
78050
78180
  rootElement?: ShadowRoot|HTMLElement
78051
78181
  /**
78052
78182
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
78053
- * overriden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
78183
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
78054
78184
  * a column [renderer](https://bryntum.com/products/scheduler/docs/api/Grid/column/Column#config-renderer).
78055
78185
  * ...
78056
78186
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/TimelineBase#config-rowHeight)
@@ -78360,7 +78490,7 @@ type TimelineBaseConfig = {
78360
78490
  */
78361
78491
  zoomOnTimeAxisDoubleClick?: boolean
78362
78492
  /**
78363
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
78493
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
78364
78494
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
78365
78495
  * case records should be "manually" removed after confirmation:
78366
78496
  * ...
@@ -78407,7 +78537,7 @@ type TimelineBaseConfig = {
78407
78537
  */
78408
78538
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
78409
78539
  /**
78410
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
78540
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
78411
78541
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
78412
78542
  * @param {object} event Event object
78413
78543
  * @param {Grid.view.Grid} event.source Owner grid
@@ -78475,7 +78605,7 @@ type TimelineBaseConfig = {
78475
78605
  */
78476
78606
  onBeforeDestroy?: ((event: { source: Base }) => void)|string
78477
78607
  /**
78478
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
78608
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
78479
78609
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
78480
78610
  * for async vetoing).
78481
78611
  * ...
@@ -79495,6 +79625,14 @@ type TimelineBaseConfig = {
79495
79625
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
79496
79626
  */
79497
79627
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
79628
+ /**
79629
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
79630
+ * @param {object} event Event object
79631
+ * @param {Grid.view.Grid} event.source The grid instance
79632
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
79633
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
79634
+ */
79635
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
79498
79636
  /**
79499
79637
  * Fires when row locking is disabled.
79500
79638
  * @param {object} event Event object
@@ -79813,7 +79951,7 @@ export abstract class TimelineBase extends Grid {
79813
79951
  */
79814
79952
  features: TimelineBaseFeaturesType
79815
79953
  /**
79816
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
79954
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
79817
79955
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
79818
79956
  * case records should be "manually" removed after confirmation:
79819
79957
  * ...
@@ -79833,7 +79971,7 @@ export abstract class TimelineBase extends Grid {
79833
79971
  */
79834
79972
  onBeforeDestroy: ((event: { source: Base }) => void)|string
79835
79973
  /**
79836
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
79974
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
79837
79975
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
79838
79976
  * for async vetoing).
79839
79977
  * ...
@@ -80416,7 +80554,7 @@ export abstract class TimelineBase extends Grid {
80416
80554
  */
80417
80555
  zoomToLevel(preset: number, options?: ChangePresetOptions): number|null;
80418
80556
  /**
80419
- * Sets time frame to specified range and applies zoom level which allows to fit all columns to this range.
80557
+ * Sets time frame to specified range and applies zoom level which allows fitting all columns to this range.
80420
80558
  * @param {object} config The time frame.
80421
80559
  */
80422
80560
  zoomToSpan(config: {
@@ -80436,7 +80574,7 @@ export abstract class TimelineBase extends Grid {
80436
80574
  */
80437
80575
  type TimelineHistogramListenersTypes = {
80438
80576
  /**
80439
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
80577
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
80440
80578
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
80441
80579
  * case records should be "manually" removed after confirmation:
80442
80580
  * ...
@@ -80483,7 +80621,7 @@ type TimelineHistogramListenersTypes = {
80483
80621
  */
80484
80622
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
80485
80623
  /**
80486
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
80624
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
80487
80625
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
80488
80626
  * @param {object} event Event object
80489
80627
  * @param {Grid.view.Grid} event.source Owner grid
@@ -80551,7 +80689,7 @@ type TimelineHistogramListenersTypes = {
80551
80689
  */
80552
80690
  beforeDestroy: (event: { source: Base }) => void
80553
80691
  /**
80554
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
80692
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
80555
80693
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
80556
80694
  * for async vetoing).
80557
80695
  * ...
@@ -81797,6 +81935,14 @@ type TimelineHistogramListenersTypes = {
81797
81935
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
81798
81936
  */
81799
81937
  toolClick: (event: { source: Tool, tool: Tool }) => void
81938
+ /**
81939
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
81940
+ * @param {object} event Event object
81941
+ * @param {Grid.view.Grid} event.source The grid instance
81942
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
81943
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
81944
+ */
81945
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
81800
81946
  /**
81801
81947
  * Fires when row locking is disabled.
81802
81948
  * @param {object} event Event object
@@ -81833,7 +81979,7 @@ type TimelineHistogramListeners = {
81833
81979
  */
81834
81980
  thisObj?: object
81835
81981
  /**
81836
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
81982
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
81837
81983
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
81838
81984
  * case records should be "manually" removed after confirmation:
81839
81985
  * ...
@@ -81880,7 +82026,7 @@ type TimelineHistogramListeners = {
81880
82026
  */
81881
82027
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
81882
82028
  /**
81883
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
82029
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
81884
82030
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
81885
82031
  * @param {object} event Event object
81886
82032
  * @param {Grid.view.Grid} event.source Owner grid
@@ -81948,7 +82094,7 @@ type TimelineHistogramListeners = {
81948
82094
  */
81949
82095
  beforeDestroy?: ((event: { source: Base }) => void)|string
81950
82096
  /**
81951
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
82097
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
81952
82098
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
81953
82099
  * for async vetoing).
81954
82100
  * ...
@@ -83194,6 +83340,14 @@ type TimelineHistogramListeners = {
83194
83340
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
83195
83341
  */
83196
83342
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
83343
+ /**
83344
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
83345
+ * @param {object} event Event object
83346
+ * @param {Grid.view.Grid} event.source The grid instance
83347
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
83348
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
83349
+ */
83350
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
83197
83351
  /**
83198
83352
  * Fires when row locking is disabled.
83199
83353
  * @param {object} event Event object
@@ -84215,7 +84369,7 @@ type TimelineHistogramConfig = {
84215
84369
  rootElement?: ShadowRoot|HTMLElement
84216
84370
  /**
84217
84371
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
84218
- * overriden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
84372
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
84219
84373
  * a column [renderer](https://bryntum.com/products/scheduler/docs/api/Grid/column/Column#config-renderer).
84220
84374
  * ...
84221
84375
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/TimelineHistogram#config-rowHeight)
@@ -84559,7 +84713,7 @@ type TimelineHistogramConfig = {
84559
84713
  */
84560
84714
  zoomOnTimeAxisDoubleClick?: boolean
84561
84715
  /**
84562
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
84716
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
84563
84717
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
84564
84718
  * case records should be "manually" removed after confirmation:
84565
84719
  * ...
@@ -84606,7 +84760,7 @@ type TimelineHistogramConfig = {
84606
84760
  */
84607
84761
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
84608
84762
  /**
84609
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
84763
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
84610
84764
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
84611
84765
  * @param {object} event Event object
84612
84766
  * @param {Grid.view.Grid} event.source Owner grid
@@ -84674,7 +84828,7 @@ type TimelineHistogramConfig = {
84674
84828
  */
84675
84829
  onBeforeDestroy?: ((event: { source: Base }) => void)|string
84676
84830
  /**
84677
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
84831
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
84678
84832
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
84679
84833
  * for async vetoing).
84680
84834
  * ...
@@ -85920,6 +86074,14 @@ type TimelineHistogramConfig = {
85920
86074
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
85921
86075
  */
85922
86076
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
86077
+ /**
86078
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
86079
+ * @param {object} event Event object
86080
+ * @param {Grid.view.Grid} event.source The grid instance
86081
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
86082
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
86083
+ */
86084
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
85923
86085
  /**
85924
86086
  * Fires when row locking is disabled.
85925
86087
  * @param {object} event Event object
@@ -86696,7 +86858,7 @@ export class TimelineHistogram extends TimelineHistogramBase {
86696
86858
  readonly responsiveLevel: string
86697
86859
  /**
86698
86860
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
86699
- * overriden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
86861
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
86700
86862
  * a column [renderer](https://bryntum.com/products/scheduler/docs/api/Grid/column/Column#config-renderer).
86701
86863
  */
86702
86864
  rowHeight: number
@@ -86962,7 +87124,7 @@ export class TimelineHistogram extends TimelineHistogramBase {
86962
87124
  */
86963
87125
  zoomLevel: number
86964
87126
  /**
86965
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
87127
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
86966
87128
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
86967
87129
  * case records should be "manually" removed after confirmation:
86968
87130
  * ...
@@ -86982,7 +87144,7 @@ export class TimelineHistogram extends TimelineHistogramBase {
86982
87144
  */
86983
87145
  onBeforeDestroy: ((event: { source: Base }) => void)|string
86984
87146
  /**
86985
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
87147
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
86986
87148
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
86987
87149
  * for async vetoing).
86988
87150
  * ...
@@ -88554,7 +88716,7 @@ export class TimelineHistogram extends TimelineHistogramBase {
88554
88716
  */
88555
88717
  zoomToLevel(preset: number, options?: ChangePresetOptions): number|null;
88556
88718
  /**
88557
- * Sets time frame to specified range and applies zoom level which allows to fit all columns to this range.
88719
+ * Sets time frame to specified range and applies zoom level which allows fitting all columns to this range.
88558
88720
  * @param {object} config The time frame.
88559
88721
  */
88560
88722
  zoomToSpan(config: {
@@ -88574,7 +88736,7 @@ export class TimelineHistogram extends TimelineHistogramBase {
88574
88736
  */
88575
88737
  type TimelineHistogramBaseListenersTypes = {
88576
88738
  /**
88577
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
88739
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
88578
88740
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
88579
88741
  * case records should be "manually" removed after confirmation:
88580
88742
  * ...
@@ -88621,7 +88783,7 @@ type TimelineHistogramBaseListenersTypes = {
88621
88783
  */
88622
88784
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
88623
88785
  /**
88624
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
88786
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
88625
88787
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
88626
88788
  * @param {object} event Event object
88627
88789
  * @param {Grid.view.Grid} event.source Owner grid
@@ -88689,7 +88851,7 @@ type TimelineHistogramBaseListenersTypes = {
88689
88851
  */
88690
88852
  beforeDestroy: (event: { source: Base }) => void
88691
88853
  /**
88692
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
88854
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
88693
88855
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
88694
88856
  * for async vetoing).
88695
88857
  * ...
@@ -89750,6 +89912,14 @@ type TimelineHistogramBaseListenersTypes = {
89750
89912
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
89751
89913
  */
89752
89914
  toolClick: (event: { source: Tool, tool: Tool }) => void
89915
+ /**
89916
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
89917
+ * @param {object} event Event object
89918
+ * @param {Grid.view.Grid} event.source The grid instance
89919
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
89920
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
89921
+ */
89922
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
89753
89923
  /**
89754
89924
  * Fires when row locking is disabled.
89755
89925
  * @param {object} event Event object
@@ -89786,7 +89956,7 @@ type TimelineHistogramBaseListeners = {
89786
89956
  */
89787
89957
  thisObj?: object
89788
89958
  /**
89789
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
89959
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
89790
89960
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
89791
89961
  * case records should be "manually" removed after confirmation:
89792
89962
  * ...
@@ -89833,7 +90003,7 @@ type TimelineHistogramBaseListeners = {
89833
90003
  */
89834
90004
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
89835
90005
  /**
89836
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
90006
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
89837
90007
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
89838
90008
  * @param {object} event Event object
89839
90009
  * @param {Grid.view.Grid} event.source Owner grid
@@ -89901,7 +90071,7 @@ type TimelineHistogramBaseListeners = {
89901
90071
  */
89902
90072
  beforeDestroy?: ((event: { source: Base }) => void)|string
89903
90073
  /**
89904
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
90074
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
89905
90075
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
89906
90076
  * for async vetoing).
89907
90077
  * ...
@@ -90962,6 +91132,14 @@ type TimelineHistogramBaseListeners = {
90962
91132
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
90963
91133
  */
90964
91134
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
91135
+ /**
91136
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
91137
+ * @param {object} event Event object
91138
+ * @param {Grid.view.Grid} event.source The grid instance
91139
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
91140
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
91141
+ */
91142
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
90965
91143
  /**
90966
91144
  * Fires when row locking is disabled.
90967
91145
  * @param {object} event Event object
@@ -91911,7 +92089,7 @@ type TimelineHistogramBaseConfig = {
91911
92089
  rootElement?: ShadowRoot|HTMLElement
91912
92090
  /**
91913
92091
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
91914
- * overriden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
92092
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
91915
92093
  * a column [renderer](https://bryntum.com/products/scheduler/docs/api/Grid/column/Column#config-renderer).
91916
92094
  * ...
91917
92095
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/TimelineHistogramBase#config-rowHeight)
@@ -92241,7 +92419,7 @@ type TimelineHistogramBaseConfig = {
92241
92419
  */
92242
92420
  zoomOnTimeAxisDoubleClick?: boolean
92243
92421
  /**
92244
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
92422
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
92245
92423
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
92246
92424
  * case records should be "manually" removed after confirmation:
92247
92425
  * ...
@@ -92288,7 +92466,7 @@ type TimelineHistogramBaseConfig = {
92288
92466
  */
92289
92467
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
92290
92468
  /**
92291
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
92469
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
92292
92470
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
92293
92471
  * @param {object} event Event object
92294
92472
  * @param {Grid.view.Grid} event.source Owner grid
@@ -92356,7 +92534,7 @@ type TimelineHistogramBaseConfig = {
92356
92534
  */
92357
92535
  onBeforeDestroy?: ((event: { source: Base }) => void)|string
92358
92536
  /**
92359
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
92537
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
92360
92538
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
92361
92539
  * for async vetoing).
92362
92540
  * ...
@@ -93417,6 +93595,14 @@ type TimelineHistogramBaseConfig = {
93417
93595
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
93418
93596
  */
93419
93597
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
93598
+ /**
93599
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
93600
+ * @param {object} event Event object
93601
+ * @param {Grid.view.Grid} event.source The grid instance
93602
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
93603
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
93604
+ */
93605
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
93420
93606
  /**
93421
93607
  * Fires when row locking is disabled.
93422
93608
  * @param {object} event Event object
@@ -93474,7 +93660,7 @@ export abstract class TimelineHistogramBase extends TimelineBase {
93474
93660
  */
93475
93661
  features: TimelineHistogramBaseFeaturesType
93476
93662
  /**
93477
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
93663
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
93478
93664
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
93479
93665
  * case records should be "manually" removed after confirmation:
93480
93666
  * ...
@@ -93494,7 +93680,7 @@ export abstract class TimelineHistogramBase extends TimelineBase {
93494
93680
  */
93495
93681
  onBeforeDestroy: ((event: { source: Base }) => void)|string
93496
93682
  /**
93497
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
93683
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
93498
93684
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
93499
93685
  * for async vetoing).
93500
93686
  * ...
@@ -94338,7 +94524,7 @@ type SchedulerExportDialogConfig = {
94338
94524
  */
94339
94525
  closeAction?: 'hide'|'destroy'
94340
94526
  /**
94341
- * Close popup when `ESC` key is pressed.
94527
+ * Close popup when <kbd>Escape</kbd> key is pressed.
94342
94528
  */
94343
94529
  closeOnEscape?: boolean
94344
94530
  /**
@@ -95290,7 +95476,7 @@ export const Describable : <T extends AnyConstructor<Base>>(base : T) => AnyCons
95290
95476
  */
95291
95477
  type EventNavigationClassConfig = {
95292
95478
  /**
95293
- * Allow using [Delete] and [Backspace] to remove events/assignments
95479
+ * Allow using <kbd>Delete</kbd> and <kbd>Backspace</kbd> to remove events/assignments
95294
95480
  */
95295
95481
  enableDeleteKey?: boolean
95296
95482
  /**
@@ -95611,7 +95797,7 @@ type RecurringEventsClassConfig = {
95611
95797
  */
95612
95798
  recurrenceConfirmationPopup?: RecurrenceConfirmationPopupConfig|RecurrenceConfirmationPopup
95613
95799
  /**
95614
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
95800
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
95615
95801
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
95616
95802
  * case records should be "manually" removed after confirmation:
95617
95803
  * ...
@@ -95625,7 +95811,7 @@ type RecurringEventsClassConfig = {
95625
95811
  */
95626
95812
  onBeforeAssignmentDelete?: ((event: { source: Scheduler, assignmentRecords: AssignmentModel[], context: { finalize: { removeRecords?: boolean } } }) => Promise<boolean>|boolean|void)|string
95627
95813
  /**
95628
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
95814
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
95629
95815
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
95630
95816
  * for async vetoing).
95631
95817
  * ...
@@ -95654,7 +95840,7 @@ export class RecurringEventsClass {
95654
95840
  */
95655
95841
  recurrenceConfirmationPopup: RecurrenceConfirmationPopupConfig|RecurrenceConfirmationPopup
95656
95842
  /**
95657
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
95843
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
95658
95844
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
95659
95845
  * case records should be "manually" removed after confirmation:
95660
95846
  * ...
@@ -95668,7 +95854,7 @@ export class RecurringEventsClass {
95668
95854
  */
95669
95855
  onBeforeAssignmentDelete: ((event: { source: Scheduler, assignmentRecords: AssignmentModel[], context: { finalize: { removeRecords?: boolean } } }) => Promise<boolean>|boolean|void)|string
95670
95856
  /**
95671
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
95857
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
95672
95858
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
95673
95859
  * for async vetoing).
95674
95860
  * ...
@@ -96353,8 +96539,8 @@ type SchedulerEventRenderingClassConfig = {
96353
96539
  * @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
96354
96540
  * @param {string} detail.renderData.eventColor The `eventColor` of the event. Use this to set a custom color for the rendered event
96355
96541
  * @param {string} detail.renderData.ariaLabel A description of the event details used for screen readers
96356
- * @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.
96357
- * @returns {string,DomConfig,DomConfig[]} A simple string, or a DomConfig (or array thereof)
96542
+ * @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/scheduler/docs/api/Core/helper/DomHelper#typedef-DomConfig) objects. Consider using JSX primarily for events that require complex interactive React components.*
96543
+ * @returns {string,DomConfig,DomConfig[]} A simple string, a DomConfig (or array thereof), or a JSX element when using React
96358
96544
  */
96359
96545
  eventRenderer?: (detail: { eventRecord: EventModel, resourceRecord: ResourceModel, assignmentRecord: AssignmentModel, scheduler: Scheduler, renderData: { event: EventModel, 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[]
96360
96546
  /**
@@ -97240,7 +97426,7 @@ export const TimelineEventRendering : <T extends AnyConstructor<Base>>(base : T)
97240
97426
  */
97241
97427
  type TimelineHistogramGroupingClassListenersTypes = {
97242
97428
  /**
97243
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
97429
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
97244
97430
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
97245
97431
  * case records should be "manually" removed after confirmation:
97246
97432
  * ...
@@ -97287,7 +97473,7 @@ type TimelineHistogramGroupingClassListenersTypes = {
97287
97473
  */
97288
97474
  beforeCellEditStart: (event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void
97289
97475
  /**
97290
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
97476
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
97291
97477
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
97292
97478
  * @param {object} event Event object
97293
97479
  * @param {Grid.view.Grid} event.source Owner grid
@@ -97355,7 +97541,7 @@ type TimelineHistogramGroupingClassListenersTypes = {
97355
97541
  */
97356
97542
  beforeDestroy: (event: { source: Base }) => void
97357
97543
  /**
97358
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
97544
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
97359
97545
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
97360
97546
  * for async vetoing).
97361
97547
  * ...
@@ -98416,6 +98602,14 @@ type TimelineHistogramGroupingClassListenersTypes = {
98416
98602
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
98417
98603
  */
98418
98604
  toolClick: (event: { source: Tool, tool: Tool }) => void
98605
+ /**
98606
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
98607
+ * @param {object} event Event object
98608
+ * @param {Grid.view.Grid} event.source The grid instance
98609
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
98610
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
98611
+ */
98612
+ treeGroup: (event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void
98419
98613
  /**
98420
98614
  * Fires when row locking is disabled.
98421
98615
  * @param {object} event Event object
@@ -98452,7 +98646,7 @@ type TimelineHistogramGroupingClassListeners = {
98452
98646
  */
98453
98647
  thisObj?: object
98454
98648
  /**
98455
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
98649
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
98456
98650
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
98457
98651
  * case records should be "manually" removed after confirmation:
98458
98652
  * ...
@@ -98499,7 +98693,7 @@ type TimelineHistogramGroupingClassListeners = {
98499
98693
  */
98500
98694
  beforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
98501
98695
  /**
98502
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
98696
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
98503
98697
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
98504
98698
  * @param {object} event Event object
98505
98699
  * @param {Grid.view.Grid} event.source Owner grid
@@ -98567,7 +98761,7 @@ type TimelineHistogramGroupingClassListeners = {
98567
98761
  */
98568
98762
  beforeDestroy?: ((event: { source: Base }) => void)|string
98569
98763
  /**
98570
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
98764
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
98571
98765
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
98572
98766
  * for async vetoing).
98573
98767
  * ...
@@ -99628,6 +99822,14 @@ type TimelineHistogramGroupingClassListeners = {
99628
99822
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
99629
99823
  */
99630
99824
  toolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
99825
+ /**
99826
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
99827
+ * @param {object} event Event object
99828
+ * @param {Grid.view.Grid} event.source The grid instance
99829
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
99830
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
99831
+ */
99832
+ treeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
99631
99833
  /**
99632
99834
  * Fires when row locking is disabled.
99633
99835
  * @param {object} event Event object
@@ -100610,7 +100812,7 @@ type TimelineHistogramGroupingClassConfig = {
100610
100812
  rootElement?: ShadowRoot|HTMLElement
100611
100813
  /**
100612
100814
  * Row height in pixels. This allows the default height for rows to be controlled. Note that it may be
100613
- * overriden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
100815
+ * overridden by specifying a [rowHeight](https://bryntum.com/products/scheduler/docs/api/Grid/data/GridRowModel#field-rowHeight) on a per record basis, or from
100614
100816
  * a column [renderer](https://bryntum.com/products/scheduler/docs/api/Grid/column/Column#config-renderer).
100615
100817
  * ...
100616
100818
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/mixin/TimelineHistogramGrouping#config-rowHeight)
@@ -100940,7 +101142,7 @@ type TimelineHistogramGroupingClassConfig = {
100940
101142
  */
100941
101143
  zoomOnTimeAxisDoubleClick?: boolean
100942
101144
  /**
100943
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
101145
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
100944
101146
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
100945
101147
  * case records should be "manually" removed after confirmation:
100946
101148
  * ...
@@ -100987,7 +101189,7 @@ type TimelineHistogramGroupingClassConfig = {
100987
101189
  */
100988
101190
  onBeforeCellEditStart?: ((event: { source: Grid, editorContext: CellEditorContext }) => Promise<boolean>|boolean|void)|string
100989
101191
  /**
100990
- * Fires on the owning Grid before deleting a range of selected cell values by pressing `Backspace` or `Del`
101192
+ * Fires on the owning Grid before deleting a range of selected cell values by pressing <kbd>Backspace</kbd> or <kbd>Delete</kbd>
100991
101193
  * buttons while [autoEdit](https://bryntum.com/products/scheduler/docs/api/Grid/feature/CellEdit#config-autoEdit) is set to `true`. Return `false` to prevent editing.
100992
101194
  * @param {object} event Event object
100993
101195
  * @param {Grid.view.Grid} event.source Owner grid
@@ -101055,7 +101257,7 @@ type TimelineHistogramGroupingClassConfig = {
101055
101257
  */
101056
101258
  onBeforeDestroy?: ((event: { source: Base }) => void)|string
101057
101259
  /**
101058
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
101260
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
101059
101261
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
101060
101262
  * for async vetoing).
101061
101263
  * ...
@@ -102116,6 +102318,14 @@ type TimelineHistogramGroupingClassConfig = {
102116
102318
  * @param {Core.widget.Tool} event.tool The tool which is being clicked.
102117
102319
  */
102118
102320
  onToolClick?: ((event: { source: Tool, tool: Tool }) => void)|string
102321
+ /**
102322
+ * Fired on the owning Grid/Scheduler/Gantt after tree grouping levels change
102323
+ * @param {object} event Event object
102324
+ * @param {Grid.view.Grid} event.source The grid instance
102325
+ * @param {(string|Function)[]} event.groupers Array of field names or functions representing the current grouping levels
102326
+ * @param {(string|Function)[]} event.oldGroupers Array of field names or functions representing the previous grouping levels
102327
+ */
102328
+ onTreeGroup?: ((event: { source: Grid, groupers: (string|Function)[], oldGroupers: (string|Function)[] }) => void)|string
102119
102329
  /**
102120
102330
  * Fires when row locking is disabled.
102121
102331
  * @param {object} event Event object
@@ -102157,7 +102367,7 @@ export class TimelineHistogramGroupingClass extends TimelineHistogramBase {
102157
102367
  */
102158
102368
  features: TimelineHistogramGroupingClassFeaturesType
102159
102369
  /**
102160
- * Fires before an assignment is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or
102370
+ * Fires before an assignment is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or
102161
102371
  * by the event editor. Can for example be used to display a custom dialog to confirm deletion, in which
102162
102372
  * case records should be "manually" removed after confirmation:
102163
102373
  * ...
@@ -102177,7 +102387,7 @@ export class TimelineHistogramGroupingClass extends TimelineHistogramBase {
102177
102387
  */
102178
102388
  onBeforeDestroy: ((event: { source: Base }) => void)|string
102179
102389
  /**
102180
- * Fires before an event is removed. Can be triggered by user pressing [DELETE] or [BACKSPACE] or by the
102390
+ * Fires before an event is removed. Can be triggered by user pressing <kbd>Delete</kbd> or <kbd>Backspace</kbd> or by the
102181
102391
  * event editor. Return `false` to immediately veto the removal (or a `Promise` yielding `true` or `false`
102182
102392
  * for async vetoing).
102183
102393
  * ...
@@ -102925,7 +103135,7 @@ export class TimelineZoomableClass {
102925
103135
  */
102926
103136
  zoomToLevel(preset: number, options?: ChangePresetOptions): number|null;
102927
103137
  /**
102928
- * Sets time frame to specified range and applies zoom level which allows to fit all columns to this range.
103138
+ * Sets time frame to specified range and applies zoom level which allows fitting all columns to this range.
102929
103139
  * @param {object} config The time frame.
102930
103140
  */
102931
103141
  zoomToSpan(config: {
@@ -103655,7 +103865,7 @@ type RecurrenceConfirmationPopupConfig = {
103655
103865
  */
103656
103866
  closeAction?: 'hide'|'destroy'
103657
103867
  /**
103658
- * Close popup when `ESC` key is pressed.
103868
+ * Close popup when <kbd>Escape</kbd> key is pressed.
103659
103869
  */
103660
103870
  closeOnEscape?: boolean
103661
103871
  /**
@@ -105012,7 +105222,7 @@ type RecurrenceEditorConfig = {
105012
105222
  */
105013
105223
  closeAction?: 'hide'|'destroy'
105014
105224
  /**
105015
- * Close popup when `ESC` key is pressed.
105225
+ * Close popup when <kbd>Escape</kbd> key is pressed.
105016
105226
  */
105017
105227
  closeOnEscape?: boolean
105018
105228
  /**
@@ -107464,7 +107674,7 @@ type RecurrenceComboConfig = {
107464
107674
  contentElementCls?: string|object
107465
107675
  /**
107466
107676
  * If configured as `true`, this means that when an unmatched string is typed into the
107467
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
107677
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
107468
107678
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
107469
107679
  * ...
107470
107680
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/recurrence/field/RecurrenceCombo#config-createOnUnmatched)
@@ -107964,7 +108174,7 @@ type RecurrenceComboConfig = {
107964
108174
  required?: boolean
107965
108175
  /**
107966
108176
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
107967
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
108177
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
107968
108178
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
107969
108179
  * behaviour will be activated.
107970
108180
  */
@@ -108847,7 +109057,7 @@ type RecurrenceDaysComboConfig = {
108847
109057
  contentElementCls?: string|object
108848
109058
  /**
108849
109059
  * If configured as `true`, this means that when an unmatched string is typed into the
108850
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
109060
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
108851
109061
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
108852
109062
  * ...
108853
109063
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/recurrence/field/RecurrenceDaysCombo#config-createOnUnmatched)
@@ -109347,7 +109557,7 @@ type RecurrenceDaysComboConfig = {
109347
109557
  required?: boolean
109348
109558
  /**
109349
109559
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
109350
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
109560
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
109351
109561
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
109352
109562
  * behaviour will be activated.
109353
109563
  */
@@ -110229,7 +110439,7 @@ type RecurrenceFrequencyComboConfig = {
110229
110439
  contentElementCls?: string|object
110230
110440
  /**
110231
110441
  * If configured as `true`, this means that when an unmatched string is typed into the
110232
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
110442
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
110233
110443
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
110234
110444
  * ...
110235
110445
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/recurrence/field/RecurrenceFrequencyCombo#config-createOnUnmatched)
@@ -110729,7 +110939,7 @@ type RecurrenceFrequencyComboConfig = {
110729
110939
  required?: boolean
110730
110940
  /**
110731
110941
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
110732
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
110942
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
110733
110943
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
110734
110944
  * behaviour will be activated.
110735
110945
  */
@@ -111611,7 +111821,7 @@ type RecurrencePositionsComboConfig = {
111611
111821
  contentElementCls?: string|object
111612
111822
  /**
111613
111823
  * If configured as `true`, this means that when an unmatched string is typed into the
111614
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
111824
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
111615
111825
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
111616
111826
  * ...
111617
111827
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/recurrence/field/RecurrencePositionsCombo#config-createOnUnmatched)
@@ -112111,7 +112321,7 @@ type RecurrencePositionsComboConfig = {
112111
112321
  required?: boolean
112112
112322
  /**
112113
112323
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
112114
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
112324
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
112115
112325
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
112116
112326
  * behaviour will be activated.
112117
112327
  */
@@ -112993,7 +113203,7 @@ type RecurrenceStopConditionComboConfig = {
112993
113203
  contentElementCls?: string|object
112994
113204
  /**
112995
113205
  * If configured as `true`, this means that when an unmatched string is typed into the
112996
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
113206
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
112997
113207
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
112998
113208
  * ...
112999
113209
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/view/recurrence/field/RecurrenceStopConditionCombo#config-createOnUnmatched)
@@ -113493,7 +113703,7 @@ type RecurrenceStopConditionComboConfig = {
113493
113703
  required?: boolean
113494
113704
  /**
113495
113705
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
113496
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
113706
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
113497
113707
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
113498
113708
  * behaviour will be activated.
113499
113709
  */
@@ -115786,7 +115996,7 @@ type EventColorFieldConfig = {
115786
115996
  required?: boolean
115787
115997
  /**
115788
115998
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
115789
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
115999
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
115790
116000
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
115791
116001
  * behaviour will be activated.
115792
116002
  */
@@ -116980,7 +117190,7 @@ type EventColorPickerConfig = {
116980
117190
  */
116981
117191
  title?: string
116982
117192
  /**
116983
- * Select/deselect all if `CMD`/`CTRL` is pressed when clicking
117193
+ * Select/deselect all if <kbd>Cmd</kbd>/<kbd>Ctrl</kbd> is pressed when clicking
116984
117194
  */
116985
117195
  toggleAllIfCtrlPressed?: boolean
116986
117196
  /**
@@ -117745,7 +117955,7 @@ type ProjectComboConfig = {
117745
117955
  contentElementCls?: string|object
117746
117956
  /**
117747
117957
  * If configured as `true`, this means that when an unmatched string is typed into the
117748
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
117958
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
117749
117959
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
117750
117960
  * ...
117751
117961
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/widget/ProjectCombo#config-createOnUnmatched)
@@ -118249,7 +118459,7 @@ type ProjectComboConfig = {
118249
118459
  required?: boolean
118250
118460
  /**
118251
118461
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
118252
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
118462
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
118253
118463
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
118254
118464
  * behaviour will be activated.
118255
118465
  */
@@ -119134,7 +119344,7 @@ type ResourceComboConfig = {
119134
119344
  contentElementCls?: string|object
119135
119345
  /**
119136
119346
  * If configured as `true`, this means that when an unmatched string is typed into the
119137
- * combo's input field, and `ENTER`, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
119347
+ * combo's input field, and <kbd>Enter</kbd>, or the [multiValueSeparator](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-multiValueSeparator) is typed,
119138
119348
  * a new record will be created using the typed string as the [displayField](https://bryntum.com/products/scheduler/docs/api/Core/widget/Combo#config-displayField).
119139
119349
  * ...
119140
119350
  * [View online docs...](https://bryntum.com/products/scheduler/docs/api/Scheduler/widget/ResourceCombo#config-createOnUnmatched)
@@ -119634,7 +119844,7 @@ type ResourceComboConfig = {
119634
119844
  required?: boolean
119635
119845
  /**
119636
119846
  * If this field is not [readOnly](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-readOnly), then setting this option means that pressing
119637
- * the `ESCAPE` key after editing the field will revert the field to the value it had when
119847
+ * the <kbd>Escape</kbd> key after editing the field will revert the field to the value it had when
119638
119848
  * the user focused the field. If the field is *not* changed from when focused, the [clearable](https://bryntum.com/products/scheduler/docs/api/Core/widget/Field#config-clearable)
119639
119849
  * behaviour will be activated.
119640
119850
  */
@@ -120880,7 +121090,7 @@ type ResourceFilterConfig = {
120880
121090
  */
120881
121091
  title?: string
120882
121092
  /**
120883
- * Select/deselect all if `CMD`/`CTRL` is pressed when clicking
121093
+ * Select/deselect all if <kbd>Cmd</kbd>/<kbd>Ctrl</kbd> is pressed when clicking
120884
121094
  */
120885
121095
  toggleAllIfCtrlPressed?: boolean
120886
121096
  /**