@bryntum/grid-react-thin 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +52 -0
  2. package/lib/BryntumAIFilterField.d.ts +232 -0
  3. package/lib/BryntumAIFilterField.js +168 -0
  4. package/lib/BryntumAIFilterField.js.map +1 -0
  5. package/lib/BryntumChecklistFilterCombo.d.ts +269 -0
  6. package/lib/BryntumChecklistFilterCombo.js +205 -0
  7. package/lib/BryntumChecklistFilterCombo.js.map +1 -0
  8. package/lib/BryntumGrid.d.ts +845 -0
  9. package/lib/BryntumGrid.js +335 -0
  10. package/lib/BryntumGrid.js.map +1 -0
  11. package/lib/BryntumGridBase.d.ts +843 -0
  12. package/lib/BryntumGridBase.js +333 -0
  13. package/lib/BryntumGridBase.js.map +1 -0
  14. package/lib/BryntumGridChartDesigner.d.ts +163 -0
  15. package/lib/BryntumGridChartDesigner.js +127 -0
  16. package/lib/BryntumGridChartDesigner.js.map +1 -0
  17. package/lib/BryntumGridFieldFilterPicker.d.ts +204 -0
  18. package/lib/BryntumGridFieldFilterPicker.js +162 -0
  19. package/lib/BryntumGridFieldFilterPicker.js.map +1 -0
  20. package/lib/BryntumGridFieldFilterPickerGroup.d.ts +207 -0
  21. package/lib/BryntumGridFieldFilterPickerGroup.js +163 -0
  22. package/lib/BryntumGridFieldFilterPickerGroup.js.map +1 -0
  23. package/lib/BryntumGroupBar.d.ts +209 -0
  24. package/lib/BryntumGroupBar.js +152 -0
  25. package/lib/BryntumGroupBar.js.map +1 -0
  26. package/lib/BryntumTreeCombo.d.ts +267 -0
  27. package/lib/BryntumTreeCombo.js +202 -0
  28. package/lib/BryntumTreeCombo.js.map +1 -0
  29. package/lib/BryntumTreeGrid.d.ts +844 -0
  30. package/lib/BryntumTreeGrid.js +334 -0
  31. package/lib/BryntumTreeGrid.js.map +1 -0
  32. package/lib/WrapperHelper.d.ts +26 -0
  33. package/lib/WrapperHelper.js +569 -0
  34. package/lib/WrapperHelper.js.map +1 -0
  35. package/lib/index.d.ts +10 -0
  36. package/lib/index.js +11 -0
  37. package/lib/index.js.map +1 -0
  38. package/license.pdf +0 -0
  39. package/licenses.md +310 -0
  40. package/package.json +25 -0
  41. package/src/BryntumAIFilterField.tsx +999 -0
  42. package/src/BryntumChecklistFilterCombo.tsx +1242 -0
  43. package/src/BryntumGrid.tsx +2403 -0
  44. package/src/BryntumGridBase.tsx +2400 -0
  45. package/src/BryntumGridChartDesigner.tsx +729 -0
  46. package/src/BryntumGridFieldFilterPicker.tsx +957 -0
  47. package/src/BryntumGridFieldFilterPickerGroup.tsx +971 -0
  48. package/src/BryntumGroupBar.tsx +915 -0
  49. package/src/BryntumTreeCombo.tsx +1231 -0
  50. package/src/BryntumTreeGrid.tsx +2402 -0
  51. package/src/WrapperHelper.tsx +1125 -0
  52. package/src/index.ts +14 -0
package/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # React wrapper for Bryntum Grid
2
+
3
+ This package contains a wrapper that encapsulates Bryntum Grid and turns it into a React component, exposing
4
+ configuration options, properties, features, and events.
5
+
6
+ # Bryntum repository access setup
7
+
8
+ This npm package requires access to Bryntum private NPM repository. You must be logged-in to this repository as a
9
+ licensed or trial user to access it.
10
+
11
+ Please check [Online npm repository guide](https://bryntum.com/docs/pkgOnlineName/guide/Grid/npm-repository) for
12
+ detailed information on the sign-up/login process.
13
+
14
+ # Installation
15
+
16
+ The installation is performed by issuing the installation command in the root of the application folder. The specific
17
+ command depends on the package manager used by the application.
18
+
19
+ The following are most frequently used:
20
+
21
+ Install using `npm`:
22
+ ```
23
+
24
+ npm install @bryntum/grid-react@7.1.1
25
+ ```
26
+
27
+ Install using `yarn`:
28
+ ```
29
+
30
+ yarn add @bryntum/grid-react@7.1.1
31
+ ```
32
+
33
+ # Integration guide
34
+
35
+ To get more information on the package installation and use, use
36
+ [React Integration Guide](https://bryntum.com/docs/pkgOnlineName/guide/Grid/integration/react/guide)
37
+
38
+ # Online References
39
+
40
+ * [Bryntum npm repository guide](https://bryntum.com/products/grid/docs/guide/Grid/npm-repository)
41
+ * [Bryntum Grid documentation](https://bryntum.com/products/grid/docs/)
42
+ * [Bryntum Grid examples](https://bryntum.com/products/grid/examples/)
43
+ * [Bryntum support Forum](https://forum.bryntum.com/)
44
+ * [Contacts us](https://bryntum.com/contact/)
45
+
46
+ # License and Copyright
47
+
48
+ This wrapper depends on Bryntum Grid, which is commercial software and requires a paid license.
49
+ Please visit the [Bryntum Grid End User License](https://bryntum.com/products/grid/license/) for the full text of the license.
50
+
51
+ Copyright © 2009-2026, Bryntum
52
+ All rights reserved.
@@ -0,0 +1,232 @@
1
+ import React from 'react';
2
+ import { AlignSpec, Base, Field, FieldContainer, FieldContainerConfig, FieldTriggerConfig, KeyMapConfig, MaskConfig, Model, Rectangle, TabConfig, TooltipConfig, Widget } from '@bryntum/core-thin';
3
+ import { AIFilterField, AIFilterFieldListeners, GridContainerItemConfig, Grid } from '@bryntum/grid-thin';
4
+ import { processWidgetContent } from './WrapperHelper.js';
5
+ export declare type BryntumAIFilterFieldProps = {
6
+ adopt?: HTMLElement | string;
7
+ align?: AlignSpec | string;
8
+ alignSelf?: string;
9
+ anchor?: boolean;
10
+ appendTo?: HTMLElement | string;
11
+ ariaDescription?: string;
12
+ ariaLabel?: string;
13
+ autoComplete?: string;
14
+ autoSelect?: boolean;
15
+ badge?: string;
16
+ bubbleEvents?: object;
17
+ callOnFunctions?: boolean;
18
+ catchEventHandlerExceptions?: boolean;
19
+ centered?: boolean;
20
+ clearable?: boolean | FieldTriggerConfig;
21
+ client?: Grid;
22
+ cls?: string | object;
23
+ color?: string;
24
+ column?: number;
25
+ config?: object;
26
+ constrainTo?: HTMLElement | Widget | Rectangle;
27
+ container?: Record<string, GridContainerItemConfig> | GridContainerItemConfig[] | FieldContainerConfig | FieldContainer;
28
+ containValues?: boolean | string | ((field: Field) => boolean);
29
+ contentElementCls?: string | object;
30
+ dataField?: string;
31
+ dataset?: Record<string, string>;
32
+ defaultBindProperty?: string;
33
+ detectCSSCompatibilityIssues?: boolean;
34
+ disabled?: boolean | 'inert';
35
+ dock?: 'top' | 'bottom' | 'left' | 'right' | 'start' | 'end' | 'header' | 'pre-header' | object;
36
+ draggable?: boolean | {
37
+ handleSelector?: string;
38
+ };
39
+ editable?: boolean;
40
+ elementAttributes?: Record<string, string | null>;
41
+ extraData?: any;
42
+ flex?: number | string;
43
+ floating?: boolean;
44
+ height?: string | number;
45
+ hidden?: boolean;
46
+ hideAnimation?: boolean | object;
47
+ highlightExternalChange?: boolean;
48
+ hint?: string | ((data: {
49
+ source: Field;
50
+ value: any;
51
+ }) => string);
52
+ hintHtml?: string | ((data: {
53
+ source: Field;
54
+ value: any;
55
+ }) => string);
56
+ id?: string;
57
+ ignoreParentReadOnly?: boolean;
58
+ inline?: boolean;
59
+ inputAlign?: string;
60
+ inputAttributes?: Record<string, string>;
61
+ inputTag?: string;
62
+ inputType?: string;
63
+ inputWidth?: string | number;
64
+ insertBefore?: HTMLElement | string;
65
+ insertFirst?: HTMLElement | string;
66
+ keyMap?: Record<string, KeyMapConfig>;
67
+ keyStrokeChangeDelay?: number;
68
+ label?: string;
69
+ labelCls?: string | object;
70
+ labelPosition?: 'before' | 'above' | null;
71
+ labels?: object[];
72
+ labelWidth?: string | number;
73
+ listeners?: AIFilterFieldListeners;
74
+ localeClass?: typeof Base;
75
+ localizable?: boolean;
76
+ localizableProperties?: string[];
77
+ margin?: number | string;
78
+ maskDefaults?: MaskConfig;
79
+ masked?: boolean | string | MaskConfig;
80
+ maxHeight?: string | number;
81
+ maximizeOnMobile?: number | string;
82
+ maxLength?: number;
83
+ maxWidth?: string | number;
84
+ minHeight?: string | number;
85
+ minLength?: number;
86
+ minWidth?: string | number;
87
+ monitorResize?: boolean | {
88
+ immediate?: boolean;
89
+ };
90
+ name?: string;
91
+ owner?: Widget | any;
92
+ placeholder?: string;
93
+ positioned?: boolean;
94
+ preventTooltipOnTouch?: boolean;
95
+ progressText?: string;
96
+ readOnly?: boolean;
97
+ relayStoreEvents?: boolean;
98
+ rendition?: 'outlined' | 'filled' | string;
99
+ required?: boolean;
100
+ revertOnEscape?: boolean;
101
+ ripple?: boolean | {
102
+ delegate?: string;
103
+ color?: string;
104
+ radius?: number;
105
+ clip?: string;
106
+ };
107
+ rootElement?: ShadowRoot | HTMLElement;
108
+ rtl?: boolean;
109
+ scrollAction?: 'hide' | 'realign' | null;
110
+ showAnimation?: boolean | object;
111
+ showRequiredIndicator?: string;
112
+ showTooltipWhenDisabled?: boolean;
113
+ skipValidation?: boolean;
114
+ span?: number;
115
+ spellCheck?: boolean;
116
+ tab?: boolean | TabConfig;
117
+ tabIndex?: number;
118
+ textAlign?: 'left' | 'center' | 'right' | 'start' | 'end';
119
+ title?: string;
120
+ tooltip?: string | TooltipConfig | null;
121
+ triggers?: Record<string, FieldTriggerConfig> | Record<string, Widget>;
122
+ type?: 'aifilterfield';
123
+ ui?: string | object;
124
+ validateOnInput?: boolean;
125
+ value?: string;
126
+ weight?: number;
127
+ width?: string | number;
128
+ x?: number;
129
+ y?: number;
130
+ onAction?: ((event: {
131
+ source: Field | any;
132
+ value: string | number | boolean | any;
133
+ oldValue: string | number | boolean | any;
134
+ valid: boolean;
135
+ event: Event;
136
+ record: Model;
137
+ records: Model[];
138
+ userAction: boolean;
139
+ checked: boolean;
140
+ }) => void) | string;
141
+ onBeforeDestroy?: ((event: {
142
+ source: Base;
143
+ }) => void) | string;
144
+ onBeforeHide?: ((event: {
145
+ source: Widget;
146
+ }) => Promise<boolean> | boolean | void) | string;
147
+ onBeforeShow?: ((event: {
148
+ source: Widget | any;
149
+ }) => Promise<boolean> | boolean | void) | string;
150
+ onCatchAll?: ((event: {
151
+ [key: string]: any;
152
+ type: string;
153
+ }) => void) | string;
154
+ onChange?: ((event: {
155
+ source: Field | any;
156
+ value: string | number | boolean | any;
157
+ oldValue: string | number | boolean | any;
158
+ valid: boolean;
159
+ event: Event;
160
+ userAction: boolean;
161
+ checked: boolean;
162
+ }) => void) | string;
163
+ onClear?: ((event: {
164
+ source: Field | any;
165
+ }) => void) | string;
166
+ onDestroy?: ((event: {
167
+ source: Base;
168
+ }) => void) | string;
169
+ onElementCreated?: ((event: {
170
+ element: HTMLElement;
171
+ }) => void) | string;
172
+ onFocusIn?: ((event: {
173
+ source: Widget;
174
+ fromElement: HTMLElement;
175
+ toElement: HTMLElement;
176
+ fromWidget: Widget;
177
+ toWidget: Widget;
178
+ backwards: boolean;
179
+ }) => void) | string;
180
+ onFocusOut?: ((event: {
181
+ source: Widget;
182
+ fromElement: HTMLElement;
183
+ toElement: HTMLElement;
184
+ fromWidget: Widget;
185
+ toWidget: Widget;
186
+ backwards: boolean;
187
+ }) => void) | string;
188
+ onHide?: ((event: {
189
+ source: Widget;
190
+ }) => void) | string;
191
+ onInput?: ((event: {
192
+ source: Field | any;
193
+ value: string | number | boolean | any;
194
+ event: Event;
195
+ }) => void) | string;
196
+ onPaint?: ((event: {
197
+ source: Widget;
198
+ firstPaint: boolean;
199
+ }) => void) | string;
200
+ onReadOnly?: ((event: {
201
+ readOnly: boolean;
202
+ }) => void) | string;
203
+ onRecompose?: (() => void) | string;
204
+ onResize?: ((event: {
205
+ source: Widget;
206
+ width: number;
207
+ height: number;
208
+ oldWidth: number;
209
+ oldHeight: number;
210
+ }) => void) | string;
211
+ onShow?: ((event: {
212
+ source: Widget;
213
+ }) => void) | string;
214
+ onTrigger?: ((event: {
215
+ source: Field | any;
216
+ trigger: Widget;
217
+ }) => void) | string;
218
+ };
219
+ export declare class BryntumAIFilterField extends React.Component<BryntumAIFilterFieldProps> {
220
+ static instanceClass: typeof AIFilterField;
221
+ static instanceName: string;
222
+ processWidgetContent: typeof processWidgetContent;
223
+ static configNames: string[];
224
+ static propertyConfigNames: string[];
225
+ static propertyNames: string[];
226
+ instance: AIFilterField;
227
+ element: HTMLElement;
228
+ componentDidMount(): void;
229
+ componentWillUnmount(): void;
230
+ shouldComponentUpdate(nextProps: Readonly<BryntumAIFilterFieldProps>, nextState: Readonly<{}>): boolean;
231
+ render(): React.ReactNode;
232
+ }
@@ -0,0 +1,168 @@
1
+ import React from 'react';
2
+ import { AIFilterField } from '@bryntum/grid-thin';
3
+ import { createWidget, shouldComponentUpdate, processWidgetContent } from './WrapperHelper.js';
4
+ export class BryntumAIFilterField extends React.Component {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.processWidgetContent = processWidgetContent;
8
+ }
9
+ componentDidMount() {
10
+ this.instance = createWidget(this);
11
+ }
12
+ componentWillUnmount() {
13
+ var _a, _b;
14
+ (_b = (_a = this.instance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
15
+ }
16
+ shouldComponentUpdate(nextProps, nextState) {
17
+ return shouldComponentUpdate(this, nextProps, nextState);
18
+ }
19
+ render() {
20
+ const className = `b-react-a-i-filter-field-container`;
21
+ return (React.createElement("div", { className: className, ref: (element) => (this.element = element) }));
22
+ }
23
+ }
24
+ BryntumAIFilterField.instanceClass = AIFilterField;
25
+ BryntumAIFilterField.instanceName = 'AIFilterField';
26
+ BryntumAIFilterField.configNames = [
27
+ 'adopt',
28
+ 'align',
29
+ 'anchor',
30
+ 'ariaDescription',
31
+ 'ariaLabel',
32
+ 'autoComplete',
33
+ 'autoSelect',
34
+ 'bubbleEvents',
35
+ 'centered',
36
+ 'clearable',
37
+ 'client',
38
+ 'color',
39
+ 'config',
40
+ 'constrainTo',
41
+ 'container',
42
+ 'containValues',
43
+ 'contentElementCls',
44
+ 'dataField',
45
+ 'defaultBindProperty',
46
+ 'detectCSSCompatibilityIssues',
47
+ 'dock',
48
+ 'draggable',
49
+ 'elementAttributes',
50
+ 'floating',
51
+ 'hideAnimation',
52
+ 'highlightExternalChange',
53
+ 'hint',
54
+ 'hintHtml',
55
+ 'ignoreParentReadOnly',
56
+ 'inline',
57
+ 'inputAlign',
58
+ 'inputAttributes',
59
+ 'inputTag',
60
+ 'inputType',
61
+ 'inputWidth',
62
+ 'keyStrokeChangeDelay',
63
+ 'labelCls',
64
+ 'labelPosition',
65
+ 'labels',
66
+ 'labelWidth',
67
+ 'listeners',
68
+ 'localeClass',
69
+ 'localizable',
70
+ 'localizableProperties',
71
+ 'maskDefaults',
72
+ 'masked',
73
+ 'maxLength',
74
+ 'minLength',
75
+ 'monitorResize',
76
+ 'name',
77
+ 'owner',
78
+ 'positioned',
79
+ 'preventTooltipOnTouch',
80
+ 'progressText',
81
+ 'relayStoreEvents',
82
+ 'revertOnEscape',
83
+ 'ripple',
84
+ 'rootElement',
85
+ 'scrollAction',
86
+ 'showAnimation',
87
+ 'showTooltipWhenDisabled',
88
+ 'skipValidation',
89
+ 'spellCheck',
90
+ 'tab',
91
+ 'tabIndex',
92
+ 'textAlign',
93
+ 'title',
94
+ 'type',
95
+ 'ui',
96
+ 'validateOnInput',
97
+ 'weight'
98
+ ];
99
+ BryntumAIFilterField.propertyConfigNames = [
100
+ 'alignSelf',
101
+ 'appendTo',
102
+ 'badge',
103
+ 'callOnFunctions',
104
+ 'catchEventHandlerExceptions',
105
+ 'cls',
106
+ 'column',
107
+ 'dataset',
108
+ 'disabled',
109
+ 'editable',
110
+ 'extraData',
111
+ 'flex',
112
+ 'height',
113
+ 'hidden',
114
+ 'id',
115
+ 'insertBefore',
116
+ 'insertFirst',
117
+ 'keyMap',
118
+ 'label',
119
+ 'margin',
120
+ 'maxHeight',
121
+ 'maximizeOnMobile',
122
+ 'maxWidth',
123
+ 'minHeight',
124
+ 'minWidth',
125
+ 'onAction',
126
+ 'onBeforeDestroy',
127
+ 'onBeforeHide',
128
+ 'onBeforeShow',
129
+ 'onCatchAll',
130
+ 'onChange',
131
+ 'onClear',
132
+ 'onDestroy',
133
+ 'onElementCreated',
134
+ 'onFocusIn',
135
+ 'onFocusOut',
136
+ 'onHide',
137
+ 'onInput',
138
+ 'onPaint',
139
+ 'onReadOnly',
140
+ 'onRecompose',
141
+ 'onResize',
142
+ 'onShow',
143
+ 'onTrigger',
144
+ 'placeholder',
145
+ 'readOnly',
146
+ 'rendition',
147
+ 'required',
148
+ 'rtl',
149
+ 'showRequiredIndicator',
150
+ 'span',
151
+ 'tooltip',
152
+ 'triggers',
153
+ 'value',
154
+ 'width',
155
+ 'x',
156
+ 'y'
157
+ ];
158
+ BryntumAIFilterField.propertyNames = [
159
+ 'anchorSize',
160
+ 'content',
161
+ 'focusVisible',
162
+ 'formula',
163
+ 'html',
164
+ 'input',
165
+ 'parent',
166
+ 'scrollable'
167
+ ];
168
+ //# sourceMappingURL=BryntumAIFilterField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BryntumAIFilterField.js","sourceRoot":"","sources":["../src/BryntumAIFilterField.tsx"],"names":[],"mappings":"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"}