@1money/component-ui 0.0.94-alpha.0 → 0.0.94-alpha.2

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 (50) hide show
  1. package/es/business/Dialog/BaseDialog/style/BaseDialog.css +0 -3
  2. package/es/business/Dialog/Descriptions/Descriptions.js +7 -3
  3. package/es/business/Dialog/Descriptions/interface.d.ts +7 -0
  4. package/es/business/Dialog/DetailsDialog/DetailsDialog.js +4 -2
  5. package/es/business/Dialog/DetailsDialog/interface.d.ts +5 -0
  6. package/es/business/Dialog/DetailsDialog/style/DetailsDialog.css +4 -0
  7. package/es/business/Dialog/FormDialog/FormDialog.js +2 -2
  8. package/es/business/Dialog/FormDialog/interface.d.ts +8 -1
  9. package/es/business/Dialog/VerificationDialog/style/VerificationDialog.css +0 -8
  10. package/es/business/Select/Currency/CurrencySelect.js +2 -2
  11. package/es/business/Select/Currency/style/CurrencySelect.css +2 -2
  12. package/es/components/Dialog/DialogContent.js +5 -2
  13. package/es/components/Input/interface.d.ts +6 -0
  14. package/es/components/ProForm/ProFormItem.js +14 -4
  15. package/es/components/ProForm/core/constants.d.ts +7 -0
  16. package/es/components/ProForm/core/constants.js +8 -1
  17. package/es/components/ProForm/fields/createProFormField.js +4 -2
  18. package/es/components/ProForm/interface.d.ts +20 -0
  19. package/es/components/ProForm/style/ProForm.css +4 -0
  20. package/es/components/Typography/interface.d.ts +1 -1
  21. package/es/components/Typography/interface.js +4 -2
  22. package/es/components/Typography/style/Typography.css +10 -0
  23. package/es/index.css +1 -1
  24. package/es/styles/index.css +6 -0
  25. package/lib/business/Dialog/BaseDialog/style/BaseDialog.css +0 -3
  26. package/lib/business/Dialog/Descriptions/Descriptions.js +7 -3
  27. package/lib/business/Dialog/Descriptions/interface.d.ts +7 -0
  28. package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +4 -2
  29. package/lib/business/Dialog/DetailsDialog/interface.d.ts +5 -0
  30. package/lib/business/Dialog/DetailsDialog/style/DetailsDialog.css +4 -0
  31. package/lib/business/Dialog/FormDialog/FormDialog.js +2 -2
  32. package/lib/business/Dialog/FormDialog/interface.d.ts +8 -1
  33. package/lib/business/Dialog/VerificationDialog/style/VerificationDialog.css +0 -8
  34. package/lib/business/Select/Currency/CurrencySelect.js +2 -2
  35. package/lib/business/Select/Currency/style/CurrencySelect.css +2 -2
  36. package/lib/components/Dialog/DialogContent.js +5 -2
  37. package/lib/components/Input/interface.d.ts +6 -0
  38. package/lib/components/ProForm/ProFormItem.js +13 -3
  39. package/lib/components/ProForm/core/constants.d.ts +7 -0
  40. package/lib/components/ProForm/core/constants.js +9 -2
  41. package/lib/components/ProForm/fields/createProFormField.js +4 -2
  42. package/lib/components/ProForm/interface.d.ts +20 -0
  43. package/lib/components/ProForm/style/ProForm.css +4 -0
  44. package/lib/components/Typography/interface.d.ts +1 -1
  45. package/lib/components/Typography/interface.js +4 -2
  46. package/lib/components/Typography/style/Typography.css +10 -0
  47. package/lib/index.css +1 -1
  48. package/lib/styles/index.css +6 -0
  49. package/package.json +1 -1
  50. package/scripts/mcp-server/index.generated.json +17 -0
@@ -7,7 +7,7 @@ import { Icons } from '../Icons';
7
7
  import { TypographyBody, TypographyLabel } from '../Typography';
8
8
  import { default as classnames, joinCls } from '../../utils/classnames';
9
9
  import { useFormItem } from './core/useFormItem';
10
- import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_MESSAGE_ICON_SIZE, FORM_WARNING_COLOR, FORM_WARNING_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR, FORM_LABEL_SIZES } from './core/constants';
10
+ import { FORM_ERROR_COLOR, FORM_ERROR_SIZE, FORM_MESSAGE_ICON_SIZE, FORM_WARNING_COLOR, FORM_WARNING_SIZE, FORM_DESCRIPTION_COLOR, FORM_DESCRIPTION_SIZE, FORM_FEEDBACK_COLOR, FORM_FEEDBACK_SIZE, FORM_LABEL_COLOR, FORM_LABEL_SIZES, FORM_OPTIONAL_COLOR, FORM_OPTIONAL_TEXT } from './core/constants';
11
11
  import { useProFormStable, useProFormStore } from './context';
12
12
  import { useStoreSelector, shallowEqualArrays } from './core/formStore';
13
13
  import { resolveValue } from './core/pathUtils';
@@ -127,6 +127,8 @@ var ProFormItemBase = function ProFormItemBase(props) {
127
127
  children = _mergedProps.children,
128
128
  name = _mergedProps.name,
129
129
  label = _mergedProps.label,
130
+ _mergedProps$required = _mergedProps.required,
131
+ required = _mergedProps$required === void 0 ? true : _mergedProps$required,
130
132
  description = _mergedProps.description,
131
133
  rules = _mergedProps.rules,
132
134
  feedback = _mergedProps.feedback,
@@ -254,13 +256,21 @@ var ProFormItemBase = function ProFormItemBase(props) {
254
256
  style: gapStyle,
255
257
  children: [label && _jsxs("div", {
256
258
  className: classes('label-wrapper', joinCls(classes('label-wrapper-vertical'), labelAlign && classes("label-wrapper-".concat(labelAlign)))),
257
- children: [_jsx(TypographyLabel, {
259
+ children: [_jsxs(TypographyLabel, {
258
260
  as: "label",
259
261
  strong: true,
260
262
  size: FORM_LABEL_SIZES[size],
261
263
  color: FORM_LABEL_COLOR,
262
264
  className: classes('label'),
263
- children: label
265
+ children: [label, !required && _jsx(TypographyLabel, {
266
+ as: "span",
267
+ italic: true,
268
+ strong: true,
269
+ className: classes('optional'),
270
+ size: FORM_LABEL_SIZES[size],
271
+ color: FORM_OPTIONAL_COLOR,
272
+ children: FORM_OPTIONAL_TEXT
273
+ })]
264
274
  }), description && _jsx(TypographyBody, {
265
275
  as: "div",
266
276
  className: classes('description'),
@@ -317,4 +327,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
317
327
  ProFormItemBase.displayName = 'ProFormItem';
318
328
  export var ProFormItem = /*#__PURE__*/memo(ProFormItemBase);
319
329
  export default ProFormItem;
320
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIkljb25zIiwiVHlwb2dyYXBoeUJvZHkiLCJUeXBvZ3JhcGh5TGFiZWwiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJ1c2VGb3JtSXRlbSIsIkZPUk1fRVJST1JfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX01FU1NBR0VfSUNPTl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJzaXplIiwibGFiZWxBbGlnbiIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwic3Ryb25nIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxzQkFBc0IsRUFDdEJDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxzQkFBc0IsRUFDdEJDLHFCQUFxQixFQUNyQkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLFFBQ1gsa0JBQWtCO0FBQ3pCLFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLFFBQVEsV0FBVztBQUM3RCxTQUFTQyxnQkFB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SUFDWixJQUFNNUQsT0FBTSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVFMLEdBQUcsQ0FBQ3FCLFFBQVEsQ0FBQSxFQUFLQSxRQUFRLENBQUU7SUFDL0MsSUFBQTJDLFlBQUEsR0FBZ0Q3RCxPQUFNLENBQTlDOEQsSUFBSTtNQUFKQSxJQUFJLEdBQUFELFlBQUEsY0FBR3ZILGdCQUFnQixHQUFBdUgsWUFBQTtNQUFFRSxFQUFFLEdBQWEvRCxPQUFNLENBQXJCK0QsRUFBRTtNQUFFQyxFQUFFLEdBQVNoRSxPQUFNLENBQWpCZ0UsRUFBRTtNQUFFQyxFQUFFLEdBQUtqRSxPQUFNLENBQWJpRSxFQUFFO0lBQzNDLE9BQU8xSixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDZ0osSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFsRixRQUFBLEVBQUd3RTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ1RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBWTNDLE9BQU8sSUFBTWlGLFdBQVcsZ0JBQUd2SixJQUFJLENBQUNnRixlQUFlLENBQWdDO0FBRS9FLGVBQWV1RSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSXRlbSB9IGZyb20gJy4vY29yZS91c2VGb3JtSXRlbSc7XG5pbXBvcnQgeyBGT1JNX0VSUk9SX0NPTE9SLCBGT1JNX0VSUk9SX1NJWkUsIEZPUk1fTUVTU0FHRV9JQ09OX1NJWkUsIEZPUk1fV0FSTklOR19DT0xPUiwgRk9STV9XQVJOSU5HX1NJWkUsIEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIEZPUk1fREVTQ1JJUFRJT05fU0laRSwgRk9STV9GRUVEQkFDS19DT0xPUiwgRk9STV9GRUVEQkFDS19TSVpFLCBGT1JNX0xBQkVMX0NPTE9SLCBGT1JNX0xBQkVMX1NJWkVTLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gU3Vic2NyaWJlIHBlci1maWVsZDsgb25seSBhIGN1c3RvbSByZWFkb25seVJlbmRlciAod2hpY2ggcmVjZWl2ZXMgQUxMXG4gICAgLy8gdmFsdWVzKSBuZWVkcyB0byB0cmFjayB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBbcmF3LCBhbGxWYWx1ZXNdID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBbXG4gICAgICAgIG5hbWUgPyByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZG9ubHlSZW5kZXIgPyBzdGF0ZS52YWx1ZXMgOiB1bmRlZmluZWQsXG4gICAgXSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgYWxsVmFsdWVzICE9PSBudWxsICYmIGFsbFZhbHVlcyAhPT0gdm9pZCAwID8gYWxsVmFsdWVzIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMpO1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgPyBub2RlIDogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCB7IHZhbHVlRW51bSB9KTtcbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogcmVuZGVyZWQgIT09IG51bGwgJiYgcmVuZGVyZWQgIT09IHZvaWQgMCA/IHJlbmRlcmVkIDogZW1wdHlUZXh0IH0pO1xufTtcblJlYWRvbmx5Q2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtUmVhZG9ubHknO1xuY29uc3QgUmVhZG9ubHlDaGlsZCA9IG1lbW8oUmVhZG9ubHlDaGlsZEJhc2UpO1xuY29uc3QgQ29udmVydFZhbHVlQ2hpbGRCYXNlID0gKHsgbmFtZSwgY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJywgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IHJhdyA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW4gdXNlRm9ybUl0ZW0nc1xuICAgIC8vIHBlci1maWVsZCBzdWJzY3JpcHRpb24sIHNvIHRoaXMgc2hlbGwgbmV2ZXIgcmUtcmVuZGVycyBmb3Igc2libGluZ3MuXG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzLCBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ2Zvcm0taXRlbScsIGhpZGRlbiwgdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWUsIHZhbHVlVHlwZSwgcmVhZG9ubHlSZW5kZXIsIGNvbFByb3BzLCBtb2RlOiBtb2RlUHJvcCwgZW1wdHlUZXh0ID0gRU1QVFlfVEVYVF9ERUZBVUxULCB2YWx1ZUVudW0sIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UsIHZhbGlkYXRlVHJpZ2dlciwgfSA9IG1lcmdlZFByb3BzO1xuICAgIGNvbnN0IG1lcmdlZE1vZGUgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiBjdHgubW9kZTtcbiAgICBjb25zdCBpc1JlYWRvbmx5ID0gbWVyZ2VkTW9kZSA9PT0gJ3JlYWQnO1xuICAgIGNvbnN0IHsgZmllbGRFcnJvciwgZmllbGRXYXJuaW5nLCBzaXplLCBsYWJlbEFsaWduLCBpbmplY3RGaWVsZCwgfSA9IHVzZUZvcm1JdGVtKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcnVsZXMsXG4gICAgICAgIHZhbGlkYXRlU3RhdHVzLFxuICAgICAgICB2YWx1ZVByb3BOYW1lLFxuICAgICAgICB2YWxpZGF0ZURlYm91bmNlLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8gUmVnaXN0ZXIgdHJhbnNmb3JtIC8gdmFsdWVUeXBlIERVUklORyByZW5kZXIgKGlkZW1wb3RlbnQgcmVmIHdyaXRlcywgbGlrZVxuICAgIC8vIHJlZ2lzdGVyRmllbGQpOiBjb25zdW1lcnMgcmVuZGVyZWQgbGF0ZXIgaW4gdGhlIHNhbWUgcGFzcyDigJQgZS5nLiBhXG4gICAgLy8gRGVwZW5kZW5jeSByZWFkaW5nIGZvcm1hdHRlZCB2YWx1ZXMg4oCUIG11c3QgYWxyZWFkeSBzZWUgdGhlbS4gRWZmZWN0c1xuICAgIC8vIHdvdWxkIHJlZ2lzdGVyIHRvbyBsYXRlIChhZnRlciB0aGUgd2hvbGUgdHJlZSByZW5kZXJlZCkuXG4gICAgLy9cbiAgICAvLyBFYWNoIGluc3RhbmNlIHRyYWNrcyB0aGUge25hbWUsIHZhbHVlfSBQQUlSIGl0IHJlZ2lzdGVyZWQuIFJlbW92YWwgaXNcbiAgICAvLyBhbHdheXMgcGVyZm9ybWVkIHdpdGggdGhlIHBhaXIncyBvd24gbmFtZSBBTkQgdmFsdWU6IGFuIGl0ZW0gd2l0aG91dCBhXG4gICAgLy8gdHJhbnNmb3JtIG5ldmVyIHRvdWNoZXMgYSBzYW1lLW5hbWUgc2libGluZydzIHJlZ2lzdHJhdGlvbiwgYW4gdW5tb3VudFxuICAgIC8vIGNsZWFudXAgY2FuJ3Qgd2lwZSBhIHN1Y2Nlc3NvcidzICh2YWx1ZS1ndWFyZGVkKSwgYW5kIGEgTkFNRSBjaGFuZ2VcbiAgICAvLyByZW1vdmVzIHRoZSBvbGQgbmFtZSdzIGVudHJ5IHdpdGggdGhlIE9MRCB2YWx1ZSBiZWZvcmUgdGhlIHJlZiBpc1xuICAgIC8vIG92ZXJ3cml0dGVuIChhIGxpdmUgc2luZ2xlLXZhbHVlIHJlZiB3b3VsZCBsZWFrIGl0KS5cbiAgICBjb25zdCBvd25UcmFuc2Zvcm1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3duVmFsdWVUeXBlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZXZUcmFuc2Zvcm0gPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICBpZiAocHJldlRyYW5zZm9ybSAmJiAocHJldlRyYW5zZm9ybS5uYW1lICE9PSBuYW1lIHx8ICF0cmFuc2Zvcm0pKSB7XG4gICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHByZXZUcmFuc2Zvcm0ubmFtZSwgcHJldlRyYW5zZm9ybS5mbik7XG4gICAgICAgIG93blRyYW5zZm9ybVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdHJhbnNmb3JtKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybShuYW1lLCB0cmFuc2Zvcm0pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IHsgbmFtZSwgZm46IHRyYW5zZm9ybSB9O1xuICAgIH1cbiAgICBjb25zdCBwcmV2VmFsdWVUeXBlID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZWYWx1ZVR5cGUgJiYgKHByZXZWYWx1ZVR5cGUubmFtZSAhPT0gbmFtZSB8fCAhdmFsdWVUeXBlKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZShwcmV2VmFsdWVUeXBlLm5hbWUsIHByZXZWYWx1ZVR5cGUudmFsdWVUeXBlKTtcbiAgICAgICAgb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiB2YWx1ZVR5cGUpIHtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKG5hbWUsIHZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0geyBuYW1lLCB2YWx1ZVR5cGUgfTtcbiAgICB9XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUkUtUkVHSVNURVIgaW4gdGhlIGJvZHk6IFN0cmljdE1vZGUncyBtb3VudOKGkmNsZWFudXDihpJyZS1ydW4gY3ljbGUgYW5kXG4gICAgICAgIC8vIGtleWVkIHJlbW91bnRzIChvbGQgaW5zdGFuY2UncyBjbGVhbnVwIHJ1bnMgQUZURVIgdGhlIG5ldyByZW5kZXJcbiAgICAgICAgLy8gcmVnaXN0ZXJlZCkgYm90aCBlbmQgd2l0aCBhIGNsZWFudXAgaGF2aW5nIGRlbGV0ZWQgdGhlIGVudHJ5IOKAlCB0aGVcbiAgICAgICAgLy8gZWZmZWN0IGJvZHkgbXVzdCByZXN0b3JlIHRoZSBsYXRlc3QgcmVnaXN0cmF0aW9uLlxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1SZWcgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVJlZylcbiAgICAgICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybSh0cmFuc2Zvcm1SZWcubmFtZSwgdHJhbnNmb3JtUmVnLmZuKTtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlUmVnID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh2YWx1ZVR5cGVSZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUodmFsdWVUeXBlUmVnLm5hbWUsIHZhbHVlVHlwZVJlZy52YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHQpXG4gICAgICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0odC5uYW1lLCB0LmZuKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKHYubmFtZSwgdi52YWx1ZVR5cGUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUsIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlXSk7XG4gICAgaWYgKGhpZGRlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRyb2xDaGlsZDtcbiAgICBpZiAoaXNSZWFkb25seSkge1xuICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChSZWFkb25seUNoaWxkLCB7IG5hbWU6IG5hbWUsIHZhbHVlVHlwZTogdmFsdWVUeXBlLCB2YWx1ZUVudW06IHZhbHVlRW51bSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0OiBlbXB0eVRleHQgfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gSW5qZWN0IGZpcnN0IHNvIHRoZSByZWFsIGZpZWxkIHJlY2VpdmVzIHZhbHVlL29uQ2hhbmdlL29uQmx1cixcbiAgICAgICAgLy8gdGhlbiBvcHRpb25hbGx5IHdyYXAgaW4gQ29udmVydFZhbHVlQ2hpbGQgdG8gb3ZlcnJpZGUgdGhlIGRpc3BsYXllZCB2YWx1ZS5cbiAgICAgICAgY29uc3QgaW5qZWN0ZWQgPSBpbmplY3RGaWVsZChjaGlsZHJlbik7XG4gICAgICAgIGlmIChjb252ZXJ0VmFsdWUgJiYgbmFtZSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChpbmplY3RlZCkpIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KENvbnZlcnRWYWx1ZUNoaWxkLCB7IG5hbWU6IG5hbWUsIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCBjaGlsZHJlbjogaW5qZWN0ZWQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gaW5qZWN0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAvLyBGb3JtLWxldmVsIGxheW91dC5pdGVtR2FwIG92ZXJyaWRlcyB0aGUgc2l6ZS1jbGFzcyBtYXJnaW4gKGlubGluZSBzdHlsZVxuICAgIC8vIHdpbnMpOyBpdGVtR2FwPTAgaXMgbWVhbmluZ2Z1bC5cbiAgICBjb25zdCBpdGVtR2FwID0gKF9hID0gY3R4LmxheW91dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLml0ZW1HYXA7XG4gICAgY29uc3QgZ2FwU3R5bGUgPSBpdGVtR2FwICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7IG1hcmdpbkJvdHRvbTogdHlwZW9mIGl0ZW1HYXAgPT09ICdudW1iZXInID8gYCR7aXRlbUdhcH1weGAgOiBpdGVtR2FwIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBzdHlsZTogZ2FwU3R5bGUsIGNoaWxkcmVuOiBbbGFiZWwgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC13cmFwcGVyJywgam9pbkNscyhjbGFzc2VzKCdsYWJlbC13cmFwcGVyLXZlcnRpY2FsJyksIGxhYmVsQWxpZ24gJiYgY2xhc3NlcyhgbGFiZWwtd3JhcHBlci0ke2xhYmVsQWxpZ259YCkpKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBhczogXCJsYWJlbFwiLCBzdHJvbmc6IHRydWUsIHNpemU6IEZPUk1fTEFCRUxfU0laRVNbc2l6ZV0sIGNvbG9yOiBGT1JNX0xBQkVMX0NPTE9SLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJyksIGNoaWxkcmVuOiBsYWJlbCB9KSwgZGVzY3JpcHRpb24gJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZGVzY3JpcHRpb24nKSwgc2l6ZTogRk9STV9ERVNDUklQVElPTl9TSVpFLCBjb2xvcjogRk9STV9ERVNDUklQVElPTl9DT0xPUiwgY2hpbGRyZW46IGRlc2NyaXB0aW9uIH0pKV0gfSkpLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udHJvbCcpLCBjaGlsZHJlbjogW2NvbnRyb2xDaGlsZCwgZmllbGRFcnJvciAmJiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Vycm9yJyksIGNoaWxkcmVuOiBbX2pzeChJY29ucywgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UtaWNvbicpLCBuYW1lOiBcImVycm9yXCIsIHNpemU6IEZPUk1fTUVTU0FHRV9JQ09OX1NJWkUgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwic3BhblwiLCBzaXplOiBGT1JNX0VSUk9SX1NJWkUsIGNvbG9yOiBGT1JNX0VSUk9SX0NPTE9SLCBjaGlsZHJlbjogZmllbGRFcnJvciB9KV0gfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
330
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIkljb25zIiwiVHlwb2dyYXBoeUJvZHkiLCJUeXBvZ3JhcGh5TGFiZWwiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJ1c2VGb3JtSXRlbSIsIkZPUk1fRVJST1JfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX01FU1NBR0VfSUNPTl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwiRk9STV9PUFRJT05BTF9DT0xPUiIsIkZPUk1fT1BUSU9OQUxfVEVYVCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwicmVzb2x2ZVZhbHVlIiwiREVGQVVMVF9DT0xfU1BBTiIsInZhbHVlRW51bVRvT3B0aW9ucyIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJEQVRFX0ZPUk1BVCIsIkRBVEVfVElNRV9GT1JNQVQiLCJFTVBUWV9URVhUX0RFRkFVTFQiLCJyZW5kZXJCeVZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInZhbHVlIiwicHJvcHMiLCJ1bmRlZmluZWQiLCJyZXBlYXQiLCJTdHJpbmciLCJsZW5ndGgiLCJudW0iLCJOdW1iZXIiLCJpc05hTiIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVFbnVtIiwib3B0aW9ucyIsIm1hdGNoIiwiZmluZCIsIm8iLCJsYWJlbCIsIkRhdGUiLCJSZWFkb25seUNoaWxkQmFzZSIsIl9yZWYiLCJuYW1lIiwiY29udmVydFZhbHVlIiwicmVhZG9ubHlSZW5kZXIiLCJlbXB0eVRleHQiLCJzdG9yZSIsIl91c2VTdG9yZVNlbGVjdG9yIiwic3RhdGUiLCJ2YWx1ZXMiLCJfdXNlU3RvcmVTZWxlY3RvcjIiLCJfc2xpY2VkVG9BcnJheSIsInJhdyIsImFsbFZhbHVlcyIsIm5vZGUiLCJnZXRTdGF0ZSIsImNoaWxkcmVuIiwicmVuZGVyZWQiLCJkaXNwbGF5TmFtZSIsIlJlYWRvbmx5Q2hpbGQiLCJDb252ZXJ0VmFsdWVDaGlsZEJhc2UiLCJfcmVmMiIsIl9yZWYyJHZhbHVlUHJvcE5hbWUiLCJ2YWx1ZVByb3BOYW1lIiwiY29udmVydGVkIiwiY2xvbmVFbGVtZW50IiwiX2RlZmluZVByb3BlcnR5IiwiQ29udmVydFZhbHVlQ2hpbGQiLCJQcm9Gb3JtSXRlbUJhc2UiLCJfYSIsImN0eCIsIm1lcmdlZFByb3BzIiwiZm9ybUl0ZW1Qcm9wcyIsIm1lcmdlZCIsIk9iamVjdCIsImFzc2lnbiIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImtleSIsIl9tZXJnZWRQcm9wcyIsIl9tZXJnZWRQcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJzaXplIiwibGFiZWxBbGlnbiIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwic3Ryb25nIiwiY29sb3IiLCJpdGFsaWMiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxzQkFBc0IsRUFDdEJDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxzQkFBc0IsRUFDdEJDLHFCQUFxQixFQUNyQkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLGdC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RUFBRTtNQUFBckYsUUFBQSxFQUFHMEU7SUFBSyxDQUFBLENBQU87RUFDL0Q7RUFFQSxPQUFPQSxLQUFLO0FBQ2QsQ0FBQztBQUVEOUQsZUFBZSxDQUFDVixXQUFXLEdBQUcsYUFBYTtBQVkzQyxPQUFPLElBQU1vRixXQUFXLGdCQUFHNUosSUFBSSxDQUFDa0YsZUFBZSxDQUFnQztBQUUvRSxlQUFlMEUsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUl0ZW0gfSBmcm9tICcuL2NvcmUvdXNlRm9ybUl0ZW0nO1xuaW1wb3J0IHsgRk9STV9FUlJPUl9DT0xPUiwgRk9STV9FUlJPUl9TSVpFLCBGT1JNX01FU1NBR0VfSUNPTl9TSVpFLCBGT1JNX1dBUk5JTkdfQ09MT1IsIEZPUk1fV0FSTklOR19TSVpFLCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIEZPUk1fRkVFREJBQ0tfQ09MT1IsIEZPUk1fRkVFREJBQ0tfU0laRSwgRk9STV9MQUJFTF9DT0xPUiwgRk9STV9MQUJFTF9TSVpFUywgRk9STV9PUFRJT05BTF9DT0xPUiwgRk9STV9PUFRJT05BTF9URVhULCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gU3Vic2NyaWJlIHBlci1maWVsZDsgb25seSBhIGN1c3RvbSByZWFkb25seVJlbmRlciAod2hpY2ggcmVjZWl2ZXMgQUxMXG4gICAgLy8gdmFsdWVzKSBuZWVkcyB0byB0cmFjayB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBbcmF3LCBhbGxWYWx1ZXNdID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBbXG4gICAgICAgIG5hbWUgPyByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZG9ubHlSZW5kZXIgPyBzdGF0ZS52YWx1ZXMgOiB1bmRlZmluZWQsXG4gICAgXSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgYWxsVmFsdWVzICE9PSBudWxsICYmIGFsbFZhbHVlcyAhPT0gdm9pZCAwID8gYWxsVmFsdWVzIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMpO1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgPyBub2RlIDogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCB7IHZhbHVlRW51bSB9KTtcbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogcmVuZGVyZWQgIT09IG51bGwgJiYgcmVuZGVyZWQgIT09IHZvaWQgMCA/IHJlbmRlcmVkIDogZW1wdHlUZXh0IH0pO1xufTtcblJlYWRvbmx5Q2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtUmVhZG9ubHknO1xuY29uc3QgUmVhZG9ubHlDaGlsZCA9IG1lbW8oUmVhZG9ubHlDaGlsZEJhc2UpO1xuY29uc3QgQ29udmVydFZhbHVlQ2hpbGRCYXNlID0gKHsgbmFtZSwgY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJywgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IHJhdyA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW4gdXNlRm9ybUl0ZW0nc1xuICAgIC8vIHBlci1maWVsZCBzdWJzY3JpcHRpb24sIHNvIHRoaXMgc2hlbGwgbmV2ZXIgcmUtcmVuZGVycyBmb3Igc2libGluZ3MuXG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIHJlcXVpcmVkID0gdHJ1ZSwgZGVzY3JpcHRpb24sIHJ1bGVzLCBmZWVkYmFjaywgdmFsaWRhdGVTdGF0dXMsIGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnZm9ybS1pdGVtJywgaGlkZGVuLCB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZSwgdmFsdWVUeXBlLCByZWFkb25seVJlbmRlciwgY29sUHJvcHMsIG1vZGU6IG1vZGVQcm9wLCBlbXB0eVRleHQgPSBFTVBUWV9URVhUX0RFRkFVTFQsIHZhbHVlRW51bSwgdmFsdWVQcm9wTmFtZSwgdmFsaWRhdGVEZWJvdW5jZSwgdmFsaWRhdGVUcmlnZ2VyLCB9ID0gbWVyZ2VkUHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IGN0eC5tb2RlO1xuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBtZXJnZWRNb2RlID09PSAncmVhZCc7XG4gICAgY29uc3QgeyBmaWVsZEVycm9yLCBmaWVsZFdhcm5pbmcsIHNpemUsIGxhYmVsQWxpZ24sIGluamVjdEZpZWxkLCB9ID0gdXNlRm9ybUl0ZW0oe1xuICAgICAgICBuYW1lLFxuICAgICAgICBydWxlcyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXMsXG4gICAgICAgIHZhbHVlUHJvcE5hbWUsXG4gICAgICAgIHZhbGlkYXRlRGVib3VuY2UsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyBSZWdpc3RlciB0cmFuc2Zvcm0gLyB2YWx1ZVR5cGUgRFVSSU5HIHJlbmRlciAoaWRlbXBvdGVudCByZWYgd3JpdGVzLCBsaWtlXG4gICAgLy8gcmVnaXN0ZXJGaWVsZCk6IGNvbnN1bWVycyByZW5kZXJlZCBsYXRlciBpbiB0aGUgc2FtZSBwYXNzIOKAlCBlLmcuIGFcbiAgICAvLyBEZXBlbmRlbmN5IHJlYWRpbmcgZm9ybWF0dGVkIHZhbHVlcyDigJQgbXVzdCBhbHJlYWR5IHNlZSB0aGVtLiBFZmZlY3RzXG4gICAgLy8gd291bGQgcmVnaXN0ZXIgdG9vIGxhdGUgKGFmdGVyIHRoZSB3aG9sZSB0cmVlIHJlbmRlcmVkKS5cbiAgICAvL1xuICAgIC8vIEVhY2ggaW5zdGFuY2UgdHJhY2tzIHRoZSB7bmFtZSwgdmFsdWV9IFBBSVIgaXQgcmVnaXN0ZXJlZC4gUmVtb3ZhbCBpc1xuICAgIC8vIGFsd2F5cyBwZXJmb3JtZWQgd2l0aCB0aGUgcGFpcidzIG93biBuYW1lIEFORCB2YWx1ZTogYW4gaXRlbSB3aXRob3V0IGFcbiAgICAvLyB0cmFuc2Zvcm0gbmV2ZXIgdG91Y2hlcyBhIHNhbWUtbmFtZSBzaWJsaW5nJ3MgcmVnaXN0cmF0aW9uLCBhbiB1bm1vdW50XG4gICAgLy8gY2xlYW51cCBjYW4ndCB3aXBlIGEgc3VjY2Vzc29yJ3MgKHZhbHVlLWd1YXJkZWQpLCBhbmQgYSBOQU1FIGNoYW5nZVxuICAgIC8vIHJlbW92ZXMgdGhlIG9sZCBuYW1lJ3MgZW50cnkgd2l0aCB0aGUgT0xEIHZhbHVlIGJlZm9yZSB0aGUgcmVmIGlzXG4gICAgLy8gb3ZlcndyaXR0ZW4gKGEgbGl2ZSBzaW5nbGUtdmFsdWUgcmVmIHdvdWxkIGxlYWsgaXQpLlxuICAgIGNvbnN0IG93blRyYW5zZm9ybVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBvd25WYWx1ZVR5cGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJldlRyYW5zZm9ybSA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgIGlmIChwcmV2VHJhbnNmb3JtICYmIChwcmV2VHJhbnNmb3JtLm5hbWUgIT09IG5hbWUgfHwgIXRyYW5zZm9ybSkpIHtcbiAgICAgICAgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0ocHJldlRyYW5zZm9ybS5uYW1lLCBwcmV2VHJhbnNmb3JtLmZuKTtcbiAgICAgICAgb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiB0cmFuc2Zvcm0pIHtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtKG5hbWUsIHRyYW5zZm9ybSk7XG4gICAgICAgIG93blRyYW5zZm9ybVJlZi5jdXJyZW50ID0geyBuYW1lLCBmbjogdHJhbnNmb3JtIH07XG4gICAgfVxuICAgIGNvbnN0IHByZXZWYWx1ZVR5cGUgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICBpZiAocHJldlZhbHVlVHlwZSAmJiAocHJldlZhbHVlVHlwZS5uYW1lICE9PSBuYW1lIHx8ICF2YWx1ZVR5cGUpKSB7XG4gICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKHByZXZWYWx1ZVR5cGUubmFtZSwgcHJldlZhbHVlVHlwZS52YWx1ZVR5cGUpO1xuICAgICAgICBvd25WYWx1ZVR5cGVSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChuYW1lICYmIHZhbHVlVHlwZSkge1xuICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUobmFtZSwgdmFsdWVUeXBlKTtcbiAgICAgICAgb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQgPSB7IG5hbWUsIHZhbHVlVHlwZSB9O1xuICAgIH1cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBSRS1SRUdJU1RFUiBpbiB0aGUgYm9keTogU3RyaWN0TW9kZSdzIG1vdW504oaSY2xlYW51cOKGknJlLXJ1biBjeWNsZSBhbmRcbiAgICAgICAgLy8ga2V5ZWQgcmVtb3VudHMgKG9sZCBpbnN0YW5jZSdzIGNsZWFudXAgcnVucyBBRlRFUiB0aGUgbmV3IHJlbmRlclxuICAgICAgICAvLyByZWdpc3RlcmVkKSBib3RoIGVuZCB3aXRoIGEgY2xlYW51cCBoYXZpbmcgZGVsZXRlZCB0aGUgZW50cnkg4oCUIHRoZVxuICAgICAgICAvLyBlZmZlY3QgYm9keSBtdXN0IHJlc3RvcmUgdGhlIGxhdGVzdCByZWdpc3RyYXRpb24uXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybVJlZyA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgICAgICBpZiAodHJhbnNmb3JtUmVnKVxuICAgICAgICAgICAgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtKHRyYW5zZm9ybVJlZy5uYW1lLCB0cmFuc2Zvcm1SZWcuZm4pO1xuICAgICAgICBjb25zdCB2YWx1ZVR5cGVSZWcgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHZhbHVlVHlwZVJlZylcbiAgICAgICAgICAgIGN0eC5yZWdpc3RlclZhbHVlVHlwZSh2YWx1ZVR5cGVSZWcubmFtZSwgdmFsdWVUeXBlUmVnLnZhbHVlVHlwZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ID0gb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodClcbiAgICAgICAgICAgICAgICBjdHgudW5yZWdpc3RlclRyYW5zZm9ybSh0Lm5hbWUsIHQuZm4pO1xuICAgICAgICAgICAgY29uc3QgdiA9IG93blZhbHVlVHlwZVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGUodi5uYW1lLCB2LnZhbHVlVHlwZSk7XG4gICAgICAgIH07XG4gICAgfSwgW25hbWUsIGN0eC5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC5yZWdpc3RlclZhbHVlVHlwZSwgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGVdKTtcbiAgICBpZiAoaGlkZGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udHJvbENoaWxkO1xuICAgIGlmIChpc1JlYWRvbmx5KSB7XG4gICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KFJlYWRvbmx5Q2hpbGQsIHsgbmFtZTogbmFtZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUsIHZhbHVlRW51bTogdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXI6IHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQ6IGVtcHR5VGV4dCB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBJbmplY3QgZmlyc3Qgc28gdGhlIHJlYWwgZmllbGQgcmVjZWl2ZXMgdmFsdWUvb25DaGFuZ2Uvb25CbHVyLFxuICAgICAgICAvLyB0aGVuIG9wdGlvbmFsbHkgd3JhcCBpbiBDb252ZXJ0VmFsdWVDaGlsZCB0byBvdmVycmlkZSB0aGUgZGlzcGxheWVkIHZhbHVlLlxuICAgICAgICBjb25zdCBpbmplY3RlZCA9IGluamVjdEZpZWxkKGNoaWxkcmVuKTtcbiAgICAgICAgaWYgKGNvbnZlcnRWYWx1ZSAmJiBuYW1lICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGluamVjdGVkKSkge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goQ29udmVydFZhbHVlQ2hpbGQsIHsgbmFtZTogbmFtZSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHZhbHVlUHJvcE5hbWU6IHZhbHVlUHJvcE5hbWUsIGNoaWxkcmVuOiBpbmplY3RlZCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSBpbmplY3RlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIC8vIEZvcm0tbGV2ZWwgbGF5b3V0Lml0ZW1HYXAgb3ZlcnJpZGVzIHRoZSBzaXplLWNsYXNzIG1hcmdpbiAoaW5saW5lIHN0eWxlXG4gICAgLy8gd2lucyk7IGl0ZW1HYXA9MCBpcyBtZWFuaW5nZnVsLlxuICAgIGNvbnN0IGl0ZW1HYXAgPSAoX2EgPSBjdHgubGF5b3V0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaXRlbUdhcDtcbiAgICBjb25zdCBnYXBTdHlsZSA9IGl0ZW1HYXAgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHsgbWFyZ2luQm90dG9tOiB0eXBlb2YgaXRlbUdhcCA9PT0gJ251bWJlcicgPyBgJHtpdGVtR2FwfXB4YCA6IGl0ZW1HYXAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzaGVsbCA9IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcyhzaXplKSwgY2xhc3NOYW1lKSksIHN0eWxlOiBnYXBTdHlsZSwgY2hpbGRyZW46IFtsYWJlbCAmJiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLXdyYXBwZXInLCBqb2luQ2xzKGNsYXNzZXMoJ2xhYmVsLXdyYXBwZXItdmVydGljYWwnKSwgbGFiZWxBbGlnbiAmJiBjbGFzc2VzKGBsYWJlbC13cmFwcGVyLSR7bGFiZWxBbGlnbn1gKSkpLCBjaGlsZHJlbjogW19qc3hzKFR5cG9ncmFwaHlMYWJlbCwgeyBhczogXCJsYWJlbFwiLCBzdHJvbmc6IHRydWUsIHNpemU6IEZPUk1fTEFCRUxfU0laRVNbc2l6ZV0sIGNvbG9yOiBGT1JNX0xBQkVMX0NPTE9SLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJyksIGNoaWxkcmVuOiBbbGFiZWwsICFyZXF1aXJlZCAmJiAoX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwic3BhblwiLCBpdGFsaWM6IHRydWUsIHN0cm9uZzogdHJ1ZSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb25hbCcpLCBzaXplOiBGT1JNX0xBQkVMX1NJWkVTW3NpemVdLCBjb2xvcjogRk9STV9PUFRJT05BTF9DT0xPUiwgY2hpbGRyZW46IEZPUk1fT1BUSU9OQUxfVEVYVCB9KSldIH0pLCBkZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdkZXNjcmlwdGlvbicpLCBzaXplOiBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIGNvbG9yOiBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJyksIGNoaWxkcmVuOiBbY29udHJvbENoaWxkLCBmaWVsZEVycm9yICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgY2hpbGRyZW46IFtfanN4KEljb25zLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZS1pY29uJyksIG5hbWU6IFwiZXJyb3JcIiwgc2l6ZTogRk9STV9NRVNTQUdFX0lDT05fU0laRSB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJzcGFuXCIsIHNpemU6IEZPUk1fRVJST1JfU0laRSwgY29sb3I6IEZPUk1fRVJST1JfQ09MT1IsIGNoaWxkcmVuOiBmaWVsZEVycm9yIH0pXSB9KSksICFmaWVsZEVycm9yICYmIGZpZWxkV2FybmluZyAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCd3YXJuaW5nJyksIHNpemU6IEZPUk1fV0FSTklOR19TSVpFLCBjb2xvcjogRk9STV9XQVJOSU5HX0NPTE9SLCBjaGlsZHJlbjogZmllbGRXYXJuaW5nIH0pKSwgIWZpZWxkRXJyb3IgJiYgIWZpZWxkV2FybmluZyAmJiBmZWVkYmFjayAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmZWVkYmFjaycpLCBzaXplOiBGT1JNX0ZFRURCQUNLX1NJWkUsIGNvbG9yOiBGT1JNX0ZFRURCQUNLX0NPTE9SLCBjaGlsZHJlbjogZmVlZGJhY2sgfSkpXSB9KV0gfSkpO1xuICAgIGlmIChjdHguZ3JpZCkge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN0eC5jb2xQcm9wcyksIGNvbFByb3BzKTtcbiAgICAgICAgY29uc3QgeyBzcGFuID0gREVGQVVMVF9DT0xfU1BBTiwgc20sIG1kLCBsZyB9ID0gbWVyZ2VkO1xuICAgICAgICByZXR1cm4gX2pzeChDb2wsIHsgc3Bhbjogc3Bhbiwgc206IHNtLCBtZDogbWQsIGxnOiBsZywgY2hpbGRyZW46IHNoZWxsIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2hlbGw7XG59O1xuUHJvRm9ybUl0ZW1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtSXRlbSA9IG1lbW8oUHJvRm9ybUl0ZW1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1JdGVtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -13,6 +13,13 @@ export type ValidateStatus = (typeof VALIDATE_STATUSES)[number];
13
13
  export type ValidateTrigger = (typeof VALIDATE_TRIGGERS)[number];
14
14
  export declare const FORM_LABEL_SIZES: Record<FormSize, TypographyLabelSize>;
15
15
  export declare const FORM_LABEL_COLOR: TypographyColor;
16
+ /**
17
+ * The `(Optional)` label suffix — Figma `Label/* Italic (optional)` in
18
+ * `Text/Default/Tertiary` (#646465). Mirrors the Input/Select field shells;
19
+ * there is no required marker, only this optional one.
20
+ */
21
+ export declare const FORM_OPTIONAL_TEXT = "(Optional)";
22
+ export declare const FORM_OPTIONAL_COLOR: TypographyColor;
16
23
  export declare const FORM_ERROR_SIZE: TypographyBodySize;
17
24
  export declare const FORM_ERROR_COLOR: TypographyColor;
18
25
  export declare const FORM_WARNING_SIZE: TypographyBodySize;
@@ -17,6 +17,13 @@ export var FORM_LABEL_SIZES = {
17
17
  small: 'md'
18
18
  };
19
19
  export var FORM_LABEL_COLOR = 'default';
20
+ /**
21
+ * The `(Optional)` label suffix — Figma `Label/* Italic (optional)` in
22
+ * `Text/Default/Tertiary` (#646465). Mirrors the Input/Select field shells;
23
+ * there is no required marker, only this optional one.
24
+ */
25
+ export var FORM_OPTIONAL_TEXT = '(Optional)';
26
+ export var FORM_OPTIONAL_COLOR = 'default-tertiary';
20
27
  export var FORM_ERROR_SIZE = 'sm';
21
28
  export var FORM_ERROR_COLOR = 'danger';
22
29
  export var FORM_WARNING_SIZE = 'sm';
@@ -45,4 +52,4 @@ export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextAre
45
52
  * fallback value.
46
53
  */
47
54
  export var TEXT_LIKE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
48
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX1dBUk5JTkdfQ09MT1IiLCJGT1JNX01FU1NBR0VfSUNPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fRkVFREJBQ0tfQ09MT1IiLCJGT1JNX0NPTVBPTkVOVF9OQU1FUyIsIlNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFVO0FBQ3JELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsVUFBVSxDQUFVO0FBQ2pELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBVTtBQUN0RCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFVO0FBQ3ZGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFVO0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyx5QkFBeUIsR0FBRyxDQUN2QyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixtQkFBbUIsQ0FDWDtBQUNWLE9BQU8sSUFBTUMsNEJBQTRCLEdBQUcsQ0FDMUMsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixhQUFhLENBQ0w7QUFRVjtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLGdCQUFnQixHQUEwQztFQUNyRUMsS0FBSyxFQUFFLElBQUk7RUFDWEMsS0FBSyxFQUFFO0FDVFQsQ0RVQztBQUNELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQW9CLFNBQVM7QUFDMUQsT0FBTyxJQUFNQyxlQUFlLEdBQXVCLElBQUk7QUFDdkQsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsUUFBUTtBQUN6RCxPQUFPLElBQU1DLGlCQUFpQixHQUF1QixJQUFJO0FBQ3pELE9BQU8sSUFBTUMsa0JBQWtCLEdBQW9CLFNBQVM7QUFDNUQ7QUFDQSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLEVBQUU7QUFDeEMsT0FBTyxJQUFNQyxxQkFBcUIsR0FBdUIsSUFBSTtBQUM3RCxPQUFPLElBQU1DLHNCQUFzQixHQUFvQixrQkFBa0I7QUFDekUsT0FBTyxJQUFNQyxrQkFBa0IsR0FBdUIsSUFBSTtBQUMxRCxPQUFPLElBQU1DLG1CQUFtQixHQUFvQixrQkFBa0I7QUFFdEUsT0FBTyxJQUFNQyxvQkFBb0IsR0FBRyxDQUNsQyxPQUFPLEVBQ1AsYUFBYSxFQUNiLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQ1osYUFBYSxFQUNiLFdBQVcsRUFDWCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixlQUFlLEVBQ2YsT0FBTyxFQUNQLFlBQVksRUFDWixRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVU7QUFDVjtBQUNBO0FBQ0EsYUFBYSxFQUNiLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLHFCQUFxQixDQUNiO0FBRVY7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURhQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBSdWxlQ29udGV4dCBpbnN0YW5jZSBtZW1iZXJzLCBzcGxpdCBieSBzYWZldHk6IFJFQUQgbWVtYmVycyBhcmUgYXZhaWxhYmxlXG4vLyBpbiBFVkVSWSBydWxlIHJlc29sdXRpb24gKGluY2x1ZGluZyByZW5kZXItcGhhc2UgcmVxdWlyZWQtbWFyayBjaGVja3MpO1xuLy8gTVVUQVRPUiBtZW1iZXJzIGFyZSBoYW5kZWQgb3V0IG9ubHkgZHVyaW5nIHZhbGlkYXRpb24tdGltZSByZXNvbHV0aW9ucy5cbi8vIHVzZUZvcm1JdGVtIChyZW5kZXJTYWZlSW5zdGFuY2UpIGFuZCB0aGUgY29udHJhY3QgdGVzdHMgZGVyaXZlIGZyb20gdGhlc2UuXG5leHBvcnQgY29uc3QgUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyA9IFtcbiAgICAnZ2V0RmllbGRFcnJvcicsXG4gICAgJ2dldEZpZWxkV2FybmluZycsXG4gICAgJ2lzRmllbGRUb3VjaGVkJyxcbiAgICAnaXNGaWVsZFZhbGlkYXRpbmcnLFxuXTtcbmV4cG9ydCBjb25zdCBSVUxFX0NPTlRFWFRfTVVUQVRPUl9NRU1CRVJTID0gW1xuICAgICdzZXRGaWVsZFZhbHVlJyxcbiAgICAnc2V0RmllbGRzVmFsdWUnLFxuICAgICdyZXNldEZpZWxkcycsXG5dO1xuLy8gTGFiZWwgdHlwb2dyYXBoeSBwYWlycyB3aXRoIHRoZSBmaWVsZCBjb250cm9sJ3MgdGV4dCBzaXplIGZvciBlYWNoIGZvcm1cbi8vIHNpemU6IGxhcmdlIGNvbnRyb2wgdGV4dCBpcyBib2R5L2xnICgxNnB4KSDihpIgbGFiZWwgbGc7IHNtYWxsIGlzIGJvZHkvbWRcbi8vICgxNHB4KSDihpIgbGFiZWwgbWQuXG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9TSVpFUyA9IHtcbiAgICBsYXJnZTogJ2xnJyxcbiAgICBzbWFsbDogJ21kJyxcbn07XG5leHBvcnQgY29uc3QgRk9STV9MQUJFTF9DT0xPUiA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX1NJWkUgPSAnc20nO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfQ09MT1IgPSAnZGFuZ2VyJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9XQVJOSU5HX0NPTE9SID0gJ3dhcm5pbmcnO1xuLyoqIExlYWRpbmcgaWNvbiBvbiBhIHZhbGlkYXRpb24gbWVzc2FnZSDigJQgbWF0Y2hlcyBGaWVsZFNoZWxsJ3MgZmVlZGJhY2sgaWNvbi4gKi9cbmV4cG9ydCBjb25zdCBGT1JNX01FU1NBR0VfSUNPTl9TSVpFID0gMTY7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9TSVpFID0gJ21kJztcbmV4cG9ydCBjb25zdCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9GRUVEQkFDS19DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dE51bWJlcicsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1NlbGVjdCcsXG4gICAgJ0Jhc2VTZWxlY3QnLFxuICAgICdEYXRlUGlja2VyJyxcbiAgICAnVGltZVBpY2tlcicsXG4gICAgJ0NhbGVuZGFyJyxcbiAgICAnQ2hlY2tib3gnLFxuICAgICdDaGVja2JveEdyb3VwJyxcbiAgICAnUmFkaW8nLFxuICAgICdSYWRpb0dyb3VwJyxcbiAgICAnU3dpdGNoJyxcbiAgICAnU2xpZGVyJyxcbiAgICAnVGV4dEFyZWEnLFxuICAgIC8vIGJ1c2luZXNzLyBzZWxlY3RzIOKAlCByZWNvZ25pemVkIGJ5IHRoZWlyIGV4cGxpY2l0IGRpc3BsYXlOYW1lIHNvIGhvc3RzXG4gICAgLy8gZG9uJ3QgaGF2ZSB0byBwYXNzIGEgcGxhY2Vob2xkZXIvdmFsdWUganVzdCB0byB0cmlnZ2VyIGluamVjdGlvbi5cbiAgICAnQXNzZXRTZWxlY3QnLFxuICAgICdDb3VudHJ5U2VsZWN0JyxcbiAgICAnQ3VycmVuY3lTZWxlY3QnLFxuICAgICdOZXR3b3JrU2VsZWN0JyxcbiAgICAnUGF5bWVudE1ldGhvZFNlbGVjdCcsXG5dO1xuLyoqXG4gKiBGb3JtIGNvbnRyb2xzIHRoYXQgZGVjbGFyZSBhIGBzaXplYCBwcm9wIGFjY2VwdGluZyBgJ2xhcmdlJyB8ICdzbWFsbCdgLlxuICogYGluamVjdEZpZWxkYCBjYXNjYWRlcyB0aGUgZm9ybS1sZXZlbCBgc2l6ZWAgaW50byB0aGVzZSBhcyBhIERFRkFVTFQg4oCUIGFuXG4gKiBleHBsaWNpdCBmaWVsZC1sZXZlbCBgc2l6ZWAgKG93biBwcm9wIG9yIHZpYSBgZmllbGRQcm9wc2ApIHdpbnMuIENvbnRyb2xzXG4gKiB3aXRob3V0IGEgc2l6ZSBwcm9wIChDaGVja2JveCwgU3dpdGNoLCBTbGlkZXIsIOKApikgbXVzdCBzdGF5IG9mZiB0aGlzIGxpc3Q6XG4gKiBhbiBhbnkgYHNpemVgIHByb3AgY291bGQgbGVhayBvbnRvIHRoZSBET00gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0QW1vdW50JyxcbiAgICAnSW5wdXRNYXNrJyxcbiAgICAnU2VsZWN0JyxcbiAgICAnQ2FsZW5kYXInLFxuICAgICdSYWRpbycsXG4gICAgJ1JhZGlvR3JvdXAnLFxuXTtcbi8qKlxuICogVGV4dC1saWtlIGZvcm0gY29udHJvbHMgd2hvc2UgZW1wdHkgdmFsdWUgbXVzdCBkZWZhdWx0IHRvICcnIChhIGNvbnRyb2xsZWRcbiAqIHN0cmluZyBpbnB1dCkgcmF0aGVyIHRoYW4gdW5kZWZpbmVkLiBVc2VkIGJ5IGBpbmplY3RGaWVsZGAgdG8gcGljayBhIHNhZmVcbiAqIGZhbGxiYWNrIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdUZXh0QXJlYScsXG4gICAgJ0lucHV0TnVtYmVyJyxcbl07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
55
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX09QVElPTkFMX1RFWFQiLCJGT1JNX09QVElPTkFMX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9FUlJPUl9DT0xPUiIsIkZPUk1fV0FSTklOR19TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9NRVNTQUdFX0lDT05fU0laRSIsIkZPUk1fREVTQ1JJUFRJT05fU0laRSIsIkZPUk1fREVTQ1JJUFRJT05fQ09MT1IiLCJGT1JNX0ZFRURCQUNLX1NJWkUiLCJGT1JNX0ZFRURCQUNLX0NPTE9SIiwiRk9STV9DT01QT05FTlRfTkFNRVMiLCJTSVpFX0FXQVJFX0NPTVBPTkVOVF9OQU1FUyIsIlRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sSUFBTUEsVUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVTtBQUNyRCxPQUFPLElBQU1DLFlBQVksR0FBRyxDQUFDLFVBQVUsQ0FBVTtBQUNqRCxPQUFPLElBQU1DLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQVU7QUFDdEQsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBVTtBQUN2RixPQUFPLElBQU1DLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBVTtBQUVoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMseUJBQXlCLEdBQUcsQ0FDdkMsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsbUJBQW1CLENBQ1g7QUFDVixPQUFPLElBQU1DLDRCQUE0QixHQUFHLENBQzFDLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsYUFBYSxDQUNMO0FBUVY7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBMEM7RUFDckVDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLEtBQUssRUFBRTtBQ1RULENEVUM7QUFDRCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixTQUFTO0FBQzFEO0FDVEE7QUFDQTtBQUNBO0FBQ0E7QURXQSxPQUFPLElBQU1DLGtCQUFrQixHQUFHLFlBQVk7QUFDOUMsT0FBTyxJQUFNQyxtQkFBbUIsR0FBb0Isa0JBQWtCO0FBQ3RFLE9BQU8sSUFBTUMsZUFBZSxHQUF1QixJQUFJO0FBQ3ZELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQW9CLFFBQVE7QUFDekQsT0FBTyxJQUFNQyxpQkFBaUIsR0FBdUIsSUFBSTtBQUN6RCxPQUFPLElBQU1DLGtCQUFrQixHQUFvQixTQUFTO0FBQzVEO0FBQ0EsT0FBTyxJQUFNQyxzQkFBc0IsR0FBRyxFQUFFO0FBQ3hDLE9BQU8sSUFBTUMscUJBQXFCLEdBQXVCLElBQUk7QUFDN0QsT0FBTyxJQUFNQyxzQkFBc0IsR0FBb0Isa0JBQWtCO0FBQ3pFLE9BQU8sSUFBTUMsa0JBQWtCLEdBQXVCLElBQUk7QUFDMUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBb0Isa0JBQWtCO0FBRXRFLE9BQU8sSUFBTUMsb0JBQW9CLEdBQUcsQ0FDbEMsT0FBTyxFQUNQLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixVQUFVLEVBQ1YsZUFBZSxFQUNmLE9BQU8sRUFDUCxZQUFZLEVBQ1osUUFBUSxFQUNSLFFBQVEsRUFDUixVQUFVO0FBQ1Y7QUFDQTtBQUNBLGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixxQkFBcUIsQ0FDYjtBQUVWO0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEYUEsT0FBTyxJQUFNQywwQkFBMEIsR0FBc0IsQ0FDM0QsT0FBTyxFQUNQLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFlBQVksQ0FDYjtBQUVEO0FDWkE7QUFDQTtBQUNBO0FBQ0E7QURjQSxPQUFPLElBQU1DLHlCQUF5QixHQUFzQixDQUMxRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFVBQVUsRUFDVixhQUFhLENBQ2QiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJleHBvcnQgY29uc3QgRk9STV9TSVpFUyA9IFsnbGFyZ2UnLCAnc21hbGwnXTtcbmV4cG9ydCBjb25zdCBGT1JNX0xBWU9VVFMgPSBbJ3ZlcnRpY2FsJ107XG5leHBvcnQgY29uc3QgTEFCRUxfQUxJR05TID0gWydsZWZ0JywgJ3JpZ2h0J107XG5leHBvcnQgY29uc3QgVkFMSURBVEVfU1RBVFVTRVMgPSBbJ3N1Y2Nlc3MnLCAnd2FybmluZycsICdlcnJvcicsICd2YWxpZGF0aW5nJ107XG5leHBvcnQgY29uc3QgVkFMSURBVEVfVFJJR0dFUlMgPSBbJ29uQ2hhbmdlJywgJ29uQmx1ciddO1xuLy8gUnVsZUNvbnRleHQgaW5zdGFuY2UgbWVtYmVycywgc3BsaXQgYnkgc2FmZXR5OiBSRUFEIG1lbWJlcnMgYXJlIGF2YWlsYWJsZVxuLy8gaW4gRVZFUlkgcnVsZSByZXNvbHV0aW9uIChpbmNsdWRpbmcgcmVuZGVyLXBoYXNlIHJlcXVpcmVkLW1hcmsgY2hlY2tzKTtcbi8vIE1VVEFUT1IgbWVtYmVycyBhcmUgaGFuZGVkIG91dCBvbmx5IGR1cmluZyB2YWxpZGF0aW9uLXRpbWUgcmVzb2x1dGlvbnMuXG4vLyB1c2VGb3JtSXRlbSAocmVuZGVyU2FmZUluc3RhbmNlKSBhbmQgdGhlIGNvbnRyYWN0IHRlc3RzIGRlcml2ZSBmcm9tIHRoZXNlLlxuZXhwb3J0IGNvbnN0IFJVTEVfQ09OVEVYVF9SRUFEX01FTUJFUlMgPSBbXG4gICAgJ2dldEZpZWxkRXJyb3InLFxuICAgICdnZXRGaWVsZFdhcm5pbmcnLFxuICAgICdpc0ZpZWxkVG91Y2hlZCcsXG4gICAgJ2lzRmllbGRWYWxpZGF0aW5nJyxcbl07XG5leHBvcnQgY29uc3QgUlVMRV9DT05URVhUX01VVEFUT1JfTUVNQkVSUyA9IFtcbiAgICAnc2V0RmllbGRWYWx1ZScsXG4gICAgJ3NldEZpZWxkc1ZhbHVlJyxcbiAgICAncmVzZXRGaWVsZHMnLFxuXTtcbi8vIExhYmVsIHR5cG9ncmFwaHkgcGFpcnMgd2l0aCB0aGUgZmllbGQgY29udHJvbCdzIHRleHQgc2l6ZSBmb3IgZWFjaCBmb3JtXG4vLyBzaXplOiBsYXJnZSBjb250cm9sIHRleHQgaXMgYm9keS9sZyAoMTZweCkg4oaSIGxhYmVsIGxnOyBzbWFsbCBpcyBib2R5L21kXG4vLyAoMTRweCkg4oaSIGxhYmVsIG1kLlxuZXhwb3J0IGNvbnN0IEZPUk1fTEFCRUxfU0laRVMgPSB7XG4gICAgbGFyZ2U6ICdsZycsXG4gICAgc21hbGw6ICdtZCcsXG59O1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFCRUxfQ09MT1IgPSAnZGVmYXVsdCc7XG4vKipcbiAqIFRoZSBgKE9wdGlvbmFsKWAgbGFiZWwgc3VmZml4IOKAlCBGaWdtYSBgTGFiZWwvKiBJdGFsaWMgKG9wdGlvbmFsKWAgaW5cbiAqIGBUZXh0L0RlZmF1bHQvVGVydGlhcnlgICgjNjQ2NDY1KS4gTWlycm9ycyB0aGUgSW5wdXQvU2VsZWN0IGZpZWxkIHNoZWxscztcbiAqIHRoZXJlIGlzIG5vIHJlcXVpcmVkIG1hcmtlciwgb25seSB0aGlzIG9wdGlvbmFsIG9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEZPUk1fT1BUSU9OQUxfVEVYVCA9ICcoT3B0aW9uYWwpJztcbmV4cG9ydCBjb25zdCBGT1JNX09QVElPTkFMX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9DT0xPUiA9ICdkYW5nZXInO1xuZXhwb3J0IGNvbnN0IEZPUk1fV0FSTklOR19TSVpFID0gJ3NtJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfQ09MT1IgPSAnd2FybmluZyc7XG4vKiogTGVhZGluZyBpY29uIG9uIGEgdmFsaWRhdGlvbiBtZXNzYWdlIOKAlCBtYXRjaGVzIEZpZWxkU2hlbGwncyBmZWVkYmFjayBpY29uLiAqL1xuZXhwb3J0IGNvbnN0IEZPUk1fTUVTU0FHRV9JQ09OX1NJWkUgPSAxNjtcbmV4cG9ydCBjb25zdCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUgPSAnbWQnO1xuZXhwb3J0IGNvbnN0IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IgPSAnZGVmYXVsdC10ZXJ0aWFyeSc7XG5leHBvcnQgY29uc3QgRk9STV9GRUVEQkFDS19TSVpFID0gJ3NtJztcbmV4cG9ydCBjb25zdCBGT1JNX0ZFRURCQUNLX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0TnVtYmVyJyxcbiAgICAnSW5wdXRQYXNzd29yZCcsXG4gICAgJ0lucHV0VGV4dEFyZWEnLFxuICAgICdJbnB1dFNlYXJjaCcsXG4gICAgJ0lucHV0T1RQJyxcbiAgICAnSW5wdXRUcmFkZScsXG4gICAgJ0lucHV0QW1vdW50JyxcbiAgICAnSW5wdXRNYXNrJyxcbiAgICAnU2VsZWN0JyxcbiAgICAnQmFzZVNlbGVjdCcsXG4gICAgJ0RhdGVQaWNrZXInLFxuICAgICdUaW1lUGlja2VyJyxcbiAgICAnQ2FsZW5kYXInLFxuICAgICdDaGVja2JveCcsXG4gICAgJ0NoZWNrYm94R3JvdXAnLFxuICAgICdSYWRpbycsXG4gICAgJ1JhZGlvR3JvdXAnLFxuICAgICdTd2l0Y2gnLFxuICAgICdTbGlkZXInLFxuICAgICdUZXh0QXJlYScsXG4gICAgLy8gYnVzaW5lc3MvIHNlbGVjdHMg4oCUIHJlY29nbml6ZWQgYnkgdGhlaXIgZXhwbGljaXQgZGlzcGxheU5hbWUgc28gaG9zdHNcbiAgICAvLyBkb24ndCBoYXZlIHRvIHBhc3MgYSBwbGFjZWhvbGRlci92YWx1ZSBqdXN0IHRvIHRyaWdnZXIgaW5qZWN0aW9uLlxuICAgICdBc3NldFNlbGVjdCcsXG4gICAgJ0NvdW50cnlTZWxlY3QnLFxuICAgICdDdXJyZW5jeVNlbGVjdCcsXG4gICAgJ05ldHdvcmtTZWxlY3QnLFxuICAgICdQYXltZW50TWV0aG9kU2VsZWN0Jyxcbl07XG4vKipcbiAqIEZvcm0gY29udHJvbHMgdGhhdCBkZWNsYXJlIGEgYHNpemVgIHByb3AgYWNjZXB0aW5nIGAnbGFyZ2UnIHwgJ3NtYWxsJ2AuXG4gKiBgaW5qZWN0RmllbGRgIGNhc2NhZGVzIHRoZSBmb3JtLWxldmVsIGBzaXplYCBpbnRvIHRoZXNlIGFzIGEgREVGQVVMVCDigJQgYW5cbiAqIGV4cGxpY2l0IGZpZWxkLWxldmVsIGBzaXplYCAob3duIHByb3Agb3IgdmlhIGBmaWVsZFByb3BzYCkgd2lucy4gQ29udHJvbHNcbiAqIHdpdGhvdXQgYSBzaXplIHByb3AgKENoZWNrYm94LCBTd2l0Y2gsIFNsaWRlciwg4oCmKSBtdXN0IHN0YXkgb2ZmIHRoaXMgbGlzdDpcbiAqIGFuIGFueSBgc2l6ZWAgcHJvcCBjb3VsZCBsZWFrIG9udG8gdGhlIERPTSBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXRQYXNzd29yZCcsXG4gICAgJ0lucHV0VGV4dEFyZWEnLFxuICAgICdJbnB1dFNlYXJjaCcsXG4gICAgJ0lucHV0T1RQJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG5dO1xuLyoqXG4gKiBUZXh0LWxpa2UgZm9ybSBjb250cm9scyB3aG9zZSBlbXB0eSB2YWx1ZSBtdXN0IGRlZmF1bHQgdG8gJycgKGEgY29udHJvbGxlZFxuICogc3RyaW5nIGlucHV0KSByYXRoZXIgdGhhbiB1bmRlZmluZWQuIFVzZWQgYnkgYGluamVjdEZpZWxkYCB0byBwaWNrIGEgc2FmZVxuICogZmFsbGJhY2sgdmFsdWUuXG4gKi9cbmV4cG9ydCBjb25zdCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1RleHRBcmVhJyxcbiAgICAnSW5wdXROdW1iZXInLFxuXTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -36,6 +36,7 @@ export function createProFormField(config) {
36
36
  var _c = props,
37
37
  name = _c.name,
38
38
  label = _c.label,
39
+ required = _c.required,
39
40
  description = _c.description,
40
41
  rules = _c.rules,
41
42
  feedback = _c.feedback,
@@ -58,7 +59,7 @@ export function createProFormField(config) {
58
59
  validateTrigger = _c.validateTrigger,
59
60
  valueType = _c.valueType,
60
61
  dependenciesValues = _c.dependenciesValues,
61
- rest = __rest(_c, ["name", "label", "description", "rules", "feedback", "validateStatus", "mode", "hidden", "colProps", "fieldProps", "placeholder", "disabled", "width", "transform", "convertValue", "dependencies", "request", "params", "valueEnum", "debounceTime", "validateDebounce", "validateTrigger", "valueType", "dependenciesValues"]);
62
+ rest = __rest(_c, ["name", "label", "required", "description", "rules", "feedback", "validateStatus", "mode", "hidden", "colProps", "fieldProps", "placeholder", "disabled", "width", "transform", "convertValue", "dependencies", "request", "params", "valueEnum", "debounceTime", "validateDebounce", "validateTrigger", "valueType", "dependenciesValues"]);
62
63
 
63
64
  // Form-level fieldProps (lowest priority after mapProps defaults).
64
65
  // Stable slice only — the field shell must NOT re-render per keystroke;
@@ -121,6 +122,7 @@ export function createProFormField(config) {
121
122
  return _jsx(ProFormItem, {
122
123
  name: name,
123
124
  label: label,
125
+ required: required,
124
126
  description: description,
125
127
  rules: rules,
126
128
  feedback: feedback,
@@ -161,4 +163,4 @@ export function createProFormField(config) {
161
163
  return MemoizedField;
162
164
  }
163
165
  export default createProFormField;
164
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VGaWVsZFJlcXVlc3QiLCJyZXNvbHZlV2lkdGgiLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJjb21wb25lbnQiLCJ2YWx1ZVByb3BOYW1lIiwiZGVmYXVsdFZhbHVlVHlwZSIsInZhbHVlVHlwZSIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJNZW1vaXplZENvbXBvbmVudCIsImRpc3BsYXlOYW1lIiwibmFtZSIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJtb2RlIiwiaGlkZGVuIiwiY29sUHJvcHMiLCJmaWVsZFByb3BzIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsIndpZHRoIiwidHJhbnNmb3JtIiwiY29udmVydFZhbHVlIiwiX2RlcHMiLCJkZXBlbmRlbmNpZXMiLCJyZXF1ZXN0IiwicGFyYW1zIiwidmFsdWVFbnVtIiwiZGVib3VuY2VUaW1lIiwidmFsaWRhdGVEZWJvdW5jZSIsInZhbGlkYXRlVHJpZ2dlciIsImRlcGVuZGVuY2llc1ZhbHVlcyIsInJlc3QiLCJfdXNlUHJvRm9ybVN0YWJsZSIsImNvbnRleHRGaWVsZFByb3BzIiwiZm9ybURpc2FibGVkIiwibWVyZ2VkUmVxdWVzdFBhcmFtcyIsImFzc2lnbiIsIl91c2VGaWVsZFJlcXVlc3QiLCJfdXNlRmllbGRSZXF1ZXN0MiIsIl9zbGljZWRUb0FycmF5IiwicmVxdWVzdExvYWRpbmciLCJyZXF1ZXN0T3B0aW9ucyIsIm1hcHBlZCIsInVzZXJPbkNoYW5nZSIsIm9uQ2hhbmdlIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJkZWJvdW5jZWRPbkNoYW5nZSIsInJ1biIsIndpZHRoU3R5bGUiLCJ1bmRlZmluZWQiLCJmaWVsZFN0eWxlIiwic3R5bGUiLCJtZXJnZWRTdHlsZSIsIm1lcmdlZE9wdGlvbnMiLCJvcHRpb25zIiwiY29tcG9uZW50UHJvcHMiLCJsb2FkaW5nIiwicmVhZG9ubHlSZW5kZXIiLCJ2YWx1ZSIsImNoaWxkcmVuIiwiUHJvRm9ybUZpZWxkQ29tcG9uZW50QmFzZSIsImRlcFZhbHVlcyIsIk1lbW9pemVkRmllbGQiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxP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cm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyBQcm9Gb3JtRGVwZW5kZW5jeSB9IGZyb20gJy4uL1Byb0Zvcm1EZXBlbmRlbmN5JztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZUZpZWxkUmVxdWVzdCB9IGZyb20gJy4uL2hvb2tzL3VzZUZpZWxkUmVxdWVzdCc7XG5pbXBvcnQgeyByZXNvbHZlV2lkdGgsIHZhbHVlRW51bVRvT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY3JlYXRlUHJvRm9ybUZpZWxkIOKAlCBmYWN0b3J5IHRoYXQgcHJvZHVjZXMgYSBQcm9Gb3JtLWF3YXJlIGZpZWxkIGNvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvRm9ybUZpZWxkKGNvbmZpZykge1xuICAgIGNvbnN0IHsgY29tcG9uZW50OiBDb21wb25lbnQsIHZhbHVlUHJvcE5hbWUsIHZhbHVlVHlwZTogZGVmYXVsdFZhbHVlVHlwZSwgbWFwUHJvcHMsIHJlbmRlclJlYWRvbmx5LCB9ID0gY29uZmlnO1xuICAgIC8vIE1lbW8gYm91bmRhcnkgYXJvdW5kIHRoZSB3cmFwcGVkIGNvbnRyb2w6IGNvbWJpbmVkIHdpdGggdGhlIHN0YWJsZVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGZyb20gdXNlRm9ybUl0ZW0sIGZpZWxkcyB3aG9zZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlIGNhblxuICAgIC8vIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaW4gdGhlIGZvcm0gaXMgdHlwaW5nLiBkaXNwbGF5TmFtZSBtdXN0IGJlXG4gICAgLy8gY2FycmllZCBvdmVyIOKAlCBpbmplY3RGaWVsZCB1c2VzIGl0IHRvIHJlY29nbml6ZSBmb3JtIGNvbnRyb2xzLlxuICAgIGNvbnN0IE1lbW9pemVkQ29tcG9uZW50ID0gbWVtbyhDb21wb25lbnQpO1xuICAgIE1lbW9pemVkQ29tcG9uZW50LmRpc3BsYXlOYW1lID1cbiAgICAgICAgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lO1xuICAgIC8vIElubmVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBtb2RlLCByZXF1ZXN0LCB2YWx1ZUVudW0sIGRlYm91bmNlLCByZW5kZXJcbiAgICBjb25zdCBJbm5lckZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IF9jID0gcHJvcHMsIHsgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzLCBtb2RlLCBoaWRkZW4sIGNvbFByb3BzLCBmaWVsZFByb3BzLCBwbGFjZWhvbGRlciwgZGlzYWJsZWQsIHdpZHRoLCB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZSwgXG4gICAgICAgIC8vIEZpZWxkLWxldmVsIGZlYXR1cmVzXG4gICAgICAgIGRlcGVuZGVuY2llczogX2RlcHMsIHJlcXVlc3QsIHBhcmFtcywgdmFsdWVFbnVtLCBkZWJvdW5jZVRpbWUsIHZhbGlkYXRlRGVib3VuY2UsIHZhbGlkYXRlVHJpZ2dlciwgdmFsdWVUeXBlLCBkZXBlbmRlbmNpZXNWYWx1ZXMgfSA9IF9jLCByZXN0ID0gX19yZXN0KF9jLCBbXCJuYW1lXCIsIFwibGFiZWxcIiwgXCJkZXNjcmlwdGlvblwiLCBcInJ1bGVzXCIsIFwiZmVlZGJhY2tcIiwgXCJ2YWxpZGF0ZVN0YXR1c1wiLCBcIm1vZGVcIiwgXCJoaWRkZW5cIiwgXCJjb2xQcm9wc1wiLCBcImZpZWxkUHJvcHNcIiwgXCJwbGFjZWhvbGRlclwiLCBcImRpc2FibGVkXCIsIFwid2lkdGhcIiwgXCJ0cmFuc2Zvcm1cIiwgXCJjb252ZXJ0VmFsdWVcIiwgXCJkZXBlbmRlbmNpZXNcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwidmFsdWVFbnVtXCIsIFwiZGVib3VuY2VUaW1lXCIsIFwidmFsaWRhdGVEZWJvdW5jZVwiLCBcInZhbGlkYXRlVHJpZ2dlclwiLCBcInZhbHVlVHlwZVwiLCBcImRlcGVuZGVuY2llc1ZhbHVlc1wiXSk7XG4gICAgICAgIC8vIEZvcm0tbGV2ZWwgZmllbGRQcm9wcyAobG93ZXN0IHByaW9yaXR5IGFmdGVyIG1hcFByb3BzIGRlZmF1bHRzKS5cbiAgICAgICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHRoZSBmaWVsZCBzaGVsbCBtdXN0IE5PVCByZS1yZW5kZXIgcGVyIGtleXN0cm9rZTtcbiAgICAgICAgLy8gdmFsdWUvZXJyb3IgcmVhY3Rpdml0eSBsaXZlcyBpbnNpZGUgUHJvRm9ybUl0ZW0uXG4gICAgICAgIGNvbnN0IHsgZmllbGRQcm9wczogY29udGV4dEZpZWxkUHJvcHMsIGRpc2FibGVkOiBmb3JtRGlzYWJsZWQsIH0gPSB1c2VQcm9Gb3JtU3RhYmxlKCk7XG4gICAgICAgIC8vIOKUgOKUgCBGaWVsZC1sZXZlbCByZXF1ZXN0IOKUgOKUgFxuICAgICAgICBjb25zdCBtZXJnZWRSZXF1ZXN0UGFyYW1zID0gZGVwZW5kZW5jaWVzVmFsdWVzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgZGVwZW5kZW5jaWVzVmFsdWVzKSA6IHBhcmFtcztcbiAgICAgICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCByZXF1ZXN0T3B0aW9uc10gPSB1c2VGaWVsZFJlcXVlc3QocmVxdWVzdCwgbWVyZ2VkUmVxdWVzdFBhcmFtcyk7XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBmaWVsZCBjaGlsZFxuICAgICAgICBjb25zdCBtYXBwZWQgPSBtYXBQcm9wcyA/IG1hcFByb3BzKHJlc3QpIDoge307XG4gICAgICAgIC8vIOKUgOKUgCBEZWJvdW5jZSBvbkNoYW5nZSDilIDilIBcbiAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZSBvbkNoYW5nZSBpcyB3aGF0ZXZlciBlbmRzIHVwIG9uIHRoZSBmaWVsZCAoZmllbGRQcm9wcyB3aW5zXG4gICAgICAgIC8vIG92ZXIgbWFwcGVkLCBtYXRjaGluZyB0aGUgc3ByZWFkIG9yZGVyIGJlbG93KS4gdXNlRGVib3VuY2VkQ2FsbGJhY2sgcmVhZHNcbiAgICAgICAgLy8gdGhlIGxhdGVzdCBjYWxsYmFjayBpbnRlcm5hbGx5LCBzbyB0aGUgd3JhcHBlciBuZXZlciBnb2VzIHN0YWxlIGFuZCB0aGVcbiAgICAgICAgLy8gcGVuZGluZyBjYWxsIGlzIGF1dG8tY2FuY2VsbGVkIG9uIHVubW91bnQuXG4gICAgICAgIGNvbnN0IHVzZXJPbkNoYW5nZSA9ICgoX2IgPSAoX2EgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRleHRGaWVsZFByb3BzID09PSBudWxsIHx8IGNvbnRleHRGaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250ZXh0RmllbGRQcm9wcy5vbkNoYW5nZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbWFwcGVkID09PSBudWxsIHx8IG1hcHBlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWFwcGVkLm9uQ2hhbmdlKTtcbiAgICAgICAgY29uc3QgeyBydW46IGRlYm91bmNlZE9uQ2hhbmdlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoLi4uYXJncykgPT4gdXNlck9uQ2hhbmdlID09PSBudWxsIHx8IHVzZXJPbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXNlck9uQ2hhbmdlKC4uLmFyZ3MpLCBkZWJvdW5jZVRpbWUpO1xuICAgICAgICBjb25zdCB3aWR0aFN0eWxlID0gd2lkdGggIT09IHVuZGVmaW5lZCA/IHsgd2lkdGg6IHJlc29sdmVXaWR0aCh3aWR0aCkgfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmllbGRTdHlsZSA9IGZpZWxkUHJvcHMgPT09IG51bGwgfHwgZmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmllbGRQcm9wcy5zdHlsZTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB3aWR0aFN0eWxlXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZpZWxkU3R5bGUgfHwge30pKSwgd2lkdGhTdHlsZSkgOiBmaWVsZFN0eWxlO1xuICAgICAgICAvLyBNZXJnZSB2YWx1ZUVudW0gKyByZXF1ZXN0IG9wdGlvbnMgaW50byBmaWVsZFByb3BzLm9wdGlvbnMuIEEgY29uZmlndXJlZFxuICAgICAgICAvLyByZXF1ZXN0IGlzIEFVVEhPUklUQVRJVkU6IGFuIGVtcHR5IHJlc3VsdCBtZWFucyBcIm5vIG9wdGlvbnNcIiDigJQgZmFsbGluZ1xuICAgICAgICAvLyBiYWNrIHRvIHZhbHVlRW51bS9maWVsZFByb3BzLm9wdGlvbnMgd291bGQgc2hvdyBvcHRpb25zIHRoZSBzZXJ2ZXIganVzdFxuICAgICAgICAvLyBzYWlkIGRvbid0IGV4aXN0LlxuICAgICAgICBsZXQgbWVyZ2VkT3B0aW9ucyA9IGZpZWxkUHJvcHMgPT09IG51bGwgfHwgZmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmllbGRQcm9wcy5vcHRpb25zO1xuICAgICAgICBpZiAodmFsdWVFbnVtKSB7XG4gICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgICAgICAgIG1lcmdlZE9wdGlvbnMgPSByZXF1ZXN0T3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wb25lbnRQcm9wcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBtYXBwZWQpLCAoZm9ybURpc2FibGVkID8geyBkaXNhYmxlZDogdHJ1ZSB9IDoge30pKSwgKGNvbnRleHRGaWVsZFByb3BzIHx8IHt9KSksIChmaWVsZFByb3BzIHx8IHt9KSksIChtZXJnZWRPcHRpb25zICE9PSB1bmRlZmluZWQgPyB7IG9wdGlvbnM6IG1lcmdlZE9wdGlvbnMgfSA6IHt9KSksIChyZXF1ZXN0TG9hZGluZyA/IHsgbG9hZGluZzogdHJ1ZSB9IDoge30pKSwgKHBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgPyB7IHBsYWNlaG9sZGVyIH0gOiB7fSkpLCAoZGlzYWJsZWQgIT09IHVuZGVmaW5lZCA/IHsgZGlzYWJsZWQgfSA6IHt9KSksIChtZXJnZWRTdHlsZSA/IHsgc3R5bGU6IG1lcmdlZFN0eWxlIH0gOiB7fSkpO1xuICAgICAgICAvLyBXaXJlIGRlYm91bmNlLiBUaGUgd3JhcHBlciBmb3J3YXJkcyB0byB0aGUgbGF0ZXN0IHVzZXIgb25DaGFuZ2UgdmlhXG4gICAgICAgIC8vIGBvbkNoYW5nZUxhdGVzdGAsIHNvIG5vIG5lZWQgdG8gc3Rhc2ggaXQgb24gYSByZWYgaGVyZS5cbiAgICAgICAgaWYgKGRlYm91bmNlVGltZSAmJiBkZWJvdW5jZVRpbWUgPiAwKSB7XG4gICAgICAgICAgICBjb21wb25lbnRQcm9wcy5vbkNoYW5nZSA9IGRlYm91bmNlZE9uQ2hhbmdlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtSXRlbSwgeyBuYW1lOiBuYW1lLCBsYWJlbDogbGFiZWwsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgcnVsZXM6IHJ1bGVzLCBmZWVkYmFjazogZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzOiB2YWxpZGF0ZVN0YXR1cywgaGlkZGVuOiBoaWRkZW4sIG1vZGU6IG1vZGUsIGNvbFByb3BzOiBjb2xQcm9wcywgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlOiB2YWxpZGF0ZURlYm91bmNlLCB2YWxpZGF0ZVRyaWdnZXI6IHZhbGlkYXRlVHJpZ2dlciwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUgIT09IG51bGwgJiYgdmFsdWVUeXBlICE9PSB2b2lkIDAgPyB2YWx1ZVR5cGUgOiBkZWZhdWx0VmFsdWVUeXBlLCBcbiAgICAgICAgICAgIC8vIFRoZSByZW5kZXJlciBnZXRzIHRoZSBSRVNPTFZFRCBjb21wb25lbnQgcHJvcHMgKHZhbHVlRW51bS9yZXF1ZXN0XG4gICAgICAgICAgICAvLyBhbHJlYWR5IG1lcmdlZCBpbnRvIGBvcHRpb25zYCkgc28gaXQgY2FuIG1hcCB2YWx1ZXMgdG8gbGFiZWxzLlxuICAgICAgICAgICAgcmVhZG9ubHlSZW5kZXI6IHJlbmRlclJlYWRvbmx5XG4gICAgICAgICAgICAgICAgPyAodmFsdWUpID0+IHJlbmRlclJlYWRvbmx5KHZhbHVlLCBjb21wb25lbnRQcm9wcylcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWRDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMgfSA9IHByb3BzO1xuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzICYmIGRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybURlcGVuZGVuY3ksIHsgbmFtZTogZGVwZW5kZW5jaWVzLCBjaGlsZHJlbjogKGRlcFZhbHVlcykgPT4gKF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHsgZGVwZW5kZW5jaWVzVmFsdWVzOiBkZXBWYWx1ZXMgfSkpKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpKTtcbiAgICB9O1xuICAgIGNvbnN0IE1lbW9pemVkRmllbGQgPSBtZW1vKFByb0Zvcm1GaWVsZENvbXBvbmVudEJhc2UpO1xuICAgIHJldHVybiBNZW1vaXplZEZpZWxkO1xufVxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUHJvRm9ybUZpZWxkOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
166
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwibWVtbyIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiUHJvRm9ybUl0ZW0iLCJQcm9Gb3JtRGVwZW5kZW5jeSIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VGaWVsZFJlcXVlc3QiLCJyZXNvbHZlV2lkdGgiLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJjb21wb25lbnQiLCJ2YWx1ZVByb3BOYW1lIiwiZGVmYXVsdFZhbHVlVHlwZSIsInZhbHVlVHlwZSIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJNZW1vaXplZENvbXBvbmVudCIsImRpc3BsYXlOYW1lIiwibmFtZSIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxhYmVsIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsInJ1bGVzIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIm1vZGUiLCJoaWRkZW4iLCJjb2xQcm9wcyIsImZpZWxkUHJvcHMiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwid2lkdGgiLCJ0cmFuc2Zvcm0iLCJjb252ZXJ0VmFsdWUiLCJfZGVwcyIsImRlcGVuZGVuY2llcyIsInJlcXVlc3QiLCJwYXJhbXMiLCJ2YWx1ZUVudW0iLCJkZWJvdW5jZVRpbWUiLCJ2YWxpZGF0ZURlYm91bmNlIiwidmFsaWRhdGVUcmlnZ2VyIiwiZGVwZW5kZW5jaWVzVmFsdWVzIiwicmVzdCIsIl91c2VQcm9Gb3JtU3RhYmxlIiwiY29udGV4dEZpZWxkUHJvcHMiLCJmb3JtRGlzYWJsZWQiLCJtZXJnZWRSZXF1ZXN0UGFyYW1zIiwiYXNzaWduIiwiX3VzZUZpZWxkUmVxdWVzdCIsIl91c2VGaWVsZFJlcXVlc3QyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwibWFwcGVkIiwidXNlck9uQ2hhbmdlIiwib25DaGFuZ2UiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJhcHBseSIsImFyZ3VtZW50cyIsImRlYm91bmNlZE9uQ2hhbmdlIiwicnVuIiwid2lkdGhTdHlsZSIsInVuZGVmaW5lZCIsImZpZWxkU3R5bGUiLCJzdHlsZSIsIm1lcmdlZFN0eWxlIiwibWVyZ2VkT3B0aW9ucyIsIm9wdGlvbnMiLCJjb21wb25lbnRQcm9wcyIsImxvYWRpbmciLCJyZWFkb25seVJlbmRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJQcm9Gb3JtRmllbGRDb21wb25lbnRCYXNlIiwiZGVwVmFsdWVzIiwiTWVtb2l6ZWRGaWVsZCJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUks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Rix5QkFBeUIsQ0FBQztFQUNyRCxPQUFPRSxhQUF5RDtBQUNsRTtBQUVBLGVBQWUxRSxrQkFBa0IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9jcmVhdGVQcm9Gb3JtRmllbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IFByb0Zvcm1JdGVtIH0gZnJvbSAnLi4vUHJvRm9ybUl0ZW0nO1xuaW1wb3J0IHsgUHJvRm9ybURlcGVuZGVuY3kgfSBmcm9tICcuLi9Qcm9Gb3JtRGVwZW5kZW5jeSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlIH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VGaWVsZFJlcXVlc3QgfSBmcm9tICcuLi9ob29rcy91c2VGaWVsZFJlcXVlc3QnO1xuaW1wb3J0IHsgcmVzb2x2ZVdpZHRoLCB2YWx1ZUVudW1Ub09wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNyZWF0ZVByb0Zvcm1GaWVsZCDigJQgZmFjdG9yeSB0aGF0IHByb2R1Y2VzIGEgUHJvRm9ybS1hd2FyZSBmaWVsZCBjb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb0Zvcm1GaWVsZChjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudDogQ29tcG9uZW50LCB2YWx1ZVByb3BOYW1lLCB2YWx1ZVR5cGU6IGRlZmF1bHRWYWx1ZVR5cGUsIG1hcFByb3BzLCByZW5kZXJSZWFkb25seSwgfSA9IGNvbmZpZztcbiAgICAvLyBNZW1vIGJvdW5kYXJ5IGFyb3VuZCB0aGUgd3JhcHBlZCBjb250cm9sOiBjb21iaW5lZCB3aXRoIHRoZSBzdGFibGVcbiAgICAvLyBpbmplY3RlZCBoYW5kbGVycyBmcm9tIHVzZUZvcm1JdGVtLCBmaWVsZHMgd2hvc2UgdmFsdWUgZGlkbid0IGNoYW5nZSBjYW5cbiAgICAvLyBiYWlsIG91dCB3aGlsZSBhbm90aGVyIGZpZWxkIGluIHRoZSBmb3JtIGlzIHR5cGluZy4gZGlzcGxheU5hbWUgbXVzdCBiZVxuICAgIC8vIGNhcnJpZWQgb3ZlciDigJQgaW5qZWN0RmllbGQgdXNlcyBpdCB0byByZWNvZ25pemUgZm9ybSBjb250cm9scy5cbiAgICBjb25zdCBNZW1vaXplZENvbXBvbmVudCA9IG1lbW8oQ29tcG9uZW50KTtcbiAgICBNZW1vaXplZENvbXBvbmVudC5kaXNwbGF5TmFtZSA9XG4gICAgICAgIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZTtcbiAgICAvLyBJbm5lciBjb21wb25lbnQg4oCUIGhhbmRsZXMgbW9kZSwgcmVxdWVzdCwgdmFsdWVFbnVtLCBkZWJvdW5jZSwgcmVuZGVyXG4gICAgY29uc3QgSW5uZXJGaWVsZCA9IChwcm9wcykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBfYyA9IHByb3BzLCB7IG5hbWUsIGxhYmVsLCByZXF1aXJlZCwgZGVzY3JpcHRpb24sIHJ1bGVzLCBmZWVkYmFjaywgdmFsaWRhdGVTdGF0dXMsIG1vZGUsIGhpZGRlbiwgY29sUHJvcHMsIGZpZWxkUHJvcHMsIHBsYWNlaG9sZGVyLCBkaXNhYmxlZCwgd2lkdGgsIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCBcbiAgICAgICAgLy8gRmllbGQtbGV2ZWwgZmVhdHVyZXNcbiAgICAgICAgZGVwZW5kZW5jaWVzOiBfZGVwcywgcmVxdWVzdCwgcGFyYW1zLCB2YWx1ZUVudW0sIGRlYm91bmNlVGltZSwgdmFsaWRhdGVEZWJvdW5jZSwgdmFsaWRhdGVUcmlnZ2VyLCB2YWx1ZVR5cGUsIGRlcGVuZGVuY2llc1ZhbHVlcyB9ID0gX2MsIHJlc3QgPSBfX3Jlc3QoX2MsIFtcIm5hbWVcIiwgXCJsYWJlbFwiLCBcInJlcXVpcmVkXCIsIFwiZGVzY3JpcHRpb25cIiwgXCJydWxlc1wiLCBcImZlZWRiYWNrXCIsIFwidmFsaWRhdGVTdGF0dXNcIiwgXCJtb2RlXCIsIFwiaGlkZGVuXCIsIFwiY29sUHJvcHNcIiwgXCJmaWVsZFByb3BzXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJkaXNhYmxlZFwiLCBcIndpZHRoXCIsIFwidHJhbnNmb3JtXCIsIFwiY29udmVydFZhbHVlXCIsIFwiZGVwZW5kZW5jaWVzXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcInZhbHVlRW51bVwiLCBcImRlYm91bmNlVGltZVwiLCBcInZhbGlkYXRlRGVib3VuY2VcIiwgXCJ2YWxpZGF0ZVRyaWdnZXJcIiwgXCJ2YWx1ZVR5cGVcIiwgXCJkZXBlbmRlbmNpZXNWYWx1ZXNcIl0pO1xuICAgICAgICAvLyBGb3JtLWxldmVsIGZpZWxkUHJvcHMgKGxvd2VzdCBwcmlvcml0eSBhZnRlciBtYXBQcm9wcyBkZWZhdWx0cykuXG4gICAgICAgIC8vIFN0YWJsZSBzbGljZSBvbmx5IOKAlCB0aGUgZmllbGQgc2hlbGwgbXVzdCBOT1QgcmUtcmVuZGVyIHBlciBrZXlzdHJva2U7XG4gICAgICAgIC8vIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW5zaWRlIFByb0Zvcm1JdGVtLlxuICAgICAgICBjb25zdCB7IGZpZWxkUHJvcHM6IGNvbnRleHRGaWVsZFByb3BzLCBkaXNhYmxlZDogZm9ybURpc2FibGVkLCB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgICAgICAvLyDilIDilIAgRmllbGQtbGV2ZWwgcmVxdWVzdCDilIDilIBcbiAgICAgICAgY29uc3QgbWVyZ2VkUmVxdWVzdFBhcmFtcyA9IGRlcGVuZGVuY2llc1ZhbHVlc1xuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhcmFtcyksIGRlcGVuZGVuY2llc1ZhbHVlcykgOiBwYXJhbXM7XG4gICAgICAgIGNvbnN0IFtyZXF1ZXN0TG9hZGluZywgcmVxdWVzdE9wdGlvbnNdID0gdXNlRmllbGRSZXF1ZXN0KHJlcXVlc3QsIG1lcmdlZFJlcXVlc3RQYXJhbXMpO1xuICAgICAgICAvLyBCdWlsZCB0aGUgZmllbGQgY2hpbGRcbiAgICAgICAgY29uc3QgbWFwcGVkID0gbWFwUHJvcHMgPyBtYXBQcm9wcyhyZXN0KSA6IHt9O1xuICAgICAgICAvLyDilIDilIAgRGVib3VuY2Ugb25DaGFuZ2Ug4pSA4pSAXG4gICAgICAgIC8vIFRoZSBlZmZlY3RpdmUgb25DaGFuZ2UgaXMgd2hhdGV2ZXIgZW5kcyB1cCBvbiB0aGUgZmllbGQgKGZpZWxkUHJvcHMgd2luc1xuICAgICAgICAvLyBvdmVyIG1hcHBlZCwgbWF0Y2hpbmcgdGhlIHNwcmVhZCBvcmRlciBiZWxvdykuIHVzZURlYm91bmNlZENhbGxiYWNrIHJlYWRzXG4gICAgICAgIC8vIHRoZSBsYXRlc3QgY2FsbGJhY2sgaW50ZXJuYWxseSwgc28gdGhlIHdyYXBwZXIgbmV2ZXIgZ29lcyBzdGFsZSBhbmQgdGhlXG4gICAgICAgIC8vIHBlbmRpbmcgY2FsbCBpcyBhdXRvLWNhbmNlbGxlZCBvbiB1bm1vdW50LlxuICAgICAgICBjb25zdCB1c2VyT25DaGFuZ2UgPSAoKF9iID0gKF9hID0gZmllbGRQcm9wcyA9PT0gbnVsbCB8fCBmaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZFByb3BzLm9uQ2hhbmdlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBjb250ZXh0RmllbGRQcm9wcyA9PT0gbnVsbCB8fCBjb250ZXh0RmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29udGV4dEZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG1hcHBlZCA9PT0gbnVsbCB8fCBtYXBwZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1hcHBlZC5vbkNoYW5nZSk7XG4gICAgICAgIGNvbnN0IHsgcnVuOiBkZWJvdW5jZWRPbkNoYW5nZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHVzZXJPbkNoYW5nZSA9PT0gbnVsbCB8fCB1c2VyT25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXJPbkNoYW5nZSguLi5hcmdzKSwgZGVib3VuY2VUaW1lKTtcbiAgICAgICAgY29uc3Qgd2lkdGhTdHlsZSA9IHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHdpZHRoOiByZXNvbHZlV2lkdGgod2lkdGgpIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZpZWxkU3R5bGUgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMuc3R5bGU7XG4gICAgICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gd2lkdGhTdHlsZVxuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChmaWVsZFN0eWxlIHx8IHt9KSksIHdpZHRoU3R5bGUpIDogZmllbGRTdHlsZTtcbiAgICAgICAgLy8gTWVyZ2UgdmFsdWVFbnVtICsgcmVxdWVzdCBvcHRpb25zIGludG8gZmllbGRQcm9wcy5vcHRpb25zLiBBIGNvbmZpZ3VyZWRcbiAgICAgICAgLy8gcmVxdWVzdCBpcyBBVVRIT1JJVEFUSVZFOiBhbiBlbXB0eSByZXN1bHQgbWVhbnMgXCJubyBvcHRpb25zXCIg4oCUIGZhbGxpbmdcbiAgICAgICAgLy8gYmFjayB0byB2YWx1ZUVudW0vZmllbGRQcm9wcy5vcHRpb25zIHdvdWxkIHNob3cgb3B0aW9ucyB0aGUgc2VydmVyIGp1c3RcbiAgICAgICAgLy8gc2FpZCBkb24ndCBleGlzdC5cbiAgICAgICAgbGV0IG1lcmdlZE9wdGlvbnMgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub3B0aW9ucztcbiAgICAgICAgaWYgKHZhbHVlRW51bSkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50UHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbWFwcGVkKSwgKGZvcm1EaXNhYmxlZCA/IHsgZGlzYWJsZWQ6IHRydWUgfSA6IHt9KSksIChjb250ZXh0RmllbGRQcm9wcyB8fCB7fSkpLCAoZmllbGRQcm9wcyB8fCB7fSkpLCAobWVyZ2VkT3B0aW9ucyAhPT0gdW5kZWZpbmVkID8geyBvcHRpb25zOiBtZXJnZWRPcHRpb25zIH0gOiB7fSkpLCAocmVxdWVzdExvYWRpbmcgPyB7IGxvYWRpbmc6IHRydWUgfSA6IHt9KSksIChwbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkID8geyBwbGFjZWhvbGRlciB9IDoge30pKSwgKGRpc2FibGVkICE9PSB1bmRlZmluZWQgPyB7IGRpc2FibGVkIH0gOiB7fSkpLCAobWVyZ2VkU3R5bGUgPyB7IHN0eWxlOiBtZXJnZWRTdHlsZSB9IDoge30pKTtcbiAgICAgICAgLy8gV2lyZSBkZWJvdW5jZS4gVGhlIHdyYXBwZXIgZm9yd2FyZHMgdG8gdGhlIGxhdGVzdCB1c2VyIG9uQ2hhbmdlIHZpYVxuICAgICAgICAvLyBgb25DaGFuZ2VMYXRlc3RgLCBzbyBubyBuZWVkIHRvIHN0YXNoIGl0IG9uIGEgcmVmIGhlcmUuXG4gICAgICAgIGlmIChkZWJvdW5jZVRpbWUgJiYgZGVib3VuY2VUaW1lID4gMCkge1xuICAgICAgICAgICAgY29tcG9uZW50UHJvcHMub25DaGFuZ2UgPSBkZWJvdW5jZWRPbkNoYW5nZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCByZXF1aXJlZDogcmVxdWlyZWQsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgcnVsZXM6IHJ1bGVzLCBmZWVkYmFjazogZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzOiB2YWxpZGF0ZVN0YXR1cywgaGlkZGVuOiBoaWRkZW4sIG1vZGU6IG1vZGUsIGNvbFByb3BzOiBjb2xQcm9wcywgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlOiB2YWxpZGF0ZURlYm91bmNlLCB2YWxpZGF0ZVRyaWdnZXI6IHZhbGlkYXRlVHJpZ2dlciwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUgIT09IG51bGwgJiYgdmFsdWVUeXBlICE9PSB2b2lkIDAgPyB2YWx1ZVR5cGUgOiBkZWZhdWx0VmFsdWVUeXBlLCBcbiAgICAgICAgICAgIC8vIFRoZSByZW5kZXJlciBnZXRzIHRoZSBSRVNPTFZFRCBjb21wb25lbnQgcHJvcHMgKHZhbHVlRW51bS9yZXF1ZXN0XG4gICAgICAgICAgICAvLyBhbHJlYWR5IG1lcmdlZCBpbnRvIGBvcHRpb25zYCkgc28gaXQgY2FuIG1hcCB2YWx1ZXMgdG8gbGFiZWxzLlxuICAgICAgICAgICAgcmVhZG9ubHlSZW5kZXI6IHJlbmRlclJlYWRvbmx5XG4gICAgICAgICAgICAgICAgPyAodmFsdWUpID0+IHJlbmRlclJlYWRvbmx5KHZhbHVlLCBjb21wb25lbnRQcm9wcylcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWRDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMgfSA9IHByb3BzO1xuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzICYmIGRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybURlcGVuZGVuY3ksIHsgbmFtZTogZGVwZW5kZW5jaWVzLCBjaGlsZHJlbjogKGRlcFZhbHVlcykgPT4gKF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHsgZGVwZW5kZW5jaWVzVmFsdWVzOiBkZXBWYWx1ZXMgfSkpKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9qc3goSW5uZXJGaWVsZCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMpKTtcbiAgICB9O1xuICAgIGNvbnN0IE1lbW9pemVkRmllbGQgPSBtZW1vKFByb0Zvcm1GaWVsZENvbXBvbmVudEJhc2UpO1xuICAgIHJldHVybiBNZW1vaXplZEZpZWxkO1xufVxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUHJvRm9ybUZpZWxkOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -119,6 +119,20 @@ export interface ProFormContextValue<Values = Record<string, any>> extends ProFo
119
119
  export interface ProFormTypedFieldProps<Values = Record<string, any>, Name extends ProFormFieldName<Values> = ProFormFieldName<Values>, FieldProps = Record<string, any>, FieldParams = Record<string, any>> {
120
120
  name?: Name;
121
121
  label?: ReactNode;
122
+ /**
123
+ * Defaults to `true`. No marker is drawn for a required field — instead,
124
+ * `required={false}` appends the italic `(Optional)` suffix to the label,
125
+ * matching the Input/Select/Calendar field shells.
126
+ *
127
+ * This is label copy only; it does NOT add or remove validation. Keep it in
128
+ * step with `rules` yourself — a field with `rules: [{ required: true }]`
129
+ * should not also say `(Optional)`.
130
+ *
131
+ * Note this is a field-level prop, not `fieldProps.required`: the label is
132
+ * rendered by `ProFormItem`, so a `required` buried in `fieldProps` reaches
133
+ * a control that has no label and shows nothing.
134
+ */
135
+ required?: boolean;
122
136
  rules?: FormRule<Values>[];
123
137
  description?: ReactNode;
124
138
  feedback?: ReactNode;
@@ -168,6 +182,12 @@ export interface ProFormItemProps<Values = Record<string, any>, Name extends Pro
168
182
  prefixCls?: string;
169
183
  label?: ReactNode;
170
184
  name?: Name;
185
+ /**
186
+ * Defaults to `true`. `required={false}` appends the italic `(Optional)`
187
+ * suffix to the label — there is no required marker. Label copy only; it
188
+ * does not affect validation.
189
+ */
190
+ required?: boolean;
171
191
  rules?: FormRule<Values>[];
172
192
  description?: ReactNode;
173
193
  feedback?: ReactNode;
@@ -37,6 +37,10 @@
37
37
  padding: 0;
38
38
  }
39
39
 
40
+ .om-component-ui-form-item-optional {
41
+ margin-inline-start: var(--om-spacing-100, 4px);
42
+ }
43
+
40
44
  .om-component-ui-form-item-label-wrapper-left {
41
45
  text-align: left;
42
46
  }
@@ -2,7 +2,7 @@ import type { AnchorHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
2
  import type { TooltipProps } from "../Tooltip";
3
3
  export declare const TYPOGRAPHY_DISPLAY_SIZES: readonly ["xl", "lg", "md", "sm", "xs"];
4
4
  export declare const TYPOGRAPHY_HEADLINE_SIZES: readonly ["lg", "md", "sm", "xs"];
5
- export declare const TYPOGRAPHY_TITLE_SIZES: readonly ["lg", "md", "sm"];
5
+ export declare const TYPOGRAPHY_TITLE_SIZES: readonly ["lg", "md", "sm", "xs"];
6
6
  export declare const TYPOGRAPHY_BODY_SIZES: readonly ["lg", "md", "sm"];
7
7
  export declare const TYPOGRAPHY_LABEL_SIZES: readonly ["xl", "lg", "md", "sm", "xs"];
8
8
  export declare const TYPOGRAPHY_LINK_SIZES: readonly ["md", "sm"];
@@ -1,6 +1,8 @@
1
1
  export var TYPOGRAPHY_DISPLAY_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];
2
2
  export var TYPOGRAPHY_HEADLINE_SIZES = ['lg', 'md', 'sm', 'xs'];
3
- export var TYPOGRAPHY_TITLE_SIZES = ['lg', 'md', 'sm'];
3
+ // `xs` is an extension — Figma's Title scale stops at Small. It stays for
4
+ // product code that already uses it; prefer Label `sm` for new 12/16 text.
5
+ export var TYPOGRAPHY_TITLE_SIZES = ['lg', 'md', 'sm', 'xs'];
4
6
  export var TYPOGRAPHY_BODY_SIZES = ['lg', 'md', 'sm'];
5
7
  export var TYPOGRAPHY_LABEL_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];
6
8
  export var TYPOGRAPHY_LINK_SIZES = ['md', 'sm'];
@@ -19,4 +21,4 @@ export var TYPOGRAPHY_COLORS = [
19
21
  'warning', 'warning-secondary', 'warning-tertiary', 'on-warning', 'on-warning-secondary', 'on-warning-tertiary',
20
22
  // Danger
21
23
  'danger', 'danger-secondary', 'danger-tertiary', 'on-danger', 'on-danger-secondary', 'on-danger-tertiary'];
22
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9pbnRlcmZhY2UudHMiXSwibmFtZXMiOlsiVFlQT0dSQVBIWV9ESVNQTEFZX1NJWkVTIiwiVFlQT0dSQVBIWV9IRUFETElORV9TSVpFUyIsIlRZUE9HUkFQSFlfVElUTEVfU0laRVMiLCJUWVBPR1JBUEhZX0JPRFlfU0laRVMiLCJUWVBPR1JBUEhZX0xBQkVMX1NJWkVTIiwiVFlQT0dSQVBIWV9MSU5LX1NJWkVTIiwiVFlQT0dSQVBIWV9DT0xPUlMiXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sSUFBTUEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBQy9FLE9BQU8sSUFBTUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQVU7QUFDMUUsT0FBTyxJQUFNQyxzQkFBc0IsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBQ2pFLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBVTtBQUNoRSxPQUFPLElBQU1DLHNCQUFzQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBVTtBQUM3RSxPQUFPLElBQU1DLHFCQUFxQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBVTtBQWdCMUQsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRztBQUMvQjtBQUNBLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsa0JBQWtCO0FBQ2xCO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixtQkFBbUI7QUFDbkI7QUFDQSxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIsc0JBQXNCO0FBQ3RCO0FBQ0EsU0FBUyxFQUNULG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixxQkFBcUI7QUFDckI7QUFDQSxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLG9CQUFvQixDQUNaIiwiZmlsZSI6ImNvbXBvbmVudHMvVHlwb2dyYXBoeS9pbnRlcmZhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
24
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9pbnRlcmZhY2UudHMiXSwibmFtZXMiOlsiVFlQT0dSQVBIWV9ESVNQTEFZX1NJWkVTIiwiVFlQT0dSQVBIWV9IRUFETElORV9TSVpFUyIsIlRZUE9HUkFQSFlfVElUTEVfU0laRVMiLCJUWVBPR1JBUEhZX0JPRFlfU0laRVMiLCJUWVBPR1JBUEhZX0xBQkVMX1NJWkVTIiwiVFlQT0dSQVBIWV9MSU5LX1NJWkVTIiwiVFlQT0dSQVBIWV9DT0xPUlMiXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sSUFBTUEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBQy9FLE9BQU8sSUFBTUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQVU7QUFDMUU7QUFDQTtBQUNBLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQVU7QUFDdkUsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBQ2hFLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBQzdFLE9BQU8sSUFBTUMscUJBQXFCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFVO0FBZ0IxRCxPQUFPLElBQU1DLGlCQUFpQixHQUFHO0FBQy9CO0FBQ0EsU0FBUyxFQUNULG1CQUFtQixFQUNuQixrQkFBa0I7QUFDbEI7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLG1CQUFtQjtBQUNuQjtBQUNBLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixzQkFBc0IsRUFDdEIscUJBQXFCO0FBQ3JCO0FBQ0EsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLHVCQUF1QixFQUN2QixzQkFBc0I7QUFDdEI7QUFDQSxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLHFCQUFxQjtBQUNyQjtBQUNBLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsb0JBQW9CLENBQ1oiLCJmaWxlIjoiY29tcG9uZW50cy9UeXBvZ3JhcGh5L2ludGVyZmFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -109,6 +109,13 @@
109
109
  letter-spacing: var(--om-title-sm-letter-spacing);
110
110
  font-weight: var(--om-title-sm-font-weight);
111
111
  }
112
+ .om-component-ui-typography-title-xs {
113
+ font-size: var(--om-title-xs-font-size);
114
+ font-family: var(--om-title-xs-font-family);
115
+ line-height: var(--om-title-xs-line-height);
116
+ letter-spacing: var(--om-title-xs-letter-spacing);
117
+ font-weight: var(--om-title-xs-font-weight);
118
+ }
112
119
  .om-component-ui-typography-body-lg {
113
120
  font-size: var(--om-body-lg-font-size);
114
121
  font-family: var(--om-body-lg-font-family);
@@ -198,6 +205,9 @@
198
205
  .om-component-ui-typography-title-sm.om-component-ui-typography-strong {
199
206
  font-weight: var(--om-title-sm-strong-font-weight);
200
207
  }
208
+ .om-component-ui-typography-title-xs.om-component-ui-typography-strong {
209
+ font-weight: var(--om-title-xs-strong-font-weight);
210
+ }
201
211
  .om-component-ui-typography-body-lg.om-component-ui-typography-strong {
202
212
  font-weight: var(--om-body-lg-strong-font-weight);
203
213
  }