@dnb/eufemia 10.68.0 → 10.69.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 +37 -0
- package/cjs/components/autocomplete/Autocomplete.js +1 -1
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/info-card/InfoCard.d.ts +4 -0
- package/cjs/components/info-card/InfoCard.js +29 -25
- package/cjs/components/info-card/InfoCard.js.map +1 -1
- package/cjs/components/info-card/style/dnb-info-card.css +5 -0
- package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
- package/cjs/components/info-card/style/dnb-info-card.scss +7 -0
- package/cjs/components/number-format/NumberFormat.js +4 -2
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.d.ts +3 -0
- package/cjs/components/number-format/NumberUtils.js +6 -4
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/table/TableClickableHead.js +14 -3
- package/cjs/components/table/TableClickableHead.js.map +1 -1
- package/cjs/components/table/TableTr.js +4 -4
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
- package/cjs/components/table/table-accordion/TableAccordionHead.js +27 -20
- package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/cjs/components/table/table-navigation/TableNavigationHead.js +7 -4
- package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/Currency.d.ts +9 -1
- package/cjs/extensions/forms/Field/Currency/Currency.js +8 -3
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
- package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js +289 -0
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +36 -0
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/SelectCurrency/index.js +28 -0
- package/cjs/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
- 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.d.ts +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Value/Currency/Currency.d.ts +7 -1
- package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
- package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
- package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js +37 -0
- package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
- package/cjs/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/SelectCurrency/index.js +28 -0
- package/cjs/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
- package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
- package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js +32 -0
- package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
- package/cjs/extensions/forms/Value/index.d.ts +1 -0
- package/cjs/extensions/forms/Value/index.js +7 -0
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/constants/allCurrencies.d.ts +1786 -0
- package/cjs/extensions/forms/constants/allCurrencies.js +1447 -0
- package/cjs/extensions/forms/constants/allCurrencies.js.map +1 -0
- package/cjs/extensions/forms/constants/countries.d.ts +4023 -4
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/currencies.d.ts +716 -0
- package/cjs/extensions/forms/constants/currencies.js +12 -0
- package/cjs/extensions/forms/constants/currencies.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +5 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +5 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
- package/cjs/extensions/forms/constants/locales/sv-SE.js +5 -0
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +18 -17
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -4
- package/cjs/extensions/forms/types.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/Translation.js +5 -6
- package/cjs/shared/Translation.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 +5 -0
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/components/autocomplete/Autocomplete.js +1 -1
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/info-card/InfoCard.d.ts +4 -0
- package/components/info-card/InfoCard.js +26 -25
- package/components/info-card/InfoCard.js.map +1 -1
- package/components/info-card/style/dnb-info-card.css +5 -0
- package/components/info-card/style/dnb-info-card.min.css +1 -1
- package/components/info-card/style/dnb-info-card.scss +7 -0
- package/components/number-format/NumberFormat.js +4 -2
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/number-format/NumberUtils.d.ts +3 -0
- package/components/number-format/NumberUtils.js +6 -4
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/table/TableClickableHead.js +12 -3
- package/components/table/TableClickableHead.js.map +1 -1
- package/components/table/TableTr.js +4 -4
- package/components/table/TableTr.js.map +1 -1
- package/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
- package/components/table/table-accordion/TableAccordionHead.js +28 -21
- package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/components/table/table-navigation/TableNavigationHead.js +4 -4
- package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +1 -1
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/info-card/InfoCard.d.ts +4 -0
- package/es/components/info-card/InfoCard.js +26 -25
- package/es/components/info-card/InfoCard.js.map +1 -1
- package/es/components/info-card/style/dnb-info-card.css +5 -0
- package/es/components/info-card/style/dnb-info-card.min.css +1 -1
- package/es/components/info-card/style/dnb-info-card.scss +7 -0
- package/es/components/number-format/NumberFormat.js +4 -2
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/number-format/NumberUtils.d.ts +3 -0
- package/es/components/number-format/NumberUtils.js +6 -4
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/table/TableClickableHead.js +12 -3
- package/es/components/table/TableClickableHead.js.map +1 -1
- package/es/components/table/TableTr.js +4 -4
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
- package/es/components/table/table-accordion/TableAccordionHead.js +28 -21
- package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
- package/es/components/table/table-navigation/TableNavigationHead.js +4 -4
- package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
- package/es/extensions/forms/Field/Currency/Currency.d.ts +9 -1
- package/es/extensions/forms/Field/Currency/Currency.js +8 -3
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
- package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js +263 -0
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
- package/es/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
- package/es/extensions/forms/Field/SelectCurrency/index.js +3 -0
- package/es/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
- 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.d.ts +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Value/Currency/Currency.d.ts +7 -1
- package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
- package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
- package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
- package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
- package/es/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
- package/es/extensions/forms/Value/SelectCurrency/index.js +3 -0
- package/es/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
- package/es/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
- package/es/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
- package/es/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
- package/es/extensions/forms/Value/index.d.ts +1 -0
- package/es/extensions/forms/Value/index.js +1 -0
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/constants/allCurrencies.d.ts +1786 -0
- package/es/extensions/forms/constants/allCurrencies.js +1440 -0
- package/es/extensions/forms/constants/allCurrencies.js.map +1 -0
- package/es/extensions/forms/constants/countries.d.ts +4023 -4
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/currencies.d.ts +716 -0
- package/es/extensions/forms/constants/currencies.js +5 -0
- package/es/extensions/forms/constants/currencies.js.map +1 -0
- package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/es/extensions/forms/constants/locales/en-GB.js +5 -0
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/es/extensions/forms/constants/locales/index.d.ts +10 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +5 -0
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
- package/es/extensions/forms/constants/locales/sv-SE.js +5 -0
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +18 -17
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/types.d.ts +4 -4
- package/es/extensions/forms/types.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/Translation.js +5 -4
- package/es/shared/Translation.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 +5 -0
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +5 -0
- package/es/style/themes/theme-ui/ui-theme-components.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 +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/Field/Currency/Currency.d.ts +9 -1
- package/extensions/forms/Field/Currency/Currency.js +8 -3
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
- package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
- package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
- package/extensions/forms/Field/SelectCurrency/SelectCurrency.js +275 -0
- package/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
- package/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
- package/extensions/forms/Field/SelectCurrency/index.js +3 -0
- package/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
- 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.d.ts +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Value/Currency/Currency.d.ts +7 -1
- package/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
- package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
- package/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
- package/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
- package/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
- package/extensions/forms/Value/SelectCurrency/index.js +3 -0
- package/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
- package/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
- package/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
- package/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
- package/extensions/forms/Value/index.d.ts +1 -0
- package/extensions/forms/Value/index.js +1 -0
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/constants/allCurrencies.d.ts +1786 -0
- package/extensions/forms/constants/allCurrencies.js +1441 -0
- package/extensions/forms/constants/allCurrencies.js.map +1 -0
- package/extensions/forms/constants/countries.d.ts +4023 -4
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/currencies.d.ts +716 -0
- package/extensions/forms/constants/currencies.js +6 -0
- package/extensions/forms/constants/currencies.js.map +1 -0
- package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
- package/extensions/forms/constants/locales/en-GB.js +5 -0
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +5 -0
- package/extensions/forms/constants/locales/index.d.ts +10 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
- package/extensions/forms/constants/locales/nb-NO.js +5 -0
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
- package/extensions/forms/constants/locales/sv-SE.js +5 -0
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +18 -17
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/types.d.ts +4 -4
- package/extensions/forms/types.js.map +1 -1
- package/package.json +2 -2
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/Translation.js +5 -4
- package/shared/Translation.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 +5 -0
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +5 -0
- package/style/themes/theme-ui/ui-theme-components.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 +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCurrency.js","names":["React","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","currencies","prioritizedCurrencies","useFieldProps","FieldBlock","useTranslation","SelectCurrency","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCurrencyObjectByIso","value","currency","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","required","preparedProps","_objectSpread","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCurrencies","dataRef","langRef","wasFilled","filter","currencyFilter","isLangChange","current","getCurrencyData","sort","window","requestAnimationFrame","handleCurrencyChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","Object","values","some","s","includes","_getCurrencyObjectByI","_getCurrencyObjectByI2","fieldBlockProps","forId","undefined","contentWidth","createElement","_extends","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","no_animation","makeObject","_currency$i18n$lang","translation","en","content","selected_value","arguments","length","sortedCurrencies","_ref6","_ref7","_String","_String$localeCompare","a","a1","b","b1","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","result","_currency$regions","regions","continent","makeCurrencyFilterSet","_currency$regions2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/SelectCurrency.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport currencies, {\n prioritizedCurrencies,\n type CurrencyType,\n type CurrencyLang,\n type CurrencyISO,\n} from '../../constants/currencies'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CurrencyFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CurrencyType }\n\nexport type Props = FieldPropsWithExtraValue<\n CurrencyISO,\n CurrencyType,\n undefined | string\n> & {\n /**\n * Lists only the currencies you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n currencies?: CurrencyFilterSet\n\n /**\n * Use this prop to filter out certain currencies. The function receives the currency object and should return a boolean. Returning `false` will omit the currency.\n */\n filterCurrencies?: (currency: CurrencyType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCurrency(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCurrency\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CurrencyLang\n\n const getCurrencyObjectByIso = useCallback(\n (value: CurrencyType['iso']) => {\n const currency = currencies.find(({ iso }) => value === iso)\n if (currency?.i18n) {\n currency['name'] = currency.i18n[lang]\n }\n return currency\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CurrencyType['iso']) => {\n const currency = getCurrencyObjectByIso(value)\n\n if (currency?.iso) {\n return currency\n }\n },\n [getCurrencyObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n currencies: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n noAnimation,\n autoComplete,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCurrencies,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (currency: CurrencyType) => {\n return currencyFilter(currency, filterCurrencies, ccFilter)\n },\n [ccFilter, filterCurrencies]\n )\n\n /**\n * We do not process the whole currency list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the currency code changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCurrencyData({\n lang,\n filter: !wasFilled.current\n ? (currency) => currency.iso === value\n : filter,\n sort: ccFilter as Extract<CurrencyFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCurrencyChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const currency = getCurrencyObjectByIso(newValue)\n if (currency?.iso) {\n handleChange(currency.iso, currency)\n }\n },\n [getCurrencyObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCurrencyData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CurrencyFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const currency = currencies.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (currency?.iso) {\n setHidden()\n handleChange(currency.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCurrencyObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCurrencyObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-currency', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCurrencyChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete={autoComplete}\n no_animation={noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCurrencyData = {\n lang?: CurrencyLang\n filter?: Props['filterCurrencies']\n sort?: Extract<CurrencyFilterSet, 'Prioritized'>\n makeObject?: (\n currency: CurrencyType,\n lang: string\n ) => {\n selectedKey: string\n selected_value: string\n content: string[]\n }\n}\n\nexport function getCurrencyData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (currency: CurrencyType, lang: string) => {\n const translation = currency.i18n[lang] ?? currency.i18n.en\n const content = [translation, currency.iso]\n return {\n selectedKey: currency.iso,\n selected_value: `${translation} (${currency.iso})`,\n content,\n }\n },\n}: GetCurrencyData = {}) {\n const sortedCurrencies = currencies\n .filter((currency) => {\n if (typeof filter === 'function') {\n return filter(currency)\n }\n\n return !filter\n })\n .sort(({ i18n: a, iso: a1 }, { i18n: b, iso: b1 }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCurrencies.indexOf(a1)\n const indexB = prioritizedCurrencies.indexOf(b1)\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Østkaribisk dollar) is not in the en alphabet\n })\n .map((currency) => makeObject(currency, lang))\n\n if (sortedCurrencies.length === 0) {\n return undefined\n }\n\n return sortedCurrencies\n}\n\nexport function currencyFilter(\n currency: CurrencyType,\n filterCurrencies: (currency: CurrencyType) => boolean,\n ccFilter: CurrencyFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = currency.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = currency.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCurrencies) {\n result = filterCurrencies(currency)\n }\n\n return result\n}\n\nexport function makeCurrencyFilterSet(ccFilter: CurrencyFilterSet) {\n return (currency: CurrencyType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return currency.regions?.includes(ccFilter)\n case 'Europe':\n return currency.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCurrency._supportsSpacingProps = true\nexport default SelectCurrency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACvE,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,SAASC,MAAM,QAAQ,6BAA6B;AACpD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,UAAU,IACfC,qBAAqB,QAIhB,4BAA4B;AACnC,SAASC,aAAa,QAAQ,aAAa;AAE3C,OAAOC,UAAU,MAGV,kBAAkB;AACzB,OAAOC,cAAc,MAAM,4BAA4B;AA0CvD,SAASC,cAAcA,CAACC,KAAY,EAAE;EAAA,IAAAC,YAAA;EACpC,MAAMC,aAAa,GAAGjB,UAAU,CAACI,aAAa,CAAC;EAC/C,MAAMc,iBAAiB,GAAGlB,UAAU,CAACK,iBAAiB,CAAC;EACvD,MAAM;IACJc,KAAK,EAAEC,YAAY;IACnBC,WAAW,EAAEC,kBAAkB;IAC/BC;EACF,CAAC,GAAGV,cAAc,CAAC,CAAC,CAACC,cAAc;EACnC,MAAMU,IAAI,GAAG,CAACP,aAAa,CAACQ,MAAM,IAAInB,MAAM,EAAEoB,KAAK,CACjD,GACF,CAAC,CAAC,CAAC,CAAiB;EAEpB,MAAMC,sBAAsB,GAAG5B,WAAW,CACvC6B,KAA0B,IAAK;IAC9B,MAAMC,QAAQ,GAAGpB,UAAU,CAACqB,IAAI,CAACC,IAAA;MAAA,IAAC;QAAEC;MAAI,CAAC,GAAAD,IAAA;MAAA,OAAKH,KAAK,KAAKI,GAAG;IAAA,EAAC;IAC5D,IAAIH,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEI,IAAI,EAAE;MAClBJ,QAAQ,CAAC,MAAM,CAAC,GAAGA,QAAQ,CAACI,IAAI,CAACT,IAAI,CAAC;IACxC;IACA,OAAOK,QAAQ;EACjB,CAAC,EACD,CAACL,IAAI,CACP,CAAC;EAED,MAAMU,qBAAqB,GAAGnC,WAAW,CACtC6B,KAA0B,IAAK;IAC9B,MAAMC,QAAQ,GAAGF,sBAAsB,CAACC,KAAK,CAAC;IAE9C,IAAIC,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEG,GAAG,EAAE;MACjB,OAAOH,QAAQ;IACjB;EACF,CAAC,EACD,CAACF,sBAAsB,CACzB,CAAC;EAED,MAAMQ,aAAa,GAAGlC,OAAO,CAC3B,OAAO;IACLmC,QAAQ,EAAEb;EACZ,CAAC,CAAC,EACF,CAACA,aAAa,CAChB,CAAC;EAED,MAAMc,aAAoB,GAAAC,aAAA,CAAAA,aAAA;IACxBH;EAAa,GACVpB,KAAK;IACRwB,KAAK,GAAAvB,YAAA,GACHD,KAAK,CAACwB,KAAK,cAAAvB,YAAA,cAAAA,YAAA,GACVE,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAEsB,WAAW,GAAG,SAAS,GAAG,OAAQ;IACxDN;EAAqB,EACtB;EAED,MAAM;IACJO,EAAE;IACFC,IAAI;IACJC,QAAQ;IACRC,SAAS;IACTvB,WAAW,GAAGC,kBAAkB;IAChCH,KAAK,GAAGC,YAAY;IACpBX,UAAU,EAAEoC,QAAQ,GAAG,aAAa;IACpCC,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJpB,KAAK;IACLW,KAAK;IACLU,WAAW;IACXC,YAAY;IACZC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,eAAe;IACfC,WAAW;IACXC;EACF,CAAC,GAAG/C,aAAa,CAAC0B,aAAa,CAAC;EAEhC,MAAMsB,OAAO,GAAGzD,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAM0D,OAAO,GAAG1D,MAAM,CAACsB,IAAI,CAAC;EAC5B,MAAMqC,SAAS,GAAG3D,MAAM,CAAC,KAAK,CAAC;EAE/B,MAAM4D,MAAM,GAAG/D,WAAW,CACvB8B,QAAsB,IAAK;IAC1B,OAAOkC,cAAc,CAAClC,QAAQ,EAAE6B,gBAAgB,EAAEb,QAAQ,CAAC;EAC7D,CAAC,EACD,CAACA,QAAQ,EAAEa,gBAAgB,CAC7B,CAAC;EAUDzD,OAAO,CAAC,MAAM;IACZ,MAAM+D,YAAY,GAAGxC,IAAI,KAAKoC,OAAO,CAACK,OAAO;IAE7C,IAAID,YAAY,IAAI,CAACH,SAAS,CAACI,OAAO,EAAE;MACtCL,OAAO,CAACK,OAAO,GAAGzC,IAAI;MACtBmC,OAAO,CAACM,OAAO,GAAGC,eAAe,CAAC;QAChC1C,IAAI;QACJsC,MAAM,EAAE,CAACD,SAAS,CAACI,OAAO,GACrBpC,QAAQ,IAAKA,QAAQ,CAACG,GAAG,KAAKJ,KAAK,GACpCkC,MAAM;QACVK,IAAI,EAAEtB;MACR,CAAC,CAAC;MAGF,IAAImB,YAAY,IAAIpC,KAAK,IAAI,OAAOwC,MAAM,KAAK,WAAW,EAAE;QAC1Db,WAAW,CAAC,IAAI,CAAC;QACjBa,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACjCd,WAAW,CAAC3B,KAAK,CAAC;QACpB,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACJ,IAAI,EAAEsC,MAAM,EAAEjB,QAAQ,EAAEU,WAAW,EAAE3B,KAAK,CAAC,CAAC;EAEhD,MAAM0C,oBAAoB,GAAGvE,WAAW,CACtCwE,KAAA,IAAiD;IAAA,IAAhD;MAAEC;IAAwC,CAAC,GAAAD,KAAA;IAC1C,MAAME,QAAQ,GAAGD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,WAAW;IAClC,MAAM7C,QAAQ,GAAGF,sBAAsB,CAAC8C,QAAQ,CAAC;IACjD,IAAI5C,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEG,GAAG,EAAE;MACjBsB,YAAY,CAACzB,QAAQ,CAACG,GAAG,EAAEH,QAAQ,CAAC;IACtC;EACF,CAAC,EACD,CAACF,sBAAsB,EAAE2B,YAAY,CACvC,CAAC;EAED,MAAMqB,QAAQ,GAAG5E,WAAW,CAAC,MAAM;IACjC,IAAI,CAAC8D,SAAS,CAACI,OAAO,EAAE;MACtBJ,SAAS,CAACI,OAAO,GAAG,IAAI;MACxBN,OAAO,CAACM,OAAO,GAAGC,eAAe,CAAC;QAChC1C,IAAI,EAAEoC,OAAO,CAACK,OAAO;QACrBH,MAAM;QACNK,IAAI,EAAEtB;MACR,CAAC,CAAC;MACFY,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACZ,QAAQ,EAAEiB,MAAM,EAAEL,WAAW,CAAC,CAAC;EAEnC,MAAMmB,cAAc,GAAG7E,WAAW,CAChC8E,KAAA,IAAoB;IAAA,IAAnB;MAAEC;IAAW,CAAC,GAAAD,KAAA;IACbF,QAAQ,CAAC,CAAC;IACVG,UAAU,CAACnB,OAAO,CAACM,OAAO,CAAC;IAC3Bb,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACuB,QAAQ,EAAEvB,WAAW,CACxB,CAAC;EAED,MAAM2B,aAAa,GAAGhF,WAAW,CAC/BiF,KAAA,IAA+C;IAAA,IAAAC,kBAAA;IAAA,IAA9C;MAAErD,KAAK,EAAEsD,YAAY;MAAEC,SAAS;MAAEC;IAAM,CAAC,GAAAJ,KAAA;IAExC,IAAI,QAAOI,KAAK,aAALA,KAAK,wBAAAH,kBAAA,GAALG,KAAK,CAAEC,WAAW,cAAAJ,kBAAA,uBAAlBA,kBAAA,CAAoBT,IAAI,MAAK,WAAW,EAAE;MACnD,MAAMc,MAAM,GAAGJ,YAAY,CAACK,WAAW,CAAC,CAAC;MACzC,MAAM1D,QAAQ,GAAGpB,UAAU,CAACqB,IAAI,CAAC0D,KAAA;QAAA,IAAC;UAAEvD;QAAK,CAAC,GAAAuD,KAAA;QAAA,OACxCC,MAAM,CAACC,MAAM,CAACzD,IAAI,CAAC,CAAC0D,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACL,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACP,MAAM,CAAC,CAAC;MAAA,CACnE,CAAC;MACD,IAAIzD,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEG,GAAG,EAAE;QACjBmD,SAAS,CAAC,CAAC;QACX7B,YAAY,CAACzB,QAAQ,CAACG,GAAG,CAAC;MAC5B;IACF;EACF,CAAC,EACD,CAACsB,YAAY,CACf,CAAC;EAEDrD,OAAO,CAAC,MAAM;IACZ,IAAIyC,IAAI,IAAIC,QAAQ,EAAE;MAAA,IAAAmD,qBAAA,EAAAC,sBAAA;MACpBvC,eAAe,EAAAsC,qBAAA,GACbnE,sBAAsB,CAACC,KAAK,CAAC,cAAAkE,qBAAA,wBAAAC,sBAAA,GAA7BD,qBAAA,CAA+B7D,IAAI,cAAA8D,sBAAA,uBAAnCA,sBAAA,CAAsCnC,OAAO,CAACK,OAAO,CACvD,CAAC;IACH;EACF,CAAC,EAAE,CAACtC,sBAAsB,EAAEgB,QAAQ,EAAED,IAAI,EAAEc,eAAe,EAAE5B,KAAK,CAAC,CAAC;EAEpE,MAAMoE,eAAgC,GAAA1D,aAAA;IACpC2D,KAAK,EAAExD,EAAE;IACTG,SAAS,EAAEzC,UAAU,CAAC,iCAAiC,EAAEyC,SAAS,CAAC;IACnEzB,KAAK;IACLoB,KAAK,EACHA,KAAK,KAAK,SAAS,IAAIrB,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAEsB,WAAW,GACjDD,KAAK,GACL2D,SAAS;IACfC,YAAY,EAAE5D,KAAK,KAAK,KAAK,GAAGA,KAAK,GAAG2D;EAAS,GAC9C1F,gBAAgB,CAACO,KAAK,CAAC,CAC3B;EAED,OACEjB,KAAA,CAAAsG,aAAA,CAACxF,UAAU,EAAKoF,eAAe,EAC7BlG,KAAA,CAAAsG,aAAA,CAAC7F,YAAY,EAAA8F,QAAA;IACX5D,EAAE,EAAEA,EAAG;IACPpB,WAAW,EAAEA,WAAY;IACzBiF,UAAU,EAAE,KAAM;IAClB9B,IAAI,EAAEb,OAAO,CAACM,OAAQ;IACtBrC,KAAK,EAAE,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,IAAK;IAChDmB,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXuD,OAAO,EAAE5B,QAAS;IAClB6B,QAAQ,EAAE5B,cAAe;IACzB6B,OAAO,EAAEpD,UAAW;IACpBqD,SAAS,EAAEpC,oBAAqB;IAChCqC,OAAO,EAAE5B,aAAc;IACvB6B,OAAO;IACPC,MAAM,EAAE/D,QAAQ,GAAG,OAAO,GAAGoD,SAAU;IACvCY,kBAAkB;IAClBC,cAAc;IACd7D,YAAY,EAAEA,YAAa;IAC3B8D,YAAY,EAAE/D;EAAY,GACtBE,cAAc,CACnB,CACS,CAAC;AAEjB;AAgBA,OAAO,SAASe,eAAeA,CAAA,EAaN;EAAA,IAbO;IAC9B1C,IAAI,GAAG,IAAI;IACXsC,MAAM,GAAG,IAAI;IACbK,IAAI,GAAG,IAAI;IACX8C,UAAU,GAAGA,CAACpF,QAAsB,EAAEL,IAAY,KAAK;MAAA,IAAA0F,mBAAA;MACrD,MAAMC,WAAW,IAAAD,mBAAA,GAAGrF,QAAQ,CAACI,IAAI,CAACT,IAAI,CAAC,cAAA0F,mBAAA,cAAAA,mBAAA,GAAIrF,QAAQ,CAACI,IAAI,CAACmF,EAAE;MAC3D,MAAMC,OAAO,GAAG,CAACF,WAAW,EAAEtF,QAAQ,CAACG,GAAG,CAAC;MAC3C,OAAO;QACL0C,WAAW,EAAE7C,QAAQ,CAACG,GAAG;QACzBsF,cAAc,EAAE,GAAGH,WAAW,KAAKtF,QAAQ,CAACG,GAAG,GAAG;QAClDqF;MACF,CAAC;IACH;EACe,CAAC,GAAAE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAArB,SAAA,GAAAqB,SAAA,MAAG,CAAC,CAAC;EACrB,MAAME,gBAAgB,GAAGhH,UAAU,CAChCqD,MAAM,CAAEjC,QAAQ,IAAK;IACpB,IAAI,OAAOiC,MAAM,KAAK,UAAU,EAAE;MAChC,OAAOA,MAAM,CAACjC,QAAQ,CAAC;IACzB;IAEA,OAAO,CAACiC,MAAM;EAChB,CAAC,CAAC,CACDK,IAAI,CAAC,CAAAuD,KAAA,EAAAC,KAAA,KAAgD;IAAA,IAAAC,OAAA,EAAAC,qBAAA;IAAA,IAA/C;MAAE5F,IAAI,EAAE6F,CAAC;MAAE9F,GAAG,EAAE+F;IAAG,CAAC,GAAAL,KAAA;IAAA,IAAE;MAAEzF,IAAI,EAAE+F,CAAC;MAAEhG,GAAG,EAAEiG;IAAG,CAAC,GAAAN,KAAA;IAC/C,IAAIxD,IAAI,KAAK,aAAa,EAAE;MAC1B,MAAM+D,MAAM,GAAGxH,qBAAqB,CAACyH,OAAO,CAACJ,EAAE,CAAC;MAChD,MAAMK,MAAM,GAAG1H,qBAAqB,CAACyH,OAAO,CAACF,EAAE,CAAC;MAEhD,MAAMI,SAAS,GAAGH,MAAM,KAAK,CAAC,CAAC;MAC/B,MAAMI,SAAS,GAAGF,MAAM,KAAK,CAAC,CAAC;MAE/B,IAAIC,SAAS,IAAIC,SAAS,EAAE;QAC1B,OAAOJ,MAAM,GAAGE,MAAM;MACxB,CAAC,MAAM,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAC,CAAC;MACX,CAAC,MAAM,IAAIC,SAAS,EAAE;QACpB,OAAO,CAAC;MACV;IACF;IAEA,QAAAV,OAAA,GAAOW,MAAM,CAACT,CAAC,CAACtG,IAAI,CAAC,CAAC,cAAAoG,OAAA,wBAAAC,qBAAA,GAAfD,OAAA,CAAiBY,aAAa,cAAAX,qBAAA,uBAA9BA,qBAAA,CAAAY,IAAA,CAAAb,OAAA,EAAiCI,CAAC,CAACxG,IAAI,CAAC,EAAE,IAAI,CAAC;EACxD,CAAC,CAAC,CACDkH,GAAG,CAAE7G,QAAQ,IAAKoF,UAAU,CAACpF,QAAQ,EAAEL,IAAI,CAAC,CAAC;EAEhD,IAAIiG,gBAAgB,CAACD,MAAM,KAAK,CAAC,EAAE;IACjC,OAAOtB,SAAS;EAClB;EAEA,OAAOuB,gBAAgB;AACzB;AAEA,OAAO,SAAS1D,cAAcA,CAC5BlC,QAAsB,EACtB6B,gBAAqD,EACrDb,QAA2B,EAC3B;EACA,IAAI8F,MAAM,GAAG,IAAI;EAEjB,IAAI9F,QAAQ,KAAK,aAAa,EAAE;IAC9B,QAAQA,QAAQ;MACd,KAAK,aAAa;MAClB,KAAK,QAAQ;QAAE;UAAA,IAAA+F,iBAAA;UACbD,MAAM,IAAAC,iBAAA,GAAG/G,QAAQ,CAACgH,OAAO,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAkB/C,QAAQ,CAAChD,QAAQ,CAAC;UAC7C;QACF;MACA,KAAK,QAAQ;QAAE;UACb8F,MAAM,GAAG9G,QAAQ,CAACiH,SAAS,CAACjD,QAAQ,CAAChD,QAAQ,CAAC;UAC9C;QACF;IACF;EACF;EAEA,IAAI8F,MAAM,IAAIjF,gBAAgB,EAAE;IAC9BiF,MAAM,GAAGjF,gBAAgB,CAAC7B,QAAQ,CAAC;EACrC;EAEA,OAAO8G,MAAM;AACf;AAEA,OAAO,SAASI,qBAAqBA,CAAClG,QAA2B,EAAE;EACjE,OAAQhB,QAAsB,IAAK;IAAA,IAAAmH,kBAAA;IACjC,QAAQnG,QAAQ;MACd,KAAK,aAAa;MAClB,KAAK,QAAQ;QACX,QAAAmG,kBAAA,GAAOnH,QAAQ,CAACgH,OAAO,cAAAG,kBAAA,uBAAhBA,kBAAA,CAAkBnD,QAAQ,CAAChD,QAAQ,CAAC;MAC7C,KAAK,QAAQ;QACX,OAAOhB,QAAQ,CAACiH,SAAS,CAACjD,QAAQ,CAAChD,QAAQ,CAAC;IAChD;IACA,OAAO,IAAI;EACb,CAAC;AACH;AAEA/B,cAAc,CAACmI,qBAAqB,GAAG,IAAI;AAC3C,eAAenI,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { getFieldEventsWithTypes } from '../FieldDocs';
|
|
5
|
+
import { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs';
|
|
6
|
+
export const SelectCurrencyProperties = {
|
|
7
|
+
currencies: {
|
|
8
|
+
doc: 'List only a certain set of currencies: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all currencies [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCurrency/#filter-or-prioritize-currency-listing)). Defaults to `Prioritized`.',
|
|
9
|
+
type: 'string',
|
|
10
|
+
status: 'optional'
|
|
11
|
+
},
|
|
12
|
+
filterCurrencies: {
|
|
13
|
+
doc: 'Use this prop to filter out certain currencies. The function receives the currency object and should return a boolean. Returning `false` will omit the currency.',
|
|
14
|
+
type: 'function',
|
|
15
|
+
status: 'optional'
|
|
16
|
+
},
|
|
17
|
+
size: _objectSpread(_objectSpread({}, autocompleteProperties.size), {}, {
|
|
18
|
+
doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`
|
|
19
|
+
})
|
|
20
|
+
};
|
|
21
|
+
export const SelectCurrencyGeneralEvents = getFieldEventsWithTypes({
|
|
22
|
+
type: 'string',
|
|
23
|
+
optional: true
|
|
24
|
+
}, {
|
|
25
|
+
type: 'object',
|
|
26
|
+
optional: true
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=SelectCurrencyDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCurrencyDocs.js","names":["getFieldEventsWithTypes","autocompleteProperties","SelectCurrencyProperties","currencies","doc","type","status","filterCurrencies","size","_objectSpread","SelectCurrencyGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\nimport { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs'\n\nexport const SelectCurrencyProperties: PropertiesTableProps = {\n currencies: {\n doc: 'List only a certain set of currencies: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all currencies [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCurrency/#filter-or-prioritize-currency-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCurrencies: {\n doc: 'Use this prop to filter out certain currencies. The function receives the currency object and should return a boolean. Returning `false` will omit the currency.',\n type: 'function',\n status: 'optional',\n },\n size: {\n ...autocompleteProperties.size,\n doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n}\n\nexport const SelectCurrencyGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object', optional: true }\n)\n"],"mappings":";;;AACA,SAASA,uBAAuB,QAAQ,cAAc;AACtD,SAASC,sBAAsB,QAAQ,sDAAsD;AAE7F,OAAO,MAAMC,wBAA8C,GAAG;EAC5DC,UAAU,EAAE;IACVC,GAAG,EAAE,0PAA0P;IAC/PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,kKAAkK;IACvKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCR,sBAAsB,CAACO,IAAI;IAC9BJ,GAAG,EAAE,GAAGH,sBAAsB,CAACO,IAAI,CAACJ,GAAG;EAAwG;AAEnJ,CAAC;AAED,OAAO,MAAMM,2BAA2B,GAAGV,uBAAuB,CAChE;EAAEK,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEN,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CACnC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/index.ts"],"sourcesContent":["export { default } from './SelectCurrency'\nexport * from './SelectCurrency'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,kBAAkB;AAC1C,cAAc,kBAAkB","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ export { default as Selection } from './Selection';
|
|
|
18
18
|
export { default as ArraySelection } from './ArraySelection';
|
|
19
19
|
export { default as Option } from './Option';
|
|
20
20
|
export { default as SelectCountry } from './SelectCountry';
|
|
21
|
+
export { default as SelectCurrency } from './SelectCurrency';
|
|
21
22
|
export { default as BankAccountNumber } from './BankAccountNumber';
|
|
22
23
|
export { default as Expiry } from './Expiry';
|
|
23
24
|
export { default as Password } from './Password';
|
|
@@ -18,6 +18,7 @@ export { default as Selection } from './Selection';
|
|
|
18
18
|
export { default as ArraySelection } from './ArraySelection';
|
|
19
19
|
export { default as Option } from './Option';
|
|
20
20
|
export { default as SelectCountry } from './SelectCountry';
|
|
21
|
+
export { default as SelectCurrency } from './SelectCurrency';
|
|
21
22
|
export { default as BankAccountNumber } from './BankAccountNumber';
|
|
22
23
|
export { default as Expiry } from './Expiry';
|
|
23
24
|
export { default as Password } from './Password';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","Provider","Composition","String","Number","Toggle","Indeterminate","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","BankAccountNumber","Expiry","Password","Slider","Upload"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Indeterminate } from './Indeterminate'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\nexport { default as Slider } from './Slider'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,OAAO,QAAQ,WAAW;AAC9C,SAASR,OAAO,IAAIS,QAAQ,QAAQ,YAAY;AAChD,SAAST,OAAO,IAAIU,IAAI,QAAQ,QAAQ;AACxC,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,kBAAkB,QAAQ,sBAAsB;AACpE,SAASf,OAAO,IAAIgB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAShB,OAAO,IAAIiB,SAAS,QAAQ,aAAa;AAClD,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,MAAM,QAAQ,UAAU;AAC5C,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,iBAAiB;AAC1D,SAASpB,OAAO,IAAIqB,iBAAiB,QAAQ,qBAAqB;AAClE,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","Provider","Composition","String","Number","Toggle","Indeterminate","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","SelectCurrency","BankAccountNumber","Expiry","Password","Slider","Upload"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Indeterminate } from './Indeterminate'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as SelectCurrency } from './SelectCurrency'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\nexport { default as Slider } from './Slider'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,OAAO,QAAQ,WAAW;AAC9C,SAASR,OAAO,IAAIS,QAAQ,QAAQ,YAAY;AAChD,SAAST,OAAO,IAAIU,IAAI,QAAQ,QAAQ;AACxC,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,kBAAkB,QAAQ,sBAAsB;AACpE,SAASf,OAAO,IAAIgB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAShB,OAAO,IAAIiB,SAAS,QAAQ,aAAa;AAClD,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,MAAM,QAAQ,UAAU;AAC5C,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,iBAAiB;AAC1D,SAASpB,OAAO,IAAIqB,cAAc,QAAQ,kBAAkB;AAC5D,SAASrB,OAAO,IAAIsB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAStB,OAAO,IAAIuB,MAAM,QAAQ,UAAU;AAC5C,SAASvB,OAAO,IAAIwB,QAAQ,QAAQ,YAAY;AAChD,SAASxB,OAAO,IAAIyB,MAAM,QAAQ,UAAU;AAC5C,SAASzB,OAAO,IAAI0B,MAAM,QAAQ,UAAU","ignoreList":[]}
|
|
@@ -50,7 +50,7 @@ export type SharedFieldBlockProps = {
|
|
|
50
50
|
*/
|
|
51
51
|
help?: HelpProps;
|
|
52
52
|
};
|
|
53
|
-
export type Props = SharedFieldBlockProps & Pick<FieldProps
|
|
53
|
+
export type Props<Value = unknown> = SharedFieldBlockProps & Pick<FieldProps<Value>, keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'> & {
|
|
54
54
|
/** The id to link a element with */
|
|
55
55
|
forId?: string;
|
|
56
56
|
/** Use true if you have more than one form element */
|
|
@@ -75,7 +75,7 @@ export type Props = SharedFieldBlockProps & Pick<FieldProps, keyof ComponentProp
|
|
|
75
75
|
required?: boolean;
|
|
76
76
|
children?: React.ReactNode;
|
|
77
77
|
} & React.HTMLAttributes<HTMLDivElement>;
|
|
78
|
-
declare function FieldBlock(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
declare function FieldBlock<Value = unknown>(props: Props<Value>): import("react/jsx-runtime").JSX.Element;
|
|
79
79
|
declare namespace FieldBlock {
|
|
80
80
|
var _supportsSpacingProps: boolean;
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props = SharedFieldBlockProps &\n Pick<\n FieldProps,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { Props as NumberValueProps } from '../Number';
|
|
2
|
-
|
|
2
|
+
import type { CurrencyISO } from '../../constants/currencies';
|
|
3
|
+
export type Props = NumberValueProps & {
|
|
4
|
+
/**
|
|
5
|
+
* The currency of the component.
|
|
6
|
+
*/
|
|
7
|
+
currency?: CurrencyISO | true;
|
|
8
|
+
};
|
|
3
9
|
declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
4
10
|
declare namespace Currency {
|
|
5
11
|
var _supportsSpacingProps: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Currency.js","names":["React","CURRENCY","NumberValue","Currency","props","_props$currency","numberProps","_objectSpread","currency","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberValue, { Props as NumberValueProps } from '../Number'\n\nexport type Props = NumberValueProps\n\nfunction Currency(props: Props) {\n const numberProps: Props = {\n ...props,\n currency: props.currency ?? CURRENCY,\n }\n\n return <NumberValue {...numberProps} />\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;
|
|
1
|
+
{"version":3,"file":"Currency.js","names":["React","CURRENCY","NumberValue","Currency","props","_props$currency","numberProps","_objectSpread","currency","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberValue, { Props as NumberValueProps } from '../Number'\nimport type { CurrencyISO } from '../../constants/currencies'\n\nexport type Props = NumberValueProps & {\n /**\n * The currency of the component.\n */\n currency?: CurrencyISO | true\n}\n\nfunction Currency(props: Props) {\n const numberProps: Props = {\n ...props,\n currency: props.currency ?? CURRENCY,\n }\n\n return <NumberValue {...numberProps} />\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAUlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA;EAC9B,MAAMC,WAAkB,GAAAC,aAAA,CAAAA,aAAA,KACnBH,KAAK;IACRI,QAAQ,GAAAH,eAAA,GAAED,KAAK,CAACI,QAAQ,cAAAH,eAAA,cAAAA,eAAA,GAAIJ;EAAQ,EACrC;EAED,OAAOD,KAAA,CAAAS,aAAA,CAACP,WAAW,EAAKI,WAAc,CAAC;AACzC;AAEAH,QAAQ,CAACO,qBAAqB,GAAG,IAAI;AACrC,eAAeP,QAAQ","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ValueProps } from '../../types';
|
|
2
|
-
|
|
2
|
+
import type { CountryISO } from '../../constants/countries';
|
|
3
|
+
export type Props = ValueProps<CountryISO>;
|
|
3
4
|
declare function SelectCountry(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
4
5
|
declare namespace SelectCountry {
|
|
5
6
|
var useCountry: typeof import("./useCountry").default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCountry.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCountry","SelectCountry","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCountryNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCountry from './useCountry'\n\nexport type Props = ValueProps<
|
|
1
|
+
{"version":3,"file":"SelectCountry.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCountry","SelectCountry","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCountryNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCountry from './useCountry'\nimport type { CountryISO } from '../../constants/countries'\n\nexport type Props = ValueProps<CountryISO>\n\nfunction SelectCountry(props: Props) {\n const translations = useTranslation().SelectCountry\n const {\n value,\n className,\n label = translations.label,\n ...rest\n } = useValueProps(props)\n\n const { getCountryNameByIso } = useCountry()\n\n return (\n <ValueBlock\n label={label}\n className={classnames('dnb-forms-value-select-country', className)}\n {...rest}\n >\n {getCountryNameByIso(value)}\n </ValueBlock>\n )\n}\n\nSelectCountry.useCountry = useCountry\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,EAAEC,aAAa,QAAQ,aAAa;AAE3D,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,UAAU,MAAM,cAAc;AAKrC,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACI,aAAa;EACnD,MAAAG,cAAA,GAKIN,aAAa,CAACI,KAAK,CAAC;IALlB;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK,GAAGJ,YAAY,CAACI;IAEvB,CAAC,GAAAH,cAAA;IADII,IAAI,GAAAC,wBAAA,CAAAL,cAAA,EAAAM,SAAA;EAGT,MAAM;IAAEC;EAAoB,CAAC,GAAGX,UAAU,CAAC,CAAC;EAE5C,OACEL,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTN,KAAK,EAAEA,KAAM;IACbD,SAAS,EAAEV,UAAU,CAAC,gCAAgC,EAAEU,SAAS;EAAE,GAC/DE,IAAI,GAEPG,mBAAmB,CAACN,KAAK,CAChB,CAAC;AAEjB;AAEAJ,aAAa,CAACD,UAAU,GAAGA,UAAU;AACrCC,aAAa,CAACa,qBAAqB,GAAG,IAAI;AAC1C,eAAeb,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValueProps } from '../../types';
|
|
2
|
+
import type { CurrencyISO } from '../../constants/currencies';
|
|
3
|
+
export type Props = ValueProps<CurrencyISO>;
|
|
4
|
+
declare function SelectCurrency(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare namespace SelectCurrency {
|
|
6
|
+
var useCurrency: typeof import("./useCurrency").default;
|
|
7
|
+
var _supportsSpacingProps: boolean;
|
|
8
|
+
}
|
|
9
|
+
export default SelectCurrency;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
const _excluded = ["value", "className", "label"];
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { useTranslation, useValueProps } from '../../hooks';
|
|
7
|
+
import ValueBlock from '../../ValueBlock';
|
|
8
|
+
import useCurrency from './useCurrency';
|
|
9
|
+
function SelectCurrency(props) {
|
|
10
|
+
const translations = useTranslation().SelectCurrency;
|
|
11
|
+
const _useValueProps = useValueProps(props),
|
|
12
|
+
{
|
|
13
|
+
value,
|
|
14
|
+
className,
|
|
15
|
+
label = translations.label
|
|
16
|
+
} = _useValueProps,
|
|
17
|
+
rest = _objectWithoutProperties(_useValueProps, _excluded);
|
|
18
|
+
const {
|
|
19
|
+
getCurrencyDisplayNameByIso
|
|
20
|
+
} = useCurrency();
|
|
21
|
+
return React.createElement(ValueBlock, _extends({
|
|
22
|
+
label: label,
|
|
23
|
+
className: classnames('dnb-forms-value-select-currency', className)
|
|
24
|
+
}, rest), getCurrencyDisplayNameByIso(value));
|
|
25
|
+
}
|
|
26
|
+
SelectCurrency.useCurrency = useCurrency;
|
|
27
|
+
SelectCurrency._supportsSpacingProps = true;
|
|
28
|
+
export default SelectCurrency;
|
|
29
|
+
//# sourceMappingURL=SelectCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCurrency.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCurrency","SelectCurrency","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCurrencyDisplayNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCurrency/SelectCurrency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCurrency from './useCurrency'\nimport type { CurrencyISO } from '../../constants/currencies'\n\nexport type Props = ValueProps<CurrencyISO>\n\nfunction SelectCurrency(props: Props) {\n const translations = useTranslation().SelectCurrency\n const {\n value,\n className,\n label = translations.label,\n ...rest\n } = useValueProps(props)\n\n const { getCurrencyDisplayNameByIso } = useCurrency()\n\n return (\n <ValueBlock\n label={label}\n className={classnames('dnb-forms-value-select-currency', className)}\n {...rest}\n >\n {getCurrencyDisplayNameByIso(value)}\n </ValueBlock>\n )\n}\n\nSelectCurrency.useCurrency = useCurrency\nSelectCurrency._supportsSpacingProps = true\nexport default SelectCurrency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,EAAEC,aAAa,QAAQ,aAAa;AAE3D,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,WAAW,MAAM,eAAe;AAKvC,SAASC,cAAcA,CAACC,KAAY,EAAE;EACpC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACI,cAAc;EACpD,MAAAG,cAAA,GAKIN,aAAa,CAACI,KAAK,CAAC;IALlB;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK,GAAGJ,YAAY,CAACI;IAEvB,CAAC,GAAAH,cAAA;IADII,IAAI,GAAAC,wBAAA,CAAAL,cAAA,EAAAM,SAAA;EAGT,MAAM;IAAEC;EAA4B,CAAC,GAAGX,WAAW,CAAC,CAAC;EAErD,OACEL,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTN,KAAK,EAAEA,KAAM;IACbD,SAAS,EAAEV,UAAU,CAAC,iCAAiC,EAAEU,SAAS;EAAE,GAChEE,IAAI,GAEPG,2BAA2B,CAACN,KAAK,CACxB,CAAC;AAEjB;AAEAJ,cAAc,CAACD,WAAW,GAAGA,WAAW;AACxCC,cAAc,CAACa,qBAAqB,GAAG,IAAI;AAC3C,eAAeb,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Value/SelectCurrency/index.ts"],"sourcesContent":["export { default } from './SelectCurrency'\nexport * from './SelectCurrency'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,kBAAkB;AAC1C,cAAc,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useContext } from 'react';
|
|
4
|
+
import SharedContext from '../../../../shared/Context';
|
|
5
|
+
import { getCurrencyData } from '../../Field/SelectCurrency';
|
|
6
|
+
export default function useCurrency() {
|
|
7
|
+
const {
|
|
8
|
+
locale
|
|
9
|
+
} = useContext(SharedContext);
|
|
10
|
+
const getCurrencyDisplayNameByIso = useCallback(iso => {
|
|
11
|
+
if (!iso) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const lang = locale === null || locale === void 0 ? void 0 : locale.split('-')[0];
|
|
15
|
+
return getCurrencyData({
|
|
16
|
+
lang,
|
|
17
|
+
filter: currency => {
|
|
18
|
+
return currency.iso === iso;
|
|
19
|
+
}
|
|
20
|
+
}).at(0).selected_value;
|
|
21
|
+
}, [locale]);
|
|
22
|
+
return {
|
|
23
|
+
getCurrencyDisplayNameByIso
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCurrency.js","names":["useCallback","useContext","SharedContext","getCurrencyData","useCurrency","locale","getCurrencyDisplayNameByIso","iso","lang","split","filter","currency","at","selected_value"],"sources":["../../../../../../src/extensions/forms/Value/SelectCurrency/useCurrency.ts"],"sourcesContent":["import { useCallback, useContext } from 'react'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencyData } from '../../Field/SelectCurrency'\nimport { CurrencyLang, CurrencyType } from '../../constants/currencies'\n\nexport default function useCurrency() {\n const { locale } = useContext(SharedContext)\n\n const getCurrencyDisplayNameByIso = useCallback(\n (iso: CurrencyType['iso']) => {\n if (!iso) {\n return null\n }\n\n const lang = locale?.split('-')[0] as CurrencyLang\n return getCurrencyData({\n lang,\n filter: (currency) => {\n return currency.iso === iso\n },\n }).at(0).selected_value\n },\n [locale]\n )\n\n return { getCurrencyDisplayNameByIso }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,QAAQ,OAAO;AAC/C,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,eAAe,QAAQ,4BAA4B;AAG5D,eAAe,SAASC,WAAWA,CAAA,EAAG;EACpC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,UAAU,CAACC,aAAa,CAAC;EAE5C,MAAMI,2BAA2B,GAAGN,WAAW,CAC5CO,GAAwB,IAAK;IAC5B,IAAI,CAACA,GAAG,EAAE;MACR,OAAO,IAAI;IACb;IAEA,MAAMC,IAAI,GAAGH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAiB;IAClD,OAAON,eAAe,CAAC;MACrBK,IAAI;MACJE,MAAM,EAAGC,QAAQ,IAAK;QACpB,OAAOA,QAAQ,CAACJ,GAAG,KAAKA,GAAG;MAC7B;IACF,CAAC,CAAC,CAACK,EAAE,CAAC,CAAC,CAAC,CAACC,cAAc;EACzB,CAAC,EACD,CAACR,MAAM,CACT,CAAC;EAED,OAAO;IAAEC;EAA4B,CAAC;AACxC","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ export { default as PhoneNumber } from './PhoneNumber';
|
|
|
15
15
|
export { default as BankAccountNumber } from './BankAccountNumber';
|
|
16
16
|
export { default as OrganizationNumber } from './OrganizationNumber';
|
|
17
17
|
export { default as SelectCountry } from './SelectCountry';
|
|
18
|
+
export { default as SelectCurrency } from './SelectCurrency';
|
|
18
19
|
export { default as ArraySelection } from './ArraySelection';
|
|
19
20
|
export { default as Selection } from './Selection';
|
|
20
21
|
export { default as Upload } from './Upload';
|
|
@@ -15,6 +15,7 @@ export { default as PhoneNumber } from './PhoneNumber';
|
|
|
15
15
|
export { default as BankAccountNumber } from './BankAccountNumber';
|
|
16
16
|
export { default as OrganizationNumber } from './OrganizationNumber';
|
|
17
17
|
export { default as SelectCountry } from './SelectCountry';
|
|
18
|
+
export { default as SelectCurrency } from './SelectCurrency';
|
|
18
19
|
export { default as ArraySelection } from './ArraySelection';
|
|
19
20
|
export { default as Selection } from './Selection';
|
|
20
21
|
export { default as Upload } from './Upload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","Provider","SummaryList","Composition","String","Number","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PostalCodeAndCity","PhoneNumber","BankAccountNumber","OrganizationNumber","SelectCountry","ArraySelection","Selection","Upload"],"sources":["../../../../../src/extensions/forms/Value/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as SummaryList } from './SummaryList'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Selection } from './Selection'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,WAAW,QAAQ,eAAe;AACtD,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,OAAO,QAAQ,WAAW;AAC9C,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,QAAQ,QAAQ,YAAY;AAChD,SAASR,OAAO,IAAIS,IAAI,QAAQ,QAAQ;AACxC,SAAST,OAAO,IAAIU,KAAK,QAAQ,SAAS;AAC1C,SAASV,OAAO,IAAIW,IAAI,QAAQ,QAAQ;AACxC,SAASX,OAAO,IAAIY,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASZ,OAAO,IAAIa,iBAAiB,QAAQ,qBAAqB;AAClE,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,iBAAiB,QAAQ,qBAAqB;AAClE,SAASf,OAAO,IAAIgB,kBAAkB,QAAQ,sBAAsB;AACpE,SAAShB,OAAO,IAAIiB,aAAa,QAAQ,iBAAiB;AAC1D,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,SAAS,QAAQ,aAAa;AAClD,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","Provider","SummaryList","Composition","String","Number","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PostalCodeAndCity","PhoneNumber","BankAccountNumber","OrganizationNumber","SelectCountry","SelectCurrency","ArraySelection","Selection","Upload"],"sources":["../../../../../src/extensions/forms/Value/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as SummaryList } from './SummaryList'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as SelectCurrency } from './SelectCurrency'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Selection } from './Selection'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,WAAW,QAAQ,eAAe;AACtD,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,OAAO,QAAQ,WAAW;AAC9C,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,QAAQ,QAAQ,YAAY;AAChD,SAASR,OAAO,IAAIS,IAAI,QAAQ,QAAQ;AACxC,SAAST,OAAO,IAAIU,KAAK,QAAQ,SAAS;AAC1C,SAASV,OAAO,IAAIW,IAAI,QAAQ,QAAQ;AACxC,SAASX,OAAO,IAAIY,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASZ,OAAO,IAAIa,iBAAiB,QAAQ,qBAAqB;AAClE,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,iBAAiB,QAAQ,qBAAqB;AAClE,SAASf,OAAO,IAAIgB,kBAAkB,QAAQ,sBAAsB;AACpE,SAAShB,OAAO,IAAIiB,aAAa,QAAQ,iBAAiB;AAC1D,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,cAAc,QAAQ,kBAAkB;AAC5D,SAASnB,OAAO,IAAIoB,SAAS,QAAQ,aAAa;AAClD,SAASpB,OAAO,IAAIqB,MAAM,QAAQ,UAAU","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ export function DisplaySteps(_ref) {
|
|
|
19
19
|
activeIndexRef,
|
|
20
20
|
stepsRef,
|
|
21
21
|
updateTitlesRef,
|
|
22
|
+
hasErrorInOtherStepRef,
|
|
22
23
|
hasInvalidStepsState
|
|
23
24
|
} = useContext(WizardContext) || {};
|
|
24
25
|
updateTitlesRef.current = () => {
|
|
@@ -27,6 +28,9 @@ export function DisplaySteps(_ref) {
|
|
|
27
28
|
const translations = useTranslation();
|
|
28
29
|
const sidebar_id = variant === 'drawer' && !sidebarId ? undefined : sidebarId !== null && sidebarId !== void 0 ? sidebarId : id;
|
|
29
30
|
const getTriggerStatus = useCallback(() => {
|
|
31
|
+
if (!hasErrorInOtherStepRef.current) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
30
34
|
if (hasInvalidStepsState(['error'])) {
|
|
31
35
|
return {
|
|
32
36
|
status: translations.Step.stepHasError,
|