@dnb/eufemia 10.50.0 → 10.51.1
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 +50 -0
- package/cjs/components/accordion/style/dnb-accordion.css +3 -3
- package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/button/Button.d.ts +2 -2
- package/cjs/components/card/style/dnb-card.css +1 -1
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/date-picker/DatePicker.d.ts +13 -4
- package/cjs/components/drawer/style/dnb-drawer.css +3 -3
- package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
- package/cjs/components/dropdown/Dropdown.js +1 -1
- package/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.css +8 -7
- package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/cjs/components/dropdown/style/dnb-dropdown.scss +17 -17
- package/cjs/components/form-row/style/dnb-form-row.css +1 -1
- package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
- package/cjs/components/form-status/FormStatus.d.ts +1 -1
- package/cjs/components/grid/style/dnb-grid.css +6 -6
- package/cjs/components/grid/style/dnb-grid.min.css +1 -1
- package/cjs/components/icon/Icon.d.ts +1 -1
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/input-masked/InputMasked.d.ts +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
- package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/cjs/components/number-format/NumberFormat.d.ts +14 -28
- package/cjs/components/number-format/NumberFormat.js +6 -2
- package/cjs/components/number-format/NumberFormat.js.map +1 -1
- package/cjs/components/number-format/NumberFormatDocs.d.ts +3 -0
- package/cjs/components/number-format/NumberFormatDocs.js +161 -0
- package/cjs/components/number-format/NumberFormatDocs.js.map +1 -0
- package/cjs/components/number-format/NumberUtils.d.ts +21 -1
- package/cjs/components/number-format/NumberUtils.js +33 -8
- package/cjs/components/number-format/NumberUtils.js.map +1 -1
- package/cjs/components/pagination/Pagination.d.ts +1 -1
- package/cjs/components/section/style/dnb-section.css +2 -2
- package/cjs/components/section/style/dnb-section.min.css +2 -2
- package/cjs/components/space/style/dnb-space.css +2 -2
- package/cjs/components/space/style/dnb-space.min.css +1 -1
- package/cjs/components/switch/Switch.d.ts +100 -91
- package/cjs/components/switch/Switch.js +167 -239
- package/cjs/components/switch/Switch.js.map +1 -1
- package/cjs/components/switch/SwitchDocs.d.ts +3 -0
- package/cjs/components/switch/SwitchDocs.js +93 -0
- package/cjs/components/switch/SwitchDocs.js.map +1 -0
- package/cjs/components/tabs/style/dnb-tabs.css +1 -0
- package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
- package/cjs/components/tabs/style/dnb-tabs.scss +1 -0
- package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/cjs/extensions/forms/DataContext/At/At.js +1 -1
- package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +20 -9
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +105 -60
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/cjs/extensions/forms/Field/Date/Date.d.ts +6 -0
- package/cjs/extensions/forms/Field/Date/Date.js +20 -4
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/{extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → cjs/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
- package/cjs/extensions/forms/Field/Date/DateDocs.js +20 -0
- package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/{es/extensions/forms/Form/FieldProps/FieldProps.d.ts → cjs/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
- package/cjs/extensions/forms/Field/Provider/FieldProvider.js +33 -0
- package/cjs/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
- package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.d.ts → Field/Provider/FieldProviderContext.d.ts} +3 -3
- package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.js → Field/Provider/FieldProviderContext.js} +3 -3
- package/cjs/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
- package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
- package/cjs/extensions/forms/{Form/FieldProps/FieldPropsDocs.js → Field/Provider/FieldProviderDocs.js} +4 -4
- package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
- package/cjs/extensions/forms/Field/Provider/index.d.ts +2 -0
- package/cjs/extensions/forms/{Form/FieldProps → Field/Provider}/index.js +5 -5
- package/cjs/extensions/forms/Field/Provider/index.js.map +1 -0
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
- package/cjs/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -34
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
- 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 +12 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/Element/Element.js +4 -4
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/cjs/extensions/forms/Form/Section/Section.d.ts +2 -1
- package/cjs/extensions/forms/Form/Section/Section.js +2 -2
- package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +153 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +30 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/index.js +27 -0
- package/cjs/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +3 -3
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -2
- package/cjs/extensions/forms/Form/data-context/useData.js +13 -15
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/{es/extensions/forms/Form/data-context/useError.d.ts → cjs/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js +60 -0
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +13 -2
- package/cjs/extensions/forms/Form/index.js +19 -9
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js +4 -12
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Count/Count.js +1 -1
- package/cjs/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
- package/cjs/extensions/forms/Tools/GenerateSchema.js +1 -1
- package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -1
- package/cjs/extensions/forms/Tools/ListAllProps.d.ts +1 -1
- package/cjs/extensions/forms/Tools/ListAllProps.js +1 -1
- package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
- package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js +28 -0
- package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/Date/Date.js +25 -16
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/NumberDocs.js +9 -2
- package/cjs/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
- package/cjs/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
- package/cjs/extensions/forms/Value/Provider/ValueProvider.js +27 -0
- package/cjs/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js +15 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js +23 -0
- package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/Provider/index.d.ts +2 -0
- package/cjs/extensions/forms/Value/Provider/index.js +27 -0
- package/cjs/extensions/forms/Value/Provider/index.js.map +1 -0
- package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
- package/cjs/extensions/forms/Value/Provider/useValueProvider.js +50 -0
- package/cjs/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
- package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +37 -0
- package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
- package/cjs/extensions/forms/Value/index.d.ts +3 -2
- package/cjs/extensions/forms/Value/index.js +9 -2
- package/cjs/extensions/forms/Value/index.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
- package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useExternalValue.js +1 -1
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +111 -56
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/usePath.js +7 -4
- package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +7 -2
- package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +10 -21
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +7 -3
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.d.ts +2 -1
- package/cjs/extensions/forms/utils/ajv.js +1 -1
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/index.d.ts +1 -0
- package/cjs/extensions/forms/utils/index.js +12 -0
- package/cjs/extensions/forms/utils/index.js.map +1 -1
- package/cjs/extensions/forms/utils/json-pointer/export.d.ts +1 -0
- package/cjs/extensions/forms/utils/json-pointer/export.js +17 -0
- package/cjs/extensions/forms/utils/json-pointer/export.js.map +1 -0
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +139 -0
- package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
- package/cjs/extensions/forms/utils/json-pointer.d.ts +3 -0
- package/cjs/extensions/forms/utils/json-pointer.js +24 -0
- package/cjs/extensions/forms/utils/json-pointer.js.map +1 -0
- package/cjs/shared/Context.d.ts +2 -0
- package/cjs/shared/Context.js +1 -1
- 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/MediaQueryUtils.d.ts +0 -1
- package/cjs/shared/MediaQueryUtils.js +17 -14
- package/cjs/shared/MediaQueryUtils.js.map +1 -1
- package/cjs/shared/helpers/extendPropsWithContext.js +3 -3
- package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
- package/cjs/shared/helpers/withSnakeCaseProps.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/core/utilities.scss +10 -5
- 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 +42 -51
- package/cjs/style/dnb-ui-components.min.css +5 -5
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +1 -1
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +10 -21
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +10 -21
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-forms.scss +0 -1
- package/cjs/style/dnb-ui-fragments.css +2 -2
- package/cjs/style/dnb-ui-fragments.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +53 -73
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +10 -21
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +10 -21
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/accordion/style/dnb-accordion.css +3 -3
- package/components/accordion/style/dnb-accordion.min.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/button/Button.d.ts +2 -2
- package/components/card/style/dnb-card.css +1 -1
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/date-picker/DatePicker.d.ts +13 -4
- package/components/drawer/style/dnb-drawer.css +3 -3
- package/components/drawer/style/dnb-drawer.min.css +1 -1
- package/components/dropdown/Dropdown.js +1 -1
- package/components/dropdown/Dropdown.js.map +1 -1
- package/components/dropdown/style/dnb-dropdown.css +8 -7
- package/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/components/dropdown/style/dnb-dropdown.scss +17 -17
- package/components/form-row/style/dnb-form-row.css +1 -1
- package/components/form-row/style/dnb-form-row.min.css +1 -1
- package/components/form-status/FormStatus.d.ts +1 -1
- package/components/grid/style/dnb-grid.css +6 -6
- package/components/grid/style/dnb-grid.min.css +1 -1
- package/components/icon/Icon.d.ts +1 -1
- package/components/icon/Icon.js.map +1 -1
- package/components/input-masked/InputMasked.d.ts +1 -1
- package/components/input-masked/InputMaskedDocs.js +1 -1
- package/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/components/number-format/NumberFormat.d.ts +14 -28
- package/components/number-format/NumberFormat.js +6 -2
- package/components/number-format/NumberFormat.js.map +1 -1
- package/components/number-format/NumberFormatDocs.d.ts +3 -0
- package/components/number-format/NumberFormatDocs.js +153 -0
- package/components/number-format/NumberFormatDocs.js.map +1 -0
- package/components/number-format/NumberUtils.d.ts +21 -1
- package/components/number-format/NumberUtils.js +32 -8
- package/components/number-format/NumberUtils.js.map +1 -1
- package/components/pagination/Pagination.d.ts +1 -1
- package/components/section/style/dnb-section.css +2 -2
- package/components/section/style/dnb-section.min.css +2 -2
- package/components/space/style/dnb-space.css +2 -2
- package/components/space/style/dnb-space.min.css +1 -1
- package/components/switch/Switch.d.ts +100 -91
- package/components/switch/Switch.js +165 -238
- package/components/switch/Switch.js.map +1 -1
- package/components/switch/SwitchDocs.d.ts +3 -0
- package/components/switch/SwitchDocs.js +85 -0
- package/components/switch/SwitchDocs.js.map +1 -0
- package/components/tabs/style/dnb-tabs.css +1 -0
- package/components/tabs/style/dnb-tabs.min.css +1 -1
- package/components/tabs/style/dnb-tabs.scss +1 -0
- package/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/components/accordion/style/dnb-accordion.css +3 -3
- package/es/components/accordion/style/dnb-accordion.min.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
- package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/button/Button.d.ts +2 -2
- package/es/components/card/style/dnb-card.css +1 -1
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/date-picker/DatePicker.d.ts +13 -4
- package/es/components/drawer/style/dnb-drawer.css +3 -3
- package/es/components/drawer/style/dnb-drawer.min.css +1 -1
- package/es/components/dropdown/Dropdown.js +1 -1
- package/es/components/dropdown/Dropdown.js.map +1 -1
- package/es/components/dropdown/style/dnb-dropdown.css +8 -7
- package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
- package/es/components/dropdown/style/dnb-dropdown.scss +17 -17
- package/es/components/form-row/style/dnb-form-row.css +1 -1
- package/es/components/form-row/style/dnb-form-row.min.css +1 -1
- package/es/components/form-status/FormStatus.d.ts +1 -1
- package/es/components/grid/style/dnb-grid.css +6 -6
- package/es/components/grid/style/dnb-grid.min.css +1 -1
- package/es/components/icon/Icon.d.ts +1 -1
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/input-masked/InputMasked.d.ts +1 -1
- package/es/components/input-masked/InputMaskedDocs.js +1 -1
- package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
- package/es/components/number-format/NumberFormat.d.ts +14 -28
- package/es/components/number-format/NumberFormat.js +6 -2
- package/es/components/number-format/NumberFormat.js.map +1 -1
- package/es/components/number-format/NumberFormatDocs.d.ts +3 -0
- package/es/components/number-format/NumberFormatDocs.js +150 -0
- package/es/components/number-format/NumberFormatDocs.js.map +1 -0
- package/es/components/number-format/NumberUtils.d.ts +21 -1
- package/es/components/number-format/NumberUtils.js +31 -7
- package/es/components/number-format/NumberUtils.js.map +1 -1
- package/es/components/pagination/Pagination.d.ts +1 -1
- package/es/components/section/style/dnb-section.css +2 -2
- package/es/components/section/style/dnb-section.min.css +2 -2
- package/es/components/space/style/dnb-space.css +2 -2
- package/es/components/space/style/dnb-space.min.css +1 -1
- package/es/components/switch/Switch.d.ts +100 -91
- package/es/components/switch/Switch.js +164 -238
- package/es/components/switch/Switch.js.map +1 -1
- package/es/components/switch/SwitchDocs.d.ts +3 -0
- package/es/components/switch/SwitchDocs.js +85 -0
- package/es/components/switch/SwitchDocs.js.map +1 -0
- package/es/components/tabs/style/dnb-tabs.css +1 -0
- package/es/components/tabs/style/dnb-tabs.min.css +1 -1
- package/es/components/tabs/style/dnb-tabs.scss +1 -0
- package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/extensions/forms/DataContext/At/At.js +1 -1
- package/es/extensions/forms/DataContext/At/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +20 -9
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +100 -58
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/es/extensions/forms/Field/Date/Date.d.ts +6 -0
- package/es/extensions/forms/Field/Date/Date.js +20 -4
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/{cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → es/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
- package/es/extensions/forms/Field/Date/DateDocs.js +13 -0
- package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -0
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/{extensions/forms/Form/FieldProps/FieldProps.d.ts → es/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
- package/es/extensions/forms/Field/Provider/FieldProvider.js +24 -0
- package/es/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
- package/{extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → es/extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
- package/es/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
- package/es/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
- package/es/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
- package/{extensions/forms/Form/FieldProps/FieldPropsDocs.js → es/extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
- package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
- package/es/extensions/forms/Field/Provider/index.d.ts +2 -0
- package/es/extensions/forms/Field/Provider/index.js +3 -0
- package/es/extensions/forms/Field/Provider/index.js.map +1 -0
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
- package/es/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
- package/es/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
- 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 +12 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/Element/Element.js +4 -4
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
- package/es/extensions/forms/Form/Isolation/Isolation.js +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/es/extensions/forms/Form/Section/Section.d.ts +2 -1
- package/es/extensions/forms/Form/Section/Section.js +1 -1
- package/es/extensions/forms/Form/Section/Section.js.map +1 -1
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +140 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
- package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
- package/es/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
- package/es/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
- package/es/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.js +3 -3
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
- package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/getData.js +1 -1
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.d.ts +3 -2
- package/es/extensions/forms/Form/data-context/useData.js +13 -15
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/{extensions/forms/Form/data-context/useError.d.ts → es/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
- package/es/extensions/forms/Form/data-context/useValidation.js +52 -0
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +13 -2
- package/es/extensions/forms/Form/index.js +5 -2
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.js +4 -12
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/Iterate/Count/Count.js +1 -1
- package/es/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
- package/es/extensions/forms/Tools/GenerateSchema.js +1 -1
- package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -1
- package/es/extensions/forms/Tools/ListAllProps.d.ts +1 -1
- package/es/extensions/forms/Tools/ListAllProps.js +1 -1
- package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
- package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
- package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/es/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
- package/es/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
- package/es/extensions/forms/Value/Date/Date.js +25 -16
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Number/NumberDocs.js +7 -2
- package/es/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
- package/es/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
- package/es/extensions/forms/Value/Provider/ValueProvider.js +18 -0
- package/es/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
- package/es/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
- package/es/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
- package/es/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
- package/es/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
- package/es/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
- package/es/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
- package/es/extensions/forms/Value/Provider/index.d.ts +2 -0
- package/es/extensions/forms/Value/Provider/index.js +3 -0
- package/es/extensions/forms/Value/Provider/index.js.map +1 -0
- package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
- package/es/extensions/forms/Value/Provider/useValueProvider.js +40 -0
- package/es/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
- package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
- package/es/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
- package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
- package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
- package/es/extensions/forms/Value/index.d.ts +3 -2
- package/es/extensions/forms/Value/index.js +3 -2
- package/es/extensions/forms/Value/index.js.map +1 -1
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +2 -2
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
- package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +1 -1
- package/es/extensions/forms/hooks/useDataValue.js +1 -1
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useExternalValue.js +1 -1
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/es/extensions/forms/hooks/useFieldProps.js +111 -56
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/usePath.js +7 -4
- package/es/extensions/forms/hooks/usePath.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +7 -2
- package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +10 -21
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +7 -3
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.d.ts +2 -1
- package/es/extensions/forms/utils/ajv.js +1 -1
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/index.d.ts +1 -0
- package/es/extensions/forms/utils/index.js +1 -0
- package/es/extensions/forms/utils/index.js.map +1 -1
- package/es/extensions/forms/utils/json-pointer/export.d.ts +1 -0
- package/es/extensions/forms/utils/json-pointer/export.js +1 -0
- package/es/extensions/forms/utils/json-pointer/export.js.map +1 -0
- package/es/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
- package/es/extensions/forms/utils/json-pointer/json-pointer.js +122 -0
- package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
- package/es/extensions/forms/utils/json-pointer.d.ts +3 -0
- package/es/extensions/forms/utils/json-pointer.js +4 -0
- package/es/extensions/forms/utils/json-pointer.js.map +1 -0
- package/es/shared/Context.d.ts +2 -0
- package/es/shared/Context.js +1 -1
- 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/MediaQueryUtils.d.ts +0 -1
- package/es/shared/MediaQueryUtils.js +17 -14
- package/es/shared/MediaQueryUtils.js.map +1 -1
- package/es/shared/helpers/extendPropsWithContext.js +3 -3
- package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
- package/es/shared/helpers/withSnakeCaseProps.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/core/utilities.scss +10 -5
- 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 +42 -51
- package/es/style/dnb-ui-components.min.css +5 -5
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +1 -1
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +10 -21
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +10 -21
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-forms.scss +0 -1
- package/es/style/dnb-ui-fragments.css +2 -2
- package/es/style/dnb-ui-fragments.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +53 -73
- package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.css +10 -21
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +10 -21
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/At/At.js +1 -1
- package/extensions/forms/DataContext/At/At.js.map +1 -1
- package/extensions/forms/DataContext/Context.d.ts +20 -9
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +104 -59
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
- package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
- package/extensions/forms/Field/Date/Date.d.ts +6 -0
- package/extensions/forms/Field/Date/Date.js +20 -4
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
- package/extensions/forms/Field/Date/DateDocs.js +13 -0
- package/extensions/forms/Field/Date/DateDocs.js.map +1 -0
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/{cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts → extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
- package/extensions/forms/Field/Provider/FieldProvider.js +24 -0
- package/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
- package/{es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
- package/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
- package/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
- package/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
- package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.js → extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
- package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
- package/extensions/forms/Field/Provider/index.d.ts +2 -0
- package/extensions/forms/Field/Provider/index.js +3 -0
- package/extensions/forms/Field/Provider/index.js.map +1 -0
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
- package/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
- package/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
- 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 +12 -1
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/Element/Element.js +4 -4
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
- package/extensions/forms/Form/Isolation/Isolation.js +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
- package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
- package/extensions/forms/Form/Section/Section.d.ts +2 -1
- package/extensions/forms/Form/Section/Section.js +1 -1
- package/extensions/forms/Form/Section/Section.js.map +1 -1
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +142 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
- package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
- package/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
- package/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
- package/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
- package/extensions/forms/Form/Visibility/Visibility.js +3 -3
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
- package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Form/data-context/getData.js +1 -1
- package/extensions/forms/Form/data-context/getData.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.d.ts +3 -2
- package/extensions/forms/Form/data-context/useData.js +13 -15
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/{cjs/extensions/forms/Form/data-context/useError.d.ts → extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
- package/extensions/forms/Form/data-context/useValidation.js +54 -0
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +13 -2
- package/extensions/forms/Form/index.js +5 -2
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.js +4 -12
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/Iterate/Count/Count.js +1 -1
- package/extensions/forms/Iterate/Count/Count.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
- package/extensions/forms/Tools/GenerateSchema.js +1 -1
- package/extensions/forms/Tools/GenerateSchema.js.map +1 -1
- package/extensions/forms/Tools/ListAllProps.d.ts +1 -1
- package/extensions/forms/Tools/ListAllProps.js +1 -1
- package/extensions/forms/Tools/ListAllProps.js.map +1 -1
- package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
- package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
- package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
- package/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
- package/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
- package/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
- package/extensions/forms/Value/Date/Date.js +25 -16
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Number/NumberDocs.js +7 -2
- package/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
- package/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
- package/extensions/forms/Value/Provider/ValueProvider.js +18 -0
- package/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
- package/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
- package/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
- package/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
- package/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
- package/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
- package/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
- package/extensions/forms/Value/Provider/index.d.ts +2 -0
- package/extensions/forms/Value/Provider/index.js +3 -0
- package/extensions/forms/Value/Provider/index.js.map +1 -0
- package/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
- package/extensions/forms/Value/Provider/useValueProvider.js +40 -0
- package/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
- package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
- package/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
- package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
- package/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
- package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
- package/extensions/forms/Value/index.d.ts +3 -2
- package/extensions/forms/Value/index.js +3 -2
- package/extensions/forms/Value/index.js.map +1 -1
- package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
- package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.js +2 -2
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
- package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +1 -1
- package/extensions/forms/hooks/useDataValue.js +1 -1
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useExternalValue.js +1 -1
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
- package/extensions/forms/hooks/useFieldProps.js +111 -56
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/usePath.js +7 -4
- package/extensions/forms/hooks/usePath.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.d.ts +1 -1
- package/extensions/forms/hooks/useValueProps.js +7 -2
- package/extensions/forms/hooks/useValueProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +10 -21
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +7 -3
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.d.ts +2 -1
- package/extensions/forms/utils/ajv.js +1 -1
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/index.d.ts +1 -0
- package/extensions/forms/utils/index.js +1 -0
- package/extensions/forms/utils/index.js.map +1 -1
- package/extensions/forms/utils/json-pointer/export.d.ts +1 -0
- package/extensions/forms/utils/json-pointer/export.js +1 -0
- package/extensions/forms/utils/json-pointer/export.js.map +1 -0
- package/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
- package/extensions/forms/utils/json-pointer/json-pointer.js +124 -0
- package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
- package/extensions/forms/utils/json-pointer.d.ts +3 -0
- package/extensions/forms/utils/json-pointer.js +4 -0
- package/extensions/forms/utils/json-pointer.js.map +1 -0
- package/package.json +1 -2
- package/shared/Context.d.ts +2 -0
- package/shared/Context.js +1 -1
- 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/MediaQueryUtils.d.ts +0 -1
- package/shared/MediaQueryUtils.js +17 -14
- package/shared/MediaQueryUtils.js.map +1 -1
- package/shared/helpers/extendPropsWithContext.js +3 -3
- package/shared/helpers/extendPropsWithContext.js.map +1 -1
- package/shared/helpers/withSnakeCaseProps.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/core/utilities.scss +10 -5
- 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 +42 -51
- package/style/dnb-ui-components.min.css +5 -5
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +1 -1
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/dnb-ui-extensions.css +10 -21
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +10 -21
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-forms.scss +0 -1
- package/style/dnb-ui-fragments.css +2 -2
- package/style/dnb-ui-fragments.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +53 -73
- package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
- package/style/themes/theme-ui/ui-theme-elements.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.css +10 -21
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +10 -21
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
- package/cjs/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
- package/cjs/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
- package/cjs/extensions/forms/Form/FieldProps/index.d.ts +0 -2
- package/cjs/extensions/forms/Form/FieldProps/index.js.map +0 -1
- package/cjs/extensions/forms/Form/data-context/useError.js +0 -33
- package/cjs/extensions/forms/Form/data-context/useError.js.map +0 -1
- package/es/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
- package/es/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
- package/es/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
- package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
- package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
- package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
- package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
- package/es/extensions/forms/Form/FieldProps/index.d.ts +0 -2
- package/es/extensions/forms/Form/FieldProps/index.js +0 -3
- package/es/extensions/forms/Form/FieldProps/index.js.map +0 -1
- package/es/extensions/forms/Form/data-context/useError.js +0 -26
- package/es/extensions/forms/Form/data-context/useError.js.map +0 -1
- package/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
- package/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
- package/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
- package/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
- package/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
- package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
- package/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
- package/extensions/forms/Form/FieldProps/index.d.ts +0 -2
- package/extensions/forms/Form/FieldProps/index.js +0 -3
- package/extensions/forms/Form/FieldProps/index.js.map +0 -1
- package/extensions/forms/Form/data-context/useError.js +0 -27
- package/extensions/forms/Form/data-context/useError.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export function get(obj, pointer) {
|
|
2
|
+
const refTokens = Array.isArray(pointer) ? pointer : parse(pointer);
|
|
3
|
+
for (let i = 0; i < refTokens.length; ++i) {
|
|
4
|
+
const tok = refTokens[i];
|
|
5
|
+
if (!(typeof obj == 'object' && tok in obj)) {
|
|
6
|
+
throw new Error('Invalid reference token: ' + tok);
|
|
7
|
+
}
|
|
8
|
+
obj = obj[tok];
|
|
9
|
+
}
|
|
10
|
+
return obj;
|
|
11
|
+
}
|
|
12
|
+
export function set(obj, pointer, value) {
|
|
13
|
+
const refTokens = Array.isArray(pointer) ? pointer : parse(pointer);
|
|
14
|
+
let nextTok = refTokens[0];
|
|
15
|
+
if (refTokens.length === 0) {
|
|
16
|
+
throw Error('Can not set the root object');
|
|
17
|
+
}
|
|
18
|
+
for (let i = 0; i < refTokens.length - 1; ++i) {
|
|
19
|
+
let tok = refTokens[i];
|
|
20
|
+
if (typeof tok !== 'string' && typeof tok !== 'number') {
|
|
21
|
+
tok = String(tok);
|
|
22
|
+
}
|
|
23
|
+
if (tok === '__proto__' || tok === 'constructor' || tok === 'prototype') {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (tok === '-' && Array.isArray(obj)) {
|
|
27
|
+
tok = obj.length;
|
|
28
|
+
}
|
|
29
|
+
nextTok = refTokens[i + 1];
|
|
30
|
+
if (!(tok in obj)) {
|
|
31
|
+
if (nextTok.match(/^(\d+|-)$/)) {
|
|
32
|
+
obj[tok] = [];
|
|
33
|
+
} else {
|
|
34
|
+
obj[tok] = {};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
obj = obj[tok];
|
|
38
|
+
}
|
|
39
|
+
if (nextTok === '-' && Array.isArray(obj)) {
|
|
40
|
+
nextTok = obj.length;
|
|
41
|
+
}
|
|
42
|
+
obj[nextTok] = value;
|
|
43
|
+
}
|
|
44
|
+
export function remove(obj, pointer) {
|
|
45
|
+
const refTokens = Array.isArray(pointer) ? pointer : parse(pointer);
|
|
46
|
+
const finalToken = refTokens[refTokens.length - 1];
|
|
47
|
+
if (finalToken === undefined) {
|
|
48
|
+
throw new Error('Invalid JSON pointer for remove: "' + pointer + '"');
|
|
49
|
+
}
|
|
50
|
+
const parent = get(obj, refTokens.slice(0, -1));
|
|
51
|
+
if (Array.isArray(parent)) {
|
|
52
|
+
const index = +finalToken;
|
|
53
|
+
if (finalToken === '' && isNaN(index)) {
|
|
54
|
+
throw new Error('Invalid array index: "' + finalToken + '"');
|
|
55
|
+
}
|
|
56
|
+
Array.prototype.splice.call(parent, index, 1);
|
|
57
|
+
} else {
|
|
58
|
+
delete parent[finalToken];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function dict(obj, descend = null) {
|
|
62
|
+
const results = {};
|
|
63
|
+
walk(obj, function (value, pointer) {
|
|
64
|
+
results[pointer] = value;
|
|
65
|
+
}, descend);
|
|
66
|
+
return results;
|
|
67
|
+
}
|
|
68
|
+
export function walk(obj, iterator, descend = null) {
|
|
69
|
+
const refTokens = [];
|
|
70
|
+
descend = descend || function (value) {
|
|
71
|
+
const type = Object.prototype.toString.call(value);
|
|
72
|
+
return type === '[object Object]' || type === '[object Array]';
|
|
73
|
+
};
|
|
74
|
+
function next(cur) {
|
|
75
|
+
if (Array.isArray(cur)) {
|
|
76
|
+
cur = cur.reduce((acc, cur, i) => {
|
|
77
|
+
acc[i] = cur;
|
|
78
|
+
return acc;
|
|
79
|
+
}, {});
|
|
80
|
+
}
|
|
81
|
+
Object.keys(cur).forEach(key => {
|
|
82
|
+
refTokens.push(String(key));
|
|
83
|
+
if (descend(cur[key])) {
|
|
84
|
+
next(cur[key]);
|
|
85
|
+
} else {
|
|
86
|
+
iterator(cur[key], compile(refTokens));
|
|
87
|
+
}
|
|
88
|
+
refTokens.pop();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
next(obj);
|
|
92
|
+
}
|
|
93
|
+
export function has(obj, pointer) {
|
|
94
|
+
try {
|
|
95
|
+
get(obj, pointer);
|
|
96
|
+
} catch (e) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
export function escape(str) {
|
|
102
|
+
return str.toString().replace(/~/g, '~0').replace(/\//g, '~1');
|
|
103
|
+
}
|
|
104
|
+
export function unescape(str) {
|
|
105
|
+
return str.replace(/~1/g, '/').replace(/~0/g, '~');
|
|
106
|
+
}
|
|
107
|
+
export function parse(pointer) {
|
|
108
|
+
if (pointer === '') {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
if (pointer.charAt(0) !== '/') {
|
|
112
|
+
throw new Error('Invalid JSON pointer: ' + pointer);
|
|
113
|
+
}
|
|
114
|
+
return pointer.substring(1).split(/\//).map(unescape);
|
|
115
|
+
}
|
|
116
|
+
export function compile(refTokens) {
|
|
117
|
+
if (refTokens.length === 0) {
|
|
118
|
+
return '';
|
|
119
|
+
}
|
|
120
|
+
return '/' + refTokens.map(escape).join('/');
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=json-pointer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-pointer.js","names":["get","obj","pointer","refTokens","Array","isArray","parse","i","length","tok","Error","set","value","nextTok","String","match","remove","finalToken","undefined","parent","slice","index","isNaN","prototype","splice","call","dict","descend","results","walk","iterator","type","Object","toString","next","cur","reduce","acc","keys","forEach","key","push","compile","pop","has","e","escape","str","replace","unescape","charAt","substring","split","map","join"],"sources":["../../../../../../src/extensions/forms/utils/json-pointer/json-pointer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type PointerPath = string | Array<string>\nexport type JsonValue = any\nexport type JsonObject = any\n\n/**\n * Lookup a json pointer in an object\n */\nexport function get<T = JsonObject>(obj: T, pointer: PointerPath) {\n const refTokens = Array.isArray(pointer) ? pointer : parse(pointer)\n\n for (let i = 0; i < refTokens.length; ++i) {\n const tok = refTokens[i]\n if (!(typeof obj == 'object' && tok in obj)) {\n throw new Error('Invalid reference token: ' + tok)\n }\n obj = obj[tok] as T\n }\n\n return obj as T\n}\n\n/**\n * Sets a value on an object\n */\nexport function set<T = JsonObject>(\n obj: T,\n pointer: PointerPath,\n value: JsonValue\n) {\n const refTokens = (\n Array.isArray(pointer) ? pointer : parse(pointer)\n ) as Array<number | string>\n let nextTok = refTokens[0]\n\n if (refTokens.length === 0) {\n throw Error('Can not set the root object')\n }\n\n for (let i = 0; i < refTokens.length - 1; ++i) {\n let tok = refTokens[i]\n if (typeof tok !== 'string' && typeof tok !== 'number') {\n tok = String(tok)\n }\n if (\n tok === '__proto__' ||\n tok === 'constructor' ||\n tok === 'prototype'\n ) {\n continue\n }\n if (tok === '-' && Array.isArray(obj)) {\n tok = obj.length\n }\n nextTok = refTokens[i + 1] as string\n\n if (!(tok in (obj as JsonObject))) {\n if (nextTok.match(/^(\\d+|-)$/)) {\n obj[tok] = []\n } else {\n obj[tok] = {}\n }\n }\n obj = obj[tok] as T\n }\n\n if (nextTok === '-' && Array.isArray(obj)) {\n nextTok = obj.length\n }\n\n obj[nextTok] = value\n}\n\n/**\n * Removes an attribute\n */\nexport function remove<T = JsonObject>(obj: T, pointer: PointerPath) {\n const refTokens = Array.isArray(pointer) ? pointer : parse(pointer)\n const finalToken = refTokens[refTokens.length - 1]\n if (finalToken === undefined) {\n throw new Error('Invalid JSON pointer for remove: \"' + pointer + '\"')\n }\n\n const parent = get(obj, refTokens.slice(0, -1))\n if (Array.isArray(parent)) {\n const index = +finalToken\n if (finalToken === '' && isNaN(index)) {\n throw new Error('Invalid array index: \"' + finalToken + '\"')\n }\n\n Array.prototype.splice.call(parent, index, 1)\n } else {\n delete parent[finalToken]\n }\n}\n\n/**\n * Returns a (pointer -> value) dictionary for an object\n */\nexport function dict<T = JsonObject>(obj: T, descend = null) {\n const results = {}\n walk(\n obj,\n function (value, pointer: string) {\n results[pointer] = value\n },\n descend\n )\n return results\n}\n\n/**\n * Iterates over an object\n */\nexport function walk<T = JsonObject>(obj: T, iterator, descend = null) {\n const refTokens = []\n\n descend =\n descend ||\n function (value) {\n const type = Object.prototype.toString.call(value)\n return type === '[object Object]' || type === '[object Array]'\n }\n\n function next(cur) {\n if (Array.isArray(cur)) {\n cur = cur.reduce((acc, cur, i) => {\n acc[i] = cur\n return acc\n }, {})\n }\n\n Object.keys(cur).forEach((key) => {\n refTokens.push(String(key))\n if (descend(cur[key])) {\n next(cur[key])\n } else {\n iterator(cur[key], compile(refTokens))\n }\n refTokens.pop()\n })\n }\n\n next(obj)\n}\n\n/**\n * Tests if an object has a value for a json pointer\n */\nexport function has<T = JsonObject>(obj: T, pointer: PointerPath) {\n try {\n get<T>(obj, pointer)\n } catch (e) {\n return false\n }\n return true\n}\n\n/**\n * Escapes a reference token\n */\nexport function escape(str: string) {\n return str.toString().replace(/~/g, '~0').replace(/\\//g, '~1')\n}\n\n/**\n * Unescape a reference token\n */\nexport function unescape(str: string) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~')\n}\n\n/**\n * Converts a json pointer into a array of reference tokens\n */\nexport function parse(pointer: Extract<PointerPath, string>): PointerPath {\n if (pointer === '') {\n return []\n }\n if (pointer.charAt(0) !== '/') {\n throw new Error('Invalid JSON pointer: ' + pointer)\n }\n return pointer.substring(1).split(/\\//).map(unescape)\n}\n\n/**\n * Builds a json pointer from a array of reference tokens\n */\nexport function compile(refTokens: Extract<PointerPath, Array<string>>) {\n if (refTokens.length === 0) {\n return ''\n }\n return '/' + refTokens.map(escape).join('/')\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-pointer.js","names":["_default","default"],"sources":["../../../../../src/extensions/forms/utils/json-pointer.ts"],"sourcesContent":["export * from './json-pointer/json-pointer'\n\n// For TypeScript compatibility we import and export it this way\nimport * as _default from './json-pointer/export'\nexport { _default as default }\n"],"mappings":"AAAA,cAAc,6BAA6B;AAG3C,OAAO,KAAKA,QAAQ,MAAM,uBAAuB;AACjD,SAASA,QAAQ,IAAIC,OAAO"}
|
package/es/shared/Context.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ import type { FormStatusProps } from '../components/FormStatus';
|
|
|
41
41
|
import type { LogoProps } from '../components/Logo';
|
|
42
42
|
import type { IconProps } from '../components/Icon';
|
|
43
43
|
import type { IconPrimaryProps } from '../components/IconPrimary';
|
|
44
|
+
import { SwitchProps } from '../components/Switch';
|
|
44
45
|
import type { FormElementProps } from './helpers/filterValidProps';
|
|
45
46
|
import type { ThemeProps } from './Theme';
|
|
46
47
|
import type { FormsTranslation } from '../extensions/forms/hooks/useTranslation';
|
|
@@ -81,6 +82,7 @@ export type ContextComponents = {
|
|
|
81
82
|
Logo?: Partial<LogoProps>;
|
|
82
83
|
Icon?: Partial<IconProps>;
|
|
83
84
|
IconPrimary?: Partial<IconPrimaryProps>;
|
|
85
|
+
Switch?: Partial<SwitchProps>;
|
|
84
86
|
NumberFormat?: Record<string, unknown>;
|
|
85
87
|
Pagination?: Record<string, unknown>;
|
|
86
88
|
/**
|
package/es/shared/Context.js
CHANGED
|
@@ -7,7 +7,7 @@ import { createContext } from 'react';
|
|
|
7
7
|
import { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults';
|
|
8
8
|
import defaultLocales from './locales';
|
|
9
9
|
import { extendDeep } from './component-helper';
|
|
10
|
-
import pointer from 'json-pointer';
|
|
10
|
+
import pointer from '../extensions/forms/utils/json-pointer';
|
|
11
11
|
export function prepareContext(props = {}) {
|
|
12
12
|
var _props;
|
|
13
13
|
if ((_props = props) !== null && _props !== void 0 && _props.__context__) {
|
package/es/shared/Context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["createContext","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extendDeep","pointer","prepareContext","props","_props","__context__","Object","assign","translations","locales","localeWithFallback","handleLocaleFallbacks","locale","destructFlatTranslation","translation","context","_objectSpread","updateTranslation","newTranslations","getTranslation","localProps","lang","tr","String","split","Context","currency","currency_display","source","hasFlatTr","destructed","k","includes","set","replace"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport { createContext } from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extendDeep } from './component-helper'\nimport pointer from 'json-pointer'\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 { CheckboxProps } from '../components/Checkbox'\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'\nimport type { ProgressIndicatorProps } from '../components/progress-indicator/types'\nimport type { FormStatusProps } from '../components/FormStatus'\nimport type { LogoProps } from '../components/Logo'\nimport type { IconProps } from '../components/Icon'\nimport type { IconPrimaryProps } from '../components/IconPrimary'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\nimport type { FormsTranslation } from '../extensions/forms/hooks/useTranslation'\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 Checkbox?: Partial<CheckboxProps>\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 ProgressIndicator?: Partial<ProgressIndicatorProps>\n FormStatus?: Partial<FormStatusProps>\n Logo?: Partial<LogoProps>\n Icon?: Partial<IconProps>\n IconPrimary?: Partial<IconPrimaryProps>\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?: InternalLocale\n\n /**\n * Internal translations used by the components and hooks\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: InternalLocale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: InternalLocale) => void\n\n /**\n * Overwrite existing internal translation strings or define new strings via the Provider\n */\n translations?: Translations | TranslationCustomLocales\n\n /**\n * @deprecated Use `translations` instead\n */\n locales?: Translations | TranslationCustomLocales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (\n locale: InternalLocale,\n translation: Translation\n ) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: InternalLocale | HTMLElement['lang']\n locale?: InternalLocale\n}>\n\nexport type Locale = TranslationLocale | 'en-US'\nexport type AnyLocale = string\nexport type InternalLocale =\n | Locale\n // more strict type definitions than string breaks applications using React Intl.\n | AnyLocale\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Translations =\n | Partial<Record<InternalLocale, Translation | TranslationFlat>>\n | Partial<Record<InternalLocale, FormsTranslation>>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale]\nexport type TranslationCustomLocales = Record<\n never,\n string | Record<string, string>\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 type TranslationFlatToObject<T> = T extends Record<string, unknown>\n ? {\n // eslint-disable-next-line no-unused-vars\n [K in keyof T as K extends `${infer First}.${infer Rest}`\n ? First\n : // eslint-disable-next-line no-unused-vars\n K]: K extends `${infer First}.${infer Rest}`\n ? TranslationFlatToObject<Record<Rest, T[K]>>\n : T[K]\n }\n : T\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n if (props?.__context__) {\n props = Object.assign({}, props, props.__context__)\n delete props.__context__\n }\n\n const translations: Translations =\n props.translations || props.locales\n ? extendDeep({}, defaultLocales, props.translations || props.locales)\n : extendDeep({}, defaultLocales)\n\n const localeWithFallback = handleLocaleFallbacks(\n props.locale || LOCALE,\n props.translations || props.locales\n )\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n for (const locale in translations) {\n translations[locale] = destructFlatTranslation(\n translations[locale] as TranslationFlat\n )\n }\n\n const translation =\n translations[localeWithFallback] || defaultLocales[LOCALE] || {}\n\n const context = {\n ...props,\n updateTranslation: (locale, newTranslations) => {\n context.translation =\n newTranslations[locale] || newTranslations[LOCALE]\n context.translations = newTranslations\n\n if (context.locales) {\n context.locales = context.translations\n }\n },\n getTranslation: (localProps) => {\n if (localProps) {\n const locale = localProps.lang || localProps.locale\n if (\n locale &&\n (context.translations || context.locales)[locale] &&\n locale !== localeWithFallback\n ) {\n const tr = context.translations || context.locales\n return tr[locale]\n }\n }\n return context.translation || defaultLocales[LOCALE]\n },\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n locales: translations, // @deprecated – can be removed in v11\n translations,\n translation,\n } as Props & ContextProps\n\n return { ...context }\n}\n\nfunction handleLocaleFallbacks(\n locale: InternalLocale | AnyLocale,\n translations: Translations = {}\n) {\n if (locale === 'en' || String(locale).split('-')[0] === 'en') {\n return 'en-GB'\n }\n return translations[locale] ? locale : LOCALE\n}\n\n// If no provider is given, we use the default context from here\nconst Context = createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nexport function destructFlatTranslation(source: TranslationFlat) {\n let hasFlatTr = false\n const destructed = {}\n\n for (const k in source) {\n if (String(k).includes('.')) {\n pointer.set(destructed, '/' + k.replace(/\\./g, '/'), source[k])\n hasFlatTr = true\n }\n }\n\n if (hasFlatTr) {\n return extendDeep({}, source, destructed)\n }\n\n return source\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Context.js","names":["createContext","LOCALE","CURRENCY","CURRENCY_DISPLAY","defaultLocales","extendDeep","pointer","prepareContext","props","_props","__context__","Object","assign","translations","locales","localeWithFallback","handleLocaleFallbacks","locale","destructFlatTranslation","translation","context","_objectSpread","updateTranslation","newTranslations","getTranslation","localProps","lang","tr","String","split","Context","currency","currency_display","source","hasFlatTr","destructed","k","includes","set","replace"],"sources":["../../../src/shared/Context.tsx"],"sourcesContent":["/**\n * Web Context Context\n *\n */\n\nimport { createContext } from 'react'\nimport { LOCALE, CURRENCY, CURRENCY_DISPLAY } from './defaults'\nimport defaultLocales from './locales'\nimport { extendDeep } from './component-helper'\nimport pointer from '../extensions/forms/utils/json-pointer'\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 { CheckboxProps } from '../components/Checkbox'\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'\nimport type { ProgressIndicatorProps } from '../components/progress-indicator/types'\nimport type { FormStatusProps } from '../components/FormStatus'\nimport type { LogoProps } from '../components/Logo'\nimport type { IconProps } from '../components/Icon'\nimport type { IconPrimaryProps } from '../components/IconPrimary'\nimport { SwitchProps } from '../components/Switch'\n\nimport type { FormElementProps } from './helpers/filterValidProps'\nimport type { ThemeProps } from './Theme'\nimport type { FormsTranslation } from '../extensions/forms/hooks/useTranslation'\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 Checkbox?: Partial<CheckboxProps>\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 ProgressIndicator?: Partial<ProgressIndicatorProps>\n FormStatus?: Partial<FormStatusProps>\n Logo?: Partial<LogoProps>\n Icon?: Partial<IconProps>\n IconPrimary?: Partial<IconPrimaryProps>\n\n Switch?: Partial<SwitchProps>\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?: InternalLocale\n\n /**\n * Internal translations used by the components and hooks\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: InternalLocale) => void\n\n /**\n * Update the used locale from within the context, but only for the particular scope\n */\n setCurrentLocale?: (locale: InternalLocale) => void\n\n /**\n * Overwrite existing internal translation strings or define new strings via the Provider\n */\n translations?: Translations | TranslationCustomLocales\n\n /**\n * @deprecated Use `translations` instead\n */\n locales?: Translations | TranslationCustomLocales\n\n // -- For internal use --\n __context__?: Record<string, unknown>\n updateTranslation?: (\n locale: InternalLocale,\n translation: Translation\n ) => void\n getTranslation?: (props: GetTranslationProps) => Translation\n}\n\nexport type GetTranslationProps = Partial<{\n lang?: InternalLocale | HTMLElement['lang']\n locale?: InternalLocale\n}>\n\nexport type Locale = TranslationLocale | 'en-US'\nexport type AnyLocale = string\nexport type InternalLocale =\n | Locale\n // more strict type definitions than string breaks applications using React Intl.\n | AnyLocale\nexport type ComponentTranslationsName = keyof ContextComponents | string\nexport type ComponentTranslation = string\nexport type Translations =\n | Partial<Record<InternalLocale, Translation | TranslationFlat>>\n | Partial<Record<InternalLocale, FormsTranslation>>\nexport type TranslationDefaultLocales = typeof defaultLocales\nexport type TranslationLocale = keyof TranslationDefaultLocales\nexport type TranslationKeys =\n keyof TranslationDefaultLocales[TranslationLocale]\nexport type TranslationValues =\n TranslationDefaultLocales[TranslationLocale]\nexport type TranslationCustomLocales = Record<\n never,\n string | Record<string, string>\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 type TranslationFlatToObject<T> = T extends Record<string, unknown>\n ? {\n // eslint-disable-next-line\n [K in keyof T as K extends `${infer First}.${infer Rest}`\n ? First\n : // eslint-disable-next-line\n K]: K extends `${infer First}.${infer Rest}`\n ? TranslationFlatToObject<Record<Rest, T[K]>>\n : T[K]\n }\n : T\n\nexport function prepareContext<Props>(\n props: ContextProps = {}\n): Props & ContextProps {\n if (props?.__context__) {\n props = Object.assign({}, props, props.__context__)\n delete props.__context__\n }\n\n const translations: Translations =\n props.translations || props.locales\n ? extendDeep({}, defaultLocales, props.translations || props.locales)\n : extendDeep({}, defaultLocales)\n\n const localeWithFallback = handleLocaleFallbacks(\n props.locale || LOCALE,\n props.translations || props.locales\n )\n\n /**\n * The code above adds support for strings, defined like:\n * {\n * \"Modal.close_title\": \"Lukk\",\n * }\n */\n for (const locale in translations) {\n translations[locale] = destructFlatTranslation(\n translations[locale] as TranslationFlat\n )\n }\n\n const translation =\n translations[localeWithFallback] || defaultLocales[LOCALE] || {}\n\n const context = {\n ...props,\n updateTranslation: (locale, newTranslations) => {\n context.translation =\n newTranslations[locale] || newTranslations[LOCALE]\n context.translations = newTranslations\n\n if (context.locales) {\n context.locales = context.translations\n }\n },\n getTranslation: (localProps) => {\n if (localProps) {\n const locale = localProps.lang || localProps.locale\n if (\n locale &&\n (context.translations || context.locales)[locale] &&\n locale !== localeWithFallback\n ) {\n const tr = context.translations || context.locales\n return tr[locale]\n }\n }\n return context.translation || defaultLocales[LOCALE]\n },\n\n /**\n * Make sure we set this after props, since we update this one!\n */\n locales: translations, // @deprecated – can be removed in v11\n translations,\n translation,\n } as Props & ContextProps\n\n return { ...context }\n}\n\nfunction handleLocaleFallbacks(\n locale: InternalLocale | AnyLocale,\n translations: Translations = {}\n) {\n if (locale === 'en' || String(locale).split('-')[0] === 'en') {\n return 'en-GB'\n }\n return translations[locale] ? locale : LOCALE\n}\n\n// If no provider is given, we use the default context from here\nconst Context = createContext<ContextProps>(\n prepareContext({\n locale: LOCALE,\n currency: CURRENCY,\n currency_display: CURRENCY_DISPLAY,\n })\n)\n\nexport default Context\n\nexport function destructFlatTranslation(source: TranslationFlat) {\n let hasFlatTr = false\n const destructed = {}\n\n for (const k in source) {\n if (String(k).includes('.')) {\n pointer.set(destructed, '/' + k.replace(/\\./g, '/'), source[k])\n hasFlatTr = true\n }\n }\n\n if (hasFlatTr) {\n return extendDeep({}, source, destructed)\n }\n\n return source\n}\n"],"mappings":"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"}
|
package/es/shared/Eufemia.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "10.
|
|
1
|
+
export declare const version = "10.51.1";
|
|
2
2
|
export declare function init(): void;
|
package/es/shared/Eufemia.js
CHANGED
package/es/shared/Eufemia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.
|
|
1
|
+
{"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.51.1'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.51.1'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
|
|
@@ -87,10 +87,10 @@ export function buildQuery({
|
|
|
87
87
|
let listOfQueries = [];
|
|
88
88
|
if (Array.isArray(when)) {
|
|
89
89
|
listOfQueries = listOfQueries.concat(combineQueries(when, breakpoints, options));
|
|
90
|
-
} else if (
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
93
|
-
listOfQueries.push(
|
|
90
|
+
} else if (typeof when === 'object') {
|
|
91
|
+
const queryItem = convertToMediaQuery(when, breakpoints, options);
|
|
92
|
+
if (queryItem) {
|
|
93
|
+
listOfQueries.push(queryItem);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
if (listOfQueries.length > 0) {
|
|
@@ -118,14 +118,8 @@ function combineQueries(queries, breakpoints = null, options) {
|
|
|
118
118
|
}
|
|
119
119
|
const query = convertToMediaQuery(when, breakpoints, options);
|
|
120
120
|
if (query) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
listOfQueries.push('and');
|
|
124
|
-
break;
|
|
125
|
-
case 'or':
|
|
126
|
-
default:
|
|
127
|
-
listOfQueries.push(', ');
|
|
128
|
-
break;
|
|
121
|
+
if (query !== 'and' && arr[i - 1] !== 'and') {
|
|
122
|
+
listOfQueries.push(', ');
|
|
129
123
|
}
|
|
130
124
|
listOfQueries.push(query);
|
|
131
125
|
}
|
|
@@ -148,7 +142,10 @@ export function convertToMediaQuery(query, breakpoints = null, options) {
|
|
|
148
142
|
return query.reduce((acc, q, index) => {
|
|
149
143
|
acc += objToMediaQuery(q, breakpoints, options);
|
|
150
144
|
if (index < query.length - 1) {
|
|
151
|
-
|
|
145
|
+
if (q !== 'and' && query[index + 1] !== 'and') {
|
|
146
|
+
acc += ',';
|
|
147
|
+
}
|
|
148
|
+
acc += ' ';
|
|
152
149
|
}
|
|
153
150
|
return acc;
|
|
154
151
|
}, '');
|
|
@@ -156,6 +153,9 @@ export function convertToMediaQuery(query, breakpoints = null, options) {
|
|
|
156
153
|
return objToMediaQuery(query, breakpoints, options);
|
|
157
154
|
}
|
|
158
155
|
function objToMediaQuery(obj, breakpoints = null, options) {
|
|
156
|
+
if (typeof obj === 'string') {
|
|
157
|
+
return obj;
|
|
158
|
+
}
|
|
159
159
|
let hasNot = false;
|
|
160
160
|
let query = Object.keys(obj).reduce((acc, feature) => {
|
|
161
161
|
let value = obj[feature];
|
|
@@ -164,6 +164,9 @@ function objToMediaQuery(obj, breakpoints = null, options) {
|
|
|
164
164
|
hasNot = true;
|
|
165
165
|
return acc;
|
|
166
166
|
}
|
|
167
|
+
if (feature === 'monochrome') {
|
|
168
|
+
feature = `(${feature})`;
|
|
169
|
+
}
|
|
167
170
|
if (feature === 'min' || feature === 'max') {
|
|
168
171
|
feature = `${feature}-width`;
|
|
169
172
|
}
|
|
@@ -191,7 +194,7 @@ function objToMediaQuery(obj, breakpoints = null, options) {
|
|
|
191
194
|
if (options !== null && options !== void 0 && options.correctRange && /\(min-width: [0-9]+em\)/.test(query)) {
|
|
192
195
|
const size = parseFloat(query.match(/\(min-width: ([0-9]+)em\)/)[1]) || 0;
|
|
193
196
|
if (size > 0) {
|
|
194
|
-
const correctedSize = (size * 16 + 1) / 16;
|
|
197
|
+
const correctedSize = (size * 16 + 0.1) / 16;
|
|
195
198
|
query = query.replace(/(min-width: [0-9]+em)/, `min-width: ${correctedSize}em`);
|
|
196
199
|
}
|
|
197
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaQueryUtils.js","names":["isTrue","toKebabCase","warn","defaultBreakpoints","small","medium","large","onMediaQueryChange","property","callback","runOnInit","query","when","not","mediaQueryList","makeMediaQueryList","matches","createMediaQueryListener","isMatchMediaSupported","window","matchMedia","breakpoints","options","isSupported","disabled","buildQuery","mediaQueryString","convertToMediaQuery","log","listener","event","addEventListener","removeEventListener","split","listOfQueries","Array","isArray","concat","combineQueries","push","length","join","filter","Boolean","replace","reverseQuery","String","startsWith","test","queries","reduce","i","arr","mergeBreakpoints","Object","entries","_objectSpread","sort","a","b","acc","key","value","q","index","objToMediaQuery","obj","hasNot","keys","feature","getValueByFeature","correctRange","size","parseFloat","match","correctedSize","types","prototype","hasOwnProperty","call"],"sources":["../../../src/shared/MediaQueryUtils.ts"],"sourcesContent":["import { isTrue, toKebabCase } from './component-helper'\nimport { warn } from './helpers'\n\nexport type MediaQuerySizes =\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\nexport type MediaQueryBreakpoints = Partial<\n Record<MediaQuerySizes, string>\n>\n\nexport const defaultBreakpoints: MediaQueryBreakpoints = {\n small: '40em',\n medium: '60em',\n large: '72em',\n 'x-large': '80em',\n 'xx-large': '90em',\n}\n\nexport type MediaQueryCondition =\n | {\n min?: number | string | MediaQuerySizes\n max?: number | string | MediaQuerySizes\n screen?: boolean\n minWidth?: number | string | MediaQuerySizes\n maxWidth?: number | string | MediaQuerySizes\n orientation?: string\n handheld?: boolean\n not?: boolean\n all?: boolean\n monochrome?: boolean\n aspectRatio?: string\n }\n | string\n\nexport type MediaQueryProperties = {\n /**\n * A MediaQuery as a string similar to the CSS API, but without `@media`.\n */\n query?: MediaQueryCondition\n\n /**\n * Define a list of sizes to match, given as an object `{ min: 'small', max: 'medium' }` or as an array `[{ min: 'small', max: 'medium' }, { min: 'medium', max: 'large' }]`.\n */\n when?: MediaQueryCondition | Array<MediaQueryCondition>\n\n /**\n * Reverts the defined queries as a whole.\n */\n not?: boolean\n} & MediaQueryCondition\n\nexport type MediaQueryOptions = {\n /**\n * If set to true, no MediaQuery will be used.\n */\n disabled?: boolean\n\n /**\n * Will correct the size of the media query ranges (e.g. medium will be from 40.0625em to 60em)\n * Default: true\n */\n correctRange?: boolean\n\n /**\n * For debugging\n */\n log?: boolean\n}\n\nexport type MediaQueryListener = () => void\n\nexport type MediaQueryProps = {\n /**\n * If set to true, it will match and return the given children during SSR.\n */\n matchOnSSR?: boolean\n\n children?: React.ReactNode\n} & MediaQueryProperties &\n MediaQueryOptions\n\nexport type MediaQueryState = {\n match?: boolean | null\n mediaQueryList?: { matches: boolean }\n}\n\n/**\n * Adds a listener to a given MediaQuery\n */\nexport function onMediaQueryChange(\n property: MediaQueryProperties | string,\n callback?: (matches: boolean, mediaQueryList: MediaQueryList) => void,\n { runOnInit = false } = {}\n): MediaQueryListener {\n let query = property\n let when = null\n let not = null\n\n if (property && typeof property === 'object') {\n query = null\n when = property.when || property\n not = property.not\n }\n\n const mediaQueryList = makeMediaQueryList({ query, when, not })\n\n if (runOnInit) {\n if (typeof callback === 'function') {\n callback(mediaQueryList?.matches, mediaQueryList)\n }\n }\n\n return createMediaQueryListener(mediaQueryList, callback)\n}\n\n/**\n * Returns a boolean for whether window.matchMedia is supported or not\n */\nexport const isMatchMediaSupported = (): boolean =>\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined'\n\n/**\n * Convert user defined media queries to an valid MediaQueryList we can assign a listener to\n */\nexport function makeMediaQueryList(\n { query, when, not = null }: MediaQueryProperties = {},\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): MediaQueryList {\n const isSupported = isMatchMediaSupported()\n\n if (options?.disabled || !isSupported) {\n return null\n }\n\n if (when) {\n query = buildQuery({ query, when, not }, breakpoints, options)\n }\n\n const mediaQueryString = convertToMediaQuery(query, breakpoints, options)\n const mediaQueryList = window.matchMedia(mediaQueryString)\n\n if (options?.log) {\n warn('MediaQuery:', mediaQueryString)\n }\n\n return mediaQueryList\n}\n\n/**\n * Adds a listener to the window.matchMedia Browser API\n */\nexport function createMediaQueryListener(\n mediaQueryList: MediaQueryList,\n callback: (matches: boolean, event: Partial<MediaQueryListEvent>) => void\n): MediaQueryListener {\n if (!mediaQueryList) {\n return () => null\n }\n\n const listener = (event: MediaQueryListEvent) => {\n if (typeof callback === 'function') {\n callback(event?.matches, event)\n }\n }\n if (mediaQueryList?.addEventListener) {\n mediaQueryList.addEventListener('change', listener)\n }\n\n return () => {\n if (mediaQueryList?.removeEventListener) {\n mediaQueryList.removeEventListener('change', listener)\n }\n }\n}\n\n/**\n * Builds a valid media query we can use on window.matchMedia(...)\n */\nexport function buildQuery(\n { query = null, when = null, not = null }: MediaQueryProperties = {},\n breakpoints?: MediaQueryBreakpoints,\n options?: MediaQueryOptions\n) {\n if (when) {\n if (typeof when === 'string') {\n when = when.split(/[ ,]/g)\n }\n\n let listOfQueries = []\n\n if (Array.isArray(when)) {\n listOfQueries = listOfQueries.concat(\n combineQueries(when, breakpoints, options)\n )\n } else if (when && typeof when === 'object') {\n const query = convertToMediaQuery(when, breakpoints, options)\n if (query) {\n listOfQueries.push(query)\n }\n }\n\n if (listOfQueries.length > 0) {\n query = [listOfQueries.join(' '), query || '']\n .filter(Boolean)\n .join(' and ')\n .replace(/ +/g, ' ')\n .replace(/ ,/g, ',')\n }\n }\n\n if (isTrue(not)) {\n query = reverseQuery(String(query))\n }\n\n return query || 'not'\n}\n\n/**\n * Reverses a media query\n */\nfunction reverseQuery(query: string) {\n if (query.startsWith('not')) {\n return query.replace(/^not +/, '')\n }\n if (!/^(screen|all|print|speech)/.test(query)) {\n query = `all and ${query}`\n }\n return `not ${query}`\n}\n\n/**\n * Builds a list of queries based on sizing types, like small, medium\n */\nfunction combineQueries(\n queries: Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n) {\n return queries\n .reduce((listOfQueries, when, i, arr) => {\n if (breakpoints) {\n breakpoints = mergeBreakpoints(breakpoints)\n }\n\n const query = convertToMediaQuery(when, breakpoints, options)\n\n if (query) {\n switch (arr[i - 1]) {\n case 'and':\n listOfQueries.push('and')\n break\n\n case 'or':\n default:\n listOfQueries.push(', ')\n break\n }\n\n listOfQueries.push(query)\n }\n\n return listOfQueries\n }, [])\n .filter((query, i) => {\n return !(i === 0 && query.startsWith(', '))\n })\n}\n\n/**\n * If custom breakpoints are given, we order them by the value\n * and return again an object as before\n */\nfunction mergeBreakpoints(breakpoints: MediaQueryBreakpoints) {\n return Object.entries({\n ...defaultBreakpoints,\n ...breakpoints,\n })\n .sort((a, b) => (a[1] > b[1] ? 1 : -1))\n .reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {})\n}\n\n/**\n * Convert a media query from various formats to a valid string based media query\n */\nexport function convertToMediaQuery(\n query: MediaQueryCondition | Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n if (typeof query === 'string') {\n return query\n }\n\n // Handling array of media queries\n if (Array.isArray(query)) {\n return query.reduce((acc, q, index) => {\n acc += objToMediaQuery(q, breakpoints, options)\n if (index < query.length - 1) {\n acc += ', '\n }\n\n return acc\n }, '') as string\n }\n\n // Handling single media query\n return objToMediaQuery(query, breakpoints, options)\n}\n\n/**\n * Converts an object with PascalCase defined properties to string based media queries\n */\nfunction objToMediaQuery(\n obj: MediaQueryCondition,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n let hasNot = false\n let query: string | Array<null> = Object.keys(obj).reduce(\n (acc, feature) => {\n let value = obj[feature]\n feature = toKebabCase(feature)\n\n if (feature === 'not') {\n hasNot = true\n return acc\n }\n\n if (feature === 'min' || feature === 'max') {\n feature = `${feature}-width`\n }\n\n // Add em to dimension features\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = value + 'em'\n }\n\n if (value === true) {\n acc.push(feature)\n } else if (value === false) {\n acc.push('not ' + feature)\n } else {\n value = getValueByFeature(value, breakpoints)\n if (typeof value !== 'undefined') {\n acc.push(`(${feature}: ${value})`)\n }\n }\n\n return acc\n },\n []\n )\n\n if (Array.isArray(query)) {\n query = query.length > 0 ? query.join(' and ') : query.join('')\n }\n\n if (hasNot) {\n query = reverseQuery(query)\n }\n\n if (options?.correctRange && /\\(min-width: [0-9]+em\\)/.test(query)) {\n const size =\n parseFloat(query.match(/\\(min-width: ([0-9]+)em\\)/)[1]) || 0\n if (size > 0) {\n const correctedSize = (size * 16 + 1) / 16\n query = query.replace(\n /(min-width: [0-9]+em)/,\n `min-width: ${correctedSize}em`\n )\n }\n }\n\n return query\n}\n\n/**\n * Corrects breakpoint types\n */\nfunction getValueByFeature(\n value: string,\n types: MediaQueryBreakpoints = null\n) {\n types = types || defaultBreakpoints\n if (Object.prototype.hasOwnProperty.call(types, value)) {\n value = types[value]\n }\n return value\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MediaQueryUtils.js","names":["isTrue","toKebabCase","warn","defaultBreakpoints","small","medium","large","onMediaQueryChange","property","callback","runOnInit","query","when","not","mediaQueryList","makeMediaQueryList","matches","createMediaQueryListener","isMatchMediaSupported","window","matchMedia","breakpoints","options","isSupported","disabled","buildQuery","mediaQueryString","convertToMediaQuery","log","listener","event","addEventListener","removeEventListener","split","listOfQueries","Array","isArray","concat","combineQueries","queryItem","push","length","join","filter","Boolean","replace","reverseQuery","String","startsWith","test","queries","reduce","i","arr","mergeBreakpoints","Object","entries","_objectSpread","sort","a","b","acc","key","value","q","index","objToMediaQuery","obj","hasNot","keys","feature","getValueByFeature","correctRange","size","parseFloat","match","correctedSize","types","prototype","hasOwnProperty","call"],"sources":["../../../src/shared/MediaQueryUtils.ts"],"sourcesContent":["import { isTrue, toKebabCase } from './component-helper'\nimport { warn } from './helpers'\n\nexport type MediaQuerySizes =\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\nexport type MediaQueryBreakpoints = Partial<\n Record<MediaQuerySizes, string>\n>\n\nexport const defaultBreakpoints: MediaQueryBreakpoints = {\n small: '40em',\n medium: '60em',\n large: '72em',\n 'x-large': '80em',\n 'xx-large': '90em',\n}\n\nexport type MediaQueryCondition =\n | {\n min?: number | string | MediaQuerySizes\n max?: number | string | MediaQuerySizes\n screen?: boolean\n minWidth?: number | string | MediaQuerySizes\n maxWidth?: number | string | MediaQuerySizes\n orientation?: string\n not?: boolean\n all?: boolean\n monochrome?: boolean\n aspectRatio?: string\n }\n | string\n\nexport type MediaQueryProperties = {\n /**\n * A MediaQuery as a string similar to the CSS API, but without `@media`.\n */\n query?: MediaQueryCondition\n\n /**\n * Define a list of sizes to match, given as an object `{ min: 'small', max: 'medium' }` or as an array `[{ min: 'small', max: 'medium' }, { min: 'medium', max: 'large' }]`.\n */\n when?: MediaQueryCondition | Array<MediaQueryCondition>\n\n /**\n * Reverts the defined queries as a whole.\n */\n not?: boolean\n} & MediaQueryCondition\n\nexport type MediaQueryOptions = {\n /**\n * If set to true, no MediaQuery will be used.\n */\n disabled?: boolean\n\n /**\n * Will correct the size of the media query ranges (e.g. medium will be from 40.0625em to 60em)\n * Default: true\n */\n correctRange?: boolean\n\n /**\n * For debugging\n */\n log?: boolean\n}\n\nexport type MediaQueryListener = () => void\n\nexport type MediaQueryProps = {\n /**\n * If set to true, it will match and return the given children during SSR.\n */\n matchOnSSR?: boolean\n\n children?: React.ReactNode\n} & MediaQueryProperties &\n MediaQueryOptions\n\nexport type MediaQueryState = {\n match?: boolean | null\n mediaQueryList?: { matches: boolean }\n}\n\n/**\n * Adds a listener to a given MediaQuery\n */\nexport function onMediaQueryChange(\n property: MediaQueryProperties | string,\n callback?: (matches: boolean, mediaQueryList: MediaQueryList) => void,\n { runOnInit = false } = {}\n): MediaQueryListener {\n let query = property\n let when = null\n let not = null\n\n if (property && typeof property === 'object') {\n query = null\n when = property.when || property\n not = property.not\n }\n\n const mediaQueryList = makeMediaQueryList({ query, when, not })\n\n if (runOnInit) {\n if (typeof callback === 'function') {\n callback(mediaQueryList?.matches, mediaQueryList)\n }\n }\n\n return createMediaQueryListener(mediaQueryList, callback)\n}\n\n/**\n * Returns a boolean for whether window.matchMedia is supported or not\n */\nexport const isMatchMediaSupported = (): boolean =>\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined'\n\n/**\n * Convert user defined media queries to an valid MediaQueryList we can assign a listener to\n */\nexport function makeMediaQueryList(\n { query, when, not = null }: MediaQueryProperties = {},\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): MediaQueryList {\n const isSupported = isMatchMediaSupported()\n\n if (options?.disabled || !isSupported) {\n return null\n }\n\n if (when) {\n query = buildQuery({ query, when, not }, breakpoints, options)\n }\n\n const mediaQueryString = convertToMediaQuery(query, breakpoints, options)\n const mediaQueryList = window.matchMedia(mediaQueryString)\n\n if (options?.log) {\n warn('MediaQuery:', mediaQueryString)\n }\n\n return mediaQueryList\n}\n\n/**\n * Adds a listener to the window.matchMedia Browser API\n */\nexport function createMediaQueryListener(\n mediaQueryList: MediaQueryList,\n callback: (matches: boolean, event: Partial<MediaQueryListEvent>) => void\n): MediaQueryListener {\n if (!mediaQueryList) {\n return () => null\n }\n\n const listener = (event: MediaQueryListEvent) => {\n if (typeof callback === 'function') {\n callback(event?.matches, event)\n }\n }\n if (mediaQueryList?.addEventListener) {\n mediaQueryList.addEventListener('change', listener)\n }\n\n return () => {\n if (mediaQueryList?.removeEventListener) {\n mediaQueryList.removeEventListener('change', listener)\n }\n }\n}\n\n/**\n * Builds a valid media query we can use on window.matchMedia(...)\n */\nexport function buildQuery(\n { query = null, when = null, not = null }: MediaQueryProperties = {},\n breakpoints?: MediaQueryBreakpoints,\n options?: MediaQueryOptions\n) {\n if (when) {\n if (typeof when === 'string') {\n when = when.split(/[ ,]/g)\n }\n\n let listOfQueries = []\n\n if (Array.isArray(when)) {\n listOfQueries = listOfQueries.concat(\n combineQueries(when, breakpoints, options)\n )\n } else if (typeof when === 'object') {\n const queryItem = convertToMediaQuery(when, breakpoints, options)\n if (queryItem) {\n listOfQueries.push(queryItem)\n }\n }\n\n if (listOfQueries.length > 0) {\n query = [listOfQueries.join(' '), query || '']\n .filter(Boolean)\n .join(' and ')\n .replace(/ +/g, ' ')\n .replace(/ ,/g, ',')\n }\n }\n\n if (isTrue(not)) {\n query = reverseQuery(String(query))\n }\n\n return query || 'not'\n}\n\n/**\n * Reverses a media query\n */\nfunction reverseQuery(query: string) {\n if (query.startsWith('not')) {\n return query.replace(/^not +/, '')\n }\n if (!/^(screen|all|print|speech)/.test(query)) {\n query = `all and ${query}`\n }\n return `not ${query}`\n}\n\n/**\n * Builds a list of queries based on sizing types, like small, medium\n */\nfunction combineQueries(\n queries: Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n) {\n return queries\n .reduce((listOfQueries, when, i, arr) => {\n if (breakpoints) {\n breakpoints = mergeBreakpoints(breakpoints)\n }\n\n const query = convertToMediaQuery(when, breakpoints, options)\n\n if (query) {\n if (query !== 'and' && arr[i - 1] !== 'and') {\n listOfQueries.push(', ')\n }\n\n listOfQueries.push(query)\n }\n\n return listOfQueries\n }, [])\n .filter((query, i) => {\n return !(i === 0 && query.startsWith(', '))\n })\n}\n\n/**\n * If custom breakpoints are given, we order them by the value\n * and return again an object as before\n */\nfunction mergeBreakpoints(breakpoints: MediaQueryBreakpoints) {\n return Object.entries({\n ...defaultBreakpoints,\n ...breakpoints,\n })\n .sort((a, b) => (a[1] > b[1] ? 1 : -1))\n .reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {})\n}\n\n/**\n * Convert a media query from various formats to a valid string based media query\n */\nexport function convertToMediaQuery(\n query: MediaQueryCondition | Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n if (typeof query === 'string') {\n return query\n }\n\n // Handling array of media queries\n if (Array.isArray(query)) {\n return query.reduce((acc, q, index) => {\n acc += objToMediaQuery(q, breakpoints, options)\n if (index < query.length - 1) {\n if (q !== 'and' && query[index + 1] !== 'and') {\n acc += ','\n }\n acc += ' '\n }\n return acc\n }, '') as string\n }\n\n // Handling single media query\n return objToMediaQuery(query, breakpoints, options)\n}\n\n/**\n * Converts an object with PascalCase defined properties to string based media queries\n */\nfunction objToMediaQuery(\n obj: MediaQueryCondition,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n if (typeof obj === 'string') {\n return obj\n }\n let hasNot = false\n let query: string | Array<null> = Object.keys(obj).reduce(\n (acc, feature) => {\n let value = obj[feature]\n feature = toKebabCase(feature)\n\n if (feature === 'not') {\n hasNot = true\n return acc\n }\n if (feature === 'monochrome') {\n feature = `(${feature})`\n }\n\n if (feature === 'min' || feature === 'max') {\n feature = `${feature}-width`\n }\n\n // Add em to dimension features\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = value + 'em'\n }\n\n if (value === true) {\n acc.push(feature)\n } else if (value === false) {\n acc.push('not ' + feature)\n } else {\n value = getValueByFeature(value, breakpoints)\n if (typeof value !== 'undefined') {\n acc.push(`(${feature}: ${value})`)\n }\n }\n\n return acc\n },\n []\n )\n\n if (Array.isArray(query)) {\n query = query.length > 0 ? query.join(' and ') : query.join('')\n }\n\n if (hasNot) {\n query = reverseQuery(query)\n }\n\n if (options?.correctRange && /\\(min-width: [0-9]+em\\)/.test(query)) {\n const size =\n parseFloat(query.match(/\\(min-width: ([0-9]+)em\\)/)[1]) || 0\n if (size > 0) {\n const correctedSize = (size * 16 + 0.1) / 16 // add 0.1px to the minimum to avoid overlap with and equivalent maximum\n query = query.replace(\n /(min-width: [0-9]+em)/,\n `min-width: ${correctedSize}em`\n )\n }\n }\n\n return query\n}\n\n/**\n * Corrects breakpoint types\n */\nfunction getValueByFeature(\n value: string,\n types: MediaQueryBreakpoints = null\n) {\n types = types || defaultBreakpoints\n if (Object.prototype.hasOwnProperty.call(types, value)) {\n value = types[value]\n }\n return value\n}\n"],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
4
|
export function extendPropsWithContext(props, defaults = {}, ...contexts) {
|
|
5
5
|
props = _objectSpread(_objectSpread({}, defaults), props);
|
|
6
|
-
return _objectSpread(_objectSpread({}, props),
|
|
6
|
+
return _objectSpread(_objectSpread({}, props), reduceContextHasValue(props, defaults, contexts));
|
|
7
7
|
}
|
|
8
8
|
export function extendPropsWithContextInClassComponent(props, defaults = {}, ...contexts) {
|
|
9
|
-
return _objectSpread(_objectSpread({}, props),
|
|
9
|
+
return _objectSpread(_objectSpread({}, props), reduceContextHasValue(props, defaults, contexts, {
|
|
10
10
|
onlyMergeExistingProps: true
|
|
11
11
|
}));
|
|
12
12
|
}
|
|
@@ -18,7 +18,7 @@ export function reduceContext(contexts) {
|
|
|
18
18
|
return acc;
|
|
19
19
|
}, {});
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function reduceContextHasValue(props, defaults, contexts, {
|
|
22
22
|
onlyMergeExistingProps = false
|
|
23
23
|
} = {}) {
|
|
24
24
|
const context = reduceContext(contexts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extendPropsWithContext.js","names":["extendPropsWithContext","props","defaults","contexts","_objectSpread","
|
|
1
|
+
{"version":3,"file":"extendPropsWithContext.js","names":["extendPropsWithContext","props","defaults","contexts","_objectSpread","reduceContextHasValue","extendPropsWithContextInClassComponent","onlyMergeExistingProps","reduceContext","reduce","acc","cur","context","Object","entries","key","value","prototype","hasOwnProperty","call"],"sources":["../../../../src/shared/helpers/extendPropsWithContext.ts"],"sourcesContent":["export type DefaultsProps = Record<string, unknown>\nexport type Contexts = Array<Record<string, unknown>>\n\n/**\n * Overrides default props with values from context.\n *\n * \"undefined\" is considered the default value of a prop\n * unless otherwise provided\n *\n * @param props object of component properties\n * @param defaults object of default values\n * @param contexts one or more contexts to merge\n * @returns merged properties\n */\nexport function extendPropsWithContext<Props>(\n props: Props,\n defaults: DefaultsProps = {},\n ...contexts: Contexts\n) {\n props = { ...defaults, ...props }\n return {\n ...props,\n ...reduceContextHasValue(props, defaults, contexts),\n }\n}\n\nexport function extendPropsWithContextInClassComponent<Props>(\n props: Props,\n defaults: DefaultsProps = {},\n ...contexts: Contexts\n) {\n return {\n ...props,\n ...reduceContextHasValue(props, defaults, contexts, {\n onlyMergeExistingProps: true,\n }),\n }\n}\n\nexport function reduceContext(contexts: Contexts) {\n return contexts.reduce((acc, cur) => {\n if (cur) {\n acc = { ...acc, ...cur }\n }\n return acc\n }, {})\n}\n\nfunction reduceContextHasValue<Props>(\n props: Props,\n defaults: DefaultsProps,\n contexts: Contexts,\n { onlyMergeExistingProps = false } = {}\n) {\n const context = reduceContext(contexts)\n return Object.entries(context).reduce((acc, [key, value]) => {\n if (\n // An optional check to only merge existing props from context\n !onlyMergeExistingProps ||\n Object.prototype.hasOwnProperty.call(props, key)\n ) {\n if (props[key] === defaults?.[key]) {\n // Existing props can only be overridden if it has default value\n // But a prop that does not exist will also be merged (as long as the default value is \"undefined\")\n acc[key] = value\n }\n }\n\n return acc\n }, {})\n}\n"],"mappings":";;;AAcA,OAAO,SAASA,sBAAsBA,CACpCC,KAAY,EACZC,QAAuB,GAAG,CAAC,CAAC,EAC5B,GAAGC,QAAkB,EACrB;EACAF,KAAK,GAAAG,aAAA,CAAAA,aAAA,KAAQF,QAAQ,GAAKD,KAAK,CAAE;EACjC,OAAAG,aAAA,CAAAA,aAAA,KACKH,KAAK,GACLI,qBAAqB,CAACJ,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,CAAC;AAEvD;AAEA,OAAO,SAASG,sCAAsCA,CACpDL,KAAY,EACZC,QAAuB,GAAG,CAAC,CAAC,EAC5B,GAAGC,QAAkB,EACrB;EACA,OAAAC,aAAA,CAAAA,aAAA,KACKH,KAAK,GACLI,qBAAqB,CAACJ,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;IAClDI,sBAAsB,EAAE;EAC1B,CAAC,CAAC;AAEN;AAEA,OAAO,SAASC,aAAaA,CAACL,QAAkB,EAAE;EAChD,OAAOA,QAAQ,CAACM,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;IACnC,IAAIA,GAAG,EAAE;MACPD,GAAG,GAAAN,aAAA,CAAAA,aAAA,KAAQM,GAAG,GAAKC,GAAG,CAAE;IAC1B;IACA,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAEA,SAASL,qBAAqBA,CAC5BJ,KAAY,EACZC,QAAuB,EACvBC,QAAkB,EAClB;EAAEI,sBAAsB,GAAG;AAAM,CAAC,GAAG,CAAC,CAAC,EACvC;EACA,MAAMK,OAAO,GAAGJ,aAAa,CAACL,QAAQ,CAAC;EACvC,OAAOU,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACH,MAAM,CAAC,CAACC,GAAG,EAAE,CAACK,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC3D,IAEE,CAACT,sBAAsB,IACvBM,MAAM,CAACI,SAAS,CAACC,cAAc,CAACC,IAAI,CAAClB,KAAK,EAAEc,GAAG,CAAC,EAChD;MACA,IAAId,KAAK,CAACc,GAAG,CAAC,MAAKb,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGa,GAAG,CAAC,GAAE;QAGlCL,GAAG,CAACK,GAAG,CAAC,GAAGC,KAAK;MAClB;IACF;IAEA,OAAON,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withSnakeCaseProps.js","names":["React","toCamelCase","withSnakeCaseProps","Base","Component","Derived","props","createElement","convertSnakeCaseProps","Object","defineProperty","value","name","classWithSnakeCaseProps","constructor","args","_defineProperty","componentDidMount","render","_prevProps","_elem","displayName","overrideExistingValue","isFrozen","newProps","_objectSpread","key","includes","test","newKey","undefined","freeze"],"sources":["../../../../src/shared/helpers/withSnakeCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toCamelCase } from '../component-helper'\n\n/**\n * withSnakeCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToSnakeCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withSnakeCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertSnakeCaseProps(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withSnakeCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToSnakeCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithSnakeCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertSnakeCaseProps(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\nexport function convertSnakeCaseProps<P>(\n props: P,\n { overrideExistingValue = true } = {}\n) {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n\n for (const key in props) {\n if (key.includes('_') && /^[a-z]+/.test(key) && !/[A-Z]/.test(key)) {\n const newKey = toCamelCase(key)\n if (overrideExistingValue || newProps[newKey] === undefined) {\n newProps[toCamelCase(key)] = props[key]\n }\n delete newProps[key]\n }\n }\n
|
|
1
|
+
{"version":3,"file":"withSnakeCaseProps.js","names":["React","toCamelCase","withSnakeCaseProps","Base","Component","Derived","props","createElement","convertSnakeCaseProps","Object","defineProperty","value","name","classWithSnakeCaseProps","constructor","args","_defineProperty","componentDidMount","render","_prevProps","_elem","displayName","overrideExistingValue","isFrozen","newProps","_objectSpread","key","includes","test","newKey","undefined","freeze"],"sources":["../../../../src/shared/helpers/withSnakeCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toCamelCase } from '../component-helper'\n\n/**\n * withSnakeCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToSnakeCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withSnakeCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertSnakeCaseProps(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withSnakeCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToSnakeCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithSnakeCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertSnakeCaseProps(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\nexport function convertSnakeCaseProps<P>(\n props: P,\n { overrideExistingValue = true } = {}\n) {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n\n for (const key in props) {\n if (key.includes('_') && /^[a-z]+/.test(key) && !/[A-Z]/.test(key)) {\n const newKey = toCamelCase(key)\n if (overrideExistingValue || newProps[newKey] === undefined) {\n newProps[toCamelCase(key)] = props[key]\n }\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\n/**\n * Convert recursively Types from camelCase to snake_case\n *\n * Use it like so:\n * OriginalProps & ToSnakeCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToSnakeCase makes the required camelCase props also required in snake_case\n * - ToSnakeCasePartial removes required for the snake_case props\n *\n */\nexport type ToSnakeCasePartial<T> = Partial<ToSnakeCase<T>>\nexport type ToSnakeCase<T> = T extends object\n ? {\n [K in keyof T as ConvertCamelToSnakeCase<K & string>]:\n | T[K]\n | ToSnakeCase<T[K]>\n }\n : T\nexport type IncludeSnakeCase<T> = Partial<T> & ToSnakeCasePartial<T>\ntype ConvertCamelToSnakeCase<S extends string> =\n S extends `${infer T}${infer U}`\n ? `${T extends Capitalize<T>\n ? '_'\n : ''}${Lowercase<T>}${ConvertCamelToSnakeCase<U>}`\n : S\n"],"mappings":";;;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,qBAAqB;AAWjD,OAAO,SAASC,kBAAkBA,CAChCC,IAAwC,EAC3B;EACb,MAAMC,SAA8B,GAAGD,IAAI;EAE3C,MAAME,OAAO,GAAIC,KAAQ,IAAK;IAC5B,OAAON,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAACF,KAAK,CAAI,CAAC;EACxD,CAAC;EAEDG,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEF,KAAK,MAAMA,IAAI,IAAIT,IAAI,EAAE;IACvBM,MAAM,CAACC,cAAc,CAACL,OAAO,EAAEO,IAAI,EAAE;MACnCD,KAAK,EAAER,IAAI,CAACS,IAAI;IAClB,CAAC,CAAC;EACJ;EAGA,OAAOP,OAAO;AAChB;AAWA,OAAO,SAASQ,uBAAuBA,CAErCV,IAAW,EAAe;EAC1B,MAAMC,SAA+B,GAAGD,IAAI;EAI5C,MAAME,OAAO,SAASF,IAAI,CAAC;IAAAW,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAC,eAAA;MAAAA,eAAA;IAAA;IAIzBC,iBAAiBA,CAAA,EAAG,CAEpB;IAEAC,MAAMA,CAAA,EAAG;MACP,IAAI,IAAI,CAACZ,KAAK,KAAK,IAAI,CAACa,UAAU,EAAE;QAClC,IAAI,CAACA,UAAU,GAAG,IAAI,CAACb,KAAK;QAC5B,IAAI,CAACc,KAAK,GAERpB,KAAA,CAAAO,aAAA,CAACH,SAAS,EAAKI,qBAAqB,CAAC,IAAI,CAACF,KAAK,CAAI,CACpD;MACH;MAEA,OAAO,IAAI,CAACc,KAAK;IACnB;EACF;EAEAX,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,MAAM,EAAE;IACrCM,KAAK,EAAER,IAAI,CAACS;EACd,CAAC,CAAC;EAEFH,MAAM,CAACC,cAAc,CAACL,OAAO,EAAE,aAAa,EAAE;IAC5CM,KAAK,EAAER,IAAI,CAACkB,WAAW,IAAIlB,IAAI,CAACS;EAClC,CAAC,CAAC;EAEF,OAAOP,OAAO;AAChB;AAEA,OAAO,SAASG,qBAAqBA,CACnCF,KAAQ,EACR;EAAEgB,qBAAqB,GAAG;AAAK,CAAC,GAAG,CAAC,CAAC,EACrC;EACA,MAAMC,QAAQ,GAAGd,MAAM,CAACc,QAAQ,CAACjB,KAAK,CAAC;EACvC,MAAMkB,QAAQ,GAAGD,QAAQ,GAAAE,aAAA,KAAQnB,KAAK,IAAKA,KAAK;EAEhD,KAAK,MAAMoB,GAAG,IAAIpB,KAAK,EAAE;IACvB,IAAIoB,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAACC,IAAI,CAACF,GAAG,CAAC,IAAI,CAAC,OAAO,CAACE,IAAI,CAACF,GAAG,CAAC,EAAE;MAClE,MAAMG,MAAM,GAAG5B,WAAW,CAACyB,GAAG,CAAC;MAC/B,IAAIJ,qBAAqB,IAAIE,QAAQ,CAACK,MAAM,CAAC,KAAKC,SAAS,EAAE;QAC3DN,QAAQ,CAACvB,WAAW,CAACyB,GAAG,CAAC,CAAC,GAAGpB,KAAK,CAACoB,GAAG,CAAC;MACzC;MACA,OAAOF,QAAQ,CAACE,GAAG,CAAC;IACtB;EACF;EAEA,OAAOH,QAAQ,GAAGd,MAAM,CAACsB,MAAM,CAACP,QAAQ,CAAC,GAAGA,QAAQ;AACtD"}
|
|
@@ -291,18 +291,23 @@ $breakpoint-offset: 0;
|
|
|
291
291
|
// @include allAbove(medium){ styles go here.. }
|
|
292
292
|
// $offset and $list are needed to provide global customization options
|
|
293
293
|
@mixin allAbove($size, $offset: $breakpoint-offset, $list: $breakpoints) {
|
|
294
|
-
@media screen and (min-width: (if(map-has-key($list, $size), map-get($list, $size),
|
|
294
|
+
@media screen and (min-width: (if(map-has-key($list, $size), map-get($list, $size), $size) + $offset + 0.00625)) {
|
|
295
295
|
@content;
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
@mixin allBelow($size, $offset: $breakpoint-offset, $list: $breakpoints) {
|
|
299
|
-
@media screen and (max-width: (if(map-has-key($list, $size), map-get($list, $size),
|
|
299
|
+
@media screen and (max-width: (if(map-has-key($list, $size), map-get($list, $size), $size) + $offset)) {
|
|
300
300
|
@content;
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
|
-
@mixin allBetween(
|
|
304
|
-
|
|
305
|
-
|
|
303
|
+
@mixin allBetween(
|
|
304
|
+
$fromSize,
|
|
305
|
+
$toSize,
|
|
306
|
+
$fromOffset: $breakpoint-offset,
|
|
307
|
+
$toOffset: $breakpoint-offset
|
|
308
|
+
) {
|
|
309
|
+
@include allBelow($toSize, $toOffset) {
|
|
310
|
+
@include allAbove($fromSize, $fromOffset) {
|
|
306
311
|
@content;
|
|
307
312
|
}
|
|
308
313
|
}
|