@bryntum/grid-angular-thin 7.2.4 → 7.3.1

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 (43) hide show
  1. package/README.md +5 -5
  2. package/bundles/bryntum-grid-angular-thin.umd.js +773 -230
  3. package/bundles/bryntum-grid-angular-thin.umd.js.map +1 -1
  4. package/esm2015/lib/bryntum-a-i-filter-field.component.js +66 -14
  5. package/esm2015/lib/bryntum-checklist-filter-combo.component.js +66 -14
  6. package/esm2015/lib/bryntum-grid-base.component.js +78 -35
  7. package/esm2015/lib/bryntum-grid-chart-designer.component.js +61 -12
  8. package/esm2015/lib/bryntum-grid-field-filter-picker-group.component.js +65 -21
  9. package/esm2015/lib/bryntum-grid-field-filter-picker.component.js +65 -21
  10. package/esm2015/lib/bryntum-grid.component.js +78 -35
  11. package/esm2015/lib/bryntum-group-bar.component.js +61 -12
  12. package/esm2015/lib/bryntum-tree-combo.component.js +66 -14
  13. package/esm2015/lib/bryntum-tree-grid.component.js +78 -35
  14. package/esm2015/lib/grid.module.js +5 -4
  15. package/esm2015/lib/shadowdom.helper.js +82 -0
  16. package/fesm2015/bryntum-grid-angular-thin.js +750 -207
  17. package/fesm2015/bryntum-grid-angular-thin.js.map +1 -1
  18. package/lib/bryntum-a-i-filter-field.component.d.ts +97 -133
  19. package/lib/bryntum-checklist-filter-combo.component.d.ts +116 -166
  20. package/lib/bryntum-grid-base.component.d.ts +238 -303
  21. package/lib/bryntum-grid-chart-designer.component.d.ts +71 -108
  22. package/lib/bryntum-grid-field-filter-picker-group.component.d.ts +93 -143
  23. package/lib/bryntum-grid-field-filter-picker.component.d.ts +94 -145
  24. package/lib/bryntum-grid.component.d.ts +238 -303
  25. package/lib/bryntum-group-bar.component.d.ts +77 -118
  26. package/lib/bryntum-tree-combo.component.d.ts +117 -168
  27. package/lib/bryntum-tree-grid.component.d.ts +238 -303
  28. package/lib/grid.module.d.ts +2 -1
  29. package/lib/shadowdom.helper.d.ts +3 -0
  30. package/package.json +1 -1
  31. package/src/lib/bryntum-a-i-filter-field.component.ts +159 -142
  32. package/src/lib/bryntum-checklist-filter-combo.component.ts +179 -176
  33. package/src/lib/bryntum-grid-base.component.ts +300 -344
  34. package/src/lib/bryntum-grid-chart-designer.component.ts +127 -113
  35. package/src/lib/bryntum-grid-field-filter-picker-group.component.ts +154 -154
  36. package/src/lib/bryntum-grid-field-filter-picker.component.ts +153 -154
  37. package/src/lib/bryntum-grid.component.ts +300 -344
  38. package/src/lib/bryntum-group-bar.component.ts +134 -124
  39. package/src/lib/bryntum-theme-combo.component.ts +127 -0
  40. package/src/lib/bryntum-tree-combo.component.ts +179 -177
  41. package/src/lib/bryntum-tree-grid.component.ts +300 -344
  42. package/src/lib/grid.module.ts +2 -1
  43. package/src/lib/shadowdom.helper.ts +91 -0
@@ -7,24 +7,23 @@ import { Component, ElementRef, EventEmitter, Output, Input, SimpleChange, Simpl
7
7
 
8
8
  import WrapperHelper from './wrapper.helper';
9
9
 
10
- import { AlignSpec, Base, Color, DomConfig, Field, FieldContainer, FieldContainerConfig, FieldTriggerConfig, KeyMapConfig, MaskConfig, Model, Rectangle, Scroller, TabConfig, TooltipConfig, VueConfig, Widget } from '@bryntum/core-thin';
10
+ import { AlignSpec, Base, Color, DomConfig, Field, FieldContainerConfig, FieldTriggerConfig, KeyMapConfig, MaskConfig, Model, ReactJSX, Rectangle, Scroller, TabConfig, TooltipConfig, VueConfig, Widget } from '@bryntum/core-thin';
11
11
  import { AIFilterField, AIFilterFieldListeners, GridContainerItemConfig, Grid } from '@bryntum/grid-thin';
12
12
 
13
- import { StringHelper } from '@bryntum/core-thin';
13
+ import { DomHelper, StringHelper } from '@bryntum/core-thin';
14
+ import { initThemeInShadowRoots } from './shadowdom.helper';
14
15
 
15
16
  export type BryntumAIFilterFieldProps = {
16
17
  // Configs
17
18
  /**
18
19
  * Element (or element id) to adopt as this Widget's encapsulating element. The widget's
19
20
  * content will be placed inside this element.
20
- * ...
21
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-adopt)
21
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-adopt)
22
22
  */
23
23
  adopt ? : HTMLElement|string
24
24
  /**
25
25
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
26
- * ...
27
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-align)
26
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-align)
28
27
  */
29
28
  align ? : AlignSpec|string
30
29
  /**
@@ -46,15 +45,13 @@ export type BryntumAIFilterFieldProps = {
46
45
  /**
47
46
  * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject
48
47
  * into an element which will be linked using the `aria-describedby` attribute.
49
- * ...
50
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ariaDescription)
48
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ariaDescription)
51
49
  */
52
50
  ariaDescription ? : string
53
51
  /**
54
52
  * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject as
55
53
  * the `aria-label` attribute.
56
- * ...
57
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ariaLabel)
54
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ariaLabel)
58
55
  */
59
56
  ariaLabel ? : string
60
57
  /**
@@ -73,21 +70,18 @@ export type BryntumAIFilterFieldProps = {
73
70
  /**
74
71
  * An object where property names with a truthy value indicate which events should bubble up the ownership
75
72
  * hierarchy when triggered.
76
- * ...
77
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-bubbleEvents)
73
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-bubbleEvents)
78
74
  */
79
75
  bubbleEvents ? : object
80
76
  /**
81
77
  * Set to `false` to not call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.
82
- * ...
83
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-callOnFunctions)
78
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-callOnFunctions)
84
79
  */
85
80
  callOnFunctions ? : boolean
86
81
  /**
87
82
  * By default, if an event handler throws an exception, the error propagates up the stack and the
88
83
  * application state is undefined. Code which follows the event handler will *not* be executed.
89
- * ...
90
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-catchEventHandlerExceptions)
84
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-catchEventHandlerExceptions)
91
85
  */
92
86
  catchEventHandlerExceptions ? : boolean
93
87
  /**
@@ -95,6 +89,15 @@ export type BryntumAIFilterFieldProps = {
95
89
  * Set to `true` to centre the Widget in browser viewport space.
96
90
  */
97
91
  centered ? : boolean
92
+ /**
93
+ * A function (or the name of a function in the ownership hierarchy) called during field validation
94
+ * to perform custom validity checks. The function is called as part of the [isValid](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-isValid)
95
+ * evaluation, after the built-in [required](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-required) check.
96
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-checkValidity)
97
+ * @param {Core.widget.Field} field The field being validated
98
+ * @returns {void}
99
+ */
100
+ checkValidity ? : ((field: Field) => void)|string
98
101
  /**
99
102
  * Show a trigger to clear field, if this field is not [readOnly](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-readOnly). The trigger is available
100
103
  * in the [triggers](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-triggers) object under the name `clear`. May also be an object which
@@ -110,15 +113,13 @@ export type BryntumAIFilterFieldProps = {
110
113
  * Custom CSS classes to add to element.
111
114
  * May be specified as a space separated string, or as an object in which property names
112
115
  * with truthy values are used as the class names:
113
- * ...
114
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-cls)
116
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-cls)
115
117
  */
116
118
  cls ? : string|object
117
119
  /**
118
120
  * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets
119
121
  * `style` block.
120
- * ...
121
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-color)
122
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-color)
122
123
  */
123
124
  color ? : Color
124
125
  /**
@@ -135,15 +136,13 @@ export type BryntumAIFilterFieldProps = {
135
136
  * The configuration for additional items associated to this field. This is typically used to add contextual
136
137
  * fields related to a [checkbox](https://bryntum.com/products/grid/docs/api/Core/widget/Checkbox) or [radio button](#Core/widget/Radio). See
137
138
  * these classes for examples of nested fields.
138
- * ...
139
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-container)
139
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-container)
140
140
  */
141
- container ? : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig|FieldContainer
141
+ container ? : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig
142
142
  /**
143
143
  * The config controls how the value of nested items are handled when a parent container gets or sets its
144
144
  * [values](https://bryntum.com/products/grid/docs/api/Core/widget/Container#property-values).
145
- * ...
146
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-containValues)
145
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-containValues)
147
146
  * @param {Core.widget.Field} field Field instance
148
147
  * @returns {boolean}
149
148
  */
@@ -152,8 +151,7 @@ export type BryntumAIFilterFieldProps = {
152
151
  * Custom CSS classes to add to the [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
153
152
  * May be specified as a space separated string, or as an object in which property names
154
153
  * with truthy values are used as the class names:
155
- * ...
156
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-contentElementCls)
154
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-contentElementCls)
157
155
  */
158
156
  contentElementCls ? : string|object
159
157
  /**
@@ -171,16 +169,15 @@ export type BryntumAIFilterFieldProps = {
171
169
  */
172
170
  defaultBindProperty ? : string
173
171
  /**
174
- * Check for CSS compatibility issues when upgrading to v7. Performs the following checks:
175
- * ...
176
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-detectCSSCompatibilityIssues)
172
+ * Check for CSS compatibility and inclusion related issues and try to auto fix them. Performs the following
173
+ * checks:
174
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-detectCSSCompatibilityIssues)
177
175
  */
178
176
  detectCSSCompatibilityIssues ? : boolean
179
177
  /**
180
178
  * Disable or enable the widget. It is similar to [readOnly](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-readOnly) except a disabled widget
181
179
  * cannot be focused, uses a different rendition (usually greyish) and does not allow selecting its value.
182
- * ...
183
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-disabled)
180
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-disabled)
184
181
  */
185
182
  disabled ? : boolean|'inert'
186
183
  /**
@@ -188,33 +185,28 @@ export type BryntumAIFilterFieldProps = {
188
185
  * [strips collection](https://bryntum.com/products/grid/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,
189
186
  * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's
190
187
  * body. Such widgets are called "edge strips".
191
- * ...
192
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-dock)
188
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-dock)
193
189
  */
194
190
  dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object
195
191
  /**
196
192
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
197
193
  * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a ´handleSelector´
198
194
  * property which controls when a drag should start.
199
- * ...
200
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-draggable)
195
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-draggable)
196
+ * @property {string} handleSelector CSS selector used to determine if drag can be started from a mouse-downed element inside the widget
201
197
  */
202
- draggable ? : boolean|{
203
- handleSelector?: string
204
- }
198
+ draggable ? : boolean|object
205
199
  /**
206
200
  * Set to `false` to prevent user from editing the field. For TextFields it is basically the same as setting
207
201
  * [readOnly](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-readOnly), but for PickerFields there is a distinction where it allows you to pick a value
208
202
  * but not to type one in the field.
209
- * ...
210
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-editable)
203
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-editable)
211
204
  */
212
205
  editable ? : boolean
213
206
  /**
214
207
  * An object specifying attributes to assign to the root element of this widget.
215
208
  * Set `null` value to attribute to remove it.
216
- * ...
217
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-elementAttributes)
209
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-elementAttributes)
218
210
  */
219
211
  elementAttributes ? : Record<string, string|null>
220
212
  extraData ? : any
@@ -243,8 +235,7 @@ export type BryntumAIFilterFieldProps = {
243
235
  hidden ? : boolean
244
236
  /**
245
237
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
246
- * ...
247
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hideAnimation)
238
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hideAnimation)
248
239
  */
249
240
  hideAnimation ? : boolean|object
250
241
  /**
@@ -254,8 +245,7 @@ export type BryntumAIFilterFieldProps = {
254
245
  /**
255
246
  * An optional string to display inside the input field as an overlay. This can be useful for displaying
256
247
  * a field's units.
257
- * ...
258
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hint)
248
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hint)
259
249
  * @param {object} data A data object
260
250
  * @param {Core.widget.Field} data.source A reference to the field instance
261
251
  * @param {any} data.value The current value of the field
@@ -266,8 +256,7 @@ export type BryntumAIFilterFieldProps = {
266
256
  * This config is similar to [hint](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-hint) except that this config is used to display HTML content.
267
257
  * Since this can allow malicious content to be executed, be sure not to include user-entered data or to
268
258
  * encode such data (see [encodeHtml](https://bryntum.com/products/grid/docs/api/Core/helper/StringHelper#function-encodeHtml-static)).
269
- * ...
270
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hintHtml)
259
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hintHtml)
271
260
  * @param {object} data A data object
272
261
  * @param {Core.widget.Field} data.source A reference to the field instance
273
262
  * @param {any} data.value The current value of the field
@@ -280,16 +269,14 @@ export type BryntumAIFilterFieldProps = {
280
269
  id ? : string
281
270
  /**
282
271
  * Determines if the widgets read-only state should be controlled by its parent.
283
- * ...
284
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ignoreParentReadOnly)
272
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ignoreParentReadOnly)
285
273
  */
286
274
  ignoreParentReadOnly ? : boolean
287
275
  /**
288
276
  * Set this config to `true` to always display items horizontally along with this field. This assigns an
289
277
  * [hbox](https://bryntum.com/products/grid/docs/api/Core/widget/layout/Box) as the [layout](#Core/widget/Container#config-layout) to the
290
278
  * [container](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-container).
291
- * ...
292
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-inline)
279
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-inline)
293
280
  */
294
281
  inline ? : boolean
295
282
  /**
@@ -329,16 +316,14 @@ export type BryntumAIFilterFieldProps = {
329
316
  * An object whose keys are the [key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) name
330
317
  * and optional modifier prefixes: `'Ctrl+'`, `'Alt+'`, `'Meta+'`, and `'Shift+'` (case-insensitive). The values
331
318
  * are the name of the instance method to call when the keystroke is received.
332
- * ...
333
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyMap)
319
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyMap)
334
320
  */
335
321
  keyMap ? : Record<string, KeyMapConfig>
336
322
  /**
337
323
  * The delay in milliseconds to wait after the last keystroke before triggering a change event.
338
324
  * Set to 0 to not trigger change events from keystrokes (listen for input event instead to have
339
325
  * immediate feedback, change will still be triggered on blur).
340
- * ...
341
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyStrokeChangeDelay)
326
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyStrokeChangeDelay)
342
327
  */
343
328
  keyStrokeChangeDelay ? : number
344
329
  /**
@@ -351,15 +336,15 @@ export type BryntumAIFilterFieldProps = {
351
336
  labelCls ? : string|object
352
337
  /**
353
338
  * Label position, either 'before' the field or 'above' the field
354
- * ...
355
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labelPosition)
339
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labelPosition)
356
340
  */
357
341
  labelPosition ? : 'before'|'above'|null
358
342
  /**
359
343
  * The labels to add either before or after the input field.
360
344
  * Each label may have the following properties:
361
- * ...
362
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labels)
345
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labels)
346
+ * @property {string} html Label text
347
+ * @property {'start','end'} align Which end of the file the label should go
363
348
  */
364
349
  labels ? : object[]
365
350
  /**
@@ -368,16 +353,14 @@ export type BryntumAIFilterFieldProps = {
368
353
  labelWidth ? : string|number
369
354
  /**
370
355
  * The listener set for this object.
371
- * ...
372
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-listeners)
356
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-listeners)
373
357
  */
374
358
  listeners ? : AIFilterFieldListeners
375
359
  /**
376
360
  * A class translations of which are used for translating this entity.
377
361
  * This is often used when translations of an item are defined on its container class.
378
362
  * For example:
379
- * ...
380
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localeClass)
363
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localeClass)
381
364
  */
382
365
  localeClass ? : typeof Base
383
366
  /**
@@ -389,8 +372,7 @@ export type BryntumAIFilterFieldProps = {
389
372
  * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),
390
373
  * you could use 'localeKey' meta configuration.
391
374
  * Example:
392
- * ...
393
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localizableProperties)
375
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localizableProperties)
394
376
  */
395
377
  localizableProperties ? : string[]
396
378
  /**
@@ -416,8 +398,7 @@ export type BryntumAIFilterFieldProps = {
416
398
  maxHeight ? : string|number
417
399
  /**
418
400
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
419
- * ...
420
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-maximizeOnMobile)
401
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-maximizeOnMobile)
421
402
  */
422
403
  maximizeOnMobile ? : number|string
423
404
  /**
@@ -447,18 +428,15 @@ export type BryntumAIFilterFieldProps = {
447
428
  * When this is configured as `true` a [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
448
429
  * is used to monitor this element for size changes caused by either style manipulation, or by CSS
449
430
  * layout.
450
- * ...
451
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-monitorResize)
431
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-monitorResize)
432
+ * @property {boolean} immediate Set to `true` to receive resize notifications immediately.
452
433
  */
453
- monitorResize ? : boolean|{
454
- immediate?: boolean
455
- }
434
+ monitorResize ? : boolean|object
456
435
  /**
457
436
  * Name of the field which is used as a key to get/set values from/to the field.
458
437
  * Used prior to [ref](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-ref) and [id](#Core/widget/Widget#config-id) in
459
438
  * [Container.values](https://bryntum.com/products/grid/docs/api/Core/widget/Container#property-values).
460
- * ...
461
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-name)
439
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-name)
462
440
  */
463
441
  name ? : string
464
442
  /**
@@ -469,8 +447,7 @@ export type BryntumAIFilterFieldProps = {
469
447
  * Set to `true` when a widget is rendered into another widget's [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement), but must
470
448
  * not participate in the standard layout of that widget, and must be positioned relatively to that
471
449
  * widget's [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
472
- * ...
473
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-positioned)
450
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-positioned)
474
451
  */
475
452
  positioned ? : boolean
476
453
  /**
@@ -485,15 +462,13 @@ export type BryntumAIFilterFieldProps = {
485
462
  /**
486
463
  * Makes the field unmodifiable by user action. The input area is not editable, and triggers
487
464
  * are unresponsive.
488
- * ...
489
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-readOnly)
465
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-readOnly)
490
466
  */
491
467
  readOnly ? : boolean
492
468
  relayStoreEvents ? : boolean
493
469
  /**
494
470
  * Predefined style to use for the field. Possible values are:
495
- * ...
496
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rendition)
471
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rendition)
497
472
  */
498
473
  rendition ? : 'outlined'|'filled'|string
499
474
  /**
@@ -512,23 +487,26 @@ export type BryntumAIFilterFieldProps = {
512
487
  * Configure as `true` to have the component display a translucent ripple when its
513
488
  * [focusElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-focusElement), or [element](#Core/widget/Widget#property-element) is tapped <em>if the
514
489
  * current theme supports ripples</em>. Out of the box, only the Material theme supports ripples.
515
- * ...
516
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ripple)
517
- */
518
- ripple ? : boolean|{
519
- delegate?: string
520
- color?: string
521
- radius?: number
522
- clip?: string
523
- }
490
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ripple)
491
+ * @property {string} [delegate] A CSS selector to filter which child elements trigger ripples. By default, the ripple is clipped to the triggering element.
492
+ * @property {string} [color] A CSS color name or specification.
493
+ * @property {number} [radius] The ending radius of the ripple. Note that it will be clipped by the target element by default.
494
+ * @property {string} [clip] A string which describes how to clip the ripple if it is not to be clipped to the default element. Either the property of the widget to use as the clipping element, or a selector to allow clipping to the closest matching ancestor to the target element.
495
+ */
496
+ ripple ? : boolean|object
497
+ /**
498
+ * The ARIA role to apply to this widget's element. By default, this is set to `'presentation'` to avoid
499
+ * accidentally applying a role which may interfere with screen readers.
500
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-role)
501
+ */
502
+ role ? : string
524
503
  /**
525
504
  * If you are rendering this widget to a shadow root inside a web component, set this config to the shadowRoot. If not inside a web component, set it to `document.body`
526
505
  */
527
506
  rootElement ? : ShadowRoot|HTMLElement
528
507
  /**
529
508
  * This may be configured as `true` to make the widget's element use the `direction:rtl` style.
530
- * ...
531
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rtl)
509
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rtl)
532
510
  */
533
511
  rtl ? : boolean
534
512
  /**
@@ -538,8 +516,7 @@ export type BryntumAIFilterFieldProps = {
538
516
  scrollAction ? : 'hide'|'realign'|null
539
517
  /**
540
518
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
541
- * ...
542
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-showAnimation)
519
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-showAnimation)
543
520
  */
544
521
  showAnimation ? : boolean|object
545
522
  /**
@@ -568,8 +545,7 @@ export type BryntumAIFilterFieldProps = {
568
545
  * A configuration for the [tab](https://bryntum.com/products/grid/docs/api/Core/widget/Tab) created for this widget when it is placed in a
569
546
  * [TabPanel](https://bryntum.com/products/grid/docs/api/Core/widget/TabPanel). For example, this config can be used to control the icon of the `tab` for
570
547
  * this widget:
571
- * ...
572
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tab)
548
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tab)
573
549
  */
574
550
  tab ? : boolean|TabConfig
575
551
  /**
@@ -577,14 +553,12 @@ export type BryntumAIFilterFieldProps = {
577
553
  * is equivalent to natural tab order, but is unnecessary for fields since they are naturally tabbable
578
554
  * (i.e., accessible via the TAB key). Setting to `-1` disables tabbability but allows for focus to be set
579
555
  * to the element programmatically.
580
- * ...
581
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tabIndex)
556
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tabIndex)
582
557
  */
583
558
  tabIndex ? : number
584
559
  /**
585
560
  * Text alignment: 'left', 'center' or 'right'. Also accepts direction neutral 'start' and 'end'.
586
- * ...
587
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-textAlign)
561
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-textAlign)
588
562
  */
589
563
  textAlign ? : 'left'|'center'|'right'|'start'|'end'
590
564
  /**
@@ -593,24 +567,21 @@ export type BryntumAIFilterFieldProps = {
593
567
  title ? : string
594
568
  /**
595
569
  * Tooltip for the widget, either as a string or as a Tooltip config object.
596
- * ...
597
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tooltip)
570
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tooltip)
598
571
  */
599
572
  tooltip ? : string|TooltipConfig|null
600
573
  /**
601
574
  * The triggers to add either before or after the input field. Each property name is the reference by which
602
575
  * an instantiated Trigger Widget may be retrieved from the live `triggers` property.
603
- * ...
604
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-triggers)
576
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-triggers)
605
577
  */
606
- triggers ? : Record<string, FieldTriggerConfig>|Record<string, Widget>
578
+ triggers ? : Record<string, FieldTriggerConfig>
607
579
  type ? : 'aifilterfield'
608
580
  /**
609
581
  * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified
610
582
  * as a space separated string, an array of strings, or as an object in which property names with truthy
611
583
  * values are used as the class names.
612
- * ...
613
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ui)
584
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ui)
614
585
  */
615
586
  ui ? : string|object
616
587
  /**
@@ -635,14 +606,12 @@ export type BryntumAIFilterFieldProps = {
635
606
  width ? : string|number
636
607
  /**
637
608
  * The x position for the widget.
638
- * ...
639
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-x)
609
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-x)
640
610
  */
641
611
  x ? : number
642
612
  /**
643
613
  * The y position for the widget.
644
- * ...
645
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-y)
614
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-y)
646
615
  */
647
616
  y ? : number
648
617
 
@@ -699,6 +668,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
699
668
  'callOnFunctions',
700
669
  'catchEventHandlerExceptions',
701
670
  'centered',
671
+ 'checkValidity',
702
672
  'clearable',
703
673
  'client',
704
674
  'cls',
@@ -770,6 +740,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
770
740
  'required',
771
741
  'revertOnEscape',
772
742
  'ripple',
743
+ 'role',
773
744
  'rootElement',
774
745
  'rtl',
775
746
  'scrollAction',
@@ -805,6 +776,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
805
776
  'autoSelect',
806
777
  'bubbleEvents',
807
778
  'centered',
779
+ 'checkValidity',
808
780
  'clearable',
809
781
  'client',
810
782
  'color',
@@ -852,6 +824,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
852
824
  'relayStoreEvents',
853
825
  'revertOnEscape',
854
826
  'ripple',
827
+ 'role',
855
828
  'rootElement',
856
829
  'scrollAction',
857
830
  'showAnimation',
@@ -870,7 +843,6 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
870
843
 
871
844
  private static bryntumProps: string[] = BryntumAIFilterFieldComponent.bryntumFeatureNames.concat([
872
845
  'alignSelf',
873
- 'anchorSize',
874
846
  'appendTo',
875
847
  'badge',
876
848
  'callOnFunctions',
@@ -883,7 +855,6 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
883
855
  'editable',
884
856
  'extraData',
885
857
  'flex',
886
- 'focusVisible',
887
858
  'formula',
888
859
  'height',
889
860
  'hidden',
@@ -943,21 +914,20 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
943
914
  @Input() autoSelect ! : boolean;
944
915
  @Input() bubbleEvents ! : object;
945
916
  @Input() centered ! : boolean;
917
+ @Input() checkValidity ! : ((field: Field) => void)|string;
946
918
  @Input() clearable ! : boolean|FieldTriggerConfig;
947
919
  @Input() client ! : Grid;
948
920
  @Input() color ! : Color;
949
921
  @Input() config ! : object;
950
922
  @Input() constrainTo ! : HTMLElement|Widget|Rectangle;
951
- @Input() container ! : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig|FieldContainer;
923
+ @Input() container ! : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig;
952
924
  @Input() containValues ! : boolean|string|((field: Field) => boolean);
953
925
  @Input() contentElementCls ! : string|object;
954
926
  @Input() dataField ! : string;
955
927
  @Input() defaultBindProperty ! : string;
956
928
  @Input() detectCSSCompatibilityIssues ! : boolean;
957
929
  @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;
958
- @Input() draggable ! : boolean|{
959
- handleSelector?: string
960
- };
930
+ @Input() draggable ! : boolean|object;
961
931
  @Input() elementAttributes ! : Record<string, string|null>;
962
932
  @Input() floating ! : boolean;
963
933
  @Input() hideAnimation ! : boolean|object;
@@ -984,21 +954,15 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
984
954
  @Input() masked ! : boolean|string|MaskConfig;
985
955
  @Input() maxLength ! : number;
986
956
  @Input() minLength ! : number;
987
- @Input() monitorResize ! : boolean|{
988
- immediate?: boolean
989
- };
957
+ @Input() monitorResize ! : boolean|object;
990
958
  @Input() name ! : string;
991
959
  @Input() positioned ! : boolean;
992
960
  @Input() preventTooltipOnTouch ! : boolean;
993
961
  @Input() progressText ! : string;
994
962
  @Input() relayStoreEvents ! : boolean;
995
963
  @Input() revertOnEscape ! : boolean;
996
- @Input() ripple ! : boolean|{
997
- delegate?: string
998
- color?: string
999
- radius?: number
1000
- clip?: string
1001
- };
964
+ @Input() ripple ! : boolean|object;
965
+ @Input() role ! : string;
1002
966
  @Input() rootElement ! : ShadowRoot|HTMLElement;
1003
967
  @Input() scrollAction ! : 'hide'|'realign'|null;
1004
968
  @Input() showAnimation ! : boolean|object;
@@ -1055,14 +1019,12 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1055
1019
  @Input() y ! : number;
1056
1020
 
1057
1021
  // Properties only
1058
- @Input() anchorSize ! : number[];
1059
- @Input() content ! : string;
1060
- @Input() focusVisible ! : boolean;
1061
- @Input() formula ! : string;
1062
- @Input() html ! : string|((widget: Widget) => string)|DomConfig|DomConfig[]|VueConfig;
1063
- @Input() input ! : HTMLElement;
1064
- @Input() parent ! : Widget;
1065
- @Input() scrollable ! : Scroller;
1022
+ @Input() content ! : string;
1023
+ @Input() formula ! : string;
1024
+ @Input() html ! : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX;
1025
+ @Input() input ! : HTMLElement;
1026
+ @Input() parent ! : Widget;
1027
+ @Input() scrollable ! : Scroller;
1066
1028
 
1067
1029
  // Events emitters
1068
1030
  /**
@@ -1090,7 +1052,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1090
1052
  * @param {object} event Event object
1091
1053
  * @param {Core.widget.Widget} event.source The widget being hidden.
1092
1054
  */
1093
- @Output() onBeforeHide: any = new EventEmitter<((event: { source: Widget }) => Promise<boolean>|boolean|void)|string>();
1055
+ @Output() onBeforeHide: any = new EventEmitter<((event: { source: Widget }) => boolean|void)|string>();
1094
1056
  /**
1095
1057
  * Triggered before a widget is shown. Return `false` to prevent the action.
1096
1058
  * @param {object} event Event object
@@ -1099,8 +1061,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1099
1061
  @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();
1100
1062
  /**
1101
1063
  * Fires when any other event is fired from the object.
1102
- * ...
1103
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-catchAll)
1064
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-catchAll)
1104
1065
  * @param {object} event Event object
1105
1066
  * @param {{[key: string]: any, type: string}} event.event The Object that contains event details
1106
1067
  * @param {string} event.event.type The type of the event which is caught by the listener
@@ -1120,8 +1081,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1120
1081
  @Output() onChange: any = new EventEmitter<((event: { source: Field|any, value: string|number|boolean|any, oldValue: string|number|boolean|any, valid: boolean, event: Event, userAction: boolean, checked: boolean }) => void)|string>();
1121
1082
  /**
1122
1083
  * Fired when this field is [cleared](https://bryntum.com/products/grid/docs/api/Core/widget/Field#function-clear).
1123
- * ...
1124
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-clear)
1084
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-clear)
1125
1085
  * @param {object} event Event object
1126
1086
  * @param {Core.widget.Field,any} event.source This Field
1127
1087
  */
@@ -1179,8 +1139,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1179
1139
  /**
1180
1140
  * Triggered when a widget which had been in a non-visible state for any reason
1181
1141
  * achieves visibility.
1182
- * ...
1183
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-paint)
1142
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-paint)
1184
1143
  * @param {object} event Event object
1185
1144
  * @param {Core.widget.Widget} event.source The widget being painted.
1186
1145
  * @param {boolean} event.firstPaint `true` if this is the first paint.
@@ -1283,11 +1242,69 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1283
1242
  WrapperHelper.devWarningContainer(instanceName, containerParam);
1284
1243
  }
1285
1244
 
1245
+ // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head
1246
+ // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check
1247
+ // finds the theme. The @font-face rules from component styles are also extracted to
1248
+ // document scope so document.fonts detects them (shadow-root @font-face is not reliably
1249
+ // included in document.fonts across all browsers).
1250
+ const shadowRoot = elementRef.nativeElement.getRootNode();
1251
+ if (shadowRoot instanceof ShadowRoot) {
1252
+ initThemeInShadowRoots();
1253
+ BryntumAIFilterFieldComponent.ensureFontsInDocument(shadowRoot);
1254
+ }
1255
+
1286
1256
  // @ts-ignore
1287
1257
  me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);
1288
1258
 
1289
1259
  }
1290
1260
 
1261
+ /**
1262
+ * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to
1263
+ * document.head as a single <style> element. This is needed because @font-face rules inside
1264
+ * a shadow root are not reliably included in document.fonts across all browsers, causing
1265
+ * Bryntum's CSS compatibility check to incorrectly report missing fonts.
1266
+ * Safe to call multiple times — the extraction runs only once per page.
1267
+ */
1268
+ private static ensureFontsInDocument(shadowRoot: ShadowRoot): void {
1269
+ if (document.querySelector('#b-shadow-root-fonts')) {
1270
+ return;
1271
+ }
1272
+
1273
+ const fontFaceRules: string[] = [];
1274
+
1275
+ const extractFromSheet = (sheet: CSSStyleSheet): void => {
1276
+ try {
1277
+ const rules = sheet.cssRules;
1278
+ for (let i = 0; i < rules.length; i++) {
1279
+ if (rules[i].type === CSSRule.FONT_FACE_RULE) {
1280
+ fontFaceRules.push(rules[i].cssText);
1281
+ }
1282
+ }
1283
+ }
1284
+ catch (_e) {
1285
+ // Cross-origin access may throw; silently skip
1286
+ }
1287
+ };
1288
+
1289
+ // adoptedStyleSheets (Angular 14+ / modern browsers)
1290
+ const adoptedSheets: CSSStyleSheet[] = (shadowRoot as any).adoptedStyleSheets ?? [];
1291
+ adoptedSheets.forEach(sheet => extractFromSheet(sheet));
1292
+
1293
+ // <style> elements (older Angular or fallback)
1294
+ shadowRoot.querySelectorAll('style').forEach(el => {
1295
+ if (el.sheet) {
1296
+ extractFromSheet(el.sheet);
1297
+ }
1298
+ });
1299
+
1300
+ if (fontFaceRules.length > 0) {
1301
+ const style = document.createElement('style');
1302
+ style.id = 'b-shadow-root-fonts';
1303
+ style.textContent = fontFaceRules.join('\n');
1304
+ document.head.appendChild(style);
1305
+ }
1306
+ }
1307
+
1291
1308
  /**
1292
1309
  * Watch for changes
1293
1310
  * @param changes