@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, CollectionFilter, CollectionFilterConfig, Color, ComboConfig, Container, DomConfig, FieldFilterPicker, FieldOption, KeyMapConfig, Layout, MaskConfig, MenuItemConfig, MenuItemEntry, Model, Rectangle, Scroller, ScrollerConfig, TabConfig, ToolbarItems, TooltipConfig, ValueFieldPlaceholders, VueConfig, Widget } from '@bryntum/core-thin';
10
+ import { AlignSpec, Base, CollectionFilter, CollectionFilterConfig, Color, ComboConfig, Container, DomConfig, FieldFilterPicker, FieldOption, KeyMapConfig, Layout, MaskConfig, MenuItemConfig, MenuItemEntry, Model, ReactJSX, Rectangle, Scroller, ScrollerConfig, TabConfig, ToolbarItems, TooltipConfig, ValueFieldPlaceholders, VueConfig, Widget } from '@bryntum/core-thin';
11
11
  import { GridContainerItemConfig, GridContainerLayoutConfig, Grid, GridFieldFilterPicker, GridFieldFilterPickerListeners } 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 BryntumGridFieldFilterPickerProps = {
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/GridFieldFilterPicker#config-adopt)
21
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#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/GridFieldFilterPicker#config-align)
26
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-align)
28
27
  */
29
28
  align ? : AlignSpec|string
30
29
  /**
@@ -37,8 +36,7 @@ export type BryntumGridFieldFilterPickerProps = {
37
36
  * Optional array of field names that are allowed as selectable properties for filters.
38
37
  * This is a subset of the field names found in the [grid](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-grid)'s columns. When supplied, only
39
38
  * the named fields will be shown in the property selector combo.
40
- * ...
41
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-allowedFieldNames)
39
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-allowedFieldNames)
42
40
  */
43
41
  allowedFieldNames ? : string[]
44
42
  /**
@@ -54,15 +52,13 @@ export type BryntumGridFieldFilterPickerProps = {
54
52
  /**
55
53
  * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject
56
54
  * into an element which will be linked using the `aria-describedby` attribute.
57
- * ...
58
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ariaDescription)
55
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ariaDescription)
59
56
  */
60
57
  ariaDescription ? : string
61
58
  /**
62
59
  * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject as
63
60
  * the `aria-label` attribute.
64
- * ...
65
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ariaLabel)
61
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ariaLabel)
66
62
  */
67
63
  ariaLabel ? : string
68
64
  /**
@@ -76,21 +72,18 @@ export type BryntumGridFieldFilterPickerProps = {
76
72
  /**
77
73
  * An object where property names with a truthy value indicate which events should bubble up the ownership
78
74
  * hierarchy when triggered.
79
- * ...
80
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-bubbleEvents)
75
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-bubbleEvents)
81
76
  */
82
77
  bubbleEvents ? : object
83
78
  /**
84
79
  * Set to `false` to not call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.
85
- * ...
86
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-callOnFunctions)
80
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-callOnFunctions)
87
81
  */
88
82
  callOnFunctions ? : boolean
89
83
  /**
90
84
  * By default, if an event handler throws an exception, the error propagates up the stack and the
91
85
  * application state is undefined. Code which follows the event handler will *not* be executed.
92
- * ...
93
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-catchEventHandlerExceptions)
86
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-catchEventHandlerExceptions)
94
87
  */
95
88
  catchEventHandlerExceptions ? : boolean
96
89
  /**
@@ -102,15 +95,13 @@ export type BryntumGridFieldFilterPickerProps = {
102
95
  * Custom CSS classes to add to element.
103
96
  * May be specified as a space separated string, or as an object in which property names
104
97
  * with truthy values are used as the class names:
105
- * ...
106
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-cls)
98
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-cls)
107
99
  */
108
100
  cls ? : string|object
109
101
  /**
110
102
  * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets
111
103
  * `style` block.
112
- * ...
113
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-color)
104
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-color)
114
105
  */
115
106
  color ? : Color
116
107
  /**
@@ -134,8 +125,7 @@ export type BryntumGridFieldFilterPickerProps = {
134
125
  * Custom CSS classes to add to the [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
135
126
  * May be specified as a space separated string, or as an object in which property names
136
127
  * with truthy values are used as the class names:
137
- * ...
138
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-contentElementCls)
128
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-contentElementCls)
139
129
  */
140
130
  contentElementCls ? : string|object
141
131
  /**
@@ -160,8 +150,7 @@ export type BryntumGridFieldFilterPickerProps = {
160
150
  /**
161
151
  * A [query](https://bryntum.com/products/grid/docs/api/Core/widget/Container#function-query) selector function which can identify the descendant widget to which
162
152
  * focus should be directed by default.
163
- * ...
164
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-defaultFocus)
153
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-defaultFocus)
165
154
  * @param {Core.widget.Widget} widget Widget passed to method
166
155
  * @returns {boolean} truthy value if widget is the default one
167
156
  */
@@ -171,9 +160,9 @@ export type BryntumGridFieldFilterPickerProps = {
171
160
  */
172
161
  defaults ? : GridContainerItemConfig
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/GridFieldFilterPicker#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/GridFieldFilterPicker#config-detectCSSCompatibilityIssues)
177
166
  */
178
167
  detectCSSCompatibilityIssues ? : boolean
179
168
  /**
@@ -185,40 +174,34 @@ export type BryntumGridFieldFilterPickerProps = {
185
174
  * [strips collection](https://bryntum.com/products/grid/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,
186
175
  * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's
187
176
  * body. Such widgets are called "edge strips".
188
- * ...
189
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-dock)
177
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-dock)
190
178
  */
191
179
  dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object
192
180
  /**
193
181
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
194
182
  * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a ´handleSelector´
195
183
  * property which controls when a drag should start.
196
- * ...
197
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-draggable)
184
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-draggable)
185
+ * @property {string} handleSelector CSS selector used to determine if drag can be started from a mouse-downed element inside the widget
198
186
  */
199
- draggable ? : boolean|{
200
- handleSelector?: string
201
- }
187
+ draggable ? : boolean|object
202
188
  /**
203
189
  * An object specifying attributes to assign to the root element of this widget.
204
190
  * Set `null` value to attribute to remove it.
205
- * ...
206
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-elementAttributes)
191
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-elementAttributes)
207
192
  */
208
193
  elementAttributes ? : Record<string, string|null>
209
194
  extraData ? : any
210
195
  /**
211
196
  * Dictionary of [FieldOption](https://bryntum.com/products/grid/docs/api/Core/widget/FieldFilterPicker#typedef-FieldOption) representing the fields against which filters can be defined,
212
197
  * keyed by field name.
213
- * ...
214
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-fields)
198
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-fields)
215
199
  */
216
200
  fields ? : Record<string, FieldOption>
217
201
  /**
218
202
  * Configuration object for the [CollectionFilter](https://bryntum.com/products/grid/docs/api/Core/util/CollectionFilter) displayed
219
203
  * and editable in this picker.
220
- * ...
221
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-filter)
204
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-filter)
222
205
  */
223
206
  filter ? : CollectionFilterConfig
224
207
  /**
@@ -237,8 +220,7 @@ export type BryntumGridFieldFilterPickerProps = {
237
220
  /**
238
221
  * Optional function that modifies the configuration of value fields shown for a filter. The default configuration
239
222
  * is received as an argument and the returned value will be used as the final configuration. For example:
240
- * ...
241
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-getValueFieldConfig)
223
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-getValueFieldConfig)
242
224
  * @param {Core.util.CollectionFilter} filter The filter being displayed
243
225
  * @param {GridContainerItemConfig} fieldConfig Configuration object for the value field
244
226
  * @returns {GridContainerItemConfig} the resulting configuration
@@ -249,8 +231,7 @@ export type BryntumGridFieldFilterPickerProps = {
249
231
  * appear as a selectable property for a filter, a column must have a `field` property.
250
232
  * If the column has a `text` property, that will be shown as the displayed text in the
251
233
  * selector; otherwise, the `field` property will be shown as-is.
252
- * ...
253
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-grid)
234
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-grid)
254
235
  */
255
236
  grid ? : Grid
256
237
  /**
@@ -265,25 +246,21 @@ export type BryntumGridFieldFilterPickerProps = {
265
246
  hidden ? : boolean
266
247
  /**
267
248
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
268
- * ...
269
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-hideAnimation)
249
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-hideAnimation)
270
250
  */
271
251
  hideAnimation ? : boolean|object
272
252
  /**
273
253
  * Specify `true` to make this container hide when it has no visible children (Either empty
274
254
  * or all children hidden).
275
- * ...
276
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-hideWhenEmpty)
255
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-hideWhenEmpty)
277
256
  */
278
257
  hideWhenEmpty ? : boolean
279
258
  /**
280
259
  * The HTML to display initially or a function returning the markup (called at widget construction time).
281
- * ...
282
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-html)
260
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-html)
283
261
  * @param {Core.widget.Widget} widget The calling Widget
284
- * @returns {string}
285
262
  */
286
- html ? : string|((widget: Widget) => string)|DomConfig|DomConfig[]|VueConfig
263
+ html ? : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX
287
264
  /**
288
265
  * The CSS class(es) to add when HTML content is being applied to this widget.
289
266
  */
@@ -294,16 +271,14 @@ export type BryntumGridFieldFilterPickerProps = {
294
271
  id ? : string
295
272
  /**
296
273
  * Determines if the widgets read-only state should be controlled by its parent.
297
- * ...
298
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ignoreParentReadOnly)
274
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ignoreParentReadOnly)
299
275
  */
300
276
  ignoreParentReadOnly ? : boolean
301
277
  /**
302
278
  * Convenience setting to align input fields of child widgets. By default, the Field input element is
303
279
  * placed immediately following the `label`. If you prefer to have all input fields aligned to the
304
280
  * right, set this config to `'end'`.
305
- * ...
306
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-inputFieldAlign)
281
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-inputFieldAlign)
307
282
  */
308
283
  inputFieldAlign ? : 'start'|'end'
309
284
  /**
@@ -321,55 +296,52 @@ export type BryntumGridFieldFilterPickerProps = {
321
296
  /**
322
297
  * An object containing typed child widget config objects or Widgets. May also be specified
323
298
  * as an array.
324
- * ...
325
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-items)
299
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-items)
326
300
  */
327
301
  items ? : Record<string, GridContainerItemConfig|MenuItemEntry>|(GridContainerItemConfig|MenuItemEntry|Widget)[]
328
302
  /**
329
303
  * An object whose keys are the [key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) name
330
304
  * and optional modifier prefixes: `'Ctrl+'`, `'Alt+'`, `'Meta+'`, and `'Shift+'` (case-insensitive). The values
331
305
  * 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/GridFieldFilterPicker#config-keyMap)
306
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-keyMap)
334
307
  */
335
308
  keyMap ? : Record<string, KeyMapConfig>
336
309
  /**
337
310
  * Convenience setting to use same label placement on all child widgets.
338
- * ...
339
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-labelPosition)
311
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-labelPosition)
340
312
  */
341
313
  labelPosition ? : 'before'|'above'|'align-before'|'auto'|null
314
+ /**
315
+ * Sets `labelWidth´ for all children of this Container, that does not define their own `labelWidth`.
316
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-labelWidth)
317
+ */
318
+ labelWidth ? : number|null
342
319
  /**
343
320
  * The short name of a helper class which manages rendering and styling of child items.
344
- * ...
345
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-layout)
321
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-layout)
346
322
  */
347
323
  layout ? : string|GridContainerLayoutConfig
348
324
  /**
349
325
  * The CSS style properties to apply to the [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
350
- * ...
351
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-layoutStyle)
326
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-layoutStyle)
352
327
  */
353
328
  layoutStyle ? : object
354
329
  /**
355
330
  * An array of [child item](https://bryntum.com/products/grid/docs/api/Core/widget/Container#config-items) *config objects* which is to be converted into
356
331
  * instances only when this Container is rendered, rather than eagerly at construct time.
357
- * ...
358
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-lazyItems)
332
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-lazyItems)
359
333
  */
360
334
  lazyItems ? : Record<string, GridContainerItemConfig>|GridContainerItemConfig[]|Widget[]
361
335
  /**
362
336
  * The listener set for this object.
363
- * ...
364
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-listeners)
337
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-listeners)
365
338
  */
366
339
  listeners ? : GridFieldFilterPickerListeners
367
340
  /**
368
341
  * A class translations of which are used for translating this entity.
369
342
  * This is often used when translations of an item are defined on its container class.
370
343
  * For example:
371
- * ...
372
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-localeClass)
344
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-localeClass)
373
345
  */
374
346
  localeClass ? : typeof Base
375
347
  /**
@@ -381,8 +353,7 @@ export type BryntumGridFieldFilterPickerProps = {
381
353
  * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),
382
354
  * you could use 'localeKey' meta configuration.
383
355
  * Example:
384
- * ...
385
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-localizableProperties)
356
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-localizableProperties)
386
357
  */
387
358
  localizableProperties ? : string[]
388
359
  /**
@@ -408,8 +379,7 @@ export type BryntumGridFieldFilterPickerProps = {
408
379
  maxHeight ? : string|number
409
380
  /**
410
381
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
411
- * ...
412
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-maximizeOnMobile)
382
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-maximizeOnMobile)
413
383
  */
414
384
  maximizeOnMobile ? : number|string
415
385
  /**
@@ -431,18 +401,15 @@ export type BryntumGridFieldFilterPickerProps = {
431
401
  * When this is configured as `true` a [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
432
402
  * is used to monitor this element for size changes caused by either style manipulation, or by CSS
433
403
  * layout.
434
- * ...
435
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-monitorResize)
404
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-monitorResize)
405
+ * @property {boolean} immediate Set to `true` to receive resize notifications immediately.
436
406
  */
437
- monitorResize ? : boolean|{
438
- immediate?: boolean
439
- }
407
+ monitorResize ? : boolean|object
440
408
  /**
441
409
  * An object containing default config objects which may be referenced by name in the [items](https://bryntum.com/products/grid/docs/api/Core/widget/Container#config-items)
442
410
  * config. For example, a specialized [Menu](https://bryntum.com/products/grid/docs/api/Core/widget/Menu) subclass may have a `namedItems` default
443
411
  * value defined like this:
444
- * ...
445
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-namedItems)
412
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-namedItems)
446
413
  */
447
414
  namedItems ? : Record<string, GridContainerItemConfig>
448
415
  /**
@@ -452,16 +419,14 @@ export type BryntumGridFieldFilterPickerProps = {
452
419
  /**
453
420
  * Overrides the built-in list of operators that are available for selection. Specify operators as
454
421
  * an object with data types as keys and lists of operators as values, like this:
455
- * ...
456
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-operators)
422
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-operators)
457
423
  */
458
424
  operators ? : object
459
425
  /**
460
426
  * 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
461
427
  * not participate in the standard layout of that widget, and must be positioned relatively to that
462
428
  * widget's [contentElement](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-contentElement).
463
- * ...
464
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-positioned)
429
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-positioned)
465
430
  */
466
431
  positioned ? : boolean
467
432
  /**
@@ -483,39 +448,40 @@ export type BryntumGridFieldFilterPickerProps = {
483
448
  readOnly ? : boolean
484
449
  /**
485
450
  * [Record](https://bryntum.com/products/grid/docs/api/Core/data/Model) whose values will be used to populate fields in the container.
486
- * ...
487
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-record)
451
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-record)
488
452
  */
489
453
  record ? : Model
490
454
  relayStoreEvents ? : boolean
491
455
  /**
492
456
  * Either a default `rendition` to apply to all child widgets, or a map of renditions keyed by child widget
493
457
  * `type`.
494
- * ...
495
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-rendition)
458
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-rendition)
496
459
  */
497
460
  rendition ? : string|Record<string, string>|null
498
461
  /**
499
462
  * Configure as `true` to have the component display a translucent ripple when its
500
463
  * [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
501
464
  * current theme supports ripples</em>. Out of the box, only the Material theme supports ripples.
502
- * ...
503
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ripple)
504
- */
505
- ripple ? : boolean|{
506
- delegate?: string
507
- color?: string
508
- radius?: number
509
- clip?: string
510
- }
465
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ripple)
466
+ * @property {string} [delegate] A CSS selector to filter which child elements trigger ripples. By default, the ripple is clipped to the triggering element.
467
+ * @property {string} [color] A CSS color name or specification.
468
+ * @property {number} [radius] The ending radius of the ripple. Note that it will be clipped by the target element by default.
469
+ * @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.
470
+ */
471
+ ripple ? : boolean|object
472
+ /**
473
+ * The ARIA role to apply to this widget's element. By default, this is set to `'presentation'` to avoid
474
+ * accidentally applying a role which may interfere with screen readers.
475
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-role)
476
+ */
477
+ role ? : string
511
478
  /**
512
479
  * 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`
513
480
  */
514
481
  rootElement ? : ShadowRoot|HTMLElement
515
482
  /**
516
483
  * This may be configured as `true` to make the widget's element use the `direction:rtl` style.
517
- * ...
518
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-rtl)
484
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-rtl)
519
485
  */
520
486
  rtl ? : boolean
521
487
  /**
@@ -523,8 +489,7 @@ export type BryntumGridFieldFilterPickerProps = {
523
489
  * in both axes. May be an object containing boolean `overflowX` and `overflowY` properties which are
524
490
  * applied to CSS style properties `overflowX` and `overflowY`. If they are boolean, they are translated to
525
491
  * CSS overflow properties thus:
526
- * ...
527
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-scrollable)
492
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-scrollable)
528
493
  */
529
494
  scrollable ? : boolean|ScrollerConfig|Scroller
530
495
  /**
@@ -534,8 +499,7 @@ export type BryntumGridFieldFilterPickerProps = {
534
499
  scrollAction ? : 'hide'|'realign'|null
535
500
  /**
536
501
  * *Only valid if this Widget is [floating](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-floating).*
537
- * ...
538
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-showAnimation)
502
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-showAnimation)
539
503
  */
540
504
  showAnimation ? : boolean|object
541
505
  /**
@@ -555,15 +519,13 @@ export type BryntumGridFieldFilterPickerProps = {
555
519
  * 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
556
520
  * [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
557
521
  * this widget:
558
- * ...
559
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tab)
522
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tab)
560
523
  */
561
524
  tab ? : boolean|TabConfig
562
525
  /**
563
526
  * When this container is used as a tab in a TabPanel, these items are added to the
564
527
  * [TabBar](https://bryntum.com/products/grid/docs/api/Core/widget/TabBar) when this container is the active tab.
565
- * ...
566
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tabBarItems)
528
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tabBarItems)
567
529
  */
568
530
  tabBarItems ? : ToolbarItems[]|Widget[]
569
531
  /**
@@ -572,15 +534,13 @@ export type BryntumGridFieldFilterPickerProps = {
572
534
  tag ? : string
573
535
  /**
574
536
  * Text alignment: 'left', 'center' or 'right'. Also accepts direction neutral 'start' and 'end'.
575
- * ...
576
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-textAlign)
537
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-textAlign)
577
538
  */
578
539
  textAlign ? : 'left'|'center'|'right'|'start'|'end'
579
540
  /**
580
541
  * Specify `true` for a container used to show text markup. It will apply the CSS class `b-text-content`
581
542
  * which specifies a default max-width that makes long text more readable.
582
- * ...
583
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-textContent)
543
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-textContent)
584
544
  */
585
545
  textContent ? : boolean
586
546
  /**
@@ -589,8 +549,7 @@ export type BryntumGridFieldFilterPickerProps = {
589
549
  title ? : string
590
550
  /**
591
551
  * Tooltip for the widget, either as a string or as a Tooltip config object.
592
- * ...
593
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tooltip)
552
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-tooltip)
594
553
  */
595
554
  tooltip ? : string|TooltipConfig|null
596
555
  /**
@@ -604,8 +563,7 @@ export type BryntumGridFieldFilterPickerProps = {
604
563
  * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified
605
564
  * as a space separated string, an array of strings, or as an object in which property names with truthy
606
565
  * values are used as the class names.
607
- * ...
608
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ui)
566
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-ui)
609
567
  */
610
568
  ui ? : string|object
611
569
  /**
@@ -629,14 +587,12 @@ export type BryntumGridFieldFilterPickerProps = {
629
587
  width ? : string|number
630
588
  /**
631
589
  * The x position for the widget.
632
- * ...
633
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-x)
590
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-x)
634
591
  */
635
592
  x ? : number
636
593
  /**
637
594
  * The y position for the widget.
638
- * ...
639
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-y)
595
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#config-y)
640
596
  */
641
597
  y ? : number
642
598
 
@@ -731,6 +687,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
731
687
  'items',
732
688
  'keyMap',
733
689
  'labelPosition',
690
+ 'labelWidth',
734
691
  'layout',
735
692
  'layoutStyle',
736
693
  'lazyItems',
@@ -759,6 +716,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
759
716
  'relayStoreEvents',
760
717
  'rendition',
761
718
  'ripple',
719
+ 'role',
762
720
  'rootElement',
763
721
  'rtl',
764
722
  'scrollable',
@@ -836,6 +794,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
836
794
  'propertyLocked',
837
795
  'relayStoreEvents',
838
796
  'ripple',
797
+ 'role',
839
798
  'rootElement',
840
799
  'scrollAction',
841
800
  'showAnimation',
@@ -856,7 +815,6 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
856
815
 
857
816
  private static bryntumProps: string[] = BryntumGridFieldFilterPickerComponent.bryntumFeatureNames.concat([
858
817
  'alignSelf',
859
- 'anchorSize',
860
818
  'appendTo',
861
819
  'callOnFunctions',
862
820
  'catchEventHandlerExceptions',
@@ -867,8 +825,6 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
867
825
  'disabled',
868
826
  'extraData',
869
827
  'flex',
870
- 'focusVisible',
871
- 'hasChanges',
872
828
  'height',
873
829
  'hidden',
874
830
  'html',
@@ -876,11 +832,10 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
876
832
  'inputFieldAlign',
877
833
  'insertBefore',
878
834
  'insertFirst',
879
- 'isSettingValues',
880
- 'isValid',
881
835
  'items',
882
836
  'keyMap',
883
837
  'labelPosition',
838
+ 'labelWidth',
884
839
  'layout',
885
840
  'layoutStyle',
886
841
  'margin',
@@ -942,9 +897,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
942
897
  @Input() defaults ! : GridContainerItemConfig;
943
898
  @Input() detectCSSCompatibilityIssues ! : boolean;
944
899
  @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;
945
- @Input() draggable ! : boolean|{
946
- handleSelector?: string
947
- };
900
+ @Input() draggable ! : boolean|object;
948
901
  @Input() elementAttributes ! : Record<string, string|null>;
949
902
  @Input() fields ! : Record<string, FieldOption>;
950
903
  @Input() filter ! : CollectionFilterConfig;
@@ -963,9 +916,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
963
916
  @Input() localizableProperties ! : string[];
964
917
  @Input() maskDefaults ! : MaskConfig;
965
918
  @Input() masked ! : boolean|string|MaskConfig;
966
- @Input() monitorResize ! : boolean|{
967
- immediate?: boolean
968
- };
919
+ @Input() monitorResize ! : boolean|object;
969
920
  @Input() namedItems ! : Record<string, GridContainerItemConfig>;
970
921
  @Input() operatorLocked ! : boolean;
971
922
  @Input() operators ! : object;
@@ -974,12 +925,8 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
974
925
  @Input() propertyFieldConfig ! : ComboConfig;
975
926
  @Input() propertyLocked ! : boolean;
976
927
  @Input() relayStoreEvents ! : boolean;
977
- @Input() ripple ! : boolean|{
978
- delegate?: string
979
- color?: string
980
- radius?: number
981
- clip?: string
982
- };
928
+ @Input() ripple ! : boolean|object;
929
+ @Input() role ! : string;
983
930
  @Input() rootElement ! : ShadowRoot|HTMLElement;
984
931
  @Input() scrollAction ! : 'hide'|'realign'|null;
985
932
  @Input() showAnimation ! : boolean|object;
@@ -1011,7 +958,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1011
958
  @Input() flex ! : number|string;
1012
959
  @Input() height ! : number|string;
1013
960
  @Input() hidden ! : boolean;
1014
- @Input() html ! : string|((widget: Widget) => string)|DomConfig|DomConfig[]|VueConfig;
961
+ @Input() html ! : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX|(string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX);
1015
962
  @Input() id ! : string;
1016
963
  @Input() inputFieldAlign ! : 'start'|'end';
1017
964
  @Input() insertBefore ! : HTMLElement|string;
@@ -1019,6 +966,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1019
966
  @Input() items ! : (GridContainerItemConfig|MenuItemConfig|Widget)[]|Record<string, GridContainerItemConfig|MenuItemConfig>|Widget[]|Record<string, GridContainerItemConfig|MenuItemEntry>|(GridContainerItemConfig|MenuItemEntry|Widget)[];
1020
967
  @Input() keyMap ! : Record<string, KeyMapConfig>;
1021
968
  @Input() labelPosition ! : 'before'|'above'|'align-before'|'auto'|null;
969
+ @Input() labelWidth ! : number|null;
1022
970
  @Input() layout ! : Layout|string|GridContainerLayoutConfig;
1023
971
  @Input() layoutStyle ! : object;
1024
972
  @Input() margin ! : number|string;
@@ -1040,13 +988,8 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1040
988
  @Input() y ! : number;
1041
989
 
1042
990
  // Properties only
1043
- @Input() anchorSize ! : number[];
1044
- @Input() focusVisible ! : boolean;
1045
- @Input() hasChanges ! : boolean;
1046
- @Input() isSettingValues ! : boolean;
1047
- @Input() isValid ! : boolean;
1048
- @Input() parent ! : Widget;
1049
- @Input() values ! : Record<string, object>;
991
+ @Input() parent ! : Widget;
992
+ @Input() values ! : Record<string, object>;
1050
993
 
1051
994
  // Events emitters
1052
995
  /**
@@ -1077,8 +1020,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1077
1020
  @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();
1078
1021
  /**
1079
1022
  * Fires when any other event is fired from the object.
1080
- * ...
1081
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#event-catchAll)
1023
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#event-catchAll)
1082
1024
  * @param {object} event Event object
1083
1025
  * @param {{[key: string]: any, type: string}} event.event The Object that contains event details
1084
1026
  * @param {string} event.event.type The type of the event which is caught by the listener
@@ -1144,8 +1086,7 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1144
1086
  /**
1145
1087
  * Triggered when a widget which had been in a non-visible state for any reason
1146
1088
  * achieves visibility.
1147
- * ...
1148
- * [View online docs...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#event-paint)
1089
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/GridFieldFilterPicker#event-paint)
1149
1090
  * @param {object} event Event object
1150
1091
  * @param {Core.widget.Widget} event.source The widget being painted.
1151
1092
  * @param {boolean} event.firstPaint `true` if this is the first paint.
@@ -1241,11 +1182,69 @@ export class BryntumGridFieldFilterPickerComponent implements OnInit, OnDestroy
1241
1182
  WrapperHelper.devWarningContainer(instanceName, containerParam);
1242
1183
  }
1243
1184
 
1185
+ // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head
1186
+ // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check
1187
+ // finds the theme. The @font-face rules from component styles are also extracted to
1188
+ // document scope so document.fonts detects them (shadow-root @font-face is not reliably
1189
+ // included in document.fonts across all browsers).
1190
+ const shadowRoot = elementRef.nativeElement.getRootNode();
1191
+ if (shadowRoot instanceof ShadowRoot) {
1192
+ initThemeInShadowRoots();
1193
+ BryntumGridFieldFilterPickerComponent.ensureFontsInDocument(shadowRoot);
1194
+ }
1195
+
1244
1196
  // @ts-ignore
1245
1197
  me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);
1246
1198
 
1247
1199
  }
1248
1200
 
1201
+ /**
1202
+ * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to
1203
+ * document.head as a single <style> element. This is needed because @font-face rules inside
1204
+ * a shadow root are not reliably included in document.fonts across all browsers, causing
1205
+ * Bryntum's CSS compatibility check to incorrectly report missing fonts.
1206
+ * Safe to call multiple times — the extraction runs only once per page.
1207
+ */
1208
+ private static ensureFontsInDocument(shadowRoot: ShadowRoot): void {
1209
+ if (document.querySelector('#b-shadow-root-fonts')) {
1210
+ return;
1211
+ }
1212
+
1213
+ const fontFaceRules: string[] = [];
1214
+
1215
+ const extractFromSheet = (sheet: CSSStyleSheet): void => {
1216
+ try {
1217
+ const rules = sheet.cssRules;
1218
+ for (let i = 0; i < rules.length; i++) {
1219
+ if (rules[i].type === CSSRule.FONT_FACE_RULE) {
1220
+ fontFaceRules.push(rules[i].cssText);
1221
+ }
1222
+ }
1223
+ }
1224
+ catch (_e) {
1225
+ // Cross-origin access may throw; silently skip
1226
+ }
1227
+ };
1228
+
1229
+ // adoptedStyleSheets (Angular 14+ / modern browsers)
1230
+ const adoptedSheets: CSSStyleSheet[] = (shadowRoot as any).adoptedStyleSheets ?? [];
1231
+ adoptedSheets.forEach(sheet => extractFromSheet(sheet));
1232
+
1233
+ // <style> elements (older Angular or fallback)
1234
+ shadowRoot.querySelectorAll('style').forEach(el => {
1235
+ if (el.sheet) {
1236
+ extractFromSheet(el.sheet);
1237
+ }
1238
+ });
1239
+
1240
+ if (fontFaceRules.length > 0) {
1241
+ const style = document.createElement('style');
1242
+ style.id = 'b-shadow-root-fonts';
1243
+ style.textContent = fontFaceRules.join('\n');
1244
+ document.head.appendChild(style);
1245
+ }
1246
+ }
1247
+
1249
1248
  /**
1250
1249
  * Watch for changes
1251
1250
  * @param changes