@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,53 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Component helpers
|
|
3
|
+
*
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
export function defineNavigator(): void;
|
|
6
|
-
export function isObject(item: any): boolean;
|
|
7
|
-
export function extendDeep(target?: {}, ...sources: any[]): {};
|
|
8
|
-
export function toCapitalized(str: any): any;
|
|
9
|
-
export function convertStatusToStateOnly(status: any, state: any): any;
|
|
10
|
-
export function getStatusState(status: any): boolean;
|
|
11
|
-
export function combineLabelledBy(...params: any[]): any;
|
|
12
|
-
export function combineDescribedBy(...params: any[]): any;
|
|
13
|
-
export function combineDetails(...params: any[]): any;
|
|
14
|
-
export function findElementInChildren(children: any, find: any): any;
|
|
15
|
-
export function escapeRegexChars(str: any): any;
|
|
16
|
-
export function removeUndefinedProps(object: any): any;
|
|
17
|
-
export { InteractionInvalidation } from "./helpers/InteractionInvalidation";
|
|
18
|
-
export { assignPropsWithContext } from "./helpers/assignPropsWithContext";
|
|
19
|
-
export { filterProps } from "./helpers/filterProps";
|
|
20
|
-
export function validateDOMAttributes(props: any, params: any): any;
|
|
21
|
-
export function processChildren(props: any): any;
|
|
22
|
-
export function extendGracefully(...objects: any[]): any;
|
|
23
|
-
export function isTrue(value: any): boolean;
|
|
24
|
-
export function dispatchCustomElementEvent(src: any, eventName: any, eventObjectOrig: any): any;
|
|
25
|
-
export function toCamelCase(s: any): any;
|
|
26
|
-
export function toPascalCase(s: any): any;
|
|
27
|
-
export function toSnakeCase(str: any): any;
|
|
28
|
-
export function toKebabCase(str: any): any;
|
|
29
|
-
export function detectOutsideClick(ignoreElements: any, onSuccess: Function, options?: any): DetectOutsideClickClass;
|
|
30
|
-
export class DetectOutsideClickClass {
|
|
31
|
-
constructor(ignoreElements: any, onSuccess: any, options?: {});
|
|
32
|
-
handleClickOutside: (event: any) => void;
|
|
33
|
-
keydownCallback: (event: any) => void;
|
|
34
|
-
keyupCallback: (event: any) => void;
|
|
35
|
-
remove(): void;
|
|
36
|
-
checkOutsideClick: ({ event, ignoreElements }: {
|
|
37
|
-
event: any;
|
|
38
|
-
ignoreElements: any;
|
|
39
|
-
}, onSuccess?: any) => void;
|
|
40
|
-
}
|
|
41
|
-
export function checkIfHasScrollbar(elem: any): boolean;
|
|
42
|
-
export function makeUniqueId(prefix?: string, length?: number): string;
|
|
43
|
-
export function slugify(s: any): string;
|
|
44
|
-
export function matchAll(string: any, regex: any): any[];
|
|
45
|
-
export function isChildOfElement(element: HTMLElement, target: HTMLElement, callback?: Function): HTMLElement | null;
|
|
46
|
-
export function roundToNearest(num: any, target: any): any;
|
|
47
|
-
export function getClosestScrollViewElement(currentElement: any): Element;
|
|
48
|
-
export function convertJsxToString(elements: any, separator?: any, transformWord?: any): any;
|
|
5
|
+
import React from 'react';
|
|
49
6
|
import keycode from './keycode';
|
|
50
|
-
import { getPreviousSibling } from './helpers/getPreviousSibling';
|
|
51
7
|
import { warn } from './helpers';
|
|
8
|
+
import { getPreviousSibling } from './helpers/getPreviousSibling';
|
|
9
|
+
export * from './legacy/component-helper-legacy';
|
|
10
|
+
export { InteractionInvalidation } from './helpers/InteractionInvalidation';
|
|
11
|
+
export { extendPropsWithContext, extendPropsWithContextInClassComponent, } from './helpers/extendPropsWithContext';
|
|
12
|
+
export { assignPropsWithContext } from './helpers/assignPropsWithContext';
|
|
13
|
+
export { filterProps } from './helpers/filterProps';
|
|
52
14
|
export { keycode, getPreviousSibling, warn };
|
|
53
|
-
export
|
|
15
|
+
export declare const validateDOMAttributes: (props: any, params: any) => any;
|
|
16
|
+
/** @deprecated Can be removed in v11 */
|
|
17
|
+
export declare const extendGracefully: (...objects: any[]) => any;
|
|
18
|
+
export declare function isObject(item: any): boolean;
|
|
19
|
+
export declare function extendDeep(target?: {}, ...sources: any[]): {};
|
|
20
|
+
export declare const isTrue: (value: any) => boolean;
|
|
21
|
+
export declare const dispatchCustomElementEvent: (src: any, eventName: any, eventObjectOrig?: any) => any;
|
|
22
|
+
export declare const toCamelCase: (s: any) => any;
|
|
23
|
+
export declare const toPascalCase: (s: any) => any;
|
|
24
|
+
export declare const toSnakeCase: (str: any) => any;
|
|
25
|
+
export declare const toKebabCase: (str: any) => any;
|
|
26
|
+
export declare function toCapitalized(str: any): any;
|
|
27
|
+
export declare const makeUniqueId: (prefix?: string, length?: number) => string;
|
|
28
|
+
export declare const slugify: (s: any) => string;
|
|
29
|
+
export declare const matchAll: (string: any, regex: any) => any[];
|
|
30
|
+
/**
|
|
31
|
+
* Check if an element exists in its children
|
|
32
|
+
* If it finds it, the child "element" of target will be returned.
|
|
33
|
+
*
|
|
34
|
+
* @param {HTMLElement} element The DOM Element to find
|
|
35
|
+
* @param {HTMLElement} target The DOM Element that should contain "element"
|
|
36
|
+
* @param {function} callback (optional)
|
|
37
|
+
* @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of "target"
|
|
38
|
+
*/
|
|
39
|
+
export declare const isChildOfElement: (element: any, target: any, callback?: any) => any;
|
|
40
|
+
export declare const roundToNearest: (num: any, target: any) => any;
|
|
41
|
+
export declare const getClosestScrollViewElement: (currentElement: any) => Element;
|
|
42
|
+
export declare function convertJsxToString(elements: React.ReactNode | React.ReactNode[], separator?: string, transformWord?: (element: React.ReactElement) => React.ReactElement<unknown>): string;
|
|
43
|
+
export declare function convertStatusToStateOnly(status: any, state: any): any;
|
|
44
|
+
export declare function getStatusState(status: any): boolean;
|
|
45
|
+
export declare function combineLabelledBy(...params: any[]): any;
|
|
46
|
+
export declare function combineDescribedBy(...params: any[]): any;
|
|
47
|
+
export declare function combineDetails(...params: any[]): any;
|
|
48
|
+
export declare function findElementInChildren(children: any, find: any): any;
|
|
49
|
+
export declare function escapeRegexChars(str: any): any;
|
|
50
|
+
export declare function removeUndefinedProps(object: any): any;
|
|
@@ -7,9 +7,11 @@ import "core-js/modules/web.dom-collections.iterator.js";
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import keycode from './keycode';
|
|
9
9
|
import whatInput from 'what-input';
|
|
10
|
-
import { warn
|
|
10
|
+
import { warn } from './helpers';
|
|
11
11
|
import { getPreviousSibling } from './helpers/getPreviousSibling';
|
|
12
12
|
import { init } from './Eufemia';
|
|
13
|
+
import { defineNavigator } from './legacy/component-helper-legacy';
|
|
14
|
+
export * from './legacy/component-helper-legacy';
|
|
13
15
|
export { InteractionInvalidation } from './helpers/InteractionInvalidation';
|
|
14
16
|
export { extendPropsWithContext, extendPropsWithContextInClassComponent } from './helpers/extendPropsWithContext';
|
|
15
17
|
export { assignPropsWithContext } from './helpers/assignPropsWithContext';
|
|
@@ -18,44 +20,6 @@ export { keycode, getPreviousSibling, warn };
|
|
|
18
20
|
init();
|
|
19
21
|
whatInput.specificKeys([9]);
|
|
20
22
|
defineNavigator();
|
|
21
|
-
export 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
|
-
export 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(PLATFORM_MAC)) !== null) {
|
|
39
|
-
document.documentElement.setAttribute('data-os', 'mac');
|
|
40
|
-
} else if (navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null) {
|
|
41
|
-
document.documentElement.setAttribute('data-os', 'win');
|
|
42
|
-
} else if (navigator.platform.match(new RegExp(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
|
-
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
23
|
export const validateDOMAttributes = (props, params) => {
|
|
60
24
|
if (props && props.attributes) {
|
|
61
25
|
let attr = props.attributes;
|
|
@@ -121,47 +85,6 @@ export const validateDOMAttributes = (props, params) => {
|
|
|
121
85
|
}
|
|
122
86
|
return params;
|
|
123
87
|
};
|
|
124
|
-
export const processChildren = props => {
|
|
125
|
-
if (!props) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
if (typeof global !== 'undefined' && Array.isArray(global.registeredElements) && global.registeredElements.length > 0) {
|
|
129
|
-
let cache = null;
|
|
130
|
-
Object.entries(props).reverse().map(_ref2 => {
|
|
131
|
-
let [key, cb] = _ref2;
|
|
132
|
-
if (key.includes('render_') && /^render_/.test(key)) {
|
|
133
|
-
if (typeof cb === 'function') {
|
|
134
|
-
if (cache) {
|
|
135
|
-
if (Object.isFrozen(props)) {
|
|
136
|
-
props = _objectSpread({}, props);
|
|
137
|
-
}
|
|
138
|
-
props.children = cache;
|
|
139
|
-
}
|
|
140
|
-
return cache = React.createElement(React.Fragment, {
|
|
141
|
-
key: key
|
|
142
|
-
}, cb(props));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return null;
|
|
146
|
-
}).filter(Boolean);
|
|
147
|
-
if (cache) {
|
|
148
|
-
return cache;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const res = typeof props.children === 'function' ? props.children(props) : props.children;
|
|
152
|
-
if (Array.isArray(res)) {
|
|
153
|
-
const onlyTexts = res.reduce((pV, cV) => {
|
|
154
|
-
if (typeof cV === 'string' || typeof cV === 'number') {
|
|
155
|
-
pV.push(cV);
|
|
156
|
-
}
|
|
157
|
-
return pV;
|
|
158
|
-
}, []);
|
|
159
|
-
if (onlyTexts.length === res.length && onlyTexts.length > 0) {
|
|
160
|
-
return onlyTexts.join('');
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return res;
|
|
164
|
-
};
|
|
165
88
|
export const extendGracefully = function () {
|
|
166
89
|
let first = {};
|
|
167
90
|
for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -176,8 +99,8 @@ export const extendGracefully = function () {
|
|
|
176
99
|
}
|
|
177
100
|
return objects.reduce((acc1, object) => {
|
|
178
101
|
if (object) {
|
|
179
|
-
acc1 = Object.assign(acc1, Object.entries(object).reduce((acc2,
|
|
180
|
-
let [key, value] =
|
|
102
|
+
acc1 = Object.assign(acc1, Object.entries(object).reduce((acc2, _ref2) => {
|
|
103
|
+
let [key, value] = _ref2;
|
|
181
104
|
if (value !== null) {
|
|
182
105
|
if (typeof value === 'object') {
|
|
183
106
|
value = extendGracefully(acc1[key] || {}, value);
|
|
@@ -227,7 +150,8 @@ export const isTrue = value => {
|
|
|
227
150
|
}
|
|
228
151
|
return false;
|
|
229
152
|
};
|
|
230
|
-
export const dispatchCustomElementEvent = (src, eventName
|
|
153
|
+
export const dispatchCustomElementEvent = function (src, eventName) {
|
|
154
|
+
let eventObjectOrig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
231
155
|
let ret = undefined;
|
|
232
156
|
const eventObject = _objectSpread(_objectSpread({}, eventObjectOrig && eventObjectOrig.event || {}), eventObjectOrig);
|
|
233
157
|
if (eventObject && eventObject.attributes && eventObject.event) {
|
|
@@ -293,104 +217,6 @@ export const toKebabCase = str => str.replace(/\B[A-Z]/g, letter => `-${letter}`
|
|
|
293
217
|
export function toCapitalized(str) {
|
|
294
218
|
return typeof str === 'string' ? str.toLowerCase().split('').map((char, index, arr) => index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-' ? char.toUpperCase() : char).join('') : str;
|
|
295
219
|
}
|
|
296
|
-
export const detectOutsideClick = (ignoreElements, onSuccess, options) => new DetectOutsideClickClass(ignoreElements, onSuccess, options);
|
|
297
|
-
export class DetectOutsideClickClass {
|
|
298
|
-
constructor(_ignoreElements, _onSuccess) {
|
|
299
|
-
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
300
|
-
_defineProperty(this, "checkOutsideClick", function (_ref4) {
|
|
301
|
-
let {
|
|
302
|
-
event,
|
|
303
|
-
ignoreElements
|
|
304
|
-
} = _ref4;
|
|
305
|
-
let onSuccess = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
306
|
-
try {
|
|
307
|
-
const currentElement = event.target;
|
|
308
|
-
if ((currentElement === null || currentElement === void 0 ? void 0 : currentElement.tagName) === 'HTML' && (event.pageX > document.documentElement.clientWidth - 40 || event.pageY > document.documentElement.clientHeight - 40)) {
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
if (checkIfHasScrollbar(currentElement)) {
|
|
312
|
-
return;
|
|
313
|
-
}
|
|
314
|
-
for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {
|
|
315
|
-
const ignoreElement = ignoreElements[i] && 'current' in ignoreElements[i] ? ignoreElements[i].current : ignoreElements[i];
|
|
316
|
-
elem = currentElement;
|
|
317
|
-
if (!ignoreElements[i]) {
|
|
318
|
-
continue;
|
|
319
|
-
}
|
|
320
|
-
do {
|
|
321
|
-
if (elem === ignoreElement) {
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
elem = elem && elem.parentNode;
|
|
325
|
-
} while (elem);
|
|
326
|
-
}
|
|
327
|
-
if (typeof onSuccess === 'function') {
|
|
328
|
-
onSuccess();
|
|
329
|
-
}
|
|
330
|
-
} catch (e) {
|
|
331
|
-
warn(e);
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
if (!this.handleClickOutside && typeof document !== 'undefined' && typeof window !== 'undefined') {
|
|
335
|
-
if (!Array.isArray(_ignoreElements)) {
|
|
336
|
-
_ignoreElements = [_ignoreElements];
|
|
337
|
-
}
|
|
338
|
-
this.handleClickOutside = event => {
|
|
339
|
-
this.checkOutsideClick({
|
|
340
|
-
event,
|
|
341
|
-
ignoreElements: _ignoreElements
|
|
342
|
-
}, () => typeof _onSuccess === 'function' && _onSuccess({
|
|
343
|
-
event
|
|
344
|
-
}));
|
|
345
|
-
};
|
|
346
|
-
document.addEventListener('mousedown', this.handleClickOutside);
|
|
347
|
-
this.keydownCallback = event => {
|
|
348
|
-
const keyCode = keycode(event);
|
|
349
|
-
if (keyCode === 'esc') {
|
|
350
|
-
window.removeEventListener('keydown', this.keydownCallback);
|
|
351
|
-
if (typeof _onSuccess === 'function') {
|
|
352
|
-
_onSuccess({
|
|
353
|
-
event
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
window.addEventListener('keydown', this.keydownCallback);
|
|
359
|
-
if (options.includedKeys) {
|
|
360
|
-
this.keyupCallback = event => {
|
|
361
|
-
const keyCode = keycode(event);
|
|
362
|
-
if (options.includedKeys.includes(keyCode) && typeof this.handleClickOutside === 'function') {
|
|
363
|
-
this.handleClickOutside(event, () => {
|
|
364
|
-
if (this.keyupCallback) window.removeEventListener('keyup', this.keyupCallback);
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
window.addEventListener('keyup', this.keyupCallback);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
remove() {
|
|
373
|
-
if (this.handleClickOutside && typeof document !== 'undefined') {
|
|
374
|
-
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
375
|
-
this.handleClickOutside = null;
|
|
376
|
-
}
|
|
377
|
-
if (this.keydownCallback && typeof window !== 'undefined') {
|
|
378
|
-
window.removeEventListener('keydown', this.keydownCallback);
|
|
379
|
-
this.keydownCallback = null;
|
|
380
|
-
}
|
|
381
|
-
if (this.keyupCallback && typeof window !== 'undefined') {
|
|
382
|
-
window.removeEventListener('keyup', this.keyupCallback);
|
|
383
|
-
this.keyupCallback = null;
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
export const checkIfHasScrollbar = elem => {
|
|
388
|
-
return elem && (elem.scrollHeight > elem.offsetHeight || elem.scrollWidth > elem.offsetWidth) && overflowIsScrollable(elem);
|
|
389
|
-
};
|
|
390
|
-
const overflowIsScrollable = elem => {
|
|
391
|
-
const style = typeof window !== 'undefined' ? window.getComputedStyle(elem) : {};
|
|
392
|
-
return /scroll|auto/i.test((style.overflow || '') + (style.overflowX || '') + (style.overflowY || ''));
|
|
393
|
-
};
|
|
394
220
|
export const makeUniqueId = function () {
|
|
395
221
|
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id-';
|
|
396
222
|
let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8;
|
|
@@ -435,7 +261,7 @@ export const roundToNearest = (num, target) => {
|
|
|
435
261
|
export const getClosestScrollViewElement = currentElement => {
|
|
436
262
|
return getPreviousSibling('.dnb-scroll-view', currentElement);
|
|
437
263
|
};
|
|
438
|
-
export
|
|
264
|
+
export function convertJsxToString(elements) {
|
|
439
265
|
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
440
266
|
let transformWord = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
441
267
|
if (!Array.isArray(elements)) {
|
|
@@ -446,26 +272,34 @@ export const convertJsxToString = function (elements) {
|
|
|
446
272
|
if (transformWord) {
|
|
447
273
|
word = transformWord(word);
|
|
448
274
|
}
|
|
449
|
-
if (
|
|
450
|
-
word = word.props.children.trim();
|
|
451
|
-
} else if (Array.isArray(word.props.children)) {
|
|
275
|
+
if (Array.isArray(word.props.children)) {
|
|
452
276
|
word = word.props.children.reduce((acc, word) => {
|
|
453
277
|
if (typeof word !== 'string') {
|
|
454
|
-
word = process(word
|
|
278
|
+
word = process(word);
|
|
455
279
|
}
|
|
456
280
|
if (typeof word === 'string') {
|
|
457
281
|
acc = (acc + (separator || '') + word).trim();
|
|
458
282
|
}
|
|
459
283
|
return acc;
|
|
460
284
|
}, '');
|
|
285
|
+
} else if (word.props.children) {
|
|
286
|
+
word = word.props.children;
|
|
287
|
+
if (typeof word !== 'string') {
|
|
288
|
+
word = process(word);
|
|
289
|
+
}
|
|
290
|
+
if (typeof word === 'string') {
|
|
291
|
+
word = word.trim();
|
|
292
|
+
} else {
|
|
293
|
+
return undefined;
|
|
294
|
+
}
|
|
461
295
|
} else {
|
|
462
|
-
return
|
|
296
|
+
return undefined;
|
|
463
297
|
}
|
|
464
298
|
}
|
|
465
299
|
return word;
|
|
466
300
|
};
|
|
467
|
-
return elements.map(word => process(word)).filter(Boolean).join(separator).trim();
|
|
468
|
-
}
|
|
301
|
+
return Array.from(elements).map(word => process(word)).filter(Boolean).join(separator).trim();
|
|
302
|
+
}
|
|
469
303
|
export function convertStatusToStateOnly(status, state) {
|
|
470
304
|
return status ? state : null;
|
|
471
305
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","_ref","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","_ref2","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extendGracefully","first","_len","arguments","objects","_key","keepRef","shift","acc1","object","acc2","_ref3","keys","isObject","item","extendDeep","target","undefined","_len2","sources","_key2","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","r","apply","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","_defineProperty","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","ignoreElement","current","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","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","convertJsxToString","elements","separator","transformWord","process","word","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":";;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,SAAS,MAAM,YAAY;AAClC,SACEC,IAAI,EACJC,YAAY,EACZC,YAAY,EACZC,cAAc,QACT,WAAW;AAClB,SAASC,kBAAkB,QAAQ,8BAA8B;AACjE,SAASC,IAAI,QAAQ,WAAW;AAEhC,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SACEC,sBAAsB,EACtBC,sCAAsC,QACjC,kCAAkC;AACzC,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAASC,WAAW,QAAQ,uBAAuB;AAEnD,SAASZ,OAAO,EAAEM,kBAAkB,EAAEJ,IAAI;AAE1CK,IAAI,CAAC,CAAC;AAGNN,SAAS,CAACY,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3BC,eAAe,CAAC,CAAC;AAKjB,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,IAAIC,MAAM,GAAG,KAAK;IAClB,IAAI;MACFA,MAAM,GAAGD,QAAQ,CAACE,eAAe,CAACC,YAAY,CAAC,iBAAiB,CAAC;IACnE,CAAC,CAAC,OAAOC,CAAC,EAAE,CAEZ;IACA,OAAOH,MAAM,KAAK,OAAO;EAC3B;EACA,OAAO,KAAK;AACd;AAEA,OAAO,SAASH,eAAeA,CAAA,EAAG;EAChC,MAAMO,eAAe,GAAGA,CAAA,KAAM;IAC5B,IACE,OAAOL,QAAQ,KAAK,WAAW,IAC/B,OAAOM,MAAM,KAAK,WAAW,IAC7B,OAAOC,SAAS,KAAK,WAAW,EAChC;MACA;IACF;IAEA,IAAI;MACF,IAAI,EAAE,OAAOD,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACE,OAAO,CAAC,EAAE;QACtD,IAAID,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACxB,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE;UAC/Da,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;QACzD,CAAC,MAAM,IACLL,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACvB,YAAY,CAAC,CAAC,KAAK,IAAI,EAC3D;UACAY,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;QACzD,CAAC,MAAM,IACLL,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACtB,cAAc,CAAC,CAAC,KAAK,IAAI,EAC7D;UACAW,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;QAC3D;MACF,CAAC,MAAM;QACLZ,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;MAC3D;IACF,CAAC,CAAC,OAAOR,CAAC,EAAE;MACVlB,IAAI,CAACkB,CAAC,CAAC;IACT;IAEAJ,QAAQ,CAACa,mBAAmB,CAAC,kBAAkB,EAAER,eAAe,CAAC;EACnE,CAAC;EAED,IACE,OAAOL,QAAQ,KAAK,WAAW,IAC/BA,QAAQ,CAACc,UAAU,KAAK,SAAS,EACjC;IACAd,QAAQ,CAACe,gBAAgB,CAAC,kBAAkB,EAAEV,eAAe,CAAC;EAChE,CAAC,MAAM;IACLA,eAAe,CAAC,CAAC;EACnB;AACF;AAEA,OAAO,MAAMW,qBAAqB,GAAGA,CAACC,KAAK,EAAEC,MAAM,KAAK;EAGtD,IAAID,KAAK,IAAIA,KAAK,CAACE,UAAU,EAAE;IAC7B,IAAIC,IAAI,GAAGH,KAAK,CAACE,UAAU;IAC3B,IAAIC,IAAI,EAAE;MACR,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACnBA,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;MACzB;MACA,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QACpCG,MAAM,CAACC,OAAO,CAACJ,IAAI,CAAC,CAACK,OAAO,CAACC,IAAA,IAAkB;UAAA,IAAjB,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;UACxCH,MAAM,CAACM,MAAM,CAACX,MAAM,EAAE;YAAE,CAACS,GAAG,GAAGC;UAAM,CAAC,CAAC;QACzC,CAAC,CAAC;MACJ;MACA,OAAOV,MAAM,CAACC,UAAU;IAC1B;EACF;EAGA,IAAID,MAAM,CAACY,QAAQ,KAAK,IAAI,IAAIZ,MAAM,CAACY,QAAQ,KAAK,OAAO,EAAE;IAC3D,OAAOZ,MAAM,CAACY,QAAQ;EACxB;EACA,IAAI,OAAOZ,MAAM,CAACa,KAAK,KAAK,WAAW,EAAE;IACvC,OAAOb,MAAM,CAACa,KAAK;EACrB;EACA,IAAI,OAAOb,MAAM,CAACc,GAAG,KAAK,WAAW,EAAE;IACrC,OAAOd,MAAM,CAACc,GAAG;EACnB;EACA,IAAI,OAAOd,MAAM,CAACe,KAAK,KAAK,WAAW,EAAE;IACvC,OAAOf,MAAM,CAACe,KAAK;EACrB;EACA,IAAI,OAAOf,MAAM,CAACgB,MAAM,KAAK,WAAW,EAAE;IACxC,OAAOhB,MAAM,CAACgB,MAAM;EACtB;EACA,IAAI,OAAOhB,MAAM,CAACiB,IAAI,KAAK,WAAW,EAAE;IACtC,OAAOjB,MAAM,CAACiB,IAAI;EACpB;EACA,IAAI,OAAOjB,MAAM,CAACkB,WAAW,KAAK,WAAW,EAAE;IAC7C,OAAOlB,MAAM,CAACkB,WAAW;EAC3B;EACA,IAAI,OAAOlB,MAAM,CAACmB,UAAU,KAAK,WAAW,EAAE;IAC5C,OAAOnB,MAAM,CAACmB,UAAU;EAC1B,CAAC,MAGI,IAAInB,MAAM,CAACY,QAAQ,KAAK,MAAM,EAAE;IACnCZ,MAAM,CAACY,QAAQ,GAAG,IAAI;EACxB;EACA,IAAIZ,MAAM,CAACY,QAAQ,KAAK,IAAI,EAAE;IAC5BZ,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI;EAChC;EAEA,IAAID,KAAK,IAAIA,KAAK,CAACqB,QAAQ,EAAE;IAC3B,IAAIC,QAAQ,GAAGtB,KAAK,CAACqB,QAAQ;IAC7B,IAAIC,QAAQ,KAAK,KAAK,EAAE;MACtBA,QAAQ,GAAG,IAAI;IACjB;IACArB,MAAM,CAAC,UAAU,CAAC,GAAGqB,QAAQ;EAC/B;EAGA,IAAIrB,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IACxC,KAAK,MAAMsB,CAAC,IAAItB,MAAM,EAAE;MACtB,IAEE,OAAOA,MAAM,CAACsB,CAAC,CAAC,KAAK,UAAU,IAE/B,CAAC,sBAAsB,CAACC,IAAI,CAACD,CAAC,CAAC,EAC/B;QACA,OAAOtB,MAAM,CAACsB,CAAC,CAAC;MAGlB,CAAC,MAAM,IAELtB,MAAM,CAACsB,CAAC,CAAC,KAAK,IAAI,IAElB,UAAU,CAACC,IAAI,CAACD,CAAC,CAAC,EAElB;QACA,OAAOtB,MAAM,CAACsB,CAAC,CAAC;MAClB;IACF;EACF;EAEA,OAAOtB,MAAM;AACf,CAAC;AAED,OAAO,MAAMwB,eAAe,GAAIzB,KAAK,IAAK;EACxC,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAGA,IACE,OAAO0B,MAAM,KAAK,WAAW,IAC7BC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,kBAAkB,CAAC,IACxCH,MAAM,CAACG,kBAAkB,CAACC,MAAM,GAAG,CAAC,EACpC;IACA,IAAIC,KAAK,GAAG,IAAI;IAChBzB,MAAM,CAACC,OAAO,CAACP,KAAK,CAAC,CAClBgC,OAAO,CAAC,CAAC,CACTC,GAAG,CAACC,KAAA,IAAe;MAAA,IAAd,CAACxB,GAAG,EAAEyB,EAAE,CAAC,GAAAD,KAAA;MACb,IAAIxB,GAAG,CAAC0B,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAACZ,IAAI,CAACd,GAAG,CAAC,EAAE;QACnD,IAAI,OAAOyB,EAAE,KAAK,UAAU,EAAE;UAC5B,IAAIJ,KAAK,EAAE;YACT,IAAIzB,MAAM,CAAC+B,QAAQ,CAACrC,KAAK,CAAC,EAAE;cAC1BA,KAAK,GAAAsC,aAAA,KAAQtC,KAAK,CAAE;YACtB;YACAA,KAAK,CAACuC,QAAQ,GAAGR,KAAK;UACxB;UACA,OAAQA,KAAK,GACXjE,KAAA,CAAA0E,aAAA,CAAC1E,KAAK,CAAC2E,QAAQ;YAAC/B,GAAG,EAAEA;UAAI,GAAEyB,EAAE,CAACnC,KAAK,CAAkB,CACtD;QACH;MACF;MAEA,OAAO,IAAI;IACb,CAAC,CAAC,CACD0C,MAAM,CAACC,OAAO,CAAC;IAClB,IAAIZ,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;EACF;EAEA,MAAMa,GAAG,GACP,OAAO5C,KAAK,CAACuC,QAAQ,KAAK,UAAU,GAChCvC,KAAK,CAACuC,QAAQ,CAACvC,KAAK,CAAC,GACrBA,KAAK,CAACuC,QAAQ;EAGpB,IAAIZ,KAAK,CAACC,OAAO,CAACgB,GAAG,CAAC,EAAE;IACtB,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAM,CAAC,CAACC,EAAE,EAAEC,EAAE,KAAK;MACvC,IAAI,OAAOA,EAAE,KAAK,QAAQ,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;QACpDD,EAAE,CAACE,IAAI,CAACD,EAAE,CAAC;MACb;MACA,OAAOD,EAAE;IACX,CAAC,EAAE,EAAE,CAAC;IAGN,IAAIF,SAAS,CAACf,MAAM,KAAKc,GAAG,CAACd,MAAM,IAAIe,SAAS,CAACf,MAAM,GAAG,CAAC,EAAE;MAC3D,OAAOe,SAAS,CAACK,IAAI,CAAC,EAAE,CAAC;IAC3B;EACF;EAEA,OAAON,GAAG;AACZ,CAAC;AAGD,OAAO,MAAMO,gBAAgB,GAAG,SAAAA,CAAA,EAAgB;EAC9C,IAAIC,KAAK,GAAG,CAAC,CAAC;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAxB,MAAA,EADoByB,OAAO,OAAA5B,KAAA,CAAA0B,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;IAAPD,OAAO,CAAAC,IAAA,IAAAF,SAAA,CAAAE,IAAA;EAAA;EAEzC,MAAMC,OAAO,GAAGF,OAAO,CAAC,CAAC,CAAC;EAE1B,IAAIE,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,EAAE;IAEzCF,OAAO,CAACG,KAAK,CAAC,CAAC;IAEf,IAAID,OAAO,EAAE;MAEXL,KAAK,GAAGG,OAAO,CAACG,KAAK,CAAC,CAAC;IACzB;EACF;EAEA,OAAOH,OAAO,CAACT,MAAM,CAAC,CAACa,IAAI,EAAEC,MAAM,KAAK;IACtC,IAAIA,MAAM,EAAE;MACVD,IAAI,GAAGrD,MAAM,CAACM,MAAM,CAClB+C,IAAI,EACJrD,MAAM,CAACC,OAAO,CAACqD,MAAM,CAAC,CAACd,MAAM,CAAC,CAACe,IAAI,EAAAC,KAAA,KAAmB;QAAA,IAAjB,CAACpD,GAAG,EAAEC,KAAK,CAAC,GAAAmD,KAAA;QAC/C,IAAInD,KAAK,KAAK,IAAI,EAAE;UAElB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;YAC7BA,KAAK,GAAGwC,gBAAgB,CAACQ,IAAI,CAACjD,GAAG,CAAC,IAAI,CAAC,CAAC,EAAEC,KAAK,CAAC;YAChD,IAAIL,MAAM,CAACyD,IAAI,CAACpD,KAAK,CAAC,CAACmB,MAAM,GAAG,CAAC,EAAE;cACjC+B,IAAI,CAACnD,GAAG,CAAC,GAAGC,KAAK;YACnB;UACF,CAAC,MAAM;YACLkD,IAAI,CAACnD,GAAG,CAAC,GAAGC,KAAK;UACnB;QACF;QACA,OAAOkD,IAAI;MACb,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;IACH;IACA,OAAOF,IAAI;EACb,CAAC,EAAEP,KAAK,CAAC;AACX,CAAC;AAED,OAAO,SAASY,QAAQA,CAACC,IAAI,EAAE;EAC7B,OAAOA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACtC,KAAK,CAACC,OAAO,CAACqC,IAAI,CAAC;AACjE;AAEA,OAAO,SAASC,UAAUA,CAAA,EAA0B;EAAA,IAAzBC,MAAM,GAAAb,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,CAAC,CAAC;EAAA,SAAAe,KAAA,GAAAf,SAAA,CAAAxB,MAAA,EAAKwC,OAAO,OAAA3C,KAAA,CAAA0C,KAAA,OAAAA,KAAA,WAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;IAAPD,OAAO,CAAAC,KAAA,QAAAjB,SAAA,CAAAiB,KAAA;EAAA;EAChD,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC5B,IAAIN,QAAQ,CAACQ,MAAM,CAAC,EAAE;MACpB,KAAK,MAAM9D,GAAG,IAAI8D,MAAM,EAAE;QAExB,IAAI9D,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,aAAa,EAAE;QAClD,IAAI,CAACJ,MAAM,CAACmE,SAAS,CAACC,cAAc,CAACC,IAAI,CAACH,MAAM,EAAE9D,GAAG,CAAC,EAAE;QACxD,IAAI,CAACsD,QAAQ,CAACG,MAAM,CAAC,EAAE;QAEvB,IAAIH,QAAQ,CAACQ,MAAM,CAAC9D,GAAG,CAAC,CAAC,EAAE;UACzB,IAAI,CAACsD,QAAQ,CAACG,MAAM,CAACzD,GAAG,CAAC,CAAC,EAAE;YAC1ByD,MAAM,CAACzD,GAAG,CAAC,GAAG,CAAC,CAAC;UAClB;UACAwD,UAAU,CAACC,MAAM,CAACzD,GAAG,CAAC,EAAE8D,MAAM,CAAC9D,GAAG,CAAC,CAAC;QACtC,CAAC,MAAM;UACLyD,MAAM,CAACzD,GAAG,CAAC,GAAG8D,MAAM,CAAC9D,GAAG,CAAC;QAC3B;MACF;IACF;EACF;EAEA,OAAOyD,MAAM;AACf;AAGA,OAAO,MAAMS,MAAM,GAAIjE,KAAK,IAAK;EAC/B,IACEA,KAAK,KAAK,IAAI,IACd,OAAOA,KAAK,KAAK,WAAW,KAC3BkE,MAAM,CAAClE,KAAK,CAAC,KAAK,MAAM,IAAIkE,MAAM,CAAClE,KAAK,CAAC,KAAK,GAAG,CAAC,EACnD;IACA,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAMmE,0BAA0B,GAAGA,CACxCC,GAAG,EACHC,SAAS,EACTC,eAAe,KACZ;EACH,IAAIC,GAAG,GAAGd,SAAS;EAEnB,MAAMe,WAAW,GAAA7C,aAAA,CAAAA,aAAA,KACV2C,eAAe,IAAIA,eAAe,CAACG,KAAK,IAAK,CAAC,CAAC,GACjDH,eAAe,CACnB;EAGD,IAAIE,WAAW,IAAIA,WAAW,CAACjF,UAAU,IAAIiF,WAAW,CAACC,KAAK,EAAE;IAC9D,MAAMC,aAAa,GAAGF,WAAW,CAACC,KAAK,CAACC,aAAa;IACrD,IAAIA,aAAa,EAAE;MACjB,IAAI;QAEF,MAAMC,OAAO,GAAAhD,aAAA,KAAS+C,aAAa,CAACC,OAAO,IAAI,CAAC,CAAC,CAAG;QAGpD,MAAMpF,UAAU,GAAAoC,aAAA,KAAQ6C,WAAW,CAACjF,UAAU,CAAE;QAChD,KAAK,MAAMqB,CAAC,IAAIrB,UAAU,EAAE;UAC1B,IAAI,QAAQ,CAACsB,IAAI,CAACD,CAAC,CAAC,EAAE;YACpB+D,OAAO,CAACT,MAAM,CAACtD,CAAC,CAAC,CAACgE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAGrF,UAAU,CAACqB,CAAC,CAAC;UAC1D;QACF;QAGA,KAAK,MAAMA,CAAC,IAAI+D,OAAO,EAAE;UACvB,IAAIH,WAAW,CAACC,KAAK,CAACC,aAAa,CAACC,OAAO,EAAE;YAC3CH,WAAW,CAACC,KAAK,CAACC,aAAa,CAACC,OAAO,CAAC/D,CAAC,CAAC,GAAG+D,OAAO,CAAC/D,CAAC,CAAC;UACzD;UACA,IACE4D,WAAW,CAACC,KAAK,CAACjB,MAAM,IACxBgB,WAAW,CAACC,KAAK,CAACjB,MAAM,CAACmB,OAAO,EAChC;YACAH,WAAW,CAACC,KAAK,CAACjB,MAAM,CAACmB,OAAO,CAAC/D,CAAC,CAAC,GAAG+D,OAAO,CAAC/D,CAAC,CAAC;UAClD;QACF;MACF,CAAC,CAAC,OAAOpC,CAAC,EAAE;QACVlB,IAAI,CAAC,4BAA4B,EAAEkB,CAAC,CAAC;MACvC;IACF;EACF;EAEA,MAAMa,KAAK,GAAI+E,GAAG,IAAIA,GAAG,CAAC/E,KAAK,IAAK+E,GAAG;EAGvC,IAAIC,SAAS,CAAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC3B,IAAI,OAAOpC,KAAK,CAACgF,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMQ,CAAC,GAAGxF,KAAK,CAACgF,SAAS,CAAC,CAACS,KAAK,CAACV,GAAG,EAAE,CAACI,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BN,GAAG,GAAGM,CAAC;MACT;IACF;IAGAR,SAAS,GAAGU,WAAW,CAACV,SAAS,CAAC;IAClC,IAAI,OAAOhF,KAAK,CAACgF,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMQ,CAAC,GAAGxF,KAAK,CAACgF,SAAS,CAAC,CAACS,KAAK,CAACV,GAAG,EAAE,CAACI,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BN,GAAG,GAAGM,CAAC;MACT;IACF;EACF,CAAC,MAAM;IACL,IAAI,OAAOxF,KAAK,CAACgF,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMQ,CAAC,GAAGxF,KAAK,CAACgF,SAAS,CAAC,CAACS,KAAK,CAACV,GAAG,EAAE,CAACI,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BN,GAAG,GAAGM,CAAC;MACT;IACF;IAGAR,SAAS,GAAGW,WAAW,CAACX,SAAS,CAAC;IAClC,IAAI,OAAOhF,KAAK,CAACgF,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMQ,CAAC,GAAGxF,KAAK,CAACgF,SAAS,CAAC,CAACS,KAAK,CAACV,GAAG,EAAE,CAACI,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BN,GAAG,GAAGM,CAAC;MACT;IACF;EACF;EAEA,OAAON,GAAG;AACZ,CAAC;AAGD,OAAO,MAAMQ,WAAW,GAAIE,CAAC,IAC3BA,CAAC,CACEC,KAAK,CAAC,IAAI,CAAC,CACX/C,MAAM,CACL,CAACgD,GAAG,EAAEC,GAAG,EAAExE,CAAC,KACVuE,GAAG,IACFvE,CAAC,KAAK,CAAC,GACJwE,GAAG,GACHA,GAAG,CAACR,OAAO,CACT,YAAY,EACZ,CAACS,EAAE,EAAEC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,WAAW,CAAC,CAAC,GAAGD,EAAE,CAACE,WAAW,CAAC,CACpD,CAAC,CAAC,EACR,EACF,CAAC;AAGL,OAAO,MAAMC,YAAY,GAAIT,CAAC,IAC5BA,CAAC,CACEC,KAAK,CAAC,IAAI,CAAC,CACX/C,MAAM,CACL,CAACgD,GAAG,EAAEC,GAAG,KACPD,GAAG,GACHC,GAAG,CAACR,OAAO,CACT,YAAY,EACZ,CAACS,EAAE,EAAEC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,WAAW,CAAC,CAAC,GAAGD,EAAE,CAACE,WAAW,CAAC,CACpD,CAAC,EACH,EACF,CAAC;AAGL,OAAO,MAAMT,WAAW,GAAIW,GAAG,IAC7BA,GAAG,CAACf,OAAO,CAAC,UAAU,EAAGgB,MAAM,IAAK,IAAIA,MAAM,EAAE,CAAC,CAACH,WAAW,CAAC,CAAC;AAGjE,OAAO,MAAMI,WAAW,GAAIF,GAAG,IAC7BA,GAAG,CAACf,OAAO,CAAC,UAAU,EAAGgB,MAAM,IAAK,IAAIA,MAAM,EAAE,CAAC,CAACH,WAAW,CAAC,CAAC;AAEjE,OAAO,SAASK,aAAaA,CAACH,GAAG,EAAE;EACjC,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAC1BA,GAAG,CACAF,WAAW,CAAC,CAAC,CACbP,KAAK,CAAC,EAAE,CAAC,CACT5D,GAAG,CAAC,CAACyE,IAAI,EAAEC,KAAK,EAAEC,GAAG,KACpBD,KAAK,KAAK,CAAC,IAAIC,GAAG,CAACD,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAIC,GAAG,CAACD,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,GAC3DD,IAAI,CAACP,WAAW,CAAC,CAAC,GAClBO,IACN,CAAC,CACAxD,IAAI,CAAC,EAAE,CAAC,GACXoD,GAAG;AACT;AASA,OAAO,MAAMO,kBAAkB,GAAGA,CAACC,cAAc,EAAEC,SAAS,EAAEC,OAAO,KACnE,IAAIC,uBAAuB,CAACH,cAAc,EAAEC,SAAS,EAAEC,OAAO,CAAC;AAGjE,OAAO,MAAMC,uBAAuB,CAAC;EACnCC,WAAWA,CAACJ,eAAc,EAAEC,UAAS,EAAgB;IAAA,IAAdC,OAAO,GAAA1D,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,CAAC,CAAC;IAAA6D,eAAA,4BAkE/B,UAAAC,KAAA,EAAiD;MAAA,IAAhD;QAAEhC,KAAK;QAAE0B;MAAe,CAAC,GAAAM,KAAA;MAAA,IAAEL,SAAS,GAAAzD,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,IAAI;MAC9D,IAAI;QACF,MAAM+D,cAAc,GAAGjC,KAAK,CAACjB,MAAM;QAInC,IACE,CAAAkD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEC,OAAO,MAAK,MAAM,KACjClC,KAAK,CAACmC,KAAK,GAAGxI,QAAQ,CAACE,eAAe,CAACuI,WAAW,GAAG,EAAE,IACtDpC,KAAK,CAACqC,KAAK,GAAG1I,QAAQ,CAACE,eAAe,CAACyI,YAAY,GAAG,EAAE,CAAC,EAC3D;UACA;QACF;QAGA,IAAIC,mBAAmB,CAACN,cAAc,CAAC,EAAE;UACvC;QACF;QAGA,KAAK,IAAI9F,CAAC,GAAG,CAAC,EAAEqG,IAAI,EAAEC,CAAC,GAAGf,cAAc,CAAChF,MAAM,EAAEP,CAAC,GAAGsG,CAAC,EAAE,EAAEtG,CAAC,EAAE;UAI3D,MAAMuG,aAAa,GACjBhB,cAAc,CAACvF,CAAC,CAAC,IAAI,SAAS,IAAIuF,cAAc,CAACvF,CAAC,CAAC,GAC/CuF,cAAc,CAACvF,CAAC,CAAC,CAACwG,OAAO,GACzBjB,cAAc,CAACvF,CAAC,CAAC;UAEvBqG,IAAI,GAAGP,cAAc;UACrB,IAAI,CAACP,cAAc,CAACvF,CAAC,CAAC,EAAE;YACtB;UACF;UACA,GAAG;YACD,IAAIqG,IAAI,KAAKE,aAAa,EAAE;cAC1B;YACF;YACAF,IAAI,GAAGA,IAAI,IAAIA,IAAI,CAACI,UAAU;UAChC,CAAC,QAAQJ,IAAI;QACf;QAEA,IAAI,OAAOb,SAAS,KAAK,UAAU,EAAE;UACnCA,SAAS,CAAC,CAAC;QACb;MACF,CAAC,CAAC,OAAO5H,CAAC,EAAE;QACVlB,IAAI,CAACkB,CAAC,CAAC;MACT;IACF,CAAC;IAhHC,IACE,CAAC,IAAI,CAAC8I,kBAAkB,IACxB,OAAOlJ,QAAQ,KAAK,WAAW,IAC/B,OAAOM,MAAM,KAAK,WAAW,EAC7B;MACA,IAAI,CAACsC,KAAK,CAACC,OAAO,CAACkF,eAAc,CAAC,EAAE;QAClCA,eAAc,GAAG,CAACA,eAAc,CAAC;MACnC;MACA,IAAI,CAACmB,kBAAkB,GAAI7C,KAAK,IAAK;QACnC,IAAI,CAAC8C,iBAAiB,CACpB;UACE9C,KAAK;UACL0B,cAAc,EAAdA;QACF,CAAC,EACD,MAAM,OAAOC,UAAS,KAAK,UAAU,IAAIA,UAAS,CAAC;UAAE3B;QAAM,CAAC,CAC9D,CAAC;MACH,CAAC;MACDrG,QAAQ,CAACe,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACmI,kBAAkB,CAAC;MAE/D,IAAI,CAACE,eAAe,GAAI/C,KAAK,IAAK;QAChC,MAAMgD,OAAO,GAAGrK,OAAO,CAACqH,KAAK,CAAC;QAC9B,IAAIgD,OAAO,KAAK,KAAK,EAAE;UACrB/I,MAAM,CAACO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACuI,eAAe,CAAC;UAC3D,IAAI,OAAOpB,UAAS,KAAK,UAAU,EAAE;YACnCA,UAAS,CAAC;cAAE3B;YAAM,CAAC,CAAC;UACtB;QACF;MACF,CAAC;MACD/F,MAAM,CAACS,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACqI,eAAe,CAAC;MAGxD,IAAInB,OAAO,CAACqB,YAAY,EAAE;QAExB,IAAI,CAACC,aAAa,GAAIlD,KAAK,IAAK;UAC9B,MAAMgD,OAAO,GAAGrK,OAAO,CAACqH,KAAK,CAAC;UAC9B,IACE4B,OAAO,CAACqB,YAAY,CAACjG,QAAQ,CAACgG,OAAO,CAAC,IACtC,OAAO,IAAI,CAACH,kBAAkB,KAAK,UAAU,EAC7C;YACA,IAAI,CAACA,kBAAkB,CAAC7C,KAAK,EAAE,MAAM;cACnC,IAAI,IAAI,CAACkD,aAAa,EACpBjJ,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC0I,aAAa,CAAC;YAC3D,CAAC,CAAC;UACJ;QACF,CAAC;QACDjJ,MAAM,CAACS,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACwI,aAAa,CAAC;MACtD;IACF;EACF;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACN,kBAAkB,IAAI,OAAOlJ,QAAQ,KAAK,WAAW,EAAE;MAC9DA,QAAQ,CAACa,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACqI,kBAAkB,CAAC;MAClE,IAAI,CAACA,kBAAkB,GAAG,IAAI;IAChC;IACA,IAAI,IAAI,CAACE,eAAe,IAAI,OAAO9I,MAAM,KAAK,WAAW,EAAE;MACzDA,MAAM,CAACO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACuI,eAAe,CAAC;MAC3D,IAAI,CAACA,eAAe,GAAG,IAAI;IAC7B;IACA,IAAI,IAAI,CAACG,aAAa,IAAI,OAAOjJ,MAAM,KAAK,WAAW,EAAE;MACvDA,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC0I,aAAa,CAAC;MACvD,IAAI,CAACA,aAAa,GAAG,IAAI;IAC3B;EACF;AAkDF;AAEA,OAAO,MAAMX,mBAAmB,GAAIC,IAAI,IAAK;EAC3C,OACEA,IAAI,KACHA,IAAI,CAACY,YAAY,GAAGZ,IAAI,CAACa,YAAY,IACpCb,IAAI,CAACc,WAAW,GAAGd,IAAI,CAACe,WAAW,CAAC,IACtCC,oBAAoB,CAAChB,IAAI,CAAC;AAE9B,CAAC;AACD,MAAMgB,oBAAoB,GAAIhB,IAAI,IAAK;EACrC,MAAMiB,KAAK,GACT,OAAOxJ,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACyJ,gBAAgB,CAAClB,IAAI,CAAC,GAAG,CAAC,CAAC;EACpE,OAAO,cAAc,CAACpG,IAAI,CACxB,CAACqH,KAAK,CAACE,QAAQ,IAAI,EAAE,KAClBF,KAAK,CAACG,SAAS,IAAI,EAAE,CAAC,IACtBH,KAAK,CAACI,SAAS,IAAI,EAAE,CAC1B,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,YAAY,GAAG,SAAAA,CAAA;EAAA,IAACC,MAAM,GAAA7F,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,KAAK;EAAA,IAAExB,MAAM,GAAAwB,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,CAAC;EAAA,OACrD6F,MAAM,GACNtE,MAAM,CACJuE,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAEzH,MAAM,CAAC,GAAG0H,WAAW,EAC5D,CAAC,CAACC,KAAK,CAAC,CAAC3H,MAAM,CAAC;AAAA;AAClB,IAAI0H,WAAW,GAAG,CAAC;AAEnB,OAAO,MAAME,OAAO,GAAI9D,CAAC,IACvBf,MAAM,CAACe,CAAC,CAAC,CACNQ,WAAW,CAAC,CAAC,CACbb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CACxBA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CACxBA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAG5B,OAAO,MAAMoE,QAAQ,GAAGA,CAACC,MAAM,EAAEC,KAAK,KAAK;EACzC,IAAI,OAAOD,MAAM,CAACD,QAAQ,KAAK,UAAU,EAAE;IACzC,OAAOhI,KAAK,CAACmI,IAAI,CAACF,MAAM,CAACD,QAAQ,CAACE,KAAK,CAAC,CAAC;EAC3C;EACA,MAAME,OAAO,GAAG,EAAE;EAClB,IAAItK,KAAK;EACT,OAAQA,KAAK,GAAGoK,KAAK,CAACG,IAAI,CAACJ,MAAM,CAAC,EAAG;IACnCG,OAAO,CAAC9G,IAAI,CAACxD,KAAK,CAAC;EACrB;EACA,OAAOsK,OAAO;AAChB,CAAC;AAWD,OAAO,MAAME,gBAAgB,GAAG,SAAAA,CAACC,OAAO,EAAE/F,MAAM,EAAsB;EAAA,IAApBgG,QAAQ,GAAA7G,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAG,IAAI;EAC/D,IAAI;IACF,MAAM8G,QAAQ,GAAIF,OAAO,IAAK;MAC5B,IAAIC,QAAQ,EAAE;QACZ,MAAMvH,GAAG,GAAGuH,QAAQ,CAACD,OAAO,CAAC;QAC7B,IAAItH,GAAG,EAAE;UACP,OAAOsH,OAAO;QAChB;MACF;MACA,OAAOA,OAAO,IAAIA,OAAO,KAAK/F,MAAM;IACtC,CAAC;IAED,IAAIiG,QAAQ,CAACF,OAAO,CAAC,EAAE;MACrB,OAAOA,OAAO;IAChB;IAEA,OACE,CAACA,OAAO,GAAGA,OAAO,IAAIA,OAAO,CAACG,aAAa,KAC3C,CAACD,QAAQ,CAACF,OAAO,CAAC,CACnB;EACH,CAAC,CAAC,OAAO/K,CAAC,EAAE,CAEZ;EAEA,OAAO+K,OAAO;AAChB,CAAC;AAGD,OAAO,MAAMI,cAAc,GAAGA,CAACC,GAAG,EAAEpG,MAAM,KAAK;EAC7C,MAAMqG,IAAI,GAAGD,GAAG,GAAGpG,MAAM;EACzB,OAAOqG,IAAI,GAAGrG,MAAM,GAAG,CAAC,GAAGoG,GAAG,GAAGC,IAAI,GAAGrG,MAAM,GAAGoG,GAAG,GAAGC,IAAI;AAC7D,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAIpD,cAAc,IAAK;EAC7D,OAAOhJ,kBAAkB,CAAC,kBAAkB,EAAEgJ,cAAc,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMqD,kBAAkB,GAAG,SAAAA,CAChCC,QAAQ,EAGL;EAAA,IAFHC,SAAS,GAAAtH,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAGc,SAAS;EAAA,IACrByG,aAAa,GAAAvH,SAAA,CAAAxB,MAAA,QAAAwB,SAAA,QAAAc,SAAA,GAAAd,SAAA,MAAGc,SAAS;EAEzB,IAAI,CAACzC,KAAK,CAACC,OAAO,CAAC+I,QAAQ,CAAC,EAAE;IAC5BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;EACvB;EAEA,MAAMG,OAAO,GAAIC,IAAI,IAAK;IACxB,IAAIjN,KAAK,CAACkN,cAAc,CAACD,IAAI,CAAC,EAAE;MAC9B,IAAIF,aAAa,EAAE;QACjBE,IAAI,GAAGF,aAAa,CAACE,IAAI,CAAC;MAC5B;MAEA,IAAI,OAAOA,IAAI,CAAC/K,KAAK,CAACuC,QAAQ,KAAK,QAAQ,EAAE;QAC3CwI,IAAI,GAAGA,IAAI,CAAC/K,KAAK,CAACuC,QAAQ,CAAC0I,IAAI,CAAC,CAAC;MACnC,CAAC,MAAM,IAAItJ,KAAK,CAACC,OAAO,CAACmJ,IAAI,CAAC/K,KAAK,CAACuC,QAAQ,CAAC,EAAE;QAC7CwI,IAAI,GAAGA,IAAI,CAAC/K,KAAK,CAACuC,QAAQ,CAACO,MAAM,CAAC,CAACgD,GAAG,EAAEiF,IAAI,KAAK;UAC/C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;YAC5BA,IAAI,GAAGD,OAAO,CAACC,IAAI,EAAEH,SAAS,EAAEC,aAAa,CAAC;UAChD;UACA,IAAI,OAAOE,IAAI,KAAK,QAAQ,EAAE;YAC5BjF,GAAG,GAAG,CAACA,GAAG,IAAI8E,SAAS,IAAI,EAAE,CAAC,GAAGG,IAAI,EAAEE,IAAI,CAAC,CAAC;UAC/C;UACA,OAAOnF,GAAG;QACZ,CAAC,EAAE,EAAE,CAAC;MACR,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF;IAEA,OAAOiF,IAAI;EACb,CAAC;EAED,OAAOJ,QAAQ,CACZ1I,GAAG,CAAE8I,IAAI,IAAKD,OAAO,CAACC,IAAI,CAAC,CAAC,CAC5BrI,MAAM,CAACC,OAAO,CAAC,CACfO,IAAI,CAAC0H,SAAS,CAAC,CACfK,IAAI,CAAC,CAAC;AACX,CAAC;AAED,OAAO,SAASC,wBAAwBA,CAACC,MAAM,EAAEC,KAAK,EAAE;EACtD,OAAOD,MAAM,GAAGC,KAAK,GAAG,IAAI;AAC9B;AAEA,OAAO,SAASC,cAAcA,CAACF,MAAM,EAAE;EACrC,OACEA,MAAM,IAAIA,MAAM,KAAK,OAAO,IAAIA,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,MAAM;AAE1E;AAEA,OAAO,SAASG,iBAAiBA,CAAA,EAAY;EAAA,SAAAC,KAAA,GAAAjI,SAAA,CAAAxB,MAAA,EAAR7B,MAAM,OAAA0B,KAAA,CAAA4J,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAANvL,MAAM,CAAAuL,KAAA,IAAAlI,SAAA,CAAAkI,KAAA;EAAA;EACzC,OAAOC,aAAa,CAAC,iBAAiB,EAAExL,MAAM,CAAC;AACjD;AACA,OAAO,SAASyL,kBAAkBA,CAAA,EAAY;EAAA,SAAAC,KAAA,GAAArI,SAAA,CAAAxB,MAAA,EAAR7B,MAAM,OAAA0B,KAAA,CAAAgK,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAAN3L,MAAM,CAAA2L,KAAA,IAAAtI,SAAA,CAAAsI,KAAA;EAAA;EAC1C,OAAOH,aAAa,CAAC,kBAAkB,EAAExL,MAAM,CAAC;AAClD;AACA,OAAO,SAAS4L,cAAcA,CAAA,EAAY;EAAA,SAAAC,KAAA,GAAAxI,SAAA,CAAAxB,MAAA,EAAR7B,MAAM,OAAA0B,KAAA,CAAAmK,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;IAAN9L,MAAM,CAAA8L,KAAA,IAAAzI,SAAA,CAAAyI,KAAA;EAAA;EACtC,OAAON,aAAa,CAAC,cAAc,EAAExL,MAAM,CAAC;AAC9C;AACA,SAASwL,aAAaA,CAACO,IAAI,EAAE/L,MAAM,EAAE;EACnCA,MAAM,GAAGA,MAAM,CAACgC,GAAG,CAAE8D,GAAG,IAAK;IAC3B,IAAIpE,KAAK,CAACC,OAAO,CAACmE,GAAG,CAAC,EAAE;MACtB,OAAOA,GAAG,CAAC7C,IAAI,CAAC,GAAG,CAAC;IACtB;IACA,IAAI6C,GAAG,IAAI9F,MAAM,CAACmC,QAAQ,CAAC2D,GAAG,CAACiG,IAAI,CAAC,CAAC,EAAE;MACrC,OAAO,IAAI;IACb;IACA,IAAIjG,GAAG,IAAI,OAAOA,GAAG,CAACiG,IAAI,CAAC,KAAK,WAAW,EAAE;MAC3CjG,GAAG,GAAGA,GAAG,CAACiG,IAAI,CAAC;IACjB;IACA,IAAI,OAAOjG,GAAG,KAAK,QAAQ,EAAE;MAC3BA,GAAG,GAAG,IAAI;IACZ;IACA,OAAOA,GAAG;EACZ,CAAC,CAAC;EACF9F,MAAM,GAAGA,MAAM,CAACyC,MAAM,CAACC,OAAO,CAAC,CAACO,IAAI,CAAC,GAAG,CAAC;EACzC,IAAIjD,MAAM,KAAK,EAAE,EAAE;IACjBA,MAAM,GAAGmE,SAAS;EACpB;EACA,OAAOnE,MAAM;AACf;AAEA,OAAO,SAASgM,qBAAqBA,CAAC1J,QAAQ,EAAE2J,IAAI,EAAE;EACpD,IAAI,CAACvK,KAAK,CAACC,OAAO,CAACW,QAAQ,CAAC,EAAE;IAC5BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;EACvB;EAEA,IAAI4J,MAAM,GAAG,IAAI;EACjB5J,QAAQ,CAAC6J,IAAI,CAAErG,GAAG,IAAK;IACrB,IAAIA,GAAG,IAAIA,GAAG,CAAC/F,KAAK,IAAI+F,GAAG,CAAC/F,KAAK,CAACuC,QAAQ,EAAE;MAC1C,MAAMK,GAAG,GAAGqJ,qBAAqB,CAAClG,GAAG,CAAC/F,KAAK,CAACuC,QAAQ,EAAE2J,IAAI,CAAC;MAC3D,IAAItJ,GAAG,EAAE;QACP,OAAQuJ,MAAM,GAAGvJ,GAAG;MACtB;IACF;IACA,IAAI9E,KAAK,CAACkN,cAAc,CAACjF,GAAG,CAAC,IAAImG,IAAI,CAACnG,GAAG,CAAC,EAAE;MAC1C,OAAQoG,MAAM,GAAGpG,GAAG;IACtB;IACA,OAAO,IAAI;EACb,CAAC,CAAC;EAEF,OAAOoG,MAAM;AACf;AAEA,OAAO,SAASE,gBAAgBA,CAAC/F,GAAG,EAAE;EACpC,OAAOA,GAAG,CAACf,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC;AACtD;AAEA,OAAO,SAAS+G,oBAAoBA,CAAC1I,MAAM,EAAE;EAC3CtD,MAAM,CAACyD,IAAI,CAACH,MAAM,IAAI,CAAC,CAAC,CAAC,CAACpD,OAAO,CAAEE,GAAG,IAAK;IACzC,IAAIkD,MAAM,CAAClD,GAAG,CAAC,KAAK0D,SAAS,EAAE;MAC7B,OAAOR,MAAM,CAAClD,GAAG,CAAC;IACpB;EACF,CAAC,CAAC;EACF,OAAOkD,MAAM;AACf","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","getPreviousSibling","init","defineNavigator","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","_ref","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","extendGracefully","first","_len","arguments","length","objects","Array","_key","keepRef","shift","reduce","acc1","object","acc2","_ref2","keys","isObject","item","isArray","extendDeep","target","undefined","_len2","sources","_key2","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","_objectSpread","event","currentTarget","dataset","replace","e","includes","r","apply","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","push","isChildOfElement","element","callback","contains","res","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","currentElement","convertJsxToString","elements","separator","transformWord","process","word","isValidElement","children","trim","filter","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
|
*
|
|
@@ -38,9 +38,10 @@ export function classWithCamelCaseProps(Base) {
|
|
|
38
38
|
});
|
|
39
39
|
return Derived;
|
|
40
40
|
}
|
|
41
|
-
export function convertCamelCasePropsToSnakeCase(props) {
|
|
41
|
+
export function convertCamelCasePropsToSnakeCase(props, validProperties) {
|
|
42
42
|
const isFrozen = Object.isFrozen(props);
|
|
43
43
|
const newProps = isFrozen ? _objectSpread({}, props) : props;
|
|
44
|
+
const hasValidProperties = Array.isArray(validProperties);
|
|
44
45
|
for (const key in props) {
|
|
45
46
|
switch (key) {
|
|
46
47
|
case 'className':
|
|
@@ -49,7 +50,11 @@ export function convertCamelCasePropsToSnakeCase(props) {
|
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
if (/^[a-z]+[A-Z]/.test(key)) {
|
|
52
|
-
|
|
53
|
+
const name = toSnakeCase(key);
|
|
54
|
+
if (hasValidProperties && !(validProperties !== null && validProperties !== void 0 && validProperties.includes(name))) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
newProps[name] = props[key];
|
|
53
58
|
delete newProps[key];
|
|
54
59
|
}
|
|
55
60
|
}
|