@rjsf/core 6.0.0-beta.9 → 6.0.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 +2 -0
- package/dist/core.umd.js +2042 -1987
- package/dist/index.cjs +4909 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.esm.js +2509 -2389
- package/dist/index.esm.js.map +4 -4
- package/lib/components/Form.d.ts +137 -34
- package/lib/components/Form.d.ts.map +1 -1
- package/lib/components/Form.js +318 -173
- package/lib/components/fields/ArrayField.d.ts +2 -187
- package/lib/components/fields/ArrayField.d.ts.map +1 -1
- package/lib/components/fields/ArrayField.js +526 -492
- package/lib/components/fields/BooleanField.d.ts.map +1 -1
- package/lib/components/fields/BooleanField.js +8 -3
- package/lib/components/fields/FallbackField.d.ts +7 -0
- package/lib/components/fields/FallbackField.d.ts.map +1 -0
- package/lib/components/fields/FallbackField.js +72 -0
- package/lib/components/fields/LayoutGridField.d.ts +109 -186
- package/lib/components/fields/LayoutGridField.d.ts.map +1 -1
- package/lib/components/fields/LayoutGridField.js +426 -426
- package/lib/components/fields/LayoutHeaderField.d.ts +1 -1
- package/lib/components/fields/LayoutHeaderField.js +3 -3
- package/lib/components/fields/LayoutMultiSchemaField.d.ts.map +1 -1
- package/lib/components/fields/LayoutMultiSchemaField.js +6 -6
- package/lib/components/fields/MultiSchemaField.d.ts.map +1 -1
- package/lib/components/fields/MultiSchemaField.js +16 -10
- package/lib/components/fields/NullField.js +3 -3
- package/lib/components/fields/NumberField.d.ts.map +1 -1
- package/lib/components/fields/NumberField.js +3 -3
- package/lib/components/fields/ObjectField.d.ts +2 -68
- package/lib/components/fields/ObjectField.d.ts.map +1 -1
- package/lib/components/fields/ObjectField.js +163 -163
- package/lib/components/fields/OptionalDataControlsField.d.ts +8 -0
- package/lib/components/fields/OptionalDataControlsField.d.ts.map +1 -0
- package/lib/components/fields/OptionalDataControlsField.js +43 -0
- package/lib/components/fields/SchemaField.d.ts.map +1 -1
- package/lib/components/fields/SchemaField.js +52 -30
- package/lib/components/fields/StringField.d.ts.map +1 -1
- package/lib/components/fields/StringField.js +8 -3
- package/lib/components/fields/index.d.ts.map +1 -1
- package/lib/components/fields/index.js +4 -0
- package/lib/components/templates/ArrayFieldDescriptionTemplate.d.ts +1 -1
- package/lib/components/templates/ArrayFieldDescriptionTemplate.js +3 -3
- package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts +3 -3
- package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts.map +1 -1
- package/lib/components/templates/ArrayFieldItemButtonsTemplate.js +3 -8
- package/lib/components/templates/ArrayFieldItemTemplate.d.ts +3 -3
- package/lib/components/templates/ArrayFieldItemTemplate.d.ts.map +1 -1
- package/lib/components/templates/ArrayFieldItemTemplate.js +1 -1
- package/lib/components/templates/ArrayFieldTemplate.d.ts +1 -1
- package/lib/components/templates/ArrayFieldTemplate.d.ts.map +1 -1
- package/lib/components/templates/ArrayFieldTemplate.js +4 -5
- package/lib/components/templates/ArrayFieldTitleTemplate.d.ts +1 -1
- package/lib/components/templates/ArrayFieldTitleTemplate.d.ts.map +1 -1
- package/lib/components/templates/ArrayFieldTitleTemplate.js +3 -3
- package/lib/components/templates/BaseInputTemplate.js +2 -2
- package/lib/components/templates/ButtonTemplates/AddButton.d.ts +1 -1
- package/lib/components/templates/ButtonTemplates/AddButton.d.ts.map +1 -1
- package/lib/components/templates/ButtonTemplates/AddButton.js +2 -2
- package/lib/components/templates/FallbackFieldTemplate.d.ts +7 -0
- package/lib/components/templates/FallbackFieldTemplate.d.ts.map +1 -0
- package/lib/components/templates/FallbackFieldTemplate.js +12 -0
- package/lib/components/templates/FieldErrorTemplate.js +2 -2
- package/lib/components/templates/FieldHelpTemplate.js +2 -2
- package/lib/components/templates/MultiSchemaFieldTemplate.d.ts +8 -0
- package/lib/components/templates/MultiSchemaFieldTemplate.d.ts.map +1 -0
- package/lib/components/templates/MultiSchemaFieldTemplate.js +10 -0
- package/lib/components/templates/ObjectFieldTemplate.d.ts.map +1 -1
- package/lib/components/templates/ObjectFieldTemplate.js +3 -2
- package/lib/components/templates/OptionalDataControlsTemplate.d.ts +11 -0
- package/lib/components/templates/OptionalDataControlsTemplate.d.ts.map +1 -0
- package/lib/components/templates/OptionalDataControlsTemplate.js +20 -0
- package/lib/components/templates/TitleField.d.ts.map +1 -1
- package/lib/components/templates/TitleField.js +2 -2
- package/lib/components/templates/UnsupportedField.js +3 -3
- package/lib/components/templates/WrapIfAdditionalTemplate.js +2 -2
- package/lib/components/templates/index.d.ts.map +1 -1
- package/lib/components/templates/index.js +6 -0
- package/lib/components/widgets/AltDateWidget.d.ts +1 -1
- package/lib/components/widgets/AltDateWidget.d.ts.map +1 -1
- package/lib/components/widgets/AltDateWidget.js +5 -46
- package/lib/components/widgets/CheckboxWidget.d.ts +1 -1
- package/lib/components/widgets/CheckboxWidget.d.ts.map +1 -1
- package/lib/components/widgets/CheckboxWidget.js +2 -2
- package/lib/components/widgets/CheckboxesWidget.d.ts +1 -1
- package/lib/components/widgets/CheckboxesWidget.d.ts.map +1 -1
- package/lib/components/widgets/CheckboxesWidget.js +4 -4
- package/lib/components/widgets/FileWidget.d.ts.map +1 -1
- package/lib/components/widgets/FileWidget.js +7 -87
- package/lib/components/widgets/HiddenWidget.d.ts +1 -1
- package/lib/components/widgets/HiddenWidget.d.ts.map +1 -1
- package/lib/components/widgets/HiddenWidget.js +2 -2
- package/lib/components/widgets/RadioWidget.d.ts +1 -1
- package/lib/components/widgets/RadioWidget.d.ts.map +1 -1
- package/lib/components/widgets/RadioWidget.js +2 -2
- package/lib/components/widgets/RatingWidget.d.ts +1 -1
- package/lib/components/widgets/RatingWidget.d.ts.map +1 -1
- package/lib/components/widgets/RatingWidget.js +2 -2
- package/lib/components/widgets/SelectWidget.d.ts +1 -1
- package/lib/components/widgets/SelectWidget.d.ts.map +1 -1
- package/lib/components/widgets/SelectWidget.js +2 -2
- package/lib/components/widgets/TextareaWidget.d.ts +1 -1
- package/lib/components/widgets/TextareaWidget.d.ts.map +1 -1
- package/lib/components/widgets/TextareaWidget.js +2 -2
- package/lib/getDefaultRegistry.d.ts.map +1 -1
- package/lib/getDefaultRegistry.js +6 -1
- package/lib/getTestRegistry.d.ts +5 -0
- package/lib/getTestRegistry.d.ts.map +1 -0
- package/lib/getTestRegistry.js +23 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +35 -20
- package/src/components/Form.tsx +468 -206
- package/src/components/fields/ArrayField.tsx +871 -723
- package/src/components/fields/BooleanField.tsx +14 -5
- package/src/components/fields/FallbackField.tsx +157 -0
- package/src/components/fields/LayoutGridField.tsx +626 -603
- package/src/components/fields/LayoutHeaderField.tsx +3 -3
- package/src/components/fields/LayoutMultiSchemaField.tsx +9 -10
- package/src/components/fields/MultiSchemaField.tsx +57 -36
- package/src/components/fields/NullField.tsx +3 -3
- package/src/components/fields/NumberField.tsx +11 -3
- package/src/components/fields/ObjectField.tsx +308 -239
- package/src/components/fields/OptionalDataControlsField.tsx +84 -0
- package/src/components/fields/SchemaField.tsx +75 -94
- package/src/components/fields/StringField.tsx +14 -5
- package/src/components/fields/index.ts +4 -0
- package/src/components/templates/ArrayFieldDescriptionTemplate.tsx +3 -3
- package/src/components/templates/ArrayFieldItemButtonsTemplate.tsx +16 -21
- package/src/components/templates/ArrayFieldItemTemplate.tsx +3 -3
- package/src/components/templates/ArrayFieldTemplate.tsx +11 -18
- package/src/components/templates/ArrayFieldTitleTemplate.tsx +4 -3
- package/src/components/templates/BaseInputTemplate.tsx +5 -5
- package/src/components/templates/ButtonTemplates/AddButton.tsx +2 -0
- package/src/components/templates/FallbackFieldTemplate.tsx +28 -0
- package/src/components/templates/FieldErrorTemplate.tsx +2 -2
- package/src/components/templates/FieldHelpTemplate.tsx +2 -2
- package/src/components/templates/MultiSchemaFieldTemplate.tsx +20 -0
- package/src/components/templates/ObjectFieldTemplate.tsx +12 -7
- package/src/components/templates/OptionalDataControlsTemplate.tsx +43 -0
- package/src/components/templates/TitleField.tsx +6 -1
- package/src/components/templates/UnsupportedField.tsx +3 -3
- package/src/components/templates/WrapIfAdditionalTemplate.tsx +5 -5
- package/src/components/templates/index.ts +6 -0
- package/src/components/widgets/AltDateWidget.tsx +8 -126
- package/src/components/widgets/CheckboxWidget.tsx +4 -3
- package/src/components/widgets/CheckboxesWidget.tsx +5 -4
- package/src/components/widgets/FileWidget.tsx +11 -102
- package/src/components/widgets/HiddenWidget.tsx +2 -1
- package/src/components/widgets/RadioWidget.tsx +3 -2
- package/src/components/widgets/RatingWidget.tsx +2 -1
- package/src/components/widgets/SelectWidget.tsx +3 -2
- package/src/components/widgets/TextareaWidget.tsx +3 -2
- package/src/getDefaultRegistry.ts +14 -1
- package/src/getTestRegistry.tsx +38 -0
- package/src/index.ts +2 -1
- package/dist/index.js +0 -4834
- package/dist/index.js.map +0 -7
|
@@ -1,191 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ErrorSchema, FieldProps, FormContextType, IdSchema, RJSFSchema, StrictRJSFSchema, UiSchema } from '@rjsf/utils';
|
|
3
|
-
/** Type used to represent the keyed form data used in the state */
|
|
4
|
-
type KeyedFormDataType<T> = {
|
|
5
|
-
key: string;
|
|
6
|
-
item: T;
|
|
7
|
-
};
|
|
8
|
-
/** Type used for the state of the `ArrayField` component */
|
|
9
|
-
type ArrayFieldState<T> = {
|
|
10
|
-
/** The keyed form data elements */
|
|
11
|
-
keyedFormData: KeyedFormDataType<T>[];
|
|
12
|
-
/** Flag indicating whether any of the keyed form data has been updated */
|
|
13
|
-
updatedKeyedFormData: boolean;
|
|
14
|
-
};
|
|
1
|
+
import { FieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
|
|
15
2
|
/** The `ArrayField` component is used to render a field in the schema that is of type `array`. It supports both normal
|
|
16
3
|
* and fixed array, allowing user to add and remove elements from the array data.
|
|
17
4
|
*/
|
|
18
|
-
|
|
19
|
-
/** Constructs an `ArrayField` from the `props`, generating the initial keyed data from the `formData`
|
|
20
|
-
*
|
|
21
|
-
* @param props - The `FieldProps` for this template
|
|
22
|
-
*/
|
|
23
|
-
constructor(props: FieldProps<T[], S, F>);
|
|
24
|
-
/** React lifecycle method that is called when the props are about to change allowing the state to be updated. It
|
|
25
|
-
* regenerates the keyed form data and returns it
|
|
26
|
-
*
|
|
27
|
-
* @param nextProps - The next set of props data
|
|
28
|
-
* @param prevState - The previous set of state data
|
|
29
|
-
*/
|
|
30
|
-
static getDerivedStateFromProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(nextProps: Readonly<FieldProps<T[], S, F>>, prevState: Readonly<ArrayFieldState<T>>): {
|
|
31
|
-
updatedKeyedFormData: boolean;
|
|
32
|
-
keyedFormData?: undefined;
|
|
33
|
-
} | {
|
|
34
|
-
keyedFormData: KeyedFormDataType<T>[];
|
|
35
|
-
updatedKeyedFormData?: undefined;
|
|
36
|
-
};
|
|
37
|
-
/** Returns the appropriate title for an item by getting first the title from the schema.items, then falling back to
|
|
38
|
-
* the description from the schema.items, and finally the string "Item"
|
|
39
|
-
*/
|
|
40
|
-
get itemTitle(): any;
|
|
41
|
-
/** Determines whether the item described in the schema is always required, which is determined by whether any item
|
|
42
|
-
* may be null.
|
|
43
|
-
*
|
|
44
|
-
* @param itemSchema - The schema for the item
|
|
45
|
-
* @return - True if the item schema type does not contain the "null" type
|
|
46
|
-
*/
|
|
47
|
-
isItemRequired(itemSchema: S): boolean;
|
|
48
|
-
/** Determines whether more items can be added to the array. If the uiSchema indicates the array doesn't allow adding
|
|
49
|
-
* then false is returned. Otherwise, if the schema indicates that there are a maximum number of items and the
|
|
50
|
-
* `formData` matches that value, then false is returned, otherwise true is returned.
|
|
51
|
-
*
|
|
52
|
-
* @param formItems - The list of items in the form
|
|
53
|
-
* @returns - True if the item is addable otherwise false
|
|
54
|
-
*/
|
|
55
|
-
canAddItem(formItems: any[]): boolean;
|
|
56
|
-
/** Returns the default form information for an item based on the schema for that item. Deals with the possibility
|
|
57
|
-
* that the schema is fixed and allows additional items.
|
|
58
|
-
*/
|
|
59
|
-
_getNewFormDataRow: () => T;
|
|
60
|
-
/** Callback handler for when the user clicks on the add or add at index buttons. Creates a new row of keyed form data
|
|
61
|
-
* either at the end of the list (when index is not specified) or inserted at the `index` when it is, adding it into
|
|
62
|
-
* the state, and then returning `onChange()` with the plain form data converted from the keyed data
|
|
63
|
-
*
|
|
64
|
-
* @param event - The event for the click
|
|
65
|
-
* @param [index] - The optional index at which to add the new data
|
|
66
|
-
*/
|
|
67
|
-
_handleAddClick(event: MouseEvent, index?: number): void;
|
|
68
|
-
/** Callback handler for when the user clicks on the add button. Creates a new row of keyed form data at the end of
|
|
69
|
-
* the list, adding it into the state, and then returning `onChange()` with the plain form data converted from the
|
|
70
|
-
* keyed data
|
|
71
|
-
*
|
|
72
|
-
* @param event - The event for the click
|
|
73
|
-
*/
|
|
74
|
-
onAddClick: (event: MouseEvent) => void;
|
|
75
|
-
/** Callback handler for when the user clicks on the add button on an existing array element. Creates a new row of
|
|
76
|
-
* keyed form data inserted at the `index`, adding it into the state, and then returning `onChange()` with the plain
|
|
77
|
-
* form data converted from the keyed data
|
|
78
|
-
*
|
|
79
|
-
* @param index - The index at which the add button is clicked
|
|
80
|
-
*/
|
|
81
|
-
onAddIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
82
|
-
/** Callback handler for when the user clicks on the copy button on an existing array element. Clones the row of
|
|
83
|
-
* keyed form data at the `index` into the next position in the state, and then returning `onChange()` with the plain
|
|
84
|
-
* form data converted from the keyed data
|
|
85
|
-
*
|
|
86
|
-
* @param index - The index at which the copy button is clicked
|
|
87
|
-
*/
|
|
88
|
-
onCopyIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
89
|
-
/** Callback handler for when the user clicks on the remove button on an existing array element. Removes the row of
|
|
90
|
-
* keyed form data at the `index` in the state, and then returning `onChange()` with the plain form data converted
|
|
91
|
-
* from the keyed data
|
|
92
|
-
*
|
|
93
|
-
* @param index - The index at which the remove button is clicked
|
|
94
|
-
*/
|
|
95
|
-
onDropIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
96
|
-
/** Callback handler for when the user clicks on one of the move item buttons on an existing array element. Moves the
|
|
97
|
-
* row of keyed form data at the `index` to the `newIndex` in the state, and then returning `onChange()` with the
|
|
98
|
-
* plain form data converted from the keyed data
|
|
99
|
-
*
|
|
100
|
-
* @param index - The index of the item to move
|
|
101
|
-
* @param newIndex - The index to where the item is to be moved
|
|
102
|
-
*/
|
|
103
|
-
onReorderClick: (index: number, newIndex: number) => (event: MouseEvent<HTMLButtonElement>) => void;
|
|
104
|
-
/** Callback handler used to deal with changing the value of the data in the array at the `index`. Calls the
|
|
105
|
-
* `onChange` callback with the updated form data
|
|
106
|
-
*
|
|
107
|
-
* @param index - The index of the item being changed
|
|
108
|
-
*/
|
|
109
|
-
onChangeForIndex: (index: number) => (value: any, newErrorSchema?: ErrorSchema<T>, id?: string) => void;
|
|
110
|
-
/** Callback handler used to change the value for a checkbox */
|
|
111
|
-
onSelectChange: (value: any) => void;
|
|
112
|
-
/** Renders the `ArrayField` depending on the specific needs of the schema and uischema elements
|
|
113
|
-
*/
|
|
114
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
115
|
-
/** Renders a normal array without any limitations of length
|
|
116
|
-
*/
|
|
117
|
-
renderNormalArray(): import("react/jsx-runtime").JSX.Element;
|
|
118
|
-
/** Renders an array using the custom widget provided by the user in the `uiSchema`
|
|
119
|
-
*/
|
|
120
|
-
renderCustomWidget(): import("react/jsx-runtime").JSX.Element;
|
|
121
|
-
/** Renders an array as a set of checkboxes
|
|
122
|
-
*/
|
|
123
|
-
renderMultiSelect(): import("react/jsx-runtime").JSX.Element;
|
|
124
|
-
/** Renders an array of files using the `FileWidget`
|
|
125
|
-
*/
|
|
126
|
-
renderFiles(): import("react/jsx-runtime").JSX.Element;
|
|
127
|
-
/** Renders an array that has a maximum limit of items
|
|
128
|
-
*/
|
|
129
|
-
renderFixedArray(): import("react/jsx-runtime").JSX.Element;
|
|
130
|
-
/** Renders the individual array item using a `SchemaField` along with the additional properties required to be send
|
|
131
|
-
* back to the `ArrayFieldItemTemplate`.
|
|
132
|
-
*
|
|
133
|
-
* @param props - The props for the individual array item to be rendered
|
|
134
|
-
*/
|
|
135
|
-
renderArrayFieldItem(props: {
|
|
136
|
-
key: string;
|
|
137
|
-
index: number;
|
|
138
|
-
name: string;
|
|
139
|
-
title: string | undefined;
|
|
140
|
-
canAdd: boolean;
|
|
141
|
-
canRemove?: boolean;
|
|
142
|
-
canMoveUp: boolean;
|
|
143
|
-
canMoveDown: boolean;
|
|
144
|
-
itemSchema: S;
|
|
145
|
-
itemData: T[];
|
|
146
|
-
itemUiSchema: UiSchema<T[], S, F>;
|
|
147
|
-
itemIdSchema: IdSchema<T[]>;
|
|
148
|
-
itemErrorSchema?: ErrorSchema<T[]>;
|
|
149
|
-
autofocus?: boolean;
|
|
150
|
-
onBlur: FieldProps<T[], S, F>['onBlur'];
|
|
151
|
-
onFocus: FieldProps<T[], S, F>['onFocus'];
|
|
152
|
-
rawErrors?: string[];
|
|
153
|
-
totalItems: number;
|
|
154
|
-
}): {
|
|
155
|
-
children: import("react/jsx-runtime").JSX.Element;
|
|
156
|
-
buttonsProps: {
|
|
157
|
-
idSchema: import("@rjsf/utils").FieldId & (IdSchema<T> | undefined)[];
|
|
158
|
-
disabled: boolean | undefined;
|
|
159
|
-
readonly: boolean | undefined;
|
|
160
|
-
canAdd: boolean;
|
|
161
|
-
hasCopy: boolean;
|
|
162
|
-
hasMoveUp: boolean;
|
|
163
|
-
hasMoveDown: boolean;
|
|
164
|
-
hasRemove: boolean;
|
|
165
|
-
index: number;
|
|
166
|
-
totalItems: number;
|
|
167
|
-
onAddIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
168
|
-
onCopyIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
169
|
-
onDropIndexClick: (index: number) => (event: MouseEvent) => void;
|
|
170
|
-
onReorderClick: (index: number, newIndex: number) => (event: MouseEvent<HTMLButtonElement>) => void;
|
|
171
|
-
registry: import("@rjsf/utils").Registry<T[], S, F>;
|
|
172
|
-
schema: S;
|
|
173
|
-
uiSchema: UiSchema<T[], S, F>;
|
|
174
|
-
};
|
|
175
|
-
className: string;
|
|
176
|
-
disabled: boolean | undefined;
|
|
177
|
-
hasToolbar: boolean;
|
|
178
|
-
index: number;
|
|
179
|
-
totalItems: number;
|
|
180
|
-
key: string;
|
|
181
|
-
readonly: boolean | undefined;
|
|
182
|
-
registry: import("@rjsf/utils").Registry<T[], S, F>;
|
|
183
|
-
schema: S;
|
|
184
|
-
uiSchema: UiSchema<T[], S, F>;
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
/** `ArrayField` is `React.ComponentType<FieldProps<T[], S, F>>` (necessarily) but the `registry` requires things to be a
|
|
188
|
-
* `Field` which is defined as `React.ComponentType<FieldProps<T, S, F>>`, so cast it to make `registry` happy.
|
|
189
|
-
*/
|
|
190
|
-
export default ArrayField;
|
|
5
|
+
export default function ArrayField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: FieldProps<T[], S, F>): import("react/jsx-runtime").JSX.Element;
|
|
191
6
|
//# sourceMappingURL=ArrayField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ArrayField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ArrayField.tsx"],"names":[],"mappings":"AACA,OAAO,EAmBL,UAAU,EACV,eAAe,EAEf,UAAU,EACV,gBAAgB,EAIjB,MAAM,aAAa,CAAC;AAuyBrB;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,gBAAgB,GAAG,UAAU,EAAE,CAAC,SAAS,eAAe,GAAG,GAAG,EAClH,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,2CAqO7B"}
|