@dnb/eufemia 10.73.2 → 10.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/cjs/components/autocomplete/Autocomplete.js +7 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/cjs/components/button/style/dnb-button.css +1 -0
- package/cjs/components/button/style/dnb-button.min.css +1 -1
- package/cjs/components/button/style/dnb-button.scss +1 -0
- package/cjs/components/checkbox/Checkbox.d.ts +9 -1
- package/cjs/components/checkbox/Checkbox.js +59 -34
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/checkbox/CheckboxDocs.js +6 -1
- package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +4 -0
- package/cjs/components/date-picker/DatePicker.js +4 -3
- package/cjs/components/date-picker/DatePicker.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
- package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
- package/cjs/components/date-picker/DatePickerDocs.js +6 -1
- package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
- package/cjs/components/date-picker/DatePickerFooter.js +20 -17
- package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
- package/cjs/components/date-picker/DatePickerProvider.js +7 -0
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/date-picker/DatePickerRange.js +2 -28
- package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
- package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
- package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/cjs/components/drawer/Drawer.js +1 -0
- package/cjs/components/drawer/Drawer.js.map +1 -1
- package/cjs/components/dropdown/Dropdown.js +6 -4
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
- package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
- package/cjs/components/heading/HeadingHelpers.js +9 -5
- package/cjs/components/heading/HeadingHelpers.js.map +1 -1
- package/cjs/components/icon/Icon.d.ts +2 -2
- package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.js +6 -4
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.js +2 -2
- package/cjs/components/switch/SwitchDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
- package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
- package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
- package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
- package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
- package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
- package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
- package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
- package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
- package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
- package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/cjs/fragments/drawer-list/DrawerList.js +70 -175
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
- package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
- package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +45 -48
- package/cjs/shared/component-helper.js +72 -201
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/cjs/shared/legacy/component-helper-legacy.js +202 -0
- package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
- package/cjs/shared/locales/en-GB.d.ts +1 -0
- package/cjs/shared/locales/en-GB.js +1 -0
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +2 -0
- package/cjs/shared/locales/nb-NO.d.ts +1 -0
- package/cjs/shared/locales/nb-NO.js +2 -1
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/locales/sv-SE.d.ts +1 -0
- package/cjs/shared/locales/sv-SE.js +1 -0
- package/cjs/shared/locales/sv-SE.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +2 -1
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/components/autocomplete/Autocomplete.js +6 -3
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/components/autocomplete/AutocompleteDocs.js +1 -1
- package/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/components/button/style/dnb-button.css +1 -0
- package/components/button/style/dnb-button.min.css +1 -1
- package/components/button/style/dnb-button.scss +1 -0
- package/components/checkbox/Checkbox.d.ts +9 -1
- package/components/checkbox/Checkbox.js +60 -35
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/checkbox/CheckboxDocs.js +6 -1
- package/components/checkbox/CheckboxDocs.js.map +1 -1
- package/components/date-picker/DatePicker.d.ts +4 -0
- package/components/date-picker/DatePicker.js +4 -3
- package/components/date-picker/DatePicker.js.map +1 -1
- package/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/components/date-picker/DatePickerCalendar.js +27 -86
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
- package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/components/date-picker/DatePickerContext.d.ts +3 -0
- package/components/date-picker/DatePickerContext.js.map +1 -1
- package/components/date-picker/DatePickerDocs.js +6 -1
- package/components/date-picker/DatePickerDocs.js.map +1 -1
- package/components/date-picker/DatePickerFooter.js +20 -17
- package/components/date-picker/DatePickerFooter.js.map +1 -1
- package/components/date-picker/DatePickerProvider.js +7 -0
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/date-picker/DatePickerRange.js +2 -28
- package/components/date-picker/DatePickerRange.js.map +1 -1
- package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/components/date-picker/style/dnb-date-picker.css +1 -1
- package/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/components/drawer/Drawer.js +1 -0
- package/components/drawer/Drawer.js.map +1 -1
- package/components/dropdown/Dropdown.js +6 -4
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/dropdown/DropdownDocs.d.ts +179 -3
- package/components/dropdown/DropdownDocs.js.map +1 -1
- package/components/heading/HeadingHelpers.js +9 -5
- package/components/heading/HeadingHelpers.js.map +1 -1
- package/components/icon/Icon.d.ts +2 -2
- package/components/input-masked/InputMaskedDocs.js +1 -1
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/components/input-masked/InputMaskedHooks.js +39 -7
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +6 -5
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/number-format/NumberUtils.js +5 -4
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/switch/SwitchDocs.js +2 -2
- package/components/switch/SwitchDocs.js.map +1 -1
- package/es/components/autocomplete/Autocomplete.js +6 -3
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
- package/es/components/autocomplete/AutocompleteDocs.js +1 -1
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
- package/es/components/button/style/dnb-button.css +1 -0
- package/es/components/button/style/dnb-button.min.css +1 -1
- package/es/components/button/style/dnb-button.scss +1 -0
- package/es/components/checkbox/Checkbox.d.ts +9 -1
- package/es/components/checkbox/Checkbox.js +60 -35
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/checkbox/CheckboxDocs.js +6 -1
- package/es/components/checkbox/CheckboxDocs.js.map +1 -1
- package/es/components/date-picker/DatePicker.d.ts +4 -0
- package/es/components/date-picker/DatePicker.js +4 -3
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
- package/es/components/date-picker/DatePickerCalendar.js +23 -80
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
- package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
- package/es/components/date-picker/DatePickerContext.d.ts +3 -0
- package/es/components/date-picker/DatePickerContext.js.map +1 -1
- package/es/components/date-picker/DatePickerDocs.js +6 -1
- package/es/components/date-picker/DatePickerDocs.js.map +1 -1
- package/es/components/date-picker/DatePickerFooter.js +20 -17
- package/es/components/date-picker/DatePickerFooter.js.map +1 -1
- package/es/components/date-picker/DatePickerProvider.js +7 -0
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/date-picker/DatePickerRange.js +2 -27
- package/es/components/date-picker/DatePickerRange.js.map +1 -1
- package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
- package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
- package/es/components/date-picker/style/dnb-date-picker.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
- package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
- package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
- package/es/components/drawer/Drawer.js +1 -0
- package/es/components/drawer/Drawer.js.map +1 -1
- package/es/components/dropdown/Dropdown.js +6 -4
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/dropdown/DropdownDocs.d.ts +179 -3
- package/es/components/dropdown/DropdownDocs.js.map +1 -1
- package/es/components/heading/HeadingHelpers.js +9 -5
- package/es/components/heading/HeadingHelpers.js.map +1 -1
- package/es/components/icon/Icon.d.ts +2 -2
- package/es/components/input-masked/InputMaskedDocs.js +1 -1
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
- package/es/components/input-masked/InputMaskedHooks.js +39 -7
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +6 -5
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/number-format/NumberUtils.js +5 -4
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/switch/SwitchDocs.js +2 -2
- package/es/components/switch/SwitchDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/es/extensions/forms/Field/Date/Date.js +1 -1
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/es/extensions/forms/Field/Selection/Selection.js +9 -8
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
- package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
- package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
- package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
- package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/es/extensions/forms/constants/locales/en-GB.js +3 -3
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/es/extensions/forms/constants/locales/index.d.ts +2 -2
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/es/extensions/forms/hooks/useDataContext.js +5 -3
- package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/es/extensions/forms/hooks/useSnapshot.js +18 -15
- package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/es/fragments/drawer-list/DrawerList.js +72 -173
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/es/fragments/drawer-list/DrawerListItem.js +90 -0
- package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
- package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.d.ts +45 -48
- package/es/shared/component-helper.js +20 -183
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/es/shared/helpers/withCamelCaseProps.js +7 -2
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/es/shared/legacy/component-helper-legacy.js +180 -0
- package/es/shared/legacy/component-helper-legacy.js.map +1 -0
- package/es/shared/locales/en-GB.d.ts +1 -0
- package/es/shared/locales/en-GB.js +1 -0
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +2 -0
- package/es/shared/locales/nb-NO.d.ts +1 -0
- package/es/shared/locales/nb-NO.js +2 -1
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/locales/sv-SE.d.ts +1 -0
- package/es/shared/locales/sv-SE.js +1 -0
- package/es/shared/locales/sv-SE.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +2 -1
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +9 -0
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
- package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +1 -1
- package/extensions/forms/Field/Date/Date.js +1 -1
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js +1 -1
- package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
- package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
- package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
- package/extensions/forms/Field/Selection/Selection.js +10 -9
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
- package/extensions/forms/Field/Toggle/Toggle.js +26 -9
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
- package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
- package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
- package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
- package/extensions/forms/Form/Isolation/Isolation.js +40 -15
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
- package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
- package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
- package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
- package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
- package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
- package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
- package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
- package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
- package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
- package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
- package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
- package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js +1 -1
- package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
- package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
- package/extensions/forms/constants/locales/en-GB.js +3 -3
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +1 -1
- package/extensions/forms/constants/locales/index.d.ts +2 -2
- package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
- package/extensions/forms/constants/locales/nb-NO.js +3 -3
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
- package/extensions/forms/constants/locales/sv-SE.js +3 -3
- package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
- package/extensions/forms/hooks/useDataContext.js +5 -3
- package/extensions/forms/hooks/useDataContext.js.map +1 -1
- package/extensions/forms/hooks/useSnapshot.js +18 -15
- package/extensions/forms/hooks/useSnapshot.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +176 -224
- package/fragments/drawer-list/DrawerList.js +71 -175
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
- package/fragments/drawer-list/DrawerListContext.js.map +1 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
- package/fragments/drawer-list/DrawerListDocs.js +2 -2
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
- package/fragments/drawer-list/DrawerListHelpers.js +45 -53
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
- package/fragments/drawer-list/DrawerListItem.js +91 -0
- package/fragments/drawer-list/DrawerListItem.js.map +1 -0
- package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
- package/fragments/drawer-list/DrawerListPortal.js +91 -121
- package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
- package/fragments/drawer-list/DrawerListProvider.js +12 -19
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +45 -48
- package/shared/component-helper.js +23 -189
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +4 -5
- package/shared/helpers/withCamelCaseProps.js +7 -2
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/legacy/component-helper-legacy.d.ts +19 -0
- package/shared/legacy/component-helper-legacy.js +185 -0
- package/shared/legacy/component-helper-legacy.js.map +1 -0
- package/shared/locales/en-GB.d.ts +1 -0
- package/shared/locales/en-GB.js +1 -0
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +2 -0
- package/shared/locales/nb-NO.d.ts +1 -0
- package/shared/locales/nb-NO.js +2 -1
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/locales/sv-SE.d.ts +1 -0
- package/shared/locales/sv-SE.js +1 -0
- package/shared/locales/sv-SE.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +2 -1
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-components.css +19 -1
- package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
- /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
- /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_NumberUtils","_componentHelper","_createTextMaskInputElement","_TextMask","_createNumberMask","_InputMaskedContext","_InputMaskedUtils","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","useFilteredProps","props","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","useCallback","params","innerRef","inputRef","inputElement","guide","getSoftKeyboardAttributes","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","maskParamsRef","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","keycode","which","data","key","disallowLeadingZeroes","replace","test","testValue","slice","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","safeSetSelection","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","charAt","runCorrectCaretPosition","correctCaretPosition","__getCorrectCaretPosition","result","dispatchCustomElementEvent","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","_currency_mask2","getCurrencySymbol","currencyDisplay","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n keycode,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() => {\n return correctNumberValue({\n locale,\n props,\n maskParams,\n })\n })\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n return useCallback(\n (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || createNumberMask()}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n },\n [\n keepCharPositions,\n mask,\n pipe,\n placeholderChar,\n ref,\n showGuide,\n showMask,\n ]\n )\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const maskParamsRef = React.useRef()\n maskParamsRef.current = useMaskParams()\n\n const { props } = React.useContext(InputMaskedContext)\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n const maskParams = maskParamsRef.current\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Add support for \"await userEvent.type(input, '0...')\"\n if (isUnidentified && event.key === '0') {\n keyCode = '0'\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParamsRef, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_NumberUtils","_componentHelper","_createTextMaskInputElement","_utilities","_TextMask","_createNumberMask","_InputMaskedContext","_InputMaskedUtils","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","useFilteredProps","props","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","useCallback","params","innerRef","inputRef","inputElement","guide","getSoftKeyboardAttributes","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onInput","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","maskParamsRef","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","keycode","which","data","key","disallowLeadingZeroes","isNegative","RegExp","NUMBER_MINUS","test","onlyNumber","replace","decimalSymbol","leadingZeroes","charAt","newSelStart","newValue","firstNumberIndex","char","isNumber","parseInt","substring","safeSetSelection","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","preventDefault","charAtSelection","slice","index","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","runCorrectCaretPosition","correctCaretPosition","__getCorrectCaretPosition","result","dispatchCustomElementEvent","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","_currency_mask2","getCurrencySymbol","currencyDisplay","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n NUMBER_MINUS,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n keycode,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\nimport { isNumber } from './text-mask/utilities'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() => {\n return correctNumberValue({\n locale,\n props,\n maskParams,\n })\n })\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n return useCallback(\n (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || createNumberMask()}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n },\n [\n keepCharPositions,\n mask,\n pipe,\n placeholderChar,\n ref,\n showGuide,\n showMask,\n ]\n )\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'onBeforeInput'),\n onInput: (event) => callEvent({ event }, 'onInput'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const maskParamsRef = React.useRef()\n maskParamsRef.current = useMaskParams()\n\n const { props } = React.useContext(InputMaskedContext)\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n const maskParams = maskParamsRef.current\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'onBeforeInput' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Add support for \"await userEvent.type(input, '0...')\"\n if (isUnidentified && event.key === '0') {\n keyCode = '0'\n isUnidentified = false\n }\n\n // Prevent entering a leading zero.\n // Also remove leading zeroes when the input is blurred.\n if (\n maskParams?.disallowLeadingZeroes &&\n (name === 'onInput' || name === 'on_blur')\n ) {\n const isNegative = new RegExp(`^${NUMBER_MINUS}`, 'g').test(value)\n if (\n (isNegative ? selStart > 1 : selStart > 0) ||\n name === 'on_blur'\n ) {\n const onlyNumber = value.replace(\n new RegExp(`[^\\\\d${maskParams.decimalSymbol}]`, 'g'),\n ''\n )\n let leadingZeroes = 0\n for (let i = 0; i < onlyNumber.length - 1; i++) {\n if (\n onlyNumber.charAt(i) === '0' &&\n onlyNumber.charAt(i + 1) !== maskParams.decimalSymbol\n ) {\n leadingZeroes++\n } else {\n break\n }\n }\n let newSelStart = selStart\n let newValue = value\n let firstNumberIndex = 0\n if (leadingZeroes > 0) {\n for (let i = 0; i < value.length; i++) {\n firstNumberIndex = i\n const char = value.charAt(i)\n\n if (\n (char !== '0' && isNumber(parseInt(char))) ||\n value.charAt(i + 1) === maskParams.decimalSymbol\n ) {\n break\n }\n }\n newValue =\n value.substring(0, isNegative ? 1 : 0) +\n value.substring(firstNumberIndex)\n\n newSelStart =\n selStart > firstNumberIndex\n ? selStart - (value.length - newValue.length)\n : isNegative\n ? 1\n : 0\n }\n\n if (newValue !== value) {\n setLocalValue(newValue)\n event.target.value = newValue\n safeSetSelection(event.target, newSelStart)\n value = newValue\n }\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParamsRef, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":";;;;;;;;AAKA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AAMA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAEA,IAAAO,SAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,iBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,mBAAA,GAAAP,sBAAA,CAAAF,OAAA;AAEA,IAAAU,iBAAA,GAAAV,OAAA;AAa2B,MAAAW,SAAA;AAAA,SAAAT,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,QAAApB,CAAA,EAAAK,CAAA,QAAAC,CAAA,GAAAM,MAAA,CAAAS,IAAA,CAAArB,CAAA,OAAAY,MAAA,CAAAU,qBAAA,QAAAC,CAAA,GAAAX,MAAA,CAAAU,qBAAA,CAAAtB,CAAA,GAAAK,CAAA,KAAAkB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAnB,CAAA,WAAAO,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAK,CAAA,EAAAoB,UAAA,OAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAiB,CAAA,YAAAjB,CAAA;AAAA,SAAAsB,cAAA5B,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAwB,SAAA,CAAAC,MAAA,EAAAzB,CAAA,UAAAC,CAAA,WAAAuB,SAAA,CAAAxB,CAAA,IAAAwB,SAAA,CAAAxB,CAAA,QAAAA,CAAA,OAAAe,OAAA,CAAAR,MAAA,CAAAN,CAAA,OAAAyB,OAAA,WAAA1B,CAAA,IAAA2B,eAAA,CAAAhC,CAAA,EAAAK,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAO,MAAA,CAAAqB,yBAAA,GAAArB,MAAA,CAAAsB,gBAAA,CAAAlC,CAAA,EAAAY,MAAA,CAAAqB,yBAAA,CAAA3B,CAAA,KAAAc,OAAA,CAAAR,MAAA,CAAAN,CAAA,GAAAyB,OAAA,WAAA1B,CAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,EAAAO,MAAA,CAAAE,wBAAA,CAAAR,CAAA,EAAAD,CAAA,iBAAAL,CAAA;AAAA,SAAAgC,gBAAAhC,CAAA,EAAAK,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAA8B,cAAA,CAAA9B,CAAA,MAAAL,CAAA,GAAAY,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,IAAA+B,KAAA,EAAA9B,CAAA,EAAAmB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAAtC,CAAA,CAAAK,CAAA,IAAAC,CAAA,EAAAN,CAAA;AAAA,SAAAmC,eAAA7B,CAAA,QAAAY,CAAA,GAAAqB,YAAA,CAAAjC,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAqB,aAAAjC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAN,CAAA,GAAAM,CAAA,CAAAkC,MAAA,CAAAC,WAAA,kBAAAzC,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAAwB,SAAA,yEAAArC,CAAA,GAAAsC,MAAA,GAAAC,MAAA,EAAAtC,CAAA;AAAA,SAAAuC,SAAA,WAAAA,QAAA,GAAAjC,MAAA,CAAAkC,MAAA,GAAAlC,MAAA,CAAAkC,MAAA,CAAAC,IAAA,eAAAtC,CAAA,aAAAT,CAAA,MAAAA,CAAA,GAAA6B,SAAA,CAAAC,MAAA,EAAA9B,CAAA,UAAAM,CAAA,GAAAuB,SAAA,CAAA7B,CAAA,YAAAK,CAAA,IAAAC,CAAA,OAAAU,cAAA,CAAAC,IAAA,CAAAX,CAAA,EAAAD,CAAA,MAAAI,CAAA,CAAAJ,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAI,CAAA,KAAAoC,QAAA,CAAAlB,KAAA,OAAAE,SAAA;AAAA,SAAAmB,yBAAAhD,CAAA,EAAAM,CAAA,gBAAAN,CAAA,iBAAAuB,CAAA,EAAAlB,CAAA,EAAAa,CAAA,GAAA+B,6BAAA,CAAAjD,CAAA,EAAAM,CAAA,OAAAM,MAAA,CAAAU,qBAAA,QAAAb,CAAA,GAAAG,MAAA,CAAAU,qBAAA,CAAAtB,CAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAI,CAAA,CAAAqB,MAAA,EAAAzB,CAAA,IAAAkB,CAAA,GAAAd,CAAA,CAAAJ,CAAA,UAAAC,CAAA,CAAA4C,OAAA,CAAA3B,CAAA,QAAA4B,oBAAA,CAAAlC,IAAA,CAAAjB,CAAA,EAAAuB,CAAA,MAAAL,CAAA,CAAAK,CAAA,IAAAvB,CAAA,CAAAuB,CAAA,aAAAL,CAAA;AAAA,SAAA+B,8BAAA5C,CAAA,EAAAL,CAAA,gBAAAK,CAAA,iBAAAC,CAAA,gBAAAG,CAAA,IAAAJ,CAAA,SAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAI,CAAA,gBAAAT,CAAA,CAAAkD,OAAA,CAAAzC,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAJ,CAAA,CAAAI,CAAA,YAAAH,CAAA;AAG3B,MAAM8C,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGC,cAAK,CAACC,SAAS,GAAGD,cAAK,CAACF,eAAe;AAOlE,MAAMI,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAM;IAAEC;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAM;MACJC,IAAI;MACJC,WAAW;MACXC,aAAa;MACbC,aAAa;MACbC,YAAY;MACZC,WAAW;MACXC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,UAAU;MACVC,IAAI;MACJC,mBAAmB;MACnBC;IAIF,CAAC,GAAGhB,KAAK;IADJiB,UAAU,GAAA1B,wBAAA,CACXS,KAAK,EAAA1D,SAAA;EAET,OAAO;IAAE0D,KAAK;IAAEkB,cAAc,EAAE/D,MAAM,CAACgE,MAAM,CAACF,UAAU;EAAE,CAAC;AAC7D,CAAC;AAAAG,OAAA,CAAArB,gBAAA,GAAAA,gBAAA;AAOM,MAAMsB,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAErB,KAAK;IAAEsB;EAAQ,CAAC,GAAGzB,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAE/D,IAAI;IAAES;EAAO,CAAC,GAAGX,KAAK;EACtB,IAAI,CAACW,MAAM,IAAIW,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEX,MAAM,EAAE;IAC9BA,MAAM,GAAGW,OAAO,CAACX,MAAM;EACzB;EAEA,OAAOA,MAAM;AACf,CAAC;AAAAS,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAUM,MAAME,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEvB,KAAK;IAAEsB;EAAQ,CAAC,GAAGzB,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAC/D,MAAMsB,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAC9C,MAAMd,MAAM,GAAGU,cAAc,CAAC,CAAC;EAE/B,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG9B,cAAK,CAAC+B,QAAQ,CAAC,MAAM;IACvD,OAAO,IAAAC,oCAAkB,EAAC;MACxBlB,MAAM;MACNX,KAAK;MACLwB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAMF3B,cAAK,CAACC,SAAS,CAAC,MAAM;IACpB,MAAMnB,KAAK,GAAG,IAAAkD,oCAAkB,EAAC;MAC/BH,UAAU;MACVf,MAAM;MACNX,KAAK;MACLwB;IACF,CAAC,CAAC;IAEFG,aAAa,CAAChD,KAAK,CAAC;EAGtB,CAAC,EAAE,CAACqB,KAAK,EAAEsB,OAAO,EAAEX,MAAM,CAAC,CAAC;EAE5B,OAAO;IAAEe,UAAU;IAAEC;EAAc,CAAC;AACtC,CAAC;AAAAP,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAOM,MAAMO,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMN,UAAU,GAAGC,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAEzB;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAEtD,IAAI,CAACsB,UAAU,IAAI,CAAC,IAAAO,wCAAsB,EAAC/B,KAAK,CAAC,EAAE;IACjD,OAAO,IAAI;EACb;EAEA,MAAMG,IAAI,GAAG,IAAA6B,yBAAgB,EAACR,UAAU,CAAC;EAEzCrB,IAAI,CAACqB,UAAU,GAAGA,UAAU;EAE5B,OAAOrB,IAAI;AACb,CAAC;AAAAiB,OAAA,CAAAU,aAAA,GAAAA,aAAA;AAOM,MAAMG,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEjC;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAMgC,UAAU,GAAGJ,aAAa,CAAC,CAAC;EAClC,IAAII,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,OAAOlC,KAAK,CAACG,IAAI;AACnB,CAAC;AAAAiB,OAAA,CAAAa,OAAA,GAAAA,OAAA;AAOM,MAAME,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEnC;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAM;IACJa,mBAAmB;IACnBF,UAAU;IACVD,SAAS;IACTI,gBAAgB;IAChBoB;EACF,CAAC,GAAGpC,KAAK;EAET,MAAMG,IAAI,GAAG8B,OAAO,CAAC,CAAC;EACtB,MAAMT,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAE9CD,UAAU,CAACa,QAAQ,GAAG,CAACD,WAAW,IAAI,IAAAE,uBAAM,EAAC1B,SAAS,CAAC;EAGvDY,UAAU,CAACe,eAAe,GAAGvB,gBAAgB;EAC7C,IAAI,QAAOb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEoC,eAAe,MAAK,WAAW,EAAE;IAChDf,UAAU,CAACe,eAAe,GAAGpC,IAAI,CAACoC,eAAe;EACnD;EACA,IAAIf,UAAU,CAACe,eAAe,KAAK,IAAI,EAAE;IACvCf,UAAU,CAACe,eAAe,GAAGC,gCAAc;EAC7C;EAEA,IAAI,QAAOrC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkC,QAAQ,MAAK,WAAW,EAAE;IACzCb,UAAU,CAACa,QAAQ,GAAGlC,IAAI,CAACkC,QAAQ;EACrC;EAEAb,UAAU,CAACiB,SAAS,GAAG,IAAAH,uBAAM,EAACzB,UAAU,CAAC;EACzCW,UAAU,CAACkB,iBAAiB,GAAG,IAAAJ,uBAAM,EAACvB,mBAAmB,CAAC;EAE1D,OAAOS,UAAU;AACnB,CAAC;AAAAJ,OAAA,CAAAe,aAAA,GAAAA,aAAA;AAOM,MAAMQ,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAE3C;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAM;IAAEY,IAAI;IAAE8B;EAAU,CAAC,GAAG5C,KAAK;EAEjC,MAAMG,IAAI,GAAG8B,OAAO,CAAC,CAAC;EACtB,MAAM;IAAEI,QAAQ;IAAEI,SAAS;IAAEF,eAAe;IAAEG;EAAkB,CAAC,GAC/DP,aAAa,CAAC,CAAC;EAEjB,MAAMU,IAAI,GAAG,OAAOD,SAAS,KAAK,UAAU;EAC5C,MAAME,OAAO,GAAGjD,cAAK,CAACkD,MAAM,CAAC,CAAC;EAC9B,MAAMC,GAAG,GAAI,CAACH,IAAI,IAAID,SAAS,IAAKE,OAAO;EAE3CnD,eAAe,CAAC,MAAM;IACpB,IAAIkD,IAAI,EAAE;MACRD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAGI,GAAG,CAACC,OAAO,CAAC;IAC1B;EACF,CAAC,EAAE,CAACL,SAAS,EAAEC,IAAI,EAAEG,GAAG,CAAC,CAAC;EAG1B,MAAME,eAAe,GAAGrD,cAAK,CAACkD,MAAM,CAACtH,MAAA,CAAAgB,OAAA,CAAA0G,aAAA;IAAOH,GAAG,EAAEA;EAAI,CAAE,CAAC,CAAC;EAEzD,OAAO,IAAAI,kBAAW,EAChB,CAACC,MAAM,EAAEC,QAAQ,KAAK;IAEpBA,QAAQ,CAACL,OAAO,GAAGD,GAAG,CAACC,OAAO;IAE9B,OACExH,MAAA,CAAAgB,OAAA,CAAA0G,aAAA,CAACjH,SAAA,CAAAO,OAAQ,EAAA2C,QAAA;MACPmE,QAAQ,EAAEP,GAAI;MACdQ,YAAY,EAAEN,eAAe,CAACD,OAAQ;MACtCnC,IAAI,EAAEA,IAAK;MACXX,IAAI,EAAEA,IAAI,IAAI,IAAA6B,yBAAgB,EAAC,CAAE;MACjCK,QAAQ,EAAEA,QAAS;MACnBoB,KAAK,EAAEhB,SAAU;MACjBC,iBAAiB,EAAEA,iBAAkB;MACrCH,eAAe,EAAEA;IAAgB,GAC7B,IAAAmB,2CAAyB,EAACvD,IAAI,CAAC,EAC/BkD,MAAM;MACVM,SAAS,EAAE,IAAAC,mBAAU,EACnBP,MAAM,CAACM,SAAS,EAChBtB,QAAQ,IACNI,SAAS,IACTF,eAAe,IACfA,eAAe,KAAKC,gCAAc,IAClC,yBACJ;IAAE,EACH,CAAC;EAEN,CAAC,EACD,CACEE,iBAAiB,EACjBvC,IAAI,EACJW,IAAI,EACJyB,eAAe,EACfS,GAAG,EACHP,SAAS,EACTJ,QAAQ,CAEZ,CAAC;AACH,CAAC;AAAAjB,OAAA,CAAAuB,eAAA,GAAAA,eAAA;AASM,MAAMkB,eAAe,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEnC;EAAc,CAAC,GAAAmC,IAAA;EAC/C,MAAMC,SAAS,GAAGC,YAAY,CAAC;IAAErC;EAAc,CAAC,CAAC;EAEjD,OAAO;IACLsC,aAAa,EAAGC,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,eAAe,CAAC;IAC/DC,OAAO,EAAGD,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,SAAS,CAAC;IACnDE,OAAO,EAAGf,MAAM,IAAKU,SAAS,CAACV,MAAM,EAAE,UAAU,CAAC;IAClDgB,MAAM,EAAGhB,MAAM,IAAKU,SAAS,CAACV,MAAM,EAAE,SAAS,CAAC;IAChDiB,SAAS,EAAGJ,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,aAAa,CAAC;IACzDK,WAAW,EAAGL,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,eAAe,CAAC;IAC7DM,SAAS,EAAGnB,MAAM,IAAKU,SAAS,CAACV,MAAM,EAAE,aAAa,CAAC;IACvDoB,QAAQ,EAAGpB,MAAM,IAAKU,SAAS,CAACV,MAAM,EAAE,WAAW,CAAC;IACpDqB,QAAQ,EAAGrB,MAAM,IAAKU,SAAS,CAACV,MAAM,EAAE,WAAW,CAAC;IAEpDsB,QAAQ,EAAEC,SAAS;IACnBC,OAAO,EAAED,SAAS;IAClBE,WAAW,EAAEF,SAAS;IACtBG,SAAS,EAAEH,SAAS;IACpBI,SAAS,EAAEJ;EACb,CAAC;AACH,CAAC;AAAAxD,OAAA,CAAAyC,eAAA,GAAAA,eAAA;AASD,MAAMG,YAAY,GAAGiB,KAAA,IAAuB;EAAA,IAAtB;IAAEtD;EAAc,CAAC,GAAAsD,KAAA;EACrC,MAAMC,aAAa,GAAGrF,cAAK,CAACkD,MAAM,CAAC,CAAC;EACpCmC,aAAa,CAACjC,OAAO,GAAGd,aAAa,CAAC,CAAC;EAEvC,MAAM;IAAEnC;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAMiF,YAAY,GAAGrD,aAAa,CAAC,CAAC;EAGpC,MAAMsD,iBAAiB,GAAG,QAAQ;EAClC,IAAIC,cAAc,GAAG,KAAK;EAE1B,MAAMtB,SAAS,GAAGA,CAAAuB,KAAA,EAAmBC,IAAI,KAAK;IAAA,IAA3B;MAAErB,KAAK;MAAEvF;IAAM,CAAC,GAAA2G,KAAA;IACjC,MAAM9D,UAAU,GAAG0D,aAAa,CAACjC,OAAO;IACxCtE,KAAK,GAAGA,KAAK,IAAIuF,KAAK,CAACsB,MAAM,CAAC7G,KAAK;IACnC,MAAM8G,QAAQ,GAAGvB,KAAK,CAACsB,MAAM,CAACE,cAAc;IAC5C,IAAIC,OAAO,GAAG,IAAAC,wBAAO,EAAC1B,KAAK,CAAC;IAG5B,IACEqB,IAAI,KAAK,aAAa,KACrBrB,KAAK,CAAC2B,KAAK,KAAK,GAAG,IAAIF,OAAO,KAAKf,SAAS,CAAC,EAC9C;MACAS,cAAc,GAAG,IAAI;IACvB;IAIA,IACEA,cAAc,IACdE,IAAI,KAAK,eAAe,IACxB,QAAOrB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE4B,IAAI,MAAK,WAAW,EAClC;MACAP,IAAI,GAAG,aAAa;MACpBI,OAAO,GAAGzB,KAAK,CAAC4B,IAAI;MACpBT,cAAc,GAAG,KAAK;IACxB;IAGA,IAAIA,cAAc,IAAInB,KAAK,CAAC6B,GAAG,KAAK,GAAG,EAAE;MACvCJ,OAAO,GAAG,GAAG;MACbN,cAAc,GAAG,KAAK;IACxB;IAIA,IACE7D,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEwE,qBAAqB,KAChCT,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS,CAAC,EAC1C;MACA,MAAMU,UAAU,GAAG,IAAIC,MAAM,CAAC,IAAIC,yBAAY,EAAE,EAAE,GAAG,CAAC,CAACC,IAAI,CAACzH,KAAK,CAAC;MAClE,IACE,CAACsH,UAAU,GAAGR,QAAQ,GAAG,CAAC,GAAGA,QAAQ,GAAG,CAAC,KACzCF,IAAI,KAAK,SAAS,EAClB;QACA,MAAMc,UAAU,GAAG1H,KAAK,CAAC2H,OAAO,CAC9B,IAAIJ,MAAM,CAAC,QAAQ1E,UAAU,CAAC+E,aAAa,GAAG,EAAE,GAAG,CAAC,EACpD,EACF,CAAC;QACD,IAAIC,aAAa,GAAG,CAAC;QACrB,KAAK,IAAI/I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4I,UAAU,CAAChI,MAAM,GAAG,CAAC,EAAEZ,CAAC,EAAE,EAAE;UAC9C,IACE4I,UAAU,CAACI,MAAM,CAAChJ,CAAC,CAAC,KAAK,GAAG,IAC5B4I,UAAU,CAACI,MAAM,CAAChJ,CAAC,GAAG,CAAC,CAAC,KAAK+D,UAAU,CAAC+E,aAAa,EACrD;YACAC,aAAa,EAAE;UACjB,CAAC,MAAM;YACL;UACF;QACF;QACA,IAAIE,WAAW,GAAGjB,QAAQ;QAC1B,IAAIkB,QAAQ,GAAGhI,KAAK;QACpB,IAAIiI,gBAAgB,GAAG,CAAC;QACxB,IAAIJ,aAAa,GAAG,CAAC,EAAE;UACrB,KAAK,IAAI/I,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkB,KAAK,CAACN,MAAM,EAAEZ,CAAC,EAAE,EAAE;YACrCmJ,gBAAgB,GAAGnJ,CAAC;YACpB,MAAMoJ,IAAI,GAAGlI,KAAK,CAAC8H,MAAM,CAAChJ,CAAC,CAAC;YAE5B,IACGoJ,IAAI,KAAK,GAAG,IAAI,IAAAC,mBAAQ,EAACC,QAAQ,CAACF,IAAI,CAAC,CAAC,IACzClI,KAAK,CAAC8H,MAAM,CAAChJ,CAAC,GAAG,CAAC,CAAC,KAAK+D,UAAU,CAAC+E,aAAa,EAChD;cACA;YACF;UACF;UACAI,QAAQ,GACNhI,KAAK,CAACqI,SAAS,CAAC,CAAC,EAAEf,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GACtCtH,KAAK,CAACqI,SAAS,CAACJ,gBAAgB,CAAC;UAEnCF,WAAW,GACTjB,QAAQ,GAAGmB,gBAAgB,GACvBnB,QAAQ,IAAI9G,KAAK,CAACN,MAAM,GAAGsI,QAAQ,CAACtI,MAAM,CAAC,GAC3C4H,UAAU,GACV,CAAC,GACD,CAAC;QACT;QAEA,IAAIU,QAAQ,KAAKhI,KAAK,EAAE;UACtBgD,aAAa,CAACgF,QAAQ,CAAC;UACvBzC,KAAK,CAACsB,MAAM,CAAC7G,KAAK,GAAGgI,QAAQ;UAC7B,IAAAM,4CAAgB,EAAC/C,KAAK,CAACsB,MAAM,EAAEkB,WAAW,CAAC;UAC3C/H,KAAK,GAAGgI,QAAQ;QAClB;MACF;IACF;IAEA,IACEpB,IAAI,KAAK,aAAa,IACtBJ,YAAY,IACZ,CAACE,cAAc,IACf7D,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE+E,aAAa,EACzB;MACA,MAAMW,gBAAgB,GAAGvI,KAAK,CAACwI,QAAQ,CAAC3F,UAAU,CAAC+E,aAAa,CAAC;MACjE,MAAMa,eAAe,GACnB5F,UAAU,CAAC6F,YAAY,GAAG,CAAC,IAAI7F,UAAU,CAAC8F,YAAY,KAAK,KAAK;MAElE,IAAI,CAACF,eAAe,IAAIhC,iBAAiB,CAACgB,IAAI,CAACT,OAAO,CAAC,EAAE;QACvDzB,KAAK,CAACqD,cAAc,CAAC,CAAC;MACxB;MAEA,MAAMC,eAAe,GAAG7I,KAAK,CAAC8I,KAAK,CAAChC,QAAQ,EAAEA,QAAQ,GAAG,CAAC,CAAC;MAE3D,IAAI2B,eAAe,EAAE;QAEnB,IAAIF,gBAAgB,IAAI9B,iBAAiB,CAACgB,IAAI,CAACT,OAAO,CAAC,EAAE;UAEvD,IAAIP,iBAAiB,CAACgB,IAAI,CAACoB,eAAe,CAAC,EAAE;YAC3C,MAAME,KAAK,GAAG/I,KAAK,CAACc,OAAO,CAAC+B,UAAU,CAAC+E,aAAa,CAAC;YACrD,IAAImB,KAAK,GAAG,CAAC,CAAC,EAAE;cACd,IAAAT,4CAAgB,EAAC/C,KAAK,CAACsB,MAAM,EAAEkC,KAAK,GAAG,CAAC,CAAC;YAC3C;UACF;UAGAxD,KAAK,CAACqD,cAAc,CAAC,CAAC;QACxB,CAAC,MAGI,IACH,CAACL,gBAAgB,IACjBvB,OAAO,KAAKnE,UAAU,CAAC+E,aAAa,IACpCnB,iBAAiB,CAACgB,IAAI,CAACT,OAAO,CAAC,EAC/B;UACAhH,KAAK,GAAGA,KAAK,CAAC8I,KAAK,CAAC,CAAC,EAAEhC,QAAQ,CAAC;UAChC9D,aAAa,CAAChD,KAAK,GAAG6C,UAAU,CAAC+E,aAAa,CAAC;UAC/CrC,KAAK,CAACsB,MAAM,CAAC7G,KAAK,GAAGA,KAAK,GAAG6C,UAAU,CAAC+E,aAAa;UACrDrC,KAAK,CAACqD,cAAc,CAAC,CAAC;QACxB;MACF;MAGA,IACE5B,OAAO,KAAK,QAAQ,IACpB6B,eAAe,MAAMhG,UAAU,CAACmG,wBAAwB,IAAI,GAAG,CAAC,EAChE;QACA,IAAAV,4CAAgB,EAAC/C,KAAK,CAACsB,MAAM,EAAEC,QAAQ,GAAG,CAAC,CAAC;QAC5CvB,KAAK,CAACqD,cAAc,CAAC,CAAC;MACxB;IACF;IAEA,IAAIK,GAAG,GAAG,IAAAC,wBAAW,EAAClJ,KAAK,EAAE;MAC3BmJ,MAAM,EAAEtG,UAAU,CAACsG,MAAM;MACzBC,MAAM,EAAEvG,UAAU,CAACuG,MAAM;MACzBC,gBAAgB,EAAExG,UAAU,CAAC+E,aAAa,IAAI,GAAG;MACjD0B,kBAAkB,EAAEzG,UAAU,CAACmG,wBAAwB,IAAI;IAC7D,CAAC,CAAC;IAGF,IAAIC,GAAG,KAAK,GAAG,EAAE;MACfA,GAAG,GAAG,CAAC,CAAC;IACV;IAEA,MAAMM,WAAW,GAAG/I,MAAM,CAACyI,GAAG,CAAC;IAG/B,MAAMO,YAAY,GAChBD,WAAW,KAAK,CAAC,IAAIhJ,MAAM,CAAC0I,GAAG,CAAC,CAACnB,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAGmB,GAAG;IAE/D,QAAQrC,IAAI;MACV,KAAK,UAAU;MACf,KAAK,aAAa;MAClB,KAAK,eAAe;MACpB,KAAK,aAAa;QAChBrB,KAAK,CAACsB,MAAM,CAAC4C,uBAAuB,GAAG,MACrC,IAAAC,sCAAoB,EAACnE,KAAK,CAACsB,MAAM,EAAEN,aAAa,EAAElF,KAAK,CAAC;QAC1D,IAAI,CAACkE,KAAK,CAACsB,MAAM,CAAC8C,yBAAyB,EAAE;UAC3CpE,KAAK,CAACsB,MAAM,CAAC4C,uBAAuB,CAAC,CAAC;QACxC;QACA;IACJ;IAEA,MAAMG,MAAM,GAAG,IAAAC,2CAA0B,EAACxI,KAAK,EAAEuF,IAAI,EAAE;MACrDrB,KAAK;MACLvF,KAAK;MACLuJ,WAAW;MACXC;IACF,CAAC,CAAC;IAEF,IAAI5C,IAAI,KAAK,WAAW,EAAE;MACxB5D,aAAa,CAAChD,KAAK,CAAC;IACtB;IAEA,OAAO4J,MAAM;EACf,CAAC;EAED,OAAOxE,SAAS;AAClB,CAAC;AAOD,MAAMtC,mBAAmB,GAAGA,CAAA,KAAM;EAAA,IAAAgH,cAAA;EAChC,MAAM;IAAEzI;EAAM,CAAC,GAAGH,cAAK,CAACI,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAMS,MAAM,GAAGU,cAAc,CAAC,CAAC;EAE/B,IAAI,CAAC,IAAAU,wCAAsB,EAAC/B,KAAK,CAAC,EAAE;IAClC,OAAA7B,aAAA,KAAY,IAAAuK,0BAAQ,EAAC1I,KAAK,CAACO,YAAY,CAAC;EAC1C;EAEA,IAAI;IAAEH,WAAW;IAAEC,aAAa;IAAEE;EAAa,CAAC,GAAGP,KAAK;EACxD,MAAM;IAAES,SAAS;IAAEC,UAAU;IAAEF,WAAW;IAAE7B;EAAM,CAAC,GAAGqB,KAAK;EAE3DO,YAAY,GAAG,IAAAmI,0BAAQ,EAACnI,YAAY,CAAC;EACrCH,WAAW,GAAG,IAAAkC,uBAAM,EAAClC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAAsI,0BAAQ,EAACtI,WAAW,CAAC;EAC9DC,aAAa,GAAG,IAAAiC,uBAAM,EAACjC,aAAa,CAAC,GACjC,CAAC,CAAC,GACF,IAAAqI,0BAAQ,EAACrI,aAAa,EAAE;IACtBsI,QAAQ,EAAEtI;EACZ,CAAC,CAAC;EACN,IAAI,GAAAoI,cAAA,GAACpI,aAAa,cAAAoI,cAAA,eAAbA,cAAA,CAAeE,QAAQ,GAAE;IAC5B,OAAOtI,aAAa,CAACsI,QAAQ;EAC/B;EAEA,IAAI,IAAAC,2CAAyB,EAAC5I,KAAK,CAAC,EAAE;IACpC,MAAM2H,wBAAwB,GAAG,IAAAkB,0CAAwB,EAAClI,MAAM,CAAC;IACjE,MAAM4F,aAAa,GAAG,IAAAuC,wCAAsB,EAACnI,MAAM,CAAC;IAEpD,IAAI,IAAA2B,uBAAM,EAAC7B,SAAS,CAAC,IAAI,IAAA6B,uBAAM,EAAC5B,UAAU,CAAC,EAAE;MAC3CN,WAAW,GAAG,IAAA2I,uCAAsB,EAAC3I,WAAW,EAAE,IAAI,EAAE;QACtDmG,aAAa;QACboB;MACF,CAAC,CAAC;IACJ,CAAC,MAAM,IAAInH,WAAW,EAAE;MAAA,IAAAwI,eAAA;MACtB3I,aAAa,GAAG,IAAA0I,uCAAsB,EAAC1I,aAAa,EAAE,IAAI,EAAE;QAC1DkG,aAAa;QACboB,wBAAwB;QACxBgB,QAAQ,EAAE,IAAAM,8BAAiB,EACzBtI,MAAM,EACN,OAAOH,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAG,IAAI,GAAAwI,eAAA,GACpD3I,aAAa,cAAA2I,eAAA,uBAAbA,eAAA,CAAeE,eAAe,EAC9BvK,KACF;MACF,CAAC,CAAC;IACJ;EACF;EAEA,IAAI6C,UAAU,GAAG,IAAI;EAErB,IAAIpB,WAAW,EAAE;IACfoB,UAAU,GAAG,IAAA2H,kCAAgB,EAAC;MAC5B5I,YAAY;MACZH;IACF,CAAC,CAAC;IAEF,IAAI,IAAAkC,uBAAM,EAAC5B,UAAU,CAAC,EAAE;MACtBc,UAAU,GAAG,IAAA4H,mCAAiB,EAAC;QAAEpJ,KAAK;QAAEW,MAAM;QAAEa;MAAW,CAAC,CAAC;IAC/D;EACF,CAAC,MAAM,IAAInB,aAAa,EAAE;IACxBmB,UAAU,GAAG,IAAA6H,oCAAkB,EAAC;MAC9B9I,YAAY;MACZF;IACF,CAAC,CAAC;EACJ;EAEA,OAAOmB,UAAU;AACnB,CAAC","ignoreList":[]}
|
|
@@ -79,8 +79,9 @@ const correctNumberValue = _ref3 => {
|
|
|
79
79
|
const decimalSymbol = maskParams.decimalSymbol;
|
|
80
80
|
value = value.replace('.', decimalSymbol);
|
|
81
81
|
if (localValue !== null) {
|
|
82
|
-
const
|
|
83
|
-
const
|
|
82
|
+
const invalidCharactersRegex = new RegExp(`[^${_NumberUtils.NUMBER_MINUS}\\d${decimalSymbol}]`, 'g');
|
|
83
|
+
const localNumberValue = localValue.replace(invalidCharactersRegex, '');
|
|
84
|
+
const numberValue = value.replace(invalidCharactersRegex, '');
|
|
84
85
|
const valueHasDecimal = numberValue.includes(decimalSymbol);
|
|
85
86
|
if (!valueHasDecimal) {
|
|
86
87
|
const endsWithDecimal = localNumberValue.endsWith(decimalSymbol);
|
|
@@ -91,10 +92,10 @@ const correctNumberValue = _ref3 => {
|
|
|
91
92
|
value = `${value}${decimalSymbol}0`;
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
|
-
if (localNumberValue !== '0' &&
|
|
95
|
+
if (localNumberValue !== '0' && new RegExp(`^(0|(${_NumberUtils.NUMBER_MINUS})0)`).test(localNumberValue) && parseFloat(numberValue.replace(decimalSymbol, '.')) === parseFloat(localNumberValue.replace(decimalSymbol, '.'))) {
|
|
95
96
|
value = localValue;
|
|
96
97
|
}
|
|
97
|
-
if (
|
|
98
|
+
if (new RegExp(`^((${_NumberUtils.NUMBER_MINUS})|(${_NumberUtils.NUMBER_MINUS})0)$`).test(localValue.replace(new RegExp(`[^\\d(${_NumberUtils.NUMBER_MINUS})0]`, 'g'), ''))) {
|
|
98
99
|
value = localValue;
|
|
99
100
|
} else if (localNumberValue === '' && numberValue === '0') {
|
|
100
101
|
value = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","undefined","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","localNumberValue","numberValue","valueHasDecimal","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","maskParamsRef","correction","current","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","RegExp","n","_mask$test","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","givenParams","paramsWithDefaults","showMask","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","IS_IOS","allowNegative","inputMode","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value =\n props.value === null\n ? null\n : props.value === undefined\n ? undefined\n : String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n const valueHasDecimal = numberValue.includes(decimalSymbol)\n\n if (!valueHasDecimal) {\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParamsRef, props) => {\n const correction = () => {\n try {\n const maskParams = maskParamsRef?.current\n\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(char)) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const givenParams = {\n ...mask_options,\n ...currency_mask,\n }\n const paramsWithDefaults = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...givenParams,\n }\n\n const suffix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof givenParams.currency === 'string'\n ? givenParams.currency\n : 'kr'\n paramsWithDefaults.suffix = ` ${suffix}`\n\n if (\n typeof givenParams?.allowDecimal === 'undefined' &&\n typeof givenParams?.decimalLimit === 'number'\n ) {\n paramsWithDefaults.allowDecimal = givenParams.decimalLimit > 0\n }\n\n return paramsWithDefaults\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode or type attribute should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getSoftKeyboardAttributes(mask) {\n if (mask?.instanceOf !== 'createNumberMask') {\n return undefined\n }\n\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on iOS\n if (IS_IOS && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n return {\n inputMode:\n maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric',\n }\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","undefined","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","invalidCharactersRegex","RegExp","NUMBER_MINUS","localNumberValue","numberValue","valueHasDecimal","endsWithDecimal","endsWith","endsWithZeroAndDecimal","test","correctCaretPosition","element","maskParamsRef","correction","current","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","n","_mask$test","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","givenParams","paramsWithDefaults","showMask","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","IS_IOS","allowNegative","inputMode","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n NUMBER_MINUS,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value =\n props.value === null\n ? null\n : props.value === undefined\n ? undefined\n : String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const invalidCharactersRegex = new RegExp(\n `[^${NUMBER_MINUS}\\\\d${decimalSymbol}]`,\n 'g'\n )\n const localNumberValue = localValue.replace(invalidCharactersRegex, '')\n const numberValue = value.replace(invalidCharactersRegex, '')\n const valueHasDecimal = numberValue.includes(decimalSymbol)\n\n if (!valueHasDecimal) {\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n\n if (\n localNumberValue !== '0' &&\n new RegExp(`^(0|(${NUMBER_MINUS})0)`).test(localNumberValue) &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (\n new RegExp(`^((${NUMBER_MINUS})|(${NUMBER_MINUS})0)$`).test(\n localValue.replace(new RegExp(`[^\\\\d(${NUMBER_MINUS})0]`, 'g'), '')\n )\n ) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParamsRef, props) => {\n const correction = () => {\n try {\n const maskParams = maskParamsRef?.current\n\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(char)) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const givenParams = {\n ...mask_options,\n ...currency_mask,\n }\n const paramsWithDefaults = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...givenParams,\n }\n\n const suffix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof givenParams.currency === 'string'\n ? givenParams.currency\n : 'kr'\n paramsWithDefaults.suffix = ` ${suffix}`\n\n if (\n typeof givenParams?.allowDecimal === 'undefined' &&\n typeof givenParams?.decimalLimit === 'number'\n ) {\n paramsWithDefaults.allowDecimal = givenParams.decimalLimit > 0\n }\n\n return paramsWithDefaults\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode or type attribute should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getSoftKeyboardAttributes(mask) {\n if (mask?.instanceOf !== 'createNumberMask') {\n return undefined\n }\n\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on iOS\n if (IS_IOS && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n return {\n inputMode:\n maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric',\n }\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.NUMBER_MINUS = exports.NUMBER_CHARS = void 0;
|
|
7
8
|
exports.cleanNumber = cleanNumber;
|
|
8
9
|
exports.copyWithEffect = copyWithEffect;
|
|
9
10
|
exports.formatPhone = exports.formatORG = exports.formatNumber = exports.formatNIN = exports.formatDecimals = exports.formatBAN = exports.format = exports.countDecimals = void 0;
|
|
@@ -28,7 +29,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
28
29
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
29
30
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
30
31
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
|
-
const NUMBER_CHARS = '\\-0-9,.';
|
|
32
|
+
const NUMBER_CHARS = exports.NUMBER_CHARS = '\\-0-9,.';
|
|
33
|
+
const NUMBER_MINUS = exports.NUMBER_MINUS = '-|−|‐|‒|–|—|―';
|
|
32
34
|
const format = function (value) {
|
|
33
35
|
let {
|
|
34
36
|
locale = null,
|
|
@@ -319,7 +321,7 @@ const prepareMinus = (display, locale) => {
|
|
|
319
321
|
if (first === '-' && second === '-') {
|
|
320
322
|
return display;
|
|
321
323
|
}
|
|
322
|
-
const reg =
|
|
324
|
+
const reg = `^(${NUMBER_MINUS})`;
|
|
323
325
|
if (new RegExp(reg).test(first)) {
|
|
324
326
|
if (parseFloat(second) > 0) {
|
|
325
327
|
display = display.replace(new RegExp(reg + '(.*)'), '-$2');
|
|
@@ -367,8 +369,8 @@ const formatNumber = function (number, locale) {
|
|
|
367
369
|
} else if (typeof Number !== 'undefined' && typeof Number.toLocaleString === 'function') {
|
|
368
370
|
number = parseFloat(number).toLocaleString(locale, options);
|
|
369
371
|
}
|
|
370
|
-
if (
|
|
371
|
-
number = number.replace(
|
|
372
|
+
if (new RegExp(`^(${NUMBER_MINUS})(0|0[^\\d]|0\\s.*)$`).test(number)) {
|
|
373
|
+
number = number.replace(new RegExp(`(${NUMBER_MINUS})0`), '0');
|
|
372
374
|
}
|
|
373
375
|
} catch (e) {
|
|
374
376
|
(0, _componentHelper.warn)(`Number could not be formatted: ${JSON.stringify([number, locale, options])}`, e);
|