@dnb/eufemia 10.24.0 → 10.26.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 +49 -0
- package/cjs/components/accordion/style/dnb-accordion.css +6 -2
- package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
- package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
- package/cjs/components/autocomplete/Autocomplete.js +9 -2
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/cjs/components/card/style/dnb-card.css +3 -0
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +4 -0
- package/cjs/components/dropdown/Dropdown.d.ts +0 -3
- package/cjs/components/input/InputDocs.js +2 -2
- package/cjs/components/input/InputDocs.js.map +1 -1
- package/cjs/components/input-masked/InputMaskedUtils.js +10 -7
- package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +3 -0
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/table-th.scss +4 -1
- package/cjs/components/textarea/Textarea.js +24 -17
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/extensions/forms/DataContext/At/At.js +6 -6
- package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +7 -3
- package/cjs/extensions/forms/DataContext/Context.js +2 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +56 -28
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -7
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js +5 -8
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/cjs/extensions/forms/Field/Composition/Composition.js +19 -0
- package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/cjs/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/cjs/extensions/forms/Field/Composition/index.js +27 -0
- package/cjs/extensions/forms/Field/Composition/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Currency/Currency.js +6 -4
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +5 -7
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.js +6 -10
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +24 -12
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +8 -7
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -7
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Password/Password.js +5 -8
- package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -16
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.js +9 -9
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -7
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/Field/index.d.ts +1 -0
- package/cjs/extensions/forms/Field/index.js +7 -0
- package/cjs/extensions/forms/Field/index.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +5 -5
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +6 -3
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/cjs/extensions/forms/Form/data-context/useError.js +13 -5
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +7 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -7
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/Boolean/Boolean.js +4 -7
- package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.js +4 -7
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Email/Email.js +4 -7
- package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -7
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -7
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +33 -0
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/cjs/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/cjs/extensions/forms/{StepsLayout/StepsLayoutDocs.js → Wizard/Container/WizardContainerDocs.js} +9 -9
- package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/cjs/extensions/forms/Wizard/Container/index.js +27 -0
- package/cjs/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/cjs/extensions/forms/{StepsLayout/StepsContext.js → Wizard/Context/WizardContext.js} +7 -4
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/cjs/extensions/forms/Wizard/Context/index.js +27 -0
- package/cjs/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/cjs/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/cjs/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/cjs/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/cjs/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.js +3 -3
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +52 -0
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +60 -0
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +56 -0
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +47 -0
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +30 -0
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/cjs/extensions/forms/Wizard/index.d.ts +13 -0
- package/cjs/extensions/forms/Wizard/index.js +87 -0
- package/cjs/extensions/forms/Wizard/index.js.map +1 -0
- package/{extensions/forms/StepsLayout/style/dnb-steps-layout.css → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/{extensions/forms/StepsLayout/style/dnb-steps-layout.scss → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss} +6 -5
- package/cjs/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/style/index.js +4 -0
- package/cjs/extensions/forms/Wizard/style/index.js.map +1 -0
- package/cjs/extensions/forms/Wizard/style.js.map +1 -0
- package/cjs/extensions/forms/constants/countries.d.ts +1 -0
- package/cjs/extensions/forms/constants/countries.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js +100 -0
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/cjs/extensions/forms/constants/locales/en-US.js +25 -0
- package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/index.d.ts +183 -0
- package/cjs/extensions/forms/constants/locales/index.js +18 -0
- package/cjs/extensions/forms/constants/locales/index.js.map +1 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js +100 -0
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +92 -65
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/cjs/extensions/forms/hooks/useLocale.js +32 -0
- package/cjs/extensions/forms/hooks/useLocale.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +14 -1
- package/cjs/extensions/forms/index.js +15 -15
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +36 -27
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +2 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/cjs/shared/Context.d.ts +7 -6
- package/cjs/shared/Context.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 +0 -1
- package/cjs/shared/component-helper.js +1 -9
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +3 -1
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +0 -51
- package/cjs/shared/locales/en-GB.js +3 -54
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +0 -51
- package/cjs/shared/locales/en-US.js.map +1 -1
- package/cjs/shared/locales/index.d.ts +0 -102
- package/cjs/shared/locales/nb-NO.d.ts +0 -51
- package/cjs/shared/locales/nb-NO.js +3 -54
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/shared/types.d.ts +3 -0
- package/cjs/shared/types.js.map +1 -1
- package/cjs/shared/useLocale.d.ts +8 -1
- package/cjs/shared/useLocale.js +24 -11
- package/cjs/shared/useLocale.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 +48 -29
- package/cjs/style/dnb-ui-components.min.css +3 -3
- 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 +36 -27
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +36 -27
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-forms.scss +2 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/properties.js +10 -10
- package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.js +10 -10
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/properties.js +10 -10
- package/cjs/style/themes/theme-ui/properties.js.map +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +84 -56
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +36 -27
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +36 -27
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/accordion/style/dnb-accordion.css +6 -2
- package/components/accordion/style/dnb-accordion.min.css +2 -2
- package/components/accordion/style/dnb-accordion.scss +8 -2
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/components/autocomplete/Autocomplete.d.ts +0 -15
- package/components/autocomplete/Autocomplete.js +9 -2
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/components/autocomplete/AutocompleteDocs.js +285 -0
- package/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/components/card/style/dnb-card.css +3 -0
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +4 -0
- package/components/dropdown/Dropdown.d.ts +0 -3
- package/components/input/InputDocs.js +2 -2
- package/components/input/InputDocs.js.map +1 -1
- package/components/input-masked/InputMaskedUtils.js +10 -7
- package/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/components/table/style/dnb-table.css +3 -0
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/table-th.scss +4 -1
- package/components/textarea/Textarea.js +24 -17
- package/components/textarea/Textarea.js.map +1 -1
- package/es/components/accordion/style/dnb-accordion.css +6 -2
- package/es/components/accordion/style/dnb-accordion.min.css +2 -2
- package/es/components/accordion/style/dnb-accordion.scss +8 -2
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/es/components/autocomplete/Autocomplete.d.ts +0 -15
- package/es/components/autocomplete/Autocomplete.js +9 -2
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/es/components/autocomplete/AutocompleteDocs.js +285 -0
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/es/components/card/style/dnb-card.css +3 -0
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +4 -0
- package/es/components/dropdown/Dropdown.d.ts +0 -3
- package/es/components/input/InputDocs.js +2 -2
- package/es/components/input/InputDocs.js.map +1 -1
- package/es/components/input-masked/InputMaskedUtils.js +10 -7
- package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
- package/es/components/table/style/dnb-table.css +3 -0
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/table-th.scss +4 -1
- package/es/components/textarea/Textarea.js +24 -17
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/extensions/forms/DataContext/At/At.js +7 -7
- package/es/extensions/forms/DataContext/At/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +7 -3
- package/es/extensions/forms/DataContext/Context.js +2 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/es/extensions/forms/DataContext/Provider/Provider.js +55 -28
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js +5 -7
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/es/extensions/forms/Field/Composition/Composition.js +11 -0
- package/es/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/es/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/es/extensions/forms/Field/Composition/index.js +3 -0
- package/es/extensions/forms/Field/Composition/index.js.map +1 -0
- package/es/extensions/forms/Field/Currency/Currency.js +4 -4
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +6 -9
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.js +6 -9
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +25 -14
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +8 -7
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/Password/Password.js +5 -8
- package/es/extensions/forms/Field/Password/Password.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/String/String.js +9 -9
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +7 -9
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/Field/index.d.ts +1 -0
- package/es/extensions/forms/Field/index.js +1 -0
- package/es/extensions/forms/Field/index.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/es/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +3 -3
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +7 -4
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/es/extensions/forms/Form/data-context/useError.js +14 -6
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Value/Boolean/Boolean.js +4 -6
- package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.js +4 -6
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Email/Email.js +4 -6
- package/es/extensions/forms/Value/Email/Email.js.map +1 -1
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/es/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/es/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/{extensions/forms/StepsLayout/StepsLayoutDocs.js → es/extensions/forms/Wizard/Container/WizardContainerDocs.js} +6 -6
- package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/es/extensions/forms/Wizard/Container/index.js +3 -0
- package/es/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js +12 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/es/extensions/forms/Wizard/Context/index.js +3 -0
- package/es/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/es/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/es/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/es/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/es/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/Step/Step.js +3 -3
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/es/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js +42 -0
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js +46 -0
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js +37 -0
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/es/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/es/extensions/forms/Wizard/hooks/useStep.js +22 -0
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/es/extensions/forms/Wizard/index.d.ts +13 -0
- package/es/extensions/forms/Wizard/index.js +14 -0
- package/es/extensions/forms/Wizard/index.js.map +1 -0
- package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css → es/extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/es/extensions/forms/{StepsLayout/style/dnb-steps-layout.scss → Wizard/style/dnb-wizard-layout.scss} +6 -5
- package/es/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/es/extensions/forms/Wizard/style/index.js +1 -0
- package/es/extensions/forms/Wizard/style/index.js.map +1 -0
- package/es/extensions/forms/Wizard/style.js.map +1 -0
- package/es/extensions/forms/constants/countries.d.ts +1 -0
- package/es/extensions/forms/constants/countries.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/es/extensions/forms/constants/locales/en-GB.js +93 -0
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/es/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/es/extensions/forms/constants/locales/en-US.js +15 -0
- package/es/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/es/extensions/forms/constants/locales/index.d.ts +183 -0
- package/es/extensions/forms/constants/locales/index.js +8 -0
- package/es/extensions/forms/constants/locales/index.js.map +1 -0
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/es/extensions/forms/constants/locales/nb-NO.js +93 -0
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +92 -65
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/es/extensions/forms/hooks/useLocale.js +26 -0
- package/es/extensions/forms/hooks/useLocale.js.map +1 -0
- package/es/extensions/forms/index.d.ts +14 -1
- package/es/extensions/forms/index.js +11 -1
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +36 -27
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +2 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/es/shared/Context.d.ts +7 -6
- package/es/shared/Context.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 +0 -1
- package/es/shared/component-helper.js +0 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +3 -1
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +0 -51
- package/es/shared/locales/en-GB.js +3 -54
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +0 -51
- package/es/shared/locales/en-US.js.map +1 -1
- package/es/shared/locales/index.d.ts +0 -102
- package/es/shared/locales/nb-NO.d.ts +0 -51
- package/es/shared/locales/nb-NO.js +3 -54
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/shared/types.d.ts +3 -0
- package/es/shared/types.js.map +1 -1
- package/es/shared/useLocale.d.ts +8 -1
- package/es/shared/useLocale.js +22 -11
- package/es/shared/useLocale.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 +48 -29
- package/es/style/dnb-ui-components.min.css +3 -3
- 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 +36 -27
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +36 -27
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-forms.scss +2 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/properties.js +10 -10
- package/es/style/themes/theme-eiendom/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.js +10 -10
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +10 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/properties.js +10 -10
- package/es/style/themes/theme-ui/properties.js.map +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +84 -56
- package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/es/style/themes/theme-ui/ui-theme-extensions.css +36 -27
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +36 -27
- 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 +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/At/At.js +7 -7
- package/extensions/forms/DataContext/At/At.js.map +1 -1
- package/extensions/forms/DataContext/Context.d.ts +7 -3
- package/extensions/forms/DataContext/Context.js +2 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/extensions/forms/DataContext/Provider/Provider.js +56 -28
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.js +5 -7
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Composition/Composition.d.ts +6 -0
- package/extensions/forms/Field/Composition/Composition.js +11 -0
- package/extensions/forms/Field/Composition/Composition.js.map +1 -0
- package/extensions/forms/Field/Composition/index.d.ts +2 -0
- package/extensions/forms/Field/Composition/index.js +3 -0
- package/extensions/forms/Field/Composition/index.js.map +1 -0
- package/extensions/forms/Field/Currency/Currency.js +4 -4
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +6 -9
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.js +6 -9
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +25 -14
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +8 -7
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/Password/Password.js +5 -8
- package/extensions/forms/Field/Password/Password.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/String/String.js +9 -9
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +7 -9
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/Field/index.d.ts +1 -0
- package/extensions/forms/Field/index.js +1 -0
- package/extensions/forms/Field/index.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
- package/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
- package/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +3 -3
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
- package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +7 -4
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/extensions/forms/Form/data-context/useError.js +14 -6
- package/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +1 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Value/Boolean/Boolean.js +4 -6
- package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Value/Date/Date.js +4 -6
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Email/Email.js +4 -6
- package/extensions/forms/Value/Email/Email.js.map +1 -1
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
- package/extensions/forms/Wizard/Buttons/index.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
- package/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
- package/{es/extensions/forms/StepsLayout/StepsLayoutDocs.js → extensions/forms/Wizard/Container/WizardContainerDocs.js} +6 -6
- package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
- package/extensions/forms/Wizard/Container/index.d.ts +2 -0
- package/extensions/forms/Wizard/Container/index.js +3 -0
- package/extensions/forms/Wizard/Container/index.js.map +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
- package/extensions/forms/Wizard/Context/WizardContext.js +12 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
- package/extensions/forms/Wizard/Context/index.d.ts +2 -0
- package/extensions/forms/Wizard/Context/index.js +3 -0
- package/extensions/forms/Wizard/Context/index.js.map +1 -0
- package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
- package/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
- package/extensions/forms/Wizard/NextButton/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
- package/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
- package/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/Step/Step.js +3 -3
- package/extensions/forms/Wizard/Step/Step.js.map +1 -0
- package/extensions/forms/Wizard/Step/index.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.js +43 -0
- package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
- package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.js +47 -0
- package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.js +38 -0
- package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
- package/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
- package/extensions/forms/Wizard/hooks/useStep.js +24 -0
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
- package/extensions/forms/Wizard/index.d.ts +13 -0
- package/extensions/forms/Wizard/index.js +14 -0
- package/extensions/forms/Wizard/index.js.map +1 -0
- package/{es/extensions/forms/StepsLayout/style/dnb-steps-layout.css → extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
- package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss → extensions/forms/Wizard/style/dnb-wizard-layout.scss} +6 -5
- package/extensions/forms/Wizard/style/index.d.ts +5 -0
- package/extensions/forms/Wizard/style/index.js +1 -0
- package/extensions/forms/Wizard/style/index.js.map +1 -0
- package/extensions/forms/Wizard/style.js.map +1 -0
- package/extensions/forms/constants/countries.d.ts +1 -0
- package/extensions/forms/constants/countries.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +99 -0
- package/extensions/forms/constants/locales/en-GB.js +93 -0
- package/extensions/forms/constants/locales/en-GB.js.map +1 -0
- package/extensions/forms/constants/locales/en-US.d.ts +93 -0
- package/extensions/forms/constants/locales/en-US.js +15 -0
- package/extensions/forms/constants/locales/en-US.js.map +1 -0
- package/extensions/forms/constants/locales/index.d.ts +183 -0
- package/extensions/forms/constants/locales/index.js +8 -0
- package/extensions/forms/constants/locales/index.js.map +1 -0
- package/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
- package/extensions/forms/constants/locales/nb-NO.js +93 -0
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -0
- package/extensions/forms/hooks/DataValueDocs.js +4 -4
- package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +92 -65
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useLocale.d.ts +10 -0
- package/extensions/forms/hooks/useLocale.js +26 -0
- package/extensions/forms/hooks/useLocale.js.map +1 -0
- package/extensions/forms/index.d.ts +14 -1
- package/extensions/forms/index.js +12 -1
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +36 -27
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +2 -0
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/fragments/drawer-list/DrawerListDocs.js +180 -0
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/package.json +1 -1
- package/shared/Context.d.ts +7 -6
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.d.ts +0 -1
- package/shared/component-helper.js +0 -1
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/shared/helpers/useSharedState.d.ts +3 -1
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/locales/en-GB.d.ts +0 -51
- package/shared/locales/en-GB.js +3 -54
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +0 -51
- package/shared/locales/en-US.js.map +1 -1
- package/shared/locales/index.d.ts +0 -102
- package/shared/locales/nb-NO.d.ts +0 -51
- package/shared/locales/nb-NO.js +3 -54
- package/shared/locales/nb-NO.js.map +1 -1
- package/shared/types.d.ts +3 -0
- package/shared/types.js.map +1 -1
- package/shared/useLocale.d.ts +8 -1
- package/shared/useLocale.js +23 -11
- package/shared/useLocale.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 +48 -29
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +36 -27
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +36 -27
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-forms.scss +2 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-eiendom/properties.js +10 -10
- package/style/themes/theme-eiendom/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.js +10 -10
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +10 -10
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/properties.js +10 -10
- package/style/themes/theme-ui/properties.js.map +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +84 -56
- package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
- package/style/themes/theme-ui/ui-theme-extensions.css +36 -27
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +36 -27
- 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 +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Field/style/index.d.ts +0 -5
- package/cjs/extensions/forms/Field/style/index.js +0 -4
- package/cjs/extensions/forms/Field/style/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -26
- package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/index.js +0 -18
- package/cjs/extensions/forms/StepsLayout/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/cjs/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/cjs/extensions/forms/StepsLayout/style/index.js +0 -4
- package/cjs/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/style.js.map +0 -1
- package/cjs/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/cjs/extensions/forms/StepsLayout/useStep.js +0 -19
- package/cjs/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/cjs/shared/helpers/useEventEmitter.d.ts +0 -16
- package/cjs/shared/helpers/useEventEmitter.js +0 -38
- package/cjs/shared/helpers/useEventEmitter.js.map +0 -1
- package/es/extensions/forms/Field/style/index.d.ts +0 -5
- package/es/extensions/forms/Field/style/index.js +0 -1
- package/es/extensions/forms/Field/style/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
- package/es/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/es/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/es/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/es/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/es/extensions/forms/StepsLayout/StepsContext.js +0 -9
- package/es/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/es/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/index.js +0 -4
- package/es/extensions/forms/StepsLayout/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/es/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/es/extensions/forms/StepsLayout/style/index.js +0 -1
- package/es/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/es/extensions/forms/StepsLayout/style.js.map +0 -1
- package/es/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/es/extensions/forms/StepsLayout/useStep.js +0 -12
- package/es/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/es/shared/helpers/useEventEmitter.d.ts +0 -16
- package/es/shared/helpers/useEventEmitter.js +0 -29
- package/es/shared/helpers/useEventEmitter.js.map +0 -1
- package/extensions/forms/Field/style/index.d.ts +0 -5
- package/extensions/forms/Field/style/index.js +0 -1
- package/extensions/forms/Field/style/index.js.map +0 -1
- package/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
- package/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
- package/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
- package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
- package/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
- package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
- package/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
- package/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
- package/extensions/forms/StepsLayout/Step/index.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
- package/extensions/forms/StepsLayout/StepsContext.js +0 -9
- package/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
- package/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
- package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
- package/extensions/forms/StepsLayout/index.d.ts +0 -3
- package/extensions/forms/StepsLayout/index.js +0 -4
- package/extensions/forms/StepsLayout/index.js.map +0 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
- package/extensions/forms/StepsLayout/style/index.d.ts +0 -5
- package/extensions/forms/StepsLayout/style/index.js +0 -1
- package/extensions/forms/StepsLayout/style/index.js.map +0 -1
- package/extensions/forms/StepsLayout/style.js.map +0 -1
- package/extensions/forms/StepsLayout/useStep.d.ts +0 -3
- package/extensions/forms/StepsLayout/useStep.js +0 -13
- package/extensions/forms/StepsLayout/useStep.js.map +0 -1
- package/shared/helpers/useEventEmitter.d.ts +0 -16
- package/shared/helpers/useEventEmitter.js +0 -30
- package/shared/helpers/useEventEmitter.js.map +0 -1
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/es/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
- /package/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrawerListDocs.js","names":["DrawerListProperties","data","doc","type","status","value","default_value","triangle_position","direction","label_direction","prevent_selection","focusable","prevent_close","keep_open","independent_width","fixed_position","enable_body_lock","skip_keysearch","ignore_events","align_drawer","list_class","portal_class","scrollable","no_scroll_animation","no_animation","skip_portal","min_height","max_height","page_offset","observer_element","cache_hash","wrapper_element","options_render","exports","DrawerListEvents","on_pre_change","on_change","on_select","on_show","on_hide"],"sources":["../../../../src/fragments/drawer-list/DrawerListDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const DrawerListProperties: PropertiesTableProps = {\n data: {\n doc: \"The data we want to fill the list with. Provide the data as a JSON string, array, or object in the specified data structure. If you don't have to define a value, you can also send in a function which will be called once the user opens the DrawerList.\",\n type: 'string | object | function',\n status: 'required',\n },\n value: {\n doc: 'Define a preselected data entry (index) or key inside an array item. Can be a string or integer.',\n type: ['string', 'number'],\n status: 'optional',\n },\n default_value: {\n doc: 'Define a startup value or handle a re-render without handling the state during the re-render by yourself. Defaults to null.',\n type: 'number',\n status: 'optional',\n },\n triangle_position: {\n doc: \"Position of the arrow icon/triangle inside the drawer-list. Set to 'left' or 'right'. Defaults to 'left' if not set.\",\n type: 'string',\n status: 'optional',\n },\n direction: {\n doc: \"Defines the direction of how the drawer-list shows the options list. Can be 'bottom' or 'top'. Defaults to 'auto'.\",\n type: 'string',\n status: 'optional',\n },\n label_direction: {\n doc: \"The direction of the label. If set to 'horizontal', the label will be positioned horizontally next to the input element. If set to 'vertical', the label will be positioned vertically above the input element.\",\n type: 'string',\n status: 'optional',\n },\n prevent_selection: {\n doc: 'If set to `true`, the DrawerList will then not make any permanent selection.',\n type: 'boolean',\n status: 'optional',\n },\n focusable: {\n doc: 'If set to `true`, the element is then focusable by assertive technologies.',\n type: 'boolean',\n status: 'optional',\n },\n prevent_close: {\n doc: 'If set to `true`, the DrawerList will not close on any events.',\n type: 'boolean',\n status: 'optional',\n },\n keep_open: {\n doc: 'If set to `true`, the DrawerList will close on outside clicks, but not on selection.',\n type: 'boolean',\n status: 'optional',\n },\n independent_width: {\n doc: 'If set to `true`, the DrawerList will handle its width and position independently of the parent/mother element.',\n type: 'boolean',\n status: 'optional',\n },\n fixed_position: {\n doc: 'If set to `true`, the DrawerList will be fixed in its scroll position by using CSS `position: fixed;`.',\n type: 'boolean',\n status: 'optional',\n },\n enable_body_lock: {\n doc: 'If set to `true`, the HTML body will get locked from scrolling when the Dropdown is open.',\n type: 'boolean',\n status: 'optional',\n },\n skip_keysearch: {\n doc: 'If set to `true`, search items by the first key will be ignored.',\n type: 'boolean',\n status: 'optional',\n },\n ignore_events: {\n doc: 'If set to `true`, all keyboard and mouse events will be ignored.',\n type: 'boolean',\n status: 'optional',\n },\n align_drawer: {\n doc: \"Use 'right' to change the options alignment direction. Makes only sense to use in combination with `prevent_selection` or `more_menu` - or if an independent width is used.\",\n type: 'string',\n status: 'optional',\n },\n list_class: {\n doc: 'Define an HTML class that will be set on the list, beside `dnb-drawer-list__list`.',\n type: 'string',\n status: 'optional',\n },\n portal_class: {\n doc: 'Define an HTML class that will be set on the DOM portal beside `dnb-drawer-list__portal__style`. Can be useful to handle e.g. a custom `z-index` in relation to a header.',\n type: 'string',\n status: 'optional',\n },\n scrollable: {\n doc: 'Defines if the options list should be scrollable (the `max-height` is set by default to `50vh`).',\n type: 'boolean',\n status: 'optional',\n },\n no_scroll_animation: {\n doc: 'To disable scrolling animation.',\n type: 'boolean',\n status: 'optional',\n },\n no_animation: {\n doc: 'To disable appear/disappear (show/hide) animation.',\n type: 'boolean',\n status: 'optional',\n },\n skip_portal: {\n doc: 'To disable the React Portal behavior.',\n type: 'boolean',\n status: 'optional',\n },\n min_height: {\n doc: 'Defines the minimum height (in `rem`) of the options list.',\n type: 'string',\n status: 'optional',\n },\n max_height: {\n doc: 'Defines the maximum height (in `rem`) of the options list.',\n type: 'string',\n status: 'optional',\n },\n page_offset: {\n doc: 'Defines the available scrollable height. If scrolling should not change the height of the drawer-list, then set it to `0` (useful if the DrawerList is used in fixed positions on contrast to a scrollable page content).',\n type: 'string',\n status: 'optional',\n },\n observer_element: {\n doc: 'Set a HTML element, either as a selector or a DOM element. Can be used to send in an element which will be used to make the direction calculation on.',\n type: 'string',\n status: 'optional',\n },\n cache_hash: {\n doc: 'Set a `cache_hash` as a string to enable internal memorizing of the list to enhance rerendering performance. Components like Autocomplete are using this because of the huge data changes due to search and reorder.',\n type: 'string',\n status: 'optional',\n },\n wrapper_element: {\n doc: \"Has to be an HTML Element, ideally a mother element, used to calculate sizes and distances. Also used for the 'click outside' detection. Clicking on the `wrapper_element` will not trigger an outside click.\",\n type: 'HTMLElement',\n status: 'optional',\n },\n options_render: {\n doc: 'Has to be a function, returning the items again. See [example](/uilib/components/fragments/drawer-list#example-usage-of-options_render). This can be used to add additional options above the actual rendered list.',\n type: 'function',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const DrawerListEvents: PropertiesTableProps = {\n on_pre_change: {\n doc: 'Will be called before `on_change`, this way you can return false to prevent selection and to prevent `on_change` execution.',\n type: 'function',\n status: 'optional',\n },\n on_change: {\n doc: 'Will be called on state changes made by the user.',\n type: 'function',\n status: 'optional',\n },\n on_select: {\n doc: 'Will be called once the user selects an item by a click or keyboard navigation.',\n type: 'function',\n status: 'optional',\n },\n on_show: {\n doc: 'Will be called once the user presses the drawer-list.',\n type: 'function',\n status: 'optional',\n },\n on_hide: {\n doc: 'Will be called once the user presses the drawer-list again, or clicks somewhere else.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
|
package/cjs/shared/Context.d.ts
CHANGED
|
@@ -37,6 +37,8 @@ import type { InputProps } from '../components/Input';
|
|
|
37
37
|
import type { NumberFormatCurrency } from '../components/NumberFormat';
|
|
38
38
|
import type { FormElementProps } from './helpers/filterValidProps';
|
|
39
39
|
import type { ThemeProps } from './Theme';
|
|
40
|
+
import type { FormsTranslation } from '../extensions/forms/hooks/useLocale';
|
|
41
|
+
import type { DeepPartial } from './types';
|
|
40
42
|
export type ContextComponents = {
|
|
41
43
|
Button?: Partial<ButtonProps>;
|
|
42
44
|
Anchor?: Partial<AnchorProps>;
|
|
@@ -136,22 +138,21 @@ export type AnyLocale = string;
|
|
|
136
138
|
export type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US';
|
|
137
139
|
export type ComponentTranslationsName = keyof ContextComponents | string;
|
|
138
140
|
export type ComponentTranslation = string;
|
|
139
|
-
export type Locales = Partial<Record<Locale, Translation | TranslationFlat>>;
|
|
141
|
+
export type Locales = Partial<Record<Locale, Translation | TranslationFlat>> | Partial<Record<Locale, FormsTranslation>>;
|
|
140
142
|
export type TranslationDefaultLocales = typeof defaultLocales;
|
|
141
143
|
export type TranslationLocale = keyof TranslationDefaultLocales;
|
|
142
144
|
export type TranslationKeys = keyof TranslationDefaultLocales[TranslationLocale];
|
|
143
|
-
export type TranslationValues = TranslationDefaultLocales[TranslationLocale]
|
|
145
|
+
export type TranslationValues = TranslationDefaultLocales[TranslationLocale] & {
|
|
146
|
+
Forms?: Record<string, unknown>;
|
|
147
|
+
};
|
|
144
148
|
/**
|
|
145
149
|
* E.g. "HelpButton: { title: '...' }"
|
|
146
150
|
*/
|
|
147
|
-
export type Translation = DeepPartial<
|
|
151
|
+
export type Translation = DeepPartial<TranslationValues>;
|
|
148
152
|
/**
|
|
149
153
|
* E.g. "HelpButton.title"
|
|
150
154
|
*/
|
|
151
155
|
export type TranslationFlat = Record<ComponentTranslationsName, TranslationKeys | ComponentTranslation>;
|
|
152
|
-
type DeepPartial<T> = T extends object ? {
|
|
153
|
-
[K in keyof T]?: DeepPartial<T[K]>;
|
|
154
|
-
} : T;
|
|
155
156
|
export declare function prepareContext<Props>(props?: ContextProps): Props & ContextProps;
|
|
156
157
|
declare const Context: React.Context<ContextProps>;
|
|
157
158
|
export default Context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_defaults","_locales","_componentHelper","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","prepareContext","props","locales","extend","defaultLocales","__context__","assign","handleLocaleFallbacks","locale","LOCALE","translation","destruct","context","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","React","createContext","currency","CURRENCY","currency_display","CURRENCY_DISPLAY","_default","exports","validKeys","k","includes","list","val","last"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\n\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n /**\n * Set a custom translation in the Provider\n */\n locales?: Locales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale | HTMLElement['lang']\n locale?: Locale\n}>\n\nexport type AnyLocale = string\nexport type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US'\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Locales = Partial<\n Record<Locale, Translation | TranslationFlat>\n>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale]\n\n/**\n * E.g. \"HelpButton: { title: '...' }\"\n */\nexport type Translation = DeepPartial<\n TranslationDefaultLocales[TranslationLocale]\n>\n\n/**\n * E.g. \"HelpButton.title\"\n */\nexport type TranslationFlat = Record<\n ComponentTranslationsName,\n TranslationKeys | ComponentTranslation\n>\n\ntype DeepPartial<T> = T extends object\n ? {\n [K in keyof T]?: DeepPartial<T[K]>\n }\n : T\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key] as TranslationFlat, translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale, translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale | string, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationFlat,\n validKeys: Record<string, unknown>\n): TranslationFlat {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_defaults","_locales","_componentHelper","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","prepareContext","props","locales","extend","defaultLocales","__context__","assign","handleLocaleFallbacks","locale","LOCALE","translation","destruct","context","updateTranslation","getTranslation","lang","breakpoints","skeleton","split","Context","React","createContext","currency","CURRENCY","currency_display","CURRENCY_DISPLAY","_default","exports","validKeys","k","includes","list","val","last"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport React from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extend } from './component-helper'\n\n// All TypeScript based Eufemia elements\nimport type { ScrollViewProps } from '../fragments/scroll-view/ScrollView'\n\n// All TypeScript based Eufemia components\nimport type { AnchorProps } from '../components/Anchor'\nimport type { ButtonProps } from '../components/button/Button'\nimport type { AvatarProps } from '../components/avatar/Avatar'\nimport type { AvatarGroupProps } from '../components/avatar/AvatarGroup'\nimport type { BadgeProps } from '../components/badge/Badge'\nimport type { BreadcrumbProps } from '../components/breadcrumb/Breadcrumb'\nimport type { BreadcrumbItemProps } from '../components/breadcrumb/BreadcrumbItem'\nimport type { InfoCardProps } from '../components/info-card/InfoCard'\nimport type { SliderProps } from '../components/slider/Slider'\nimport type { TagProps } from '../components/tag/Tag'\nimport type { TagGroupProps } from '../components/tag/TagGroup'\nimport type { TimelineProps } from '../components/timeline/Timeline'\nimport type { TimelineItemProps } from '../components/timeline/TimelineItem'\nimport type { VisuallyHiddenProps } from '../components/visually-hidden/VisuallyHidden'\nimport type { DrawerProps } from '../components/drawer/types'\nimport type { DialogProps } from '../components/dialog/types'\nimport type { TooltipProps } from '../components/tooltip/types'\nimport type { SectionProps } from '../components/section/Section'\nimport type { FormRowProps } from '../components/form-row/FormRowHelpers'\nimport type { UploadProps } from '../components/upload/types'\nimport type { SkeletonProps, SkeletonShow } from '../components/Skeleton'\nimport type { HelpButtonProps } from '../components/HelpButton'\nimport type { TableProps } from '../components/Table'\nimport type { GlobalErrorProps } from '../components/GlobalError'\nimport type { ModalProps } from '../components/modal/types'\nimport type { AccordionProps } from '../components/Accordion'\nimport type { StepIndicatorProps } from '../components/StepIndicator'\nimport type { FormLabelProps } from '../components/FormLabel'\nimport type { InputProps } from '../components/Input'\nimport type { NumberFormatCurrency } from '../components/NumberFormat'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\nimport type { FormsTranslation } from '../extensions/forms/hooks/useLocale'\nimport type { DeepPartial } from './types'\n\nexport type ContextComponents = {\n Button?: Partial<ButtonProps>\n Anchor?: Partial<AnchorProps>\n Avatar?: Partial<AvatarProps>\n AvatarGroup?: Partial<AvatarGroupProps>\n Badge?: Partial<BadgeProps>\n Breadcrumb?: Partial<BreadcrumbProps>\n BreadcrumbItem?: Partial<BreadcrumbItemProps>\n InfoCard?: Partial<InfoCardProps>\n Slider?: Partial<SliderProps>\n Tag?: Partial<TagProps>\n TagGroup?: Partial<TagGroupProps>\n Timeline?: Partial<TimelineProps>\n TimelineItem?: Partial<TimelineItemProps>\n VisuallyHidden?: Partial<VisuallyHiddenProps>\n Drawer?: Partial<DrawerProps>\n Dialog?: Partial<DialogProps>\n Tooltip?: Partial<TooltipProps>\n Section?: Partial<SectionProps>\n ScrollView?: Partial<ScrollViewProps>\n Upload?: Partial<UploadProps>\n Skeleton?: Partial<SkeletonProps>\n HelpButton?: Partial<HelpButtonProps>\n Table?: Partial<TableProps>\n GlobalError?: Partial<GlobalErrorProps>\n Modal?: Partial<ModalProps>\n Accordion?: Partial<AccordionProps>\n StepIndicator?: Partial<StepIndicatorProps>\n FormLabel?: Partial<FormLabelProps>\n Input?: Partial<InputProps>\n\n // -- TODO: Not converted yet --\n NumberFormat?: Record<string, unknown>\n Pagination?: Record<string, unknown>\n\n /**\n * @deprecated – can be removed in v11\n */\n FormRow?: FormRowProps\n\n // Common props\n formElement?: FormElementProps\n}\n\nexport type ContextProps = ContextComponents & {\n // -- All TypeScript based Eufemia components --\n\n // -- Global properties --\n\n /**\n * Contains theme related properties, such as a theme name\n */\n theme?: ThemeProps\n\n /**\n * Will enable all skeletons inside this provider/context scope\n */\n skeleton?: SkeletonShow\n\n /**\n * Define what breakpoints should be used by the MediaQuery component and hook\n */\n breakpoints?: Record<string, string>\n\n /**\n * Defines the locale (internal translation) used by some components\n */\n locale?: Locale\n\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translation?: Translation\n\n /**\n * Defines the currency used by the NumberFormat component\n */\n currency?: NumberFormatCurrency\n\n /**\n * Defines the currencyDisplay used by the NumberFormat component\n */\n currency_display?: string\n\n /**\n * Update any given provider/context properties\n */\n update?: (props: ContextProps) => void\n\n /**\n * Update any given provider/context properties, but only for the particular scope\n */\n updateCurrent?: (props: ContextProps) => void\n\n /**\n * Update the used locale from within the context\n */\n setLocale?: (locale: Locale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: Locale) => void\n\n /**\n * Set a custom translation in the Provider\n */\n locales?: Locales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (locale: Locale, translation: Translation) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: Locale | HTMLElement['lang']\n locale?: Locale\n}>\n\nexport type AnyLocale = string\nexport type Locale = AnyLocale | Partial<TranslationLocale> | 'en-US'\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Locales =\n | Partial<Record<Locale, Translation | TranslationFlat>>\n | Partial<Record<Locale, FormsTranslation>>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale] & {\n Forms?: Record<string, unknown>\n }\n\n/**\n * E.g. \"HelpButton: { title: '...' }\"\n */\nexport type Translation = DeepPartial<TranslationValues>\n\n/**\n * E.g. \"HelpButton.title\"\n */\nexport type TranslationFlat = Record<\n ComponentTranslationsName,\n TranslationKeys | ComponentTranslation\n>\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n const locales: Locales = props.locales\n ? extend(defaultLocales, props.locales)\n : defaultLocales\n\n if (props.__context__) {\n Object.assign(props, props.__context__)\n delete props.__context__\n }\n\n const key = handleLocaleFallbacks(props.locale || LOCALE, locales)\n const translation = locales[key] || defaultLocales[LOCALE] || {} // here we could use Object.freeze\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n if (locales[key]) {\n locales[key] = destruct(locales[key] as TranslationFlat, translation)\n }\n\n const context = {\n // We may use that in future\n updateTranslation: (locale, translation) => {\n context.translation = context.locales[locale] = translation\n },\n getTranslation: (props) => {\n if (props) {\n const lang = props.lang || props.locale\n if (lang && context.locales[lang] && lang !== key) {\n return context.locales[lang]\n }\n }\n return context.translation\n },\n\n locales,\n locale: null,\n breakpoints: null,\n skeleton: null,\n\n ...props,\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n translation,\n } as Props & ContextProps\n\n return context\n}\n\nfunction handleLocaleFallbacks(locale: Locale | string, locales: Locales) {\n if (!locales[locale]) {\n if (locale === 'en' || locale.split('-')[0] === 'en') {\n return 'en-GB'\n }\n }\n return locale\n}\n\n// If no provider is given, we use the default context from here\nconst Context = React.createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nfunction destruct(\n source: TranslationFlat,\n validKeys: Record<string, unknown>\n): TranslationFlat {\n for (const k in source) {\n if (String(k).includes('.')) {\n const list = k.split('.')\n\n if (validKeys[list[0]]) {\n const val = source[k]\n const last = list.length - 1\n\n list.forEach((k, i) => {\n source[k] = i === last ? val : source[k]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = source[k] || {}\n })\n\n // If the root object is frozen, then use this\n // let lastObj = { ...source }\n // list.forEach((k, i) => {\n // lastObj[k] = i === last ? val : lastObj[k] // we may have to create a new object here instead?\n // lastObj = lastObj[k]\n // })\n }\n }\n }\n\n return source\n}\n"],"mappings":";;;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAA2C,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAAxB,GAAA,EAAAuB,GAAA,EAAAK,KAAA,IAAAL,GAAA,GAAAM,cAAA,CAAAN,GAAA,OAAAA,GAAA,IAAAvB,GAAA,IAAAO,MAAA,CAAAoB,cAAA,CAAA3B,GAAA,EAAAuB,GAAA,IAAAK,KAAA,EAAAA,KAAA,EAAAf,UAAA,QAAAiB,YAAA,QAAAC,QAAA,oBAAA/B,GAAA,CAAAuB,GAAA,IAAAK,KAAA,WAAA5B,GAAA;AAAA,SAAA6B,eAAAG,GAAA,QAAAT,GAAA,GAAAU,YAAA,CAAAD,GAAA,2BAAAT,GAAA,gBAAAA,GAAA,GAAAW,MAAA,CAAAX,GAAA;AAAA,SAAAU,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AA+LpC,SAASU,cAAcA,CAAA,EAEN;EAAA,IADtBC,KAAmB,GAAA3B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqB,SAAA,GAAArB,SAAA,MAAG,CAAC,CAAC;EAExB,MAAM4B,OAAgB,GAAGD,KAAK,CAACC,OAAO,GAClC,IAAAC,uBAAM,EAACC,gBAAc,EAAEH,KAAK,CAACC,OAAO,CAAC,GACrCE,gBAAc;EAElB,IAAIH,KAAK,CAACI,WAAW,EAAE;IACrB3C,MAAM,CAAC4C,MAAM,CAACL,KAAK,EAAEA,KAAK,CAACI,WAAW,CAAC;IACvC,OAAOJ,KAAK,CAACI,WAAW;EAC1B;EAEA,MAAM3B,GAAG,GAAG6B,qBAAqB,CAACN,KAAK,CAACO,MAAM,IAAIC,gBAAM,EAAEP,OAAO,CAAC;EAClE,MAAMQ,WAAW,GAAGR,OAAO,CAACxB,GAAG,CAAC,IAAI0B,gBAAc,CAACK,gBAAM,CAAC,IAAI,CAAC,CAAC;EAQhE,IAAIP,OAAO,CAACxB,GAAG,CAAC,EAAE;IAChBwB,OAAO,CAACxB,GAAG,CAAC,GAAGiC,QAAQ,CAACT,OAAO,CAACxB,GAAG,CAAC,EAAqBgC,WAAW,CAAC;EACvE;EAEA,MAAME,OAAO,GAAAzC,aAAA,CAAAA,aAAA;IAEX0C,iBAAiB,EAAEA,CAACL,MAAM,EAAEE,WAAW,KAAK;MAC1CE,OAAO,CAACF,WAAW,GAAGE,OAAO,CAACV,OAAO,CAACM,MAAM,CAAC,GAAGE,WAAW;IAC7D,CAAC;IACDI,cAAc,EAAGb,KAAK,IAAK;MACzB,IAAIA,KAAK,EAAE;QACT,MAAMc,IAAI,GAAGd,KAAK,CAACc,IAAI,IAAId,KAAK,CAACO,MAAM;QACvC,IAAIO,IAAI,IAAIH,OAAO,CAACV,OAAO,CAACa,IAAI,CAAC,IAAIA,IAAI,KAAKrC,GAAG,EAAE;UACjD,OAAOkC,OAAO,CAACV,OAAO,CAACa,IAAI,CAAC;QAC9B;MACF;MACA,OAAOH,OAAO,CAACF,WAAW;IAC5B,CAAC;IAEDR,OAAO;IACPM,MAAM,EAAE,IAAI;IACZQ,WAAW,EAAE,IAAI;IACjBC,QAAQ,EAAE;EAAI,GAEXhB,KAAK;IAKRS;EAAW,EACY;EAEzB,OAAOE,OAAO;AAChB;AAEA,SAASL,qBAAqBA,CAACC,MAAuB,EAAEN,OAAgB,EAAE;EACxE,IAAI,CAACA,OAAO,CAACM,MAAM,CAAC,EAAE;IACpB,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MACpD,OAAO,OAAO;IAChB;EACF;EACA,OAAOV,MAAM;AACf;AAGA,MAAMW,OAAO,GAAGC,cAAK,CAACC,aAAa,CACjCrB,cAAc,CAAC;EACbQ,MAAM,EAAEC,gBAAM;EACda,QAAQ,EAAEC,kBAAQ;EAClBC,gBAAgB,EAAEC;AACpB,CAAC,CACH,CAAC;AAAA,IAAAC,QAAA,GAEcP,OAAO;AAAAQ,OAAA,CAAAtE,OAAA,GAAAqE,QAAA;AAEtB,SAASf,QAAQA,CACfnC,MAAuB,EACvBoD,SAAkC,EACjB;EACjB,KAAK,MAAMC,CAAC,IAAIrD,MAAM,EAAE;IACtB,IAAIa,MAAM,CAACwC,CAAC,CAAC,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC3B,MAAMC,IAAI,GAAGF,CAAC,CAACX,KAAK,CAAC,GAAG,CAAC;MAEzB,IAAIU,SAAS,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACtB,MAAMC,GAAG,GAAGxD,MAAM,CAACqD,CAAC,CAAC;QACrB,MAAMI,IAAI,GAAGF,IAAI,CAACxD,MAAM,GAAG,CAAC;QAE5BwD,IAAI,CAACtD,OAAO,CAAC,CAACoD,CAAC,EAAExD,CAAC,KAAK;UACrBG,MAAM,CAACqD,CAAC,CAAC,GAAGxD,CAAC,KAAK4D,IAAI,GAAGD,GAAG,GAAGxD,MAAM,CAACqD,CAAC,CAAC;UAIxCrD,MAAM,GAAGA,MAAM,CAACqD,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;MAQJ;IACF;EACF;EAEA,OAAOrD,MAAM;AACf"}
|
package/cjs/shared/Eufemia.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "10.
|
|
1
|
+
export declare const version = "10.26.0";
|
|
2
2
|
export declare function init(): void;
|
package/cjs/shared/Eufemia.js
CHANGED
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.init = init;
|
|
7
7
|
exports.version = void 0;
|
|
8
|
-
const version = '10.
|
|
8
|
+
const version = '10.26.0';
|
|
9
9
|
exports.version = version;
|
|
10
10
|
function init() {
|
|
11
11
|
if (typeof window !== 'undefined') {
|
|
12
12
|
class Eufemia {
|
|
13
13
|
get version() {
|
|
14
|
-
return '10.
|
|
14
|
+
return '10.26.0';
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
window.Eufemia = new Eufemia();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eufemia.js","names":["version","exports","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.
|
|
1
|
+
{"version":3,"file":"Eufemia.js","names":["version","exports","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.26.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.26.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,SAAS;AAAAC,OAAA,CAAAD,OAAA,GAAAA,OAAA;AAEzB,SAASE,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIJ,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAG,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
|
|
@@ -13,7 +13,6 @@ export function findElementInChildren(children: any, find: any): any;
|
|
|
13
13
|
export function escapeRegexChars(str: any): any;
|
|
14
14
|
export function removeUndefinedProps(object: any): any;
|
|
15
15
|
export { InteractionInvalidation } from "./helpers/InteractionInvalidation";
|
|
16
|
-
export { useEventEmitter } from "./helpers/useEventEmitter";
|
|
17
16
|
export { filterProps } from "./helpers/filterProps";
|
|
18
17
|
export function validateDOMAttributes(props: any, params: any): any;
|
|
19
18
|
export function processChildren(props: any): any;
|
|
@@ -53,14 +53,7 @@ exports.processChildren = exports.matchAll = exports.makeUniqueId = exports.isTr
|
|
|
53
53
|
exports.removeUndefinedProps = removeUndefinedProps;
|
|
54
54
|
exports.toCamelCase = exports.slugify = exports.roundToNearest = void 0;
|
|
55
55
|
exports.toCapitalized = toCapitalized;
|
|
56
|
-
exports.toSnakeCase = exports.toPascalCase = exports.toKebabCase = void 0;
|
|
57
|
-
Object.defineProperty(exports, "useEventEmitter", {
|
|
58
|
-
enumerable: true,
|
|
59
|
-
get: function () {
|
|
60
|
-
return _useEventEmitter.useEventEmitter;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
exports.validateDOMAttributes = void 0;
|
|
56
|
+
exports.validateDOMAttributes = exports.toSnakeCase = exports.toPascalCase = exports.toKebabCase = void 0;
|
|
64
57
|
Object.defineProperty(exports, "warn", {
|
|
65
58
|
enumerable: true,
|
|
66
59
|
get: function () {
|
|
@@ -75,7 +68,6 @@ var _getPreviousSibling = require("./helpers/getPreviousSibling");
|
|
|
75
68
|
var _Eufemia = require("./Eufemia");
|
|
76
69
|
var _InteractionInvalidation = require("./helpers/InteractionInvalidation");
|
|
77
70
|
var _extendPropsWithContext = require("./helpers/extendPropsWithContext");
|
|
78
|
-
var _useEventEmitter = require("./helpers/useEventEmitter");
|
|
79
71
|
var _filterProps = require("./helpers/filterProps");
|
|
80
72
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
81
73
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_useEventEmitter","_filterProps","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","exports","processChildren","global","Array","isArray","registeredElements","cache","reverse","map","_ref2","cb","includes","isFrozen","children","createElement","Fragment","Boolean","onlyTexts","reduce","pV","cV","join","extend","first","_len","objects","_key","keepRef","shift","acc1","acc2","_ref3","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","r","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","getPreviousSibling","convertJsxToString","elements","separator","process","word","React","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len2","_key2","combineAriaBy","combineDescribedBy","_len3","_key3","combineDetails","_len4","_key4","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 { useEventEmitter } from './helpers/useEventEmitter'\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// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...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 = extend(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\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 str\n .toLowerCase()\n .replace(/(?<=(^|\\s))(.)/g, (l) => l.toUpperCase())\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 = (elements, separator = undefined) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\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)\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","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_filterProps","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","exports","processChildren","global","Array","isArray","registeredElements","cache","reverse","map","_ref2","cb","includes","isFrozen","children","createElement","Fragment","Boolean","onlyTexts","reduce","pV","cV","join","extend","first","_len","objects","_key","keepRef","shift","acc1","acc2","_ref3","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","r","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","getPreviousSibling","convertJsxToString","elements","separator","process","word","React","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len2","_key2","combineAriaBy","combineDescribedBy","_len3","_key3","combineDetails","_len4","_key4","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 { 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// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...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 = extend(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\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 str\n .toLowerCase()\n .replace(/(?<=(^|\\s))(.)/g, (l) => l.toUpperCase())\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 = (elements, separator = undefined) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\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)\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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"}
|
|
@@ -13,14 +13,14 @@ function runCssVersionMismatchWarning() {
|
|
|
13
13
|
if (jsVersion === '__VERSION__') {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
|
-
const cssVersion = ((_window$getComputedSt = window.getComputedStyle(document.body).getPropertyValue('--eufemia-version')) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.replace(/["']/g, '')) ||
|
|
16
|
+
const cssVersion = ((_window$getComputedSt = window.getComputedStyle(document.body).getPropertyValue('--eufemia-version')) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.replace(/["']/g, '')) || 'unknown';
|
|
17
17
|
if (cssVersion !== jsVersion) {
|
|
18
18
|
console.error('Eufemia CSS and JS version mismatch!', `\nCSS: ${cssVersion}`, `\nJS: ${jsVersion}`);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
if (document.readyState === 'complete') {
|
|
22
22
|
window.requestAnimationFrame(runCheck);
|
|
23
|
-
} else
|
|
23
|
+
} else {
|
|
24
24
|
window.addEventListener('load', runCheck);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCssVersionMismatchWarning.js","names":["runCssVersionMismatchWarning","document","process","env","NODE_ENV","runCheck","_window$Eufemia","_window$getComputedSt","jsVersion","window","Eufemia","version","cssVersion","getComputedStyle","body","getPropertyValue","replace","console","error","readyState","requestAnimationFrame","addEventListener"],"sources":["../../../../src/shared/helpers/runCssVersionMismatchWarning.ts"],"sourcesContent":["declare global {\n interface Window {\n Eufemia?: {\n version: string\n }\n }\n}\n\nexport function runCssVersionMismatchWarning() {\n try {\n if (\n typeof document !== 'undefined' &&\n process.env.NODE_ENV === 'development'\n ) {\n const runCheck = () => {\n const jsVersion = window.Eufemia?.version\n\n if (jsVersion === '__VERSION__') {\n return\n }\n\n const cssVersion =\n window\n .getComputedStyle(document.body)\n .getPropertyValue('--eufemia-version')\n ?.replace(/[\"']/g, '') ||
|
|
1
|
+
{"version":3,"file":"runCssVersionMismatchWarning.js","names":["runCssVersionMismatchWarning","document","process","env","NODE_ENV","runCheck","_window$Eufemia","_window$getComputedSt","jsVersion","window","Eufemia","version","cssVersion","getComputedStyle","body","getPropertyValue","replace","console","error","readyState","requestAnimationFrame","addEventListener"],"sources":["../../../../src/shared/helpers/runCssVersionMismatchWarning.ts"],"sourcesContent":["declare global {\n interface Window {\n Eufemia?: {\n version: string\n }\n }\n}\n\nexport function runCssVersionMismatchWarning() {\n try {\n if (\n typeof document !== 'undefined' &&\n process.env.NODE_ENV === 'development'\n ) {\n const runCheck = () => {\n const jsVersion = window.Eufemia?.version\n\n if (jsVersion === '__VERSION__') {\n return\n }\n\n const cssVersion =\n window\n .getComputedStyle(document.body)\n .getPropertyValue('--eufemia-version')\n ?.replace(/[\"']/g, '') || 'unknown'\n\n if (cssVersion !== jsVersion) {\n console.error(\n 'Eufemia CSS and JS version mismatch!',\n `\\nCSS: ${cssVersion}`,\n `\\nJS: ${jsVersion}`\n )\n }\n }\n\n if (document.readyState === 'complete') {\n window.requestAnimationFrame(runCheck)\n } else {\n window.addEventListener('load', runCheck)\n }\n }\n } catch (error) {\n console.error(error)\n }\n}\n"],"mappings":";;;;;;AAQO,SAASA,4BAA4BA,CAAA,EAAG;EAC7C,IAAI;IACF,IACE,OAAOC,QAAQ,KAAK,WAAW,IAC/BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EACtC;MACA,MAAMC,QAAQ,GAAGA,CAAA,KAAM;QAAA,IAAAC,eAAA,EAAAC,qBAAA;QACrB,MAAMC,SAAS,IAAAF,eAAA,GAAGG,MAAM,CAACC,OAAO,cAAAJ,eAAA,uBAAdA,eAAA,CAAgBK,OAAO;QAEzC,IAAIH,SAAS,KAAK,aAAa,EAAE;UAC/B;QACF;QAEA,MAAMI,UAAU,GACd,EAAAL,qBAAA,GAAAE,MAAM,CACHI,gBAAgB,CAACZ,QAAQ,CAACa,IAAI,CAAC,CAC/BC,gBAAgB,CAAC,mBAAmB,CAAC,cAAAR,qBAAA,uBAFxCA,qBAAA,CAGIS,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAI,SAAS;QAEvC,IAAIJ,UAAU,KAAKJ,SAAS,EAAE;UAC5BS,OAAO,CAACC,KAAK,CACX,sCAAsC,EACrC,UAASN,UAAW,EAAC,EACrB,SAAQJ,SAAU,EACrB,CAAC;QACH;MACF,CAAC;MAED,IAAIP,QAAQ,CAACkB,UAAU,KAAK,UAAU,EAAE;QACtCV,MAAM,CAACW,qBAAqB,CAACf,QAAQ,CAAC;MACxC,CAAC,MAAM;QACLI,MAAM,CAACY,gBAAgB,CAAC,MAAM,EAAEhB,QAAQ,CAAC;MAC3C;IACF;EACF,CAAC,CAAC,OAAOa,KAAK,EAAE;IACdD,OAAO,CAACC,KAAK,CAACA,KAAK,CAAC;EACtB;AACF"}
|
|
@@ -18,12 +18,14 @@ export declare function useSharedState<Data>(id: SharedStateId, initialData?: Da
|
|
|
18
18
|
sync: (newData: Data) => void;
|
|
19
19
|
};
|
|
20
20
|
type Subscriber = () => void;
|
|
21
|
-
interface
|
|
21
|
+
export interface SharedStateReturn<Data = undefined> {
|
|
22
22
|
data: Data;
|
|
23
23
|
get: () => Data;
|
|
24
24
|
set: (newData: Partial<Data>) => void;
|
|
25
25
|
extend: (newData: Partial<Data>) => void;
|
|
26
26
|
update: (newData: Partial<Data>) => void;
|
|
27
|
+
}
|
|
28
|
+
interface SharedStateInstance<Data> extends SharedStateReturn<Data> {
|
|
27
29
|
subscribe: (subscriber: Subscriber) => void;
|
|
28
30
|
unsubscribe: (subscriber: Subscriber) => void;
|
|
29
31
|
hadInitialData: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSharedState.js","names":["_react","_interopRequireWildcard","require","_useMounted","_interopRequireDefault","_useMountEffect","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useLayoutEffect","window","React","useEffect","useSharedState","id","_sharedState$get","initialData","onChange","forceUpdate","useReducer","hasMounted","useMounted","waitForMountedRef","useRef","forceRerender","useCallback","current","useMountEffect","sharedState","useMemo","createSharedState","sharedAttachment","sync","newData","_sharedAttachment$dat","_sharedAttachment$dat2","data","update","extend","subscribe","unsubscribe","_sharedAttachment$dat3","hadInitialData","sharedStates","subscribers","subscriber","includes","sub","Boolean"],"sources":["../../../../src/shared/helpers/useSharedState.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport useMounted from './useMounted'\nimport useMountEffect from './useMountEffect'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedStateId = string\n\n/**\n * Custom hook that provides shared state functionality.\n *\n * @template Data - The type of data stored in the shared state.\n * @param {SharedStateId} id - The identifier for the shared state.\n * @param {Data} initialData - The initial data for the shared state.\n * @param {Function} onChange - Optional callback function to be called when the shared state is set from another instance/component.\n * @returns {Object} - An object containing the shared state data, update function, extend function, and set function.\n */\nexport function useSharedState<Data>(\n id: SharedStateId,\n initialData: Data = undefined,\n onChange = null\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const hasMounted = useMounted()\n const waitForMountedRef = useRef(false)\n\n const forceRerender = useCallback(() => {\n if (hasMounted.current) {\n forceUpdate()\n } else {\n waitForMountedRef.current = true\n }\n }, [hasMounted])\n\n useMountEffect(() => {\n if (waitForMountedRef.current) {\n forceUpdate()\n }\n })\n\n const sharedState = useMemo(() => {\n if (id) {\n return createSharedState<Data>(id, initialData)\n }\n }, [id, initialData])\n const sharedAttachment = useMemo(() => {\n if (id) {\n return createSharedState(id + '-oc', { onChange })\n }\n }, [id, onChange])\n\n const sync = useCallback(\n (newData: Data) => {\n if (id) {\n sharedAttachment.data?.onChange?.(newData)\n }\n },\n [id, sharedAttachment]\n )\n\n const update = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.update(newData)\n }\n },\n [id, sharedState]\n )\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.set(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n const extend = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.extend(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n useLayoutEffect(() => {\n if (!id) {\n return\n }\n\n sharedState.subscribe(forceRerender)\n\n return () => {\n sharedState.unsubscribe(forceRerender)\n }\n }, [forceRerender, id, onChange, sharedState])\n\n useEffect(() => {\n // Set the onChange function in case it is not set yet\n if (id && onChange && !sharedAttachment.data?.onChange) {\n sharedAttachment.set({ onChange })\n }\n }, [id, onChange, sharedAttachment])\n\n return {\n get: sharedState?.get,\n data: sharedState?.get?.() as Data,\n hadInitialData: sharedState?.hadInitialData,\n update,\n set,\n extend,\n sync,\n }\n}\n\ntype Subscriber = () => void\n\ninterface SharedStateInstance<Data> {\n data: Data\n get: () => Data\n set: (newData: Partial<Data>) => void\n extend: (newData: Partial<Data>) => void\n update: (newData: Partial<Data>) => void\n subscribe: (subscriber: Subscriber) => void\n unsubscribe: (subscriber: Subscriber) => void\n hadInitialData: boolean\n}\n\nconst sharedStates: Record<SharedStateId, SharedStateInstance<any>> = {}\n\n/**\n * Creates a shared state instance with the specified ID and initial data.\n * @template Data The type of data stored in the shared state.\n * @param id The ID of the shared state.\n * @param initialData The initial data for the shared state.\n * @returns The created shared state instance.\n */\nexport function createSharedState<Data>(\n id: SharedStateId,\n initialData?: Data\n): SharedStateInstance<Data> {\n if (!sharedStates[id]) {\n let subscribers: Subscriber[] = []\n\n const get = () => sharedStates[id].data\n\n const set = (newData: Partial<Data>) => {\n sharedStates[id].data = { ...newData }\n }\n\n const update = (newData: Partial<Data>) => {\n set(newData)\n sync()\n }\n\n const extend = (newData: Data) => {\n sharedStates[id].data = { ...sharedStates[id].data, ...newData }\n sync()\n }\n\n const subscribe = (subscriber: Subscriber) => {\n if (!subscribers.includes(subscriber)) {\n subscribers.push(subscriber)\n }\n }\n\n const unsubscribe = (subscriber: Subscriber) => {\n subscribers = subscribers.filter((sub) => sub !== subscriber)\n }\n\n const sync = () => {\n subscribers.forEach((subscriber) => subscriber())\n }\n\n sharedStates[id] = {\n data: undefined,\n get,\n set,\n extend,\n update,\n subscribe,\n unsubscribe,\n hadInitialData: Boolean(initialData),\n } as SharedStateInstance<Data>\n\n if (initialData) {\n extend(initialData)\n }\n } else if (\n sharedStates[id].data === undefined &&\n initialData !== undefined\n ) {\n sharedStates[id].data = { ...initialData }\n }\n\n return sharedStates[id]\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSharedState.js","names":["_react","_interopRequireWildcard","require","_useMounted","_interopRequireDefault","_useMountEffect","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useLayoutEffect","window","React","useEffect","useSharedState","id","_sharedState$get","initialData","onChange","forceUpdate","useReducer","hasMounted","useMounted","waitForMountedRef","useRef","forceRerender","useCallback","current","useMountEffect","sharedState","useMemo","createSharedState","sharedAttachment","sync","newData","_sharedAttachment$dat","_sharedAttachment$dat2","data","update","extend","subscribe","unsubscribe","_sharedAttachment$dat3","hadInitialData","sharedStates","subscribers","subscriber","includes","sub","Boolean"],"sources":["../../../../src/shared/helpers/useSharedState.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport useMounted from './useMounted'\nimport useMountEffect from './useMountEffect'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedStateId = string\n\n/**\n * Custom hook that provides shared state functionality.\n *\n * @template Data - The type of data stored in the shared state.\n * @param {SharedStateId} id - The identifier for the shared state.\n * @param {Data} initialData - The initial data for the shared state.\n * @param {Function} onChange - Optional callback function to be called when the shared state is set from another instance/component.\n * @returns {Object} - An object containing the shared state data, update function, extend function, and set function.\n */\nexport function useSharedState<Data>(\n id: SharedStateId,\n initialData: Data = undefined,\n onChange = null\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const hasMounted = useMounted()\n const waitForMountedRef = useRef(false)\n\n const forceRerender = useCallback(() => {\n if (hasMounted.current) {\n forceUpdate()\n } else {\n waitForMountedRef.current = true\n }\n }, [hasMounted])\n\n useMountEffect(() => {\n if (waitForMountedRef.current) {\n forceUpdate()\n }\n })\n\n const sharedState = useMemo(() => {\n if (id) {\n return createSharedState<Data>(id, initialData)\n }\n }, [id, initialData])\n const sharedAttachment = useMemo(() => {\n if (id) {\n return createSharedState(id + '-oc', { onChange })\n }\n }, [id, onChange])\n\n const sync = useCallback(\n (newData: Data) => {\n if (id) {\n sharedAttachment.data?.onChange?.(newData)\n }\n },\n [id, sharedAttachment]\n )\n\n const update = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.update(newData)\n }\n },\n [id, sharedState]\n )\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.set(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n const extend = useCallback(\n (newData: Data) => {\n if (id) {\n sharedState.extend(newData)\n sync(newData)\n }\n },\n [id, sharedState, sync]\n )\n\n useLayoutEffect(() => {\n if (!id) {\n return\n }\n\n sharedState.subscribe(forceRerender)\n\n return () => {\n sharedState.unsubscribe(forceRerender)\n }\n }, [forceRerender, id, onChange, sharedState])\n\n useEffect(() => {\n // Set the onChange function in case it is not set yet\n if (id && onChange && !sharedAttachment.data?.onChange) {\n sharedAttachment.set({ onChange })\n }\n }, [id, onChange, sharedAttachment])\n\n return {\n get: sharedState?.get,\n data: sharedState?.get?.() as Data,\n hadInitialData: sharedState?.hadInitialData,\n update,\n set,\n extend,\n sync,\n }\n}\n\ntype Subscriber = () => void\n\nexport interface SharedStateReturn<Data = undefined> {\n data: Data\n get: () => Data\n set: (newData: Partial<Data>) => void\n extend: (newData: Partial<Data>) => void\n update: (newData: Partial<Data>) => void\n}\n\ninterface SharedStateInstance<Data> extends SharedStateReturn<Data> {\n subscribe: (subscriber: Subscriber) => void\n unsubscribe: (subscriber: Subscriber) => void\n hadInitialData: boolean\n}\n\nconst sharedStates: Record<SharedStateId, SharedStateInstance<any>> = {}\n\n/**\n * Creates a shared state instance with the specified ID and initial data.\n * @template Data The type of data stored in the shared state.\n * @param id The ID of the shared state.\n * @param initialData The initial data for the shared state.\n * @returns The created shared state instance.\n */\nexport function createSharedState<Data>(\n id: SharedStateId,\n initialData?: Data\n): SharedStateInstance<Data> {\n if (!sharedStates[id]) {\n let subscribers: Subscriber[] = []\n\n const get = () => sharedStates[id].data\n\n const set = (newData: Partial<Data>) => {\n sharedStates[id].data = { ...newData }\n }\n\n const update = (newData: Partial<Data>) => {\n set(newData)\n sync()\n }\n\n const extend = (newData: Data) => {\n sharedStates[id].data = { ...sharedStates[id].data, ...newData }\n sync()\n }\n\n const subscribe = (subscriber: Subscriber) => {\n if (!subscribers.includes(subscriber)) {\n subscribers.push(subscriber)\n }\n }\n\n const unsubscribe = (subscriber: Subscriber) => {\n subscribers = subscribers.filter((sub) => sub !== subscriber)\n }\n\n const sync = () => {\n subscribers.forEach((subscriber) => subscriber())\n }\n\n sharedStates[id] = {\n data: undefined,\n get,\n set,\n extend,\n update,\n subscribe,\n unsubscribe,\n hadInitialData: Boolean(initialData),\n } as SharedStateInstance<Data>\n\n if (initialData) {\n extend(initialData)\n }\n } else if (\n sharedStates[id].data === undefined &&\n initialData !== undefined\n ) {\n sharedStates[id].data = { ...initialData }\n }\n\n return sharedStates[id]\n}\n"],"mappings":"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"}
|