@dnb/eufemia 10.73.2 → 10.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/cjs/components/autocomplete/Autocomplete.js +7 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/button/style/dnb-button.css +1 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +1 -0
- package/cjs/components/checkbox/Checkbox.d.ts +9 -1
- package/cjs/components/checkbox/Checkbox.js +59 -34
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/CheckboxDocs.js +6 -1
- package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +4 -0
- package/cjs/components/date-picker/DatePicker.js +4 -3
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerDocs.js +6 -1
- package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +20 -17
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +7 -0
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/DatePickerRange.js +2 -28
- package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
- package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/cjs/components/drawer/Drawer.js +1 -0
- package/cjs/components/drawer/Drawer.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +6 -4
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
- package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
- package/cjs/components/heading/HeadingHelpers.js +9 -5
- package/cjs/components/heading/HeadingHelpers.js.map +1 -1
- package/cjs/components/icon/Icon.d.ts +2 -2
- package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +6 -4
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.js +2 -2
- package/cjs/components/switch/SwitchDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/cjs/fragments/drawer-list/DrawerList.js +70 -175
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
- package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +45 -48
- package/cjs/shared/component-helper.js +72 -201
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/cjs/shared/legacy/component-helper-legacy.js +202 -0
- package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +1 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +1 -0
- package/cjs/shared/locales/sv-SE.js +1 -0
- package/cjs/shared/locales/sv-SE.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +2 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/components/autocomplete/Autocomplete.js +6 -3
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/components/autocomplete/AutocompleteDocs.js +1 -1
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/button/style/dnb-button.css +1 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +1 -0
- package/components/checkbox/Checkbox.d.ts +9 -1
- package/components/checkbox/Checkbox.js +60 -35
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/CheckboxDocs.js +6 -1
- package/components/checkbox/CheckboxDocs.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +4 -0
- package/components/date-picker/DatePicker.js +4 -3
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/components/date-picker/DatePickerCalendar.js +27 -86
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
- package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/components/date-picker/DatePickerContext.d.ts +3 -0
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerDocs.js +6 -1
- package/components/date-picker/DatePickerDocs.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +20 -17
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +7 -0
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/DatePickerRange.js +2 -28
- package/components/date-picker/DatePickerRange.js.map +1 -1
- package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/components/date-picker/style/dnb-date-picker.css +1 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/components/drawer/Drawer.js +1 -0
- package/components/drawer/Drawer.js.map +1 -1
- package/components/dropdown/Dropdown.js +6 -4
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/dropdown/DropdownDocs.d.ts +179 -3
- package/components/dropdown/DropdownDocs.js.map +1 -1
- package/components/heading/HeadingHelpers.js +9 -5
- package/components/heading/HeadingHelpers.js.map +1 -1
- package/components/icon/Icon.d.ts +2 -2
- package/components/input-masked/InputMaskedDocs.js +1 -1
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/components/input-masked/InputMaskedHooks.js +39 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +6 -5
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/number-format/NumberUtils.js +5 -4
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/switch/SwitchDocs.js +2 -2
- package/components/switch/SwitchDocs.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +6 -3
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/es/components/autocomplete/AutocompleteDocs.js +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/button/style/dnb-button.css +1 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +1 -0
- package/es/components/checkbox/Checkbox.d.ts +9 -1
- package/es/components/checkbox/Checkbox.js +60 -35
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/CheckboxDocs.js +6 -1
- package/es/components/checkbox/CheckboxDocs.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +4 -0
- package/es/components/date-picker/DatePicker.js +4 -3
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/es/components/date-picker/DatePickerCalendar.js +23 -80
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/es/components/date-picker/DatePickerContext.d.ts +3 -0
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerDocs.js +6 -1
- package/es/components/date-picker/DatePickerDocs.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +20 -17
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +7 -0
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/DatePickerRange.js +2 -27
- package/es/components/date-picker/DatePickerRange.js.map +1 -1
- package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/es/components/date-picker/style/dnb-date-picker.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/es/components/drawer/Drawer.js +1 -0
- package/es/components/drawer/Drawer.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +6 -4
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/dropdown/DropdownDocs.d.ts +179 -3
- package/es/components/dropdown/DropdownDocs.js.map +1 -1
- package/es/components/heading/HeadingHelpers.js +9 -5
- package/es/components/heading/HeadingHelpers.js.map +1 -1
- package/es/components/icon/Icon.d.ts +2 -2
- package/es/components/input-masked/InputMaskedDocs.js +1 -1
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +39 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +6 -5
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +5 -4
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/switch/SwitchDocs.js +2 -2
- package/es/components/switch/SwitchDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Field/Date/Date.js +1 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/es/extensions/forms/Field/Selection/Selection.js +9 -8
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -3
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/es/extensions/forms/constants/locales/index.d.ts +2 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.js +5 -3
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.js +18 -15
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/es/fragments/drawer-list/DrawerList.js +72 -173
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/es/fragments/drawer-list/DrawerListItem.js +90 -0
- package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
- package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.d.ts +45 -48
- package/es/shared/component-helper.js +20 -183
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/es/shared/helpers/withCamelCaseProps.js +7 -2
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/es/shared/legacy/component-helper-legacy.js +180 -0
- package/es/shared/legacy/component-helper-legacy.js.map +1 -0
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +1 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +1 -0
- package/es/shared/locales/sv-SE.js +1 -0
- package/es/shared/locales/sv-SE.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +2 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/extensions/forms/Field/Date/Date.js +1 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/extensions/forms/Field/Selection/Selection.js +10 -9
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/extensions/forms/Field/Toggle/Toggle.js +26 -9
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/extensions/forms/Form/Isolation/Isolation.js +40 -15
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -3
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/extensions/forms/constants/locales/index.d.ts +2 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.js +5 -3
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.js +18 -15
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/fragments/drawer-list/DrawerList.js +71 -175
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/fragments/drawer-list/DrawerListHelpers.js +45 -53
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/fragments/drawer-list/DrawerListItem.js +91 -0
- package/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/fragments/drawer-list/DrawerListPortal.js +91 -121
- package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/fragments/drawer-list/DrawerListProvider.js +12 -19
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +45 -48
- package/shared/component-helper.js +23 -189
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/shared/helpers/withCamelCaseProps.js +7 -2
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/shared/legacy/component-helper-legacy.js +185 -0
- package/shared/legacy/component-helper-legacy.js.map +1 -0
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +1 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +1 -0
- package/shared/locales/sv-SE.js +1 -0
- package/shared/locales/sv-SE.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +2 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","key","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","exports","processChildren","global","Array","isArray","registeredElements","cache","reverse","map","_ref2","cb","includes","isFrozen","children","createElement","Fragment","Boolean","res","onlyTexts","reduce","pV","cV","join","extendGracefully","first","_len","objects","_key","keepRef","shift","acc1","object","acc2","_ref3","isObject","item","extendDeep","target","undefined","_len2","sources","_key2","source","prototype","hasOwnProperty","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","ignoreElement","current","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","getPreviousSibling","convertJsxToString","elements","separator","transformWord","process","word","React","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len3","_key3","combineAriaBy","combineDescribedBy","_len4","_key4","combineDetails","_len5","_key5","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {HTMLElement} ignoreElement [The element we want to protect from a click]\n * @param {Function} onSuccess [Will be called on outside click]\n * @param {Object} [options] [Options]\n * @return {DetectOutsideClickClass} [A new instance of DetectOutsideClickClass]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n // Allow for comparing ref elements that are rendered conditionally,\n // That might be `null` or ´undefined` during the construction stage of this class\n\n const ignoreElement =\n ignoreElements[i] && 'current' in ignoreElements[i]\n ? ignoreElements[i].current\n : ignoreElements[i]\n\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElement) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (\n elements,\n separator = undefined,\n transformWord = undefined\n) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word, separator, transformWord)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_componentHelperLegacy","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","e","__esModule","default","ownKeys","r","t","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","length","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","init","whatInput","specificKeys","defineNavigator","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","extendGracefully","first","_len","objects","Array","_key","keepRef","shift","reduce","acc1","object","acc2","_ref2","isObject","item","isArray","extendDeep","target","undefined","_len2","sources","_key2","source","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","warn","includes","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","map","char","index","arr","join","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","match","exec","isChildOfElement","element","callback","contains","res","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","currentElement","getPreviousSibling","convertJsxToString","elements","separator","transformWord","process","word","React","isValidElement","children","trim","Boolean","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len3","_key3","combineAriaBy","combineDescribedBy","_len4","_key4","combineDetails","_len5","_key5","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.ts"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\n\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport { warn } from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\nimport { defineNavigator } from './legacy/component-helper-legacy'\n\nexport * from './legacy/component-helper-legacy'\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig = undefined\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport function convertJsxToString(\n elements: React.ReactNode | React.ReactNode[],\n separator: string = undefined,\n transformWord: (\n element: React.ReactElement\n ) => React.ReactElement<unknown> = undefined\n): string {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word: React.ReactNode) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else if (word.props.children) {\n word = word.props.children\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n word = word.trim()\n } else {\n return undefined\n }\n } else {\n return undefined\n }\n }\n\n return word\n }\n\n return Array.from(elements)\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,12 +21,11 @@ export declare function withCamelCaseProps<TBase, P>(Base: React.FunctionCompone
|
|
|
21
21
|
export declare function classWithCamelCaseProps<TBase extends React.ComponentClass>(Base: TBase): typeof Base;
|
|
22
22
|
/**
|
|
23
23
|
* Converts camel case props to snake case props.
|
|
24
|
-
*
|
|
25
|
-
* @template P - The type of the props object.
|
|
26
|
-
* @param {P} props - The props object to convert.
|
|
27
|
-
* @returns {P} - The converted props object.
|
|
28
24
|
*/
|
|
29
|
-
export declare function convertCamelCasePropsToSnakeCase<P>(props: P): P;
|
|
25
|
+
export declare function convertCamelCasePropsToSnakeCase<P>(props: P, validProperties?: Array<string> | ReadonlyArray<string>): P;
|
|
26
|
+
export type AssertNoMissing<T extends readonly string[], P extends Record<string, unknown>> = Exclude<Extract<keyof P, `${string}_${string}`>, T[number]> extends never ? T : never;
|
|
27
|
+
type KeysMatching<T, P extends string> = Extract<keyof T, P>;
|
|
28
|
+
export type KeysWithUnderscore<T> = KeysMatching<T, `${string}_${string}`>;
|
|
30
29
|
/**
|
|
31
30
|
* Convert recursively Types from snake_case to camelCase
|
|
32
31
|
*
|
|
@@ -49,9 +49,10 @@ function classWithCamelCaseProps(Base) {
|
|
|
49
49
|
});
|
|
50
50
|
return Derived;
|
|
51
51
|
}
|
|
52
|
-
function convertCamelCasePropsToSnakeCase(props) {
|
|
52
|
+
function convertCamelCasePropsToSnakeCase(props, validProperties) {
|
|
53
53
|
const isFrozen = Object.isFrozen(props);
|
|
54
54
|
const newProps = isFrozen ? _objectSpread({}, props) : props;
|
|
55
|
+
const hasValidProperties = Array.isArray(validProperties);
|
|
55
56
|
for (const key in props) {
|
|
56
57
|
switch (key) {
|
|
57
58
|
case 'className':
|
|
@@ -60,7 +61,11 @@ function convertCamelCasePropsToSnakeCase(props) {
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
if (/^[a-z]+[A-Z]/.test(key)) {
|
|
63
|
-
|
|
64
|
+
const name = (0, _componentHelper.toSnakeCase)(key);
|
|
65
|
+
if (hasValidProperties && !(validProperties !== null && validProperties !== void 0 && validProperties.includes(name))) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
newProps[name] = props[key];
|
|
64
69
|
delete newProps[key];
|
|
65
70
|
}
|
|
66
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withCamelCaseProps.js","names":["_react","_interopRequireDefault","require","_componentHelper","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCasePropsToSnakeCase","name","classWithCamelCaseProps","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","key","test","toSnakeCase","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCasePropsToSnakeCase(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCasePropsToSnakeCase(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\n/**\n * Converts camel case props to snake case props.\n
|
|
1
|
+
{"version":3,"file":"withCamelCaseProps.js","names":["_react","_interopRequireDefault","require","_componentHelper","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCasePropsToSnakeCase","name","classWithCamelCaseProps","componentDidMount","render","_prevProps","_elem","displayName","validProperties","isFrozen","newProps","hasValidProperties","Array","isArray","key","test","toSnakeCase","includes","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCasePropsToSnakeCase(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCasePropsToSnakeCase(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\n/**\n * Converts camel case props to snake case props.\n */\nexport function convertCamelCasePropsToSnakeCase<P>(\n props: P,\n validProperties?: Array<string> | ReadonlyArray<string>\n): P {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n const hasValidProperties = Array.isArray(validProperties)\n\n for (const key in props) {\n switch (key) {\n case 'className': {\n continue\n }\n }\n\n if (/^[a-z]+[A-Z]/.test(key)) {\n const name = toSnakeCase(key)\n if (hasValidProperties && !validProperties?.includes(name)) {\n continue\n }\n newProps[name] = props[key]\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\nexport type AssertNoMissing<\n T extends readonly string[],\n P extends Record<string, unknown>,\n> = Exclude<\n Extract<keyof P, `${string}_${string}`>,\n T[number]\n> extends never\n ? T\n : never\ntype KeysMatching<T, P extends string> = Extract<keyof T, P>\nexport type KeysWithUnderscore<T> = KeysMatching<T, `${string}_${string}`>\n\n/**\n * Convert recursively Types from snake_case to camelCase\n *\n * Use it like so:\n * OriginalProps & ToCamelCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToCamelCase makes the required snake_case props also required in camelCase\n * - ToCamelCasePartial removes required for the camelCase props\n * - ToCamelCaseFlat is like ToCamelCase, but it will not convert nested objects for performance boost\n * - ToCamelCasePartialFlat is like ToCamelCasePartial, but it will not convert nested objects for performance boost\n */\nexport type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>\nexport type ToCamelCase<T> = T extends object\n ? {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]:\n | T[K]\n | ToCamelCase<T[K]>\n }\n : T\nexport type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>\ntype ConvertSnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}`\n : S\n\ntype ConvertObjectKeysToCamelCase<T> = {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K]\n}\nexport type ToCamelCaseFlat<T> = T extends object\n ? ConvertObjectKeysToCamelCase<T>\n : T\nexport type ToCamelCasePartialFlat<T> = Partial<ToCamelCaseFlat<T>>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if device is touch device or not
|
|
3
|
+
*/
|
|
4
|
+
export function isTouchDevice(): boolean;
|
|
5
|
+
export function defineNavigator(): void;
|
|
6
|
+
export function processChildren(props: any): any;
|
|
7
|
+
export function detectOutsideClick(ignoreElements: any, onSuccess: Function, options?: any): DetectOutsideClickClass;
|
|
8
|
+
export class DetectOutsideClickClass {
|
|
9
|
+
constructor(ignoreElements: any, onSuccess: any, options?: {});
|
|
10
|
+
handleClickOutside: (event: any) => void;
|
|
11
|
+
keydownCallback: (event: any) => void;
|
|
12
|
+
keyupCallback: (event: any) => void;
|
|
13
|
+
remove(): void;
|
|
14
|
+
checkOutsideClick: ({ event, ignoreElements }: {
|
|
15
|
+
event: any;
|
|
16
|
+
ignoreElements: any;
|
|
17
|
+
}, onSuccess?: any) => void;
|
|
18
|
+
}
|
|
19
|
+
export function checkIfHasScrollbar(elem: any): boolean;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkIfHasScrollbar = exports.DetectOutsideClickClass = void 0;
|
|
7
|
+
exports.defineNavigator = defineNavigator;
|
|
8
|
+
exports.detectOutsideClick = void 0;
|
|
9
|
+
exports.isTouchDevice = isTouchDevice;
|
|
10
|
+
exports.processChildren = void 0;
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
var _keycode = _interopRequireDefault(require("../keycode"));
|
|
14
|
+
var _helpers = require("../helpers");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
+
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; }
|
|
18
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
20
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
21
|
+
function isTouchDevice() {
|
|
22
|
+
if (typeof document !== 'undefined') {
|
|
23
|
+
let intent = false;
|
|
24
|
+
try {
|
|
25
|
+
intent = document.documentElement.getAttribute('data-whatintent');
|
|
26
|
+
} catch (e) {}
|
|
27
|
+
return intent === 'touch';
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
function defineNavigator() {
|
|
32
|
+
const handleNavigator = () => {
|
|
33
|
+
if (typeof document === 'undefined' || typeof window === 'undefined' || typeof navigator === 'undefined') {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
if (!(typeof window !== 'undefined' && window.IS_TEST)) {
|
|
38
|
+
if (navigator.platform.match(new RegExp(_helpers.PLATFORM_MAC)) !== null) {
|
|
39
|
+
document.documentElement.setAttribute('data-os', 'mac');
|
|
40
|
+
} else if (navigator.platform.match(new RegExp(_helpers.PLATFORM_WIN)) !== null) {
|
|
41
|
+
document.documentElement.setAttribute('data-os', 'win');
|
|
42
|
+
} else if (navigator.platform.match(new RegExp(_helpers.PLATFORM_LINUX)) !== null) {
|
|
43
|
+
document.documentElement.setAttribute('data-os', 'linux');
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
document.documentElement.setAttribute('data-os', 'other');
|
|
47
|
+
}
|
|
48
|
+
} catch (e) {
|
|
49
|
+
(0, _helpers.warn)(e);
|
|
50
|
+
}
|
|
51
|
+
document.removeEventListener('DOMContentLoaded', handleNavigator);
|
|
52
|
+
};
|
|
53
|
+
if (typeof document !== 'undefined' && document.readyState === 'loading') {
|
|
54
|
+
document.addEventListener('DOMContentLoaded', handleNavigator);
|
|
55
|
+
} else {
|
|
56
|
+
handleNavigator();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const processChildren = props => {
|
|
60
|
+
if (!props) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (typeof global !== 'undefined' && Array.isArray(global.registeredElements) && global.registeredElements.length > 0) {
|
|
64
|
+
let cache = null;
|
|
65
|
+
Object.entries(props).reverse().map(_ref => {
|
|
66
|
+
let [key, cb] = _ref;
|
|
67
|
+
if (key.includes('render_') && /^render_/.test(key)) {
|
|
68
|
+
if (typeof cb === 'function') {
|
|
69
|
+
if (cache) {
|
|
70
|
+
if (Object.isFrozen(props)) {
|
|
71
|
+
props = _objectSpread({}, props);
|
|
72
|
+
}
|
|
73
|
+
props.children = cache;
|
|
74
|
+
}
|
|
75
|
+
return cache = _react.default.createElement(_react.default.Fragment, {
|
|
76
|
+
key: key
|
|
77
|
+
}, cb(props));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}).filter(Boolean);
|
|
82
|
+
if (cache) {
|
|
83
|
+
return cache;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const res = typeof props.children === 'function' ? props.children(props) : props.children;
|
|
87
|
+
if (Array.isArray(res)) {
|
|
88
|
+
const onlyTexts = res.reduce((pV, cV) => {
|
|
89
|
+
if (typeof cV === 'string' || typeof cV === 'number') {
|
|
90
|
+
pV.push(cV);
|
|
91
|
+
}
|
|
92
|
+
return pV;
|
|
93
|
+
}, []);
|
|
94
|
+
if (onlyTexts.length === res.length && onlyTexts.length > 0) {
|
|
95
|
+
return onlyTexts.join('');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return res;
|
|
99
|
+
};
|
|
100
|
+
exports.processChildren = processChildren;
|
|
101
|
+
const detectOutsideClick = (ignoreElements, onSuccess, options) => new DetectOutsideClickClass(ignoreElements, onSuccess, options);
|
|
102
|
+
exports.detectOutsideClick = detectOutsideClick;
|
|
103
|
+
class DetectOutsideClickClass {
|
|
104
|
+
constructor(_ignoreElements, _onSuccess) {
|
|
105
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
106
|
+
_defineProperty(this, "checkOutsideClick", function (_ref2) {
|
|
107
|
+
let {
|
|
108
|
+
event,
|
|
109
|
+
ignoreElements
|
|
110
|
+
} = _ref2;
|
|
111
|
+
let onSuccess = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
112
|
+
try {
|
|
113
|
+
const currentElement = event.target;
|
|
114
|
+
if ((currentElement === null || currentElement === void 0 ? void 0 : currentElement.tagName) === 'HTML' && (event.pageX > document.documentElement.clientWidth - 40 || event.pageY > document.documentElement.clientHeight - 40)) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (checkIfHasScrollbar(currentElement)) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {
|
|
121
|
+
const ignoreElement = ignoreElements[i] && 'current' in ignoreElements[i] ? ignoreElements[i].current : ignoreElements[i];
|
|
122
|
+
elem = currentElement;
|
|
123
|
+
if (!ignoreElements[i]) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
do {
|
|
127
|
+
if (elem === ignoreElement) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
elem = elem && elem.parentNode;
|
|
131
|
+
} while (elem);
|
|
132
|
+
}
|
|
133
|
+
if (typeof onSuccess === 'function') {
|
|
134
|
+
onSuccess();
|
|
135
|
+
}
|
|
136
|
+
} catch (e) {
|
|
137
|
+
(0, _helpers.warn)(e);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
if (!this.handleClickOutside && typeof document !== 'undefined' && typeof window !== 'undefined') {
|
|
141
|
+
if (!Array.isArray(_ignoreElements)) {
|
|
142
|
+
_ignoreElements = [_ignoreElements];
|
|
143
|
+
}
|
|
144
|
+
this.handleClickOutside = event => {
|
|
145
|
+
this.checkOutsideClick({
|
|
146
|
+
event,
|
|
147
|
+
ignoreElements: _ignoreElements
|
|
148
|
+
}, () => typeof _onSuccess === 'function' && _onSuccess({
|
|
149
|
+
event
|
|
150
|
+
}));
|
|
151
|
+
};
|
|
152
|
+
document.addEventListener('mousedown', this.handleClickOutside);
|
|
153
|
+
this.keydownCallback = event => {
|
|
154
|
+
const keyCode = (0, _keycode.default)(event);
|
|
155
|
+
if (keyCode === 'esc') {
|
|
156
|
+
window.removeEventListener('keydown', this.keydownCallback);
|
|
157
|
+
if (typeof _onSuccess === 'function') {
|
|
158
|
+
_onSuccess({
|
|
159
|
+
event
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
window.addEventListener('keydown', this.keydownCallback);
|
|
165
|
+
if (options.includedKeys) {
|
|
166
|
+
this.keyupCallback = event => {
|
|
167
|
+
const keyCode = (0, _keycode.default)(event);
|
|
168
|
+
if (options.includedKeys.includes(keyCode) && typeof this.handleClickOutside === 'function') {
|
|
169
|
+
this.handleClickOutside(event, () => {
|
|
170
|
+
if (this.keyupCallback) window.removeEventListener('keyup', this.keyupCallback);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
window.addEventListener('keyup', this.keyupCallback);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
remove() {
|
|
179
|
+
if (this.handleClickOutside && typeof document !== 'undefined') {
|
|
180
|
+
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
181
|
+
this.handleClickOutside = null;
|
|
182
|
+
}
|
|
183
|
+
if (this.keydownCallback && typeof window !== 'undefined') {
|
|
184
|
+
window.removeEventListener('keydown', this.keydownCallback);
|
|
185
|
+
this.keydownCallback = null;
|
|
186
|
+
}
|
|
187
|
+
if (this.keyupCallback && typeof window !== 'undefined') {
|
|
188
|
+
window.removeEventListener('keyup', this.keyupCallback);
|
|
189
|
+
this.keyupCallback = null;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.DetectOutsideClickClass = DetectOutsideClickClass;
|
|
194
|
+
const checkIfHasScrollbar = elem => {
|
|
195
|
+
return elem && (elem.scrollHeight > elem.offsetHeight || elem.scrollWidth > elem.offsetWidth) && overflowIsScrollable(elem);
|
|
196
|
+
};
|
|
197
|
+
exports.checkIfHasScrollbar = checkIfHasScrollbar;
|
|
198
|
+
const overflowIsScrollable = elem => {
|
|
199
|
+
const style = typeof window !== 'undefined' ? window.getComputedStyle(elem) : {};
|
|
200
|
+
return /scroll|auto/i.test((style.overflow || '') + (style.overflowX || '') + (style.overflowY || ''));
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=component-helper-legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-helper-legacy.js","names":["_react","_interopRequireDefault","require","_keycode","_helpers","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","isTouchDevice","document","intent","documentElement","getAttribute","defineNavigator","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","processChildren","props","global","Array","isArray","registeredElements","cache","entries","reverse","map","_ref","key","cb","includes","test","isFrozen","children","createElement","Fragment","Boolean","res","onlyTexts","reduce","pV","cV","join","exports","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","undefined","_ref2","event","currentElement","target","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","ignoreElement","current","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY"],"sources":["../../../../src/shared/legacy/component-helper-legacy.js"],"sourcesContent":["/**\n * Component helpers legacy\n *\n * These are functions for ../component-helper.ts that have yet to be refactored to typescript.\n */\n\nimport React from 'react'\nimport keycode from '../keycode'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from '../helpers'\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {HTMLElement} ignoreElement [The element we want to protect from a click]\n * @param {Function} onSuccess [Will be called on outside click]\n * @param {Object} [options] [Options]\n * @return {DetectOutsideClickClass} [A new instance of DetectOutsideClickClass]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n // Allow for comparing ref elements that are rendered conditionally,\n // That might be `null` or ´undefined` during the construction stage of this class\n\n const ignoreElement =\n ignoreElements[i] && 'current' in ignoreElements[i]\n ? ignoreElements[i].current\n : ignoreElements[i]\n\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElement) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\n\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n"],"mappings":"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","ignoreList":[]}
|