@dnb/eufemia 10.73.1 → 10.74.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 +40 -0
- package/cjs/components/autocomplete/Autocomplete.js +7 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/button/style/dnb-button.css +1 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +1 -0
- package/cjs/components/checkbox/Checkbox.d.ts +9 -1
- package/cjs/components/checkbox/Checkbox.js +59 -34
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/CheckboxDocs.js +6 -1
- package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +4 -0
- package/cjs/components/date-picker/DatePicker.js +4 -3
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerDocs.js +6 -1
- package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +20 -17
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +7 -0
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/DatePickerRange.js +2 -28
- package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
- package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/cjs/components/drawer/Drawer.js +1 -0
- package/cjs/components/drawer/Drawer.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +6 -4
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
- package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
- package/cjs/components/heading/HeadingHelpers.js +9 -5
- package/cjs/components/heading/HeadingHelpers.js.map +1 -1
- package/cjs/components/icon/Icon.d.ts +2 -2
- package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +6 -4
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.js +2 -2
- package/cjs/components/switch/SwitchDocs.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.js +1 -1
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/upload/UploadStatus.js +1 -0
- package/cjs/components/upload/UploadStatus.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -0
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +38 -14
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/cjs/fragments/drawer-list/DrawerList.js +70 -175
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
- package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +45 -48
- package/cjs/shared/component-helper.js +72 -201
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/cjs/shared/legacy/component-helper-legacy.js +202 -0
- package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +1 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +1 -0
- package/cjs/shared/locales/sv-SE.js +1 -0
- package/cjs/shared/locales/sv-SE.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +2 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/components/autocomplete/Autocomplete.js +6 -3
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/components/autocomplete/AutocompleteDocs.js +1 -1
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/button/style/dnb-button.css +1 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +1 -0
- package/components/checkbox/Checkbox.d.ts +9 -1
- package/components/checkbox/Checkbox.js +60 -35
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/CheckboxDocs.js +6 -1
- package/components/checkbox/CheckboxDocs.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +4 -0
- package/components/date-picker/DatePicker.js +4 -3
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/components/date-picker/DatePickerCalendar.js +27 -86
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
- package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/components/date-picker/DatePickerContext.d.ts +3 -0
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerDocs.js +6 -1
- package/components/date-picker/DatePickerDocs.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +20 -17
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +7 -0
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/DatePickerRange.js +2 -28
- package/components/date-picker/DatePickerRange.js.map +1 -1
- package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/components/date-picker/style/dnb-date-picker.css +1 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/components/drawer/Drawer.js +1 -0
- package/components/drawer/Drawer.js.map +1 -1
- package/components/dropdown/Dropdown.js +6 -4
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/dropdown/DropdownDocs.d.ts +179 -3
- package/components/dropdown/DropdownDocs.js.map +1 -1
- package/components/heading/HeadingHelpers.js +9 -5
- package/components/heading/HeadingHelpers.js.map +1 -1
- package/components/icon/Icon.d.ts +2 -2
- package/components/input-masked/InputMaskedDocs.js +1 -1
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/components/input-masked/InputMaskedHooks.js +39 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +6 -5
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/number-format/NumberUtils.js +5 -4
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/switch/SwitchDocs.js +2 -2
- package/components/switch/SwitchDocs.js.map +1 -1
- package/components/toggle-button/ToggleButton.js +1 -1
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/upload/UploadStatus.js +1 -0
- package/components/upload/UploadStatus.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +6 -3
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/es/components/autocomplete/AutocompleteDocs.js +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/button/style/dnb-button.css +1 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +1 -0
- package/es/components/checkbox/Checkbox.d.ts +9 -1
- package/es/components/checkbox/Checkbox.js +60 -35
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/CheckboxDocs.js +6 -1
- package/es/components/checkbox/CheckboxDocs.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +4 -0
- package/es/components/date-picker/DatePicker.js +4 -3
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/es/components/date-picker/DatePickerCalendar.js +23 -80
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/es/components/date-picker/DatePickerContext.d.ts +3 -0
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerDocs.js +6 -1
- package/es/components/date-picker/DatePickerDocs.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +20 -17
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +7 -0
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/DatePickerRange.js +2 -27
- package/es/components/date-picker/DatePickerRange.js.map +1 -1
- package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/es/components/date-picker/style/dnb-date-picker.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/es/components/drawer/Drawer.js +1 -0
- package/es/components/drawer/Drawer.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +6 -4
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/dropdown/DropdownDocs.d.ts +179 -3
- package/es/components/dropdown/DropdownDocs.js.map +1 -1
- package/es/components/heading/HeadingHelpers.js +9 -5
- package/es/components/heading/HeadingHelpers.js.map +1 -1
- package/es/components/icon/Icon.d.ts +2 -2
- package/es/components/input-masked/InputMaskedDocs.js +1 -1
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +39 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +6 -5
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +5 -4
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/switch/SwitchDocs.js +2 -2
- package/es/components/switch/SwitchDocs.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.js +1 -1
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/upload/UploadStatus.js +1 -0
- package/es/components/upload/UploadStatus.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -0
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Field/Date/Date.js +1 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/es/extensions/forms/Field/Selection/Selection.js +9 -8
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/es/extensions/forms/Field/Toggle/Toggle.js +38 -12
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -3
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/es/extensions/forms/constants/locales/index.d.ts +2 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.js +5 -3
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.js +18 -15
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/es/fragments/drawer-list/DrawerList.js +72 -173
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/es/fragments/drawer-list/DrawerListItem.js +90 -0
- package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
- package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.d.ts +45 -48
- package/es/shared/component-helper.js +20 -183
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/es/shared/helpers/withCamelCaseProps.js +7 -2
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/es/shared/legacy/component-helper-legacy.js +180 -0
- package/es/shared/legacy/component-helper-legacy.js.map +1 -0
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +1 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +1 -0
- package/es/shared/locales/sv-SE.js +1 -0
- package/es/shared/locales/sv-SE.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +2 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- 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 +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -0
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/extensions/forms/Field/Date/Date.js +1 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/extensions/forms/Field/Selection/Selection.js +10 -9
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/extensions/forms/Field/Toggle/Toggle.js +40 -15
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/extensions/forms/Form/Isolation/Isolation.js +40 -15
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -3
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/extensions/forms/constants/locales/index.d.ts +2 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.js +5 -3
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.js +18 -15
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/fragments/drawer-list/DrawerList.js +71 -175
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/fragments/drawer-list/DrawerListHelpers.js +45 -53
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/fragments/drawer-list/DrawerListItem.js +91 -0
- package/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/fragments/drawer-list/DrawerListPortal.js +91 -121
- package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/fragments/drawer-list/DrawerListProvider.js +12 -19
- package/fragments/drawer-list/DrawerListProvider.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/component-helper.d.ts +45 -48
- package/shared/component-helper.js +23 -189
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/shared/helpers/withCamelCaseProps.js +7 -2
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/shared/legacy/component-helper-legacy.js +185 -0
- package/shared/legacy/component-helper-legacy.js.map +1 -0
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +1 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +1 -0
- package/shared/locales/sv-SE.js +1 -0
- package/shared/locales/sv-SE.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +2 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- 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/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n CountryCode,\n Identifier,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?:\n | 'onSubmit'\n | 'onBeforeSubmit'\n | 'onSubmitCall'\n | 'onSubmitRequest'\n | 'onPathChange'\n | 'onMount'\n callback: (\n params?: { value: unknown } | { preventSubmit: () => void }\n ) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters = DataPathHandlerParameters & {\n path: Path\n}\nexport type DataPathHandler<Data = unknown> = (\n parameters: DataPathHandlerParameters<Data>\n) => boolean | undefined\nexport type DataPathHandlerParameters<Data = unknown> = {\n path: Path\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n error: Error | undefined\n\n /**\n * Used in the \"filterData\" given by the \"useData\" hook.\n */\n data: Data\n\n /** @deprecated – can be removed in v11 */\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n DataPathHandler<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsValue<Props = FieldInternalsRefProps> = {\n id?: Identifier\n props?: Props\n}\nexport type FieldInternalsRef = Record<Path, FieldInternalsValue>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n params?: { remove?: boolean }\n ) => void\n revealError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: <Props>(\n path: Path,\n internals: FieldInternalsValue<Props>\n ) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, { type: 'field'; value?: React.ReactNode }>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Map<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n countryCode?: CountryCode\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n CountryCode,\n Identifier,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?:\n | 'onSubmit'\n | 'onBeforeSubmit'\n | 'onSubmitCall'\n | 'onSubmitRequest'\n | 'onBeforeCommit'\n | 'onPathChange'\n | 'onMount'\n callback: (\n params?: { value: unknown } | { preventSubmit: () => void }\n ) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters = DataPathHandlerParameters & {\n path: Path\n}\nexport type DataPathHandler<Data = unknown> = (\n parameters: DataPathHandlerParameters<Data>\n) => boolean | undefined\nexport type DataPathHandlerParameters<Data = unknown> = {\n path: Path\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n error: Error | undefined\n\n /**\n * Used in the \"filterData\" given by the \"useData\" hook.\n */\n data: Data\n\n /** @deprecated – can be removed in v11 */\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n DataPathHandler<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsValue<Props = FieldInternalsRefProps> = {\n id?: Identifier\n props?: Props\n}\nexport type FieldInternalsRef = Record<Path, FieldInternalsValue>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n params?: { remove?: boolean }\n ) => void\n revealError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: <Props>(\n path: Path,\n internals: FieldInternalsValue<Props>\n ) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, { type: 'field'; value?: React.ReactNode }>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Map<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n countryCode?: CountryCode\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AA+NtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO","ignoreList":[]}
|
|
@@ -551,6 +551,15 @@ export default function Provider(props) {
|
|
|
551
551
|
let submitResult;
|
|
552
552
|
try {
|
|
553
553
|
if (isolate) {
|
|
554
|
+
for (const item of fieldEventListenersRef.current) {
|
|
555
|
+
const {
|
|
556
|
+
type,
|
|
557
|
+
callback
|
|
558
|
+
} = item;
|
|
559
|
+
if (type === 'onBeforeCommit') {
|
|
560
|
+
callback();
|
|
561
|
+
}
|
|
562
|
+
}
|
|
554
563
|
submitResult = await (onCommit === null || onCommit === void 0 ? void 0 : onCommit(internalDataRef.current, {
|
|
555
564
|
clearData
|
|
556
565
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","onUpdateDataValue","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","Object","keys","exists","type","runFilter","condition","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","internals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","Promise","resolve","onSubmitContinueRef","getErrors","map","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","stop","preventSubmit","completeResult","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n MountState,\n TransformData,\n VisibleDataHandler,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will be called when the form is committed.\n * For internal use only.\n */\n onUpdateDataValue?: ContextState['updateDataValue']\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n onUpdateDataValue,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals: ContextState['setFieldInternals'] = useCallback(\n (path, internals) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n internals\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n onUpdateDataValue?.(path, value, { preventUpdate })\n },\n [onUpdateDataValue, setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmitCall' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n // Because we buffer the \"revealError\" in the useFieldProps hook,\n // we need to wait for the next frame before we continue and call \"setShowAllErrors\".\n await new Promise((resolve) =>\n window.requestAnimationFrame(resolve)\n )\n\n setFormState(undefined)\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeSubmit') {\n callback()\n }\n }\n\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n let stop = false\n const preventSubmit = () => (stop = true)\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSubmit') {\n if (isAsync(callback)) {\n await callback({ preventSubmit })\n } else {\n callback({ preventSubmit })\n }\n }\n }\n if (stop) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n { remove = false } = {}\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n if (!remove) {\n fieldEventListenersRef.current.push({ path, type, callback })\n }\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","onUpdateDataValue","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","Object","keys","exists","type","runFilter","condition","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","internals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","Promise","resolve","onSubmitContinueRef","getErrors","map","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","stop","preventSubmit","completeResult","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n MountState,\n TransformData,\n VisibleDataHandler,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will be called when the form is committed.\n * For internal use only.\n */\n onUpdateDataValue?: ContextState['updateDataValue']\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n onUpdateDataValue,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals: ContextState['setFieldInternals'] = useCallback(\n (path, internals) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n internals\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n onUpdateDataValue?.(path, value, { preventUpdate })\n },\n [onUpdateDataValue, setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmitCall' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeCommit') {\n callback()\n }\n }\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n // Because we buffer the \"revealError\" in the useFieldProps hook,\n // we need to wait for the next frame before we continue and call \"setShowAllErrors\".\n await new Promise((resolve) =>\n window.requestAnimationFrame(resolve)\n )\n\n setFormState(undefined)\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onBeforeSubmit') {\n callback()\n }\n }\n\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n let stop = false\n const preventSubmit = () => (stop = true)\n for (const item of fieldEventListenersRef.current) {\n const { type, callback } = item\n if (type === 'onSubmit') {\n if (isAsync(callback)) {\n await callback({ preventSubmit })\n } else {\n callback({ preventSubmit })\n }\n }\n }\n if (stop) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback'],\n { remove = false } = {}\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n if (!remove) {\n fieldEventListenersRef.current.push({ path, type, callback })\n }\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -145,6 +145,7 @@ export function useCheckboxOrToggleOptions({
|
|
|
145
145
|
checked: value === null || value === void 0 ? void 0 : value.includes(active),
|
|
146
146
|
status: (hasError || checkForError([error, info, warning])) && 'error',
|
|
147
147
|
suffix: suffix,
|
|
148
|
+
role: "checkbox",
|
|
148
149
|
on_change: handleSelect
|
|
149
150
|
}, htmlAttributes, rest));
|
|
150
151
|
}, [disabled, emptyValue, handleChange, hasError, htmlAttributes, id, info, optionsCount, value, variant, warning]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArraySelection.js","names":["React","useCallback","useContext","useMemo","classnames","convertJsxToString","Checkbox","HelpButton","ToggleButton","FieldBlock","useFieldProps","checkForError","pickSpacingProps","ToggleButtonGroupContext","mapOptions","DataContext","useDataValue","ArraySelection","props","id","path","dataPath","data","className","variant","layout","optionsLayout","value","hasError","info","warning","disabled","size","emptyValue","htmlAttributes","handleChange","setDisplayValue","children","getValueByPath","dataList","fieldBlockProps","_objectSpread","forId","contentClassName","disableStatusSummary","labelHeight","options","useCheckboxOrToggleOptions","handleActiveData","labels","createElement","Provider","status","undefined","setFieldInternals","optionsCount","Children","count","length","activeData","createOption","i","active","error","title","help","rest","_objectWithoutProperties","_excluded","includes","push","label","suffix","content","handleSelect","newValue","filter","Component","_extends","key","text","checked","on_change","result","map","Boolean","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { DefaultErrorMessages, FieldProps, Path } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { mapOptions, Data } from '../Selection'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { CheckboxProps } from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n }>\n>\n\ntype OptionValue = string | number\n\nexport type Props = FieldProps<Array<OptionValue> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * The size of the component.\n */\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n errorMessages?: DefaultErrorMessages & {\n minItems?: string\n maxItems?: string\n }\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n path,\n dataPath,\n data,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n value,\n hasError,\n info,\n warning,\n disabled,\n size,\n emptyValue,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n children,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n const dataList = dataPath ? getValueByPath(dataPath) : data\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--variant-${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout--${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n if (!size) {\n fieldBlockProps.labelHeight = 'small'\n }\n\n const options = useCheckboxOrToggleOptions({\n id,\n path,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n size,\n hasError,\n handleChange,\n handleActiveData: ({ labels }) => {\n setDisplayValue(labels)\n },\n })\n\n switch (variant) {\n case 'checkbox':\n return <FieldBlock {...fieldBlockProps}>{options}</FieldBlock>\n default:\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n {options}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n }\n}\n\nexport function useCheckboxOrToggleOptions({\n id,\n path,\n variant = 'checkbox',\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n size,\n hasError,\n handleChange,\n handleActiveData,\n}: {\n id: Props['id']\n path?: Props['path']\n variant?: Props['variant']\n info?: Props['info']\n warning?: Props['warning']\n emptyValue?: Props['emptyValue']\n htmlAttributes?: Props['htmlAttributes']\n dataList?: Props['data']\n children?: Props['children']\n value?: Props['value']\n disabled?: Props['disabled']\n size?: Props['size']\n hasError?: ReturnAdditional<Props['value']>['hasError']\n handleChange?: ReturnAdditional<Props['value']>['handleChange']\n handleActiveData?: (item: { labels: Array<Props['children']> }) => void\n}) {\n const { setFieldInternals } = useContext(DataContext)\n const optionsCount = useMemo(\n () => React.Children.count(children) + (dataList?.length || 0),\n [dataList, children]\n )\n const activeData: Array<OptionProps> = []\n\n const createOption = useCallback(\n (props: OptionProps, i: number) => {\n const {\n value: active,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n if (value?.includes(active)) {\n activeData.push(props)\n }\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const handleSelect = () => {\n const newValue = value?.includes(active)\n ? value.filter((value) => value !== active)\n : [...(value ?? []), active]\n\n handleChange?.(\n newValue.length === 0 ? (emptyValue as typeof value) : newValue\n )\n }\n\n const Component = (\n variant === 'checkbox' ? Checkbox : ToggleButton\n ) as typeof Checkbox & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n variant={variant === 'checkbox-button' ? 'checkbox' : undefined}\n className={classnames(\n `dnb-forms-field-array-selection__${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n className\n )}\n size={size}\n label={variant === 'checkbox' ? label : undefined}\n text={variant !== 'checkbox' ? label : undefined}\n value={value}\n disabled={disabled}\n checked={value?.includes(active)}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n on_change={handleSelect}\n {...htmlAttributes}\n {...rest}\n />\n )\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n disabled,\n emptyValue,\n handleChange,\n hasError,\n htmlAttributes,\n id,\n info,\n optionsCount,\n value,\n variant,\n warning,\n ]\n )\n\n const result = [\n ...(dataList || []).map((props, i) =>\n createOption(props as OptionProps, i)\n ),\n ...(mapOptions(children, { createOption }) || []).filter(Boolean),\n ]\n\n if (handleActiveData) {\n handleActiveData({\n labels: activeData.map(({ title, children }) => title ?? children),\n })\n }\n\n if (path) {\n setFieldInternals?.(path + '/arraySelectionData', {\n props: activeData,\n })\n }\n\n return result\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ArraySelection.js","names":["React","useCallback","useContext","useMemo","classnames","convertJsxToString","Checkbox","HelpButton","ToggleButton","FieldBlock","useFieldProps","checkForError","pickSpacingProps","ToggleButtonGroupContext","mapOptions","DataContext","useDataValue","ArraySelection","props","id","path","dataPath","data","className","variant","layout","optionsLayout","value","hasError","info","warning","disabled","size","emptyValue","htmlAttributes","handleChange","setDisplayValue","children","getValueByPath","dataList","fieldBlockProps","_objectSpread","forId","contentClassName","disableStatusSummary","labelHeight","options","useCheckboxOrToggleOptions","handleActiveData","labels","createElement","Provider","status","undefined","setFieldInternals","optionsCount","Children","count","length","activeData","createOption","i","active","error","title","help","rest","_objectWithoutProperties","_excluded","includes","push","label","suffix","content","handleSelect","newValue","filter","Component","_extends","key","text","checked","role","on_change","result","map","Boolean","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { DefaultErrorMessages, FieldProps, Path } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { mapOptions, Data } from '../Selection'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { CheckboxProps } from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n }>\n>\n\ntype OptionValue = string | number\n\nexport type Props = FieldProps<Array<OptionValue> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * The size of the component.\n */\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n errorMessages?: DefaultErrorMessages & {\n minItems?: string\n maxItems?: string\n }\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n path,\n dataPath,\n data,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n value,\n hasError,\n info,\n warning,\n disabled,\n size,\n emptyValue,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n children,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n const dataList = dataPath ? getValueByPath(dataPath) : data\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--variant-${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout--${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n if (!size) {\n fieldBlockProps.labelHeight = 'small'\n }\n\n const options = useCheckboxOrToggleOptions({\n id,\n path,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n size,\n hasError,\n handleChange,\n handleActiveData: ({ labels }) => {\n setDisplayValue(labels)\n },\n })\n\n switch (variant) {\n case 'checkbox':\n return <FieldBlock {...fieldBlockProps}>{options}</FieldBlock>\n default:\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n {options}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n }\n}\n\nexport function useCheckboxOrToggleOptions({\n id,\n path,\n variant = 'checkbox',\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n size,\n hasError,\n handleChange,\n handleActiveData,\n}: {\n id: Props['id']\n path?: Props['path']\n variant?: Props['variant']\n info?: Props['info']\n warning?: Props['warning']\n emptyValue?: Props['emptyValue']\n htmlAttributes?: Props['htmlAttributes']\n dataList?: Props['data']\n children?: Props['children']\n value?: Props['value']\n disabled?: Props['disabled']\n size?: Props['size']\n hasError?: ReturnAdditional<Props['value']>['hasError']\n handleChange?: ReturnAdditional<Props['value']>['handleChange']\n handleActiveData?: (item: { labels: Array<Props['children']> }) => void\n}) {\n const { setFieldInternals } = useContext(DataContext)\n const optionsCount = useMemo(\n () => React.Children.count(children) + (dataList?.length || 0),\n [dataList, children]\n )\n const activeData: Array<OptionProps> = []\n\n const createOption = useCallback(\n (props: OptionProps, i: number) => {\n const {\n value: active,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n if (value?.includes(active)) {\n activeData.push(props)\n }\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const handleSelect = () => {\n const newValue = value?.includes(active)\n ? value.filter((value) => value !== active)\n : [...(value ?? []), active]\n\n handleChange?.(\n newValue.length === 0 ? (emptyValue as typeof value) : newValue\n )\n }\n\n const Component = (\n variant === 'checkbox' ? Checkbox : ToggleButton\n ) as typeof Checkbox & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n variant={variant === 'checkbox-button' ? 'checkbox' : undefined}\n className={classnames(\n `dnb-forms-field-array-selection__${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n className\n )}\n size={size}\n label={variant === 'checkbox' ? label : undefined}\n text={variant !== 'checkbox' ? label : undefined}\n value={value}\n disabled={disabled}\n checked={value?.includes(active)}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n role=\"checkbox\"\n on_change={handleSelect}\n {...htmlAttributes}\n {...rest}\n />\n )\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n disabled,\n emptyValue,\n handleChange,\n hasError,\n htmlAttributes,\n id,\n info,\n optionsCount,\n value,\n variant,\n warning,\n ]\n )\n\n const result = [\n ...(dataList || []).map((props, i) =>\n createOption(props as OptionProps, i)\n ),\n ...(mapOptions(children, { createOption }) || []).filter(Boolean),\n ]\n\n if (handleActiveData) {\n handleActiveData({\n labels: activeData.map(({ title, children }) => title ?? children),\n })\n }\n\n if (path) {\n setFieldInternals?.(path + '/arraySelectionData', {\n props: activeData,\n })\n }\n\n return result\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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","ignoreList":[]}
|