@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
|
@@ -5,11 +5,10 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
6
|
import "core-js/modules/web.dom-collections.iterator.js";
|
|
7
7
|
import React from 'react';
|
|
8
|
-
import PropTypes from 'prop-types';
|
|
9
8
|
import Context from '../../shared/Context';
|
|
10
9
|
import { warn, isTrue, roundToNearest, getClosestScrollViewElement, detectOutsideClick, dispatchCustomElementEvent, getPreviousSibling, keycode } from '../../shared/component-helper';
|
|
11
10
|
import { getOffsetTop, getOffsetLeft, hasSelectedText, getSelectedElement } from '../../shared/helpers';
|
|
12
|
-
import { getData, normalizeData, findClosest, getSelectedItemValue, parseContentTitle, getEventData, prepareStartupState, prepareDerivedState,
|
|
11
|
+
import { getData, normalizeData, findClosest, getSelectedItemValue, parseContentTitle, getEventData, prepareStartupState, prepareDerivedState, drawerListDefaultProps, drawerListProviderDefaultProps } from './DrawerListHelpers';
|
|
13
12
|
import DrawerListContext from './DrawerListContext';
|
|
14
13
|
import { disableBodyScroll, enableBodyScroll } from '../../components/modal/bodyScrollLock';
|
|
15
14
|
export default class DrawerListProvider extends React.PureComponent {
|
|
@@ -70,7 +69,7 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
70
69
|
if (liElement) {
|
|
71
70
|
const top = liElement.offsetTop;
|
|
72
71
|
if (ulElement.scrollTo) {
|
|
73
|
-
if (scrollTo === false || window
|
|
72
|
+
if (scrollTo === false || window['IS_TEST']) {
|
|
74
73
|
ulElement.style.scrollBehavior = 'auto';
|
|
75
74
|
}
|
|
76
75
|
ulElement.scrollTo({
|
|
@@ -146,8 +145,8 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
146
145
|
});
|
|
147
146
|
_defineProperty(this, "setWrapperElement", function () {
|
|
148
147
|
let wrapper_element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props.wrapper_element;
|
|
149
|
-
if (typeof wrapper_element === 'string'
|
|
150
|
-
wrapper_element = document.querySelector(wrapper_element);
|
|
148
|
+
if (typeof wrapper_element === 'string') {
|
|
149
|
+
wrapper_element = typeof document !== 'undefined' ? document.querySelector(wrapper_element) : undefined;
|
|
151
150
|
}
|
|
152
151
|
if (wrapper_element !== _this.state.wrapper_element) {
|
|
153
152
|
_this.setState({
|
|
@@ -288,7 +287,7 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
288
287
|
const createTabElem = () => {
|
|
289
288
|
try {
|
|
290
289
|
const elem = document.createElement('BUTTON');
|
|
291
|
-
elem.style
|
|
290
|
+
elem.setAttribute('style', 'opacity:0;position:absolute;');
|
|
292
291
|
const focus = () => {
|
|
293
292
|
prevActiveElement.focus();
|
|
294
293
|
elem.removeEventListener('focus', focus);
|
|
@@ -341,7 +340,7 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
341
340
|
});
|
|
342
341
|
dispatchCustomElementEvent(this.state, 'handle_dismiss_focus');
|
|
343
342
|
}
|
|
344
|
-
} else if (
|
|
343
|
+
} else if (active_item > -1 && active_item !== this.state.active_item) {
|
|
345
344
|
this.setState({
|
|
346
345
|
showFocusRing: false
|
|
347
346
|
});
|
|
@@ -353,9 +352,7 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
353
352
|
});
|
|
354
353
|
_defineProperty(this, "getSelectedElement", () => {
|
|
355
354
|
var _this$_refUl$current2;
|
|
356
|
-
return ((_this$_refUl$current2 = this._refUl.current) === null || _this$_refUl$current2 === void 0 ? void 0 : _this$_refUl$current2.querySelector('li.dnb-drawer-list__option--selected')) || this._refUl.current
|
|
357
|
-
getAttribute: () => null
|
|
358
|
-
};
|
|
355
|
+
return ((_this$_refUl$current2 = this._refUl.current) === null || _this$_refUl$current2 === void 0 ? void 0 : _this$_refUl$current2.querySelector('li.dnb-drawer-list__option--selected')) || this._refUl.current;
|
|
359
356
|
});
|
|
360
357
|
_defineProperty(this, "getCurrentSelectedItem", () => {
|
|
361
358
|
const elem = this.getSelectedElement();
|
|
@@ -371,11 +368,11 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
371
368
|
});
|
|
372
369
|
_defineProperty(this, "getNextActiveItem", () => {
|
|
373
370
|
const elem = this.getActiveElement().nextSibling;
|
|
374
|
-
return parseFloat(elem && elem.getAttribute('data-item'));
|
|
371
|
+
return parseFloat(elem && elem instanceof Element && elem.getAttribute('data-item'));
|
|
375
372
|
});
|
|
376
373
|
_defineProperty(this, "getPrevActiveItem", () => {
|
|
377
374
|
const elem = this.getActiveElement().previousSibling;
|
|
378
|
-
return parseFloat(elem && elem.getAttribute('data-item'));
|
|
375
|
+
return parseFloat(elem && elem instanceof Element && elem.getAttribute('data-item'));
|
|
379
376
|
});
|
|
380
377
|
_defineProperty(this, "getFirstItem", () => {
|
|
381
378
|
var _this$_refUl$current4;
|
|
@@ -576,7 +573,7 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
576
573
|
}
|
|
577
574
|
if (hasSelectedText()) {
|
|
578
575
|
const elem = getSelectedElement();
|
|
579
|
-
const isInput = getPreviousSibling('dnb-input', elem);
|
|
576
|
+
const isInput = elem instanceof Element ? getPreviousSibling('dnb-input', elem) : null;
|
|
580
577
|
if (!isInput) {
|
|
581
578
|
return;
|
|
582
579
|
}
|
|
@@ -610,10 +607,9 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
610
607
|
});
|
|
611
608
|
this.attributes = {};
|
|
612
609
|
this.state = _objectSpread({
|
|
613
|
-
tagName: 'dnb-drawer-list',
|
|
614
610
|
cache_hash: '',
|
|
615
|
-
active_item:
|
|
616
|
-
selected_item:
|
|
611
|
+
active_item: undefined,
|
|
612
|
+
selected_item: undefined,
|
|
617
613
|
ignore_events: false
|
|
618
614
|
}, prepareStartupState(props));
|
|
619
615
|
this._refRoot = React.createRef();
|
|
@@ -944,7 +940,4 @@ export default class DrawerListProvider extends React.PureComponent {
|
|
|
944
940
|
_defineProperty(DrawerListProvider, "contextType", Context);
|
|
945
941
|
_defineProperty(DrawerListProvider, "defaultProps", _objectSpread(_objectSpread({}, drawerListDefaultProps), drawerListProviderDefaultProps));
|
|
946
942
|
_defineProperty(DrawerListProvider, "blurDelay", 201);
|
|
947
|
-
process.env.NODE_ENV !== "production" ? DrawerListProvider.propTypes = _objectSpread(_objectSpread(_objectSpread({}, drawerListPropTypes), drawerListProviderPropTypes), {}, {
|
|
948
|
-
children: PropTypes.node.isRequired
|
|
949
|
-
}) : void 0;
|
|
950
943
|
//# sourceMappingURL=DrawerListProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerListProvider.js","names":["React","PropTypes","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","keycode","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListPropTypes","drawerListDefaultProps","drawerListProviderPropTypes","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_this","this","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","arguments","length","undefined","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","IS_TEST","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","opened","setVisible","args","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","disabled","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","directionProp","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","getSpaceToBottom","_ref","rootElem","pageYOffset","spaceToBottom","clientHeight","html","documentElement","calculateMaxHeight","spaceToTop","max","maxHeight","vh","visualViewport","height","innerHeight","renderDirection","_window","_window$requestAnimat","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","setAttribute","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children","propTypes","node","isRequired"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.js"],"sourcesContent":["/**\n * Web DrawerList Provider\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n keycode,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListPropTypes,\n drawerListDefaultProps,\n drawerListProviderPropTypes,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nexport default class DrawerListProvider extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n ...drawerListPropTypes,\n ...drawerListProviderPropTypes,\n children: PropTypes.node.isRequired,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n tagName: 'dnb-drawer-list',\n cache_hash: '',\n active_item: null,\n selected_item: null,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n direction: directionProp,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height) * 16\n const customMaxHeight = parseFloat(max_height) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n const getSpaceToBottom = ({ rootElem, pageYOffset }) => {\n const spaceToBottom =\n rootElem.clientHeight -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const html = document.documentElement\n if (spaceToBottom < customMinHeight && rootElem !== html) {\n return getSpaceToBottom({\n rootElem: html,\n pageYOffset,\n })\n }\n\n return spaceToBottom\n }\n\n const calculateMaxHeight = () => {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset))\n ? parseFloat(page_offset)\n : rootElem.scrollTop\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom = getSpaceToBottom({ rootElem, pageYOffset })\n\n let direction = directionProp\n if (!direction || direction === 'auto') {\n direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n }\n\n // make sure we never get higher than we have defined in CSS\n let maxHeight = customMaxHeight\n if (!(maxHeight > 0)) {\n if (direction === 'top') {\n maxHeight =\n spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n }\n\n if (direction === 'bottom') {\n maxHeight = spaceToBottom - spaceToBottomOffset\n }\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (maxHeight > vh) {\n maxHeight = vh\n }\n\n // convert px to rem\n maxHeight = roundToNearest(maxHeight, 8) / 16\n }\n\n return { direction, maxHeight }\n }\n\n const renderDirection = () => {\n try {\n const { direction, maxHeight: max_height } = calculateMaxHeight()\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alphabetical key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window.IS_TEST) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Whether the onSelect event should get emitted\n * @property {boolean} scrollTo Whether the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigatable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (\n typeof wrapper_element === 'string' &&\n typeof document !== 'undefined'\n ) {\n wrapper_element = document.querySelector(wrapper_element)\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.style = 'opacity:0;position:absolute;'\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement = document.activeElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may consider to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n parseFloat(active_item) > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--selected'\n ) ||\n this._refUl.current || {\n getAttribute: () => null,\n }\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (itemToSelect, args = {}) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n if (data?.disabled) {\n return false\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput = getPreviousSibling('dnb-input', elem)\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerListProvider.js","names":["React","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","keycode","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListDefaultProps","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_this","this","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","arguments","length","undefined","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","setAttribute","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","Element","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","opened","setVisible","args","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","disabled","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","directionProp","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","getSpaceToBottom","_ref","rootElem","pageYOffset","spaceToBottom","clientHeight","html","documentElement","calculateMaxHeight","spaceToTop","max","maxHeight","vh","visualViewport","height","innerHeight","renderDirection","_window","_window$requestAnimat","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.tsx"],"sourcesContent":["/**\n * Web DrawerList Provider\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n keycode,\n DetectOutsideClickClass,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListDefaultProps,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext, {\n DrawerListContextState,\n} from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nimport type { SpacingProps } from '../../shared/types'\nimport type { DrawerListProps } from './DrawerList'\n\nexport type DrawerListProviderProps = Omit<DrawerListProps, 'children'> &\n Omit<React.HTMLProps<HTMLElement>, 'data' | 'role' | 'size' | 'value'> &\n SpacingProps & {\n hasFocusOnElement?: boolean\n getActiveElement?: () => HTMLElement\n setData?: (\n data: any,\n cb?: any,\n {\n overwriteOriginalData,\n }?: {\n overwriteOriginalData?: boolean\n }\n ) => DrawerListProvider\n setState?: (state: any, cb?: any) => void\n setWrapperElement?: (\n wrapper_element?: string | HTMLElement\n ) => DrawerListProvider\n setHidden?: (args?: any[], onStateComplete?: any) => void\n selectItemAndClose?: (\n itemToSelect: any,\n args?: {\n fireSelectEvent?: boolean\n event: any\n }\n ) => any\n selected_item?: string | number\n active_item?: string | number\n showFocusRing?: boolean\n closestToTop?: number\n closestToBottom?: number\n usePortal?: boolean\n addObservers?: () => void\n removeObservers?: () => void\n setVisible?: (\n args?: Record<string, any>,\n onStateComplete?: any\n ) => void\n toggleVisible?: (...args: any[]) => void\n selectItem?: (\n itemToSelect: any,\n args?: {\n fireSelectEvent?: boolean\n event?: any\n closeOnSelection?: boolean\n }\n ) => any\n scrollToItem?: (\n active_item: any,\n opt?: {\n scrollTo?: boolean\n element?: any\n }\n ) => void\n setActiveItemAndScrollToIt?: (\n active_item: any,\n args?: {\n fireSelectEvent?: boolean\n scrollTo?: boolean\n event?: any\n }\n ) => void\n _refShell?: React.RefObject<HTMLSpanElement>\n _refTriangle?: React.RefObject<HTMLLIElement & HTMLSpanElement>\n _refUl?: React.RefObject<HTMLUListElement>\n _refRoot?: React.RefObject<HTMLSpanElement>\n _rootElem?: Window | Element\n attributes?: Record<string, any>\n children: React.ReactNode\n }\n\nexport default class DrawerListProvider extends React.PureComponent<\n DrawerListProviderProps,\n DrawerListContextState\n> {\n static contextType = Context\n context!: React.ContextType<typeof Context>\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static isOpen: boolean\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n attributes: object\n _refRoot: React.RefObject<HTMLSpanElement>\n _refShell: React.RefObject<HTMLSpanElement>\n _refUl: React.RefObject<HTMLUListElement>\n _refTriangle: React.RefObject<HTMLLIElement & HTMLSpanElement>\n\n _showTimeout: NodeJS.Timeout\n _hideTimeout: NodeJS.Timeout\n _scrollTimeout: NodeJS.Timeout\n _directionTimeout: NodeJS.Timeout\n\n itemSpots: { [customProperty: number]: { i: number } }\n itemSpotsCount: number\n setOnScroll: () => void\n _bodyLockIsEnabled: boolean\n setDirection: () => void\n _rootElem: Window | Element\n changedOrderFor: string\n searchCache: Record<string, { i: number }[]>\n meta: {\n cmd: any\n ctrl: any\n shift: any\n alt: any\n }\n outsideClick: DetectOutsideClickClass\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n cache_hash: '',\n active_item: undefined,\n selected_item: undefined,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector<HTMLLIElement>(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n direction: directionProp,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height as string) * 16\n const customMaxHeight = parseFloat(max_height as string) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n const getSpaceToBottom = ({ rootElem, pageYOffset }) => {\n const spaceToBottom =\n rootElem.clientHeight -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const html = document.documentElement\n if (spaceToBottom < customMinHeight && rootElem !== html) {\n return getSpaceToBottom({\n rootElem: html,\n pageYOffset,\n })\n }\n\n return spaceToBottom\n }\n\n const calculateMaxHeight = () => {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset as string))\n ? parseFloat(page_offset as string)\n : rootElem.scrollTop\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom = getSpaceToBottom({ rootElem, pageYOffset })\n\n let direction = directionProp\n if (!direction || direction === 'auto') {\n direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n }\n\n // make sure we never get higher than we have defined in CSS\n let maxHeight = customMaxHeight\n if (!(maxHeight > 0)) {\n if (direction === 'top') {\n maxHeight =\n spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n }\n\n if (direction === 'bottom') {\n maxHeight = spaceToBottom - spaceToBottomOffset\n }\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (maxHeight > vh) {\n maxHeight = vh\n }\n\n // convert px to rem\n maxHeight = roundToNearest(maxHeight, 8) / 16\n }\n\n return { direction, maxHeight }\n }\n\n const renderDirection = () => {\n try {\n const { direction, maxHeight: max_height } = calculateMaxHeight()\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alphabetical key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window['IS_TEST']) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Whether the onSelect event should get emitted\n * @property {boolean} scrollTo Whether the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigatable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (typeof wrapper_element === 'string') {\n wrapper_element =\n typeof document !== 'undefined'\n ? document.querySelector<HTMLElement>(wrapper_element)\n : undefined\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item as string)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.setAttribute(\n 'style',\n 'opacity:0;position:absolute;'\n )\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement =\n document.activeElement as HTMLElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may consider to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n active_item > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector<HTMLLIElement>(\n 'li.dnb-drawer-list__option--selected'\n ) || this._refUl.current\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector<HTMLLIElement>(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(\n elem && elem instanceof Element && elem.getAttribute('data-item')\n )\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(\n elem && elem instanceof Element && elem.getAttribute('data-item')\n )\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item as string) > -1\n ? selected_item\n : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item as string) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item as string) > -1\n ? selected_item\n : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (\n itemToSelect,\n args: {\n fireSelectEvent?: boolean\n event?: any\n closeOnSelection?: boolean\n } = {}\n ) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n if (data?.disabled) {\n return false\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput =\n elem instanceof Element\n ? getPreviousSibling('dnb-input', elem)\n : null\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/shared/Eufemia.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "10.
|
|
1
|
+
export declare const version = "10.74.0";
|
|
2
2
|
export declare function init(): void;
|
package/shared/Eufemia.js
CHANGED
package/shared/Eufemia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.
|
|
1
|
+
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.74.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.74.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
|