@rjsf/core 4.2.0 → 4.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.
Files changed (180) hide show
  1. package/dist/components/AddButton.d.ts +5 -0
  2. package/dist/components/ErrorList.d.ts +1 -0
  3. package/dist/components/Form.d.ts +48 -0
  4. package/dist/components/IconButton.d.ts +1 -0
  5. package/dist/components/fields/ArrayField.d.ts +51 -0
  6. package/dist/components/fields/BooleanField.d.ts +45 -0
  7. package/dist/components/fields/DescriptionField.d.ts +9 -0
  8. package/dist/components/fields/MultiSchemaField.d.ts +40 -0
  9. package/dist/components/fields/NullField.d.ts +6 -0
  10. package/dist/components/fields/NumberField.d.ts +63 -0
  11. package/dist/components/fields/ObjectField.d.ts +22 -0
  12. package/dist/components/fields/SchemaField.d.ts +39 -0
  13. package/dist/components/fields/StringField.d.ts +45 -0
  14. package/dist/components/fields/TitleField.d.ts +10 -0
  15. package/dist/components/fields/UnsupportedField.d.ts +14 -0
  16. package/dist/components/fields/index.d.ts +26 -0
  17. package/dist/components/widgets/AltDateTimeWidget.d.ts +22 -0
  18. package/dist/components/widgets/AltDateWidget.d.ts +22 -0
  19. package/dist/components/widgets/BaseInput.d.ts +23 -0
  20. package/dist/components/widgets/CheckboxWidget.d.ts +18 -0
  21. package/dist/components/widgets/CheckboxesWidget.d.ts +26 -0
  22. package/dist/components/widgets/ColorWidget.d.ts +15 -0
  23. package/dist/components/widgets/DateTimeWidget.d.ts +8 -0
  24. package/dist/components/widgets/DateWidget.d.ts +8 -0
  25. package/dist/components/widgets/EmailWidget.d.ts +8 -0
  26. package/dist/components/widgets/FileWidget.d.ts +19 -0
  27. package/dist/components/widgets/HiddenWidget.d.ts +12 -0
  28. package/dist/components/widgets/PasswordWidget.d.ts +8 -0
  29. package/dist/components/widgets/RadioWidget.d.ts +22 -0
  30. package/dist/components/widgets/RangeWidget.d.ts +8 -0
  31. package/dist/components/widgets/SelectWidget.d.ts +24 -0
  32. package/dist/components/widgets/SubmitButton.d.ts +3 -0
  33. package/dist/components/widgets/TextWidget.d.ts +9 -0
  34. package/dist/components/widgets/TextareaWidget.d.ts +25 -0
  35. package/dist/components/widgets/URLWidget.d.ts +8 -0
  36. package/dist/components/widgets/UpDownWidget.d.ts +8 -0
  37. package/dist/components/widgets/index.d.ts +43 -0
  38. package/dist/core.cjs.development.js +5714 -0
  39. package/dist/core.cjs.development.js.map +1 -0
  40. package/dist/core.cjs.production.min.js +2 -0
  41. package/dist/core.cjs.production.min.js.map +1 -0
  42. package/dist/core.esm.js +5706 -0
  43. package/dist/core.esm.js.map +1 -0
  44. package/dist/defaultRegistry.d.ts +41 -0
  45. package/dist/index.d.ts +71 -0
  46. package/dist/index.js +8 -0
  47. package/dist/types.d.ts +50 -0
  48. package/dist/utils.d.ts +81 -0
  49. package/dist/validate.d.ts +21 -0
  50. package/dist/withTheme.d.ts +10 -0
  51. package/index.d.ts +3 -3
  52. package/package.json +23 -24
  53. package/dist/cjs/components/AddButton.js +0 -32
  54. package/dist/cjs/components/ErrorList.js +0 -29
  55. package/dist/cjs/components/Form.js +0 -576
  56. package/dist/cjs/components/IconButton.js +0 -32
  57. package/dist/cjs/components/fields/ArrayField.js +0 -917
  58. package/dist/cjs/components/fields/BooleanField.js +0 -105
  59. package/dist/cjs/components/fields/DescriptionField.js +0 -44
  60. package/dist/cjs/components/fields/MultiSchemaField.js +0 -265
  61. package/dist/cjs/components/fields/NullField.js +0 -66
  62. package/dist/cjs/components/fields/NumberField.js +0 -153
  63. package/dist/cjs/components/fields/ObjectField.js +0 -345
  64. package/dist/cjs/components/fields/SchemaField.js +0 -475
  65. package/dist/cjs/components/fields/StringField.js +0 -96
  66. package/dist/cjs/components/fields/TitleField.js +0 -37
  67. package/dist/cjs/components/fields/UnsupportedField.js +0 -33
  68. package/dist/cjs/components/fields/index.js +0 -47
  69. package/dist/cjs/components/widgets/AltDateTimeWidget.js +0 -45
  70. package/dist/cjs/components/widgets/AltDateWidget.js +0 -282
  71. package/dist/cjs/components/widgets/BaseInput.js +0 -144
  72. package/dist/cjs/components/widgets/CheckboxWidget.js +0 -74
  73. package/dist/cjs/components/widgets/CheckboxesWidget.js +0 -106
  74. package/dist/cjs/components/widgets/ColorWidget.js +0 -42
  75. package/dist/cjs/components/widgets/DateTimeWidget.js +0 -40
  76. package/dist/cjs/components/widgets/DateWidget.js +0 -36
  77. package/dist/cjs/components/widgets/EmailWidget.js +0 -31
  78. package/dist/cjs/components/widgets/FileWidget.js +0 -198
  79. package/dist/cjs/components/widgets/HiddenWidget.js +0 -33
  80. package/dist/cjs/components/widgets/PasswordWidget.js +0 -31
  81. package/dist/cjs/components/widgets/RadioWidget.js +0 -92
  82. package/dist/cjs/components/widgets/RangeWidget.js +0 -39
  83. package/dist/cjs/components/widgets/SelectWidget.js +0 -143
  84. package/dist/cjs/components/widgets/SubmitButton.js +0 -30
  85. package/dist/cjs/components/widgets/TextWidget.js +0 -28
  86. package/dist/cjs/components/widgets/TextareaWidget.js +0 -78
  87. package/dist/cjs/components/widgets/URLWidget.js +0 -31
  88. package/dist/cjs/components/widgets/UpDownWidget.js +0 -33
  89. package/dist/cjs/components/widgets/index.js +0 -73
  90. package/dist/cjs/index.js +0 -28
  91. package/dist/cjs/types.js +0 -47
  92. package/dist/cjs/utils.js +0 -1419
  93. package/dist/cjs/validate.js +0 -354
  94. package/dist/cjs/withTheme.js +0 -50
  95. package/dist/es/components/AddButton.js +0 -21
  96. package/dist/es/components/ErrorList.js +0 -19
  97. package/dist/es/components/Form.js +0 -561
  98. package/dist/es/components/IconButton.js +0 -22
  99. package/dist/es/components/fields/ArrayField.js +0 -899
  100. package/dist/es/components/fields/BooleanField.js +0 -91
  101. package/dist/es/components/fields/DescriptionField.js +0 -33
  102. package/dist/es/components/fields/MultiSchemaField.js +0 -251
  103. package/dist/es/components/fields/NullField.js +0 -55
  104. package/dist/es/components/fields/NumberField.js +0 -138
  105. package/dist/es/components/fields/ObjectField.js +0 -330
  106. package/dist/es/components/fields/SchemaField.js +0 -457
  107. package/dist/es/components/fields/StringField.js +0 -82
  108. package/dist/es/components/fields/TitleField.js +0 -25
  109. package/dist/es/components/fields/UnsupportedField.js +0 -22
  110. package/dist/es/components/fields/index.js +0 -26
  111. package/dist/es/components/widgets/AltDateTimeWidget.js +0 -33
  112. package/dist/es/components/widgets/AltDateWidget.js +0 -268
  113. package/dist/es/components/widgets/BaseInput.js +0 -133
  114. package/dist/es/components/widgets/CheckboxWidget.js +0 -62
  115. package/dist/es/components/widgets/CheckboxesWidget.js +0 -93
  116. package/dist/es/components/widgets/ColorWidget.js +0 -31
  117. package/dist/es/components/widgets/DateTimeWidget.js +0 -28
  118. package/dist/es/components/widgets/DateWidget.js +0 -25
  119. package/dist/es/components/widgets/EmailWidget.js +0 -20
  120. package/dist/es/components/widgets/FileWidget.js +0 -184
  121. package/dist/es/components/widgets/HiddenWidget.js +0 -22
  122. package/dist/es/components/widgets/PasswordWidget.js +0 -20
  123. package/dist/es/components/widgets/RadioWidget.js +0 -79
  124. package/dist/es/components/widgets/RangeWidget.js +0 -27
  125. package/dist/es/components/widgets/SelectWidget.js +0 -130
  126. package/dist/es/components/widgets/SubmitButton.js +0 -19
  127. package/dist/es/components/widgets/TextWidget.js +0 -17
  128. package/dist/es/components/widgets/TextareaWidget.js +0 -67
  129. package/dist/es/components/widgets/URLWidget.js +0 -20
  130. package/dist/es/components/widgets/UpDownWidget.js +0 -21
  131. package/dist/es/components/widgets/index.js +0 -43
  132. package/dist/es/index.js +0 -6
  133. package/dist/es/types.js +0 -34
  134. package/dist/es/utils.js +0 -1317
  135. package/dist/es/validate.js +0 -338
  136. package/dist/es/withTheme.js +0 -36
  137. package/dist/react-jsonschema-form.js +0 -11
  138. package/dist/react-jsonschema-form.js.map +0 -1
  139. package/lib/components/AddButton.js +0 -21
  140. package/lib/components/ErrorList.js +0 -19
  141. package/lib/components/Form.js +0 -561
  142. package/lib/components/IconButton.js +0 -22
  143. package/lib/components/fields/ArrayField.js +0 -899
  144. package/lib/components/fields/BooleanField.js +0 -91
  145. package/lib/components/fields/DescriptionField.js +0 -33
  146. package/lib/components/fields/MultiSchemaField.js +0 -251
  147. package/lib/components/fields/NullField.js +0 -55
  148. package/lib/components/fields/NumberField.js +0 -138
  149. package/lib/components/fields/ObjectField.js +0 -330
  150. package/lib/components/fields/SchemaField.js +0 -457
  151. package/lib/components/fields/StringField.js +0 -82
  152. package/lib/components/fields/TitleField.js +0 -25
  153. package/lib/components/fields/UnsupportedField.js +0 -22
  154. package/lib/components/fields/index.js +0 -26
  155. package/lib/components/widgets/AltDateTimeWidget.js +0 -33
  156. package/lib/components/widgets/AltDateWidget.js +0 -268
  157. package/lib/components/widgets/BaseInput.js +0 -133
  158. package/lib/components/widgets/CheckboxWidget.js +0 -62
  159. package/lib/components/widgets/CheckboxesWidget.js +0 -93
  160. package/lib/components/widgets/ColorWidget.js +0 -31
  161. package/lib/components/widgets/DateTimeWidget.js +0 -28
  162. package/lib/components/widgets/DateWidget.js +0 -25
  163. package/lib/components/widgets/EmailWidget.js +0 -20
  164. package/lib/components/widgets/FileWidget.js +0 -184
  165. package/lib/components/widgets/HiddenWidget.js +0 -22
  166. package/lib/components/widgets/PasswordWidget.js +0 -20
  167. package/lib/components/widgets/RadioWidget.js +0 -79
  168. package/lib/components/widgets/RangeWidget.js +0 -27
  169. package/lib/components/widgets/SelectWidget.js +0 -130
  170. package/lib/components/widgets/SubmitButton.js +0 -19
  171. package/lib/components/widgets/TextWidget.js +0 -17
  172. package/lib/components/widgets/TextareaWidget.js +0 -67
  173. package/lib/components/widgets/URLWidget.js +0 -20
  174. package/lib/components/widgets/UpDownWidget.js +0 -21
  175. package/lib/components/widgets/index.js +0 -43
  176. package/lib/index.js +0 -6
  177. package/lib/types.js +0 -34
  178. package/lib/utils.js +0 -1317
  179. package/lib/validate.js +0 -338
  180. package/lib/withTheme.js +0 -36
@@ -1,475 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _IconButton = _interopRequireDefault(require("../IconButton"));
9
-
10
- var _react = _interopRequireDefault(require("react"));
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- var types = _interopRequireWildcard(require("../../types"));
15
-
16
- var _utils = require("../../utils");
17
-
18
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
-
22
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
23
-
24
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
-
26
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
27
-
28
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
29
-
30
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
31
-
32
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
-
34
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
35
-
36
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
37
-
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
43
-
44
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
-
46
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
47
-
48
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
49
-
50
- var REQUIRED_FIELD_SYMBOL = "*";
51
- var COMPONENT_TYPES = {
52
- array: "ArrayField",
53
- "boolean": "BooleanField",
54
- integer: "NumberField",
55
- number: "NumberField",
56
- object: "ObjectField",
57
- string: "StringField",
58
- "null": "NullField"
59
- };
60
-
61
- function getFieldComponent(schema, uiSchema, idSchema, fields) {
62
- var field = uiSchema["ui:field"];
63
-
64
- if (typeof field === "function") {
65
- return field;
66
- }
67
-
68
- if (typeof field === "string" && field in fields) {
69
- return fields[field];
70
- }
71
-
72
- var componentName = COMPONENT_TYPES[(0, _utils.getSchemaType)(schema)]; // If the type is not defined and the schema uses 'anyOf' or 'oneOf', don't
73
- // render a field and let the MultiSchemaField component handle the form display
74
-
75
- if (!componentName && (schema.anyOf || schema.oneOf)) {
76
- return function () {
77
- return null;
78
- };
79
- }
80
-
81
- return componentName in fields ? fields[componentName] : function () {
82
- var UnsupportedField = fields.UnsupportedField;
83
- return _react["default"].createElement(UnsupportedField, {
84
- schema: schema,
85
- idSchema: idSchema,
86
- reason: "Unknown field type ".concat(schema.type)
87
- });
88
- };
89
- }
90
-
91
- function Label(props) {
92
- var label = props.label,
93
- required = props.required,
94
- id = props.id;
95
-
96
- if (!label) {
97
- return null;
98
- }
99
-
100
- return _react["default"].createElement("label", {
101
- className: "control-label",
102
- htmlFor: id
103
- }, label, required && _react["default"].createElement("span", {
104
- className: "required"
105
- }, REQUIRED_FIELD_SYMBOL));
106
- }
107
-
108
- function LabelInput(props) {
109
- var id = props.id,
110
- label = props.label,
111
- onChange = props.onChange;
112
- return _react["default"].createElement("input", {
113
- className: "form-control",
114
- type: "text",
115
- id: id,
116
- onBlur: function onBlur(event) {
117
- return onChange(event.target.value);
118
- },
119
- defaultValue: label
120
- });
121
- }
122
-
123
- function Help(props) {
124
- var id = props.id,
125
- help = props.help;
126
-
127
- if (!help) {
128
- return null;
129
- }
130
-
131
- if (typeof help === "string") {
132
- return _react["default"].createElement("p", {
133
- id: id,
134
- className: "help-block"
135
- }, help);
136
- }
137
-
138
- return _react["default"].createElement("div", {
139
- id: id,
140
- className: "help-block"
141
- }, help);
142
- }
143
-
144
- function ErrorList(props) {
145
- var _props$errors = props.errors,
146
- errors = _props$errors === void 0 ? [] : _props$errors;
147
-
148
- if (errors.length === 0) {
149
- return null;
150
- }
151
-
152
- return _react["default"].createElement("div", null, _react["default"].createElement("ul", {
153
- className: "error-detail bs-callout bs-callout-info"
154
- }, errors.filter(function (elem) {
155
- return !!elem;
156
- }).map(function (error, index) {
157
- return _react["default"].createElement("li", {
158
- className: "text-danger",
159
- key: index
160
- }, error);
161
- })));
162
- }
163
-
164
- function DefaultTemplate(props) {
165
- var id = props.id,
166
- label = props.label,
167
- children = props.children,
168
- errors = props.errors,
169
- help = props.help,
170
- description = props.description,
171
- hidden = props.hidden,
172
- required = props.required,
173
- displayLabel = props.displayLabel;
174
-
175
- if (hidden) {
176
- return _react["default"].createElement("div", {
177
- className: "hidden"
178
- }, children);
179
- }
180
-
181
- return _react["default"].createElement(WrapIfAdditional, props, displayLabel && _react["default"].createElement(Label, {
182
- label: label,
183
- required: required,
184
- id: id
185
- }), displayLabel && description ? description : null, children, errors, help);
186
- }
187
-
188
- if (process.env.NODE_ENV !== "production") {
189
- DefaultTemplate.propTypes = {
190
- id: _propTypes["default"].string,
191
- classNames: _propTypes["default"].string,
192
- label: _propTypes["default"].string,
193
- children: _propTypes["default"].node.isRequired,
194
- errors: _propTypes["default"].element,
195
- rawErrors: _propTypes["default"].arrayOf(_propTypes["default"].string),
196
- help: _propTypes["default"].element,
197
- rawHelp: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]),
198
- description: _propTypes["default"].element,
199
- rawDescription: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].element]),
200
- hidden: _propTypes["default"].bool,
201
- required: _propTypes["default"].bool,
202
- readonly: _propTypes["default"].bool,
203
- displayLabel: _propTypes["default"].bool,
204
- fields: _propTypes["default"].object,
205
- formContext: _propTypes["default"].object
206
- };
207
- }
208
-
209
- DefaultTemplate.defaultProps = {
210
- hidden: false,
211
- readonly: false,
212
- required: false,
213
- displayLabel: true
214
- };
215
-
216
- function WrapIfAdditional(props) {
217
- var id = props.id,
218
- classNames = props.classNames,
219
- disabled = props.disabled,
220
- label = props.label,
221
- onKeyChange = props.onKeyChange,
222
- onDropPropertyClick = props.onDropPropertyClick,
223
- readonly = props.readonly,
224
- required = props.required,
225
- schema = props.schema;
226
- var keyLabel = "".concat(label, " Key"); // i18n ?
227
-
228
- var additional = schema.hasOwnProperty(_utils.ADDITIONAL_PROPERTY_FLAG);
229
-
230
- if (!additional) {
231
- return _react["default"].createElement("div", {
232
- className: classNames
233
- }, props.children);
234
- }
235
-
236
- return _react["default"].createElement("div", {
237
- className: classNames
238
- }, _react["default"].createElement("div", {
239
- className: "row"
240
- }, _react["default"].createElement("div", {
241
- className: "col-xs-5 form-additional"
242
- }, _react["default"].createElement("div", {
243
- className: "form-group"
244
- }, _react["default"].createElement(Label, {
245
- label: keyLabel,
246
- required: required,
247
- id: "".concat(id, "-key")
248
- }), _react["default"].createElement(LabelInput, {
249
- label: label,
250
- required: required,
251
- id: "".concat(id, "-key"),
252
- onChange: onKeyChange
253
- }))), _react["default"].createElement("div", {
254
- className: "form-additional form-group col-xs-5"
255
- }, props.children), _react["default"].createElement("div", {
256
- className: "col-xs-2"
257
- }, _react["default"].createElement(_IconButton["default"], {
258
- type: "danger",
259
- icon: "remove",
260
- className: "array-item-remove btn-block",
261
- tabIndex: "-1",
262
- style: {
263
- border: "0"
264
- },
265
- disabled: disabled || readonly,
266
- onClick: onDropPropertyClick(label)
267
- }))));
268
- }
269
-
270
- function SchemaFieldRender(props) {
271
- var uiSchema = props.uiSchema,
272
- formData = props.formData,
273
- errorSchema = props.errorSchema,
274
- idPrefix = props.idPrefix,
275
- idSeparator = props.idSeparator,
276
- name = props.name,
277
- onChange = props.onChange,
278
- onKeyChange = props.onKeyChange,
279
- onDropPropertyClick = props.onDropPropertyClick,
280
- required = props.required,
281
- _props$registry = props.registry,
282
- registry = _props$registry === void 0 ? (0, _utils.getDefaultRegistry)() : _props$registry,
283
- _props$wasPropertyKey = props.wasPropertyKeyModified,
284
- wasPropertyKeyModified = _props$wasPropertyKey === void 0 ? false : _props$wasPropertyKey;
285
- var rootSchema = registry.rootSchema,
286
- fields = registry.fields,
287
- formContext = registry.formContext;
288
- var FieldTemplate = uiSchema["ui:FieldTemplate"] || registry.FieldTemplate || DefaultTemplate;
289
- var idSchema = props.idSchema;
290
- var schema = (0, _utils.retrieveSchema)(props.schema, rootSchema, formData);
291
- idSchema = (0, _utils.mergeObjects)((0, _utils.toIdSchema)(schema, null, rootSchema, formData, idPrefix, idSeparator), idSchema);
292
- var FieldComponent = getFieldComponent(schema, uiSchema, idSchema, fields);
293
- var DescriptionField = fields.DescriptionField;
294
- var disabled = Boolean(props.disabled || uiSchema["ui:disabled"]);
295
- var readonly = Boolean(props.readonly || uiSchema["ui:readonly"] || props.schema.readOnly || schema.readOnly);
296
- var uiSchemaHideError = uiSchema["ui:hideError"]; // Set hideError to the value provided in the uiSchema, otherwise stick with the prop to propagate to children
297
-
298
- var hideError = uiSchemaHideError === undefined ? props.hideError : Boolean(uiSchemaHideError);
299
- var autofocus = Boolean(props.autofocus || uiSchema["ui:autofocus"]);
300
-
301
- if (Object.keys(schema).length === 0) {
302
- return null;
303
- }
304
-
305
- var displayLabel = (0, _utils.getDisplayLabel)(schema, uiSchema, rootSchema);
306
-
307
- var __errors = errorSchema.__errors,
308
- fieldErrorSchema = _objectWithoutProperties(errorSchema, ["__errors"]); // See #439: uiSchema: Don't pass consumed class names to child components
309
-
310
-
311
- var field = _react["default"].createElement(FieldComponent, _extends({}, props, {
312
- idSchema: idSchema,
313
- schema: schema,
314
- uiSchema: _objectSpread({}, uiSchema, {
315
- classNames: undefined
316
- }),
317
- disabled: disabled,
318
- readonly: readonly,
319
- hideError: hideError,
320
- autofocus: autofocus,
321
- errorSchema: fieldErrorSchema,
322
- formContext: formContext,
323
- rawErrors: __errors
324
- }));
325
-
326
- var id = idSchema.$id; // If this schema has a title defined, but the user has set a new key/label, retain their input.
327
-
328
- var label;
329
-
330
- if (wasPropertyKeyModified) {
331
- label = name;
332
- } else {
333
- label = uiSchema["ui:title"] || props.schema.title || schema.title || name;
334
- }
335
-
336
- var description = uiSchema["ui:description"] || props.schema.description || schema.description;
337
- var errors = __errors;
338
- var help = uiSchema["ui:help"];
339
- var hidden = uiSchema["ui:widget"] === "hidden";
340
- var classNames = ["form-group", "field", "field-".concat(schema.type)];
341
-
342
- if (!hideError && errors && errors.length > 0) {
343
- classNames.push("field-error has-error has-danger");
344
- }
345
-
346
- classNames.push(uiSchema.classNames);
347
- classNames = classNames.join(" ").trim();
348
- var fieldProps = {
349
- description: _react["default"].createElement(DescriptionField, {
350
- id: id + "__description",
351
- description: description,
352
- formContext: formContext
353
- }),
354
- rawDescription: description,
355
- help: _react["default"].createElement(Help, {
356
- id: id + "__help",
357
- help: help
358
- }),
359
- rawHelp: typeof help === "string" ? help : undefined,
360
- errors: hideError ? undefined : _react["default"].createElement(ErrorList, {
361
- errors: errors
362
- }),
363
- rawErrors: hideError ? undefined : errors,
364
- id: id,
365
- label: label,
366
- hidden: hidden,
367
- onChange: onChange,
368
- onKeyChange: onKeyChange,
369
- onDropPropertyClick: onDropPropertyClick,
370
- required: required,
371
- disabled: disabled,
372
- readonly: readonly,
373
- hideError: hideError,
374
- displayLabel: displayLabel,
375
- classNames: classNames,
376
- formContext: formContext,
377
- formData: formData,
378
- fields: fields,
379
- schema: schema,
380
- uiSchema: uiSchema,
381
- registry: registry
382
- };
383
- var _AnyOfField = registry.fields.AnyOfField;
384
- var _OneOfField = registry.fields.OneOfField;
385
- return _react["default"].createElement(FieldTemplate, fieldProps, _react["default"].createElement(_react["default"].Fragment, null, field, schema.anyOf && !(0, _utils.isSelect)(schema) && _react["default"].createElement(_AnyOfField, {
386
- disabled: disabled,
387
- readonly: readonly,
388
- hideError: hideError,
389
- errorSchema: errorSchema,
390
- formData: formData,
391
- idPrefix: idPrefix,
392
- idSchema: idSchema,
393
- idSeparator: idSeparator,
394
- onBlur: props.onBlur,
395
- onChange: props.onChange,
396
- onFocus: props.onFocus,
397
- options: schema.anyOf.map(function (_schema) {
398
- return (0, _utils.retrieveSchema)(_schema, rootSchema, formData);
399
- }),
400
- baseType: schema.type,
401
- registry: registry,
402
- schema: schema,
403
- uiSchema: uiSchema
404
- }), schema.oneOf && !(0, _utils.isSelect)(schema) && _react["default"].createElement(_OneOfField, {
405
- disabled: disabled,
406
- readonly: readonly,
407
- hideError: hideError,
408
- errorSchema: errorSchema,
409
- formData: formData,
410
- idPrefix: idPrefix,
411
- idSchema: idSchema,
412
- idSeparator: idSeparator,
413
- onBlur: props.onBlur,
414
- onChange: props.onChange,
415
- onFocus: props.onFocus,
416
- options: schema.oneOf.map(function (_schema) {
417
- return (0, _utils.retrieveSchema)(_schema, rootSchema, formData);
418
- }),
419
- baseType: schema.type,
420
- registry: registry,
421
- schema: schema,
422
- uiSchema: uiSchema
423
- })));
424
- }
425
-
426
- var SchemaField =
427
- /*#__PURE__*/
428
- function (_React$Component) {
429
- _inherits(SchemaField, _React$Component);
430
-
431
- function SchemaField() {
432
- _classCallCheck(this, SchemaField);
433
-
434
- return _possibleConstructorReturn(this, _getPrototypeOf(SchemaField).apply(this, arguments));
435
- }
436
-
437
- _createClass(SchemaField, [{
438
- key: "shouldComponentUpdate",
439
- value: function shouldComponentUpdate(nextProps, nextState) {
440
- return !(0, _utils.deepEquals)(this.props, nextProps);
441
- }
442
- }, {
443
- key: "render",
444
- value: function render() {
445
- return SchemaFieldRender(this.props);
446
- }
447
- }]);
448
-
449
- return SchemaField;
450
- }(_react["default"].Component);
451
-
452
- SchemaField.defaultProps = {
453
- uiSchema: {},
454
- errorSchema: {},
455
- idSchema: {},
456
- disabled: false,
457
- readonly: false,
458
- autofocus: false,
459
- hideError: false
460
- };
461
-
462
- if (process.env.NODE_ENV !== "production") {
463
- SchemaField.propTypes = {
464
- schema: _propTypes["default"].object.isRequired,
465
- uiSchema: _propTypes["default"].object,
466
- idSchema: _propTypes["default"].object,
467
- formData: _propTypes["default"].any,
468
- errorSchema: _propTypes["default"].object,
469
- registry: types.registry.isRequired
470
- };
471
- }
472
-
473
- var _default = SchemaField;
474
- exports["default"] = _default;
475
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpZWxkcy9TY2hlbWFGaWVsZC5qcyJdLCJuYW1lcyI6WyJSRVFVSVJFRF9GSUVMRF9TWU1CT0wiLCJDT01QT05FTlRfVFlQRVMiLCJhcnJheSIsImludGVnZXIiLCJudW1iZXIiLCJvYmplY3QiLCJzdHJpbmciLCJnZXRGaWVsZENvbXBvbmVudCIsInNjaGVtYSIsInVpU2NoZW1hIiwiaWRTY2hlbWEiLCJmaWVsZHMiLCJmaWVsZCIsImNvbXBvbmVudE5hbWUiLCJhbnlPZiIsIm9uZU9mIiwiVW5zdXBwb3J0ZWRGaWVsZCIsInR5cGUiLCJMYWJlbCIsInByb3BzIiwibGFiZWwiLCJyZXF1aXJlZCIsImlkIiwiTGFiZWxJbnB1dCIsIm9uQ2hhbmdlIiwiZXZlbnQiLCJ0YXJnZXQiLCJ2YWx1ZSIsIkhlbHAiLCJoZWxwIiwiRXJyb3JMaXN0IiwiZXJyb3JzIiwibGVuZ3RoIiwiZmlsdGVyIiwiZWxlbSIsIm1hcCIsImVycm9yIiwiaW5kZXgiLCJEZWZhdWx0VGVtcGxhdGUiLCJjaGlsZHJlbiIsImRlc2NyaXB0aW9uIiwiaGlkZGVuIiwiZGlzcGxheUxhYmVsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiY2xhc3NOYW1lcyIsIm5vZGUiLCJpc1JlcXVpcmVkIiwiZWxlbWVudCIsInJhd0Vycm9ycyIsImFycmF5T2YiLCJyYXdIZWxwIiwib25lT2ZUeXBlIiwicmF3RGVzY3JpcHRpb24iLCJib29sIiwicmVhZG9ubHkiLCJmb3JtQ29udGV4dCIsImRlZmF1bHRQcm9wcyIsIldyYXBJZkFkZGl0aW9uYWwiLCJkaXNhYmxlZCIsIm9uS2V5Q2hhbmdlIiwib25Ecm9wUHJvcGVydHlDbGljayIsImtleUxhYmVsIiwiYWRkaXRpb25hbCIsImhhc093blByb3BlcnR5IiwiQURESVRJT05BTF9QUk9QRVJUWV9GTEFHIiwiYm9yZGVyIiwiU2NoZW1hRmllbGRSZW5kZXIiLCJmb3JtRGF0YSIsImVycm9yU2NoZW1hIiwiaWRQcmVmaXgiLCJpZFNlcGFyYXRvciIsIm5hbWUiLCJyZWdpc3RyeSIsIndhc1Byb3BlcnR5S2V5TW9kaWZpZWQiLCJyb290U2NoZW1hIiwiRmllbGRUZW1wbGF0ZSIsIkZpZWxkQ29tcG9uZW50IiwiRGVzY3JpcHRpb25GaWVsZCIsIkJvb2xlYW4iLCJyZWFkT25seSIsInVpU2NoZW1hSGlkZUVycm9yIiwiaGlkZUVycm9yIiwidW5kZWZpbmVkIiwiYXV0b2ZvY3VzIiwiT2JqZWN0Iiwia2V5cyIsIl9fZXJyb3JzIiwiZmllbGRFcnJvclNjaGVtYSIsIiRpZCIsInRpdGxlIiwicHVzaCIsImpvaW4iLCJ0cmltIiwiZmllbGRQcm9wcyIsIl9BbnlPZkZpZWxkIiwiQW55T2ZGaWVsZCIsIl9PbmVPZkZpZWxkIiwiT25lT2ZGaWVsZCIsIm9uQmx1ciIsIm9uRm9jdXMiLCJfc2NoZW1hIiwiU2NoZW1hRmllbGQiLCJuZXh0UHJvcHMiLCJuZXh0U3RhdGUiLCJSZWFjdCIsIkNvbXBvbmVudCIsImFueSIsInR5cGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQSxJQUFNQSxxQkFBcUIsR0FBRyxHQUE5QjtBQUNBLElBQU1DLGVBQWUsR0FBRztBQUN0QkMsRUFBQUEsS0FBSyxFQUFFLFlBRGU7QUFFdEIsYUFBUyxjQUZhO0FBR3RCQyxFQUFBQSxPQUFPLEVBQUUsYUFIYTtBQUl0QkMsRUFBQUEsTUFBTSxFQUFFLGFBSmM7QUFLdEJDLEVBQUFBLE1BQU0sRUFBRSxhQUxjO0FBTXRCQyxFQUFBQSxNQUFNLEVBQUUsYUFOYztBQU90QixVQUFNO0FBUGdCLENBQXhCOztBQVVBLFNBQVNDLGlCQUFULENBQTJCQyxNQUEzQixFQUFtQ0MsUUFBbkMsRUFBNkNDLFFBQTdDLEVBQXVEQyxNQUF2RCxFQUErRDtBQUM3RCxNQUFNQyxLQUFLLEdBQUdILFFBQVEs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QVUxQyxNQUZFO0FBR3RCSyxJQUFBQSxRQUFRLEVBQUVxQyxzQkFBVTFDLE1BSEU7QUFJdEJrRSxJQUFBQSxRQUFRLEVBQUV4QixzQkFBVStELEdBSkU7QUFLdEJ0QyxJQUFBQSxXQUFXLEVBQUV6QixzQkFBVTFDLE1BTEQ7QUFNdEJ1RSxJQUFBQSxRQUFRLEVBQUVtQyxLQUFLLENBQUNuQyxRQUFOLENBQWUxQjtBQU5ILEdBQXhCO0FBUUQ7O2VBRWN1RCxXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIi4uL0ljb25CdXR0b25cIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5pbXBvcnQge1xuICBBRERJVElPTkFMX1BST1BFUlRZX0ZMQUcsXG4gIGlzU2VsZWN0LFxuICByZXRyaWV2ZVNjaGVtYSxcbiAgdG9JZFNjaGVtYSxcbiAgZ2V0RGVmYXVsdFJlZ2lzdHJ5LFxuICBtZXJnZU9iamVjdHMsXG4gIGRlZXBFcXVhbHMsXG4gIGdldFNjaGVtYVR5cGUsXG4gIGdldERpc3BsYXlMYWJlbCxcbn0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbmNvbnN0IFJFUVVJUkVEX0ZJRUxEX1NZTUJPTCA9IFwiKlwiO1xuY29uc3QgQ09NUE9ORU5UX1RZUEVTID0ge1xuICBhcnJheTogXCJBcnJheUZpZWxkXCIsXG4gIGJvb2xlYW46IFwiQm9vbGVhbkZpZWxkXCIsXG4gIGludGVnZXI6IFwiTnVtYmVyRmllbGRcIixcbiAgbnVtYmVyOiBcIk51bWJlckZpZWxkXCIsXG4gIG9iamVjdDogXCJPYmplY3RGaWVsZFwiLFxuICBzdHJpbmc6IFwiU3RyaW5nRmllbGRcIixcbiAgbnVsbDogXCJOdWxsRmllbGRcIixcbn07XG5cbmZ1bmN0aW9uIGdldEZpZWxkQ29tcG9uZW50KHNjaGVtYSwgdWlTY2hlbWEsIGlkU2NoZW1hLCBmaWVsZHMpIHtcbiAgY29uc3QgZmllbGQgPSB1aVNjaGVtYVtcInVpOmZpZWxkXCJdO1xuICBpZiAodHlwZW9mIGZpZWxkID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gZmllbGQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBmaWVsZCA9PT0gXCJzdHJpbmdcIiAmJiBmaWVsZCBpbiBmaWVsZHMpIHtcbiAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTtcbiAgfVxuXG4gIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBDT01QT05FTlRfVFlQRVNbZ2V0U2NoZW1hVHlwZShzY2hlbWEpXTtcblxuICAvLyBJZiB0aGUgdHlwZSBpcyBub3QgZGVmaW5lZCBhbmQgdGhlIHNjaGVtYSB1c2VzICdhbnlPZicgb3IgJ29uZU9mJywgZG9uJ3RcbiAgLy8gcmVuZGVyIGEgZmllbGQgYW5kIGxldCB0aGUgTXVsdGlTY2hlbWFGaWVsZCBjb21wb25lbnQgaGFuZGxlIHRoZSBmb3JtIGRpc3BsYXlcbiAgaWYgKCFjb21wb25lbnROYW1lICYmIChzY2hlbWEuYW55T2YgfHwgc2NoZW1hLm9uZU9mKSkge1xuICAgIHJldHVybiAoKSA9PiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbXBvbmVudE5hbWUgaW4gZmllbGRzXG4gICAgPyBmaWVsZHNbY29tcG9uZW50TmFtZV1cbiAgICA6ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBVbnN1cHBvcnRlZEZpZWxkIH0gPSBmaWVsZHM7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8VW5zdXBwb3J0ZWRGaWVsZFxuICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICBpZFNjaGVtYT17aWRTY2hlbWF9XG4gICAgICAgICAgICByZWFzb249e2BVbmtub3duIGZpZWxkIHR5cGUgJHtzY2hlbWEudHlwZX1gfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9O1xufVxuXG5mdW5jdGlvbiBMYWJlbChwcm9wcykge1xuICBjb25zdCB7IGxhYmVsLCByZXF1aXJlZCwgaWQgfSA9IHByb3BzO1xuICBpZiAoIWxhYmVsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8bGFiZWwgY2xhc3NOYW1lPVwiY29udHJvbC1sYWJlbFwiIGh0bWxGb3I9e2lkfT5cbiAgICAgIHtsYWJlbH1cbiAgICAgIHtyZXF1aXJlZCAmJiA8c3BhbiBjbGFzc05hbWU9XCJyZXF1aXJlZFwiPntSRVFVSVJFRF9GSUVMRF9TWU1CT0x9PC9zcGFuPn1cbiAgICA8L2xhYmVsPlxuICApO1xufVxuXG5mdW5jdGlvbiBMYWJlbElucHV0KHByb3BzKSB7XG4gIGNvbnN0IHsgaWQsIGxhYmVsLCBvbkNoYW5nZSB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9e2lkfVxuICAgICAgb25CbHVyPXtldmVudCA9PiBvbkNoYW5nZShldmVudC50YXJnZXQudmFsdWUpfVxuICAgICAgZGVmYXVsdFZhbHVlPXtsYWJlbH1cbiAgICAvPlxuICApO1xufVxuXG5mdW5jdGlvbiBIZWxwKHByb3BzKSB7XG4gIGNvbnN0IHsgaWQsIGhlbHAgfSA9IHByb3BzO1xuICBpZiAoIWhlbHApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAodHlwZW9mIGhlbHAgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHAgaWQ9e2lkfSBjbGFzc05hbWU9XCJoZWxwLWJsb2NrXCI+XG4gICAgICAgIHtoZWxwfVxuICAgICAgPC9wPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGlkPXtpZH0gY2xhc3NOYW1lPVwiaGVscC1ibG9ja1wiPlxuICAgICAge2hlbHB9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEVycm9yTGlzdChwcm9wcykge1xuICBjb25zdCB7IGVycm9ycyA9IFtdIH0gPSBwcm9wcztcbiAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDx1bCBjbGFzc05hbWU9XCJlcnJvci1kZXRhaWwgYnMtY2FsbG91dCBicy1jYWxsb3V0LWluZm9cIj5cbiAgICAgICAge2Vycm9yc1xuICAgICAgICAgIC5maWx0ZXIoZWxlbSA9PiAhIWVsZW0pXG4gICAgICAgICAgLm1hcCgoZXJyb3IsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwidGV4dC1kYW5nZXJcIiBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbmZ1bmN0aW9uIERlZmF1bHRUZW1wbGF0ZShwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgY2hpbGRyZW4sXG4gICAgZXJyb3JzLFxuICAgIGhlbHAsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgaGlkZGVuLFxuICAgIHJlcXVpcmVkLFxuICAgIGRpc3BsYXlMYWJlbCxcbiAgfSA9IHByb3BzO1xuICBpZiAoaGlkZGVuKSB7XG4gICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuXCI+e2NoaWxkcmVufTwvZGl2PjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFdyYXBJZkFkZGl0aW9uYWwgey4uLnByb3BzfT5cbiAgICAgIHtkaXNwbGF5TGFiZWwgJiYgPExhYmVsIGxhYmVsPXtsYWJlbH0gcmVxdWlyZWQ9e3JlcXVpcmVkfSBpZD17aWR9IC8+fVxuICAgICAge2Rpc3BsYXlMYWJlbCAmJiBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtlcnJvcnN9XG4gICAgICB7aGVscH1cbiAgICA8L1dyYXBJZkFkZGl0aW9uYWw+XG4gICk7XG59XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIERlZmF1bHRUZW1wbGF0ZS5wcm9wVHlwZXMgPSB7XG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBlcnJvcnM6IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIHJhd0Vycm9yczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgaGVscDogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgcmF3SGVscDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmVsZW1lbnRdKSxcbiAgICBkZXNjcmlwdGlvbjogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgcmF3RGVzY3JpcHRpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5lbGVtZW50XSksXG4gICAgaGlkZGVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgcmVhZG9ubHk6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc3BsYXlMYWJlbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZmllbGRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGZvcm1Db250ZXh0OiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xufVxuXG5EZWZhdWx0VGVtcGxhdGUuZGVmYXVsdFByb3BzID0ge1xuICBoaWRkZW46IGZhbHNlLFxuICByZWFkb25seTogZmFsc2UsXG4gIHJlcXVpcmVkOiBmYWxzZSxcbiAgZGlzcGxheUxhYmVsOiB0cnVlLFxufTtcblxuZnVuY3Rpb24gV3JhcElmQWRkaXRpb25hbChwcm9wcykge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgY2xhc3NOYW1lcyxcbiAgICBkaXNhYmxlZCxcbiAgICBsYWJlbCxcbiAgICBvbktleUNoYW5nZSxcbiAgICBvbkRyb3BQcm9wZXJ0eUNsaWNrLFxuICAgIHJlYWRvbmx5LFxuICAgIHJlcXVpcmVkLFxuICAgIHNjaGVtYSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBrZXlMYWJlbCA9IGAke2xhYmVsfSBLZXlgOyAvLyBpMThuID9cbiAgY29uc3QgYWRkaXRpb25hbCA9IHNjaGVtYS5oYXNPd25Qcm9wZXJ0eShBRERJVElPTkFMX1BST1BFUlRZX0ZMQUcpO1xuXG4gIGlmICghYWRkaXRpb25hbCkge1xuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lc30+e3Byb3BzLmNoaWxkcmVufTwvZGl2PjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wteHMtNSBmb3JtLWFkZGl0aW9uYWxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxMYWJlbCBsYWJlbD17a2V5TGFiZWx9IHJlcXVpcmVkPXtyZXF1aXJlZH0gaWQ9e2Ake2lkfS1rZXlgfSAvPlxuICAgICAgICAgICAgPExhYmVsSW5wdXRcbiAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgICAgIGlkPXtgJHtpZH0ta2V5YH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uS2V5Q2hhbmdlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1hZGRpdGlvbmFsIGZvcm0tZ3JvdXAgY29sLXhzLTVcIj5cbiAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC14cy0yXCI+XG4gICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJkYW5nZXJcIlxuICAgICAgICAgICAgaWNvbj1cInJlbW92ZVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhcnJheS1pdGVtLXJlbW92ZSBidG4tYmxvY2tcIlxuICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICBzdHlsZT17eyBib3JkZXI6IFwiMFwiIH19XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkRyb3BQcm9wZXJ0eUNsaWNrKGxhYmVsKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBTY2hlbWFGaWVsZFJlbmRlcihwcm9wcykge1xuICBjb25zdCB7XG4gICAgdWlTY2hlbWEsXG4gICAgZm9ybURhdGEsXG4gICAgZXJyb3JTY2hlbWEsXG4gICAgaWRQcmVmaXgsXG4gICAgaWRTZXBhcmF0b3IsXG4gICAgbmFtZSxcbiAgICBvbkNoYW5nZSxcbiAgICBvbktleUNoYW5nZSxcbiAgICBvbkRyb3BQcm9wZXJ0eUNsaWNrLFxuICAgIHJlcXVpcmVkLFxuICAgIHJlZ2lzdHJ5ID0gZ2V0RGVmYXVsdFJlZ2lzdHJ5KCksXG4gICAgd2FzUHJvcGVydHlLZXlNb2RpZmllZCA9IGZhbHNlLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgcm9vdFNjaGVtYSwgZmllbGRzLCBmb3JtQ29udGV4dCB9ID0gcmVnaXN0cnk7XG4gIGNvbnN0IEZpZWxkVGVtcGxhdGUgPVxuICAgIHVpU2NoZW1hW1widWk6RmllbGRUZW1wbGF0ZVwiXSB8fCByZWdpc3RyeS5GaWVsZFRlbXBsYXRlIHx8IERlZmF1bHRUZW1wbGF0ZTtcbiAgbGV0IGlkU2NoZW1hID0gcHJvcHMuaWRTY2hlbWE7XG4gIGNvbnN0IHNjaGVtYSA9IHJldHJpZXZlU2NoZW1hKHByb3BzLnNjaGVtYSwgcm9vdFNjaGVtYSwgZm9ybURhdGEpO1xuICBpZFNjaGVtYSA9IG1lcmdlT2JqZWN0cyhcbiAgICB0b0lkU2NoZW1hKHNjaGVtYSwgbnVsbCwgcm9vdFNjaGVtYSwgZm9ybURhdGEsIGlkUHJlZml4LCBpZFNlcGFyYXRvciksXG4gICAgaWRTY2hlbWFcbiAgKTtcbiAgY29uc3QgRmllbGRDb21wb25lbnQgPSBnZXRGaWVsZENvbXBvbmVudChzY2hlbWEsIHVpU2NoZW1hLCBpZFNjaGVtYSwgZmllbGRzKTtcbiAgY29uc3QgeyBEZXNjcmlwdGlvbkZpZWxkIH0gPSBmaWVsZHM7XG4gIGNvbnN0IGRpc2FibGVkID0gQm9vbGVhbihwcm9wcy5kaXNhYmxlZCB8fCB1aVNjaGVtYVtcInVpOmRpc2FibGVkXCJdKTtcbiAgY29uc3QgcmVhZG9ubHkgPSBCb29sZWFuKFxuICAgIHByb3BzLnJlYWRvbmx5IHx8XG4gICAgICB1aVNjaGVtYVtcInVpOnJlYWRvbmx5XCJdIHx8XG4gICAgICBwcm9wcy5zY2hlbWEucmVhZE9ubHkgfHxcbiAgICAgIHNjaGVtYS5yZWFkT25seVxuICApO1xuICBjb25zdCB1aVNjaGVtYUhpZGVFcnJvciA9IHVpU2NoZW1hW1widWk6aGlkZUVycm9yXCJdO1xuICAvLyBTZXQgaGlkZUVycm9yIHRvIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgdWlTY2hlbWEsIG90aGVyd2lzZSBzdGljayB3aXRoIHRoZSBwcm9wIHRvIHByb3BhZ2F0ZSB0byBjaGlsZHJlblxuICBjb25zdCBoaWRlRXJyb3IgPVxuICAgIHVpU2NoZW1hSGlkZUVycm9yID09PSB1bmRlZmluZWRcbiAgICAgID8gcHJvcHMuaGlkZUVycm9yXG4gICAgICA6IEJvb2xlYW4odWlTY2hlbWFIaWRlRXJyb3IpO1xuICBjb25zdCBhdXRvZm9jdXMgPSBCb29sZWFuKHByb3BzLmF1dG9mb2N1cyB8fCB1aVNjaGVtYVtcInVpOmF1dG9mb2N1c1wiXSk7XG4gIGlmIChPYmplY3Qua2V5cyhzY2hlbWEpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZGlzcGxheUxhYmVsID0gZ2V0RGlzcGxheUxhYmVsKHNjaGVtYSwgdWlTY2hlbWEsIHJvb3RTY2hlbWEpO1xuXG4gIGNvbnN0IHsgX19lcnJvcnMsIC4uLmZpZWxkRXJyb3JTY2hlbWEgfSA9IGVycm9yU2NoZW1hO1xuXG4gIC8vIFNlZSAjNDM5OiB1aVNjaGVtYTogRG9uJ3QgcGFzcyBjb25zdW1lZCBjbGFzcyBuYW1lcyB0byBjaGlsZCBjb21wb25lbnRzXG4gIGNvbnN0IGZpZWxkID0gKFxuICAgIDxGaWVsZENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgaWRTY2hlbWE9e2lkU2NoZW1hfVxuICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICB1aVNjaGVtYT17eyAuLi51aVNjaGVtYSwgY2xhc3NOYW1lczogdW5kZWZpbmVkIH19XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICByZWFkb25seT17cmVhZG9ubHl9XG4gICAgICBoaWRlRXJyb3I9e2hpZGVFcnJvcn1cbiAgICAgIGF1dG9mb2N1cz17YXV0b2ZvY3VzfVxuICAgICAgZXJyb3JTY2hlbWE9e2ZpZWxkRXJyb3JTY2hlbWF9XG4gICAgICBmb3JtQ29udGV4dD17Zm9ybUNvbnRleHR9XG4gICAgICByYXdFcnJvcnM9e19fZXJyb3JzfVxuICAgIC8+XG4gICk7XG5cbiAgY29uc3QgaWQgPSBpZFNjaGVtYS4kaWQ7XG5cbiAgLy8gSWYgdGhpcyBzY2hlbWEgaGFzIGEgdGl0bGUgZGVmaW5lZCwgYnV0IHRoZSB1c2VyIGhhcyBzZXQgYSBuZXcga2V5L2xhYmVsLCByZXRhaW4gdGhlaXIgaW5wdXQuXG4gIGxldCBsYWJlbDtcbiAgaWYgKHdhc1Byb3BlcnR5S2V5TW9kaWZpZWQpIHtcbiAgICBsYWJlbCA9IG5hbWU7XG4gIH0gZWxzZSB7XG4gICAgbGFiZWwgPSB1aVNjaGVtYVtcInVpOnRpdGxlXCJdIHx8IHByb3BzLnNjaGVtYS50aXRsZSB8fCBzY2hlbWEudGl0bGUgfHwgbmFtZTtcbiAgfVxuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID1cbiAgICB1aVNjaGVtYVtcInVpOmRlc2NyaXB0aW9uXCJdIHx8XG4gICAgcHJvcHMuc2NoZW1hLmRlc2NyaXB0aW9uIHx8XG4gICAgc2NoZW1hLmRlc2NyaXB0aW9uO1xuICBjb25zdCBlcnJvcnMgPSBfX2Vycm9ycztcbiAgY29uc3QgaGVscCA9IHVpU2NoZW1hW1widWk6aGVscFwiXTtcbiAgY29uc3QgaGlkZGVuID0gdWlTY2hlbWFbXCJ1aTp3aWRnZXRcIl0gPT09IFwiaGlkZGVuXCI7XG5cbiAgbGV0IGNsYXNzTmFtZXMgPSBbXCJmb3JtLWdyb3VwXCIsIFwiZmllbGRcIiwgYGZpZWxkLSR7c2NoZW1hLnR5cGV9YF07XG4gIGlmICghaGlkZUVycm9yICYmIGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGNsYXNzTmFtZXMucHVzaChcImZpZWxkLWVycm9yIGhhcy1lcnJvciBoYXMtZGFuZ2VyXCIpO1xuICB9XG4gIGNsYXNzTmFtZXMucHVzaCh1aVNjaGVtYS5jbGFzc05hbWVzKTtcbiAgY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXMuam9pbihcIiBcIikudHJpbSgpO1xuXG4gIGNvbnN0IGZpZWxkUHJvcHMgPSB7XG4gICAgZGVzY3JpcHRpb246IChcbiAgICAgIDxEZXNjcmlwdGlvbkZpZWxkXG4gICAgICAgIGlkPXtpZCArIFwiX19kZXNjcmlwdGlvblwifVxuICAgICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb259XG4gICAgICAgIGZvcm1Db250ZXh0PXtmb3JtQ29udGV4dH1cbiAgICAgIC8+XG4gICAgKSxcbiAgICByYXdEZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXG4gICAgaGVscDogPEhlbHAgaWQ9e2lkICsgXCJfX2hlbHBcIn0gaGVscD17aGVscH0gLz4sXG4gICAgcmF3SGVscDogdHlwZW9mIGhlbHAgPT09IFwic3RyaW5nXCIgPyBoZWxwIDogdW5kZWZpbmVkLFxuICAgIGVycm9yczogaGlkZUVycm9yID8gdW5kZWZpbmVkIDogPEVycm9yTGlzdCBlcnJvcnM9e2Vycm9yc30gLz4sXG4gICAgcmF3RXJyb3JzOiBoaWRlRXJyb3IgPyB1bmRlZmluZWQgOiBlcnJvcnMsXG4gICAgaWQsXG4gICAgbGFiZWwsXG4gICAgaGlkZGVuLFxuICAgIG9uQ2hhbmdlLFxuICAgIG9uS2V5Q2hhbmdlLFxuICAgIG9uRHJvcFByb3BlcnR5Q2xpY2ssXG4gICAgcmVxdWlyZWQsXG4gICAgZGlzYWJsZWQsXG4gICAgcmVhZG9ubHksXG4gICAgaGlkZUVycm9yLFxuICAgIGRpc3BsYXlMYWJlbCxcbiAgICBjbGFzc05hbWVzLFxuICAgIGZvcm1Db250ZXh0LFxuICAgIGZvcm1EYXRhLFxuICAgIGZpZWxkcyxcbiAgICBzY2hlbWEsXG4gICAgdWlTY2hlbWEsXG4gICAgcmVnaXN0cnksXG4gIH07XG5cbiAgY29uc3QgX0FueU9mRmllbGQgPSByZWdpc3RyeS5maWVsZHMuQW55T2ZGaWVsZDtcbiAgY29uc3QgX09uZU9mRmllbGQgPSByZWdpc3RyeS5maWVsZHMuT25lT2ZGaWVsZDtcblxuICByZXR1cm4gKFxuICAgIDxGaWVsZFRlbXBsYXRlIHsuLi5maWVsZFByb3BzfT5cbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAge2ZpZWxkfVxuXG4gICAgICAgIHsvKlxuICAgICAgICBJZiB0aGUgc2NoZW1hIGBhbnlPZmAgb3IgJ29uZU9mJyBjYW4gYmUgcmVuZGVyZWQgYXMgYSBzZWxlY3QgY29udHJvbCwgZG9uJ3RcbiAgICAgICAgcmVuZGVyIHRoZSBzZWxlY3Rpb24gYW5kIGxldCBgU3RyaW5nRmllbGRgIGNvbXBvbmVudCBoYW5kbGVcbiAgICAgICAgcmVuZGVyaW5nXG4gICAgICAqL31cbiAgICAgICAge3NjaGVtYS5hbnlPZiAmJiAhaXNTZWxlY3Qoc2NoZW1hKSAmJiAoXG4gICAgICAgICAgPF9BbnlPZkZpZWxkXG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICByZWFkb25seT17cmVhZG9ubHl9XG4gICAgICAgICAgICBoaWRlRXJyb3I9e2hpZGVFcnJvcn1cbiAgICAgICAgICAgIGVycm9yU2NoZW1hPXtlcnJvclNjaGVtYX1cbiAgICAgICAgICAgIGZvcm1EYXRhPXtmb3JtRGF0YX1cbiAgICAgICAgICAgIGlkUHJlZml4PXtpZFByZWZpeH1cbiAgICAgICAgICAgIGlkU2NoZW1hPXtpZFNjaGVtYX1cbiAgICAgICAgICAgIGlkU2VwYXJhdG9yPXtpZFNlcGFyYXRvcn1cbiAgICAgICAgICAgIG9uQmx1cj17cHJvcHMub25CbHVyfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3Byb3BzLm9uQ2hhbmdlfVxuICAgICAgICAgICAgb25Gb2N1cz17cHJvcHMub25Gb2N1c31cbiAgICAgICAgICAgIG9wdGlvbnM9e3NjaGVtYS5hbnlPZi5tYXAoX3NjaGVtYSA9PlxuICAgICAgICAgICAgICByZXRyaWV2ZVNjaGVtYShfc2NoZW1hLCByb290U2NoZW1hLCBmb3JtRGF0YSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBiYXNlVHlwZT17c2NoZW1hLnR5cGV9XG4gICAgICAgICAgICByZWdpc3RyeT17cmVnaXN0cnl9XG4gICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgICAgICAgIHVpU2NoZW1hPXt1aVNjaGVtYX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG4gICAgICAgIHtzY2hlbWEub25lT2YgJiYgIWlzU2VsZWN0KHNjaGVtYSkgJiYgKFxuICAgICAgICAgIDxfT25lT2ZGaWVsZFxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgcmVhZG9ubHk9e3JlYWRvbmx5fVxuICAgICAgICAgICAgaGlkZUVycm9yPXtoaWRlRXJyb3J9XG4gICAgICAgICAgICBlcnJvclNjaGVtYT17ZXJyb3JTY2hlbWF9XG4gICAgICAgICAgICBmb3JtRGF0YT17Zm9ybURhdGF9XG4gICAgICAgICAgICBpZFByZWZpeD17aWRQcmVmaXh9XG4gICAgICAgICAgICBpZFNjaGVtYT17aWRTY2hlbWF9XG4gICAgICAgICAgICBpZFNlcGFyYXRvcj17aWRTZXBhcmF0b3J9XG4gICAgICAgICAgICBvbkJsdXI9e3Byb3BzLm9uQmx1cn1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtwcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgIG9uRm9jdXM9e3Byb3BzLm9uRm9jdXN9XG4gICAgICAgICAgICBvcHRpb25zPXtzY2hlbWEub25lT2YubWFwKF9zY2hlbWEgPT5cbiAgICAgICAgICAgICAgcmV0cmlldmVTY2hlbWEoX3NjaGVtYSwgcm9vdFNjaGVtYSwgZm9ybURhdGEpXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgYmFzZVR5cGU9e3NjaGVtYS50eXBlfVxuICAgICAgICAgICAgcmVnaXN0cnk9e3JlZ2lzdHJ5fVxuICAgICAgICAgICAgc2NoZW1hPXtzY2hlbWF9XG4gICAgICAgICAgICB1aVNjaGVtYT17dWlTY2hlbWF9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgPC9GaWVsZFRlbXBsYXRlPlxuICApO1xufVxuXG5jbGFzcyBTY2hlbWFGaWVsZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIHJldHVybiAhZGVlcEVxdWFscyh0aGlzLnByb3BzLCBuZXh0UHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBTY2hlbWFGaWVsZFJlbmRlcih0aGlzLnByb3BzKTtcbiAgfVxufVxuXG5TY2hlbWFGaWVsZC5kZWZhdWx0UHJvcHMgPSB7XG4gIHVpU2NoZW1hOiB7fSxcbiAgZXJyb3JTY2hlbWE6IHt9LFxuICBpZFNjaGVtYToge30sXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgcmVhZG9ubHk6IGZhbHNlLFxuICBhdXRvZm9jdXM6IGZhbHNlLFxuICBoaWRlRXJyb3I6IGZhbHNlLFxufTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBTY2hlbWFGaWVsZC5wcm9wVHlwZXMgPSB7XG4gICAgc2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgdWlTY2hlbWE6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaWRTY2hlbWE6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZm9ybURhdGE6IFByb3BUeXBlcy5hbnksXG4gICAgZXJyb3JTY2hlbWE6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgcmVnaXN0cnk6IHR5cGVzLnJlZ2lzdHJ5LmlzUmVxdWlyZWQsXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNjaGVtYUZpZWxkO1xuIl19
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var types = _interopRequireWildcard(require("../../types"));
11
-
12
- var _utils = require("../../utils");
13
-
14
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
-
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
19
-
20
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
-
22
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
-
24
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
25
-
26
- function StringField(props) {
27
- var schema = props.schema,
28
- name = props.name,
29
- uiSchema = props.uiSchema,
30
- idSchema = props.idSchema,
31
- formData = props.formData,
32
- required = props.required,
33
- disabled = props.disabled,
34
- readonly = props.readonly,
35
- autofocus = props.autofocus,
36
- onChange = props.onChange,
37
- onBlur = props.onBlur,
38
- onFocus = props.onFocus,
39
- _props$registry = props.registry,
40
- registry = _props$registry === void 0 ? (0, _utils.getDefaultRegistry)() : _props$registry,
41
- rawErrors = props.rawErrors;
42
- var title = schema.title,
43
- format = schema.format;
44
- var widgets = registry.widgets,
45
- formContext = registry.formContext;
46
- var enumOptions = (0, _utils.isSelect)(schema) && (0, _utils.optionsList)(schema);
47
- var defaultWidget = enumOptions ? "select" : "text";
48
-
49
- if (format && (0, _utils.hasWidget)(schema, format, widgets)) {
50
- defaultWidget = format;
51
- }
52
-
53
- var _getUiOptions = (0, _utils.getUiOptions)(uiSchema),
54
- _getUiOptions$widget = _getUiOptions.widget,
55
- widget = _getUiOptions$widget === void 0 ? defaultWidget : _getUiOptions$widget,
56
- _getUiOptions$placeho = _getUiOptions.placeholder,
57
- placeholder = _getUiOptions$placeho === void 0 ? "" : _getUiOptions$placeho,
58
- options = _objectWithoutProperties(_getUiOptions, ["widget", "placeholder"]);
59
-
60
- var Widget = (0, _utils.getWidget)(schema, widget, widgets);
61
- return _react["default"].createElement(Widget, {
62
- options: _objectSpread({}, options, {
63
- enumOptions: enumOptions
64
- }),
65
- schema: schema,
66
- uiSchema: uiSchema,
67
- id: idSchema && idSchema.$id,
68
- label: title === undefined ? name : title,
69
- value: formData,
70
- onChange: onChange,
71
- onBlur: onBlur,
72
- onFocus: onFocus,
73
- required: required,
74
- disabled: disabled,
75
- readonly: readonly,
76
- formContext: formContext,
77
- autofocus: autofocus,
78
- registry: registry,
79
- placeholder: placeholder,
80
- rawErrors: rawErrors
81
- });
82
- }
83
-
84
- if (process.env.NODE_ENV !== "production") {
85
- StringField.propTypes = types.fieldProps;
86
- }
87
-
88
- StringField.defaultProps = {
89
- uiSchema: {},
90
- disabled: false,
91
- readonly: false,
92
- autofocus: false
93
- };
94
- var _default = StringField;
95
- exports["default"] = _default;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ZpZWxkcy9TdHJpbmdGaWVsZC5qcyJdLCJuYW1lcyI6WyJTdHJpbmdGaWVsZCIsInByb3BzIiwic2NoZW1hIiwibmFtZSIsInVpU2NoZW1hIiwiaWRTY2hlbWEiLCJmb3JtRGF0YSIsInJlcXVpcmVkIiwiZGlzYWJsZWQiLCJyZWFkb25seSIsImF1dG9mb2N1cyIsIm9uQ2hhbmdlIiwib25CbHVyIiwib25Gb2N1cyIsInJlZ2lzdHJ5IiwicmF3RXJyb3JzIiwidGl0bGUiLCJmb3JtYXQiLCJ3aWRnZXRzIiwiZm9ybUNvbnRleHQiLCJlbnVtT3B0aW9ucyIsImRlZmF1bHRXaWRnZXQiLCJ3aWRnZXQiLCJwbGFjZWhvbGRlciIsIm9wdGlvbnMiLCJXaWRnZXQiLCIkaWQiLCJ1bmRlZmluZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wVHlwZXMiLCJ0eXBlcyIsImZpZWxkUHJvcHMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTQSxXQUFULENBQXFCQyxLQUFyQixFQUE0QjtBQUFBLE1BRXhCQyxNQUZ3QixHQWdCdEJELEtBaEJzQixDQUV4QkMsTUFGd0I7QUFBQSxNQUd4QkMsSUFId0IsR0FnQnRCRixLQWhCc0IsQ0FHeEJFLElBSHdCO0FBQUEsTUFJeEJDLFFBSndCLEdBZ0J0QkgsS0FoQnNCLENBSXhCRyxRQUp3QjtBQUFBLE1BS3hCQyxRQUx3QixHQWdCdEJKLEtBaEJzQixDQUt4QkksUUFMd0I7QUFBQSxNQU14QkMsUUFOd0IsR0FnQnRCTCxLQWhCc0IsQ0FNeEJLLFFBTndCO0FBQUEsTUFPeEJDLFFBUHdCLEdBZ0J0Qk4sS0FoQnNCLENBT3hCTSxRQVB3QjtBQUFBLE1BUXhCQyxRQVJ3QixHQWdCdEJQLEtBaEJzQixDQVF4Qk8sUUFSd0I7QUFBQSxNQVN4QkMsUUFUd0IsR0FnQnRCUixLQWhCc0Is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c0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGdldFdpZGdldCxcbiAgZ2V0VWlPcHRpb25zLFxuICBpc1NlbGVjdCxcbiAgb3B0aW9uc0xpc3QsXG4gIGdldERlZmF1bHRSZWdpc3RyeSxcbiAgaGFzV2lkZ2V0LFxufSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gU3RyaW5nRmllbGQocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHNjaGVtYSxcbiAgICBuYW1lLFxuICAgIHVpU2NoZW1hLFxuICAgIGlkU2NoZW1hLFxuICAgIGZvcm1EYXRhLFxuICAgIHJlcXVpcmVkLFxuICAgIGRpc2FibGVkLFxuICAgIHJlYWRvbmx5LFxuICAgIGF1dG9mb2N1cyxcbiAgICBvbkNoYW5nZSxcbiAgICBvbkJsdXIsXG4gICAgb25Gb2N1cyxcbiAgICByZWdpc3RyeSA9IGdldERlZmF1bHRSZWdpc3RyeSgpLFxuICAgIHJhd0Vycm9ycyxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB7IHRpdGxlLCBmb3JtYXQgfSA9IHNjaGVtYTtcbiAgY29uc3QgeyB3aWRnZXRzLCBmb3JtQ29udGV4dCB9ID0gcmVnaXN0cnk7XG4gIGNvbnN0IGVudW1PcHRpb25zID0gaXNTZWxlY3Qoc2NoZW1hKSAmJiBvcHRpb25zTGlzdChzY2hlbWEpO1xuICBsZXQgZGVmYXVsdFdpZGdldCA9IGVudW1PcHRpb25zID8gXCJzZWxlY3RcIiA6IFwidGV4dFwiO1xuICBpZiAoZm9ybWF0ICYmIGhhc1dpZGdldChzY2hlbWEsIGZvcm1hdCwgd2lkZ2V0cykpIHtcbiAgICBkZWZhdWx0V2lkZ2V0ID0gZm9ybWF0O1xuICB9XG4gIGNvbnN0IHsgd2lkZ2V0ID0gZGVmYXVsdFdpZGdldCwgcGxhY2Vob2xkZXIgPSBcIlwiLCAuLi5vcHRpb25zIH0gPSBnZXRVaU9wdGlvbnMoXG4gICAgdWlTY2hlbWFcbiAgKTtcbiAgY29uc3QgV2lkZ2V0ID0gZ2V0V2lkZ2V0KHNjaGVtYSwgd2lkZ2V0LCB3aWRnZXRzKTtcbiAgcmV0dXJuIChcbiAgICA8V2lkZ2V0XG4gICAgICBvcHRpb25zPXt7IC4uLm9wdGlvbnMsIGVudW1PcHRpb25zIH19XG4gICAgICBzY2hlbWE9e3NjaGVtYX1cbiAgICAgIHVpU2NoZW1hPXt1aVNjaGVtYX1cbiAgICAgIGlkPXtpZFNjaGVtYSAmJiBpZFNjaGVtYS4kaWR9XG4gICAgICBsYWJlbD17dGl0bGUgPT09IHVuZGVmaW5lZCA/IG5hbWUgOiB0aXRsZX1cbiAgICAgIHZhbHVlPXtmb3JtRGF0YX1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIHJlYWRvbmx5PXtyZWFkb25seX1cbiAgICAgIGZvcm1Db250ZXh0PXtmb3JtQ29udGV4dH1cbiAgICAgIGF1dG9mb2N1cz17YXV0b2ZvY3VzfVxuICAgICAgcmVnaXN0cnk9e3JlZ2lzdHJ5fVxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgcmF3RXJyb3JzPXtyYXdFcnJvcnN9XG4gICAgLz5cbiAgKTtcbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBTdHJpbmdGaWVsZC5wcm9wVHlwZXMgPSB0eXBlcy5maWVsZFByb3BzO1xufVxuXG5TdHJpbmdGaWVsZC5kZWZhdWx0UHJvcHMgPSB7XG4gIHVpU2NoZW1hOiB7fSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICByZWFkb25seTogZmFsc2UsXG4gIGF1dG9mb2N1czogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdHJpbmdGaWVsZDtcbiJdfQ==