@dnb/eufemia 10.21.0 → 10.22.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 +27 -0
- package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
- package/cjs/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/cjs/components/breadcrumb/Breadcrumb.js +3 -3
- package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/cjs/components/button/Button.js +2 -2
- package/cjs/components/button/Button.js.map +1 -1
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/cjs/components/card/style/dnb-card.css +11 -2
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/dnb-card.scss +12 -2
- package/cjs/components/form-label/style/dnb-form-label.css +4 -1
- package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
- package/cjs/components/form-label/style/dnb-form-label.scss +5 -2
- package/cjs/components/global-status/GlobalStatus.d.ts +1 -1
- package/cjs/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/cjs/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/cjs/components/height-animation/HeightAnimationInstance.js +12 -12
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/height-animation/useHeightAnimation.js +11 -10
- package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
- package/cjs/components/input/Input.d.ts +1 -1
- package/cjs/components/pagination/InfinityScroller.d.ts +1 -1
- package/cjs/components/progress-indicator/ProgressIndicator.js +5 -7
- package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/cjs/components/space/SpacingHelper.d.ts +5 -5
- package/cjs/components/table/Table.js +2 -2
- package/cjs/components/table/Table.js.map +1 -1
- package/cjs/components/table/TableAccordion.js +40 -57
- package/cjs/components/table/TableAccordion.js.map +1 -1
- package/cjs/components/table/TableAccordionTd.d.ts +9 -0
- package/cjs/components/table/{TableAccordionContent.js → TableAccordionTd.js} +16 -54
- package/cjs/components/table/TableAccordionTd.js.map +1 -0
- package/cjs/components/table/TableAccordionTr.d.ts +13 -0
- package/cjs/components/table/TableAccordionTr.js +61 -0
- package/cjs/components/table/TableAccordionTr.js.map +1 -0
- package/cjs/components/table/TableContext.d.ts +2 -2
- package/cjs/components/table/TableContext.js +4 -3
- package/cjs/components/table/TableContext.js.map +1 -1
- package/cjs/components/table/TableTd.d.ts +2 -2
- package/cjs/components/table/TableTd.js +2 -2
- package/cjs/components/table/TableTd.js.map +1 -1
- package/cjs/components/table/TableTr.d.ts +6 -1
- package/cjs/components/table/TableTr.js +10 -5
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/table/style/dnb-table.css +84 -64
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/table/style/dnb-table.scss +1 -1
- package/cjs/components/table/style/table-accordion.scss +62 -44
- package/cjs/components/table/style/table-td.scss +1 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +10 -0
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +14 -0
- package/cjs/components/table/useTableAnimationHandler.d.ts +20 -0
- package/cjs/components/table/useTableAnimationHandler.js +73 -0
- package/cjs/components/table/useTableAnimationHandler.js.map +1 -0
- package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -3
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -5
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +1 -17
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/cjs/extensions/forms/Form/data-context/useError.js +4 -2
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/cjs/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/cjs/extensions/forms/Value/Number/Number.js +1 -1
- package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/hooks/useDataValue.d.ts +4 -12
- package/cjs/extensions/forms/hooks/useDataValue.js +3 -3
- package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/cjs/extensions/forms/hooks/useMounted.js +19 -0
- package/cjs/extensions/forms/hooks/useMounted.js.map +1 -0
- package/cjs/extensions/forms/style/dnb-forms.css +8 -2
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +2 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- 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/Theme.d.ts +7 -1
- package/cjs/shared/Theme.js +20 -7
- package/cjs/shared/Theme.js.map +1 -1
- package/cjs/shared/helpers/debounce.d.ts +37 -0
- package/cjs/shared/helpers/debounce.js +92 -0
- package/cjs/shared/helpers/debounce.js.map +1 -0
- package/cjs/shared/helpers/useSharedState.d.ts +1 -0
- package/cjs/shared/helpers/useSharedState.js +52 -20
- package/cjs/shared/helpers/useSharedState.js.map +1 -1
- package/cjs/shared/helpers/withCamelCaseProps.d.ts +7 -0
- package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/cjs/shared/helpers.d.ts +1 -25
- package/cjs/shared/helpers.js +15 -37
- package/cjs/shared/helpers.js.map +1 -1
- package/cjs/shared/useTheme.d.ts +1 -0
- package/cjs/style/dnb-ui-components.css +119 -73
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-extensions.css +8 -2
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +8 -2
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +127 -75
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +160 -86
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +8 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +8 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-components.css +127 -75
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/aria-live/useAriaLive.d.ts +1 -1
- package/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/components/breadcrumb/Breadcrumb.js +3 -3
- package/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/components/button/Button.js +2 -2
- package/components/button/Button.js.map +1 -1
- package/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/components/card/style/dnb-card.css +11 -2
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/dnb-card.scss +12 -2
- package/components/form-label/style/dnb-form-label.css +4 -1
- package/components/form-label/style/dnb-form-label.min.css +1 -1
- package/components/form-label/style/dnb-form-label.scss +5 -2
- package/components/global-status/GlobalStatus.d.ts +1 -1
- package/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/components/height-animation/HeightAnimationInstance.js +12 -12
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/height-animation/useHeightAnimation.js +11 -10
- package/components/height-animation/useHeightAnimation.js.map +1 -1
- package/components/input/Input.d.ts +1 -1
- package/components/pagination/InfinityScroller.d.ts +1 -1
- package/components/progress-indicator/ProgressIndicator.js +5 -7
- package/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/components/space/SpacingHelper.d.ts +5 -5
- package/components/table/Table.js +1 -1
- package/components/table/Table.js.map +1 -1
- package/components/table/TableAccordion.js +38 -53
- package/components/table/TableAccordion.js.map +1 -1
- package/components/table/TableAccordionTd.d.ts +9 -0
- package/{es/components/table/TableAccordionContent.js → components/table/TableAccordionTd.js} +14 -48
- package/components/table/TableAccordionTd.js.map +1 -0
- package/components/table/TableAccordionTr.d.ts +13 -0
- package/components/table/TableAccordionTr.js +51 -0
- package/components/table/TableAccordionTr.js.map +1 -0
- package/components/table/TableContext.d.ts +2 -2
- package/components/table/TableContext.js +2 -2
- package/components/table/TableContext.js.map +1 -1
- package/components/table/TableTd.d.ts +2 -2
- package/components/table/TableTd.js +2 -2
- package/components/table/TableTd.js.map +1 -1
- package/components/table/TableTr.d.ts +6 -1
- package/components/table/TableTr.js +9 -4
- package/components/table/TableTr.js.map +1 -1
- package/components/table/style/dnb-table.css +84 -64
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/table/style/dnb-table.scss +1 -1
- package/components/table/style/table-accordion.scss +62 -44
- package/components/table/style/table-td.scss +1 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.css +10 -0
- package/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/components/table/style/themes/dnb-table-theme-sbanken.scss +14 -0
- package/components/table/useTableAnimationHandler.d.ts +20 -0
- package/components/table/useTableAnimationHandler.js +63 -0
- package/components/table/useTableAnimationHandler.js.map +1 -0
- package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/es/components/aria-live/useAriaLive.d.ts +1 -1
- package/es/components/breadcrumb/Breadcrumb.d.ts +2 -2
- package/es/components/breadcrumb/Breadcrumb.js +3 -3
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.css +7 -2
- package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
- package/es/components/breadcrumb/style/dnb-breadcrumb.scss +10 -2
- package/es/components/button/Button.js +2 -2
- package/es/components/button/Button.js.map +1 -1
- package/es/components/button/style/themes/dnb-button-theme-sbanken.css +23 -11
- package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +3 -3
- package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +30 -14
- package/es/components/card/style/dnb-card.css +11 -2
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/dnb-card.scss +12 -2
- package/es/components/form-label/style/dnb-form-label.css +4 -1
- package/es/components/form-label/style/dnb-form-label.min.css +1 -1
- package/es/components/form-label/style/dnb-form-label.scss +5 -2
- package/es/components/global-status/GlobalStatus.d.ts +1 -1
- package/es/components/global-status/GlobalStatusProvider.d.ts +1 -1
- package/es/components/height-animation/HeightAnimationInstance.d.ts +5 -6
- package/es/components/height-animation/HeightAnimationInstance.js +12 -12
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/height-animation/useHeightAnimation.js +11 -10
- package/es/components/height-animation/useHeightAnimation.js.map +1 -1
- package/es/components/input/Input.d.ts +1 -1
- package/es/components/pagination/InfinityScroller.d.ts +1 -1
- package/es/components/progress-indicator/ProgressIndicator.js +5 -7
- package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicatorCircular.js +1 -1
- package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
- package/es/components/progress-indicator/ProgressIndicatorLinear.js +4 -4
- package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.css +5 -2
- package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
- package/es/components/progress-indicator/style/dnb-progress-indicator.scss +5 -2
- package/es/components/space/SpacingHelper.d.ts +5 -5
- package/es/components/table/Table.js +1 -1
- package/es/components/table/Table.js.map +1 -1
- package/es/components/table/TableAccordion.js +38 -53
- package/es/components/table/TableAccordion.js.map +1 -1
- package/es/components/table/TableAccordionTd.d.ts +9 -0
- package/{components/table/TableAccordionContent.js → es/components/table/TableAccordionTd.js} +14 -49
- package/es/components/table/TableAccordionTd.js.map +1 -0
- package/es/components/table/TableAccordionTr.d.ts +13 -0
- package/es/components/table/TableAccordionTr.js +51 -0
- package/es/components/table/TableAccordionTr.js.map +1 -0
- package/es/components/table/TableContext.d.ts +2 -2
- package/es/components/table/TableContext.js +2 -2
- package/es/components/table/TableContext.js.map +1 -1
- package/es/components/table/TableTd.d.ts +2 -2
- package/es/components/table/TableTd.js +2 -2
- package/es/components/table/TableTd.js.map +1 -1
- package/es/components/table/TableTr.d.ts +6 -1
- package/es/components/table/TableTr.js +9 -4
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/table/style/dnb-table.css +84 -64
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/table/style/dnb-table.scss +1 -1
- package/es/components/table/style/table-accordion.scss +62 -44
- package/es/components/table/style/table-td.scss +1 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.css +10 -0
- package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +3 -1
- package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +14 -0
- package/es/components/table/useTableAnimationHandler.d.ts +20 -0
- package/es/components/table/useTableAnimationHandler.js +62 -0
- package/es/components/table/useTableAnimationHandler.js.map +1 -0
- package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +1 -0
- package/es/extensions/forms/DataContext/Context.d.ts +1 -3
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/es/extensions/forms/DataContext/Provider/Provider.js +1 -5
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -2
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
- package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +2 -18
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/es/extensions/forms/Form/data-context/useError.js +4 -2
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/es/extensions/forms/Value/Number/Number.js +1 -1
- package/es/extensions/forms/Value/Number/Number.js.map +1 -1
- package/es/extensions/forms/hooks/useDataValue.d.ts +4 -12
- package/es/extensions/forms/hooks/useDataValue.js +5 -5
- package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/es/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/es/extensions/forms/hooks/useMounted.js +14 -0
- package/es/extensions/forms/hooks/useMounted.js.map +1 -0
- package/es/extensions/forms/style/dnb-forms.css +8 -2
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +2 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/es/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- 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/Theme.d.ts +7 -1
- package/es/shared/Theme.js +20 -7
- package/es/shared/Theme.js.map +1 -1
- package/es/shared/helpers/debounce.d.ts +37 -0
- package/es/shared/helpers/debounce.js +76 -0
- package/es/shared/helpers/debounce.js.map +1 -0
- package/es/shared/helpers/useSharedState.d.ts +1 -0
- package/es/shared/helpers/useSharedState.js +49 -20
- package/es/shared/helpers/useSharedState.js.map +1 -1
- package/es/shared/helpers/withCamelCaseProps.d.ts +7 -0
- package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/es/shared/helpers.d.ts +1 -25
- package/es/shared/helpers.js +1 -29
- package/es/shared/helpers.js.map +1 -1
- package/es/shared/useTheme.d.ts +1 -0
- package/es/style/dnb-ui-components.css +119 -73
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-extensions.css +8 -2
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +8 -2
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +127 -75
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +160 -86
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +8 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +8 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/es/style/themes/theme-ui/ui-theme-components.css +127 -75
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +8 -2
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -3
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -2
- package/extensions/forms/DataContext/Provider/Provider.js +1 -5
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -2
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +2 -2
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +6 -0
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
- package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -2
- package/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/extensions/forms/Form/data-context/useData.js +2 -18
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +2 -1
- package/extensions/forms/Form/data-context/useError.js +4 -2
- package/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/extensions/forms/Value/Number/Number.d.ts +2 -2
- package/extensions/forms/Value/Number/Number.js +1 -1
- package/extensions/forms/Value/Number/Number.js.map +1 -1
- package/extensions/forms/hooks/useDataValue.d.ts +4 -12
- package/extensions/forms/hooks/useDataValue.js +5 -5
- package/extensions/forms/hooks/useDataValue.js.map +1 -1
- package/extensions/forms/hooks/useMounted.d.ts +2 -0
- package/extensions/forms/hooks/useMounted.js +14 -0
- package/extensions/forms/hooks/useMounted.js.map +1 -0
- package/extensions/forms/style/dnb-forms.css +8 -2
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +2 -0
- package/extensions/forms/types.js.map +1 -1
- package/extensions/payment-card/utils/CardDesigns.d.ts +96 -96
- package/fragments/drawer-list/DrawerListHelpers.d.ts +52 -52
- 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/Theme.d.ts +7 -1
- package/shared/Theme.js +20 -7
- package/shared/Theme.js.map +1 -1
- package/shared/helpers/debounce.d.ts +37 -0
- package/shared/helpers/debounce.js +83 -0
- package/shared/helpers/debounce.js.map +1 -0
- package/shared/helpers/useSharedState.d.ts +1 -0
- package/shared/helpers/useSharedState.js +49 -20
- package/shared/helpers/useSharedState.js.map +1 -1
- package/shared/helpers/withCamelCaseProps.d.ts +7 -0
- package/shared/helpers/withCamelCaseProps.js.map +1 -1
- package/shared/helpers.d.ts +1 -25
- package/shared/helpers.js +3 -36
- package/shared/helpers.js.map +1 -1
- package/shared/useTheme.d.ts +1 -0
- package/style/dnb-ui-components.css +119 -73
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-extensions.css +8 -2
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +8 -2
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +127 -75
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +160 -86
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +8 -6
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +8 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +8 -2
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/prism/dnb-prism-theme.d.ts +3 -3
- package/style/themes/theme-ui/ui-theme-components.css +127 -75
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +8 -2
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +8 -2
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +3 -3
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/components/table/TableAccordionContent.d.ts +0 -18
- package/cjs/components/table/TableAccordionContent.js.map +0 -1
- package/components/table/TableAccordionContent.d.ts +0 -18
- package/components/table/TableAccordionContent.js.map +0 -1
- package/es/components/table/TableAccordionContent.d.ts +0 -18
- package/es/components/table/TableAccordionContent.js.map +0 -1
|
@@ -5,22 +5,33 @@
|
|
|
5
5
|
|
|
6
6
|
@mixin tableAccordionActiveColor {
|
|
7
7
|
.dnb-table__td__accordion-icon .dnb-icon {
|
|
8
|
-
color: var(--
|
|
8
|
+
color: var(--table-accordion-icon-color--active);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
@mixin tableAccordionDisabledColor {
|
|
12
12
|
.dnb-table__td__accordion-icon .dnb-icon {
|
|
13
|
-
color: var(--
|
|
13
|
+
color: var(--table-accordion-icon-color--disabled);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.dnb-table {
|
|
18
18
|
--table-accordion-background: var(--color-white);
|
|
19
|
+
--table-accordion-header-background: var(--color-white);
|
|
19
20
|
--table-accordion-border-width: 0.0625rem;
|
|
20
21
|
--table-accordion-border-color: var(--color-black-20);
|
|
21
22
|
--table-accordion-border: var(--table-accordion-border-width) solid
|
|
22
23
|
var(--table-accordion-border-color);
|
|
23
24
|
|
|
25
|
+
// Icon
|
|
26
|
+
--table-accordion-icon-color: var(--color-sea-green);
|
|
27
|
+
--table-accordion-icon-color--active: var(--color-emerald-green);
|
|
28
|
+
--table-accordion-icon-color--disabled: var(--color-sea-green-30);
|
|
29
|
+
|
|
30
|
+
// Outline
|
|
31
|
+
--table-accordion-outline-color: var(--color-emerald-green);
|
|
32
|
+
--table-accordion-outline-width: var(--focus-ring-width);
|
|
33
|
+
--table-accordion-outline-background--active: var(--color-pistachio);
|
|
34
|
+
|
|
24
35
|
&__th#{&}__th__accordion-icon {
|
|
25
36
|
&.dnb-table__th {
|
|
26
37
|
padding: 0;
|
|
@@ -54,7 +65,7 @@
|
|
|
54
65
|
justify-content: center;
|
|
55
66
|
|
|
56
67
|
.dnb-icon {
|
|
57
|
-
color: var(--
|
|
68
|
+
color: var(--table-accordion-icon-color);
|
|
58
69
|
transition: transform 500ms var(--easing-default);
|
|
59
70
|
}
|
|
60
71
|
}
|
|
@@ -114,7 +125,7 @@
|
|
|
114
125
|
|
|
115
126
|
// Here we use border to support Safari v16 on macOS
|
|
116
127
|
// but also to only have a border on specific sides
|
|
117
|
-
border: var(--
|
|
128
|
+
border: var(--table-accordion-outline-width) solid transparent;
|
|
118
129
|
}
|
|
119
130
|
td:not(:first-of-type)::before {
|
|
120
131
|
border-left: none;
|
|
@@ -125,20 +136,18 @@
|
|
|
125
136
|
|
|
126
137
|
@include hover() {
|
|
127
138
|
td::before {
|
|
128
|
-
border-color: var(--
|
|
139
|
+
border-color: var(--table-accordion-outline-color);
|
|
129
140
|
}
|
|
130
141
|
|
|
131
142
|
@include tableAccordionActiveColor();
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
145
|
|
|
135
|
-
&--
|
|
146
|
+
&--border
|
|
136
147
|
tbody
|
|
137
|
-
&__tr--has-accordion-content:not(#{&}__tr--expanded):not(
|
|
138
|
-
:nth-last-child(2)
|
|
139
|
-
)
|
|
148
|
+
&__tr--has-accordion-content:not(#{&}__tr--expanded):not(&__tr--last)
|
|
140
149
|
&__td::before {
|
|
141
|
-
bottom: calc(var(--table-
|
|
150
|
+
bottom: calc(var(--table-border-width) * -1);
|
|
142
151
|
}
|
|
143
152
|
|
|
144
153
|
&__tr--has-accordion-content#{&}__tr--expanded:not(&__tr--disabled):hover
|
|
@@ -151,9 +160,8 @@
|
|
|
151
160
|
):not(:hover):focus {
|
|
152
161
|
td::before {
|
|
153
162
|
@include whatInput(keyboard) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
border-color: var(--color-emerald-green);
|
|
163
|
+
border-color: var(--focus-ring-color);
|
|
164
|
+
border-width: var(--focus-ring-width);
|
|
157
165
|
}
|
|
158
166
|
}
|
|
159
167
|
td:first-of-type::before {
|
|
@@ -167,7 +175,7 @@
|
|
|
167
175
|
&__tr--has-accordion-content#{&}__tr:not(&__tr--disabled):active {
|
|
168
176
|
html:not([data-whatintent='touch']) &:hover td::before,
|
|
169
177
|
td::before {
|
|
170
|
-
border-color: var(--
|
|
178
|
+
border-color: var(--table-accordion-outline-color);
|
|
171
179
|
border-width: var(
|
|
172
180
|
--table-accordion-border-width
|
|
173
181
|
); // TODO: we should have something like activeRingWidth
|
|
@@ -175,7 +183,7 @@
|
|
|
175
183
|
}
|
|
176
184
|
|
|
177
185
|
&__tr--has-accordion-content#{&}__tr:not(&__tr--disabled):active &__td {
|
|
178
|
-
background-color: var(--
|
|
186
|
+
background-color: var(--table-accordion-outline-background--active);
|
|
179
187
|
|
|
180
188
|
@include tableAccordionActiveColor();
|
|
181
189
|
}
|
|
@@ -184,7 +192,7 @@
|
|
|
184
192
|
&__tr--disabled
|
|
185
193
|
)#{&}__tr--hover:not(:active):hover
|
|
186
194
|
&__td {
|
|
187
|
-
background-color: var(--table-accordion-background);
|
|
195
|
+
background-color: var(--table-accordion-header-background);
|
|
188
196
|
|
|
189
197
|
&::before {
|
|
190
198
|
border: none;
|
|
@@ -196,7 +204,7 @@
|
|
|
196
204
|
&__tr--disabled
|
|
197
205
|
):not(:active):not(:hover) {
|
|
198
206
|
@include whatInputNot('keyboard') {
|
|
199
|
-
background-color: var(--table-accordion-background);
|
|
207
|
+
background-color: var(--table-accordion-header-background);
|
|
200
208
|
|
|
201
209
|
td::before {
|
|
202
210
|
border: none;
|
|
@@ -220,6 +228,43 @@
|
|
|
220
228
|
}
|
|
221
229
|
}
|
|
222
230
|
|
|
231
|
+
&__inner {
|
|
232
|
+
overflow: hidden;
|
|
233
|
+
will-change: height;
|
|
234
|
+
transition: height 400ms var(--easing-default);
|
|
235
|
+
|
|
236
|
+
&__spacing {
|
|
237
|
+
padding: 1rem;
|
|
238
|
+
|
|
239
|
+
transform: translateY(-10px);
|
|
240
|
+
transition: transform 500ms var(--easing-default);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
position: relative;
|
|
244
|
+
}
|
|
245
|
+
&--parallax &__inner {
|
|
246
|
+
&__spacing {
|
|
247
|
+
transform: translateY(0);
|
|
248
|
+
html[data-visual-test] & {
|
|
249
|
+
transition: none;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
&--expanded {
|
|
255
|
+
> td.dnb-table__td {
|
|
256
|
+
background-color: var(--color-white);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
+ .dnb-table__tr--has-accordion-content .dnb-table__td {
|
|
260
|
+
@include tableBorder() {
|
|
261
|
+
border-top: var(--table-accordion-border);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
&__tr__accordion-content--single {
|
|
223
268
|
td {
|
|
224
269
|
padding: 0 !important; // medium and small size sets padding – but we never want a padding on this td
|
|
225
270
|
|
|
@@ -256,29 +301,6 @@
|
|
|
256
301
|
border-top: none;
|
|
257
302
|
}
|
|
258
303
|
|
|
259
|
-
&__inner {
|
|
260
|
-
overflow: hidden;
|
|
261
|
-
will-change: height;
|
|
262
|
-
transition: height 400ms var(--easing-default);
|
|
263
|
-
|
|
264
|
-
&__spacing {
|
|
265
|
-
padding: 1rem;
|
|
266
|
-
|
|
267
|
-
transform: translateY(-10px);
|
|
268
|
-
transition: transform 500ms var(--easing-default);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
position: relative;
|
|
272
|
-
}
|
|
273
|
-
&--parallax &__inner {
|
|
274
|
-
&__spacing {
|
|
275
|
-
transform: translateY(0);
|
|
276
|
-
html[data-visual-test] & {
|
|
277
|
-
transition: none;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
304
|
> td.dnb-table__td {
|
|
283
305
|
padding: 0;
|
|
284
306
|
|
|
@@ -287,10 +309,6 @@
|
|
|
287
309
|
margin: 0;
|
|
288
310
|
}
|
|
289
311
|
}
|
|
290
|
-
|
|
291
|
-
&--expanded > td.dnb-table__td {
|
|
292
|
-
background-color: var(--color-white);
|
|
293
|
-
}
|
|
294
312
|
}
|
|
295
313
|
|
|
296
314
|
&__tr__accordion-content#{&}__tr &__td {
|
|
@@ -135,6 +135,16 @@ html:not([data-whatintent=touch]) .dnb-table > thead > tr > th.dnb-table--active
|
|
|
135
135
|
.dnb-table__container {
|
|
136
136
|
--table-border-color: var(--sb-color-gray-light-2);
|
|
137
137
|
--table-outline-color: var(--sb-color-gray-light-2);
|
|
138
|
+
--table-accordion-border-color: var(--sb-color-gray-light-2);
|
|
139
|
+
--table-accordion-header-background: var(--sb-color-gray-light-2);
|
|
140
|
+
--table-accordion-icon-color: var(--sb-color-text);
|
|
141
|
+
--table-accordion-icon-color--active: var(--sb-color-violet);
|
|
142
|
+
--table-accordion-icon-color--disabled: var(--sb-color-gray-dark-2);
|
|
143
|
+
--table-accordion-outline-color: var(--sb-color-violet);
|
|
144
|
+
--table-accordion-outline-width: var(--table-accordion-border-width);
|
|
145
|
+
--table-accordion-outline-background--active: var(
|
|
146
|
+
--sb-color-gray-light-2
|
|
147
|
+
);
|
|
138
148
|
background-color: var(--sb-color-white);
|
|
139
149
|
}
|
|
140
150
|
html[data-visual-test] .dnb-table,
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
.dnb-table{text-align:left}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);font-weight:var(--font-weight-medium);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__td:after,.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__th:after{border-top:var(--table-border);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:-.0625rem;top:0;z-index:1}.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__td:last-child:after,.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__th:last-child:after{right:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{border-radius:inherit;bottom:0;content:"";height:inherit;left:-.5rem;outline:none;position:absolute;right:-.5rem;top:0;z-index:1}html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after{visibility:hidden}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after{color:var(--sb-color-violet)}.dnb-table,.dnb-table__container{--table-border-color:var(--sb-color-gray-light-2);--table-outline-color:var(--sb-color-gray-light-2)
|
|
1
|
+
.dnb-table{text-align:left}.dnb-table thead th,.dnb-table__th{background-color:var(--sb-color-white);font-weight:var(--font-weight-medium);padding:.5rem 1.5rem .25rem}.dnb-table .dnb-table__tr--even{background-color:var(--sb-color-gray-light-3)}.dnb-table tbody .dnb-table__th,.dnb-table tbody td,.dnb-table tbody th,.dnb-table__td{padding:1rem 1.5rem}.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__td:after,.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__th:after{border-top:var(--table-border);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:-.0625rem;top:0;z-index:1}.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__td:last-child:after,.dnb-table thead+tbody .dnb-table__tr:first-child .dnb-table__th:last-child:after{right:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button{color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button .dnb-button__text:after{bottom:-.0625rem;color:var(--sb-color-violet);left:0;opacity:0}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:not(:focus) .dnb-button__text:after{color:var(--sb-color-violet)}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:hover:not([disabled]){color:var(--sb-color-violet)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]),html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]){color:var(--sb-color-violet)}html[data-whatinput=mouse] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=mouse] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{border-radius:inherit;bottom:0;content:"";height:inherit;left:-.5rem;outline:none;position:absolute;right:-.5rem;top:0;z-index:1}html[data-whatinput=touch] .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html[data-whatinput=touch] html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:active:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus[disabled]{cursor:not-allowed}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):before{bottom:-.25rem;left:-.6875rem;right:-.4375rem;top:-.375rem}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):focus-visible{color:var(--sb-color-blue-dark)}.dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,.dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--sortable .dnb-table__sort-button.dnb-button:focus:not([disabled]):not(:active) .dnb-button__text:after{visibility:hidden}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled],html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover[disabled]{cursor:not-allowed}html:not([data-whatintent=touch]) .dnb-table .dnb-table__th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after,html:not([data-whatintent=touch]) .dnb-table>thead>tr>th.dnb-table--active .dnb-table__sort-button.dnb-button:hover:not([disabled]) .dnb-button__text:after{color:var(--sb-color-violet)}.dnb-table,.dnb-table__container{--table-border-color:var(--sb-color-gray-light-2);--table-outline-color:var(--sb-color-gray-light-2);--table-accordion-border-color:var(--sb-color-gray-light-2);--table-accordion-header-background:var(--sb-color-gray-light-2);--table-accordion-icon-color:var(--sb-color-text);--table-accordion-icon-color--active:var(--sb-color-violet);--table-accordion-icon-color--disabled:var(--sb-color-gray-dark-2);--table-accordion-outline-color:var(--sb-color-violet);--table-accordion-outline-width:var(--table-accordion-border-width);--table-accordion-outline-background--active:var(
|
|
2
|
+
--sb-color-gray-light-2
|
|
3
|
+
);background-color:var(--sb-color-white)}html[data-visual-test] .dnb-table,html[data-visual-test] .dnb-table__container{--table-border-color:blue;--table-outline-color:red;--table-accordion-border-color:green}
|
|
@@ -106,6 +106,20 @@
|
|
|
106
106
|
.dnb-table__container {
|
|
107
107
|
--table-border-color: var(--sb-color-gray-light-2);
|
|
108
108
|
--table-outline-color: var(--sb-color-gray-light-2);
|
|
109
|
+
--table-accordion-border-color: var(--sb-color-gray-light-2);
|
|
110
|
+
--table-accordion-header-background: var(--sb-color-gray-light-2);
|
|
111
|
+
|
|
112
|
+
// Icon
|
|
113
|
+
--table-accordion-icon-color: var(--sb-color-text);
|
|
114
|
+
--table-accordion-icon-color--active: var(--sb-color-violet);
|
|
115
|
+
--table-accordion-icon-color--disabled: var(--sb-color-gray-dark-2);
|
|
116
|
+
|
|
117
|
+
// Outline
|
|
118
|
+
--table-accordion-outline-color: var(--sb-color-violet);
|
|
119
|
+
--table-accordion-outline-width: var(--table-accordion-border-width);
|
|
120
|
+
--table-accordion-outline-background--active: var(
|
|
121
|
+
--sb-color-gray-light-2
|
|
122
|
+
);
|
|
109
123
|
|
|
110
124
|
background-color: var(--sb-color-white);
|
|
111
125
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TableAccordionTrProps } from './TableAccordionTr';
|
|
3
|
+
export type useTableAnimationHandlerProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Ref to <div> inside the <tr> element being exapanded/collapsed
|
|
6
|
+
*/
|
|
7
|
+
innerRef: React.MutableRefObject<HTMLDivElement>;
|
|
8
|
+
/**
|
|
9
|
+
* Ref to the <tr> element being clicked
|
|
10
|
+
*/
|
|
11
|
+
trRef: React.MutableRefObject<HTMLTableRowElement>;
|
|
12
|
+
};
|
|
13
|
+
export declare function useTableAnimationHandler({ innerRef, trRef, expanded, noAnimation, }: useTableAnimationHandlerProps & TableAccordionTrProps): {
|
|
14
|
+
ariaLive: any;
|
|
15
|
+
isInDOM: boolean;
|
|
16
|
+
isAnimating: boolean;
|
|
17
|
+
isVisibleParallax: boolean;
|
|
18
|
+
firstPaintStyle: React.CSSProperties;
|
|
19
|
+
};
|
|
20
|
+
export default useTableAnimationHandler;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { getClosestScrollViewElement } from '../../shared/component-helper';
|
|
3
|
+
import { useHeightAnimation } from '../height-animation/useHeightAnimation';
|
|
4
|
+
import { TableAccordionContext } from './TableContext';
|
|
5
|
+
export function useTableAnimationHandler({
|
|
6
|
+
innerRef,
|
|
7
|
+
trRef,
|
|
8
|
+
expanded,
|
|
9
|
+
noAnimation
|
|
10
|
+
}) {
|
|
11
|
+
const tableAccordionContext = React.useContext(TableAccordionContext);
|
|
12
|
+
const [ariaLive, setAriaLive] = React.useState(null);
|
|
13
|
+
const open = Boolean(expanded || (tableAccordionContext === null || tableAccordionContext === void 0 ? void 0 : tableAccordionContext.trIsOpen));
|
|
14
|
+
const scrollViewHandler = useCallback(clip => {
|
|
15
|
+
const scollView = getClosestScrollViewElement(trRef.current);
|
|
16
|
+
if (scollView instanceof HTMLElement) {
|
|
17
|
+
scollView.style.overflow = clip ? 'clip' : '';
|
|
18
|
+
}
|
|
19
|
+
}, [trRef]);
|
|
20
|
+
const onOpen = useCallback(state => {
|
|
21
|
+
setAriaLive(state ? true : null);
|
|
22
|
+
}, []);
|
|
23
|
+
const onAnimationStart = useCallback(() => {
|
|
24
|
+
scrollViewHandler(true);
|
|
25
|
+
}, [scrollViewHandler]);
|
|
26
|
+
const onAnimationEnd = useCallback(state => {
|
|
27
|
+
var _tableAccordionContex, _tableAccordionContex2;
|
|
28
|
+
const event = {
|
|
29
|
+
target: trRef.current
|
|
30
|
+
};
|
|
31
|
+
switch (state) {
|
|
32
|
+
case 'opened':
|
|
33
|
+
(_tableAccordionContex = tableAccordionContext.onOpened) === null || _tableAccordionContex === void 0 ? void 0 : _tableAccordionContex.call(tableAccordionContext, event);
|
|
34
|
+
break;
|
|
35
|
+
case 'closed':
|
|
36
|
+
(_tableAccordionContex2 = tableAccordionContext.onClosed) === null || _tableAccordionContex2 === void 0 ? void 0 : _tableAccordionContex2.call(tableAccordionContext, event);
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
scrollViewHandler(false);
|
|
40
|
+
}, [scrollViewHandler, tableAccordionContext, trRef]);
|
|
41
|
+
const {
|
|
42
|
+
isInDOM,
|
|
43
|
+
isAnimating,
|
|
44
|
+
isVisibleParallax,
|
|
45
|
+
firstPaintStyle
|
|
46
|
+
} = useHeightAnimation(innerRef, {
|
|
47
|
+
open,
|
|
48
|
+
animate: Boolean(!noAnimation && !(tableAccordionContext !== null && tableAccordionContext !== void 0 && tableAccordionContext.noAnimation)),
|
|
49
|
+
onOpen,
|
|
50
|
+
onAnimationStart,
|
|
51
|
+
onAnimationEnd
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
ariaLive,
|
|
55
|
+
isInDOM,
|
|
56
|
+
isAnimating,
|
|
57
|
+
isVisibleParallax,
|
|
58
|
+
firstPaintStyle
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export default useTableAnimationHandler;
|
|
62
|
+
//# sourceMappingURL=useTableAnimationHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableAnimationHandler.js","names":["React","useCallback","getClosestScrollViewElement","useHeightAnimation","TableAccordionContext","useTableAnimationHandler","innerRef","trRef","expanded","noAnimation","tableAccordionContext","useContext","ariaLive","setAriaLive","useState","open","Boolean","trIsOpen","scrollViewHandler","clip","scollView","current","HTMLElement","style","overflow","onOpen","state","onAnimationStart","onAnimationEnd","_tableAccordionContex","_tableAccordionContex2","event","target","onOpened","call","onClosed","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","animate"],"sources":["../../../../src/components/table/useTableAnimationHandler.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { getClosestScrollViewElement } from '../../shared/component-helper'\nimport { useHeightAnimation } from '../height-animation/useHeightAnimation'\nimport { TableAccordionTrProps } from './TableAccordionTr'\nimport { TableAccordionContext } from './TableContext'\n\nexport type useTableAnimationHandlerProps = {\n /**\n * Ref to <div> inside the <tr> element being exapanded/collapsed\n */\n innerRef: React.MutableRefObject<HTMLDivElement>\n /**\n * Ref to the <tr> element being clicked\n */\n trRef: React.MutableRefObject<HTMLTableRowElement>\n}\n\nexport function useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n}: useTableAnimationHandlerProps & TableAccordionTrProps) {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const [ariaLive, setAriaLive] = React.useState(null)\n const open = Boolean(expanded || tableAccordionContext?.trIsOpen)\n\n const scrollViewHandler = useCallback(\n (clip: boolean) => {\n const scollView = getClosestScrollViewElement(\n trRef.current\n ) as HTMLElement\n if (scollView instanceof HTMLElement) {\n scollView.style.overflow = clip ? 'clip' : ''\n }\n },\n [trRef]\n )\n\n const onOpen = useCallback((state) => {\n setAriaLive(state ? true : null)\n }, [])\n\n const onAnimationStart = useCallback(() => {\n scrollViewHandler(true)\n }, [scrollViewHandler])\n\n const onAnimationEnd = useCallback(\n (state) => {\n const event = { target: trRef.current }\n switch (state) {\n case 'opened':\n tableAccordionContext.onOpened?.(event)\n break\n\n case 'closed':\n tableAccordionContext.onClosed?.(event)\n break\n }\n\n scrollViewHandler(false)\n },\n [scrollViewHandler, tableAccordionContext, trRef]\n )\n\n const { isInDOM, isAnimating, isVisibleParallax, firstPaintStyle } =\n useHeightAnimation(innerRef, {\n open,\n animate: Boolean(\n !noAnimation && !tableAccordionContext?.noAnimation\n ),\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n return {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n }\n}\n\nexport default useTableAnimationHandler\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,2BAA2B,QAAQ,+BAA+B;AAC3E,SAASC,kBAAkB,QAAQ,wCAAwC;AAE3E,SAASC,qBAAqB,QAAQ,gBAAgB;AAatD,OAAO,SAASC,wBAAwBA,CAAC;EACvCC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACRC;AACqD,CAAC,EAAE;EACxD,MAAMC,qBAAqB,GAAGV,KAAK,CAACW,UAAU,CAACP,qBAAqB,CAAC;EACrE,MAAM,CAACQ,QAAQ,EAAEC,WAAW,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAAC,IAAI,CAAC;EACpD,MAAMC,IAAI,GAAGC,OAAO,CAACR,QAAQ,KAAIE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEO,QAAQ,EAAC;EAEjE,MAAMC,iBAAiB,GAAGjB,WAAW,CAClCkB,IAAa,IAAK;IACjB,MAAMC,SAAS,GAAGlB,2BAA2B,CAC3CK,KAAK,CAACc,OACR,CAAgB;IAChB,IAAID,SAAS,YAAYE,WAAW,EAAE;MACpCF,SAAS,CAACG,KAAK,CAACC,QAAQ,GAAGL,IAAI,GAAG,MAAM,GAAG,EAAE;IAC/C;EACF,CAAC,EACD,CAACZ,KAAK,CACR,CAAC;EAED,MAAMkB,MAAM,GAAGxB,WAAW,CAAEyB,KAAK,IAAK;IACpCb,WAAW,CAACa,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAG1B,WAAW,CAAC,MAAM;IACzCiB,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMU,cAAc,GAAG3B,WAAW,CAC/ByB,KAAK,IAAK;IAAA,IAAAG,qBAAA,EAAAC,sBAAA;IACT,MAAMC,KAAK,GAAG;MAAEC,MAAM,EAAEzB,KAAK,CAACc;IAAQ,CAAC;IACvC,QAAQK,KAAK;MACX,KAAK,QAAQ;QACX,CAAAG,qBAAA,GAAAnB,qBAAqB,CAACuB,QAAQ,cAAAJ,qBAAA,uBAA9BA,qBAAA,CAAAK,IAAA,CAAAxB,qBAAqB,EAAYqB,KAAK,CAAC;QACvC;MAEF,KAAK,QAAQ;QACX,CAAAD,sBAAA,GAAApB,qBAAqB,CAACyB,QAAQ,cAAAL,sBAAA,uBAA9BA,sBAAA,CAAAI,IAAA,CAAAxB,qBAAqB,EAAYqB,KAAK,CAAC;QACvC;IACJ;IAEAb,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EACD,CAACA,iBAAiB,EAAER,qBAAqB,EAAEH,KAAK,CAClD,CAAC;EAED,MAAM;IAAE6B,OAAO;IAAEC,WAAW;IAAEC,iBAAiB;IAAEC;EAAgB,CAAC,GAChEpC,kBAAkB,CAACG,QAAQ,EAAE;IAC3BS,IAAI;IACJyB,OAAO,EAAExB,OAAO,CACd,CAACP,WAAW,IAAI,EAACC,qBAAqB,aAArBA,qBAAqB,eAArBA,qBAAqB,CAAED,WAAW,CACrD,CAAC;IACDgB,MAAM;IACNE,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEJ,OAAO;IACLhB,QAAQ;IACRwB,OAAO;IACPC,WAAW;IACXC,iBAAiB;IACjBC;EACF,CAAC;AACH;AAEA,eAAelC,wBAAwB"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Ajv } from '../utils/ajv';
|
|
3
|
-
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths } from '../types';
|
|
4
|
-
export type Path = string;
|
|
5
|
-
export type Identifier = string;
|
|
3
|
+
import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, Path } from '../types';
|
|
6
4
|
type HandleSubmitProps = {
|
|
7
5
|
formElement?: HTMLFormElement;
|
|
8
6
|
};
|
|
@@ -1 +1 @@
|
|
|
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\
|
|
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 Path,\n} from '../types'\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;AA6CnD,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,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JsonObject } from 'json-pointer';
|
|
3
3
|
import { Ajv } from '../../utils/ajv';
|
|
4
|
-
import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, FieldProps } from '../../types';
|
|
5
|
-
import { Path } from '../Context';
|
|
4
|
+
import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, FieldProps, Path } from '../../types';
|
|
6
5
|
export type UpdateDataValue = (path: Path, data: unknown) => void;
|
|
7
6
|
export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
|
|
8
7
|
export type FilterData = (path: Path, value: any, props: FieldProps) => boolean | undefined;
|
|
@@ -120,10 +120,6 @@ export default function Provider(_ref) {
|
|
|
120
120
|
shared: sharedData.data,
|
|
121
121
|
hasUsedInitialData: false
|
|
122
122
|
});
|
|
123
|
-
const countRef = useRef(0);
|
|
124
|
-
if (countRef.current++ > 100) {
|
|
125
|
-
throw new Error('countRef.current: ' + countRef.current);
|
|
126
|
-
}
|
|
127
123
|
internalDataRef.current = useMemo(() => {
|
|
128
124
|
if (id && initialData && !sharedData.data) {
|
|
129
125
|
sharedData.update(initialData);
|
|
@@ -143,7 +139,7 @@ export default function Provider(_ref) {
|
|
|
143
139
|
return data;
|
|
144
140
|
}
|
|
145
141
|
return internalDataRef.current;
|
|
146
|
-
}, [
|
|
142
|
+
}, [data, id, initialData, sharedData]);
|
|
147
143
|
useLayoutEffect(() => {
|
|
148
144
|
if (id && initialData && !sharedData.data) {
|
|
149
145
|
extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(initialData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","pointer","makeAjvInstance","ajvErrorsToFormErrors","useMountEffect","useUpdateEffect","useSharedState","Context","structuredClone","useLayoutEffect","window","useEffect","isArrayJsonPointer","Provider","_ref","_sharedAttachments$da","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","ajvValidatorRef","validateDataNow","_ajvValidatorRef$curr","call","errors","validateData","hasFieldError","path","_errorsRef$current","Boolean","includes","hasErrors","find","setValueWithError","withError","addListPath","removeListPath","filterDataHandler","filter","filtered","_objectSpread","Object","entries","fieldPropsRef","forEach","props","exists","has","result","get","remove","setProps","sharedData","sharedAttachments","updateSharedData","update","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","countRef","Error","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","_ajvRef$current2","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath"],"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\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<Path[]>([])\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<Path[]>([])\n\n // - Data\n const initialData = useMemo<Data>(() => {\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\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const validateDataNow = 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 const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n validateDataNow()\n forceUpdate()\n }, [validateDataNow])\n\n // - Error handling\n const hasFieldError = useCallback((path: Path) => {\n return Boolean(\n errorsRef.current?.[path] !== undefined ||\n valuesWithErrorRef.current.includes(path)\n )\n }, [])\n const hasErrors = useCallback(() => {\n return Boolean(\n mountedFieldPathsRef.current.find((path) => hasFieldError(path))\n )\n }, [hasFieldError])\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 sharedAttachments = 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 extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const countRef = useRef(0)\n if (countRef.current++ > 100) {\n throw new Error('countRef.current: ' + countRef.current)\n }\n\n internalDataRef.current = useMemo(() => {\n // Update the shared state, if initialData is given and no shared state is available\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, data, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n validateDataNow()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({ filterDataHandler, hasErrors })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n filterData,\n filterDataHandler,\n rerenderUseDataHook,\n hasErrors,\n id,\n extendAttachment,\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 if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [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\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"],"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","isArrayJsonPointer","Provider","_ref","_sharedAttachments$da","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","ajvValidatorRef","validateDataNow","_ajvValidatorRef$curr","call","errors","validateData","hasFieldError","path","_errorsRef$current","Boolean","includes","hasErrors","find","setValueWithError","withError","addListPath","removeListPath","filterDataHandler","filter","filtered","_objectSpread","Object","entries","fieldPropsRef","forEach","props","exists","has","result","get","remove","setProps","sharedData","sharedAttachments","updateSharedData","update","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","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","_ajvRef$current2","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath"],"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 Path,\n} 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\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\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<Path[]>([])\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<Path[]>([])\n\n // - Data\n const initialData = useMemo<Data>(() => {\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\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const validateDataNow = 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 const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n validateDataNow()\n forceUpdate()\n }, [validateDataNow])\n\n // - Error handling\n const hasFieldError = useCallback((path: Path) => {\n return Boolean(\n errorsRef.current?.[path] !== undefined ||\n valuesWithErrorRef.current.includes(path)\n )\n }, [])\n const hasErrors = useCallback(() => {\n return Boolean(\n mountedFieldPathsRef.current.find((path) => hasFieldError(path))\n )\n }, [hasFieldError])\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 sharedAttachments = 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 extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n internalDataRef.current = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n validateDataNow()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({ filterDataHandler, hasErrors })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n filterData,\n filterDataHandler,\n rerenderUseDataHook,\n hasErrors,\n id,\n extendAttachment,\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 if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [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\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"],"mappings":"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"}
|