@bryntum/grid-angular-thin 7.2.4 → 7.3.0

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 +4 -4
  2. package/bundles/bryntum-grid-angular-thin.umd.js +761 -230
  3. package/bundles/bryntum-grid-angular-thin.umd.js.map +1 -1
  4. package/esm2015/lib/bryntum-a-i-filter-field.component.js +62 -14
  5. package/esm2015/lib/bryntum-checklist-filter-combo.component.js +62 -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 +62 -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 +738 -207
  17. package/fesm2015/bryntum-grid-angular-thin.js.map +1 -1
  18. package/lib/bryntum-a-i-filter-field.component.d.ts +87 -133
  19. package/lib/bryntum-checklist-filter-combo.component.d.ts +106 -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 +107 -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 +146 -141
  32. package/src/lib/bryntum-checklist-filter-combo.component.ts +166 -175
  33. package/src/lib/bryntum-grid-base.component.ts +275 -319
  34. package/src/lib/bryntum-grid-chart-designer.component.ts +126 -112
  35. package/src/lib/bryntum-grid-field-filter-picker-group.component.ts +152 -152
  36. package/src/lib/bryntum-grid-field-filter-picker.component.ts +152 -153
  37. package/src/lib/bryntum-grid.component.ts +275 -319
  38. package/src/lib/bryntum-group-bar.component.ts +132 -122
  39. package/src/lib/bryntum-theme-combo.component.ts +128 -0
  40. package/src/lib/bryntum-tree-combo.component.ts +166 -176
  41. package/src/lib/bryntum-tree-grid.component.ts +275 -319
  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
  /**
@@ -110,15 +104,13 @@ export type BryntumAIFilterFieldProps = {
110
104
  * Custom CSS classes to add to element.
111
105
  * May be specified as a space separated string, or as an object in which property names
112
106
  * 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)
107
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-cls)
115
108
  */
116
109
  cls ? : string|object
117
110
  /**
118
111
  * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets
119
112
  * `style` block.
120
- * ...
121
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-color)
113
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-color)
122
114
  */
123
115
  color ? : Color
124
116
  /**
@@ -135,15 +127,13 @@ export type BryntumAIFilterFieldProps = {
135
127
  * The configuration for additional items associated to this field. This is typically used to add contextual
136
128
  * fields related to a [checkbox](https://bryntum.com/products/grid/docs/api/Core/widget/Checkbox) or [radio button](#Core/widget/Radio). See
137
129
  * these classes for examples of nested fields.
138
- * ...
139
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-container)
130
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-container)
140
131
  */
141
- container ? : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig|FieldContainer
132
+ container ? : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig
142
133
  /**
143
134
  * The config controls how the value of nested items are handled when a parent container gets or sets its
144
135
  * [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)
136
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-containValues)
147
137
  * @param {Core.widget.Field} field Field instance
148
138
  * @returns {boolean}
149
139
  */
@@ -152,8 +142,7 @@ export type BryntumAIFilterFieldProps = {
152
142
  * Custom CSS classes to add to the [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
153
143
  * May be specified as a space separated string, or as an object in which property names
154
144
  * 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)
145
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-contentElementCls)
157
146
  */
158
147
  contentElementCls ? : string|object
159
148
  /**
@@ -171,16 +160,15 @@ export type BryntumAIFilterFieldProps = {
171
160
  */
172
161
  defaultBindProperty ? : string
173
162
  /**
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)
163
+ * Check for CSS compatibility and inclusion related issues and try to auto fix them. Performs the following
164
+ * checks:
165
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-detectCSSCompatibilityIssues)
177
166
  */
178
167
  detectCSSCompatibilityIssues ? : boolean
179
168
  /**
180
169
  * 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
170
  * 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)
171
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-disabled)
184
172
  */
185
173
  disabled ? : boolean|'inert'
186
174
  /**
@@ -188,33 +176,28 @@ export type BryntumAIFilterFieldProps = {
188
176
  * [strips collection](https://bryntum.com/products/grid/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,
189
177
  * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's
190
178
  * body. Such widgets are called "edge strips".
191
- * ...
192
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-dock)
179
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-dock)
193
180
  */
194
181
  dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object
195
182
  /**
196
183
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
197
184
  * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a ´handleSelector´
198
185
  * 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)
186
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-draggable)
187
+ * @property {string} handleSelector CSS selector used to determine if drag can be started from a mouse-downed element inside the widget
201
188
  */
202
- draggable ? : boolean|{
203
- handleSelector?: string
204
- }
189
+ draggable ? : boolean|object
205
190
  /**
206
191
  * Set to `false` to prevent user from editing the field. For TextFields it is basically the same as setting
207
192
  * [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
193
  * 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)
194
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-editable)
211
195
  */
212
196
  editable ? : boolean
213
197
  /**
214
198
  * An object specifying attributes to assign to the root element of this widget.
215
199
  * 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)
200
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-elementAttributes)
218
201
  */
219
202
  elementAttributes ? : Record<string, string|null>
220
203
  extraData ? : any
@@ -243,8 +226,7 @@ export type BryntumAIFilterFieldProps = {
243
226
  hidden ? : boolean
244
227
  /**
245
228
  * *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)
229
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hideAnimation)
248
230
  */
249
231
  hideAnimation ? : boolean|object
250
232
  /**
@@ -254,8 +236,7 @@ export type BryntumAIFilterFieldProps = {
254
236
  /**
255
237
  * An optional string to display inside the input field as an overlay. This can be useful for displaying
256
238
  * a field's units.
257
- * ...
258
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hint)
239
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hint)
259
240
  * @param {object} data A data object
260
241
  * @param {Core.widget.Field} data.source A reference to the field instance
261
242
  * @param {any} data.value The current value of the field
@@ -266,8 +247,7 @@ export type BryntumAIFilterFieldProps = {
266
247
  * 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
248
  * Since this can allow malicious content to be executed, be sure not to include user-entered data or to
268
249
  * 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)
250
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-hintHtml)
271
251
  * @param {object} data A data object
272
252
  * @param {Core.widget.Field} data.source A reference to the field instance
273
253
  * @param {any} data.value The current value of the field
@@ -280,16 +260,14 @@ export type BryntumAIFilterFieldProps = {
280
260
  id ? : string
281
261
  /**
282
262
  * 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)
263
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ignoreParentReadOnly)
285
264
  */
286
265
  ignoreParentReadOnly ? : boolean
287
266
  /**
288
267
  * Set this config to `true` to always display items horizontally along with this field. This assigns an
289
268
  * [hbox](https://bryntum.com/products/grid/docs/api/Core/widget/layout/Box) as the [layout](#Core/widget/Container#config-layout) to the
290
269
  * [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)
270
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-inline)
293
271
  */
294
272
  inline ? : boolean
295
273
  /**
@@ -329,16 +307,14 @@ export type BryntumAIFilterFieldProps = {
329
307
  * An object whose keys are the [key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) name
330
308
  * and optional modifier prefixes: `'Ctrl+'`, `'Alt+'`, `'Meta+'`, and `'Shift+'` (case-insensitive). The values
331
309
  * 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)
310
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyMap)
334
311
  */
335
312
  keyMap ? : Record<string, KeyMapConfig>
336
313
  /**
337
314
  * The delay in milliseconds to wait after the last keystroke before triggering a change event.
338
315
  * Set to 0 to not trigger change events from keystrokes (listen for input event instead to have
339
316
  * 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)
317
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-keyStrokeChangeDelay)
342
318
  */
343
319
  keyStrokeChangeDelay ? : number
344
320
  /**
@@ -351,15 +327,15 @@ export type BryntumAIFilterFieldProps = {
351
327
  labelCls ? : string|object
352
328
  /**
353
329
  * 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)
330
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labelPosition)
356
331
  */
357
332
  labelPosition ? : 'before'|'above'|null
358
333
  /**
359
334
  * The labels to add either before or after the input field.
360
335
  * Each label may have the following properties:
361
- * ...
362
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labels)
336
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-labels)
337
+ * @property {string} html Label text
338
+ * @property {'start','end'} align Which end of the file the label should go
363
339
  */
364
340
  labels ? : object[]
365
341
  /**
@@ -368,16 +344,14 @@ export type BryntumAIFilterFieldProps = {
368
344
  labelWidth ? : string|number
369
345
  /**
370
346
  * The listener set for this object.
371
- * ...
372
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-listeners)
347
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-listeners)
373
348
  */
374
349
  listeners ? : AIFilterFieldListeners
375
350
  /**
376
351
  * A class translations of which are used for translating this entity.
377
352
  * This is often used when translations of an item are defined on its container class.
378
353
  * For example:
379
- * ...
380
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localeClass)
354
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localeClass)
381
355
  */
382
356
  localeClass ? : typeof Base
383
357
  /**
@@ -389,8 +363,7 @@ export type BryntumAIFilterFieldProps = {
389
363
  * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),
390
364
  * you could use 'localeKey' meta configuration.
391
365
  * Example:
392
- * ...
393
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localizableProperties)
366
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-localizableProperties)
394
367
  */
395
368
  localizableProperties ? : string[]
396
369
  /**
@@ -416,8 +389,7 @@ export type BryntumAIFilterFieldProps = {
416
389
  maxHeight ? : string|number
417
390
  /**
418
391
  * *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)
392
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-maximizeOnMobile)
421
393
  */
422
394
  maximizeOnMobile ? : number|string
423
395
  /**
@@ -447,18 +419,15 @@ export type BryntumAIFilterFieldProps = {
447
419
  * When this is configured as `true` a [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
448
420
  * is used to monitor this element for size changes caused by either style manipulation, or by CSS
449
421
  * layout.
450
- * ...
451
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-monitorResize)
422
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-monitorResize)
423
+ * @property {boolean} immediate Set to `true` to receive resize notifications immediately.
452
424
  */
453
- monitorResize ? : boolean|{
454
- immediate?: boolean
455
- }
425
+ monitorResize ? : boolean|object
456
426
  /**
457
427
  * Name of the field which is used as a key to get/set values from/to the field.
458
428
  * 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
429
  * [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)
430
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-name)
462
431
  */
463
432
  name ? : string
464
433
  /**
@@ -469,8 +438,7 @@ export type BryntumAIFilterFieldProps = {
469
438
  * 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
439
  * not participate in the standard layout of that widget, and must be positioned relatively to that
471
440
  * 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)
441
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-positioned)
474
442
  */
475
443
  positioned ? : boolean
476
444
  /**
@@ -485,15 +453,13 @@ export type BryntumAIFilterFieldProps = {
485
453
  /**
486
454
  * Makes the field unmodifiable by user action. The input area is not editable, and triggers
487
455
  * are unresponsive.
488
- * ...
489
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-readOnly)
456
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-readOnly)
490
457
  */
491
458
  readOnly ? : boolean
492
459
  relayStoreEvents ? : boolean
493
460
  /**
494
461
  * 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)
462
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rendition)
497
463
  */
498
464
  rendition ? : 'outlined'|'filled'|string
499
465
  /**
@@ -512,23 +478,26 @@ export type BryntumAIFilterFieldProps = {
512
478
  * Configure as `true` to have the component display a translucent ripple when its
513
479
  * [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
480
  * 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
- }
481
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ripple)
482
+ * @property {string} [delegate] A CSS selector to filter which child elements trigger ripples. By default, the ripple is clipped to the triggering element.
483
+ * @property {string} [color] A CSS color name or specification.
484
+ * @property {number} [radius] The ending radius of the ripple. Note that it will be clipped by the target element by default.
485
+ * @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.
486
+ */
487
+ ripple ? : boolean|object
488
+ /**
489
+ * The ARIA role to apply to this widget's element. By default, this is set to `'presentation'` to avoid
490
+ * accidentally applying a role which may interfere with screen readers.
491
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-role)
492
+ */
493
+ role ? : string
524
494
  /**
525
495
  * 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
496
  */
527
497
  rootElement ? : ShadowRoot|HTMLElement
528
498
  /**
529
499
  * 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)
500
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-rtl)
532
501
  */
533
502
  rtl ? : boolean
534
503
  /**
@@ -538,8 +507,7 @@ export type BryntumAIFilterFieldProps = {
538
507
  scrollAction ? : 'hide'|'realign'|null
539
508
  /**
540
509
  * *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)
510
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-showAnimation)
543
511
  */
544
512
  showAnimation ? : boolean|object
545
513
  /**
@@ -568,8 +536,7 @@ export type BryntumAIFilterFieldProps = {
568
536
  * 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
537
  * [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
538
  * this widget:
571
- * ...
572
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tab)
539
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tab)
573
540
  */
574
541
  tab ? : boolean|TabConfig
575
542
  /**
@@ -577,14 +544,12 @@ export type BryntumAIFilterFieldProps = {
577
544
  * is equivalent to natural tab order, but is unnecessary for fields since they are naturally tabbable
578
545
  * (i.e., accessible via the TAB key). Setting to `-1` disables tabbability but allows for focus to be set
579
546
  * to the element programmatically.
580
- * ...
581
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tabIndex)
547
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tabIndex)
582
548
  */
583
549
  tabIndex ? : number
584
550
  /**
585
551
  * 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)
552
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-textAlign)
588
553
  */
589
554
  textAlign ? : 'left'|'center'|'right'|'start'|'end'
590
555
  /**
@@ -593,24 +558,21 @@ export type BryntumAIFilterFieldProps = {
593
558
  title ? : string
594
559
  /**
595
560
  * 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)
561
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-tooltip)
598
562
  */
599
563
  tooltip ? : string|TooltipConfig|null
600
564
  /**
601
565
  * The triggers to add either before or after the input field. Each property name is the reference by which
602
566
  * 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)
567
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-triggers)
605
568
  */
606
- triggers ? : Record<string, FieldTriggerConfig>|Record<string, Widget>
569
+ triggers ? : Record<string, FieldTriggerConfig>
607
570
  type ? : 'aifilterfield'
608
571
  /**
609
572
  * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified
610
573
  * as a space separated string, an array of strings, or as an object in which property names with truthy
611
574
  * values are used as the class names.
612
- * ...
613
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ui)
575
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-ui)
614
576
  */
615
577
  ui ? : string|object
616
578
  /**
@@ -635,14 +597,12 @@ export type BryntumAIFilterFieldProps = {
635
597
  width ? : string|number
636
598
  /**
637
599
  * The x position for the widget.
638
- * ...
639
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-x)
600
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-x)
640
601
  */
641
602
  x ? : number
642
603
  /**
643
604
  * The y position for the widget.
644
- * ...
645
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-y)
605
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-y)
646
606
  */
647
607
  y ? : number
648
608
 
@@ -770,6 +730,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
770
730
  'required',
771
731
  'revertOnEscape',
772
732
  'ripple',
733
+ 'role',
773
734
  'rootElement',
774
735
  'rtl',
775
736
  'scrollAction',
@@ -852,6 +813,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
852
813
  'relayStoreEvents',
853
814
  'revertOnEscape',
854
815
  'ripple',
816
+ 'role',
855
817
  'rootElement',
856
818
  'scrollAction',
857
819
  'showAnimation',
@@ -870,7 +832,6 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
870
832
 
871
833
  private static bryntumProps: string[] = BryntumAIFilterFieldComponent.bryntumFeatureNames.concat([
872
834
  'alignSelf',
873
- 'anchorSize',
874
835
  'appendTo',
875
836
  'badge',
876
837
  'callOnFunctions',
@@ -883,7 +844,6 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
883
844
  'editable',
884
845
  'extraData',
885
846
  'flex',
886
- 'focusVisible',
887
847
  'formula',
888
848
  'height',
889
849
  'hidden',
@@ -948,16 +908,14 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
948
908
  @Input() color ! : Color;
949
909
  @Input() config ! : object;
950
910
  @Input() constrainTo ! : HTMLElement|Widget|Rectangle;
951
- @Input() container ! : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig|FieldContainer;
911
+ @Input() container ! : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|FieldContainerConfig;
952
912
  @Input() containValues ! : boolean|string|((field: Field) => boolean);
953
913
  @Input() contentElementCls ! : string|object;
954
914
  @Input() dataField ! : string;
955
915
  @Input() defaultBindProperty ! : string;
956
916
  @Input() detectCSSCompatibilityIssues ! : boolean;
957
917
  @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;
958
- @Input() draggable ! : boolean|{
959
- handleSelector?: string
960
- };
918
+ @Input() draggable ! : boolean|object;
961
919
  @Input() elementAttributes ! : Record<string, string|null>;
962
920
  @Input() floating ! : boolean;
963
921
  @Input() hideAnimation ! : boolean|object;
@@ -984,21 +942,15 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
984
942
  @Input() masked ! : boolean|string|MaskConfig;
985
943
  @Input() maxLength ! : number;
986
944
  @Input() minLength ! : number;
987
- @Input() monitorResize ! : boolean|{
988
- immediate?: boolean
989
- };
945
+ @Input() monitorResize ! : boolean|object;
990
946
  @Input() name ! : string;
991
947
  @Input() positioned ! : boolean;
992
948
  @Input() preventTooltipOnTouch ! : boolean;
993
949
  @Input() progressText ! : string;
994
950
  @Input() relayStoreEvents ! : boolean;
995
951
  @Input() revertOnEscape ! : boolean;
996
- @Input() ripple ! : boolean|{
997
- delegate?: string
998
- color?: string
999
- radius?: number
1000
- clip?: string
1001
- };
952
+ @Input() ripple ! : boolean|object;
953
+ @Input() role ! : string;
1002
954
  @Input() rootElement ! : ShadowRoot|HTMLElement;
1003
955
  @Input() scrollAction ! : 'hide'|'realign'|null;
1004
956
  @Input() showAnimation ! : boolean|object;
@@ -1055,14 +1007,12 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1055
1007
  @Input() y ! : number;
1056
1008
 
1057
1009
  // 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;
1010
+ @Input() content ! : string;
1011
+ @Input() formula ! : string;
1012
+ @Input() html ! : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX;
1013
+ @Input() input ! : HTMLElement;
1014
+ @Input() parent ! : Widget;
1015
+ @Input() scrollable ! : Scroller;
1066
1016
 
1067
1017
  // Events emitters
1068
1018
  /**
@@ -1099,8 +1049,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1099
1049
  @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();
1100
1050
  /**
1101
1051
  * 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)
1052
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-catchAll)
1104
1053
  * @param {object} event Event object
1105
1054
  * @param {{[key: string]: any, type: string}} event.event The Object that contains event details
1106
1055
  * @param {string} event.event.type The type of the event which is caught by the listener
@@ -1120,8 +1069,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1120
1069
  @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
1070
  /**
1122
1071
  * 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)
1072
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-clear)
1125
1073
  * @param {object} event Event object
1126
1074
  * @param {Core.widget.Field,any} event.source This Field
1127
1075
  */
@@ -1179,8 +1127,7 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1179
1127
  /**
1180
1128
  * Triggered when a widget which had been in a non-visible state for any reason
1181
1129
  * achieves visibility.
1182
- * ...
1183
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-paint)
1130
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-paint)
1184
1131
  * @param {object} event Event object
1185
1132
  * @param {Core.widget.Widget} event.source The widget being painted.
1186
1133
  * @param {boolean} event.firstPaint `true` if this is the first paint.
@@ -1283,11 +1230,69 @@ export class BryntumAIFilterFieldComponent implements OnInit, OnDestroy {
1283
1230
  WrapperHelper.devWarningContainer(instanceName, containerParam);
1284
1231
  }
1285
1232
 
1233
+ // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head
1234
+ // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check
1235
+ // finds the theme. The @font-face rules from component styles are also extracted to
1236
+ // document scope so document.fonts detects them (shadow-root @font-face is not reliably
1237
+ // included in document.fonts across all browsers).
1238
+ const shadowRoot = elementRef.nativeElement.getRootNode();
1239
+ if (shadowRoot instanceof ShadowRoot) {
1240
+ initThemeInShadowRoots();
1241
+ BryntumAIFilterFieldComponent.ensureFontsInDocument(shadowRoot);
1242
+ }
1243
+
1286
1244
  // @ts-ignore
1287
1245
  me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);
1288
1246
 
1289
1247
  }
1290
1248
 
1249
+ /**
1250
+ * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to
1251
+ * document.head as a single <style> element. This is needed because @font-face rules inside
1252
+ * a shadow root are not reliably included in document.fonts across all browsers, causing
1253
+ * Bryntum's CSS compatibility check to incorrectly report missing fonts.
1254
+ * Safe to call multiple times — the extraction runs only once per page.
1255
+ */
1256
+ private static ensureFontsInDocument(shadowRoot: ShadowRoot): void {
1257
+ if (document.querySelector('#b-shadow-root-fonts')) {
1258
+ return;
1259
+ }
1260
+
1261
+ const fontFaceRules: string[] = [];
1262
+
1263
+ const extractFromSheet = (sheet: CSSStyleSheet): void => {
1264
+ try {
1265
+ const rules = sheet.cssRules;
1266
+ for (let i = 0; i < rules.length; i++) {
1267
+ if (rules[i].type === CSSRule.FONT_FACE_RULE) {
1268
+ fontFaceRules.push(rules[i].cssText);
1269
+ }
1270
+ }
1271
+ }
1272
+ catch (_e) {
1273
+ // Cross-origin access may throw; silently skip
1274
+ }
1275
+ };
1276
+
1277
+ // adoptedStyleSheets (Angular 14+ / modern browsers)
1278
+ const adoptedSheets: CSSStyleSheet[] = (shadowRoot as any).adoptedStyleSheets ?? [];
1279
+ adoptedSheets.forEach(sheet => extractFromSheet(sheet));
1280
+
1281
+ // <style> elements (older Angular or fallback)
1282
+ shadowRoot.querySelectorAll('style').forEach(el => {
1283
+ if (el.sheet) {
1284
+ extractFromSheet(el.sheet);
1285
+ }
1286
+ });
1287
+
1288
+ if (fontFaceRules.length > 0) {
1289
+ const style = document.createElement('style');
1290
+ style.id = 'b-shadow-root-fonts';
1291
+ style.textContent = fontFaceRules.join('\n');
1292
+ document.head.appendChild(style);
1293
+ }
1294
+ }
1295
+
1291
1296
  /**
1292
1297
  * Watch for changes
1293
1298
  * @param changes