@dnb/eufemia 10.53.0 → 10.54.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 +35 -0
- package/cjs/components/CountryFlag.d.ts +12 -0
- package/cjs/components/CountryFlag.js +24 -0
- package/cjs/components/CountryFlag.js.map +1 -0
- package/cjs/components/autocomplete/Autocomplete.js +2 -3
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/cjs/components/checkbox/Checkbox.js +1 -2
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/country-flag/CountryFlag.d.ts +11 -0
- package/cjs/components/country-flag/CountryFlag.js +48 -0
- package/cjs/components/country-flag/CountryFlag.js.map +1 -0
- package/cjs/components/country-flag/CountryFlagDocs.d.ts +2 -0
- package/cjs/components/country-flag/CountryFlagDocs.js +25 -0
- package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -0
- package/cjs/components/country-flag/index.d.ts +7 -0
- package/cjs/components/country-flag/index.js +24 -0
- package/cjs/components/country-flag/index.js.map +1 -0
- package/cjs/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
- package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
- package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
- package/cjs/components/country-flag/style/dnb-country-flag.css +42 -0
- package/cjs/components/country-flag/style/dnb-country-flag.min.css +1 -0
- package/cjs/components/country-flag/style/dnb-country-flag.scss +53 -0
- package/cjs/components/country-flag/style/index.d.ts +5 -0
- package/cjs/components/country-flag/style/index.js +4 -0
- package/cjs/components/country-flag/style/index.js.map +1 -0
- package/cjs/components/country-flag/style.d.ts +5 -0
- package/cjs/components/country-flag/style.js +4 -0
- package/cjs/components/country-flag/style.js.map +1 -0
- package/cjs/components/date-picker/DatePickerCalendar.js +1 -1
- package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/cjs/components/date-picker/DatePickerInput.js +1 -2
- package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
- package/cjs/components/dialog/Dialog.js +3 -1
- package/cjs/components/dialog/Dialog.js.map +1 -1
- package/cjs/components/dialog/DialogDocs.d.ts +2 -0
- package/cjs/components/dialog/DialogDocs.js +120 -0
- package/cjs/components/dialog/DialogDocs.js.map +1 -0
- package/cjs/components/dropdown/Dropdown.js +1 -2
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/global-status/GlobalStatus.js +2 -3
- package/cjs/components/global-status/GlobalStatus.js.map +1 -1
- package/cjs/components/index.d.ts +2 -1
- package/cjs/components/index.js +7 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedHooks.js +1 -2
- package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +9 -5
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/lib.d.ts +10 -1
- package/cjs/components/lib.js +8 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/modal/Modal.d.ts +1 -0
- package/cjs/components/modal/Modal.js +4 -1
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/ModalContent.js +4 -4
- package/cjs/components/modal/ModalContent.js.map +1 -1
- package/cjs/components/modal/style/dnb-modal.css +4 -0
- package/cjs/components/modal/style/dnb-modal.min.css +1 -1
- package/cjs/components/modal/style/dnb-modal.scss +5 -0
- package/cjs/components/modal/types.d.ts +4 -0
- package/cjs/components/modal/types.js.map +1 -1
- package/cjs/components/number-format/NumberUtils.d.ts +2 -2
- package/cjs/components/number-format/NumberUtils.js +1 -1
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/pagination/Pagination.d.ts +3 -3
- package/cjs/components/pagination/PaginationBar.d.ts +1 -1
- package/cjs/components/pagination/PaginationBar.js.map +1 -1
- package/cjs/components/radio/Radio.js +1 -2
- package/cjs/components/radio/Radio.js.map +1 -1
- package/cjs/components/table/TableClickableHead.js +1 -1
- package/cjs/components/table/TableClickableHead.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +0 -9
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/dnb-table.scss +3 -1
- package/cjs/components/table/style/table-accordion.scss +0 -10
- package/cjs/components/table/style/table-container.scss +3 -2
- package/cjs/components/table/style/table-td.scss +2 -1
- package/cjs/components/tabs/Tabs.js +2 -3
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButton.js +2 -3
- package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
- package/cjs/components/upload/UploadDocs.js +2 -2
- package/cjs/components/upload/UploadDocs.js.map +1 -1
- package/cjs/components/upload/UploadFileListCell.js +2 -8
- package/cjs/components/upload/UploadFileListCell.js.map +1 -1
- package/cjs/components/upload/UploadInfo.js +3 -3
- package/cjs/components/upload/UploadInfo.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +12 -9
- package/cjs/extensions/forms/DataContext/Context.js +2 -4
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +34 -20
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/index.d.ts +3 -0
- package/cjs/extensions/forms/DataContext/index.js +5 -0
- package/cjs/extensions/forms/DataContext/index.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +21 -5
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +13 -8
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +42 -34
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/Name/Name.js +20 -13
- package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -17
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.d.ts +4 -11
- package/cjs/extensions/forms/Field/Number/Number.js +14 -16
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +43 -30
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +39 -18
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/Slider/Slider.js +34 -12
- package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +2 -9
- package/cjs/extensions/forms/Field/String/String.js +9 -12
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +8 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/Upload/Upload.js +6 -8
- package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -11
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +1 -2
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +9 -5
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
- package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +7 -5
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
- package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Tools/Log.js +2 -2
- package/cjs/extensions/forms/Tools/Log.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -0
- package/cjs/extensions/forms/Value/Date/Date.js +27 -13
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/constants/countries.js +20 -20
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +2 -1
- package/cjs/extensions/forms/hooks/index.js +1 -1
- package/cjs/extensions/forms/hooks/index.js.map +1 -1
- package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
- package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -3
- package/cjs/extensions/forms/hooks/useFieldProps.js +136 -71
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/usePath.d.ts +3 -0
- package/cjs/extensions/forms/hooks/usePath.js +2 -1
- package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
- package/cjs/extensions/forms/hooks/useProcessManager.js +1 -1
- package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -1
- package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
- package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +1 -6
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +59 -36
- package/cjs/extensions/forms/types.js +0 -17
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/FormError.d.ts +45 -0
- package/cjs/extensions/forms/utils/FormError.js +25 -0
- package/cjs/extensions/forms/utils/FormError.js.map +1 -0
- package/cjs/extensions/forms/utils/ajv.d.ts +17 -1
- package/cjs/extensions/forms/utils/ajv.js +82 -7
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/errors.d.ts +1 -1
- package/cjs/extensions/forms/utils/errors.js.map +1 -1
- package/cjs/extensions/forms/utils/index.d.ts +2 -0
- package/cjs/extensions/forms/utils/index.js +24 -0
- package/cjs/extensions/forms/utils/index.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.js +1 -2
- package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListProvider.js +2 -3
- package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +7 -0
- package/cjs/index.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 +2 -1
- package/cjs/shared/component-helper.js +9 -2
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/keycode.d.ts +75 -0
- package/cjs/shared/keycode.js +138 -0
- package/cjs/shared/keycode.js.map +1 -0
- package/cjs/shared/libs/Shortcuts.js +1 -3
- package/cjs/shared/libs/Shortcuts.js.map +1 -1
- package/cjs/shared/locales/nb-NO.js +2 -2
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/useTranslation.d.ts +2 -2
- package/cjs/shared/useTranslation.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 +1307 -186
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-components.scss +2 -0
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +1 -6
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +1 -6
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +1296 -180
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -6
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -6
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/CountryFlag.d.ts +12 -0
- package/components/CountryFlag.js +4 -0
- package/components/CountryFlag.js.map +1 -0
- package/components/autocomplete/Autocomplete.js +1 -2
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/components/checkbox/Checkbox.js +1 -2
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/country-flag/CountryFlag.d.ts +11 -0
- package/components/country-flag/CountryFlag.js +38 -0
- package/components/country-flag/CountryFlag.js.map +1 -0
- package/components/country-flag/CountryFlagDocs.d.ts +2 -0
- package/components/country-flag/CountryFlagDocs.js +18 -0
- package/components/country-flag/CountryFlagDocs.js.map +1 -0
- package/components/country-flag/index.d.ts +7 -0
- package/components/country-flag/index.js +4 -0
- package/components/country-flag/index.js.map +1 -0
- package/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
- package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
- package/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
- package/components/country-flag/style/dnb-country-flag.css +42 -0
- package/components/country-flag/style/dnb-country-flag.min.css +1 -0
- package/components/country-flag/style/dnb-country-flag.scss +53 -0
- package/components/country-flag/style/index.d.ts +5 -0
- package/components/country-flag/style/index.js +1 -0
- package/components/country-flag/style/index.js.map +1 -0
- package/components/country-flag/style.d.ts +5 -0
- package/components/country-flag/style.js +1 -0
- package/components/country-flag/style.js.map +1 -0
- package/components/date-picker/DatePickerCalendar.js +1 -1
- package/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/components/date-picker/DatePickerInput.js +1 -2
- package/components/date-picker/DatePickerInput.js.map +1 -1
- package/components/dialog/Dialog.js +3 -1
- package/components/dialog/Dialog.js.map +1 -1
- package/components/dialog/DialogDocs.d.ts +2 -0
- package/components/dialog/DialogDocs.js +113 -0
- package/components/dialog/DialogDocs.js.map +1 -0
- package/components/dropdown/Dropdown.js +1 -2
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/global-status/GlobalStatus.js +1 -2
- package/components/global-status/GlobalStatus.js.map +1 -1
- package/components/index.d.ts +2 -1
- package/components/index.js +2 -1
- package/components/index.js.map +1 -1
- package/components/input-masked/InputMaskedHooks.js +1 -2
- package/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +9 -5
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/lib.d.ts +10 -1
- package/components/lib.js +3 -1
- package/components/lib.js.map +1 -1
- package/components/modal/Modal.d.ts +1 -0
- package/components/modal/Modal.js +4 -1
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/ModalContent.js +4 -4
- package/components/modal/ModalContent.js.map +1 -1
- package/components/modal/style/dnb-modal.css +4 -0
- package/components/modal/style/dnb-modal.min.css +1 -1
- package/components/modal/style/dnb-modal.scss +5 -0
- package/components/modal/types.d.ts +4 -0
- package/components/modal/types.js.map +1 -1
- package/components/number-format/NumberUtils.d.ts +2 -2
- package/components/number-format/NumberUtils.js +1 -1
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/pagination/Pagination.d.ts +3 -3
- package/components/pagination/PaginationBar.d.ts +1 -1
- package/components/pagination/PaginationBar.js.map +1 -1
- package/components/radio/Radio.js +1 -2
- package/components/radio/Radio.js.map +1 -1
- package/components/table/TableClickableHead.js +1 -1
- package/components/table/TableClickableHead.js.map +1 -1
- package/components/table/style/dnb-table.css +0 -9
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/dnb-table.scss +3 -1
- package/components/table/style/table-accordion.scss +0 -10
- package/components/table/style/table-container.scss +3 -2
- package/components/table/style/table-td.scss +2 -1
- package/components/tabs/Tabs.js +1 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/toggle-button/ToggleButton.js +1 -2
- package/components/toggle-button/ToggleButton.js.map +1 -1
- package/components/upload/UploadDocs.js +2 -2
- package/components/upload/UploadDocs.js.map +1 -1
- package/components/upload/UploadFileListCell.js +2 -8
- package/components/upload/UploadFileListCell.js.map +1 -1
- package/components/upload/UploadInfo.js +3 -3
- package/components/upload/UploadInfo.js.map +1 -1
- package/es/components/CountryFlag.d.ts +12 -0
- package/es/components/CountryFlag.js +4 -0
- package/es/components/CountryFlag.js.map +1 -0
- package/es/components/autocomplete/Autocomplete.js +1 -2
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
- package/es/components/checkbox/Checkbox.js +1 -2
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/country-flag/CountryFlag.d.ts +11 -0
- package/es/components/country-flag/CountryFlag.js +38 -0
- package/es/components/country-flag/CountryFlag.js.map +1 -0
- package/es/components/country-flag/CountryFlagDocs.d.ts +2 -0
- package/es/components/country-flag/CountryFlagDocs.js +18 -0
- package/es/components/country-flag/CountryFlagDocs.js.map +1 -0
- package/es/components/country-flag/index.d.ts +7 -0
- package/es/components/country-flag/index.js +4 -0
- package/es/components/country-flag/index.js.map +1 -0
- package/es/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
- package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
- package/es/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
- package/es/components/country-flag/style/dnb-country-flag.css +42 -0
- package/es/components/country-flag/style/dnb-country-flag.min.css +1 -0
- package/es/components/country-flag/style/dnb-country-flag.scss +53 -0
- package/es/components/country-flag/style/index.d.ts +5 -0
- package/es/components/country-flag/style/index.js +1 -0
- package/es/components/country-flag/style/index.js.map +1 -0
- package/es/components/country-flag/style.d.ts +5 -0
- package/es/components/country-flag/style.js +1 -0
- package/es/components/country-flag/style.js.map +1 -0
- package/es/components/date-picker/DatePickerCalendar.js +1 -1
- package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
- package/es/components/date-picker/DatePickerInput.js +1 -2
- package/es/components/date-picker/DatePickerInput.js.map +1 -1
- package/es/components/dialog/Dialog.js +3 -1
- package/es/components/dialog/Dialog.js.map +1 -1
- package/es/components/dialog/DialogDocs.d.ts +2 -0
- package/es/components/dialog/DialogDocs.js +113 -0
- package/es/components/dialog/DialogDocs.js.map +1 -0
- package/es/components/dropdown/Dropdown.js +1 -2
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/global-status/GlobalStatus.js +1 -2
- package/es/components/global-status/GlobalStatus.js.map +1 -1
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/index.js.map +1 -1
- package/es/components/input-masked/InputMaskedHooks.js +1 -2
- package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +9 -5
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/lib.d.ts +10 -1
- package/es/components/lib.js +3 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/modal/Modal.d.ts +1 -0
- package/es/components/modal/Modal.js +4 -1
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/ModalContent.js +4 -4
- package/es/components/modal/ModalContent.js.map +1 -1
- package/es/components/modal/style/dnb-modal.css +4 -0
- package/es/components/modal/style/dnb-modal.min.css +1 -1
- package/es/components/modal/style/dnb-modal.scss +5 -0
- package/es/components/modal/types.d.ts +4 -0
- package/es/components/modal/types.js.map +1 -1
- package/es/components/number-format/NumberUtils.d.ts +2 -2
- package/es/components/number-format/NumberUtils.js +1 -1
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/pagination/Pagination.d.ts +3 -3
- package/es/components/pagination/PaginationBar.d.ts +1 -1
- package/es/components/pagination/PaginationBar.js.map +1 -1
- package/es/components/radio/Radio.js +1 -2
- package/es/components/radio/Radio.js.map +1 -1
- package/es/components/table/TableClickableHead.js +1 -1
- package/es/components/table/TableClickableHead.js.map +1 -1
- package/es/components/table/style/dnb-table.css +0 -9
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/dnb-table.scss +3 -1
- package/es/components/table/style/table-accordion.scss +0 -10
- package/es/components/table/style/table-container.scss +3 -2
- package/es/components/table/style/table-td.scss +2 -1
- package/es/components/tabs/Tabs.js +1 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/toggle-button/ToggleButton.js +1 -2
- package/es/components/toggle-button/ToggleButton.js.map +1 -1
- package/es/components/upload/UploadDocs.js +2 -2
- package/es/components/upload/UploadDocs.js.map +1 -1
- package/es/components/upload/UploadFileListCell.js +2 -8
- package/es/components/upload/UploadFileListCell.js.map +1 -1
- package/es/components/upload/UploadInfo.js +3 -3
- package/es/components/upload/UploadInfo.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +12 -9
- package/es/extensions/forms/DataContext/Context.js +1 -3
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js +32 -18
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/index.d.ts +3 -0
- package/es/extensions/forms/DataContext/index.js +5 -0
- package/es/extensions/forms/DataContext/index.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +24 -9
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +23 -6
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +11 -8
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +42 -34
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/Name/Name.js +18 -13
- package/es/extensions/forms/Field/Name/Name.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.d.ts +4 -11
- package/es/extensions/forms/Field/Number/Number.js +15 -17
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/es/extensions/forms/Field/Selection/Selection.js +37 -15
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/Slider/Slider.js +35 -13
- package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +2 -9
- package/es/extensions/forms/Field/String/String.js +10 -13
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +9 -2
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/Upload/Upload.js +7 -9
- package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -10
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +1 -2
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
- package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
- package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
- package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
- package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +3 -3
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Tools/Log.js +2 -2
- package/es/extensions/forms/Tools/Log.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.d.ts +5 -0
- package/es/extensions/forms/Value/Date/Date.js +25 -14
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/constants/countries.js +20 -20
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +2 -1
- package/es/extensions/forms/hooks/index.js +1 -1
- package/es/extensions/forms/hooks/index.js.map +1 -1
- package/es/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
- package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -3
- package/es/extensions/forms/hooks/useFieldProps.js +134 -69
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/usePath.d.ts +3 -0
- package/es/extensions/forms/hooks/usePath.js +2 -1
- package/es/extensions/forms/hooks/usePath.js.map +1 -1
- package/es/extensions/forms/hooks/useProcessManager.js +1 -1
- package/es/extensions/forms/hooks/useProcessManager.js.map +1 -1
- package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
- package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +1 -6
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +59 -36
- package/es/extensions/forms/types.js +0 -13
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/FormError.d.ts +45 -0
- package/es/extensions/forms/utils/FormError.js +16 -0
- package/es/extensions/forms/utils/FormError.js.map +1 -0
- package/es/extensions/forms/utils/ajv.d.ts +17 -1
- package/es/extensions/forms/utils/ajv.js +72 -7
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/errors.d.ts +1 -1
- package/es/extensions/forms/utils/errors.js.map +1 -1
- package/es/extensions/forms/utils/index.d.ts +2 -0
- package/es/extensions/forms/utils/index.js +2 -0
- package/es/extensions/forms/utils/index.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.js +1 -2
- package/es/fragments/drawer-list/DrawerList.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListProvider.js +1 -2
- package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/index.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 +2 -1
- package/es/shared/component-helper.js +2 -2
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/keycode.d.ts +75 -0
- package/es/shared/keycode.js +127 -0
- package/es/shared/keycode.js.map +1 -0
- package/es/shared/libs/Shortcuts.js +1 -2
- package/es/shared/libs/Shortcuts.js.map +1 -1
- package/es/shared/locales/nb-NO.js +2 -2
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/useTranslation.d.ts +2 -2
- package/es/shared/useTranslation.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 +1307 -186
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-components.scss +2 -0
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +1 -6
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +1 -6
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +1296 -180
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -6
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +1 -6
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- 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 +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +12 -9
- package/extensions/forms/DataContext/Context.js +1 -3
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/extensions/forms/DataContext/Provider/Provider.js +32 -18
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/DataContext/index.d.ts +3 -0
- package/extensions/forms/DataContext/index.js +5 -0
- package/extensions/forms/DataContext/index.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +23 -6
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +11 -8
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +42 -34
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/Name/Name.js +18 -13
- package/extensions/forms/Field/Name/Name.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.d.ts +4 -11
- package/extensions/forms/Field/Number/Number.js +15 -17
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
- package/extensions/forms/Field/Selection/Selection.js +38 -17
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/Slider/Slider.js +35 -13
- package/extensions/forms/Field/Slider/Slider.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +2 -9
- package/extensions/forms/Field/String/String.js +10 -13
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +9 -2
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/Upload/Upload.js +7 -9
- package/extensions/forms/Field/Upload/Upload.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +15 -10
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.js +1 -2
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
- package/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
- package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
- package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
- package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
- package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
- package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
- package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +3 -3
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Tools/Log.js +2 -2
- package/extensions/forms/Tools/Log.js.map +1 -1
- package/extensions/forms/Value/Date/Date.d.ts +5 -0
- package/extensions/forms/Value/Date/Date.js +26 -14
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/constants/countries.js +20 -20
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +2 -1
- package/extensions/forms/hooks/index.js +1 -1
- package/extensions/forms/hooks/index.js.map +1 -1
- package/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
- package/extensions/forms/hooks/useErrorMessage.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +4 -3
- package/extensions/forms/hooks/useFieldProps.js +136 -71
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/usePath.d.ts +3 -0
- package/extensions/forms/hooks/usePath.js +2 -1
- package/extensions/forms/hooks/usePath.js.map +1 -1
- package/extensions/forms/hooks/useProcessManager.js +1 -1
- package/extensions/forms/hooks/useProcessManager.js.map +1 -1
- package/extensions/forms/hooks/useTranslation.d.ts +2 -2
- package/extensions/forms/hooks/useTranslation.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +1 -6
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +59 -36
- package/extensions/forms/types.js +0 -13
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/FormError.d.ts +45 -0
- package/extensions/forms/utils/FormError.js +16 -0
- package/extensions/forms/utils/FormError.js.map +1 -0
- package/extensions/forms/utils/ajv.d.ts +17 -1
- package/extensions/forms/utils/ajv.js +77 -7
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/errors.d.ts +1 -1
- package/extensions/forms/utils/errors.js.map +1 -1
- package/extensions/forms/utils/index.d.ts +2 -0
- package/extensions/forms/utils/index.js +2 -0
- package/extensions/forms/utils/index.js.map +1 -1
- package/fragments/drawer-list/DrawerList.js +1 -2
- package/fragments/drawer-list/DrawerList.js.map +1 -1
- package/fragments/drawer-list/DrawerListProvider.js +1 -2
- package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
- 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 +2 -1
- package/shared/component-helper.js +2 -2
- package/shared/component-helper.js.map +1 -1
- package/shared/keycode.d.ts +75 -0
- package/shared/keycode.js +127 -0
- package/shared/keycode.js.map +1 -0
- package/shared/libs/Shortcuts.js +1 -2
- package/shared/libs/Shortcuts.js.map +1 -1
- package/shared/locales/nb-NO.js +2 -2
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/useTranslation.d.ts +2 -2
- package/shared/useTranslation.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 +1307 -186
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-components.scss +2 -0
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +1 -6
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +1 -6
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +1296 -180
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +1 -6
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +1 -6
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- 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 +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extendGracefully","objects","first","keepRef","shift","acc1","object","acc2","keys","isObject","item","extendDeep","target","sources","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","convertJsxToString","elements","separator","transformWord","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","combineDetails","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from 'keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it its enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\n// )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (\n elements,\n separator = undefined,\n transformWord = undefined\n) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word, separator, transformWord)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extendGracefully","objects","first","keepRef","shift","acc1","object","acc2","keys","isObject","item","extendDeep","target","sources","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","convertJsxToString","elements","separator","transformWord","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","combineDetails","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\n// )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (\n elements,\n separator = undefined,\n transformWord = undefined\n) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word, separator, transformWord)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
type SearchInput = KeyboardEvent | {
|
|
2
|
+
which: number;
|
|
3
|
+
keyCode: number;
|
|
4
|
+
charCode: number;
|
|
5
|
+
} | string | number | Array<unknown> | Record<string, unknown> | RegExp;
|
|
6
|
+
export default function keyCode(searchInput: SearchInput): any;
|
|
7
|
+
export declare const codes: {
|
|
8
|
+
backspace: number;
|
|
9
|
+
tab: number;
|
|
10
|
+
enter: number;
|
|
11
|
+
shift: number;
|
|
12
|
+
ctrl: number;
|
|
13
|
+
alt: number;
|
|
14
|
+
'pause/break': number;
|
|
15
|
+
'caps lock': number;
|
|
16
|
+
esc: number;
|
|
17
|
+
space: number;
|
|
18
|
+
'page up': number;
|
|
19
|
+
'page down': number;
|
|
20
|
+
end: number;
|
|
21
|
+
home: number;
|
|
22
|
+
left: number;
|
|
23
|
+
up: number;
|
|
24
|
+
right: number;
|
|
25
|
+
down: number;
|
|
26
|
+
insert: number;
|
|
27
|
+
delete: number;
|
|
28
|
+
command: number;
|
|
29
|
+
'left command': number;
|
|
30
|
+
'right command': number;
|
|
31
|
+
'numpad *': number;
|
|
32
|
+
'numpad +': number;
|
|
33
|
+
'numpad -': number;
|
|
34
|
+
'numpad .': number;
|
|
35
|
+
'numpad /': number;
|
|
36
|
+
'num lock': number;
|
|
37
|
+
'scroll lock': number;
|
|
38
|
+
'my computer': number;
|
|
39
|
+
'my calculator': number;
|
|
40
|
+
';': number;
|
|
41
|
+
'=': number;
|
|
42
|
+
',': number;
|
|
43
|
+
'-': number;
|
|
44
|
+
'.': number;
|
|
45
|
+
'/': number;
|
|
46
|
+
'`': number;
|
|
47
|
+
'[': number;
|
|
48
|
+
'\\': number;
|
|
49
|
+
']': number;
|
|
50
|
+
"'": number;
|
|
51
|
+
};
|
|
52
|
+
export declare const aliases: {
|
|
53
|
+
windows: number;
|
|
54
|
+
'\u21E7': number;
|
|
55
|
+
'\u2325': number;
|
|
56
|
+
'\u2303': number;
|
|
57
|
+
'\u2318': number;
|
|
58
|
+
ctl: number;
|
|
59
|
+
control: number;
|
|
60
|
+
option: number;
|
|
61
|
+
pause: number;
|
|
62
|
+
break: number;
|
|
63
|
+
caps: number;
|
|
64
|
+
return: number;
|
|
65
|
+
escape: number;
|
|
66
|
+
spc: number;
|
|
67
|
+
spacebar: number;
|
|
68
|
+
pgup: number;
|
|
69
|
+
pgdn: number;
|
|
70
|
+
ins: number;
|
|
71
|
+
del: number;
|
|
72
|
+
cmd: number;
|
|
73
|
+
};
|
|
74
|
+
export declare const names: {};
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export default function keyCode(searchInput) {
|
|
2
|
+
if (searchInput && 'object' === typeof searchInput) {
|
|
3
|
+
const sI = searchInput;
|
|
4
|
+
const foundKeyCode = sI.which || sI.keyCode || sI.charCode;
|
|
5
|
+
if (foundKeyCode) {
|
|
6
|
+
searchInput = foundKeyCode;
|
|
7
|
+
} else if (sI.key) {
|
|
8
|
+
searchInput = sI.key.toLowerCase();
|
|
9
|
+
if (searchInput.startsWith('arrow')) {
|
|
10
|
+
searchInput = searchInput.replace('arrow', '');
|
|
11
|
+
}
|
|
12
|
+
if (searchInput === 'spacebar') {
|
|
13
|
+
searchInput = searchInput.replace('bar', '');
|
|
14
|
+
}
|
|
15
|
+
if (searchInput !== 'tab') {
|
|
16
|
+
return searchInput;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if ('number' === typeof searchInput) {
|
|
21
|
+
return names[searchInput];
|
|
22
|
+
}
|
|
23
|
+
const search = String(searchInput);
|
|
24
|
+
{
|
|
25
|
+
const foundNamedKey = codes[search.toLowerCase()];
|
|
26
|
+
if (foundNamedKey) {
|
|
27
|
+
return foundNamedKey;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
{
|
|
31
|
+
const foundNamedKey = aliases[search.toLowerCase()];
|
|
32
|
+
if (foundNamedKey) {
|
|
33
|
+
return foundNamedKey;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (search.length === 1) {
|
|
37
|
+
return search.charCodeAt(0);
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
export const codes = {
|
|
42
|
+
backspace: 8,
|
|
43
|
+
tab: 9,
|
|
44
|
+
enter: 13,
|
|
45
|
+
shift: 16,
|
|
46
|
+
ctrl: 17,
|
|
47
|
+
alt: 18,
|
|
48
|
+
'pause/break': 19,
|
|
49
|
+
'caps lock': 20,
|
|
50
|
+
esc: 27,
|
|
51
|
+
space: 32,
|
|
52
|
+
'page up': 33,
|
|
53
|
+
'page down': 34,
|
|
54
|
+
end: 35,
|
|
55
|
+
home: 36,
|
|
56
|
+
left: 37,
|
|
57
|
+
up: 38,
|
|
58
|
+
right: 39,
|
|
59
|
+
down: 40,
|
|
60
|
+
insert: 45,
|
|
61
|
+
delete: 46,
|
|
62
|
+
command: 91,
|
|
63
|
+
'left command': 91,
|
|
64
|
+
'right command': 93,
|
|
65
|
+
'numpad *': 106,
|
|
66
|
+
'numpad +': 107,
|
|
67
|
+
'numpad -': 109,
|
|
68
|
+
'numpad .': 110,
|
|
69
|
+
'numpad /': 111,
|
|
70
|
+
'num lock': 144,
|
|
71
|
+
'scroll lock': 145,
|
|
72
|
+
'my computer': 182,
|
|
73
|
+
'my calculator': 183,
|
|
74
|
+
';': 186,
|
|
75
|
+
'=': 187,
|
|
76
|
+
',': 188,
|
|
77
|
+
'-': 189,
|
|
78
|
+
'.': 190,
|
|
79
|
+
'/': 191,
|
|
80
|
+
'`': 192,
|
|
81
|
+
'[': 219,
|
|
82
|
+
'\\': 220,
|
|
83
|
+
']': 221,
|
|
84
|
+
"'": 222
|
|
85
|
+
};
|
|
86
|
+
export const aliases = {
|
|
87
|
+
windows: 91,
|
|
88
|
+
'⇧': 16,
|
|
89
|
+
'⌥': 18,
|
|
90
|
+
'⌃': 17,
|
|
91
|
+
'⌘': 91,
|
|
92
|
+
ctl: 17,
|
|
93
|
+
control: 17,
|
|
94
|
+
option: 18,
|
|
95
|
+
pause: 19,
|
|
96
|
+
break: 19,
|
|
97
|
+
caps: 20,
|
|
98
|
+
return: 13,
|
|
99
|
+
escape: 27,
|
|
100
|
+
spc: 32,
|
|
101
|
+
spacebar: 32,
|
|
102
|
+
pgup: 33,
|
|
103
|
+
pgdn: 34,
|
|
104
|
+
ins: 45,
|
|
105
|
+
del: 46,
|
|
106
|
+
cmd: 91
|
|
107
|
+
};
|
|
108
|
+
for (let i = 97; i < 123; i++) {
|
|
109
|
+
codes[String.fromCharCode(i)] = i - 32;
|
|
110
|
+
}
|
|
111
|
+
for (let i = 48; i < 58; i++) {
|
|
112
|
+
codes[i - 48] = i;
|
|
113
|
+
}
|
|
114
|
+
for (let i = 1; i < 13; i++) {
|
|
115
|
+
codes['f' + i] = i + 111;
|
|
116
|
+
}
|
|
117
|
+
for (let i = 0; i < 10; i++) {
|
|
118
|
+
codes['numpad ' + i] = i + 96;
|
|
119
|
+
}
|
|
120
|
+
export const names = {};
|
|
121
|
+
for (const i in codes) {
|
|
122
|
+
names[codes[i]] = i;
|
|
123
|
+
}
|
|
124
|
+
for (const alias in aliases) {
|
|
125
|
+
codes[alias] = aliases[alias];
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=keycode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keycode.js","names":["keyCode","searchInput","sI","foundKeyCode","which","charCode","key","toLowerCase","startsWith","replace","names","search","String","foundNamedKey","codes","aliases","length","charCodeAt","undefined","backspace","tab","enter","shift","ctrl","alt","esc","space","end","home","left","up","right","down","insert","delete","command","windows","ctl","control","option","pause","break","caps","return","escape","spc","spacebar","pgup","pgdn","ins","del","cmd","i","fromCharCode","alias"],"sources":["../../../src/shared/keycode.ts"],"sourcesContent":["// Source: https://github.com/timoxley/keycode\n\ntype SearchInput =\n | KeyboardEvent\n | { which: number; keyCode: number; charCode: number }\n | string\n | number\n | Array<unknown>\n | Record<string, unknown>\n | RegExp\n\nexport default function keyCode(searchInput: SearchInput) {\n if (searchInput && 'object' === typeof searchInput) {\n const sI = searchInput as KeyboardEvent\n const foundKeyCode = sI.which || sI.keyCode || sI.charCode\n if (foundKeyCode) {\n searchInput = foundKeyCode\n } else if (sI.key) {\n searchInput = sI.key.toLowerCase()\n if (searchInput.startsWith('arrow')) {\n searchInput = searchInput.replace('arrow', '')\n }\n if (searchInput === 'spacebar') {\n searchInput = searchInput.replace('bar', '')\n }\n if (searchInput !== 'tab') {\n return searchInput\n }\n }\n }\n\n // Numbers\n if ('number' === typeof searchInput) {\n return names[searchInput]\n }\n\n // Everything else (cast to string)\n const search = String(searchInput)\n\n // check codes\n {\n const foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) {\n return foundNamedKey\n }\n }\n\n // check aliases\n {\n const foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) {\n return foundNamedKey\n }\n }\n\n // weird character?\n if (search.length === 1) {\n return search.charCodeAt(0)\n }\n\n return undefined\n}\n\nexport const codes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n 'pause/break': 19,\n 'caps lock': 20,\n esc: 27,\n space: 32,\n 'page up': 33,\n 'page down': 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n delete: 46,\n command: 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222,\n}\n\nexport const aliases = {\n windows: 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n ctl: 17,\n control: 17,\n option: 18,\n pause: 19,\n break: 19,\n caps: 20,\n return: 13,\n escape: 27,\n spc: 32,\n spacebar: 32,\n pgup: 33,\n pgdn: 34,\n ins: 45,\n del: 46,\n cmd: 91,\n}\n\n// lower case chars\nfor (let i = 97; i < 123; i++) {\n codes[String.fromCharCode(i)] = i - 32\n}\n\n// numbers\nfor (let i = 48; i < 58; i++) {\n codes[i - 48] = i\n}\n\n// function keys\nfor (let i = 1; i < 13; i++) {\n codes['f' + i] = i + 111\n}\n\n// numpad keys\nfor (let i = 0; i < 10; i++) {\n codes['numpad ' + i] = i + 96\n}\n\nexport const names = {} // title for backward compat\n\n// Create reverse mapping\nfor (const i in codes) {\n names[codes[i]] = i\n}\n\n// Add aliases\nfor (const alias in aliases) {\n codes[alias] = aliases[alias]\n}\n"],"mappings":"AAWA,eAAe,SAASA,OAAOA,CAACC,WAAwB,EAAE;EACxD,IAAIA,WAAW,IAAI,QAAQ,KAAK,OAAOA,WAAW,EAAE;IAClD,MAAMC,EAAE,GAAGD,WAA4B;IACvC,MAAME,YAAY,GAAGD,EAAE,CAACE,KAAK,IAAIF,EAAE,CAACF,OAAO,IAAIE,EAAE,CAACG,QAAQ;IAC1D,IAAIF,YAAY,EAAE;MAChBF,WAAW,GAAGE,YAAY;IAC5B,CAAC,MAAM,IAAID,EAAE,CAACI,GAAG,EAAE;MACjBL,WAAW,GAAGC,EAAE,CAACI,GAAG,CAACC,WAAW,CAAC,CAAC;MAClC,IAAIN,WAAW,CAACO,UAAU,CAAC,OAAO,CAAC,EAAE;QACnCP,WAAW,GAAGA,WAAW,CAACQ,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;MAChD;MACA,IAAIR,WAAW,KAAK,UAAU,EAAE;QAC9BA,WAAW,GAAGA,WAAW,CAACQ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAC9C;MACA,IAAIR,WAAW,KAAK,KAAK,EAAE;QACzB,OAAOA,WAAW;MACpB;IACF;EACF;EAGA,IAAI,QAAQ,KAAK,OAAOA,WAAW,EAAE;IACnC,OAAOS,KAAK,CAACT,WAAW,CAAC;EAC3B;EAGA,MAAMU,MAAM,GAAGC,MAAM,CAACX,WAAW,CAAC;EAGlC;IACE,MAAMY,aAAa,GAAGC,KAAK,CAACH,MAAM,CAACJ,WAAW,CAAC,CAAC,CAAC;IACjD,IAAIM,aAAa,EAAE;MACjB,OAAOA,aAAa;IACtB;EACF;EAGA;IACE,MAAMA,aAAa,GAAGE,OAAO,CAACJ,MAAM,CAACJ,WAAW,CAAC,CAAC,CAAC;IACnD,IAAIM,aAAa,EAAE;MACjB,OAAOA,aAAa;IACtB;EACF;EAGA,IAAIF,MAAM,CAACK,MAAM,KAAK,CAAC,EAAE;IACvB,OAAOL,MAAM,CAACM,UAAU,CAAC,CAAC,CAAC;EAC7B;EAEA,OAAOC,SAAS;AAClB;AAEA,OAAO,MAAMJ,KAAK,GAAG;EACnBK,SAAS,EAAE,CAAC;EACZC,GAAG,EAAE,CAAC;EACNC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,EAAE;EACP,aAAa,EAAE,EAAE;EACjB,WAAW,EAAE,EAAE;EACfC,GAAG,EAAE,EAAE;EACPC,KAAK,EAAE,EAAE;EACT,SAAS,EAAE,EAAE;EACb,WAAW,EAAE,EAAE;EACfC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,EAAE,EAAE,EAAE;EACNC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE,EAAE;EACX,cAAc,EAAE,EAAE;EAClB,eAAe,EAAE,EAAE;EACnB,UAAU,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;EACf,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,GAAG;EAClB,aAAa,EAAE,GAAG;EAClB,eAAe,EAAE,GAAG;EACpB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EACT,GAAG,EAAE,GAAG;EACR,GAAG,EAAE;AACP,CAAC;AAED,OAAO,MAAMpB,OAAO,GAAG;EACrBqB,OAAO,EAAE,EAAE;EACX,GAAG,EAAE,EAAE;EACP,GAAG,EAAE,EAAE;EACP,GAAG,EAAE,EAAE;EACP,GAAG,EAAE,EAAE;EACPC,GAAG,EAAE,EAAE;EACPC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,GAAG,EAAE,EAAE;EACPC,QAAQ,EAAE,EAAE;EACZC,IAAI,EAAE,EAAE;EACRC,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,EAAE;EACPC,GAAG,EAAE,EAAE;EACPC,GAAG,EAAE;AACP,CAAC;AAGD,KAAK,IAAIC,CAAC,GAAG,EAAE,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;EAC7BtC,KAAK,CAACF,MAAM,CAACyC,YAAY,CAACD,CAAC,CAAC,CAAC,GAAGA,CAAC,GAAG,EAAE;AACxC;AAGA,KAAK,IAAIA,CAAC,GAAG,EAAE,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;EAC5BtC,KAAK,CAACsC,CAAC,GAAG,EAAE,CAAC,GAAGA,CAAC;AACnB;AAGA,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;EAC3BtC,KAAK,CAAC,GAAG,GAAGsC,CAAC,CAAC,GAAGA,CAAC,GAAG,GAAG;AAC1B;AAGA,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;EAC3BtC,KAAK,CAAC,SAAS,GAAGsC,CAAC,CAAC,GAAGA,CAAC,GAAG,EAAE;AAC/B;AAEA,OAAO,MAAM1C,KAAK,GAAG,CAAC,CAAC;AAGvB,KAAK,MAAM0C,CAAC,IAAItC,KAAK,EAAE;EACrBJ,KAAK,CAACI,KAAK,CAACsC,CAAC,CAAC,CAAC,GAAGA,CAAC;AACrB;AAGA,KAAK,MAAME,KAAK,IAAIvC,OAAO,EAAE;EAC3BD,KAAK,CAACwC,KAAK,CAAC,GAAGvC,OAAO,CAACuC,KAAK,CAAC;AAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shortcuts.js","names":["
|
|
1
|
+
{"version":3,"file":"Shortcuts.js","names":["warn","keycode","createShortcut","constructor","eventTracker","shortcutExists","add","shortcut","callback","onDone","element","window","document","timeout","id","keyDown","e","event","code","shortcuts","split","metaWanted","cmd","ctrl","shift","alt","metaPressed","metaKey","ctrlKey","shiftKey","altKey","matches","forEach","cut","length","clearTimeout","setTimeout","keyUp","addEventListener","remove","toLowerCase","removeEventListener"],"sources":["../../../../src/shared/libs/Shortcuts.js"],"sourcesContent":["import { warn, keycode } from '../component-helper'\n\nexport class createShortcut {\n constructor() {\n this.eventTracker = []\n this.shortcutExists = []\n }\n\n // Lets you add a new shortcut\n add(shortcut, callback, onDone, element = null) {\n // Prevents multiple additions of the same shortcut\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n this.shortcutExists[shortcut] === true\n ) {\n return\n }\n\n try {\n element = element || document\n const timeout = { id: null }\n\n const keyDown = (e) => {\n try {\n const event = e || window.event\n const code = keycode(event)\n const shortcuts = shortcut.split('+')\n const metaWanted = {\n cmd: false,\n ctrl: false,\n shift: false,\n alt: false,\n }\n const metaPressed = {\n cmd: event.metaKey,\n ctrl: event.ctrlKey,\n shift: event.shiftKey,\n alt: event.altKey,\n }\n\n let matches = 0\n shortcuts.forEach((cut) => {\n switch (cut) {\n case 'cmd':\n case 'ctrl':\n case 'shift':\n case 'alt':\n {\n metaWanted[cut] = true\n matches++\n }\n break\n default:\n {\n if (cut === code) {\n matches++\n }\n }\n break\n }\n // if (cut.length > 1) {\n // if (keycodes[cut] === keypress) {\n // matches++\n // }\n // }\n })\n\n // If we have matched the shortcut we issue the callback\n if (\n matches === shortcuts.length &&\n metaWanted.cmd === metaPressed.cmd &&\n metaWanted.ctrl === metaPressed.ctrl &&\n metaWanted.shift === metaPressed.shift &&\n metaWanted.alt === metaPressed.alt\n ) {\n callback(event)\n if (typeof onDone === 'function') {\n clearTimeout(timeout.id)\n timeout.id = setTimeout(onDone, 10)\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n const keyUp = (e) => {\n if (typeof onDone === 'function') {\n onDone(e)\n }\n }\n\n // Add the event listener\n element.addEventListener('keydown', keyDown)\n element.addEventListener('keyup', keyUp)\n\n // Cache the event data so it can be removed later\n this.eventTracker[shortcut] = {\n timeout,\n element,\n keyDown,\n keyUp,\n }\n\n this.shortcutExists[shortcut] = true\n } catch (e) {\n warn(e)\n }\n }\n\n remove(shortcut) {\n try {\n shortcut = shortcut.toLowerCase()\n\n if (this.eventTracker[shortcut]) {\n const { timeout, element, keyDown, keyUp } =\n this.eventTracker[shortcut]\n\n element.removeEventListener('keydown', keyDown, false)\n element.removeEventListener('keyup', keyUp, false)\n\n clearTimeout(timeout.id)\n\n delete this.eventTracker[shortcut]\n this.shortcutExists[shortcut] = false\n }\n } catch (e) {\n //\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -144,8 +144,8 @@ export default {
|
|
|
144
144
|
},
|
|
145
145
|
Upload: {
|
|
146
146
|
title: 'Last opp dokumenter',
|
|
147
|
-
text: 'Dra
|
|
148
|
-
textSingular: 'Dra
|
|
147
|
+
text: 'Dra og slipp eller velg hvilke filer du vil laste opp.',
|
|
148
|
+
textSingular: 'Dra og slipp eller velg hvilken fil du vil laste opp.',
|
|
149
149
|
fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',
|
|
150
150
|
fileTypeDescription: 'Tillatte filformater:',
|
|
151
151
|
fileSizeDescription: 'Maks filstørrelse:',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nb-NO.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selected_date","selected_month","selected_year","next_month","prev_month","next_year","prev_year","open_picker_text","mask_order","mask_placeholder","date_format","return_format","submit_button_text","cancel_button_text","reset_button_text","placeholder_characters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/nb-NO.ts"],"sourcesContent":["export default {\n 'nb-NO': {\n TextCounter: {\n characterDown: '%count av %max tegn gjenstår.',\n characterUp: 'Du har brukt %count av %max tegn.',\n characterExceeded: '%count tegn over grensen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utført',\n alt_label_current: 'Nåværende',\n alt_label_upcoming: 'Kommende',\n },\n Breadcrumb: {\n navText: 'Sidehierarki',\n goBackText: 'Tilbake',\n homeText: 'Hjem',\n backToText: 'Tilbake til...',\n },\n DatePicker: {\n day: 'dag',\n month: 'måned',\n year: 'år',\n start: 'fra',\n end: 'til',\n selected_date: 'Valgt dato: %s',\n selected_month: 'Valgt måned %s',\n selected_year: 'Valgt år %s',\n next_month: 'Neste måned %s',\n prev_month: 'Forrige måned %s',\n next_year: 'Neste år %s',\n prev_year: 'Forrige år %s',\n open_picker_text: 'åpne datovelger',\n mask_order: 'dd/mm/yyyy',\n mask_placeholder: 'dd.mm.åååå', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n date_format: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n return_format: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submit_button_text: 'Ok',\n cancel_button_text: 'Avbryt',\n reset_button_text: 'Tilbakestill',\n placeholder_characters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Åpner et nytt vindu',\n },\n GlobalStatus: {\n default_title: 'En feil har skjedd',\n close_text: 'Lukk',\n status_anchor_text: 'Gå til %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi finner ikke siden du leter etter …',\n text: 'Sikker på at du har skrevet riktig adresse? Eller har vi rotet med lenkene?',\n },\n 500: {\n title: 'Beklager, her skjedde det noe feil!',\n text: 'Tjenesten fungerer ikke slik den skal for øyeblikket, men prøv igjen senere.',\n },\n code: 'Feilmeldings-kode:',\n help: 'Her er noen lenker som kanskje kan hjelpe:',\n },\n ProgressIndicator: {\n indicator_label: 'Vennligst vent ...',\n },\n Dropdown: {\n title: 'Valgmeny',\n },\n Autocomplete: {\n title: 'Skriv og velg',\n submit_button_title: 'Vis alternativer',\n no_options: 'Ingen alternativer',\n show_all: 'Vis alt',\n show_options_sr: 'Bla gjennom alternativer, lukk med esc knappen',\n aria_live_options: '%s alternativer',\n selected_sr: 'Valgt:',\n indicator_label: 'Henter data ...',\n },\n Modal: {\n dialog_title: 'Separat Vindu',\n close_title: 'Lukk',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godta',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopiert',\n },\n NumberFormat: {\n clipboard_copy: 'Kopiert',\n not_available: 'Ikke tilgjengelig',\n },\n HelpButton: {\n title: 'Hjelpetekst',\n aria_role: 'Hjelp-knapp',\n },\n Input: {\n submit_button_title: 'Send knapp',\n clear_button_title: 'Nullstill',\n },\n Pagination: {\n button_title: 'Side %s',\n next_title: 'Neste side',\n prev_title: 'Forrige side',\n more_pages: '%s flere sider',\n is_loading_text: 'Laster nytt innhold',\n load_button_text: 'Vis mer innhold',\n },\n Skeleton: {\n aria_busy: 'Behandler data ...',\n aria_ready: 'Klar til å samhandle',\n },\n StepIndicator: {\n overview_title: 'Stegoversikt',\n step_title_extended: 'Du er på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Øk (%s)',\n subtractTitle: 'Reduser (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgått',\n text_blocked: 'Sperret',\n text_not_active: 'Ikke aktivert',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Fornyet',\n text_replaced: 'Erstattet',\n text_unknown: 'Ukjent',\n },\n Tag: {\n removeIconTitle: 'Fjern',\n addIconTitle: 'Legg til',\n },\n Table: {\n accordionToggleButtonSR: 'Vis mer innhold',\n accordionMoreContentSR: 'Mer innhold i neste rad',\n navigationButtonSR: 'Naviger til mer innhold',\n },\n Upload: {\n title: 'Last opp dokumenter',\n text: 'Dra & slipp eller velg hvilke filer du vil laste opp.',\n textSingular: 'Dra & slipp eller velg hvilken fil du vil laste opp.',\n fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',\n fileTypeDescription: 'Tillatte filformater:',\n fileSizeDescription: 'Maks filstørrelse:',\n fileAmountDescription: 'Maks antall filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Velg filer',\n buttonTextSingular: 'Velg fil',\n loadingText: 'Laster opp',\n errorLargeFile:\n 'Filen du prøver å laste opp er for stor, den maksimale støttede størrelsen er %size MB.',\n errorAmountLimit:\n 'Det er begrenset hvor mange filer du kan laste opp (%amount).',\n errorUnsupportedFile: 'Filen du prøver å laste opp er ikke støttet.',\n deleteButton: 'Slett',\n fileListAriaLabel: 'opplastede filer',\n },\n },\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nb-NO.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selected_date","selected_month","selected_year","next_month","prev_month","next_year","prev_year","open_picker_text","mask_order","mask_placeholder","date_format","return_format","submit_button_text","cancel_button_text","reset_button_text","placeholder_characters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/nb-NO.ts"],"sourcesContent":["export default {\n 'nb-NO': {\n TextCounter: {\n characterDown: '%count av %max tegn gjenstår.',\n characterUp: 'Du har brukt %count av %max tegn.',\n characterExceeded: '%count tegn over grensen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utført',\n alt_label_current: 'Nåværende',\n alt_label_upcoming: 'Kommende',\n },\n Breadcrumb: {\n navText: 'Sidehierarki',\n goBackText: 'Tilbake',\n homeText: 'Hjem',\n backToText: 'Tilbake til...',\n },\n DatePicker: {\n day: 'dag',\n month: 'måned',\n year: 'år',\n start: 'fra',\n end: 'til',\n selected_date: 'Valgt dato: %s',\n selected_month: 'Valgt måned %s',\n selected_year: 'Valgt år %s',\n next_month: 'Neste måned %s',\n prev_month: 'Forrige måned %s',\n next_year: 'Neste år %s',\n prev_year: 'Forrige år %s',\n open_picker_text: 'åpne datovelger',\n mask_order: 'dd/mm/yyyy',\n mask_placeholder: 'dd.mm.åååå', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n date_format: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n return_format: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submit_button_text: 'Ok',\n cancel_button_text: 'Avbryt',\n reset_button_text: 'Tilbakestill',\n placeholder_characters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Åpner et nytt vindu',\n },\n GlobalStatus: {\n default_title: 'En feil har skjedd',\n close_text: 'Lukk',\n status_anchor_text: 'Gå til %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi finner ikke siden du leter etter …',\n text: 'Sikker på at du har skrevet riktig adresse? Eller har vi rotet med lenkene?',\n },\n 500: {\n title: 'Beklager, her skjedde det noe feil!',\n text: 'Tjenesten fungerer ikke slik den skal for øyeblikket, men prøv igjen senere.',\n },\n code: 'Feilmeldings-kode:',\n help: 'Her er noen lenker som kanskje kan hjelpe:',\n },\n ProgressIndicator: {\n indicator_label: 'Vennligst vent ...',\n },\n Dropdown: {\n title: 'Valgmeny',\n },\n Autocomplete: {\n title: 'Skriv og velg',\n submit_button_title: 'Vis alternativer',\n no_options: 'Ingen alternativer',\n show_all: 'Vis alt',\n show_options_sr: 'Bla gjennom alternativer, lukk med esc knappen',\n aria_live_options: '%s alternativer',\n selected_sr: 'Valgt:',\n indicator_label: 'Henter data ...',\n },\n Modal: {\n dialog_title: 'Separat Vindu',\n close_title: 'Lukk',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godta',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopiert',\n },\n NumberFormat: {\n clipboard_copy: 'Kopiert',\n not_available: 'Ikke tilgjengelig',\n },\n HelpButton: {\n title: 'Hjelpetekst',\n aria_role: 'Hjelp-knapp',\n },\n Input: {\n submit_button_title: 'Send knapp',\n clear_button_title: 'Nullstill',\n },\n Pagination: {\n button_title: 'Side %s',\n next_title: 'Neste side',\n prev_title: 'Forrige side',\n more_pages: '%s flere sider',\n is_loading_text: 'Laster nytt innhold',\n load_button_text: 'Vis mer innhold',\n },\n Skeleton: {\n aria_busy: 'Behandler data ...',\n aria_ready: 'Klar til å samhandle',\n },\n StepIndicator: {\n overview_title: 'Stegoversikt',\n step_title_extended: 'Du er på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Øk (%s)',\n subtractTitle: 'Reduser (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgått',\n text_blocked: 'Sperret',\n text_not_active: 'Ikke aktivert',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Fornyet',\n text_replaced: 'Erstattet',\n text_unknown: 'Ukjent',\n },\n Tag: {\n removeIconTitle: 'Fjern',\n addIconTitle: 'Legg til',\n },\n Table: {\n accordionToggleButtonSR: 'Vis mer innhold',\n accordionMoreContentSR: 'Mer innhold i neste rad',\n navigationButtonSR: 'Naviger til mer innhold',\n },\n Upload: {\n title: 'Last opp dokumenter',\n text: 'Dra og slipp eller velg hvilke filer du vil laste opp.',\n textSingular:\n 'Dra og slipp eller velg hvilken fil du vil laste opp.',\n fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',\n fileTypeDescription: 'Tillatte filformater:',\n fileSizeDescription: 'Maks filstørrelse:',\n fileAmountDescription: 'Maks antall filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Velg filer',\n buttonTextSingular: 'Velg fil',\n loadingText: 'Laster opp',\n errorLargeFile:\n 'Filen du prøver å laste opp er for stor, den maksimale støttede størrelsen er %size MB.',\n errorAmountLimit:\n 'Det er begrenset hvor mange filer du kan laste opp (%amount).',\n errorUnsupportedFile: 'Filen du prøver å laste opp er ikke støttet.',\n deleteButton: 'Slett',\n fileListAriaLabel: 'opplastede filer',\n },\n },\n}\n"],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@ export type CombineWithExternalTranslationsArgs = {
|
|
|
10
10
|
messages?: TranslationCustomLocales;
|
|
11
11
|
locale?: InternalLocale;
|
|
12
12
|
};
|
|
13
|
-
export type
|
|
13
|
+
export type AdditionalReturnUtils = {
|
|
14
14
|
formatMessage: typeof formatMessage;
|
|
15
15
|
renderMessage: typeof renderMessage;
|
|
16
16
|
};
|
|
17
|
-
export type CombineWithExternalTranslationsReturn = Translation & TranslationCustomLocales &
|
|
17
|
+
export type CombineWithExternalTranslationsReturn = Translation & TranslationCustomLocales & AdditionalReturnUtils;
|
|
18
18
|
export declare function useAdditionalUtils(): {
|
|
19
19
|
assignUtils: (translations: CombineWithExternalTranslationsReturn) => CombineWithExternalTranslationsReturn;
|
|
20
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslation.js","names":["React","Fragment","useCallback","useContext","useMemo","useRef","Context","defaultLocales","useTranslation","messages","args","locale","translation","assignUtils","useAdditionalUtils","id","undefined","formatMessage","combineWithExternalTranslations","translationsRef","fM","current","rM","message","renderMessage","translations","Object","assign","combined","_objectSpread","keys","some","key","_str","str","_id$includes","found","includes","call","split","t","replace","RegExp","text","element","Array","isArray","map","item","index","createElement","_br"],"sources":["../../../src/shared/useTranslation.tsx"],"sourcesContent":["import React, {\n Fragment,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react'\nimport Context, {\n Translation,\n TranslationLocale,\n TranslationCustomLocales,\n InternalLocale,\n} from './Context'\nimport defaultLocales from './locales'\n\nexport type TranslationId = string\nexport type TranslationIdAsFunction<T = TranslationCustomLocales> = (\n messages: T & Translation\n) => string\nexport type TranslationArguments = Record<TranslationId, unknown>\nexport type UseTranslationMessages<T = Translation> =\n | TranslationId\n | Translation\n | TranslationCustomLocales\n | Record<TranslationLocale, T>\n\nexport default function useTranslation<T = Translation>(\n messages?: UseTranslationMessages<T>,\n args?: TranslationArguments\n) {\n const { locale, translation } = useContext(Context)\n const { assignUtils } = useAdditionalUtils()\n\n return useMemo(() => {\n const id = typeof messages === 'string' ? messages : undefined\n if (id) {\n return formatMessage(id, args, translation)\n }\n\n return assignUtils(\n combineWithExternalTranslations({\n translation,\n messages,\n locale,\n })\n )\n }, [messages, translation, locale, assignUtils, args])\n}\n\nexport type CombineWithExternalTranslationsArgs = {\n translation: Translation\n messages?: TranslationCustomLocales\n locale?: InternalLocale\n}\nexport type
|
|
1
|
+
{"version":3,"file":"useTranslation.js","names":["React","Fragment","useCallback","useContext","useMemo","useRef","Context","defaultLocales","useTranslation","messages","args","locale","translation","assignUtils","useAdditionalUtils","id","undefined","formatMessage","combineWithExternalTranslations","translationsRef","fM","current","rM","message","renderMessage","translations","Object","assign","combined","_objectSpread","keys","some","key","_str","str","_id$includes","found","includes","call","split","t","replace","RegExp","text","element","Array","isArray","map","item","index","createElement","_br"],"sources":["../../../src/shared/useTranslation.tsx"],"sourcesContent":["import React, {\n Fragment,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react'\nimport Context, {\n Translation,\n TranslationLocale,\n TranslationCustomLocales,\n InternalLocale,\n} from './Context'\nimport defaultLocales from './locales'\n\nexport type TranslationId = string\nexport type TranslationIdAsFunction<T = TranslationCustomLocales> = (\n messages: T & Translation\n) => string\nexport type TranslationArguments = Record<TranslationId, unknown>\nexport type UseTranslationMessages<T = Translation> =\n | TranslationId\n | Translation\n | TranslationCustomLocales\n | Record<TranslationLocale, T>\n\nexport default function useTranslation<T = Translation>(\n messages?: UseTranslationMessages<T>,\n args?: TranslationArguments\n) {\n const { locale, translation } = useContext(Context)\n const { assignUtils } = useAdditionalUtils()\n\n return useMemo(() => {\n const id = typeof messages === 'string' ? messages : undefined\n if (id) {\n return formatMessage(id, args, translation)\n }\n\n return assignUtils(\n combineWithExternalTranslations({\n translation,\n messages,\n locale,\n })\n )\n }, [messages, translation, locale, assignUtils, args])\n}\n\nexport type CombineWithExternalTranslationsArgs = {\n translation: Translation\n messages?: TranslationCustomLocales\n locale?: InternalLocale\n}\nexport type AdditionalReturnUtils = {\n formatMessage: typeof formatMessage\n renderMessage: typeof renderMessage\n}\nexport type CombineWithExternalTranslationsReturn = Translation &\n TranslationCustomLocales &\n AdditionalReturnUtils\n\nexport function useAdditionalUtils() {\n const translationsRef = useRef<CombineWithExternalTranslationsReturn>()\n\n const fM = useCallback(\n (id: TranslationId, args: TranslationArguments) => {\n return formatMessage(id, args, translationsRef.current)\n },\n []\n )\n\n const rM = useCallback((message: string) => {\n return renderMessage(message)\n }, [])\n\n const assignUtils = useCallback(\n (translations: CombineWithExternalTranslationsReturn) => {\n translationsRef.current = translations\n Object.assign(translations, { formatMessage: fM, renderMessage: rM })\n return translations\n },\n [fM, rM]\n )\n\n return { assignUtils }\n}\n\nexport function combineWithExternalTranslations({\n translation,\n messages,\n locale,\n}: CombineWithExternalTranslationsArgs): CombineWithExternalTranslationsReturn {\n let combined = {\n ...translation,\n } as CombineWithExternalTranslationsReturn\n\n if (messages) {\n if (Object.keys(defaultLocales).some((locale) => messages[locale])) {\n if (messages[locale]) {\n combined = messages[locale]\n }\n }\n\n for (const key in messages as TranslationCustomLocales) {\n combined[key] = { ...translation[key], ...messages[key] }\n }\n }\n\n return combined\n}\n\nexport function formatMessage(\n id: TranslationId | TranslationIdAsFunction,\n args?: TranslationArguments,\n messages?: TranslationCustomLocales\n) {\n let str = undefined\n\n if (typeof id === 'string') {\n let found = false\n if (messages[id]) {\n str = messages[id]\n found = true\n } else if (id?.includes?.('.')) {\n const keys = id.split('.')\n for (const key of keys) {\n if (messages[key]) {\n messages = messages[key]\n } else {\n break\n }\n }\n if (typeof messages === 'string') {\n str = messages\n found = true\n }\n }\n if (!found && typeof id === 'string') {\n str = id\n }\n } else if (typeof id === 'function') {\n str = id(messages)\n }\n\n if (typeof str === 'string') {\n for (const t in args) {\n str = str.replace(new RegExp(`{${t}}`, 'g'), args[t])\n }\n }\n\n return str ?? id\n}\n\nexport function renderMessage(\n text: string | Array<React.ReactNode>\n): string | React.ReactNode {\n let element = text\n\n if (typeof text === 'string') {\n element = text.split('{br}')\n }\n\n if (Array.isArray(element)) {\n return element.map((item, index) => (\n <Fragment key={index}>\n {item}\n <br />\n </Fragment>\n ))\n }\n\n return text\n}\n"],"mappings":"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"}
|