@dnb/eufemia 10.35.0 → 10.37.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 +40 -0
- package/cjs/components/accordion/Accordion.d.ts +15 -3
- package/cjs/components/accordion/Accordion.js +7 -0
- package/cjs/components/accordion/Accordion.js.map +1 -1
- package/cjs/components/accordion/AccordionDocs.d.ts +4 -0
- package/cjs/components/accordion/AccordionDocs.js +161 -0
- package/cjs/components/accordion/AccordionDocs.js.map +1 -0
- package/cjs/components/accordion/AccordionGroup.js +13 -3
- package/cjs/components/accordion/AccordionGroup.js.map +1 -1
- package/cjs/components/accordion/AccordionHeader.d.ts +5 -5
- package/cjs/components/accordion/AccordionHeader.js +3 -2
- package/cjs/components/accordion/AccordionHeader.js.map +1 -1
- package/cjs/components/accordion/AccordionProviderContext.d.ts +2 -0
- package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
- package/cjs/components/anchor/Anchor.d.ts +20 -0
- package/cjs/components/anchor/Anchor.js +13 -4
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/anchor/AnchorDocs.d.ts +3 -0
- package/cjs/components/anchor/AnchorDocs.js +82 -0
- package/cjs/components/anchor/AnchorDocs.js.map +1 -0
- package/cjs/components/autocomplete/Autocomplete.js +18 -4
- package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/cjs/components/height-animation/HeightAnimationInstance.d.ts +3 -3
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/height-animation/useHeightAnimation.d.ts +5 -1
- package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
- package/cjs/components/icon/Icon.d.ts +493 -61
- package/cjs/components/icon/Icon.js +97 -134
- package/cjs/components/icon/Icon.js.map +1 -1
- package/cjs/components/icon/IconHelpers.d.ts +2 -1
- package/cjs/components/icon/IconHelpers.js +1 -1
- package/cjs/components/icon/IconHelpers.js.map +1 -1
- package/cjs/components/icon/IconPrimary.d.ts +2 -2
- package/cjs/components/icon/IconPrimary.js.map +1 -1
- package/cjs/components/icon-primary/IconPrimary.d.ts +8 -11
- package/cjs/components/icon-primary/IconPrimary.js +37 -38
- package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorContext.js +66 -59
- package/cjs/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorItem.js +15 -23
- package/cjs/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorModal.js +5 -5
- package/cjs/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorSidebar.js +10 -9
- package/cjs/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/cjs/components/table/Table.d.ts +1 -1
- package/cjs/components/table/Table.js.map +1 -1
- package/cjs/components/table/TableContext.d.ts +12 -2
- package/cjs/components/table/TableContext.js +1 -3
- package/cjs/components/table/TableContext.js.map +1 -1
- package/cjs/components/table/TableDocs.d.ts +7 -0
- package/cjs/components/table/TableDocs.js +202 -0
- package/cjs/components/table/TableDocs.js.map +1 -0
- package/cjs/components/table/TableTd.d.ts +3 -3
- package/cjs/components/table/TableTd.js +2 -2
- package/cjs/components/table/TableTd.js.map +1 -1
- package/cjs/components/table/TableTr.d.ts +9 -5
- package/cjs/components/table/TableTr.js +4 -4
- package/cjs/components/table/TableTr.js.map +1 -1
- package/cjs/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
- package/cjs/components/table/{TableAccordionTd.js → table-accordion/TableAccordionContent.js} +52 -17
- package/cjs/components/table/table-accordion/TableAccordionContent.js.map +1 -0
- package/cjs/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
- package/cjs/components/table/table-accordion/TableAccordionContext.js +11 -0
- package/cjs/components/table/table-accordion/TableAccordionContext.js.map +1 -0
- package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
- package/cjs/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +17 -18
- package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -0
- package/{es/components/table → cjs/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
- package/cjs/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +4 -4
- package/cjs/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
- package/cjs/components/tabs/Tabs.d.ts +0 -3
- package/cjs/components/tabs/TabsDocs.d.ts +1 -0
- package/cjs/components/tabs/TabsDocs.js +32 -4
- package/cjs/components/tabs/TabsDocs.js.map +1 -1
- package/cjs/components/toggle-button/ToggleButtonGroup.js +2 -2
- package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.css +15 -6
- package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/cjs/components/toggle-button/style/dnb-toggle-button.scss +16 -9
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +20 -72
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +101 -0
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
- package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -1
- package/cjs/extensions/forms/Value/Date/Date.js +26 -3
- package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
- package/cjs/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
- package/cjs/extensions/forms/Value/Date/DateDocs.js +20 -0
- package/cjs/extensions/forms/Value/Date/DateDocs.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +5 -0
- package/cjs/extensions/forms/Wizard/Step/Step.js +6 -2
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -9
- package/cjs/extensions/forms/constants/locales/en-GB.js +7 -9
- package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -9
- package/cjs/extensions/forms/constants/locales/index.d.ts +14 -18
- package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
- package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -9
- package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/cjs/shared/Context.d.ts +4 -0
- package/cjs/shared/Context.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/component-helper.js +1 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +15 -6
- package/cjs/style/dnb-ui-components.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +15 -6
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/components/accordion/Accordion.d.ts +15 -3
- package/components/accordion/Accordion.js +7 -0
- package/components/accordion/Accordion.js.map +1 -1
- package/components/accordion/AccordionDocs.d.ts +4 -0
- package/components/accordion/AccordionDocs.js +152 -0
- package/components/accordion/AccordionDocs.js.map +1 -0
- package/components/accordion/AccordionGroup.js +14 -4
- package/components/accordion/AccordionGroup.js.map +1 -1
- package/components/accordion/AccordionHeader.d.ts +5 -5
- package/components/accordion/AccordionHeader.js +3 -2
- package/components/accordion/AccordionHeader.js.map +1 -1
- package/components/accordion/AccordionProviderContext.d.ts +2 -0
- package/components/accordion/AccordionProviderContext.js.map +1 -1
- package/components/anchor/Anchor.d.ts +20 -0
- package/components/anchor/Anchor.js +13 -4
- package/components/anchor/Anchor.js.map +1 -1
- package/components/anchor/AnchorDocs.d.ts +3 -0
- package/components/anchor/AnchorDocs.js +74 -0
- package/components/anchor/AnchorDocs.js.map +1 -0
- package/components/autocomplete/Autocomplete.js +19 -5
- package/components/autocomplete/Autocomplete.js.map +1 -1
- package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/components/height-animation/HeightAnimationInstance.d.ts +3 -3
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/height-animation/useHeightAnimation.d.ts +5 -1
- package/components/height-animation/useHeightAnimation.js.map +1 -1
- package/components/icon/Icon.d.ts +493 -61
- package/components/icon/Icon.js +89 -127
- package/components/icon/Icon.js.map +1 -1
- package/components/icon/IconHelpers.d.ts +2 -1
- package/components/icon/IconHelpers.js +1 -1
- package/components/icon/IconHelpers.js.map +1 -1
- package/components/icon/IconPrimary.d.ts +2 -2
- package/components/icon/IconPrimary.js.map +1 -1
- package/components/icon-primary/IconPrimary.d.ts +8 -11
- package/components/icon-primary/IconPrimary.js +25 -31
- package/components/icon-primary/IconPrimary.js.map +1 -1
- package/components/step-indicator/StepIndicatorContext.js +67 -60
- package/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/components/step-indicator/StepIndicatorItem.js +16 -24
- package/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/components/step-indicator/StepIndicatorModal.js +6 -6
- package/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/components/step-indicator/StepIndicatorSidebar.js +11 -10
- package/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/components/table/Table.d.ts +1 -1
- package/components/table/Table.js.map +1 -1
- package/components/table/TableContext.d.ts +12 -2
- package/components/table/TableContext.js +0 -1
- package/components/table/TableContext.js.map +1 -1
- package/components/table/TableDocs.d.ts +7 -0
- package/components/table/TableDocs.js +190 -0
- package/components/table/TableDocs.js.map +1 -0
- package/components/table/TableTd.d.ts +3 -3
- package/components/table/TableTd.js +2 -2
- package/components/table/TableTd.js.map +1 -1
- package/components/table/TableTr.d.ts +9 -5
- package/components/table/TableTr.js +4 -4
- package/components/table/TableTr.js.map +1 -1
- package/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
- package/components/table/table-accordion/TableAccordionContent.js +95 -0
- package/components/table/table-accordion/TableAccordionContent.js.map +1 -0
- package/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
- package/components/table/table-accordion/TableAccordionContext.js +3 -0
- package/components/table/table-accordion/TableAccordionContext.js.map +1 -0
- package/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
- package/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
- package/components/table/table-accordion/TableAccordionHead.js.map +1 -0
- package/{cjs/components/table → components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
- package/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
- package/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
- package/components/tabs/Tabs.d.ts +0 -3
- package/components/tabs/TabsDocs.d.ts +1 -0
- package/components/tabs/TabsDocs.js +30 -3
- package/components/tabs/TabsDocs.js.map +1 -1
- package/components/toggle-button/ToggleButtonGroup.js +2 -2
- package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/components/toggle-button/style/dnb-toggle-button.css +15 -6
- package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/components/toggle-button/style/dnb-toggle-button.scss +16 -9
- package/es/components/accordion/Accordion.d.ts +15 -3
- package/es/components/accordion/Accordion.js +7 -0
- package/es/components/accordion/Accordion.js.map +1 -1
- package/es/components/accordion/AccordionDocs.d.ts +4 -0
- package/es/components/accordion/AccordionDocs.js +152 -0
- package/es/components/accordion/AccordionDocs.js.map +1 -0
- package/es/components/accordion/AccordionGroup.js +14 -4
- package/es/components/accordion/AccordionGroup.js.map +1 -1
- package/es/components/accordion/AccordionHeader.d.ts +5 -5
- package/es/components/accordion/AccordionHeader.js +3 -2
- package/es/components/accordion/AccordionHeader.js.map +1 -1
- package/es/components/accordion/AccordionProviderContext.d.ts +2 -0
- package/es/components/accordion/AccordionProviderContext.js.map +1 -1
- package/es/components/anchor/Anchor.d.ts +20 -0
- package/es/components/anchor/Anchor.js +13 -4
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/anchor/AnchorDocs.d.ts +3 -0
- package/es/components/anchor/AnchorDocs.js +74 -0
- package/es/components/anchor/AnchorDocs.js.map +1 -0
- package/es/components/autocomplete/Autocomplete.js +19 -5
- package/es/components/autocomplete/Autocomplete.js.map +1 -1
- package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
- package/es/components/height-animation/HeightAnimationInstance.d.ts +3 -3
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/height-animation/useHeightAnimation.d.ts +5 -1
- package/es/components/height-animation/useHeightAnimation.js.map +1 -1
- package/es/components/icon/Icon.d.ts +493 -61
- package/es/components/icon/Icon.js +82 -116
- package/es/components/icon/Icon.js.map +1 -1
- package/es/components/icon/IconHelpers.d.ts +2 -1
- package/es/components/icon/IconHelpers.js +1 -1
- package/es/components/icon/IconHelpers.js.map +1 -1
- package/es/components/icon/IconPrimary.d.ts +2 -2
- package/es/components/icon/IconPrimary.js.map +1 -1
- package/es/components/icon-primary/IconPrimary.d.ts +8 -11
- package/es/components/icon-primary/IconPrimary.js +25 -31
- package/es/components/icon-primary/IconPrimary.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorContext.js +67 -60
- package/es/components/step-indicator/StepIndicatorContext.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorItem.js +17 -25
- package/es/components/step-indicator/StepIndicatorItem.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorModal.js +6 -6
- package/es/components/step-indicator/StepIndicatorModal.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorSidebar.js +11 -10
- package/es/components/step-indicator/StepIndicatorSidebar.js.map +1 -1
- package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
- package/es/components/table/Table.d.ts +1 -1
- package/es/components/table/Table.js.map +1 -1
- package/es/components/table/TableContext.d.ts +12 -2
- package/es/components/table/TableContext.js +0 -1
- package/es/components/table/TableContext.js.map +1 -1
- package/es/components/table/TableDocs.d.ts +7 -0
- package/es/components/table/TableDocs.js +190 -0
- package/es/components/table/TableDocs.js.map +1 -0
- package/es/components/table/TableTd.d.ts +3 -3
- package/es/components/table/TableTd.js +2 -2
- package/es/components/table/TableTd.js.map +1 -1
- package/es/components/table/TableTr.d.ts +9 -5
- package/es/components/table/TableTr.js +4 -4
- package/es/components/table/TableTr.js.map +1 -1
- package/es/components/table/table-accordion/TableAccordionContent.d.ts +15 -0
- package/es/components/table/table-accordion/TableAccordionContent.js +92 -0
- package/es/components/table/table-accordion/TableAccordionContent.js.map +1 -0
- package/es/components/table/table-accordion/TableAccordionContext.d.ts +16 -0
- package/es/components/table/table-accordion/TableAccordionContext.js +3 -0
- package/es/components/table/table-accordion/TableAccordionContext.js.map +1 -0
- package/es/components/table/table-accordion/TableAccordionHead.d.ts +8 -0
- package/es/components/table/{TableAccordion.js → table-accordion/TableAccordionHead.js} +14 -15
- package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -0
- package/{components/table → es/components/table/table-accordion}/useTableAnimationHandler.d.ts +7 -3
- package/es/components/table/{useTableAnimationHandler.js → table-accordion/useTableAnimationHandler.js} +3 -3
- package/es/components/table/table-accordion/useTableAnimationHandler.js.map +1 -0
- package/es/components/tabs/Tabs.d.ts +0 -3
- package/es/components/tabs/TabsDocs.d.ts +1 -0
- package/es/components/tabs/TabsDocs.js +30 -3
- package/es/components/tabs/TabsDocs.js.map +1 -1
- package/es/components/toggle-button/ToggleButtonGroup.js +2 -2
- package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.css +15 -6
- package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
- package/es/components/toggle-button/style/dnb-toggle-button.scss +16 -9
- package/es/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
- package/es/extensions/forms/Form/Visibility/Visibility.js +20 -71
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
- package/es/extensions/forms/Form/Visibility/useVisibility.js +94 -0
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
- package/es/extensions/forms/Value/Date/Date.d.ts +5 -1
- package/es/extensions/forms/Value/Date/Date.js +25 -3
- package/es/extensions/forms/Value/Date/Date.js.map +1 -1
- package/es/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
- package/es/extensions/forms/Value/Date/DateDocs.js +13 -0
- package/es/extensions/forms/Value/Date/DateDocs.js.map +1 -0
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +5 -0
- package/es/extensions/forms/Wizard/Step/Step.js +6 -2
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -9
- package/es/extensions/forms/constants/locales/en-GB.js +7 -9
- package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/es/extensions/forms/constants/locales/en-US.d.ts +7 -9
- package/es/extensions/forms/constants/locales/index.d.ts +14 -18
- package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
- package/es/extensions/forms/constants/locales/nb-NO.js +7 -9
- package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/es/shared/Context.d.ts +4 -0
- package/es/shared/Context.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/component-helper.js +1 -1
- package/es/shared/component-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +15 -6
- package/es/style/dnb-ui-components.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +15 -6
- package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +5 -5
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
- package/extensions/forms/Form/Visibility/Visibility.js +20 -71
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.d.ts +5 -0
- package/extensions/forms/Form/Visibility/useVisibility.js +95 -0
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -0
- package/extensions/forms/Value/Date/Date.d.ts +5 -1
- package/extensions/forms/Value/Date/Date.js +25 -3
- package/extensions/forms/Value/Date/Date.js.map +1 -1
- package/extensions/forms/Value/Date/DateDocs.d.ts +2 -0
- package/extensions/forms/Value/Date/DateDocs.js +13 -0
- package/extensions/forms/Value/Date/DateDocs.js.map +1 -0
- package/extensions/forms/Wizard/Container/WizardContainer.js +15 -9
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +5 -0
- package/extensions/forms/Wizard/Step/Step.js +6 -2
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useNextRouter.js +1 -1
- package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useQueryLocator.js +1 -1
- package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useReachRouter.js +1 -1
- package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useReactRouter.js +1 -1
- package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/extensions/forms/constants/locales/en-GB.d.ts +7 -9
- package/extensions/forms/constants/locales/en-GB.js +7 -9
- package/extensions/forms/constants/locales/en-GB.js.map +1 -1
- package/extensions/forms/constants/locales/en-US.d.ts +7 -9
- package/extensions/forms/constants/locales/index.d.ts +14 -18
- package/extensions/forms/constants/locales/nb-NO.d.ts +7 -9
- package/extensions/forms/constants/locales/nb-NO.js +7 -9
- package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
- package/package.json +1 -1
- package/shared/Context.d.ts +4 -0
- package/shared/Context.js.map +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/component-helper.js +1 -1
- package/shared/component-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +15 -6
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +15 -6
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +15 -6
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +15 -6
- package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +5 -5
- package/umd/dnb-ui-lib.min.js +1 -1
- package/cjs/components/table/TableAccordion.d.ts +0 -8
- package/cjs/components/table/TableAccordion.js.map +0 -1
- package/cjs/components/table/TableAccordionTd.d.ts +0 -9
- package/cjs/components/table/TableAccordionTd.js.map +0 -1
- package/cjs/components/table/TableAccordionTr.d.ts +0 -13
- package/cjs/components/table/TableAccordionTr.js +0 -61
- package/cjs/components/table/TableAccordionTr.js.map +0 -1
- package/cjs/components/table/useTableAnimationHandler.js.map +0 -1
- package/components/table/TableAccordion.d.ts +0 -8
- package/components/table/TableAccordion.js.map +0 -1
- package/components/table/TableAccordionTd.d.ts +0 -9
- package/components/table/TableAccordionTd.js +0 -61
- package/components/table/TableAccordionTd.js.map +0 -1
- package/components/table/TableAccordionTr.d.ts +0 -13
- package/components/table/TableAccordionTr.js +0 -51
- package/components/table/TableAccordionTr.js.map +0 -1
- package/components/table/useTableAnimationHandler.js.map +0 -1
- package/es/components/table/TableAccordion.d.ts +0 -8
- package/es/components/table/TableAccordion.js.map +0 -1
- package/es/components/table/TableAccordionTd.d.ts +0 -9
- package/es/components/table/TableAccordionTd.js +0 -61
- package/es/components/table/TableAccordionTd.js.map +0 -1
- package/es/components/table/TableAccordionTr.d.ts +0 -13
- package/es/components/table/TableAccordionTr.js +0 -51
- package/es/components/table/TableAccordionTr.js.map +0 -1
- package/es/components/table/useTableAnimationHandler.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreadcrumbItem.js","names":["_react","_interopRequireDefault","require","_Button","_Anchor","_IconPrimary","_P","_home","_shared","_Context","_componentHelper","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","useLayoutEffect","window","React","useEffect","defaultProps","text","href","icon","onClick","variant","skeleton","determineIcon","isSmallScreen","BreadcrumbItem","localProps","context","useContext","Context","theme","translation","Breadcrumb","homeText","_extendPropsWithConte","extendPropsWithContext","itemNr","props","useMediaQuery","matchOnSSR","when","max","currentIcon","setCurrentIcon","useState","currentText","isInteractive","to","style","String","iconToUse","homeIcon","createElement","className","undefined","name","icon_position","on_click","Fragment","filterProps","includes","space","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/breadcrumb/BreadcrumbItem.tsx"],"sourcesContent":["import React from 'react'\n\n// Components\nimport Button, { ButtonProps } from '../Button'\nimport Anchor, { AnchorAllProps } from '../Anchor'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport type { DataAttributeTypes } from '../../shared/types'\nimport type { IconIcon } from '../icon/Icon'\n\n// Elements\nimport P from '../../elements/P'\n\n// Icons\nimport homeIcon from '../../icons/home'\n\n// Shared\nimport { useMediaQuery } from '../../shared'\nimport Context from '../../shared/Context'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n extendPropsWithContext,\n filterProps,\n} from '../../shared/component-helper'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type BreadcrumbItemProps = {\n /**\n * Text displaying the title of the item's corresponding page\n * Default: If variant='home', default is \"Home\". Otherwise it is required.\n */\n text?: React.ReactNode\n\n /**\n * Icon displaying on the left side\n * Default: HomeIcon / chevron_right\n */\n icon?: IconIcon\n\n /**\n * Href should be the link to the item's corresponding page.\n * Default: null\n */\n href?: string\n\n /**\n * Set a custom click event. In this case, you should not define the prop href.\n * Default: null\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>\n\n /**\n * The component variant. Variant 'current' should correspond to the current page and 'home' to the root page.\n * Default: null\n */\n variant?: 'home' | 'previous' | 'current'\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /** Internal */\n itemNr?: number\n} & (AnchorAllProps & Omit<ButtonProps, 'variant'>) &\n DataAttributeTypes\n\nconst defaultProps = {\n text: null,\n href: null,\n icon: null,\n onClick: null,\n variant: null,\n skeleton: null,\n}\n\nconst determineIcon: IconIcon = (\n variant: string,\n isSmallScreen: boolean\n) => {\n switch (variant) {\n case 'home':\n return 'home-icon'\n case 'single':\n case 'collapse':\n return 'chevron_left'\n default:\n return isSmallScreen ? 'chevron_left' : 'chevron_right'\n }\n}\n\nconst BreadcrumbItem = (localProps: BreadcrumbItemProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const {\n theme,\n translation: {\n Breadcrumb: { homeText },\n },\n } = context\n\n // Extract additional props from global context\n const {\n text,\n href,\n icon,\n onClick,\n variant,\n skeleton,\n itemNr,\n ...props\n } = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.BreadcrumbItem\n )\n\n const isSmallScreen = useMediaQuery({\n matchOnSSR: true,\n when: { max: 'medium' },\n })\n\n const [currentIcon, setCurrentIcon] =\n React.useState<IconIcon>('chevron_left')\n\n useLayoutEffect(() => {\n if (!icon) {\n setCurrentIcon(determineIcon(variant, isSmallScreen))\n } else {\n if (variant !== 'home') {\n setCurrentIcon(icon ?? 'chevron_left')\n }\n }\n }, [icon, isSmallScreen, variant])\n\n const currentText = text || (variant === 'home' && homeText) || ''\n const isInteractive =\n (href || onClick || props.to) && variant !== 'current'\n const style = { '--delay': String(itemNr) } as React.CSSProperties\n\n const iconToUse =\n variant === 'home' || currentIcon === 'home-icon'\n ? homeIcon\n : currentIcon\n\n return (\n <li\n className=\"dnb-breadcrumb__item\"\n aria-current={variant === 'current' ? 'page' : undefined}\n style={style}\n >\n {isInteractive ? (\n theme?.name === 'sbanken' ? (\n <Button\n variant=\"tertiary\"\n href={href}\n icon={iconToUse}\n icon_position=\"left\"\n on_click={onClick}\n text={currentText}\n skeleton={skeleton}\n {...props}\n />\n ) : (\n <>\n {variant !== 'home' && (\n <IconPrimary\n icon={iconToUse}\n className=\"dnb-breadcrumb__item__span__icon\"\n />\n )}\n <Anchor\n href={href}\n onClick={onClick}\n icon={variant === 'home' ? iconToUse : null}\n skeleton={skeleton}\n {...props}\n >\n {currentText}\n </Anchor>\n </>\n )\n ) : (\n <span\n className=\"dnb-breadcrumb__item__span\"\n // TODO: Consider deprecating passing down props to span in v11\n {...filterProps(props, (key) => !key.includes('-'))}\n >\n <IconPrimary\n icon={iconToUse}\n className=\"dnb-breadcrumb__item__span__icon\"\n />\n <P space=\"0\">{currentText}</P>\n </span>\n )}\n </li>\n )\n}\n\nBreadcrumbItem._supportsSpacingProps = true\n\nexport default BreadcrumbItem\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BreadcrumbItem.js","names":["_react","_interopRequireDefault","require","_Button","_Anchor","_IconPrimary","_P","_home","_shared","_Context","_componentHelper","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","useLayoutEffect","window","React","useEffect","defaultProps","text","href","icon","onClick","variant","skeleton","determineIcon","isSmallScreen","BreadcrumbItem","localProps","context","useContext","Context","theme","translation","Breadcrumb","homeText","_extendPropsWithConte","extendPropsWithContext","itemNr","props","useMediaQuery","matchOnSSR","when","max","currentIcon","setCurrentIcon","useState","currentText","isInteractive","to","style","String","iconToUse","homeIcon","createElement","className","undefined","name","icon_position","on_click","Fragment","filterProps","includes","space","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/breadcrumb/BreadcrumbItem.tsx"],"sourcesContent":["import React from 'react'\n\n// Components\nimport Button, { ButtonProps } from '../Button'\nimport Anchor, { AnchorAllProps } from '../Anchor'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport type { DataAttributeTypes } from '../../shared/types'\nimport type { IconIcon } from '../icon/Icon'\n\n// Elements\nimport P from '../../elements/P'\n\n// Icons\nimport homeIcon from '../../icons/home'\n\n// Shared\nimport { useMediaQuery } from '../../shared'\nimport Context from '../../shared/Context'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n extendPropsWithContext,\n filterProps,\n} from '../../shared/component-helper'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type BreadcrumbItemProps = {\n /**\n * Text displaying the title of the item's corresponding page\n * Default: If variant='home', default is \"Home\". Otherwise it is required.\n */\n text?: React.ReactNode\n\n /**\n * Icon displaying on the left side\n * Default: HomeIcon / chevron_right\n */\n icon?: IconIcon\n\n /**\n * Href should be the link to the item's corresponding page.\n * Default: null\n */\n href?: string\n\n /**\n * Set a custom click event. In this case, you should not define the prop href.\n * Default: null\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>\n\n /**\n * The component variant. Variant 'current' should correspond to the current page and 'home' to the root page.\n * Default: null\n */\n variant?: 'home' | 'previous' | 'current'\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /** Internal */\n itemNr?: number\n} & (AnchorAllProps & Omit<ButtonProps, 'variant'>) &\n DataAttributeTypes\n\nconst defaultProps = {\n text: null,\n href: null,\n icon: null,\n onClick: null,\n variant: null,\n skeleton: null,\n}\n\nconst determineIcon = (variant: string, isSmallScreen: boolean) => {\n switch (variant) {\n case 'home':\n return 'home-icon'\n case 'single':\n case 'collapse':\n return 'chevron_left'\n default:\n return isSmallScreen ? 'chevron_left' : 'chevron_right'\n }\n}\n\nconst BreadcrumbItem = (localProps: BreadcrumbItemProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const {\n theme,\n translation: {\n Breadcrumb: { homeText },\n },\n } = context\n\n // Extract additional props from global context\n const {\n text,\n href,\n icon,\n onClick,\n variant,\n skeleton,\n itemNr,\n ...props\n } = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.BreadcrumbItem\n )\n\n const isSmallScreen = useMediaQuery({\n matchOnSSR: true,\n when: { max: 'medium' },\n })\n\n const [currentIcon, setCurrentIcon] =\n React.useState<IconIcon>('chevron_left')\n\n useLayoutEffect(() => {\n if (!icon) {\n setCurrentIcon(determineIcon(variant, isSmallScreen))\n } else {\n if (variant !== 'home') {\n setCurrentIcon(icon ?? 'chevron_left')\n }\n }\n }, [icon, isSmallScreen, variant])\n\n const currentText = text || (variant === 'home' && homeText) || ''\n const isInteractive =\n (href || onClick || props.to) && variant !== 'current'\n const style = { '--delay': String(itemNr) } as React.CSSProperties\n\n const iconToUse =\n variant === 'home' || currentIcon === 'home-icon'\n ? homeIcon\n : currentIcon\n\n return (\n <li\n className=\"dnb-breadcrumb__item\"\n aria-current={variant === 'current' ? 'page' : undefined}\n style={style}\n >\n {isInteractive ? (\n theme?.name === 'sbanken' ? (\n <Button\n variant=\"tertiary\"\n href={href}\n icon={iconToUse}\n icon_position=\"left\"\n on_click={onClick}\n text={currentText}\n skeleton={skeleton}\n {...props}\n />\n ) : (\n <>\n {variant !== 'home' && (\n <IconPrimary\n icon={iconToUse}\n className=\"dnb-breadcrumb__item__span__icon\"\n />\n )}\n <Anchor\n href={href}\n onClick={onClick}\n icon={variant === 'home' ? iconToUse : null}\n skeleton={skeleton}\n {...props}\n >\n {currentText}\n </Anchor>\n </>\n )\n ) : (\n <span\n className=\"dnb-breadcrumb__item__span\"\n // TODO: Consider deprecating passing down props to span in v11\n {...filterProps(props, (key) => !key.includes('-'))}\n >\n <IconPrimary\n icon={iconToUse}\n className=\"dnb-breadcrumb__item__span__icon\"\n />\n <P space=\"0\">{currentText}</P>\n </span>\n )}\n </li>\n )\n}\n\nBreadcrumbItem._supportsSpacingProps = true\n\nexport default BreadcrumbItem\n"],"mappings":"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"}
|
|
@@ -33,9 +33,9 @@ export default class HeightAnimation {
|
|
|
33
33
|
isAnimating: boolean;
|
|
34
34
|
__currentHeight: number;
|
|
35
35
|
firstPaintStyle: {
|
|
36
|
-
visibility:
|
|
37
|
-
opacity:
|
|
38
|
-
height:
|
|
36
|
+
readonly visibility: "hidden";
|
|
37
|
+
readonly opacity: "0";
|
|
38
|
+
readonly height: "auto";
|
|
39
39
|
};
|
|
40
40
|
constructor(opts?: HeightAnimationOptions);
|
|
41
41
|
callAnimationStart(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","arguments","length","undefined","_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","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","elemWidth","clientWidth","clonedWidth","getAttribute","width","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime","exports","default"],"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 clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n // When text is wrapped, we get different widths,\n // so we need to set the width to the original width\n const elemWidth = this.elem.clientWidth\n const clonedWidth =\n clonedElem.clientWidth ||\n // data-width is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-width')) ||\n 0\n\n if (clonedWidth > elemWidth) {\n clonedElem.style.width = `${elemWidth}px`\n }\n\n const height =\n 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 if (this.elem) {\n this.elem.style.overflowY = ''\n }\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":"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"}
|
|
1
|
+
{"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","arguments","length","undefined","_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","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","elemWidth","clientWidth","clonedWidth","getAttribute","width","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime","exports","default"],"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 } as const\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 clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n // When text is wrapped, we get different widths,\n // so we need to set the width to the original width\n const elemWidth = this.elem.clientWidth\n const clonedWidth =\n clonedElem.clientWidth ||\n // data-width is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-width')) ||\n 0\n\n if (clonedWidth > elemWidth) {\n clonedElem.style.width = `${elemWidth}px`\n }\n\n const height =\n 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 if (this.elem) {\n this.elem.style.overflowY = ''\n }\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":"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"}
|
|
@@ -41,5 +41,9 @@ export declare function useHeightAnimation(targetRef: React.RefObject<HTMLElemen
|
|
|
41
41
|
isVisible: boolean;
|
|
42
42
|
isVisibleParallax: boolean;
|
|
43
43
|
isAnimating: boolean;
|
|
44
|
-
firstPaintStyle:
|
|
44
|
+
firstPaintStyle: {
|
|
45
|
+
readonly visibility: "hidden";
|
|
46
|
+
readonly opacity: "0";
|
|
47
|
+
readonly height: "auto";
|
|
48
|
+
} | Record<string, never>;
|
|
45
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHeightAnimation.js","names":["_react","_interopRequireWildcard","require","_HeightAnimationInstance","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useLayoutEffect","window","React","useEffect","useHeightAnimation","targetRef","_instRef$current2","open","animate","children","onInit","onOpen","onAnimationStart","onAnimationEnd","arguments","length","undefined","instRef","useRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","useState","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","current","HeightAnimationInstance","_instRef$current","remove","setOptions","global","IS_TEST","onStart","state","onEnd","useOpenClose","useAdjust","firstPaintStyle","isInDOM","_ref","isTest","process","env","NODE_ENV","setElement","setAsOpen","setAsClosed","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","_ref2","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","useMemo","_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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"}
|
|
1
|
+
{"version":3,"file":"useHeightAnimation.js","names":["_react","_interopRequireWildcard","require","_HeightAnimationInstance","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useLayoutEffect","window","React","useEffect","useHeightAnimation","targetRef","_instRef$current2","open","animate","children","onInit","onOpen","onAnimationStart","onAnimationEnd","arguments","length","undefined","instRef","useRef","isInitialRenderRef","globalThis","readjustTime","isOpen","setIsOpen","useState","isVisible","setIsVisible","isAnimating","setIsAnimating","isVisibleParallax","setParallax","current","HeightAnimationInstance","_instRef$current","remove","setOptions","global","IS_TEST","onStart","state","onEnd","useOpenClose","useAdjust","firstPaintStyle","isInDOM","_ref","isTest","process","env","NODE_ENV","setElement","setAsOpen","setAsClosed","close","_targetRef$current","event","CustomEvent","dispatchEvent","run","bypassTime","_window$requestAnimat","_window","requestAnimationFrame","_ref2","fromHeight","timer","Date","now","shouldAdjust","_instRef$current3","useMemo","_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:\n | typeof instRef.current.firstPaintStyle\n | Record<string, never> =\n (open &&\n !isVisible &&\n !isAnimating &&\n instRef.current?.firstPaintStyle) ||\n {}\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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"}
|