@1money/component-ui 0.0.90 → 0.0.91
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/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
- package/es/business/Dialog/BaseDialog/BaseDialog.js +131 -0
- package/es/business/Dialog/BaseDialog/constants.d.ts +12 -0
- package/es/business/Dialog/BaseDialog/constants.js +13 -0
- package/es/business/Dialog/BaseDialog/index.d.ts +4 -0
- package/es/business/Dialog/BaseDialog/index.js +5 -0
- package/es/business/Dialog/BaseDialog/interface.d.ts +69 -0
- package/es/business/Dialog/BaseDialog/interface.js +2 -0
- package/es/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
- package/es/business/Dialog/BaseDialog/style/css.js +2 -0
- package/es/business/Dialog/BaseDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/BaseDialog/style/index.js +2 -0
- package/es/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
- package/es/business/Dialog/Descriptions/Descriptions.js +102 -0
- package/es/business/Dialog/Descriptions/constants.d.ts +16 -0
- package/es/business/Dialog/Descriptions/constants.js +24 -0
- package/es/business/Dialog/Descriptions/index.d.ts +4 -0
- package/es/business/Dialog/Descriptions/index.js +5 -0
- package/es/business/Dialog/Descriptions/interface.d.ts +58 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
- package/es/business/Dialog/Descriptions/style/Descriptions.css +60 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
- package/es/business/Dialog/Descriptions/style/index.d.ts +1 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
- package/es/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
- package/es/business/Dialog/DetailsDialog/DetailsDialog.js +101 -0
- package/es/business/Dialog/DetailsDialog/index.d.ts +4 -0
- package/es/business/Dialog/DetailsDialog/index.js +5 -0
- package/es/business/Dialog/DetailsDialog/interface.d.ts +31 -0
- package/es/business/Dialog/DetailsDialog/interface.js +2 -0
- package/es/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
- package/es/business/Dialog/DetailsDialog/style/css.js +2 -0
- package/es/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/DetailsDialog/style/index.js +2 -0
- package/es/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
- package/es/business/Dialog/FormDialog/FormDialog.js +121 -0
- package/es/business/Dialog/FormDialog/index.d.ts +6 -0
- package/es/business/Dialog/FormDialog/index.js +6 -0
- package/es/business/Dialog/FormDialog/interface.d.ts +53 -0
- package/es/business/Dialog/FormDialog/interface.js +2 -0
- package/{lib/business/Dialog/TransactionDialog/style/TransactionDialog.css → es/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
- package/es/business/Dialog/FormDialog/style/css.js +2 -0
- package/es/business/Dialog/FormDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/FormDialog/style/index.js +2 -0
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +249 -95
- package/es/business/Dialog/VerificationDialog/constants.d.ts +8 -35
- package/es/business/Dialog/VerificationDialog/constants.js +8 -30
- package/es/business/Dialog/VerificationDialog/index.d.ts +2 -1
- package/es/business/Dialog/VerificationDialog/index.js +3 -2
- package/es/business/Dialog/VerificationDialog/interface.d.ts +42 -106
- package/es/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
- package/es/business/Dialog/index.d.ts +5 -2
- package/es/business/Dialog/index.js +8 -3
- package/es/business/Dialog/variants/DeleteDialog.d.ts +3 -0
- package/es/business/Dialog/variants/DeleteDialog.js +20 -0
- package/es/business/Dialog/variants/FailureDialog.d.ts +3 -0
- package/es/business/Dialog/variants/FailureDialog.js +20 -0
- package/es/business/Dialog/variants/LoadingDialog.d.ts +33 -0
- package/es/business/Dialog/variants/LoadingDialog.js +189 -0
- package/es/business/Dialog/variants/PendingDialog.d.ts +3 -0
- package/es/business/Dialog/variants/PendingDialog.js +19 -0
- package/es/business/Dialog/variants/SuccessDialog.d.ts +3 -0
- package/es/business/Dialog/variants/SuccessDialog.js +19 -0
- package/es/business/Dialog/variants/index.d.ts +10 -0
- package/es/business/Dialog/variants/index.js +9 -0
- package/es/business/Dialog/variants/style/LoadingDialog.css +62 -0
- package/es/business/Dialog/variants/style/css.js +2 -0
- package/es/business/Dialog/variants/style/index.d.ts +1 -0
- package/es/business/Dialog/variants/style/index.js +2 -0
- package/es/business/FieldList/index.d.ts +30 -0
- package/es/business/FieldList/index.js +59 -0
- package/es/business/FieldList/style/FieldList.css +89 -0
- package/es/business/FieldList/style/css.js +2 -0
- package/es/business/FieldList/style/index.d.ts +1 -0
- package/es/business/FieldList/style/index.js +2 -0
- package/es/business/FormPage/FormPage.d.ts +4 -0
- package/es/business/FormPage/FormPage.js +92 -0
- package/es/business/FormPage/index.d.ts +4 -0
- package/es/business/FormPage/index.js +5 -0
- package/es/business/FormPage/interface.d.ts +53 -0
- package/es/business/FormPage/interface.js +2 -0
- package/es/business/Select/Asset/AssetSelect.js +5 -1
- package/es/business/Select/Country/CountrySelect.js +5 -1
- package/es/business/Select/Currency/CurrencySelect.js +5 -1
- package/es/business/Select/Network/NetworkSelect.js +5 -1
- package/es/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
- package/es/business/index.d.ts +3 -0
- package/es/business/index.js +3 -1
- package/es/business/shared/formCore/BaseProForm.d.ts +40 -0
- package/es/business/shared/formCore/BaseProForm.js +87 -0
- package/es/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
- package/es/business/shared/formCore/useRelayedFormRef.js +43 -0
- package/es/business/shared/formCore/useSubmitAction.d.ts +11 -0
- package/es/business/shared/formCore/useSubmitAction.js +92 -0
- package/es/components/ActionBar/ActionBar.d.ts +3 -0
- package/es/components/ActionBar/ActionBar.js +115 -0
- package/es/components/ActionBar/constants.d.ts +29 -0
- package/es/components/ActionBar/constants.js +30 -0
- package/es/components/ActionBar/index.d.ts +4 -0
- package/es/components/ActionBar/index.js +5 -0
- package/es/components/ActionBar/interface.d.ts +82 -0
- package/es/components/ActionBar/interface.js +2 -0
- package/es/components/ActionBar/style/ActionBar.css +44 -0
- package/es/components/ActionBar/style/css.js +2 -0
- package/es/components/ActionBar/style/index.d.ts +1 -0
- package/es/components/ActionBar/style/index.js +2 -0
- package/es/components/Dialog/Dialog.js +13 -8
- package/es/components/Dialog/interface.d.ts +11 -0
- package/es/components/Dialog/style/Dialog.css +7 -4
- package/es/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
- package/es/components/Dialog/style/css.js +2 -1
- package/es/components/Dialog/style/index.d.ts +1 -0
- package/es/components/Dialog/style/index.js +2 -1
- package/es/components/FormLayout/FormLayout.d.ts +25 -0
- package/es/components/FormLayout/FormLayout.js +128 -0
- package/es/components/FormLayout/config.d.ts +96 -0
- package/es/components/FormLayout/config.js +93 -0
- package/es/components/FormLayout/context.d.ts +9 -0
- package/es/components/FormLayout/context.js +13 -0
- package/es/components/FormLayout/index.d.ts +7 -0
- package/es/components/FormLayout/index.js +7 -0
- package/es/components/FormLayout/interface.d.ts +51 -0
- package/es/components/FormLayout/interface.js +2 -0
- package/es/components/FormLayout/style/FormLayout.css +110 -0
- package/es/components/FormLayout/style/css.js +2 -0
- package/es/components/FormLayout/style/index.d.ts +1 -0
- package/es/components/FormLayout/style/index.js +2 -0
- package/es/components/Grid/Col.d.ts +1 -0
- package/es/components/Grid/Col.js +2 -1
- package/es/components/Grid/Row.d.ts +1 -0
- package/es/components/Grid/Row.js +2 -1
- package/es/components/Input/Input/Input.css +1 -1
- package/es/components/Input/Input/Input.js +16 -4
- package/es/components/Input/Mask/Mask.js +3 -2
- package/es/components/Input/interface.d.ts +5 -0
- package/es/components/ProForm/ProForm.js +24 -13
- package/es/components/ProForm/ProFormItem.js +2 -1
- package/es/components/ProForm/core/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +5 -2
- package/es/components/ProForm/style/ProForm.css +1 -1
- package/es/components/Select/Select.js +8 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +5 -1
- package/es/index.js +3 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +140 -0
- package/lib/business/Dialog/BaseDialog/constants.d.ts +12 -0
- package/lib/business/Dialog/BaseDialog/constants.js +19 -0
- package/lib/business/Dialog/BaseDialog/index.d.ts +4 -0
- package/lib/business/Dialog/BaseDialog/index.js +30 -0
- package/lib/business/Dialog/BaseDialog/interface.d.ts +69 -0
- package/lib/business/Dialog/BaseDialog/interface.js +6 -0
- package/lib/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
- package/lib/business/Dialog/BaseDialog/style/css.js +4 -0
- package/lib/business/Dialog/BaseDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/BaseDialog/style/index.js +4 -0
- package/lib/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
- package/lib/business/Dialog/Descriptions/Descriptions.js +112 -0
- package/lib/business/Dialog/Descriptions/constants.d.ts +16 -0
- package/lib/business/Dialog/Descriptions/constants.js +30 -0
- package/lib/business/Dialog/Descriptions/index.d.ts +4 -0
- package/lib/business/Dialog/Descriptions/index.js +30 -0
- package/lib/business/Dialog/Descriptions/interface.d.ts +58 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
- package/lib/business/Dialog/Descriptions/style/Descriptions.css +60 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
- package/lib/business/Dialog/Descriptions/style/index.d.ts +1 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +111 -0
- package/lib/business/Dialog/DetailsDialog/index.d.ts +4 -0
- package/lib/business/Dialog/DetailsDialog/index.js +30 -0
- package/lib/business/Dialog/DetailsDialog/interface.d.ts +31 -0
- package/lib/business/Dialog/DetailsDialog/interface.js +6 -0
- package/lib/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
- package/lib/business/Dialog/DetailsDialog/style/css.js +4 -0
- package/lib/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/DetailsDialog/style/index.js +4 -0
- package/lib/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
- package/lib/business/Dialog/FormDialog/FormDialog.js +130 -0
- package/lib/business/Dialog/FormDialog/index.d.ts +6 -0
- package/lib/business/Dialog/FormDialog/index.js +52 -0
- package/lib/business/Dialog/FormDialog/interface.d.ts +53 -0
- package/lib/business/Dialog/FormDialog/interface.js +6 -0
- package/{es/business/Dialog/TransactionDialog/style/TransactionDialog.css → lib/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
- package/lib/business/Dialog/FormDialog/style/css.js +4 -0
- package/lib/business/Dialog/FormDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/FormDialog/style/index.js +4 -0
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +250 -92
- package/lib/business/Dialog/VerificationDialog/constants.d.ts +8 -35
- package/lib/business/Dialog/VerificationDialog/constants.js +9 -31
- package/lib/business/Dialog/VerificationDialog/index.d.ts +2 -1
- package/lib/business/Dialog/VerificationDialog/index.js +4 -17
- package/lib/business/Dialog/VerificationDialog/interface.d.ts +42 -106
- package/lib/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
- package/lib/business/Dialog/index.d.ts +5 -2
- package/lib/business/Dialog/index.js +31 -9
- package/lib/business/Dialog/variants/DeleteDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/DeleteDialog.js +26 -0
- package/lib/business/Dialog/variants/FailureDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/FailureDialog.js +26 -0
- package/lib/business/Dialog/variants/LoadingDialog.d.ts +33 -0
- package/lib/business/Dialog/variants/LoadingDialog.js +199 -0
- package/lib/business/Dialog/variants/PendingDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/PendingDialog.js +25 -0
- package/lib/business/Dialog/variants/SuccessDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/SuccessDialog.js +25 -0
- package/lib/business/Dialog/variants/index.d.ts +10 -0
- package/lib/business/Dialog/variants/index.js +41 -0
- package/lib/business/Dialog/variants/style/LoadingDialog.css +62 -0
- package/lib/business/Dialog/variants/style/css.js +4 -0
- package/lib/business/Dialog/variants/style/index.d.ts +1 -0
- package/lib/business/Dialog/variants/style/index.js +4 -0
- package/lib/business/FieldList/index.d.ts +30 -0
- package/lib/business/FieldList/index.js +67 -0
- package/lib/business/FieldList/style/FieldList.css +89 -0
- package/lib/business/FieldList/style/css.js +4 -0
- package/lib/business/FieldList/style/index.d.ts +1 -0
- package/lib/business/FieldList/style/index.js +4 -0
- package/lib/business/FormPage/FormPage.d.ts +4 -0
- package/lib/business/FormPage/FormPage.js +98 -0
- package/lib/business/FormPage/index.d.ts +4 -0
- package/lib/business/FormPage/index.js +30 -0
- package/lib/business/FormPage/interface.d.ts +53 -0
- package/lib/business/FormPage/interface.js +6 -0
- package/lib/business/Select/Asset/AssetSelect.js +5 -1
- package/lib/business/Select/Country/CountrySelect.js +5 -1
- package/lib/business/Select/Currency/CurrencySelect.js +5 -1
- package/lib/business/Select/Network/NetworkSelect.js +5 -1
- package/lib/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
- package/lib/business/index.d.ts +3 -0
- package/lib/business/index.js +27 -1
- package/lib/business/shared/formCore/BaseProForm.d.ts +40 -0
- package/lib/business/shared/formCore/BaseProForm.js +93 -0
- package/lib/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
- package/lib/business/shared/formCore/useRelayedFormRef.js +49 -0
- package/lib/business/shared/formCore/useSubmitAction.d.ts +11 -0
- package/lib/business/shared/formCore/useSubmitAction.js +99 -0
- package/lib/components/ActionBar/ActionBar.d.ts +3 -0
- package/lib/components/ActionBar/ActionBar.js +124 -0
- package/lib/components/ActionBar/constants.d.ts +29 -0
- package/lib/components/ActionBar/constants.js +36 -0
- package/lib/components/ActionBar/index.d.ts +4 -0
- package/lib/components/ActionBar/index.js +30 -0
- package/lib/components/ActionBar/interface.d.ts +82 -0
- package/lib/components/ActionBar/interface.js +6 -0
- package/lib/components/ActionBar/style/ActionBar.css +44 -0
- package/lib/components/ActionBar/style/css.js +4 -0
- package/lib/components/ActionBar/style/index.d.ts +1 -0
- package/lib/components/ActionBar/style/index.js +4 -0
- package/lib/components/Dialog/Dialog.js +13 -8
- package/lib/components/Dialog/interface.d.ts +11 -0
- package/lib/components/Dialog/style/Dialog.css +7 -4
- package/lib/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
- package/lib/components/Dialog/style/css.js +2 -1
- package/lib/components/Dialog/style/index.d.ts +1 -0
- package/lib/components/Dialog/style/index.js +2 -1
- package/lib/components/FormLayout/FormLayout.d.ts +25 -0
- package/lib/components/FormLayout/FormLayout.js +138 -0
- package/lib/components/FormLayout/config.d.ts +96 -0
- package/lib/components/FormLayout/config.js +99 -0
- package/lib/components/FormLayout/context.d.ts +9 -0
- package/lib/components/FormLayout/context.js +19 -0
- package/lib/components/FormLayout/index.d.ts +7 -0
- package/lib/components/FormLayout/index.js +102 -0
- package/lib/components/FormLayout/interface.d.ts +51 -0
- package/lib/components/FormLayout/interface.js +6 -0
- package/lib/components/FormLayout/style/FormLayout.css +110 -0
- package/lib/components/FormLayout/style/css.js +4 -0
- package/lib/components/FormLayout/style/index.d.ts +1 -0
- package/lib/components/FormLayout/style/index.js +4 -0
- package/lib/components/Grid/Col.d.ts +1 -0
- package/lib/components/Grid/Col.js +2 -1
- package/lib/components/Grid/Row.d.ts +1 -0
- package/lib/components/Grid/Row.js +2 -1
- package/lib/components/Input/Input/Input.css +1 -1
- package/lib/components/Input/Input/Input.js +16 -4
- package/lib/components/Input/Mask/Mask.js +3 -2
- package/lib/components/Input/interface.d.ts +5 -0
- package/lib/components/ProForm/ProForm.js +27 -16
- package/lib/components/ProForm/ProFormItem.js +2 -1
- package/lib/components/ProForm/core/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +5 -2
- package/lib/components/ProForm/style/ProForm.css +1 -1
- package/lib/components/Select/Select.js +8 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +5 -1
- package/lib/index.js +33 -1
- package/package.json +39 -9
- package/scripts/mcp-server/examples.generated.json +84 -0
- package/scripts/mcp-server/index.generated.json +743 -152
- package/es/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
- package/es/business/Dialog/ResultDialog/ResultDialog.js +0 -126
- package/es/business/Dialog/ResultDialog/constants.d.ts +0 -27
- package/es/business/Dialog/ResultDialog/constants.js +0 -24
- package/es/business/Dialog/ResultDialog/index.d.ts +0 -3
- package/es/business/Dialog/ResultDialog/index.js +0 -4
- package/es/business/Dialog/ResultDialog/interface.d.ts +0 -95
- package/es/business/Dialog/ResultDialog/presets.d.ts +0 -178
- package/es/business/Dialog/ResultDialog/presets.js +0 -139
- package/es/business/Dialog/ResultDialog/style/index.d.ts +0 -1
- package/es/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
- package/es/business/Dialog/TransactionDialog/TransactionDialog.js +0 -174
- package/es/business/Dialog/TransactionDialog/constants.d.ts +0 -34
- package/es/business/Dialog/TransactionDialog/constants.js +0 -33
- package/es/business/Dialog/TransactionDialog/index.d.ts +0 -3
- package/es/business/Dialog/TransactionDialog/index.js +0 -4
- package/es/business/Dialog/TransactionDialog/interface.d.ts +0 -116
- package/es/business/Dialog/TransactionDialog/interface.js +0 -2
- package/es/business/Dialog/TransactionDialog/presets.d.ts +0 -89
- package/es/business/Dialog/TransactionDialog/presets.js +0 -62
- package/es/business/Dialog/TransactionDialog/style/css.js +0 -2
- package/es/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
- package/es/business/Dialog/TransactionDialog/style/index.js +0 -2
- package/es/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
- package/es/business/Dialog/VerificationDialog/ResendRow.js +0 -65
- package/es/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
- package/es/business/Dialog/VerificationDialog/hooks/index.js +0 -3
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -138
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -103
- package/lib/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
- package/lib/business/Dialog/ResultDialog/ResultDialog.js +0 -132
- package/lib/business/Dialog/ResultDialog/constants.d.ts +0 -27
- package/lib/business/Dialog/ResultDialog/constants.js +0 -30
- package/lib/business/Dialog/ResultDialog/index.d.ts +0 -3
- package/lib/business/Dialog/ResultDialog/index.js +0 -40
- package/lib/business/Dialog/ResultDialog/interface.d.ts +0 -95
- package/lib/business/Dialog/ResultDialog/presets.d.ts +0 -178
- package/lib/business/Dialog/ResultDialog/presets.js +0 -145
- package/lib/business/Dialog/ResultDialog/style/index.d.ts +0 -1
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.js +0 -180
- package/lib/business/Dialog/TransactionDialog/constants.d.ts +0 -34
- package/lib/business/Dialog/TransactionDialog/constants.js +0 -39
- package/lib/business/Dialog/TransactionDialog/index.d.ts +0 -3
- package/lib/business/Dialog/TransactionDialog/index.js +0 -40
- package/lib/business/Dialog/TransactionDialog/interface.d.ts +0 -116
- package/lib/business/Dialog/TransactionDialog/interface.js +0 -6
- package/lib/business/Dialog/TransactionDialog/presets.d.ts +0 -89
- package/lib/business/Dialog/TransactionDialog/presets.js +0 -68
- package/lib/business/Dialog/TransactionDialog/style/css.js +0 -4
- package/lib/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
- package/lib/business/Dialog/TransactionDialog/style/index.js +0 -4
- package/lib/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
- package/lib/business/Dialog/VerificationDialog/ResendRow.js +0 -71
- package/lib/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
- package/lib/business/Dialog/VerificationDialog/hooks/index.js +0 -20
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -145
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -110
|
@@ -1,124 +1,60 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { InputStatus } from "../../../components/Input";
|
|
5
|
-
import type { OtpVerifyResult } from './hooks';
|
|
6
|
-
export type { OtpVerifyResult, UseOtpVerificationOptions, UseOtpVerificationResult, UseResendCountdownOptions, UseResendCountdownResult, } from './hooks';
|
|
7
|
-
/** Visual status forwarded to the inner `Input.OTP`. */
|
|
8
|
-
export type VerificationDialogStatus = InputStatus;
|
|
2
|
+
import type { ActionBarAction, ActionBarFootnote } from "../../../components/ActionBar";
|
|
3
|
+
import type { BaseDialogProps } from '../BaseDialog';
|
|
9
4
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
5
|
+
* Result contract of `onVerify`: resolve/return `true` on success (close the
|
|
6
|
+
* dialog in your handler); resolve a string (or return one) to show it as the
|
|
7
|
+
* error and clear the boxes. Rejections become a generic error string.
|
|
8
|
+
* Mirrors the app's legacy `OptCodeNestPromiseResult` convention.
|
|
13
9
|
*/
|
|
14
|
-
export
|
|
15
|
-
/** Button label. */
|
|
16
|
-
label: ReactNode;
|
|
17
|
-
/** Click handler. */
|
|
18
|
-
onClick?: () => void;
|
|
19
|
-
/** Disable the button. */
|
|
20
|
-
disabled?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Color tone.
|
|
23
|
-
* @default 'grey'
|
|
24
|
-
*/
|
|
25
|
-
color?: ButtonColor;
|
|
26
|
-
}
|
|
10
|
+
export type VerificationResult = boolean | string;
|
|
27
11
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
12
|
+
* Rate-limited resend, rendered as the LEFT (secondary) button — e.g.
|
|
13
|
+
* "Resend Email" alongside "Submit" (Figma 39571-18982). While cooling down
|
|
14
|
+
* the button is disabled and shows a countdown. When provided, it replaces
|
|
15
|
+
* the default Cancel secondary.
|
|
30
16
|
*/
|
|
31
|
-
export interface
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*/
|
|
38
|
-
actionText?: ReactNode;
|
|
39
|
-
/** Fires when the user triggers a resend (in-app action like re-sending an email). */
|
|
40
|
-
onResend: () => void | Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Cooldown length in seconds before resending is allowed again. While
|
|
43
|
-
* counting down, the label is muted and shows the remaining time.
|
|
44
|
-
* @default 60
|
|
45
|
-
*/
|
|
17
|
+
export interface VerificationResend {
|
|
18
|
+
/** Button label, e.g. `"Resend Email"`. */
|
|
19
|
+
label?: ReactNode;
|
|
20
|
+
/** Fires when clicked while not cooling down. */
|
|
21
|
+
onResend?: () => void | Promise<void>;
|
|
22
|
+
/** Cooldown seconds after a resend; the button shows a countdown. */
|
|
46
23
|
cooldown?: number;
|
|
47
24
|
}
|
|
48
|
-
export interface VerificationDialogProps extends Pick<
|
|
49
|
-
/** Dialog heading, e.g. `"
|
|
50
|
-
title
|
|
51
|
-
/** Supporting copy under the title
|
|
25
|
+
export interface VerificationDialogProps extends Pick<BaseDialogProps, 'open' | 'eyebrow' | 'maskClosable' | 'showCloseIcon' | 'showBackIcon' | 'onBack' | 'className' | 'onClose' | 'descriptionStrong'> {
|
|
26
|
+
/** Dialog heading, e.g. `"Please enter the code from your authenticator app"`. */
|
|
27
|
+
title?: ReactNode;
|
|
28
|
+
/** Supporting copy under the title. */
|
|
52
29
|
description?: ReactNode;
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
defaultValue?: string;
|
|
57
|
-
/** Helper subtext shown directly under the OTP boxes, e.g. `"e.g. 123 456"`. Hidden while an error is showing. */
|
|
30
|
+
/** Number of OTP boxes. */
|
|
31
|
+
length?: number;
|
|
32
|
+
/** Hint under the boxes when there is no error, e.g. `"e.g. 123 456"`. */
|
|
58
33
|
otpHint?: ReactNode;
|
|
59
|
-
/**
|
|
60
|
-
* Auto-focus the first OTP box when the dialog opens.
|
|
61
|
-
* @default false
|
|
62
|
-
*/
|
|
63
|
-
autoFocus?: boolean;
|
|
64
|
-
/**
|
|
65
|
-
* Mask the entered digits as dots (•), like a password field, instead of
|
|
66
|
-
* showing them in plain text. This is **display only** — `value`, `onChange`,
|
|
67
|
-
* and the code passed to `onVerify` are always the real digits. Use it when
|
|
68
|
-
* the screen may be visible to others (e.g. shared/public devices).
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
34
|
+
/** Mask the digits (dots instead of numbers). */
|
|
71
35
|
mask?: boolean;
|
|
36
|
+
/** Focus the first box when the dialog opens (default `true`). */
|
|
37
|
+
autoFocus?: boolean;
|
|
72
38
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
disabled?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Verify automatically once all digits are entered (in addition to the
|
|
79
|
-
* submit button).
|
|
80
|
-
* @default true
|
|
39
|
+
* Submit automatically when the last box is filled (default `true`). The
|
|
40
|
+
* submit button stays as an explicit fallback either way.
|
|
81
41
|
*/
|
|
82
42
|
autoSubmit?: boolean;
|
|
43
|
+
/** Submit button label override (defaults to the generic 'Confirm'). */
|
|
44
|
+
submitText?: ReactNode;
|
|
83
45
|
/**
|
|
84
|
-
*
|
|
85
|
-
* string to show it as the error
|
|
86
|
-
*
|
|
87
|
-
* button's loading state and auto-submit.
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```tsx
|
|
91
|
-
* <VerificationDialog
|
|
92
|
-
* open={open}
|
|
93
|
-
* title="Email Verification"
|
|
94
|
-
* description="Enter the 6-digit code sent to ema...@gmail.com"
|
|
95
|
-
* otpHint="e.g. 123 456"
|
|
96
|
-
* submitText="Continue"
|
|
97
|
-
* onVerify={async (code) => {
|
|
98
|
-
* const res = await api.verify(code);
|
|
99
|
-
* return res.ok ? true : 'That code is incorrect.';
|
|
100
|
-
* }}
|
|
101
|
-
* secondaryAction={{ label: 'Cancel', onClick: () => setOpen(false) }}
|
|
102
|
-
* resend={{ promptText: "Haven't received the code?", onResend: api.resend, cooldown: 60 }}
|
|
103
|
-
* onClose={() => setOpen(false)}
|
|
104
|
-
* />
|
|
105
|
-
* ```
|
|
106
|
-
*/
|
|
107
|
-
onVerify: (code: string) => Promise<OtpVerifyResult> | OtpVerifyResult;
|
|
108
|
-
/** Fires on every OTP change with the current value. */
|
|
109
|
-
onChange?: (value: string) => void;
|
|
110
|
-
/**
|
|
111
|
-
* Primary (submit) button label.
|
|
112
|
-
* @default 'Submit'
|
|
46
|
+
* The whole verification flow in one callback. Return `true` for success;
|
|
47
|
+
* return a string to show it as the error and clear the boxes; a throw or
|
|
48
|
+
* a falsy result shows the generic error.
|
|
113
49
|
*/
|
|
114
|
-
|
|
115
|
-
/** Optional secondary button (e.g. "Cancel") shown beside the submit button. */
|
|
116
|
-
secondaryAction?: VerificationDialogSecondaryAction;
|
|
117
|
-
/** Optional resend prompt + link with built-in cooldown, below a divider. */
|
|
118
|
-
resend?: VerificationDialogResend;
|
|
50
|
+
onVerify?: (code: string) => VerificationResult | Promise<VerificationResult>;
|
|
119
51
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
52
|
+
* Secondary (left) action, e.g. Cancel. Defaults to wiring `onClose`.
|
|
53
|
+
* Ignored when `resend` is provided — resend takes the secondary slot.
|
|
122
54
|
*/
|
|
123
|
-
|
|
55
|
+
secondary?: ActionBarAction | false;
|
|
56
|
+
/** Rate-limited resend, rendered as the left button (see `VerificationResend`). */
|
|
57
|
+
resend?: VerificationResend;
|
|
58
|
+
/** Footnote row, e.g. `"Don't have access to your 2FA? Reset 2FA"`. */
|
|
59
|
+
footnote?: ActionBarFootnote;
|
|
124
60
|
}
|
|
@@ -20,11 +20,22 @@
|
|
|
20
20
|
* gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
21
21
|
* }
|
|
22
22
|
*/
|
|
23
|
-
.om-verification-dialog-
|
|
24
|
-
|
|
23
|
+
.om-component-ui-verification-dialog .om-component-ui-dialog-content {
|
|
24
|
+
padding-top: var(--om-spacing-400, 16px);
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
.om-component-ui-verification-dialog .om-component-ui-input-otp {
|
|
27
|
+
gap: 0;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
width: 100%;
|
|
30
|
+
}
|
|
31
|
+
.om-component-ui-verification-dialog .om-component-ui-input-otp-cell {
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
width: 44px;
|
|
34
|
+
height: 44px;
|
|
35
|
+
flex: 0 0 44px;
|
|
36
|
+
}
|
|
37
|
+
.om-component-ui-verification-dialog .om-component-ui-input-feedback,
|
|
38
|
+
.om-component-ui-verification-dialog .om-component-ui-input-tip {
|
|
39
|
+
font-size: 12px;
|
|
40
|
+
line-height: 16px;
|
|
30
41
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './FormDialog';
|
|
2
|
+
export * from './BaseDialog';
|
|
3
|
+
export * from './DetailsDialog';
|
|
4
|
+
export type { DescriptionsRow } from './Descriptions';
|
|
5
|
+
export * from './variants';
|
|
3
6
|
export * from './VerificationDialog';
|
|
@@ -3,25 +3,47 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var
|
|
7
|
-
Object.keys(
|
|
6
|
+
var _FormDialog = require("./FormDialog");
|
|
7
|
+
Object.keys(_FormDialog).forEach(function (key) {
|
|
8
8
|
if (key === "default" || key === "__esModule") return;
|
|
9
|
-
if (key in exports && exports[key] ===
|
|
9
|
+
if (key in exports && exports[key] === _FormDialog[key]) return;
|
|
10
10
|
Object.defineProperty(exports, key, {
|
|
11
11
|
enumerable: true,
|
|
12
12
|
get: function get() {
|
|
13
|
-
return
|
|
13
|
+
return _FormDialog[key];
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
var
|
|
18
|
-
Object.keys(
|
|
17
|
+
var _BaseDialog = require("./BaseDialog");
|
|
18
|
+
Object.keys(_BaseDialog).forEach(function (key) {
|
|
19
19
|
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] ===
|
|
20
|
+
if (key in exports && exports[key] === _BaseDialog[key]) return;
|
|
21
21
|
Object.defineProperty(exports, key, {
|
|
22
22
|
enumerable: true,
|
|
23
23
|
get: function get() {
|
|
24
|
-
return
|
|
24
|
+
return _BaseDialog[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _DetailsDialog = require("./DetailsDialog");
|
|
29
|
+
Object.keys(_DetailsDialog).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _DetailsDialog[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _DetailsDialog[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _variants = require("./variants");
|
|
40
|
+
Object.keys(_variants).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _variants[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _variants[key];
|
|
25
47
|
}
|
|
26
48
|
});
|
|
27
49
|
});
|
|
@@ -36,4 +58,4 @@ Object.keys(_VerificationDialog).forEach(function (key) {
|
|
|
36
58
|
}
|
|
37
59
|
});
|
|
38
60
|
});
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9EaWFsb2cvaW5kZXgudHMiXSwibmFtZXMiOlsiX0Zvcm1EaWFsb2ciLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX0Jhc2VEaWFsb2ciLCJfRGV0YWlsc0RpYWxvZyIsIl92YXJpYW50cyIsIl9WZXJpZmljYXRpb25EaWFsb2ciXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSCxXQUFBLEVBQUFJLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFMLFdBQUEsQ0FBQUssR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQVQsV0FBQSxDQUFBSyxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBVCxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBTyxXQUFBLEVBQUFOLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFLLFdBQUEsQ0FBQUwsR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQUMsV0FBQSxDQUFBTCxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBVixPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUSxjQUFBLEVBQUFQLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFNLGNBQUEsQ0FBQU4sR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQUUsY0FBQSxDQUFBTixHQUFBO0lBQUE7RUFBQTtBQUFBO0FBSUEsSUFBQU8sU0FBQSxHQUFBWCxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUyxTQUFBLEVBQUFSLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFPLFNBQUEsQ0FBQVAsR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQUcsU0FBQSxDQUFBUCxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQVEsbUJBQUEsR0FBQVosT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVUsbUJBQUEsRUFBQVQsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQVEsbUJBQUEsQ0FBQVIsR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQUksbUJBQUEsQ0FBQVIsR0FBQTtJQUFBO0VBQUE7QUFBQSIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DeleteDialog = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _BaseDialog = require("../BaseDialog");
|
|
10
|
+
// Shape only — error illustration + danger-toned confirm (Figma 39958-10166
|
|
11
|
+
// "Delete bank account?": Cancel grey left, danger Confirm right).
|
|
12
|
+
var PRESET = {
|
|
13
|
+
illustration: 'illusError',
|
|
14
|
+
primaryColor: 'danger'
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* `BaseDialog` preset for destructive confirms. Explicit props — including
|
|
18
|
+
* per-action `color` — win over the preset.
|
|
19
|
+
*/
|
|
20
|
+
var DeleteDialogBase = function DeleteDialogBase(props) {
|
|
21
|
+
return (0, _jsxRuntime.jsx)(_BaseDialog.BaseDialog, Object.assign({}, props, {
|
|
22
|
+
preset: PRESET
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
var DeleteDialog = exports.DeleteDialog = /*#__PURE__*/(0, _react.memo)(DeleteDialogBase);
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9EZWxldGVEaWFsb2cuanMiLCJidXNpbmVzcy9EaWFsb2cvc3JjL2J1c2luZXNzL0RpYWxvZy92YXJpYW50cy9EZWxldGVEaWFsb2cudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9CYXNlRGlhbG9nIiwiUFJFU0VUIiwiaWxsdXN0cmF0aW9uIiwicHJpbWFyeUNvbG9yIiwiRGVsZXRlRGlhbG9nQmFzZSIsInByb3BzIiwiX2pzeCIsIkJhc2VEaWFsb2ciLCJPYmplY3QiLCJhc3NpZ24iLCJwcmVzZXQiLCJEZWxldGVEaWFsb2ciLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBSUE7QUFDQTtBQUNBLElBQU1HLE1BQU0sR0FBcUI7RUFDL0JDLFlBQVksRUFBRSxZQUFZO0VBQzFCQyxZQUFZLEVBQUU7QUREaEIsQ0NFQztBQUlEO0FESkE7QUFDQTtBQUNBO0FDTUEsSUFBTUMsZ0JBQWdCLEdBQTBCLFNBQTFDQSxnQkFBZ0JBLENBQTJCQyxLQUFLO0VBQUEsT0FDcEQsSUFBQUMsZUFBQSxFQUFDQyxzQkFBVSxFQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBS0osS0FBSyxFQUFBO0lBQUVLLE1BQU0sRUFBRVQ7RUFBTSxDQUFBLENBQUEsQ0FBSTtBQUFBLENBQzFDO0FBRU0sSUFBTVUsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDVCxnQkFBZ0IsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvRGVsZXRlRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nIH0gZnJvbSAnLi4vQmFzZURpYWxvZyc7XG4vLyBTaGFwZSBvbmx5IOKAlCBlcnJvciBpbGx1c3RyYXRpb24gKyBkYW5nZXItdG9uZWQgY29uZmlybSAoRmlnbWEgMzk5NTgtMTAxNjZcbi8vIFwiRGVsZXRlIGJhbmsgYWNjb3VudD9cIjogQ2FuY2VsIGdyZXkgbGVmdCwgZGFuZ2VyIENvbmZpcm0gcmlnaHQpLlxuY29uc3QgUFJFU0VUID0ge1xuICAgIGlsbHVzdHJhdGlvbjogJ2lsbHVzRXJyb3InLFxuICAgIHByaW1hcnlDb2xvcjogJ2RhbmdlcicsXG59O1xuLyoqXG4gKiBgQmFzZURpYWxvZ2AgcHJlc2V0IGZvciBkZXN0cnVjdGl2ZSBjb25maXJtcy4gRXhwbGljaXQgcHJvcHMg4oCUIGluY2x1ZGluZ1xuICogcGVyLWFjdGlvbiBgY29sb3JgIOKAlCB3aW4gb3ZlciB0aGUgcHJlc2V0LlxuICovXG5jb25zdCBEZWxldGVEaWFsb2dCYXNlID0gKHByb3BzKSA9PiAoX2pzeChCYXNlRGlhbG9nLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBwcmVzZXQ6IFBSRVNFVCB9KSkpO1xuZXhwb3J0IGNvbnN0IERlbGV0ZURpYWxvZyA9IG1lbW8oRGVsZXRlRGlhbG9nQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FailureDialog = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _BaseDialog = require("../BaseDialog");
|
|
10
|
+
// Shape only — error illustration (Figma 39958-10339 "Transaction failed").
|
|
11
|
+
// Unlike DeleteDialog, actions keep their normal tones (e.g. secondary
|
|
12
|
+
// "Contact Support" + primary "Try Again").
|
|
13
|
+
var PRESET = {
|
|
14
|
+
illustration: 'illusError'
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* `BaseDialog` preset for failure results. Explicit props win over the
|
|
18
|
+
* preset.
|
|
19
|
+
*/
|
|
20
|
+
var FailureDialogBase = function FailureDialogBase(props) {
|
|
21
|
+
return (0, _jsxRuntime.jsx)(_BaseDialog.BaseDialog, Object.assign({}, props, {
|
|
22
|
+
preset: PRESET
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
var FailureDialog = exports.FailureDialog = /*#__PURE__*/(0, _react.memo)(FailureDialogBase);
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9GYWlsdXJlRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvRmFpbHVyZURpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0Jhc2VEaWFsb2ciLCJQUkVTRVQiLCJpbGx1c3RyYXRpb24iLCJGYWlsdXJlRGlhbG9nQmFzZSIsInByb3BzIiwiX2pzeCIsIkJhc2VEaWFsb2ciLCJPYmplY3QiLCJhc3NpZ24iLCJwcmVzZXQiLCJGYWlsdXJlRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBLElBQU1HLE1BQU0sR0FBcUI7RUFDL0JDLFlBQVksRUFBRTtBRERoQixDQ0VDO0FBSUQ7QURKQTtBQUNBO0FBQ0E7QUNNQSxJQUFNQyxpQkFBaUIsR0FBMkIsU0FBNUNBLGlCQUFpQkEsQ0FBNEJDLEtBQUs7RUFBQSxPQUN0RCxJQUFBQyxlQUFBLEVBQUNDLHNCQUFVLEVBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLSixLQUFLLEVBQUE7SUFBRUssTUFBTSxFQUFFUjtFQUFNLENBQUEsQ0FBQSxDQUFJO0FBQUEsQ0FDMUM7QUFFTSxJQUFNUyxhQUFhLEdBQUFDLE9BQUEsQ0FBQUQsYUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNULGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9GYWlsdXJlRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCYXNlRGlhbG9nIH0gZnJvbSAnLi4vQmFzZURpYWxvZyc7XG4vLyBTaGFwZSBvbmx5IOKAlCBlcnJvciBpbGx1c3RyYXRpb24gKEZpZ21hIDM5OTU4LTEwMzM5IFwiVHJhbnNhY3Rpb24gZmFpbGVkXCIpLlxuLy8gVW5saWtlIERlbGV0ZURpYWxvZywgYWN0aW9ucyBrZWVwIHRoZWlyIG5vcm1hbCB0b25lcyAoZS5nLiBzZWNvbmRhcnlcbi8vIFwiQ29udGFjdCBTdXBwb3J0XCIgKyBwcmltYXJ5IFwiVHJ5IEFnYWluXCIpLlxuY29uc3QgUFJFU0VUID0ge1xuICAgIGlsbHVzdHJhdGlvbjogJ2lsbHVzRXJyb3InLFxufTtcbi8qKlxuICogYEJhc2VEaWFsb2dgIHByZXNldCBmb3IgZmFpbHVyZSByZXN1bHRzLiBFeHBsaWNpdCBwcm9wcyB3aW4gb3ZlciB0aGVcbiAqIHByZXNldC5cbiAqL1xuY29uc3QgRmFpbHVyZURpYWxvZ0Jhc2UgPSAocHJvcHMpID0+IChfanN4KEJhc2VEaWFsb2csIE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCB7IHByZXNldDogUFJFU0VUIH0pKSk7XG5leHBvcnQgY29uc3QgRmFpbHVyZURpYWxvZyA9IG1lbW8oRmFpbHVyZURpYWxvZ0Jhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import './style';
|
|
2
|
+
export type LoadingPollStatus = 'success' | 'pending' | 'failed';
|
|
3
|
+
export interface LoadingPollResult<T = any> {
|
|
4
|
+
status: LoadingPollStatus;
|
|
5
|
+
data?: T;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Fixed waiting surface — mirrors the legacy `Modal/Loading` structure: the
|
|
9
|
+
* content is NOT configurable (spinning brand logo + pulsing "Loading..." +
|
|
10
|
+
* hint, all centered), there are no slots, no actions, no close, and the
|
|
11
|
+
* mask never dismisses. Only the polling orchestration and the icon size
|
|
12
|
+
* are parameters.
|
|
13
|
+
*/
|
|
14
|
+
export interface LoadingDialogProps<T = any> {
|
|
15
|
+
open?: boolean;
|
|
16
|
+
/** Spinning brand logo size (legacy default 74). */
|
|
17
|
+
iconSize?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Polling orchestration (ported verbatim from the legacy LoadingModal):
|
|
20
|
+
* runs on mount and every `pollInterval` ms. `success`/`failed` results
|
|
21
|
+
* stop polling and fire the matching callback with `result.data`; a throw
|
|
22
|
+
* fires `onFailed(error)`; `pending` keeps polling until `pollTimeout`,
|
|
23
|
+
* which stops and fires `onPending()`.
|
|
24
|
+
*/
|
|
25
|
+
pollFn?: () => Promise<LoadingPollResult<T>>;
|
|
26
|
+
pollInterval?: number;
|
|
27
|
+
pollTimeout?: number;
|
|
28
|
+
onSuccess?: (data?: T) => void;
|
|
29
|
+
onPending?: (data?: T) => void;
|
|
30
|
+
onFailed?: (error?: any) => void;
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare const LoadingDialog: import("react").NamedExoticComponent<LoadingDialogProps<any>>;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.LoadingDialog = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _useLatest = _interopRequireDefault(require("@1money/hooks/useLatest"));
|
|
13
|
+
var _Dialog = require("../../../components/Dialog");
|
|
14
|
+
var _Icons = require("../../../components/Icons");
|
|
15
|
+
var _Typography = require("../../../components/Typography");
|
|
16
|
+
var _classnames = _interopRequireWildcard(require("../../../utils/classnames"));
|
|
17
|
+
var _constants = require("../BaseDialog/constants");
|
|
18
|
+
require("./style");
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
21
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) {
|
|
23
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
24
|
+
resolve(value);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.next(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function rejected(value) {
|
|
36
|
+
try {
|
|
37
|
+
step(generator["throw"](value));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
reject(e);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function step(result) {
|
|
43
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
44
|
+
}
|
|
45
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
var PREFIX = 'loading-dialog';
|
|
49
|
+
// Generic UI vocabulary (like Confirm/Cancel), fixed as in the legacy modal.
|
|
50
|
+
var LOADING_TEXT = 'Loading...';
|
|
51
|
+
var HINT_TEXT = 'Please wait a few seconds';
|
|
52
|
+
var LoadingDialogBase = function LoadingDialogBase(_ref) {
|
|
53
|
+
var open = _ref.open,
|
|
54
|
+
_ref$iconSize = _ref.iconSize,
|
|
55
|
+
iconSize = _ref$iconSize === void 0 ? 74 : _ref$iconSize,
|
|
56
|
+
pollFn = _ref.pollFn,
|
|
57
|
+
_ref$pollInterval = _ref.pollInterval,
|
|
58
|
+
pollInterval = _ref$pollInterval === void 0 ? 1000 : _ref$pollInterval,
|
|
59
|
+
_ref$pollTimeout = _ref.pollTimeout,
|
|
60
|
+
pollTimeout = _ref$pollTimeout === void 0 ? 5000 : _ref$pollTimeout,
|
|
61
|
+
onSuccess = _ref.onSuccess,
|
|
62
|
+
onPending = _ref.onPending,
|
|
63
|
+
onFailed = _ref.onFailed,
|
|
64
|
+
className = _ref.className;
|
|
65
|
+
var classes = (0, _classnames["default"])(PREFIX);
|
|
66
|
+
// Latest-refs keep the polling session alive across re-renders with inline
|
|
67
|
+
// callbacks — only open/interval/timeout (and pollFn presence) restart it.
|
|
68
|
+
var pollFnRef = (0, _useLatest["default"])(pollFn);
|
|
69
|
+
var onSuccessRef = (0, _useLatest["default"])(onSuccess);
|
|
70
|
+
var onPendingRef = (0, _useLatest["default"])(onPending);
|
|
71
|
+
var onFailedRef = (0, _useLatest["default"])(onFailed);
|
|
72
|
+
var hasPollFn = !!pollFn;
|
|
73
|
+
(0, _react.useEffect)(function () {
|
|
74
|
+
// Polling is tied to visibility: a mounted-but-closed dialog must not
|
|
75
|
+
// poll (or fire terminal callbacks from behind a hidden surface).
|
|
76
|
+
if (!hasPollFn || !open) return undefined;
|
|
77
|
+
// Single-terminal-outcome guard: whichever of success/failed/pending
|
|
78
|
+
// settles first wins; an in-flight pollFn resolving after the timeout
|
|
79
|
+
// (or after close/unmount) is discarded.
|
|
80
|
+
var settled = false;
|
|
81
|
+
var inFlight = false;
|
|
82
|
+
var interval;
|
|
83
|
+
var timeout;
|
|
84
|
+
var settle = function settle(fire) {
|
|
85
|
+
if (settled) return;
|
|
86
|
+
settled = true;
|
|
87
|
+
clearInterval(interval);
|
|
88
|
+
clearTimeout(timeout);
|
|
89
|
+
fire();
|
|
90
|
+
};
|
|
91
|
+
var poll = function poll() {
|
|
92
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
93
|
+
var result, _t;
|
|
94
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
95
|
+
while (1) switch (_context.prev = _context.next) {
|
|
96
|
+
case 0:
|
|
97
|
+
if (!(settled || inFlight)) {
|
|
98
|
+
_context.next = 1;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
return _context.abrupt("return");
|
|
102
|
+
case 1:
|
|
103
|
+
inFlight = true;
|
|
104
|
+
_context.prev = 2;
|
|
105
|
+
_context.next = 3;
|
|
106
|
+
return pollFnRef.current();
|
|
107
|
+
case 3:
|
|
108
|
+
result = _context.sent;
|
|
109
|
+
if (result.status === 'success') {
|
|
110
|
+
settle(function () {
|
|
111
|
+
var _a;
|
|
112
|
+
return (_a = onSuccessRef.current) === null || _a === void 0 ? void 0 : _a.call(onSuccessRef, result.data);
|
|
113
|
+
});
|
|
114
|
+
} else if (result.status === 'failed') {
|
|
115
|
+
settle(function () {
|
|
116
|
+
var _a;
|
|
117
|
+
return (_a = onFailedRef.current) === null || _a === void 0 ? void 0 : _a.call(onFailedRef, result.data);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
_context.next = 5;
|
|
121
|
+
break;
|
|
122
|
+
case 4:
|
|
123
|
+
_context.prev = 4;
|
|
124
|
+
_t = _context["catch"](2);
|
|
125
|
+
settle(function () {
|
|
126
|
+
var _a;
|
|
127
|
+
return (_a = onFailedRef.current) === null || _a === void 0 ? void 0 : _a.call(onFailedRef, _t);
|
|
128
|
+
});
|
|
129
|
+
case 5:
|
|
130
|
+
_context.prev = 5;
|
|
131
|
+
inFlight = false;
|
|
132
|
+
return _context.finish(5);
|
|
133
|
+
case 6:
|
|
134
|
+
case "end":
|
|
135
|
+
return _context.stop();
|
|
136
|
+
}
|
|
137
|
+
}, _callee, null, [[2, 4, 5, 6]]);
|
|
138
|
+
}));
|
|
139
|
+
};
|
|
140
|
+
// Timers FIRST: a pollFn that throws synchronously settles during the
|
|
141
|
+
// first poll, and settle() must find real timer handles to clear —
|
|
142
|
+
// creating them afterwards would leave a live no-op interval behind.
|
|
143
|
+
interval = setInterval(function () {
|
|
144
|
+
return void poll();
|
|
145
|
+
}, pollInterval);
|
|
146
|
+
timeout = setTimeout(function () {
|
|
147
|
+
return settle(function () {
|
|
148
|
+
var _a;
|
|
149
|
+
return (_a = onPendingRef.current) === null || _a === void 0 ? void 0 : _a.call(onPendingRef);
|
|
150
|
+
});
|
|
151
|
+
}, pollTimeout);
|
|
152
|
+
void poll();
|
|
153
|
+
return function () {
|
|
154
|
+
settled = true;
|
|
155
|
+
clearInterval(interval);
|
|
156
|
+
clearTimeout(timeout);
|
|
157
|
+
};
|
|
158
|
+
}, [hasPollFn, open, pollInterval, pollTimeout, pollFnRef, onSuccessRef, onPendingRef, onFailedRef]);
|
|
159
|
+
return (0, _jsxRuntime.jsx)(_Dialog.Dialog, {
|
|
160
|
+
open: open,
|
|
161
|
+
width: _constants.BASE_DIALOG_DEFAULTS.width,
|
|
162
|
+
maskClosable: false,
|
|
163
|
+
showCloseIcon: false,
|
|
164
|
+
className: (0, _classnames.joinCls)(classes(), className),
|
|
165
|
+
children: (0, _jsxRuntime.jsxs)("div", {
|
|
166
|
+
className: classes('stack'),
|
|
167
|
+
children: [(0, _jsxRuntime.jsx)("span", {
|
|
168
|
+
className: classes('spin'),
|
|
169
|
+
children: (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
170
|
+
name: 'logoBg',
|
|
171
|
+
size: iconSize
|
|
172
|
+
})
|
|
173
|
+
}), (0, _jsxRuntime.jsxs)("div", {
|
|
174
|
+
className: classes('text'),
|
|
175
|
+
children: [(0, _jsxRuntime.jsx)(_Typography.Typography.Headline, {
|
|
176
|
+
size: 'sm',
|
|
177
|
+
children: (0, _jsxRuntime.jsx)("span", {
|
|
178
|
+
className: classes('wave'),
|
|
179
|
+
children: LOADING_TEXT.split('').map(function (_char, index) {
|
|
180
|
+
return (0, _jsxRuntime.jsx)("span", {
|
|
181
|
+
style: {
|
|
182
|
+
animationDelay: "".concat(index * 0.1, "s")
|
|
183
|
+
},
|
|
184
|
+
children: _char
|
|
185
|
+
}, "".concat(_char, "-").concat(index));
|
|
186
|
+
})
|
|
187
|
+
})
|
|
188
|
+
}), (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
189
|
+
size: 'md',
|
|
190
|
+
strong: true,
|
|
191
|
+
color: 'default-secondary',
|
|
192
|
+
children: HINT_TEXT
|
|
193
|
+
})]
|
|
194
|
+
})]
|
|
195
|
+
})
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
var LoadingDialog = exports.LoadingDialog = /*#__PURE__*/(0, _react.memo)(LoadingDialogBase);
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvdmFyaWFudHMvTG9hZGluZ0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRGlhbG9nIiwiX0ljb25zIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiUFJFRklYIiwiTE9BRElOR19URVhUIiwiSElOVF9URVhUIiwiTG9hZGluZ0RpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIl9yZWYkaWNvblNpemUiLCJpY29uU2l6ZSIsInBvbGxGbiIsIl9yZWYkcG9sbEludGVydmFsIiwicG9sbEludGVydmFsIiwiX3JlZiRwb2xsVGltZW91dCIsInBvbGxUaW1lb3V0Iiwib25TdWNjZXNzIiwib25QZW5kaW5nIiwib25GYWlsZWQiLCJjbGFzc05hbWUiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsInBvbGxGblJlZiIsInVzZUxhdGVzdCIsIm9uU3VjY2Vzc1JlZiIsIm9uUGVuZGluZ1JlZiIsIm9uRmFpbGVkUmVmIiwiaGFzUG9sbEZuIiwidXNlRWZmZWN0IiwidW5kZWZpbmVkIiwic2V0dGxlZCIsImluRmxpZ2h0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0Iiwic2V0dGxlIiwiZmlyZSIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJwb2xsIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJjdXJyZW50Iiwic2VudCIsInN0YXR1cyIsIl9hIiwiZGF0YSIsImZpbmlzaCIsInN0b3AiLCJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJfanN4IiwiRGlhbG9nIiwid2lkdGgiLCJCQVNFX0RJQUxPR19ERUZBVUxUUyIsIm1hc2tDbG9zYWJsZSIsInNob3dDbG9zZUljb24iLCJqb2luQ2xzIiwiY2hpbGRyZW4iLCJfanN4cyIsIkljb25zIiwibmFtZSIsInNpemUiLCJUeXBvZ3JhcGh5IiwiSGVhZGxpbmUiLCJzcGxpdCIsIm1hcCIsImNoYXIiLCJpbmRleCIsInN0eWxlIiwiYW5pbWF0aW9uRGVsYXkiLCJjb25jYXQiLCJCb2R5Iiwic3Ryb25nIiwiY29sb3IiLCJMb2FkaW5nRGlhbG9nIiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1RBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUVBQSxPQUFB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QUNWLElBQUksRUFBQyxJQUFJO1VBQUNXLE1BQU0sRUFBQSxJQUFBO1VBQUNDLEtBQUssRUFBQyxtQkFBbUI7VUFBQWhCLFFBQUEsRUFDeEQxRDtRQUFTLENBQUEsQ0FDTTtNQUFBLENBQUEsQ0FDZDtJQUFBLENBQUE7RUFDRixDQUFBLENBQ0M7QUFFYixDQUFDO0FBRU0sSUFBTTJFLGFBQWEsR0FBQUMsT0FBQSxDQUFBRCxhQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQzVFLGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy92YXJpYW50cy9Mb2FkaW5nRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJBU0VfRElBTE9HX0RFRkFVTFRTIH0gZnJvbSAnLi4vQmFzZURpYWxvZy9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IFBSRUZJWCA9ICdsb2FkaW5nLWRpYWxvZyc7XG4vLyBHZW5lcmljIFVJIHZvY2FidWxhcnkgKGxpa2UgQ29uZmlybS9DYW5jZWwpLCBmaXhlZCBhcyBpbiB0aGUgbGVnYWN5IG1vZGFsLlxuY29uc3QgTE9BRElOR19URVhUID0gJ0xvYWRpbmcuLi4nO1xuY29uc3QgSElOVF9URVhUID0gJ1BsZWFzZSB3YWl0IGEgZmV3IHNlY29uZHMnO1xuY29uc3QgTG9hZGluZ0RpYWxvZ0Jhc2UgPSAoeyBvcGVuLCBpY29uU2l6ZSA9IDc0LCBwb2xsRm4sIHBvbGxJbnRlcnZhbCA9IDEwMDAsIHBvbGxUaW1lb3V0ID0gNTAwMCwgb25TdWNjZXNzLCBvblBlbmRpbmcsIG9uRmFpbGVkLCBjbGFzc05hbWUsIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQUkVGSVgpO1xuICAgIC8vIExhdGVzdC1yZWZzIGtlZXAgdGhlIHBvbGxpbmcgc2Vzc2lvbiBhbGl2ZSBhY3Jvc3MgcmUtcmVuZGVycyB3aXRoIGlubGluZVxuICAgIC8vIGNhbGxiYWNrcyDigJQgb25seSBvcGVuL2ludGVydmFsL3RpbWVvdXQgKGFuZCBwb2xsRm4gcHJlc2VuY2UpIHJlc3RhcnQgaXQuXG4gICAgY29uc3QgcG9sbEZuUmVmID0gdXNlTGF0ZXN0KHBvbGxGbik7XG4gICAgY29uc3Qgb25TdWNjZXNzUmVmID0gdXNlTGF0ZXN0KG9uU3VjY2Vzcyk7XG4gICAgY29uc3Qgb25QZW5kaW5nUmVmID0gdXNlTGF0ZXN0KG9uUGVuZGluZyk7XG4gICAgY29uc3Qgb25GYWlsZWRSZWYgPSB1c2VMYXRlc3Qob25GYWlsZWQpO1xuICAgIGNvbnN0IGhhc1BvbGxGbiA9ICEhcG9sbEZuO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFBvbGxpbmcgaXMgdGllZCB0byB2aXNpYmlsaXR5OiBhIG1vdW50ZWQtYnV0LWNsb3NlZCBkaWFsb2cgbXVzdCBub3RcbiAgICAgICAgLy8gcG9sbCAob3IgZmlyZSB0ZXJtaW5hbCBjYWxsYmFja3MgZnJvbSBiZWhpbmQgYSBoaWRkZW4gc3VyZmFjZSkuXG4gICAgICAgIGlmICghaGFzUG9sbEZuIHx8ICFvcGVuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gU2luZ2xlLXRlcm1pbmFsLW91dGNvbWUgZ3VhcmQ6IHdoaWNoZXZlciBvZiBzdWNjZXNzL2ZhaWxlZC9wZW5kaW5nXG4gICAgICAgIC8vIHNldHRsZXMgZmlyc3Qgd2luczsgYW4gaW4tZmxpZ2h0IHBvbGxGbiByZXNvbHZpbmcgYWZ0ZXIgdGhlIHRpbWVvdXRcbiAgICAgICAgLy8gKG9yIGFmdGVyIGNsb3NlL3VubW91bnQpIGlzIGRpc2NhcmRlZC5cbiAgICAgICAgbGV0IHNldHRsZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgIGxldCBpbnRlcnZhbDtcbiAgICAgICAgbGV0IHRpbWVvdXQ7XG4gICAgICAgIGNvbnN0IHNldHRsZSA9IChmaXJlKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXR0bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgZmlyZSgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBwb2xsID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoc2V0dGxlZCB8fCBpbkZsaWdodClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpbkZsaWdodCA9IHRydWU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIHBvbGxGblJlZi5jdXJyZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvblN1Y2Nlc3NSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25TdWNjZXNzUmVmLCByZXN1bHQuZGF0YSk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgcmVzdWx0LmRhdGEpOyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXR0bGUoKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBvbkZhaWxlZFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkZhaWxlZFJlZiwgZXJyb3IpOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGluRmxpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUaW1lcnMgRklSU1Q6IGEgcG9sbEZuIHRoYXQgdGhyb3dzIHN5bmNocm9ub3VzbHkgc2V0dGxlcyBkdXJpbmcgdGhlXG4gICAgICAgIC8vIGZpcnN0IHBvbGwsIGFuZCBzZXR0bGUoKSBtdXN0IGZpbmQgcmVhbCB0aW1lciBoYW5kbGVzIHRvIGNsZWFyIOKAlFxuICAgICAgICAvLyBjcmVhdGluZyB0aGVtIGFmdGVyd2FyZHMgd291bGQgbGVhdmUgYSBsaXZlIG5vLW9wIGludGVydmFsIGJlaGluZC5cbiAgICAgICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB2b2lkIHBvbGwoKSwgcG9sbEludGVydmFsKTtcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0dGxlKCgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gb25QZW5kaW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uUGVuZGluZ1JlZik7IH0pLCBwb2xsVGltZW91dCk7XG4gICAgICAgIHZvaWQgcG9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc2V0dGxlZCA9IHRydWU7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgfTtcbiAgICB9LCBbaGFzUG9sbEZuLCBvcGVuLCBwb2xsSW50ZXJ2YWwsIHBvbGxUaW1lb3V0LCBwb2xsRm5SZWYsIG9uU3VjY2Vzc1JlZiwgb25QZW5kaW5nUmVmLCBvbkZhaWxlZFJlZl0pO1xuICAgIHJldHVybiAoX2pzeChEaWFsb2csIHsgb3Blbjogb3Blbiwgd2lkdGg6IEJBU0VfRElBTE9HX0RFRkFVTFRTLndpZHRoLCBtYXNrQ2xvc2FibGU6IGZhbHNlLCBzaG93Q2xvc2VJY29uOiBmYWxzZSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdGFjaycpLCBjaGlsZHJlbjogW19qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGluJyksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6ICdsb2dvQmcnLCBzaXplOiBpY29uU2l6ZSB9KSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3RleHQnKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHkuSGVhZGxpbmUsIHsgc2l6ZTogJ3NtJywgY2hpbGRyZW46IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3YXZlJyksIGNoaWxkcmVuOiBMT0FESU5HX1RFWFQuc3BsaXQoJycpLm1hcCgoY2hhciwgaW5kZXgpID0+IChfanN4KFwic3BhblwiLCB7IHN0eWxlOiB7IGFuaW1hdGlvbkRlbGF5OiBgJHtpbmRleCAqIDAuMX1zYCB9LCBjaGlsZHJlbjogY2hhciB9LCBgJHtjaGFyfS0ke2luZGV4fWApKSkgfSkgfSksIF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdtZCcsIHN0cm9uZzogdHJ1ZSwgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBISU5UX1RFWFQgfSldIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGNvbnN0IExvYWRpbmdEaWFsb2cgPSBtZW1vKExvYWRpbmdEaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|