@rjsf/core 3.0.1 → 3.2.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.
- package/dist/cjs/components/AddButton.js +32 -0
- package/dist/cjs/components/ErrorList.js +29 -0
- package/dist/cjs/components/Form.js +567 -0
- package/dist/cjs/components/IconButton.js +32 -0
- package/dist/cjs/components/fields/ArrayField.js +854 -0
- package/dist/cjs/components/fields/BooleanField.js +105 -0
- package/dist/cjs/components/fields/DescriptionField.js +44 -0
- package/dist/cjs/components/fields/MultiSchemaField.js +257 -0
- package/dist/cjs/components/fields/NullField.js +66 -0
- package/dist/cjs/components/fields/NumberField.js +153 -0
- package/dist/cjs/components/fields/ObjectField.js +341 -0
- package/dist/cjs/components/fields/SchemaField.js +455 -0
- package/dist/cjs/components/fields/StringField.js +96 -0
- package/dist/cjs/components/fields/TitleField.js +37 -0
- package/dist/cjs/components/fields/UnsupportedField.js +33 -0
- package/dist/cjs/components/fields/index.js +47 -0
- package/dist/cjs/components/widgets/AltDateTimeWidget.js +45 -0
- package/dist/cjs/components/widgets/AltDateWidget.js +282 -0
- package/dist/cjs/components/widgets/BaseInput.js +144 -0
- package/dist/cjs/components/widgets/CheckboxWidget.js +74 -0
- package/dist/cjs/components/widgets/CheckboxesWidget.js +106 -0
- package/dist/cjs/components/widgets/ColorWidget.js +42 -0
- package/dist/cjs/components/widgets/DateTimeWidget.js +40 -0
- package/dist/cjs/components/widgets/DateWidget.js +36 -0
- package/dist/cjs/components/widgets/EmailWidget.js +31 -0
- package/dist/cjs/components/widgets/FileWidget.js +198 -0
- package/dist/cjs/components/widgets/HiddenWidget.js +33 -0
- package/dist/cjs/components/widgets/PasswordWidget.js +31 -0
- package/dist/cjs/components/widgets/RadioWidget.js +92 -0
- package/dist/cjs/components/widgets/RangeWidget.js +39 -0
- package/dist/cjs/components/widgets/SelectWidget.js +143 -0
- package/dist/cjs/components/widgets/TextWidget.js +28 -0
- package/dist/cjs/components/widgets/TextareaWidget.js +78 -0
- package/dist/cjs/components/widgets/URLWidget.js +31 -0
- package/dist/cjs/components/widgets/UpDownWidget.js +33 -0
- package/dist/cjs/components/widgets/index.js +70 -0
- package/dist/cjs/index.js +28 -0
- package/dist/cjs/types.js +47 -0
- package/dist/cjs/utils.js +1337 -0
- package/dist/cjs/validate.js +354 -0
- package/dist/cjs/withTheme.js +50 -0
- package/dist/es/components/AddButton.js +21 -0
- package/dist/es/components/ErrorList.js +19 -0
- package/dist/es/components/Form.js +552 -0
- package/dist/es/components/IconButton.js +22 -0
- package/dist/es/components/fields/ArrayField.js +836 -0
- package/dist/es/components/fields/BooleanField.js +91 -0
- package/dist/es/components/fields/DescriptionField.js +33 -0
- package/dist/es/components/fields/MultiSchemaField.js +243 -0
- package/dist/es/components/fields/NullField.js +55 -0
- package/dist/es/components/fields/NumberField.js +138 -0
- package/dist/es/components/fields/ObjectField.js +326 -0
- package/dist/es/components/fields/SchemaField.js +437 -0
- package/dist/es/components/fields/StringField.js +82 -0
- package/dist/es/components/fields/TitleField.js +25 -0
- package/dist/es/components/fields/UnsupportedField.js +22 -0
- package/dist/es/components/fields/index.js +26 -0
- package/dist/es/components/widgets/AltDateTimeWidget.js +33 -0
- package/dist/es/components/widgets/AltDateWidget.js +268 -0
- package/dist/es/components/widgets/BaseInput.js +133 -0
- package/dist/es/components/widgets/CheckboxWidget.js +62 -0
- package/dist/es/components/widgets/CheckboxesWidget.js +93 -0
- package/dist/es/components/widgets/ColorWidget.js +31 -0
- package/dist/es/components/widgets/DateTimeWidget.js +28 -0
- package/dist/es/components/widgets/DateWidget.js +25 -0
- package/dist/es/components/widgets/EmailWidget.js +20 -0
- package/dist/es/components/widgets/FileWidget.js +184 -0
- package/dist/es/components/widgets/HiddenWidget.js +22 -0
- package/dist/es/components/widgets/PasswordWidget.js +20 -0
- package/dist/es/components/widgets/RadioWidget.js +79 -0
- package/dist/es/components/widgets/RangeWidget.js +27 -0
- package/dist/es/components/widgets/SelectWidget.js +130 -0
- package/dist/es/components/widgets/TextWidget.js +17 -0
- package/dist/es/components/widgets/TextareaWidget.js +67 -0
- package/dist/es/components/widgets/URLWidget.js +20 -0
- package/dist/es/components/widgets/UpDownWidget.js +21 -0
- package/dist/es/components/widgets/index.js +41 -0
- package/dist/es/index.js +6 -0
- package/dist/es/types.js +34 -0
- package/dist/es/utils.js +1239 -0
- package/dist/es/validate.js +338 -0
- package/dist/es/withTheme.js +36 -0
- package/dist/react-jsonschema-form.js +11 -0
- package/dist/react-jsonschema-form.js.map +1 -0
- package/index.d.ts +30 -23
- package/lib/components/AddButton.js +21 -0
- package/lib/components/ErrorList.js +19 -0
- package/lib/components/Form.js +552 -0
- package/lib/components/IconButton.js +22 -0
- package/lib/components/fields/ArrayField.js +836 -0
- package/lib/components/fields/BooleanField.js +91 -0
- package/lib/components/fields/DescriptionField.js +33 -0
- package/lib/components/fields/MultiSchemaField.js +243 -0
- package/lib/components/fields/NullField.js +55 -0
- package/lib/components/fields/NumberField.js +138 -0
- package/lib/components/fields/ObjectField.js +326 -0
- package/lib/components/fields/SchemaField.js +437 -0
- package/lib/components/fields/StringField.js +82 -0
- package/lib/components/fields/TitleField.js +25 -0
- package/lib/components/fields/UnsupportedField.js +22 -0
- package/lib/components/fields/index.js +26 -0
- package/lib/components/widgets/AltDateTimeWidget.js +33 -0
- package/lib/components/widgets/AltDateWidget.js +268 -0
- package/lib/components/widgets/BaseInput.js +133 -0
- package/lib/components/widgets/CheckboxWidget.js +62 -0
- package/lib/components/widgets/CheckboxesWidget.js +93 -0
- package/lib/components/widgets/ColorWidget.js +31 -0
- package/lib/components/widgets/DateTimeWidget.js +28 -0
- package/lib/components/widgets/DateWidget.js +25 -0
- package/lib/components/widgets/EmailWidget.js +20 -0
- package/lib/components/widgets/FileWidget.js +184 -0
- package/lib/components/widgets/HiddenWidget.js +22 -0
- package/lib/components/widgets/PasswordWidget.js +20 -0
- package/lib/components/widgets/RadioWidget.js +79 -0
- package/lib/components/widgets/RangeWidget.js +27 -0
- package/lib/components/widgets/SelectWidget.js +130 -0
- package/lib/components/widgets/TextWidget.js +17 -0
- package/lib/components/widgets/TextareaWidget.js +67 -0
- package/lib/components/widgets/URLWidget.js +20 -0
- package/lib/components/widgets/UpDownWidget.js +21 -0
- package/lib/components/widgets/index.js +41 -0
- package/lib/index.js +6 -0
- package/lib/types.js +34 -0
- package/lib/utils.js +1239 -0
- package/lib/validate.js +338 -0
- package/lib/withTheme.js +36 -0
- package/package.json +3 -3
package/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare module '@rjsf/core' {
|
|
|
19
19
|
className?: string;
|
|
20
20
|
customFormats?: { [k: string]: string | RegExp | ((data: string) => boolean) };
|
|
21
21
|
disabled?: boolean;
|
|
22
|
+
readonly?: boolean;
|
|
22
23
|
enctype?: string;
|
|
23
24
|
extraErrors?: any;
|
|
24
25
|
ErrorList?: React.StatelessComponent<ErrorListProps>;
|
|
@@ -114,12 +115,22 @@ declare module '@rjsf/core' {
|
|
|
114
115
|
label: string;
|
|
115
116
|
multiple: boolean;
|
|
116
117
|
rawErrors: string[];
|
|
118
|
+
registry: Registry;
|
|
119
|
+
[prop: string]: any; // Allow for other props
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
export type Widget = React.StatelessComponent<WidgetProps> | React.ComponentClass<WidgetProps>;
|
|
120
123
|
|
|
124
|
+
export interface Registry {
|
|
125
|
+
fields: { [name: string]: Field };
|
|
126
|
+
widgets: { [name: string]: Widget };
|
|
127
|
+
definitions: { [name: string]: any };
|
|
128
|
+
formContext: any;
|
|
129
|
+
rootSchema: JSONSchema7;
|
|
130
|
+
}
|
|
131
|
+
|
|
121
132
|
export interface FieldProps<T = any>
|
|
122
|
-
extends Pick<React.HTMLAttributes<HTMLElement>, Exclude<keyof React.HTMLAttributes<HTMLElement>, 'onBlur'>> {
|
|
133
|
+
extends Pick<React.HTMLAttributes<HTMLElement>, Exclude<keyof React.HTMLAttributes<HTMLElement>, 'onBlur' | 'onFocus'>> {
|
|
123
134
|
schema: JSONSchema7;
|
|
124
135
|
uiSchema: UiSchema;
|
|
125
136
|
idSchema: IdSchema;
|
|
@@ -127,19 +138,15 @@ declare module '@rjsf/core' {
|
|
|
127
138
|
errorSchema: ErrorSchema;
|
|
128
139
|
onChange: (e: IChangeEvent<T> | any, es?: ErrorSchema) => any;
|
|
129
140
|
onBlur: (id: string, value: any) => void;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
widgets: { [name: string]: Widget };
|
|
133
|
-
definitions: { [name: string]: any };
|
|
134
|
-
formContext: any;
|
|
135
|
-
};
|
|
141
|
+
onFocus: (id: string, value: any) => void;
|
|
142
|
+
registry: Registry;
|
|
136
143
|
formContext: any;
|
|
137
144
|
autofocus: boolean;
|
|
138
145
|
disabled: boolean;
|
|
139
146
|
readonly: boolean;
|
|
140
147
|
required: boolean;
|
|
141
148
|
name: string;
|
|
142
|
-
[prop: string]: any;
|
|
149
|
+
[prop: string]: any; // Allow for other props
|
|
143
150
|
}
|
|
144
151
|
|
|
145
152
|
export type Field = React.StatelessComponent<FieldProps> | React.ComponentClass<FieldProps>;
|
|
@@ -168,7 +175,7 @@ declare module '@rjsf/core' {
|
|
|
168
175
|
onChange: (value: T) => void;
|
|
169
176
|
onKeyChange: (value: string) => () => void;
|
|
170
177
|
onDropPropertyClick: (value: string) => () => void;
|
|
171
|
-
registry:
|
|
178
|
+
registry: Registry;
|
|
172
179
|
};
|
|
173
180
|
|
|
174
181
|
export type ArrayFieldTemplateProps<T = any> = {
|
|
@@ -201,7 +208,7 @@ declare module '@rjsf/core' {
|
|
|
201
208
|
title: string;
|
|
202
209
|
formContext: any;
|
|
203
210
|
formData: T;
|
|
204
|
-
registry:
|
|
211
|
+
registry: Registry;
|
|
205
212
|
};
|
|
206
213
|
|
|
207
214
|
export type ObjectFieldTemplateProps<T = any> = {
|
|
@@ -225,7 +232,7 @@ declare module '@rjsf/core' {
|
|
|
225
232
|
idSchema: IdSchema;
|
|
226
233
|
formData: T;
|
|
227
234
|
formContext: any;
|
|
228
|
-
registry:
|
|
235
|
+
registry: Registry;
|
|
229
236
|
};
|
|
230
237
|
|
|
231
238
|
export type AjvError = {
|
|
@@ -290,7 +297,7 @@ declare module '@rjsf/core' {
|
|
|
290
297
|
|
|
291
298
|
export function canExpand(schema: JSONSchema7, uiSchema: UiSchema, formData: any): boolean;
|
|
292
299
|
|
|
293
|
-
export function getDefaultRegistry():
|
|
300
|
+
export function getDefaultRegistry(): Registry;
|
|
294
301
|
|
|
295
302
|
export function getSchemaType(schema: JSONSchema7): string;
|
|
296
303
|
|
|
@@ -309,7 +316,7 @@ declare module '@rjsf/core' {
|
|
|
309
316
|
export function computeDefaults<T = any>(
|
|
310
317
|
schema: JSONSchema7,
|
|
311
318
|
parentDefaults: JSONSchema7['default'][],
|
|
312
|
-
definitions:
|
|
319
|
+
definitions: Registry['definitions'],
|
|
313
320
|
rawFormData?: T,
|
|
314
321
|
includeUndefinedValues?: boolean,
|
|
315
322
|
): JSONSchema7['default'][];
|
|
@@ -317,7 +324,7 @@ declare module '@rjsf/core' {
|
|
|
317
324
|
export function getDefaultFormState<T = any>(
|
|
318
325
|
schema: JSONSchema7,
|
|
319
326
|
formData: T,
|
|
320
|
-
definitions?:
|
|
327
|
+
definitions?: Registry['definitions'],
|
|
321
328
|
includeUndefinedValues?: boolean,
|
|
322
329
|
): T | JSONSchema7['default'][];
|
|
323
330
|
|
|
@@ -337,14 +344,14 @@ declare module '@rjsf/core' {
|
|
|
337
344
|
|
|
338
345
|
export function toConstant(schema: JSONSchema7): JSONSchema7Type | JSONSchema7['const'];
|
|
339
346
|
|
|
340
|
-
export function isSelect(_schema: JSONSchema7, definitions?:
|
|
347
|
+
export function isSelect(_schema: JSONSchema7, definitions?: Registry['definitions']): boolean;
|
|
341
348
|
|
|
342
|
-
export function isMultiSelect(schema: JSONSchema7, definitions?:
|
|
349
|
+
export function isMultiSelect(schema: JSONSchema7, definitions?: Registry['definitions']): boolean;
|
|
343
350
|
|
|
344
351
|
export function isFilesArray(
|
|
345
352
|
schema: JSONSchema7,
|
|
346
353
|
uiSchema: UiSchema,
|
|
347
|
-
definitions?:
|
|
354
|
+
definitions?: Registry['definitions'],
|
|
348
355
|
): boolean;
|
|
349
356
|
|
|
350
357
|
export function isFixedItems(schema: JSONSchema7): boolean;
|
|
@@ -361,19 +368,19 @@ declare module '@rjsf/core' {
|
|
|
361
368
|
|
|
362
369
|
export function stubExistingAdditionalProperties<T = any>(
|
|
363
370
|
schema: JSONSchema7,
|
|
364
|
-
definitions?:
|
|
371
|
+
definitions?: Registry['definitions'],
|
|
365
372
|
formData?: T,
|
|
366
373
|
): JSONSchema7;
|
|
367
374
|
|
|
368
375
|
export function resolveSchema<T = any>(
|
|
369
376
|
schema: JSONSchema7Definition,
|
|
370
|
-
definitions?:
|
|
377
|
+
definitions?: Registry['definitions'],
|
|
371
378
|
formData?: T,
|
|
372
379
|
): JSONSchema7;
|
|
373
380
|
|
|
374
381
|
export function retrieveSchema<T = any>(
|
|
375
382
|
schema: JSONSchema7Definition,
|
|
376
|
-
definitions?:
|
|
383
|
+
definitions?: Registry['definitions'],
|
|
377
384
|
formData?: T,
|
|
378
385
|
): JSONSchema7;
|
|
379
386
|
|
|
@@ -384,7 +391,7 @@ declare module '@rjsf/core' {
|
|
|
384
391
|
export function toIdSchema<T = any>(
|
|
385
392
|
schema: JSONSchema7Definition,
|
|
386
393
|
id: string,
|
|
387
|
-
definitions:
|
|
394
|
+
definitions: Registry['definitions'],
|
|
388
395
|
formData?: T,
|
|
389
396
|
idPredix?: string,
|
|
390
397
|
): IdSchema | IdSchema[];
|
|
@@ -392,7 +399,7 @@ declare module '@rjsf/core' {
|
|
|
392
399
|
export function toPathSchema<T = any>(
|
|
393
400
|
schema: JSONSchema7Definition,
|
|
394
401
|
name: string | undefined,
|
|
395
|
-
definitions:
|
|
402
|
+
definitions: Registry['definitions'],
|
|
396
403
|
formData?: T,
|
|
397
404
|
): PathSchema | PathSchema[];
|
|
398
405
|
|
|
@@ -430,7 +437,7 @@ declare module '@rjsf/core' {
|
|
|
430
437
|
export function getMatchingOption(
|
|
431
438
|
formData: any,
|
|
432
439
|
options: JSONSchema7[],
|
|
433
|
-
definitions:
|
|
440
|
+
definitions: Registry['definitions'],
|
|
434
441
|
): number;
|
|
435
442
|
|
|
436
443
|
export function schemaRequiresTrueValue(schema: JSONSchema7): boolean;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import IconButton from "./IconButton";
|
|
3
|
+
export default function AddButton(_ref) {
|
|
4
|
+
var className = _ref.className,
|
|
5
|
+
onClick = _ref.onClick,
|
|
6
|
+
disabled = _ref.disabled;
|
|
7
|
+
return React.createElement("div", {
|
|
8
|
+
className: "row"
|
|
9
|
+
}, React.createElement("p", {
|
|
10
|
+
className: "col-xs-3 col-xs-offset-9 text-right ".concat(className)
|
|
11
|
+
}, React.createElement(IconButton, {
|
|
12
|
+
type: "info",
|
|
13
|
+
icon: "plus",
|
|
14
|
+
className: "btn-add col-xs-12",
|
|
15
|
+
"aria-label": "Add",
|
|
16
|
+
tabIndex: "0",
|
|
17
|
+
onClick: onClick,
|
|
18
|
+
disabled: disabled
|
|
19
|
+
})));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0FkZEJ1dHRvbi5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsIkljb25CdXR0b24iLCJBZGRCdXR0b24iLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiZGlzYWJsZWQiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsTUFBa0IsT0FBbEI7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBRUEsZUFBZSxTQUFTQyxTQUFULE9BQXFEO0FBQUEsTUFBaENDLFNBQWdDLFFBQWhDQSxTQUFnQztBQUFBLE1BQXJCQyxPQUFxQixRQUFyQkEsT0FBcUI7QUFBQSxNQUFaQyxRQUFZLFFBQVpBLFFBQVk7QUFDbEUsU0FDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsS0FDRTtBQUFHLElBQUEsU0FBUyxnREFBeUNGLFNBQXpDO0FBQVosS0FDRSxvQkFBQyxVQUFEO0FBQ0UsSUFBQSxJQUFJLEVBQUMsTUFEUDtBQUVFLElBQUEsSUFBSSxFQUFDLE1BRlA7QUFHRSxJQUFBLFNBQVMsRUFBQyxtQkFIWjtBQUlFLGtCQUFXLEtBSmI7QUFLRSxJQUFBLFFBQVEsRUFBQyxHQUxYO0FBTUUsSUFBQSxPQUFPLEVBQUVDLE9BTlg7QUFPRSxJQUFBLFFBQVEsRUFBRUM7QUFQWixJQURGLENBREYsQ0FERjtBQWVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBZGRCdXR0b24oeyBjbGFzc05hbWUsIG9uQ2xpY2ssIGRpc2FibGVkIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgPHAgY2xhc3NOYW1lPXtgY29sLXhzLTMgY29sLXhzLW9mZnNldC05IHRleHQtcmlnaHQgJHtjbGFzc05hbWV9YH0+XG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgdHlwZT1cImluZm9cIlxuICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJidG4tYWRkIGNvbC14cy0xMlwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkFkZFwiXG4gICAgICAgICAgdGFiSW5kZXg9XCIwXCJcbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export default function ErrorList(props) {
|
|
3
|
+
var errors = props.errors;
|
|
4
|
+
return React.createElement("div", {
|
|
5
|
+
className: "panel panel-danger errors"
|
|
6
|
+
}, React.createElement("div", {
|
|
7
|
+
className: "panel-heading"
|
|
8
|
+
}, React.createElement("h3", {
|
|
9
|
+
className: "panel-title"
|
|
10
|
+
}, "Errors")), React.createElement("ul", {
|
|
11
|
+
className: "list-group"
|
|
12
|
+
}, errors.map(function (error, i) {
|
|
13
|
+
return React.createElement("li", {
|
|
14
|
+
key: i,
|
|
15
|
+
className: "list-group-item text-danger"
|
|
16
|
+
}, error.stack);
|
|
17
|
+
})));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0Vycm9yTGlzdC5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsIkVycm9yTGlzdCIsInByb3BzIiwiZXJyb3JzIiwibWFwIiwiZXJyb3IiLCJpIiwic3RhY2siXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsTUFBa0IsT0FBbEI7QUFFQSxlQUFlLFNBQVNDLFNBQVQsQ0FBbUJDLEtBQW5CLEVBQTBCO0FBQUEsTUFDL0JDLE1BRCtCLEdBQ3BCRCxLQURvQixDQUMvQkMsTUFEK0I7QUFFdkMsU0FDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsS0FDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsS0FDRTtBQUFJLElBQUEsU0FBUyxFQUFDO0FBQWQsY0FERixDQURGLEVBSUU7QUFBSSxJQUFBLFNBQVMsRUFBQztBQUFkLEtBQ0dBLE1BQU0sQ0FBQ0MsR0FBUCxDQUFXLFVBQUNDLEtBQUQsRUFBUUMsQ0FBUixFQUFjO0FBQ3hCLFdBQ0U7QUFBSSxNQUFBLEdBQUcsRUFBRUEsQ0FBVDtBQUFZLE1BQUEsU0FBUyxFQUFDO0FBQXRCLE9BQ0dELEtBQUssQ0FBQ0UsS0FEVCxDQURGO0FBS0QsR0FOQSxDQURILENBSkYsQ0FERjtBQWdCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRXJyb3JMaXN0KHByb3BzKSB7XG4gIGNvbnN0IHsgZXJyb3JzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInBhbmVsIHBhbmVsLWRhbmdlciBlcnJvcnNcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFuZWwtaGVhZGluZ1wiPlxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwicGFuZWwtdGl0bGVcIj5FcnJvcnM8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgY2xhc3NOYW1lPVwibGlzdC1ncm91cFwiPlxuICAgICAgICB7ZXJyb3JzLm1hcCgoZXJyb3IsIGkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpIGtleT17aX0gY2xhc3NOYW1lPVwibGlzdC1ncm91cC1pdGVtIHRleHQtZGFuZ2VyXCI+XG4gICAgICAgICAgICAgIHtlcnJvci5zdGFja31cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl19
|