@dnb/eufemia 10.75.0 → 10.75.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/cjs/components/dropdown/Dropdown.js +1 -1
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.d.ts +1 -1
- package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -1
- package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/cjs/components/upload/Upload.js +5 -2
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.d.ts +2 -1
- package/cjs/components/upload/UploadFileInput.js +7 -4
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +42 -16
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
- package/cjs/extensions/forms/DataContext/Provider/useEventListener.js +29 -0
- package/cjs/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +8 -2
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +8 -2
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +8 -2
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js +8 -2
- package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +9 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
- package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/String/StringDocs.js +7 -7
- package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +2 -3
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +20 -4
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +24 -10
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -2
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
- package/cjs/extensions/forms/Form/Isolation/useReportError.js +22 -7
- package/cjs/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
- package/cjs/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Tools/Errors.d.ts +5 -0
- package/cjs/extensions/forms/Tools/Errors.js +46 -0
- package/cjs/extensions/forms/Tools/Errors.js.map +1 -0
- package/cjs/extensions/forms/Tools/index.d.ts +1 -0
- package/cjs/extensions/forms/Tools/index.js +7 -0
- package/cjs/extensions/forms/Tools/index.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
- package/cjs/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +13 -5
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +17 -10
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
- package/cjs/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
- package/cjs/extensions/payment-card/icons/providers/BankAxept.js +2 -2
- package/cjs/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
- package/cjs/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
- package/cjs/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
- package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
- package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
- package/cjs/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
- package/cjs/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
- package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
- package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +2 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/components/dropdown/Dropdown.js +2 -2
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/toggle-button/ToggleButton.d.ts +1 -1
- package/components/toggle-button/ToggleButtonDocs.js +1 -1
- package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/components/upload/Upload.js +5 -2
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadFileInput.d.ts +2 -1
- package/components/upload/UploadFileInput.js +7 -4
- package/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +2 -2
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.d.ts +1 -1
- package/es/components/toggle-button/ToggleButtonDocs.js +1 -1
- package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
- package/es/components/upload/Upload.js +5 -2
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadFileInput.d.ts +2 -1
- package/es/components/upload/UploadFileInput.js +7 -4
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +5 -2
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +42 -16
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
- package/es/extensions/forms/DataContext/Provider/useEventListener.js +22 -0
- package/es/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +6 -2
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +6 -2
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +6 -2
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Password/PasswordDocs.js +6 -2
- package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
- package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/es/extensions/forms/Field/String/StringDocs.js +7 -7
- package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +3 -1
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js +2 -3
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +18 -4
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +24 -11
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -3
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
- package/es/extensions/forms/Form/Isolation/useReportError.js +22 -7
- package/es/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
- package/es/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/Tools/Errors.d.ts +5 -0
- package/es/extensions/forms/Tools/Errors.js +37 -0
- package/es/extensions/forms/Tools/Errors.js.map +1 -0
- package/es/extensions/forms/Tools/index.d.ts +1 -0
- package/es/extensions/forms/Tools/index.js +1 -0
- package/es/extensions/forms/Tools/index.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
- package/es/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +13 -5
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +19 -12
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
- package/es/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
- package/es/extensions/payment-card/icons/providers/BankAxept.js +2 -2
- package/es/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
- package/es/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
- package/es/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
- package/es/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
- package/es/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
- package/es/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
- package/es/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
- package/es/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
- package/es/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +2 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +5 -2
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +42 -16
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/useEventListener.d.ts +3 -0
- package/extensions/forms/DataContext/Provider/useEventListener.js +23 -0
- package/extensions/forms/DataContext/Provider/useEventListener.js.map +1 -0
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +6 -2
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +6 -2
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +6 -2
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Password/PasswordDocs.js +6 -2
- package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/Selection/SelectionDocs.js +1 -1
- package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
- package/extensions/forms/Field/String/StringDocs.js +7 -7
- package/extensions/forms/Field/String/StringDocs.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
- package/extensions/forms/Field/Upload/Upload.js +3 -1
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/Field/Upload/UploadDocs.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
- package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolatedContainer.js +4 -6
- package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js +2 -3
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +4 -2
- package/extensions/forms/Form/Isolation/IsolationDataReference.js +20 -4
- package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.js +2 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +25 -11
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -1
- package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +2 -1
- package/extensions/forms/Form/Isolation/useHandleStatus.js +10 -3
- package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -1
- package/extensions/forms/Form/Isolation/useHasContentChanged.d.ts +3 -1
- package/extensions/forms/Form/Isolation/useHasContentChanged.js +6 -2
- package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -1
- package/extensions/forms/Form/Isolation/useReportError.d.ts +1 -1
- package/extensions/forms/Form/Isolation/useReportError.js +22 -7
- package/extensions/forms/Form/Isolation/useReportError.js.map +1 -1
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +6 -6
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js +3 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/extensions/forms/Iterate/ItemNo/{useIItemNo.js → useIterateItemNo.js} +2 -2
- package/extensions/forms/Iterate/ItemNo/useIterateItemNo.js.map +1 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +3 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -3
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/Tools/Errors.d.ts +5 -0
- package/extensions/forms/Tools/Errors.js +38 -0
- package/extensions/forms/Tools/Errors.js.map +1 -0
- package/extensions/forms/Tools/index.d.ts +1 -0
- package/extensions/forms/Tools/index.js +1 -0
- package/extensions/forms/Tools/index.js.map +1 -1
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js +2 -4
- package/extensions/forms/Wizard/Container/PrerenderFieldPropsOfOtherSteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +11 -5
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +2 -1
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.js +1 -1
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +13 -5
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -3
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +19 -12
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/payment-card/icons/brandLogos/DNB.js +2 -2
- package/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -1
- package/extensions/payment-card/icons/providers/BankAxept.js +2 -2
- package/extensions/payment-card/icons/providers/BankAxept.js.map +1 -1
- package/extensions/payment-card/icons/providers/ClickToPay.js +2 -2
- package/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -1
- package/extensions/payment-card/icons/providers/MastercardDefault.js +2 -2
- package/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -1
- package/extensions/payment-card/icons/providers/VisaDefault.js +2 -2
- package/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -1
- package/extensions/payment-card/icons/providers/VisaPlatinum.js +2 -2
- package/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +2 -1
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
- package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
- package/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +0 -1
- /package/cjs/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
- /package/es/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
- /package/extensions/forms/Iterate/ItemNo/{useIItemNo.d.ts → useIterateItemNo.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","onUpdateDataValue","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","_ref","item","isMounted","hasFieldError","_ref2","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","Object","keys","exists","type","runFilter","_ref3","condition","wildcardPaths","_ref4","includes","parts","split","traverse","subData","subPath","idx","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","internals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref5","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","Promise","resolve","onSubmitContinueRef","getErrors","map","_ref6","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","_ref7","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","stop","preventSubmit","completeResult","setFieldEventListener","_ref8","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n MountState,\n TransformData,\n VisibleDataHandler,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will be called when the form is committed.\n * For internal use only.\n */\n onUpdateDataValue?: ContextState['updateDataValue']\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n onUpdateDataValue,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals: ContextState['setFieldInternals'] = useCallback(\n (path, internals) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n internals\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n onUpdateDataValue?.(path, value, { preventUpdate })\n },\n [onUpdateDataValue, setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmitCall' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeCommit') {\n callback()\n }\n }\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n // Because we buffer the \"revealError\" in the useFieldProps hook,\n // we need to wait for the next frame before we continue and call \"setShowAllErrors\".\n await new Promise((resolve) =>\n window.requestAnimationFrame(resolve)\n )\n\n setFormState(undefined)\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeSubmit') {\n callback()\n }\n }\n\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n let stop = false\n const preventSubmit = () => (stop = true)\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSubmit') {\n if (isAsync(callback)) {\n await callback({ preventSubmit })\n } else {\n callback({ preventSubmit })\n }\n }\n }\n if (stop) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n { remove = false } = {}\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n if (!remove) {\n fieldEventListenersRef.current.push({ path, type, callback })\n }\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","onUpdateDataValue","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","_ref","item","isMounted","hasFieldError","_ref2","p","hasErrors","setFieldError","error","fieldEventListenersRef","type","callback","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","run","exists","walk","runFilter","_ref3","condition","wildcardPaths","Object","_ref4","includes","parts","split","traverse","subData","subPath","idx","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","internals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref5","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","Promise","resolve","onSubmitContinueRef","getErrors","keys","map","_ref6","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","_ref7","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","stop","preventSubmit","completeResult","setFieldEventListener","_ref8","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n MountState,\n TransformData,\n VisibleDataHandler,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will be called when the form is committed.\n * For internal use only.\n */\n onUpdateDataValue?: ContextState['updateDataValue']\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n onUpdateDataValue,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n if (error) {\n fieldErrorRef.current[path] = error\n } else {\n delete fieldErrorRef.current[path]\n }\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSetFieldError') {\n callback()\n }\n }\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props || {}\n const label = props?.['label']\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n const run = (path) => {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n\n // First, iterate over fields which are already mounted\n for (const path in fieldInternalsRef.current) {\n const exists = pointer.has(data, path)\n if (exists) {\n run(path)\n }\n }\n\n // Then iterate over the rest of the internal data set\n pointer.walk(internalDataRef.current, (value, path) => {\n if (fieldInternalsRef.current[path] === undefined) {\n run(path)\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals: ContextState['setFieldInternals'] = useCallback(\n (path, internals) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n internals\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData: ContextState['setData'] = useCallback(\n (newData: Data, { preventUpdate = false } = {}) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, { preventUpdate })\n onUpdateDataValue?.(path, value, { preventUpdate })\n },\n [onUpdateDataValue, setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmitCall' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeCommit') {\n callback()\n }\n }\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n // Because we buffer the \"revealError\" in the useFieldProps hook,\n // we need to wait for the next frame before we continue and call \"setShowAllErrors\".\n await new Promise((resolve) =>\n window.requestAnimationFrame(resolve)\n )\n\n setFormState(undefined)\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeSubmit') {\n callback()\n }\n }\n\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n let stop = false\n const preventSubmit = () => (stop = true)\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSubmit') {\n if (isAsync(callback)) {\n await callback({ preventSubmit })\n } else {\n callback({ preventSubmit })\n }\n }\n }\n if (stop) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n { remove = false } = {}\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n if (!remove) {\n fieldEventListenersRef.current.push({ path, type, callback })\n }\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useLayoutEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n errorsRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IACVC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,UAAU,QACL,OAAO;AACd,OAAOC,OAAO,MAAsB,0BAA0B;AAE9D,SAEEC,eAAe,EACfC,qBAAqB,QAEhB,aAAa;AAkBpB,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,OAAOC,kBAAkB,MAAM,sBAAsB;AACrD,OAAOC,eAAe,MAAM,4CAA4C;AACxE,SAASC,OAAO,QAAQ,oCAAoC;AAC5D,SAEEC,kBAAkB,EAClBC,cAAc,QACT,2CAA2C;AAClD,OAAOC,aAAa,MAAwB,4BAA4B;AACxE,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,WAAW,MAWX,YAAY;AAMnB,OAAOC,eAAe,MAAM,yBAAyB;AAGrD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGrB,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACoB,eAAe;AAgJzE,MAAME,kBAAkB,GAAG,cAAc;AAEzC,eAAe,SAASC,QAAQA,CAC9BC,KAAkB,EAClB;EAAA,IAAAC,qBAAA;EACA,MAAM,GAAGC,WAAW,CAAC,GAAGtB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAElD,MAAM;MACJuB,EAAE;MACFC,cAAc,GAAG,MAAM;MACvBC,WAAW;MACXC,SAAS;MACTC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,eAAe;MACfC,gBAAgB;MAChBC,QAAQ;MACRC,OAAO;MACPC,iBAAiB;MACjBC,iBAAiB;MACjBC,wBAAwB;MACxBC,kBAAkB;MAClBC,gBAAgB;MAChBC,WAAW;MACXC,WAAW;MACXC,YAAY;MACZC,gBAAgB;MAChBC,WAAW;MACXC,MAAM;MACNC,YAAY;MACZC,QAAQ;MACRC,aAAa;MACbC,OAAO;MACPC;IAEF,CAAC,GAAG/B,KAAK;IADJgC,IAAI,GAAAC,wBAAA,CACLjC,KAAK,EAAAkC,SAAA;EAGT,IAAI3B,IAAI,KAAK4B,SAAS,IAAIf,gBAAgB,KAAKe,SAAS,EAAE;IACxD,MAAM,IAAIC,KAAK,CACb,iEACF,CAAC;EACH;EAEA,MAAM;IAAEC;EAAW,CAAC,GAAGvD,UAAU,CAACY,WAAW,CAAC,IAAI,CAAC,CAAC;EAEpD,IAAI2C,UAAU,IAAI,CAACP,OAAO,EAAE;IAC1B,MAAM,IAAIM,KAAK,CAAC,6CAA6C,CAAC;EAChE;EAGA,MAAME,cAAc,GAAG7D,MAAM,CAAkB,IAAI,CAAC;EAGpD,MAAM;IAAEiD,MAAM,EAAEa;EAAa,CAAC,GAAGzD,UAAU,CAACU,aAAa,CAAC,IAAI,CAAC,CAAC;EAChE,MAAMgD,WAAW,GAAG/C,cAAc,CAAC,CAAC,CAACgD,KAAK;EAG1C,MAAMC,MAAM,GAAGjE,MAAM,CAAMO,eAAe,CAACqC,WAAW,CAAC,CAAC;EAGxD,MAAMsB,gBAAkD,GAAGlE,MAAM,CAC/D,IAAImE,GAAG,CAAC,CACV,CAAC;EAGD,MAAMC,YAA0C,GAAGpE,MAAM,CAAC,IAAImE,GAAG,CAAC,CAAC,CAAC;EACpE,MAAME,iBAAoD,GAAGrE,MAAM,CACjE,IAAImE,GAAG,CAAC,CACV,CAAC;EAGD,MAAMG,kBAAkB,GAAGtE,MAAM,CAAqB,IAAImE,GAAG,CAAC,CAAC,CAAC;EAChE,MAAMI,SAAS,GAAGvE,MAAM,CAAsC,CAAC;EAC/D,MAAMwE,sBAAsB,GAAGxE,MAAM,CAEnC,EAAE,CAAC;EACL,MAAMyE,gBAAgB,GAAGzE,MAAM,CAAmB,KAAK,CAAC;EACxD,MAAM0E,gBAAgB,GAAGxE,WAAW,CAAEyE,aAAsB,IAAK;IAC/DF,gBAAgB,CAACG,OAAO,GAAGD,aAAa,GAAGE,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGH,aAAa;IACrElD,WAAW,CAAC,CAAC;IACb+C,sBAAsB,CAACI,OAAO,CAACG,OAAO,CAAEC,EAAE,IAAKA,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAGL,aAAa,CAAC,CAAC;EACrE,CAAC,EAAE,EAAE,CAAC;EACN,MAAMM,WAAW,GAAG/E,WAAW,CAAC,CAACgF,IAAU,EAAEC,QAAiB,KAAK;IACjE,IAAIA,QAAQ,EAAE;MACZb,kBAAkB,CAACM,OAAO,CAACQ,GAAG,CAACF,IAAI,EAAEC,QAAQ,CAAC;IAChD,CAAC,MAAM;MACLb,kBAAkB,CAACM,OAAO,CAACS,MAAM,CAACH,IAAI,CAAC;IACzC;IACAzD,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EACN,MAAM6D,cAAc,GAAGtF,MAAM,CAA4B,CAAC,CAAC,CAAC;EAC5D,MAAMuF,cAAc,GAAGrF,WAAW,CAAEsF,KAAuB,IAAK;IAC9DF,cAAc,CAACV,OAAO,GAAAa,aAAA,CAAAA,aAAA,KAAQH,cAAc,CAACV,OAAO,GAAKY,KAAK,CAAE;IAChE/D,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMiE,YAAY,GAAG1F,MAAM,CAAc,CAAC;EAC1C,MAAM2F,WAAW,GAAG3F,MAAM,CAAC,KAAK,CAAC;EACjC,MAAM4F,YAAY,GAAG1F,WAAW,CAC9B,UAAC2F,SAAsB,EAAmB;IAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IACnC,IAAI,QAAOD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH,WAAW,MAAK,SAAS,EAAE;MAC7CA,WAAW,CAACf,OAAO,GAAGkB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH,WAAW;IAC5C;IACAD,YAAY,CAACd,OAAO,GAAGiB,SAAS;IAChCpE,WAAW,CAAC,CAAC;EACf,CAAC,EACD,EACF,CAAC;EAGD,MAAMwE,aAAa,GAAGjG,MAAM,CAAsB,CAAC,CAAC,CAAC;EACrD,MAAMkG,aAAa,GAAGlG,MAAM,CAA4B,CAAC,CAAC,CAAC;EAG3D,MAAMmG,WAAW,GAAGlG,OAAO,CAAO,MAAM;IACtC,IAAI0C,gBAAgB,IAAI,OAAOvB,MAAM,KAAK,WAAW,EAAE;MAAA,IAAAgF,qBAAA;MACrD,MAAMC,eAAe,IAAAD,qBAAA,GACnBhF,MAAM,CAACkF,cAAc,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBG,OAAO,CAAC5D,gBAAgB,CAAC;MAClD,IAAI0D,eAAe,EAAE;QACnB,OAAOG,IAAI,CAACC,KAAK,CAACJ,eAAe,CAAC;MACpC;IACF;IAEA,OAAOvE,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIF,WAAW;EAE5B,CAAC,EAAE,EAAE,CAAC;EACN,MAAM8E,eAAe,GAAG1G,MAAM,CAAOmG,WAAW,CAAC;EACjD,MAAMQ,cAAc,GAAG3G,MAAM,CAAC,KAAK,CAAC;EAGpC,MAAM4G,eAAe,GAAG5G,MAAM,CAAmB,CAAC;EAClD,MAAM6G,mBAAmB,GAAG3G,WAAW,CAAC,MAAM;IAAA,IAAA4G,qBAAA;IAC5C,IAAI,CAACF,eAAe,CAAChC,OAAO,EAAE;MAE5B;IACF;IAEA,IAAI,GAAAkC,qBAAA,GAACF,eAAe,CAAChC,OAAO,cAAAkC,qBAAA,eAAvBA,qBAAA,CAAAC,IAAA,CAAAH,eAAe,EAAWF,eAAe,CAAC9B,OAAO,CAAC,GAAE;MAEvDL,SAAS,CAACK,OAAO,GAAGpE,qBAAqB,CACvCoG,eAAe,CAAChC,OAAO,CAACoC,MAAM,EAC9BN,eAAe,CAAC9B,OAClB,CAAC;IACH,CAAC,MAAM;MACLL,SAAS,CAACK,OAAO,GAAGlB,SAAS;IAC/B;EACF,CAAC,EAAE,EAAE,CAAC;EACN,MAAMuD,YAAY,GAAG/G,WAAW,CAAC,MAAM;IACrC,IAAI,CAAC0G,eAAe,CAAChC,OAAO,EAAE;MAE5B;IACF;IAEAiC,mBAAmB,CAAC,CAAC;IACrBpF,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,CAACoF,mBAAmB,CAAC,CAAC;EAGzB,MAAMK,kBAAkB,GAAGhH,WAAW,CACpC,CAACgF,IAAU,EAAEM,KAAkB,KAAK;IAAA,IAAA2B,kBAAA;IAClC,OAAOC,OAAO,CACZ5B,KAAK,KAAK,OAAO,GACb,EAAA2B,kBAAA,GAAA5C,SAAS,CAACK,OAAO,cAAAuC,kBAAA,uBAAjBA,kBAAA,CAAoBjC,IAAI,CAAC,aAAYvB,KAAK,IACxCsC,aAAa,CAACrB,OAAO,CAACM,IAAI,CAAC,YAAYvB,KAAK,GAC9CuC,aAAa,CAACtB,OAAO,CAACM,IAAI,CAAC,KAAKM,KACtC,CAAC;EACH,CAAC,EACD,EACF,CAAC;EACD,MAAM6B,aAAa,GAAGnH,WAAW,CAC9BsF,KAAkB,IAAK;IACtB,OAAO8B,KAAK,CAACC,IAAI,CAACrD,gBAAgB,CAACU,OAAO,CAAC4C,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,CACxDC,IAAA,IAAkB;MAAA,IAAjB,CAACxC,IAAI,EAAEyC,IAAI,CAAC,GAAAD,IAAA;MACX,OAAOC,IAAI,CAACC,SAAS,IAAIV,kBAAkB,CAAChC,IAAI,EAAEM,KAAK,CAAC;IAC1D,CACF,CAAC;EACH,CAAC,EACD,CAAC0B,kBAAkB,CACrB,CAAC;EACD,MAAMW,aAAa,GAAG3H,WAAW,CAC9BgF,IAAU,IAAK;IACd,OAAOoC,KAAK,CAACC,IAAI,CAACrD,gBAAgB,CAACU,OAAO,CAAC4C,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,CACxDK,KAAA,IAAe;MAAA,IAAd,CAACC,CAAC,EAAEJ,IAAI,CAAC,GAAAG,KAAA;MACR,OACEH,IAAI,CAACC,SAAS,IACdG,CAAC,KAAK7C,IAAI,IACVgC,kBAAkB,CAAChC,IAAI,EAAE,OAAO,CAAC;IAErC,CACF,CAAC;EACH,CAAC,EACD,CAACgC,kBAAkB,CACrB,CAAC;EACD,MAAMc,SAAS,GAAG9H,WAAW,CAAC,MAAM;IAClC,OAAOmH,aAAa,CAAC,OAAO,CAAC;EAC/B,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAKnB,MAAMY,aAA4C,GAAG/H,WAAW,CAC9D,CAACgF,IAAI,EAAEgD,KAAK,KAAK;IACf,IAAIA,KAAK,EAAE;MACTjC,aAAa,CAACrB,OAAO,CAACM,IAAI,CAAC,GAAGgD,KAAK;IACrC,CAAC,MAAM;MACL,OAAOjC,aAAa,CAACrB,OAAO,CAACM,IAAI,CAAC;IACpC;IACA,KAAK,MAAMyC,IAAI,IAAIQ,sBAAsB,CAACvD,OAAO,EAAE;MACjD,MAAM;QAAEwD,IAAI;QAAEC;MAAS,CAAC,GAAGV,IAAI;MAC/B,IAAIS,IAAI,KAAK,iBAAiB,EAAE;QAC9BC,QAAQ,CAAC,CAAC;MACZ;IACF;EACF,CAAC,EACD,EACF,CAAC;EAKD,MAAMC,aAA4C,GAAGpI,WAAW,CAC9D,CAACgF,IAAI,EAAEqD,UAAU,KAAK;IACpB,IAAIA,UAAU,KAAKrC,aAAa,CAACtB,OAAO,CAACM,IAAI,CAAC,EAAE;MAE9CgB,aAAa,CAACtB,OAAO,CAACM,IAAI,CAAC,GAAGqD,UAAU;MACxC9G,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EACD,EACF,CAAC;EAED,MAAM+G,4BAA4B,GAAGtI,WAAW,CAC9C,UACEgF,IAAU,EAEoB;IAAA,IAAAuD,qBAAA;IAAA,IAD9B3G,IAAU,GAAAiE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAGW,eAAe,CAAC9B,OAAO;IAEpC,MAAM8D,KAAK,GAAGpI,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEoD,IAAI,CAAC,GACjC5E,OAAO,CAACsI,GAAG,CAAC9G,IAAI,EAAEoD,IAAI,CAAC,GACvBxB,SAAS;IACb,MAAM;MAAEgF,KAAK,EAAEG;IAAa,CAAC,GAC3BC,oBAAoB,CAAClE,OAAO,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM3D,KAAK,GAAG,EAAAkH,qBAAA,GAAAM,iBAAiB,CAACnE,OAAO,CAACM,IAAI,CAAC,cAAAuD,qBAAA,uBAA/BA,qBAAA,CAAiClH,KAAK,KAAI,CAAC,CAAC;IAC1D,MAAMyH,KAAK,GAAGzH,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,OAAO,CAAC;IAC9B,MAAM2G,KAAK,GAAGjC,aAAa,CAACrB,OAAO,CAACM,IAAI,CAAC;IAEzC,OAAO;MACLA,IAAI;MACJwD,KAAK;MACLG,YAAY;MACZG,KAAK;MACLzH,KAAK;MACLO,IAAI,EAAE4E,eAAe,CAAC9B,OAAO;MAC7BsD,KAAK;MAGLe,QAAQ,EAAE;QAAEf;MAAM;IACpB,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAKD,MAAMgB,iBAAiB,GAAGhJ,WAAW,CACnC,UACE4B,IAAU,EACVqH,OAAmC,EAEhC;IAAA,IADH;MAAEC,MAAM,GAAG,KAAK;MAAEC,MAAM,GAAG,IAAI;MAAEC,eAAe,GAAG;IAAK,CAAC,GAAAvD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAE9D,MAAMwD,SAAS,GAAG,CAAC,CAAS;IAC5B,MAAMC,WAAW,GAAGA,CAACtE,IAAU,EAAEuE,MAAyB,KAAK;MAC7D,IAAIL,MAAM,EAAE;QACV,IAAIK,MAAM,KAAK,KAAK,EAAE;UACpB3H,IAAI,GAAGZ,eAAe,CAACY,IAAI,CAAC;UAC5BxB,OAAO,CAAC8I,MAAM,CAACtH,IAAI,EAAEoD,IAAI,CAAC;QAC5B;MACF,CAAC,MAAM;QACL,IAAI,OAAOuE,MAAM,KAAK,WAAW,EAAE;UACjC,IAAIJ,MAAM,EAAE;YACVvH,IAAI,GAAGZ,eAAe,CAACY,IAAI,CAAC;YAC5BxB,OAAO,CAAC8E,GAAG,CAACtD,IAAI,EAAEoD,IAAI,EAAEuE,MAAM,CAAC;UACjC,CAAC,MAAM;YACLnJ,OAAO,CAAC8E,GAAG,CAACmE,SAAS,EAAErE,IAAI,EAAEuE,MAAM,CAAC;UACtC;QACF;MACF;IACF,CAAC;IAED,IAAI,OAAON,OAAO,KAAK,UAAU,EAAE;MACjC,MAAMO,GAAG,GAAIxE,IAAI,IAAK;QACpB,MAAM;UAAEkD;QAAK,CAAC,GAAGU,oBAAoB,CAAClE,OAAO,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAAoE,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG;UAAElB;QAAK,CAAC,CAAC,MAAK,KAAK,EAAE;UACzC,MAAMqB,MAAM,GAAGN,OAAO,CACpBX,4BAA4B,CAACtD,IAAI,EAAEpD,IAAI,CACzC,CAAC;UACD0H,WAAW,CAACtE,IAAI,EAAEuE,MAAM,CAAC;QAC3B;MACF,CAAC;MAGD,KAAK,MAAMvE,IAAI,IAAI6D,iBAAiB,CAACnE,OAAO,EAAE;QAC5C,MAAM+E,MAAM,GAAGrJ,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEoD,IAAI,CAAC;QACtC,IAAIyE,MAAM,EAAE;UACVD,GAAG,CAACxE,IAAI,CAAC;QACX;MACF;MAGA5E,OAAO,CAACsJ,IAAI,CAAClD,eAAe,CAAC9B,OAAO,EAAE,CAAC8D,KAAK,EAAExD,IAAI,KAAK;QACrD,IAAI6D,iBAAiB,CAACnE,OAAO,CAACM,IAAI,CAAC,KAAKxB,SAAS,EAAE;UACjDgG,GAAG,CAACxE,IAAI,CAAC;QACX;MACF,CAAC,CAAC;MAEF,IAAI,CAACmE,MAAM,EAAE;QACX,OAAOE,SAAS;MAClB;MAEA,OAAOzH,IAAI;IACb,CAAC,MAAM,IAAIqH,OAAO,EAAE;MAClB,MAAMU,SAAS,GAAGC,KAAA,IAAyB;QAAA,IAAxB;UAAE5E,IAAI;UAAE6E;QAAU,CAAC,GAAAD,KAAA;QACpC,MAAMH,MAAM,GAAGrJ,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEoD,IAAI,CAAC;QACtC,IAAIyE,MAAM,EAAE;UACV,MAAMF,MAAM,GACV,OAAOM,SAAS,KAAK,UAAU,GAC3BA,SAAS,CAACvB,4BAA4B,CAACtD,IAAI,EAAEpD,IAAI,CAAC,CAAC,GACnDiI,SAAS;UACfP,WAAW,CAACtE,IAAI,EAAEuE,MAAM,CAAC;QAC3B;MACF,CAAC;MAED,MAAMO,aAAa,GAAG,EAAE;MAExBC,MAAM,CAACzC,OAAO,CAAC2B,OAAO,CAAC,CAACpE,OAAO,CAACmF,KAAA,IAAuB;QAAA,IAAtB,CAAChF,IAAI,EAAE6E,SAAS,CAAC,GAAAG,KAAA;QAChD,IAAIhF,IAAI,CAACiF,QAAQ,CAAC,GAAG,CAAC,EAAE;UACtB,MAAMC,KAAK,GAAGlF,IAAI,CAACmF,KAAK,CAAC,OAAO,CAAC;UACjC,MAAMV,MAAM,GAAGrJ,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEsI,KAAK,CAAC,CAAC,CAAC,CAAC;UAC1C,IAAIT,MAAM,EAAE;YACV,MAAMW,QAAQ,GAAGA,CACfC,OAAgB,EAChBC,OAAe,EACfC,GAAW,KACR;cACH,IAAIA,GAAG,KAAKL,KAAK,CAACpE,MAAM,GAAG,CAAC,EAAE;gBAC5BgE,aAAa,CAACU,IAAI,CAAC;kBAAExF,IAAI,EAAEsF,OAAO;kBAAET;gBAAU,CAAC,CAAC;gBAChD;cACF;cACA,MAAMY,IAAI,GAAGrK,OAAO,CAACsI,GAAG,CAAC2B,OAAO,EAAEC,OAAO,CAAC;cAC1C,IAAIlD,KAAK,CAACsD,OAAO,CAACD,IAAI,CAAC,EAAE;gBACvBA,IAAI,CAAC5F,OAAO,CAAC,CAAC8F,CAAC,EAAEC,CAAC,KAAK;kBACrBR,QAAQ,CACNK,IAAI,CAACG,CAAC,CAAC,EACP,GAAGN,OAAO,IAAIM,CAAC,GAAGV,KAAK,CAACK,GAAG,GAAG,CAAC,CAAC,EAAE,EAClCA,GAAG,GAAG,CACR,CAAC;gBACH,CAAC,CAAC;cACJ;YACF,CAAC;YACDH,QAAQ,CAACxI,IAAI,EAAEsI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;UAC7B;QACF,CAAC,MAAM;UACLP,SAAS,CAAC;YAAE3E,IAAI;YAAE6E;UAAU,CAAC,CAAC;QAChC;MACF,CAAC,CAAC;MAEFC,aAAa,CAACjF,OAAO,CAAC8E,SAAS,CAAC;MAEhC,OAAO/H,IAAI;IACb;IAEA,OAAOA,IAAI;EACb,CAAC,EACD,CAAC0G,4BAA4B,CAC/B,CAAC;EAKD,MAAMuC,kBAA4C,GAAG7K,WAAW,CAC9D,YAAqE;IAAA,IAApE4B,IAAI,GAAAiE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAGW,eAAe,CAAC9B,OAAO;IAAA,IAAE;MAAEoG,SAAS;MAAEC;IAAY,CAAC,GAAAlF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAC9D,MAAMmF,WAAW,GAAG,CAAC,CAAkB;IAEvChH,gBAAgB,CAACU,OAAO,CAACG,OAAO,CAAC,CAAC4C,IAAI,EAAEzC,IAAI,KAAK;MAC/C,IACEyC,IAAI,IACJA,IAAI,CAACwD,SAAS,KAAK,KAAK,KACvBxD,IAAI,CAACyD,YAAY,KAAK,KAAK,IAAIzD,IAAI,CAAC0D,aAAa,KAAK,IAAI,CAAC,KAC3DJ,WAAW,GAAG,CAACA,WAAW,CAACd,QAAQ,CAACjF,IAAI,CAAC,GAAG,IAAI,CAAC,IAClD5E,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEoD,IAAI,CAAC,EACvB;QACA5E,OAAO,CAAC8E,GAAG,CAAC8F,WAAW,EAAEhG,IAAI,EAAE5E,OAAO,CAACsI,GAAG,CAAC9G,IAAI,EAAEoD,IAAI,CAAC,CAAC;MACzD;IACF,CAAC,CAAC;IAEF,IAAI8F,SAAS,EAAE;MACbA,SAAS,CAACjG,OAAO,CAAEG,IAAI,IAAK;QAC1B,IAAI5E,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEoD,IAAI,CAAC,EAAE;UAC3B5E,OAAO,CAAC8E,GAAG,CAAC8F,WAAW,EAAEhG,IAAI,EAAE5E,OAAO,CAACsI,GAAG,CAAC9G,IAAI,EAAEoD,IAAI,CAAC,CAAC;QACzD;MACF,CAAC,CAAC;IACJ;IAEA,OAAOgG,WAAW;EACpB,CAAC,EACD,EACF,CAAC;EAKD,MAAMI,iBAAiB,GAAGpL,WAAW,CACnC,CAAC4B,IAAU,EAAEyJ,MAAkB,KAAK;IAClC,IAAIA,MAAM,EAAE;MACV,OAAOrC,iBAAiB,CAACpH,IAAI,EAAEyJ,MAAM,EAAE;QAAEnC,MAAM,EAAE;MAAK,CAAC,CAAC;IAC1D;IAEA,OAAOtH,IAAI;EACb,CAAC,EACD,CAACoH,iBAAiB,CACpB,CAAC;EAED,MAAMsC,UAAU,GAAGtL,WAAW,CAC5B,UAACqL,MAAkB,EAAqC;IAAA,IAAnCzJ,IAAI,GAAAiE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAGW,eAAe,CAAC9B,OAAO;IACjD,OAAO0G,iBAAiB,CAACxJ,IAAI,EAAEyJ,MAAM,CAAC;EACxC,CAAC,EACD,CAACD,iBAAiB,CACpB,CAAC;EAED,MAAMxC,oBAA0D,GAC9D9I,MAAM,CAAC,CAAC,CAAC,CAAC;EAEZ,MAAMyL,mBAAmB,GAAGzL,MAAM,CAEhC,CAAC,CAAC,CAAC;EACL,MAAM0L,kBAAkB,GAAGxL,WAAW,CACpC,CAACgF,IAAU,EAAEyG,WAAoC,KAAK;IACpDF,mBAAmB,CAAC7G,OAAO,CAACM,IAAI,CAAC,GAAGyG,WAAW;EACjD,CAAC,EACD,EACF,CAAC;EAED,MAAM5C,iBAAiB,GAAG/I,MAAM,CAAoB,CAAC,CAAC,CAAC;EACvD,MAAM4L,iBAAoD,GAAG1L,WAAW,CACtE,CAACgF,IAAI,EAAE2G,SAAS,KAAK;IACnB9C,iBAAiB,CAACnE,OAAO,CAACM,IAAI,CAAC,GAAG+E,MAAM,CAAC6B,MAAM,CAC7C/C,iBAAiB,CAACnE,OAAO,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,EACrC2G,SACF,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAME,iBAAiB,GAAG/L,MAAM,CAAoB,CAAC,CAAC,CAAC;EACvD,MAAMgM,iBAAiB,GAAG9L,WAAW,CACnC,CAACgF,IAAU,EAAE3D,KAAiB,KAAK;IACjCwK,iBAAiB,CAACnH,OAAO,CAACM,IAAI,CAAC,GAAG+E,MAAM,CAAC6B,MAAM,CAC7CC,iBAAiB,CAACnH,OAAO,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,EACrC;MAAE3D;IAAM,CACV,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAM0K,0BAA0B,GAAG/L,WAAW,CAAC,MAAM;IACnD,KAAK,MAAMgF,IAAI,IAAI6D,iBAAiB,CAACnE,OAAO,EAAE;MAAA,IAAAsH,qBAAA;MAC5C,KAAAA,qBAAA,GAAIhI,gBAAgB,CAACU,OAAO,CAACgE,GAAG,CAAC1D,IAAI,CAAC,cAAAgH,qBAAA,eAAlCA,qBAAA,CAAoCtE,SAAS,EAAE;QAAA,IAAAuE,sBAAA;QACjD,MAAM5K,KAAK,IAAA4K,sBAAA,GAAGpD,iBAAiB,CAACnE,OAAO,CAACM,IAAI,CAAC,cAAAiH,sBAAA,uBAA/BA,sBAAA,CAAiC5K,KAAK;QACpD,IACEX,OAAO,CAACW,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE6K,iBAAiB,CAAC,IACjCxL,OAAO,CAACW,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE8K,eAAe,CAAC,EAC/B;UACA,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMC,UAAU,GAAGxL,cAAc,CAAOY,EAAE,CAAC;EAC3C,MAAM6K,iBAAiB,GAAGzL,cAAc,CACtCD,kBAAkB,CAACa,EAAE,EAAE,aAAa,CACtC,CAAC;EACD,MAAM8K,iBAAiB,GAAG1L,cAAc,CACtCD,kBAAkB,CAACa,EAAE,EAAE,cAAc,CACvC,CAAC;EAED,MAAM+K,aAAa,GAAGH,UAAU,CAAClH,GAAG;EACpC,MAAMsH,gBAAgB,GAAGJ,UAAU,CAACK,MAAM;EAC1C,MAAMC,gBAAgB,GAAGL,iBAAiB,CAACI,MAAM;EACjD,MAAME,mBAAmB,IAAArL,qBAAA,GAAG+K,iBAAiB,CAACzK,IAAI,cAAAN,qBAAA,uBAAtBA,qBAAA,CAAwBqL,mBAAmB;EAEvE,MAAMC,QAAQ,GAAG9M,MAAM,CAAC;IACtB8B,IAAI;IACJC,MAAM;IACNgL,MAAM,EAAET,UAAU,CAACxK,IAAI;IACvBkL,kBAAkB,EAAE;EACtB,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGhN,OAAO,CAAC,MAAM;IAIjC,IAAIyB,EAAE,IAAIyE,WAAW,IAAI,CAACmG,UAAU,CAACxK,IAAI,EAAE;MACzCwK,UAAU,CAACY,MAAM,CAAC/G,WAAW,CAAC;IAChC;IAGA,IACEzE,EAAE,IACFyE,WAAW,IACXmG,UAAU,CAACxK,IAAI,IACfgL,QAAQ,CAAClI,OAAO,CAACmI,MAAM,KAAKT,UAAU,CAACxK,IAAI,IAC3C4E,eAAe,CAAC9B,OAAO,KAAKuB,WAAW,IACvC,OAAOO,eAAe,CAAC9B,OAAO,KAAK,QAAQ,EAC3C;MACA,OAAAa,aAAA,CAAAA,aAAA,KACKiB,eAAe,CAAC9B,OAAO,GACtB0H,UAAU,CAACxK,IAAI,IAAI,CAAC,CAAC;IAE7B;IAGA,IACEJ,EAAE,IACF,CAACyE,WAAW,IACZ,CAACO,eAAe,CAAC9B,OAAO,IACxB0H,UAAU,CAACxK,IAAI,IACfgL,QAAQ,CAAClI,OAAO,CAACmI,MAAM,KAAKT,UAAU,CAACxK,IAAI,EAC3C;MACA,OAAOwK,UAAU,CAACxK,IAAI;IACxB;IAGA,IACEJ,EAAE,IACF4K,UAAU,CAACxK,IAAI,IACfgL,QAAQ,CAAClI,OAAO,CAACmI,MAAM,KAAKT,UAAU,CAACxK,IAAI,IAC3CwK,UAAU,CAACxK,IAAI,KAAK4E,eAAe,CAAC9B,OAAO,IAC3C,OAAO8B,eAAe,CAAC9B,OAAO,KAAK,QAAQ,EAC3C;MACAkI,QAAQ,CAAClI,OAAO,CAACmI,MAAM,GAAGT,UAAU,CAACxK,IAAI;MAEzC,IAAI6E,cAAc,CAAC/B,OAAO,EAAE;QAC1B,OACE0C,KAAK,CAACsD,OAAO,CAAClE,eAAe,CAAC9B,OAAO,CAAC,GAAG,EAAE,GAAGuI,WAAW;MAE7D;MAEA,OAAA1H,aAAA,CAAAA,aAAA,KACKiB,eAAe,CAAC9B,OAAO,GACtB0H,UAAU,CAACxK,IAAI,IAAI,CAAC,CAAC;IAE7B;IAGA,IAAIA,IAAI,KAAKgL,QAAQ,CAAClI,OAAO,CAAC9C,IAAI,EAAE;MAClCgL,QAAQ,CAAClI,OAAO,CAAC9C,IAAI,GAAGA,IAAI;MAC5B,OAAOA,IAAI;IACb;IAEA,OAAO4E,eAAe,CAAC9B,OAAO;EAChC,CAAC,EAAE,CAAClD,EAAE,EAAEyE,WAAW,EAAEmG,UAAU,EAAExK,IAAI,CAAC,CAAC;EAEvC4E,eAAe,CAAC9B,OAAO,GACrBrD,KAAK,CAAC2D,IAAI,IAAI5E,OAAO,CAACqI,GAAG,CAACsE,YAAY,EAAE1L,KAAK,CAAC2D,IAAI,CAAC,GAC/C5E,OAAO,CAACsI,GAAG,CAACqE,YAAY,EAAE1L,KAAK,CAAC2D,IAAI,CAAC,GACrC+H,YAAY;EAElB,MAAMG,SAAS,GAAGlN,WAAW,CAAC,MAAM;IAAA,IAAAmN,KAAA,EAAAC,qBAAA;IAClC3G,cAAc,CAAC/B,OAAO,GAAG,IAAI;IAC7B8B,eAAe,CAAC9B,OAAO,IAAAyI,KAAA,GAAK,OAAOxL,SAAS,KAAK,UAAU,GACvDA,SAAS,CAAC6E,eAAe,CAAC9B,OAAO,CAAC,GAClC/C,SAAS,cAAAwL,KAAA,cAAAA,KAAA,GACV/F,KAAK,CAACsD,OAAO,CAAClE,eAAe,CAAC9B,OAAO,CAAC,GAAG,EAAE,GAAGuI,WAAqB;IAEtE,IAAIzL,EAAE,EAAE;MACN+K,aAAa,CAAC/F,eAAe,CAAC9B,OAAO,CAAC;IACxC;IAEAnD,WAAW,CAAC,CAAC;IACba,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAG,CAAC;IAEX,CAAAgL,qBAAA,GAAAC,qBAAqB,cAAAD,qBAAA,uBAArBA,qBAAA,CAAwB,MAAM;MAC5B3G,cAAc,CAAC/B,OAAO,GAAG,KAAK;IAChC,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC/C,SAAS,EAAEH,EAAE,EAAEY,OAAO,EAAEmK,aAAa,CAAC,CAAC;EAE3CxM,OAAO,CAAC,MAAM;IACZ4G,mBAAmB,CAAC,CAAC;EAGvB,CAAC,EAAE,CAACH,eAAe,CAAC9B,OAAO,CAAC,CAAC;EAE7B,MAAM4I,cAAc,GAAGvN,OAAO,CAAC,MAAM;IACnC,OAAOQ,QAAQ,CACb,MAAM;MAAA,IAAAgN,sBAAA;MACJ,CAAAA,sBAAA,GAAArM,MAAM,CAACkF,cAAc,cAAAmH,sBAAA,uBAArBA,sBAAA,CAAuBC,OAAO,CAC5B/K,gBAAgB,EAChB6D,IAAI,CAACmH,SAAS,CAACjH,eAAe,CAAC9B,OAAO,CACxC,CAAC;IACH,CAAC,EACDgJ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,GAAG,CAAC,GAAG,GACxC,CAAC;EACH,CAAC,EAAE,CAACnL,gBAAgB,CAAC,CAAC;EAEtB,MAAMoL,OAAgC,GAAG7N,WAAW,CAClD,UAAC8N,OAAa,EAAqC;IAAA,IAAnC;MAAEC,aAAa,GAAG;IAAM,CAAC,GAAAlI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAE5C,IAAIlD,WAAW,EAAE;MACfmL,OAAO,GAAG9E,iBAAiB,CAAC8E,OAAO,EAAEnL,WAAW,CAAC;IACnD;IAEA6D,eAAe,CAAC9B,OAAO,GAAGoJ,OAAO;IAEjC,IAAItM,EAAE,EAAE;MAENgL,gBAAgB,CAACsB,OAAO,EAAE;QAAEE,yBAAyB,EAAE;MAAK,CAAC,CAAC;MAC9D,IAAInL,gBAAgB,EAAE;QACpB8J,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,CAAC;MACzB;IACF;IAEA,IAAIlK,gBAAgB,IAAI,OAAOvB,MAAM,KAAK,WAAW,EAAE;MACrDoM,cAAc,CAAC,CAAC;IAClB;IAEA,IAAI,CAACS,aAAa,EAAE;MAClBxM,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EACD,CACEiL,gBAAgB,EAChB3J,gBAAgB,EAChBrB,EAAE,EACFwH,iBAAiB,EACjB2D,mBAAmB,EACnBlK,gBAAgB,EAChB6K,cAAc,EACd3K,WAAW,CAEf,CAAC;EAKD,MAAMsL,eAAgD,GAAGjO,WAAW,CAClE,UAACgF,IAAI,EAAEwD,KAAK,EAA6B;IAAA,IAAA0F,qBAAA;IAAA,IAA3B;MAAEH;IAAc,CAAC,GAAAlI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAClC,IAAI,CAACb,IAAI,EAAE;MACT;IACF;IAEA,MAAMmJ,SAAS,GACbnJ,IAAI,KAAK,GAAG,GAERwD,KAAK,IAAA0F,qBAAA,GAEL1H,eAAe,CAAC9B,OAAO,cAAAwJ,qBAAA,cAAAA,qBAAA,GACtBlJ,IAAI,CAACoJ,KAAK,CAACjN,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CACrC;IAET,IAAI2M,OAAa,GAAG,IAAI;IACxB,IAAI;MAEFA,OAAO,GAAG9M,eAAe,CAACmN,SAAS,CAAC;IACtC,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVP,OAAO,GAAGK,SAAS;IACrB;IAEA,IAAInJ,IAAI,KAAK,GAAG,EAAE;MAChB5E,OAAO,CAAC8E,GAAG,CAAC4I,OAAO,EAAE9I,IAAI,EAAEwD,KAAK,CAAC;IACnC;IAEAqF,OAAO,CAACC,OAAO,EAAE;MAAEC;IAAc,CAAC,CAAC;IACnC1L,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG2C,IAAI,EAAEwD,KAAK,EAAE;MAAEuF;IAAc,CAAC,CAAC;EACrD,CAAC,EACD,CAAC1L,iBAAiB,EAAEwL,OAAO,CAC7B,CAAC;EAKD,MAAMS,2BAA6D,GACjEtO,WAAW,CACT,OAAOgF,IAAI,EAAEwD,KAAK,KAAK;IACrB,IAAI,CAACxD,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEAiJ,eAAe,CAACjJ,IAAI,EAAEwD,KAAK,CAAC;IAE5B,IAAI9H,OAAO,CAACqB,YAAY,CAAC,EAAE;MACzB,OAAMA,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGiD,IAAI,EAAEwD,KAAK,CAAC;IACnC,CAAC,MAAM;MACLzG,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGiD,IAAI,EAAEwD,KAAK,CAAC;IAC7B;IAEA,KAAK,MAAM+F,GAAG,IAAItG,sBAAsB,CAACvD,OAAO,EAAE;MAChD,IAAI6J,GAAG,CAACrG,IAAI,KAAK,cAAc,IAAIqG,GAAG,CAACvJ,IAAI,KAAKA,IAAI,EAAE;QACpD,MAAM;UAAEmD;QAAS,CAAC,GAAGoG,GAAG;QACxB,IAAI7N,OAAO,CAACyH,QAAQ,CAAC,EAAE;UACrB,MAAMA,QAAQ,CAAC;YAAEK;UAAM,CAAC,CAAC;QAC3B,CAAC,MAAM;UACLL,QAAQ,CAAC;YAAEK;UAAM,CAAC,CAAC;QACrB;MACF;IACF;EACF,CAAC,EACD,CAACzG,YAAY,EAAEkM,eAAe,CAChC,CAAC;EAKH,MAAMO,gBAAkD,GAAGxO,WAAW,CACpE,gBAAOgF,IAAI,EAA4B;IAAA,IAA1BwD,KAAK,GAAA3C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,aAAa;IAChC,IAAI,CAACb,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEA,IAAIwD,KAAK,KAAK,aAAa,EAAE;MAC3B8F,2BAA2B,CAACtJ,IAAI,EAAEwD,KAAK,CAAC;IAC1C;IAEAjE,gBAAgB,CAACG,OAAO,GAAG,KAAK;IAEhCqC,YAAY,CAAC,CAAC;IAEd,MAAMnF,IAAI,GAAG4E,eAAe,CAAC9B,OAAe;IAC5C,MAAMkB,OAAO,GAAG;MAAE0F;IAAW,CAAC;IAC9B,MAAMmD,eAAe,GAAG7L,YAAY,GAChCoG,iBAAiB,CAACpH,IAAI,EAAEgB,YAAY,CAAC,GACrChB,IAAI;IAER,KAAK,MAAM8M,EAAE,IAAIC,qBAAqB,CAACjK,OAAO,EAAE;MAC9C,IAAIhE,OAAO,CAACoB,QAAQ,CAAC,EAAE;QACrB,MAAM4M,EAAE,CAACD,eAAe,EAAE7I,OAAO,CAAC;MACpC,CAAC,MAAM;QACL8I,EAAE,CAACD,eAAe,EAAE7I,OAAO,CAAC;MAC9B;IACF;IAEA,IAAIlF,OAAO,CAACoB,QAAQ,CAAC,EAAE;MACrB,OAAO,MAAMA,QAAQ,CAAC2M,eAAe,EAAE7I,OAAO,CAAC;IACjD;IAEA,OAAO9D,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG2M,eAAe,EAAE7I,OAAO,CAAC;EAC7C,CAAC,EACD,CACE0F,UAAU,EACVgD,2BAA2B,EAC3BtF,iBAAiB,EACjBlH,QAAQ,EACRc,YAAY,EACZmE,YAAY,CAEhB,CAAC;EAED,MAAM4H,qBAAqB,GAAG7O,MAAM,CAAwB,EAAE,CAAC;EAC/D,MAAM8O,kBAAkB,GAAG5O,WAAW,CAAEmI,QAAwB,IAAK;IACnE,MAAMsB,MAAM,GAAGkF,qBAAqB,CAACjK,OAAO,CAAC6C,IAAI,CAAEmH,EAAE,IAAK;MACxD,OAAOvG,QAAQ,KAAKuG,EAAE;IACxB,CAAC,CAAC;IACF,IAAI,CAACjF,MAAM,EAAE;MACXkF,qBAAqB,CAACjK,OAAO,CAAC8F,IAAI,CAACrC,QAAQ,CAAC;IAC9C;EACF,CAAC,EAAE,EAAE,CAAC;EAGN,MAAM0G,oBAAoB,GAAG7O,WAAW,CACtC,CAACgF,IAAU,EAAEM,KAAiB,KAAK;IACjCtB,gBAAgB,CAACU,OAAO,CAACQ,GAAG,CAACF,IAAI,EAAAO,aAAA,CAAAA,aAAA,KAC5BvB,gBAAgB,CAACU,OAAO,CAACgE,GAAG,CAAC1D,IAAI,CAAC,GAClCM,KAAK,CACT,CAAC;IAEF,KAAK,MAAMiJ,GAAG,IAAItG,sBAAsB,CAACvD,OAAO,EAAE;MAChD,IAAI6J,GAAG,CAACrG,IAAI,KAAK,SAAS,IAAIqG,GAAG,CAACvJ,IAAI,KAAKA,IAAI,EAAE;QAC/C,MAAM;UAAEmD;QAAS,CAAC,GAAGoG,GAAG;QACxBpG,QAAQ,CAAC,CAAC;MACZ;IACF;EACF,CAAC,EACD,EACF,CAAC;EAGD,MAAM2G,WAAW,GAAG9O,WAAW,CAAC,MAAM;IACpC,IAAI,OAAOkB,MAAM,KAAK,WAAW,EAAE;MAAA,IAAA6N,OAAA,EAAAC,gBAAA;MACjC,CAAAD,OAAA,GAAA7N,MAAM,cAAA6N,OAAA,wBAAAC,gBAAA,GAAND,OAAA,CAAQE,QAAQ,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAAnI,IAAA,CAAAkI,OAAA,EAAmB;QAAEG,GAAG,EAAE,CAAC;QAAEC,QAAQ,EAAE;MAAS,CAAC,CAAC;IACpD;EACF,CAAC,EAAE,EAAE,CAAC;EAKN,MAAMC,gBAAgB,GAAGpP,WAAW,CAClC,MAAOqP,IAAI,IAAK;IACd,MAAM;MACJrN,QAAQ;MACRsN,mBAAmB;MACnBC,mBAAmB;MACnBC;IACF,CAAC,GAAGH,IAAI;IAERhK,cAAc,CAAC;MAAE2C,KAAK,EAAExE,SAAS;MAAEiM,YAAY,EAAEjM;IAAU,CAAC,CAAC;IAE7D,MAAMkM,sBAAsB,GAC1B,CAACF,cAAc,GACX,IAAI,GAEJ,CAAC1H,SAAS,CAAC,CAAC,IAAIX,aAAa,CAAC,SAAS,CAAC,MAC3CmI,mBAAmB,IAAIvD,0BAA0B,CAAC,CAAC,CAAC;IAEvD,IAAI2D,sBAAsB,EAAE;MAC1BhK,YAAY,CAAC,SAAS,CAAC;IACzB;IAGA,IAAI,CAAC6J,mBAAmB,EAAE;MACxB,KAAK,MAAM9H,IAAI,IAAIQ,sBAAsB,CAACvD,OAAO,EAAE;QAAA,IAAAiL,sBAAA;QACjD,MAAM;UAAE3K,IAAI;UAAEkD,IAAI;UAAEC;QAAS,CAAC,GAAGV,IAAI;QACrC,IACES,IAAI,KAAK,cAAc,KAAAyH,sBAAA,GACvB3L,gBAAgB,CAACU,OAAO,CAACgE,GAAG,CAAC1D,IAAI,CAAC,cAAA2K,sBAAA,eAAlCA,sBAAA,CAAoCjI,SAAS,EAC7C;UAEA,IAAIgI,sBAAsB,EAAE;YAC1B,MAAMvH,QAAQ,CAAC,CAAC;UAClB,CAAC,MAAM;YACLA,QAAQ,CAAC,CAAC;UACZ;QACF;MACF;IACF;IAEA,IAAIoB,MAAwB;IAE5B,IACE,EAAEiG,cAAc,GAAG,KAAK,GAAG1H,SAAS,CAAC,CAAC,CAAC,IACvC,CAACX,aAAa,CAAC,SAAS,CAAC,KACxBoI,mBAAmB,GAAG,IAAI,GAAG,CAACpI,aAAa,CAAC,OAAO,CAAC,CAAC,EACtD;MAAA,IAAAyI,QAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,QAAA;MACA,IAAIC,YAA4B;MAChC,IAAI;QACF,IAAI9M,OAAO,EAAE;UACX,KAAK,MAAMsE,IAAI,IAAIQ,sBAAsB,CAACvD,OAAO,EAAE;YACjD,MAAM;cAAEwD,IAAI;cAAEC;YAAS,CAAC,GAAGV,IAAI;YAC/B,IAAIS,IAAI,KAAK,gBAAgB,EAAE;cAC7BC,QAAQ,CAAC,CAAC;YACZ;UACF;UACA8H,YAAY,GAAG,OAAM9N,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGqE,eAAe,CAAC9B,OAAO,EAAE;YACvDwI;UACF,CAAC,CAAC;QACJ,CAAC,MAAM;UACL+C,YAAY,GAAG,MAAMjO,QAAQ,CAAC,CAAC;QACjC;QAEA,IAAIiO,YAAY,YAAYxM,KAAK,EAAE;UACjC,MAAMwM,YAAY;QACpB;MACF,CAAC,CAAC,OAAOjI,KAAK,EAAE;QACdiI,YAAY,GAAG;UAAEjI;QAAM,CAAC;MAC1B;MAEAuB,MAAM,GAAG0G,YAAgC;MAEzC,IAAIP,sBAAsB,EAAE;QAAA,IAAAQ,OAAA;QAC1B,KAAAA,OAAA,GAAI3G,MAAM,cAAA2G,OAAA,eAANA,OAAA,CAAQlI,KAAK,EAAE;UACjBtC,YAAY,CAAC,OAAO,CAAC;QACvB,CAAC,MAAM,IAAID,WAAW,CAACf,OAAO,KAAK,IAAI,EAAE;UACvCgB,YAAY,CAAC,UAAU,CAAC;QAC1B;MACF;MAGA,KAAAkK,QAAA,GAAIrG,MAAM,cAAAqG,QAAA,eAANA,QAAA,CAAS,QAAQ,CAAC,EAAE;QAAA,IAAAO,QAAA;QACtBzK,YAAY,EAAAyK,QAAA,GAAC5G,MAAM,cAAA4G,QAAA,uBAANA,QAAA,CAAS,QAAQ,CAAC,CAAC;MAClC;MAEA,IACE,CAAAN,QAAA,GAAAtG,MAAM,cAAAsG,QAAA,eAANA,QAAA,CAAQ7H,KAAK,KAAA8H,QAAA,GACbvG,MAAM,cAAAuG,QAAA,eAANA,QAAA,CAAQM,OAAO,KAAAL,QAAA,GACfxG,MAAM,cAAAwG,QAAA,eAANA,QAAA,CAAQM,IAAI,KAAAL,QAAA,GACZzG,MAAM,cAAAyG,QAAA,eAANA,QAAA,CAAQP,YAAY,EACpB;QACApK,cAAc,CAACkE,MAAM,CAAC;MACxB;IACF,CAAC,MAAM;MACL,IAAImG,sBAAsB,EAAE;QAG1B,MAAM,IAAIY,OAAO,CAAEC,OAAO,IACxBrP,MAAM,CAACmM,qBAAqB,CAACkD,OAAO,CACtC,CAAC;QAED7K,YAAY,CAAClC,SAAS,CAAC;QAEvB,IAAI,CAAC+L,mBAAmB,EAAE;UAExBiB,mBAAmB,CAAC9L,OAAO,GAAG,MAAM;YAClCxD,MAAM,CAACmM,qBAAqB,CAAC,MAAM;cAIjC+B,gBAAgB,CAAA7J,aAAA,CAAAA,aAAA,KAAM8J,IAAI;gBAAEE,mBAAmB,EAAE;cAAI,EAAE,CAAC;YAC1D,CAAC,CAAC;UACJ,CAAC;QACH;MACF;MAEA/K,gBAAgB,CAAC,IAAI,CAAC;MAEtBvC,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG;QAChBwO,SAAS,EAAEA,CAAA,KACT1G,MAAM,CAAC2G,IAAI,CAAC3K,aAAa,CAACrB,OAAO,CAAC,CAC/BiM,GAAG,CAAE3L,IAAI,IAAK;UACb,OAAOsD,4BAA4B,CAACtD,IAAI,CAAC;QAC3C,CAAC,CAAC,CACDqG,MAAM,CAACuF,KAAA;UAAA,IAAC;YAAE5I;UAAM,CAAC,GAAA4I,KAAA;UAAA,OAAK5I,KAAK;QAAA;MAClC,CAAC,CAAC;MAEF,KAAK,MAAMuG,GAAG,IAAItG,sBAAsB,CAACvD,OAAO,EAAE;QAChD,IAAI6J,GAAG,CAACrG,IAAI,KAAK,iBAAiB,EAAE;UAClCqG,GAAG,CAACpG,QAAQ,CAAC,CAAC;QAChB;MACF;IACF;IAEA,OAAOoB,MAAM;EACf,CAAC,EACD,CACE2D,SAAS,EACT5E,4BAA4B,EAC5BR,SAAS,EACTX,aAAa,EACb4E,0BAA0B,EAC1B5I,OAAO,EACPhB,QAAQ,EACRF,eAAe,EACfyD,YAAY,EACZlB,gBAAgB,EAChBa,cAAc,CAElB,CAAC;EAED,MAAMwL,aAAa,GAAG7Q,WAAW,CAAC,MAAM;IAEtC,MAAM4B,IAAI,GAAG4E,eAAe,CAAC9B,OAAO;IACpC,MAAMoM,WAAW,GAAGlO,YAAY,GAC5BoG,iBAAiB,CAACpH,IAAI,EAAEgB,YAAY,CAAC,GACrChB,IAAI;IAGR,MAAMmP,YAAY,GAAGlO,gBAAgB,GACjCuI,iBAAiB,CAAC0F,WAAW,EAAEjO,gBAAgB,CAAC,GAChDiO,WAAW;IAEf,OAAOC,YAAY;EACrB,CAAC,EAAE,CACD3F,iBAAiB,EACjBvI,gBAAgB,EAChBmG,iBAAiB,EACjBpG,YAAY,CACb,CAAC;EAEF,MAAMoO,eAAe,GAAGhR,WAAW,CAAC,MAAM;IACxC,MAAMiR,qBAA+C,GAAGA,CACtDrP,IAAI,EACJgE,OAAO,KACJ;MACH,OAAOiF,kBAAkB,CACvBjI,YAAY,GAAGoG,iBAAiB,CAACpH,IAAI,EAAEgB,YAAY,CAAC,GAAGhB,IAAI,EAC3DgE,OACF,CAAC;IACH,CAAC;IAED,MAAMsL,aAAa,GAAGA,CAACtP,IAAU,EAAEqH,OAAsB,KAAK;MAC5D,OAAOD,iBAAiB,CAACpH,IAAI,EAAEqH,OAAO,EAAE;QACtCE,MAAM,EAAE,KAAK;QACbC,eAAe,EAAE+H,KAAA;UAAA,IAAC;YAAEjJ;UAAK,CAAC,GAAAiJ,KAAA;UAAA,OAAKjJ,IAAI,KAAK,OAAO;QAAA;MACjD,CAAC,CAAC;IACJ,CAAC;IAED,MAAMkJ,WAAW,GAAGzN,cAAc,CAACe,OAAO;IAC1C,MAAM2M,MAA4B,GAAG;MACnC/F,UAAU;MACV2F,qBAAqB;MACrBC,aAAa;MACbI,SAAS,EAAEA,CAAA,KAAM;QAAA,IAAAC,kBAAA;QACfH,WAAW,aAAXA,WAAW,wBAAAG,kBAAA,GAAXH,WAAW,CAAEI,KAAK,cAAAD,kBAAA,uBAAlBA,kBAAA,CAAA1K,IAAA,CAAAuK,WAAqB,CAAC;QAEtB,IAAI,OAAOlQ,MAAM,KAAK,WAAW,EAAE;UACjC,IAAIuB,gBAAgB,EAAE;YACpBvB,MAAM,CAACkF,cAAc,CAACqL,UAAU,CAAChP,gBAAgB,CAAC;UACpD;QACF;QAEAlB,WAAW,CAAC,CAAC;MACf,CAAC;MACD2L;IACF,CAAC;IAED,OAAOmE,MAAM;EACf,CAAC,EAAE,CACDnE,SAAS,EACT5B,UAAU,EACVtC,iBAAiB,EACjBvG,gBAAgB,EAChBG,YAAY,EACZiI,kBAAkB,CACnB,CAAC;EAKF,MAAM6G,YAAY,GAAG1R,WAAW,CAE9B,YAAY;IACZ,KAAK,MAAMyH,IAAI,IAAIQ,sBAAsB,CAACvD,OAAO,EAAE;MACjD,MAAM;QAAEwD,IAAI;QAAEC;MAAS,CAAC,GAAGV,IAAI;MAC/B,IAAIS,IAAI,KAAK,gBAAgB,EAAE;QAC7BC,QAAQ,CAAC,CAAC;MACZ;IACF;IAEA,OAAO,MAAMiH,gBAAgB,CAAC;MAC5BE,mBAAmB,EAAE5O,OAAO,CAACsB,QAAQ,CAAC;MACtCA,QAAQ,EAAE,MAAAA,CAAA,KAAY;QACpB,IAAI2P,IAAI,GAAG,KAAK;QAChB,MAAMC,aAAa,GAAGA,CAAA,KAAOD,IAAI,GAAG,IAAK;QACzC,KAAK,MAAMlK,IAAI,IAAIQ,sBAAsB,CAACvD,OAAO,EAAE;UACjD,MAAM;YAAEwD,IAAI;YAAEC;UAAS,CAAC,GAAGV,IAAI;UAC/B,IAAIS,IAAI,KAAK,UAAU,EAAE;YACvB,IAAIxH,OAAO,CAACyH,QAAQ,CAAC,EAAE;cACrB,MAAMA,QAAQ,CAAC;gBAAEyJ;cAAc,CAAC,CAAC;YACnC,CAAC,MAAM;cACLzJ,QAAQ,CAAC;gBAAEyJ;cAAc,CAAC,CAAC;YAC7B;UACF;QACF;QACA,IAAID,IAAI,EAAE;UACR;QACF;QAEA,MAAM/P,IAAI,GAAGiP,aAAa,CAAC,CAAC;QAC5B,MAAMjL,OAAO,GAAGoL,eAAe,CAAC,CAAC;QACjC,IAAIzH,MAAM,GAAG/F,SAAS;QAEtB,IAAI9C,OAAO,CAACsB,QAAQ,CAAC,EAAE;UACrBuH,MAAM,GAAG,MAAMvH,QAAQ,CAACJ,IAAI,EAAEgE,OAAO,CAAC;QACxC,CAAC,MAAM;UACL2D,MAAM,GAAGvH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGJ,IAAI,EAAEgE,OAAO,CAAC;QACpC;QAEA,MAAMiM,cAAc,GAAG,OAAM3P,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAGN,IAAI,EAAE2H,MAAM,CAAC;QAC7D,IAAIsI,cAAc,EAAE;UAClBtI,MAAM,GACJQ,MAAM,CAAC2G,IAAI,CAACnH,MAAM,CAAC,CAACzD,MAAM,GAAG,CAAC,GAAAP,aAAA,CAAAA,aAAA,KACrBgE,MAAM,GAAKsI,cAAc,IAC9BA,cAAc;QACtB;QAEA,IAAIvP,iBAAiB,EAAE;UACrBwM,WAAW,CAAC,CAAC;QACf;QAEA,OAAOvF,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDsH,aAAa,EACbG,eAAe,EACf5B,gBAAgB,EAChBpN,QAAQ,EACRE,gBAAgB,EAChB4M,WAAW,EACXxM,iBAAiB,CAClB,CAAC;EAGF,MAAM2F,sBAAsB,GAAGnI,MAAM,CAA2B,EAAE,CAAC;EACnE,MAAMgS,qBAAqB,GAAG9R,WAAW,CACvC,UACEgF,IAA+B,EAC/BkD,IAA+B,EAC/BC,QAAuC,EAEpC;IAAA,IADH;MAAEe,MAAM,GAAG;IAAM,CAAC,GAAArD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArC,SAAA,GAAAqC,SAAA,MAAG,CAAC,CAAC;IAEvBoC,sBAAsB,CAACvD,OAAO,GAC5BuD,sBAAsB,CAACvD,OAAO,CAAC2G,MAAM,CACnC0G,KAAA,IAAuC;MAAA,IAAtC;QAAE/M,IAAI,EAAE6C,CAAC;QAAEK,IAAI,EAAE8J,CAAC;QAAE7J,QAAQ,EAAE8J;MAAE,CAAC,GAAAF,KAAA;MAChC,OAAO,EAAElK,CAAC,KAAK7C,IAAI,IAAIgN,CAAC,KAAK9J,IAAI,IAAI+J,CAAC,KAAK9J,QAAQ,CAAC;IACtD,CACF,CAAC;IACH,IAAI,CAACe,MAAM,EAAE;MACXjB,sBAAsB,CAACvD,OAAO,CAAC8F,IAAI,CAAC;QAAExF,IAAI;QAAEkD,IAAI;QAAEC;MAAS,CAAC,CAAC;IAC/D;EACF,CAAC,EACD,EACF,CAAC;EAGD,MAAMqI,mBAAmB,GAAG1Q,MAAM,CAAa,IAAI,CAAC;EACpD,IAAI,CAACqH,aAAa,CAAC,SAAS,CAAC,EAAE;IAAA,IAAA+K,qBAAA;IAC7B,CAAAA,qBAAA,GAAA1B,mBAAmB,CAAC9L,OAAO,cAAAwN,qBAAA,uBAA3BA,qBAAA,CAAArL,IAAA,CAAA2J,mBAA8B,CAAC;IAC/BA,mBAAmB,CAAC9L,OAAO,GAAG,IAAI;EACpC;EAGAzD,eAAe,CAAC,MAAM;IACpB,IAAIY,MAAM,EAAE;MAAA,IAAAsQ,eAAA;MACVzL,eAAe,CAAChC,OAAO,IAAAyN,eAAA,GAAGpO,MAAM,CAACW,OAAO,cAAAyN,eAAA,uBAAdA,eAAA,CAAgBC,OAAO,CAACvQ,MAAM,CAAC;IAC3D;IAGAkF,YAAY,CAAC,CAAC;EAChB,CAAC,EAAE,CAAClF,MAAM,EAAEkF,YAAY,CAAC,CAAC;EAC1BtG,eAAe,CAAC,MAAM;IACpB,IAAIoB,MAAM,IAAIA,MAAM,KAAK+K,QAAQ,CAAClI,OAAO,CAAC7C,MAAM,EAAE;MAAA,IAAAwQ,gBAAA;MAChDzF,QAAQ,CAAClI,OAAO,CAAC7C,MAAM,GAAGA,MAAM;MAChC6E,eAAe,CAAChC,OAAO,IAAA2N,gBAAA,GAAGtO,MAAM,CAACW,OAAO,cAAA2N,gBAAA,uBAAdA,gBAAA,CAAgBD,OAAO,CAACvQ,MAAM,CAAC;MAEzDkF,YAAY,CAAC,CAAC;MACdxF,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACM,MAAM,EAAEkF,YAAY,EAAExF,WAAW,CAAC,CAAC;EAEvC,MAAM+Q,SAAS,GAAGtS,WAAW,CAAC,MAAM;IAClC0F,YAAY,CAAClC,SAAS,CAAC;IACvB6B,cAAc,CAAC;MACbgL,IAAI,EAAE7M,SAAS;MACf4M,OAAO,EAAE5M,SAAS;MAClBwE,KAAK,EAAExE,SAAS;MAChBiM,YAAY,EAAEjM;IAChB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACkC,YAAY,EAAEL,cAAc,CAAC,CAAC;EAElCpE,eAAe,CAAC,MAAM;IAEpB,IAAIO,EAAE,EAAE;MACN,IAAIyE,WAAW,IAAI,CAACmG,UAAU,CAACxK,IAAI,EAAE;QACnC4K,gBAAgB,CAACvG,WAAW,EAAE;UAAE+H,yBAAyB,EAAE;QAAK,CAAC,CAAC;MACpE;IACF;EACF,CAAC,EAAE,CAACxM,EAAE,EAAEyE,WAAW,EAAEuG,gBAAgB,EAAEJ,UAAU,CAACxK,IAAI,CAAC,CAAC;EAExDX,eAAe,CAAC,MAAM;IACpB,IAAIO,EAAE,EAAE;MACNkL,gBAAgB,CACd;QACE7B,kBAAkB;QAClBO,iBAAiB;QACjBtD,SAAS;QACTH,aAAa;QACbnD,gBAAgB;QAChBa,cAAc;QACd6H,SAAS;QACTW,OAAO;QACPI,eAAe;QACf1C,mBAAmB;QACnB/E;MACF,CAAC,EACD;QAAEwH,yBAAyB,EAAE;MAAK,CACpC,CAAC;MACD,IAAInL,gBAAgB,EAAE;QACpB8J,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,CAAC;MACzB;IACF;EACF,CAAC,EAAE,CACDO,SAAS,EACTR,gBAAgB,EAChBtB,iBAAiB,EACjBvI,gBAAgB,EAChBiF,SAAS,EACTH,aAAa,EACbnG,EAAE,EACFmL,mBAAmB,EACnBkB,OAAO,EACPrJ,gBAAgB,EAChBa,cAAc,EACd4I,eAAe,EACfpD,kBAAkB,CACnB,CAAC;EAEF,MAAM;IAAE0H,iBAAiB,EAAE5M;EAAU,CAAC,GAAG6M,mBAAmB,CAAC;IAC3D7M,SAAS,EAAEH,YAAY,CAACd,OAAO;IAC/B+N,OAAO,EAAEtL,aAAa,CAAC,SAAS,CAAC;IACjC5E,wBAAwB;IACxBC,kBAAkB;IAClB8P;EACF,CAAC,CAAC;EAEF,MAAMI,WAAW,GAAGtN,cAAc,CAACV,OAAO;EAC1C,MAAMiO,QAAQ,GACZ,QAAOtP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG,UAAU,CAAC,MAAK,SAAS,GACnCA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG,UAAU,CAAC,GACjBsC,SAAS,KAAK,SAAS,KAAM,IAAI,GAClC,IAAI,GACJnC,SAAS;EACf,MAAMoP,oBAAoB,GACxB,CAAA1P,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGH,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIa,YAAY,CAAC,KAAIV,aAAa;EAE1D,MAAM2P,cAAc,GAAG7S,WAAW,CACRwI,KAA2B,IAAa;IAC9D,MAAM5G,IAAI,GAAG4E,eAAe,CAAC9B,OAAO;IACpC,IACEoO,MAAM,CAACtK,KAAK,CAAC,CAACuK,UAAU,CAAC,GAAG,CAAC,IAC7B3S,OAAO,CAACqI,GAAG,CAAC7G,IAAI,EAAEkR,MAAM,CAACtK,KAAK,CAAC,CAAC,EAChC;MACA,OAAOpI,OAAO,CAACsI,GAAG,CAAC9G,IAAI,EAAEkR,MAAM,CAACtK,KAAK,CAAC,CAAC;IACzC;IACA,OAAOA,KAAK;EACd,CAAC,EACD,EACF,CAAC;EAED,MAAMwK,YAA0B,GAAAzN,aAAA;IAE9BiJ,gBAAgB;IAChBF,2BAA2B;IAC3BoD,YAAY;IACZ7C,oBAAoB;IACpBO,gBAAgB;IAChB1J,YAAY;IACZL,cAAc;IACdb,gBAAgB;IAChBO,WAAW;IACX+M,qBAAqB;IACrB1J,aAAa;IACbL,aAAa;IACbyD,kBAAkB;IAClBE,iBAAiB;IACjBI,iBAAiB;IACjBhE,SAAS;IACTH,aAAa;IACbR,aAAa;IACbJ,YAAY;IACZkH,eAAe;IACfJ,OAAO;IACPX,SAAS;IACTrC,kBAAkB;IAClBO,iBAAiB;IACjByF,aAAa;IACbG,eAAe;IACfpC,kBAAkB;IAClBE,WAAW;IAGXjN,MAAM;IACN8Q,QAAQ;IACR1P,QAAQ;IACR0C,SAAS;IACT+M,WAAW;IACXE,oBAAoB;IACpBlP,UAAU,EAAE,IAAI;IAChBoD,MAAM,EAAEzC,SAAS,CAACK,OAAO;IACzBD,aAAa,EAAEF,gBAAgB,CAACG,OAAO;IACvCuO,eAAe,EAAE7O,kBAAkB,CAACM,OAAO,CAACwO,IAAI,GAAG,CAAC;IACpD5O,sBAAsB;IACtBiH,mBAAmB;IACnB3C,oBAAoB;IACpBC,iBAAiB;IACjBgD,iBAAiB;IACjB7H,gBAAgB;IAChBE,YAAY;IACZC,iBAAiB;IACjBR,cAAc;IACd8C,cAAc;IACdV,aAAa;IACb1B,SAAS;IACT3B,WAAW,EAAEqB,MAAM,CAACW,OAAO;IAC3B5B,WAAW,EAAEA,WAAW,GACpB+P,cAAc,CAAc/P,WAAW,CAAC,GACxCU,SAAS;IAGbhC,EAAE;IACFI,IAAI,EAAE4E,eAAe,CAAC9B,OAAO;IAC7B8B,eAAe;IACfnF;EAAK,GACFgC,IAAI,CACR;EAED,IAAI7B,EAAE,EAAE;IACN8K,iBAAiB,CAACpH,GAAG,CAAC8N,YAAY,CAAC;EACrC;EAEA,OACEnT,KAAA,CAAAsT,aAAA,CAACpS,WAAW,CAACK,QAAQ;IAACoH,KAAK,EAAEwK;EAAa,GACxCnT,KAAA,CAAAsT,aAAA,CAAC3S,kBAAkB;IACjB4S,UAAU,EACR3R,cAAc,GACV;MACE4R,YAAY,EAAE;QACZ7R,EAAE,EAAEC,cAAc;QAClB6R,KAAK,EAAEzP,WAAW,CAAC0P,iBAAiB;QACpCC,IAAI,EAAEtM,OAAO,CAAC3C,gBAAgB,CAACG,OAAO;MACxC;IACF,CAAC,GACDlB,SACL;IACD4N,WAAW,EAAEuB,QAAQ,GAAG;MAAEA,QAAQ,EAAE;IAAK,CAAC,GAAGnP,SAAU;IACvDT,MAAM,EAAEA,MAAM,GAAGA,MAAM,GAAGS,SAAU;IACpCR,YAAY,EAAEA,YAAY,GAAGA,YAAY,GAAGQ;EAAU,GAErDJ,QACiB,CACA,CAAC;AAE3B;AAUA,SAASoP,mBAAmBA,CAACnR,KAA4B,EAAE;EACzD,MAAM;IACJsE,SAAS;IACT8M,OAAO;IACPlQ,wBAAwB;IACxBC,kBAAkB;IAClB8P;EACF,CAAC,GAAGjR,KAAK,IAAI,CAAC,CAAC;EAEf,MAAM,GAAGE,WAAW,CAAC,GAAGtB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMwT,QAAQ,GAAG3T,MAAM,CAAc,CAAC;EACtC,MAAM4T,MAAM,GAAG5T,MAAM,CAAgB,IAAI,CAAC;EAC1C,MAAM6T,UAAU,GAAG7T,MAAM,CAItB,CAAC,CAAC,CAAC;EAEN,MAAM8T,QAAQ,GAAG5T,WAAW,CACzBsF,KAAkB,IAAK;IACtBmO,QAAQ,CAAC/O,OAAO,GAAGY,KAAK;IACxB/D,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACA,WAAW,CACd,CAAC;EAED,MAAMsS,KAAK,GAAG7T,WAAW,CAAC,MAAM;IAC9B,KAAK,MAAM8T,GAAG,IAAIH,UAAU,CAACjP,OAAO,EAAE;MACpCqP,YAAY,CAACJ,UAAU,CAACjP,OAAO,CAACoP,GAAG,CAAC,CAAC;IACvC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,cAAc,GAAGlU,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMmU,gBAAgB,GAAGnU,MAAM,CAAc,IAAI,CAAC;EAElDI,SAAS,CAAC,MAAM;IAKd,MAAMgU,MAAM,GAAGxG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM;IAC9C,MAAMuG,OAAO,GACX5R,wBAAwB,aAAxBA,wBAAwB,cAAxBA,wBAAwB,GAEvB2R,MAAM,GAAG,CAAC,GAAG,IAAK;IAErB,IAAIT,QAAQ,CAAC/O,OAAO,IAAIiB,SAAS,KAAK,OAAO,EAAE;MAC7CkO,KAAK,CAAC,CAAC;MACPD,QAAQ,CAACpQ,SAAS,CAAC;MACnB;IACF;IAEA,IAAImC,SAAS,KAAK,OAAO,EAAE;MACzBkO,KAAK,CAAC,CAAC;MACPD,QAAQ,CAAC,OAAO,CAAC;MAEjBD,UAAU,CAACjP,OAAO,CAAC8M,KAAK,GAAG4C,UAAU,CAAC,MAAM;QAC1CV,MAAM,CAAChP,OAAO,GAAG,CAAC;QAClBkP,QAAQ,CAACpQ,SAAS,CAAC;MACrB,CAAC,EAAE2Q,OAAO,CAAC;MACX;IACF;IAEA,IAAIxO,SAAS,KAAK,UAAU,EAAE;MAC5BqO,cAAc,CAACtP,OAAO,GAAG,IAAI;IAC/B;IAEA,IAAIiB,SAAS,KAAK,SAAS,IAAI8N,QAAQ,CAAC/O,OAAO,KAAK,SAAS,EAAE;MAC7DuP,gBAAgB,CAACvP,OAAO,GAAG2P,QAAQ,CAACC,aAA4B;MAChET,KAAK,CAAC,CAAC;MACPH,MAAM,CAAChP,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAC3BoP,cAAc,CAACtP,OAAO,GAAG,KAAK;MAC9BkP,QAAQ,CAAC,SAAS,CAAC;IACrB,CAAC,MAAM,IAAIH,QAAQ,CAAC/O,OAAO,KAAK,SAAS,EAAE;MACzC,MAAM6P,MAAM,GAAGC,IAAI,CAACC,GAAG,CAAC9P,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG8O,MAAM,CAAChP,OAAO,CAAC;MACpD,MAAMgQ,KAAK,GAAGR,MAAM,GAAGC,OAAO,GAAGK,IAAI,CAACC,GAAG,CAACN,OAAO,GAAGI,MAAM,EAAE,CAAC,CAAC;MAE9D,IAAI,CAAC9B,OAAO,EAAE;QACZkB,UAAU,CAACjP,OAAO,CAACiQ,QAAQ,GAAGP,UAAU,CAAC,MAAM;UAC7C,IAAIJ,cAAc,CAACtP,OAAO,EAAE;YAC1BkP,QAAQ,CAAC,UAAU,CAAC;UACtB;UACA1S,MAAM,CAACmM,qBAAqB,CAAC,MAAM;YAAA,IAAAuH,qBAAA,EAAAC,sBAAA;YACjC,CAAAD,qBAAA,GAAAX,gBAAgB,CAACvP,OAAO,cAAAkQ,qBAAA,wBAAAC,sBAAA,GAAxBD,qBAAA,CAA0BE,KAAK,cAAAD,sBAAA,uBAA/BA,sBAAA,CAAAhO,IAAA,CAAA+N,qBAAkC,CAAC;UACrC,CAAC,CAAC;QACJ,CAAC,EAAEF,KAAK,CAAC;QAETf,UAAU,CAACjP,OAAO,CAAC8M,KAAK,GAAG4C,UAAU,CAAC,MAAM;UAC1CV,MAAM,CAAChP,OAAO,GAAG,CAAC;UAClBkP,QAAQ,CAACpQ,SAAS,CAAC;UACnBqQ,KAAK,CAAC,CAAC;QACT,CAAC,EAAEa,KAAK,GAAGP,OAAO,CAAC;MACrB;IACF;IAEA,IAAIV,QAAQ,CAAC/O,OAAO,KAAK,SAAS,EAAE;MAClCiP,UAAU,CAACjP,OAAO,CAACqQ,OAAO,GAAGX,UAAU,CAAC,MAAM;QAC5CP,KAAK,CAAC,CAAC;QACPD,QAAQ,CAACpQ,SAAS,CAAC;QACnB8O,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG,CAAC;MACf,CAAC,EAAE9P,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,KAAK,CAAC;IACjC;IAEA,OAAOqR,KAAK;EACd,CAAC,EAAE,CACDA,KAAK,EACLtR,wBAAwB,EACxBoD,SAAS,EACTiO,QAAQ,EACRnB,OAAO,EACPjQ,kBAAkB,EAClB8P,SAAS,CACV,CAAC;EAEF,OAAO;IAAEC,iBAAiB,EAAEkB,QAAQ,CAAC/O;EAAQ,CAAC;AAChD;AAEA,OAAO,MAAMuI,WAAW,GAAGlD,MAAM,CAACiL,MAAM,CAAC,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useContext, useEffect, useMemo } from 'react';
|
|
4
|
+
import DataContext from '../Context';
|
|
5
|
+
export default function useEventListener(id, listener) {
|
|
6
|
+
let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
7
|
+
const {
|
|
8
|
+
setFieldEventListener
|
|
9
|
+
} = useContext(DataContext);
|
|
10
|
+
useMemo(() => {
|
|
11
|
+
setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(path, id, listener);
|
|
12
|
+
}, [id, listener, path, setFieldEventListener]);
|
|
13
|
+
const removeEvent = useCallback(() => {
|
|
14
|
+
setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(path, id, listener, {
|
|
15
|
+
remove: true
|
|
16
|
+
});
|
|
17
|
+
}, [id, listener, path, setFieldEventListener]);
|
|
18
|
+
useEffect(() => removeEvent, [removeEvent]);
|
|
19
|
+
return {
|
|
20
|
+
removeEvent
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useEventListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEventListener.js","names":["useCallback","useContext","useEffect","useMemo","DataContext","useEventListener","id","listener","path","arguments","length","undefined","setFieldEventListener","removeEvent","remove"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/useEventListener.ts"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo } from 'react'\nimport DataContext from '../Context'\n\nexport default function useEventListener(id, listener, path = undefined) {\n const { setFieldEventListener } = useContext(DataContext)\n\n useMemo(() => {\n setFieldEventListener?.(path, id, listener)\n }, [id, listener, path, setFieldEventListener])\n\n const removeEvent = useCallback(() => {\n setFieldEventListener?.(path, id, listener, {\n remove: true,\n })\n }, [id, listener, path, setFieldEventListener])\n\n useEffect(() => removeEvent, [removeEvent])\n\n return { removeEvent }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACnE,OAAOC,WAAW,MAAM,YAAY;AAEpC,eAAe,SAASC,gBAAgBA,CAACC,EAAE,EAAEC,QAAQ,EAAoB;EAAA,IAAlBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGE,SAAS;EACrE,MAAM;IAAEC;EAAsB,CAAC,GAAGX,UAAU,CAACG,WAAW,CAAC;EAEzDD,OAAO,CAAC,MAAM;IACZS,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAGJ,IAAI,EAAEF,EAAE,EAAEC,QAAQ,CAAC;EAC7C,CAAC,EAAE,CAACD,EAAE,EAAEC,QAAQ,EAAEC,IAAI,EAAEI,qBAAqB,CAAC,CAAC;EAE/C,MAAMC,WAAW,GAAGb,WAAW,CAAC,MAAM;IACpCY,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAGJ,IAAI,EAAEF,EAAE,EAAEC,QAAQ,EAAE;MAC1CO,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,EAAE,CAACR,EAAE,EAAEC,QAAQ,EAAEC,IAAI,EAAEI,qBAAqB,CAAC,CAAC;EAE/CV,SAAS,CAAC,MAAMW,WAAW,EAAE,CAACA,WAAW,CAAC,CAAC;EAE3C,OAAO;IAAEA;EAAY,CAAC;AACxB","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
import { stringProperties } from '../String/StringDocs';
|
|
5
|
+
export const BankAccountNumberProperties = _objectSpread(_objectSpread({}, stringProperties), {}, {
|
|
2
6
|
validate: {
|
|
3
7
|
doc: 'Using this prop you can disable the default validation.',
|
|
4
8
|
type: 'boolean',
|
|
@@ -9,5 +13,5 @@ export const BankAccountNumberProperties = {
|
|
|
9
13
|
type: 'function',
|
|
10
14
|
status: 'optional'
|
|
11
15
|
}
|
|
12
|
-
};
|
|
16
|
+
});
|
|
13
17
|
//# sourceMappingURL=BankAccountNumberDocs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankAccountNumberDocs.js","names":["BankAccountNumberProperties","validate","doc","type","status","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const BankAccountNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BankAccountNumberDocs.js","names":["stringProperties","BankAccountNumberProperties","_objectSpread","validate","doc","type","status","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { stringProperties } from '../String/StringDocs'\n\nexport const BankAccountNumberProperties: PropertiesTableProps = {\n ...stringProperties,\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to bank account number validation, using `bankAccountNumberValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,2BAAiD,GAAAC,aAAA,CAAAA,aAAA,KACzDF,gBAAgB;EACnBG,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,8aAA8a;IACnbC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,EACF","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
import { stringProperties } from '../String/StringDocs';
|
|
5
|
+
export const NationalIdentityNumberProperties = _objectSpread(_objectSpread({}, stringProperties), {}, {
|
|
2
6
|
validate: {
|
|
3
7
|
doc: 'Using this prop you can disable the default validation.',
|
|
4
8
|
type: 'boolean',
|
|
@@ -9,5 +13,5 @@ export const NationalIdentityNumberProperties = {
|
|
|
9
13
|
type: 'function',
|
|
10
14
|
status: 'optional'
|
|
11
15
|
}
|
|
12
|
-
};
|
|
16
|
+
});
|
|
13
17
|
//# sourceMappingURL=NationalIdentityNumberDocs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NationalIdentityNumberDocs.js","names":["NationalIdentityNumberProperties","validate","doc","type","status","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NationalIdentityNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to validation of the identification number(national identity numbers and D numbers), using `dnrAndFnrValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"NationalIdentityNumberDocs.js","names":["stringProperties","NationalIdentityNumberProperties","_objectSpread","validate","doc","type","status","onBlurValidator"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { stringProperties } from '../String/StringDocs'\n\nexport const NationalIdentityNumberProperties: PropertiesTableProps = {\n ...stringProperties,\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n onBlurValidator: {\n doc: 'Custom validator function that is triggered when the user leaves a field (e.g., blurring a text input or closing a dropdown). The function can be either asynchronous or synchronous. The first parameter is the value, and the second parameter returns an object containing { errorMessages, connectWithPath, validators }. Defaults to validation of the identification number(national identity numbers and D numbers), using `dnrAndFnrValidator`. Can be disabled using `false`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,gCAAsD,GAAAC,aAAA,CAAAA,aAAA,KAC9DF,gBAAgB;EACnBG,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,wdAAwd;IAC7dC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,EACF","ignoreList":[]}
|
|
@@ -82,7 +82,7 @@ export const numberProperties = {
|
|
|
82
82
|
status: 'optional'
|
|
83
83
|
},
|
|
84
84
|
step: {
|
|
85
|
-
doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1
|
|
85
|
+
doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to `1`.',
|
|
86
86
|
type: 'number',
|
|
87
87
|
status: 'optional'
|
|
88
88
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberDocs.js","names":["inputProperties","numberProperties","decimalLimit","doc","type","status","percent","currency","allowNegative","disallowLeadingZeroes","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","_objectSpread","align","autoComplete","prefix","suffix","step","startWith","showStepControls"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes during typing. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1
|
|
1
|
+
{"version":3,"file":"NumberDocs.js","names":["inputProperties","numberProperties","decimalLimit","doc","type","status","percent","currency","allowNegative","disallowLeadingZeroes","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","_objectSpread","align","autoComplete","prefix","suffix","step","startWith","showStepControls"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes during typing. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to `1`.',\n type: 'number',\n status: 'optional',\n },\n startWith: {\n doc: 'When no `value` or `defaultValue` is given, start with a given value when in/decreasing value input through step controls buttons or arrow keys. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n showStepControls: {\n doc: 'Show buttons that in/decreases value input by the step value.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,YAAY,EAAE;IACZC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,qBAAqB,EAAE;IACrBN,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,+GAA+G;IACpHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,OAAO,EAAE;IACPR,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,gBAAgB,EAAE;IAChBV,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCjB,eAAe,CAACgB,IAAI;IACvBb,GAAG,EAAE,GAAGH,eAAe,CAACgB,IAAI,CAACb,GAAG;EAAwG,EACzI;EACDe,KAAK,EAAE;IACLf,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,YAAY,EAAE;IACZhB,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDe,MAAM,EAAE;IACNjB,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,MAAM,EAAE;IACNlB,GAAG,EAAE,mCAAmC;IACxCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,IAAI,EAAE;IACJnB,GAAG,EAAE,0HAA0H;IAC/HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,SAAS,EAAE;IACTpB,GAAG,EAAE,sKAAsK;IAC3KC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,gBAAgB,EAAE;IAChBrB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
import { stringProperties } from '../String/StringDocs';
|
|
5
|
+
export const OrganizationNumberProperties = _objectSpread(_objectSpread({}, stringProperties), {}, {
|
|
2
6
|
validate: {
|
|
3
7
|
doc: 'Using this prop you can disable the default validation.',
|
|
4
8
|
type: 'boolean',
|
|
@@ -9,5 +13,5 @@ export const OrganizationNumberProperties = {
|
|
|
9
13
|
type: 'function',
|
|
10
14
|
status: 'optional'
|
|
11
15
|
}
|
|
12
|
-
};
|
|
16
|
+
});
|
|
13
17
|
//# sourceMappingURL=OrganizationNumberDocs.js.map
|