@dnb/eufemia 10.18.0 → 10.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +67 -0
- package/cjs/components/AriaLive.d.ts +12 -0
- package/cjs/components/AriaLive.js +24 -0
- package/cjs/components/AriaLive.js.map +1 -0
- package/cjs/components/accordion/AccordionContent.d.ts +1 -1
- package/cjs/components/accordion/AccordionContent.js.map +1 -1
- package/cjs/components/accordion/style/dnb-accordion.css +0 -3
- package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
- package/cjs/components/accordion/style/dnb-accordion.scss +0 -5
- package/cjs/components/aria-live/AriaLive.d.ts +6 -0
- package/cjs/components/aria-live/AriaLive.js +23 -0
- package/cjs/components/aria-live/AriaLive.js.map +1 -0
- package/cjs/components/aria-live/index.d.ts +7 -0
- package/cjs/components/aria-live/index.js +24 -0
- package/cjs/components/aria-live/index.js.map +1 -0
- package/cjs/components/aria-live/types.d.ts +44 -0
- package/cjs/components/aria-live/types.js +1 -0
- package/cjs/components/aria-live/types.js.map +1 -0
- package/cjs/components/aria-live/useAriaLive.d.ts +273 -0
- package/cjs/components/aria-live/useAriaLive.js +84 -0
- package/cjs/components/aria-live/useAriaLive.js.map +1 -0
- package/cjs/components/autocomplete/Autocomplete.d.ts +0 -1
- package/cjs/components/autocomplete/Autocomplete.js +24 -46
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/breadcrumb/Breadcrumb.js +24 -21
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbItem.js +16 -7
- package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbMultiple.js +1 -1
- package/cjs/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
- package/cjs/components/card/Card.d.ts +6 -4
- package/cjs/components/card/Card.js +11 -15
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +29 -0
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +41 -0
- package/cjs/components/card/style/themes/dnb-card-theme-ui.css +1 -19
- package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
- package/cjs/components/date-picker/DatePicker.d.ts +3 -0
- package/cjs/components/date-picker/DatePickerProvider.js +9 -5
- package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
- package/cjs/components/flex/Container.d.ts +4 -2
- package/cjs/components/flex/Container.js +28 -9
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/Item.js +8 -13
- package/cjs/components/flex/Item.js.map +1 -1
- package/cjs/components/flex/style/dnb-flex.css +6 -3
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/flex/style/flex-container.scss +6 -7
- package/cjs/components/flex/utils.d.ts +35 -7
- package/cjs/components/flex/utils.js +65 -33
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/form-status/FormStatus.d.ts +5 -1
- package/cjs/components/form-status/FormStatus.js +38 -44
- package/cjs/components/form-status/FormStatus.js.map +1 -1
- package/cjs/components/form-status/style/dnb-form-status.css +0 -18
- package/cjs/components/form-status/style/dnb-form-status.min.css +1 -1
- package/cjs/components/form-status/style/dnb-form-status.scss +0 -45
- package/cjs/components/global-status/GlobalStatus.js +52 -138
- package/cjs/components/global-status/GlobalStatus.js.map +1 -1
- package/cjs/components/global-status/style/dnb-global-status.css +6 -16
- package/cjs/components/global-status/style/dnb-global-status.min.css +1 -1
- package/cjs/components/global-status/style/dnb-global-status.scss +11 -23
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
- package/cjs/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
- package/cjs/components/height-animation/HeightAnimation.d.ts +12 -4
- package/cjs/components/height-animation/HeightAnimation.js +31 -14
- package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
- package/cjs/components/height-animation/HeightAnimationInstance.d.ts +35 -18
- package/cjs/components/height-animation/HeightAnimationInstance.js +186 -158
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/height-animation/style/dnb-height-animation.css +16 -2
- package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/cjs/components/height-animation/style/dnb-height-animation.scss +18 -2
- package/cjs/components/height-animation/useHeightAnimation.d.ts +6 -1
- package/cjs/components/height-animation/useHeightAnimation.js +125 -92
- package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
- package/cjs/components/index.d.ts +2 -1
- package/cjs/components/index.js +7 -0
- package/cjs/components/index.js.map +1 -1
- package/cjs/components/input/Input.js +0 -3
- package/cjs/components/input/Input.js.map +1 -1
- package/cjs/components/input-masked/MultiInputMask.d.ts +1 -1
- package/cjs/components/input-masked/MultiInputMask.js +52 -41
- package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
- package/cjs/components/lib.d.ts +3 -1
- package/cjs/components/lib.js +8 -0
- package/cjs/components/lib.js.map +1 -1
- package/cjs/components/number-format/NumberFormat.d.ts +7 -12
- package/cjs/components/number-format/NumberUtils.d.ts +8 -2
- package/cjs/components/number-format/useNumberFormat.d.ts +1 -1
- package/cjs/components/section/Section.d.ts +6 -3
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/section/style/dnb-section.css +1 -0
- package/cjs/components/section/style/dnb-section.min.css +1 -1
- package/cjs/components/section/style/dnb-section.scss +1 -0
- package/cjs/components/space/SpacingUtils.js +5 -1
- package/cjs/components/space/SpacingUtils.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorItem.js +3 -21
- package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +2 -16
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/step-indicator/style/dnb-step-indicator.css +0 -5
- package/cjs/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
- package/cjs/components/step-indicator/style/dnb-step-indicator.scss +0 -7
- package/cjs/components/table/TableAccordion.js +1 -1
- package/cjs/components/table/TableAccordion.js.map +1 -1
- package/cjs/components/table/TableAccordionContent.js +51 -23
- package/cjs/components/table/TableAccordionContent.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +6 -3
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/table-accordion.scss +6 -3
- package/cjs/components/tabs/Tabs.js +2 -1
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/tabs/TabsContentWrapper.d.ts +1 -0
- package/cjs/components/tabs/TabsContentWrapper.js +8 -6
- package/cjs/components/tabs/TabsContentWrapper.js.map +1 -1
- package/cjs/components/textarea/Textarea.d.ts +5 -0
- package/cjs/components/textarea/Textarea.js +16 -3
- package/cjs/components/textarea/Textarea.js.map +1 -1
- package/cjs/components/textarea/style/dnb-textarea.css +10 -3
- package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
- package/cjs/components/textarea/style/dnb-textarea.scss +13 -3
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
- package/cjs/components/upload/Upload.js +15 -18
- package/cjs/components/upload/Upload.js.map +1 -1
- package/cjs/components/upload/UploadFileInput.js +3 -1
- package/cjs/components/upload/UploadFileInput.js.map +1 -1
- package/cjs/components/upload/UploadFileList.js +1 -1
- package/cjs/components/upload/UploadFileList.js.map +1 -1
- package/cjs/components/upload/UploadStatus.js +6 -2
- package/cjs/components/upload/UploadStatus.js.map +1 -1
- package/cjs/components/upload/useUpload.js +5 -6
- package/cjs/components/upload/useUpload.js.map +1 -1
- package/cjs/elements/lib.d.ts +6 -0
- package/cjs/elements/typography/H1.d.ts +1 -0
- package/cjs/elements/typography/H1.js +1 -1
- package/cjs/elements/typography/H1.js.map +1 -1
- package/cjs/elements/typography/H2.d.ts +1 -0
- package/cjs/elements/typography/H2.js +1 -1
- package/cjs/elements/typography/H2.js.map +1 -1
- package/cjs/elements/typography/H3.d.ts +1 -0
- package/cjs/elements/typography/H3.js +1 -1
- package/cjs/elements/typography/H3.js.map +1 -1
- package/cjs/elements/typography/H4.d.ts +1 -0
- package/cjs/elements/typography/H4.js +1 -1
- package/cjs/elements/typography/H4.js.map +1 -1
- package/cjs/elements/typography/H5.d.ts +1 -0
- package/cjs/elements/typography/H5.js +1 -1
- package/cjs/elements/typography/H5.js.map +1 -1
- package/cjs/elements/typography/H6.d.ts +1 -0
- package/cjs/elements/typography/H6.js +1 -1
- package/cjs/elements/typography/H6.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +18 -5
- package/cjs/extensions/forms/DataContext/Context.js +9 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +128 -48
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -1
- package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -4
- package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Currency/Currency.d.ts +2 -2
- package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Field/Date/Date.js +8 -4
- package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Field/Email/Email.d.ts +2 -2
- package/cjs/extensions/forms/Field/Email/Email.js +5 -4
- package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Field/Expiry/Expiry.js +18 -16
- package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -4
- package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -4
- package/cjs/extensions/forms/Field/Number/Number.js +28 -27
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.css +0 -6
- package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
- package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -4
- package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +15 -7
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +9 -0
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/cjs/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +7 -0
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +9 -5
- package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/cjs/extensions/forms/Field/Selection/Selection.js +12 -7
- package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/cjs/extensions/forms/Field/String/String.d.ts +4 -2
- package/cjs/extensions/forms/Field/String/String.js +17 -9
- package/cjs/extensions/forms/Field/String/String.js.map +1 -1
- package/cjs/extensions/forms/Field/Toggle/Toggle.js +20 -13
- package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -8
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +22 -5
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +29 -1
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
- package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +7 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +54 -39
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/getData.d.ts +8 -0
- package/cjs/extensions/forms/Form/data-context/getData.js +21 -0
- package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -0
- package/cjs/extensions/forms/Form/data-context/setData.d.ts +2 -0
- package/cjs/extensions/forms/Form/data-context/setData.js +12 -0
- package/cjs/extensions/forms/Form/data-context/setData.js.map +1 -0
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +22 -0
- package/cjs/extensions/forms/Form/data-context/useData.js +65 -0
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -0
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +5 -0
- package/cjs/extensions/forms/Form/data-context/useError.js +18 -0
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -0
- package/cjs/extensions/forms/Form/index.d.ts +4 -1
- package/cjs/extensions/forms/Form/index.js +22 -1
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/Array.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/Array/Array.js +3 -1
- package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +30 -21
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/Currency/Currency.d.ts +2 -2
- package/cjs/extensions/forms/Value/Currency/Currency.js +2 -3
- package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/Date.d.ts +2 -2
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Email/Email.d.ts +2 -2
- package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/Number.d.ts +6 -10
- package/cjs/extensions/forms/Value/Number/Number.js +25 -27
- package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +6 -4
- package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/hooks/index.d.ts +1 -0
- package/cjs/extensions/forms/hooks/index.js +7 -0
- package/cjs/extensions/forms/hooks/index.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +10 -1
- package/cjs/extensions/forms/hooks/useDataValue.js +87 -28
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
- package/cjs/extensions/forms/hooks/useErrorMessage.js +23 -0
- package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -0
- package/cjs/extensions/forms/index.d.ts +1 -0
- package/cjs/extensions/forms/index.js +9 -1
- package/cjs/extensions/forms/index.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +37 -11
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +26 -9
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/forms/utils/ajv.d.ts +47 -6
- package/cjs/extensions/forms/utils/ajv.js +29 -13
- package/cjs/extensions/forms/utils/ajv.js.map +1 -1
- package/cjs/extensions/forms/utils/index.d.ts +0 -1
- package/cjs/extensions/forms/utils/index.js +0 -12
- package/cjs/extensions/forms/utils/index.js.map +1 -1
- package/cjs/fragments/TextCounter.d.ts +12 -0
- package/cjs/fragments/TextCounter.js +24 -0
- package/cjs/fragments/TextCounter.js.map +1 -0
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -0
- package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/cjs/fragments/index.d.ts +2 -1
- package/cjs/fragments/index.js +7 -0
- package/cjs/fragments/index.js.map +1 -1
- package/cjs/fragments/lib.d.ts +3 -1
- package/cjs/fragments/lib.js +9 -1
- package/cjs/fragments/lib.js.map +1 -1
- package/cjs/fragments/text-counter/TextCounter.d.ts +8 -0
- package/cjs/fragments/text-counter/TextCounter.js +61 -0
- package/cjs/fragments/text-counter/TextCounter.js.map +1 -0
- package/cjs/fragments/text-counter/index.d.ts +5 -0
- package/cjs/fragments/text-counter/index.js +17 -0
- package/cjs/fragments/text-counter/index.js.map +1 -0
- package/cjs/fragments/text-counter/style/dnb-text-counter.scss +15 -0
- package/cjs/fragments/text-counter/style/index.d.ts +1 -0
- package/cjs/fragments/text-counter/style/index.js +4 -0
- package/cjs/fragments/text-counter/style/index.js.map +1 -0
- package/cjs/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
- package/cjs/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
- package/cjs/fragments/text-counter/style/themes/ui.d.ts +1 -0
- package/cjs/fragments/text-counter/style/themes/ui.js +4 -0
- package/cjs/fragments/text-counter/style/themes/ui.js.map +1 -0
- package/cjs/fragments/text-counter/style.d.ts +5 -0
- package/cjs/fragments/text-counter/style.js +4 -0
- package/cjs/fragments/text-counter/style.js.map +1 -0
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.js +0 -3
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/helpers/useSharedState.d.ts +33 -10
- package/cjs/shared/helpers/useSharedState.js +78 -40
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/locales/en-GB.d.ts +7 -0
- package/cjs/shared/locales/en-GB.js +9 -2
- package/cjs/shared/locales/en-GB.js.map +1 -1
- package/cjs/shared/locales/en-US.d.ts +7 -0
- package/cjs/shared/locales/index.d.ts +14 -0
- package/cjs/shared/locales/nb-NO.d.ts +7 -0
- package/cjs/shared/locales/nb-NO.js +7 -0
- package/cjs/shared/locales/nb-NO.js.map +1 -1
- package/cjs/style/core/utilities.scss +1 -1
- package/cjs/style/dnb-ui-components.css +134 -67
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-extensions.css +37 -11
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +37 -11
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/dnb-ui-fragments.css +10 -0
- package/cjs/style/dnb-ui-fragments.min.css +1 -1
- package/cjs/style/dnb-ui-fragments.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +203 -102
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -11
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -11
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +188 -97
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -11
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -11
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +203 -102
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +7 -7
- package/cjs/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +46 -11
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +46 -11
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/components/AriaLive.d.ts +12 -0
- package/components/AriaLive.js +4 -0
- package/components/AriaLive.js.map +1 -0
- package/components/accordion/AccordionContent.d.ts +1 -1
- package/components/accordion/AccordionContent.js.map +1 -1
- package/components/accordion/style/dnb-accordion.css +0 -3
- package/components/accordion/style/dnb-accordion.min.css +1 -1
- package/components/accordion/style/dnb-accordion.scss +0 -5
- package/components/aria-live/AriaLive.d.ts +6 -0
- package/components/aria-live/AriaLive.js +15 -0
- package/components/aria-live/AriaLive.js.map +1 -0
- package/components/aria-live/index.d.ts +7 -0
- package/components/aria-live/index.js +4 -0
- package/components/aria-live/index.js.map +1 -0
- package/components/aria-live/types.d.ts +44 -0
- package/components/aria-live/types.js +1 -0
- package/components/aria-live/types.js.map +1 -0
- package/components/aria-live/useAriaLive.d.ts +273 -0
- package/components/aria-live/useAriaLive.js +75 -0
- package/components/aria-live/useAriaLive.js.map +1 -0
- package/components/autocomplete/Autocomplete.d.ts +0 -1
- package/components/autocomplete/Autocomplete.js +24 -46
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/breadcrumb/Breadcrumb.js +25 -22
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/breadcrumb/BreadcrumbItem.js +16 -7
- package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/components/breadcrumb/BreadcrumbMultiple.js +1 -1
- package/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
- package/components/card/Card.d.ts +6 -4
- package/components/card/Card.js +11 -15
- package/components/card/Card.js.map +1 -1
- package/components/card/style/dnb-card.css +29 -0
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +41 -0
- package/components/card/style/themes/dnb-card-theme-ui.css +1 -19
- package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
- package/components/date-picker/DatePicker.d.ts +3 -0
- package/components/date-picker/DatePickerProvider.js +9 -5
- package/components/date-picker/DatePickerProvider.js.map +1 -1
- package/components/flex/Container.d.ts +4 -2
- package/components/flex/Container.js +26 -9
- package/components/flex/Container.js.map +1 -1
- package/components/flex/Item.js +8 -11
- package/components/flex/Item.js.map +1 -1
- package/components/flex/style/dnb-flex.css +6 -3
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/flex/style/flex-container.scss +6 -7
- package/components/flex/utils.d.ts +35 -7
- package/components/flex/utils.js +56 -24
- package/components/flex/utils.js.map +1 -1
- package/components/form-status/FormStatus.d.ts +5 -1
- package/components/form-status/FormStatus.js +38 -44
- package/components/form-status/FormStatus.js.map +1 -1
- package/components/form-status/style/dnb-form-status.css +0 -18
- package/components/form-status/style/dnb-form-status.min.css +1 -1
- package/components/form-status/style/dnb-form-status.scss +0 -45
- package/components/global-status/GlobalStatus.js +53 -139
- package/components/global-status/GlobalStatus.js.map +1 -1
- package/components/global-status/style/dnb-global-status.css +6 -16
- package/components/global-status/style/dnb-global-status.min.css +1 -1
- package/components/global-status/style/dnb-global-status.scss +11 -23
- package/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
- package/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
- package/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
- package/components/height-animation/HeightAnimation.d.ts +12 -4
- package/components/height-animation/HeightAnimation.js +27 -14
- package/components/height-animation/HeightAnimation.js.map +1 -1
- package/components/height-animation/HeightAnimationInstance.d.ts +35 -18
- package/components/height-animation/HeightAnimationInstance.js +186 -158
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/height-animation/style/dnb-height-animation.css +16 -2
- package/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/components/height-animation/style/dnb-height-animation.scss +18 -2
- package/components/height-animation/useHeightAnimation.d.ts +6 -1
- package/components/height-animation/useHeightAnimation.js +124 -92
- package/components/height-animation/useHeightAnimation.js.map +1 -1
- package/components/index.d.ts +2 -1
- package/components/index.js +2 -1
- package/components/index.js.map +1 -1
- package/components/input/Input.js +0 -3
- package/components/input/Input.js.map +1 -1
- package/components/input-masked/MultiInputMask.d.ts +1 -1
- package/components/input-masked/MultiInputMask.js +52 -41
- package/components/input-masked/MultiInputMask.js.map +1 -1
- package/components/lib.d.ts +3 -1
- package/components/lib.js +3 -1
- package/components/lib.js.map +1 -1
- package/components/number-format/NumberFormat.d.ts +7 -12
- package/components/number-format/NumberUtils.d.ts +8 -2
- package/components/number-format/useNumberFormat.d.ts +1 -1
- package/components/section/Section.d.ts +6 -3
- package/components/section/Section.js.map +1 -1
- package/components/section/style/dnb-section.css +1 -0
- package/components/section/style/dnb-section.min.css +1 -1
- package/components/section/style/dnb-section.scss +1 -0
- package/components/space/SpacingUtils.js +5 -1
- package/components/space/SpacingUtils.js.map +1 -1
- package/components/step-indicator/StepIndicatorItem.js +4 -22
- package/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js +3 -17
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/step-indicator/style/dnb-step-indicator.css +0 -5
- package/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
- package/components/step-indicator/style/dnb-step-indicator.scss +0 -7
- package/components/table/TableAccordion.js +1 -1
- package/components/table/TableAccordion.js.map +1 -1
- package/components/table/TableAccordionContent.js +48 -23
- package/components/table/TableAccordionContent.js.map +1 -1
- package/components/table/style/dnb-table.css +6 -3
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/table-accordion.scss +6 -3
- package/components/tabs/Tabs.js +2 -1
- package/components/tabs/Tabs.js.map +1 -1
- package/components/tabs/TabsContentWrapper.d.ts +1 -0
- package/components/tabs/TabsContentWrapper.js +8 -6
- package/components/tabs/TabsContentWrapper.js.map +1 -1
- package/components/textarea/Textarea.d.ts +5 -0
- package/components/textarea/Textarea.js +16 -3
- package/components/textarea/Textarea.js.map +1 -1
- package/components/textarea/style/dnb-textarea.css +10 -3
- package/components/textarea/style/dnb-textarea.min.css +1 -1
- package/components/textarea/style/dnb-textarea.scss +13 -3
- package/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
- package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
- package/components/upload/Upload.js +13 -18
- package/components/upload/Upload.js.map +1 -1
- package/components/upload/UploadFileInput.js +3 -1
- package/components/upload/UploadFileInput.js.map +1 -1
- package/components/upload/UploadFileList.js +1 -1
- package/components/upload/UploadFileList.js.map +1 -1
- package/components/upload/UploadStatus.js +6 -2
- package/components/upload/UploadStatus.js.map +1 -1
- package/components/upload/useUpload.js +5 -7
- package/components/upload/useUpload.js.map +1 -1
- package/elements/lib.d.ts +6 -0
- package/elements/typography/H1.d.ts +1 -0
- package/elements/typography/H1.js +1 -1
- package/elements/typography/H1.js.map +1 -1
- package/elements/typography/H2.d.ts +1 -0
- package/elements/typography/H2.js +1 -1
- package/elements/typography/H2.js.map +1 -1
- package/elements/typography/H3.d.ts +1 -0
- package/elements/typography/H3.js +1 -1
- package/elements/typography/H3.js.map +1 -1
- package/elements/typography/H4.d.ts +1 -0
- package/elements/typography/H4.js +1 -1
- package/elements/typography/H4.js.map +1 -1
- package/elements/typography/H5.d.ts +1 -0
- package/elements/typography/H5.js +1 -1
- package/elements/typography/H5.js.map +1 -1
- package/elements/typography/H6.d.ts +1 -0
- package/elements/typography/H6.js +1 -1
- package/elements/typography/H6.js.map +1 -1
- package/es/components/AriaLive.d.ts +12 -0
- package/es/components/AriaLive.js +4 -0
- package/es/components/AriaLive.js.map +1 -0
- package/es/components/accordion/AccordionContent.d.ts +1 -1
- package/es/components/accordion/AccordionContent.js.map +1 -1
- package/es/components/accordion/style/dnb-accordion.css +0 -3
- package/es/components/accordion/style/dnb-accordion.min.css +1 -1
- package/es/components/accordion/style/dnb-accordion.scss +0 -5
- package/es/components/aria-live/AriaLive.d.ts +6 -0
- package/es/components/aria-live/AriaLive.js +15 -0
- package/es/components/aria-live/AriaLive.js.map +1 -0
- package/es/components/aria-live/index.d.ts +7 -0
- package/es/components/aria-live/index.js +4 -0
- package/es/components/aria-live/index.js.map +1 -0
- package/es/components/aria-live/types.d.ts +44 -0
- package/es/components/aria-live/types.js +1 -0
- package/es/components/aria-live/types.js.map +1 -0
- package/es/components/aria-live/useAriaLive.d.ts +273 -0
- package/es/components/aria-live/useAriaLive.js +75 -0
- package/es/components/aria-live/useAriaLive.js.map +1 -0
- package/es/components/autocomplete/Autocomplete.d.ts +0 -1
- package/es/components/autocomplete/Autocomplete.js +24 -46
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/breadcrumb/Breadcrumb.js +25 -22
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbItem.js +16 -7
- package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbMultiple.js +1 -1
- package/es/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
- package/es/components/card/Card.d.ts +6 -4
- package/es/components/card/Card.js +11 -15
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/style/dnb-card.css +29 -0
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +41 -0
- package/es/components/card/style/themes/dnb-card-theme-ui.css +1 -19
- package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
- package/es/components/card/style/themes/dnb-card-theme-ui.scss +1 -27
- package/es/components/date-picker/DatePicker.d.ts +3 -0
- package/es/components/date-picker/DatePickerProvider.js +9 -5
- package/es/components/date-picker/DatePickerProvider.js.map +1 -1
- package/es/components/flex/Container.d.ts +4 -2
- package/es/components/flex/Container.js +26 -9
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/Item.js +8 -11
- package/es/components/flex/Item.js.map +1 -1
- package/es/components/flex/style/dnb-flex.css +6 -3
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/flex/style/flex-container.scss +6 -7
- package/es/components/flex/utils.d.ts +35 -7
- package/es/components/flex/utils.js +55 -24
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/form-status/FormStatus.d.ts +5 -1
- package/es/components/form-status/FormStatus.js +38 -44
- package/es/components/form-status/FormStatus.js.map +1 -1
- package/es/components/form-status/style/dnb-form-status.css +0 -18
- package/es/components/form-status/style/dnb-form-status.min.css +1 -1
- package/es/components/form-status/style/dnb-form-status.scss +0 -45
- package/es/components/global-status/GlobalStatus.js +51 -133
- package/es/components/global-status/GlobalStatus.js.map +1 -1
- package/es/components/global-status/style/dnb-global-status.css +6 -16
- package/es/components/global-status/style/dnb-global-status.min.css +1 -1
- package/es/components/global-status/style/dnb-global-status.scss +11 -23
- package/es/components/global-status/style/themes/dnb-global-status-theme-ui.css +0 -3
- package/es/components/global-status/style/themes/dnb-global-status-theme-ui.min.css +1 -1
- package/es/components/global-status/style/themes/dnb-global-status-theme-ui.scss +0 -10
- package/es/components/height-animation/HeightAnimation.d.ts +12 -4
- package/es/components/height-animation/HeightAnimation.js +27 -14
- package/es/components/height-animation/HeightAnimation.js.map +1 -1
- package/es/components/height-animation/HeightAnimationInstance.d.ts +35 -18
- package/es/components/height-animation/HeightAnimationInstance.js +188 -155
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/height-animation/style/dnb-height-animation.css +16 -2
- package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
- package/es/components/height-animation/style/dnb-height-animation.scss +18 -2
- package/es/components/height-animation/useHeightAnimation.d.ts +6 -1
- package/es/components/height-animation/useHeightAnimation.js +124 -92
- package/es/components/height-animation/useHeightAnimation.js.map +1 -1
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/index.js.map +1 -1
- package/es/components/input/Input.js +0 -3
- package/es/components/input/Input.js.map +1 -1
- package/es/components/input-masked/MultiInputMask.d.ts +1 -1
- package/es/components/input-masked/MultiInputMask.js +50 -39
- package/es/components/input-masked/MultiInputMask.js.map +1 -1
- package/es/components/lib.d.ts +3 -1
- package/es/components/lib.js +3 -1
- package/es/components/lib.js.map +1 -1
- package/es/components/number-format/NumberFormat.d.ts +7 -12
- package/es/components/number-format/NumberUtils.d.ts +8 -2
- package/es/components/number-format/useNumberFormat.d.ts +1 -1
- package/es/components/section/Section.d.ts +6 -3
- package/es/components/section/Section.js.map +1 -1
- package/es/components/section/style/dnb-section.css +1 -0
- package/es/components/section/style/dnb-section.min.css +1 -1
- package/es/components/section/style/dnb-section.scss +1 -0
- package/es/components/space/SpacingUtils.js +5 -1
- package/es/components/space/SpacingUtils.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorItem.js +4 -22
- package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js +3 -17
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/step-indicator/style/dnb-step-indicator.css +0 -5
- package/es/components/step-indicator/style/dnb-step-indicator.min.css +1 -1
- package/es/components/step-indicator/style/dnb-step-indicator.scss +0 -7
- package/es/components/table/TableAccordion.js +1 -1
- package/es/components/table/TableAccordion.js.map +1 -1
- package/es/components/table/TableAccordionContent.js +47 -23
- package/es/components/table/TableAccordionContent.js.map +1 -1
- package/es/components/table/style/dnb-table.css +6 -3
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/table-accordion.scss +6 -3
- package/es/components/tabs/Tabs.js +2 -1
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/tabs/TabsContentWrapper.d.ts +1 -0
- package/es/components/tabs/TabsContentWrapper.js +8 -6
- package/es/components/tabs/TabsContentWrapper.js.map +1 -1
- package/es/components/textarea/Textarea.d.ts +5 -0
- package/es/components/textarea/Textarea.js +16 -3
- package/es/components/textarea/Textarea.js.map +1 -1
- package/es/components/textarea/style/dnb-textarea.css +10 -3
- package/es/components/textarea/style/dnb-textarea.min.css +1 -1
- package/es/components/textarea/style/dnb-textarea.scss +13 -3
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
- package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
- package/es/components/upload/Upload.js +13 -18
- package/es/components/upload/Upload.js.map +1 -1
- package/es/components/upload/UploadFileInput.js +3 -1
- package/es/components/upload/UploadFileInput.js.map +1 -1
- package/es/components/upload/UploadFileList.js +1 -1
- package/es/components/upload/UploadFileList.js.map +1 -1
- package/es/components/upload/UploadStatus.js +6 -2
- package/es/components/upload/UploadStatus.js.map +1 -1
- package/es/components/upload/useUpload.js +5 -7
- package/es/components/upload/useUpload.js.map +1 -1
- package/es/elements/lib.d.ts +6 -0
- package/es/elements/typography/H1.d.ts +1 -0
- package/es/elements/typography/H1.js +1 -1
- package/es/elements/typography/H1.js.map +1 -1
- package/es/elements/typography/H2.d.ts +1 -0
- package/es/elements/typography/H2.js +1 -1
- package/es/elements/typography/H2.js.map +1 -1
- package/es/elements/typography/H3.d.ts +1 -0
- package/es/elements/typography/H3.js +1 -1
- package/es/elements/typography/H3.js.map +1 -1
- package/es/elements/typography/H4.d.ts +1 -0
- package/es/elements/typography/H4.js +1 -1
- package/es/elements/typography/H4.js.map +1 -1
- package/es/elements/typography/H5.d.ts +1 -0
- package/es/elements/typography/H5.js +1 -1
- package/es/elements/typography/H5.js.map +1 -1
- package/es/elements/typography/H6.d.ts +1 -0
- package/es/elements/typography/H6.js +1 -1
- package/es/elements/typography/H6.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +18 -5
- package/es/extensions/forms/DataContext/Context.js +9 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
- package/es/extensions/forms/DataContext/Provider/Provider.js +127 -49
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +5 -3
- package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -5
- package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
- package/es/extensions/forms/Field/Boolean/Boolean.js +2 -2
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Currency/Currency.d.ts +2 -2
- package/es/extensions/forms/Field/Currency/Currency.js +2 -2
- package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Field/Date/Date.js +8 -4
- package/es/extensions/forms/Field/Date/Date.js.map +1 -1
- package/es/extensions/forms/Field/Email/Email.d.ts +2 -2
- package/es/extensions/forms/Field/Email/Email.js +7 -6
- package/es/extensions/forms/Field/Email/Email.js.map +1 -1
- package/es/extensions/forms/Field/Expiry/Expiry.js +19 -17
- package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -5
- package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.d.ts +2 -4
- package/es/extensions/forms/Field/Number/Number.js +28 -27
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.css +0 -6
- package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
- package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -5
- package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +17 -9
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -3
- package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +9 -0
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/es/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +7 -0
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +9 -5
- package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/es/extensions/forms/Field/Selection/Selection.js +15 -10
- package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/es/extensions/forms/Field/String/String.d.ts +4 -2
- package/es/extensions/forms/Field/String/String.js +17 -9
- package/es/extensions/forms/Field/String/String.js.map +1 -1
- package/es/extensions/forms/Field/Toggle/Toggle.js +20 -13
- package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -8
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +22 -5
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +29 -1
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
- package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +7 -1
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
- package/es/extensions/forms/Form/Visibility/Visibility.js +55 -40
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/getData.d.ts +8 -0
- package/es/extensions/forms/Form/data-context/getData.js +15 -0
- package/es/extensions/forms/Form/data-context/getData.js.map +1 -0
- package/es/extensions/forms/Form/data-context/setData.d.ts +2 -0
- package/es/extensions/forms/Form/data-context/setData.js +6 -0
- package/es/extensions/forms/Form/data-context/setData.js.map +1 -0
- package/es/extensions/forms/Form/data-context/useData.d.ts +22 -0
- package/es/extensions/forms/Form/data-context/useData.js +58 -0
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -0
- package/es/extensions/forms/Form/data-context/useError.d.ts +5 -0
- package/es/extensions/forms/Form/data-context/useError.js +13 -0
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -0
- package/es/extensions/forms/Form/index.d.ts +4 -1
- package/es/extensions/forms/Form/index.js +4 -1
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/Array.d.ts +2 -2
- package/es/extensions/forms/Iterate/Array/Array.js +3 -1
- package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
- package/es/extensions/forms/StepsLayout/StepsLayout.js +31 -22
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +2 -2
- package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/es/extensions/forms/Value/Currency/Currency.d.ts +2 -2
- package/es/extensions/forms/Value/Currency/Currency.js +4 -5
- package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/es/extensions/forms/Value/Date/Date.d.ts +2 -2
- package/es/extensions/forms/Value/Date/Date.js +2 -2
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Email/Email.d.ts +2 -2
- package/es/extensions/forms/Value/Email/Email.js +2 -2
- package/es/extensions/forms/Value/Email/Email.js.map +1 -1
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +2 -2
- package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/es/extensions/forms/Value/Number/Number.d.ts +6 -10
- package/es/extensions/forms/Value/Number/Number.js +22 -27
- package/es/extensions/forms/Value/Number/Number.js.map +1 -1
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +8 -6
- package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/hooks/index.d.ts +1 -0
- package/es/extensions/forms/hooks/index.js +1 -0
- package/es/extensions/forms/hooks/index.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +10 -1
- package/es/extensions/forms/hooks/useDataValue.js +81 -24
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
- package/es/extensions/forms/hooks/useErrorMessage.js +15 -0
- package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -0
- package/es/extensions/forms/index.d.ts +1 -0
- package/es/extensions/forms/index.js +1 -0
- package/es/extensions/forms/index.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +37 -11
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +26 -9
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/forms/utils/ajv.d.ts +47 -6
- package/es/extensions/forms/utils/ajv.js +23 -15
- package/es/extensions/forms/utils/ajv.js.map +1 -1
- package/es/extensions/forms/utils/index.d.ts +0 -1
- package/es/extensions/forms/utils/index.js +0 -1
- package/es/extensions/forms/utils/index.js.map +1 -1
- package/es/fragments/TextCounter.d.ts +12 -0
- package/es/fragments/TextCounter.js +4 -0
- package/es/fragments/TextCounter.js.map +1 -0
- package/es/fragments/drawer-list/DrawerListHelpers.js +1 -0
- package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/es/fragments/index.d.ts +2 -1
- package/es/fragments/index.js +2 -1
- package/es/fragments/index.js.map +1 -1
- package/es/fragments/lib.d.ts +3 -1
- package/es/fragments/lib.js +4 -2
- package/es/fragments/lib.js.map +1 -1
- package/es/fragments/text-counter/TextCounter.d.ts +8 -0
- package/es/fragments/text-counter/TextCounter.js +52 -0
- package/es/fragments/text-counter/TextCounter.js.map +1 -0
- package/es/fragments/text-counter/index.d.ts +5 -0
- package/es/fragments/text-counter/index.js +1 -0
- package/es/fragments/text-counter/index.js.map +1 -0
- package/es/fragments/text-counter/style/dnb-text-counter.scss +15 -0
- package/es/fragments/text-counter/style/index.d.ts +1 -0
- package/es/fragments/text-counter/style/index.js +1 -0
- package/es/fragments/text-counter/style/index.js.map +1 -0
- package/es/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
- package/es/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
- package/es/fragments/text-counter/style/themes/ui.d.ts +1 -0
- package/es/fragments/text-counter/style/themes/ui.js +1 -0
- package/es/fragments/text-counter/style/themes/ui.js.map +1 -0
- package/es/fragments/text-counter/style.d.ts +5 -0
- package/es/fragments/text-counter/style.js +1 -0
- package/es/fragments/text-counter/style.js.map +1 -0
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/index.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.js +0 -3
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/helpers/useSharedState.d.ts +33 -10
- package/es/shared/helpers/useSharedState.js +76 -40
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/locales/en-GB.d.ts +7 -0
- package/es/shared/locales/en-GB.js +9 -2
- package/es/shared/locales/en-GB.js.map +1 -1
- package/es/shared/locales/en-US.d.ts +7 -0
- package/es/shared/locales/index.d.ts +14 -0
- package/es/shared/locales/nb-NO.d.ts +7 -0
- package/es/shared/locales/nb-NO.js +7 -0
- package/es/shared/locales/nb-NO.js.map +1 -1
- package/es/style/core/utilities.scss +1 -1
- package/es/style/dnb-ui-components.css +134 -67
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-extensions.css +37 -11
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +37 -11
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/dnb-ui-fragments.css +10 -0
- package/es/style/dnb-ui-fragments.min.css +1 -1
- package/es/style/dnb-ui-fragments.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +203 -102
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/es/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -11
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -11
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +188 -97
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -11
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -11
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +203 -102
- package/es/style/themes/theme-ui/ui-theme-components.min.css +7 -7
- package/es/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-extensions.css +46 -11
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +46 -11
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +18 -5
- package/extensions/forms/DataContext/Context.js +9 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +57 -19
- package/extensions/forms/DataContext/Provider/Provider.js +129 -49
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/ArraySelection/ArraySelection.js +5 -3
- package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -5
- package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
- package/extensions/forms/Field/Boolean/Boolean.js +2 -2
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Currency/Currency.d.ts +2 -2
- package/extensions/forms/Field/Currency/Currency.js +2 -2
- package/extensions/forms/Field/Currency/Currency.js.map +1 -1
- package/extensions/forms/Field/Date/Date.js +8 -4
- package/extensions/forms/Field/Date/Date.js.map +1 -1
- package/extensions/forms/Field/Email/Email.d.ts +2 -2
- package/extensions/forms/Field/Email/Email.js +7 -6
- package/extensions/forms/Field/Email/Email.js.map +1 -1
- package/extensions/forms/Field/Expiry/Expiry.js +19 -17
- package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -5
- package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Field/Number/Number.d.ts +2 -4
- package/extensions/forms/Field/Number/Number.js +28 -27
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.css +0 -6
- package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
- package/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
- package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -5
- package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +17 -9
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -3
- package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.css +9 -0
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.min.css +1 -1
- package/extensions/forms/Field/PostalCodeAndCity/style/dnb-postal-code-and-city.scss +7 -0
- package/extensions/forms/Field/SelectCountry/SelectCountry.js +9 -5
- package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
- package/extensions/forms/Field/Selection/Selection.js +15 -10
- package/extensions/forms/Field/Selection/Selection.js.map +1 -1
- package/extensions/forms/Field/String/String.d.ts +4 -2
- package/extensions/forms/Field/String/String.js +17 -9
- package/extensions/forms/Field/String/String.js.map +1 -1
- package/extensions/forms/Field/Toggle/Toggle.js +20 -13
- package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js +11 -8
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +22 -5
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +29 -1
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
- package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +7 -1
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +6 -1
- package/extensions/forms/Form/Visibility/Visibility.js +53 -39
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/data-context/getData.d.ts +8 -0
- package/extensions/forms/Form/data-context/getData.js +15 -0
- package/extensions/forms/Form/data-context/getData.js.map +1 -0
- package/extensions/forms/Form/data-context/setData.d.ts +2 -0
- package/extensions/forms/Form/data-context/setData.js +6 -0
- package/extensions/forms/Form/data-context/setData.js.map +1 -0
- package/extensions/forms/Form/data-context/useData.d.ts +22 -0
- package/extensions/forms/Form/data-context/useData.js +59 -0
- package/extensions/forms/Form/data-context/useData.js.map +1 -0
- package/extensions/forms/Form/data-context/useError.d.ts +5 -0
- package/extensions/forms/Form/data-context/useError.js +13 -0
- package/extensions/forms/Form/data-context/useError.js.map +1 -0
- package/extensions/forms/Form/index.d.ts +4 -1
- package/extensions/forms/Form/index.js +4 -1
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/Array/Array.d.ts +2 -2
- package/extensions/forms/Iterate/Array/Array.js +3 -1
- package/extensions/forms/Iterate/Array/Array.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.d.ts +3 -0
- package/extensions/forms/StepsLayout/StepsLayout.js +31 -22
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +6 -0
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +7 -0
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +2 -2
- package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
- package/extensions/forms/Value/Currency/Currency.d.ts +2 -2
- package/extensions/forms/Value/Currency/Currency.js +4 -5
- package/extensions/forms/Value/Currency/Currency.js.map +1 -1
- package/extensions/forms/Value/Date/Date.d.ts +2 -2
- package/extensions/forms/Value/Date/Date.js +2 -2
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Email/Email.d.ts +2 -2
- package/extensions/forms/Value/Email/Email.js +2 -2
- package/extensions/forms/Value/Email/Email.js.map +1 -1
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +2 -2
- package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
- package/extensions/forms/Value/Number/Number.d.ts +6 -10
- package/extensions/forms/Value/Number/Number.js +22 -27
- package/extensions/forms/Value/Number/Number.js.map +1 -1
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +8 -6
- package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/hooks/index.d.ts +1 -0
- package/extensions/forms/hooks/index.js +1 -0
- package/extensions/forms/hooks/index.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +10 -1
- package/extensions/forms/hooks/useDataValue.js +85 -26
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useErrorMessage.d.ts +10 -0
- package/extensions/forms/hooks/useErrorMessage.js +15 -0
- package/extensions/forms/hooks/useErrorMessage.js.map +1 -0
- package/extensions/forms/index.d.ts +1 -0
- package/extensions/forms/index.js +1 -0
- package/extensions/forms/index.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +37 -11
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +26 -9
- package/extensions/forms/types.js.map +1 -1
- package/extensions/forms/utils/ajv.d.ts +47 -6
- package/extensions/forms/utils/ajv.js +23 -15
- package/extensions/forms/utils/ajv.js.map +1 -1
- package/extensions/forms/utils/index.d.ts +0 -1
- package/extensions/forms/utils/index.js +0 -1
- package/extensions/forms/utils/index.js.map +1 -1
- package/fragments/TextCounter.d.ts +12 -0
- package/fragments/TextCounter.js +4 -0
- package/fragments/TextCounter.js.map +1 -0
- package/fragments/drawer-list/DrawerListHelpers.js +1 -0
- package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
- package/fragments/index.d.ts +2 -1
- package/fragments/index.js +2 -1
- package/fragments/index.js.map +1 -1
- package/fragments/lib.d.ts +3 -1
- package/fragments/lib.js +4 -2
- package/fragments/lib.js.map +1 -1
- package/fragments/text-counter/TextCounter.d.ts +8 -0
- package/fragments/text-counter/TextCounter.js +52 -0
- package/fragments/text-counter/TextCounter.js.map +1 -0
- package/fragments/text-counter/index.d.ts +5 -0
- package/fragments/text-counter/index.js +1 -0
- package/fragments/text-counter/index.js.map +1 -0
- package/fragments/text-counter/style/dnb-text-counter.scss +15 -0
- package/fragments/text-counter/style/index.d.ts +1 -0
- package/fragments/text-counter/style/index.js +1 -0
- package/fragments/text-counter/style/index.js.map +1 -0
- package/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
- package/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
- package/fragments/text-counter/style/themes/ui.d.ts +1 -0
- package/fragments/text-counter/style/themes/ui.js +1 -0
- package/fragments/text-counter/style/themes/ui.js.map +1 -0
- package/fragments/text-counter/style.d.ts +5 -0
- package/fragments/text-counter/style.js +1 -0
- package/fragments/text-counter/style.js.map +1 -0
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.js +0 -3
- package/shared/component-helper.js.map +1 -1
- package/shared/helpers/useSharedState.d.ts +33 -10
- package/shared/helpers/useSharedState.js +78 -40
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/locales/en-GB.d.ts +7 -0
- package/shared/locales/en-GB.js +9 -2
- package/shared/locales/en-GB.js.map +1 -1
- package/shared/locales/en-US.d.ts +7 -0
- package/shared/locales/index.d.ts +14 -0
- package/shared/locales/nb-NO.d.ts +7 -0
- package/shared/locales/nb-NO.js +7 -0
- package/shared/locales/nb-NO.js.map +1 -1
- package/style/core/utilities.scss +1 -1
- package/style/dnb-ui-components.css +134 -67
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-extensions.css +37 -11
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +37 -11
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/dnb-ui-fragments.css +10 -0
- package/style/dnb-ui-fragments.min.css +1 -1
- package/style/dnb-ui-fragments.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.css +203 -102
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +7 -7
- package/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -11
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -11
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +188 -97
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -11
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -11
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/style/themes/theme-ui/ui-theme-components.css +203 -102
- package/style/themes/theme-ui/ui-theme-components.min.css +7 -7
- package/style/themes/theme-ui/ui-theme-components.scss +1 -0
- package/style/themes/theme-ui/ui-theme-extensions.css +46 -11
- package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +46 -11
- package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/components/global-status/AnimationHelper.d.ts +0 -12
- package/cjs/components/global-status/AnimationHelper.js +0 -109
- package/cjs/components/global-status/AnimationHelper.js.map +0 -1
- package/cjs/extensions/forms/Form/hooks/useData.d.ts +0 -10
- package/cjs/extensions/forms/Form/hooks/useData.js +0 -36
- package/cjs/extensions/forms/Form/hooks/useData.js.map +0 -1
- package/cjs/extensions/forms/utils/numbers.d.ts +0 -17
- package/cjs/extensions/forms/utils/numbers.js +0 -42
- package/cjs/extensions/forms/utils/numbers.js.map +0 -1
- package/components/global-status/AnimationHelper.d.ts +0 -12
- package/components/global-status/AnimationHelper.js +0 -100
- package/components/global-status/AnimationHelper.js.map +0 -1
- package/es/components/global-status/AnimationHelper.d.ts +0 -12
- package/es/components/global-status/AnimationHelper.js +0 -100
- package/es/components/global-status/AnimationHelper.js.map +0 -1
- package/es/extensions/forms/Form/hooks/useData.d.ts +0 -10
- package/es/extensions/forms/Form/hooks/useData.js +0 -29
- package/es/extensions/forms/Form/hooks/useData.js.map +0 -1
- package/es/extensions/forms/utils/numbers.d.ts +0 -17
- package/es/extensions/forms/utils/numbers.js +0 -35
- package/es/extensions/forms/utils/numbers.js.map +0 -1
- package/extensions/forms/Form/hooks/useData.d.ts +0 -10
- package/extensions/forms/Form/hooks/useData.js +0 -30
- package/extensions/forms/Form/hooks/useData.js.map +0 -1
- package/extensions/forms/utils/numbers.d.ts +0 -17
- package/extensions/forms/utils/numbers.js +0 -35
- package/extensions/forms/utils/numbers.js.map +0 -1
|
@@ -1,24 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Ajv } from '../utils/ajv';
|
|
3
|
+
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths } from '../types';
|
|
4
|
+
export type Path = string;
|
|
2
5
|
type HandleSubmitProps = {
|
|
3
6
|
formElement?: HTMLFormElement;
|
|
4
7
|
};
|
|
5
8
|
export interface ContextState {
|
|
9
|
+
hasContext: boolean;
|
|
6
10
|
/** The dataset for the form / form steps */
|
|
7
11
|
data: any;
|
|
8
12
|
/** Should the form validate data before submitting? */
|
|
9
13
|
errors?: Record<string, Error>;
|
|
10
14
|
/** Will set autoComplete="on" on each nested Field.String and Field.Number */
|
|
11
15
|
autoComplete?: boolean;
|
|
12
|
-
handlePathChange: (path:
|
|
13
|
-
updateDataValue: (path:
|
|
16
|
+
handlePathChange: (path: Path, value: any) => void;
|
|
17
|
+
updateDataValue: (path: Path, value: any, props: {
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
}) => void;
|
|
20
|
+
validateData: () => void;
|
|
14
21
|
handleSubmit: (props?: HandleSubmitProps) => any;
|
|
22
|
+
scrollToTop: () => void;
|
|
15
23
|
showAllErrors: boolean;
|
|
16
24
|
setShowAllErrors: (showAllErrors: boolean) => void;
|
|
17
25
|
mountedFieldPaths: string[];
|
|
18
|
-
handleMountField: (path:
|
|
19
|
-
handleUnMountField: (path:
|
|
20
|
-
setValueWithError: (
|
|
26
|
+
handleMountField: (path: Path) => void;
|
|
27
|
+
handleUnMountField: (path: Path) => void;
|
|
28
|
+
setValueWithError: (path: Path, hasError: boolean) => void;
|
|
29
|
+
setProps: (path: Path, props: any) => void;
|
|
21
30
|
hasErrors: () => boolean;
|
|
31
|
+
hasFieldError: (path: Path) => boolean;
|
|
32
|
+
ajvInstance: Ajv;
|
|
33
|
+
contextErrorMessages: CustomErrorMessagesWithPaths;
|
|
34
|
+
schema: AllJSONSchemaVersions;
|
|
22
35
|
_isInsideFormElement?: boolean;
|
|
23
36
|
}
|
|
24
37
|
export declare const defaultContextState: ContextState;
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { makeAjvInstance } from '../utils/ajv';
|
|
2
3
|
export const defaultContextState = {
|
|
4
|
+
hasContext: false,
|
|
3
5
|
data: undefined,
|
|
6
|
+
schema: undefined,
|
|
4
7
|
handlePathChange: () => null,
|
|
5
8
|
updateDataValue: () => null,
|
|
9
|
+
validateData: () => null,
|
|
6
10
|
handleSubmit: () => null,
|
|
11
|
+
scrollToTop: () => null,
|
|
7
12
|
showAllErrors: false,
|
|
8
13
|
setShowAllErrors: () => null,
|
|
9
14
|
mountedFieldPaths: [],
|
|
10
15
|
handleMountField: () => null,
|
|
11
16
|
handleUnMountField: () => null,
|
|
12
17
|
hasErrors: () => false,
|
|
18
|
+
hasFieldError: () => false,
|
|
13
19
|
setValueWithError: () => null,
|
|
20
|
+
setProps: () => null,
|
|
21
|
+
ajvInstance: makeAjvInstance(),
|
|
22
|
+
contextErrorMessages: undefined,
|
|
14
23
|
_isInsideFormElement: false
|
|
15
24
|
};
|
|
16
25
|
const Context = React.createContext(defaultContextState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["React","defaultContextState","data","undefined","handlePathChange","updateDataValue","handleSubmit","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","setValueWithError","_isInsideFormElement","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport interface ContextState {\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (path:
|
|
1
|
+
{"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","handlePathChange","updateDataValue","validateData","handleSubmit","scrollToTop","showAllErrors","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldError","setValueWithError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n} from '../types'\n\nexport type Path = string\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport interface ContextState {\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n props: { disabled: boolean }\n ) => void\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setValueWithError: (path: Path, hasError: boolean) => void\n setProps: (path: Path, props: any) => void\n hasErrors: () => boolean\n hasFieldError: (path: Path) => boolean\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n _isInsideFormElement?: boolean\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n handlePathChange: () => null,\n updateDataValue: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldError: () => false,\n setValueWithError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AA8CnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAEpB,eAAe,CAAC,CAAC;EAC9BqB,oBAAoB,EAAEjB,SAAS;EAC/BkB,oBAAoB,EAAE;AACxB,CAAC;AAED,MAAMC,OAAO,GAAGxB,KAAK,CAACyB,aAAa,CAAevB,mBAAmB,CAAC;AAEtE,eAAesB,OAAO"}
|
|
@@ -1,33 +1,71 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JsonObject } from 'json-pointer';
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { Ajv } from '../../utils/ajv';
|
|
4
|
+
import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, FieldProps } from '../../types';
|
|
5
|
+
import { Path } from '../Context';
|
|
5
6
|
export type UpdateDataValue = (path: Path, data: unknown) => void;
|
|
7
|
+
export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
|
|
8
|
+
export type FilterData = (path: Path, value: any, props: FieldProps) => boolean | undefined;
|
|
9
|
+
export type OnSubmitReturn = {
|
|
10
|
+
/** Will remove browser-side stored autocomplete data */
|
|
11
|
+
resetForm: () => void;
|
|
12
|
+
/** Will empty the whole internal data set of the form */
|
|
13
|
+
clearData: () => void;
|
|
14
|
+
};
|
|
15
|
+
export type OnSubmit<Data = JsonObject> = (data: Partial<Data>, { resetForm, clearData }: OnSubmitReturn) => void;
|
|
6
16
|
export interface Props<Data extends JsonObject> {
|
|
7
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Unique ID to communicate with the hook Form.useData
|
|
19
|
+
*/
|
|
8
20
|
id?: string;
|
|
9
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Default source data, only used if no other source is available, and not leading to updates if changed after mount
|
|
23
|
+
*/
|
|
10
24
|
defaultData?: Partial<Data>;
|
|
11
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Source data, will be used instead of defaultData, and leading to updates if changed after mount
|
|
27
|
+
*/
|
|
12
28
|
data?: Partial<Data>;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
29
|
+
/**
|
|
30
|
+
* JSON Schema to validate the data against.
|
|
31
|
+
*/
|
|
32
|
+
schema?: AllJSONSchemaVersions;
|
|
33
|
+
/**
|
|
34
|
+
* Custom Ajv instance, if you want to use your own
|
|
35
|
+
*/
|
|
36
|
+
ajvInstance?: Ajv;
|
|
37
|
+
/**
|
|
38
|
+
* Custom error messages for the whole data set
|
|
39
|
+
*/
|
|
40
|
+
errorMessages?: CustomErrorMessagesWithPaths;
|
|
41
|
+
/**
|
|
42
|
+
* Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.
|
|
43
|
+
*/
|
|
44
|
+
filterData?: FilterData;
|
|
45
|
+
/**
|
|
46
|
+
* Change handler for the whole data set
|
|
47
|
+
*/
|
|
16
48
|
onChange?: (data: Data) => void;
|
|
17
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Change handler for each value
|
|
51
|
+
*/
|
|
18
52
|
onPathChange?: (path: Path, value: any) => void;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/** Submit was requested, but data was invalid */
|
|
53
|
+
/**
|
|
54
|
+
* Submit called, data was valid (if validation available)
|
|
55
|
+
*/
|
|
56
|
+
onSubmit?: OnSubmit;
|
|
57
|
+
/**
|
|
58
|
+
* Submit was requested, but data was invalid
|
|
59
|
+
*/
|
|
27
60
|
onSubmitRequest?: () => void;
|
|
61
|
+
/**
|
|
62
|
+
* Scroll to top on submit
|
|
63
|
+
*/
|
|
28
64
|
scrollTopOnSubmit?: boolean;
|
|
29
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Key for caching the data in session storage
|
|
67
|
+
*/
|
|
30
68
|
sessionStorageId?: string;
|
|
31
69
|
children: React.ReactNode;
|
|
32
70
|
}
|
|
33
|
-
export default function Provider<Data extends JsonObject>({ id, defaultData, data, schema, onChange, onPathChange, onSubmit, onSubmitRequest, scrollTopOnSubmit, sessionStorageId, children, ...rest }: Props<Data>): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
export default function Provider<Data extends JsonObject>({ id, defaultData, data, schema, onChange, onPathChange, onSubmit, onSubmitRequest, scrollTopOnSubmit, sessionStorageId, ajvInstance, filterData, errorMessages: contextErrorMessages, children, ...rest }: Props<Data>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "scrollTopOnSubmit", "sessionStorageId", "children"];
|
|
5
|
+
const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "scrollTopOnSubmit", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
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; }
|
|
8
|
-
import React, {
|
|
8
|
+
import React, { useRef, useMemo, useCallback, useReducer } from 'react';
|
|
9
9
|
import pointer from 'json-pointer';
|
|
10
|
-
import
|
|
10
|
+
import { makeAjvInstance, ajvErrorsToFormErrors } from '../../utils/ajv';
|
|
11
11
|
import useMountEffect from '../../hooks/useMountEffect';
|
|
12
12
|
import useUpdateEffect from '../../hooks/useUpdateEffect';
|
|
13
13
|
import { useSharedState } from '../../../../shared/helpers/useSharedState';
|
|
14
14
|
import Context from '../Context';
|
|
15
15
|
import structuredClone from '@ungap/structured-clone';
|
|
16
|
+
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
16
17
|
function addListPath(paths, path) {
|
|
17
18
|
return paths.includes(path) ? paths : paths.concat(path);
|
|
18
19
|
}
|
|
@@ -21,6 +22,7 @@ function removeListPath(paths, path) {
|
|
|
21
22
|
}
|
|
22
23
|
const isArrayJsonPointer = /^\/\d+(\/|$)/;
|
|
23
24
|
export default function Provider(_ref) {
|
|
25
|
+
var _sharedAtachments$dat;
|
|
24
26
|
let {
|
|
25
27
|
id,
|
|
26
28
|
defaultData,
|
|
@@ -32,6 +34,9 @@ export default function Provider(_ref) {
|
|
|
32
34
|
onSubmitRequest,
|
|
33
35
|
scrollTopOnSubmit,
|
|
34
36
|
sessionStorageId,
|
|
37
|
+
ajvInstance,
|
|
38
|
+
filterData,
|
|
39
|
+
errorMessages: contextErrorMessages,
|
|
35
40
|
children
|
|
36
41
|
} = _ref,
|
|
37
42
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -39,11 +44,13 @@ export default function Provider(_ref) {
|
|
|
39
44
|
if (data !== undefined && sessionStorageId !== undefined) {
|
|
40
45
|
console.error('Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.');
|
|
41
46
|
}
|
|
47
|
+
const ajvRef = useRef(makeAjvInstance(ajvInstance));
|
|
42
48
|
const mountedFieldPathsRef = useRef([]);
|
|
43
49
|
const errorsRef = useRef();
|
|
44
50
|
const showAllErrorsRef = useRef(false);
|
|
45
51
|
const setShowAllErrors = useCallback(showAllErrors => {
|
|
46
52
|
showAllErrorsRef.current = showAllErrors;
|
|
53
|
+
forceUpdate();
|
|
47
54
|
}, []);
|
|
48
55
|
const valuesWithErrorRef = useRef([]);
|
|
49
56
|
const initialData = useMemo(() => {
|
|
@@ -57,43 +64,86 @@ export default function Provider(_ref) {
|
|
|
57
64
|
return data !== null && data !== void 0 ? data : defaultData;
|
|
58
65
|
}, []);
|
|
59
66
|
const internalDataRef = useRef(initialData);
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
internalDataRef.current = sharedState.data;
|
|
66
|
-
}
|
|
67
|
-
}, [initialData, sharedState.data]);
|
|
67
|
+
const cacheRef = useRef({
|
|
68
|
+
data,
|
|
69
|
+
schema
|
|
70
|
+
});
|
|
71
|
+
const ajvValidatorRef = useRef();
|
|
68
72
|
const validateData = useCallback(() => {
|
|
69
|
-
|
|
73
|
+
var _ajvValidatorRef$curr;
|
|
74
|
+
if (!ajvValidatorRef.current) {
|
|
70
75
|
return;
|
|
71
76
|
}
|
|
72
|
-
if (!
|
|
73
|
-
|
|
74
|
-
errorsRef.current = errors;
|
|
77
|
+
if (!((_ajvValidatorRef$curr = ajvValidatorRef.current) !== null && _ajvValidatorRef$curr !== void 0 && _ajvValidatorRef$curr.call(ajvValidatorRef, internalDataRef.current))) {
|
|
78
|
+
errorsRef.current = ajvErrorsToFormErrors(ajvValidatorRef.current.errors);
|
|
75
79
|
} else {
|
|
76
80
|
errorsRef.current = undefined;
|
|
77
81
|
}
|
|
78
82
|
forceUpdate();
|
|
79
83
|
}, []);
|
|
80
|
-
|
|
81
|
-
if (!schema) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
ajvSchemaValidatorRef.current = ajv.compile(schema);
|
|
85
|
-
validateData();
|
|
86
|
-
}, [schema, validateData]);
|
|
87
|
-
const hasErrors = useCallback(() => Boolean(mountedFieldPathsRef.current.find(mountedFieldPath => {
|
|
84
|
+
const hasFieldError = useCallback(path => {
|
|
88
85
|
var _errorsRef$current;
|
|
89
|
-
return ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[
|
|
90
|
-
}
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
return Boolean(((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) !== undefined || valuesWithErrorRef.current.includes(path));
|
|
87
|
+
}, []);
|
|
88
|
+
const hasErrors = useCallback(() => Boolean(mountedFieldPathsRef.current.find(mountedFieldPath => hasFieldError(mountedFieldPath))), [hasFieldError]);
|
|
89
|
+
const setValueWithError = useCallback((path, withError) => {
|
|
90
|
+
if (withError !== valuesWithErrorRef.current.includes(path)) {
|
|
91
|
+
valuesWithErrorRef.current = withError ? addListPath(valuesWithErrorRef.current, path) : removeListPath(valuesWithErrorRef.current, path);
|
|
94
92
|
forceUpdate();
|
|
95
93
|
}
|
|
96
94
|
}, []);
|
|
95
|
+
const filterDataHandler = useCallback(function (data) {
|
|
96
|
+
let filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : filterData;
|
|
97
|
+
if (filter) {
|
|
98
|
+
const filtered = _objectSpread({}, data);
|
|
99
|
+
Object.entries(fieldPropsRef.current).forEach(_ref2 => {
|
|
100
|
+
let [path, props] = _ref2;
|
|
101
|
+
const exists = pointer.has(data, path);
|
|
102
|
+
const result = filter(path, exists ? pointer.get(data, path) : undefined, props);
|
|
103
|
+
if (result === false && exists) {
|
|
104
|
+
pointer.remove(filtered, path);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return filtered;
|
|
108
|
+
}
|
|
109
|
+
return data;
|
|
110
|
+
}, [filterData]);
|
|
111
|
+
const fieldPropsRef = useRef({});
|
|
112
|
+
const setProps = useCallback((path, props) => {
|
|
113
|
+
fieldPropsRef.current[path] = props;
|
|
114
|
+
}, []);
|
|
115
|
+
const sharedData = useSharedState(id);
|
|
116
|
+
const sharedAtachments = useSharedState(id + '-attachments');
|
|
117
|
+
const updateSharedData = sharedData.update;
|
|
118
|
+
const extendSharedData = sharedData.extend;
|
|
119
|
+
const extendAtachment = sharedAtachments.extend;
|
|
120
|
+
const rerenderUseDataHook = (_sharedAtachments$dat = sharedAtachments.data) === null || _sharedAtachments$dat === void 0 ? void 0 : _sharedAtachments$dat.rerenderUseDataHook;
|
|
121
|
+
useMemo(() => {
|
|
122
|
+
if (id && sharedData.data && !initialData) {
|
|
123
|
+
internalDataRef.current = sharedData.data;
|
|
124
|
+
}
|
|
125
|
+
}, [id, initialData, sharedData.data]);
|
|
126
|
+
useLayoutEffect(() => {
|
|
127
|
+
if (id && !sharedData.data && initialData) {
|
|
128
|
+
extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(initialData);
|
|
129
|
+
}
|
|
130
|
+
}, [id, initialData, extendSharedData, sharedData.data]);
|
|
131
|
+
useLayoutEffect(() => {
|
|
132
|
+
if (id && sharedData.data && sharedData.data !== internalDataRef.current) {
|
|
133
|
+
internalDataRef.current = sharedData.data;
|
|
134
|
+
}
|
|
135
|
+
}, [id, sharedData.data]);
|
|
136
|
+
useLayoutEffect(() => {
|
|
137
|
+
if (id) {
|
|
138
|
+
extendAtachment === null || extendAtachment === void 0 ? void 0 : extendAtachment({
|
|
139
|
+
filterDataHandler,
|
|
140
|
+
hasErrors
|
|
141
|
+
});
|
|
142
|
+
if (filterData) {
|
|
143
|
+
rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}, [filterData, filterDataHandler, rerenderUseDataHook, hasErrors, id, extendAtachment]);
|
|
97
147
|
const updateDataValue = useCallback((path, value) => {
|
|
98
148
|
var _internalDataRef$curr;
|
|
99
149
|
if (!path) {
|
|
@@ -110,8 +160,10 @@ export default function Provider(_ref) {
|
|
|
110
160
|
pointer.set(newData, path, value);
|
|
111
161
|
}
|
|
112
162
|
if (id) {
|
|
113
|
-
|
|
114
|
-
(
|
|
163
|
+
updateSharedData === null || updateSharedData === void 0 ? void 0 : updateSharedData(newData);
|
|
164
|
+
if (filterData) {
|
|
165
|
+
rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
|
|
166
|
+
}
|
|
115
167
|
}
|
|
116
168
|
internalDataRef.current = newData;
|
|
117
169
|
if (sessionStorageId && typeof window !== 'undefined') {
|
|
@@ -120,7 +172,7 @@ export default function Provider(_ref) {
|
|
|
120
172
|
}
|
|
121
173
|
forceUpdate();
|
|
122
174
|
return newData;
|
|
123
|
-
}, [id, sessionStorageId,
|
|
175
|
+
}, [filterData, id, sessionStorageId, rerenderUseDataHook, updateSharedData]);
|
|
124
176
|
const handlePathChange = useCallback((path, value) => {
|
|
125
177
|
if (!path) {
|
|
126
178
|
return;
|
|
@@ -135,7 +187,20 @@ export default function Provider(_ref) {
|
|
|
135
187
|
mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
|
|
136
188
|
}, []);
|
|
137
189
|
const handleUnMountField = useCallback(path => {
|
|
190
|
+
var _fieldPropsRef$curren;
|
|
138
191
|
mountedFieldPathsRef.current = removeListPath(mountedFieldPathsRef.current, path);
|
|
192
|
+
if ((_fieldPropsRef$curren = fieldPropsRef.current) !== null && _fieldPropsRef$curren !== void 0 && _fieldPropsRef$curren[path]) {
|
|
193
|
+
delete fieldPropsRef.current[path];
|
|
194
|
+
}
|
|
195
|
+
}, []);
|
|
196
|
+
const scrollToTop = useCallback(() => {
|
|
197
|
+
if (typeof window !== 'undefined') {
|
|
198
|
+
var _window, _window$scrollTo;
|
|
199
|
+
(_window = window) === null || _window === void 0 ? void 0 : (_window$scrollTo = _window.scrollTo) === null || _window$scrollTo === void 0 ? void 0 : _window$scrollTo.call(_window, {
|
|
200
|
+
top: 0,
|
|
201
|
+
behavior: 'smooth'
|
|
202
|
+
});
|
|
203
|
+
}
|
|
139
204
|
}, []);
|
|
140
205
|
const handleSubmit = useCallback(function () {
|
|
141
206
|
let {
|
|
@@ -156,44 +221,54 @@ export default function Provider(_ref) {
|
|
|
156
221
|
internalDataRef.current = {};
|
|
157
222
|
forceUpdate();
|
|
158
223
|
};
|
|
159
|
-
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(internalDataRef.current, {
|
|
224
|
+
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filterDataHandler(internalDataRef.current), {
|
|
160
225
|
resetForm,
|
|
161
226
|
clearData
|
|
162
227
|
});
|
|
163
|
-
if (
|
|
164
|
-
|
|
165
|
-
var _window;
|
|
166
|
-
(_window = window) === null || _window === void 0 ? void 0 : _window.scrollTo({
|
|
167
|
-
top: 0,
|
|
168
|
-
behavior: 'smooth'
|
|
169
|
-
});
|
|
170
|
-
}
|
|
228
|
+
if (scrollTopOnSubmit) {
|
|
229
|
+
scrollToTop();
|
|
171
230
|
}
|
|
172
231
|
} else {
|
|
173
|
-
|
|
232
|
+
setShowAllErrors(true);
|
|
174
233
|
onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
|
|
175
|
-
forceUpdate();
|
|
176
234
|
}
|
|
177
235
|
return internalDataRef.current;
|
|
178
|
-
}, [scrollTopOnSubmit,
|
|
236
|
+
}, [hasErrors, onSubmit, filterDataHandler, scrollTopOnSubmit, sessionStorageId, scrollToTop, setShowAllErrors, onSubmitRequest]);
|
|
179
237
|
useMountEffect(() => {
|
|
238
|
+
if (schema) {
|
|
239
|
+
var _ajvRef$current;
|
|
240
|
+
ajvValidatorRef.current = (_ajvRef$current = ajvRef.current) === null || _ajvRef$current === void 0 ? void 0 : _ajvRef$current.compile(schema);
|
|
241
|
+
}
|
|
180
242
|
validateData();
|
|
181
243
|
});
|
|
182
244
|
useUpdateEffect(() => {
|
|
183
|
-
|
|
184
|
-
|
|
245
|
+
let hadChanges = false;
|
|
246
|
+
if (data !== cacheRef.current.data) {
|
|
185
247
|
internalDataRef.current = data;
|
|
248
|
+
hadChanges = true;
|
|
249
|
+
cacheRef.current.data = data;
|
|
186
250
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
251
|
+
if (schema && schema !== cacheRef.current.schema) {
|
|
252
|
+
var _ajvRef$current2;
|
|
253
|
+
ajvValidatorRef.current = (_ajvRef$current2 = ajvRef.current) === null || _ajvRef$current2 === void 0 ? void 0 : _ajvRef$current2.compile(schema);
|
|
254
|
+
hadChanges = true;
|
|
255
|
+
cacheRef.current.schema = schema;
|
|
256
|
+
}
|
|
257
|
+
if (hadChanges) {
|
|
258
|
+
validateData();
|
|
259
|
+
forceUpdate();
|
|
260
|
+
}
|
|
261
|
+
}, [data, schema, validateData, forceUpdate]);
|
|
190
262
|
return React.createElement(Context.Provider, {
|
|
191
263
|
value: _objectSpread(_objectSpread({
|
|
264
|
+
hasContext: true,
|
|
192
265
|
data: internalDataRef.current
|
|
193
266
|
}, rest), {}, {
|
|
194
267
|
handlePathChange,
|
|
195
268
|
updateDataValue,
|
|
269
|
+
validateData,
|
|
196
270
|
handleSubmit,
|
|
271
|
+
scrollToTop,
|
|
197
272
|
errors: errorsRef.current,
|
|
198
273
|
showAllErrors: showAllErrorsRef.current,
|
|
199
274
|
setShowAllErrors,
|
|
@@ -201,7 +276,12 @@ export default function Provider(_ref) {
|
|
|
201
276
|
handleMountField,
|
|
202
277
|
handleUnMountField,
|
|
203
278
|
hasErrors,
|
|
204
|
-
|
|
279
|
+
hasFieldError,
|
|
280
|
+
setValueWithError,
|
|
281
|
+
setProps,
|
|
282
|
+
ajvInstance: ajvRef.current,
|
|
283
|
+
schema,
|
|
284
|
+
contextErrorMessages
|
|
205
285
|
})
|
|
206
286
|
}, children);
|
|
207
287
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useEffect","useRef","useMemo","useCallback","useReducer","pointer","ajv","ajvErrorsToFormErrors","useMountEffect","useUpdateEffect","useSharedState","Context","structuredClone","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","_ref","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","children","rest","_objectWithoutProperties","_excluded","forceUpdate","undefined","console","error","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","valuesWithErrorRef","initialData","window","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","dataCacheRef","ajvSchemaValidatorRef","sharedState","validateData","errors","compile","hasErrors","Boolean","find","mountedFieldPath","_errorsRef$current","setValueWithError","identifier","withError","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","set","_sharedState$update","update","call","_window$sessionStorag2","setItem","stringify","handlePathChange","handleMountField","handleUnMountField","handleSubmit","formElement","arguments","length","resetForm","_formElement$reset","reset","removeItem","clearData","_window","scrollTo","top","behavior","createElement","_objectSpread","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useMemo,\n useCallback,\n useReducer,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv'\nimport ajv, { ajvErrorsToFormErrors } from '../../utils/ajv'\nimport { FormError, JSONSchema } from '../../types'\nimport useMountEffect from '../../hooks/useMountEffect'\nimport useUpdateEffect from '../../hooks/useUpdateEffect'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, { ContextState } from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type Path = string\nexport type UpdateDataValue = (path: Path, data: unknown) => void\n\nexport interface Props<Data extends JsonObject> {\n /** Unique ID to communicate with the hook Form.useData */\n id?: string\n /** Default source data, only used if no other source is available, and not leading to updates if changed after mount */\n defaultData?: Partial<Data>\n /** Dynamic source data used as both initial data, and updates internal data if changed after mount */\n data?: Partial<Data>\n /** JSON Schema for validating the data, like during input or after attempting submit */\n schema?: JSONSchema\n /** Change handler for the whole data set */\n onChange?: (data: Data) => void\n /** Change handler for each value */\n onPathChange?: (path: Path, value: any) => void\n /** Submit called, data was valid (if validation available) */\n onSubmit?: (\n data: Data,\n {\n resetForm,\n clearData,\n }: {\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n }\n ) => void\n /** Submit was requested, but data was invalid */\n onSubmitRequest?: () => void\n scrollTopOnSubmit?: boolean\n /** Key for caching the data in session storage */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n id,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n children,\n ...rest\n}: Props<Data>) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // State\n const mountedFieldPathsRef = useRef<string[]>([])\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n }, [])\n // - Errors reported by fields, based on their direct validation rules\n const valuesWithErrorRef = useRef<string[]>([])\n // - Data\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Partial<Data>>(initialData)\n const dataCacheRef = useRef<Partial<Data>>(data)\n // - Validator\n const ajvSchemaValidatorRef = useRef<ValidateFunction>()\n // - Shared state\n const sharedState = useSharedState(id, initialData)\n useMemo(() => {\n if (sharedState?.data && !initialData) {\n internalDataRef.current = sharedState.data\n }\n }, [initialData, sharedState.data])\n\n const validateData = useCallback(() => {\n if (!ajvSchemaValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvSchemaValidatorRef.current(internalDataRef.current)) {\n // Errors found\n const errors = ajvErrorsToFormErrors(\n ajvSchemaValidatorRef.current.errors\n )\n errorsRef.current = errors\n } else {\n errorsRef.current = undefined\n }\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!schema) {\n return\n }\n ajvSchemaValidatorRef.current = ajv.compile(schema)\n validateData()\n }, [schema, validateData])\n\n // Error handling\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find(\n (mountedFieldPath) =>\n errorsRef.current?.[mountedFieldPath] !== undefined ||\n valuesWithErrorRef.current.includes(mountedFieldPath)\n )\n ),\n []\n )\n\n const setValueWithError = useCallback(\n (identifier: string, withError: boolean) => {\n if (withError !== valuesWithErrorRef.current.includes(identifier)) {\n // The boolean error state for the target value was changed\n valuesWithErrorRef.current = withError\n ? addListPath(valuesWithErrorRef.current, identifier)\n : removeListPath(valuesWithErrorRef.current, identifier)\n forceUpdate()\n }\n },\n []\n )\n\n const updateDataValue: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData =\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n\n let newData = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData as Data, path, value)\n }\n\n if (id) {\n sharedState.update?.(newData)\n }\n\n internalDataRef.current = newData\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [id, sessionStorageId, sharedState]\n )\n\n const handlePathChange: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n onPathChange?.(path, value)\n\n const newData = updateDataValue(path, value)\n\n onChange?.(newData as Data)\n\n showAllErrorsRef.current = false\n\n validateData()\n },\n [onPathChange, updateDataValue, onChange, validateData]\n )\n\n // Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n const resetForm = () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n }\n const clearData = () => {\n internalDataRef.current = {}\n forceUpdate()\n }\n\n onSubmit?.(internalDataRef.current as Data, {\n resetForm,\n clearData,\n })\n\n if (typeof window !== 'undefined') {\n if (scrollTopOnSubmit) {\n window?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n }\n } else {\n showAllErrorsRef.current = true\n onSubmitRequest?.()\n forceUpdate()\n }\n return internalDataRef.current\n },\n [\n scrollTopOnSubmit,\n hasErrors,\n onSubmit,\n onSubmitRequest,\n sessionStorageId,\n ]\n )\n\n useMountEffect(() => {\n // Validate the initial data\n validateData()\n })\n\n useUpdateEffect(() => {\n // Update and validate changes to the external data set,\n // And avoid \"resetting\" the data with the originally given data (React.StrictMode)\n if (data !== dataCacheRef.current) {\n dataCacheRef.current = data\n internalDataRef.current = data\n }\n validateData()\n forceUpdate()\n }, [data, validateData, forceUpdate])\n\n return (\n <Context.Provider\n value={{\n data: internalDataRef.current,\n ...rest,\n handlePathChange,\n updateDataValue,\n handleSubmit,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n setValueWithError,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","pointer","makeAjvInstance","ajvErrorsToFormErrors","useMountEffect","useUpdateEffect","useSharedState","Context","structuredClone","useLayoutEffect","window","useEffect","addListPath","paths","path","includes","concat","removeListPath","filter","thisPath","isArrayJsonPointer","Provider","_ref","_sharedAtachments$dat","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","forceUpdate","undefined","console","error","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","valuesWithErrorRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","cacheRef","ajvValidatorRef","validateData","_ajvValidatorRef$curr","call","errors","hasFieldError","_errorsRef$current","Boolean","hasErrors","find","mountedFieldPath","setValueWithError","withError","filterDataHandler","arguments","length","filtered","_objectSpread","Object","entries","fieldPropsRef","forEach","_ref2","props","exists","has","result","get","remove","setProps","sharedData","sharedAtachments","updateSharedData","update","extendSharedData","extend","extendAtachment","rerenderUseDataHook","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","set","_window$sessionStorag2","setItem","stringify","handlePathChange","handleMountField","handleUnMountField","_fieldPropsRef$curren","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmit","formElement","resetForm","_formElement$reset","reset","removeItem","clearData","_ajvRef$current","compile","hadChanges","_ajvRef$current2","createElement","hasContext","mountedFieldPaths"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, { useRef, useMemo, useCallback, useReducer } from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n} from '../../types'\nimport useMountEffect from '../../hooks/useMountEffect'\nimport useUpdateEffect from '../../hooks/useUpdateEffect'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, { ContextState, Path } from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type UpdateDataValue = (path: Path, data: unknown) => void\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps\n) => boolean | undefined\n\nexport type OnSubmitReturn = {\n /** Will remove browser-side stored autocomplete data */\n resetForm: () => void\n /** Will empty the whole internal data set of the form */\n clearData: () => void\n}\n\nexport type OnSubmit<Data = JsonObject> = (\n data: Partial<Data>,\n { resetForm, clearData }: OnSubmitReturn\n) => void\n\nexport interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\n /**\n * Change handler for the whole data set\n */\n onChange?: (data: Data) => void\n /**\n * Change handler for each value\n */\n onPathChange?: (path: Path, value: any) => void\n /**\n * Submit called, data was valid (if validation available)\n */\n onSubmit?: OnSubmit\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n children: React.ReactNode\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>({\n id,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n}: Props<Data>) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n // - Paths\n const mountedFieldPathsRef = useRef<string[]>([])\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<string, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n\n // - Errors reported by fields, based on their direct validation rules\n const valuesWithErrorRef = useRef<string[]>([])\n\n // - Data\n const initialData = useMemo(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Partial<Data>>(initialData)\n const cacheRef = useRef({ data, schema })\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors\n )\n } else {\n errorsRef.current = undefined\n }\n\n forceUpdate()\n }, [])\n\n // - Error handling\n const hasFieldError = useCallback(\n (path: string) =>\n Boolean(\n errorsRef.current?.[path] !== undefined ||\n valuesWithErrorRef.current.includes(path)\n ),\n []\n )\n const hasErrors = useCallback(\n () =>\n Boolean(\n mountedFieldPathsRef.current.find((mountedFieldPath) =>\n hasFieldError(mountedFieldPath)\n )\n ),\n [hasFieldError]\n )\n\n /**\n * Sets the error state for a specific path\n */\n const setValueWithError = useCallback(\n (path: Path, withError: boolean) => {\n if (withError !== valuesWithErrorRef.current.includes(path)) {\n // The boolean error state for the target value was changed\n valuesWithErrorRef.current = withError\n ? addListPath(valuesWithErrorRef.current, path)\n : removeListPath(valuesWithErrorRef.current, path)\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<string, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAtachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: () => boolean\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const updateSharedData = sharedData.update\n const extendSharedData = sharedData.extend\n const extendAtachment = sharedAtachments.extend\n const rerenderUseDataHook = sharedAtachments.data?.rerenderUseDataHook\n\n useMemo(() => {\n // Update the internal data set, if the shared state changes\n if (id && sharedData.data && !initialData) {\n internalDataRef.current = sharedData.data\n }\n }, [id, initialData, sharedData.data])\n\n useLayoutEffect(() => {\n // Update the shared state, if initialData is given\n if (id && !sharedData.data && initialData) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n // If the shared state changes, update the internal data set\n if (\n id &&\n sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n internalDataRef.current = sharedData.data\n }\n }, [id, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAtachment?.({ filterDataHandler, hasErrors })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n filterData,\n filterDataHandler,\n rerenderUseDataHook,\n hasErrors,\n id,\n extendAtachment,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n if (id) {\n updateSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n internalDataRef.current = newData\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n filterData,\n id,\n sessionStorageId,\n rerenderUseDataHook,\n updateSharedData,\n ]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: UpdateDataValue = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n onPathChange?.(path, value)\n\n const newData = updateDataValue(path, value)\n\n onChange?.(newData as Data)\n\n showAllErrorsRef.current = false\n\n validateData()\n },\n [onPathChange, updateDataValue, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\n }\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n ({ formElement = null } = {}) => {\n if (!hasErrors()) {\n const resetForm = () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n }\n const clearData = () => {\n internalDataRef.current = {}\n forceUpdate()\n }\n\n onSubmit?.(filterDataHandler(internalDataRef.current as Data), {\n resetForm,\n clearData,\n })\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n } else {\n setShowAllErrors(true)\n onSubmitRequest?.()\n }\n\n return internalDataRef.current\n },\n [\n hasErrors,\n onSubmit,\n filterDataHandler,\n scrollTopOnSubmit,\n sessionStorageId,\n scrollToTop,\n setShowAllErrors,\n onSubmitRequest,\n ]\n )\n\n // - ajv validator routines\n\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n\n useUpdateEffect(() => {\n let hadChanges = false\n\n // Update and validate changes to the external data set,\n // And avoid \"resetting\" the data with the originally given data (React.StrictMode)\n if (data !== cacheRef.current.data) {\n internalDataRef.current = data\n\n hadChanges = true\n cacheRef.current.data = data\n }\n\n if (schema && schema !== cacheRef.current.schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n hadChanges = true\n cacheRef.current.schema = schema\n }\n\n if (hadChanges) {\n validateData()\n forceUpdate()\n }\n }, [data, schema, validateData, forceUpdate])\n\n return (\n <Context.Provider\n value={{\n hasContext: true,\n data: internalDataRef.current,\n ...rest,\n handlePathChange,\n updateDataValue,\n validateData,\n handleSubmit,\n scrollToTop,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n setShowAllErrors,\n mountedFieldPaths: mountedFieldPathsRef.current,\n handleMountField,\n handleUnMountField,\n hasErrors,\n hasFieldError,\n setValueWithError,\n setProps,\n ajvInstance: ajvRef.current,\n schema,\n contextErrorMessages,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
4
4
|
import React, { useMemo } from 'react';
|
|
5
5
|
import { Checkbox, ToggleButton } from '../../../../components';
|
|
6
6
|
import classnames from 'classnames';
|
|
7
|
-
import
|
|
7
|
+
import OptionField from '../Option';
|
|
8
8
|
import FieldBlock from '../../FieldBlock';
|
|
9
9
|
import { useDataValue } from '../../hooks';
|
|
10
10
|
import { pickSpacingProps } from '../../../../components/flex/utils';
|
|
@@ -17,6 +17,7 @@ function ArraySelection(props) {
|
|
|
17
17
|
layout = 'vertical',
|
|
18
18
|
optionsLayout = 'vertical',
|
|
19
19
|
label,
|
|
20
|
+
labelDescription,
|
|
20
21
|
value,
|
|
21
22
|
error,
|
|
22
23
|
hasError,
|
|
@@ -35,9 +36,10 @@ function ArraySelection(props) {
|
|
|
35
36
|
warning,
|
|
36
37
|
error,
|
|
37
38
|
layout,
|
|
38
|
-
label
|
|
39
|
+
label,
|
|
40
|
+
labelDescription
|
|
39
41
|
}, pickSpacingProps(props));
|
|
40
|
-
const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type ===
|
|
42
|
+
const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === OptionField).map(option => {
|
|
41
43
|
var _option$props$title;
|
|
42
44
|
return {
|
|
43
45
|
title: (_option$props$title = option.props.title) !== null && _option$props$title !== void 0 ? _option$props$title : option.props.children,
|