@laerdal/life-react-components 1.9.8-dev.20 → 1.9.8-dev.23
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/README.md +38 -38
- package/dist/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.d.ts +11 -11
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionMenu.cjs.map +1 -1
- package/dist/Accordion/AccordionMenu.d.ts +19 -19
- package/dist/Accordion/AccordionMenu.js.map +1 -1
- package/dist/Accordion/ContentAccordion.cjs.map +1 -1
- package/dist/Accordion/ContentAccordion.d.ts +27 -27
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Accordion/index.cjs.map +1 -1
- package/dist/Accordion/index.d.ts +4 -4
- package/dist/Accordion/index.js.map +1 -1
- package/dist/Accordion/styles.cjs.map +1 -1
- package/dist/Accordion/styles.d.ts +10 -10
- package/dist/Accordion/styles.js.map +1 -1
- package/dist/AuthPage/AuthPage.cjs +4 -4
- package/dist/AuthPage/AuthPage.cjs.map +1 -1
- package/dist/AuthPage/AuthPage.d.ts +32 -32
- package/dist/AuthPage/AuthPage.js +4 -4
- package/dist/AuthPage/AuthPage.js.map +1 -1
- package/dist/AuthPage/Information.cjs.map +1 -1
- package/dist/AuthPage/Information.d.ts +7 -7
- package/dist/AuthPage/Information.js.map +1 -1
- package/dist/AuthPage/ScreenSetsContainer.cjs.map +1 -1
- package/dist/AuthPage/ScreenSetsContainer.d.ts +4 -4
- package/dist/AuthPage/ScreenSetsContainer.js.map +1 -1
- package/dist/AuthPage/_AuthPageSection.cjs.map +1 -1
- package/dist/AuthPage/_AuthPageSection.d.ts +2 -2
- package/dist/AuthPage/_AuthPageSection.js.map +1 -1
- package/dist/AuthPage/index.cjs.map +1 -1
- package/dist/AuthPage/index.d.ts +5 -5
- package/dist/AuthPage/index.js.map +1 -1
- package/dist/AuthPage/screenSetsErrorMessages.cjs.map +1 -1
- package/dist/AuthPage/screenSetsErrorMessages.d.ts +5 -5
- package/dist/AuthPage/screenSetsErrorMessages.js.map +1 -1
- package/dist/Banners/Banner.cjs.map +1 -1
- package/dist/Banners/Banner.d.ts +17 -17
- package/dist/Banners/Banner.js.map +1 -1
- package/dist/Banners/OverviewBanner.cjs.map +1 -1
- package/dist/Banners/OverviewBanner.d.ts +6 -6
- package/dist/Banners/OverviewBanner.js.map +1 -1
- package/dist/Banners/index.cjs.map +1 -1
- package/dist/Banners/index.d.ts +3 -3
- package/dist/Banners/index.js.map +1 -1
- package/dist/Banners/styles.cjs.map +1 -1
- package/dist/Banners/styles.d.ts +1 -1
- package/dist/Banners/styles.js.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.d.ts +12 -12
- package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/Breadcrumb/BreadcrumbItem.d.ts +4 -4
- package/dist/Breadcrumb/index.cjs.map +1 -1
- package/dist/Breadcrumb/index.d.ts +1 -1
- package/dist/Breadcrumb/index.js.map +1 -1
- package/dist/Button/BackButton.cjs.map +1 -1
- package/dist/Button/BackButton.d.ts +8 -8
- package/dist/Button/BackButton.js.map +1 -1
- package/dist/Button/Button.cjs.map +1 -1
- package/dist/Button/Button.d.ts +19 -19
- package/dist/Button/Button.js.map +1 -1
- package/dist/Button/DualFunctionButton.cjs.map +1 -1
- package/dist/Button/DualFunctionButton.d.ts +13 -13
- package/dist/Button/DualFunctionButton.js.map +1 -1
- package/dist/Button/Iconbutton.cjs.map +1 -1
- package/dist/Button/Iconbutton.d.ts +44 -44
- package/dist/Button/Iconbutton.js.map +1 -1
- package/dist/Button/index.cjs.map +1 -1
- package/dist/Button/index.d.ts +4 -4
- package/dist/Button/index.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCard.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCard.d.ts +4 -4
- package/dist/Card/HorizontalCard/HorizontalCard.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardActions.cjs +8 -2
- package/dist/Card/HorizontalCard/HorizontalCardActions.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardActions.d.ts +5 -5
- package/dist/Card/HorizontalCard/HorizontalCardActions.js +2 -2
- package/dist/Card/HorizontalCard/HorizontalCardActions.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardBody.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardBody.d.ts +5 -5
- package/dist/Card/HorizontalCard/HorizontalCardBody.js.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.cjs.map +1 -1
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.d.ts +5 -5
- package/dist/Card/HorizontalCard/HorizontalCardThumbnail.js.map +1 -1
- package/dist/Card/HorizontalCard/index.cjs.map +1 -1
- package/dist/Card/HorizontalCard/index.d.ts +2 -2
- package/dist/Card/HorizontalCard/index.js.map +1 -1
- package/dist/Card/HorizontalCard/types.d.ts +40 -40
- package/dist/Card/VerticalCard/Card.cjs.map +1 -1
- package/dist/Card/VerticalCard/Card.d.ts +16 -16
- package/dist/Card/VerticalCard/Card.js.map +1 -1
- package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardBottomSection.d.ts +31 -31
- package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -1
- package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardMiddleSection.d.ts +27 -27
- package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -1
- package/dist/Card/VerticalCard/CardTopSection.cjs.map +1 -1
- package/dist/Card/VerticalCard/CardTopSection.d.ts +27 -27
- package/dist/Card/VerticalCard/CardTopSection.js.map +1 -1
- package/dist/Card/VerticalCard/index.cjs.map +1 -1
- package/dist/Card/VerticalCard/index.d.ts +7 -7
- package/dist/Card/VerticalCard/index.js.map +1 -1
- package/dist/Card/index.cjs.map +1 -1
- package/dist/Card/index.d.ts +2 -2
- package/dist/Card/index.js.map +1 -1
- package/dist/Chips/ActionChip.cjs +8 -8
- package/dist/Chips/ActionChip.cjs.map +1 -1
- package/dist/Chips/ActionChip.d.ts +10 -10
- package/dist/Chips/ActionChip.js +10 -10
- package/dist/Chips/ActionChip.js.map +1 -1
- package/dist/Chips/ChipStyles.cjs.map +1 -1
- package/dist/Chips/ChipStyles.d.ts +3 -3
- package/dist/Chips/ChipStyles.js +4 -4
- package/dist/Chips/ChipStyles.js.map +1 -1
- package/dist/Chips/ChipTypes.d.ts +38 -38
- package/dist/Chips/ChoiceChips.cjs +13 -13
- package/dist/Chips/ChoiceChips.cjs.map +1 -1
- package/dist/Chips/ChoiceChips.d.ts +10 -10
- package/dist/Chips/ChoiceChips.js +15 -15
- package/dist/Chips/ChoiceChips.js.map +1 -1
- package/dist/Chips/FilterChip.cjs +8 -8
- package/dist/Chips/FilterChip.cjs.map +1 -1
- package/dist/Chips/FilterChip.d.ts +10 -10
- package/dist/Chips/FilterChip.js +10 -10
- package/dist/Chips/FilterChip.js.map +1 -1
- package/dist/Chips/InputChip.cjs +11 -11
- package/dist/Chips/InputChip.cjs.map +1 -1
- package/dist/Chips/InputChip.d.ts +10 -10
- package/dist/Chips/InputChip.js +13 -13
- package/dist/Chips/InputChip.js.map +1 -1
- package/dist/Chips/index.cjs.map +1 -1
- package/dist/Chips/index.d.ts +5 -5
- package/dist/Chips/index.js.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.cjs +20 -20
- package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipDropdownInput.d.ts +21 -21
- package/dist/ChipsInput/ChipDropdownInput.js +26 -26
- package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
- package/dist/ChipsInput/ChipInput.cjs +16 -16
- package/dist/ChipsInput/ChipInput.cjs.map +1 -1
- package/dist/ChipsInput/ChipInput.d.ts +7 -7
- package/dist/ChipsInput/ChipInput.js +16 -16
- package/dist/ChipsInput/ChipInput.js.map +1 -1
- package/dist/ChipsInput/ChipInputField.cjs +4 -4
- package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
- package/dist/ChipsInput/ChipInputField.d.ts +25 -25
- package/dist/ChipsInput/ChipInputField.js +4 -4
- package/dist/ChipsInput/ChipInputField.js.map +1 -1
- package/dist/ChipsInput/ChipInputTypes.d.ts +22 -22
- package/dist/ChipsInput/index.cjs.map +1 -1
- package/dist/ChipsInput/index.d.ts +1 -1
- package/dist/ChipsInput/index.js.map +1 -1
- package/dist/Dropdown/BasicDropdown.cjs +55 -66
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.d.ts +35 -42
- package/dist/Dropdown/BasicDropdown.js +56 -66
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/CommonStyling.cjs.map +1 -1
- package/dist/Dropdown/CommonStyling.d.ts +22 -22
- package/dist/Dropdown/CommonStyling.js.map +1 -1
- package/dist/Dropdown/DropdownButton.cjs +3 -3
- package/dist/Dropdown/DropdownButton.cjs.map +1 -1
- package/dist/Dropdown/DropdownButton.d.ts +10 -10
- package/dist/Dropdown/DropdownButton.js +9 -9
- package/dist/Dropdown/DropdownButton.js.map +1 -1
- package/dist/Dropdown/DropdownButtonTypes.d.ts +33 -33
- package/dist/Dropdown/DropdownContent.cjs +6 -6
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.d.ts +56 -56
- package/dist/Dropdown/DropdownContent.js +6 -6
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.d.ts +24 -24
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Dropdown/index.cjs.map +1 -1
- package/dist/Dropdown/index.d.ts +6 -6
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.cjs.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.d.ts +11 -11
- package/dist/Footer/Components/FooterBottomLinks.js.map +1 -1
- package/dist/Footer/Components/FooterDropdownLinks.cjs.map +1 -1
- package/dist/Footer/Components/FooterDropdownLinks.d.ts +7 -7
- package/dist/Footer/Components/FooterDropdownLinks.js.map +1 -1
- package/dist/Footer/Components/FooterNavSection.cjs.map +1 -1
- package/dist/Footer/Components/FooterNavSection.d.ts +7 -7
- package/dist/Footer/Components/FooterNavSection.js.map +1 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +7 -7
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.js.map +1 -1
- package/dist/Footer/Components/FooterTop.cjs.map +1 -1
- package/dist/Footer/Components/FooterTop.d.ts +7 -7
- package/dist/Footer/Components/FooterTop.js.map +1 -1
- package/dist/Footer/Footer.cjs.map +1 -1
- package/dist/Footer/Footer.d.ts +2 -2
- package/dist/Footer/Footer.js.map +1 -1
- package/dist/Footer/SiteFooter.cjs.map +1 -1
- package/dist/Footer/SiteFooter.d.ts +20 -20
- package/dist/Footer/SiteFooter.js +8 -8
- package/dist/Footer/SiteFooter.js.map +1 -1
- package/dist/Footer/index.cjs.map +1 -1
- package/dist/Footer/index.d.ts +2 -2
- package/dist/Footer/index.js.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +4 -4
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -1
- package/dist/GlobalNavigationBar/GlobalNavigationBar.d.ts +23 -23
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js +4 -4
- package/dist/GlobalNavigationBar/GlobalNavigationBar.js.map +1 -1
- package/dist/GlobalNavigationBar/Logo.cjs.map +1 -1
- package/dist/GlobalNavigationBar/Logo.d.ts +14 -14
- package/dist/GlobalNavigationBar/Logo.js.map +1 -1
- package/dist/GlobalNavigationBar/NavigationHelper.cjs.map +1 -1
- package/dist/GlobalNavigationBar/NavigationHelper.d.ts +4 -4
- package/dist/GlobalNavigationBar/NavigationHelper.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs +8 -2
- package/dist/GlobalNavigationBar/desktop/DesktopActions.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/DesktopActions.d.ts +15 -15
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js +2 -2
- package/dist/GlobalNavigationBar/desktop/DesktopActions.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +7 -7
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/MainMenu.d.ts +8 -8
- package/dist/GlobalNavigationBar/desktop/MainMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/RightSideNav.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/RightSideNav.d.ts +8 -8
- package/dist/GlobalNavigationBar/desktop/RightSideNav.js.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +7 -7
- package/dist/GlobalNavigationBar/desktop/UserMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/index.cjs.map +1 -1
- package/dist/GlobalNavigationBar/index.d.ts +3 -3
- package/dist/GlobalNavigationBar/index.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/CommonStyles.d.ts +13 -13
- package/dist/GlobalNavigationBar/mobile/CommonStyles.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +8 -8
- package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.d.ts +11 -11
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.d.ts +12 -12
- package/dist/GlobalNavigationBar/mobile/MobileMenuHeader.js.map +1 -1
- package/dist/GlobalNavigationBar/types.d.ts +120 -120
- package/dist/HyperLink/HyperLink.cjs.map +1 -1
- package/dist/HyperLink/HyperLink.d.ts +16 -16
- package/dist/HyperLink/HyperLink.js.map +1 -1
- package/dist/HyperLink/index.cjs.map +1 -1
- package/dist/HyperLink/index.d.ts +3 -3
- package/dist/HyperLink/index.js.map +1 -1
- package/dist/HyperLink/styling.cjs.map +1 -1
- package/dist/HyperLink/styling.d.ts +2 -2
- package/dist/HyperLink/styling.js.map +1 -1
- package/dist/Image/ImageWithFallbacks.cjs.map +1 -1
- package/dist/Image/ImageWithFallbacks.d.ts +21 -21
- package/dist/Image/ImageWithFallbacks.js.map +1 -1
- package/dist/Image/index.cjs.map +1 -1
- package/dist/Image/index.d.ts +2 -2
- package/dist/Image/index.js.map +1 -1
- package/dist/InputFields/Checkbox.cjs.map +1 -1
- package/dist/InputFields/Checkbox.d.ts +25 -25
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +42 -48
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.d.ts +23 -20
- package/dist/InputFields/DatepickerField.js +32 -45
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.cjs.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.d.ts +18 -18
- package/dist/InputFields/DatepickerFieldHeader.js +2 -2
- package/dist/InputFields/DatepickerFieldHeader.js.map +1 -1
- package/dist/InputFields/Label.cjs +5 -5
- package/dist/InputFields/Label.cjs.map +1 -1
- package/dist/InputFields/Label.d.ts +13 -13
- package/dist/InputFields/Label.js +11 -11
- package/dist/InputFields/Label.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +52 -63
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.d.ts +24 -19
- package/dist/InputFields/NumberField.js +53 -60
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/InputFields/PasswordField.cjs.map +1 -1
- package/dist/InputFields/PasswordField.d.ts +17 -17
- package/dist/InputFields/PasswordField.js.map +1 -1
- package/dist/InputFields/QuickSearch.cjs.map +1 -1
- package/dist/InputFields/QuickSearch.d.ts +18 -18
- package/dist/InputFields/QuickSearch.js.map +1 -1
- package/dist/InputFields/RadioButton.cjs +1 -1
- package/dist/InputFields/RadioButton.cjs.map +1 -1
- package/dist/InputFields/RadioButton.d.ts +18 -18
- package/dist/InputFields/RadioButton.js +1 -1
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/InputFields/ResponsiveComponentWrapper.cjs +4 -4
- package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -1
- package/dist/InputFields/ResponsiveComponentWrapper.d.ts +11 -11
- package/dist/InputFields/ResponsiveComponentWrapper.js +4 -4
- package/dist/InputFields/ResponsiveComponentWrapper.js.map +1 -1
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.d.ts +18 -18
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/TextField.cjs.map +1 -1
- package/dist/InputFields/TextField.d.ts +23 -23
- package/dist/InputFields/TextField.js.map +1 -1
- package/dist/InputFields/Textarea.cjs.map +1 -1
- package/dist/InputFields/Textarea.d.ts +7 -7
- package/dist/InputFields/Textarea.js +8 -8
- package/dist/InputFields/Textarea.js.map +1 -1
- package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
- package/dist/InputFields/components/SearchBarInput.d.ts +19 -19
- package/dist/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/InputFields/components/SearchField.cjs.map +1 -1
- package/dist/InputFields/components/SearchField.d.ts +15 -15
- package/dist/InputFields/components/SearchField.js.map +1 -1
- package/dist/InputFields/index.cjs +0 -26
- package/dist/InputFields/index.cjs.map +1 -1
- package/dist/InputFields/index.d.ts +11 -12
- package/dist/InputFields/index.js +0 -1
- package/dist/InputFields/index.js.map +1 -1
- package/dist/InputFields/styling.cjs.map +1 -1
- package/dist/InputFields/styling.d.ts +24 -24
- package/dist/InputFields/styling.js.map +1 -1
- package/dist/InputFields/types.d.ts +38 -38
- package/dist/Layouts/index.cjs.map +1 -1
- package/dist/Layouts/index.d.ts +10 -10
- package/dist/Layouts/index.js.map +1 -1
- package/dist/LinearProgress/LinearProgress.cjs.map +1 -1
- package/dist/LinearProgress/LinearProgress.d.ts +25 -25
- package/dist/LinearProgress/LinearProgress.js.map +1 -1
- package/dist/LinearProgress/index.cjs.map +1 -1
- package/dist/LinearProgress/index.d.ts +3 -3
- package/dist/LinearProgress/index.js.map +1 -1
- package/dist/List/ListRow.cjs.map +1 -1
- package/dist/List/ListRow.d.ts +20 -20
- package/dist/List/ListRow.js.map +1 -1
- package/dist/List/__tests__/ListRow.tests.d.ts +1 -1
- package/dist/List/index.cjs.map +1 -1
- package/dist/List/index.d.ts +2 -2
- package/dist/List/index.js.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.cjs.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.d.ts +8 -8
- package/dist/LoadingIndicator/LoadingIndicator.js.map +1 -1
- package/dist/LoadingIndicator/index.cjs.map +1 -1
- package/dist/LoadingIndicator/index.d.ts +1 -1
- package/dist/LoadingIndicator/index.js.map +1 -1
- package/dist/LoadingPage/GlobalLoadingPage.cjs.map +1 -1
- package/dist/LoadingPage/GlobalLoadingPage.d.ts +7 -7
- package/dist/LoadingPage/GlobalLoadingPage.js.map +1 -1
- package/dist/LoadingPage/index.cjs.map +1 -1
- package/dist/LoadingPage/index.d.ts +1 -1
- package/dist/LoadingPage/index.js.map +1 -1
- package/dist/MenuItem/MenuItem.cjs.map +1 -1
- package/dist/MenuItem/MenuItem.d.ts +25 -25
- package/dist/MenuItem/MenuItem.js.map +1 -1
- package/dist/MenuItem/index.d.ts +1 -1
- package/dist/MiniProductCard/MiniProductCard.cjs.map +1 -1
- package/dist/MiniProductCard/MiniProductCard.d.ts +7 -7
- package/dist/MiniProductCard/MiniProductCard.js.map +1 -1
- package/dist/MiniProductCard/index.cjs.map +1 -1
- package/dist/MiniProductCard/index.d.ts +1 -1
- package/dist/MiniProductCard/index.js.map +1 -1
- package/dist/Modals/Modal.cjs +2 -2
- package/dist/Modals/Modal.cjs.map +1 -1
- package/dist/Modals/Modal.d.ts +14 -14
- package/dist/Modals/Modal.js +2 -2
- package/dist/Modals/Modal.js.map +1 -1
- package/dist/Modals/ModalContainer.cjs.map +1 -1
- package/dist/Modals/ModalContainer.d.ts +32 -32
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Modals/ModalContent.cjs.map +1 -1
- package/dist/Modals/ModalContent.d.ts +17 -17
- package/dist/Modals/ModalContent.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.d.ts +28 -28
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalNote.cjs.map +1 -1
- package/dist/Modals/ModalNote.d.ts +9 -9
- package/dist/Modals/ModalNote.js.map +1 -1
- package/dist/Modals/ModalStyles.cjs +2 -2
- package/dist/Modals/ModalStyles.cjs.map +1 -1
- package/dist/Modals/ModalStyles.d.ts +53 -53
- package/dist/Modals/ModalStyles.js +2 -2
- package/dist/Modals/ModalStyles.js.map +1 -1
- package/dist/Modals/ModalTypes.d.ts +23 -23
- package/dist/Modals/index.cjs.map +1 -1
- package/dist/Modals/index.d.ts +7 -7
- package/dist/Modals/index.js.map +1 -1
- package/dist/NavItem/NavItem.cjs.map +1 -1
- package/dist/NavItem/NavItem.d.ts +2 -2
- package/dist/NavItem/NavItem.js.map +1 -1
- package/dist/NavItem/index.cjs.map +1 -1
- package/dist/NavItem/index.d.ts +1 -1
- package/dist/NavItem/index.js.map +1 -1
- package/dist/NotificationDot/NotificationDot.cjs.map +1 -1
- package/dist/NotificationDot/NotificationDot.d.ts +9 -9
- package/dist/NotificationDot/NotificationDot.js.map +1 -1
- package/dist/NotificationDot/index.d.ts +1 -1
- package/dist/Paginator/Paginator.cjs.map +1 -1
- package/dist/Paginator/Paginator.d.ts +8 -8
- package/dist/Paginator/Paginator.js.map +1 -1
- package/dist/Paginator/index.cjs.map +1 -1
- package/dist/Paginator/index.d.ts +2 -2
- package/dist/Paginator/index.js.map +1 -1
- package/dist/Popover/Popover.cjs.map +1 -1
- package/dist/Popover/Popover.d.ts +27 -27
- package/dist/Popover/Popover.js.map +1 -1
- package/dist/Popover/index.d.ts +1 -1
- package/dist/ProfileButton/ProfileButton.cjs.map +1 -1
- package/dist/ProfileButton/ProfileButton.d.ts +14 -14
- package/dist/ProfileButton/ProfileButton.js.map +1 -1
- package/dist/ProfileButton/index.d.ts +1 -1
- package/dist/QuizButton/QuizButton.cjs.map +1 -1
- package/dist/QuizButton/QuizButton.d.ts +15 -15
- package/dist/QuizButton/QuizButton.js.map +1 -1
- package/dist/QuizButton/index.d.ts +1 -1
- package/dist/SegmentControl/SegmentControl.cjs.map +1 -1
- package/dist/SegmentControl/SegmentControl.d.ts +19 -19
- package/dist/SegmentControl/SegmentControl.js.map +1 -1
- package/dist/SegmentControl/index.cjs.map +1 -1
- package/dist/SegmentControl/index.d.ts +3 -3
- package/dist/SegmentControl/index.js.map +1 -1
- package/dist/Services/functions.cjs.map +1 -1
- package/dist/Services/functions.d.ts +1 -1
- package/dist/Services/functions.js.map +1 -1
- package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
- package/dist/SkipToContent/SkipToContent.d.ts +4 -4
- package/dist/SkipToContent/SkipToContent.js.map +1 -1
- package/dist/SkipToContent/index.cjs.map +1 -1
- package/dist/SkipToContent/index.d.ts +1 -1
- package/dist/SkipToContent/index.js.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -1
- package/dist/Switcher/MobileSwitcherMenu.d.ts +10 -10
- package/dist/Switcher/MobileSwitcherMenu.js.map +1 -1
- package/dist/Switcher/SwitcherMenuItem.cjs.map +1 -1
- package/dist/Switcher/SwitcherMenuItem.d.ts +3 -3
- package/dist/Switcher/SwitcherMenuItem.js.map +1 -1
- package/dist/Switcher/__tests__/SwitcherMenuItem.d.ts +1 -1
- package/dist/Switcher/index.cjs.map +1 -1
- package/dist/Switcher/index.d.ts +3 -3
- package/dist/Switcher/index.js.map +1 -1
- package/dist/Table/Table.cjs +34 -34
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.d.ts +10 -10
- package/dist/Table/Table.js +42 -42
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.d.ts +9 -9
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableFooter.cjs +4 -1
- package/dist/Table/TableFooter.cjs.map +1 -1
- package/dist/Table/TableFooter.d.ts +16 -15
- package/dist/Table/TableFooter.js +4 -1
- package/dist/Table/TableFooter.js.map +1 -1
- package/dist/Table/TableHeaders.cjs.map +1 -1
- package/dist/Table/TableHeaders.d.ts +9 -9
- package/dist/Table/TableHeaders.js.map +1 -1
- package/dist/Table/TableStyles.cjs +4 -4
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.d.ts +23 -23
- package/dist/Table/TableStyles.js +8 -8
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/TableTypes.d.ts +57 -56
- package/dist/Table/index.cjs.map +1 -1
- package/dist/Table/index.d.ts +2 -2
- package/dist/Table/index.js.map +1 -1
- package/dist/Tabs/HorizontalTabs.cjs +3 -3
- package/dist/Tabs/HorizontalTabs.cjs.map +1 -1
- package/dist/Tabs/HorizontalTabs.d.ts +16 -16
- package/dist/Tabs/HorizontalTabs.js +9 -9
- package/dist/Tabs/HorizontalTabs.js.map +1 -1
- package/dist/Tabs/TabLink.cjs.map +1 -1
- package/dist/Tabs/TabLink.d.ts +16 -16
- package/dist/Tabs/TabLink.js.map +1 -1
- package/dist/Tabs/Tabs.cjs.map +1 -1
- package/dist/Tabs/Tabs.d.ts +8 -8
- package/dist/Tabs/Tabs.js.map +1 -1
- package/dist/Tabs/VerticalTabs.cjs.map +1 -1
- package/dist/Tabs/VerticalTabs.d.ts +20 -20
- package/dist/Tabs/VerticalTabs.js.map +1 -1
- package/dist/Tabs/__tests__/TabLink.tests.d.ts +1 -1
- package/dist/Tabs/index.cjs.map +1 -1
- package/dist/Tabs/index.d.ts +5 -5
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Tag/Tag.cjs.map +1 -1
- package/dist/Tag/Tag.d.ts +9 -9
- package/dist/Tag/Tag.js.map +1 -1
- package/dist/Tag/index.cjs.map +1 -1
- package/dist/Tag/index.d.ts +2 -2
- package/dist/Tag/index.js.map +1 -1
- package/dist/Tile/Tile.cjs.map +1 -1
- package/dist/Tile/Tile.d.ts +4 -4
- package/dist/Tile/Tile.js.map +1 -1
- package/dist/Tile/TileBody.cjs.map +1 -1
- package/dist/Tile/TileBody.d.ts +6 -6
- package/dist/Tile/TileBody.js.map +1 -1
- package/dist/Tile/TileCommonItems.cjs.map +1 -1
- package/dist/Tile/TileCommonItems.d.ts +9 -9
- package/dist/Tile/TileCommonItems.js.map +1 -1
- package/dist/Tile/TileFooter.cjs.map +1 -1
- package/dist/Tile/TileFooter.d.ts +7 -7
- package/dist/Tile/TileFooter.js.map +1 -1
- package/dist/Tile/TileHeader.cjs.map +1 -1
- package/dist/Tile/TileHeader.d.ts +7 -7
- package/dist/Tile/TileHeader.js.map +1 -1
- package/dist/Tile/TileTypes.d.ts +57 -57
- package/dist/Tile/index.cjs.map +1 -1
- package/dist/Tile/index.d.ts +3 -3
- package/dist/Tile/index.js.map +1 -1
- package/dist/Toasters/Toast.cjs.map +1 -1
- package/dist/Toasters/Toast.d.ts +24 -24
- package/dist/Toasters/Toast.js.map +1 -1
- package/dist/Toasters/ToastContext.cjs.map +1 -1
- package/dist/Toasters/ToastContext.d.ts +18 -18
- package/dist/Toasters/ToastContext.js.map +1 -1
- package/dist/Toasters/index.cjs.map +1 -1
- package/dist/Toasters/index.d.ts +3 -3
- package/dist/Toasters/index.js.map +1 -1
- package/dist/Toggles/ToggleButton.cjs.map +1 -1
- package/dist/Toggles/ToggleButton.d.ts +14 -14
- package/dist/Toggles/ToggleButton.js.map +1 -1
- package/dist/Toggles/ToggleSwitch.cjs +19 -26
- package/dist/Toggles/ToggleSwitch.cjs.map +1 -1
- package/dist/Toggles/ToggleSwitch.d.ts +6 -10
- package/dist/Toggles/ToggleSwitch.js +20 -29
- package/dist/Toggles/ToggleSwitch.js.map +1 -1
- package/dist/Toggles/TogglerStyles.cjs.map +1 -1
- package/dist/Toggles/TogglerStyles.d.ts +5 -5
- package/dist/Toggles/TogglerStyles.js +4 -4
- package/dist/Toggles/TogglerStyles.js.map +1 -1
- package/dist/Toggles/TogglerTypes.d.ts +13 -13
- package/dist/Toggles/index.cjs.map +1 -1
- package/dist/Toggles/index.d.ts +3 -3
- package/dist/Toggles/index.js.map +1 -1
- package/dist/Tooltips/TooltipStyles.cjs.map +1 -1
- package/dist/Tooltips/TooltipStyles.d.ts +12 -12
- package/dist/Tooltips/TooltipStyles.js.map +1 -1
- package/dist/Tooltips/TooltipTypes.cjs +2 -2
- package/dist/Tooltips/TooltipTypes.cjs.map +1 -1
- package/dist/Tooltips/TooltipTypes.d.ts +16 -16
- package/dist/Tooltips/TooltipTypes.js +2 -2
- package/dist/Tooltips/TooltipTypes.js.map +1 -1
- package/dist/Tooltips/TooltipWrapper.cjs.map +1 -1
- package/dist/Tooltips/TooltipWrapper.d.ts +3 -3
- package/dist/Tooltips/TooltipWrapper.js.map +1 -1
- package/dist/Tooltips/index.cjs.map +1 -1
- package/dist/Tooltips/index.d.ts +3 -3
- package/dist/Tooltips/index.js.map +1 -1
- package/dist/assets/index.cjs.map +1 -1
- package/dist/assets/index.d.ts +12 -12
- package/dist/assets/index.js.map +1 -1
- package/dist/common/ActionWithin.cjs.map +1 -1
- package/dist/common/ActionWithin.d.ts +2 -2
- package/dist/common/ActionWithin.js.map +1 -1
- package/dist/common/ClickOutside.cjs.map +1 -1
- package/dist/common/ClickOutside.d.ts +1 -1
- package/dist/common/ClickOutside.js.map +1 -1
- package/dist/common/EventHandlers.cjs.map +1 -1
- package/dist/common/EventHandlers.d.ts +1 -1
- package/dist/common/EventHandlers.js.map +1 -1
- package/dist/common/FocusOutside.cjs.map +1 -1
- package/dist/common/FocusOutside.d.ts +1 -1
- package/dist/common/FocusOutside.js.map +1 -1
- package/dist/common/FocusVisible.cjs.map +1 -1
- package/dist/common/FocusVisible.d.ts +2 -2
- package/dist/common/FocusVisible.js.map +1 -1
- package/dist/common/InputStyling.cjs.map +1 -1
- package/dist/common/InputStyling.d.ts +1 -1
- package/dist/common/InputStyling.js.map +1 -1
- package/dist/common/StackState.cjs.map +1 -1
- package/dist/common/StackState.d.ts +7 -7
- package/dist/common/StackState.js.map +1 -1
- package/dist/common/index.cjs.map +1 -1
- package/dist/common/index.d.ts +6 -6
- package/dist/common/index.js.map +1 -1
- package/dist/custom.d.ts +4 -4
- package/dist/declarations.d.ts +1 -1
- package/dist/hooks/useClickOutside.cjs +2 -2
- package/dist/hooks/useClickOutside.cjs.map +1 -1
- package/dist/hooks/useClickOutside.d.ts +5 -5
- package/dist/hooks/useClickOutside.js +2 -2
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/icons/contenticons/ContentIcons.cjs.map +1 -1
- package/dist/icons/contenticons/ContentIcons.d.ts +170 -170
- package/dist/icons/contenticons/ContentIcons.js.map +1 -1
- package/dist/icons/index.cjs +4 -4
- package/dist/icons/index.cjs.map +1 -1
- package/dist/icons/index.d.ts +25 -25
- package/dist/icons/index.js +4 -4
- package/dist/icons/index.js.map +1 -1
- package/dist/icons/systemicons/SystemIcons.cjs.map +1 -1
- package/dist/icons/systemicons/SystemIcons.d.ts +183 -183
- package/dist/icons/systemicons/SystemIcons.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +43 -43
- package/dist/index.js.map +1 -1
- package/dist/styles/breakpoints.cjs.map +1 -1
- package/dist/styles/breakpoints.d.ts +8 -8
- package/dist/styles/breakpoints.js.map +1 -1
- package/dist/styles/colors.cjs.map +1 -1
- package/dist/styles/colors.d.ts +83 -83
- package/dist/styles/colors.js.map +1 -1
- package/dist/styles/focus-styles.cjs.map +1 -1
- package/dist/styles/focus-styles.d.ts +2 -2
- package/dist/styles/focus-styles.js.map +1 -1
- package/dist/styles/global.cjs.map +1 -1
- package/dist/styles/global.d.ts +2 -2
- package/dist/styles/global.js.map +1 -1
- package/dist/styles/index.cjs.map +1 -1
- package/dist/styles/index.d.ts +23 -23
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/shadowstyles.cjs.map +1 -1
- package/dist/styles/shadowstyles.d.ts +7 -7
- package/dist/styles/shadowstyles.js.map +1 -1
- package/dist/styles/typography.cjs.map +1 -1
- package/dist/styles/typography.d.ts +89 -89
- package/dist/styles/typography.js.map +1 -1
- package/dist/styles/z-indexes.cjs.map +1 -1
- package/dist/styles/z-indexes.d.ts +15 -15
- package/dist/styles/z-indexes.js.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +70 -70
- package/dist/types.js.map +1 -1
- package/package.json +107 -107
package/dist/Table/Table.cjs
CHANGED
|
@@ -61,7 +61,8 @@ var Table = function Table(props) {
|
|
|
61
61
|
accordion = props.accordion,
|
|
62
62
|
_props$collapsed = props.collapsed,
|
|
63
63
|
collapsed = _props$collapsed === void 0 ? true : _props$collapsed,
|
|
64
|
-
collapsedRows = props.collapsedRows
|
|
64
|
+
collapsedRows = props.collapsedRows,
|
|
65
|
+
rowsPerPageLabel = props.rowsPerPageLabel; // States used within the component
|
|
65
66
|
|
|
66
67
|
var _React$useState = React.useState(10),
|
|
67
68
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
@@ -126,8 +127,8 @@ var Table = function Table(props) {
|
|
|
126
127
|
React.useEffect(function () {
|
|
127
128
|
setSelected(props.selectedRows || (multiSelect ? [] : undefined));
|
|
128
129
|
}, [props.selectedRows, multiSelect]);
|
|
129
|
-
/**
|
|
130
|
-
* update select all checkbox state
|
|
130
|
+
/**
|
|
131
|
+
* update select all checkbox state
|
|
131
132
|
*/
|
|
132
133
|
|
|
133
134
|
React.useEffect(function () {
|
|
@@ -141,9 +142,9 @@ var Table = function Table(props) {
|
|
|
141
142
|
setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');
|
|
142
143
|
}
|
|
143
144
|
}, [currentPageRows, multiSelect, selected, keyExpr]);
|
|
144
|
-
/**
|
|
145
|
-
* Takes care of remote pagination.
|
|
146
|
-
* Works only in case remote pagination is set to true.
|
|
145
|
+
/**
|
|
146
|
+
* Takes care of remote pagination.
|
|
147
|
+
* Works only in case remote pagination is set to true.
|
|
147
148
|
*/
|
|
148
149
|
|
|
149
150
|
React.useEffect(function () {
|
|
@@ -157,8 +158,8 @@ var Table = function Table(props) {
|
|
|
157
158
|
setRowsPerPage(pagination === null || pagination === void 0 ? void 0 : pagination.rowsPerPage);
|
|
158
159
|
}
|
|
159
160
|
}, [remoteOperations, pagination, rows]);
|
|
160
|
-
/**
|
|
161
|
-
* Sets number of rows to display when accordion.
|
|
161
|
+
/**
|
|
162
|
+
* Sets number of rows to display when accordion.
|
|
162
163
|
*/
|
|
163
164
|
|
|
164
165
|
React.useEffect(function () {
|
|
@@ -169,9 +170,9 @@ var Table = function Table(props) {
|
|
|
169
170
|
if (!accordion) return;
|
|
170
171
|
setIsCollapsed(!!collapsed);
|
|
171
172
|
}, [accordion, collapsed]);
|
|
172
|
-
/**
|
|
173
|
-
* Filters out a rows by specific column filters and sorts them if any sorting is set.
|
|
174
|
-
* @returns Filtered and sorted rows.
|
|
173
|
+
/**
|
|
174
|
+
* Filters out a rows by specific column filters and sorts them if any sorting is set.
|
|
175
|
+
* @returns Filtered and sorted rows.
|
|
175
176
|
*/
|
|
176
177
|
|
|
177
178
|
var filterAndSortRows = function filterAndSortRows() {
|
|
@@ -230,9 +231,9 @@ var Table = function Table(props) {
|
|
|
230
231
|
|
|
231
232
|
return tmpFilteredRows;
|
|
232
233
|
};
|
|
233
|
-
/**
|
|
234
|
-
* Takes care of local pagination.
|
|
235
|
-
* Works only in case remote pagination is not defined or is set to false.
|
|
234
|
+
/**
|
|
235
|
+
* Takes care of local pagination.
|
|
236
|
+
* Works only in case remote pagination is not defined or is set to false.
|
|
236
237
|
*/
|
|
237
238
|
|
|
238
239
|
|
|
@@ -252,10 +253,10 @@ var Table = function Table(props) {
|
|
|
252
253
|
setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));
|
|
253
254
|
}
|
|
254
255
|
}, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);
|
|
255
|
-
/**
|
|
256
|
-
* Applies a specific sorting to a column.
|
|
257
|
-
* If no sorting exists, then applies ascending initially
|
|
258
|
-
* @param column - Column to which sorting should be applied.
|
|
256
|
+
/**
|
|
257
|
+
* Applies a specific sorting to a column.
|
|
258
|
+
* If no sorting exists, then applies ascending initially
|
|
259
|
+
* @param column - Column to which sorting should be applied.
|
|
259
260
|
*/
|
|
260
261
|
|
|
261
262
|
var sortTableColumn = function sortTableColumn(column) {
|
|
@@ -305,8 +306,8 @@ var Table = function Table(props) {
|
|
|
305
306
|
return tmpColumn;
|
|
306
307
|
});
|
|
307
308
|
};
|
|
308
|
-
/**
|
|
309
|
-
* Navigates user back to the previous page and updates the current table page.
|
|
309
|
+
/**
|
|
310
|
+
* Navigates user back to the previous page and updates the current table page.
|
|
310
311
|
*/
|
|
311
312
|
|
|
312
313
|
|
|
@@ -321,8 +322,8 @@ var Table = function Table(props) {
|
|
|
321
322
|
setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);
|
|
322
323
|
}
|
|
323
324
|
};
|
|
324
|
-
/**
|
|
325
|
-
* Navigates user to the next page and updates the current table page.
|
|
325
|
+
/**
|
|
326
|
+
* Navigates user to the next page and updates the current table page.
|
|
326
327
|
*/
|
|
327
328
|
|
|
328
329
|
|
|
@@ -337,9 +338,9 @@ var Table = function Table(props) {
|
|
|
337
338
|
setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);
|
|
338
339
|
}
|
|
339
340
|
};
|
|
340
|
-
/**
|
|
341
|
-
* Updates the rows per page value and refreshes the table content accordingly.
|
|
342
|
-
* @param value - Newly selected rows per page value.
|
|
341
|
+
/**
|
|
342
|
+
* Updates the rows per page value and refreshes the table content accordingly.
|
|
343
|
+
* @param value - Newly selected rows per page value.
|
|
343
344
|
*/
|
|
344
345
|
|
|
345
346
|
|
|
@@ -358,9 +359,9 @@ var Table = function Table(props) {
|
|
|
358
359
|
|
|
359
360
|
setRowsPerPage(value);
|
|
360
361
|
};
|
|
361
|
-
/**
|
|
362
|
-
* Function which is called when a mouse click happens on a row to pass data to the parent component.
|
|
363
|
-
* @param row - Row in which the link is located.
|
|
362
|
+
/**
|
|
363
|
+
* Function which is called when a mouse click happens on a row to pass data to the parent component.
|
|
364
|
+
* @param row - Row in which the link is located.
|
|
364
365
|
*/
|
|
365
366
|
|
|
366
367
|
|
|
@@ -388,8 +389,8 @@ var Table = function Table(props) {
|
|
|
388
389
|
props.onSelectionChange && props.onSelectionChange(currentSelection);
|
|
389
390
|
}
|
|
390
391
|
};
|
|
391
|
-
/**
|
|
392
|
-
* Function which is called when user clicks checkbox to select or deselect all rows.
|
|
392
|
+
/**
|
|
393
|
+
* Function which is called when user clicks checkbox to select or deselect all rows.
|
|
393
394
|
*/
|
|
394
395
|
|
|
395
396
|
|
|
@@ -419,8 +420,8 @@ var Table = function Table(props) {
|
|
|
419
420
|
break;
|
|
420
421
|
}
|
|
421
422
|
};
|
|
422
|
-
/**
|
|
423
|
-
* Return Table component.
|
|
423
|
+
/**
|
|
424
|
+
* Return Table component.
|
|
424
425
|
*/
|
|
425
426
|
|
|
426
427
|
|
|
@@ -451,8 +452,7 @@ var Table = function Table(props) {
|
|
|
451
452
|
}))]
|
|
452
453
|
}), showLoadingIndicator && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableSpinner, {
|
|
453
454
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
|
|
454
|
-
size: _types.Size.Medium
|
|
455
|
-
color: "#ffffff"
|
|
455
|
+
size: _types.Size.Medium
|
|
456
456
|
})
|
|
457
457
|
})]
|
|
458
458
|
});
|
package/dist/Table/Table.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","React","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","rowsFrom","rowsTo","slice","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","layout","Size","Medium"],"mappings":"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","sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n accordion,\r\n collapsed = true,\r\n collapsedRows\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\r\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [ accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (columns.some((column) => column.sortingDirection)) {\r\n // Let's find the sorting column\r\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\r\n\r\n // Update sorted column data\r\n setSortedDirection(sortingColumn.sortingDirection!);\r\n setSortedColumn(sortingColumn.key!);\r\n\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\r\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\r\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\r\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n \r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n \r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n \r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\r\n \r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n // Let's remove any active sorting\r\n columns = columns.map((tmpColumn: TableColumn) => {\r\n // Let's apply new sorting\r\n // Let's check if it is the column for which we have to apply sorting\r\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\r\n // Let's check if sorting is not defined\r\n // If so, let's toggle the sorting direction\r\n if (tmpColumn.sortingDirection !== undefined) {\r\n if (tmpColumn.sortingDirection === 'asc') {\r\n tmpColumn.sortingDirection = 'desc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('desc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'desc');\r\n }\r\n } else {\r\n tmpColumn.sortingDirection = 'asc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('asc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'asc');\r\n }\r\n }\r\n } else {\r\n // Let's apply the initial sorting\r\n tmpColumn.sortingDirection = 'asc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('asc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'asc');\r\n }\r\n }\r\n } else if (tmpColumn.sortingDirection !== undefined) {\r\n // Let's remove sorting\r\n tmpColumn.sortingDirection = undefined;\r\n }\r\n\r\n return tmpColumn;\r\n });\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper>\r\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\r\n <TableHeader {...props}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n selectAllState={selectAllState}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n </StyledTable>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner>\r\n <LoadingIndicator size={Size.Medium} color=\"#ffffff\"/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"file":"Table.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","rowsPerPageLabel","React","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","rowsFrom","rowsTo","slice","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","layout","Size","Medium"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [ accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n \n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n \n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n \n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\n \n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\n <TableHeader {...props}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n selectAllState={selectAllState}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n </StyledTable>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.cjs"}
|
package/dist/Table/Table.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Import React libraries.
|
|
3
|
-
*/
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
/**
|
|
6
|
-
* Import custom types.
|
|
7
|
-
*/
|
|
8
|
-
import { TableProps } from './TableTypes';
|
|
9
|
-
declare const Table: React.FunctionComponent<TableProps>;
|
|
10
|
-
export default Table;
|
|
1
|
+
/**
|
|
2
|
+
* Import React libraries.
|
|
3
|
+
*/
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Import custom types.
|
|
7
|
+
*/
|
|
8
|
+
import { TableProps } from './TableTypes';
|
|
9
|
+
declare const Table: React.FunctionComponent<TableProps>;
|
|
10
|
+
export default Table;
|
package/dist/Table/Table.js
CHANGED
|
@@ -12,22 +12,22 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
12
12
|
|
|
13
13
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
* Import React libraries.
|
|
15
|
+
/**
|
|
16
|
+
* Import React libraries.
|
|
17
17
|
*/
|
|
18
18
|
import * as React from 'react';
|
|
19
|
-
/**
|
|
20
|
-
* Import custom components.
|
|
19
|
+
/**
|
|
20
|
+
* Import custom components.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
import { Size } from '../types';
|
|
24
|
-
/**
|
|
25
|
-
* Import custom styles.
|
|
24
|
+
/**
|
|
25
|
+
* Import custom styles.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
import { StyledTable, StyledTableSpinner, TableWrapper } from './TableStyles';
|
|
29
|
-
/**
|
|
30
|
-
* Import custom types.
|
|
29
|
+
/**
|
|
30
|
+
* Import custom types.
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
33
|
import { LoadingIndicator } from '../LoadingIndicator';
|
|
@@ -53,7 +53,8 @@ var Table = function Table(props) {
|
|
|
53
53
|
accordion = props.accordion,
|
|
54
54
|
_props$collapsed = props.collapsed,
|
|
55
55
|
collapsed = _props$collapsed === void 0 ? true : _props$collapsed,
|
|
56
|
-
collapsedRows = props.collapsedRows
|
|
56
|
+
collapsedRows = props.collapsedRows,
|
|
57
|
+
rowsPerPageLabel = props.rowsPerPageLabel; // States used within the component
|
|
57
58
|
|
|
58
59
|
var _React$useState = React.useState(10),
|
|
59
60
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -118,8 +119,8 @@ var Table = function Table(props) {
|
|
|
118
119
|
React.useEffect(function () {
|
|
119
120
|
setSelected(props.selectedRows || (multiSelect ? [] : undefined));
|
|
120
121
|
}, [props.selectedRows, multiSelect]);
|
|
121
|
-
/**
|
|
122
|
-
* update select all checkbox state
|
|
122
|
+
/**
|
|
123
|
+
* update select all checkbox state
|
|
123
124
|
*/
|
|
124
125
|
|
|
125
126
|
React.useEffect(function () {
|
|
@@ -133,9 +134,9 @@ var Table = function Table(props) {
|
|
|
133
134
|
setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');
|
|
134
135
|
}
|
|
135
136
|
}, [currentPageRows, multiSelect, selected, keyExpr]);
|
|
136
|
-
/**
|
|
137
|
-
* Takes care of remote pagination.
|
|
138
|
-
* Works only in case remote pagination is set to true.
|
|
137
|
+
/**
|
|
138
|
+
* Takes care of remote pagination.
|
|
139
|
+
* Works only in case remote pagination is set to true.
|
|
139
140
|
*/
|
|
140
141
|
|
|
141
142
|
React.useEffect(function () {
|
|
@@ -149,8 +150,8 @@ var Table = function Table(props) {
|
|
|
149
150
|
setRowsPerPage(pagination === null || pagination === void 0 ? void 0 : pagination.rowsPerPage);
|
|
150
151
|
}
|
|
151
152
|
}, [remoteOperations, pagination, rows]);
|
|
152
|
-
/**
|
|
153
|
-
* Sets number of rows to display when accordion.
|
|
153
|
+
/**
|
|
154
|
+
* Sets number of rows to display when accordion.
|
|
154
155
|
*/
|
|
155
156
|
|
|
156
157
|
React.useEffect(function () {
|
|
@@ -161,9 +162,9 @@ var Table = function Table(props) {
|
|
|
161
162
|
if (!accordion) return;
|
|
162
163
|
setIsCollapsed(!!collapsed);
|
|
163
164
|
}, [accordion, collapsed]);
|
|
164
|
-
/**
|
|
165
|
-
* Filters out a rows by specific column filters and sorts them if any sorting is set.
|
|
166
|
-
* @returns Filtered and sorted rows.
|
|
165
|
+
/**
|
|
166
|
+
* Filters out a rows by specific column filters and sorts them if any sorting is set.
|
|
167
|
+
* @returns Filtered and sorted rows.
|
|
167
168
|
*/
|
|
168
169
|
|
|
169
170
|
var filterAndSortRows = function filterAndSortRows() {
|
|
@@ -222,9 +223,9 @@ var Table = function Table(props) {
|
|
|
222
223
|
|
|
223
224
|
return tmpFilteredRows;
|
|
224
225
|
};
|
|
225
|
-
/**
|
|
226
|
-
* Takes care of local pagination.
|
|
227
|
-
* Works only in case remote pagination is not defined or is set to false.
|
|
226
|
+
/**
|
|
227
|
+
* Takes care of local pagination.
|
|
228
|
+
* Works only in case remote pagination is not defined or is set to false.
|
|
228
229
|
*/
|
|
229
230
|
|
|
230
231
|
|
|
@@ -244,10 +245,10 @@ var Table = function Table(props) {
|
|
|
244
245
|
setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));
|
|
245
246
|
}
|
|
246
247
|
}, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);
|
|
247
|
-
/**
|
|
248
|
-
* Applies a specific sorting to a column.
|
|
249
|
-
* If no sorting exists, then applies ascending initially
|
|
250
|
-
* @param column - Column to which sorting should be applied.
|
|
248
|
+
/**
|
|
249
|
+
* Applies a specific sorting to a column.
|
|
250
|
+
* If no sorting exists, then applies ascending initially
|
|
251
|
+
* @param column - Column to which sorting should be applied.
|
|
251
252
|
*/
|
|
252
253
|
|
|
253
254
|
var sortTableColumn = function sortTableColumn(column) {
|
|
@@ -297,8 +298,8 @@ var Table = function Table(props) {
|
|
|
297
298
|
return tmpColumn;
|
|
298
299
|
});
|
|
299
300
|
};
|
|
300
|
-
/**
|
|
301
|
-
* Navigates user back to the previous page and updates the current table page.
|
|
301
|
+
/**
|
|
302
|
+
* Navigates user back to the previous page and updates the current table page.
|
|
302
303
|
*/
|
|
303
304
|
|
|
304
305
|
|
|
@@ -313,8 +314,8 @@ var Table = function Table(props) {
|
|
|
313
314
|
setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);
|
|
314
315
|
}
|
|
315
316
|
};
|
|
316
|
-
/**
|
|
317
|
-
* Navigates user to the next page and updates the current table page.
|
|
317
|
+
/**
|
|
318
|
+
* Navigates user to the next page and updates the current table page.
|
|
318
319
|
*/
|
|
319
320
|
|
|
320
321
|
|
|
@@ -329,9 +330,9 @@ var Table = function Table(props) {
|
|
|
329
330
|
setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);
|
|
330
331
|
}
|
|
331
332
|
};
|
|
332
|
-
/**
|
|
333
|
-
* Updates the rows per page value and refreshes the table content accordingly.
|
|
334
|
-
* @param value - Newly selected rows per page value.
|
|
333
|
+
/**
|
|
334
|
+
* Updates the rows per page value and refreshes the table content accordingly.
|
|
335
|
+
* @param value - Newly selected rows per page value.
|
|
335
336
|
*/
|
|
336
337
|
|
|
337
338
|
|
|
@@ -350,9 +351,9 @@ var Table = function Table(props) {
|
|
|
350
351
|
|
|
351
352
|
setRowsPerPage(value);
|
|
352
353
|
};
|
|
353
|
-
/**
|
|
354
|
-
* Function which is called when a mouse click happens on a row to pass data to the parent component.
|
|
355
|
-
* @param row - Row in which the link is located.
|
|
354
|
+
/**
|
|
355
|
+
* Function which is called when a mouse click happens on a row to pass data to the parent component.
|
|
356
|
+
* @param row - Row in which the link is located.
|
|
356
357
|
*/
|
|
357
358
|
|
|
358
359
|
|
|
@@ -380,8 +381,8 @@ var Table = function Table(props) {
|
|
|
380
381
|
props.onSelectionChange && props.onSelectionChange(currentSelection);
|
|
381
382
|
}
|
|
382
383
|
};
|
|
383
|
-
/**
|
|
384
|
-
* Function which is called when user clicks checkbox to select or deselect all rows.
|
|
384
|
+
/**
|
|
385
|
+
* Function which is called when user clicks checkbox to select or deselect all rows.
|
|
385
386
|
*/
|
|
386
387
|
|
|
387
388
|
|
|
@@ -411,8 +412,8 @@ var Table = function Table(props) {
|
|
|
411
412
|
break;
|
|
412
413
|
}
|
|
413
414
|
};
|
|
414
|
-
/**
|
|
415
|
-
* Return Table component.
|
|
415
|
+
/**
|
|
416
|
+
* Return Table component.
|
|
416
417
|
*/
|
|
417
418
|
|
|
418
419
|
|
|
@@ -443,8 +444,7 @@ var Table = function Table(props) {
|
|
|
443
444
|
}))]
|
|
444
445
|
}), showLoadingIndicator && /*#__PURE__*/_jsx(StyledTableSpinner, {
|
|
445
446
|
children: /*#__PURE__*/_jsx(LoadingIndicator, {
|
|
446
|
-
size: Size.Medium
|
|
447
|
-
color: "#ffffff"
|
|
447
|
+
size: Size.Medium
|
|
448
448
|
})
|
|
449
449
|
})]
|
|
450
450
|
});
|
package/dist/Table/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["React","Size","StyledTable","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","rowsFrom","rowsTo","slice","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","layout","Medium"],"mappings":"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","sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n accordion,\r\n collapsed = true,\r\n collapsedRows\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\r\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [ accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (columns.some((column) => column.sortingDirection)) {\r\n // Let's find the sorting column\r\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\r\n\r\n // Update sorted column data\r\n setSortedDirection(sortingColumn.sortingDirection!);\r\n setSortedColumn(sortingColumn.key!);\r\n\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\r\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\r\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\r\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n \r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n \r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n \r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\r\n \r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n // Let's remove any active sorting\r\n columns = columns.map((tmpColumn: TableColumn) => {\r\n // Let's apply new sorting\r\n // Let's check if it is the column for which we have to apply sorting\r\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\r\n // Let's check if sorting is not defined\r\n // If so, let's toggle the sorting direction\r\n if (tmpColumn.sortingDirection !== undefined) {\r\n if (tmpColumn.sortingDirection === 'asc') {\r\n tmpColumn.sortingDirection = 'desc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('desc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'desc');\r\n }\r\n } else {\r\n tmpColumn.sortingDirection = 'asc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('asc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'asc');\r\n }\r\n }\r\n } else {\r\n // Let's apply the initial sorting\r\n tmpColumn.sortingDirection = 'asc';\r\n\r\n // Update sorted column and direction\r\n setSortedColumn(column.key);\r\n setSortedDirection('asc');\r\n\r\n // Let's trigger remote sorting trigger function\r\n if (remoteOperations && onTriggerSortingChange) {\r\n onTriggerSortingChange(column.key, 'asc');\r\n }\r\n }\r\n } else if (tmpColumn.sortingDirection !== undefined) {\r\n // Let's remove sorting\r\n tmpColumn.sortingDirection = undefined;\r\n }\r\n\r\n return tmpColumn;\r\n });\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper>\r\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\r\n <TableHeader {...props}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n selectAllState={selectAllState}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n </StyledTable>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner>\r\n <LoadingIndicator size={Size.Medium} color=\"#ffffff\"/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"file":"Table.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Table/Table.tsx"],"names":["React","Size","StyledTable","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","accordion","collapsed","collapsedRows","rowsPerPageLabel","useState","rowsPerPage","setRowsPerPage","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sortedColumn","setSortedColumn","sortedDirection","setSortedDirection","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","undefined","selected","setSelected","useEffect","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","column","filterValue","key","toLowerCase","indexOf","some","sortingDirection","sortingColumn","find","sort","a","b","rowsFrom","rowsTo","slice","sortTableColumn","tmpColumn","sortable","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","layout","Medium"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {Size} from '../types'\n\n/**\n * Import custom styles.\n */\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport {TableProps, TableColumn, TableSortingDirection} from './TableTypes';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport TableHeader from './TableHeaders';\nimport TableFooter from './TableFooter';\nimport TableBody from './TableBody';\n\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\n let {\n onPreviousPageClick,\n onNextPageClick,\n onRowsPerPageChange,\n onTriggerSortingChange,\n columns,\n rows,\n remoteOperations,\n pagination,\n showLoadingIndicator,\n selectable,\n multiSelect,\n keyExpr,\n accordion,\n collapsed = true,\n collapsedRows,\n rowsPerPageLabel\n } = props;\n\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\n\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\n\n React.useEffect(() => {\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\n }, [props.selectedRows, multiSelect])\n\n /**\n * update select all checkbox state\n */\n React.useEffect(() => {\n if (multiSelect) {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n const count = selected.filter((item: any) => currentList.includes(item)).length;\n\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\n }\n }, [currentPageRows, multiSelect, selected, keyExpr])\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remoteOperations) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remoteOperations, pagination, rows]);\n\n /**\n * Sets number of rows to display when accordion.\n */\n React.useEffect(() => {\n if (!accordion) return;\n\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length );\n }, [rows, accordion, collapsedRows, isCollapsed])\n\n React.useEffect(() => {\n if (!accordion) return;\n\n setIsCollapsed(!!collapsed);\n }, [ accordion, collapsed])\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remoteOperations) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n \n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n \n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n \n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);\n \n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remoteOperations && onTriggerSortingChange) {\n onTriggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onPreviousPageClick) {\n onPreviousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remoteOperations) {\n // Let's inform parent component about page change\n if (onNextPageClick) {\n onNextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: number) => {\n // Let's check if we are using remote pagination\n if (remoteOperations) {\n // Inform parent component about rows per page change\n if (onRowsPerPageChange) {\n onRowsPerPageChange(value);\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(value);\n };\n\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n if (selectedText?.length === 0 && selectable) {\n const value = keyExpr ? row[keyExpr] : row;\n let currentSelection = value;\n if (!!multiSelect) {\n const existing = selected?.indexOf(value);\n if (existing > -1) {\n currentSelection = [...selected];\n currentSelection.splice(existing, 1);\n } else {\n currentSelection = [...selected, currentSelection];\n }\n }\n\n setSelected(currentSelection)\n props.onSelectionChange && props.onSelectionChange(currentSelection);\n }\n };\n\n /**\n * Function which is called when user clicks checkbox to select or deselect all rows.\n */\n const onSelectAllClick = () => {\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\n\n switch (selectAllState) {\n case 'all':\n setSelected([...selected].filter(item => !currentList.includes(item)));\n setSelectAllState('none');\n break;\n case 'none':\n setSelected([...selected, ...currentList]);\n setSelectAllState('all');\n break;\n case 'some':\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\n setSelectAllState('all');\n break;\n }\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\n <TableHeader {...props}\n sortByColumn={sortTableColumn}\n onSelectAllClick={onSelectAllClick}\n selectAllState={selectAllState}/>\n <TableBody {...props}\n currentPageRows={currentPageRows}\n selected={selected}\n onRowClick={onRowClick}/>\n <TableFooter {...props}\n onRowsPerPageChange={changeRowsPerPage}\n rowsPerPage={rowsPerPage}\n setIsCollapsed={setIsCollapsed}\n isCollapsed={isCollapsed}\n from={from}\n to={to}\n total={total}\n nextPage={nextPage}\n prevPage={previousPage}/>\n </StyledTable>\n {showLoadingIndicator && (\n <StyledTableSpinner>\n <LoadingIndicator size={Size.Medium}/>\n </StyledTableSpinner>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.js"}
|