@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","firstPaintStyle","position","visibility","opacity","height","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","parentNode","insertBefore","nextSibling","key","style","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","readjust","close","overflowY","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n firstPaintStyle() {\n return {\n position: 'absolute',\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.height = 'auto'\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget) {\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (this.state === 'adjusting' && e.target === e.currentTarget) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","undefined","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","width","clientWidth","clonedElem","cloneNode","parentNode","insertBefore","nextSibling","key","firstPaintStyle","style","position","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","readjust","close","overflowY","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const width = this.elem.clientWidth\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.width = width ? `${String(width)}px` : 'auto' // set width because of the \"position: absolute\"\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":";;;AA4BA,eAAe,MAAMA,eAAe,CAAC;EAwBnCC,WAAWA,CAACC,IAA4B,GAAG,CAAC,CAAC,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA,uBArBH,EAAE;IAAAA,eAAA,qBACN,EAAE;IAAAA,eAAA,iBACV,EAAE;IAAAA,eAAA,eACH;MAAEC,OAAO,EAAE;IAAK,CAAC;IAAAD,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,mBAKnB,EAAE;IAAAA,eAAA,oBACV,CAAC;IAAAA,eAAA,oBACD,CAAC;IAAAA,eAAA,mBACF,CAAC;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,0BAIH;MAChBE,UAAU,EAAE,QAAQ;MACpBC,OAAO,EAAE,GAAG;MACZC,MAAM,EAAE;IACV,CAAC;IAGC,IAAI,CAACC,WAAW,GAAG,OAAOC,MAAM,KAAK,WAAW;IAChD,IAAI,CAACC,QAAQ,CAAC,MAAM,CAAC;IACrB,IAAI,CAACC,UAAU,CAACT,IAAI,CAAC;EACvB;EAEAU,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAACC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,CAACC,SAAS,EAAE;MACnB,IAAI,CAACA,SAAS,GAAG,IAAI,CAACH,SAAS;IACjC;IACA,IAAI,IAAI,CAACI,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACC,OAAO,CAAEC,EAAE,IAAK;QAChC,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;UAC5BA,EAAE,CAAC,IAAI,CAACC,KAAK,CAAC;QAChB;MACF,CAAC,CAAC;IACJ;EACF;EACAC,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,WAAW,GAAG,KAAK;IAExB,IAAI,IAAI,CAACF,KAAK,KAAK,QAAQ,EAAE;MAC3B,OAAO,IAAI,CAACG,eAAe;IAC7B;IAEA,IAAI,CAACC,eAAe,CAAC,CAAC;IAEtB,IAAI,IAAI,CAACC,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACP,OAAO,CAAEC,EAAE,IAAK;QAC9B,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;UAC5BA,EAAE,CAAC,IAAI,CAACC,KAAK,CAAC;QAChB;MACF,CAAC,CAAC;IACJ;EACF;EACAM,WAAWA,CAACC,QAAsC,EAAE;IAAA,IAAAC,UAAA,EAAAC,qBAAA;IAClD,IAAI,CAACL,eAAe,CAAC,CAAC;IAEtB,MAAMM,mBAAmB,GAAIC,CAAC,IAAK;MACjC,IAAI,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;QACpBL,QAAQ,CAACI,CAAC,CAAC;MACb,CAAC,MAAM;QACL,MAAME,KAAK,GAAG,IAAI,CAACC,QAAQ,IAAIpB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS,CAAC;QAE3D,IAAIoB,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBN,QAAQ,CAACI,CAAC,CAAC;QACb,CAAC,MAAM;UACL,IAAI,CAACI,QAAQ,CAACC,IAAI,CAACC,UAAU,CAAC,MAAMV,QAAQ,CAACI,CAAC,CAAC,EAAEE,KAAK,CAAC,CAAC;QAC1D;MACF;IACF,CAAC;IAED,IAAI,CAACK,MAAM,CAACF,IAAI,CAACN,mBAAmB,CAAC;IACrC,CAAAF,UAAA,OAAI,CAACW,IAAI,cAAAX,UAAA,wBAAAC,qBAAA,GAATD,UAAA,CAAWY,gBAAgB,cAAAX,qBAAA,uBAA3BA,qBAAA,CAAAY,IAAA,CAAAb,UAAA,EAA8B,eAAe,EAAEE,mBAAmB,CAAC;EACrE;EACAN,eAAeA,CAAA,EAAG;IAChB,IAAI,CAACc,MAAM,CAACpB,OAAO,CAAES,QAAQ,IAAK;MAAA,IAAAe,WAAA,EAAAC,qBAAA;MAChC,CAAAD,WAAA,OAAI,CAACH,IAAI,cAAAG,WAAA,wBAAAC,qBAAA,GAATD,WAAA,CAAWE,mBAAmB,cAAAD,qBAAA,uBAA9BA,qBAAA,CAAAF,IAAA,CAAAC,WAAA,EAAiC,eAAe,EAAEf,QAAQ,CAAC;IAC7D,CAAC,CAAC;IACF,IAAI,CAACW,MAAM,GAAG,EAAE;EAClB;EAGAO,UAAUA,CAACN,IAA4B,EAAE;IAAA,IAAAO,WAAA,EAAAC,qBAAA;IACvC,IAAI,CAACR,IAAI,GACPA,IAAI,IACH,OAAOS,QAAQ,KAAK,WAAW,IAAIA,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAE;IAGpE,IAAIC,MAAM,EAAAJ,WAAA,GAAC,IAAI,CAACP,IAAI,cAAAO,WAAA,uBAATA,WAAA,CAAWK,QAAQ,CAAC,CAACC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE;MACtD,IAAI,CAACb,IAAI,GAAG,IAAI,CAACA,IAAI,CAACc,aAAa;IACrC;IAEA,IAAI,CAACnB,QAAQ,IAAAa,qBAAA,GACXO,UAAU,CAACC,iBAAiB,cAAAR,qBAAA,cAAAA,qBAAA,GAC3BS,UAAU,CAAC/C,MAAM,CAACgD,gBAAgB,CAAC,IAAI,CAAClB,IAAI,CAAC,CAACmB,kBAAkB,CAAC,GAChE,IAAI,IACJ,GAAI;EACV;EACAhD,QAAQA,CAACU,KAA4B,EAAE;IACrC,IAAI,CAACA,KAAK,GAAGuC,MAAM,CAACC,MAAM,CAACxC,KAAK,CAAC;EACnC;EACAT,UAAUA,CAACT,IAA4B,EAAE;IACvC,IAAI,CAACA,IAAI,GAAGyD,MAAM,CAACC,MAAM,CAAAC,aAAA,CAAAA,aAAA,KAAM,IAAI,CAAC3D,IAAI,GAAKA,IAAI,CAAE,CAAC;EACtD;EACA4D,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC5D,IAAI;EAClB;EACA6D,MAAMA,CAAA,EAAG;IACP,IAAI,CAACC,IAAI,CAAC,CAAC;IACX,IAAI,CAACxC,eAAe,CAAC,CAAC;IACtB,IAAI,CAACd,QAAQ,CAAC,MAAM,CAAC;IACrB,IAAI,CAACY,WAAW,GAAG,KAAK;IACxB,IAAI,CAACG,UAAU,GAAG,EAAE;IACpB,IAAI,CAACR,YAAY,GAAG,EAAE;IACtB,IAAI,CAACM,eAAe,GAAG0C,SAAS;IAChC,IAAI,CAAC1B,IAAI,GAAG0B,SAAS;EACvB;EACAC,SAASA,CAAA,EAAG;IACV,IAAI,IAAI,CAAC9C,KAAK,KAAK,QAAQ,EAAE;MAC3B;IACF;IACA,IAAI,CAACV,QAAQ,CAAC,SAAS,CAAC;IACxB,IAAI,CAACE,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACF,QAAQ,CAAC,QAAQ,CAAC;IACvB,IAAI,CAACW,gBAAgB,CAAC,CAAC;EACzB;EACA8C,WAAWA,CAAA,EAAG;IACZ,IAAI,IAAI,CAAC/C,KAAK,KAAK,QAAQ,EAAE;MAC3B;IACF;IACA,IAAI,CAACV,QAAQ,CAAC,SAAS,CAAC;IACxB,IAAI,CAACE,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACF,QAAQ,CAAC,QAAQ,CAAC;IACvB,IAAI,CAACW,gBAAgB,CAAC,CAAC;EACzB;EACA+C,SAASA,CAAA,EAAG;IAAA,IAAAC,WAAA;IACV,OAAOb,UAAU,CAACN,MAAM,EAAAmB,WAAA,GAAC,IAAI,CAAC9B,IAAI,cAAA8B,WAAA,uBAATA,WAAA,CAAWC,YAAY,CAAC,CAAC,IAAI,IAAI;EAC5D;EACAC,gBAAgBA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,qBAAA;IACjB,IAAI,CAAC,IAAI,CAAClC,IAAI,EAAE;MACd,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAACjB,WAAW,IAAI,OAAO,IAAI,CAACC,eAAe,KAAK,WAAW,EAAE;MACnE,OAAO,IAAI,CAACA,eAAe;IAC7B;IAEA,MAAMmD,KAAK,GAAG,IAAI,CAACnC,IAAI,CAACoC,WAAW;IACnC,MAAMC,UAAU,GAAG,IAAI,CAACrC,IAAI,CAACsC,SAAS,CAAC,IAAI,CAAgB;IAC3D,CAAAL,qBAAA,OAAI,CAACjC,IAAI,CAACuC,UAAU,cAAAN,qBAAA,uBAApBA,qBAAA,CAAsBO,YAAY,CAACH,UAAU,EAAE,IAAI,CAACrC,IAAI,CAACyC,WAAW,CAAC;IAErE,KAAK,MAAMC,GAAG,IAAI,IAAI,CAACC,eAAe,EAAE;MACtCN,UAAU,CAACO,KAAK,CAACF,GAAG,CAAC,GAAG,IAAI,CAACC,eAAe,CAACD,GAAG,CAAC;IACnD;IACAL,UAAU,CAACO,KAAK,CAACT,KAAK,GAAGA,KAAK,GAAI,GAAExB,MAAM,CAACwB,KAAK,CAAE,IAAG,GAAG,MAAM;IAC9DE,UAAU,CAACO,KAAK,CAACC,QAAQ,GAAG,UAAU;IAEtC,MAAM7E,MAAM,GACViD,UAAU,CAACN,MAAM,CAAC0B,UAAU,CAACN,YAAY,CAAC,CAAC,IAE3Cd,UAAU,CAACoB,UAAU,CAACS,YAAY,CAAC,aAAa,CAAC,CAAC,IAClD,IAAI;IAEN,CAAAZ,qBAAA,GAAAG,UAAU,CAACE,UAAU,cAAAL,qBAAA,uBAArBA,qBAAA,CAAuBa,WAAW,CAACV,UAAU,CAAC;IAE9C,IAAIrE,MAAM,EAAE;MACV,IAAI,CAACgB,eAAe,GAAGhB,MAAM;IAC/B;IAEA,OAAOA,MAAM;EACf;EACAgF,OAAOA,CAACpE,EAAkC,EAAE;IAC1C,IAAI,CAACF,YAAY,CAACmB,IAAI,CAACjB,EAAE,CAAC;EAC5B;EACAqE,KAAKA,CAACrE,EAAgC,EAAE;IACtC,IAAI,CAACM,UAAU,CAACW,IAAI,CAACjB,EAAE,CAAC;EAC1B;EACAsE,KAAKA,CACHC,UAAqC,EACrCC,QAAiC,EACjC;IACA,IACE,CAAC,IAAI,CAACpD,IAAI,IACV,EACE,IAAI,CAAC/B,WAAW,IAChB,OAAOC,MAAM,CAACmF,qBAAqB,KAAK,UAAU,CACnD,EACD;MACA;IACF;IAEA,MAAM1F,IAAI,GAAG,IAAI,CAAC4D,UAAU,CAAC,CAAC;IAC9B,IAAI5D,IAAI,CAACE,OAAO,KAAK,KAAK,EAAE;MAC1B;IACF;IAEA,IAAI,CAAC4D,IAAI,CAAC,CAAC;IACX,IAAI,CAAC1C,WAAW,GAAG,IAAI;IAGvB,IAAI,CAACuE,MAAM,GAAGpF,MAAM,CAACmF,qBAAqB,CAAC,MAAM;MAC/C,IAAI,CAAC,IAAI,CAACrD,IAAI,EAAE;QACd;MACF;MAEA,IAAI,CAACA,IAAI,CAAC4C,KAAK,CAAC5E,MAAM,GAAI,GAAEmF,UAAW,IAAG;MAE1C,IAAI,CAACI,MAAM,GAAGrF,MAAM,CAACmF,qBAAqB,CAAC,MAAM;QAC/C,IAAI,CAAC,IAAI,CAACrD,IAAI,EAAE;UACd;QACF;QAEA,IAAI,CAACA,IAAI,CAAC4C,KAAK,CAAC5E,MAAM,GAAI,GAAEoF,QAAS,IAAG;MAC1C,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EACA3B,IAAIA,CAAA,EAAG;IACL,IAAI,CAAC7B,QAAQ,CAACjB,OAAO,CAAE6E,EAAE,IAAKC,YAAY,CAACD,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC5D,QAAQ,GAAG,EAAE;IAElB,IACE,IAAI,CAAC3B,WAAW,IAChB,OAAOC,MAAM,CAACmF,qBAAqB,KAAK,UAAU,EAClD;MACAnF,MAAM,CAACwF,oBAAoB,CAAC,IAAI,CAACJ,MAAM,CAAC;MACxCpF,MAAM,CAACwF,oBAAoB,CAAC,IAAI,CAACH,MAAM,CAAC;IAC1C;EACF;EACAI,IAAIA,CAAA,EAAG;IACL,IACE,IAAI,CAAC9E,KAAK,KAAK,QAAQ,IACvB,IAAI,CAACA,KAAK,KAAK,SAAS,IACxB,IAAI,CAAC+E,qBAAqB,CAAC,CAAC,EAC5B;MACA,IAAI,CAACjC,SAAS,CAAC,CAAC;MAChB;IACF;IAEA,IAAI,CAACxD,QAAQ,CAAC,SAAS,CAAC;IACxB,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAEzB,MAAM+E,QAAQ,GAAG,IAAI,CAACpB,gBAAgB,CAAC,CAAC;IAExC,IAAI,CAAC7C,WAAW,CAAEK,CAAC,IAAK;MACtB,IAAIA,CAAC,CAACqE,MAAM,KAAKrE,CAAC,CAACsE,aAAa,IAAI,CAACtE,CAAC,CAACsE,aAAa,EAAE;QACpD,IAAI,CAAC3F,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC4F,QAAQ,CAAC,CAAC;MACjB;IACF,CAAC,CAAC;IAEF,IAAI,CAACb,KAAK,CAAC,CAAC,EAAEE,QAAQ,CAAC;EACzB;EACAY,KAAKA,CAAA,EAAG;IACN,IACE,IAAI,CAACnF,KAAK,KAAK,QAAQ,IACvB,IAAI,CAACA,KAAK,KAAK,SAAS,IACxB,IAAI,CAAC+E,qBAAqB,CAAC,CAAC,EAC5B;MACA,IAAI,CAAChC,WAAW,CAAC,CAAC;MAClB;IACF;IAEA,IAAI,CAACzD,QAAQ,CAAC,SAAS,CAAC;IACxB,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAEzB,MAAM8E,UAAU,GAAG,IAAI,CAACtB,SAAS,CAAC,CAAC;IAEnC,IAAI,CAAC1C,WAAW,CAAEK,CAAC,IAAK;MACtB,IAAIA,CAAC,CAACqE,MAAM,KAAKrE,CAAC,CAACsE,aAAa,IAAI,CAACtE,CAAC,CAACsE,aAAa,EAAE;QACpD,IAAI,IAAI,CAAC9D,IAAI,EAAE;UACb,IAAI,CAACA,IAAI,CAAC4C,KAAK,CAAC9E,UAAU,GAAG,QAAQ;UACrC,IAAI,CAACkC,IAAI,CAAC4C,KAAK,CAACqB,SAAS,GAAG,MAAM;QACpC;QACA,IAAI,CAAC9F,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,CAACW,gBAAgB,CAAC,CAAC;MACzB;IACF,CAAC,CAAC;IAEF,IAAI,CAACoE,KAAK,CAACC,UAAU,EAAE,CAAC,CAAC;EAC3B;EACAe,QAAQA,CACNf,UAAqC,GAAG,IAAI,EAC5CC,QAAiC,GAAG,IAAI,EACxC;IACA,MAAMzF,IAAI,GAAG,IAAI,CAAC4D,UAAU,CAAC,CAAC;IAE9B,IACE,CAAC,IAAI,CAACvB,IAAI,IACVrC,IAAI,CAACE,OAAO,KAAK,KAAK,IACtB,IAAI,CAACgB,KAAK,KAAK,SAAS,IACxB,IAAI,CAACA,KAAK,KAAK,SAAS,EACxB;MACA;IACF;IAEA,IAAIsE,UAAU,KAAK,CAAC,IAAIA,UAAU,KAAK,IAAI,EAAE;MAC3CA,UAAU,GAAG,IAAI,CAACtB,SAAS,CAAC,CAAC;IAC/B;IACA,IAAIuB,QAAQ,KAAK,IAAI,EAAE;MACrBA,QAAQ,GAAG,IAAI,CAACpB,gBAAgB,CAAC,CAAC;IACpC;IAEA,IAAImB,UAAU,KAAKC,QAAQ,EAAE;MAC3B,IAAI,CAACjF,QAAQ,CAAC,UAAU,CAAC;MACzB;IACF;IAEA,IAAI,CAACA,QAAQ,CAAC,WAAW,CAAC;IAC1B,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAEzB,IAAI,CAACc,WAAW,CAAEK,CAAC,IAAK;MACtB,IACE,IAAI,CAACX,KAAK,KAAK,WAAW,KACzBW,CAAC,CAACqE,MAAM,KAAKrE,CAAC,CAACsE,aAAa,IAAI,CAACtE,CAAC,CAACsE,aAAa,CAAC,EAClD;QACA,IAAI,IAAI,CAAC9D,IAAI,EAAE;UACb,IAAI,CAACA,IAAI,CAAC4C,KAAK,CAAC5E,MAAM,GAAG,MAAM;QACjC;QACA,IAAI,CAACG,QAAQ,CAAC,UAAU,CAAC;QACzB,IAAI,CAACW,gBAAgB,CAAC,CAAC;MACzB;IACF,CAAC,CAAC;IAEF,IAAI,CAACoE,KAAK,CAACC,UAAU,EAAEC,QAAQ,CAAC;EAClC;EACAW,QAAQA,CAAA,EAAG;IACT,MAAMI,SAAS,GAAG,IAAI,CAACtC,SAAS,CAAC,CAAC;IAElC,IAAI,IAAI,CAAC7B,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,CAAC4C,KAAK,CAAC5E,MAAM,GAAG,MAAM;IACjC;IAEA,IAAI,CAACgB,eAAe,GAAG0C,SAAS;IAChC,MAAM0C,SAAS,GAAG,IAAI,CAACpC,gBAAgB,CAAC,CAAC;IAGzC,IAAImC,SAAS,KAAKC,SAAS,EAAE;MAC3B,IAAI,CAACF,QAAQ,CAACC,SAAS,EAAEC,SAAS,CAAC;IACrC,CAAC,MAAM;MACL,IAAI,CAACtF,gBAAgB,CAAC,CAAC;IACzB;EACF;EAMAW,SAASA,CAAA,EAAG;IAAA,IAAA4E,sBAAA;IACV,OAAOC,OAAO,CACZ,IAAI,CAAChG,SAAS,IACZC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS,KAAA+F,sBAAA,GACxBtD,UAAU,CAACC,iBAAiB,cAAAqD,sBAAA,cAAAA,sBAAA,GAAI,IAAI,CAAC1E,QAAQ,CACpD,CAAC;EACH;EAMAiE,qBAAqBA,CAAA,EAAG;IAAA,IAAAW,qBAAA;IACtB,MAAM5G,IAAI,GAAG,IAAI,CAAC4D,UAAU,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,CAACvB,IAAI,IAAIrC,IAAI,CAACE,OAAO,KAAK,KAAK,EAAE;MACxC,OAAO,IAAI;IACb;IAEA,IACE,IAAI,CAACI,WAAW,KACf8C,UAAU,CAACyD,OAAO,IAAIzD,UAAU,CAAC0D,UAAU,KAAK,CAAC,CAAC,CAAC,EACpD;MACA,OAAO,KAAK;IACd;IAEA,OAAOH,OAAO,CACZ,IAAI,CAAC7F,SAAS,IACZF,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAACC,SAAS,KAAA8F,qBAAA,GAAIxD,UAAU,CAAC0D,UAAU,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,GAAG,CAC/D,CAAC;EACH;AACF"}
|
|
@@ -54,7 +54,9 @@ export function useHeightAnimation(targetRef, {
|
|
|
54
54
|
setIsAnimating(true);
|
|
55
55
|
break;
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
if (!isInitialRenderRef.current) {
|
|
58
|
+
onAnimationStart === null || onAnimationStart === void 0 ? void 0 : onAnimationStart(state);
|
|
59
|
+
}
|
|
58
60
|
});
|
|
59
61
|
instRef.current.onEnd(state => {
|
|
60
62
|
switch (state) {
|
|
@@ -92,7 +94,7 @@ export function useHeightAnimation(targetRef, {
|
|
|
92
94
|
isInitialRenderRef,
|
|
93
95
|
targetRef
|
|
94
96
|
});
|
|
95
|
-
const firstPaintStyle = open && !isVisible && !isAnimating && ((_instRef$current2 = instRef.current) === null || _instRef$current2 === void 0 ? void 0 : _instRef$current2.firstPaintStyle
|
|
97
|
+
const firstPaintStyle = open && !isVisible && !isAnimating && ((_instRef$current2 = instRef.current) === null || _instRef$current2 === void 0 ? void 0 : _instRef$current2.firstPaintStyle) || {};
|
|
96
98
|
const isInDOM = open || isVisible;
|
|
97
99
|
return {
|
|
98
100
|
open,
|
|
@@ -110,6 +112,7 @@ function useOpenClose({
|
|
|
110
112
|
isInitialRenderRef,
|
|
111
113
|
targetRef
|
|
112
114
|
}) {
|
|
115
|
+
const isTest = typeof process !== 'undefined' && process.env.NODE_ENV === 'test' && typeof globalThis.IS_TEST === 'undefined';
|
|
113
116
|
useLayoutEffect(() => {
|
|
114
117
|
instRef.current.setElement(targetRef.current);
|
|
115
118
|
if (!targetRef.current || instRef.current.state === 'init' && isInitialRenderRef.current) {
|
|
@@ -118,21 +121,19 @@ function useOpenClose({
|
|
|
118
121
|
} else {
|
|
119
122
|
instRef.current.setAsClosed();
|
|
120
123
|
}
|
|
121
|
-
}
|
|
122
|
-
}, [open, targetRef, instRef, isInitialRenderRef]);
|
|
123
|
-
const isTest = typeof process !== 'undefined' && process.env.NODE_ENV === 'test' && typeof globalThis.IS_TEST === 'undefined';
|
|
124
|
-
useLayoutEffect(() => {
|
|
125
|
-
if (open) {
|
|
126
|
-
instRef.current.open();
|
|
127
124
|
} else {
|
|
128
|
-
|
|
125
|
+
if (open) {
|
|
126
|
+
instRef.current.open();
|
|
127
|
+
} else {
|
|
128
|
+
instRef.current.close();
|
|
129
|
+
}
|
|
129
130
|
}
|
|
130
131
|
if (isTest) {
|
|
131
132
|
var _targetRef$current;
|
|
132
133
|
const event = new CustomEvent('transitionend');
|
|
133
134
|
(_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.dispatchEvent(event);
|
|
134
135
|
}
|
|
135
|
-
}, [open, instRef, isInitialRenderRef,
|
|
136
|
+
}, [open, targetRef, instRef, isInitialRenderRef, isTest]);
|
|
136
137
|
useLayoutEffect(() => {
|
|
137
138
|
const run = () => {
|
|
138
139
|
isInitialRenderRef.current = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHeightAnimation.js","names":["React","useMemo","useRef","useState","HeightAnimationInstance","useLayoutEffect","window","useEffect","useHeightAnimation","targetRef","open","animate","children","onInit","onOpen","onAnimationStart","onAnimationEnd","_instRef$current2","instRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","current","_instRef$current","remove","setOptions","global","IS_TEST","onStart","state","onEnd","useOpenClose","useAdjust","firstPaintStyle","isInDOM","setElement","setAsOpen","setAsClosed","isTest","process","env","NODE_ENV","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","call","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","_instRef$current4","getHeight","elem","style","height","toHeight","adjustTo"],"sources":["../../../../src/components/height-animation/useHeightAnimation.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from 'react'\nimport HeightAnimationInstance from './HeightAnimationInstance'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type useHeightAnimationOptions = {\n /**\n * Set to `true`, when initially `false` was given, to animate from 0px to auto.\n * Default: true\n */\n open?: boolean\n\n /**\n * Set to `false` to omit the animation.\n * Default: true\n */\n animate?: boolean\n\n /**\n * In order to let the Hook know when children has changed\n */\n children?: React.ReactNode | HTMLElement\n\n /**\n * Is called once before mounting the component (useLayoutEffect)\n */\n onInit?: (instance: HeightAnimationInstance) => void\n\n /**\n * Is called when fully opened or closed\n */\n onOpen?: (isOpen: boolean) => void\n\n /**\n * Is called when animation has started.\n */\n onAnimationStart?: (state: HeightAnimationOnStartTypes) => void\n\n /**\n * Is called when animation is done and the full height is reached.\n */\n onAnimationEnd?: (state: HeightAnimationOnEndTypes) => void\n}\n\nexport type HeightAnimationOnStartTypes =\n | 'opening'\n | 'closing'\n | 'adjusting'\n\nexport type HeightAnimationOnEndTypes = 'opened' | 'closed' | 'adjusted'\n\nexport function useHeightAnimation(\n targetRef: React.RefObject<HTMLElement>,\n {\n open = true,\n animate = true,\n children = null,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n }: useHeightAnimationOptions = {}\n) {\n const instRef = useRef<HeightAnimationInstance>(null)\n const isInitialRenderRef = useRef(\n typeof globalThis !== 'undefined'\n ? globalThis.readjustTime !== -1\n : true\n )\n\n const [isOpen, setIsOpen] = useState(open)\n const [isVisible, setIsVisible] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const [isVisibleParallax, setParallax] = useState(open)\n\n useLayoutEffect(() => {\n instRef.current = new HeightAnimationInstance()\n onInit?.(instRef.current)\n return () => {\n instRef.current?.remove()\n instRef.current = null\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n instRef.current.setOptions({ animate })\n\n if (typeof global !== 'undefined' && globalThis.IS_TEST) {\n instRef.current.setOptions({ animate: false })\n }\n }, [animate])\n\n useLayoutEffect(() => {\n instRef.current.onStart((state: HeightAnimationOnStartTypes) => {\n switch (state) {\n case 'opening':\n setIsVisible(true)\n setParallax(true)\n setIsAnimating(true)\n break\n\n case 'closing':\n setParallax(false)\n setIsAnimating(true)\n break\n\n case 'adjusting':\n setIsAnimating(true)\n break\n }\n\n onAnimationStart?.(state)\n })\n\n instRef.current.onEnd((state: HeightAnimationOnEndTypes) => {\n switch (state) {\n case 'opened':\n setIsVisible(true)\n setIsOpen(true)\n setIsAnimating(false)\n onOpen?.(true)\n break\n\n case 'closed':\n setIsVisible(false)\n setIsOpen(false)\n setParallax(false)\n setIsAnimating(false)\n onOpen?.(false)\n break\n\n case 'adjusted':\n setIsAnimating(false)\n break\n }\n\n if (!isInitialRenderRef.current) {\n onAnimationEnd?.(state)\n }\n })\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useOpenClose({ open, instRef, isInitialRenderRef, targetRef })\n useAdjust({ children, instRef, isInitialRenderRef, targetRef })\n\n /**\n * Returns the first paint style, to be used for the initial render,\n * to avoid flickering.\n */\n const firstPaintStyle = ((open &&\n !isVisible &&\n !isAnimating &&\n instRef.current?.firstPaintStyle()) ||\n {}) as React.CSSProperties\n const isInDOM = open || isVisible\n\n return {\n open,\n isOpen,\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n }\n}\n\nfunction useOpenClose({ open, instRef, isInitialRenderRef, targetRef }) {\n useLayoutEffect(() => {\n instRef.current.setElement(targetRef.current)\n\n if (\n !targetRef.current ||\n (instRef.current.state === 'init' && isInitialRenderRef.current)\n ) {\n if (open) {\n instRef.current.setAsOpen()\n } else {\n instRef.current.setAsClosed()\n }\n }\n }, [open, targetRef, instRef, isInitialRenderRef])\n\n const isTest =\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test' &&\n typeof globalThis.IS_TEST === 'undefined'\n\n useLayoutEffect(() => {\n if (open) {\n instRef.current.open()\n } else {\n instRef.current.close()\n }\n\n // For testing purposes, we need to trigger the transitionend event\n if (isTest) {\n const event = new CustomEvent('transitionend')\n targetRef.current?.dispatchEvent(event)\n }\n }, [open, instRef, isInitialRenderRef, targetRef, isTest])\n\n useLayoutEffect(() => {\n const run = () => {\n isInitialRenderRef.current = false\n }\n if (globalThis.bypassTime === -1 || isTest) {\n run()\n } else {\n window.requestAnimationFrame?.(run)\n }\n }, [isInitialRenderRef, isTest])\n}\n\nfunction useAdjust({ children, instRef, isInitialRenderRef, targetRef }) {\n const fromHeight = useRef(0)\n\n const [timer] = useState(() => Date.now())\n\n /**\n * Wait for some criteria and a certain time, before we adjust the height,\n * so it will not run when a open/close animation is running.\n */\n const shouldAdjust = () => {\n switch (instRef.current?.state) {\n case 'opened':\n case 'adjusted':\n case 'adjusting':\n return (\n !isInitialRenderRef.current &&\n Date.now() - timer > (globalThis.readjustTime || 100)\n )\n }\n\n return false\n }\n\n useMemo(() => {\n if (shouldAdjust()) {\n fromHeight.current = instRef.current?.getHeight()\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (shouldAdjust()) {\n /**\n * In certain cases, the targetRef.current is outdated, so we need to set it again.\n * E.g. in Tabs.js, when we switch tabs, the targetRef.current is not updated.\n */\n instRef.current.setElement(targetRef.current)\n\n /**\n * Ensure we don't have height, while we get the \"toHeight\" again.\n * We may move this inside of the HeightAnimationInstance class later,\n * but the \"GlobalStatus\" is currently relying on \"getUnknownHeight\" inside of adjustTo.\n */\n instRef.current.elem.style.height = ''\n\n /**\n * Use getHeight instead of getUnknownHeight because of the additional,\n * disturbing DOM manipulation.\n */\n const toHeight = instRef.current.getHeight()\n\n instRef.current.adjustTo(fromHeight.current, toHeight)\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useHeightAnimation.js","names":["React","useMemo","useRef","useState","HeightAnimationInstance","useLayoutEffect","window","useEffect","useHeightAnimation","targetRef","open","animate","children","onInit","onOpen","onAnimationStart","onAnimationEnd","_instRef$current2","instRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","current","_instRef$current","remove","setOptions","global","IS_TEST","onStart","state","onEnd","useOpenClose","useAdjust","firstPaintStyle","isInDOM","isTest","process","env","NODE_ENV","setElement","setAsOpen","setAsClosed","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","call","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","_instRef$current4","getHeight","elem","style","height","toHeight","adjustTo"],"sources":["../../../../src/components/height-animation/useHeightAnimation.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from 'react'\nimport HeightAnimationInstance from './HeightAnimationInstance'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type useHeightAnimationOptions = {\n /**\n * Set to `true`, when initially `false` was given, to animate from 0px to auto.\n * Default: true\n */\n open?: boolean\n\n /**\n * Set to `false` to omit the animation.\n * Default: true\n */\n animate?: boolean\n\n /**\n * In order to let the Hook know when children has changed\n */\n children?: React.ReactNode | HTMLElement\n\n /**\n * Is called once before mounting the component (useLayoutEffect)\n */\n onInit?: (instance: HeightAnimationInstance) => void\n\n /**\n * Is called when fully opened or closed\n */\n onOpen?: (isOpen: boolean) => void\n\n /**\n * Is called when animation has started.\n */\n onAnimationStart?: (state: HeightAnimationOnStartTypes) => void\n\n /**\n * Is called when animation is done and the full height is reached.\n */\n onAnimationEnd?: (state: HeightAnimationOnEndTypes) => void\n}\n\nexport type HeightAnimationOnStartTypes =\n | 'opening'\n | 'closing'\n | 'adjusting'\n\nexport type HeightAnimationOnEndTypes = 'opened' | 'closed' | 'adjusted'\n\nexport function useHeightAnimation(\n targetRef: React.RefObject<HTMLElement>,\n {\n open = true,\n animate = true,\n children = null,\n onInit = null,\n onOpen = null,\n onAnimationStart = null,\n onAnimationEnd = null,\n }: useHeightAnimationOptions = {}\n) {\n const instRef = useRef<HeightAnimationInstance>(null)\n const isInitialRenderRef = useRef(\n typeof globalThis !== 'undefined'\n ? globalThis.readjustTime !== -1\n : true\n )\n\n const [isOpen, setIsOpen] = useState(open)\n const [isVisible, setIsVisible] = useState(false)\n const [isAnimating, setIsAnimating] = useState(false)\n const [isVisibleParallax, setParallax] = useState(open)\n\n useLayoutEffect(() => {\n instRef.current = new HeightAnimationInstance()\n onInit?.(instRef.current)\n return () => {\n instRef.current?.remove()\n instRef.current = null\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n instRef.current.setOptions({ animate })\n\n if (typeof global !== 'undefined' && globalThis.IS_TEST) {\n instRef.current.setOptions({ animate: false })\n }\n }, [animate])\n\n useLayoutEffect(() => {\n instRef.current.onStart((state: HeightAnimationOnStartTypes) => {\n switch (state) {\n case 'opening':\n setIsVisible(true)\n setParallax(true)\n setIsAnimating(true)\n break\n\n case 'closing':\n setParallax(false)\n setIsAnimating(true)\n break\n\n case 'adjusting':\n setIsAnimating(true)\n break\n }\n\n if (!isInitialRenderRef.current) {\n onAnimationStart?.(state)\n }\n })\n\n instRef.current.onEnd((state: HeightAnimationOnEndTypes) => {\n switch (state) {\n case 'opened':\n setIsVisible(true)\n setIsOpen(true)\n setIsAnimating(false)\n onOpen?.(true)\n break\n\n case 'closed':\n setIsVisible(false)\n setIsOpen(false)\n setParallax(false)\n setIsAnimating(false)\n onOpen?.(false)\n break\n\n case 'adjusted':\n setIsAnimating(false)\n break\n }\n\n if (!isInitialRenderRef.current) {\n onAnimationEnd?.(state)\n }\n })\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useOpenClose({ open, instRef, isInitialRenderRef, targetRef })\n useAdjust({ children, instRef, isInitialRenderRef, targetRef })\n\n /**\n * Returns the first paint style, to be used for the initial render,\n * to avoid flickering.\n */\n const firstPaintStyle = ((open &&\n !isVisible &&\n !isAnimating &&\n instRef.current?.firstPaintStyle) ||\n {}) as React.CSSProperties\n const isInDOM = open || isVisible\n\n return {\n open,\n isOpen,\n isInDOM,\n isVisible,\n isVisibleParallax,\n isAnimating,\n firstPaintStyle,\n }\n}\n\nfunction useOpenClose({ open, instRef, isInitialRenderRef, targetRef }) {\n const isTest =\n typeof process !== 'undefined' &&\n process.env.NODE_ENV === 'test' &&\n typeof globalThis.IS_TEST === 'undefined'\n\n useLayoutEffect(() => {\n instRef.current.setElement(targetRef.current)\n\n if (\n !targetRef.current ||\n (instRef.current.state === 'init' && isInitialRenderRef.current)\n ) {\n if (open) {\n instRef.current.setAsOpen()\n } else {\n instRef.current.setAsClosed()\n }\n } else {\n if (open) {\n instRef.current.open()\n } else {\n instRef.current.close()\n }\n }\n\n // For testing purposes, we need to trigger the transitionend event\n if (isTest) {\n const event = new CustomEvent('transitionend')\n targetRef.current?.dispatchEvent(event)\n }\n }, [open, targetRef, instRef, isInitialRenderRef, isTest])\n\n useLayoutEffect(() => {\n const run = () => {\n isInitialRenderRef.current = false\n }\n if (globalThis.bypassTime === -1 || isTest) {\n run()\n } else {\n window.requestAnimationFrame?.(run)\n }\n }, [isInitialRenderRef, isTest])\n}\n\nfunction useAdjust({ children, instRef, isInitialRenderRef, targetRef }) {\n const fromHeight = useRef(0)\n\n const [timer] = useState(() => Date.now())\n\n /**\n * Wait for some criteria and a certain time, before we adjust the height,\n * so it will not run when a open/close animation is running.\n */\n const shouldAdjust = () => {\n switch (instRef.current?.state) {\n case 'opened':\n case 'adjusted':\n case 'adjusting':\n return (\n !isInitialRenderRef.current &&\n Date.now() - timer > (globalThis.readjustTime || 100)\n )\n }\n\n return false\n }\n\n useMemo(() => {\n if (shouldAdjust()) {\n fromHeight.current = instRef.current?.getHeight()\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n if (shouldAdjust()) {\n /**\n * In certain cases, the targetRef.current is outdated, so we need to set it again.\n * E.g. in Tabs.js, when we switch tabs, the targetRef.current is not updated.\n */\n instRef.current.setElement(targetRef.current)\n\n /**\n * Ensure we don't have height, while we get the \"toHeight\" again.\n * We may move this inside of the HeightAnimationInstance class later,\n * but the \"GlobalStatus\" is currently relying on \"getUnknownHeight\" inside of adjustTo.\n */\n instRef.current.elem.style.height = ''\n\n /**\n * Use getHeight instead of getUnknownHeight because of the additional,\n * disturbing DOM manipulation.\n */\n const toHeight = instRef.current.getHeight()\n\n instRef.current.adjustTo(fromHeight.current, toHeight)\n }\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"mappings":"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"}
|
|
@@ -196,7 +196,7 @@ export default class Input extends React.Component<InputProps, any> {
|
|
|
196
196
|
render(): JSX.Element;
|
|
197
197
|
}
|
|
198
198
|
export interface SubmitButtonProps
|
|
199
|
-
extends React.HTMLProps<
|
|
199
|
+
extends React.HTMLProps<HTMLButtonElement> {
|
|
200
200
|
id?: string;
|
|
201
201
|
/**
|
|
202
202
|
* The content value of the input.
|
|
@@ -78,8 +78,8 @@ export default class ProgressIndicator extends React.PureComponent {
|
|
|
78
78
|
const indicatorLabel = label || children || isTrue(show_label) && indicator_label;
|
|
79
79
|
const progressTitle = title || formatProgress(progress);
|
|
80
80
|
validateDOMAttributes(this.props, params);
|
|
81
|
-
return React.createElement("
|
|
82
|
-
className: classnames('dnb-progress-indicator', createSpacingClasses(props), className, _className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', label_direction && `dnb-progress-indicator--${label_direction}`, isTrue(no_animation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width')
|
|
81
|
+
return React.createElement("span", _extends({
|
|
82
|
+
className: classnames('dnb-progress-indicator', createSpacingClasses(props), className, _className, visible && 'dnb-progress-indicator--visible', complete && 'dnb-progress-indicator--complete', label_direction && `dnb-progress-indicator--${label_direction}`, size && `dnb-progress-indicator--${size}`, isTrue(no_animation) && 'dnb-progress-indicator--no-animation', type === 'linear' && 'dnb-progress-indicator--full-width')
|
|
83
83
|
}, params), type === 'circular' && React.createElement(ProgressIndicatorCircular, {
|
|
84
84
|
size: size,
|
|
85
85
|
progress: progress,
|
|
@@ -96,11 +96,9 @@ export default class ProgressIndicator extends React.PureComponent {
|
|
|
96
96
|
onComplete: on_complete,
|
|
97
97
|
callOnCompleteHandler: this.callOnCompleteHandler,
|
|
98
98
|
title: progressTitle
|
|
99
|
-
}), indicatorLabel && React.createElement("
|
|
100
|
-
className: "dnb-progress-indicator__label"
|
|
101
|
-
},
|
|
102
|
-
className: "dnb-p"
|
|
103
|
-
}, indicatorLabel)));
|
|
99
|
+
}), indicatorLabel && React.createElement("span", {
|
|
100
|
+
className: "dnb-progress-indicator__label dnb-p"
|
|
101
|
+
}, indicatorLabel));
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
104
|
_defineProperty(ProgressIndicator, "contextType", Context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressIndicator.js","names":["React","PropTypes","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContextInClassComponent","spacingPropTypes","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","ProgressIndicator","PureComponent","constructor","args","_defineProperty","_listenForPropChanges","completeTimeout","setTimeout","setState","complete","props","on_complete","fadeOutTimeout","getDerivedStateFromProps","state","visible","progress","parseFloat","undefined","componentWillUnmount","clearTimeout","render","defaultProps","context","getTranslation","type","size","no_animation","label","indicator_label","label_direction","show_label","className","class","_className","children","title","_progress","_visible","_complete","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","indicatorLabel","progressTitle","formatProgress","createElement","_extends","onComplete","callOnCompleteHandler","section_style","section_spacing","process","env","NODE_ENV","propTypes","oneOfType","string","bool","oneOf","number","node","func","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nexport default class ProgressIndicator extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n visible: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n type: PropTypes.oneOf(['circular', 'linear']),\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large', 'huge']),\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node,\n label_direction: PropTypes.string,\n show_label: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indicator_label: PropTypes.string,\n section_style: PropTypes.string,\n section_spacing: PropTypes.string,\n title: PropTypes.string,\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_complete: PropTypes.func,\n }\n\n static defaultProps = {\n visible: true,\n type: 'circular',\n no_animation: false,\n size: 'default',\n progress: null,\n label: null,\n label_direction: 'horizontal',\n show_label: false,\n indicator_label: null,\n section_style: null,\n section_spacing: null,\n title: null,\n class: null,\n className: null,\n children: null,\n\n on_complete: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n state.visible = isTrue(props.visible)\n if (state.visible) {\n state.complete = false\n }\n state.progress =\n parseFloat(props.progress) > -1 ? props.progress : undefined\n }\n state._listenForPropChanges = true\n return state\n }\n\n state = {\n _listenForPropChanges: true,\n }\n\n componentWillUnmount() {\n clearTimeout(this.completeTimeout)\n clearTimeout(this.fadeOutTimeout)\n }\n\n callOnCompleteHandler = () => {\n this.completeTimeout = setTimeout(() => {\n this.setState({\n complete: true,\n })\n if (typeof this.props.on_complete === 'function') {\n this.fadeOutTimeout = setTimeout(() => {\n dispatchCustomElementEvent(this, 'on_complete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ProgressIndicator.defaultProps,\n this.context.getTranslation(this.props).ProgressIndicator,\n this.context.ProgressIndicator\n )\n\n const {\n type,\n size,\n no_animation,\n on_complete,\n label,\n indicator_label,\n label_direction,\n show_label,\n className,\n class: _className,\n children,\n title,\n progress: _progress, //eslint-disable-line\n visible: _visible, //eslint-disable-line\n complete: _complete, //eslint-disable-line\n ...attributes\n } = props\n\n const { progress, visible, complete } = this.state\n\n const params = { ...attributes }\n\n const indicatorLabel =\n label || children || (isTrue(show_label) && indicator_label)\n\n const progressTitle = title || formatProgress(progress)\n\n validateDOMAttributes(this.props, params)\n\n return (\n <div\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n label_direction && `dnb-progress-indicator--${label_direction}`,\n isTrue(no_animation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(props),\n className,\n _className\n )}\n {...params}\n >\n {type === 'circular' && (\n <ProgressIndicatorCircular\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {indicatorLabel && (\n <div className=\"dnb-progress-indicator__label\">\n <p className=\"dnb-p\">{indicatorLabel}</p>\n </div>\n )}\n </div>\n )\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProgressIndicator.js","names":["React","PropTypes","classnames","Context","isTrue","validateDOMAttributes","dispatchCustomElementEvent","extendPropsWithContextInClassComponent","spacingPropTypes","createSpacingClasses","ProgressIndicatorCircular","ProgressIndicatorLinear","format","ProgressIndicator","PureComponent","constructor","args","_defineProperty","_listenForPropChanges","completeTimeout","setTimeout","setState","complete","props","on_complete","fadeOutTimeout","getDerivedStateFromProps","state","visible","progress","parseFloat","undefined","componentWillUnmount","clearTimeout","render","defaultProps","context","getTranslation","type","size","no_animation","label","indicator_label","label_direction","show_label","className","class","_className","children","title","_progress","_visible","_complete","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","indicatorLabel","progressTitle","formatProgress","createElement","_extends","onComplete","callOnCompleteHandler","section_style","section_spacing","process","env","NODE_ENV","propTypes","oneOfType","string","bool","oneOf","number","node","func","decimals","percent","_supportsSpacingProps"],"sources":["../../../../src/components/progress-indicator/ProgressIndicator.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n validateDOMAttributes,\n dispatchCustomElementEvent,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport ProgressIndicatorCircular from './ProgressIndicatorCircular'\nimport ProgressIndicatorLinear from './ProgressIndicatorLinear'\nimport { format } from '../number-format/NumberUtils'\n\nexport default class ProgressIndicator extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n visible: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n type: PropTypes.oneOf(['circular', 'linear']),\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large', 'huge']),\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node,\n label_direction: PropTypes.string,\n show_label: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n indicator_label: PropTypes.string,\n section_style: PropTypes.string,\n section_spacing: PropTypes.string,\n title: PropTypes.string,\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n on_complete: PropTypes.func,\n }\n\n static defaultProps = {\n visible: true,\n type: 'circular',\n no_animation: false,\n size: 'default',\n progress: null,\n label: null,\n label_direction: 'horizontal',\n show_label: false,\n indicator_label: null,\n section_style: null,\n section_spacing: null,\n title: null,\n class: null,\n className: null,\n children: null,\n\n on_complete: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n state.visible = isTrue(props.visible)\n if (state.visible) {\n state.complete = false\n }\n state.progress =\n parseFloat(props.progress) > -1 ? props.progress : undefined\n }\n state._listenForPropChanges = true\n return state\n }\n\n state = {\n _listenForPropChanges: true,\n }\n\n componentWillUnmount() {\n clearTimeout(this.completeTimeout)\n clearTimeout(this.fadeOutTimeout)\n }\n\n callOnCompleteHandler = () => {\n this.completeTimeout = setTimeout(() => {\n this.setState({\n complete: true,\n })\n if (typeof this.props.on_complete === 'function') {\n this.fadeOutTimeout = setTimeout(() => {\n dispatchCustomElementEvent(this, 'on_complete')\n }, 600) // wait for CSS fade out, defined in \"progress-indicator-fade-out\"\n }\n }, 200)\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n ProgressIndicator.defaultProps,\n this.context.getTranslation(this.props).ProgressIndicator,\n this.context.ProgressIndicator\n )\n\n const {\n type,\n size,\n no_animation,\n on_complete,\n label,\n indicator_label,\n label_direction,\n show_label,\n className,\n class: _className,\n children,\n title,\n progress: _progress, // eslint-disable-line\n visible: _visible, // eslint-disable-line\n complete: _complete, // eslint-disable-line\n ...attributes\n } = props\n\n const { progress, visible, complete } = this.state\n\n const params = { ...attributes }\n\n const indicatorLabel =\n label || children || (isTrue(show_label) && indicator_label)\n\n const progressTitle = title || formatProgress(progress)\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator',\n visible && 'dnb-progress-indicator--visible',\n complete && 'dnb-progress-indicator--complete',\n type === 'linear' && 'dnb-progress-indicator--full-width',\n label_direction && `dnb-progress-indicator--${label_direction}`,\n size && `dnb-progress-indicator--${size}`,\n isTrue(no_animation) && 'dnb-progress-indicator--no-animation',\n createSpacingClasses(props),\n className,\n _className\n )}\n {...params}\n >\n {type === 'circular' && (\n <ProgressIndicatorCircular\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {type === 'linear' && (\n <ProgressIndicatorLinear\n size={size}\n progress={progress}\n visible={visible}\n complete={complete}\n onComplete={on_complete}\n callOnCompleteHandler={this.callOnCompleteHandler}\n title={progressTitle}\n />\n )}\n {indicatorLabel && (\n <span className=\"dnb-progress-indicator__label dnb-p\">\n {indicatorLabel}\n </span>\n )}\n </span>\n )\n }\n}\n\nfunction formatProgress(progress) {\n if (parseFloat(progress) > -1) {\n return format(progress, {\n decimals: 2,\n percent: true,\n })\n }\n return null\n}\n\nProgressIndicator._supportsSpacingProps = true\n"],"mappings":"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"}
|
|
@@ -139,7 +139,7 @@ export default class ProgressIndicatorCircular extends React.PureComponent {
|
|
|
139
139
|
params['aria-busy'] = true;
|
|
140
140
|
}
|
|
141
141
|
validateDOMAttributes(this.props, params);
|
|
142
|
-
return React.createElement("
|
|
142
|
+
return React.createElement("span", _extends({
|
|
143
143
|
className: classnames('dnb-progress-indicator__circular', size && `dnb-progress-indicator__circular--${size}`, hasProgressValue && 'dnb-progress-indicator__circular--has-progress-value')
|
|
144
144
|
}, params), _Circle || (_Circle = React.createElement(Circle, {
|
|
145
145
|
className: "dnb-progress-indicator__circular__line light paused"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressIndicatorCircular.js","names":["React","PropTypes","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","useAnimationFrame","onComplete","_refDark","createRef","_refLight","animate","componentDidMount","startAnimationFirstTime","componentWillUnmount","stopAnimation","setState","startupTimeout","clearTimeout","setTimeout","startAnimation","current","callOnCompleteHandler","element","animateOnStart","callback","min","max","start","ms","prog","setProg","completeCalled","stopNextRound","step","timestamp","style","Math","round","ceil","window","requestAnimationFrame","render","_this$props","size","maxOffset","title","_progress","rest","_objectWithoutProperties","_excluded","strokeDashoffset","hasProgressValue","params","_objectSpread","role","createElement","_extends","className","_Circle","Circle","ref","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number","func","forwardRef","_ref","_excluded2","viewBox","shapeRendering","_circle","fill","strokeWidth","cx","cy","r","isRequired"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\n\nexport default class ProgressIndicatorCircular extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxOffset: PropTypes.number,\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n maxOffset: 88,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.useAnimationFrame =\n typeof props.onComplete === 'function' || IS_EDGE\n this._refDark = React.createRef()\n this._refLight = React.createRef()\n this.state = { animate: false }\n }\n componentDidMount() {\n if (this.useAnimationFrame) {\n this.startAnimationFirstTime()\n }\n }\n componentWillUnmount() {\n this.stopAnimation()\n }\n stopAnimation() {\n this.setState({ animate: false })\n if (this.startupTimeout) {\n clearTimeout(this.startupTimeout)\n }\n }\n startAnimationFirstTime() {\n this.setState({ animate: false })\n this.startupTimeout = setTimeout(() => this.startAnimation(), 300)\n }\n startAnimation() {\n this.setState({ animate: true }, () => {\n if (this._refDark.current) {\n this.animate(\n this._refDark.current,\n true,\n this.props.callOnCompleteHandler\n )\n }\n if (this._refLight.current) {\n this.animate(this._refLight.current, false)\n }\n })\n }\n animate(element, animateOnStart = true, callback = null) {\n const min = 1\n const max = 88\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate) {\n if (!this.state.visible && prog < 5) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = prog\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = max\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (this.state.visible && ms % 1e3 > 950) {\n // this.startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !this.state.visible && prog === min\n animate = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (this.state.animate) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n render() {\n const {\n size,\n maxOffset,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const strokeDashoffset = maxOffset - (maxOffset / 100) * progress\n const hasProgressValue = parseFloat(progress) > -1\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <div\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n hasProgressValue &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...params}\n >\n {/* The first one is the background line */}\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n 'paused'\n )}\n />\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'dark',\n 'dark',\n hasProgressValue || this.useAnimationFrame ? 'paused' : null\n )}\n style={hasProgressValue ? { strokeDashoffset } : {}}\n ref={this._refDark}\n />\n {!hasProgressValue && (\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n this.useAnimationFrame ? 'paused' : null\n )}\n ref={this._refLight}\n />\n )}\n </div>\n )\n }\n}\n\nconst Circle = React.forwardRef(({ className, ...rest }, ref) => {\n return (\n <svg\n className={className}\n viewBox=\"0 0 32 32\"\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...rest}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n strokeWidth=\"4\"\n cx=\"16\"\n cy=\"16\"\n r=\"14\"\n />\n </svg>\n )\n})\nCircle.propTypes = {\n className: PropTypes.string.isRequired,\n}\n// Circle.defaultProps = {\n// }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProgressIndicatorCircular.js","names":["React","PropTypes","classnames","validateDOMAttributes","IS_EDGE","ProgressIndicatorCircular","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","useAnimationFrame","onComplete","_refDark","createRef","_refLight","animate","componentDidMount","startAnimationFirstTime","componentWillUnmount","stopAnimation","setState","startupTimeout","clearTimeout","setTimeout","startAnimation","current","callOnCompleteHandler","element","animateOnStart","callback","min","max","start","ms","prog","setProg","completeCalled","stopNextRound","step","timestamp","style","Math","round","ceil","window","requestAnimationFrame","render","_this$props","size","maxOffset","title","_progress","rest","_objectWithoutProperties","_excluded","strokeDashoffset","hasProgressValue","params","_objectSpread","role","createElement","_extends","className","_Circle","Circle","ref","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number","func","forwardRef","_ref","_excluded2","viewBox","shapeRendering","_circle","fill","strokeWidth","cx","cy","r","isRequired"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorCircular.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\nimport { IS_EDGE } from '../../shared/helpers'\n\nexport default class ProgressIndicatorCircular extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxOffset: PropTypes.number,\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n maxOffset: 88,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.useAnimationFrame =\n typeof props.onComplete === 'function' || IS_EDGE\n this._refDark = React.createRef()\n this._refLight = React.createRef()\n this.state = { animate: false }\n }\n componentDidMount() {\n if (this.useAnimationFrame) {\n this.startAnimationFirstTime()\n }\n }\n componentWillUnmount() {\n this.stopAnimation()\n }\n stopAnimation() {\n this.setState({ animate: false })\n if (this.startupTimeout) {\n clearTimeout(this.startupTimeout)\n }\n }\n startAnimationFirstTime() {\n this.setState({ animate: false })\n this.startupTimeout = setTimeout(() => this.startAnimation(), 300)\n }\n startAnimation() {\n this.setState({ animate: true }, () => {\n if (this._refDark.current) {\n this.animate(\n this._refDark.current,\n true,\n this.props.callOnCompleteHandler\n )\n }\n if (this._refLight.current) {\n this.animate(this._refLight.current, false)\n }\n })\n }\n animate(element, animateOnStart = true, callback = null) {\n const min = 1\n const max = 88\n let start = 0,\n ms = 0,\n prog = max,\n setProg = animateOnStart,\n animate = true,\n completeCalled = false,\n stopNextRound = false\n\n const step = (timestamp) => {\n if (!start) {\n start = timestamp\n }\n\n // milliseconds\n ms = timestamp - start\n\n if (animate) {\n if (!this.state.visible && prog < 5) {\n prog = min\n }\n if (setProg) {\n element.style['stroke-dashoffset'] = prog\n } else if (!animateOnStart) {\n element.style['stroke-dashoffset'] = max\n }\n }\n\n // if complete\n if (stopNextRound) {\n animate = false\n if (!completeCalled) {\n completeCalled = true\n if (animateOnStart && typeof callback === 'function') {\n callback()\n }\n } else if (this.state.visible && ms % 1e3 > 950) {\n // this.startAnimationFirstTime() // will not start completely from scratch\n stopNextRound = false\n }\n } else {\n // make sure we stop next round\n stopNextRound = !this.state.visible && prog === min\n animate = true\n completeCalled = false\n }\n\n // since we have 1sec as duration, and we want always a max of 1000ms\n prog = Math.round(max - (max / 1e3) * (ms % 1e3))\n\n // calc if we want to animate\n setProg = animateOnStart\n ? Math.ceil(ms / 1e3) % 2 === 1 || ms === 0\n : Math.ceil(ms / 1e3) % 2 === 0 && ms !== 0\n\n if (this.state.animate) {\n window.requestAnimationFrame(step)\n }\n }\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n window.requestAnimationFrame(step)\n }\n }\n render() {\n const {\n size,\n maxOffset,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const strokeDashoffset = maxOffset - (maxOffset / 100) * progress\n const hasProgressValue = parseFloat(progress) > -1\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__circular',\n size && `dnb-progress-indicator__circular--${size}`,\n hasProgressValue &&\n 'dnb-progress-indicator__circular--has-progress-value'\n )}\n {...params}\n >\n {/* The first one is the background line */}\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n 'paused'\n )}\n />\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'dark',\n 'dark',\n hasProgressValue || this.useAnimationFrame ? 'paused' : null\n )}\n style={hasProgressValue ? { strokeDashoffset } : {}}\n ref={this._refDark}\n />\n {!hasProgressValue && (\n <Circle\n className={classnames(\n 'dnb-progress-indicator__circular__line',\n 'light',\n this.useAnimationFrame ? 'paused' : null\n )}\n ref={this._refLight}\n />\n )}\n </span>\n )\n }\n}\n\nconst Circle = React.forwardRef(({ className, ...rest }, ref) => {\n return (\n <svg\n className={className}\n viewBox=\"0 0 32 32\"\n shapeRendering=\"geometricPrecision\"\n ref={ref}\n {...rest}\n >\n <circle\n className=\"dnb-progress-indicator__circular__circle\"\n fill=\"none\"\n strokeWidth=\"4\"\n cx=\"16\"\n cy=\"16\"\n r=\"14\"\n />\n </svg>\n )\n})\nCircle.propTypes = {\n className: PropTypes.string.isRequired,\n}\n// Circle.defaultProps = {\n// }\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
-
var
|
|
4
|
+
var _span;
|
|
5
5
|
const _excluded = ["size", "title", "progress", "visible", "complete", "onComplete", "callOnCompleteHandler"];
|
|
6
6
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
7
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -55,14 +55,14 @@ export default class ProgressIndicatorLinear extends React.PureComponent {
|
|
|
55
55
|
params['aria-busy'] = true;
|
|
56
56
|
}
|
|
57
57
|
validateDOMAttributes(this.props, params);
|
|
58
|
-
return React.createElement("
|
|
58
|
+
return React.createElement("span", _extends({
|
|
59
59
|
className: 'dnb-progress-indicator__linear' + (size ? ` dnb-progress-indicator__linear--${size}` : "")
|
|
60
|
-
}, params), React.createElement("
|
|
60
|
+
}, params), React.createElement("span", {
|
|
61
61
|
className: "dnb-progress-indicator__linear__bar " + (hasProgressValue ? 'dnb-progress-indicator__linear__bar-transition' : 'dnb-progress-indicator__linear__bar1-animation'),
|
|
62
62
|
style: hasProgressValue ? {
|
|
63
63
|
transform
|
|
64
64
|
} : {}
|
|
65
|
-
}), !hasProgressValue && (
|
|
65
|
+
}), !hasProgressValue && (_span || (_span = React.createElement("span", {
|
|
66
66
|
className: "dnb-progress-indicator__linear__bar dnb-progress-indicator__linear__bar2-animation"
|
|
67
67
|
}))));
|
|
68
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressIndicatorLinear.js","names":["React","PropTypes","validateDOMAttributes","isFn","func","ProgressIndicatorLinear","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","onCompleteIsFn","onComplete","callOnCompleteHandler","componentDidUpdate","prevProps","render","_this$props","size","title","_progress","rest","_objectWithoutProperties","_excluded","hasProgressValue","transform","params","_objectSpread","role","createElement","_extends","className","style","
|
|
1
|
+
{"version":3,"file":"ProgressIndicatorLinear.js","names":["React","PropTypes","validateDOMAttributes","isFn","func","ProgressIndicatorLinear","PureComponent","getDerivedStateFromProps","props","state","progress","parseFloat","visible","complete","constructor","onCompleteIsFn","onComplete","callOnCompleteHandler","componentDidUpdate","prevProps","render","_this$props","size","title","_progress","rest","_objectWithoutProperties","_excluded","hasProgressValue","transform","params","_objectSpread","role","createElement","_extends","className","style","_span","_defineProperty","process","env","NODE_ENV","propTypes","string","bool","oneOfType","number"],"sources":["../../../../src/components/progress-indicator/ProgressIndicatorLinear.js"],"sourcesContent":["/**\n * Web ProgressIndicator Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { validateDOMAttributes } from '../../shared/component-helper'\n\nconst isFn = (func) => {\n return typeof func === 'function'\n}\n\nexport default class ProgressIndicatorLinear extends React.PureComponent {\n static propTypes = {\n size: PropTypes.string,\n visible: PropTypes.bool,\n complete: PropTypes.bool,\n progress: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onComplete: PropTypes.func,\n callOnCompleteHandler: PropTypes.func,\n title: PropTypes.string,\n }\n static defaultProps = {\n size: null,\n visible: true,\n complete: false,\n progress: null,\n onComplete: null,\n callOnCompleteHandler: null,\n title: null,\n }\n static getDerivedStateFromProps(props, state) {\n state.progress = parseFloat(props.progress)\n state.visible = props.visible\n state.complete = props.complete\n return state\n }\n constructor(props) {\n super(props)\n this.onCompleteIsFn =\n isFn(this.props.onComplete) && isFn(this.props.callOnCompleteHandler)\n this.state = {}\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.onCompleteIsFn &&\n !this.props.visible &&\n this.props.visible !== prevProps.visible\n ) {\n this.props.callOnCompleteHandler()\n }\n }\n\n render() {\n const {\n size,\n title,\n progress: _progress, // eslint-disable-line\n visible, // eslint-disable-line\n complete, // eslint-disable-line\n onComplete, // eslint-disable-line\n callOnCompleteHandler, // eslint-disable-line\n\n ...rest\n } = this.props\n\n const { progress } = this.state\n\n const hasProgressValue = parseFloat(progress) > -1\n\n const transform = `translateX(${(progress || 0) - 100}%)`\n\n const params = { ...rest }\n\n if (hasProgressValue) {\n params.role = 'progressbar'\n params['aria-label'] = title\n params['title'] = title\n } else {\n params.role = 'alert'\n params['aria-busy'] = true\n }\n\n validateDOMAttributes(this.props, params)\n\n return (\n <span\n className={classnames(\n 'dnb-progress-indicator__linear',\n size && `dnb-progress-indicator__linear--${size}`\n )}\n {...params}\n >\n <span\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n hasProgressValue &&\n 'dnb-progress-indicator__linear__bar-transition',\n !hasProgressValue &&\n 'dnb-progress-indicator__linear__bar1-animation'\n )}\n style={hasProgressValue ? { transform } : {}}\n />\n {!hasProgressValue && (\n <span\n className={classnames(\n 'dnb-progress-indicator__linear__bar',\n 'dnb-progress-indicator__linear__bar2-animation'\n )}\n />\n )}\n </span>\n )\n }\n}\n"],"mappings":";;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,SAASC,qBAAqB,QAAQ,+BAA+B;AAErE,MAAMC,IAAI,GAAIC,IAAI,IAAK;EACrB,OAAO,OAAOA,IAAI,KAAK,UAAU;AACnC,CAAC;AAED,eAAe,MAAMC,uBAAuB,SAASL,KAAK,CAACM,aAAa,CAAC;EAmBvE,OAAOC,wBAAwBA,CAACC,KAAK,EAAEC,KAAK,EAAE;IAC5CA,KAAK,CAACC,QAAQ,GAAGC,UAAU,CAACH,KAAK,CAACE,QAAQ,CAAC;IAC3CD,KAAK,CAACG,OAAO,GAAGJ,KAAK,CAACI,OAAO;IAC7BH,KAAK,CAACI,QAAQ,GAAGL,KAAK,CAACK,QAAQ;IAC/B,OAAOJ,KAAK;EACd;EACAK,WAAWA,CAACN,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACO,cAAc,GACjBZ,IAAI,CAAC,IAAI,CAACK,KAAK,CAACQ,UAAU,CAAC,IAAIb,IAAI,CAAC,IAAI,CAACK,KAAK,CAACS,qBAAqB,CAAC;IACvE,IAAI,CAACR,KAAK,GAAG,CAAC,CAAC;EACjB;EAEAS,kBAAkBA,CAACC,SAAS,EAAE;IAC5B,IACE,IAAI,CAACJ,cAAc,IACnB,CAAC,IAAI,CAACP,KAAK,CAACI,OAAO,IACnB,IAAI,CAACJ,KAAK,CAACI,OAAO,KAAKO,SAAS,CAACP,OAAO,EACxC;MACA,IAAI,CAACJ,KAAK,CAACS,qBAAqB,CAAC,CAAC;IACpC;EACF;EAEAG,MAAMA,CAAA,EAAG;IACP,MAAAC,WAAA,GAUI,IAAI,CAACb,KAAK;MAVR;QACJc,IAAI;QACJC,KAAK;QACLb,QAAQ,EAAEc,SAAS;QACnBZ,OAAO;QACPC,QAAQ;QACRG,UAAU;QACVC;MAGF,CAAC,GAAAI,WAAA;MADII,IAAI,GAAAC,wBAAA,CAAAL,WAAA,EAAAM,SAAA;IAGT,MAAM;MAAEjB;IAAS,CAAC,GAAG,IAAI,CAACD,KAAK;IAE/B,MAAMmB,gBAAgB,GAAGjB,UAAU,CAACD,QAAQ,CAAC,GAAG,CAAC,CAAC;IAElD,MAAMmB,SAAS,GAAI,cAAa,CAACnB,QAAQ,IAAI,CAAC,IAAI,GAAI,IAAG;IAEzD,MAAMoB,MAAM,GAAAC,aAAA,KAAQN,IAAI,CAAE;IAE1B,IAAIG,gBAAgB,EAAE;MACpBE,MAAM,CAACE,IAAI,GAAG,aAAa;MAC3BF,MAAM,CAAC,YAAY,CAAC,GAAGP,KAAK;MAC5BO,MAAM,CAAC,OAAO,CAAC,GAAGP,KAAK;IACzB,CAAC,MAAM;MACLO,MAAM,CAACE,IAAI,GAAG,OAAO;MACrBF,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;IAC5B;IAEA5B,qBAAqB,CAAC,IAAI,CAACM,KAAK,EAAEsB,MAAM,CAAC;IAEzC,OACE9B,KAAA,CAAAiC,aAAA,SAAAC,QAAA;MACEC,SAAS,EACP,gCAAgC,IAChCb,IAAI,uCAAuCA,IAAK;IAChD,GACEQ,MAAM,GAEV9B,KAAA,CAAAiC,aAAA;MACEE,SAAS,4CAEPP,gBAAgB,GACd,gDAAgD,GAEhD,gDAAgD,CAClD;MACFQ,KAAK,EAAER,gBAAgB,GAAG;QAAEC;MAAU,CAAC,GAAG,CAAC;IAAE,CAC9C,CAAC,EACD,CAACD,gBAAgB,KAAAS,KAAA,KAAAA,KAAA,GAChBrC,KAAA,CAAAiC,aAAA;MACEE,SAAS;IAGP,CACH,CAAC,EAEA,CAAC;EAEX;AACF;AAACG,eAAA,CAvGoBjC,uBAAuB,kBAUpB;EACpBiB,IAAI,EAAE,IAAI;EACVV,OAAO,EAAE,IAAI;EACbC,QAAQ,EAAE,KAAK;EACfH,QAAQ,EAAE,IAAI;EACdM,UAAU,EAAE,IAAI;EAChBC,qBAAqB,EAAE,IAAI;EAC3BM,KAAK,EAAE;AACT,CAAC;AAAAgB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAlBkBpC,uBAAuB,CACnCqC,SAAS,GAAG;EACjBpB,IAAI,EAAErB,SAAS,CAAC0C,MAAM;EACtB/B,OAAO,EAAEX,SAAS,CAAC2C,IAAI;EACvB/B,QAAQ,EAAEZ,SAAS,CAAC2C,IAAI;EACxBlC,QAAQ,EAAET,SAAS,CAAC4C,SAAS,CAAC,CAAC5C,SAAS,CAAC0C,MAAM,EAAE1C,SAAS,CAAC6C,MAAM,CAAC,CAAC;EACnE9B,UAAU,EAAEf,SAAS,CAACG,IAAI;EAC1Ba,qBAAqB,EAAEhB,SAAS,CAACG,IAAI;EACrCmB,KAAK,EAAEtB,SAAS,CAAC0C;AACnB,CAAC"}
|
|
@@ -36,10 +36,13 @@
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.dnb-progress-indicator--horizontal .dnb-progress-indicator__label {
|
|
39
|
-
|
|
39
|
+
padding-left: 1rem;
|
|
40
|
+
}
|
|
41
|
+
.dnb-progress-indicator--horizontal.dnb-progress-indicator--small .dnb-progress-indicator__label {
|
|
42
|
+
padding-left: 0.5rem;
|
|
40
43
|
}
|
|
41
44
|
.dnb-progress-indicator--vertical .dnb-progress-indicator__label {
|
|
42
|
-
|
|
45
|
+
padding-top: 0.5rem;
|
|
43
46
|
}
|
|
44
47
|
.dnb-progress-indicator__circular {
|
|
45
48
|
position: relative;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dnb-progress-indicator{--progress-indicator-timing:cubic-bezier(0.5,0,0.5,0.99);--progress-indicator-circular-circle:88;--progress-indicator-circular-circle-offset--min:88;--progress-indicator-circular-circle-offset--max:1;--progress-indicator-circular-background-color:grey;--progress-indicator-circular-bar-color:var(--color-black);--progress-indicator-linear-background-color:grey;--progress-indicator-linear-bar-color:var(--color-black);align-items:center;display:inline-flex;position:relative}.dnb-progress-indicator--vertical{flex-direction:column}.dnb-progress-indicator--horizontal{justify-content:center}.dnb-progress-indicator__label{display:inline-flex}.dnb-progress-indicator__label .dnb-p{align-self:center}.dnb-spacing .dnb-progress-indicator .dnb-p,.dnb-spacing .dnb-progress-indicator .dnb-p:not([class*=dnb-space]){margin:0}.dnb-progress-indicator--horizontal .dnb-progress-indicator__label{
|
|
1
|
+
.dnb-progress-indicator{--progress-indicator-timing:cubic-bezier(0.5,0,0.5,0.99);--progress-indicator-circular-circle:88;--progress-indicator-circular-circle-offset--min:88;--progress-indicator-circular-circle-offset--max:1;--progress-indicator-circular-background-color:grey;--progress-indicator-circular-bar-color:var(--color-black);--progress-indicator-linear-background-color:grey;--progress-indicator-linear-bar-color:var(--color-black);align-items:center;display:inline-flex;position:relative}.dnb-progress-indicator--vertical{flex-direction:column}.dnb-progress-indicator--horizontal{justify-content:center}.dnb-progress-indicator__label{display:inline-flex}.dnb-progress-indicator__label .dnb-p{align-self:center}.dnb-spacing .dnb-progress-indicator .dnb-p,.dnb-spacing .dnb-progress-indicator .dnb-p:not([class*=dnb-space]){margin:0}.dnb-progress-indicator--horizontal .dnb-progress-indicator__label{padding-left:1rem}.dnb-progress-indicator--horizontal.dnb-progress-indicator--small .dnb-progress-indicator__label{padding-left:.5rem}.dnb-progress-indicator--vertical .dnb-progress-indicator__label{padding-top:.5rem}.dnb-progress-indicator__circular{height:2rem;position:relative;transform:rotate(-90deg);width:2rem}.dnb-progress-indicator__circular svg{height:100%;inset:0;position:absolute;width:100%}.dnb-progress-indicator__circular__line{animation-delay:.2s;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:var(--progress-indicator-timing)}.dnb-progress-indicator__circular__line.background,.dnb-progress-indicator__circular__line.light{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--max)}.dnb-progress-indicator__circular__line.light{animation-name:progress-indicator-circular-line-light}.dnb-progress-indicator__circular__line.dark,.dnb-progress-indicator__circular__line.light{stroke-dasharray:var(--progress-indicator-circular-circle),var(--progress-indicator-circular-circle)}.dnb-progress-indicator__circular__line.dark{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--min);animation-name:progress-indicator-circular-line-dark}.dnb-progress-indicator__circular__line.paused{animation-play-state:paused}.dnb-progress-indicator__circular--has-progress-value .dnb-progress-indicator__circular__line.dark{transition:stroke-dashoffset .6s var(--progress-indicator-timing)}.dnb-progress-indicator__circular__circle{stroke-linecap:round}.dnb-progress-indicator__circular__line.light .dnb-progress-indicator__circular__circle{stroke:var(--progress-indicator-circular-background-color)}.dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke:var(--progress-indicator-circular-bar-color)}.dnb-progress-indicator__circular--small{height:1rem;width:1rem}.dnb-progress-indicator__circular--medium{height:1.5rem;width:1.5rem}.dnb-progress-indicator__circular--large{height:3.5rem;width:3.5rem}.dnb-progress-indicator__circular--huge{height:20rem;width:20rem}.dnb-progress-indicator__circular--small .dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke-width:3.1}.dnb-progress-indicator__circular--medium .dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke-width:3.3}.dnb-progress-indicator__circular--default .dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke-width:3.5}.dnb-progress-indicator__circular--large .dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke-width:3.7}.dnb-progress-indicator__circular--huge .dnb-progress-indicator__circular__line.dark .dnb-progress-indicator__circular__circle{stroke-width:3.9}.dnb-progress-indicator__linear{background-color:var(--progress-indicator-linear-background-color);border-radius:.25rem;height:.5rem;overflow:hidden;position:relative;width:100%;will-change:transform}.dnb-progress-indicator__linear__bar{background-color:var(--progress-indicator-linear-bar-color);border-radius:inherit;bottom:0;left:0;position:absolute;top:0;transform-origin:left;width:100%}.dnb-progress-indicator__linear__bar-transition{transition:transform .2s linear}.dnb-progress-indicator__linear__bar1-animation{animation:progress-indicator-linear-bar-1 2.1s cubic-bezier(.65,.815,.735,.395) infinite;width:auto}.dnb-progress-indicator__linear__bar2-animation{animation:progress-indicator-linear-bar-2 2.1s cubic-bezier(.165,.84,.44,1) 1.15s infinite;width:auto}.dnb-progress-indicator__linear--small{border-radius:.125rem;height:.25rem}.dnb-progress-indicator__linear--medium{border-radius:.5rem;height:1rem}.dnb-progress-indicator__linear--large{border-radius:.75rem;height:1.5rem}.dnb-progress-indicator__linear--huge{border-radius:1rem;height:2rem}html[data-visual-test] .dnb-progress-indicator__linear__bar1-animation{animation-duration:0ms;animation-iteration-count:0;left:-35%;right:100%}html[data-visual-test] .dnb-progress-indicator__linear__bar2-animation{animation-duration:0ms;animation-iteration-count:0;left:-200%;right:100%}.dnb-progress-indicator,.dnb-progress-indicator--visible{animation:progress-indicator-fade-in .2s ease-out 1 forwards;opacity:0}.dnb-progress-indicator--complete:not(.dnb-progress-indicator--visible){animation:progress-indicator-fade-out .6s ease-out 1 forwards}html[data-visual-test] .dnb-progress-indicator{animation-duration:0ms;opacity:1}.dnb-progress-indicator--no-animation{animation-duration:0ms}html[data-visual-test] .dnb-progress-indicator__bar-transition{transition:none}.dnb-progress-indicator--full-width{min-width:1rem;width:100%}@keyframes progress-indicator-fade-in{0%{opacity:0}to{opacity:1}}@keyframes progress-indicator-fade-out{0%{opacity:1}to{opacity:0}}@keyframes progress-indicator-circular-line-light{0%{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--min)}50%{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--min)}to{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--max)}}@keyframes progress-indicator-circular-line-dark{0%{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--min)}50%{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--max)}to{stroke-dashoffset:var(--progress-indicator-circular-circle-offset--max)}}@keyframes progress-indicator-linear-bar-1{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes progress-indicator-linear-bar-2{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}
|
|
@@ -44,11 +44,14 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
&--horizontal &__label {
|
|
47
|
-
|
|
47
|
+
padding-left: 1rem;
|
|
48
|
+
}
|
|
49
|
+
&--horizontal#{&}--small &__label {
|
|
50
|
+
padding-left: 0.5rem;
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
&--vertical &__label {
|
|
51
|
-
|
|
54
|
+
padding-top: 0.5rem;
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
// circular variant
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export namespace spacingPropTypes {
|
|
2
|
-
|
|
2
|
+
let space: PropTypes.Requireable<NonNullable<string | number | boolean | PropTypes.InferProps<{
|
|
3
3
|
top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
4
4
|
right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
5
5
|
bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
6
6
|
left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
7
7
|
}>>>;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
let top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
9
|
+
let right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
10
|
+
let bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
11
|
+
let left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
|
|
12
12
|
}
|
|
13
13
|
import PropTypes from 'prop-types';
|
|
14
14
|
export { createSpacingClasses, createSpacingProperties, removeSpaceProps } from "./SpacingUtils";
|
|
@@ -14,7 +14,7 @@ import { createSpacingClasses } from '../space/SpacingHelper';
|
|
|
14
14
|
import { createSkeletonClass } from '../skeleton/SkeletonHelper';
|
|
15
15
|
import { extendPropsWithContext, validateDOMAttributes } from '../../shared/component-helper';
|
|
16
16
|
import ScrollView from './TableScrollView';
|
|
17
|
-
import TableContext from './TableContext';
|
|
17
|
+
import { TableContext } from './TableContext';
|
|
18
18
|
import { useStickyHeader } from './TableStickyHeader';
|
|
19
19
|
import { useHandleOddEven } from './TableTr';
|
|
20
20
|
export { ScrollView };
|