@bryntum/grid-angular-thin 7.2.3 → 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.
- package/README.md +4 -4
- package/bundles/bryntum-grid-angular-thin.umd.js +761 -230
- package/bundles/bryntum-grid-angular-thin.umd.js.map +1 -1
- package/esm2015/lib/bryntum-a-i-filter-field.component.js +62 -14
- package/esm2015/lib/bryntum-checklist-filter-combo.component.js +62 -14
- package/esm2015/lib/bryntum-grid-base.component.js +78 -35
- package/esm2015/lib/bryntum-grid-chart-designer.component.js +61 -12
- package/esm2015/lib/bryntum-grid-field-filter-picker-group.component.js +65 -21
- package/esm2015/lib/bryntum-grid-field-filter-picker.component.js +65 -21
- package/esm2015/lib/bryntum-grid.component.js +78 -35
- package/esm2015/lib/bryntum-group-bar.component.js +61 -12
- package/esm2015/lib/bryntum-tree-combo.component.js +62 -14
- package/esm2015/lib/bryntum-tree-grid.component.js +78 -35
- package/esm2015/lib/grid.module.js +5 -4
- package/esm2015/lib/shadowdom.helper.js +82 -0
- package/fesm2015/bryntum-grid-angular-thin.js +738 -207
- package/fesm2015/bryntum-grid-angular-thin.js.map +1 -1
- package/lib/bryntum-a-i-filter-field.component.d.ts +87 -133
- package/lib/bryntum-checklist-filter-combo.component.d.ts +106 -166
- package/lib/bryntum-grid-base.component.d.ts +238 -303
- package/lib/bryntum-grid-chart-designer.component.d.ts +71 -108
- package/lib/bryntum-grid-field-filter-picker-group.component.d.ts +93 -143
- package/lib/bryntum-grid-field-filter-picker.component.d.ts +94 -145
- package/lib/bryntum-grid.component.d.ts +238 -303
- package/lib/bryntum-group-bar.component.d.ts +77 -118
- package/lib/bryntum-tree-combo.component.d.ts +107 -168
- package/lib/bryntum-tree-grid.component.d.ts +238 -303
- package/lib/grid.module.d.ts +2 -1
- package/lib/shadowdom.helper.d.ts +3 -0
- package/package.json +1 -1
- package/src/lib/bryntum-a-i-filter-field.component.ts +146 -141
- package/src/lib/bryntum-checklist-filter-combo.component.ts +166 -175
- package/src/lib/bryntum-grid-base.component.ts +275 -319
- package/src/lib/bryntum-grid-chart-designer.component.ts +126 -112
- package/src/lib/bryntum-grid-field-filter-picker-group.component.ts +152 -152
- package/src/lib/bryntum-grid-field-filter-picker.component.ts +152 -153
- package/src/lib/bryntum-grid.component.ts +275 -319
- package/src/lib/bryntum-group-bar.component.ts +132 -122
- package/src/lib/bryntum-theme-combo.component.ts +128 -0
- package/src/lib/bryntum-tree-combo.component.ts +166 -176
- package/src/lib/bryntum-tree-grid.component.ts +275 -319
- package/src/lib/grid.module.ts +2 -1
- 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,
|
|
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
|
|
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
|
|
175
|
-
*
|
|
176
|
-
* [
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* [
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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()
|
|
1059
|
-
@Input()
|
|
1060
|
-
@Input()
|
|
1061
|
-
@Input()
|
|
1062
|
-
@Input()
|
|
1063
|
-
@Input()
|
|
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
|