@1money/component-ui 0.0.27 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/Alert/Alert.js +6 -10
- package/es/components/Calendar/Calendar.js +5 -6
- package/es/components/Checkbox/Checkbox.js +2 -1
- package/es/components/Checkbox/CheckboxGroup.js +2 -1
- package/es/components/Checkbox/index.js +2 -1
- package/es/components/CoachMark/CoachMark.js +3 -4
- package/es/components/Icons/Icon.d.ts +5 -0
- package/es/components/Icons/Icon.js +19 -0
- package/es/components/Icons/Icons.d.ts +8 -173
- package/es/components/Icons/Icons.js +4 -188
- package/es/components/Icons/icon-set/brand.d.ts +6 -0
- package/es/components/Icons/icon-set/brand.js +62 -0
- package/es/components/Icons/icon-set/currency.d.ts +7 -0
- package/es/components/Icons/icon-set/currency.js +101 -0
- package/es/components/Icons/icon-set/dynamic.d.ts +16 -0
- package/es/components/Icons/icon-set/dynamic.js +92 -0
- package/es/components/Icons/icon-set/functional.d.ts +19 -0
- package/es/components/Icons/icon-set/functional.js +286 -0
- package/es/components/Icons/icon-set/index.d.ts +10 -0
- package/es/components/Icons/icon-set/index.js +10 -0
- package/es/components/Icons/icon-set/menu.d.ts +22 -0
- package/es/components/Icons/icon-set/menu.js +372 -0
- package/es/components/Icons/icon-set/notification.d.ts +6 -0
- package/es/components/Icons/icon-set/notification.js +109 -0
- package/es/components/Icons/icon-set/primary.d.ts +14 -0
- package/es/components/Icons/icon-set/primary.js +222 -0
- package/es/components/Icons/icon-set/registry.d.ts +159 -0
- package/es/components/Icons/icon-set/registry.js +166 -0
- package/es/components/Icons/icon-set/system.d.ts +64 -0
- package/es/components/Icons/icon-set/system.js +1093 -0
- package/es/components/Icons/{Illustrations.d.ts → illustrations/Illustrations.d.ts} +1 -1
- package/es/components/Icons/illustrations/Illustrations.js +874 -0
- package/es/components/Icons/illustrations/index.d.ts +2 -0
- package/es/components/Icons/illustrations/index.js +2 -0
- package/es/components/Icons/index.d.ts +5 -2
- package/es/components/Icons/index.js +6 -2
- package/es/components/Icons/interface.d.ts +9 -24
- package/es/components/Icons/{Logo.d.ts → logos/Logo.d.ts} +1 -1
- package/es/components/Icons/logos/Logo.js +209 -0
- package/es/components/Icons/logos/index.d.ts +2 -0
- package/es/components/Icons/logos/index.js +2 -0
- package/es/components/Icons/primitives/IconHover.d.ts +4 -0
- package/es/components/Icons/primitives/IconHover.js +28 -0
- package/es/components/Icons/{Wrapper.d.ts → primitives/IconWrapper.d.ts} +1 -2
- package/es/components/Icons/primitives/IconWrapper.js +81 -0
- package/es/components/Icons/primitives/index.d.ts +5 -0
- package/es/components/Icons/primitives/index.js +5 -0
- package/es/components/Icons/primitives/interface.d.ts +25 -0
- package/es/components/Icons/primitives/interface.js +2 -0
- package/es/components/Icons/types.d.ts +3 -0
- package/es/components/Icons/types.js +2 -0
- package/es/components/Input/Amount/Amount.d.ts +2 -2
- package/es/components/Input/Amount/Amount.js +5 -2
- package/es/components/Input/Input/Input.js +2 -1
- package/es/components/Input/Mask/Mask.d.ts +2 -2
- package/es/components/Input/Mask/Mask.js +5 -2
- package/es/components/Input/OTP/OTP.d.ts +2 -2
- package/es/components/Input/OTP/OTP.js +5 -2
- package/es/components/Input/Password/Password.d.ts +2 -2
- package/es/components/Input/Password/Password.js +8 -7
- package/es/components/Input/Search/Search.d.ts +2 -2
- package/es/components/Input/Search/Search.js +8 -7
- package/es/components/Input/TextArea/TextArea.d.ts +2 -2
- package/es/components/Input/TextArea/TextArea.js +5 -2
- package/es/components/Input/Trade/Trade.d.ts +2 -2
- package/es/components/Input/Trade/Trade.js +5 -2
- package/es/components/Navigation/NavigationLogo.js +4 -6
- package/es/components/ProForm/ProForm.d.ts +2 -1
- package/es/components/ProForm/ProForm.js +120 -49
- package/es/components/ProForm/ProFormDependency.d.ts +2 -1
- package/es/components/ProForm/ProFormDependency.js +101 -8
- package/es/components/ProForm/Submitter.js +42 -3
- package/es/components/ProForm/core/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +3 -3
- package/es/components/ProForm/core/hooks/useForm.d.ts +2 -2
- package/es/components/ProForm/core/hooks/useForm.js +249 -113
- package/es/components/ProForm/core/hooks/useFormCore.js +3 -3
- package/es/components/ProForm/core/interface.d.ts +26 -0
- package/es/components/ProForm/core/useFormItem.d.ts +1 -0
- package/es/components/ProForm/core/useFormItem.js +56 -4
- package/es/components/ProForm/index.d.ts +3 -2
- package/es/components/ProForm/index.js +8 -2
- package/es/components/ProForm/interface.d.ts +11 -5
- package/es/components/Radio/RadioGroup.js +2 -1
- package/es/components/Select/SelectFieldShell.js +3 -4
- package/es/components/Select/SelectOptionContent.js +3 -4
- package/es/components/Select/SelectSearchControl.js +3 -4
- package/es/components/Select/SelectValueContent.js +3 -4
- package/es/components/Slider/Slider.js +2 -1
- package/es/components/Switch/Switch.js +2 -1
- package/es/components/Upload/Upload.js +4 -6
- package/es/components/Upload/UploadFileBar.js +3 -4
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/Alert/Alert.js +5 -9
- package/lib/components/Calendar/Calendar.js +5 -6
- package/lib/components/Checkbox/Checkbox.js +2 -1
- package/lib/components/Checkbox/CheckboxGroup.js +2 -1
- package/lib/components/Checkbox/index.js +2 -1
- package/lib/components/CoachMark/CoachMark.js +2 -3
- package/lib/components/Icons/Icon.d.ts +5 -0
- package/lib/components/Icons/Icon.js +25 -0
- package/lib/components/Icons/Icons.d.ts +8 -173
- package/lib/components/Icons/Icons.js +5 -183
- package/lib/components/Icons/icon-set/brand.d.ts +6 -0
- package/lib/components/Icons/icon-set/brand.js +69 -0
- package/lib/components/Icons/icon-set/currency.d.ts +7 -0
- package/lib/components/Icons/icon-set/currency.js +108 -0
- package/lib/components/Icons/icon-set/dynamic.d.ts +16 -0
- package/lib/components/Icons/icon-set/dynamic.js +99 -0
- package/lib/components/Icons/icon-set/functional.d.ts +19 -0
- package/lib/components/Icons/icon-set/functional.js +293 -0
- package/lib/components/Icons/icon-set/index.d.ts +10 -0
- package/lib/components/Icons/icon-set/index.js +783 -0
- package/lib/components/Icons/icon-set/menu.d.ts +22 -0
- package/lib/components/Icons/icon-set/menu.js +379 -0
- package/lib/components/Icons/icon-set/notification.d.ts +6 -0
- package/lib/components/Icons/icon-set/notification.js +116 -0
- package/lib/components/Icons/icon-set/primary.d.ts +14 -0
- package/lib/components/Icons/icon-set/primary.js +229 -0
- package/lib/components/Icons/icon-set/registry.d.ts +159 -0
- package/lib/components/Icons/icon-set/registry.js +172 -0
- package/lib/components/Icons/icon-set/system.d.ts +64 -0
- package/lib/components/Icons/icon-set/system.js +1100 -0
- package/lib/components/Icons/{Illustrations.d.ts → illustrations/Illustrations.d.ts} +1 -1
- package/lib/components/Icons/illustrations/Illustrations.js +881 -0
- package/lib/components/Icons/illustrations/index.d.ts +2 -0
- package/lib/components/Icons/illustrations/index.js +79 -0
- package/lib/components/Icons/index.d.ts +5 -2
- package/lib/components/Icons/index.js +160 -5
- package/lib/components/Icons/interface.d.ts +9 -24
- package/lib/components/Icons/{Logo.d.ts → logos/Logo.d.ts} +1 -1
- package/lib/components/Icons/logos/Logo.js +219 -0
- package/lib/components/Icons/logos/index.d.ts +2 -0
- package/lib/components/Icons/logos/index.js +49 -0
- package/lib/components/Icons/primitives/IconHover.d.ts +4 -0
- package/lib/components/Icons/primitives/IconHover.js +37 -0
- package/lib/components/Icons/{Wrapper.d.ts → primitives/IconWrapper.d.ts} +1 -2
- package/lib/components/Icons/primitives/IconWrapper.js +88 -0
- package/lib/components/Icons/primitives/index.d.ts +5 -0
- package/lib/components/Icons/primitives/index.js +25 -0
- package/lib/components/Icons/primitives/interface.d.ts +25 -0
- package/lib/components/Icons/primitives/interface.js +6 -0
- package/lib/components/Icons/types.d.ts +3 -0
- package/lib/components/Icons/types.js +8 -0
- package/lib/components/Input/Amount/Amount.d.ts +2 -2
- package/lib/components/Input/Amount/Amount.js +5 -2
- package/lib/components/Input/Input/Input.js +2 -1
- package/lib/components/Input/Mask/Mask.d.ts +2 -2
- package/lib/components/Input/Mask/Mask.js +5 -2
- package/lib/components/Input/OTP/OTP.d.ts +2 -2
- package/lib/components/Input/OTP/OTP.js +5 -2
- package/lib/components/Input/Password/Password.d.ts +2 -2
- package/lib/components/Input/Password/Password.js +7 -6
- package/lib/components/Input/Search/Search.d.ts +2 -2
- package/lib/components/Input/Search/Search.js +7 -6
- package/lib/components/Input/TextArea/TextArea.d.ts +2 -2
- package/lib/components/Input/TextArea/TextArea.js +5 -2
- package/lib/components/Input/Trade/Trade.d.ts +2 -2
- package/lib/components/Input/Trade/Trade.js +5 -2
- package/lib/components/Navigation/NavigationLogo.js +3 -5
- package/lib/components/ProForm/ProForm.d.ts +2 -1
- package/lib/components/ProForm/ProForm.js +121 -50
- package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
- package/lib/components/ProForm/ProFormDependency.js +108 -11
- package/lib/components/ProForm/Submitter.js +44 -5
- package/lib/components/ProForm/core/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +3 -3
- package/lib/components/ProForm/core/hooks/useForm.d.ts +2 -2
- package/lib/components/ProForm/core/hooks/useForm.js +247 -112
- package/lib/components/ProForm/core/hooks/useFormCore.js +3 -3
- package/lib/components/ProForm/core/interface.d.ts +26 -0
- package/lib/components/ProForm/core/useFormItem.d.ts +1 -0
- package/lib/components/ProForm/core/useFormItem.js +58 -6
- package/lib/components/ProForm/index.d.ts +3 -2
- package/lib/components/ProForm/index.js +8 -2
- package/lib/components/ProForm/interface.d.ts +11 -5
- package/lib/components/Radio/RadioGroup.js +2 -1
- package/lib/components/Select/SelectFieldShell.js +2 -3
- package/lib/components/Select/SelectOptionContent.js +2 -3
- package/lib/components/Select/SelectSearchControl.js +2 -3
- package/lib/components/Select/SelectValueContent.js +2 -3
- package/lib/components/Slider/Slider.js +2 -1
- package/lib/components/Switch/Switch.js +2 -1
- package/lib/components/Upload/Upload.js +3 -5
- package/lib/components/Upload/UploadFileBar.js +2 -3
- package/lib/index.d.ts +2 -2
- package/lib/index.js +223 -1
- package/package.json +6 -2
- package/scripts/mcp-server/examples.generated.json +24 -24
- package/scripts/mcp-server/index.generated.json +3022 -204
- package/es/components/Icons/Illustrations.js +0 -874
- package/es/components/Icons/Logo.js +0 -209
- package/es/components/Icons/SVGs.d.ts +0 -265
- package/es/components/Icons/SVGs.js +0 -1918
- package/es/components/Icons/Wrapper.js +0 -100
- package/lib/components/Icons/Illustrations.js +0 -881
- package/lib/components/Icons/Logo.js +0 -219
- package/lib/components/Icons/SVGs.d.ts +0 -265
- package/lib/components/Icons/SVGs.js +0 -1926
- package/lib/components/Icons/Wrapper.js +0 -109
|
@@ -162,7 +162,7 @@ export var useFormCore = function useFormCore() {
|
|
|
162
162
|
if (rule.validator && typeof rule.validator === 'function') {
|
|
163
163
|
try {
|
|
164
164
|
var result = rule.validator(value, values);
|
|
165
|
-
if (result !== true
|
|
165
|
+
if (result !== true) {
|
|
166
166
|
setFieldError(name, typeof result === 'string' ? result : 'Validation failed');
|
|
167
167
|
return false;
|
|
168
168
|
}
|
|
@@ -228,7 +228,7 @@ export var useFormCore = function useFormCore() {
|
|
|
228
228
|
if (rule.validator && typeof rule.validator === 'function') {
|
|
229
229
|
try {
|
|
230
230
|
var result = rule.validator(value, values);
|
|
231
|
-
if (result !== true
|
|
231
|
+
if (result !== true) {
|
|
232
232
|
newErrors[fieldName] = typeof result === 'string' ? result : 'Validation failed';
|
|
233
233
|
hasErrors = true;
|
|
234
234
|
break;
|
|
@@ -344,4 +344,4 @@ export var useFormCore = function useFormCore() {
|
|
|
344
344
|
};
|
|
345
345
|
};
|
|
346
346
|
export default useFormCore;
|
|
347
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlTWVtbyIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VNZW1vaXplZEZuIiwiZ2V0TmVzdGVkVmFsdWUiLCJvYmoiLCJwYXRoIiwia2V5cyIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJlcnIiLCJlIiwiZiIsInNldE5lc3RlZFZhbHVlIiwibGVuZ3RoIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5IiwicmVzdWx0IiwiaSIsIm5leHRLZXkiLCJpc05leHRBcnJheSIsInRlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyZXNvbHZlVmFsdWUiLCJ2YWx1ZXMiLCJuYW1lIiwiaW5jbHVkZXMiLCJ1c2VGb3JtQ29yZSIsImNvbmZpZyIsImFyZ3VtZW50cyIsIl9jb25maWckaW5pdGlhbFZhbHVlcyIsImluaXRpYWxWYWx1ZXMiLCJvbkZpbmlzaCIsIm9uRmluaXNoRmFpbGVkIiwib25WYWx1ZXNDaGFuZ2UiLCJvblJlc2V0IiwiX2NvbmZpZyRzaXplIiwic2l6ZSIsIl9jb25maWckbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfY29uZmlnJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfY29uZmlnJGNvbG9uIiwiY29sb24iLCJfY29uZmlnJHJlcXVpcmVkTWFyayIsInJlcXVpcmVkTWFyayIsIl9jb25maWckdmFsaWRhdGVUcmlnZyIsInZhbGlkYXRlVHJpZ2dlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldFZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXJyb3JzIiwic2V0RXJyb3JzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0b3VjaGVkIiwic2V0VG91Y2hlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmllbGRSdWxlcyIsInNldEZpZWxkUnVsZXMiLCJzZXRGaWVsZFZhbHVlIiwicHJldiIsIm5ld1ZhbHVlcyIsIm5ld0Vycm9ycyIsInNldEZpZWxkRXJyb3IiLCJlcnJvciIsInJlZ2lzdGVyRmllbGQiLCJydWxlcyIsImdldEZpZWxkUnVsZXMiLCJ1bnJlZ2lzdGVyRmllbGQiLCJuZXdSdWxlcyIsInZhbGlkYXRlRmllbGQiLCJwcm92aWRlZFZhbHVlIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInJ1bGUiLCJyZXF1aXJlZCIsIm1lc3NhZ2UiLCJjb25jYXQiLCJtaW4iLCJtYXgiLCJwYXR0ZXJuIiwidmFsaWRhdG9yIiwiRXJyb3IiLCJ2YWxpZGF0ZUZpZWxkcyIsImZpZWxkc1J1bGVzVG9WYWxpZGF0ZSIsImlzVmFsaWQiLCJmb3JFYWNoIiwiaGFuZGxlU3VibWl0SW50ZXJuYWwiLCJoYXNFcnJvcnMiLCJmaWVsZE5hbWUiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwic3VjY2VzcyIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVSZXNldCIsImdldEZpZWxkVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwidXBkYXRlZFZhbHVlcyIsImZvcm1JbnN0YW5jZSIsInN1Ym1pdCIsImNvcmVDb250ZXh0U2hhcGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXpDLFNBQVNDLGdCQUFnQixFQUFFQyxhQUFhLFFBQVEsZUFBZTtBQVEvRDtBQUNBO0FBQ0E7QUFDQSxTQUFTQyxj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RCxXQUFXLEVBQVhBLFdBQVc7SUFDWE0sWUFBWSxFQUFaQSxZQUFZO0lBQ1pFLGdCQUFnQixFQUFoQkE7RUM1RUEsQ0Q2RUQ7QUFDSCxDQUFDO0FBRUQsZUFBZWpGLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybUNvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjaywgdXNlTWVtb2l6ZWRGbiB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBOZXN0ZWQgcGF0aCBoZWxwZXJzIChkb3Qtbm90YXRpb24gc3VwcG9ydCwgZS5nLiBcIml0ZW1zLjAudGl0bGVcIilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZ2V0TmVzdGVkVmFsdWUob2JqLCBwYXRoKSB7XG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgY3VycmVudCA9IG9iajtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgY3VycmVudCAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudDtcbn1cbmZ1bmN0aW9uIHNldE5lc3RlZFZhbHVlKG9iaiwgcGF0aCwgdmFsdWUpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSlcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgb2JqKSwgeyBbcGF0aF06IHZhbHVlIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIG9iaik7XG4gICAgbGV0IGN1cnJlbnQgPSByZXN1bHQ7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgICBjb25zdCBuZXh0S2V5ID0ga2V5c1tpICsgMV07XG4gICAgICAgIGNvbnN0IGlzTmV4dEFycmF5ID0gL15cXGQrJC8udGVzdChuZXh0S2V5KTtcbiAgICAgICAgaWYgKGN1cnJlbnRba2V5XSA9PT0gdW5kZWZpbmVkIHx8IGN1cnJlbnRba2V5XSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY3VycmVudFtrZXldID0gaXNOZXh0QXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRba2V5XSkpIHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IFsuLi5jdXJyZW50W2tleV1dO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudFtrZXldID0gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudFtrZXldKTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgIH1cbiAgICBjdXJyZW50W2tleXNba2V5cy5sZW5ndGggLSAxXV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSkge1xuICAgIHJldHVybiBuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIG5hbWUpIDogdmFsdWVzW25hbWVdO1xufVxuZXhwb3J0IGNvbnN0IHVzZUZvcm1Db3JlID0gKGNvbmZpZyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBpbml0aWFsVmFsdWVzID0ge30sIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIHNpemUgPSAnbWlkZGxlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgY29sb24gPSB0cnVlLCByZXF1aXJlZE1hcmsgPSB0cnVlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCB9ID0gY29uZmlnO1xuICAgIGNvbnN0IFt2YWx1ZXMsIHNldFZhbHVlc10gPSB1c2VTdGF0ZShpbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBbZXJyb3JzLCBzZXRFcnJvcnNdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbZmllbGRSdWxlcywgc2V0RmllbGRSdWxlc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3Qgc2V0RmllbGRWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcygocHJldikgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gbmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShwcmV2LCBuYW1lLCB2YWx1ZSlcbiAgICAgICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIHsgW25hbWVdOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgIG9uVmFsdWVzQ2hhbmdlID09PSBudWxsIHx8IG9uVmFsdWVzQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblZhbHVlc0NoYW5nZSh7IFtuYW1lXTogdmFsdWUgfSwgbmV3VmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZXM7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNldEVycm9ycygocHJldikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcHJldltuYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RXJyb3JzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBzZXRGaWVsZEVycm9yID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZXJyb3IpID0+IHtcbiAgICAgICAgc2V0RXJyb3JzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXZbbmFtZV0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0Vycm9ycyA9IE9iamVjdC5hc3NpZ24oe30sIHByZXYpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdFcnJvcnNbbmFtZV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0Vycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogZXJyb3IgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcykgPT4ge1xuICAgICAgICBzZXRGaWVsZFJ1bGVzKChwcmV2KSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHJ1bGVzIH0pKSk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRSdWxlcyA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHtcbiAgICAgICAgcmV0dXJuIGZpZWxkUnVsZXNbbmFtZV07XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBzZXRGaWVsZFJ1bGVzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdSdWxlcyA9IE9iamVjdC5hc3NpZ24oe30sIHByZXYpO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1J1bGVzW25hbWVdO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1J1bGVzO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgcnVsZXMgPSBbXSwgcHJvdmlkZWRWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHByb3ZpZGVkVmFsdWUgIT09IHVuZGVmaW5lZCA/IHByb3ZpZGVkVmFsdWUgOiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgICAgICBpZiAocnVsZS5yZXF1aXJlZCAmJlxuICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBpcyByZXF1aXJlZGA7XG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUubWluICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoIDwgcnVsZS5taW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIGF0IGxlYXN0ICR7cnVsZS5taW59IGNoYXJhY3RlcnNgO1xuICAgICAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChydWxlLm1heCAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IHJ1bGUubWF4KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBydWxlLm1lc3NhZ2UgfHwgYCR7bmFtZX0gbXVzdCBiZSBubyBtb3JlIHRoYW4gJHtydWxlLm1heH0gY2hhcmFjdGVyc2A7XG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUucGF0dGVybiAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBmb3JtYXQgaXMgaW52YWxpZGA7XG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUudmFsaWRhdG9yICYmIHR5cGVvZiBydWxlLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJ1bGUudmFsaWRhdG9yKHZhbHVlLCB2YWx1ZXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlICYmIHR5cGVvZiByZXN1bHQgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnID8gcmVzdWx0IDogJ1ZhbGlkYXRpb24gZmFpbGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdWYWxpZGF0aW9uIGVycm9yJztcbiAgICAgICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3JzW25hbWVdKSB7XG4gICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGRzID0gdXNlTWVtb2l6ZWRGbigoZmllbGRzUnVsZXNUb1ZhbGlkYXRlID0gZmllbGRSdWxlcykgPT4ge1xuICAgICAgICBsZXQgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgIE9iamVjdC5rZXlzKGZpZWxkc1J1bGVzVG9WYWxpZGF0ZSkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcnVsZXMgPSBmaWVsZHNSdWxlc1RvVmFsaWRhdGVbbmFtZV07XG4gICAgICAgICAgICBpZiAoIXZhbGlkYXRlRmllbGQobmFtZSwgcnVsZXMpKSB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQ7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0SW50ZXJuYWwgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgbGV0IGhhc0Vycm9ycyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoZmllbGRSdWxlcykuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydWxlcyA9IGZpZWxkUnVsZXNbZmllbGROYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZVZhbHVlKHZhbHVlcywgZmllbGROYW1lKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykge1xuICAgICAgICAgICAgICAgIGlmIChydWxlLnJlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPSBydWxlLm1lc3NhZ2UgfHwgYCR7ZmllbGROYW1lfSBpcyByZXF1aXJlZGA7XG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocnVsZS5taW4gJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPCBydWxlLm1pbikge1xuICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlLm1lc3NhZ2UgfHwgYCR7ZmllbGROYW1lfSBtdXN0IGJlIGF0IGxlYXN0ICR7cnVsZS5taW59IGNoYXJhY3RlcnNgO1xuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUubWF4ICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gcnVsZS5tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5tZXNzYWdlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZmllbGROYW1lfSBtdXN0IGJlIG5vIG1vcmUgdGhhbiAke3J1bGUubWF4fSBjaGFyYWN0ZXJzYDtcbiAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChydWxlLnBhdHRlcm4gJiZcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgICAgICAgICAhcnVsZS5wYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID0gcnVsZS5tZXNzYWdlIHx8IGAke2ZpZWxkTmFtZX0gZm9ybWF0IGlzIGludmFsaWRgO1xuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUudmFsaWRhdG9yICYmIHR5cGVvZiBydWxlLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVsZS52YWxpZGF0b3IodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB0cnVlICYmIHR5cGVvZiByZXN1bHQgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyA/IHJlc3VsdCA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdWYWxpZGF0aW9uIGVycm9yJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNldEVycm9ycyhuZXdFcnJvcnMpO1xuICAgICAgICBpZiAoIWhhc0Vycm9ycykge1xuICAgICAgICAgICAgb25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcyk7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXMgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlcywgZXJyb3JzOiBuZXdFcnJvcnMgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JzOiBuZXdFcnJvcnMgfTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBoYW5kbGVTdWJtaXRJbnRlcm5hbCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2V0RmllbGRzID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcyhpbml0aWFsVmFsdWVzKTtcbiAgICAgICAgc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgc2V0VG91Y2hlZCh7fSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmVzZXRGaWVsZHMoKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZFZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGaWVsZHNWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICBzZXRWYWx1ZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKG5ld1ZhbHVlcywgdXBkYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZFZhbHVlcztcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgZm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBzdWJtaXQ6IGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICB9KSwgW1xuICAgICAgICBoYW5kbGVTdWJtaXRJbnRlcm5hbCxcbiAgICAgICAgcmVzZXRGaWVsZHMsXG4gICAgICAgIGdldEZpZWxkVmFsdWUsXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgdmFsaWRhdGVGaWVsZHMsXG4gICAgXSk7XG4gICAgY29uc3QgY29yZUNvbnRleHRTaGFwZSA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVGaWVsZCxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY29sb24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIH0pLCBbXG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB0b3VjaGVkLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3IsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGNvbG9uLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICBdKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdG91Y2hlZCxcbiAgICAgICAgZmllbGRSdWxlcyxcbiAgICAgICAgZ2V0RmllbGRSdWxlcyxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIGdldEZpZWxkVmFsdWUsXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBoYW5kbGVTdWJtaXQsXG4gICAgICAgIGhhbmRsZVJlc2V0LFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZm9ybUluc3RhbmNlLFxuICAgICAgICBjb3JlQ29udGV4dFNoYXBlLFxuICAgIH07XG59O1xuZXhwb3J0IGRlZmF1bHQgdXNlRm9ybUNvcmU7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
347
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlTWVtbyIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VNZW1vaXplZEZuIiwiZ2V0TmVzdGVkVmFsdWUiLCJvYmoiLCJwYXRoIiwia2V5cyIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJlcnIiLCJlIiwiZiIsInNldE5lc3RlZFZhbHVlIiwibGVuZ3RoIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5IiwicmVzdWx0IiwiaSIsIm5leHRLZXkiLCJpc05leHRBcnJheSIsInRlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyZXNvbHZlVmFsdWUiLCJ2YWx1ZXMiLCJuYW1lIiwiaW5jbHVkZXMiLCJ1c2VGb3JtQ29yZSIsImNvbmZpZyIsImFyZ3VtZW50cyIsIl9jb25maWckaW5pdGlhbFZhbHVlcyIsImluaXRpYWxWYWx1ZXMiLCJvbkZpbmlzaCIsIm9uRmluaXNoRmFpbGVkIiwib25WYWx1ZXNDaGFuZ2UiLCJvblJlc2V0IiwiX2NvbmZpZyRzaXplIiwic2l6ZSIsIl9jb25maWckbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfY29uZmlnJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfY29uZmlnJGNvbG9uIiwiY29sb24iLCJfY29uZmlnJHJlcXVpcmVkTWFyayIsInJlcXVpcmVkTWFyayIsIl9jb25maWckdmFsaWRhdGVUcmlnZyIsInZhbGlkYXRlVHJpZ2dlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldFZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXJyb3JzIiwic2V0RXJyb3JzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0b3VjaGVkIiwic2V0VG91Y2hlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmllbGRSdWxlcyIsInNldEZpZWxkUnVsZXMiLCJzZXRGaWVsZFZhbHVlIiwicHJldiIsIm5ld1ZhbHVlcyIsIm5ld0Vycm9ycyIsInNldEZpZWxkRXJyb3IiLCJlcnJvciIsInJlZ2lzdGVyRmllbGQiLCJydWxlcyIsImdldEZpZWxkUnVsZXMiLCJ1bnJlZ2lzdGVyRmllbGQiLCJuZXdSdWxlcyIsInZhbGlkYXRlRmllbGQiLCJwcm92aWRlZFZhbHVlIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInJ1bGUiLCJyZXF1aXJlZCIsIm1lc3NhZ2UiLCJjb25jYXQiLCJtaW4iLCJtYXgiLCJwYXR0ZXJuIiwidmFsaWRhdG9yIiwiRXJyb3IiLCJ2YWxpZGF0ZUZpZWxkcyIsImZpZWxkc1J1bGVzVG9WYWxpZGF0ZSIsImlzVmFsaWQiLCJmb3JFYWNoIiwiaGFuZGxlU3VibWl0SW50ZXJuYWwiLCJoYXNFcnJvcnMiLCJmaWVsZE5hbWUiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwic3VjY2VzcyIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVSZXNldCIsImdldEZpZWxkVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwidXBkYXRlZFZhbHVlcyIsImZvcm1JbnN0YW5jZSIsInN1Ym1pdCIsImNvcmVDb250ZXh0U2hhcGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBRXpDLFNBQVNDLGdCQUFnQixFQUFFQyxhQUFhLFFBQVEsZUFBZTtBQVEvRDtBQUNBO0FBQ0E7QUFDQSxTQUFTQyxj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QSxDRDZFRDtBQUNILENBQUM7QUFFRCxlQUFlakYsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFdmVudENhbGxiYWNrLCB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5lc3RlZCBwYXRoIGhlbHBlcnMgKGRvdC1ub3RhdGlvbiBzdXBwb3J0LCBlLmcuIFwiaXRlbXMuMC50aXRsZVwiKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xufVxuZnVuY3Rpb24gc2V0TmVzdGVkVmFsdWUob2JqLCBwYXRoLCB2YWx1ZSkge1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvYmopLCB7IFtwYXRoXTogdmFsdWUgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgb2JqKTtcbiAgICBsZXQgY3VycmVudCA9IHJlc3VsdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICAgIGNvbnN0IG5leHRLZXkgPSBrZXlzW2kgKyAxXTtcbiAgICAgICAgY29uc3QgaXNOZXh0QXJyYXkgPSAvXlxcZCskLy50ZXN0KG5leHRLZXkpO1xuICAgICAgICBpZiAoY3VycmVudFtrZXldID09PSB1bmRlZmluZWQgfHwgY3VycmVudFtrZXldID09PSBudWxsKSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBpc05leHRBcnJheSA/IFtdIDoge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFtrZXldKSkge1xuICAgICAgICAgICAgY3VycmVudFtrZXldID0gWy4uLmN1cnJlbnRba2V5XV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50W2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgfVxuICAgIGN1cnJlbnRba2V5c1trZXlzLmxlbmd0aCAtIDFdXSA9IHZhbHVlO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKSB7XG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV07XG59XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgc2l6ZSA9ICdtaWRkbGUnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCBjb2xvbiA9IHRydWUsIHJlcXVpcmVkTWFyayA9IHRydWUsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIH0gPSBjb25maWc7XG4gICAgY29uc3QgW3ZhbHVlcywgc2V0VmFsdWVzXSA9IHVzZVN0YXRlKGluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3RvdWNoZWQsIHNldFRvdWNoZWRdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtmaWVsZFJ1bGVzLCBzZXRGaWVsZFJ1bGVzXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBzZXRGaWVsZFZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZXMgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHByZXYsIG5hbWUsIHZhbHVlKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RXJyb3JzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2W25hbWVdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBwcmV2KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdFcnJvcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBzZXRFcnJvcnMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghcHJldltuYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIHsgW25hbWVdOiBlcnJvciB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHJ1bGVzKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogcnVsZXMgfSkpKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZFJ1bGVzID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmllbGRSdWxlc1tuYW1lXTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1J1bGVzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICBkZWxldGUgbmV3UnVsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbmV3UnVsZXM7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcyA9IFtdLCBwcm92aWRlZFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcHJvdmlkZWRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvdmlkZWRWYWx1ZSA6IHJlc29sdmVWYWx1ZSh2YWx1ZXMsIG5hbWUpO1xuICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgICAgICAgIGlmIChydWxlLnJlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5taW4gJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPCBydWxlLm1pbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IG11c3QgYmUgYXQgbGVhc3QgJHtydWxlLm1pbn0gY2hhcmFjdGVyc2A7XG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGUubWF4ICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gcnVsZS5tYXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHJ1bGUubWVzc2FnZSB8fCBgJHtuYW1lfSBtdXN0IGJlIG5vIG1vcmUgdGhhbiAke3J1bGUubWF4fSBjaGFyYWN0ZXJzYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS5wYXR0ZXJuICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIXJ1bGUucGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcnVsZS5tZXNzYWdlIHx8IGAke25hbWV9IGZvcm1hdCBpcyBpbnZhbGlkYDtcbiAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZS52YWxpZGF0b3IgJiYgdHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVsZS52YWxpZGF0b3IodmFsdWUsIHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgdHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgPyByZXN1bHQgOiAnVmFsaWRhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcnNbbmFtZV0pIHtcbiAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsaWRhdGVGaWVsZHMgPSB1c2VNZW1vaXplZEZuKChmaWVsZHNSdWxlc1RvVmFsaWRhdGUgPSBmaWVsZFJ1bGVzKSA9PiB7XG4gICAgICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgT2JqZWN0LmtleXMoZmllbGRzUnVsZXNUb1ZhbGlkYXRlKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydWxlcyA9IGZpZWxkc1J1bGVzVG9WYWxpZGF0ZVtuYW1lXTtcbiAgICAgICAgICAgIGlmICghdmFsaWRhdGVGaWVsZChuYW1lLCBydWxlcykpIHtcbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXNWYWxpZDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTdWJtaXRJbnRlcm5hbCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9ycyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZFJ1bGVzKS5mb3JFYWNoKChmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVzID0gZmllbGRSdWxlc1tmaWVsZE5hbWVdO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUodmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUucmVxdWlyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9IHJ1bGUubWVzc2FnZSB8fCBgJHtmaWVsZE5hbWV9IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChydWxlLm1pbiAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA8IHJ1bGUubWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUubWVzc2FnZSB8fCBgJHtmaWVsZE5hbWV9IG11c3QgYmUgYXQgbGVhc3QgJHtydWxlLm1pbn0gY2hhcmFjdGVyc2A7XG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocnVsZS5tYXggJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPiBydWxlLm1heCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlLm1lc3NhZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtmaWVsZE5hbWV9IG11c3QgYmUgbm8gbW9yZSB0aGFuICR7cnVsZS5tYXh9IGNoYXJhY3RlcnNgO1xuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGUucGF0dGVybiAmJlxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICAgICAgICAgICFydWxlLnBhdHRlcm4udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPSBydWxlLm1lc3NhZ2UgfHwgYCR7ZmllbGROYW1lfSBmb3JtYXQgaXMgaW52YWxpZGA7XG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocnVsZS52YWxpZGF0b3IgJiYgdHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBydWxlLnZhbGlkYXRvcih2YWx1ZSwgdmFsdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdFcnJvcnNbZmllbGROYW1lXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnID8gcmVzdWx0IDogJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1ZhbGlkYXRpb24gZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0RXJyb3JzKG5ld0Vycm9ycyk7XG4gICAgICAgIGlmICghaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlcyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzLCBlcnJvcnM6IG5ld0Vycm9ycyB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IG5ld0Vycm9ycyB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Ym1pdEludGVybmFsKCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICBzZXRUb3VjaGVkKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldEZpZWxkcygpO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZHNWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkc1ZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcygocHJldikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UobmV3VmFsdWVzLCB1cGRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkVmFsdWVzO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogaGFuZGxlU3VibWl0SW50ZXJuYWwsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgIH0pLCBbXG4gICAgICAgIGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICBdKTtcbiAgICBjb25zdCBjb3JlQ29udGV4dFNoYXBlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdG91Y2hlZCxcbiAgICAgICAgZm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb2xvbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSksIFtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVGaWVsZCxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY29sb24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB0b3VjaGVkLFxuICAgICAgICBmaWVsZFJ1bGVzLFxuICAgICAgICBnZXRGaWVsZFJ1bGVzLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIGNvcmVDb250ZXh0U2hhcGUsXG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCB1c2VGb3JtQ29yZTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -104,6 +104,32 @@ export interface FormCoreContextShape {
|
|
|
104
104
|
requiredMark: boolean;
|
|
105
105
|
validateTrigger: ValidateTrigger;
|
|
106
106
|
}
|
|
107
|
+
/** Config for useForm — accepts all UseFormCoreConfig fields */
|
|
108
|
+
export type UseFormConfig = UseFormCoreConfig;
|
|
109
|
+
/** Internal state exposed by useForm for ProForm integration */
|
|
110
|
+
export interface UseFormInternals {
|
|
111
|
+
values: Record<string, unknown>;
|
|
112
|
+
errors: Record<string, string>;
|
|
113
|
+
touched: Record<string, boolean>;
|
|
114
|
+
validating: Record<string, boolean>;
|
|
115
|
+
fieldRules: Record<string, Rule[]>;
|
|
116
|
+
setFieldValue: (name: string, value: unknown) => void;
|
|
117
|
+
setFieldError: (name: string, error: string | null) => void;
|
|
118
|
+
validateField: (name: string, rules: Rule[], providedValue?: unknown) => boolean;
|
|
119
|
+
validateFieldAsync: (name: string, value: unknown, rules: Rule[]) => Promise<{
|
|
120
|
+
isValid: boolean;
|
|
121
|
+
error: string | null;
|
|
122
|
+
}>;
|
|
123
|
+
registerField: (name: string, rules: Rule[]) => void;
|
|
124
|
+
unregisterField: (name: string) => void;
|
|
125
|
+
handleSubmit: (e?: React.FormEvent) => void;
|
|
126
|
+
handleReset: (e?: React.FormEvent) => void;
|
|
127
|
+
}
|
|
128
|
+
/** Return type for useForm */
|
|
129
|
+
export interface UseFormReturn {
|
|
130
|
+
formInstance: FormInstance;
|
|
131
|
+
internals: UseFormInternals;
|
|
132
|
+
}
|
|
107
133
|
export interface UseFormCoreReturn {
|
|
108
134
|
values: Record<string, unknown>;
|
|
109
135
|
errors: Record<string, string>;
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
3
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
3
4
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
5
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
6
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
7
|
+
function adopt(value) {
|
|
8
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
9
|
+
resolve(value);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) {
|
|
14
|
+
try {
|
|
15
|
+
step(generator.next(value));
|
|
16
|
+
} catch (e) {
|
|
17
|
+
reject(e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function rejected(value) {
|
|
21
|
+
try {
|
|
22
|
+
step(generator["throw"](value));
|
|
23
|
+
} catch (e) {
|
|
24
|
+
reject(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function step(result) {
|
|
28
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
29
|
+
}
|
|
30
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
31
|
+
});
|
|
32
|
+
};
|
|
5
33
|
import React, { useEffect } from 'react';
|
|
6
34
|
import { useEventCallback } from '@1money/hooks';
|
|
7
35
|
import { useProFormContext } from '../context';
|
|
@@ -25,6 +53,7 @@ function getNestedValue(obj, path) {
|
|
|
25
53
|
return current;
|
|
26
54
|
}
|
|
27
55
|
export function useFormItem(options) {
|
|
56
|
+
var _this = this;
|
|
28
57
|
var name = options.name,
|
|
29
58
|
_options$rules = options.rules,
|
|
30
59
|
rules = _options$rules === void 0 ? [] : _options$rules,
|
|
@@ -33,8 +62,10 @@ export function useFormItem(options) {
|
|
|
33
62
|
var ctx = useProFormContext();
|
|
34
63
|
var values = ctx.values,
|
|
35
64
|
errors = ctx.errors,
|
|
65
|
+
validating = ctx.validating,
|
|
36
66
|
setFieldValue = ctx.setFieldValue,
|
|
37
67
|
validateField = ctx.validateField,
|
|
68
|
+
validateFieldAsync = ctx.validateFieldAsync,
|
|
38
69
|
registerField = ctx.registerField,
|
|
39
70
|
unregisterField = ctx.unregisterField,
|
|
40
71
|
size = ctx.size,
|
|
@@ -46,11 +77,30 @@ export function useFormItem(options) {
|
|
|
46
77
|
}));
|
|
47
78
|
var fieldValue = name ? name.includes('.') ? getNestedValue(values, name) : values[name] : undefined;
|
|
48
79
|
var fieldError = name ? name.includes('.') ? getNestedValue(errors, name) : errors[name] : undefined;
|
|
80
|
+
var fieldValidating = name ? validating[name] || false : false;
|
|
49
81
|
var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
|
|
50
82
|
var runValidate = useEventCallback(function (value) {
|
|
51
83
|
if (name && rules.length > 0) return validateField(name, rules, value);
|
|
52
84
|
return true;
|
|
53
85
|
});
|
|
86
|
+
var runValidateAsync = useEventCallback(function (value) {
|
|
87
|
+
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
88
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
89
|
+
while (1) switch (_context.prev = _context.next) {
|
|
90
|
+
case 0:
|
|
91
|
+
if (!(name && rules.length > 0)) {
|
|
92
|
+
_context.next = 3;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
_context.next = 3;
|
|
96
|
+
return validateFieldAsync(name, value, rules);
|
|
97
|
+
case 3:
|
|
98
|
+
case "end":
|
|
99
|
+
return _context.stop();
|
|
100
|
+
}
|
|
101
|
+
}, _callee);
|
|
102
|
+
}));
|
|
103
|
+
});
|
|
54
104
|
var handleChange = useEventCallback(function (value) {
|
|
55
105
|
if (name) {
|
|
56
106
|
setFieldValue(name, value);
|
|
@@ -58,7 +108,7 @@ export function useFormItem(options) {
|
|
|
58
108
|
}
|
|
59
109
|
});
|
|
60
110
|
var handleBlur = useEventCallback(function () {
|
|
61
|
-
if (validateTrigger === 'onBlur')
|
|
111
|
+
if (validateTrigger === 'onBlur') runValidateAsync(fieldValue);
|
|
62
112
|
});
|
|
63
113
|
useEffect(function () {
|
|
64
114
|
if (name && registerField) registerField(name, rules);
|
|
@@ -73,14 +123,15 @@ export function useFormItem(options) {
|
|
|
73
123
|
var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
|
|
74
124
|
var isFormComponent = FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
|
|
75
125
|
if (!isFormComponent) return child;
|
|
126
|
+
var TEXT_LIKE_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
|
|
76
127
|
var safeValue = fieldValue;
|
|
77
128
|
if (safeValue === null || safeValue === undefined) {
|
|
78
|
-
if (
|
|
129
|
+
if (TEXT_LIKE_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
|
|
79
130
|
safeValue = '';
|
|
80
131
|
} else if (['Checkbox', 'Switch'].includes(displayName || '')) {
|
|
81
132
|
safeValue = false;
|
|
82
133
|
}
|
|
83
|
-
} else if (
|
|
134
|
+
} else if (TEXT_LIKE_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
|
|
84
135
|
safeValue = '';
|
|
85
136
|
}
|
|
86
137
|
var injectedProps = Object.assign({
|
|
@@ -110,6 +161,7 @@ export function useFormItem(options) {
|
|
|
110
161
|
return {
|
|
111
162
|
fieldValue: fieldValue,
|
|
112
163
|
fieldError: fieldError,
|
|
164
|
+
fieldValidating: fieldValidating,
|
|
113
165
|
validateStatus: finalStatus,
|
|
114
166
|
isRequired: isRequired,
|
|
115
167
|
size: size,
|
|
@@ -118,4 +170,4 @@ export function useFormItem(options) {
|
|
|
118
170
|
injectField: injectField
|
|
119
171
|
};
|
|
120
172
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VQcm9Gb3JtQ29udGV4dCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiZ2V0TmVzdGVkVmFsdWUiLCJvYmoiLCJwYXRoIiwia2V5cyIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJrZXkiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJlcnIiLCJlIiwiZiIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIm5hbWUiLCJfb3B0aW9ucyRydWxlcyIsInJ1bGVzIiwicmVxdWlyZWQiLCJ2YWxpZGF0ZVN0YXR1cyIsImN0eCIsInZhbHVlcyIsImVycm9ycyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImZpZWxkRXJyb3IiLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwibGVuZ3RoIiwiaGFuZGxlQ2hhbmdlIiwiaGFuZGxlQmx1ciIsImluamVjdEZpZWxkIiwiY2hpbGQiLCJfYSIsImlzVmFsaWRFbGVtZW50IiwiY2hpbGRQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJ0eXBlIiwiaXNGb3JtQ29tcG9uZW50IiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJpbmplY3RlZFByb3BzIiwiT2JqZWN0IiwiYXNzaWduIiwib25DaGFuZ2UiLCJhY3R1YWxWYWx1ZSIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXBwbHkiLCJjb25jYXQiLCJvbkJsdXIiLCJzdGF0dXMiLCJjbG9uZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsUUFBUSxPQUFPO0FBRXhDLFNBQVNDLGdCQUFnQixRQUFRLGVBQWU7QUFDaEQsU0FBU0MsaUJBQWlCLFFBQVEsWUFBWTtBQUM5QyxTQUFTQyxvQkFBb0IsUUFBUSxhQUFhO0FBR2xELFNBQVNDLGNBQWNBLENBQUNDLEdBQTRCLEVBQUVDLElBQVksRUFBQTtFQUNoRSxJQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUM1QixJQUFJQyxPQUFPLEdBQVlKLEdBQUc7RUFBQyxJQUFBSyxTQUFBLEdBQUFDLDBCQUFBLENBQ1RKLElBQUk7SUFBQUssS0FBQTtFQUFBO0lBQXRCLEtBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxNQUFBRCxLQUFBLEdBQUFGLFNBQUEsQ0FBQUksQ0FBQSxJQUFBQyxJQUFBLEdBQXdCO01BQUEsSUFBYkMsR0FBRyxHQUFBSixLQUFBLENBQUFLLEtBQUE7TUFDWixJQUFJUixPQUFPLEtBQUssSUFBSSxJQUFJQSxPQUFPLEtBQUtTLFNBQVMsSUFBSUMsT0FBQSxDQUFPVixPQUFPLE1BQUssUUFBUSxFQUFFLE9BQU9TLFNBQVM7TUFDOUZULE9BQU8sR0FBSUEsT0FBbUMsQ0FBQ08sR0FBRyxDQUFDO0lBQ3JEO0VBQUMsU0FBQUksR0FBQTtJQUFBVixTQUFBLENBQUFXLENBQUEsQ0FBQUQsR0FBQTtFQUFBO0lBQUFWLFNBQUEsQ0FBQVksQ0FBQTtFQUFBO0VBQ0QsT0FBT2IsT0FBTztBQUNoQjtBQXFCQSxPQUFNLFNBQVVjLFdBQVdBLENBQUNDLE9BQTJCLEVBQUE7RUFDckQsSUFBUUMsSUFBSSxHQUEyQ0QsT0FBTyxDQUF0REMsSUFBSTtJQUFBQyxjQUFBLEdBQTJDRixPQUFPLENBQWhERyxLQUFLO0lBQUxBLEtBQUssR0FBQUQsY0FBQSxjQUFHLEVBQUUsR0FBQUEsY0FBQTtJQUFFRSxRQUFRLEdBQXFCSixPQUFPLENBQXBDSSxRQUFRO0lBQUVDLGNBQWMsR0FBS0wsT0FBTyxDQUExQkssY0FBYztFQUNsRCxJQUFNQyxHQUFHLEdBQUc1QixpQkFBaUIsQ0FBQSxDQUFFO0VBQy9CLElBQ0U2QixNQUFNLEdBVUpELEdBQUcsQ0FWTEMsTUFBTTtJQUNOQyxNQUFNLEdBU0pGLEdBQUcsQ0FUTEUsTUFBTTtJQUNOQyxhQUFhLEdBUVhILEdBQUcsQ0FSTEcsYUFBYTtJQUNiQyxhQUFhLEdBT1hKLEdBQUcsQ0FQTEksYUFBYTtJQUNiQyxhQUFhLEdBTVhMLEdBQUcsQ0FOTEssYUFBYTtJQUNiQyxlQUFlLEdBS2JOLEdBQUcsQ0FMTE0sZUFBZTtJQUNmQyxJQUFJLEdBSUZQLEdBQUcsQ0FKTE8sSUFBSTtJQUNKQyxVQUFVLEdBR1JSLEdBQUcsQ0FITFEsVUFBVTtJQUNWQyxZQUFZLEdBRVZULEdBQUcsQ0FGTFMsWUFBWTtJQUNaQyxlQUFlLEdBQ2JWLEdBQUcsQ0FETFUsZUFBZTtFQUdqQixJQUFNQyxVQUFVLEdBQUdDLE9BQU8sQ0FBQ2QsUUFBUSxJQUFJRCxLQUFLLENBQUNnQixJQUFJLENBQUMsVUFBQ0MsSUFBSTtJQUFBLE9BQUtBLElBQUksQ0FBQ2hCLFFBQVE7RUFBQSxFQUFDLENBQUM7RUFDM0UsSUFBTWlCLFVBQVUsR0FBR3BCLElBQUksR0FDbEJBLElBQUksQ0FBQ3FCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRzFDLGNBQWMsQ0FBQzJCLE1BQU0sRUFBRU4sSUFBSSxDQUFDLEdBQUdNLE1BQU0sQ0FBQ04sSUFBSSxDQUFDLEdBQ2pFUCxTQUFTO0VBQ2IsSUFBTTZCLFVBQVUsR0FBR3RCLElBQUksR0FDakJBLElBQUksQ0FBQ3FCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FDaEIxQyxjQUFjLENBQUM0QixNQUFpQyxFQUFFUCxJQUFJLENBQUMsR0FDdkRPLE1BQU0sQ0FBQ1AsSUFBSSxDQUFDLEdBQ2hCUCxTQUFTO0VBQ2IsSUFBTThCLFdBQVcsR0FBR25CLGNBQWMsS0FBS2tCLFVBQVUsR0FBRyxPQUFPLEdBQUc3QixTQUFTLENBQUM7RUFFeEUsSUFBTStCLFdBQVcsR0FBR2hELGdCQUFnQixDQUFDLFVBQUNnQixLQUFjLEVBQUk7SUFDdEQsSUFBSVEsSUFBSSxJQUFJRSxLQUFLLENBQUN1QixNQUFNLEdBQUcsQ0FBQyxFQUFFLE9BQU9oQixhQUFhLENBQUNULElBQUksRUFBRUUsS0FBSyxFQUFFVixLQUFLLENBQUM7SUFDdEUsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxDQUFDO0VBRUYsSUFBTWtDLFlBQVksR0FBR2xELGdCQUFnQixDQUFDLFVBQUNnQixLQUFjLEVBQUk7SUFDdkQsSUFBSVEsSUFBSSxFQUFFO01BQ1JRLGFBQWEsQ0FBQ1IsSUFBSSxFQUFFUixLQUFLLENBQUM7TUFDMUIsSUFBSXVCLGVBQWUsS0FBSyxVQUFVLEVBQUVTLFdBQVcsQ0FBQ2hDLEtBQUssQ0FBQztJQUN4RDtFQUNGLENBQUMsQ0FBQztFQUVGLElBQU1tQyxVQUFVLEdBQUduRCxnQkFBZ0IsQ0FBQyxZQUFLO0lBQ3ZDLElBQUl1QyxlQUFlLEtBQUssUUFBUSxFQUFFUyxXQUFXLENBQUNKLFVBQVUsQ0FBQztFQUMzRCxDQUFDLENBQUM7RUFFRjdDLFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBSXlCLElBQUksSUFBSVUsYUFBYSxFQUFFQSxhQUFhLENBQUNWLElBQUksRUFBRUUsS0FBSyxDQUFDO0lBQ3JELE9BQU8sWUFBSztNQUNWLElBQUlGLElBQUksSUFBSVcsZUFBZSxFQUFFQSxlQUFlLENBQUNYLElBQUksQ0FBQztJQUNwRCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNBLElBQUksQ0FBQyxDQUFDO0VBRVYsSUFBTTRCLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxLQUFnQixFQUFlO0lDakM5QyxJQUFJQyxFQUFFO0lEa0NWLElBQUksQ0FBQzlCLElBQUksSUFBSSxlQUFDMUIsS0FBSyxDQUFDeUQsY0FBYyxDQUFDRixLQUFLLENBQUMsRUFBRSxPQUFPQSxLQUFLO0lBRXZELElBQU1HLFVBQVUsR0FBR0gsS0FBSyxDQUFDSSxLQUFnQztJQUN6RCxJQUFNQyxXQUFXLEdBQUcsQ0FBQUosRUFBQSxHQUFDRCxLQUFLLENBQUNNLElBQWlDLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRUksV0FBVztJQUV6RSxJQUFNRSxlQUFlLEdBQ25CMUQsb0JBQW9CLENBQUMyQyxRQUFRLENBQUNhLFdBQWtELENBQUMsSUFDakZGLFVBQVUsQ0FBQ0ssV0FBVyxLQUFLNUMsU0FBUyxJQUNwQ3VDLFVBQVUsQ0FBQ3hDLEtBQUssS0FBS0MsU0FBUztJQUVoQyxJQUFJLENBQUMyQyxlQUFlLEVBQUUsT0FBT1AsS0FBSztJQUVsQyxJQUFJUyxTQUFTLEdBQUdsQixVQUFVO0lBQzFCLElBQUlrQixTQUFTLEtBQUssSUFBSSxJQUFJQSxTQUFTLEtBQUs3QyxTQUFTLEVBQUU7TUFDakQsSUFDRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM0QixRQUFRLENBQUNhLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFDaEVGLFVBQVUsQ0FBQ0ssV0FBVyxLQUFLNUMsU0FBUyxFQUNwQztRQUNBNkMsU0FBUyxHQUFHLEVBQUU7TUFDaEIsQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUNqQixRQUFRLENBQUNhLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUM3REksU0FBUyxHQUFHLEtBQUs7TUFDbkI7SUFDRixDQUFDLE1BQU0sSUFDTCxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQ2pCLFFBQVEsQ0FBQ2EsV0FBVyxJQUFJLEVBQUUsQ0FBQyxJQUNqRCxPQUFPSSxTQUFTLEtBQUssUUFBUSxJQUM3QixPQUFPQSxTQUFTLEtBQUssUUFBUSxFQUM3QjtNQUNBQSxTQUFTLEdBQUcsRUFBRTtJQUNoQjtJQUVBLElBQU1DLGFBQWEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLENBQUE7TUFDakJqRCxLQUFLLEVBQUU4QyxTQUFTO01BQ2hCSSxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBRzlDLENBQVUsRUFBd0I7UUFDM0MsSUFBTStDLFdBQVcsR0FDZi9DLENBQUMsSUFBSUYsT0FBQSxDQUFPRSxDQUFDLE1BQUssUUFBUSxJQUFJLFFBQVEsSUFBSUEsQ0FBQyxHQUN0Q0EsQ0FBeUMsQ0FBQ2dELE1BQU0sQ0FBQ3BELEtBQUssR0FDdkRJLENBQUM7UUFDUDhCLFlBQVksQ0FBQ2lCLFdBQVcsQ0FBQztRQUN6QixJQUFJLE9BQU9YLFVBQVUsQ0FBQ1UsUUFBUSxLQUFLLFVBQVUsRUFBRTtVQUFBLFNBQUFHLElBQUEsR0FBQUMsU0FBQSxDQUFBckIsTUFBQSxFQU52QnNCLElBQWUsT0FBQUMsS0FBQSxDQUFBSCxJQUFBLE9BQUFBLElBQUEsV0FBQUksSUFBQSxNQUFBQSxJQUFBLEdBQUFKLElBQUEsRUFBQUksSUFBQTtZQUFmRixJQUFlLENBQUFFLElBQUEsUUFBQUgsU0FBQSxDQUFBRyxJQUFBO1VBQUE7VUFPcENqQixVQUFVLENBQUNVLFFBQXNDLENBQUFRLEtBQUEsQ0FBakRsQixVQUFVLEdBQXdDcEMsQ0FBQyxFQUFBdUQsTUFBQSxDQUFLSixJQUFJLEVBQUM7UUFDaEU7TUFDRixDQUFDO01BQ0RLLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFBLEVBQXlCO1FBQzdCekIsVUFBVSxDQUFBLENBQUU7UUFDWixJQUFJLE9BQU9LLFVBQVUsQ0FBQ29CLE1BQU0sS0FBSyxVQUFVLEVBQUU7VUFDMUNwQixVQUFVLENBQUNvQixNQUFvQyxDQUFBRixLQUFBLENBQS9DbEIsVUFBVSxFQUFBYyxTQUE2QyxDQUFDO1FBQzNEO01BQ0YsQ0FBQztNQUNEbEMsSUFBSSxFQUFFb0IsVUFBVSxDQUFDcEIsSUFBSSxJQUFJQTtJQUFJLENBQUEsRUFDekJXLFdBQVcsS0FBSyxPQUFPLElBQUk7TUFBRThCLE1BQU0sRUFBRTtJQUFPLENBQUcsQ0FDcEQ7SUFFRCxvQkFBTy9FLEtBQUssQ0FBQ2dGLFlBQVksQ0FBQ3pCLEtBQUssRUFBRVUsYUFBYSxDQUFDO0VBQ2pELENBQUM7RUFFRCxPQUFPO0lBQ0xuQixVQUFVLEVBQVZBLFVBQVU7SUFDVkUsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZsQixjQUFjLEVBQUVtQixXQUFXO0lBQzNCUCxVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWmMsV0FBVyxFQUFYQTtFQy9DQSxDRGdERDtBQUNIIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEZPUk1fQ09NUE9ORU5UX05BTUVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuZnVuY3Rpb24gZ2V0TmVzdGVkVmFsdWUob2JqLCBwYXRoKSB7XG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgY3VycmVudCA9IG9iajtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgY3VycmVudCAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCB7IHZhbHVlcywgZXJyb3JzLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZpZWxkLCByZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgdmFsaWRhdGVUcmlnZ2VyLCB9ID0gY3R4O1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIG5hbWUpIDogdmFsdWVzW25hbWVdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZEVycm9yID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUoZXJyb3JzLCBuYW1lKVxuICAgICAgICAgICAgOiBlcnJvcnNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gdmFsaWRhdGVTdGF0dXMgfHwgKGZpZWxkRXJyb3IgPyAnZXJyb3InIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBydW5WYWxpZGF0ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJ1bGVzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBydWxlcywgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgc2V0RmllbGRWYWx1ZShuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGVUcmlnZ2VyID09PSAnb25DaGFuZ2UnKVxuICAgICAgICAgICAgICAgIHJ1blZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ29uQmx1cicpXG4gICAgICAgICAgICBydW5WYWxpZGF0ZShmaWVsZFZhbHVlKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFpc0Zvcm1Db21wb25lbnQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBmaWVsZFZhbHVlO1xuICAgICAgICBpZiAoc2FmZVZhbHVlID09PSBudWxsIHx8IHNhZmVWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoWydJbnB1dCcsICdUZXh0QXJlYScsICdJbnB1dE51bWJlciddLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSB8fFxuICAgICAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoWydDaGVja2JveCcsICdTd2l0Y2gnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChbJ0lucHV0JywgJ1RleHRBcmVhJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKHsgdmFsdWU6IHNhZmVWYWx1ZSwgb25DaGFuZ2U6IChlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBlICYmIHR5cGVvZiBlID09PSAnb2JqZWN0JyAmJiAndGFyZ2V0JyBpbiBlXG4gICAgICAgICAgICAgICAgICAgID8gZS50YXJnZXQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBlO1xuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShhY3R1YWxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFByb3BzLm9uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkUHJvcHMub25DaGFuZ2UoZSwgLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgb25CbHVyOiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUJsdXIoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkUHJvcHMub25CbHVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkUHJvcHMub25CbHVyKC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHNpemU6IGNoaWxkUHJvcHMuc2l6ZSB8fCBzaXplIH0sIChmaW5hbFN0YXR1cyA9PT0gJ2Vycm9yJyAmJiB7IHN0YXR1czogJ2Vycm9yJyB9KSk7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGluamVjdGVkUHJvcHMpO1xuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZmllbGRWYWx1ZSxcbiAgICAgICAgZmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJ1c2VQcm9Gb3JtQ29udGV4dCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiZ2V0TmVzdGVkVmFsdWUiLCJvYmoiLCJwYXRoIiwia2V5cyIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJzIiwibiIsImtleSIsInVuZGVmaW5lZCIsIl90eXBlb2YiLCJlcnIiLCJmIiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX3RoaXMiLCJuYW1lIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJjdHgiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ2YWxpZGF0aW5nIiwic2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGQiLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwic2l6ZSIsImxhYmVsQWxpZ24iLCJyZXF1aXJlZE1hcmsiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJpc1JlcXVpcmVkIiwiQm9vbGVhbiIsInNvbWUiLCJydWxlIiwiZmllbGRWYWx1ZSIsImluY2x1ZGVzIiwiZmllbGRFcnJvciIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJsZW5ndGgiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RvcCIsImhhbmRsZUNoYW5nZSIsImhhbmRsZUJsdXIiLCJpbmplY3RGaWVsZCIsImNoaWxkIiwiX2EiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsInBsYWNlaG9sZGVyIiwiVEVYVF9MSUtFX05BTUVTIiwic2FmZVZhbHVlIiwiaW5qZWN0ZWRQcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsIm9uQ2hhbmdlIiwiYWN0dWFsVmFsdWUiLCJ0YXJnZXQiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIm9uQmx1ciIsInN0YXR1cyIsImNsb25lRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENB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O1FBQ2hFO01BQ0YsQ0FBQztNQUNESSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQSxFQUF5QjtRQUM3QnpCLFVBQVUsQ0FBQSxDQUFFO1FBQ1osSUFBSSxPQUFPSyxVQUFVLENBQUNvQixNQUFNLEtBQUssVUFBVSxFQUFFO1VBQzFDcEIsVUFBVSxDQUFDb0IsTUFBb0MsQ0FBQXpGLEtBQUEsQ0FBL0NxRSxVQUFVLEVBQUFlLFNBQTZDLENBQUM7UUFDM0Q7TUFDRixDQUFDO01BQ0Q3QyxJQUFJLEVBQUU4QixVQUFVLENBQUM5QixJQUFJLElBQUlBO0lBQUksQ0FBQSxFQUN6QlksV0FBVyxLQUFLLE9BQU8sSUFBSTtNQUFFdUMsTUFBTSxFQUFFO0lBQU8sQ0FBRyxDQUNwRDtJQUVELG9CQUFPekYsS0FBSyxDQUFDMEYsWUFBWSxDQUFDekIsS0FBSyxFQUFFVyxhQUFhLENBQUM7RUFDakQsQ0FBQztFQUVELE9BQU87SUFDTDlCLFVBQVUsRUFBVkEsVUFBVTtJQUNWRSxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZyQixjQUFjLEVBQUVzQixXQUFXO0lBQzNCUixVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWndCLFdBQVcsRUFBWEE7RUQzQ0EsQ0M0Q0Q7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IHVzZVByb0Zvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgeyBGT1JNX0NPTVBPTkVOVF9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmZ1bmN0aW9uIGdldE5lc3RlZFZhbHVlKG9iaiwgcGF0aCkge1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGN1cnJlbnQgPSBvYmo7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50ID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybUl0ZW0ob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbmFtZSwgcnVsZXMgPSBbXSwgcmVxdWlyZWQsIHZhbGlkYXRlU3RhdHVzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgeyB2YWx1ZXMsIGVycm9ycywgdmFsaWRhdGluZywgc2V0RmllbGRWYWx1ZSwgdmFsaWRhdGVGaWVsZCwgdmFsaWRhdGVGaWVsZEFzeW5jLCByZWdpc3RlckZpZWxkLCB1bnJlZ2lzdGVyRmllbGQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgdmFsaWRhdGVUcmlnZ2VyLCB9ID0gY3R4O1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZSh2YWx1ZXMsIG5hbWUpIDogdmFsdWVzW25hbWVdKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZEVycm9yID0gbmFtZVxuICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUoZXJyb3JzLCBuYW1lKVxuICAgICAgICAgICAgOiBlcnJvcnNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkVmFsaWRhdGluZyA9IG5hbWUgPyAodmFsaWRhdGluZ1tuYW1lXSB8fCBmYWxzZSkgOiBmYWxzZTtcbiAgICBjb25zdCBmaW5hbFN0YXR1cyA9IHZhbGlkYXRlU3RhdHVzIHx8IChmaWVsZEVycm9yID8gJ2Vycm9yJyA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGUgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiBydWxlcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlRmllbGQobmFtZSwgcnVsZXMsIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChuYW1lICYmIHJ1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHlpZWxkIHZhbGlkYXRlRmllbGRBc3luYyhuYW1lLCB2YWx1ZSwgcnVsZXMpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09ICdvbkNoYW5nZScpXG4gICAgICAgICAgICAgICAgcnVuVmFsaWRhdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAodmFsaWRhdGVUcmlnZ2VyID09PSAnb25CbHVyJylcbiAgICAgICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoZmllbGRWYWx1ZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQobmFtZSwgcnVsZXMpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5hbWUgJiYgdW5yZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChuYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZV0pO1xuICAgIGNvbnN0IGluamVjdEZpZWxkID0gKGNoaWxkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoX2EgPSBjaGlsZC50eXBlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcGxheU5hbWU7XG4gICAgICAgIGNvbnN0IGlzRm9ybUNvbXBvbmVudCA9IEZPUk1fQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lKSB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaXNGb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBjb25zdCBURVhUX0xJS0VfTkFNRVMgPSBbXG4gICAgICAgICAgICAnSW5wdXQnLCAnSW5wdXRQYXNzd29yZCcsICdJbnB1dFRleHRBcmVhJywgJ0lucHV0U2VhcmNoJyxcbiAgICAgICAgICAgICdJbnB1dE9UUCcsICdJbnB1dFRyYWRlJywgJ0lucHV0QW1vdW50JywgJ0lucHV0TWFzaycsXG4gICAgICAgICAgICAnVGV4dEFyZWEnLCAnSW5wdXROdW1iZXInLFxuICAgICAgICBdO1xuICAgICAgICBsZXQgc2FmZVZhbHVlID0gZmllbGRWYWx1ZTtcbiAgICAgICAgaWYgKHNhZmVWYWx1ZSA9PT0gbnVsbCB8fCBzYWZlVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKFRFWFRfTElLRV9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgfHxcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFsnQ2hlY2tib3gnLCAnU3dpdGNoJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmplY3RlZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IHZhbHVlOiBzYWZlVmFsdWUsIG9uQ2hhbmdlOiAoZSwgLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbFZhbHVlID0gZSAmJiB0eXBlb2YgZSA9PT0gJ29iamVjdCcgJiYgJ3RhcmdldCcgaW4gZVxuICAgICAgICAgICAgICAgICAgICA/IGUudGFyZ2V0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogZTtcbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UoYWN0dWFsVmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQ2hhbmdlKGUsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG9uQmx1cjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFByb3BzLm9uQmx1ciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQmx1ciguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBzaXplOiBjaGlsZFByb3BzLnNpemUgfHwgc2l6ZSB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmplY3RlZFByb3BzKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkRXJyb3IsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ProFormItem } from './ProFormItem';
|
|
2
|
+
import type { FormInstance, UseFormConfig } from './core/interface';
|
|
2
3
|
import './style';
|
|
3
4
|
declare const ProForm: import("react").NamedExoticComponent<import("./interface").ProFormProps> & {
|
|
4
5
|
Item: import("react").NamedExoticComponent<import("./interface").ProFormItemProps>;
|
|
5
|
-
useForm: (
|
|
6
|
+
useForm: (config?: UseFormConfig) => [FormInstance];
|
|
6
7
|
useInstance: () => import("./interface").ProFormFormInstance;
|
|
7
8
|
useContext: () => import("./interface").ProFormContextValue;
|
|
8
9
|
Dependency: import("react").NamedExoticComponent<import("./interface").ProFormDependencyProps>;
|
|
@@ -34,4 +35,4 @@ export { QueryFilter } from './layouts/QueryFilter';
|
|
|
34
35
|
export type { ProFormProps, ProFormItemProps, ProFormFieldProps, ProFormContextValue, ProFormFormInstance, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormValueEnumObj, ProFormRequestOption, ProFormValueType, FormListContextValue, ProFormColProps, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DrawerFormProps, DialogFormProps, QueryFilterProps, CreateProFormFieldConfig, } from './interface';
|
|
35
36
|
export { CSS_PREFIX, WIDTH_SIZE_MAP, DEFAULT_COL_SPAN, DEFAULT_TEXT, PROFORM_MODES } from './constants';
|
|
36
37
|
export type { ProFormMode } from './constants';
|
|
37
|
-
export type { FormInstance, FormCoreInstance, Rule, ValidateTrigger, ValidateStatus, FormLayout, FormSize, LabelAlign, } from './core/interface';
|
|
38
|
+
export type { FormInstance, FormCoreInstance, Rule, ValidateTrigger, ValidateStatus, FormLayout, FormSize, LabelAlign, UseFormConfig, UseFormReturn, UseFormInternals, } from './core/interface';
|
|
@@ -5,9 +5,15 @@ import { ProFormList } from './ProFormList';
|
|
|
5
5
|
import { ProFormGroup } from './ProFormGroup';
|
|
6
6
|
import { Submitter } from './Submitter';
|
|
7
7
|
import { ProFormText, ProFormPassword, ProFormTextArea, ProFormCheckbox, ProFormCheckboxGroup, ProFormSwitch, ProFormSelect, ProFormRadioGroup, ProFormSlider, ProFormDatePicker, ProFormUpload, ProFormFieldSet } from './fields';
|
|
8
|
-
import { useForm } from './core/hooks/useForm';
|
|
8
|
+
import { useForm as useFormInternal } from './core/hooks/useForm';
|
|
9
9
|
import { useProFormContext, useFormInstance } from './context';
|
|
10
10
|
import './style';
|
|
11
|
+
/** Public hook — returns [FormInstance] for backward compatibility */
|
|
12
|
+
var useForm = function useForm(config) {
|
|
13
|
+
var _useFormInternal = useFormInternal(config),
|
|
14
|
+
formInstance = _useFormInternal.formInstance;
|
|
15
|
+
return [formInstance];
|
|
16
|
+
};
|
|
11
17
|
// Compose ProForm with static sub-components and hooks
|
|
12
18
|
var ProForm = Object.assign(ProFormBase, {
|
|
13
19
|
// Item + core hooks
|
|
@@ -46,4 +52,4 @@ export { DrawerForm } from './layouts/DrawerForm';
|
|
|
46
52
|
export { DialogForm } from './layouts/DialogForm';
|
|
47
53
|
export { QueryFilter } from './layouts/QueryFilter';
|
|
48
54
|
export { CSS_PREFIX, WIDTH_SIZE_MAP, DEFAULT_COL_SPAN, DEFAULT_TEXT, PROFORM_MODES } from './constants';
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9pbmRleC50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9pbmRleC5qcyJdLCJuYW1lcyI6WyJQcm9Gb3JtIiwiUHJvRm9ybUJhc2UiLCJQcm9Gb3JtSXRlbSIsIlByb0Zvcm1EZXBlbmRlbmN5IiwiUHJvRm9ybUxpc3QiLCJQcm9Gb3JtR3JvdXAiLCJTdWJtaXR0ZXIiLCJQcm9Gb3JtVGV4dCIsIlByb0Zvcm1QYXNzd29yZCIsIlByb0Zvcm1UZXh0QXJlYSIsIlByb0Zvcm1DaGVja2JveCIsIlByb0Zvcm1DaGVja2JveEdyb3VwIiwiUHJvRm9ybVN3aXRjaCIsIlByb0Zvcm1TZWxlY3QiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsIlByb0Zvcm1TbGlkZXIiLCJQcm9Gb3JtRGF0ZVBpY2tlciIsIlByb0Zvcm1VcGxvYWQiLCJQcm9Gb3JtRmllbGRTZXQiLCJ1c2VGb3JtIiwidXNlRm9ybUludGVybmFsIiwidXNlUHJvRm9ybUNvbnRleHQiLCJ1c2VGb3JtSW5zdGFuY2UiLCJjb25maWciLCJfdXNlRm9ybUludGVybmFsIiwiZm9ybUluc3RhbmNlIiwiT2JqZWN0IiwiYXNzaWduIiwiSXRlbSIsInVzZUluc3RhbmNlIiwidXNlQ29udGV4dCIsIkRlcGVuZGVuY3kiLCJMaXN0IiwiR3JvdXAiLCJGaWVsZFNldCIsIlRleHQiLCJQYXNzd29yZCIsIlRleHRBcmVhIiwiQ2hlY2tib3giLCJDaGVja2JveEdyb3VwIiwiU3dpdGNoIiwiU2VsZWN0IiwiUmFkaW9Hcm91cCIsIlNsaWRlciIsIkRhdGVQaWNrZXIiLCJVcGxvYWQiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJEcmF3ZXJGb3JtIiwiRGlhbG9nRm9ybSIsIlF1ZXJ5RmlsdGVyIiwiQ1NTX1BSRUZJWCIsIldJRFRIX1NJWkVfTUFQIiwiREVGQVVMVF9DT0xfU1BBTiIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTU9ERVMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsV0FBVyxRQUFRLFdBQVc7QUFDbEQsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFDM0MsU0FBU0MsaUJBQWlCLFFBQVEscUJBQXFCO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsU0FBUyxRQUFRLGFBQWE7QUFDdkMsU0FDRUMsV0FBVyxFQUNYQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxvQkFBb0IsRUFDcEJDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLGVBQWUsUUFDVixVQUFVO0FBQ2pCLFNBQVNDLE9BQU8sSUFBSUMsZUFBZSxRQUFRLHNCQUFzQjtBQUVqRSxTQUFTQyxpQkFBaUIsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDOUQsT0FBTyxTQUFTO0FBRWhCO0FBQ0EsSUFBTUgsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUlJLE1BQXNCLEVBQW9CO0VBQ3pELElBQUFDLGdCQUFBLEdBQXlCSixlQUFlLENBQUNHLE1BQU0sQ0FBQztJQUF4Q0UsWUFBWSxHQUFBRCxnQkFBQSxDQUFaQyxZQUFZO0VBQ3BCLE9BQU8sQ0FBQ0EsWUFBWSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDtBQUNBLElBQU16QixPQUFPLEdBQUcwQixNQUFNLENBQUNDLE1BQU0sQ0FBQzFCLFdBQVcsRUFBRTtFQUN6QztFQUNBMkIsSUFBSSxFQUFFMUIsV0FBVztFQUNqQmlCLE9BQU8sRUFBUEEsT0FBTztFQUNQVSxXQUFXLEVBQUVQLGVBQWU7RUFDNUJRLFVBQVUsRUFBRVQsaUJBQWlCO0VBQzdCO0VBQ0FVLFVBQVUsRUFBRTVCLGlCQUFpQjtFQUM3QjZCLElBQUksRUFBRTVCLFdBQVc7RUFDakI2QixLQUFLLEVBQUU1QixZQUFZO0VBQ25CNkIsUUFBUSxFQUFFaEIsZUFBZTtFQUN6QlosU0FBUyxFQUFUQSxTQUFTO0VBQ1Q7RUFDQTZCLElBQUksRUFBRTVCLFdBQVc7RUFDakI2QixRQUFRLEVBQUU1QixlQUFlO0VBQ3pCNkIsUUFBUSxFQUFFNUIsZUFBZTtFQUN6QjZCLFFBQVEsRUFBRTVCLGVBQWU7RUFDekI2QixhQUFhLEVBQUU1QixvQkFBb0I7RUFDbkM2QixNQUFNLEVBQUU1QixhQUFhO0VBQ3JCNkIsTUFBTSxFQUFFNUIsYUFBYTtFQUNyQjZCLFVBQVUsRUFBRTVCLGlCQUFpQjtFQUM3QjZCLE1BQU0sRUFBRTVCLGFBQWE7RUFDckI2QixVQUFVLEVBQUU1QixpQkFBaUI7RUFDN0I2QixNQUFNLEVBQUU1QjtBQ2ZWLENEZ0JDLENBQUM7QUFFRixTQUFTakIsT0FBTyxFQUFFRSxXQUFXO0FBQzdCLGVBQWVGLE9BQU87QUFFdEI7QUFDQSxTQUNFOEMsa0JBQWtCLEVBQ2xCdkMsV0FBVyxFQUNYQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxvQkFBb0IsRUFDcEJDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLGVBQWUsUUFDVixVQUFVO0FBRWpCO0FBQ0EsU0FBU2YsaUJBQWlCLFFBQVEscUJBQXFCO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBUzBDLFVBQVUsUUFBUSxzQkFBc0I7QUFDakQsU0FBU0MsVUFBVSxRQUFRLHNCQUFzQjtBQUNqRCxTQUFTQyxXQUFXLFFBQVEsdUJBQXVCO0FBNEJuRCxTQUFTQyxVQUFVLEVBQUVDLGNBQWMsRUFBRUMsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxRQUFRLGFBQWEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBQcm9Gb3JtIGFzIFByb0Zvcm1CYXNlIH0gZnJvbSAnLi9Qcm9Gb3JtJztcbmltcG9ydCB7IFByb0Zvcm1JdGVtIH0gZnJvbSAnLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyBQcm9Gb3JtRGVwZW5kZW5jeSB9IGZyb20gJy4vUHJvRm9ybURlcGVuZGVuY3knO1xuaW1wb3J0IHsgUHJvRm9ybUxpc3QgfSBmcm9tICcuL1Byb0Zvcm1MaXN0JztcbmltcG9ydCB7IFByb0Zvcm1Hcm91cCB9IGZyb20gJy4vUHJvRm9ybUdyb3VwJztcbmltcG9ydCB7IFN1Ym1pdHRlciB9IGZyb20gJy4vU3VibWl0dGVyJztcbmltcG9ydCB7IFByb0Zvcm1UZXh0LCBQcm9Gb3JtUGFzc3dvcmQsIFByb0Zvcm1UZXh0QXJlYSwgUHJvRm9ybUNoZWNrYm94LCBQcm9Gb3JtQ2hlY2tib3hHcm91cCwgUHJvRm9ybVN3aXRjaCwgUHJvRm9ybVNlbGVjdCwgUHJvRm9ybVJhZGlvR3JvdXAsIFByb0Zvcm1TbGlkZXIsIFByb0Zvcm1EYXRlUGlja2VyLCBQcm9Gb3JtVXBsb2FkLCBQcm9Gb3JtRmllbGRTZXQsIH0gZnJvbSAnLi9maWVsZHMnO1xuaW1wb3J0IHsgdXNlRm9ybSBhcyB1c2VGb3JtSW50ZXJuYWwgfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCwgdXNlRm9ybUluc3RhbmNlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCAnLi9zdHlsZSc7XG4vKiogUHVibGljIGhvb2sg4oCUIHJldHVybnMgW0Zvcm1JbnN0YW5jZV0gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKi9cbmNvbnN0IHVzZUZvcm0gPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UgfSA9IHVzZUZvcm1JbnRlcm5hbChjb25maWcpO1xuICAgIHJldHVybiBbZm9ybUluc3RhbmNlXTtcbn07XG4vLyBDb21wb3NlIFByb0Zvcm0gd2l0aCBzdGF0aWMgc3ViLWNvbXBvbmVudHMgYW5kIGhvb2tzXG5jb25zdCBQcm9Gb3JtID0gT2JqZWN0LmFzc2lnbihQcm9Gb3JtQmFzZSwge1xuICAgIC8vIEl0ZW0gKyBjb3JlIGhvb2tzXG4gICAgSXRlbTogUHJvRm9ybUl0ZW0sXG4gICAgdXNlRm9ybSxcbiAgICB1c2VJbnN0YW5jZTogdXNlRm9ybUluc3RhbmNlLFxuICAgIHVzZUNvbnRleHQ6IHVzZVByb0Zvcm1Db250ZXh0LFxuICAgIC8vIENvbXBvc2l0aW9uXG4gICAgRGVwZW5kZW5jeTogUHJvRm9ybURlcGVuZGVuY3ksXG4gICAgTGlzdDogUHJvRm9ybUxpc3QsXG4gICAgR3JvdXA6IFByb0Zvcm1Hcm91cCxcbiAgICBGaWVsZFNldDogUHJvRm9ybUZpZWxkU2V0LFxuICAgIFN1Ym1pdHRlcixcbiAgICAvLyBGaWVsZHNcbiAgICBUZXh0OiBQcm9Gb3JtVGV4dCxcbiAgICBQYXNzd29yZDogUHJvRm9ybVBhc3N3b3JkLFxuICAgIFRleHRBcmVhOiBQcm9Gb3JtVGV4dEFyZWEsXG4gICAgQ2hlY2tib3g6IFByb0Zvcm1DaGVja2JveCxcbiAgICBDaGVja2JveEdyb3VwOiBQcm9Gb3JtQ2hlY2tib3hHcm91cCxcbiAgICBTd2l0Y2g6IFByb0Zvcm1Td2l0Y2gsXG4gICAgU2VsZWN0OiBQcm9Gb3JtU2VsZWN0LFxuICAgIFJhZGlvR3JvdXA6IFByb0Zvcm1SYWRpb0dyb3VwLFxuICAgIFNsaWRlcjogUHJvRm9ybVNsaWRlcixcbiAgICBEYXRlUGlja2VyOiBQcm9Gb3JtRGF0ZVBpY2tlcixcbiAgICBVcGxvYWQ6IFByb0Zvcm1VcGxvYWQsXG59KTtcbmV4cG9ydCB7IFByb0Zvcm0sIFByb0Zvcm1JdGVtIH07XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtO1xuLy8gTmFtZWQgZXhwb3J0cyBmb3IgZmllbGRzXG5leHBvcnQgeyBjcmVhdGVQcm9Gb3JtRmllbGQsIFByb0Zvcm1UZXh0LCBQcm9Gb3JtUGFzc3dvcmQsIFByb0Zvcm1UZXh0QXJlYSwgUHJvRm9ybUNoZWNrYm94LCBQcm9Gb3JtQ2hlY2tib3hHcm91cCwgUHJvRm9ybVN3aXRjaCwgUHJvRm9ybVNlbGVjdCwgUHJvRm9ybVJhZGlvR3JvdXAsIFByb0Zvcm1TbGlkZXIsIFByb0Zvcm1EYXRlUGlja2VyLCBQcm9Gb3JtVXBsb2FkLCBQcm9Gb3JtRmllbGRTZXQsIH0gZnJvbSAnLi9maWVsZHMnO1xuLy8gQ29tcG9zaXRpb24gKyBsYXlvdXRzXG5leHBvcnQgeyBQcm9Gb3JtRGVwZW5kZW5jeSB9IGZyb20gJy4vUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IHsgUHJvRm9ybUxpc3QgfSBmcm9tICcuL1Byb0Zvcm1MaXN0JztcbmV4cG9ydCB7IFByb0Zvcm1Hcm91cCB9IGZyb20gJy4vUHJvRm9ybUdyb3VwJztcbmV4cG9ydCB7IERyYXdlckZvcm0gfSBmcm9tICcuL2xheW91dHMvRHJhd2VyRm9ybSc7XG5leHBvcnQgeyBEaWFsb2dGb3JtIH0gZnJvbSAnLi9sYXlvdXRzL0RpYWxvZ0Zvcm0nO1xuZXhwb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuL2xheW91dHMvUXVlcnlGaWx0ZXInO1xuZXhwb3J0IHsgQ1NTX1BSRUZJWCwgV0lEVEhfU0laRV9NQVAsIERFRkFVTFRfQ09MX1NQQU4sIERFRkFVTFRfVEVYVCwgUFJPRk9STV9NT0RFUyB9IGZyb20gJy4vY29uc3RhbnRzJzsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode, FC, ReactElement, MutableRefObject, CSSProperties, FormHTMLAttributes } from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { FormInstance, FormSize, LabelAlign, ValidateStatus, ValidateTrigger, Rule } from './core/interface';
|
|
3
3
|
import type { ButtonProps } from "../Button";
|
|
4
4
|
import type { DrawerProps, DrawerPlacement } from "../Drawer";
|
|
5
5
|
import type { GridRowProps, GridColSize } from "../Grid";
|
|
@@ -22,22 +22,28 @@ export interface ProFormRequestOption {
|
|
|
22
22
|
value: unknown;
|
|
23
23
|
disabled?: boolean;
|
|
24
24
|
}
|
|
25
|
-
export interface ProFormFormInstance extends
|
|
25
|
+
export interface ProFormFormInstance extends FormInstance {
|
|
26
26
|
getFieldsFormatValue: () => Record<string, unknown>;
|
|
27
|
-
validateFieldsReturnFormatValue: () => {
|
|
27
|
+
validateFieldsReturnFormatValue: () => Promise<{
|
|
28
28
|
success: boolean;
|
|
29
29
|
values?: Record<string, unknown>;
|
|
30
30
|
errors?: Record<string, string>;
|
|
31
|
-
}
|
|
31
|
+
}>;
|
|
32
|
+
submitForm: () => Promise<void>;
|
|
32
33
|
}
|
|
33
34
|
export interface ProFormContextValue {
|
|
34
35
|
values: Record<string, unknown>;
|
|
35
36
|
errors: Record<string, string>;
|
|
36
37
|
touched: Record<string, boolean>;
|
|
38
|
+
validating: Record<string, boolean>;
|
|
37
39
|
formInstance: ProFormFormInstance;
|
|
38
40
|
setFieldValue: (name: string, value: unknown) => void;
|
|
39
41
|
setFieldError: (name: string, error: string | null) => void;
|
|
40
42
|
validateField: (name: string, rules: Rule[], providedValue?: unknown) => boolean;
|
|
43
|
+
validateFieldAsync: (name: string, value: unknown, rules: Rule[]) => Promise<{
|
|
44
|
+
isValid: boolean;
|
|
45
|
+
error: string | null;
|
|
46
|
+
}>;
|
|
41
47
|
registerField: (name: string, rules: Rule[]) => void;
|
|
42
48
|
unregisterField: (name: string) => void;
|
|
43
49
|
size: FormSize;
|
|
@@ -124,7 +130,7 @@ export interface SubmitterProps {
|
|
|
124
130
|
submitText?: ReactNode;
|
|
125
131
|
resetText?: ReactNode;
|
|
126
132
|
render?: (props: {
|
|
127
|
-
form:
|
|
133
|
+
form: ProFormFormInstance;
|
|
128
134
|
submit: () => void;
|
|
129
135
|
reset: () => void;
|
|
130
136
|
}, dom: ReactElement[]) => ReactNode;
|
|
@@ -97,5 +97,6 @@ export var RadioGroup = function RadioGroup(props) {
|
|
|
97
97
|
})
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
+
RadioGroup.displayName = 'RadioGroup';
|
|
100
101
|
export default /*#__PURE__*/memo(RadioGroup);
|
|
101
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUmFkaW8vUmFkaW9Hcm91cC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUmFkaW8vUmFkaW9Hcm91cC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIm1lbW8iLCJ1c2VNZW1vIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIlJBRElPX0RFRkFVTFRfQUxJR05NRU5UIiwiUkFESU9fREVGQVVMVF9MQVlPVVQiLCJSQURJT19ERUZBVUxUX1NJWkUiLCJSQURJT19ERUZBVUxUX1ZBUklBTlQiLCJSQURJT19HUk9VUF9QUkVGSVhfQ0xTIiwiUkFESU9fVkFSSUFOVF9DRUxMIiwiUmFkaW9Hcm91cFByb3ZpZGVyIiwiUmFkaW8iLCJSYWRpb0dyb3VwIiwicHJvcHMiLCJfYSIsInJlZiIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaWQiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm5hbWUiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImxheW91dCIsImRpcmVjdGlvbiIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImFsaWdubWVudCIsImxhYmVsUGxhY2VtZW50IiwiZ2FwIiwib3B0aW9ucyIsImNoaWxkcmVuIiwidGl0bGUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIm9uQ2hhbmdlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImNsYXNzZXMiLCJyZXNvbHZlZERpcmVjdGlvbiIsInJlc29sdmVkQWxpZ25tZW50IiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJuZXh0VmFsdWUiLCJ0YXJnZXQiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJpcyIsImNvbnRleHRWYWx1ZSIsImNvbnRlbnQiLCJtYXAiLCJvcHQiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwiaWNvbiIsInRhZyIsInJlcXVpcmVkIiwiU3RyaW5nIiwiZ2FwU3R5bGUiLCJyb2xlIiwic3R5bGUiXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUNyQyxTQUFTQyxrQkFBa0IsRUFBRUMsZ0JBQWdCLFFBQVEsZUFBZTtBQUNwRSxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUNFQyx1QkFBdUIsRUFDdkJDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxxQkFBcUIsRUFDckJDLHNCQUFzQixFQUN0QkMsa0JBQWtCLFFBQ2IsYUFBYTtBQUNwQixTQUFTQyxrQkFBa0IsUUFBUSxxQkFBcUI7QUFDeEQsU0FBU0MsS0FBSyxRQUFRLFNBQVM7QUFRL0IsT0FBTyxJQUFNQyxVQUFVLEdBQXdCLFNBQWxDQSxVQUFVQSxDQUF5QkMsS0FBSyxFQUFJO0VEWnJELElBQUlDLEVBQUU7RUNhUixJQUNFQyxHQUFHLEdBcUJERixLQUFLLENBckJQRSxHQUFHO0lBQUFDLGdCQUFBLEdBcUJESCxLQUFLLENBcEJQSSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxFQUFFLEdBQUFBLGdCQUFBO0lBQUFFLGdCQUFBLEdBb0JaTCxLQUFLLENBbkJQTSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBR1Ysc0JBQXNCLEdBQUFVLGdCQUFBO0lBQ2xDRSxFQUFFLEdBa0JBUCxLQUFLLENBbEJQTyxFQUFFO0lBQ0ZDLEtBQUssR0FpQkhSLEtBQUssQ0FqQlBRLEtBQUs7SUFDTEMsWUFBWSxHQWdCVlQsS0FBSyxDQWhCUFMsWUFBWTtJQUNaQyxJQUFJLEdBZUZWLEtBQUssQ0FmUFUsSUFBSTtJQUFBQyxlQUFBLEdBZUZYLEtBQUssQ0FkUFksUUFBUTtJQUFSQSxRQUFRLEdBQUFELGVBQUEsY0FBRyxLQUFLLEdBQUFBLGVBQUE7SUFDaEJFLE1BQU0sR0FhSmIsS0FBSyxDQWJQYSxNQUFNO0lBQ05DLFNBQVMsR0FZUGQsS0FBSyxDQVpQYyxTQUFTO0lBQUFDLGNBQUEsR0FZUGYsS0FBSyxDQVhQZ0IsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBR3JCLHFCQUFxQixHQUFBcUIsY0FBQTtJQUFBRSxXQUFBLEdBVzdCakIsS0FBSyxDQVZQa0IsSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBR3hCLGtCQUFrQixHQUFBd0IsV0FBQTtJQUN6QkUsU0FBUyxHQVNQbkIsS0FBSyxDQVRQbUIsU0FBUztJQUNUQyxjQUFjLEdBUVpwQixLQUFLLENBUlBvQixjQUFjO0lBQ2RDLEdBQUcsR0FPRHJCLEtBQUssQ0FQUHFCLEdBQUc7SUFDSEMsT0FBTyxHQU1MdEIsS0FBSyxDQU5Qc0IsT0FBTztJQUNQQyxRQUFRLEdBS052QixLQUFLLENBTFB1QixRQUFRO0lBQ1JDLEtBQUssR0FJSHhCLEtBQUssQ0FKUHdCLEtBQUs7SUFDU0MsU0FBUyxHQUdyQnpCLEtBQUssQ0FIUCxZQUFZO0lBQ08wQixjQUFjLEdBRS9CMUIsS0FBSyxDQUZQLGlCQUFpQjtJQUNqQjJCLFFBQVEsR0FDTjNCLEtBQUssQ0FEUDJCLFFBQVE7RUFHVixJQUFBQyxtQkFBQSxHQUFvQzFDLGtCQUFrQixDQUVwRHVCLFlBQVksRUFBRUQsS0FBSyxDQUFDO0lBQUFxQixvQkFBQSxHQUFBQyxjQUFBLENBQUFGLG1CQUFBO0lBRmZHLFVBQVUsR0FBQUYsb0JBQUE7SUFBRUcsYUFBYSxHQUFBSCxvQkFBQTtFQUloQyxJQUFNSSxPQUFPLEdBQUc1QyxVQUFVLENBQUNpQixTQUFTLENBQUM7RUFDckMsSUFBTTRCLGlCQUFpQixHQUFHLENBQUFqQyxFQUFBLEdBQUFhLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxHQUFJRCxNQUFNLE1BQUEsSUFBQSxJQUFBWixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSVQsb0JBQW9CO0VBQ3JFLElBQU0yQyxpQkFBaUIsR0FBR2hCLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxHQUFJNUIsdUJBQXVCO0VBRTlELElBQU02QyxZQUFZLEdBQUdqRCxnQkFBZ0IsQ0FBQyxVQUFDa0QsS0FBdUIsRUFBSTtJQUNoRSxJQUFJekIsUUFBUSxFQUFFO0lBRWQsSUFBTTBCLFNBQVMsR0FBR0QsS0FBSyxDQUFDRSxNQUFNLENBQUMvQixLQUFLO0lBRXBDLElBQUk4QixTQUFTLEtBQUtFLFNBQVMsSUFBSUMsTUFBTSxDQUFDQyxFQUFFLENBQUNKLFNBQVMsRUFBRVAsVUFBVSxDQUFDLEVBQUU7TUFDL0Q7SUFDRjtJQUVBQyxhQUFhLENBQUNNLFNBQVMsQ0FBQztJQUN4QlgsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUdVLEtBQUssQ0FBQztFQUNuQixDQUFDLENBQUM7RUFFRixJQUFNTSxZQUFZLEdBQUcxRCxPQUFPLENBQzFCO0lBQUEsT0FBTztNQUNMdUIsS0FBSyxFQUFFdUIsVUFBVTtNQUNqQkosUUFBUSxFQUFFUyxZQUFZO01BQ3RCeEIsUUFBUSxFQUFSQSxRQUFRO01BQ1JGLElBQUksRUFBSkEsSUFBSTtNQUNKTSxPQUFPLEVBQVBBLE9BQU87TUFDUEUsSUFBSSxFQUFKQSxJQUFJO01BQ0pDLFNBQVMsRUFBRWdCLGlCQUFpQjtNQUM1QmYsY0FBYyxFQUFkQTtJRDFDRixDQzJDQztFQUFBLENBQUMsRUFDRixDQUFDVyxVQUFVLEVBQUVLLFlBQVksRUFBRXhCLFFBQVEsRUFBRUYsSUFBSSxFQUFFTSxPQUFPLEVBQUVFLElBQUksRUFBRWlCLGlCQUFpQixFQUFFZixjQUFjLENBQUMsQ0FDN0Y7RUFFRCxJQUFNd0IsT0FBTyxHQUNYckIsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLEdBQ1JELE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFFdUIsR0FBRyxDQUFDLFVBQUNDLEdBQUc7SUFBQSxPQUNmL0QsSUFBQSxDQUFDZSxLQUFLLEVBQUE7TUFFSlMsRUFBRSxFQUFFdUMsR0FBRyxDQUFDdkMsRUFBRTtNQUNWQyxLQUFLLEVBQUVzQyxHQUFHLENBQUN0QyxLQUFLO01BQ2hCdUMsS0FBSyxFQUFFRCxHQUFHLENBQUNDLEtBQUs7TUFDaEJDLFdBQVcsRUFBRUYsR0FBRyxDQUFDRSxXQUFXO01BQzVCaEMsT0FBTyxFQUFFOEIsR0FBRyxDQUFDOUIsT0FBTztNQUNwQkUsSUFBSSxFQUFFNEIsR0FBRyxDQUFDNUIsSUFBSTtNQUNkQyxTQUFTLEVBQUUyQixHQUFHLENBQUMzQixTQUFTO01BQ3hCQyxjQUFjLEVBQUUwQixHQUFHLENBQUMxQixjQUFjO01BQ2xDNkIsSUFBSSxFQUFFSCxHQUFHLENBQUNHLElBQUk7TUFDZEMsR0FBRyxFQUFFSixHQUFHLENBQUNJLEdBQUc7TUFDWnRDLFFBQVEsRUFBRWtDLEdBQUcsQ0FBQ2xDLFFBQVE7TUFDdEJ1QyxRQUFRLEVBQUVMLEdBQUcsQ0FBQ0ssUUFBUTtNQUN0QjNCLEtBQUssRUFBRXNCLEdBQUcsQ0FBQ3RCO0lBQUssQ0FBQSxFQWJYNEIsTUFBTSxDQUFDTixHQUFHLENBQUN0QyxLQUFLLENBQUMsQ0FjdEI7RUFBQSxDQUNILENBQUM7RUFFSixJQUFNNkMsUUFBUSxHQUFHaEMsR0FBRyxLQUFLbUIsU0FBUyxHQUFHO0lBQUVuQixHQUFHLEVBQUhBO0VBQUcsQ0FBRSxHQUFHbUIsU0FBUztFQUV4RCxPQUNFekQsSUFBQSxDQUFDYyxrQkFBa0IsRUFBQTtJQUFDVyxLQUFLLEVBQUVtQyxZQUFZO0lBQUFwQixRQUFBLEVBQ3JDeEMsSUFBQSxDQUFBLEtBQUEsRUFBQTtNQUNFbUIsR0FBRyxFQUFFQSxHQUFHO01BQ1JLLEVBQUUsRUFBRUEsRUFBRTtNQUNOaUIsS0FBSyxFQUFFQSxLQUFLO01BQUEsWUFBQSxFQUNBQyxTQUFTO01BQUEsaUJBQUEsRUFDSkMsY0FBYztNQUMvQnRCLFNBQVMsRUFBRTZCLE9BQU8sQ0FDaEIsS0FBSyxDQUFDLEVBQ04zQyxPQUFPLENBQUMyQyxPQUFPLENBQUNDLGlCQUFpQixDQUFDLEVBQUVsQixPQUFPLEtBQUtwQixrQkFBa0IsSUFBSXFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTdCLFNBQVMsQ0FBQyxDQUNsRztNQUNEa0QsSUFBSSxFQUFDLFlBQVk7TUFDakJDLEtBQUssRUFBRUYsUUFBUTtNQUFBOUIsUUFBQSxFQUVkcUI7SUFBTyxDQUFBO0VBQ0osQ0FBQSxDQUNhO0FBRXpCLENBQUM7QUFFRCw0QkFBZTVELElBQUksQ0FBQ2UsVUFBVSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvUmFkaW8vUmFkaW9Hcm91cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IFJBRElPX0RFRkFVTFRfQUxJR05NRU5ULCBSQURJT19ERUZBVUxUX0xBWU9VVCwgUkFESU9fREVGQVVMVF9TSVpFLCBSQURJT19ERUZBVUxUX1ZBUklBTlQsIFJBRElPX0dST1VQX1BSRUZJWF9DTFMsIFJBRElPX1ZBUklBTlRfQ0VMTCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwUHJvdmlkZXIgfSBmcm9tICcuL1JhZGlvR3JvdXBDb250ZXh0JztcbmltcG9ydCB7IFJhZGlvIH0gZnJvbSAnLi9SYWRpbyc7XG5leHBvcnQgY29uc3QgUmFkaW9Hcm91cCA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IHJlZiwgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9IFJBRElPX0dST1VQX1BSRUZJWF9DTFMsIGlkLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBuYW1lLCBkaXNhYmxlZCA9IGZhbHNlLCBsYXlvdXQsIGRpcmVjdGlvbiwgdmFyaWFudCA9IFJBRElPX0RFRkFVTFRfVkFSSUFOVCwgc2l6ZSA9IFJBRElPX0RFRkFVTFRfU0laRSwgYWxpZ25tZW50LCBsYWJlbFBsYWNlbWVudCwgZ2FwLCBvcHRpb25zLCBjaGlsZHJlbiwgdGl0bGUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIG9uQ2hhbmdlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSwgdmFsdWUpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgcmVzb2x2ZWREaXJlY3Rpb24gPSAoX2EgPSBkaXJlY3Rpb24gIT09IG51bGwgJiYgZGlyZWN0aW9uICE9PSB2b2lkIDAgPyBkaXJlY3Rpb24gOiBsYXlvdXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFJBRElPX0RFRkFVTFRfTEFZT1VUO1xuICAgIGNvbnN0IHJlc29sdmVkQWxpZ25tZW50ID0gYWxpZ25tZW50ICE9PSBudWxsICYmIGFsaWdubWVudCAhPT0gdm9pZCAwID8gYWxpZ25tZW50IDogUkFESU9fREVGQVVMVF9BTElHTk1FTlQ7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgIGlmIChuZXh0VmFsdWUgPT09IHVuZGVmaW5lZCB8fCBPYmplY3QuaXMobmV4dFZhbHVlLCBpbm5lclZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHZhbHVlOiBpbm5lclZhbHVlLFxuICAgICAgICBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgYWxpZ25tZW50OiByZXNvbHZlZEFsaWdubWVudCxcbiAgICAgICAgbGFiZWxQbGFjZW1lbnQsXG4gICAgfSksIFtpbm5lclZhbHVlLCBoYW5kbGVDaGFuZ2UsIGRpc2FibGVkLCBuYW1lLCB2YXJpYW50LCBzaXplLCByZXNvbHZlZEFsaWdubWVudCwgbGFiZWxQbGFjZW1lbnRdKTtcbiAgICBjb25zdCBjb250ZW50ID0gY2hpbGRyZW4gIT09IG51bGwgJiYgY2hpbGRyZW4gIT09IHZvaWQgMCA/IGNoaWxkcmVuIDogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1hcCgob3B0KSA9PiAoX2pzeChSYWRpbywgeyBpZDogb3B0LmlkLCB2YWx1ZTogb3B0LnZhbHVlLCBsYWJlbDogb3B0LmxhYmVsLCBkZXNjcmlwdGlvbjogb3B0LmRlc2NyaXB0aW9uLCB2YXJpYW50OiBvcHQudmFyaWFudCwgc2l6ZTogb3B0LnNpemUsIGFsaWdubWVudDogb3B0LmFsaWdubWVudCwgbGFiZWxQbGFjZW1lbnQ6IG9wdC5sYWJlbFBsYWNlbWVudCwgaWNvbjogb3B0Lmljb24sIHRhZzogb3B0LnRhZywgZGlzYWJsZWQ6IG9wdC5kaXNhYmxlZCwgcmVxdWlyZWQ6IG9wdC5yZXF1aXJlZCwgdGl0bGU6IG9wdC50aXRsZSB9LCBTdHJpbmcob3B0LnZhbHVlKSkpKTtcbiAgICBjb25zdCBnYXBTdHlsZSA9IGdhcCAhPT0gdW5kZWZpbmVkID8geyBnYXAgfSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Hcm91cFByb3ZpZGVyLCB7IHZhbHVlOiBjb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgcmVmOiByZWYsIGlkOiBpZCwgdGl0bGU6IHRpdGxlLCBcImFyaWEtbGFiZWxcIjogYXJpYUxhYmVsLCBcImFyaWEtbGFiZWxsZWRieVwiOiBhcmlhTGFiZWxsZWRCeSwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjbGFzc2VzKHJlc29sdmVkRGlyZWN0aW9uKSwgdmFyaWFudCA9PT0gUkFESU9fVkFSSUFOVF9DRUxMICYmIGNsYXNzZXMoJ2NlbGwnKSwgY2xhc3NOYW1lKSksIHJvbGU6IFwicmFkaW9ncm91cFwiLCBzdHlsZTogZ2FwU3R5bGUsIGNoaWxkcmVuOiBjb250ZW50IH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKFJhZGlvR3JvdXApOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
102
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUmFkaW8vUmFkaW9Hcm91cC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUmFkaW8vUmFkaW9Hcm91cC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIm1lbW8iLCJ1c2VNZW1vIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIlJBRElPX0RFRkFVTFRfQUxJR05NRU5UIiwiUkFESU9fREVGQVVMVF9MQVlPVVQiLCJSQURJT19ERUZBVUxUX1NJWkUiLCJSQURJT19ERUZBVUxUX1ZBUklBTlQiLCJSQURJT19HUk9VUF9QUkVGSVhfQ0xTIiwiUkFESU9fVkFSSUFOVF9DRUxMIiwiUmFkaW9Hcm91cFByb3ZpZGVyIiwiUmFkaW8iLCJSYWRpb0dyb3VwIiwicHJvcHMiLCJfYSIsInJlZiIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaWQiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm5hbWUiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImxheW91dCIsImRpcmVjdGlvbiIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImFsaWdubWVudCIsImxhYmVsUGxhY2VtZW50IiwiZ2FwIiwib3B0aW9ucyIsImNoaWxkcmVuIiwidGl0bGUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIm9uQ2hhbmdlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImNsYXNzZXMiLCJyZXNvbHZlZERpcmVjdGlvbiIsInJlc29sdmVkQWxpZ25tZW50IiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJuZXh0VmFsdWUiLCJ0YXJnZXQiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJpcyIsImNvbnRleHRWYWx1ZSIsImNvbnRlbnQiLCJtYXAiLCJvcHQiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwiaWNvbiIsInRhZyIsInJlcXVpcmVkIiwiU3RyaW5nIiwiZ2FwU3R5bGUiLCJyb2xlIiwic3R5bGUiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxRQUFRLG1CQUFtQjtBQ0EvQyxTQUFTQyxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3JDLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsd0JBQXdCO0FBQ3ZFLFNBQ0VDLHVCQUF1QixFQUN2QkMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLHFCQUFxQixFQUNyQkMsc0JBQXNCLEVBQ3RCQyxrQkFBa0IsUUFDYixhQUFhO0FBQ3BCLFNBQVNDLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTQyxLQUFLLFFBQVEsU0FBUztBQVEvQixPQUFPLElBQU1DLFVBQVUsR0FBd0IsU0FBbENBLFVBQVVBLENBQXlCQyxLQUFLLEVBQUk7RURackQsSUFBSUMsRUFBRTtFQ2FSLElBQ0VDLEdBQUcsR0FxQkRGLEtBQUssQ0FyQlBFLEdBQUc7SUFBQUMsZ0JBQUEsR0FxQkRILEtBQUssQ0FwQlBJLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFBQUUsZ0JBQUEsR0FvQlpMLEtBQUssQ0FuQlBNLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHVixzQkFBc0IsR0FBQVUsZ0JBQUE7SUFDbENFLEVBQUUsR0FrQkFQLEtBQUssQ0FsQlBPLEVBQUU7SUFDRkMsS0FBSyxHQWlCSFIsS0FBSyxDQWpCUFEsS0FBSztJQUNMQyxZQUFZLEdBZ0JWVCxLQUFLLENBaEJQUyxZQUFZO0lBQ1pDLElBQUks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RUFDckN4QyxJQUFBLENBQUEsS0FBQSxFQUFBO01BQ0VtQixHQUFHLEVBQUVBLEdBQUc7TUFDUkssRUFBRSxFQUFFQSxFQUFFO01BQ05pQixLQUFLLEVBQUVBLEtBQUs7TUFBQSxZQUFBLEVBQ0FDLFNBQVM7TUFBQSxpQkFBQSxFQUNKQyxjQUFjO01BQy9CdEIsU0FBUyxFQUFFNkIsT0FBTyxDQUNoQixLQUFLLENBQUMsRUFDTjNDLE9BQU8sQ0FBQzJDLE9BQU8sQ0FBQ0MsaUJBQWlCLENBQUMsRUFBRWxCLE9BQU8sS0FBS3BCLGtCQUFrQixJQUFJcUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFN0IsU0FBUyxDQUFDLENBQ2xHO01BQ0RrRCxJQUFJLEVBQUMsWUFBWTtNQUNqQkMsS0FBSyxFQUFFRixRQUFRO01BQUE5QixRQUFBLEVBRWRxQjtJQUFPLENBQUE7RUFDSixDQUFBLENBQ2E7QUFFekIsQ0FBQztBQUVEN0MsVUFBVSxDQUFDeUQsV0FBVyxHQUFHLFlBQVk7QUFFckMsNEJBQWV4RSxJQUFJLENBQUNlLFVBQVUsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1JhZGlvL1JhZGlvR3JvdXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSQURJT19ERUZBVUxUX0FMSUdOTUVOVCwgUkFESU9fREVGQVVMVF9MQVlPVVQsIFJBRElPX0RFRkFVTFRfU0laRSwgUkFESU9fREVGQVVMVF9WQVJJQU5ULCBSQURJT19HUk9VUF9QUkVGSVhfQ0xTLCBSQURJT19WQVJJQU5UX0NFTEwsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUmFkaW9Hcm91cFByb3ZpZGVyIH0gZnJvbSAnLi9SYWRpb0dyb3VwQ29udGV4dCc7XG5pbXBvcnQgeyBSYWRpbyB9IGZyb20gJy4vUmFkaW8nO1xuZXhwb3J0IGNvbnN0IFJhZGlvR3JvdXAgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyByZWYsIGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSBSQURJT19HUk9VUF9QUkVGSVhfQ0xTLCBpZCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgbmFtZSwgZGlzYWJsZWQgPSBmYWxzZSwgbGF5b3V0LCBkaXJlY3Rpb24sIHZhcmlhbnQgPSBSQURJT19ERUZBVUxUX1ZBUklBTlQsIHNpemUgPSBSQURJT19ERUZBVUxUX1NJWkUsIGFsaWdubWVudCwgbGFiZWxQbGFjZW1lbnQsIGdhcCwgb3B0aW9ucywgY2hpbGRyZW4sIHRpdGxlLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBvbkNoYW5nZSwgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUsIHZhbHVlKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHJlc29sdmVkRGlyZWN0aW9uID0gKF9hID0gZGlyZWN0aW9uICE9PSBudWxsICYmIGRpcmVjdGlvbiAhPT0gdm9pZCAwID8gZGlyZWN0aW9uIDogbGF5b3V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBSQURJT19ERUZBVUxUX0xBWU9VVDtcbiAgICBjb25zdCByZXNvbHZlZEFsaWdubWVudCA9IGFsaWdubWVudCAhPT0gbnVsbCAmJiBhbGlnbm1lbnQgIT09IHZvaWQgMCA/IGFsaWdubWVudCA6IFJBRElPX0RFRkFVTFRfQUxJR05NRU5UO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAobmV4dFZhbHVlID09PSB1bmRlZmluZWQgfHwgT2JqZWN0LmlzKG5leHRWYWx1ZSwgaW5uZXJWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICB2YWx1ZTogaW5uZXJWYWx1ZSxcbiAgICAgICAgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGFsaWdubWVudDogcmVzb2x2ZWRBbGlnbm1lbnQsXG4gICAgICAgIGxhYmVsUGxhY2VtZW50LFxuICAgIH0pLCBbaW5uZXJWYWx1ZSwgaGFuZGxlQ2hhbmdlLCBkaXNhYmxlZCwgbmFtZSwgdmFyaWFudCwgc2l6ZSwgcmVzb2x2ZWRBbGlnbm1lbnQsIGxhYmVsUGxhY2VtZW50XSk7XG4gICAgY29uc3QgY29udGVudCA9IGNoaWxkcmVuICE9PSBudWxsICYmIGNoaWxkcmVuICE9PSB2b2lkIDAgPyBjaGlsZHJlbiA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tYXAoKG9wdCkgPT4gKF9qc3goUmFkaW8sIHsgaWQ6IG9wdC5pZCwgdmFsdWU6IG9wdC52YWx1ZSwgbGFiZWw6IG9wdC5sYWJlbCwgZGVzY3JpcHRpb246IG9wdC5kZXNjcmlwdGlvbiwgdmFyaWFudDogb3B0LnZhcmlhbnQsIHNpemU6IG9wdC5zaXplLCBhbGlnbm1lbnQ6IG9wdC5hbGlnbm1lbnQsIGxhYmVsUGxhY2VtZW50OiBvcHQubGFiZWxQbGFjZW1lbnQsIGljb246IG9wdC5pY29uLCB0YWc6IG9wdC50YWcsIGRpc2FibGVkOiBvcHQuZGlzYWJsZWQsIHJlcXVpcmVkOiBvcHQucmVxdWlyZWQsIHRpdGxlOiBvcHQudGl0bGUgfSwgU3RyaW5nKG9wdC52YWx1ZSkpKSk7XG4gICAgY29uc3QgZ2FwU3R5bGUgPSBnYXAgIT09IHVuZGVmaW5lZCA/IHsgZ2FwIH0gOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFJhZGlvR3JvdXBQcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IHJlZjogcmVmLCBpZDogaWQsIHRpdGxlOiB0aXRsZSwgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCwgXCJhcmlhLWxhYmVsbGVkYnlcIjogYXJpYUxhYmVsbGVkQnksIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NlcyhyZXNvbHZlZERpcmVjdGlvbiksIHZhcmlhbnQgPT09IFJBRElPX1ZBUklBTlRfQ0VMTCAmJiBjbGFzc2VzKCdjZWxsJyksIGNsYXNzTmFtZSkpLCByb2xlOiBcInJhZGlvZ3JvdXBcIiwgc3R5bGU6IGdhcFN0eWxlLCBjaGlsZHJlbjogY29udGVudCB9KSB9KSk7XG59O1xuUmFkaW9Hcm91cC5kaXNwbGF5TmFtZSA9ICdSYWRpb0dyb3VwJztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oUmFkaW9Hcm91cCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|