@dnb/eufemia 10.16.0 → 10.18.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 +54 -0
- package/cjs/components/anchor/Anchor.js +9 -5
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/anchor/style/anchor-mixins.scss +0 -11
- package/cjs/components/anchor/style/dnb-anchor.css +0 -16
- package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
- package/cjs/components/autocomplete/Autocomplete.js +2 -2
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/button/style/dnb-button.css +13 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +16 -0
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
- package/cjs/components/button/style/themes/dnb-button-theme-ui.css +12 -1
- package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
- package/cjs/components/date-picker/DatePicker.d.ts +14 -1
- package/cjs/components/date-picker/DatePicker.js +0 -1
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalc.js +2 -1
- package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerInput.js +9 -2
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +3 -2
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/flex/Container.js +15 -2
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/export.d.ts +1 -0
- package/cjs/components/flex/export.js +7 -0
- package/cjs/components/flex/export.js.map +1 -1
- package/cjs/components/flex/utils.d.ts +1 -1
- package/cjs/components/flex/utils.js +11 -1
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/flex/withChildren.d.ts +6 -0
- package/cjs/components/flex/withChildren.js +13 -0
- package/cjs/components/flex/withChildren.js.map +1 -0
- package/cjs/components/input/Input.js +3 -3
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/input/style/themes/dnb-input-theme-ui.css +2 -0
- package/cjs/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
- package/cjs/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
- package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +13 -8
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMask.d.ts +10 -2
- package/cjs/components/input-masked/MultiInputMask.js +41 -14
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
- package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/cjs/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
- package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/cjs/components/number-format/NumberFormat.js +1 -1
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/textarea/style/dnb-textarea.css +5 -0
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +4 -0
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
- package/cjs/components/visually-hidden/VisuallyHidden.js +1 -1
- package/cjs/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +22 -4
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +14 -14
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
- package/cjs/extensions/forms/Field/Currency/Currency.d.ts +1 -5
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +3 -1
- package/cjs/extensions/forms/Field/Date/Date.js +47 -10
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +20 -10
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.d.ts +5 -1
- package/cjs/extensions/forms/Field/Number/Number.js +109 -30
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.css +192 -0
- package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
- package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -10
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +7 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +4 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +0 -1
- package/cjs/extensions/forms/Field/String/String.js +23 -9
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +0 -4
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -26
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -9
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -11
- package/cjs/extensions/forms/Form/Handler/Handler.js +1 -0
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/{Visibility → Form/Visibility}/Visibility.d.ts +5 -2
- package/cjs/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +7 -2
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
- package/cjs/extensions/forms/Form/Visibility/index.js.map +1 -0
- package/cjs/extensions/forms/Form/hooks/useData.d.ts +10 -0
- package/cjs/extensions/forms/Form/hooks/useData.js +36 -0
- package/cjs/extensions/forms/Form/hooks/useData.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/index.js +14 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +0 -4
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +26 -33
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useId.d.ts +1 -0
- package/cjs/extensions/forms/hooks/useId.js +18 -0
- package/cjs/extensions/forms/hooks/useId.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +6 -1
- package/cjs/extensions/forms/index.js +5 -8
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +214 -11
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +16 -18
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
- package/cjs/extensions/forms/utils/TestElement/TestElement.js +1 -0
- package/cjs/extensions/forms/utils/TestElement/TestElement.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/helpers/EventEmitter.d.ts +5 -0
- package/cjs/shared/helpers/EventEmitter.js.map +1 -1
- package/cjs/shared/helpers/useEventEmitter.d.ts +2 -0
- package/cjs/shared/helpers/useEventEmitter.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +15 -0
- package/cjs/shared/helpers/useSharedState.js +71 -0
- package/cjs/shared/helpers/useSharedState.js.map +1 -0
- package/cjs/style/core/utilities.scss +1 -2
- package/cjs/style/dnb-ui-components.css +232 -27
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-extensions.css +214 -11
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +214 -11
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-forms.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +498 -44
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +230 -11
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +230 -12
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +541 -40
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +289 -11
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +289 -12
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +496 -44
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +9 -5
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +230 -11
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +230 -12
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +2 -0
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +8 -10
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/anchor/Anchor.js +9 -5
- package/components/anchor/Anchor.js.map +1 -1
- package/components/anchor/style/anchor-mixins.scss +0 -11
- package/components/anchor/style/dnb-anchor.css +0 -16
- package/components/anchor/style/dnb-anchor.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
- package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
- package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
- package/components/autocomplete/Autocomplete.js +2 -2
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/button/style/dnb-button.css +13 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +16 -0
- package/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
- package/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
- package/components/button/style/themes/dnb-button-theme-ui.css +12 -1
- package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
- package/components/date-picker/DatePicker.d.ts +14 -1
- package/components/date-picker/DatePicker.js +0 -1
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalc.js +2 -1
- package/components/date-picker/DatePickerCalc.js.map +1 -1
- package/components/date-picker/DatePickerInput.d.ts +3 -0
- package/components/date-picker/DatePickerInput.js +9 -2
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/dropdown/Dropdown.js +3 -2
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/flex/Container.js +15 -2
- package/components/flex/Container.js.map +1 -1
- package/components/flex/export.d.ts +1 -0
- package/components/flex/export.js +1 -0
- package/components/flex/export.js.map +1 -1
- package/components/flex/utils.d.ts +1 -1
- package/components/flex/utils.js +11 -1
- package/components/flex/utils.js.map +1 -1
- package/components/flex/withChildren.d.ts +6 -0
- package/components/flex/withChildren.js +6 -0
- package/components/flex/withChildren.js.map +1 -0
- package/components/input/Input.js +3 -3
- package/components/input/Input.js.map +1 -1
- package/components/input/style/themes/dnb-input-theme-ui.css +2 -0
- package/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
- package/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
- package/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/components/input-masked/InputMaskedHooks.js +13 -8
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/MultiInputMask.d.ts +10 -2
- package/components/input-masked/MultiInputMask.js +39 -14
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
- package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
- package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/components/number-format/NumberFormat.js +1 -1
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/textarea/style/dnb-textarea.css +5 -0
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +4 -0
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
- package/components/visually-hidden/VisuallyHidden.js +1 -1
- package/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/es/components/anchor/Anchor.js +9 -5
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/anchor/style/anchor-mixins.scss +0 -11
- package/es/components/anchor/style/dnb-anchor.css +0 -16
- package/es/components/anchor/style/dnb-anchor.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
- package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
- package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
- package/es/components/autocomplete/Autocomplete.js +2 -2
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/button/style/dnb-button.css +13 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +16 -0
- package/es/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
- package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
- package/es/components/button/style/themes/dnb-button-theme-ui.css +12 -1
- package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
- package/es/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
- package/es/components/date-picker/DatePicker.d.ts +14 -1
- package/es/components/date-picker/DatePicker.js +0 -1
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalc.js +2 -1
- package/es/components/date-picker/DatePickerCalc.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.d.ts +3 -0
- package/es/components/date-picker/DatePickerInput.js +9 -2
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +3 -2
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/flex/Container.js +15 -2
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/export.d.ts +1 -0
- package/es/components/flex/export.js +1 -0
- package/es/components/flex/export.js.map +1 -1
- package/es/components/flex/utils.d.ts +1 -1
- package/es/components/flex/utils.js +11 -1
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/flex/withChildren.d.ts +6 -0
- package/es/components/flex/withChildren.js +6 -0
- package/es/components/flex/withChildren.js.map +1 -0
- package/es/components/input/Input.js +3 -3
- package/es/components/input/Input.js.map +1 -1
- package/es/components/input/style/themes/dnb-input-theme-ui.css +2 -0
- package/es/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
- package/es/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
- package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +13 -8
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/MultiInputMask.d.ts +10 -2
- package/es/components/input-masked/MultiInputMask.js +39 -13
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
- package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
- package/es/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
- package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
- package/es/components/number-format/NumberFormat.js +1 -1
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/textarea/style/dnb-textarea.css +5 -0
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +4 -0
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
- package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
- package/es/components/visually-hidden/VisuallyHidden.js +1 -1
- package/es/components/visually-hidden/VisuallyHidden.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
- package/es/extensions/forms/DataContext/Provider/Provider.js +22 -4
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +15 -15
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
- package/es/extensions/forms/Field/Currency/Currency.d.ts +1 -5
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +3 -1
- package/es/extensions/forms/Field/Date/Date.js +45 -9
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +20 -11
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.d.ts +5 -1
- package/es/extensions/forms/Field/Number/Number.js +109 -31
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.css +192 -0
- package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
- package/es/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -10
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +7 -1
- package/es/extensions/forms/Field/Selection/Selection.js +4 -9
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +0 -1
- package/es/extensions/forms/Field/String/String.js +23 -9
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +0 -4
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +14 -23
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -9
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -11
- package/es/extensions/forms/Form/Handler/Handler.js +1 -0
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/{extensions/forms → es/extensions/forms/Form}/Visibility/Visibility.d.ts +5 -2
- package/es/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +7 -2
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
- package/es/extensions/forms/Form/Visibility/index.js.map +1 -0
- package/es/extensions/forms/Form/hooks/useData.d.ts +10 -0
- package/es/extensions/forms/Form/hooks/useData.js +29 -0
- package/es/extensions/forms/Form/hooks/useData.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +2 -0
- package/es/extensions/forms/Form/index.js +2 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +0 -4
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.js +26 -33
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useId.d.ts +1 -0
- package/es/extensions/forms/hooks/useId.js +11 -0
- package/es/extensions/forms/hooks/useId.js.map +1 -0
- package/es/extensions/forms/index.d.ts +6 -1
- package/es/extensions/forms/index.js +3 -1
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +214 -11
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +16 -18
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
- package/es/extensions/forms/utils/TestElement/TestElement.js +1 -0
- package/es/extensions/forms/utils/TestElement/TestElement.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/helpers/EventEmitter.d.ts +5 -0
- package/es/shared/helpers/EventEmitter.js.map +1 -1
- package/es/shared/helpers/useEventEmitter.d.ts +2 -0
- package/es/shared/helpers/useEventEmitter.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +15 -0
- package/es/shared/helpers/useSharedState.js +63 -0
- package/es/shared/helpers/useSharedState.js.map +1 -0
- package/es/style/core/utilities.scss +1 -2
- package/es/style/dnb-ui-components.css +232 -27
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-extensions.css +214 -11
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +214 -11
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-forms.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +498 -44
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +230 -11
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +230 -12
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +541 -40
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +289 -11
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +289 -12
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +496 -44
- package/es/style/themes/theme-ui/ui-theme-components.min.css +9 -5
- package/es/style/themes/theme-ui/ui-theme-extensions.css +230 -11
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +230 -12
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
- package/es/style/themes/theme-ui/ui-theme-forms.scss +2 -0
- package/es/style/themes/theme-ui/ui-theme-tags.css +8 -10
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
- package/extensions/forms/DataContext/Provider/Provider.js +22 -4
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +15 -15
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
- package/extensions/forms/Field/Currency/Currency.d.ts +1 -5
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +3 -1
- package/extensions/forms/Field/Date/Date.js +48 -11
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +21 -11
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/Number.d.ts +5 -1
- package/extensions/forms/Field/Number/Number.js +110 -31
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.css +192 -0
- package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
- package/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -10
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +7 -1
- package/extensions/forms/Field/Selection/Selection.js +4 -9
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +0 -1
- package/extensions/forms/Field/String/String.js +23 -9
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +0 -4
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +16 -26
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -9
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -11
- package/extensions/forms/Form/Handler/Handler.js +1 -0
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/{es/extensions/forms → extensions/forms/Form}/Visibility/Visibility.d.ts +5 -2
- package/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +7 -2
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
- package/extensions/forms/Form/Visibility/index.js.map +1 -0
- package/extensions/forms/Form/hooks/useData.d.ts +10 -0
- package/extensions/forms/Form/hooks/useData.js +30 -0
- package/extensions/forms/Form/hooks/useData.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +2 -0
- package/extensions/forms/Form/index.js +2 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +0 -4
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.js +26 -33
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useId.d.ts +1 -0
- package/extensions/forms/hooks/useId.js +11 -0
- package/extensions/forms/hooks/useId.js.map +1 -0
- package/extensions/forms/index.d.ts +6 -1
- package/extensions/forms/index.js +3 -1
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +214 -11
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +16 -18
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
- package/extensions/forms/utils/TestElement/TestElement.js +1 -0
- package/extensions/forms/utils/TestElement/TestElement.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/helpers/EventEmitter.d.ts +5 -0
- package/shared/helpers/EventEmitter.js.map +1 -1
- package/shared/helpers/useEventEmitter.d.ts +2 -0
- package/shared/helpers/useEventEmitter.js.map +1 -1
- package/shared/helpers/useSharedState.d.ts +15 -0
- package/shared/helpers/useSharedState.js +63 -0
- package/shared/helpers/useSharedState.js.map +1 -0
- package/style/core/utilities.scss +1 -2
- package/style/dnb-ui-components.css +232 -27
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-extensions.css +214 -11
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +214 -11
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-forms.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.css +498 -44
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +230 -11
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +230 -12
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +541 -40
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +289 -11
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +289 -12
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
- package/style/themes/theme-ui/ui-theme-components.css +496 -44
- package/style/themes/theme-ui/ui-theme-components.min.css +9 -5
- package/style/themes/theme-ui/ui-theme-extensions.css +230 -11
- package/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +230 -12
- package/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
- package/style/themes/theme-ui/ui-theme-forms.scss +2 -0
- package/style/themes/theme-ui/ui-theme-tags.css +8 -10
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Visibility/Visibility.js.map +0 -1
- package/cjs/extensions/forms/Visibility/index.js.map +0 -1
- package/es/extensions/forms/Visibility/Visibility.js.map +0 -1
- package/es/extensions/forms/Visibility/index.js.map +0 -1
- package/extensions/forms/Visibility/Visibility.js.map +0 -1
- package/extensions/forms/Visibility/index.js.map +0 -1
- /package/cjs/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
- /package/cjs/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
- /package/es/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
- /package/es/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
- /package/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
- /package/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataValue.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajv","ajvErrorsToOneFormError","FormError","Context","FieldBlockContext","IterateElementContext","makeUniqueId","toCapitalized","useMountEffect","useUpdateEffect","useProcessManager","useDataValue","props","_ref","_props$autoComplete","_props$path","path","itemPath","emptyValue","required","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","toInput","value","fromInput","toEvent","fromExternal","validateRequired","res","validationRule","undefined","forceUpdate","startProcess","id","_props$id","dataContext","fieldBlockContext","iterateElementContext","transformers","handlePathChange","dataContextHandlePathChange","updateDataValue","dataContextUpdateDataValue","setValueWithError","dataContextSetValueWithError","errors","dataContextErrors","dataContextError","inFieldBlock","Boolean","setError","setFieldBlockError","setShowError","setShowFieldBlockError","inIterate","index","iterateElementIndex","iterateElementValue","handleChange","handleIterateElementChange","substring","Error","identifier","externalValue","current","capitalize","String","has","get","data","valueRef","changedRef","hasFocusRef","showErrorInitially","localErrorRef","contextErrorRef","showErrorRef","errorMessagesRef","validatorRef","schemaValidatorRef","compile","showError","hideError","prepareError","_errorMessagesRef$cur","_error$messageValues","message","messageWithValues","Object","entries","messageValues","reduce","key","replace","persistErrorState","errorArg","clearErrorState","validateValue","isProcessActive","requiredError","isChanged","_validatorRef$current","call","showAllErrors","hasValue","handleError","setHasFocus","hasFocus","valueOverride","Promise","resolve","then","updateValue","newValue","argFromInput","additionalArgs","apply","iterateValuePath","handleFocus","handleBlur","trim","test","handleMountField","handleUnMountField","_objectSpread","autoComplete","name","hasError"],"sources":["../../../../../src/extensions/forms/hooks/useDataValue.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv'\nimport { errorChanged } from '../utils'\nimport ajv, { ajvErrorsToOneFormError } from '../utils/ajv'\nimport { FormError, FieldProps, AdditionalEventArgs } from '../types'\nimport { Context, ContextState } from '../DataContext'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport {\n makeUniqueId,\n toCapitalized,\n} from '../../../shared/component-helper'\nimport useMountEffect from './useMountEffect'\nimport useUpdateEffect from './useUpdateEffect'\nimport useProcessManager from './useProcessManager'\n\ninterface ReturnAdditional<Value> {\n id: string\n value: Value\n error: Error | FormError | undefined\n hasError: boolean\n dataContext: ContextState\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: FieldProps<unknown>['onChange']\n updateValue: (value: Value) => void\n forceUpdate: () => void\n}\n\nexport default function useDataValue<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & ReturnAdditional<Value> {\n const {\n path,\n itemPath,\n emptyValue,\n required,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? new FormError('The value is required', {\n validationRule: 'required',\n })\n : undefined\n return res\n },\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useMemo(() => props.id ?? makeUniqueId(), [props.id])\n const dataContext = useContext(Context)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n\n const transformers = useRef({\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n validateRequired,\n })\n\n const {\n handlePathChange: dataContextHandlePathChange,\n updateDataValue: dataContextUpdateDataValue,\n setValueWithError: dataContextSetValueWithError,\n errors: dataContextErrors,\n } = dataContext ?? {}\n const dataContextError = path ? dataContextErrors?.[path] : undefined\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setError: setFieldBlockError,\n setShowError: setShowFieldBlockError,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n value: iterateElementValue,\n handleChange: handleIterateElementChange,\n } = iterateElementContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (itemPath && itemPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid itemPath. Item pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (itemPath && !iterateElementContext) {\n throw new Error(\n 'itemPath cannot be used when not inside an iterate element context. Wrap the component in an Iterate.Loop.'\n )\n }\n\n const identifier = useMemo(() => {\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path ?? id\n }, [path, id])\n\n const externalValue = useMemo(() => {\n if (props.value !== undefined) {\n let value = transformers.current.fromExternal(props.value)\n\n if (props.capitalize) {\n value = toCapitalized(String(value || '')) as Value\n }\n\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return value\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, itemPath)\n ? pointer.get(iterateElementValue, itemPath)\n : undefined\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : undefined\n }\n return undefined\n }, [\n props.value,\n props.capitalize,\n inIterate,\n itemPath,\n dataContext.data,\n path,\n iterateElementValue,\n ])\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const showErrorInitially = validateInitially || errorProp\n // - Local errors are errors based on validation instructions received by\n const localErrorRef = useRef<Error | FormError | undefined>()\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const showErrorRef = useRef<boolean>(Boolean(showErrorInitially))\n const errorMessagesRef = useRef(errorMessages)\n useEffect(() => {\n errorMessagesRef.current = errorMessages\n }, [errorMessages])\n const validatorRef = useRef(validator)\n useEffect(() => {\n validatorRef.current = validator\n }, [validator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? ajv.compile(schema) : undefined\n )\n\n const showError = useCallback(() => {\n showErrorRef.current = true\n setShowFieldBlockError?.(path ?? id, true)\n }, [path, id, setShowFieldBlockError])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n setShowFieldBlockError?.(path ?? id, false)\n }, [path, id, setShowFieldBlockError])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error === undefined) {\n return\n }\n\n if (error instanceof FormError) {\n const message =\n (typeof error.validationRule === 'string' &&\n errorMessagesRef.current?.[error.validationRule]) ||\n error.message\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n return new FormError(messageWithValues)\n }\n\n return error\n },\n []\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const persistErrorState = useCallback(\n (errorArg: FormError | undefined) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n dataContextSetValueWithError?.(identifier, Boolean(error))\n\n setFieldBlockError?.(path ?? id, error)\n forceUpdate()\n },\n [\n path,\n identifier,\n id,\n prepareError,\n dataContextSetValueWithError,\n setFieldBlockError,\n forceUpdate,\n ]\n )\n\n const clearErrorState = useCallback(\n () => persistErrorState(undefined),\n [persistErrorState]\n )\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n try {\n // Validate required\n const requiredError = transformers.current.validateRequired(\n valueRef.current,\n {\n emptyValue,\n required,\n isChanged: changedRef.current,\n }\n )\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n valueRef.current !== undefined &&\n !schemaValidatorRef.current(valueRef.current)\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (validatorRef.current) {\n const res = await validatorRef.current?.(\n valueRef.current,\n errorMessagesRef.current\n )\n if (res instanceof Error) {\n throw res\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n } catch (error: unknown) {\n if (isProcessActive()) {\n persistErrorState(error as Error)\n }\n }\n }, [\n startProcess,\n emptyValue,\n required,\n clearErrorState,\n persistErrorState,\n ])\n\n useUpdateEffect(() => {\n if (!schema) {\n schemaValidatorRef.current = undefined\n return\n }\n schemaValidatorRef.current = ajv.compile(schema)\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n valueRef.current = externalValue\n validateValue()\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n contextErrorRef.current = error\n forceUpdate()\n }\n }, [dataContextError, prepareError])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n showError()\n forceUpdate()\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (path && props.value) {\n const hasValue = pointer.has(dataContext.data, path)\n const value = hasValue\n ? pointer.get(dataContext.data, path)\n : undefined\n if (\n !hasValue ||\n (props.value !== value && valueRef.current !== value)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n dataContextUpdateDataValue?.(path, props.value)\n }\n }\n }, [dataContext.data, dataContextUpdateDataValue, path, props.value])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n showError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, showError])\n\n const setHasFocus = useCallback(\n (hasFocus: boolean, valueOverride?: Value) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.(\n transformers.current.toEvent(valueOverride ?? valueRef.current)\n )\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.(\n transformers.current.toEvent(valueOverride ?? valueRef.current)\n )\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n if (typeof onBlurValidator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n Promise.resolve(\n onBlurValidator(\n transformers.current.toEvent(\n valueOverride ?? valueRef.current\n )\n )\n ).then(persistErrorState)\n }\n\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n }\n },\n [\n onBlur,\n onBlurValidator,\n onFocus,\n persistErrorState,\n showError,\n validateUnchanged,\n ]\n )\n\n const updateValue = useCallback(\n (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n // Always validate the value immediately when it is changed\n validateValue()\n\n handleError()\n\n if (path) {\n dataContextHandlePathChange?.(path, newValue)\n }\n\n forceUpdate()\n },\n [dataContextHandlePathChange, handleError, path, validateValue]\n )\n\n const handleChange = useCallback(\n (\n argFromInput: Value,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n let newValue = transformers.current.fromInput(argFromInput)\n\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n if (props.capitalize) {\n newValue = toCapitalized(String(newValue || '')) as Value\n }\n\n updateValue(newValue)\n\n changedRef.current = true\n\n const value = transformers.current.toEvent(newValue)\n onChange?.apply(\n this,\n typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n )\n\n if (itemPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n handleIterateElementChange?.(iterateValuePath, newValue)\n }\n },\n [\n props.capitalize,\n updateValue,\n onChange,\n itemPath,\n iterateElementIndex,\n handleIterateElementChange,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n\n const handleBlur = useCallback(() => {\n if (props.trim && /^\\s|\\s$/.test(String(valueRef.current))) {\n const value = String(valueRef.current).trim()\n handleChange(value as Value)\n }\n\n setHasFocus(false)\n }, [props.trim, setHasFocus, handleChange])\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n\n validateValue()\n\n if (showErrorInitially) {\n showError()\n }\n\n return () => {\n // Unmount procedure\n dataContext?.handleUnMountField(identifier)\n }\n })\n\n const error = showErrorRef.current\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n return {\n ...props,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : 'off'),\n id,\n name: props.name || props.path?.replace('/', '') || id,\n value: transformers.current.toInput(valueRef.current),\n error: !inFieldBlock ? error : undefined,\n hasError: Boolean(error),\n isChanged: changedRef.current,\n dataContext,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDataValue.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajv","ajvErrorsToOneFormError","FormError","Context","FieldBlockContext","IterateElementContext","useMountEffect","useUpdateEffect","useProcessManager","useId","useDataValue","props","_ref","_props$autoComplete","_props$path","path","itemPath","emptyValue","required","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","toInput","value","fromInput","toEvent","transformValue","fromExternal","validateRequired","res","undefined","forceUpdate","startProcess","id","dataContext","fieldBlockContext","iterateElementContext","transformers","handlePathChange","dataContextHandlePathChange","updateDataValue","dataContextUpdateDataValue","setValueWithError","dataContextSetValueWithError","errors","dataContextErrors","dataContextError","inFieldBlock","Boolean","setError","setFieldBlockError","setShowError","setShowFieldBlockError","inIterate","index","iterateElementIndex","iterateElementValue","handleChange","handleIterateElementChange","substring","Error","identifier","externalValue","current","has","get","data","valueRef","changedRef","hasFocusRef","showErrorInitially","localErrorRef","contextErrorRef","showErrorRef","errorMessagesRef","validatorRef","schemaValidatorRef","compile","showError","hideError","prepareError","_errorMessagesRef$cur","_error$messageValues","message","validationRule","messageWithValues","Object","entries","messageValues","reduce","key","replace","persistErrorState","errorArg","clearErrorState","validateValue","isProcessActive","requiredError","isChanged","_validatorRef$current","call","showAllErrors","hasValue","handleError","setHasFocus","hasFocus","valueOverride","Promise","resolve","then","updateValue","newValue","argFromInput","additionalArgs","currentValue","apply","iterateValuePath","handleFocus","handleBlur","handleMountField","handleUnMountField","_objectSpread","autoComplete","name","hasError"],"sources":["../../../../../src/extensions/forms/hooks/useDataValue.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv'\nimport { errorChanged } from '../utils'\nimport ajv, { ajvErrorsToOneFormError } from '../utils/ajv'\nimport { FormError, FieldProps, AdditionalEventArgs } from '../types'\nimport { Context, ContextState } from '../DataContext'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport useMountEffect from './useMountEffect'\nimport useUpdateEffect from './useUpdateEffect'\nimport useProcessManager from './useProcessManager'\nimport useId from './useId'\n\ninterface ReturnAdditional<Value> {\n id: string\n value: Value\n error: Error | FormError | undefined\n hasError: boolean\n dataContext: ContextState\n setHasFocus: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: FieldProps<unknown>['onChange']\n updateValue: (value: Value) => void\n forceUpdate: () => void\n}\n\nexport default function useDataValue<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & ReturnAdditional<Value> {\n const {\n path,\n itemPath,\n emptyValue,\n required,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required, error }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n return res\n },\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(Context)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n\n const transformers = useRef({\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChange: dataContextHandlePathChange,\n updateDataValue: dataContextUpdateDataValue,\n setValueWithError: dataContextSetValueWithError,\n errors: dataContextErrors,\n } = dataContext ?? {}\n const dataContextError = path ? dataContextErrors?.[path] : undefined\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setError: setFieldBlockError,\n setShowError: setShowFieldBlockError,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n value: iterateElementValue,\n handleChange: handleIterateElementChange,\n } = iterateElementContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (itemPath && itemPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid itemPath. Item pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (itemPath && !iterateElementContext) {\n throw new Error(\n 'itemPath cannot be used when not inside an iterate element context. Wrap the component in an Iterate.Loop.'\n )\n }\n\n const identifier = useMemo(() => {\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path ?? id\n }, [path, id])\n\n const externalValue = useMemo(() => {\n if (props.value !== undefined) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return transformers.current.fromExternal(props.value)\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, itemPath)\n ? pointer.get(iterateElementValue, itemPath)\n : undefined\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : undefined\n }\n return undefined\n }, [\n props.value,\n inIterate,\n itemPath,\n dataContext.data,\n path,\n iterateElementValue,\n ])\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const showErrorInitially = validateInitially || errorProp\n // - Local errors are errors based on validation instructions received by\n const localErrorRef = useRef<Error | FormError | undefined>()\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const showErrorRef = useRef<boolean>(Boolean(showErrorInitially))\n const errorMessagesRef = useRef(errorMessages)\n useEffect(() => {\n errorMessagesRef.current = errorMessages\n }, [errorMessages])\n const validatorRef = useRef(validator)\n useEffect(() => {\n validatorRef.current = validator\n }, [validator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? ajv.compile(schema) : undefined\n )\n\n const showError = useCallback(() => {\n showErrorRef.current = true\n setShowFieldBlockError?.(path ?? id, true)\n }, [path, id, setShowFieldBlockError])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n setShowFieldBlockError?.(path ?? id, false)\n }, [path, id, setShowFieldBlockError])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: Error | FormError | undefined): FormError | undefined => {\n if (error === undefined) {\n return\n }\n\n if (error instanceof FormError) {\n const message =\n (typeof error.validationRule === 'string' &&\n errorMessagesRef.current?.[error.validationRule]) ||\n error.message\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n return new FormError(messageWithValues)\n }\n\n return error\n },\n []\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const persistErrorState = useCallback(\n (errorArg: FormError | undefined) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n localErrorRef.current = error\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n dataContextSetValueWithError?.(identifier, Boolean(error))\n\n setFieldBlockError?.(path ?? id, error)\n forceUpdate()\n },\n [\n path,\n identifier,\n id,\n prepareError,\n dataContextSetValueWithError,\n setFieldBlockError,\n forceUpdate,\n ]\n )\n\n const clearErrorState = useCallback(\n () => persistErrorState(undefined),\n [persistErrorState]\n )\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n try {\n // Validate required\n const requiredError = transformers.current.validateRequired(\n valueRef.current,\n {\n emptyValue,\n required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n }\n )\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n valueRef.current !== undefined &&\n !schemaValidatorRef.current(valueRef.current)\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (validatorRef.current) {\n const res = await validatorRef.current?.(\n valueRef.current,\n errorMessagesRef.current\n )\n if (res instanceof Error) {\n throw res\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n } catch (error: unknown) {\n if (isProcessActive()) {\n persistErrorState(error as Error)\n }\n }\n }, [\n startProcess,\n emptyValue,\n required,\n clearErrorState,\n persistErrorState,\n ])\n\n useUpdateEffect(() => {\n if (!schema) {\n schemaValidatorRef.current = undefined\n return\n }\n schemaValidatorRef.current = ajv.compile(schema)\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n valueRef.current = externalValue\n validateValue()\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n contextErrorRef.current = error\n forceUpdate()\n }\n }, [dataContextError, prepareError])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n showError()\n forceUpdate()\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (path && typeof props.value !== 'undefined') {\n const hasValue = pointer.has(dataContext.data, path)\n const value = hasValue\n ? pointer.get(dataContext.data, path)\n : undefined\n if (\n !hasValue ||\n (props.value !== value && valueRef.current !== value)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n dataContextUpdateDataValue?.(path, props.value)\n }\n }\n }, [dataContext.data, dataContextUpdateDataValue, path, props.value])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with continuousValidation set to false).\n showError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, showError])\n\n const setHasFocus = useCallback(\n (hasFocus: boolean, valueOverride?: Value) => {\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onFocus'\n )\n onFocus?.(value)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlur'\n )\n onBlur?.(value)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n if (typeof onBlurValidator === 'function') {\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n Promise.resolve(onBlurValidator(value)).then(persistErrorState)\n }\n\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n }\n },\n [\n onBlur,\n onBlurValidator,\n onFocus,\n persistErrorState,\n showError,\n validateUnchanged,\n ]\n )\n\n const updateValue = useCallback(\n (newValue: Value) => {\n if (newValue === valueRef.current) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n valueRef.current = newValue\n\n // Always validate the value immediately when it is changed\n validateValue()\n\n handleError()\n\n if (path) {\n dataContextHandlePathChange?.(path, newValue)\n }\n\n forceUpdate()\n },\n [dataContextHandlePathChange, handleError, path, validateValue]\n )\n\n const handleChange = useCallback(\n (\n argFromInput: Value,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n let newValue = transformers.current.fromInput(argFromInput)\n\n if (newValue === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n newValue = transformers.current.transformValue(\n newValue,\n currentValue\n )\n\n updateValue(newValue)\n\n changedRef.current = true\n\n const value = transformers.current.toEvent(newValue, 'onChange')\n onChange?.apply(\n this,\n typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n )\n\n if (itemPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n handleIterateElementChange?.(iterateValuePath, newValue)\n }\n },\n [\n updateValue,\n onChange,\n itemPath,\n iterateElementIndex,\n handleIterateElementChange,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n\n validateValue()\n\n if (showErrorInitially) {\n showError()\n }\n\n return () => {\n // Unmount procedure\n dataContext?.handleUnMountField(identifier)\n }\n })\n\n const error = showErrorRef.current\n ? errorProp ?? localErrorRef.current ?? contextErrorRef.current\n : undefined\n\n return {\n ...props,\n autoComplete:\n props.autoComplete ??\n (dataContext.autoComplete === true ? 'on' : 'off'),\n id,\n name: props.name || props.path?.replace('/', '') || id,\n value: transformers.current.toInput(valueRef.current),\n error: !inFieldBlock ? error : undefined,\n hasError: Boolean(error),\n isChanged: changedRef.current,\n dataContext,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function useId(customId?: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeUniqueId } from '../../../shared/component-helper';
|
|
3
|
+
export default function useId(customId) {
|
|
4
|
+
var _React$useId;
|
|
5
|
+
const id = React === null || React === void 0 ? void 0 : (_React$useId = React.useId) === null || _React$useId === void 0 ? void 0 : _React$useId.call(React);
|
|
6
|
+
return React.useMemo(() => {
|
|
7
|
+
var _ref;
|
|
8
|
+
return (_ref = customId !== null && customId !== void 0 ? customId : id) !== null && _ref !== void 0 ? _ref : makeUniqueId();
|
|
9
|
+
}, [customId, id]);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=useId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useId.js","names":["React","makeUniqueId","useId","customId","_React$useId","id","call","useMemo","_ref"],"sources":["../../../../../src/extensions/forms/hooks/useId.ts"],"sourcesContent":["import React from 'react'\nimport { makeUniqueId } from '../../../shared/component-helper'\n\nexport default function useId(customId?: string) {\n const id = React?.useId?.()\n return React.useMemo(\n () => customId ?? id ?? makeUniqueId(),\n [customId, id]\n )\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,kCAAkC;AAE/D,eAAe,SAASC,KAAKA,CAACC,QAAiB,EAAE;EAAA,IAAAC,YAAA;EAC/C,MAAMC,EAAE,GAAGL,KAAK,aAALA,KAAK,wBAAAI,YAAA,GAALJ,KAAK,CAAEE,KAAK,cAAAE,YAAA,uBAAZA,YAAA,CAAAE,IAAA,CAAAN,KAAe,CAAC;EAC3B,OAAOA,KAAK,CAACO,OAAO,CAClB;IAAA,IAAAC,IAAA;IAAA,QAAAA,IAAA,GAAML,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIE,EAAE,cAAAG,IAAA,cAAAA,IAAA,GAAIP,YAAY,CAAC,CAAC;EAAA,GACtC,CAACE,QAAQ,EAAEE,EAAE,CACf,CAAC;AACH"}
|
|
@@ -8,5 +8,10 @@ export * as DataContext from './DataContext';
|
|
|
8
8
|
export * as Iterate from './Iterate';
|
|
9
9
|
export { default as FieldBlock } from './FieldBlock';
|
|
10
10
|
export { default as ValueBlock } from './ValueBlock';
|
|
11
|
-
export { default as Visibility } from './Visibility';
|
|
12
11
|
export { default as StepsLayout, StepsContext } from './StepsLayout';
|
|
12
|
+
/**
|
|
13
|
+
* Deprecated and will be removed in v11
|
|
14
|
+
*
|
|
15
|
+
* @deprecated use import { Field } from 'Form' instead
|
|
16
|
+
*/
|
|
17
|
+
export declare function Visibility(): void;
|
|
@@ -8,6 +8,8 @@ export * as DataContext from './DataContext';
|
|
|
8
8
|
export * as Iterate from './Iterate';
|
|
9
9
|
export { default as FieldBlock } from './FieldBlock';
|
|
10
10
|
export { default as ValueBlock } from './ValueBlock';
|
|
11
|
-
export { default as Visibility } from './Visibility';
|
|
12
11
|
export { default as StepsLayout, StepsContext } from './StepsLayout';
|
|
12
|
+
export function Visibility() {
|
|
13
|
+
console.error('Please import Visibility from "Form.Visibility"');
|
|
14
|
+
}
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Field","Value","Form","DataContext","Iterate","default","FieldBlock","ValueBlock","Visibility","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Field","Value","Form","DataContext","Iterate","default","FieldBlock","ValueBlock","StepsLayout","StepsContext","Visibility","console","error"],"sources":["../../../../src/extensions/forms/index.ts"],"sourcesContent":["export * from './types'\nexport * from './utils'\nexport * from './hooks'\nexport * as Field from './Field'\nexport * as Value from './Value'\nexport * as Form from './Form'\nexport * as DataContext from './DataContext'\nexport * as Iterate from './Iterate'\nexport { default as FieldBlock } from './FieldBlock'\nexport { default as ValueBlock } from './ValueBlock'\nexport { default as StepsLayout, StepsContext } from './StepsLayout'\n\n/**\n * Deprecated and will be removed in v11\n *\n * @deprecated use import { Field } from 'Form'\tinstead\n */\nexport function Visibility() {\n console.error('Please import Visibility from \"Form.Visibility\"')\n}\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,OAAO,KAAKA,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,WAAW,MAAM,eAAe;AAC5C,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,SAASC,OAAO,IAAIC,UAAU,QAAQ,cAAc;AACpD,SAASD,OAAO,IAAIE,UAAU,QAAQ,cAAc;AACpD,SAASF,OAAO,IAAIG,WAAW,EAAEC,YAAY,QAAQ,eAAe;AAOpE,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC3BC,OAAO,CAACC,KAAK,CAAC,iDAAiD,CAAC;AAClE"}
|
|
@@ -6,16 +6,26 @@
|
|
|
6
6
|
/*
|
|
7
7
|
* Utilities
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
/*
|
|
10
|
+
* Utilities
|
|
11
|
+
*/
|
|
12
|
+
.dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options {
|
|
10
13
|
display: flex;
|
|
11
14
|
flex-flow: column;
|
|
12
15
|
row-gap: var(--spacing-x-small);
|
|
13
16
|
}
|
|
14
|
-
.dnb-forms-field-array-selection--
|
|
17
|
+
.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options {
|
|
15
18
|
display: flex;
|
|
16
19
|
flex-flow: row wrap;
|
|
17
20
|
-moz-column-gap: var(--spacing-small);
|
|
18
21
|
column-gap: var(--spacing-small);
|
|
22
|
+
row-gap: var(--spacing-x-small);
|
|
23
|
+
}
|
|
24
|
+
@media screen and (min-width: 40em) {
|
|
25
|
+
.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
|
|
26
|
+
line-height: 2.5rem;
|
|
27
|
+
margin-bottom: 0;
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
30
|
|
|
21
31
|
.dnb-forms-field-expiry .dnb-multi-input-mask {
|
|
@@ -25,6 +35,199 @@
|
|
|
25
35
|
justify-content: center;
|
|
26
36
|
}
|
|
27
37
|
|
|
38
|
+
/*
|
|
39
|
+
* Utilities
|
|
40
|
+
*/
|
|
41
|
+
:root {
|
|
42
|
+
--forms-field-width--small: 5rem;
|
|
43
|
+
--forms-field-width--medium: 11rem;
|
|
44
|
+
--forms-field-width--large: 21rem;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.dnb-forms-field-number {
|
|
48
|
+
--number-control-button-border-color: black;
|
|
49
|
+
--number-control-button-border-color--hover: darkgrey;
|
|
50
|
+
--number-control-button-border-color--focus: darkgrey;
|
|
51
|
+
--number-control-button-border-width--focus: 0.125rem;
|
|
52
|
+
--number-control-button-background-color--hover: grey;
|
|
53
|
+
--number-control-button-color--hover: black;
|
|
54
|
+
--number-control-button-background-color--active: black;
|
|
55
|
+
--number-control-button-color--active: lightgrey;
|
|
56
|
+
--number-control-button--error: red;
|
|
57
|
+
--number-control-button--error-contrast: white;
|
|
58
|
+
--number-control-button-width--small: 2rem;
|
|
59
|
+
--number-control-button-width--medium: 2.5rem;
|
|
60
|
+
--number-control-button-width--large: 3rem;
|
|
61
|
+
--forms-field-block--number-control-buttons-width--small: calc(
|
|
62
|
+
var(--number-control-button-width--small) * 2
|
|
63
|
+
);
|
|
64
|
+
--forms-field-block--number-control-buttons-width--medium: calc(
|
|
65
|
+
var(--number-control-button-width--medium) * 2
|
|
66
|
+
);
|
|
67
|
+
--forms-field-block--number-control-buttons-width--large: calc(
|
|
68
|
+
var(--number-control-button-width--large) * 2
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
.dnb-forms-field-number__contents {
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
}
|
|
75
|
+
.dnb-forms-field-number__contents--has-controls {
|
|
76
|
+
border-radius: 0.25rem;
|
|
77
|
+
--border-color: var(--number-control-button-border-color);
|
|
78
|
+
--border-width: 0.0625rem;
|
|
79
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
80
|
+
border-color: transparent;
|
|
81
|
+
}
|
|
82
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover[disabled] {
|
|
83
|
+
cursor: not-allowed;
|
|
84
|
+
}
|
|
85
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover:not([disabled]) {
|
|
86
|
+
--border-color: var(--number-control-button-border-color);
|
|
87
|
+
--border-width: 0.125rem;
|
|
88
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
89
|
+
border-color: transparent;
|
|
90
|
+
}
|
|
91
|
+
html[data-whatinput=keyboard] .dnb-forms-field-number__contents--has-controls:focus-within {
|
|
92
|
+
--border-color: var(--number-control-button-border-color--focus);
|
|
93
|
+
--border-width: var(--number-control-button-border-width--focus);
|
|
94
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
95
|
+
border-color: transparent;
|
|
96
|
+
}
|
|
97
|
+
.dnb-forms-field-number__contents--has-controls .dnb-input__shell {
|
|
98
|
+
border-radius: 0;
|
|
99
|
+
box-shadow: none;
|
|
100
|
+
}
|
|
101
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover[disabled] {
|
|
102
|
+
cursor: not-allowed;
|
|
103
|
+
}
|
|
104
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover:not([disabled]) {
|
|
105
|
+
box-shadow: none;
|
|
106
|
+
}
|
|
107
|
+
.dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell {
|
|
108
|
+
outline: initial;
|
|
109
|
+
box-shadow: none;
|
|
110
|
+
}
|
|
111
|
+
html[data-whatinput=""] .dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell {
|
|
112
|
+
box-shadow: none;
|
|
113
|
+
}
|
|
114
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover[disabled],
|
|
115
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover[disabled] {
|
|
116
|
+
cursor: not-allowed;
|
|
117
|
+
}
|
|
118
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover:not([disabled]),
|
|
119
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover:not([disabled]) {
|
|
120
|
+
background-color: var(--number-control-button-background-color--hover);
|
|
121
|
+
color: var(--number-control-button-color--hover);
|
|
122
|
+
}
|
|
123
|
+
.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled], html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled],
|
|
124
|
+
.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],
|
|
125
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled] {
|
|
126
|
+
cursor: not-allowed;
|
|
127
|
+
}
|
|
128
|
+
.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]), html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]),
|
|
129
|
+
.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),
|
|
130
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]) {
|
|
131
|
+
background-color: var(--number-control-button-background-color--active);
|
|
132
|
+
color: var(--number-control-button-color--active);
|
|
133
|
+
}
|
|
134
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error {
|
|
135
|
+
--border-color: var(--number-control-button--error);
|
|
136
|
+
--border-width: 0.125rem;
|
|
137
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
138
|
+
border-color: transparent;
|
|
139
|
+
}
|
|
140
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover[disabled] {
|
|
141
|
+
cursor: not-allowed;
|
|
142
|
+
}
|
|
143
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover:not([disabled]) {
|
|
144
|
+
--border-color: var(--number-control-button--error);
|
|
145
|
+
--border-width: 0.125rem;
|
|
146
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
147
|
+
border-color: transparent;
|
|
148
|
+
}
|
|
149
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-input__status--error:not([data-input-state=disabled]):not(:hover):not(:active) .dnb-input__shell {
|
|
150
|
+
box-shadow: none;
|
|
151
|
+
}
|
|
152
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before,
|
|
153
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after {
|
|
154
|
+
color: var(--number-control-button--error);
|
|
155
|
+
}
|
|
156
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover[disabled],
|
|
157
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover[disabled] {
|
|
158
|
+
cursor: not-allowed;
|
|
159
|
+
}
|
|
160
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover:not([disabled]),
|
|
161
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover:not([disabled]) {
|
|
162
|
+
background-color: var(--number-control-button--error-contrast);
|
|
163
|
+
color: var(--number-control-button--error);
|
|
164
|
+
}
|
|
165
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled], html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled],
|
|
166
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],
|
|
167
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled] {
|
|
168
|
+
cursor: not-allowed;
|
|
169
|
+
}
|
|
170
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]), html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]),
|
|
171
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),
|
|
172
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]) {
|
|
173
|
+
background-color: var(--number-control-button--error);
|
|
174
|
+
color: var(--number-control-button--error-contrast);
|
|
175
|
+
}
|
|
176
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before[disabled],
|
|
177
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after[disabled] {
|
|
178
|
+
color: var(--number-control-button--error-contrast);
|
|
179
|
+
}
|
|
180
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled {
|
|
181
|
+
--border-color: var(--color-black-55);
|
|
182
|
+
--border-width: 0.0625rem;
|
|
183
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
184
|
+
border-color: transparent;
|
|
185
|
+
}
|
|
186
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover[disabled] {
|
|
187
|
+
cursor: not-allowed;
|
|
188
|
+
}
|
|
189
|
+
html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover:not([disabled]) {
|
|
190
|
+
--border-color: var(--color-black-55);
|
|
191
|
+
--border-width: 0.0625rem;
|
|
192
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
193
|
+
border-color: transparent;
|
|
194
|
+
}
|
|
195
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-input[data-input-state=disabled] .dnb-input__shell {
|
|
196
|
+
box-shadow: none;
|
|
197
|
+
}
|
|
198
|
+
.dnb-input[data-input-state=disabled] .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled {
|
|
199
|
+
--border-color: var(--color-black-55);
|
|
200
|
+
--border-width: 0.0625rem;
|
|
201
|
+
box-shadow: 0 0 0 var(--border-width) var(--border-color);
|
|
202
|
+
border-color: transparent;
|
|
203
|
+
}
|
|
204
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-before[disabled],
|
|
205
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-after[disabled] {
|
|
206
|
+
background-color: var(--color-black-3);
|
|
207
|
+
color: var(--color-black-20);
|
|
208
|
+
}
|
|
209
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small {
|
|
210
|
+
width: calc(var(--forms-field-width--small) + var(--forms-field-block--number-control-buttons-width--small));
|
|
211
|
+
}
|
|
212
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-before,
|
|
213
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-after {
|
|
214
|
+
width: var(--number-control-button-width--small);
|
|
215
|
+
}
|
|
216
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium {
|
|
217
|
+
width: calc(var(--forms-field-width--medium) + var(--forms-field-block--number-control-buttons-width--medium));
|
|
218
|
+
}
|
|
219
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-before,
|
|
220
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-after {
|
|
221
|
+
width: var(--number-control-button-width--medium);
|
|
222
|
+
}
|
|
223
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large {
|
|
224
|
+
width: calc(var(--forms-field-width--large) + var(--forms-field-block--number-control-buttons-width--large));
|
|
225
|
+
}
|
|
226
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-before,
|
|
227
|
+
.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-after {
|
|
228
|
+
width: var(--number-control-button-width--large);
|
|
229
|
+
}
|
|
230
|
+
|
|
28
231
|
.dnb-forms-field-phone-number__country-code {
|
|
29
232
|
width: calc(var(--forms-field-width--medium) - 2rem);
|
|
30
233
|
}
|
|
@@ -90,6 +293,15 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
90
293
|
.dnb-forms-field-block__grid {
|
|
91
294
|
display: grid;
|
|
92
295
|
}
|
|
296
|
+
@media screen and (max-width: 40em) {
|
|
297
|
+
.dnb-forms-field-block__grid {
|
|
298
|
+
flex-wrap: wrap;
|
|
299
|
+
}
|
|
300
|
+
.dnb-forms-field-block__grid > .dnb-form-label {
|
|
301
|
+
margin-bottom: 0.5rem;
|
|
302
|
+
margin-top: 0.5rem;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
93
305
|
.dnb-forms-field-block--layout-vertical {
|
|
94
306
|
grid-template-columns: auto;
|
|
95
307
|
grid-template-areas: "label" "contents" "status";
|
|
@@ -119,15 +331,6 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
|
|
|
119
331
|
justify-content: space-between;
|
|
120
332
|
align-items: center;
|
|
121
333
|
}
|
|
122
|
-
.dnb-forms-field-block__label-description {
|
|
123
|
-
margin-left: 0.3em;
|
|
124
|
-
color: var(--color-black-55);
|
|
125
|
-
font-size: var(--font-size-small);
|
|
126
|
-
}
|
|
127
|
-
.dnb-forms-field-block__label-secondary {
|
|
128
|
-
color: var(--color-black-55);
|
|
129
|
-
font-size: var(--font-size-small);
|
|
130
|
-
}
|
|
131
334
|
.dnb-forms-field-block__status {
|
|
132
335
|
grid-area: status;
|
|
133
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap}.dnb-forms-field-expiry .dnb-multi-input-mask{width:var(--forms-field-width--small)}.dnb-forms-field-expiry .dnb-multi-input-mask .dnb-input__shell{justify-content:center}.dnb-forms-field-phone-number__country-code,.dnb-forms-field-phone-number__country-code .dnb-autocomplete__shell{width:calc(var(--forms-field-width--medium) - 2rem)}.dnb-forms-field-phone-number__number{flex:1}.dnb-forms-field-phone-number .dnb-form-label{max-width:14ch}.dnb-forms-field-postal-code-and-city__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.dnb-forms-field-postal-code-and-city__postal-code{flex:0 5rem}.dnb-forms-field-postal-code-and-city__city{flex:1}.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:40em){.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-form-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}.dnb-forms-value-block{display:block;font-size:var(--font-size-basis)}.dnb-forms-value-block--inline{display:inline-block;font-size:inherit;margin-left:var(--spacing-xx-small);margin-right:var(--spacing-xx-small)}.dnb-forms-value-block__label{font-weight:var(--font-weight-medium)}.dnb-forms-value-block__placeholder{color:rgba(0,0,0,.5)}.dnb-forms-test-element{border:1px dashed grey;border-radius:.5rem;color:#909090;padding:.5rem 1rem}
|
|
1
|
+
.dnb-forms-field-array-selection--layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--spacing-x-small)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}.dnb-forms-field-expiry .dnb-multi-input-mask{width:var(--forms-field-width--small)}.dnb-forms-field-expiry .dnb-multi-input-mask .dnb-input__shell{justify-content:center}.dnb-forms-field-number{--number-control-button-border-color:#000;--number-control-button-border-color--hover:#a9a9a9;--number-control-button-border-color--focus:#a9a9a9;--number-control-button-border-width--focus:0.125rem;--number-control-button-background-color--hover:grey;--number-control-button-color--hover:#000;--number-control-button-background-color--active:#000;--number-control-button-color--active:#d3d3d3;--number-control-button--error:red;--number-control-button--error-contrast:#fff;--number-control-button-width--small:2rem;--number-control-button-width--medium:2.5rem;--number-control-button-width--large:3rem;--forms-field-block--number-control-buttons-width--small:calc(var(--number-control-button-width--small)*2);--forms-field-block--number-control-buttons-width--medium:calc(var(--number-control-button-width--medium)*2);--forms-field-block--number-control-buttons-width--large:calc(var(--number-control-button-width--large)*2)}.dnb-forms-field-number__contents{align-items:center;display:flex}.dnb-forms-field-number__contents--has-controls{--border-color:var(--number-control-button-border-color);--border-width:0.0625rem;border-color:transparent;border-radius:.25rem;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls:hover:not([disabled]){--border-color:var(--number-control-button-border-color);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-forms-field-number__contents--has-controls:focus-within{--border-color:var(--number-control-button-border-color--focus);--border-width:var(--number-control-button-border-width--focus);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls .dnb-input__shell{border-radius:0;box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-input__shell:hover:not([disabled]){box-shadow:none}.dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none;outline:initial}html[data-whatinput=""] .dnb-forms-field-number__contents--has-controls .dnb-input:not([data-input-state=disabled]):not(:active)[data-input-state=focus] .dnb-input__shell{box-shadow:none}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button-background-color--hover);color:var(--number-control-button-color--hover)}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button-background-color--active);color:var(--number-control-button-color--active)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error{--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error:hover:not([disabled]){--border-color:var(--number-control-button--error);--border-width:0.125rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-input__status--error:not([data-input-state=disabled]):not(:hover):not(:active) .dnb-input__shell{box-shadow:none}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before{color:var(--number-control-button--error)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:hover:not([disabled]){background-color:var(--number-control-button--error-contrast);color:var(--number-control-button--error)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active[disabled],html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active[disabled]{cursor:not-allowed}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before:active:not([disabled]){background-color:var(--number-control-button--error);color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--has-error .dnb-button--control-before[disabled]{color:var(--number-control-button--error-contrast)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled:hover:not([disabled]){--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-input[data-input-state=disabled] .dnb-input__shell{box-shadow:none}.dnb-input[data-input-state=disabled] .dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled{--border-color:var(--color-black-55);--border-width:0.0625rem;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-after[disabled],.dnb-forms-field-number__contents--has-controls.dnb-forms-field-number__contents--is-disabled .dnb-button--control-before[disabled]{background-color:var(--color-black-3);color:var(--color-black-20)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small{width:calc(var(--forms-field-width--small) + var(--forms-field-block--number-control-buttons-width--small))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-small .dnb-button--control-before{width:var(--number-control-button-width--small)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium{width:calc(var(--forms-field-width--medium) + var(--forms-field-block--number-control-buttons-width--medium))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-medium .dnb-button--control-before{width:var(--number-control-button-width--medium)}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large{width:calc(var(--forms-field-width--large) + var(--forms-field-block--number-control-buttons-width--large))}.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-after,.dnb-forms-field-number__contents--has-controls.dnb-forms-field-block__contents--width-large .dnb-button--control-before{width:var(--number-control-button-width--large)}.dnb-forms-field-phone-number__country-code,.dnb-forms-field-phone-number__country-code .dnb-autocomplete__shell{width:calc(var(--forms-field-width--medium) - 2rem)}.dnb-forms-field-phone-number__number{flex:1}.dnb-forms-field-phone-number .dnb-form-label{max-width:14ch}.dnb-forms-field-postal-code-and-city__fields{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}.dnb-forms-field-postal-code-and-city__postal-code{flex:0 5rem}.dnb-forms-field-postal-code-and-city__city{flex:1}.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}:root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-button-row{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:40em){.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-spacing .dnb-form-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-form-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-spacing .dnb-form-sub-heading.dnb-h--medium:not([class*=space__]){margin:0}.dnb-form-sub-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}.dnb-forms-steps-layout{-moz-column-gap:var(--spacing-medium);column-gap:var(--spacing-medium);display:flex;flex-flow:row wrap}.dnb-forms-steps-layout__sidebar{flex:0}.dnb-forms-steps-layout__contents{flex:1 0 25rem}.dnb-forms-steps-layout__contents .dnb-card{--border-color:var(--color-pistachio)}@media screen and (max-width:60em){.dnb-forms-steps-layout{align-items:stretch;flex-direction:column;justify-content:stretch}.dnb-forms-steps-layout__contents{flex-basis:auto}}.dnb-forms-steps-layout .dnb-step-indicator__sidebar{margin-right:0}.dnb-forms-value-block{display:block;font-size:var(--font-size-basis)}.dnb-forms-value-block--inline{display:inline-block;font-size:inherit;margin-left:var(--spacing-xx-small);margin-right:var(--spacing-xx-small)}.dnb-forms-value-block__label{font-weight:var(--font-weight-medium)}.dnb-forms-value-block__placeholder{color:rgba(0,0,0,.5)}.dnb-forms-test-element{border:1px dashed grey;border-radius:.5rem;color:#909090;padding:.5rem 1rem}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { SpacingProps } from '../../components/space/types';
|
|
3
|
+
import type { JSONSchema7 as JSONSchema } from 'json-schema';
|
|
4
|
+
export type { JSONSchema };
|
|
4
5
|
type ValidationRule = string | string[];
|
|
5
6
|
type MessageValues = Record<string, string>;
|
|
6
7
|
interface IFormErrorOptions {
|
|
@@ -34,7 +35,7 @@ export interface DataValueReadProps<Value = unknown> {
|
|
|
34
35
|
}
|
|
35
36
|
export declare function pickDataValueReadProps<Props extends DataValueReadProps>(props: Props): DataValueReadProps;
|
|
36
37
|
export declare function omitDataValueReadProps<Props extends DataValueReadProps>(props: Props): Omit<DataValueReadProps, keyof DataValueReadProps>;
|
|
37
|
-
export interface DataValueWriteProps<Value = unknown, EmptyValue = undefined | string
|
|
38
|
+
export interface DataValueWriteProps<Value = unknown, EmptyValue = undefined | string> {
|
|
38
39
|
emptyValue?: EmptyValue;
|
|
39
40
|
onFocus?: (value: Value | EmptyValue) => void;
|
|
40
41
|
onBlur?: (value: Value | EmptyValue) => void;
|
|
@@ -42,7 +43,7 @@ export interface DataValueWriteProps<Value = unknown, EmptyValue = undefined | s
|
|
|
42
43
|
}
|
|
43
44
|
export declare function pickDataValueWriteProps<Props extends DataValueWriteProps>(props: Props): DataValueWriteProps;
|
|
44
45
|
export declare function omitDataValueWriteProps<Props extends DataValueWriteProps>(props: Props): Omit<DataValueWriteProps, keyof DataValueWriteProps>;
|
|
45
|
-
export type DataValueReadWriteProps<Value = unknown, EmptyValue = undefined | string
|
|
46
|
+
export type DataValueReadWriteProps<Value = unknown, EmptyValue = undefined | string> = DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>;
|
|
46
47
|
export declare function pickDataValueReadWriteProps<Props extends DataValueReadWriteProps>(props: Props): DataValueReadWriteProps;
|
|
47
48
|
export declare function omitDataValueReadWriteProps<Props extends DataValueReadWriteProps>(props: Props): Omit<DataValueReadWriteProps, keyof DataValueReadWriteProps>;
|
|
48
49
|
export type ComponentProps = SpacingProps & {
|
|
@@ -50,8 +51,8 @@ export type ComponentProps = SpacingProps & {
|
|
|
50
51
|
};
|
|
51
52
|
export type AdditionalEventArgs = Record<string, unknown>;
|
|
52
53
|
export type DataValueReadComponentProps<Value = unknown> = ComponentProps & DataValueReadProps<Value>;
|
|
53
|
-
export type DataValueReadWriteComponentProps<Value = unknown, EmptyValue = undefined | string
|
|
54
|
-
export interface FieldProps<Value = unknown, EmptyValue = undefined | string
|
|
54
|
+
export type DataValueReadWriteComponentProps<Value = unknown, EmptyValue = undefined | string> = ComponentProps & DataValueReadProps<Value> & DataValueWriteProps<Value, EmptyValue>;
|
|
55
|
+
export interface FieldProps<Value = unknown, EmptyValue = undefined | string, ErrorMessages extends {
|
|
55
56
|
required?: string;
|
|
56
57
|
} = DefaultErrorMessages> extends DataValueReadWriteComponentProps<Value, EmptyValue> {
|
|
57
58
|
/** ID added to the actual field component, and linked to the label via for-attribute */
|
|
@@ -60,10 +61,6 @@ export interface FieldProps<Value = unknown, EmptyValue = undefined | string | n
|
|
|
60
61
|
layout?: 'horizontal' | 'vertical';
|
|
61
62
|
/** Main label text */
|
|
62
63
|
label?: React.ReactNode;
|
|
63
|
-
/** A more discreet text displayed beside the label (i.e for "(optional)") */
|
|
64
|
-
labelDescription?: React.ReactNode;
|
|
65
|
-
/** Secondary information displayed at the end of the label line (i.e character counter) */
|
|
66
|
-
labelSecondary?: React.ReactNode;
|
|
67
64
|
/** Text showing in place of the value if no value is given */
|
|
68
65
|
placeholder?: string;
|
|
69
66
|
autoComplete?: HTMLInputElement['autocomplete'] | HTMLTextAreaElement['autocomplete'];
|
|
@@ -75,7 +72,7 @@ export interface FieldProps<Value = unknown, EmptyValue = undefined | string | n
|
|
|
75
72
|
capitalize?: boolean;
|
|
76
73
|
trim?: boolean;
|
|
77
74
|
required?: boolean;
|
|
78
|
-
schema?:
|
|
75
|
+
schema?: JSONSchema;
|
|
79
76
|
validator?: (value: Value | EmptyValue, errorMessages?: ErrorMessages) => Error | undefined | Promise<Error | undefined>;
|
|
80
77
|
onBlurValidator?: (value: Value | EmptyValue) => Error | undefined | Promise<Error | undefined>;
|
|
81
78
|
/**
|
|
@@ -92,14 +89,16 @@ export interface FieldProps<Value = unknown, EmptyValue = undefined | string | n
|
|
|
92
89
|
/** Should validation be done while writing, not just when blurring the field? */
|
|
93
90
|
continuousValidation?: boolean;
|
|
94
91
|
errorMessages?: ErrorMessages;
|
|
95
|
-
toInput?: (external: Value |
|
|
96
|
-
fromInput?: (
|
|
97
|
-
toEvent?: (internal: Value |
|
|
98
|
-
fromExternal?: (
|
|
99
|
-
|
|
100
|
-
|
|
92
|
+
toInput?: (external: Value | unknown) => Value | unknown;
|
|
93
|
+
fromInput?: (external: Value | unknown) => Value;
|
|
94
|
+
toEvent?: (internal: Value, type: 'onChange' | 'onFocus' | 'onBlur' | 'onBlurValidator') => Value;
|
|
95
|
+
fromExternal?: (external: Value) => Value;
|
|
96
|
+
transformValue?: (value: Value, currentValue?: Value) => Value;
|
|
97
|
+
validateRequired?: (internal: Value, { emptyValue, required, isChanged, error, }: {
|
|
98
|
+
emptyValue: EmptyValue;
|
|
101
99
|
required: boolean;
|
|
102
100
|
isChanged: boolean;
|
|
101
|
+
error: FormError | undefined;
|
|
103
102
|
}) => FormError | undefined;
|
|
104
103
|
}
|
|
105
104
|
export interface FieldHelpProps {
|
|
@@ -121,4 +120,3 @@ export interface ValueProps<Value> extends DataValueReadComponentProps<Value> {
|
|
|
121
120
|
/** Prepare value for display (regardless of source like props or data context) */
|
|
122
121
|
prepare?: (external: Value | undefined) => string;
|
|
123
122
|
}
|
|
124
|
-
export {};
|