@onepercentio/one-ui 0.29.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +2 -1
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +1 -1
- package/dist/components/Button/Button.d.ts +3 -2
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/EmailInput/EmailInput.d.ts +0 -1
- package/dist/components/Form/Form.d.ts +15 -49
- package/dist/components/Form/{v2/Form.hook.d.ts → Form.hook.d.ts} +1 -1
- package/dist/components/Form/Form.hook.js +233 -0
- package/dist/components/Form/Form.js +67 -123
- package/{dist-ts/components/Form/v2 → dist/components/Form}/Form.types.d.ts +1 -0
- package/dist/components/Form/Form.types.js +40 -0
- package/{dist-ts/components/Form/v2 → dist/components/Form}/FormField/Extensions/DateField/DateField.d.ts +3 -1
- package/dist/components/Form/FormField/Extensions/DateField/DateField.js +71 -0
- package/dist/components/Form/FormField/Extensions/DateField/index.js +26 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +90 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/index.js +26 -0
- package/dist/components/Form/FormField/FormField.js +276 -0
- package/{dist-ts/components/Form/v2 → dist/components/Form}/FormField/FormField.types.d.ts +8 -6
- package/dist/components/Form/FormField/FormField.types.js +12 -0
- package/dist/components/Form/FormField/index.js +26 -0
- package/dist/components/Form/index.js +1 -1
- package/dist/components/Input/Input.d.ts +0 -6
- package/dist/components/Input/Input.js +9 -20
- package/dist/components/Input/Input.module.scss +0 -32
- package/dist/components/LinkToId/LinkToId.d.ts +3 -2
- package/dist/components/LinkToId/LinkToId.js +1 -1
- package/dist/components/PasswordInput/PasswordInput.d.ts +0 -1
- package/dist/components/Radio/Radio.d.ts +1 -0
- package/dist/components/Radio/Radio.js +2 -1
- package/dist/components/SectionContainer/SectionContainer.js +1 -1
- package/dist/components/Select/Select.js +1 -2
- package/dist/components/Spacing/Spacing.d.ts +2 -1
- package/dist/components/Spacing/Spacing.js +1 -1
- package/dist/components/Tabs/Tabs.js +5 -3
- package/dist/components/Text/Text.d.ts +5 -4
- package/dist/components/Text/Text.js +2 -2
- package/dist/components/Text/Text.module.scss +3 -71
- package/dist/context/AsyncProcess.d.ts +5 -4
- package/dist/context/AsyncProcess.js +1 -1
- package/dist/context/OneUIProvider.d.ts +37 -22
- package/dist/context/OneUIProvider.js +1 -1
- package/dist/hooks/useHero.js +6 -2
- package/dist/hooks/useShortIntl.d.ts +2 -1
- package/dist/hooks/useShortIntl.js +1 -1
- package/dist/index.d.ts +7 -10
- package/dist/index.js +154 -180
- package/dist/index.preprocess.js +4 -3
- package/dist/type-utils.d.ts +11 -1
- package/dist/type-utils.js +1 -1
- package/dist/utility.d.js +1 -17
- package/dist-ts/components/AdaptiveDialog/AdaptiveDialog.d.ts +2 -1
- package/dist-ts/components/AdaptiveDialog/AdaptiveDialog.js.map +1 -1
- package/dist-ts/components/Button/Button.d.ts +3 -2
- package/dist-ts/components/Button/Button.js.map +1 -1
- package/dist-ts/components/EmailInput/EmailInput.d.ts +0 -1
- package/dist-ts/components/Form/Form.d.ts +15 -49
- package/dist-ts/components/Form/{v2/Form.hook.d.ts → Form.hook.d.ts} +1 -1
- package/dist-ts/components/Form/{v2/Form.hook.js → Form.hook.js} +9 -5
- package/dist-ts/components/Form/Form.hook.js.map +1 -0
- package/dist-ts/components/Form/Form.js +37 -66
- package/dist-ts/components/Form/Form.js.map +1 -1
- package/{dist/components/Form/v2 → dist-ts/components/Form}/Form.types.d.ts +1 -0
- package/dist-ts/components/Form/Form.types.js.map +1 -0
- package/{dist/components/Form/v2 → dist-ts/components/Form}/FormField/Extensions/DateField/DateField.d.ts +3 -1
- package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/DateField/DateField.js +6 -6
- package/dist-ts/components/Form/FormField/Extensions/DateField/DateField.js.map +1 -0
- package/dist-ts/components/Form/FormField/Extensions/DateField/index.js.map +1 -0
- package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/PhoneField.js +4 -4
- package/dist-ts/components/Form/FormField/Extensions/PhoneField/PhoneField.js.map +1 -0
- package/dist-ts/components/Form/FormField/Extensions/PhoneField/index.js.map +1 -0
- package/dist-ts/components/Form/{v2/FormField → FormField}/FormField.js +15 -16
- package/dist-ts/components/Form/FormField/FormField.js.map +1 -0
- package/{dist/components/Form/v2 → dist-ts/components/Form}/FormField/FormField.types.d.ts +8 -6
- package/dist-ts/components/Form/FormField/FormField.types.js.map +1 -0
- package/dist-ts/components/Form/FormField/index.js.map +1 -0
- package/dist-ts/components/Form/index.js.map +1 -1
- package/dist-ts/components/Input/Input.d.ts +0 -6
- package/dist-ts/components/Input/Input.js +4 -15
- package/dist-ts/components/Input/Input.js.map +1 -1
- package/dist-ts/components/Input/Input.module.scss +0 -32
- package/dist-ts/components/LinkToId/LinkToId.d.ts +3 -2
- package/dist-ts/components/LinkToId/LinkToId.js.map +1 -1
- package/dist-ts/components/PasswordInput/PasswordInput.d.ts +0 -1
- package/dist-ts/components/Radio/Radio.d.ts +1 -0
- package/dist-ts/components/Radio/Radio.js +1 -1
- package/dist-ts/components/Radio/Radio.js.map +1 -1
- package/dist-ts/components/SectionContainer/SectionContainer.js.map +1 -1
- package/dist-ts/components/Select/Select.js +1 -1
- package/dist-ts/components/Select/Select.js.map +1 -1
- package/dist-ts/components/Spacing/Spacing.d.ts +2 -1
- package/dist-ts/components/Spacing/Spacing.js.map +1 -1
- package/dist-ts/components/Tabs/Tabs.js +4 -2
- package/dist-ts/components/Tabs/Tabs.js.map +1 -1
- package/dist-ts/components/Text/Text.d.ts +5 -4
- package/dist-ts/components/Text/Text.js +1 -1
- package/dist-ts/components/Text/Text.js.map +1 -1
- package/dist-ts/components/Text/Text.module.scss +3 -71
- package/dist-ts/context/AsyncProcess.d.ts +5 -4
- package/dist-ts/context/AsyncProcess.js.map +1 -1
- package/dist-ts/context/OneUIProvider.d.ts +37 -22
- package/dist-ts/context/OneUIProvider.js.map +1 -1
- package/dist-ts/hooks/useHero.js +3 -1
- package/dist-ts/hooks/useHero.js.map +1 -1
- package/dist-ts/hooks/useShortIntl.d.ts +2 -1
- package/dist-ts/hooks/useShortIntl.js.map +1 -1
- package/dist-ts/index.d.ts +7 -10
- package/dist-ts/index.js +7 -10
- package/dist-ts/index.js.map +1 -1
- package/dist-ts/index.preprocess.js +16 -12
- package/dist-ts/index.preprocess.js.map +1 -1
- package/dist-ts/type-utils.d.ts +11 -1
- package/package.json +9 -6
- package/tsconfig.prod.json +1 -0
- package/dist/components/Form/v2/Form.d.ts +0 -18
- package/dist/components/Form/v2/Form.hook.js +0 -230
- package/dist/components/Form/v2/Form.js +0 -63
- package/dist/components/Form/v2/Form.types.js +0 -40
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +0 -68
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +0 -26
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +0 -90
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +0 -26
- package/dist/components/Form/v2/FormField/FormField.js +0 -281
- package/dist/components/Form/v2/FormField/FormField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/FormField.types.js +0 -12
- package/dist/components/Form/v2/FormField/index.js +0 -26
- package/dist/components/Form/v2/index.d.ts +0 -2
- package/dist/components/Form/v2/index.js +0 -26
- package/dist/hooks/useForm.d.ts +0 -16
- package/dist/hooks/useForm.js +0 -38
- package/dist/test.d.ts +0 -0
- package/dist/test.js +0 -2
- package/dist-ts/components/Form/v2/Form.d.ts +0 -18
- package/dist-ts/components/Form/v2/Form.hook.js.map +0 -1
- package/dist-ts/components/Form/v2/Form.js +0 -31
- package/dist-ts/components/Form/v2/Form.js.map +0 -1
- package/dist-ts/components/Form/v2/Form.types.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/Extensions/DateField/DateField.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/Extensions/DateField/index.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/Extensions/PhoneField/index.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/FormField.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/FormField.module.scss +0 -0
- package/dist-ts/components/Form/v2/FormField/FormField.types.js.map +0 -1
- package/dist-ts/components/Form/v2/FormField/index.js.map +0 -1
- package/dist-ts/components/Form/v2/index.d.ts +0 -2
- package/dist-ts/components/Form/v2/index.js +0 -3
- package/dist-ts/components/Form/v2/index.js.map +0 -1
- package/dist-ts/hooks/useForm.d.ts +0 -16
- package/dist-ts/hooks/useForm.js +0 -27
- package/dist-ts/hooks/useForm.js.map +0 -1
- package/dist-ts/test.d.ts +0 -0
- package/dist-ts/test.js +0 -2
- package/dist-ts/test.js.map +0 -1
- /package/dist/components/Form/{v2/Form.module.scss → Form.module.scss} +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/Extensions/DateField/DateField.module.scss +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/Extensions/DateField/index.d.ts +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/PhoneField.d.ts +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/PhoneField.module.scss +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/index.d.ts +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/FormField.d.ts +0 -0
- /package/dist/components/Form/{v2/FormField → FormField}/index.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/Form.module.scss → Form.module.scss} +0 -0
- /package/dist-ts/components/Form/{v2/Form.types.js → Form.types.js} +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/DateField/DateField.module.scss +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/DateField/index.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/DateField/index.js +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/PhoneField.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/PhoneField.module.scss +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/index.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/Extensions/PhoneField/index.js +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/FormField.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/FormField.types.js +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/index.d.ts +0 -0
- /package/dist-ts/components/Form/{v2/FormField → FormField}/index.js +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { PropsWithChildren } from "react";
|
|
2
|
+
import { FromOnePercentUtility } from "../../type-utils";
|
|
2
3
|
/**
|
|
3
4
|
* This component implements a generic drawer that displays it as a drawer on mobile and as a modal on desktop
|
|
4
5
|
**/
|
|
5
6
|
export default function AdaptiveDialog({ variant, onClose, open, className, onClickOut, children, onClosed, inline, }: PropsWithChildren<{
|
|
6
|
-
variant?:
|
|
7
|
+
variant?: FromOnePercentUtility<'UIElements.AdaptiveDialogVariants'>;
|
|
7
8
|
className?: string;
|
|
8
9
|
open: boolean;
|
|
9
10
|
onClose?: () => void;
|
|
@@ -74,4 +74,4 @@ function AdaptiveDialog(_ref) {
|
|
|
74
74
|
}), children)));
|
|
75
75
|
return isVisible || open ? inline ? content : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_reactDom.default.createPortal(content, document.body)) : null;
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0FkYXB0aXZlRGlhbG9nTW9kdWxlIiwiX011dGFibGVIYW1idXJnZXJCdXR0b24iLCJfU2Nyb2xsQW5kRm9jdXNMb2NrIiwiX09uZVVJUHJvdmlkZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJBZGFwdGl2ZURpYWxvZyIsIl9yZWYiLCJ2YXJpYW50Iiwib25DbG9zZSIsIm9wZW4iLCJjbGFzc05hbWUiLCJvbkNsaWNrT3V0IiwiY2hpbGRyZW4iLCJvbkNsb3NlZCIsImlubGluZSIsInJvb3REaXZSZWYiLCJ1c2VSZWYiLCJpc1Zpc2libGUiLCJzZXRJc1Zpc2libGUiLCJ1c2VTdGF0ZSIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJ2YXJpYW50Q2xhc3MiLCJ1c2VPbmVVSUNvbmZpZyIsImNvbmNhdCIsInVzZUVmZmVjdCIsInRvZ2dsZVZpc2JpbGl0eSIsImFuaW1hdGlvbk5hbWUiLCJTdHlsZXMiLCJiYWNrZHJvcERpc21pc3MiLCJ0YXJnZXQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJnbG9iYWxDbGFzc05hbWUiLCJiYWNrZHJvcCIsImRpYWxvZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiY2xvc2UiLCJvbkNsaWNrIiwib25BbmltYXRpb25FbmQiLCJfcmVmMiIsImN1cnJlbnRUYXJnZXQiLCJzdHlsZSIsInBvaW50ZXJFdmVudHMiLCJjb250YWluZXIiLCJzdG9wUHJvcGFnYXRpb24iLCJjbG9zZUJ0biIsInN0YXRlIiwic2l6ZSIsInAiLCJGcmFnbWVudCIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiZG9jdW1lbnQiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQWRhcHRpdmVEaWFsb2cvQWRhcHRpdmVEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9BZGFwdGl2ZURpYWxvZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IE11dGFibGVIYW1idXJnZXJCdXR0b24gZnJvbSBcIi4uL011dGFibGVIYW1idXJnZXJCdXR0b25cIjtcbmltcG9ydCBTY3JvbGxBbmRGb2N1c0xvY2sgZnJvbSBcIi4uL3V0aWxpdGFyeS9TY3JvbGxBbmRGb2N1c0xvY2tcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGltcGxlbWVudHMgYSBnZW5lcmljIGRyYXdlciB0aGF0IGRpc3BsYXlzIGl0IGFzIGEgZHJhd2VyIG9uIG1vYmlsZSBhbmQgYXMgYSBtb2RhbCBvbiBkZXNrdG9wXG4gKiovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBZGFwdGl2ZURpYWxvZyh7XG4gIHZhcmlhbnQgPSBcImRlZmF1bHRcIixcbiAgb25DbG9zZSxcbiAgb3BlbiA9IGZhbHNlLFxuICBjbGFzc05hbWUgPSBcIlwiLFxuICBvbkNsaWNrT3V0LFxuICBjaGlsZHJlbixcbiAgb25DbG9zZWQsXG4gIGlubGluZSA9IGZhbHNlLFxufTogUHJvcHNXaXRoQ2hpbGRyZW48e1xuICB2YXJpYW50PzogT25lcGVyY2VudFV0aWxpdHkuVUlFbGVtZW50cy5BZGFwdGl2ZURpYWxvZ1ZhcmlhbnRzO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBvbkNsaWNrT3V0PzogKCkgPT4gdm9pZDtcbiAgb25DbG9zZWQ/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoaXMgcmVuZGVyaW5nIHdpbGwgd3JpdGUgdGhlIGh0bWwgaW5zaWRlIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9uIGRvbS5cbiAgICogSWYgb21pdHRlZCBvciBmYWxzZSwgaXQgd2lsbCByZW5kZXIgb24gdGhlIGRvY3VtZW50IGJvZHksIHRvIHByZXZlbnQgc3R5bGUgYmxlZWRpbmcgKi9cbiAgaW5saW5lPzogYm9vbGVhbjtcbn0+KSB7XG4gIGNvbnN0IHJvb3REaXZSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbaXNWaXNpYmxlLCBzZXRJc1Zpc2libGVdID0gdXNlU3RhdGUob3Blbik7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB2YXJpYW50Q2xhc3MgPSB1c2VPbmVVSUNvbmZpZyhcbiAgICBgY29tcG9uZW50LmFkYXB0aXZlRGlhbG9nLnZhcmlhbnQuJHt2YXJpYW50fWAsXG4gICAgXCJcIlxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIHNldElzVmlzaWJsZSh0cnVlKTtcbiAgICAgIGNvbnN0IHRvZ2dsZVZpc2JpbGl0eSA9IChlOiBBbmltYXRpb25FdmVudCkgPT4ge1xuICAgICAgICBpZiAoZS5hbmltYXRpb25OYW1lID09PSBTdHlsZXMuYmFja2Ryb3BEaXNtaXNzKSB7XG4gICAgICAgICAgb25DbG9zZWQ/LigpO1xuICAgICAgICAgIHNldElzVmlzaWJsZShmYWxzZSk7XG4gICAgICAgICAgKGUudGFyZ2V0ISBhcyBIVE1MRGl2RWxlbWVudCkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgIFwiYW5pbWF0aW9uZW5kXCIsXG4gICAgICAgICAgICB0b2dnbGVWaXNiaWxpdHlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcm9vdERpdlJlZi5jdXJyZW50IS5hZGRFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uZW5kXCIsIHRvZ2dsZVZpc2JpbGl0eSk7XG4gICAgfVxuICB9LCBbb3Blbl0pO1xuXG4gIGNvbnN0IGdsb2JhbENsYXNzTmFtZSA9IHtcbiAgICBiYWNrZHJvcDogdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuYWRhcHRpdmVEaWFsb2cuYmFja2Ryb3BDbGFzc05hbWVcIiwgXCJcIiksXG4gICAgZGlhbG9nOiB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5hZGFwdGl2ZURpYWxvZy5kaWFsb2dDbGFzc05hbWVcIiwgXCJcIiksXG4gIH07XG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtyb290RGl2UmVmfVxuICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZXMuYmFja2Ryb3B9ICR7b3BlbiA/IFN0eWxlcy5vcGVuIDogU3R5bGVzLmNsb3NlfSAke1xuICAgICAgICBleHBhbmRlZCA/IFN0eWxlcy5leHBhbmRlZCA6IFwiXCJcbiAgICAgIH0gJHtnbG9iYWxDbGFzc05hbWUuYmFja2Ryb3B9ICR7dmFyaWFudENsYXNzfWB9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrT3V0fVxuICAgICAgb25BbmltYXRpb25FbmQ9eyh7IHRhcmdldCwgY3VycmVudFRhcmdldCB9KSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpXG4gICAgICAgICAgKHRhcmdldCBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUucG9pbnRlckV2ZW50cyA9IFwiaW5pdGlhbFwiO1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLmNvbnRhaW5lcn0gJHtjbGFzc05hbWV9ICR7Z2xvYmFsQ2xhc3NOYW1lLmRpYWxvZ31gfVxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgID5cbiAgICAgICAgPFNjcm9sbEFuZEZvY3VzTG9jayBvcGVuPXtvcGVufT5cbiAgICAgICAgICB7b25DbG9zZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT17U3R5bGVzLmNsb3NlQnRufSBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICAgICAgPE11dGFibGVIYW1idXJnZXJCdXR0b24gc3RhdGU9XCJjbG9zZWRcIiBzaXplPXsyNH0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBvbkNsaWNrPXsoKSA9PiBzZXRFeHBhbmRlZCgocCkgPT4gIXApfSAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TY3JvbGxBbmRGb2N1c0xvY2s+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gaXNWaXNpYmxlIHx8IG9wZW4gPyAoXG4gICAgaW5saW5lID8gKFxuICAgICAgY29udGVudFxuICAgICkgOiAoXG4gICAgICA8PntSZWFjdERPTS5jcmVhdGVQb3J0YWwoY29udGVudCwgZG9jdW1lbnQuYm9keSl9PC8+XG4gICAgKVxuICApIDogbnVsbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLHVCQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxtQkFBQSxHQUFBSCxzQkFBQSxD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
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0FkYXB0aXZlRGlhbG9nTW9kdWxlIiwiX011dGFibGVIYW1idXJnZXJCdXR0b24iLCJfU2Nyb2xsQW5kRm9jdXNMb2NrIiwiX09uZVVJUHJvdmlkZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJBZGFwdGl2ZURpYWxvZyIsIl9yZWYiLCJ2YXJpYW50Iiwib25DbG9zZSIsIm9wZW4iLCJjbGFzc05hbWUiLCJvbkNsaWNrT3V0IiwiY2hpbGRyZW4iLCJvbkNsb3NlZCIsImlubGluZSIsInJvb3REaXZSZWYiLCJ1c2VSZWYiLCJpc1Zpc2libGUiLCJzZXRJc1Zpc2libGUiLCJ1c2VTdGF0ZSIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJ2YXJpYW50Q2xhc3MiLCJ1c2VPbmVVSUNvbmZpZyIsImNvbmNhdCIsInVzZUVmZmVjdCIsInRvZ2dsZVZpc2JpbGl0eSIsImFuaW1hdGlvbk5hbWUiLCJTdHlsZXMiLCJiYWNrZHJvcERpc21pc3MiLCJ0YXJnZXQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJnbG9iYWxDbGFzc05hbWUiLCJiYWNrZHJvcCIsImRpYWxvZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiY2xvc2UiLCJvbkNsaWNrIiwib25BbmltYXRpb25FbmQiLCJfcmVmMiIsImN1cnJlbnRUYXJnZXQiLCJzdHlsZSIsInBvaW50ZXJFdmVudHMiLCJjb250YWluZXIiLCJzdG9wUHJvcGFnYXRpb24iLCJjbG9zZUJ0biIsInN0YXRlIiwic2l6ZSIsInAiLCJGcmFnbWVudCIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiZG9jdW1lbnQiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQWRhcHRpdmVEaWFsb2cvQWRhcHRpdmVEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9BZGFwdGl2ZURpYWxvZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IE11dGFibGVIYW1idXJnZXJCdXR0b24gZnJvbSBcIi4uL011dGFibGVIYW1idXJnZXJCdXR0b25cIjtcbmltcG9ydCBTY3JvbGxBbmRGb2N1c0xvY2sgZnJvbSBcIi4uL3V0aWxpdGFyeS9TY3JvbGxBbmRGb2N1c0xvY2tcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IHsgRnJvbU9uZVBlcmNlbnRVdGlsaXR5IH0gZnJvbSBcIi4uLy4uL3R5cGUtdXRpbHNcIjtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbXBsZW1lbnRzIGEgZ2VuZXJpYyBkcmF3ZXIgdGhhdCBkaXNwbGF5cyBpdCBhcyBhIGRyYXdlciBvbiBtb2JpbGUgYW5kIGFzIGEgbW9kYWwgb24gZGVza3RvcFxuICoqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQWRhcHRpdmVEaWFsb2coe1xuICB2YXJpYW50ID0gXCJkZWZhdWx0XCIsXG4gIG9uQ2xvc2UsXG4gIG9wZW4gPSBmYWxzZSxcbiAgY2xhc3NOYW1lID0gXCJcIixcbiAgb25DbGlja091dCxcbiAgY2hpbGRyZW4sXG4gIG9uQ2xvc2VkLFxuICBpbmxpbmUgPSBmYWxzZSxcbn06IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgdmFyaWFudD86IEZyb21PbmVQZXJjZW50VXRpbGl0eTwnVUlFbGVtZW50cy5BZGFwdGl2ZURpYWxvZ1ZhcmlhbnRzJz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgb3BlbjogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIG9uQ2xpY2tPdXQ/OiAoKSA9PiB2b2lkO1xuICBvbkNsb3NlZD86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhpcyByZW5kZXJpbmcgd2lsbCB3cml0ZSB0aGUgaHRtbCBpbnNpZGUgdGhlIGN1cnJlbnQgcG9zaXRpb24gb24gZG9tLlxuICAgKiBJZiBvbWl0dGVkIG9yIGZhbHNlLCBpdCB3aWxsIHJlbmRlciBvbiB0aGUgZG9jdW1lbnQgYm9keSwgdG8gcHJldmVudCBzdHlsZSBibGVlZGluZyAqL1xuICBpbmxpbmU/OiBib29sZWFuO1xufT4pIHtcbiAgY29uc3Qgcm9vdERpdlJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSB1c2VTdGF0ZShvcGVuKTtcbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHZhcmlhbnRDbGFzcyA9IHVzZU9uZVVJQ29uZmlnKFxuICAgIGBjb21wb25lbnQuYWRhcHRpdmVEaWFsb2cudmFyaWFudC4ke3ZhcmlhbnR9YCxcbiAgICBcIlwiXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3Blbikge1xuICAgICAgc2V0SXNWaXNpYmxlKHRydWUpO1xuICAgICAgY29uc3QgdG9nZ2xlVmlzYmlsaXR5ID0gKGU6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChlLmFuaW1hdGlvbk5hbWUgPT09IFN0eWxlcy5iYWNrZHJvcERpc21pc3MpIHtcbiAgICAgICAgICBvbkNsb3NlZD8uKCk7XG4gICAgICAgICAgc2V0SXNWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgICAoZS50YXJnZXQhIGFzIEhUTUxEaXZFbGVtZW50KS5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgXCJhbmltYXRpb25lbmRcIixcbiAgICAgICAgICAgIHRvZ2dsZVZpc2JpbGl0eVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByb290RGl2UmVmLmN1cnJlbnQhLmFkZEV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25lbmRcIiwgdG9nZ2xlVmlzYmlsaXR5KTtcbiAgICB9XG4gIH0sIFtvcGVuXSk7XG5cbiAgY29uc3QgZ2xvYmFsQ2xhc3NOYW1lID0ge1xuICAgIGJhY2tkcm9wOiB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5hZGFwdGl2ZURpYWxvZy5iYWNrZHJvcENsYXNzTmFtZVwiLCBcIlwiKSxcbiAgICBkaWFsb2c6IHVzZU9uZVVJQ29uZmlnKFwiY29tcG9uZW50LmFkYXB0aXZlRGlhbG9nLmRpYWxvZ0NsYXNzTmFtZVwiLCBcIlwiKSxcbiAgfTtcbiAgY29uc3QgY29udGVudCA9IChcbiAgICA8ZGl2XG4gICAgICByZWY9e3Jvb3REaXZSZWZ9XG4gICAgICBjbGFzc05hbWU9e2Ake1N0eWxlcy5iYWNrZHJvcH0gJHtvcGVuID8gU3R5bGVzLm9wZW4gOiBTdHlsZXMuY2xvc2V9ICR7ZXhwYW5kZWQgPyBTdHlsZXMuZXhwYW5kZWQgOiBcIlwiXG4gICAgICAgIH0gJHtnbG9iYWxDbGFzc05hbWUuYmFja2Ryb3B9ICR7dmFyaWFudENsYXNzfWB9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrT3V0fVxuICAgICAgb25BbmltYXRpb25FbmQ9eyh7IHRhcmdldCwgY3VycmVudFRhcmdldCB9KSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpXG4gICAgICAgICAgKHRhcmdldCBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUucG9pbnRlckV2ZW50cyA9IFwiaW5pdGlhbFwiO1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLmNvbnRhaW5lcn0gJHtjbGFzc05hbWV9ICR7Z2xvYmFsQ2xhc3NOYW1lLmRpYWxvZ31gfVxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgID5cbiAgICAgICAgPFNjcm9sbEFuZEZvY3VzTG9jayBvcGVuPXtvcGVufT5cbiAgICAgICAgICB7b25DbG9zZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT17U3R5bGVzLmNsb3NlQnRufSBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICAgICAgPE11dGFibGVIYW1idXJnZXJCdXR0b24gc3RhdGU9XCJjbG9zZWRcIiBzaXplPXsyNH0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGRpdiBvbkNsaWNrPXsoKSA9PiBzZXRFeHBhbmRlZCgocCkgPT4gIXApfSAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TY3JvbGxBbmRGb2N1c0xvY2s+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gaXNWaXNpYmxlIHx8IG9wZW4gPyAoXG4gICAgaW5saW5lID8gKFxuICAgICAgY29udGVudFxuICAgICkgOiAoXG4gICAgICA8PntSZWFjdERPTS5jcmVhdGVQb3J0YWwoY29udGVudCwgZG9jdW1lbnQuYm9keSl9PC8+XG4gICAgKVxuICApIDogbnVsbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJ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
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import React, { ForwardedRef } from "react";
|
|
2
|
+
import { FromOnePercentUtility } from "../../type-utils";
|
|
2
3
|
type ButtonProps = React.PropsWithChildren<React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
3
|
-
variant?:
|
|
4
|
+
variant?: FromOnePercentUtility<'UIElements.ButtonVariants'>;
|
|
4
5
|
}>;
|
|
5
6
|
export declare function _Button({ children, variant, className, ...otherProps }: ButtonProps, ref: ForwardedRef<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
/**
|
|
7
8
|
* A simple button that can be customized via the provider
|
|
8
9
|
**/
|
|
9
10
|
declare const Button: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
10
|
-
variant?:
|
|
11
|
+
variant?: "link" | "transparent" | "filled" | "outline" | undefined;
|
|
11
12
|
} & {
|
|
12
13
|
children?: React.ReactNode;
|
|
13
14
|
} & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -33,4 +33,4 @@ function _Button(_ref, ref) {
|
|
|
33
33
|
**/
|
|
34
34
|
const Button = /*#__PURE__*/(0, _react.forwardRef)(_Button);
|
|
35
35
|
var _default = exports.default = Button;
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfT25lVUlQcm92aWRlciIsIl9leGNsdWRlZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJfQnV0dG9uIiwiX3JlZiIsInJlZiIsImNoaWxkcmVuIiwidmFyaWFudCIsImNsYXNzTmFtZSIsIm90aGVyUHJvcHMiLCJjbGFzc05hbWVUeXBlIiwidXNlT25lVUlDb25maWciLCJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29uY2F0IiwiQnV0dG9uIiwiZm9yd2FyZFJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBFbGVtZW50UmVmLCBGb3J3YXJkZWRSZWYsIGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IHsgRnJvbU9uZVBlcmNlbnRVdGlsaXR5IH0gZnJvbSBcIi4uLy4uL3R5cGUtdXRpbHNcIjtcblxudHlwZSBCdXR0b25Qcm9wcyA9IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPFxuICBSZWFjdC5CdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4gJiB7XG4gICAgdmFyaWFudD86IEZyb21PbmVQZXJjZW50VXRpbGl0eTwnVUlFbGVtZW50cy5CdXR0b25WYXJpYW50cyc+O1xuICB9XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gX0J1dHRvbihcbiAge1xuICAgIGNoaWxkcmVuLFxuICAgIHZhcmlhbnQgPSBcInRyYW5zcGFyZW50XCIsXG4gICAgY2xhc3NOYW1lID0gXCJcIixcbiAgICAuLi5vdGhlclByb3BzXG4gIH06IEJ1dHRvblByb3BzLFxuICByZWY6IEZvcndhcmRlZFJlZjxIVE1MQnV0dG9uRWxlbWVudD5cbikge1xuICBjb25zdCBjbGFzc05hbWVUeXBlID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuYnV0dG9uLmNsYXNzTmFtZVwiLCB7fSk7XG4gIGNvbnN0IENvbXBvbmVudCA9IHVzZU9uZVVJQ29uZmlnKFxuICAgIFwiY29tcG9uZW50LmJ1dHRvbi5Db21wb25lbnRcIixcbiAgICBcImJ1dHRvblwiIGFzIGFueVxuICApO1xuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIHJlZj17cmVmfVxuICAgICAgY2xhc3NOYW1lPXtgJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lVHlwZVt2YXJpYW50XSB8fCBcIlwifWB9XG4gICAgICB2YXJpYW50PXt2YXJpYW50fVxuICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG4vKipcbiAqIEEgc2ltcGxlIGJ1dHRvbiB0aGF0IGNhbiBiZSBjdXN0b21pemVkIHZpYSB0aGUgcHJvdmlkZXJcbiAqKi9cbmNvbnN0IEJ1dHRvbiA9IGZvcndhcmRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQsIEJ1dHRvblByb3BzPihfQnV0dG9uKTtcbmV4cG9ydCBkZWZh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
|
|
@@ -10,7 +10,6 @@ declare const EmailInput: React.ForwardRefExoticComponent<Omit<Omit<{
|
|
|
10
10
|
placeholder?: string | undefined;
|
|
11
11
|
disclaimer?: string | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
|
|
12
12
|
multiline?: number | undefined;
|
|
13
|
-
border?: boolean | undefined;
|
|
14
13
|
icon?: ({
|
|
15
14
|
onClick?: (() => void) | undefined;
|
|
16
15
|
} & React.ClassAttributes<any> & React.ImgHTMLAttributes<HTMLImageElement>) | undefined;
|
|
@@ -1,49 +1,15 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
type: "select";
|
|
17
|
-
choices: ComponentProps<typeof import("../Select")["default"]>["items"];
|
|
18
|
-
} : T extends "email" ? {
|
|
19
|
-
type: "email";
|
|
20
|
-
messages: ComponentProps<typeof EmailInput>["messages"];
|
|
21
|
-
} : T extends "textarea" ? {
|
|
22
|
-
type: "textarea";
|
|
23
|
-
lines: number;
|
|
24
|
-
} : {
|
|
25
|
-
type: "text" | "number";
|
|
26
|
-
inputProps?: ComponentProps<typeof Input>;
|
|
27
|
-
});
|
|
28
|
-
export type ClassName = string;
|
|
29
|
-
export type FormInterface = {
|
|
30
|
-
clear: () => void;
|
|
31
|
-
};
|
|
32
|
-
export type FirebaseFormProps<M extends FormForm> = {
|
|
33
|
-
ref?: RefObject<FormInterface>;
|
|
34
|
-
submitting: boolean;
|
|
35
|
-
onSubmit: (data: M) => void;
|
|
36
|
-
submited?: boolean;
|
|
37
|
-
config: {
|
|
38
|
-
[k in keyof M]: FieldDefinition<M, k, FieldTypes>;
|
|
39
|
-
};
|
|
40
|
-
submitBtn: string | {
|
|
41
|
-
label: [FunctionComponent] | [FunctionComponent, ClassName];
|
|
42
|
-
loading: [FunctionComponent] | [FunctionComponent, ClassName];
|
|
43
|
-
error: [FunctionComponent] | [FunctionComponent, ClassName];
|
|
44
|
-
success: [FunctionComponent] | [FunctionComponent, ClassName];
|
|
45
|
-
};
|
|
46
|
-
btnProps?: ComponentProps<typeof Button>;
|
|
47
|
-
};
|
|
48
|
-
declare const FirebaseForm: React.ForwardRefExoticComponent<Omit<FirebaseFormProps<BaseForm>, "ref"> & React.RefAttributes<FormInterface>>;
|
|
49
|
-
export default FirebaseForm;
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FormViewProps } from "./Form.types";
|
|
3
|
+
import { AnswerByField, FormFieldView } from "./FormField/FormField.types";
|
|
4
|
+
export type FormRef<Q extends FormFieldView[]> = {
|
|
5
|
+
setAnswer<I extends Q[number]["id"]>(questionId: I, ans: AnswerByField<Q[number] & {
|
|
6
|
+
id: I;
|
|
7
|
+
}>): void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A new and improved version of the one-ui design form
|
|
11
|
+
*
|
|
12
|
+
* Custom question types can be defined via @type {OnepercentUtility['UIElements']['FormExtension']['fields']}
|
|
13
|
+
**/
|
|
14
|
+
declare const _default: React.ForwardRefExoticComponent<FormViewProps<FormFieldView[]> & React.RefAttributes<FormRef<FormFieldView[]>>>;
|
|
15
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { OneUIContextSpecs } from "
|
|
2
|
+
import { OneUIContextSpecs } from "../../context/OneUIProvider";
|
|
3
3
|
import { AnswerAction, AnswerByField, FormField, FormFieldTypes, FormFieldView, FormMode } from "./FormField/FormField.types";
|
|
4
4
|
import { AnswersMap } from "./Form.types";
|
|
5
5
|
export declare function useFormAnswers<A extends AnswersMap<any> = AnswersMap>(defaultAnswers: A, mode: FormMode): {
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.areAllQuestionsAnswered = areAllQuestionsAnswered;
|
|
7
|
+
exports.isValidated = void 0;
|
|
8
|
+
exports.useFieldErrors = useFieldErrors;
|
|
9
|
+
exports.useForm = useForm;
|
|
10
|
+
exports.useFormAnswers = useFormAnswers;
|
|
11
|
+
exports.useFormState = useFormState;
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
var _OneUIProvider = require("../../context/OneUIProvider");
|
|
14
|
+
var _FormField = require("./FormField/FormField.types");
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
function useFormAnswers(defaultAnswers, mode) {
|
|
21
|
+
const [answers, setAnswers] = (0, _react.useState)(() => {
|
|
22
|
+
const clone = _objectSpread({}, defaultAnswers);
|
|
23
|
+
if (mode === _FormField.FormMode.READ_ONLY) return clone;
|
|
24
|
+
return clone;
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
answers,
|
|
28
|
+
setAnswers
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function useFormState(currentQuestions, _ref) {
|
|
32
|
+
let {
|
|
33
|
+
answers,
|
|
34
|
+
setAnswers
|
|
35
|
+
} = _ref;
|
|
36
|
+
const formConfig = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
37
|
+
const {
|
|
38
|
+
isValid: isQuestionsAnswered
|
|
39
|
+
} = (0, _react.useMemo)(() => {
|
|
40
|
+
return areAllQuestionsAnswered(currentQuestions, answers, formConfig.requiredLabel, formConfig.extensions);
|
|
41
|
+
}, [answers, currentQuestions]);
|
|
42
|
+
const onAnswerAction = (questionType, id, answer) => {
|
|
43
|
+
switch (questionType) {
|
|
44
|
+
case "file":
|
|
45
|
+
const {
|
|
46
|
+
onFileUpload
|
|
47
|
+
} = formConfig;
|
|
48
|
+
setAnswers(prev => {
|
|
49
|
+
const file = answer;
|
|
50
|
+
if (file) return _objectSpread(_objectSpread({}, prev), {}, {
|
|
51
|
+
[id]: onFileUpload(id, file)
|
|
52
|
+
});
|
|
53
|
+
delete prev[id];
|
|
54
|
+
return _objectSpread({}, prev);
|
|
55
|
+
});
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
setAnswers(prev => {
|
|
59
|
+
if (prev[id] === answer) return prev;
|
|
60
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
61
|
+
[id]: answer
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const isFilesUploaded = useFileUploads(currentQuestions, answers);
|
|
67
|
+
return {
|
|
68
|
+
answers,
|
|
69
|
+
isQuestionsAnswered,
|
|
70
|
+
isFilesUploaded,
|
|
71
|
+
onAnswerAction,
|
|
72
|
+
questions: currentQuestions
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function useForm(currentQuestions, defaultAnswers, mode) {
|
|
76
|
+
const answers = useFormAnswers(defaultAnswers, mode);
|
|
77
|
+
return useFormState(currentQuestions, answers);
|
|
78
|
+
}
|
|
79
|
+
function useFileUploads(questions, answers) {
|
|
80
|
+
const fileUploadQuestions = (0, _react.useMemo)(() => questions.filter(a => a.type === "file"), [questions]);
|
|
81
|
+
const [fileUploadStatus, setFileUploadStatus] = (0, _react.useState)({});
|
|
82
|
+
(0, _react.useLayoutEffect)(() => {
|
|
83
|
+
const unsubs = [];
|
|
84
|
+
for (let fileQuestion of fileUploadQuestions) {
|
|
85
|
+
const uploadTask = answers[fileQuestion.id];
|
|
86
|
+
if (!uploadTask) setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
87
|
+
[fileQuestion.id]: "running"
|
|
88
|
+
}));else if (typeof uploadTask === "boolean") {
|
|
89
|
+
setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
90
|
+
[fileQuestion.id]: "success"
|
|
91
|
+
}));
|
|
92
|
+
} else unsubs.push(uploadTask.on("state_changed", r => {
|
|
93
|
+
setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
94
|
+
[fileQuestion.id]: r.totalBytes === r.bytesTransferred ? "success" : "running"
|
|
95
|
+
}));
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
return () => {
|
|
99
|
+
unsubs.forEach(unsub => unsub());
|
|
100
|
+
};
|
|
101
|
+
}, [answers, fileUploadQuestions]);
|
|
102
|
+
const areAllFileUploaded = (0, _react.useMemo)(() => {
|
|
103
|
+
return fileUploadQuestions.reduce((r, question) => {
|
|
104
|
+
const uploadStatus = fileUploadStatus[question.id];
|
|
105
|
+
return r && uploadStatus === "success";
|
|
106
|
+
}, true);
|
|
107
|
+
}, [fileUploadStatus, fileUploadQuestions]);
|
|
108
|
+
return areAllFileUploaded;
|
|
109
|
+
}
|
|
110
|
+
function useFieldErrors(currentQuestions, answers, showAllErrors) {
|
|
111
|
+
const {
|
|
112
|
+
requiredLabel,
|
|
113
|
+
extensions
|
|
114
|
+
} = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
115
|
+
const errorMap = (0, _react.useMemo)(() => {
|
|
116
|
+
const ans = question => answers[question.id];
|
|
117
|
+
const errorsMap = {};
|
|
118
|
+
for (let question of currentQuestions) {
|
|
119
|
+
const _isValidated = () => {
|
|
120
|
+
return isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
121
|
+
};
|
|
122
|
+
const updateDefaultError = () => {
|
|
123
|
+
const validation = _isValidated();
|
|
124
|
+
errorsMap[question.id] = validation.error;
|
|
125
|
+
};
|
|
126
|
+
switch (question.type) {
|
|
127
|
+
case "check":
|
|
128
|
+
case "rawcheck":
|
|
129
|
+
updateDefaultError();
|
|
130
|
+
if (question.validator) errorsMap[question.id] = question.validator(ans(question));
|
|
131
|
+
break;
|
|
132
|
+
case "number":
|
|
133
|
+
case "text":
|
|
134
|
+
case "select":
|
|
135
|
+
case "radio":
|
|
136
|
+
case "file":
|
|
137
|
+
updateDefaultError();
|
|
138
|
+
const validationResult = _isValidated();
|
|
139
|
+
if (validationResult.error) errorsMap[question.id] = validationResult.error;
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
const extendedSupport = extensions === null || extensions === void 0 ? void 0 : extensions[question.type];
|
|
143
|
+
if (extendedSupport) {
|
|
144
|
+
const validationResultExtend = extendedSupport.validator(ans(question), question);
|
|
145
|
+
if (validationResultExtend.error) errorsMap[question.id] = validationResultExtend.error;
|
|
146
|
+
} else {
|
|
147
|
+
updateDefaultError();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return errorsMap;
|
|
152
|
+
}, [currentQuestions, answers]);
|
|
153
|
+
const currentErrors = (0, _react.useMemo)(() => {
|
|
154
|
+
return Object.entries(errorMap).reduce((r, _ref2) => {
|
|
155
|
+
let [k, v] = _ref2;
|
|
156
|
+
return _objectSpread(_objectSpread({}, r), {}, {
|
|
157
|
+
[k]: showAllErrors ? v : v !== requiredLabel ? v : undefined
|
|
158
|
+
});
|
|
159
|
+
}, {});
|
|
160
|
+
}, [showAllErrors, errorMap]);
|
|
161
|
+
return currentErrors;
|
|
162
|
+
}
|
|
163
|
+
function areAllQuestionsAnswered(currentQuestions, answers, requiredLabel, extensions) {
|
|
164
|
+
const isValid = currentQuestions.reduce((answeredAll, question) => {
|
|
165
|
+
const ans = question => answers[question.id];
|
|
166
|
+
const result = answeredAll && (() => {
|
|
167
|
+
switch (question.type) {
|
|
168
|
+
case "accept":
|
|
169
|
+
const checks = ans(question) || [];
|
|
170
|
+
return question.accept.reduce((r, _ref3, idx) => {
|
|
171
|
+
let {
|
|
172
|
+
optional
|
|
173
|
+
} = _ref3;
|
|
174
|
+
return r && (optional ? true : checks[idx]);
|
|
175
|
+
}, true);
|
|
176
|
+
case "check":
|
|
177
|
+
case "rawcheck":
|
|
178
|
+
if (question.optional) return true;
|
|
179
|
+
if (question.validator) return question.validator(ans(question));
|
|
180
|
+
const checkmarks = ans(question) || [];
|
|
181
|
+
return checkmarks.includes(true);
|
|
182
|
+
case "number":
|
|
183
|
+
case "text":
|
|
184
|
+
case "select":
|
|
185
|
+
case "radio":
|
|
186
|
+
case "file":
|
|
187
|
+
if (!answers[question.id]) return !!question.optional;
|
|
188
|
+
const validationResult = isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
189
|
+
return validationResult.isValid && answeredAll;
|
|
190
|
+
default:
|
|
191
|
+
const extendedSupport = extensions === null || extensions === void 0 ? void 0 : extensions[question.type];
|
|
192
|
+
if (extendedSupport) {
|
|
193
|
+
const validationResultExtend = extendedSupport.validator(ans(question), question);
|
|
194
|
+
return validationResultExtend.isValid;
|
|
195
|
+
} else return question.validator ? !!question.validator(ans(question)) : !!ans(question);
|
|
196
|
+
}
|
|
197
|
+
})();
|
|
198
|
+
return result;
|
|
199
|
+
}, true);
|
|
200
|
+
return {
|
|
201
|
+
isValid: !!isValid
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
const isValidated = (_answer, isOptional, validator, requiredFieldLabel) => {
|
|
205
|
+
const answer = Array.isArray(_answer) ? _answer[0] : _answer;
|
|
206
|
+
if (!answer && !isOptional) return {
|
|
207
|
+
isValid: false,
|
|
208
|
+
error: requiredFieldLabel
|
|
209
|
+
};
|
|
210
|
+
if (!validator) if (Array.isArray(_answer)) {
|
|
211
|
+
const [_, isValid, error] = _answer;
|
|
212
|
+
return {
|
|
213
|
+
isValid,
|
|
214
|
+
error
|
|
215
|
+
};
|
|
216
|
+
} else {
|
|
217
|
+
return {
|
|
218
|
+
isValid: true,
|
|
219
|
+
error: ""
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const validationResult = validator(answer);
|
|
223
|
+
if (typeof validationResult === "string") return {
|
|
224
|
+
isValid: false,
|
|
225
|
+
error: validationResult
|
|
226
|
+
};
|
|
227
|
+
return {
|
|
228
|
+
isValid: validationResult,
|
|
229
|
+
error: ""
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
exports.isValidated = isValidated;
|
|
233
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX09uZVVJUHJvdmlkZXIiLCJfRm9ybUZpZWxkIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VGb3JtQW5zd2VycyIsImRlZmF1bHRBbnN3ZXJzIiwibW9kZSIsImFuc3dlcnMiLCJzZXRBbnN3ZXJzIiwidXNlU3RhdGUiLCJjbG9uZSIsIkZvcm1Nb2RlIiwiUkVBRF9PTkxZIiwidXNlRm9ybVN0YXRlIiwiY3VycmVudFF1ZXN0aW9ucyIsIl9yZWYiLCJmb3JtQ29uZmlnIiwidXNlT25lVUlDb25maWciLCJpc1ZhbGlkIiwiaXNRdWVzdGlvbnNBbnN3ZXJlZCIsInVzZU1lbW8iLCJhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZCIsInJlcXVpcmVkTGFiZWwiLCJleHRlbnNpb25zIiwib25BbnN3ZXJBY3Rpb24iLCJxdWVzdGlvblR5cGUiLCJpZCIsImFuc3dlciIsIm9uRmlsZVVwbG9hZCIsInByZXYiLCJmaWxlIiwiaXNGaWxlc1VwbG9hZGVkIiwidXNlRmlsZVVwbG9hZHMiLCJxdWVzdGlvbnMiLCJ1c2VGb3JtIiwiZmlsZVVwbG9hZFF1ZXN0aW9ucyIsImEiLCJ0eXBlIiwiZmlsZVVwbG9hZFN0YXR1cyIsInNldEZpbGVVcGxvYWRTdGF0dXMiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1bnN1YnMiLCJmaWxlUXVlc3Rpb24iLCJ1cGxvYWRUYXNrIiwib24iLCJ0b3RhbEJ5dGVzIiwiYnl0ZXNUcmFuc2ZlcnJlZCIsInVuc3ViIiwiYXJlQWxsRmlsZVVwbG9hZGVkIiwicmVkdWNlIiwicXVlc3Rpb24iLCJ1cGxvYWRTdGF0dXMiLCJ1c2VGaWVsZEVycm9ycyIsInNob3dBbGxFcnJvcnMiLCJlcnJvck1hcCIsImFucyIsImVycm9yc01hcCIsIl9pc1ZhbGlkYXRlZCIsImlzVmFsaWRhdGVkIiwib3B0aW9uYWwiLCJ2YWxpZGF0b3IiLCJ1cGRhdGVEZWZhdWx0RXJyb3IiLCJ2YWxpZGF0aW9uIiwiZXJyb3IiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiZXh0ZW5kZWRTdXBwb3J0IiwidmFsaWRhdGlvblJlc3VsdEV4dGVuZCIsImN1cnJlbnRFcnJvcnMiLCJlbnRyaWVzIiwiX3JlZjIiLCJrIiwidiIsInVuZGVmaW5lZCIsImFuc3dlcmVkQWxsIiwicmVzdWx0IiwiY2hlY2tzIiwiYWNjZXB0IiwiX3JlZjMiLCJpZHgiLCJjaGVja21hcmtzIiwiaW5jbHVkZXMiLCJfYW5zd2VyIiwiaXNPcHRpb25hbCIsInJlcXVpcmVkRmllbGRMYWJlbCIsIkFycmF5IiwiaXNBcnJheSIsIl8iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRm9ybS9Gb3JtLmhvb2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgT25lVUlDb250ZXh0U3BlY3MsIHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IHtcbiAgQW5zd2VyQWN0aW9uLFxuICBBbnN3ZXJCeUZpZWxkLFxuICBGb3JtRmllbGQsXG4gIEZvcm1GaWVsZFR5cGVzLFxuICBGb3JtRmllbGRWaWV3LFxuICBGb3JtTW9kZSxcbn0gZnJvbSBcIi4vRm9ybUZpZWxkL0Zvcm1GaWVsZC50eXBlc1wiO1xuaW1wb3J0IHsgQW5zd2Vyc01hcCB9IGZyb20gXCIuL0Zvcm0udHlwZXNcIjtcbmltcG9ydCB7IFVwbG9hZFRhc2ssIFVwbG9hZFRhc2tTbmFwc2hvdCB9IGZyb20gXCJmaXJlYmFzZS9zdG9yYWdlXCI7XG5pbXBvcnQgeyBGcm9tT25lUGVyY2VudFV0aWxpdHkgfSBmcm9tIFwiLi4vLi4vdHlwZS11dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybUFuc3dlcnM8QSBleHRlbmRzIEFuc3dlcnNNYXA8YW55PiA9IEFuc3dlcnNNYXA+KFxuICBkZWZhdWx0QW5zd2VyczogQSxcbiAgbW9kZTogRm9ybU1vZGVcbikge1xuICBjb25zdCBbYW5zd2Vycywgc2V0QW5zd2Vyc10gPSB1c2VTdGF0ZTxBPigoKSA9PiB7XG4gICAgY29uc3QgY2xvbmUgPSB7XG4gICAgICAuLi5kZWZhdWx0QW5zd2VycyxcbiAgICB9O1xuICAgIGlmIChtb2RlID09PSBGb3JtTW9kZS5SRUFEX09OTFkpIHJldHVybiBjbG9uZTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGFuc3dlcnMsXG4gICAgc2V0QW5zd2VycyxcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtU3RhdGUoXG4gIGN1cnJlbnRRdWVzdGlvbnM6IEZvcm1GaWVsZFZpZXdbXSxcbiAgeyBhbnN3ZXJzLCBzZXRBbnN3ZXJzIH06IFJldHVyblR5cGU8dHlwZW9mIHVzZUZvcm1BbnN3ZXJzPlxuKSB7XG4gIGNvbnN0IGZvcm1Db25maWcgPSB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5mb3JtXCIpO1xuXG4gIGNvbnN0IHsgaXNWYWxpZDogaXNRdWVzdGlvbnNBbnN3ZXJlZCB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGFyZUFsbFF1ZXN0aW9uc0Fuc3dlcmVkKFxuICAgICAgY3VycmVudFF1ZXN0aW9ucyxcbiAgICAgIGFuc3dlcnMsXG4gICAgICBmb3JtQ29uZmlnLnJlcXVpcmVkTGFiZWwsXG4gICAgICBmb3JtQ29uZmlnLmV4dGVuc2lvbnNcbiAgICApO1xuICB9LCBbYW5zd2VycywgY3VycmVudFF1ZXN0aW9uc10pO1xuXG4gIGNvbnN0IG9uQW5zd2VyQWN0aW9uID0gPFQgZXh0ZW5kcyBGb3JtRmllbGRUeXBlcz4oXG4gICAgcXVlc3Rpb25UeXBlOiBULFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYW5zd2VyOlxuICAgICAgfCBBbnN3ZXJBY3Rpb248e1xuICAgICAgICAgIHR5cGU6IFQ7XG4gICAgICAgIH0+XG4gICAgICB8IHVuZGVmaW5lZFxuICApID0+IHtcbiAgICBzd2l0Y2ggKHF1ZXN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgY29uc3QgeyBvbkZpbGVVcGxvYWQgfSA9IGZvcm1Db25maWc7XG4gICAgICAgIHNldEFuc3dlcnMoKHByZXY6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGUgPSBhbnN3ZXIgYXMgRmlsZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoZmlsZSlcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtpZF06IG9uRmlsZVVwbG9hZChpZCwgZmlsZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIGRlbGV0ZSBwcmV2W2lkXTtcbiAgICAgICAgICByZXR1cm4geyAuLi5wcmV2IH07XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHNldEFuc3dlcnMoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAocHJldltpZF0gPT09IGFuc3dlcikgcmV0dXJuIHByZXY7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBbaWRdOiBhbnN3ZXIgYXMgc3RyaW5nLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0ZpbGVzVXBsb2FkZWQgPSB1c2VGaWxlVXBsb2FkcyhjdXJyZW50UXVlc3Rpb25zLCBhbnN3ZXJzKTtcblxuICByZXR1cm4ge1xuICAgIGFuc3dlcnMsXG4gICAgaXNRdWVzdGlvbnNBbnN3ZXJlZCxcbiAgICBpc0ZpbGVzVXBsb2FkZWQsXG4gICAgb25BbnN3ZXJBY3Rpb24sXG4gICAgcXVlc3Rpb25zOiBjdXJyZW50UXVlc3Rpb25zLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybShcbiAgY3VycmVudFF1ZXN0aW9uczogRm9ybUZpZWxkVmlld1tdLFxuICBkZWZhdWx0QW5zd2VyczogQW5zd2Vyc01hcCxcbiAgbW9kZTogRm9ybU1vZGVcbikge1xuICBjb25zdCBhbnN3ZXJzID0gdXNlRm9ybUFuc3dlcnMoZGVmYXVsdEFuc3dlcnMsIG1vZGUpO1xuICByZXR1cm4gdXNlRm9ybVN0YXRlKGN1cnJlbnRRdWVzdGlvbnMsIGFuc3dlcnMpO1xufVxuXG5mdW5jdGlvbiB1c2VGaWxlVXBsb2FkcyhxdWVzdGlvbnM6IEZvcm1GaWVsZFtdLCBhbnN3ZXJzOiBBbnN3ZXJzTWFwKSB7XG4gIGNvbnN0IGZpbGVVcGxvYWRRdWVzdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+IHF1ZXN0aW9ucy5maWx0ZXIoKGEpID0+IGEudHlwZSA9PT0gXCJmaWxlXCIpLFxuICAgIFtxdWVzdGlvbnNdXG4gICk7XG4gIGNvbnN0IFtmaWxlVXBsb2FkU3RhdHVzLCBzZXRGaWxlVXBsb2FkU3RhdHVzXSA9IHVzZVN0YXRlPHtcbiAgICBbcXVlc3Rpb25JRDogc3RyaW5nXTogVXBsb2FkVGFza1NuYXBzaG90W1wic3RhdGVcIl07XG4gIH0+KHt9KTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB1bnN1YnM6IFJldHVyblR5cGU8VXBsb2FkVGFza1tcIm9uXCJdPltdID0gW107XG4gICAgZm9yIChsZXQgZmlsZVF1ZXN0aW9uIG9mIGZpbGVVcGxvYWRRdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IHVwbG9hZFRhc2sgPSBhbnN3ZXJzW2ZpbGVRdWVzdGlvbi5pZF0gYXNcbiAgICAgICAgfCBBbnN3ZXJCeUZpZWxkPHtcbiAgICAgICAgICAgIHR5cGU6IFwiZmlsZVwiO1xuICAgICAgICAgIH0+XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoIXVwbG9hZFRhc2spXG4gICAgICAgIHNldEZpbGVVcGxvYWRTdGF0dXMoKHByZXYpID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBbZmlsZVF1ZXN0aW9uLmlkXTogXCJydW5uaW5nXCIsXG4gICAgICAgIH0pKTtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB1cGxvYWRUYXNrID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICBzZXRGaWxlVXBsb2FkU3RhdHVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgW2ZpbGVRdWVzdGlvbi5pZF06IFwic3VjY2Vzc1wiLFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgdW5zdWJzLnB1c2goXG4gICAgICAgICAgdXBsb2FkVGFzay5vbihcInN0YXRlX2NoYW5nZWRcIiwgKHIpID0+IHtcbiAgICAgICAgICAgIHNldEZpbGVVcGxvYWRTdGF0dXMoKHByZXYpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtmaWxlUXVlc3Rpb24uaWRdOlxuICAgICAgICAgICAgICAgIHIudG90YWxCeXRlcyA9PT0gci5ieXRlc1RyYW5zZmVycmVkID8gXCJzdWNjZXNzXCIgOiBcInJ1bm5pbmdcIixcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB1bnN1YnMuZm9yRWFjaCgodW5zdWIpID0+IHVuc3ViKCkpO1xuICAgIH07XG4gIH0sIFthbnN3ZXJzLCBmaWxlVXBsb2FkUXVlc3Rpb25zXSk7XG5cbiAgY29uc3QgYXJlQWxsRmlsZVVwbG9hZGVkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZpbGVVcGxvYWRRdWVzdGlvbnMucmVkdWNlKChyLCBxdWVzdGlvbikgPT4ge1xuICAgICAgY29uc3QgdXBsb2FkU3RhdHVzID0gZmlsZVVwbG9hZFN0YXR1c1txdWVzdGlvbi5pZF07XG4gICAgICByZXR1cm4gciAmJiB1cGxvYWRTdGF0dXMgPT09IFwic3VjY2Vzc1wiO1xuICAgIH0sIHRydWUpO1xuICB9LCBbZmlsZVVwbG9hZFN0YXR1cywgZmlsZVVwbG9hZFF1ZXN0aW9uc10pO1xuXG4gIHJldHVybiBhcmVBbGxGaWxlVXBsb2FkZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGaWVsZEVycm9yczxcbiAgUSBleHRlbmRzIFJlYWRvbmx5PFxuICAgIFBpY2s8Rm9ybUZpZWxkLCBcInR5cGVcIiB8IFwiaWRcIiB8IFwib3B0aW9uYWxcIiB8IFwidmFsaWRhdG9yXCI+W11cbiAgPlxuPihjdXJyZW50UXVlc3Rpb25zOiBRLCBhbnN3ZXJzOiBBbnN3ZXJzTWFwLCBzaG93QWxsRXJyb3JzOiBib29sZWFuKSB7XG4gIGNvbnN0IHsgcmVxdWlyZWRMYWJlbCwgZXh0ZW5zaW9ucyB9ID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuZm9ybVwiKTtcbiAgY29uc3QgZXJyb3JNYXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhbnMgPSA8VCBleHRlbmRzIEZvcm1GaWVsZFZpZXdbXCJ0eXBlXCJdPihcbiAgICAgIHF1ZXN0aW9uOiBQaWNrPEZvcm1GaWVsZCwgXCJpZFwiPiAmIHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH1cbiAgICApID0+XG4gICAgICBhbnN3ZXJzW3F1ZXN0aW9uLmlkXSBhcyBBbnN3ZXJCeUZpZWxkPHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH0+O1xuICAgIGNvbnN0IGVycm9yc01hcDoge1xuICAgICAgW3F1ZXN0aW9uSWQ6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9ID0ge307XG4gICAgZm9yIChsZXQgcXVlc3Rpb24gb2YgY3VycmVudFF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgX2lzVmFsaWRhdGVkID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZGF0ZWQoXG4gICAgICAgICAgYW5zKHF1ZXN0aW9uKSxcbiAgICAgICAgICAhIXF1ZXN0aW9uLm9wdGlvbmFsLFxuICAgICAgICAgIHF1ZXN0aW9uLnZhbGlkYXRvcixcbiAgICAgICAgICByZXF1aXJlZExhYmVsXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgY29uc3QgdXBkYXRlRGVmYXVsdEVycm9yID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uID0gX2lzVmFsaWRhdGVkKCk7XG4gICAgICAgIGVycm9yc01hcFtxdWVzdGlvbi5pZF0gPSB2YWxpZGF0aW9uLmVycm9yO1xuICAgICAgfTtcbiAgICAgIHN3aXRjaCAocXVlc3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFwiY2hlY2tcIjpcbiAgICAgICAgY2FzZSBcInJhd2NoZWNrXCI6XG4gICAgICAgICAgdXBkYXRlRGVmYXVsdEVycm9yKCk7XG4gICAgICAgICAgaWYgKHF1ZXN0aW9uLnZhbGlkYXRvcilcbiAgICAgICAgICAgIGVycm9yc01hcFtxdWVzdGlvbi5pZF0gPSBxdWVzdGlvbi52YWxpZGF0b3IoXG4gICAgICAgICAgICAgIGFucyhxdWVzdGlvbikgYXMgYW55XG4gICAgICAgICAgICApIGFzIHN0cmluZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgIGNhc2UgXCJyYWRpb1wiOlxuICAgICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICAgIHVwZGF0ZURlZmF1bHRFcnJvcigpO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBfaXNWYWxpZGF0ZWQoKTtcbiAgICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcilcbiAgICAgICAgICAgIGVycm9yc01hcFtxdWVzdGlvbi5pZF0gPSB2YWxpZGF0aW9uUmVzdWx0LmVycm9yO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkU3VwcG9ydCA9XG4gICAgICAgICAgICBleHRlbnNpb25zPy5bXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLnR5cGUgYXMgRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5Gb3JtRXh0ZW5zaW9uXCI+W1wiZmllbGRzXCJdW1widHlwZVwiXVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICBpZiAoZXh0ZW5kZWRTdXBwb3J0KSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0RXh0ZW5kID0gZXh0ZW5kZWRTdXBwb3J0LnZhbGlkYXRvcihcbiAgICAgICAgICAgICAgYW5zKHF1ZXN0aW9uKSBhcyBhbnksXG4gICAgICAgICAgICAgIHF1ZXN0aW9uIGFzIGFueVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0RXh0ZW5kLmVycm9yKVxuICAgICAgICAgICAgICBlcnJvcnNNYXBbcXVlc3Rpb24uaWRdID0gdmFsaWRhdGlvblJlc3VsdEV4dGVuZC5lcnJvcjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlRGVmYXVsdEVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnNNYXA7XG4gIH0sIFtjdXJyZW50UXVlc3Rpb25zLCBhbnN3ZXJzXSk7XG5cbiAgY29uc3QgY3VycmVudEVycm9ycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhlcnJvck1hcCkucmVkdWNlKFxuICAgICAgKHIsIFtrLCB2XSkgPT4gKHtcbiAgICAgICAgLi4ucixcbiAgICAgICAgW2tdOiBzaG93QWxsRXJyb3JzID8gdiA6IHYgIT09IHJlcXVpcmVkTGFiZWwgPyB2IDogdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG4gIH0sIFtzaG93QWxsRXJyb3JzLCBlcnJvck1hcF0pO1xuXG4gIHJldHVybiBjdXJyZW50RXJyb3JzIGFzIHsgW2sgaW4gUVtudW1iZXJdW1wiaWRcIl1dOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZUFsbFF1ZXN0aW9uc0Fuc3dlcmVkKFxuICBjdXJyZW50UXVlc3Rpb25zOiBGb3JtRmllbGRbXSxcbiAgYW5zd2VyczogQW5zd2Vyc01hcCxcbiAgcmVxdWlyZWRMYWJlbDogc3RyaW5nLFxuICBleHRlbnNpb25zOiBPbmVVSUNvbnRleHRTcGVjc1tcImNvbXBvbmVudFwiXVtcImZvcm1cIl1bXCJleHRlbnNpb25zXCJdXG4pIHtcbiAgY29uc3QgaXNWYWxpZCA9IGN1cnJlbnRRdWVzdGlvbnMucmVkdWNlKChhbnN3ZXJlZEFsbCwgcXVlc3Rpb24pID0+IHtcbiAgICBjb25zdCBhbnMgPSA8VCBleHRlbmRzIEZvcm1GaWVsZFZpZXdbXCJ0eXBlXCJdPihcbiAgICAgIHF1ZXN0aW9uOiBGb3JtRmllbGQgJiB7XG4gICAgICAgIHR5cGU6IFQ7XG4gICAgICB9XG4gICAgKSA9PlxuICAgICAgYW5zd2Vyc1txdWVzdGlvbi5pZF0gYXMgdW5rbm93biBhcyBBbnN3ZXJCeUZpZWxkPHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH0+O1xuXG4gICAgY29uc3QgcmVzdWx0ID1cbiAgICAgIGFuc3dlcmVkQWxsICYmXG4gICAgICAoKCkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHF1ZXN0aW9uLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFwiYWNjZXB0XCI6XG4gICAgICAgICAgICBjb25zdCBjaGVja3MgPSBhbnMocXVlc3Rpb24pIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLmFjY2VwdC5yZWR1Y2UoXG4gICAgICAgICAgICAgIChyLCB7IG9wdGlvbmFsIH0sIGlkeCkgPT4gciAmJiAob3B0aW9uYWwgPyB0cnVlIDogY2hlY2tzW2lkeF0pLFxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJjaGVja1wiOlxuICAgICAgICAgIGNhc2UgXCJyYXdjaGVja1wiOlxuICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLm9wdGlvbmFsKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi52YWxpZGF0b3IpXG4gICAgICAgICAgICAgIHJldHVybiBxdWVzdGlvbi52YWxpZGF0b3IoYW5zKHF1ZXN0aW9uKSBhcyBhbnkpIGFzIGJvb2xlYW47XG4gICAgICAgICAgICBjb25zdCBjaGVja21hcmtzID0gYW5zKHF1ZXN0aW9uKSB8fCBbXTtcbiAgICAgICAgICAgIHJldHVybiBjaGVja21hcmtzLmluY2x1ZGVzKHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgICBjYXNlIFwicmFkaW9cIjpcbiAgICAgICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICAgICAgaWYgKCFhbnN3ZXJzW3F1ZXN0aW9uLmlkXSkgcmV0dXJuICEhcXVlc3Rpb24ub3B0aW9uYWw7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gaXNWYWxpZGF0ZWQoXG4gICAgICAgICAgICAgIGFucyhxdWVzdGlvbiksXG4gICAgICAgICAgICAgICEhcXVlc3Rpb24ub3B0aW9uYWwsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLnZhbGlkYXRvcixcbiAgICAgICAgICAgICAgcmVxdWlyZWRMYWJlbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LmlzVmFsaWQgJiYgYW5zd2VyZWRBbGw7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnN0IGV4dGVuZGVkU3VwcG9ydCA9XG4gICAgICAgICAgICAgIGV4dGVuc2lvbnM/LltcbiAgICAgICAgICAgICAgICBxdWVzdGlvbi50eXBlIGFzIEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuRm9ybUV4dGVuc2lvblwiPltcImZpZWxkc1wiXVtcInR5cGVcIl1cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGlmIChleHRlbmRlZFN1cHBvcnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdEV4dGVuZCA9IGV4dGVuZGVkU3VwcG9ydC52YWxpZGF0b3IoXG4gICAgICAgICAgICAgICAgYW5zKHF1ZXN0aW9uKSBhcyBhbnksXG4gICAgICAgICAgICAgICAgcXVlc3Rpb24gYXMgYW55XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0RXh0ZW5kLmlzVmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbGlkYXRvclxuICAgICAgICAgICAgICAgID8gISFxdWVzdGlvbi52YWxpZGF0b3IoYW5zKHF1ZXN0aW9uKSBhcyBhbnkpXG4gICAgICAgICAgICAgICAgOiAhIWFucyhxdWVzdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwgdHJ1ZSk7XG5cbiAgcmV0dXJuIHsgaXNWYWxpZDogISFpc1ZhbGlkIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkYXRlZCA9IChcbiAgX2Fuc3dlcjogQW5zd2VyQnlGaWVsZDx7IHR5cGU6IEZvcm1GaWVsZFR5cGVzIH0+LFxuICBpc09wdGlvbmFsOiBib29sZWFuLFxuICB2YWxpZGF0b3I6ICgodmFsOiBhbnkpID0+IHN0cmluZyB8IGJvb2xlYW4pIHwgdW5kZWZpbmVkLFxuICByZXF1aXJlZEZpZWxkTGFiZWw6IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IGFuc3dlciA9IEFycmF5LmlzQXJyYXkoX2Fuc3dlcikgPyBfYW5zd2VyWzBdIDogX2Fuc3dlcjtcbiAgaWYgKCFhbnN3ZXIgJiYgIWlzT3B0aW9uYWwpXG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IHJlcXVpcmVkRmllbGRMYWJlbCxcbiAgICB9O1xuICBpZiAoIXZhbGlkYXRvcilcbiAgICBpZiAoQXJyYXkuaXNBcnJheShfYW5zd2VyKSkge1xuICAgICAgY29uc3QgW18sIGlzVmFsaWQsIGVycm9yXSA9IF9hbnN3ZXI7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc1ZhbGlkLFxuICAgICAgICBlcnJvcixcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBcIlwiLFxuICAgICAgfTtcbiAgICB9XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0b3IoYW5zd2VyKTtcbiAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiB2YWxpZGF0aW9uUmVzdWx0LFxuICAgIH07XG4gIHJldHVybiB7XG4gICAgaXNWYWxpZDogdmFsaWRhdGlvblJlc3VsdCxcbiAgICBlcnJvcjogXCJcIixcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBT3FDLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQWUsZUFBQSxDQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFBQSxTQUFBZ0IsZ0JBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxZQUFBRCxDQUFBLEdBQUFtQixjQUFBLENBQUFuQixDQUFBLE1BQUFELENBQUEsR0FBQUcsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLElBQUFvQixLQUFBLEVBQUFuQixDQUFBLEVBQUFPLFVBQUEsTUFBQWEsWUFBQSxNQUFBQyxRQUFBLFVBQUF2QixDQUFBLENBQUFDLENBQUEsSUFBQUMsQ0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQW9CLGVBQUFsQixDQUFBLFFBQUFzQixDQUFBLEdBQUFDLFlBQUEsQ0FBQXZCLENBQUEsdUNBQUFzQixDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFDLGFBQUF2QixDQUFBLEVBQUFELENBQUEsMkJBQUFDLENBQUEsS0FBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFGLENBQUEsR0FBQUUsQ0FBQSxDQUFBd0IsTUFBQSxDQUFBQyxXQUFBLGtCQUFBM0IsQ0FBQSxRQUFBd0IsQ0FBQSxHQUFBeEIsQ0FBQSxDQUFBNEIsSUFBQSxDQUFBMUIsQ0FBQSxFQUFBRCxDQUFBLHVDQUFBdUIsQ0FBQSxTQUFBQSxDQUFBLFlBQUFLLFNBQUEseUVBQUE1QixDQUFBLEdBQUE2QixNQUFBLEdBQUFDLE1BQUEsRUFBQTdCLENBQUE7QUFLOUIsU0FBUzhCLGNBQWNBLENBQzVCQyxjQUFpQixFQUNqQkMsSUFBYyxFQUNkO0VBQ0EsTUFBTSxDQUFDQyxPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBSSxNQUFNO0lBQzlDLE1BQU1DLEtBQUssR0FBQTFCLGFBQUEsS0FDTnFCLGNBQWMsQ0FDbEI7SUFDRCxJQUFJQyxJQUFJLEtBQUtLLG1CQUFRLENBQUNDLFNBQVMsRUFBRSxPQUFPRixLQUFLO0lBQzdDLE9BQU9BLEtBQUs7RUFDZCxDQUFDLENBQUM7RUFDRixPQUFPO0lBQ0xILE9BQU87SUFDUEM7RUFDRixDQUFDO0FBQ0g7QUFDTyxTQUFTSyxZQUFZQSxDQUMxQkMsZ0JBQWlDLEVBQUFDLElBQUEsRUFFakM7RUFBQSxJQURBO0lBQUVSLE9BQU87SUFBRUM7RUFBOEMsQ0FBQyxHQUFBTyxJQUFBO0VBRTFELE1BQU1DLFVBQVUsR0FBRyxJQUFBQyw2QkFBYyxFQUFDLGdCQUFnQixDQUFDO0VBRW5ELE1BQU07SUFBRUMsT0FBTyxFQUFFQztFQUFvQixDQUFDLEdBQUcsSUFBQUMsY0FBTyxFQUFDLE1BQU07SUFDckQsT0FBT0MsdUJBQXVCLENBQzVCUCxnQkFBZ0IsRUFDaEJQLE9BQU8sRUFDUFMsVUFBVSxDQUFDTSxhQUFhLEVBQ3hCTixVQUFVLENBQUNPLFVBQ2IsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDaEIsT0FBTyxFQUFFTyxnQkFBZ0IsQ0FBQyxDQUFDO0VBRS9CLE1BQU1VLGNBQWMsR0FBR0EsQ0FDckJDLFlBQWUsRUFDZkMsRUFBVSxFQUNWQyxNQUlhLEtBQ1Y7SUFDSCxRQUFRRixZQUFZO01BQ2xCLEtBQUssTUFBTTtRQUNULE1BQU07VUFBRUc7UUFBYSxDQUFDLEdBQUdaLFVBQVU7UUFDbkNSLFVBQVUsQ0FBRXFCLElBQVMsSUFBSztVQUN4QixNQUFNQyxJQUFJLEdBQUdILE1BQTBCO1VBQ3ZDLElBQUlHLElBQUksRUFDTixPQUFBOUMsYUFBQSxDQUFBQSxhQUFBLEtBQ0s2QyxJQUFJO1lBQ1AsQ0FBQ0gsRUFBRSxHQUFHRSxZQUFZLENBQUNGLEVBQUUsRUFBRUksSUFBSTtVQUFDO1VBRWhDLE9BQU9ELElBQUksQ0FBQ0gsRUFBRSxDQUFDO1VBQ2YsT0FBQTFDLGFBQUEsS0FBWTZDLElBQUk7UUFDbEIsQ0FBQyxDQUFDO1FBQ0Y7TUFDRjtRQUNFckIsVUFBVSxDQUFFcUIsSUFBSSxJQUFLO1VBQ25CLElBQUlBLElBQUksQ0FBQ0gsRUFBRSxDQUFDLEtBQUtDLE1BQU0sRUFBRSxPQUFPRSxJQUFJO1VBQ3BDLE9BQUE3QyxhQUFBLENBQUFBLGFBQUEsS0FDSzZDLElBQUk7WUFDUCxDQUFDSCxFQUFFLEdBQUdDO1VBQWdCO1FBRTFCLENBQUMsQ0FBQztJQUNOO0VBQ0YsQ0FBQztFQUVELE1BQU1JLGVBQWUsR0FBR0MsY0FBYyxDQUFDbEIsZ0JBQWdCLEVBQUVQLE9BQU8sQ0FBQztFQUVqRSxPQUFPO0lBQ0xBLE9BQU87SUFDUFksbUJBQW1CO0lBQ25CWSxlQUFlO0lBQ2ZQLGNBQWM7SUFDZFMsU0FBUyxFQUFFbkI7RUFDYixDQUFDO0FBQ0g7QUFFTyxTQUFTb0IsT0FBT0EsQ0FDckJwQixnQkFBaUMsRUFDakNULGNBQTBCLEVBQzFCQyxJQUFjLEVBQ2Q7RUFDQSxNQUFNQyxPQUFPLEdBQUdILGNBQWMsQ0FBQ0MsY0FBYyxFQUFFQyxJQUFJLENBQUM7RUFDcEQsT0FBT08sWUFBWSxDQUFDQyxnQkFBZ0IsRUFBRVAsT0FBTyxDQUFDO0FBQ2hEO0FBRUEsU0FBU3lCLGNBQWNBLENBQUNDLFNBQXNCLEVBQUUxQixPQUFtQixFQUFFO0VBQ25FLE1BQU00QixtQkFBbUIsR0FBRyxJQUFBZixjQUFPLEVBQ2pDLE1BQU1hLFNBQVMsQ0FBQ3RELE1BQU0sQ0FBRXlELENBQUMsSUFBS0EsQ0FBQyxDQUFDQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQ2hELENBQUNKLFNBQVMsQ0FDWixDQUFDO0VBQ0QsTUFBTSxDQUFDSyxnQkFBZ0IsRUFBRUMsbUJBQW1CLENBQUMsR0FBRyxJQUFBOUIsZUFBUSxFQUVyRCxDQUFDLENBQUMsQ0FBQztFQUNOLElBQUErQixzQkFBZSxFQUFDLE1BQU07SUFDcEIsTUFBTUMsTUFBc0MsR0FBRyxFQUFFO0lBQ2pELEtBQUssSUFBSUMsWUFBWSxJQUFJUCxtQkFBbUIsRUFBRTtNQUM1QyxNQUFNUSxVQUFVLEdBQUdwQyxPQUFPLENBQUNtQyxZQUFZLENBQUNoQixFQUFFLENBSTdCO01BRWIsSUFBSSxDQUFDaUIsVUFBVSxFQUNiSixtQkFBbUIsQ0FBRVYsSUFBSSxJQUFBN0MsYUFBQSxDQUFBQSxhQUFBLEtBQ3BCNkMsSUFBSTtRQUNQLENBQUNhLFlBQVksQ0FBQ2hCLEVBQUUsR0FBRztNQUFTLEVBQzVCLENBQUMsQ0FBQyxLQUNELElBQUksT0FBT2lCLFVBQVUsS0FBSyxTQUFTLEVBQUU7UUFDeENKLG1CQUFtQixDQUFFVixJQUFJLElBQUE3QyxhQUFBLENBQUFBLGFBQUEsS0FDcEI2QyxJQUFJO1VBQ1AsQ0FBQ2EsWUFBWSxDQUFDaEIsRUFBRSxHQUFHO1FBQVMsRUFDNUIsQ0FBQztNQUNMLENBQUMsTUFDQ2UsTUFBTSxDQUFDM0QsSUFBSSxDQUNUNkQsVUFBVSxDQUFDQyxFQUFFLENBQUMsZUFBZSxFQUFHdkUsQ0FBQyxJQUFLO1FBQ3BDa0UsbUJBQW1CLENBQUVWLElBQUksSUFBQTdDLGFBQUEsQ0FBQUEsYUFBQSxLQUNwQjZDLElBQUk7VUFDUCxDQUFDYSxZQUFZLENBQUNoQixFQUFFLEdBQ2RyRCxDQUFDLENBQUN3RSxVQUFVLEtBQUt4RSxDQUFDLENBQUN5RSxnQkFBZ0IsR0FBRyxTQUFTLEdBQUc7UUFBUyxFQUM3RCxDQUFDO01BQ0wsQ0FBQyxDQUNILENBQUM7SUFDTDtJQUVBLE9BQU8sTUFBTTtNQUNYTCxNQUFNLENBQUN0RCxPQUFPLENBQUU0RCxLQUFLLElBQUtBLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDeEMsT0FBTyxFQUFFNEIsbUJBQW1CLENBQUMsQ0FBQztFQUVsQyxNQUFNYSxrQkFBa0IsR0FBRyxJQUFBNUIsY0FBTyxFQUFDLE1BQU07SUFDdkMsT0FBT2UsbUJBQW1CLENBQUNjLE1BQU0sQ0FBQyxDQUFDNUUsQ0FBQyxFQUFFNkUsUUFBUSxLQUFLO01BQ2pELE1BQU1DLFlBQVksR0FBR2IsZ0JBQWdCLENBQUNZLFFBQVEsQ0FBQ3hCLEVBQUUsQ0FBQztNQUNsRCxPQUFPckQsQ0FBQyxJQUFJOEUsWUFBWSxLQUFLLFNBQVM7SUFDeEMsQ0FBQyxFQUFFLElBQUksQ0FBQztFQUNWLENBQUMsRUFBRSxDQUFDYixnQkFBZ0IsRUFBRUgsbUJBQW1CLENBQUMsQ0FBQztFQUUzQyxPQUFPYSxrQkFBa0I7QUFDM0I7QUFFTyxTQUFTSSxjQUFjQSxDQUk1QnRDLGdCQUFtQixFQUFFUCxPQUFtQixFQUFFOEMsYUFBc0IsRUFBRTtFQUNsRSxNQUFNO0lBQUUvQixhQUFhO0lBQUVDO0VBQVcsQ0FBQyxHQUFHLElBQUFOLDZCQUFjLEVBQUMsZ0JBQWdCLENBQUM7RUFDdEUsTUFBTXFDLFFBQVEsR0FBRyxJQUFBbEMsY0FBTyxFQUFDLE1BQU07SUFDN0IsTUFBTW1DLEdBQUcsR0FDUEwsUUFFQyxJQUVEM0MsT0FBTyxDQUFDMkMsUUFBUSxDQUFDeEIsRUFBRSxDQUVqQjtJQUNKLE1BQU04QixTQUVMLEdBQUcsQ0FBQyxDQUFDO0lBQ04sS0FBSyxJQUFJTixRQUFRLElBQUlwQyxnQkFBZ0IsRUFBRTtNQUNyQyxNQUFNMkMsWUFBWSxHQUFHQSxDQUFBLEtBQU07UUFDekIsT0FBT0MsV0FBVyxDQUNoQkgsR0FBRyxDQUFDTCxRQUFRLENBQUMsRUFDYixDQUFDLENBQUNBLFFBQVEsQ0FBQ1MsUUFBUSxFQUNuQlQsUUFBUSxDQUFDVSxTQUFTLEVBQ2xCdEMsYUFDRixDQUFDO01BQ0gsQ0FBQztNQUNELE1BQU11QyxrQkFBa0IsR0FBR0EsQ0FBQSxLQUFNO1FBQy9CLE1BQU1DLFVBQVUsR0FBR0wsWUFBWSxDQUFDLENBQUM7UUFDakNELFNBQVMsQ0FBQ04sUUFBUSxDQUFDeEIsRUFBRSxDQUFDLEdBQUdvQyxVQUFVLENBQUNDLEtBQUs7TUFDM0MsQ0FBQztNQUNELFFBQVFiLFFBQVEsQ0FBQ2IsSUFBSTtRQUNuQixLQUFLLE9BQU87UUFDWixLQUFLLFVBQVU7VUFDYndCLGtCQUFrQixDQUFDLENBQUM7VUFDcEIsSUFBSVgsUUFBUSxDQUFDVSxTQUFTLEVBQ3BCSixTQUFTLENBQUNOLFFBQVEsQ0FBQ3hCLEVBQUUsQ0FBQyxHQUFHd0IsUUFBUSxDQUFDVSxTQUFTLENBQ3pDTCxHQUFHLENBQUNMLFFBQVEsQ0FDZCxDQUFXO1VBQ2I7UUFDRixLQUFLLFFBQVE7UUFDYixLQUFLLE1BQU07UUFDWCxLQUFLLFFBQVE7UUFDYixLQUFLLE9BQU87UUFDWixLQUFLLE1BQU07VUFDVFcsa0JBQWtCLENBQUMsQ0FBQztVQUNwQixNQUFNRyxnQkFBZ0IsR0FBR1AsWUFBWSxDQUFDLENBQUM7VUFDdkMsSUFBSU8sZ0JBQWdCLENBQUNELEtBQUssRUFDeEJQLFNBQVMsQ0FBQ04sUUFBUSxDQUFDeEIsRUFBRSxDQUFDLEdBQUdzQyxnQkFBZ0IsQ0FBQ0QsS0FBSztVQUNqRDtRQUNGO1VBQ0UsTUFBTUUsZUFBZSxHQUNuQjFDLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUNSMkIsUUFBUSxDQUFDYixJQUFJLENBQ2Q7VUFDSCxJQUFJNEIsZUFBZSxFQUFFO1lBQ25CLE1BQU1DLHNCQUFzQixHQUFHRCxlQUFlLENBQUNMLFNBQVMsQ0FDdERMLEdBQUcsQ0FBQ0wsUUFBUSxDQUFDLEVBQ2JBLFFBQ0YsQ0FBQztZQUNELElBQUlnQixzQkFBc0IsQ0FBQ0gsS0FBSyxFQUM5QlAsU0FBUyxDQUFDTixRQUFRLENBQUN4QixFQUFFLENBQUMsR0FBR3dDLHNCQUFzQixDQUFDSCxLQUFLO1VBQ3pELENBQUMsTUFBTTtZQUNMRixrQkFBa0IsQ0FBQyxDQUFDO1VBQ3RCO01BQ0o7SUFDRjtJQUVBLE9BQU9MLFNBQVM7RUFDbEIsQ0FBQyxFQUFFLENBQUMxQyxnQkFBZ0IsRUFBRVAsT0FBTyxDQUFDLENBQUM7RUFFL0IsTUFBTTRELGFBQWEsR0FBRyxJQUFBL0MsY0FBTyxFQUFDLE1BQU07SUFDbEMsT0FBTzdDLE1BQU0sQ0FBQzZGLE9BQU8sQ0FBQ2QsUUFBUSxDQUFDLENBQUNMLE1BQU0sQ0FDcEMsQ0FBQzVFLENBQUMsRUFBQWdHLEtBQUE7TUFBQSxJQUFFLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxDQUFDLEdBQUFGLEtBQUE7TUFBQSxPQUFBckYsYUFBQSxDQUFBQSxhQUFBLEtBQ0xYLENBQUM7UUFDSixDQUFDaUcsQ0FBQyxHQUFHakIsYUFBYSxHQUFHa0IsQ0FBQyxHQUFHQSxDQUFDLEtBQUtqRCxhQUFhLEdBQUdpRCxDQUFDLEdBQUdDO01BQVM7SUFBQSxDQUM1RCxFQUNGLENBQUMsQ0FDSCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNuQixhQUFhLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0VBRTdCLE9BQU9hLGFBQWE7QUFDdEI7QUFFTyxTQUFTOUMsdUJBQXVCQSxDQUNyQ1AsZ0JBQTZCLEVBQzdCUCxPQUFtQixFQUNuQmUsYUFBcUIsRUFDckJDLFVBQWdFLEVBQ2hFO0VBQ0EsTUFBTUwsT0FBTyxHQUFHSixnQkFBZ0IsQ0FBQ21DLE1BQU0sQ0FBQyxDQUFDd0IsV0FBVyxFQUFFdkIsUUFBUSxLQUFLO0lBQ2pFLE1BQU1LLEdBQUcsR0FDUEwsUUFFQyxJQUVEM0MsT0FBTyxDQUFDMkMsUUFBUSxDQUFDeEIsRUFBRSxDQUVqQjtJQUVKLE1BQU1nRCxNQUFNLEdBQ1ZELFdBQVcsSUFDWCxDQUFDLE1BQU07TUFDTCxRQUFRdkIsUUFBUSxDQUFDYixJQUFJO1FBQ25CLEtBQUssUUFBUTtVQUNYLE1BQU1zQyxNQUFNLEdBQUdwQixHQUFHLENBQUNMLFFBQVEsQ0FBQyxJQUFJLEVBQUU7VUFDbEMsT0FBT0EsUUFBUSxDQUFDMEIsTUFBTSxDQUFDM0IsTUFBTSxDQUMzQixDQUFDNUUsQ0FBQyxFQUFBd0csS0FBQSxFQUFnQkMsR0FBRztZQUFBLElBQWpCO2NBQUVuQjtZQUFTLENBQUMsR0FBQWtCLEtBQUE7WUFBQSxPQUFVeEcsQ0FBQyxLQUFLc0YsUUFBUSxHQUFHLElBQUksR0FBR2dCLE1BQU0sQ0FBQ0csR0FBRyxDQUFDLENBQUM7VUFBQSxHQUM5RCxJQUNGLENBQUM7UUFDSCxLQUFLLE9BQU87UUFDWixLQUFLLFVBQVU7VUFDYixJQUFJNUIsUUFBUSxDQUFDUyxRQUFRLEVBQUUsT0FBTyxJQUFJO1VBQ2xDLElBQUlULFFBQVEsQ0FBQ1UsU0FBUyxFQUNwQixPQUFPVixRQUFRLENBQUNVLFNBQVMsQ0FBQ0wsR0FBRyxDQUFDTCxRQUFRLENBQVEsQ0FBQztVQUNqRCxNQUFNNkIsVUFBVSxHQUFHeEIsR0FBRyxDQUFDTCxRQUFRLENBQUMsSUFBSSxFQUFFO1VBQ3RDLE9BQU82QixVQUFVLENBQUNDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbEMsS0FBSyxRQUFRO1FBQ2IsS0FBSyxNQUFNO1FBQ1gsS0FBSyxRQUFRO1FBQ2IsS0FBSyxPQUFPO1FBQ1osS0FBSyxNQUFNO1VBQ1QsSUFBSSxDQUFDekUsT0FBTyxDQUFDMkMsUUFBUSxDQUFDeEIsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUN3QixRQUFRLENBQUNTLFFBQVE7VUFDckQsTUFBTUssZ0JBQWdCLEdBQUdOLFdBQVcsQ0FDbENILEdBQUcsQ0FBQ0wsUUFBUSxDQUFDLEVBQ2IsQ0FBQyxDQUFDQSxRQUFRLENBQUNTLFFBQVEsRUFDbkJULFFBQVEsQ0FBQ1UsU0FBUyxFQUNsQnRDLGFBQ0YsQ0FBQztVQUNELE9BQU8wQyxnQkFBZ0IsQ0FBQzlDLE9BQU8sSUFBSXVELFdBQVc7UUFDaEQ7VUFDRSxNQUFNUixlQUFlLEdBQ25CMUMsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQ1IyQixRQUFRLENBQUNiLElBQUksQ0FDZDtVQUNILElBQUk0QixlQUFlLEVBQUU7WUFDbkIsTUFBTUMsc0JBQXNCLEdBQUdELGVBQWUsQ0FBQ0wsU0FBUyxDQUN0REwsR0FBRyxDQUFDTCxRQUFRLENBQUMsRUFDYkEsUUFDRixDQUFDO1lBQ0QsT0FBT2dCLHNCQUFzQixDQUFDaEQsT0FBTztVQUN2QyxDQUFDLE1BQ0MsT0FBT2dDLFFBQVEsQ0FBQ1UsU0FBUyxHQUNyQixDQUFDLENBQUNWLFFBQVEsQ0FBQ1UsU0FBUyxDQUFDTCxHQUFHLENBQUNMLFFBQVEsQ0FBUSxDQUFDLEdBQzFDLENBQUMsQ0FBQ0ssR0FBRyxDQUFDTCxRQUFRLENBQUM7TUFDekI7SUFDRixDQUFDLEVBQUUsQ0FBQztJQUNOLE9BQU93QixNQUFNO0VBQ2YsQ0FBQyxFQUFFLElBQUksQ0FBQztFQUVSLE9BQU87SUFBRXhELE9BQU8sRUFBRSxDQUFDLENBQUNBO0VBQVEsQ0FBQztBQUMvQjtBQUVPLE1BQU13QyxXQUFXLEdBQUdBLENBQ3pCdUIsT0FBZ0QsRUFDaERDLFVBQW1CLEVBQ25CdEIsU0FBdUQsRUFDdkR1QixrQkFBMEIsS0FDdkI7RUFDSCxNQUFNeEQsTUFBTSxHQUFHeUQsS0FBSyxDQUFDQyxPQUFPLENBQUNKLE9BQU8sQ0FBQyxHQUFHQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUdBLE9BQU87RUFDNUQsSUFBSSxDQUFDdEQsTUFBTSxJQUFJLENBQUN1RCxVQUFVLEVBQ3hCLE9BQU87SUFDTGhFLE9BQU8sRUFBRSxLQUFLO0lBQ2Q2QyxLQUFLLEVBQUVvQjtFQUNULENBQUM7RUFDSCxJQUFJLENBQUN2QixTQUFTLEVBQ1osSUFBSXdCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixPQUFPLENBQUMsRUFBRTtJQUMxQixNQUFNLENBQUNLLENBQUMsRUFBRXBFLE9BQU8sRUFBRTZDLEtBQUssQ0FBQyxHQUFHa0IsT0FBTztJQUNuQyxPQUFPO01BQ0wvRCxPQUFPO01BQ1A2QztJQUNGLENBQUM7RUFDSCxDQUFDLE1BQU07SUFDTCxPQUFPO01BQ0w3QyxPQUFPLEVBQUUsSUFBSTtNQUNiNkMsS0FBSyxFQUFFO0lBQ1QsQ0FBQztFQUNIO0VBQ0YsTUFBTUMsZ0JBQWdCLEdBQUdKLFNBQVMsQ0FBQ2pDLE1BQU0sQ0FBQztFQUMxQyxJQUFJLE9BQU9xQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQ3RDLE9BQU87SUFDTDlDLE9BQU8sRUFBRSxLQUFLO0lBQ2Q2QyxLQUFLLEVBQUVDO0VBQ1QsQ0FBQztFQUNILE9BQU87SUFDTDlDLE9BQU8sRUFBRThDLGdCQUFnQjtJQUN6QkQsS0FBSyxFQUFFO0VBQ1QsQ0FBQztBQUNILENBQUM7QUFBQ3dCLE9BQUEsQ0FBQTdCLFdBQUEsR0FBQUEsV0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
|