@dnb/eufemia 10.25.0 → 10.26.0
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 +32 -0
- package/cjs/components/autocomplete/Autocomplete.js +9 -2
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +3 -0
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +4 -0
- package/cjs/components/input-masked/InputMaskedUtils.js +10 -7
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +3 -0
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/table-th.scss +4 -1
- package/cjs/components/textarea/Textarea.js +24 -17
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +2 -1
- package/cjs/extensions/forms/DataContext/Context.js +1 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +4 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -7
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js +5 -8
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/cjs/extensions/forms/Field/Composition/Composition.js +19 -0
- package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/cjs/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Composition/index.js +27 -0
- package/cjs/extensions/forms/Field/Composition/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Currency/Currency.js +6 -4
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +5 -7
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +6 -10
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +24 -12
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +8 -7
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -7
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/Password.js +5 -8
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -16
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.js +9 -9
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -7
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +5 -5
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +6 -3
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/cjs/extensions/forms/Form/data-context/useError.js +13 -5
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +7 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -7
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/Boolean/Boolean.js +4 -7
- package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.js +4 -7
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Email/Email.js +4 -7
- package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -7
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -7
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +33 -0
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/cjs/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/cjs/extensions/forms/{StepsLayout/StepsLayoutDocs.js → Wizard/Container/WizardContainerDocs.js} +8 -8
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/cjs/extensions/forms/Wizard/Container/index.js +27 -0
- package/cjs/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/cjs/extensions/forms/{StepsLayout/StepsContext.js → Wizard/Context/WizardContext.js} +7 -4
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/cjs/extensions/forms/Wizard/Context/index.js +27 -0
- package/cjs/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/cjs/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/cjs/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/cjs/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/cjs/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.js +3 -3
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +52 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +60 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +56 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +47 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +30 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/cjs/extensions/forms/Wizard/index.d.ts +13 -0
- package/cjs/extensions/forms/Wizard/index.js +87 -0
- package/cjs/extensions/forms/Wizard/index.js.map +1 -0
- package/{extensions/forms/StepsLayout/style/dnb-steps-layout.css → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/{extensions/forms/StepsLayout/style/dnb-steps-layout.scss → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss} +5 -4
- package/cjs/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/style/index.js +4 -0
- package/cjs/extensions/forms/Wizard/style/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/style.js.map +1 -0
- package/cjs/extensions/forms/constants/countries.d.ts +1 -0
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +100 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/cjs/extensions/forms/constants/locales/en-US.js +25 -0
- package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +183 -0
- package/cjs/extensions/forms/constants/locales/index.js +18 -0
- package/cjs/extensions/forms/constants/locales/index.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +100 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +10 -7
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/cjs/extensions/forms/hooks/useLocale.js +32 -0
- package/cjs/extensions/forms/hooks/useLocale.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +14 -1
- package/cjs/extensions/forms/index.js +15 -15
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +35 -26
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +2 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/shared/Context.d.ts +7 -6
- package/cjs/shared/Context.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/shared/component-helper.d.ts +0 -1
- package/cjs/shared/component-helper.js +1 -9
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +3 -1
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +0 -51
- package/cjs/shared/locales/en-GB.js +3 -54
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +0 -51
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +0 -102
- package/cjs/shared/locales/nb-NO.d.ts +0 -51
- package/cjs/shared/locales/nb-NO.js +3 -54
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/types.d.ts +3 -0
- package/cjs/shared/types.js.map +1 -1
- package/cjs/shared/useLocale.d.ts +8 -1
- package/cjs/shared/useLocale.js +24 -11
- package/cjs/shared/useLocale.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-components.css +41 -26
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +35 -26
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +35 -26
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-forms.scss +2 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +76 -52
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +35 -26
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +35 -26
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/autocomplete/Autocomplete.js +9 -2
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/card/style/dnb-card.css +3 -0
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +4 -0
- package/components/input-masked/InputMaskedUtils.js +10 -7
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/table/style/dnb-table.css +3 -0
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/table-th.scss +4 -1
- package/components/textarea/Textarea.js +24 -17
- package/components/textarea/Textarea.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +9 -2
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/card/style/dnb-card.css +3 -0
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +4 -0
- package/es/components/input-masked/InputMaskedUtils.js +10 -7
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/table/style/dnb-table.css +3 -0
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/table-th.scss +4 -1
- package/es/components/textarea/Textarea.js +24 -17
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +2 -1
- package/es/extensions/forms/DataContext/Context.js +1 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +4 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js +5 -7
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/es/extensions/forms/Field/Composition/Composition.js +11 -0
- package/es/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/es/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/es/extensions/forms/Field/Composition/index.js +3 -0
- package/es/extensions/forms/Field/Composition/index.js.map +1 -0
- package/es/extensions/forms/Field/Currency/Currency.js +4 -4
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +6 -9
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +6 -9
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +25 -14
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +8 -7
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/Password/Password.js +5 -8
- package/es/extensions/forms/Field/Password/Password.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/String/String.js +9 -9
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +7 -9
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +7 -4
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/es/extensions/forms/Form/data-context/useError.js +14 -6
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Value/Boolean/Boolean.js +4 -6
- package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.js +4 -6
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Email/Email.js +4 -6
- package/es/extensions/forms/Value/Email/Email.js.map +1 -1
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/es/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/es/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/{extensions/forms/StepsLayout/StepsLayoutDocs.js → es/extensions/forms/Wizard/Container/WizardContainerDocs.js} +5 -5
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/es/extensions/forms/Wizard/Container/index.js +3 -0
- package/es/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js +12 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/es/extensions/forms/Wizard/Context/index.js +3 -0
- package/es/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/es/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/es/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/es/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/es/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/Step/Step.js +3 -3
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/es/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js +42 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js +46 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js +37 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/es/extensions/forms/Wizard/hooks/useStep.js +22 -0
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/es/extensions/forms/Wizard/index.d.ts +13 -0
- package/es/extensions/forms/Wizard/index.js +14 -0
- package/es/extensions/forms/Wizard/index.js.map +1 -0
- package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css → es/extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/es/extensions/forms/{StepsLayout/style/dnb-steps-layout.scss → Wizard/style/dnb-wizard-layout.scss} +5 -4
- package/es/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/es/extensions/forms/Wizard/style/index.js +1 -0
- package/es/extensions/forms/Wizard/style/index.js.map +1 -0
- package/es/extensions/forms/Wizard/style.js.map +1 -0
- package/es/extensions/forms/constants/countries.d.ts +1 -0
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/es/extensions/forms/constants/locales/en-GB.js +93 -0
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/es/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/es/extensions/forms/constants/locales/en-US.js +15 -0
- package/es/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +183 -0
- package/es/extensions/forms/constants/locales/index.js +8 -0
- package/es/extensions/forms/constants/locales/index.js.map +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +93 -0
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +10 -7
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/es/extensions/forms/hooks/useLocale.js +26 -0
- package/es/extensions/forms/hooks/useLocale.js.map +1 -0
- package/es/extensions/forms/index.d.ts +14 -1
- package/es/extensions/forms/index.js +11 -1
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +35 -26
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +2 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/shared/Context.d.ts +7 -6
- package/es/shared/Context.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/shared/component-helper.d.ts +0 -1
- package/es/shared/component-helper.js +0 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +3 -1
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +0 -51
- package/es/shared/locales/en-GB.js +3 -54
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +0 -51
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +0 -102
- package/es/shared/locales/nb-NO.d.ts +0 -51
- package/es/shared/locales/nb-NO.js +3 -54
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/types.d.ts +3 -0
- package/es/shared/types.js.map +1 -1
- package/es/shared/useLocale.d.ts +8 -1
- package/es/shared/useLocale.js +22 -11
- package/es/shared/useLocale.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-components.css +41 -26
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +35 -26
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +35 -26
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-forms.scss +2 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +76 -52
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +35 -26
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +35 -26
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +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 +2 -1
- package/extensions/forms/DataContext/Context.js +1 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +4 -2
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.js +5 -7
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/extensions/forms/Field/Composition/Composition.js +11 -0
- package/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/extensions/forms/Field/Composition/index.js +3 -0
- package/extensions/forms/Field/Composition/index.js.map +1 -0
- package/extensions/forms/Field/Currency/Currency.js +4 -4
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +6 -9
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +6 -9
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +25 -14
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +8 -7
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/Password/Password.js +5 -8
- package/extensions/forms/Field/Password/Password.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/String/String.js +9 -9
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +7 -9
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +7 -4
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/extensions/forms/Form/data-context/useError.js +14 -6
- package/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +1 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Value/Boolean/Boolean.js +4 -6
- package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Value/Date/Date.js +4 -6
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Email/Email.js +4 -6
- package/extensions/forms/Value/Email/Email.js.map +1 -1
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/{es/extensions/forms/StepsLayout/StepsLayoutDocs.js → extensions/forms/Wizard/Container/WizardContainerDocs.js} +5 -5
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/extensions/forms/Wizard/Container/index.js +3 -0
- package/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/extensions/forms/Wizard/Context/WizardContext.js +12 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/extensions/forms/Wizard/Context/index.js +3 -0
- package/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/Step/Step.js +3 -3
- package/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.js +43 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.js +47 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.js +38 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/extensions/forms/Wizard/hooks/useStep.js +24 -0
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/extensions/forms/Wizard/index.d.ts +13 -0
- package/extensions/forms/Wizard/index.js +14 -0
- package/extensions/forms/Wizard/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout/style/dnb-steps-layout.css → extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss → extensions/forms/Wizard/style/dnb-wizard-layout.scss} +5 -4
- package/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/extensions/forms/Wizard/style/index.js +1 -0
- package/extensions/forms/Wizard/style/index.js.map +1 -0
- package/extensions/forms/Wizard/style.js.map +1 -0
- package/extensions/forms/constants/countries.d.ts +1 -0
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/extensions/forms/constants/locales/en-GB.js +93 -0
- package/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/extensions/forms/constants/locales/en-US.js +15 -0
- package/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/extensions/forms/constants/locales/index.d.ts +183 -0
- package/extensions/forms/constants/locales/index.js +8 -0
- package/extensions/forms/constants/locales/index.js.map +1 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/extensions/forms/constants/locales/nb-NO.js +93 -0
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +10 -7
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/extensions/forms/hooks/useLocale.js +26 -0
- package/extensions/forms/hooks/useLocale.js.map +1 -0
- package/extensions/forms/index.d.ts +14 -1
- package/extensions/forms/index.js +12 -1
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +35 -26
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +2 -0
- package/extensions/forms/types.js.map +1 -1
- package/package.json +1 -1
- package/shared/Context.d.ts +7 -6
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +0 -1
- package/shared/component-helper.js +0 -1
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/useSharedState.d.ts +3 -1
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/locales/en-GB.d.ts +0 -51
- package/shared/locales/en-GB.js +3 -54
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +0 -51
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +0 -102
- package/shared/locales/nb-NO.d.ts +0 -51
- package/shared/locales/nb-NO.js +3 -54
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/types.d.ts +3 -0
- package/shared/types.js.map +1 -1
- package/shared/useLocale.d.ts +8 -1
- package/shared/useLocale.js +23 -11
- package/shared/useLocale.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-components.css +41 -26
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +35 -26
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +35 -26
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-forms.scss +2 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +76 -52
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +35 -26
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +35 -26
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +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 +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Field/style/index.d.ts +0 -5
- package/cjs/extensions/forms/Field/style/index.js +0 -4
- package/cjs/extensions/forms/Field/style/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -26
- package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/index.js +0 -18
- package/cjs/extensions/forms/StepsLayout/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/cjs/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/cjs/extensions/forms/StepsLayout/style/index.js +0 -4
- package/cjs/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/style.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/useStep.js +0 -19
- package/cjs/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/cjs/shared/helpers/useEventEmitter.d.ts +0 -16
- package/cjs/shared/helpers/useEventEmitter.js +0 -38
- package/cjs/shared/helpers/useEventEmitter.js.map +0 -1
- package/es/extensions/forms/Field/style/index.d.ts +0 -5
- package/es/extensions/forms/Field/style/index.js +0 -1
- package/es/extensions/forms/Field/style/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
- package/es/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/es/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/es/extensions/forms/StepsLayout/StepsContext.js +0 -9
- package/es/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/es/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/index.js +0 -4
- package/es/extensions/forms/StepsLayout/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/es/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/es/extensions/forms/StepsLayout/style/index.js +0 -1
- package/es/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/style.js.map +0 -1
- package/es/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/useStep.js +0 -12
- package/es/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/es/shared/helpers/useEventEmitter.d.ts +0 -16
- package/es/shared/helpers/useEventEmitter.js +0 -29
- package/es/shared/helpers/useEventEmitter.js.map +0 -1
- package/extensions/forms/Field/style/index.d.ts +0 -5
- package/extensions/forms/Field/style/index.js +0 -1
- package/extensions/forms/Field/style/index.js.map +0 -1
- package/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
- package/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/extensions/forms/StepsLayout/StepsContext.js +0 -9
- package/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/extensions/forms/StepsLayout/index.js +0 -4
- package/extensions/forms/StepsLayout/index.js.map +0 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/extensions/forms/StepsLayout/style/index.js +0 -1
- package/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/extensions/forms/StepsLayout/style.js.map +0 -1
- package/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/extensions/forms/StepsLayout/useStep.js +0 -13
- package/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/shared/helpers/useEventEmitter.d.ts +0 -16
- package/shared/helpers/useEventEmitter.js +0 -30
- package/shared/helpers/useEventEmitter.js.map +0 -1
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
|
@@ -17,7 +17,7 @@ export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
|
|
|
17
17
|
export interface ContextState {
|
|
18
18
|
id?: Identifier;
|
|
19
19
|
hasContext: boolean;
|
|
20
|
-
/** The dataset for the form / form
|
|
20
|
+
/** The dataset for the form / form wizard */
|
|
21
21
|
data: any;
|
|
22
22
|
/** Should the form validate data before submitting? */
|
|
23
23
|
errors?: Record<string, Error>;
|
|
@@ -43,6 +43,7 @@ export interface ContextState {
|
|
|
43
43
|
handleUnMountField: (path: Path) => void;
|
|
44
44
|
formState: SubmitState;
|
|
45
45
|
setFormState?: (state: SubmitState) => void;
|
|
46
|
+
setSubmitState?: (state: EventStateObject) => void;
|
|
46
47
|
handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
|
|
47
48
|
onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
|
|
48
49
|
enableAsyncBehaviour: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAwGnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAEhC,eAAe,CAAC,CAAC;EAC9BiC,oBAAoB,EAAE7B,SAAS;EAC/B8B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGrC,KAAK,CAACsC,aAAa,CAAepC,mBAAmB,CAAC;AAEtE,eAAemC,OAAO"}
|
|
@@ -191,13 +191,14 @@ export default function Provider(props) {
|
|
|
191
191
|
extendAttachment === null || extendAttachment === void 0 ? void 0 : extendAttachment({
|
|
192
192
|
filterDataHandler,
|
|
193
193
|
hasErrors,
|
|
194
|
-
setShowAllErrors
|
|
194
|
+
setShowAllErrors,
|
|
195
|
+
setSubmitState
|
|
195
196
|
});
|
|
196
197
|
if (filterData) {
|
|
197
198
|
rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
|
-
}, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors]);
|
|
201
|
+
}, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
|
|
201
202
|
const updateDataValue = useCallback((path, value) => {
|
|
202
203
|
var _internalDataRef$curr;
|
|
203
204
|
if (!path) {
|
|
@@ -457,6 +458,7 @@ export default function Provider(props) {
|
|
|
457
458
|
handleUnMountField,
|
|
458
459
|
handleSubmitCall,
|
|
459
460
|
setFormState,
|
|
461
|
+
setSubmitState,
|
|
460
462
|
setShowAllErrors,
|
|
461
463
|
setFieldEventListener,
|
|
462
464
|
setFieldState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","pointer","makeAjvInstance","ajvErrorsToFormErrors","SharedProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filter","arguments","length","filtered","_objectSpread","entries","fieldPropsRef","forEach","_ref","_fieldErrorRef$curren","exists","has","result","get","remove","setProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","set","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","_window$sessionStorag2","setItem","stringify","setData","handlePathChangeUnvalidated","handlePathChange","handleMountField","addListPath","handleUnMountField","_fieldPropsRef$curren","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","includes","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","setFieldEventListener","_ref2","p","t","push","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","isTest","process","env","NODE_ENV","minimum","setTimeout","Date","now","offset","Math","max","delay","complete","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport SharedProvider from '../../../../shared/Provider'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\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 interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\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?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\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: any\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\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\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 * 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 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 defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\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 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<Partial<Data>>(initialData)\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 mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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 /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props,\n {\n error: fieldErrorRef.current?.[path],\n }\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: ContextState['hasErrors']\n setShowAllErrors?: ContextState['setShowAllErrors']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\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 internalDataRef.current = 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 ) {\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 ) {\n cacheRef.current.shared = sharedData.data\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 }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n setShowAllErrors,\n })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n hasErrors,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\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 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 internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n id,\n sessionStorageId,\n extendSharedData,\n filterData,\n rerenderUseDataHook,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 if (isAsync(onChange)) {\n return await onChange(internalDataRef.current as Data)\n }\n\n return onChange?.(internalDataRef.current as Data)\n },\n [handlePathChangeUnvalidated, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\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 enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\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 onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n const args = filterDataHandler(internalDataRef.current as Data)\n const opts = {\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 internalDataRef.current = {}\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(args, opts)\n } else {\n result = onSubmit?.(args, opts)\n }\n\n const completeResult = await onSubmitComplete?.(args, 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 [\n filterDataHandler,\n handleSubmitCall,\n id,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n ]\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 ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 })\n }, [setFormState, setSubmitState])\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 = rest?.['disabled'] ?? formState === 'pending'\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldState,\n checkFieldStateFor,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n mountedFieldPaths: mountedFieldPathsRef.current,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <SharedProvider formElement={{ disabled }}>\n {children}\n </SharedProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['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\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 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 }, 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","pointer","makeAjvInstance","ajvErrorsToFormErrors","SharedProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filter","arguments","length","filtered","_objectSpread","entries","fieldPropsRef","forEach","_ref","_fieldErrorRef$curren","exists","has","result","get","remove","setProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","set","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","_window$sessionStorag2","setItem","stringify","setData","handlePathChangeUnvalidated","handlePathChange","handleMountField","addListPath","handleUnMountField","_fieldPropsRef$curren","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","includes","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","setFieldEventListener","_ref2","p","t","push","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","isTest","process","env","NODE_ENV","minimum","setTimeout","Date","now","offset","Math","max","delay","complete","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport SharedProvider from '../../../../shared/Provider'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\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 interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\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?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\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: any\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\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\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 * 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 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 defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\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 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<Partial<Data>>(initialData)\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 mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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 /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props,\n {\n error: fieldErrorRef.current?.[path],\n }\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: ContextState['hasErrors']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\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 internalDataRef.current = 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 ) {\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 ) {\n cacheRef.current.shared = sharedData.data\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 }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n hasErrors,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\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 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 internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n id,\n sessionStorageId,\n extendSharedData,\n filterData,\n rerenderUseDataHook,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 if (isAsync(onChange)) {\n return await onChange(internalDataRef.current as Data)\n }\n\n return onChange?.(internalDataRef.current as Data)\n },\n [handlePathChangeUnvalidated, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\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 enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\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 onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n const args = filterDataHandler(internalDataRef.current as Data)\n const opts = {\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 internalDataRef.current = {}\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(args, opts)\n } else {\n result = onSubmit?.(args, opts)\n }\n\n const completeResult = await onSubmitComplete?.(args, 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 [\n filterDataHandler,\n handleSubmitCall,\n id,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n ]\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 ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 })\n }, [setFormState, setSubmitState])\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 = rest?.['disabled'] ?? formState === 'pending'\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldState,\n checkFieldStateFor,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n mountedFieldPaths: mountedFieldPathsRef.current,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <SharedProvider formElement={{ disabled }}>\n {children}\n </SharedProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['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\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 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 }, 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"],"mappings":"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"}
|
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
-
import React, {
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
7
5
|
import StringField from '../String';
|
|
8
|
-
import SharedContext from '../../../../shared/Context';
|
|
9
6
|
import useErrorMessage from '../../hooks/useErrorMessage';
|
|
7
|
+
import useLocale from '../../hooks/useLocale';
|
|
10
8
|
function BankAccountNumber(props) {
|
|
11
9
|
var _props$pattern, _props$label, _props$width;
|
|
12
|
-
const
|
|
13
|
-
const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
|
|
10
|
+
const translations = useLocale().BankAccountNumber;
|
|
14
11
|
const {
|
|
15
12
|
validate = true,
|
|
16
13
|
omitMask
|
|
17
14
|
} = props;
|
|
18
15
|
const errorMessages = useErrorMessage(props.path, props.errorMessages, {
|
|
19
|
-
required:
|
|
20
|
-
pattern:
|
|
16
|
+
required: translations.errorRequired,
|
|
17
|
+
pattern: translations.errorPattern
|
|
21
18
|
});
|
|
22
19
|
const mask = useMemo(() => omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
|
|
23
20
|
const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
24
21
|
className: 'dnb-forms-field-bank-account-number',
|
|
25
22
|
pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{11}$' : undefined,
|
|
26
|
-
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label :
|
|
23
|
+
label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label,
|
|
27
24
|
errorMessages,
|
|
28
25
|
mask,
|
|
29
26
|
width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankAccountNumber.js","names":["React","
|
|
1
|
+
{"version":3,"file":"BankAccountNumber.js","names":["React","useMemo","StringField","useErrorMessage","useLocale","BankAccountNumber","props","_props$pattern","_props$label","_props$width","translations","validate","omitMask","errorMessages","path","required","errorRequired","pattern","errorPattern","mask","StringFieldProps","_objectSpread","className","undefined","label","width","inputMode","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useLocale from '../../hooks/useLocale'\n\nexport type Props = StringFieldProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const translations = useLocale().BankAccountNumber\n const { validate = true, omitMask } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const StringFieldProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label: props.label ?? translations.label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,WAAW,MAAqC,WAAW;AAElE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,SAAS,MAAM,uBAAuB;AAO7C,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,YAAY,GAAGN,SAAS,CAAC,CAAC,CAACC,iBAAiB;EAClD,MAAM;IAAEM,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,aAAa,GAAGV,eAAe,CAACG,KAAK,CAACQ,IAAI,EAAER,KAAK,CAACO,aAAa,EAAE;IACrEE,QAAQ,EAAEL,YAAY,CAACM,aAAa;IACpCC,OAAO,EAAEP,YAAY,CAACQ;EACxB,CAAC,CAAC;EACF,MAAMC,IAAI,GAAGlB,OAAO,CAClB,MACEW,QAAQ,GACJ,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,GACD,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACA,QAAQ,CACX,CAAC;EAED,MAAMQ,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBf,KAAK;IACRgB,SAAS,EAAE,qCAAqC;IAChDL,OAAO,GAAAV,cAAA,GAAED,KAAK,CAACW,OAAO,cAAAV,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,aAAa,GAAGY,SAAU;IAChEC,KAAK,GAAAhB,YAAA,GAAEF,KAAK,CAACkB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAIE,YAAY,CAACc,KAAK;IACxCX,aAAa;IACbM,IAAI;IACJM,KAAK,GAAAhB,YAAA,GAAEH,KAAK,CAACmB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAI,QAAQ;IAC9BiB,SAAS,EAAE;EAAS,EACrB;EAED,OAAO1B,KAAA,CAAA2B,aAAA,CAACzB,WAAW,EAAKkB,gBAAmB,CAAC;AAC9C;AAEAf,iBAAiB,CAACuB,qBAAqB,GAAG,IAAI;AAC9C,eAAevB,iBAAiB"}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
3
|
const _excluded = ["trueText", "falseText"];
|
|
6
|
-
import React
|
|
4
|
+
import React from 'react';
|
|
7
5
|
import ToggleField from '../Toggle';
|
|
8
|
-
import
|
|
6
|
+
import useLocale from '../../hooks/useLocale';
|
|
9
7
|
function BooleanComponent(props) {
|
|
10
|
-
const sharedContext = useContext(SharedContext);
|
|
11
8
|
const {
|
|
12
9
|
trueText,
|
|
13
10
|
falseText
|
|
14
11
|
} = props,
|
|
15
12
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
13
|
+
const translations = useLocale().BooleanField;
|
|
16
14
|
return React.createElement(ToggleField, _extends({}, restProps, {
|
|
17
15
|
valueOn: true,
|
|
18
16
|
valueOff: false,
|
|
19
|
-
textOn: trueText !== null && trueText !== void 0 ? trueText :
|
|
20
|
-
textOff: falseText !== null && falseText !== void 0 ? falseText :
|
|
17
|
+
textOn: trueText !== null && trueText !== void 0 ? trueText : translations.yes,
|
|
18
|
+
textOff: falseText !== null && falseText !== void 0 ? falseText : translations.no
|
|
21
19
|
}));
|
|
22
20
|
}
|
|
23
21
|
BooleanComponent._supportsSpacingProps = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boolean.js","names":["React","
|
|
1
|
+
{"version":3,"file":"Boolean.js","names":["React","ToggleField","useLocale","BooleanComponent","props","trueText","falseText","restProps","_objectWithoutProperties","_excluded","translations","BooleanField","createElement","_extends","valueOn","valueOff","textOn","yes","textOff","no","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Boolean/Boolean.tsx"],"sourcesContent":["import React from 'react'\nimport ToggleField, { Props as ToggleFieldProps } from '../Toggle'\nimport useLocale from '../../hooks/useLocale'\n\nexport type Props = Omit<\n ToggleFieldProps,\n 'valueOn' | 'valueOff' | 'textOn' | 'textOff'\n> & {\n trueText?: string\n falseText?: string\n}\n\nfunction BooleanComponent(props: Props) {\n const { trueText, falseText, ...restProps } = props\n const translations = useLocale().BooleanField\n\n return (\n <ToggleField\n {...restProps}\n valueOn={true}\n valueOff={false}\n textOn={trueText ?? translations.yes}\n textOff={falseText ?? translations.no}\n />\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,SAAS,MAAM,uBAAuB;AAU7C,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAM;MAAEC,QAAQ;MAAEC;IAAwB,CAAC,GAAGF,KAAK;IAAnBG,SAAS,GAAAC,wBAAA,CAAKJ,KAAK,EAAAK,SAAA;EACnD,MAAMC,YAAY,GAAGR,SAAS,CAAC,CAAC,CAACS,YAAY;EAE7C,OACEX,KAAA,CAAAY,aAAA,CAACX,WAAW,EAAAY,QAAA,KACNN,SAAS;IACbO,OAAO,EAAE,IAAK;IACdC,QAAQ,EAAE,KAAM;IAChBC,MAAM,EAAEX,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIK,YAAY,CAACO,GAAI;IACrCC,OAAO,EAAEZ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAII,YAAY,CAACS;EAAG,EACvC,CAAC;AAEN;AAEAhB,gBAAgB,CAACiB,qBAAqB,GAAG,IAAI;AAC7C,eAAejB,gBAAgB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Props as FieldBlockProps } from '../../FieldBlock';
|
|
2
|
+
declare function CompositionField(props: FieldBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare namespace CompositionField {
|
|
4
|
+
var _supportsSpacingProps: boolean;
|
|
5
|
+
}
|
|
6
|
+
export default CompositionField;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import FieldBlock from '../../FieldBlock';
|
|
4
|
+
function CompositionField(props) {
|
|
5
|
+
return React.createElement(FieldBlock, _extends({}, props, {
|
|
6
|
+
composition: true
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
CompositionField._supportsSpacingProps = true;
|
|
10
|
+
export default CompositionField;
|
|
11
|
+
//# sourceMappingURL=Composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Composition.js","names":["React","FieldBlock","CompositionField","props","createElement","_extends","composition","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Composition/Composition.tsx"],"sourcesContent":["import React from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\n\nfunction CompositionField(props: FieldBlockProps) {\n return <FieldBlock {...props} composition />\n}\n\nCompositionField._supportsSpacingProps = true\nexport default CompositionField\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAoC,kBAAkB;AAEvE,SAASC,gBAAgBA,CAACC,KAAsB,EAAE;EAChD,OAAOH,KAAA,CAAAI,aAAA,CAACH,UAAU,EAAAI,QAAA,KAAKF,KAAK;IAAEG,WAAW;EAAA,EAAE,CAAC;AAC9C;AAEAJ,gBAAgB,CAACK,qBAAqB,GAAG,IAAI;AAC7C,eAAeL,gBAAgB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/Composition/index.ts"],"sourcesContent":["export { default } from './Composition'\nexport * from './Composition'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,cAAc,eAAe"}
|
|
@@ -4,18 +4,18 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
-
import React from 'react';
|
|
7
|
+
import React, { useContext } from 'react';
|
|
8
8
|
import classnames from 'classnames';
|
|
9
|
-
import
|
|
9
|
+
import SharedContext from '../../../../shared/Context';
|
|
10
10
|
import { getCurrencySymbol } from '../../../../components/number-format/NumberUtils';
|
|
11
11
|
import { CURRENCY } from '../../../../shared/defaults';
|
|
12
12
|
import NumberField from '../Number';
|
|
13
13
|
function Currency(props) {
|
|
14
14
|
var _props$currency, _props$placeholder;
|
|
15
|
-
const
|
|
15
|
+
const sharedContext = useContext(SharedContext);
|
|
16
16
|
const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
17
17
|
currency: (_props$currency = props.currency) !== null && _props$currency !== void 0 ? _props$currency : CURRENCY,
|
|
18
|
-
placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(
|
|
18
|
+
placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.locale, props.currency, props.currencyDisplay)
|
|
19
19
|
});
|
|
20
20
|
return React.createElement(NumberField, _extends({}, preparedProps, {
|
|
21
21
|
className: classnames('dnb-forms-field-currency', props.className)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.js","names":["React","classnames","
|
|
1
|
+
{"version":3,"file":"Currency.js","names":["React","useContext","classnames","SharedContext","getCurrencySymbol","CURRENCY","NumberField","Currency","props","_props$currency","_props$placeholder","sharedContext","preparedProps","_objectSpread","currency","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberField, { Props as NumberFieldProps } from '../Number'\n\nexport type Props = NumberFieldProps\n\nfunction Currency(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n sharedContext?.locale,\n props.currency,\n props.currencyDisplay\n ),\n }\n\n return (\n <NumberField\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,kDAAkD;AACpF,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAIlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAGV,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAMS,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdL,KAAK;IACRM,QAAQ,GAAAL,eAAA,GAAED,KAAK,CAACM,QAAQ,cAAAL,eAAA,cAAAA,eAAA,GAAIJ,QAAQ;IACpCU,WAAW,GAAAL,kBAAA,GACTF,KAAK,CAACO,WAAW,cAAAL,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,MAAM,EACrBR,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACS,eACR;EAAC,EACJ;EAED,OACEjB,KAAA,CAAAkB,aAAA,CAACZ,WAAW,EAAAa,QAAA,KACNP,aAAa;IACjBQ,SAAS,EAAElB,UAAU,CAAC,0BAA0B,EAAEM,KAAK,CAACY,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAb,QAAQ,CAACc,qBAAqB,GAAG,IAAI;AACrC,eAAed,QAAQ"}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
3
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
4
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
-
import React, { useCallback,
|
|
5
|
+
import React, { useCallback, useMemo } from 'react';
|
|
8
6
|
import { DatePicker, HelpButton } from '../../../../components';
|
|
9
7
|
import { useFieldProps } from '../../hooks';
|
|
10
8
|
import { pickSpacingProps } from '../../../../components/flex/utils';
|
|
11
|
-
import SharedContext from '../../../../shared/Context';
|
|
12
9
|
import classnames from 'classnames';
|
|
13
10
|
import FieldBlock from '../../FieldBlock';
|
|
14
11
|
import { parseISO, isValid } from 'date-fns';
|
|
15
12
|
import useErrorMessage from '../../hooks/useErrorMessage';
|
|
13
|
+
import useLocale from '../../hooks/useLocale';
|
|
16
14
|
function DateComponent(props) {
|
|
17
|
-
const
|
|
18
|
-
const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
|
|
15
|
+
const translations = useLocale();
|
|
19
16
|
const errorMessages = useErrorMessage(props.path, props.errorMessages, {
|
|
20
|
-
required:
|
|
21
|
-
pattern:
|
|
17
|
+
required: translations.Date.errorRequired,
|
|
18
|
+
pattern: translations.Field.errorRequired
|
|
22
19
|
});
|
|
23
20
|
const schema = useMemo(() => {
|
|
24
21
|
var _props$schema;
|
|
@@ -68,7 +65,7 @@ function DateComponent(props) {
|
|
|
68
65
|
return React.createElement(FieldBlock, _extends({
|
|
69
66
|
className: classnames('dnb-forms-field-string', className),
|
|
70
67
|
forId: id,
|
|
71
|
-
label: label !== null && label !== void 0 ? label :
|
|
68
|
+
label: label !== null && label !== void 0 ? label : translations.Date.label,
|
|
72
69
|
labelDescription: labelDescription,
|
|
73
70
|
info: info,
|
|
74
71
|
warning: warning,
|