@dnb/eufemia 10.73.2 → 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 +28 -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/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/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/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 +24 -8
- 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/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/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/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/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 +24 -6
- 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/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/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 +26 -9
- 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 +1 -1
- 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":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_useFieldProps","_utils","_FieldBlock","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Selection","props","_props$autocompletePr","clearValue","useMemo","makeUniqueId","id","className","variant","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","additionalArgs","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDrawerListChange","useCallback","_ref","_data$selectedKey","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","disableStatusSummary","pickSpacingProps","onType","onTypeAutocompleteHandler","event","Component","Radio","ToggleButton","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","React","Children","count","labelHeight","createElement","Group","role","layout_direction","on_change","_data$find","renderDropdownItems","concat","makeOptions","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","checkForError","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","Autocomplete","convertCamelCasePropsToSnakeCase","freeze","preventSelection","on_type","mode","selectall","Dropdown","_ref6","valueProp","optionsCount","createOption","help","rest","suffix","HelpButton","convertJsxToString","key","text","map","mapOptions","_ref7","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","selected_value","style","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCasePropsToSnakeCase,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { RadioProps } from '../../../../components/Radio'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport type { RadioGroupProps } from '../../../../components/radio/RadioGroup'\nimport type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'radio-list' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\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 * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The size of the component.\n */\n size?:\n | ToggleButtonGroupProps['size']\n | RadioGroupProps['size']\n | AutocompleteAllProps['size']\n | DropdownAllProps['size']\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n size,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n additionalArgs,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDrawerListChange = useCallback(\n ({ data, value }) => {\n const selectedKey = data?.selectedKey ?? value\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey,\n { data }\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const onType = props?.autocompleteProps?.onType\n const onTypeAutocompleteHandler = useCallback(\n (event) => {\n if (typeof onType === 'function') {\n const { value } = event\n onType({\n ...event,\n ...additionalArgs,\n value: value === '' ? emptyValue : value,\n })\n }\n },\n [additionalArgs, emptyValue, onType]\n )\n\n switch (variant) {\n case 'radio':\n case 'radio-list':\n case 'button': {\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n const additionalFieldBlockProps: FieldBlockProps = {\n asFieldset: React.Children.count(items) > 1,\n }\n if (!size) {\n additionalFieldBlockProps.labelHeight = 'small'\n }\n if (variant === 'radio-list') {\n additionalFieldBlockProps.width = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\n role=\"radiogroup\"\n size={size}\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n size,\n on_change: handleDrawerListChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n width,\n }\n if (layout === 'horizontal') {\n specificFieldBlockProps.width = undefined\n specificFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCasePropsToSnakeCase(\n Object.freeze(autocompleteProps)\n ) as AutocompleteAllProps)\n : null)}\n value={\n autocompleteProps?.preventSelection ? undefined : value\n }\n on_type={onTypeAutocompleteHandler}\n data={\n !props.data &&\n !props.dataPath &&\n autocompleteProps?.mode === 'async'\n ? undefined\n : data\n }\n selectall\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCasePropsToSnakeCase(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n size?: ToggleButtonProps['size'] | RadioProps['size']\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, size, ...rest } = props\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 iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={\n variant === 'radio' || variant === 'radio-list'\n ? label\n : undefined\n }\n text={variant === 'button' ? label : undefined}\n role=\"radio\"\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n size={size}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_useFieldProps","_utils","_FieldBlock","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","validDrawerListProps","validAutocompleteProps","listOfValidAutocompleteProps","exports","validDropdownProps","listOfValidDropdownProps","Selection","props","_props$autocompletePr","clearValue","useMemo","makeUniqueId","id","className","variant","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","additionalArgs","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDrawerListChange","useCallback","_ref","_data$selectedKey","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","disableStatusSummary","pickSpacingProps","onType","onTypeAutocompleteHandler","event","Component","Radio","ToggleButton","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","React","Children","count","labelHeight","contentWidth","createElement","Group","role","layout_direction","on_change","_data$find","renderDropdownItems","concat","makeOptions","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","checkForError","on_show","on_hide","stretch","specificFieldBlockProps","Autocomplete","convertCamelCasePropsToSnakeCase","freeze","preventSelection","on_type","mode","selectall","Dropdown","_ref6","valueProp","optionsCount","createOption","help","rest","suffix","HelpButton","convertJsxToString","key","text","map","mapOptions","_ref7","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","selected_value","style","_supportsSpacingProps","_default"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n AssertNoMissing,\n convertCamelCasePropsToSnakeCase,\n KeysWithUnderscore,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { RadioProps } from '../../../../components/Radio'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport type { RadioGroupProps } from '../../../../components/radio/RadioGroup'\nimport type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup'\nimport {\n DrawerListProperties,\n DrawerListEvents,\n} from '../../../../fragments/drawer-list/DrawerListDocs'\nimport {\n AutocompleteEvents,\n AutocompleteProperties,\n} from '../../../../components/autocomplete/AutocompleteDocs'\nimport {\n DropdownProperties,\n DropdownEvents,\n} from '../../../../components/dropdown/DropdownDocs'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'radio-list' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\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 * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The size of the component.\n */\n size?:\n | ToggleButtonGroupProps['size']\n | RadioGroupProps['size']\n | AutocompleteAllProps['size']\n | DropdownAllProps['size']\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nconst validDrawerListProps = [\n // DrawerList Properties\n 'default_value',\n 'triangle_position',\n 'label_direction',\n 'prevent_selection',\n 'prevent_close',\n 'keep_open',\n 'independent_width',\n 'fixed_position',\n 'enable_body_lock',\n 'skip_keysearch',\n 'ignore_events',\n 'align_drawer',\n 'list_class',\n 'portal_class',\n 'no_scroll_animation',\n 'no_animation',\n 'skip_portal',\n 'min_height',\n 'max_height',\n 'page_offset',\n 'observer_element',\n 'cache_hash',\n 'wrapper_element',\n 'options_render',\n\n // DrawerList Events\n 'on_pre_change',\n 'on_change',\n 'on_select',\n 'on_show',\n 'on_hide',\n] as const satisfies ReadonlyArray<\n KeysWithUnderscore<typeof DrawerListProperties & typeof DrawerListEvents>\n>\n\nconst validAutocompleteProps = [\n // Autocomplete Properties\n 'align_autocomplete',\n 'aria_live_options',\n 'disable_filter',\n 'disable_highlighting',\n 'disable_reorder',\n 'drawer_class',\n 'icon_position',\n 'icon_size',\n 'indicator_label',\n 'input_element',\n 'input_icon',\n 'input_ref',\n 'input_value',\n 'keep_selection',\n 'keep_value',\n 'keep_value_and_selection',\n 'label_direction',\n 'label_sr_only',\n 'no_options',\n 'open_on_focus',\n 'prevent_selection',\n 'search_in_word_index',\n 'search_numbers',\n 'selected_sr',\n 'show_all',\n 'show_clear_button',\n 'show_options_sr',\n 'show_submit_button',\n 'skip_portal',\n 'status_props',\n 'status_state',\n 'submit_button_icon',\n 'submit_button_title',\n 'submit_element',\n 'triangle_position',\n\n // Autocomplete Events\n 'on_type',\n 'on_focus',\n 'on_blur',\n 'on_change',\n 'on_select',\n 'on_show',\n 'on_hide',\n] as const satisfies ReadonlyArray<\n KeysWithUnderscore<\n typeof AutocompleteProperties & typeof AutocompleteEvents\n >\n>\nexport const listOfValidAutocompleteProps = [\n ...(validAutocompleteProps satisfies AssertNoMissing<\n typeof validAutocompleteProps,\n typeof AutocompleteProperties & typeof AutocompleteEvents\n >),\n ...(validDrawerListProps satisfies AssertNoMissing<\n typeof validDrawerListProps,\n typeof DrawerListProperties & typeof DrawerListEvents\n >),\n]\n\nconst validDropdownProps = [\n // From DropdownProperties\n 'icon_size',\n 'icon_position',\n 'triangle_position',\n 'open_on_focus',\n 'prevent_selection',\n 'action_menu',\n 'more_menu',\n 'align_dropdown',\n 'independent_width',\n 'skip_portal',\n 'status_state',\n 'status_props',\n 'label_direction',\n 'label_sr_only',\n 'trigger_element',\n\n // From DropdownEvents\n 'on_change',\n 'on_select',\n 'on_show',\n 'on_hide',\n] as const satisfies ReadonlyArray<\n KeysWithUnderscore<typeof DropdownProperties & typeof DropdownEvents>\n>\nexport const listOfValidDropdownProps = [\n ...(validDropdownProps satisfies AssertNoMissing<\n typeof validDropdownProps,\n typeof DropdownProperties & typeof DropdownEvents\n >),\n ...(validDrawerListProps satisfies AssertNoMissing<\n typeof validDrawerListProps,\n typeof DrawerListProperties & typeof DrawerListEvents\n >),\n]\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n size,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n additionalArgs,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDrawerListChange = useCallback(\n ({ data, value }) => {\n const selectedKey = data?.selectedKey ?? value\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey,\n { data }\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const onType = props?.autocompleteProps?.onType\n const onTypeAutocompleteHandler = useCallback(\n (event) => {\n if (typeof onType === 'function') {\n const { value } = event\n onType({\n ...event,\n ...additionalArgs,\n value: value === '' ? emptyValue : value,\n })\n }\n },\n [additionalArgs, emptyValue, onType]\n )\n\n switch (variant) {\n case 'radio':\n case 'radio-list':\n case 'button': {\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n const additionalFieldBlockProps: FieldBlockProps = {\n asFieldset: React.Children.count(items) > 1,\n }\n if (!size) {\n additionalFieldBlockProps.labelHeight = 'small'\n }\n if (variant === 'radio-list') {\n additionalFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\n role=\"radiogroup\"\n size={size}\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n size,\n on_change: handleDrawerListChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n contentWidth: width,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCasePropsToSnakeCase(\n Object.freeze(autocompleteProps),\n listOfValidAutocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n value={\n autocompleteProps?.preventSelection ? undefined : value\n }\n on_type={onTypeAutocompleteHandler}\n data={\n !props.data &&\n !props.dataPath &&\n autocompleteProps?.mode === 'async'\n ? undefined\n : data\n }\n selectall\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCasePropsToSnakeCase(\n dropdownProps,\n listOfValidDropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n size?: ToggleButtonProps['size'] | RadioProps['size']\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, size, ...rest } = props\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 iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={\n variant === 'radio' || variant === 'radio-list'\n ? label\n : undefined\n }\n text={variant === 'button' ? label : undefined}\n role=\"radio\"\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n size={size}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { FieldProps } from '../../types';
|
|
2
3
|
import type { CheckboxProps } from '../../../../components/Checkbox';
|
|
3
4
|
import type { ToggleButtonProps } from '../../../../components/ToggleButton';
|
|
@@ -8,6 +9,12 @@ export type ToggleProps = {
|
|
|
8
9
|
textOn?: string;
|
|
9
10
|
textOff?: string;
|
|
10
11
|
size?: ToggleButtonProps['size'] | CheckboxProps['size'];
|
|
12
|
+
/**
|
|
13
|
+
* Checkbox props
|
|
14
|
+
*/
|
|
15
|
+
onClick?: (value: unknown, params: {
|
|
16
|
+
event: React.MouseEvent<HTMLInputElement>;
|
|
17
|
+
}) => void;
|
|
11
18
|
};
|
|
12
19
|
export type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> & ToggleProps;
|
|
13
20
|
declare function Toggle(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
"use client";
|
|
2
3
|
|
|
3
4
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -45,16 +46,30 @@ function Toggle(props) {
|
|
|
45
46
|
handleChange,
|
|
46
47
|
setDisplayValue
|
|
47
48
|
} = (0, _hooks.useFieldProps)(preparedProps);
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
const preventChangeRef = (0, _react.useRef)(false);
|
|
50
|
+
const onClick = preparedProps === null || preparedProps === void 0 ? void 0 : preparedProps.onClick;
|
|
51
|
+
const handleClick = (0, _react.useCallback)(args => {
|
|
52
|
+
const preventDefault = () => {
|
|
53
|
+
var _args$preventDefault;
|
|
54
|
+
preventChangeRef.current = true;
|
|
55
|
+
(_args$preventDefault = args.preventDefault) === null || _args$preventDefault === void 0 ? void 0 : _args$preventDefault.call(args);
|
|
56
|
+
};
|
|
57
|
+
if (preventChangeRef.current) {
|
|
58
|
+
args.checked = !args.checked;
|
|
59
|
+
preventChangeRef.current = false;
|
|
60
|
+
}
|
|
61
|
+
const event = _objectSpread(_objectSpread({}, args), {}, {
|
|
62
|
+
preventDefault
|
|
63
|
+
});
|
|
64
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(args.checked ? valueOn : valueOff, event);
|
|
65
|
+
}, [onClick, valueOff, valueOn]);
|
|
66
|
+
const handleCheckboxChange = (0, _react.useCallback)(args => {
|
|
67
|
+
handleChange === null || handleChange === void 0 ? void 0 : handleChange(args.checked ? valueOn : valueOff, args);
|
|
53
68
|
}, [handleChange, valueOn, valueOff]);
|
|
54
|
-
const handleToggleChange = (0, _react.useCallback)(
|
|
69
|
+
const handleToggleChange = (0, _react.useCallback)(_ref => {
|
|
55
70
|
let {
|
|
56
71
|
value
|
|
57
|
-
} =
|
|
72
|
+
} = _ref;
|
|
58
73
|
handleChange === null || handleChange === void 0 ? void 0 : handleChange(value === 'on' ? valueOn : valueOff);
|
|
59
74
|
}, [handleChange, valueOn, valueOff]);
|
|
60
75
|
const cn = (0, _classnames.default)('dnb-forms-field-toggle', className);
|
|
@@ -96,7 +111,8 @@ function Toggle(props) {
|
|
|
96
111
|
disabled: disabled,
|
|
97
112
|
size: size !== 'small' ? size : undefined,
|
|
98
113
|
status: hasError ? 'error' : undefined,
|
|
99
|
-
onChange: handleCheckboxChange
|
|
114
|
+
onChange: handleCheckboxChange,
|
|
115
|
+
onClick: handleClick
|
|
100
116
|
}, htmlAttributes)));
|
|
101
117
|
case 'button':
|
|
102
118
|
return _react.default.createElement(_FieldBlock.default, fieldBlockProps, _react.default.createElement(_components.ToggleButton, _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_ButtonRow","_FieldBlock","_hooks","_utils","_ToggleButtonGroupContext","_useTranslation","_useIItemNo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Toggle","props","translations","useTranslation","ToggleField","preparedProps","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","size","hasError","htmlAttributes","handleChange","setDisplayValue","useFieldProps","handleCheckboxChange","useCallback","_ref","checked","handleToggleChange","_ref2","cn","classnames","fieldBlockProps","forId","pickSpacingProps","isOn","isOff","useMemo","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","useIterateItemNo","createElement","undefined","Checkbox","yes","no","status","onChange","ToggleButton","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIItemNo'\nimport type { CheckboxProps } from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const handleCheckboxChange = useCallback(\n ({ checked }) => {\n handleChange?.(checked ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Toggle.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_ButtonRow","_FieldBlock","_hooks","_utils","_ToggleButtonGroupContext","_useTranslation","_useIItemNo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Toggle","props","translations","useTranslation","ToggleField","preparedProps","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","size","hasError","htmlAttributes","handleChange","setDisplayValue","useFieldProps","preventChangeRef","useRef","onClick","handleClick","useCallback","args","preventDefault","_args$preventDefault","current","checked","event","handleCheckboxChange","handleToggleChange","_ref","cn","classnames","fieldBlockProps","forId","pickSpacingProps","isOn","isOff","useMemo","text","label","labelSuffix","required","labelSrOnly","labelWithItemNo","useIterateItemNo","createElement","undefined","Checkbox","yes","no","status","onChange","ToggleButton","on_change","role","asFieldset","bottom","Group","Provider","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIItemNo'\nimport type {\n CheckboxProps,\n OnChangeParams,\n OnClickParams,\n} from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n\n /**\n * Checkbox props\n */\n onClick?: (\n value: unknown,\n params: { event: React.MouseEvent<HTMLInputElement> }\n ) => void\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const preventChangeRef = useRef(false)\n\n const onClick = preparedProps?.onClick\n const handleClick = useCallback(\n (args: OnClickParams) => {\n const preventDefault = () => {\n preventChangeRef.current = true\n args.preventDefault?.()\n }\n\n if (preventChangeRef.current) {\n args.checked = !args.checked\n preventChangeRef.current = false\n }\n\n const event = {\n ...args,\n preventDefault,\n }\n onClick?.(args.checked ? valueOn : valueOff, event)\n },\n [onClick, valueOff, valueOn]\n )\n const handleCheckboxChange = useCallback(\n (args: OnChangeParams) => {\n handleChange?.(args.checked ? valueOn : valueOff, args)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required, labelSrOnly } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n labelSrOnly={labelSrOnly}\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n onClick={handleClick}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButton.Group role=\"radiogroup\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n role=\"radio\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n role=\"radio\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ToggleButton.Group>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n role=\"checkbox\"\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAEA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,yBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,eAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAAkE,SAAAE,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAT,CAAA,MAAAA,CAAA,GAAAuB,SAAA,CAAAC,MAAA,EAAAxB,CAAA,UAAAM,CAAA,GAAAiB,SAAA,CAAAvB,CAAA,YAAAK,CAAA,IAAAC,CAAA,OAAAU,cAAA,CAAAC,IAAA,CAAAX,CAAA,EAAAD,CAAA,MAAAI,CAAA,CAAAJ,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAI,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAAA,SAAAG,QAAA1B,CAAA,EAAAK,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAe,IAAA,CAAA3B,CAAA,OAAAY,MAAA,CAAAgB,qBAAA,QAAAC,CAAA,GAAAjB,MAAA,CAAAgB,qBAAA,CAAA5B,CAAA,GAAAK,CAAA,KAAAwB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAzB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAK,CAAA,EAAA0B,UAAA,OAAAzB,CAAA,CAAA0B,IAAA,CAAAP,KAAA,CAAAnB,CAAA,EAAAuB,CAAA,YAAAvB,CAAA;AAAA,SAAA2B,cAAAjC,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAkB,SAAA,CAAAC,MAAA,EAAAnB,CAAA,UAAAC,CAAA,WAAAiB,SAAA,CAAAlB,CAAA,IAAAkB,SAAA,CAAAlB,CAAA,QAAAA,CAAA,OAAAqB,OAAA,CAAAd,MAAA,CAAAN,CAAA,OAAA4B,OAAA,WAAA7B,CAAA,IAAA8B,eAAA,CAAAnC,CAAA,EAAAK,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAwB,yBAAA,GAAAxB,MAAA,CAAAyB,gBAAA,CAAArC,CAAA,EAAAY,MAAA,CAAAwB,yBAAA,CAAA9B,CAAA,KAAAoB,OAAA,CAAAd,MAAA,CAAAN,CAAA,GAAA4B,OAAA,WAAA7B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAL,CAAA;AAAA,SAAAmC,gBAAAnC,CAAA,EAAAK,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAiC,cAAA,CAAAjC,CAAA,MAAAL,CAAA,GAAAY,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,IAAAkC,KAAA,EAAAjC,CAAA,EAAAyB,UAAA,MAAAS,YAAA,MAAAC,QAAA,UAAAzC,CAAA,CAAAK,CAAA,IAAAC,CAAA,EAAAN,CAAA;AAAA,SAAAsC,eAAAhC,CAAA,QAAAY,CAAA,GAAAwB,YAAA,CAAApC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAwB,aAAApC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAN,CAAA,GAAAM,CAAA,CAAAqC,MAAA,CAAAC,WAAA,kBAAA5C,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAA2B,SAAA,yEAAAxC,CAAA,GAAAyC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AA4BlE,SAAS0C,MAAMA,CAACC,KAAY,EAAE;EAC5B,MAAMC,YAAY,GAAG,IAAAC,uBAAc,EAAC,CAAC,CAACC,WAAW;EAEjD,MAAMC,aAAoB,GAAApB,aAAA,CAAAA,aAAA,KACrBgB,KAAK;IACRK,aAAa,EAAEL,KAAK,CAACK;EAAa,EACnC;EAED,MAAM;IACJC,EAAE;IACFC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPvB,KAAK;IACLwB,IAAI;IACJC,QAAQ;IACRC,cAAc;IACdC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,oBAAa,EAACf,aAAa,CAAC;EAEhC,MAAMgB,gBAAgB,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAEtC,MAAMC,OAAO,GAAGlB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEkB,OAAO;EACtC,MAAMC,WAAW,GAAG,IAAAC,kBAAW,EAC5BC,IAAmB,IAAK;IACvB,MAAMC,cAAc,GAAGA,CAAA,KAAM;MAAA,IAAAC,oBAAA;MAC3BP,gBAAgB,CAACQ,OAAO,GAAG,IAAI;MAC/B,CAAAD,oBAAA,GAAAF,IAAI,CAACC,cAAc,cAAAC,oBAAA,uBAAnBA,oBAAA,CAAA3D,IAAA,CAAAyD,IAAsB,CAAC;IACzB,CAAC;IAED,IAAIL,gBAAgB,CAACQ,OAAO,EAAE;MAC5BH,IAAI,CAACI,OAAO,GAAG,CAACJ,IAAI,CAACI,OAAO;MAC5BT,gBAAgB,CAACQ,OAAO,GAAG,KAAK;IAClC;IAEA,MAAME,KAAK,GAAA9C,aAAA,CAAAA,aAAA,KACNyC,IAAI;MACPC;IAAc,EACf;IACDJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGG,IAAI,CAACI,OAAO,GAAGrB,OAAO,GAAGC,QAAQ,EAAEqB,KAAK,CAAC;EACrD,CAAC,EACD,CAACR,OAAO,EAAEb,QAAQ,EAAED,OAAO,CAC7B,CAAC;EACD,MAAMuB,oBAAoB,GAAG,IAAAP,kBAAW,EACrCC,IAAoB,IAAK;IACxBR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGQ,IAAI,CAACI,OAAO,GAAGrB,OAAO,GAAGC,QAAQ,EAAEgB,IAAI,CAAC;EACzD,CAAC,EACD,CAACR,YAAY,EAAET,OAAO,EAAEC,QAAQ,CAClC,CAAC;EACD,MAAMuB,kBAAkB,GAAG,IAAAR,kBAAW,EACpCS,IAAA,IAAe;IAAA,IAAd;MAAE3C;IAAM,CAAC,GAAA2C,IAAA;IACRhB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG3B,KAAK,KAAK,IAAI,GAAGkB,OAAO,GAAGC,QAAQ,CAAC;EACrD,CAAC,EACD,CAACQ,YAAY,EAAET,OAAO,EAAEC,QAAQ,CAClC,CAAC;EAED,MAAMyB,EAAE,GAAG,IAAAC,mBAAU,EAAC,wBAAwB,EAAE5B,SAAS,CAAC;EAE1D,MAAM6B,eAAgC,GAAApD,aAAA;IACpCqD,KAAK,EAAE/B,EAAE;IACTC,SAAS,EAAE2B,EAAE;IACbvB;EAAQ,GACL,IAAA2B,uBAAgB,EAACtC,KAAK,CAAC,CAC3B;EAED,MAAMuC,IAAI,GAAGjD,KAAK,KAAKkB,OAAO;EAC9B,MAAMgC,KAAK,GAAGlD,KAAK,KAAKmB,QAAQ;EAEhC,IAAAgC,cAAO,EAAC,MAAM;IACZ,MAAMC,IAAI,GAAGH,IAAI,GAAG3B,MAAM,GAAGC,OAAO;IACpC,IAAI6B,IAAI,EAAE;MACRxB,eAAe,CAACwB,IAAI,CAAC;IACvB;EACF,CAAC,EAAE,CAACH,IAAI,EAAErB,eAAe,EAAEL,OAAO,EAAED,MAAM,CAAC,CAAC;EAE5C,MAAM;IAAE+B,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAY,CAAC,GAAG9C,KAAK;EAC3D,MAAM+C,eAAe,GAAG,IAAAC,4BAAgB,EAAC;IACvCL,KAAK;IACLC,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,QAAQnC,OAAO;IACb;IACA,KAAK,UAAU;MACb,OACExE,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACxG,WAAA,CAAAQ,OAAU,EAAAkB,QAAA,KAAKiE,eAAe;QAAEO,KAAK,EAAEO;MAAU,IAChDhH,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAA4G,QAAQ,EAAAhF,QAAA;QACPmC,EAAE,EAAEA,EAAG;QACPC,SAAS,EAAE2B,EAAG;QACdS,KAAK,EACHI,eAAe,aAAfA,eAAe,cAAfA,eAAe,GACdR,IAAI,GACD3B,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACmD,GAAG,GAC1BvC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACoD,EAC7B;QACDP,WAAW,EAAEA,WAAY;QACzBjB,OAAO,EAAEU,IAAK;QACd5B,QAAQ,EAAEA,QAAS;QACnBG,IAAI,EAAEA,IAAI,KAAK,OAAO,GAAGA,IAAI,GAAGoC,SAAU;QAC1CI,MAAM,EAAEvC,QAAQ,GAAG,OAAO,GAAGmC,SAAU;QACvCK,QAAQ,EAAExB,oBAAqB;QAC/BT,OAAO,EAAEC;MAAY,GACjBP,cAAc,CACnB,CACS,CAAC;IAEjB,KAAK,QAAQ;MACX,OACE9E,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACxG,WAAA,CAAAQ,OAAU,EAAKmF,eAAe,EAC7BlG,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAAiH,YAAY,EAAArF,QAAA;QACXmC,EAAE,EAAEA,EAAG;QACPoC,IAAI,EACFH,IAAI,GACA3B,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACmD,GAAG,GAC1BvC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACoD,EAC7B;QACDxB,OAAO,EAAEU,IAAK;QACd5B,QAAQ,EAAEA,QAAS;QACnB2C,MAAM,EAAEvC,QAAQ,GAAG,OAAO,GAAGmC,SAAU;QACvC5D,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChCwB,IAAI,EAAEA,IAAK;QACX2C,SAAS,EAAE1B,oBAAqB;QAChC2B,IAAI,EAAC;MAAU,GACX1C,cAAc,CACnB,CACS,CAAC;IAEjB,KAAK,SAAS;MACZ,OACE9E,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACxG,WAAA,CAAAQ,OAAU,EAAAkB,QAAA,KAAKiE,eAAe;QAAEuB,UAAU;MAAA,IACzCzH,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACzG,UAAA,CAAAS,OAAS;QAAC2G,MAAM,EAAC;MAAS,GACzB1H,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAAiH,YAAY,CAACK,KAAK;QAACH,IAAI,EAAC;MAAY,GACnCxH,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACrG,yBAAA,CAAAK,OAAwB,CAAC6G,QAAQ;QAChCxE,KAAK,EAAE;UACLA,KAAK,EAAEiD,IAAI,GAAG,IAAI,GAAGC,KAAK,GAAG,KAAK,GAAG,IAAI;UACzCe,QAAQ,EAAEvB,kBAAkB;UAC5BsB,MAAM,EAAEvC,QAAQ,GAAG,OAAO,GAAGmC,SAAS;UACtCvC,QAAQ;UACRG;QACF;MAAE,GAEF5E,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAAiH,YAAY,EAAArF,QAAA;QACXuE,IAAI,EAAE9B,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACmD,GAAI;QACjC9D,KAAK,EAAC,IAAI;QACVoE,IAAI,EAAC;MAAO,GACR1C,cAAc,CACnB,CAAC,EACF9E,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAAiH,YAAY,EAAArF,QAAA;QACXuE,IAAI,EAAE7B,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACoD,EAAG;QACjC/D,KAAK,EAAC,KAAK;QACXoE,IAAI,EAAC;MAAO,GACR1C,cAAc,CACnB,CACgC,CACjB,CACX,CACD,CAAC;IAEjB,KAAK,iBAAiB;MACpB,OACE9E,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAACxG,WAAA,CAAAQ,OAAU,EAAKmF,eAAe,EAC7BlG,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC1G,WAAA,CAAAiH,YAAY,EAAArF,QAAA;QACXmC,EAAE,EAAEA,EAAG;QACPI,OAAO,EAAC,UAAU;QAClBgC,IAAI,EACFH,IAAI,GACA3B,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACmD,GAAG,GAC1BvC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACoD,EAC7B;QACDxB,OAAO,EAAEU,IAAK;QACd5B,QAAQ,EAAEA,QAAS;QACnB2C,MAAM,EAAEvC,QAAQ,GAAG,OAAO,GAAGmC,SAAU;QACvC5D,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChCwB,IAAI,EAAEA,IAAK;QACX2C,SAAS,EAAE1B,oBAAqB;QAChC2B,IAAI,EAAC;MAAU,GACX1C,cAAc,CACnB,CACS,CAAC;EAEnB;AACF;AAEAjB,MAAM,CAACgE,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAhH,OAAA,GACpB8C,MAAM","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ToggleProperties = void 0;
|
|
6
|
+
exports.ToggleProperties = exports.ToggleEvents = void 0;
|
|
7
7
|
const ToggleProperties = exports.ToggleProperties = {
|
|
8
8
|
valueOn: {
|
|
9
9
|
doc: 'Source data value when the toggle is in the "on-state" (varies based on UI variant).',
|
|
@@ -36,4 +36,11 @@ const ToggleProperties = exports.ToggleProperties = {
|
|
|
36
36
|
status: 'optional'
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
+
const ToggleEvents = exports.ToggleEvents = {
|
|
40
|
+
onClick: {
|
|
41
|
+
doc: 'Will be called on click.',
|
|
42
|
+
type: '(value: unknown, { event: ClickEvent, preventDefault: () => void }) => void',
|
|
43
|
+
status: 'optional'
|
|
44
|
+
}
|
|
45
|
+
};
|
|
39
46
|
//# sourceMappingURL=ToggleDocs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleDocs.js","names":["ToggleProperties","exports","valueOn","doc","type","status","valueOff","textOn","textOff","size","variant"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/ToggleDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ToggleProperties: PropertiesTableProps = {\n valueOn: {\n doc: 'Source data value when the toggle is in the \"on-state\" (varies based on UI variant).',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n valueOff: {\n doc: 'Source data value when the toggle is in the \"off-state\".',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n textOn: {\n doc: 'Text to show in the UI when in the \"on-state\".',\n type: 'string',\n status: 'optional',\n },\n textOff: {\n doc: 'Text to show in the UI when in the \"off-state\".',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',\n type: 'string',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gBAAsC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACpDE,OAAO,EAAE;IACPC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ToggleDocs.js","names":["ToggleProperties","exports","valueOn","doc","type","status","valueOff","textOn","textOff","size","variant","ToggleEvents","onClick"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/ToggleDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ToggleProperties: PropertiesTableProps = {\n valueOn: {\n doc: 'Source data value when the toggle is in the \"on-state\" (varies based on UI variant).',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n valueOff: {\n doc: 'Source data value when the toggle is in the \"off-state\".',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n textOn: {\n doc: 'Text to show in the UI when in the \"on-state\".',\n type: 'string',\n status: 'optional',\n },\n textOff: {\n doc: 'Text to show in the UI when in the \"off-state\".',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const ToggleEvents: PropertiesTableProps = {\n onClick: {\n doc: 'Will be called on click.',\n type: '(value: unknown, { event: ClickEvent, preventDefault: () => void }) => void',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gBAAsC,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EACpDE,OAAO,EAAE;IACPC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAEM,MAAMM,YAAkC,GAAAV,OAAA,CAAAU,YAAA,GAAG;EAChDC,OAAO,EAAE;IACPT,GAAG,EAAE,0BAA0B;IAC/BC,IAAI,EAAE,6EAA6E;IACnFC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
|
|
4
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = IsolatedContainer;
|
|
9
|
+
exports.isolationError = void 0;
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _components = require("../../../../components");
|
|
12
|
+
var _hooks = require("../../hooks");
|
|
13
|
+
var _useHandleStatus = _interopRequireDefault(require("./useHandleStatus"));
|
|
14
|
+
var _IsolationContext = _interopRequireDefault(require("./IsolationContext"));
|
|
15
|
+
var _Context = _interopRequireDefault(require("../../DataContext/Context"));
|
|
16
|
+
var _useDataContextSnapshot = _interopRequireDefault(require("./useDataContextSnapshot"));
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
function IsolatedContainer(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
children
|
|
23
|
+
} = _ref;
|
|
24
|
+
const {
|
|
25
|
+
outerContext,
|
|
26
|
+
preventUncommittedChanges
|
|
27
|
+
} = (0, _react.useContext)(_IsolationContext.default);
|
|
28
|
+
const {
|
|
29
|
+
preventUncommittedChangesText
|
|
30
|
+
} = (0, _hooks.useTranslation)().Isolation;
|
|
31
|
+
const {
|
|
32
|
+
showStatus: showCommitStatus
|
|
33
|
+
} = (0, _useHandleStatus.default)({
|
|
34
|
+
outerContext,
|
|
35
|
+
preventUncommittedChanges,
|
|
36
|
+
error: isolationError
|
|
37
|
+
});
|
|
38
|
+
const {
|
|
39
|
+
setFieldEventListener
|
|
40
|
+
} = (0, _react.useContext)(_Context.default);
|
|
41
|
+
const {
|
|
42
|
+
resetDataAfterCommit
|
|
43
|
+
} = (0, _react.useContext)(_IsolationContext.default);
|
|
44
|
+
const {
|
|
45
|
+
handleReset
|
|
46
|
+
} = (0, _useDataContextSnapshot.default)({
|
|
47
|
+
enabled: resetDataAfterCommit
|
|
48
|
+
});
|
|
49
|
+
const handleSubmit = (0, _react.useCallback)(() => {
|
|
50
|
+
if (resetDataAfterCommit) {
|
|
51
|
+
handleReset();
|
|
52
|
+
}
|
|
53
|
+
}, [handleReset, resetDataAfterCommit]);
|
|
54
|
+
setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(undefined, 'onBeforeCommit', handleSubmit);
|
|
55
|
+
return _react.default.createElement(_react.default.Fragment, null, children, preventUncommittedChanges && _react.default.createElement(_components.FormStatus, {
|
|
56
|
+
no_animation: false,
|
|
57
|
+
shellSpace: {
|
|
58
|
+
top: true
|
|
59
|
+
},
|
|
60
|
+
show: Boolean(showCommitStatus)
|
|
61
|
+
}, preventUncommittedChangesText));
|
|
62
|
+
}
|
|
63
|
+
const isolationError = exports.isolationError = new Error('Form.Isolation');
|
|
64
|
+
//# sourceMappingURL=IsolatedContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IsolatedContainer.js","names":["_react","_interopRequireWildcard","require","_components","_hooks","_useHandleStatus","_interopRequireDefault","_IsolationContext","_Context","_useDataContextSnapshot","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","IsolatedContainer","_ref","children","outerContext","preventUncommittedChanges","useContext","IsolationContext","preventUncommittedChangesText","useTranslation","Isolation","showStatus","showCommitStatus","useHandleStatus","error","isolationError","setFieldEventListener","DataContext","resetDataAfterCommit","handleReset","useDataContextSnapshot","enabled","handleSubmit","useCallback","undefined","createElement","Fragment","FormStatus","no_animation","shellSpace","top","show","Boolean","exports","Error"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolatedContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { FormStatus } from '../../../../components'\nimport { useTranslation } from '../../hooks'\nimport useHandleStatus from './useHandleStatus'\nimport IsolationContext from './IsolationContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataContextSnapshot from './useDataContextSnapshot'\n\nexport default function IsolatedContainer({ children }) {\n const { outerContext, preventUncommittedChanges } =\n useContext(IsolationContext)\n const { preventUncommittedChangesText } = useTranslation().Isolation\n const { showStatus: showCommitStatus } = useHandleStatus({\n outerContext,\n preventUncommittedChanges,\n error: isolationError,\n })\n\n const { setFieldEventListener } = useContext(DataContext)\n const { resetDataAfterCommit } = useContext(IsolationContext)\n const { handleReset } = useDataContextSnapshot({\n enabled: resetDataAfterCommit,\n })\n\n const handleSubmit = useCallback(() => {\n if (resetDataAfterCommit) {\n handleReset()\n }\n }, [handleReset, resetDataAfterCommit])\n setFieldEventListener?.(undefined, 'onBeforeCommit', handleSubmit)\n\n return (\n <>\n {children}\n\n {preventUncommittedChanges && (\n <FormStatus\n no_animation={false}\n shellSpace={{ top: true }}\n show={Boolean(showCommitStatus)}\n >\n {preventUncommittedChangesText}\n </FormStatus>\n )}\n </>\n )\n}\n\nexport const isolationError = new Error('Form.Isolation')\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JsonObject } from '../../utils/json-pointer';
|
|
3
3
|
import IsolationCommitButton from './IsolationCommitButton';
|
|
4
|
+
import IsolationResetButton from './IsolationResetButton';
|
|
4
5
|
import { type Props as ProviderProps } from '../../DataContext/Provider';
|
|
6
|
+
import { IsolationDataReference } from './IsolationDataReference';
|
|
5
7
|
import type { OnCommit, Path } from '../../types';
|
|
6
8
|
export type IsolationProviderProps<Data extends JsonObject> = {
|
|
7
9
|
/**
|
|
@@ -22,6 +24,18 @@ export type IsolationProviderProps<Data extends JsonObject> = {
|
|
|
22
24
|
* Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.
|
|
23
25
|
*/
|
|
24
26
|
bubbleValidation?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Prevents uncommitted changes before the form is submitted. Will display an error message if user tries to submit without committing their changes.
|
|
29
|
+
*/
|
|
30
|
+
preventUncommittedChanges?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If set to `true`, the Form.Isolation will reset its data context after committing the data to the outer context.
|
|
33
|
+
*/
|
|
34
|
+
resetDataAfterCommit?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Provide a reference by using Form.Isolation.createDataReference.
|
|
37
|
+
*/
|
|
38
|
+
dataReference?: IsolationDataReference;
|
|
25
39
|
/**
|
|
26
40
|
* Used internally by the Form.Isolation component
|
|
27
41
|
*/
|
|
@@ -40,6 +54,8 @@ export type IsolationProps<Data extends JsonObject> = Omit<ProviderProps<Data>,
|
|
|
40
54
|
declare function IsolationProvider<Data extends JsonObject>(props: IsolationProps<Data>): import("react/jsx-runtime").JSX.Element;
|
|
41
55
|
declare namespace IsolationProvider {
|
|
42
56
|
var CommitButton: typeof IsolationCommitButton;
|
|
57
|
+
var ResetButton: typeof IsolationResetButton;
|
|
58
|
+
var createDataReference: typeof import("./IsolationDataReference").createDataReference;
|
|
43
59
|
var _supportsSpacingProps: any;
|
|
44
60
|
}
|
|
45
61
|
export default IsolationProvider;
|
|
@@ -17,8 +17,13 @@ var _DataContext = require("../../DataContext");
|
|
|
17
17
|
var _SectionContext = _interopRequireDefault(require("../Section/SectionContext"));
|
|
18
18
|
var _useReportError = _interopRequireDefault(require("./useReportError"));
|
|
19
19
|
var _IsolationCommitButton = _interopRequireDefault(require("./IsolationCommitButton"));
|
|
20
|
+
var _IsolationResetButton = _interopRequireDefault(require("./IsolationResetButton"));
|
|
20
21
|
var _Provider = require("../../DataContext/Provider");
|
|
22
|
+
var _IsolationDataReference = require("./IsolationDataReference");
|
|
23
|
+
var _IsolatedContainer2 = _interopRequireDefault(require("./IsolatedContainer"));
|
|
24
|
+
var _IsolationContext = _interopRequireDefault(require("./IsolationContext"));
|
|
21
25
|
var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
|
|
26
|
+
var _BubbleValidation;
|
|
22
27
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
28
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
29
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -28,6 +33,12 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
|
|
|
28
33
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
34
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
30
35
|
function IsolationProvider(props) {
|
|
36
|
+
var _IsolatedContainer;
|
|
37
|
+
const [dataReferenceFallback] = (0, _react.useState)(() => {
|
|
38
|
+
if (!(props !== null && props !== void 0 && props.dataReference)) {
|
|
39
|
+
return (0, _IsolationDataReference.createDataReference)();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
31
42
|
const {
|
|
32
43
|
children,
|
|
33
44
|
onPathChange,
|
|
@@ -36,8 +47,11 @@ function IsolationProvider(props) {
|
|
|
36
47
|
transformOnCommit: transformOnCommitProp,
|
|
37
48
|
commitHandleRef,
|
|
38
49
|
bubbleValidation,
|
|
50
|
+
preventUncommittedChanges,
|
|
39
51
|
data,
|
|
40
|
-
defaultData
|
|
52
|
+
defaultData,
|
|
53
|
+
dataReference = dataReferenceFallback,
|
|
54
|
+
resetDataAfterCommit
|
|
41
55
|
} = props;
|
|
42
56
|
const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
|
|
43
57
|
const internalDataRef = (0, _react.useRef)();
|
|
@@ -100,7 +114,7 @@ function IsolationProvider(props) {
|
|
|
100
114
|
if (localData && pathSection && !_jsonPointer.default.has(localDataRef.current, pathSection)) {
|
|
101
115
|
localData = moveValueToPath(pathSection, localData);
|
|
102
116
|
}
|
|
103
|
-
internalDataRef.current = Object.assign({}, localData || dataOuter || {}, localDataRef.current);
|
|
117
|
+
internalDataRef.current = Object.assign({}, localData || (0, _structuredClone.default)(dataOuter) || {}, localDataRef.current);
|
|
104
118
|
}, [data, defaultData, pathSection, dataOuter, moveValueToPath]);
|
|
105
119
|
const onCommit = (0, _react.useCallback)(async (data, additionalArgs) => {
|
|
106
120
|
var _props$path;
|
|
@@ -122,12 +136,15 @@ function IsolationProvider(props) {
|
|
|
122
136
|
await (handlePathChangeOuter === null || handlePathChangeOuter === void 0 ? void 0 : handlePathChangeOuter(path, Array.isArray(isolatedData) ? isolatedData : (0, _componentHelper.extendDeep)({}, outerData, isolatedData)));
|
|
123
137
|
return result;
|
|
124
138
|
}, [getMountedData, props.path, dataOuter, transformOnCommitProp, handlePathChangeOuter, onCommitProp, removeSectionPath]);
|
|
139
|
+
const setIsolatedData = (0, _react.useCallback)(data => {
|
|
140
|
+
localDataRef.current = data;
|
|
141
|
+
internalDataRef.current = data;
|
|
142
|
+
}, []);
|
|
125
143
|
const onClear = (0, _react.useCallback)(() => {
|
|
126
|
-
|
|
127
|
-
internalDataRef.current = _Provider.clearedData;
|
|
144
|
+
setIsolatedData(_Provider.clearedData);
|
|
128
145
|
forceUpdate();
|
|
129
146
|
onClearProp === null || onClearProp === void 0 ? void 0 : onClearProp();
|
|
130
|
-
}, [onClearProp]);
|
|
147
|
+
}, [onClearProp, setIsolatedData]);
|
|
131
148
|
const providerProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
132
149
|
[defaultData ? 'defaultData' : 'data']: internalDataRef.current,
|
|
133
150
|
onUpdateDataValue: onUpdateDataValueHandler,
|
|
@@ -136,22 +153,28 @@ function IsolationProvider(props) {
|
|
|
136
153
|
onClear,
|
|
137
154
|
isolate: true
|
|
138
155
|
});
|
|
139
|
-
return _react.default.createElement(_DataContext.Provider, providerProps, _react.default.createElement(
|
|
156
|
+
return _react.default.createElement(_DataContext.Provider, providerProps, _react.default.createElement(_IsolationContext.default.Provider, {
|
|
157
|
+
value: {
|
|
158
|
+
preventUncommittedChanges,
|
|
159
|
+
dataReference,
|
|
160
|
+
resetDataAfterCommit,
|
|
161
|
+
outerContext,
|
|
162
|
+
setIsolatedData
|
|
163
|
+
}
|
|
164
|
+
}, _react.default.createElement(_DataContext.Context.Consumer, null, dataContext => {
|
|
140
165
|
dataContextRef.current = dataContext;
|
|
141
166
|
if (commitHandleRef) {
|
|
142
167
|
commitHandleRef.current = dataContext === null || dataContext === void 0 ? void 0 : dataContext.handleSubmit;
|
|
143
168
|
}
|
|
144
|
-
return children;
|
|
145
|
-
}), bubbleValidation && _react.default.createElement(BubbleValidation,
|
|
146
|
-
outerContext: outerContext
|
|
147
|
-
}));
|
|
169
|
+
return _IsolatedContainer || (_IsolatedContainer = _react.default.createElement(_IsolatedContainer2.default, null, children, " "));
|
|
170
|
+
}), bubbleValidation && (_BubbleValidation || (_BubbleValidation = _react.default.createElement(BubbleValidation, null)))));
|
|
148
171
|
}
|
|
149
|
-
function BubbleValidation(
|
|
172
|
+
function BubbleValidation() {
|
|
150
173
|
var _addSetShowAllErrorsR;
|
|
151
|
-
let {
|
|
152
|
-
outerContext
|
|
153
|
-
} = _ref;
|
|
154
174
|
const innerContext = (0, _react.useContext)(_DataContext.Context);
|
|
175
|
+
const {
|
|
176
|
+
outerContext
|
|
177
|
+
} = (0, _react.useContext)(_IsolationContext.default);
|
|
155
178
|
const {
|
|
156
179
|
setShowAllErrors
|
|
157
180
|
} = innerContext;
|
|
@@ -169,6 +192,8 @@ function BubbleValidation(_ref) {
|
|
|
169
192
|
}
|
|
170
193
|
const isolationError = new Error('Form.Isolation');
|
|
171
194
|
IsolationProvider.CommitButton = _IsolationCommitButton.default;
|
|
195
|
+
IsolationProvider.ResetButton = _IsolationResetButton.default;
|
|
196
|
+
IsolationProvider.createDataReference = _IsolationDataReference.createDataReference;
|
|
172
197
|
IsolationProvider._supportsSpacingProps = undefined;
|
|
173
198
|
var _default = exports.default = IsolationProvider;
|
|
174
199
|
//# sourceMappingURL=Isolation.js.map
|