@spothero/ui 15.10.9 → 16.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +2 -1
- package/dex.config.js +1 -1
- package/jest.config.json +1 -2
- package/package.json +8 -24
- package/styles/{v2/components → components}/Accordion/Accordion.stories.js +2 -2
- package/styles/{v2/components → components}/Accordion/styles/button.js +1 -1
- package/styles/{v2/components → components}/Alert/Alert.jsx +2 -2
- package/styles/{v2/components → components}/AutoSuggestSelect/AutoSuggestSelect.jsx +7 -0
- package/styles/{v2/components → components}/Button/stories/button.js +1 -1
- package/styles/{v2/components → components}/Button/stories/overview.js +1 -1
- package/styles/{v2/components → components}/FormControl/FormControl.jsx +2 -0
- package/styles/{v2/components → components}/Grid/Grid.stories.js +1 -1
- package/styles/{v2/components → components}/Heading/Heading.styles.js +1 -1
- package/styles/{v2/components → components}/Image/Image.jsx +23 -2
- package/styles/{v2/components → components}/Link/Link.stories.js +2 -2
- package/styles/{v2/components → components}/List/List.stories.js +2 -2
- package/styles/{v2/components → components}/Modal/Modal.jsx +0 -1
- package/styles/{v2/components → components}/Modal/Modal.stories.js +4 -4
- package/styles/{v2/components → components}/Popover/Popover.stories.js +1 -1
- package/styles/{v2/components → components}/Skeleton/index.js +1 -1
- package/styles/{v2/components → components}/Spinner/Spinner.stories.js +1 -1
- package/styles/{v2/components → components}/Table/Table.styles.js +1 -1
- package/styles/{v2/components → components}/Tabs/Tabs.jsx +2 -3
- package/styles/{v2/components → components}/Tabs/combineSizeWithVariant.js +5 -3
- package/styles/{v2/components → components}/Text/Text.styles.js +1 -1
- package/styles/{v2/components → components}/Text/combineAsWithVariant.js +1 -1
- package/styles/{v2/components → components}/ThemeProvider/ThemeProvider.jsx +2 -2
- package/styles/{v2/components → components}/ThemeProvider/ThemeProvider.stories.js +2 -2
- package/v2/index.js +1 -1
- package/v2/index.js.map +1 -1
- package/backlog/Alert/Alert.js +0 -37
- package/backlog/AutoSuggestInput/AutoSuggestInput.js +0 -474
- package/backlog/AutoSuggestInput/AutoSuggestItem.js +0 -99
- package/backlog/AutoSuggestInput/AutoSuggestList.js +0 -126
- package/backlog/Badge/Badge.js +0 -28
- package/backlog/Chart/Chart.js +0 -211
- package/backlog/Checkbox/Checkbox.js +0 -167
- package/backlog/DateTime/DatePicker.js +0 -279
- package/backlog/DateTime/DatePickerCalendar.js +0 -199
- package/backlog/DateTime/DatePickerCalendarNavigation.js +0 -102
- package/backlog/DateTime/DatePickerCalendarWithRange.js +0 -241
- package/backlog/DateTime/DateTimePicker.js +0 -216
- package/backlog/DateTime/DateTimeRangePicker.js +0 -530
- package/backlog/DateTime/TimePicker.js +0 -180
- package/backlog/DateTime/date-time-assertions.js +0 -66
- package/backlog/DateTime/index.js +0 -55
- package/backlog/ErrorBoundary/ErrorBoundary.js +0 -125
- package/backlog/Flyout/Flyout.js +0 -198
- package/backlog/Form/Form.js +0 -193
- package/backlog/Form/FormElementError.js +0 -24
- package/backlog/Form/FormGroup.js +0 -30
- package/backlog/Form/FormGroupError.js +0 -28
- package/backlog/Form/index.js +0 -39
- package/backlog/GooglePlacesSearchInput/GooglePlacesSearchInput.js +0 -253
- package/backlog/GooglePlacesSearchInput/PoweredByGoogle.js +0 -38
- package/backlog/GooglePlacesSearchInput/index.js +0 -23
- package/backlog/HorizontalRule/HorizontalRule.js +0 -30
- package/backlog/Label/Label.js +0 -31
- package/backlog/Notification/Notification.js +0 -178
- package/backlog/Notification/NotificationContainer.js +0 -131
- package/backlog/Notification/NotificationPropTypes.js +0 -37
- package/backlog/Notification/index.js +0 -23
- package/backlog/PasswordControl/PasswordControl.js +0 -201
- package/backlog/Portal/Portal.js +0 -110
- package/backlog/PulseLoader/PulseLoader.js +0 -62
- package/backlog/Radio/Radio.js +0 -135
- package/backlog/Radio/RadioGroup.js +0 -123
- package/backlog/Radio/index.js +0 -23
- package/backlog/RenderInBody/RenderInBody.js +0 -103
- package/backlog/Select/Select.js +0 -275
- package/backlog/Select/SelectItemPropTypes.js +0 -32
- package/backlog/Select/index.js +0 -23
- package/backlog/SelectControlled/SelectControlled.js +0 -270
- package/backlog/SelectControlled/index.js +0 -15
- package/backlog/Sprite/Sprite.js +0 -24
- package/backlog/Tabs/Tab.js +0 -94
- package/backlog/Tabs/TabContent.js +0 -56
- package/backlog/Tabs/TabNavigation.js +0 -108
- package/backlog/Tabs/TabPanel.js +0 -29
- package/backlog/Tabs/Tabs.js +0 -126
- package/backlog/Tabs/index.js +0 -47
- package/backlog/TextArea/TextArea.js +0 -155
- package/backlog/TextInput/TextInput.js +0 -230
- package/backlog/TextInput/TextInputPropTypes.js +0 -114
- package/backlog/TextInput/index.js +0 -23
- package/backlog/Tooltip/Tooltip.js +0 -249
- package/backlog/index.js +0 -393
- package/backlog/v1/components/Button/Button.js +0 -64
- package/backlog/v1/components/Button/button-props.js +0 -48
- package/backlog/v1/components/Image/Image.js +0 -193
- package/backlog/v1/components/Loader/Loader.js +0 -51
- package/backlog/v1/components/Modal/Modal.js +0 -325
- package/backlog/v1/components/Modal/ModalContent.js +0 -154
- package/backlog/v1/components/Modal/ModalFooter.js +0 -89
- package/backlog/v1/components/Modal/index.js +0 -31
- package/backlog/v1/components/Panel/Panel.js +0 -209
- package/backlog/v1/components/Table/Table.js +0 -336
- package/backlog/v1/components/Table/TableCell.js +0 -28
- package/backlog/v1/components/Table/TableCellPropTypes.js +0 -22
- package/backlog/v1/components/Table/TableControls.js +0 -56
- package/backlog/v1/components/Table/TableFooter.js +0 -63
- package/backlog/v1/components/Table/TableHeading.js +0 -126
- package/backlog/v1/components/Table/TableHeadingPropTypes.js +0 -35
- package/backlog/v1/components/Table/TableSortSelector.js +0 -125
- package/backlog/v1/components/Table/TableSortType.js +0 -11
- package/backlog/v1/components/Table/index.js +0 -47
- package/backlog/v1/components/TextButton/TextButton.js +0 -74
- package/backlog/v1/components/index.js +0 -75
- package/backlog/v1/utils/deprecate.js +0 -61
- package/styles/Alert/_Alert.scss +0 -51
- package/styles/AutoSuggestInput/_AutoSuggestInput.scss +0 -116
- package/styles/Badge/_Badge.scss +0 -33
- package/styles/Chart/_Chart.scss +0 -105
- package/styles/Chart/_chartist-settings.scss +0 -131
- package/styles/Chart/_chartist.scss +0 -295
- package/styles/Checkbox/_Checkbox.scss +0 -173
- package/styles/DateTime/_DatePicker.scss +0 -61
- package/styles/DateTime/_DatePickerCalendar.scss +0 -159
- package/styles/DateTime/_DateTime.scss +0 -4
- package/styles/DateTime/_DateTimePicker.scss +0 -46
- package/styles/DateTime/_TimePicker.scss +0 -30
- package/styles/ErrorBoundary/_ErrorBoundary.scss +0 -18
- package/styles/Flyout/_Flyout.scss +0 -73
- package/styles/Form/_Form.scss +0 -53
- package/styles/GooglePlacesSearchInput/_GooglePlacesSearchInput.scss +0 -3
- package/styles/GooglePlacesSearchInput/_PoweredByGoogle.scss +0 -21
- package/styles/HorizontalRule/_HorizontalRule.scss +0 -48
- package/styles/Label/_Label.scss +0 -6
- package/styles/Notification/_Notification.scss +0 -113
- package/styles/PasswordControl/_PasswordControl.scss +0 -86
- package/styles/PulseLoader/_PulseLoader.scss +0 -60
- package/styles/Radio/_Radio.scss +0 -93
- package/styles/Select/_Select.scss +0 -94
- package/styles/Tabs/_Tabs.scss +0 -57
- package/styles/TextArea/_TextArea.scss +0 -26
- package/styles/TextInput/_TextInput.scss +0 -43
- package/styles/Tooltip/_Tooltip.scss +0 -108
- package/styles/_index.scss +0 -34
- package/styles/common/sass/_control-sizing.scss +0 -5
- package/styles/common/sass/_disable-scrolling.scss +0 -7
- package/styles/common/sass/_forms.scss +0 -72
- package/styles/index.js +0 -50
- package/styles/v1/components/Button/Button.jsx +0 -48
- package/styles/v1/components/Button/Button.spec.js +0 -76
- package/styles/v1/components/Button/_Button.scss +0 -178
- package/styles/v1/components/Button/button-props.js +0 -30
- package/styles/v1/components/Button/stories/button.js +0 -20
- package/styles/v1/components/Button/stories/index.stories.js +0 -92
- package/styles/v1/components/Button/stories/overview.js +0 -87
- package/styles/v1/components/Button/stories/types.js +0 -31
- package/styles/v1/components/Image/Image.jsx +0 -175
- package/styles/v1/components/Image/Image.spec.js +0 -113
- package/styles/v1/components/Image/_Image.scss +0 -24
- package/styles/v1/components/Image/stories/Cloudinary.stories.js +0 -39
- package/styles/v1/components/Image/stories/Display.stories.js +0 -92
- package/styles/v1/components/Loader/Loader.jsx +0 -54
- package/styles/v1/components/Loader/Loader.spec.js +0 -67
- package/styles/v1/components/Loader/_Loader.scss +0 -18
- package/styles/v1/components/Loader/stories/Display.stories.js +0 -55
- package/styles/v1/components/Modal/Modal.jsx +0 -315
- package/styles/v1/components/Modal/Modal.spec.js +0 -293
- package/styles/v1/components/Modal/ModalContent.jsx +0 -126
- package/styles/v1/components/Modal/ModalFooter.jsx +0 -53
- package/styles/v1/components/Modal/_Modal.scss +0 -262
- package/styles/v1/components/Modal/index.js +0 -3
- package/styles/v1/components/Modal/stories/Content.stories.js +0 -314
- package/styles/v1/components/Modal/stories/Display.stories.js +0 -208
- package/styles/v1/components/Modal/stories/Methods.stories.js +0 -44
- package/styles/v1/components/Modal/stories/Width.stories.js +0 -82
- package/styles/v1/components/Modal/stories/helpers/ReduxConsumer.jsx +0 -21
- package/styles/v1/components/Panel/Panel.jsx +0 -202
- package/styles/v1/components/Panel/Panel.spec.js +0 -196
- package/styles/v1/components/Panel/_Panel.scss +0 -55
- package/styles/v1/components/Panel/stories/Display.stories.js +0 -82
- package/styles/v1/components/Panel/stories/Methods.stories.js +0 -76
- package/styles/v1/components/Table/Table.jsx +0 -367
- package/styles/v1/components/Table/Table.spec.js +0 -526
- package/styles/v1/components/Table/TableCell.jsx +0 -17
- package/styles/v1/components/Table/TableCellPropTypes.js +0 -10
- package/styles/v1/components/Table/TableControls.jsx +0 -61
- package/styles/v1/components/Table/TableFooter.jsx +0 -72
- package/styles/v1/components/Table/TableHeading.jsx +0 -58
- package/styles/v1/components/Table/TableHeadingPropTypes.js +0 -20
- package/styles/v1/components/Table/TableSortSelector.jsx +0 -63
- package/styles/v1/components/Table/TableSortType.js +0 -4
- package/styles/v1/components/Table/_Table.scss +0 -263
- package/styles/v1/components/Table/index.js +0 -5
- package/styles/v1/components/Table/stories/Display.stories.js +0 -194
- package/styles/v1/components/Table/stories/Methods.stories.js +0 -141
- package/styles/v1/components/Table/stories/helpers/TableCellEmail.jsx +0 -25
- package/styles/v1/components/Table/stories/helpers/TableCustomRow.jsx +0 -35
- package/styles/v1/components/Table/stories/helpers/TableHeadingEmail.jsx +0 -20
- package/styles/v1/components/Table/stories/helpers/table-data.js +0 -26
- package/styles/v1/components/Table/stories/helpers/table-headers.js +0 -14
- package/styles/v1/components/TextButton/TextButton.jsx +0 -78
- package/styles/v1/components/TextButton/TextButton.spec.js +0 -95
- package/styles/v1/components/TextButton/_TextButton.scss +0 -114
- package/styles/v1/components/TextButton/stories/Display.stories.js +0 -46
- package/styles/v1/components/index.js +0 -7
- package/styles/v1/utils/deprecate.js +0 -45
- package/styles/v2/components/index.js +0 -70
- package/styles/v2/components/styles.js +0 -21
- package/styles/v2/theme/global.js +0 -118
- package/styles/v2/theme/index.js +0 -27
- package/styles/v2/utils/Spaces.js +0 -16
- package/v1/assets-manifest.json +0 -5
- package/v1/index.html +0 -1
- package/v1/index.js +0 -3
- package/v1/index.js.LICENSE.txt +0 -23
- package/v1/index.js.map +0 -1
- /package/styles/{v2/components → components}/Accordion/Accordion.jsx +0 -0
- /package/styles/{v2/components → components}/Accordion/index.js +0 -0
- /package/styles/{v2/components → components}/Accordion/styles/container.js +0 -0
- /package/styles/{v2/components → components}/Accordion/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Accordion/styles/panel.js +0 -0
- /package/styles/{v2/components → components}/Alert/Alert.stories.js +0 -0
- /package/styles/{v2/components → components}/Alert/index.js +0 -0
- /package/styles/{v2/components → components}/Alert/styles/index.js +0 -0
- /package/styles/{v2/components → components}/AutoSuggestSelect/index.js +0 -0
- /package/styles/{v2/components → components}/Badge/Badge.jsx +0 -0
- /package/styles/{v2/components → components}/Badge/Badge.stories.js +0 -0
- /package/styles/{v2/components → components}/Badge/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Button/Button.jsx +0 -0
- /package/styles/{v2/components → components}/Button/Button.spec.js +0 -0
- /package/styles/{v2/components → components}/Button/Button.styles.js +0 -0
- /package/styles/{v2/components → components}/Button/button-props.js +0 -0
- /package/styles/{v2/components → components}/Button/index.js +0 -0
- /package/styles/{v2/components → components}/Button/stories/index.stories.js +0 -0
- /package/styles/{v2/components → components}/Card/Card.jsx +0 -0
- /package/styles/{v2/components → components}/Card/Card.stories.js +0 -0
- /package/styles/{v2/components → components}/Checkbox/Checkbox.jsx +0 -0
- /package/styles/{v2/components → components}/Checkbox/Checkbox.stories.js +0 -0
- /package/styles/{v2/components → components}/Checkbox/index.js +0 -0
- /package/styles/{v2/components → components}/Checkbox/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Container/Container.jsx +0 -0
- /package/styles/{v2/components → components}/Container/Container.stories.js +0 -0
- /package/styles/{v2/components → components}/Container/Container.styles.js +0 -0
- /package/styles/{v2/components → components}/Divider/Divider.jsx +0 -0
- /package/styles/{v2/components → components}/Divider/Divider.stories.js +0 -0
- /package/styles/{v2/components → components}/Divider/Divider.styles.js +0 -0
- /package/styles/{v2/components → components}/Grid/Grid.jsx +0 -0
- /package/styles/{v2/components → components}/Grid/Grid.styles.js +0 -0
- /package/styles/{v2/components → components}/Grid/GridItem.jsx +0 -0
- /package/styles/{v2/components → components}/Grid/GridItem.styles.js +0 -0
- /package/styles/{v2/components → components}/Grid/index.js +0 -0
- /package/styles/{v2/components → components}/Heading/Heading.jsx +0 -0
- /package/styles/{v2/components → components}/Heading/Heading.stories.js +0 -0
- /package/styles/{v2/components → components}/Icon/Icon.jsx +0 -0
- /package/styles/{v2/components → components}/Icon/Icon.stories.js +0 -0
- /package/styles/{v2/components → components}/Image/Image.spec.js +0 -0
- /package/styles/{v2/components → components}/Image/Image.stories.js +0 -0
- /package/styles/{v2/components → components}/Input/Input.jsx +0 -0
- /package/styles/{v2/components → components}/Input/Input.stories.js +0 -0
- /package/styles/{v2/components → components}/Input/index.js +0 -0
- /package/styles/{v2/components → components}/Input/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Link/Link.jsx +0 -0
- /package/styles/{v2/components → components}/Link/Link.styles.js +0 -0
- /package/styles/{v2/components → components}/List/List.jsx +0 -0
- /package/styles/{v2/components → components}/List/index.js +0 -0
- /package/styles/{v2/components → components}/List/styles/index.js +0 -0
- /package/styles/{v2/components → components}/List/styles/item.styles.js +0 -0
- /package/styles/{v2/components → components}/Loader/Loader.jsx +0 -0
- /package/styles/{v2/components → components}/Loader/Loader.stories.js +0 -0
- /package/styles/{v2/components → components}/Modal/index.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/body.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/closeButton.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/dialog.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/dialogContainer.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/footer.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/header.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Modal/styles/overlay.js +0 -0
- /package/styles/{v2/components → components}/Popover/Popover.jsx +0 -0
- /package/styles/{v2/components → components}/Popover/PopoverArrow.jsx +0 -0
- /package/styles/{v2/components → components}/Popover/PopoverCloseButton.jsx +0 -0
- /package/styles/{v2/components → components}/Popover/PopoverContent.jsx +0 -0
- /package/styles/{v2/components → components}/Popover/index.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popover-arrow.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popover-body.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popover-close-button.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popover-content.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popover-header.js +0 -0
- /package/styles/{v2/components → components}/Popover/styles/popper.js +0 -0
- /package/styles/{v2/components → components}/Radio/Radio.jsx +0 -0
- /package/styles/{v2/components → components}/Radio/Radio.stories.js +0 -0
- /package/styles/{v2/components → components}/Radio/RadioGroup.jsx +0 -0
- /package/styles/{v2/components → components}/Radio/index.js +0 -0
- /package/styles/{v2/components → components}/Radio/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Select/Select.jsx +0 -0
- /package/styles/{v2/components → components}/Select/Select.stories.js +0 -0
- /package/styles/{v2/components → components}/Select/index.js +0 -0
- /package/styles/{v2/components → components}/Select/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Skeleton/Skeleton.stories.jsx +0 -0
- /package/styles/{v2/components → components}/Skeleton/Skeleton.styles.js +0 -0
- /package/styles/{v2/components → components}/Spinner/Spinner.jsx +0 -0
- /package/styles/{v2/components → components}/Spinner/Spinner.styles.js +0 -0
- /package/styles/{v2/components → components}/Switch/Switch.jsx +0 -0
- /package/styles/{v2/components → components}/Switch/Switch.stories.js +0 -0
- /package/styles/{v2/components → components}/Switch/index.js +0 -0
- /package/styles/{v2/components → components}/Switch/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Table/Table.jsx +0 -0
- /package/styles/{v2/components → components}/Table/Table.stories.js +0 -0
- /package/styles/{v2/components → components}/Table/index.js +0 -0
- /package/styles/{v2/components → components}/Tabs/Tabs.stories.js +0 -0
- /package/styles/{v2/components → components}/Tabs/index.js +0 -0
- /package/styles/{v2/components → components}/Tabs/styles/index.js +0 -0
- /package/styles/{v2/components → components}/Text/Text.jsx +0 -0
- /package/styles/{v2/components → components}/Text/Text.stories.js +0 -0
- /package/styles/{v2/components → components}/Text/options.js +0 -0
- /package/styles/{v2/theme → theme}/base/breakpoints.js +0 -0
- /package/styles/{v2/theme → theme}/base/colors.js +0 -0
- /package/styles/{v2/theme → theme}/base/index.js +0 -0
- /package/styles/{v2/theme → theme}/base/sizes.js +0 -0
- /package/styles/{v2/theme → theme}/base/typography.js +0 -0
- /package/styles/{v2/theme → theme}/base/zindices.js +0 -0
|
@@ -1,526 +0,0 @@
|
|
|
1
|
-
import TableSortType from './TableSortType';
|
|
2
|
-
|
|
3
|
-
const {ASC, DESC} = TableSortType;
|
|
4
|
-
|
|
5
|
-
describe('<Table />', () => {
|
|
6
|
-
context('Display', () => {
|
|
7
|
-
context('Default', () => {
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
cy.visitStory('v1/Table/Display', 'Default');
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('Renders table and data', () => {
|
|
13
|
-
cy.viewport('macbook-15')
|
|
14
|
-
// make sure table container exists
|
|
15
|
-
.get('.Table-container')
|
|
16
|
-
// make sure Table component exists
|
|
17
|
-
.get('table')
|
|
18
|
-
.should('have.class', 'Table')
|
|
19
|
-
// make sure heading exists
|
|
20
|
-
.get('thead')
|
|
21
|
-
.should('have.class', 'TableHead')
|
|
22
|
-
// verify heading labels
|
|
23
|
-
.get('.TableHeading')
|
|
24
|
-
.eq(0)
|
|
25
|
-
.should('contain.text', 'First Name')
|
|
26
|
-
.get('.TableHeading')
|
|
27
|
-
.eq(1)
|
|
28
|
-
.should('contain.text', 'Last Name')
|
|
29
|
-
.get('.TableHeading')
|
|
30
|
-
.eq(2)
|
|
31
|
-
.should('contain.text', 'Email')
|
|
32
|
-
.get('.TableHeading')
|
|
33
|
-
.eq(3)
|
|
34
|
-
.should('contain.text', 'Age')
|
|
35
|
-
// make sure table body exists
|
|
36
|
-
.get('tbody')
|
|
37
|
-
.should('have.class', 'TableBody')
|
|
38
|
-
// verify TableCell exists
|
|
39
|
-
.get('.TableCell')
|
|
40
|
-
// verify desktop breakpoints use table-cell display
|
|
41
|
-
.should('have.css', 'display', 'table-cell')
|
|
42
|
-
// verify first table row
|
|
43
|
-
.get('.TableBody > tr')
|
|
44
|
-
.eq(0)
|
|
45
|
-
.should('contain', 'Tony')
|
|
46
|
-
.should('contain', 'Stark')
|
|
47
|
-
.should('contain', 'ironman@avengers.com')
|
|
48
|
-
.should('contain', '38')
|
|
49
|
-
// verify desktop breakpoints use table-row display
|
|
50
|
-
.should('have.css', 'display', 'table-row')
|
|
51
|
-
// verify Table footer message
|
|
52
|
-
.get('.TableFooter')
|
|
53
|
-
.should('contain', 'Showing 4 of 4')
|
|
54
|
-
// verify TableControls doesn't exist
|
|
55
|
-
.get('.TableControls')
|
|
56
|
-
.should('not.exist');
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it(`Renders tablet table with proper 'card' styling`, () => {
|
|
60
|
-
cy.viewport('ipad-2')
|
|
61
|
-
// verify TableCell exists
|
|
62
|
-
.get('.TableCell')
|
|
63
|
-
// verify tablet breakpoints use block display
|
|
64
|
-
.should('have.css', 'display', 'block')
|
|
65
|
-
// get first table row
|
|
66
|
-
.get('.TableBody > tr')
|
|
67
|
-
.eq(0)
|
|
68
|
-
// verify tablet breakpoints use inline-block display
|
|
69
|
-
.should('have.css', 'display', 'inline-block')
|
|
70
|
-
// verify TableFooter hides message
|
|
71
|
-
.get('.TableFooter-info')
|
|
72
|
-
.should('not.be.visible');
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
it(`Renders mobile table with proper 'card' styling`, () => {
|
|
76
|
-
cy.viewport('iphone-6')
|
|
77
|
-
// verify TableCell exists
|
|
78
|
-
.get('.TableCell')
|
|
79
|
-
// verify mobile breakpoints use block display
|
|
80
|
-
.should('have.css', 'display', 'block')
|
|
81
|
-
// get first table row
|
|
82
|
-
.get('.TableBody > tr')
|
|
83
|
-
.eq(0)
|
|
84
|
-
// verify mobile breakpoints use block display
|
|
85
|
-
.should('have.css', 'display', 'block')
|
|
86
|
-
// verify TableFooter hides message
|
|
87
|
-
.get('.TableFooter-info')
|
|
88
|
-
.should('not.be.visible');
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
context('With custom class names', () => {
|
|
93
|
-
it('Renders table with custom class names', () => {
|
|
94
|
-
cy.visitStory('v1/Table/Display', 'WithClassNames')
|
|
95
|
-
// make sure table container has class name
|
|
96
|
-
.get('.Table-container')
|
|
97
|
-
.should('have.class', 'AvengersTable-container')
|
|
98
|
-
// make sure Table has class name
|
|
99
|
-
.get('.Table')
|
|
100
|
-
.should('have.class', 'AvengersTable')
|
|
101
|
-
// verify headings have class names
|
|
102
|
-
.get('.TableHeading')
|
|
103
|
-
.eq(0)
|
|
104
|
-
.should('have.class', 'AvengersTableHeading-first-name')
|
|
105
|
-
.get('.TableHeading')
|
|
106
|
-
.eq(1)
|
|
107
|
-
.should('have.class', 'AvengersTableHeading-last-name')
|
|
108
|
-
.get('.TableHeading')
|
|
109
|
-
.eq(2)
|
|
110
|
-
.should('have.class', 'AvengersTableHeading-email')
|
|
111
|
-
.get('.TableHeading')
|
|
112
|
-
.eq(3)
|
|
113
|
-
.should('have.class', 'AvengersTableHeading-age')
|
|
114
|
-
// verify TableCells have class names
|
|
115
|
-
.get('.TableCell')
|
|
116
|
-
.eq(0)
|
|
117
|
-
.should('have.class', 'AvengersTableCell-first-name')
|
|
118
|
-
.get('.TableCell')
|
|
119
|
-
.eq(1)
|
|
120
|
-
.should('have.class', 'AvengersTableCell-last-name')
|
|
121
|
-
.get('.TableCell')
|
|
122
|
-
.eq(2)
|
|
123
|
-
.should('have.class', 'AvengersTableCell-email')
|
|
124
|
-
.get('.TableCell')
|
|
125
|
-
.eq(3)
|
|
126
|
-
.should('have.class', 'AvengersTableCell-age');
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
it('Renders table with custom class names for rows', () => {
|
|
130
|
-
cy.visitStory('v1/Table/Display', 'WithRowClassNames')
|
|
131
|
-
.get('.Table tbody tr')
|
|
132
|
-
.should('have.length', 4)
|
|
133
|
-
.should('have.class', 'TableRow');
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
context('With custom renders', () => {
|
|
138
|
-
it('Renders table with custom heading and cell renders', () => {
|
|
139
|
-
cy.visitStory('v1/Table/Display', 'WithCustomRenders')
|
|
140
|
-
// verify custom table heading exists
|
|
141
|
-
.get('.TableHeadingEmail')
|
|
142
|
-
// verify custom table cell exists
|
|
143
|
-
.get('.TableCellEmail');
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
it('Renders table with custom row render', () => {
|
|
147
|
-
cy.visitStory('v1/Table/Display', 'WithCustomRowRender')
|
|
148
|
-
// verify custom table row exists
|
|
149
|
-
.get('.TableCustomRow')
|
|
150
|
-
.eq(0)
|
|
151
|
-
.should('contain', 'This is an Avenger!');
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
context('With large rows', () => {
|
|
156
|
-
it('Renders table with large rows', () => {
|
|
157
|
-
cy.visitStory('v1/Table/Display', 'WithLargeRows')
|
|
158
|
-
// verify large table rows exist
|
|
159
|
-
.get('.Table')
|
|
160
|
-
.should('have.class', 'Table-large');
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
context('With sorting via array', () => {
|
|
165
|
-
it('Renders table sorted by firstName data key', () => {
|
|
166
|
-
cy.visitStory('v1/Table/Display', 'WithSortingArray')
|
|
167
|
-
// verify first table row
|
|
168
|
-
.get('.TableBody > tr')
|
|
169
|
-
.eq(0)
|
|
170
|
-
.should('contain', 'Bruce')
|
|
171
|
-
.should('contain', 'Banner')
|
|
172
|
-
.should('contain', 'hulksmash@avengers.com');
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
context('With no data', () => {
|
|
177
|
-
const confirmNoData = () => {
|
|
178
|
-
return cy
|
|
179
|
-
.get('.TableBody')
|
|
180
|
-
.should('have.class', 'Table-no-data');
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
it('Renders table with no data (using a default message)', () => {
|
|
184
|
-
cy.visitStory('v1/Table/Display', 'NoData').then(() => {
|
|
185
|
-
confirmNoData();
|
|
186
|
-
cy.get('.TableBody').should(
|
|
187
|
-
'contain.text',
|
|
188
|
-
'No data available at this time.'
|
|
189
|
-
);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
it('Renders table with no data or footer (using a custom message)', () => {
|
|
194
|
-
cy.visitStory('v1/Table/Display', 'NoDataCustomMessage').then(
|
|
195
|
-
() => {
|
|
196
|
-
confirmNoData();
|
|
197
|
-
cy.get('.TableBody').should(
|
|
198
|
-
'contain.text',
|
|
199
|
-
'The Avengers are no more!'
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
);
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
context('With no footer', () => {
|
|
207
|
-
const confirmNoFooter = () => {
|
|
208
|
-
return cy.get('.TableFooter-info').should('not.exist');
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
it('Renders table with no footer when provided no data (default message)', () => {
|
|
212
|
-
cy.visitStory('v1/Table/Display', 'NoData').then(() => {
|
|
213
|
-
cy.viewport('macbook-15');
|
|
214
|
-
confirmNoFooter();
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
it('Renders table with no footer when provided no data (custom message)', () => {
|
|
219
|
-
cy.visitStory('v1/Table/Display', 'NoDataCustomMessage').then(
|
|
220
|
-
() => {
|
|
221
|
-
cy.viewport('macbook-15');
|
|
222
|
-
confirmNoFooter();
|
|
223
|
-
}
|
|
224
|
-
);
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
it('Renders table with no footer', () => {
|
|
228
|
-
cy.visitStory('v1/Table/Display', 'WithNoFooterMessage').then(
|
|
229
|
-
() => {
|
|
230
|
-
cy.viewport('macbook-15');
|
|
231
|
-
confirmNoFooter();
|
|
232
|
-
}
|
|
233
|
-
);
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
context('With table footer options', () => {
|
|
238
|
-
it('Renders table with a custom footer message', () => {
|
|
239
|
-
cy.visitStory('v1/Table/Display', 'WithCustomFooterMessage')
|
|
240
|
-
.viewport('macbook-15')
|
|
241
|
-
// verify table footer has custom message
|
|
242
|
-
.get('.TableFooter-info')
|
|
243
|
-
.should('contain.text', '4 Rows');
|
|
244
|
-
});
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
context('With no tableDataRowCount', () => {
|
|
248
|
-
it('Renders table with a valid footer message using the table data array length', () => {
|
|
249
|
-
cy.visitStory('v1/Table/Display', 'WithNoTableDataRowCount')
|
|
250
|
-
.viewport('macbook-15')
|
|
251
|
-
// verify table footer
|
|
252
|
-
.get('.TableFooter-info')
|
|
253
|
-
.should('contain.text', 'Showing 4 of 4');
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
context('Methods', () => {
|
|
259
|
-
context('Pagination (onPageChange)', () => {
|
|
260
|
-
it('Pagination functions properly', () => {
|
|
261
|
-
cy.visitStory('v1/Table/Methods', 'Pagination', {
|
|
262
|
-
onBeforeLoad: contentWindow => {
|
|
263
|
-
contentWindow.onPageChange = ({
|
|
264
|
-
totalPages,
|
|
265
|
-
currentPage,
|
|
266
|
-
previousPage,
|
|
267
|
-
}) => {
|
|
268
|
-
console.log('onPageChange'); // eslint-disable-line no-console
|
|
269
|
-
};
|
|
270
|
-
cy.stub(contentWindow, 'onPageChange').as('pageChange');
|
|
271
|
-
},
|
|
272
|
-
})
|
|
273
|
-
// verify TableFooter message
|
|
274
|
-
.get('.TableFooter-info')
|
|
275
|
-
.should('contain', 'Showing 1-3 of 4')
|
|
276
|
-
// make sure TableControls and TableControls-pagination divs exists
|
|
277
|
-
.get('.TableControls')
|
|
278
|
-
.get('.TableControls-pagination')
|
|
279
|
-
// make sure Page 1 initially selected
|
|
280
|
-
.get('.TableControls-pagination option:selected')
|
|
281
|
-
.should('contain.text', 'Page 1')
|
|
282
|
-
// change Page via select - cannot use selectItem method due to rerender of TableControls
|
|
283
|
-
.get('.Select')
|
|
284
|
-
.find('select')
|
|
285
|
-
.select('2')
|
|
286
|
-
.wait(500);
|
|
287
|
-
|
|
288
|
-
cy.get('@pageChange')
|
|
289
|
-
.should('be.calledWith', {
|
|
290
|
-
totalPages: 2,
|
|
291
|
-
currentPage: 2,
|
|
292
|
-
previousPage: 1,
|
|
293
|
-
})
|
|
294
|
-
// make sure Page 2 became selected
|
|
295
|
-
.get('.TableControls-pagination option:selected')
|
|
296
|
-
.should('contain.text', 'Page 2')
|
|
297
|
-
// verify TableFooter message
|
|
298
|
-
.get('.TableFooter-info')
|
|
299
|
-
.should('contain', 'Showing 4-4 of 4')
|
|
300
|
-
// change page via Prev arrow button and verify onPageChange called
|
|
301
|
-
.get('.TableControls-pagination > .Button-secondary')
|
|
302
|
-
.eq(0)
|
|
303
|
-
.click()
|
|
304
|
-
.wait(500);
|
|
305
|
-
|
|
306
|
-
cy.get('@pageChange')
|
|
307
|
-
.should('be.calledWith', {
|
|
308
|
-
totalPages: 2,
|
|
309
|
-
currentPage: 1,
|
|
310
|
-
previousPage: 2,
|
|
311
|
-
})
|
|
312
|
-
// change page via Next arrow button and verify onPageChange called
|
|
313
|
-
.get('.TableControls-pagination > .Button-secondary')
|
|
314
|
-
.eq(1)
|
|
315
|
-
.click()
|
|
316
|
-
.wait(500);
|
|
317
|
-
|
|
318
|
-
cy.get('@pageChange').should('be.calledWith', {
|
|
319
|
-
currentPage: 2,
|
|
320
|
-
previousPage: 1,
|
|
321
|
-
totalPages: 2,
|
|
322
|
-
});
|
|
323
|
-
});
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
context('Sortable Headers (onSortChange)', () => {
|
|
327
|
-
beforeEach(() => {
|
|
328
|
-
cy.visitStory('v1/Table/Methods', 'WithSortableHeaders', {
|
|
329
|
-
onBeforeLoad: contentWindow => {
|
|
330
|
-
contentWindow.onSortChange = ({dataKey, sortOrder}) => {
|
|
331
|
-
console.log('onSortChange'); // eslint-disable-line no-console
|
|
332
|
-
};
|
|
333
|
-
cy.stub(contentWindow, 'onSortChange').as('sortChange');
|
|
334
|
-
},
|
|
335
|
-
});
|
|
336
|
-
});
|
|
337
|
-
it('Sorting functions properly - desktop via headers', () => {
|
|
338
|
-
cy.viewport('macbook-15')
|
|
339
|
-
// make sortable headers exist where they should (email doesn't sort)
|
|
340
|
-
// verify headings have class names
|
|
341
|
-
.get('.TableHeading')
|
|
342
|
-
.eq(0)
|
|
343
|
-
.should('have.class', 'TableHeading-sortable')
|
|
344
|
-
.get('.TableHeading')
|
|
345
|
-
.eq(1)
|
|
346
|
-
.should('have.class', 'TableHeading-sortable')
|
|
347
|
-
.get('.TableHeading')
|
|
348
|
-
.eq(2)
|
|
349
|
-
.should('not.have.class', 'TableHeading-sortable')
|
|
350
|
-
.get('.TableHeading')
|
|
351
|
-
.eq(3)
|
|
352
|
-
.should('have.class', 'TableHeading-sortable')
|
|
353
|
-
// make sure Last Name initially selected and sorted in Descending order
|
|
354
|
-
.get('.TableHeading')
|
|
355
|
-
.eq(1)
|
|
356
|
-
.should('have.class', 'TableHeading-sort-active')
|
|
357
|
-
.should('have.class', 'TableHeading-sort-descending')
|
|
358
|
-
// verify first table row
|
|
359
|
-
.get('.TableBody > tr')
|
|
360
|
-
.eq(0)
|
|
361
|
-
.should('contain', 'Tony')
|
|
362
|
-
.should('contain', 'Stark')
|
|
363
|
-
.should('contain', 'ironman@avengers.com')
|
|
364
|
-
.should('contain', '38')
|
|
365
|
-
// click a non sortable column and verify no call is made
|
|
366
|
-
.get('.AvengersTableHeading-email')
|
|
367
|
-
.click()
|
|
368
|
-
.wait(500)
|
|
369
|
-
.get('@sortChange')
|
|
370
|
-
.should('not.be.called')
|
|
371
|
-
// change Sort via header - click the Age column header
|
|
372
|
-
.get('.AvengersTableHeading-age')
|
|
373
|
-
.click()
|
|
374
|
-
.wait(500);
|
|
375
|
-
cy.get('@sortChange')
|
|
376
|
-
.should('be.calledWith', {
|
|
377
|
-
dataKey: 'age',
|
|
378
|
-
sortOrder: ASC,
|
|
379
|
-
})
|
|
380
|
-
// verify row 1 data
|
|
381
|
-
.get('.TableBody > tr')
|
|
382
|
-
.eq(0)
|
|
383
|
-
.should('contain', 'Bruce')
|
|
384
|
-
.should('contain', 'Banner')
|
|
385
|
-
.should('contain', 'hulksmash@avengers.com')
|
|
386
|
-
.should('contain', '36')
|
|
387
|
-
// change Sort via the same Age header
|
|
388
|
-
.get('.AvengersTableHeading-age')
|
|
389
|
-
.click()
|
|
390
|
-
.wait(500);
|
|
391
|
-
cy.get('@sortChange')
|
|
392
|
-
.should('be.calledWith', {
|
|
393
|
-
dataKey: 'age',
|
|
394
|
-
sortOrder: DESC,
|
|
395
|
-
})
|
|
396
|
-
// verify row 1 data
|
|
397
|
-
.get('.TableBody > tr')
|
|
398
|
-
.eq(0)
|
|
399
|
-
.should('contain', 'Thor')
|
|
400
|
-
.should('contain', 'Odinson')
|
|
401
|
-
.should('contain', 'godofthunder@avengers.com')
|
|
402
|
-
.should('contain', '1015');
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
it('Sorting functions properly - mobile via Select', () => {
|
|
406
|
-
cy.viewport('ipad-2')
|
|
407
|
-
// make sortable headers exist where they should (email doesn't sort)
|
|
408
|
-
// verify headings have class names
|
|
409
|
-
.get('.TableHeading')
|
|
410
|
-
.eq(0)
|
|
411
|
-
.should('have.class', 'TableHeading-sortable')
|
|
412
|
-
.get('.TableHeading')
|
|
413
|
-
.eq(1)
|
|
414
|
-
.should('have.class', 'TableHeading-sortable')
|
|
415
|
-
.get('.TableHeading')
|
|
416
|
-
.eq(2)
|
|
417
|
-
.should('not.have.class', 'TableHeading-sortable')
|
|
418
|
-
.get('.TableHeading')
|
|
419
|
-
.eq(3)
|
|
420
|
-
.should('have.class', 'TableHeading-sortable')
|
|
421
|
-
// make sure Last Name initially selected and sorted in Descending order
|
|
422
|
-
.get('option:selected')
|
|
423
|
-
.contains(`Last Name - ${DESC}`)
|
|
424
|
-
.should('have.value', `lastName-${DESC}`)
|
|
425
|
-
// verify first table row
|
|
426
|
-
.get('.TableBody > tr')
|
|
427
|
-
.eq(0)
|
|
428
|
-
.should('contain', 'Tony')
|
|
429
|
-
.should('contain', 'Stark')
|
|
430
|
-
.should('contain', 'ironman@avengers.com')
|
|
431
|
-
.should('contain', '38')
|
|
432
|
-
// verify no Email option(s) in sort Select
|
|
433
|
-
.get('.Select')
|
|
434
|
-
.should('not.contain', 'Email')
|
|
435
|
-
// change Sort via select - click the Age - Ascending option
|
|
436
|
-
// cannot use selectItem method due to rerender of TabNavigation
|
|
437
|
-
.get('select')
|
|
438
|
-
.select(`age-${ASC}`)
|
|
439
|
-
.wait(500);
|
|
440
|
-
cy.get('@sortChange')
|
|
441
|
-
.should('be.calledWith', {
|
|
442
|
-
dataKey: 'age',
|
|
443
|
-
sortOrder: ASC,
|
|
444
|
-
})
|
|
445
|
-
// verify row 1 data
|
|
446
|
-
.get('.TableBody > tr')
|
|
447
|
-
.eq(0)
|
|
448
|
-
.should('contain', 'Bruce')
|
|
449
|
-
.should('contain', 'Banner')
|
|
450
|
-
.should('contain', 'hulksmash@avengers.com')
|
|
451
|
-
.should('contain', '36')
|
|
452
|
-
// change Sort via select - click the Age - Descending option
|
|
453
|
-
// cannot use selectItem method due to rerender of TabNavigation
|
|
454
|
-
.get('select')
|
|
455
|
-
.select(`age-${DESC}`)
|
|
456
|
-
.wait(500);
|
|
457
|
-
cy.get('@sortChange')
|
|
458
|
-
.should('be.calledWith', {
|
|
459
|
-
dataKey: 'age',
|
|
460
|
-
sortOrder: DESC,
|
|
461
|
-
})
|
|
462
|
-
// verify row 1 data
|
|
463
|
-
.get('.TableBody > tr')
|
|
464
|
-
.eq(0)
|
|
465
|
-
.should('contain', 'Thor')
|
|
466
|
-
.should('contain', 'Odinson')
|
|
467
|
-
.should('contain', 'godofthunder@avengers.com')
|
|
468
|
-
.should('contain', '1015');
|
|
469
|
-
});
|
|
470
|
-
});
|
|
471
|
-
|
|
472
|
-
context('With sorting via function', () => {
|
|
473
|
-
it('Sorting with function works properly', () => {
|
|
474
|
-
cy.visitStory('v1/Table/Methods', 'WithSortingFunction', {
|
|
475
|
-
onBeforeLoad: contentWindow => {
|
|
476
|
-
// sorting function will be passed the item object
|
|
477
|
-
// in this case, we have firstName, lastName, and email
|
|
478
|
-
contentWindow.sorting = ({
|
|
479
|
-
firstName,
|
|
480
|
-
lastName,
|
|
481
|
-
email,
|
|
482
|
-
age,
|
|
483
|
-
}) => {
|
|
484
|
-
console.log('sorting'); // eslint-disable-line no-console
|
|
485
|
-
};
|
|
486
|
-
cy.stub(contentWindow, 'sorting').as('sorting');
|
|
487
|
-
},
|
|
488
|
-
})
|
|
489
|
-
// verify first table row
|
|
490
|
-
.get('.TableBody > tr')
|
|
491
|
-
.eq(0)
|
|
492
|
-
.should('contain', 'Bruce')
|
|
493
|
-
.should('contain', 'Banner')
|
|
494
|
-
.should('contain', 'hulksmash@avengers.com')
|
|
495
|
-
.should('contain', '36')
|
|
496
|
-
// verify sorting function was called 4 times, once per data object
|
|
497
|
-
.get('@sorting')
|
|
498
|
-
.should('have.callCount', 4)
|
|
499
|
-
.should('be.calledWith', {
|
|
500
|
-
firstName: 'Tony',
|
|
501
|
-
lastName: 'Stark',
|
|
502
|
-
email: 'ironman@avengers.com',
|
|
503
|
-
age: 38,
|
|
504
|
-
})
|
|
505
|
-
.should('be.calledWith', {
|
|
506
|
-
firstName: 'Bruce',
|
|
507
|
-
lastName: 'Banner',
|
|
508
|
-
email: 'hulksmash@avengers.com',
|
|
509
|
-
age: 36,
|
|
510
|
-
})
|
|
511
|
-
.should('be.calledWith', {
|
|
512
|
-
firstName: 'Steve',
|
|
513
|
-
lastName: 'Rogers',
|
|
514
|
-
email: 'captamerica@avengers.com',
|
|
515
|
-
age: 104,
|
|
516
|
-
})
|
|
517
|
-
.should('be.calledWith', {
|
|
518
|
-
firstName: 'Thor',
|
|
519
|
-
lastName: 'Odinson',
|
|
520
|
-
email: 'godofthunder@avengers.com',
|
|
521
|
-
age: 1015,
|
|
522
|
-
});
|
|
523
|
-
});
|
|
524
|
-
});
|
|
525
|
-
});
|
|
526
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import classNames from 'classnames';
|
|
3
|
-
import TableCellPropTypes from './TableCellPropTypes';
|
|
4
|
-
|
|
5
|
-
const TableCell = ({className, headingLabel, value}) => {
|
|
6
|
-
const classes = classNames('TableCell', className);
|
|
7
|
-
|
|
8
|
-
return (
|
|
9
|
-
<td className={classes} data-label={headingLabel}>
|
|
10
|
-
<div>{value}</div>
|
|
11
|
-
</td>
|
|
12
|
-
);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
TableCell.propTypes = TableCellPropTypes;
|
|
16
|
-
|
|
17
|
-
export default TableCell;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
/** Additional class(es) to add to the component. */
|
|
5
|
-
className: PropTypes.string,
|
|
6
|
-
/** The header label that is used to display on smaller viewports above the cell's data. */
|
|
7
|
-
headingLabel: PropTypes.string.isRequired,
|
|
8
|
-
/** The data to populate inside of the cell. */
|
|
9
|
-
value: PropTypes.any,
|
|
10
|
-
};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import times from 'lodash/times';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import IconChevronLeft from '@spothero/icons/chevron-left';
|
|
5
|
-
import IconChevronRight from '@spothero/icons/chevron-right';
|
|
6
|
-
import Button from 'v1/components/Button/Button';
|
|
7
|
-
import Select from '../../../Select/Select';
|
|
8
|
-
|
|
9
|
-
const TableControls = ({
|
|
10
|
-
currentPage,
|
|
11
|
-
totalPages,
|
|
12
|
-
onPageChange,
|
|
13
|
-
onPreviousPage,
|
|
14
|
-
onNextPage,
|
|
15
|
-
}) => {
|
|
16
|
-
const pages = times(totalPages, value => {
|
|
17
|
-
const page = (value + 1).toString();
|
|
18
|
-
|
|
19
|
-
return {
|
|
20
|
-
label: `Page ${page}`,
|
|
21
|
-
value: page,
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div className="TableControls">
|
|
27
|
-
<div className="TableControls-pagination">
|
|
28
|
-
<Button
|
|
29
|
-
color="secondary"
|
|
30
|
-
disabled={currentPage === 1}
|
|
31
|
-
onClick={onPreviousPage}
|
|
32
|
-
>
|
|
33
|
-
<IconChevronLeft />
|
|
34
|
-
</Button>
|
|
35
|
-
<Select
|
|
36
|
-
key={new Date()}
|
|
37
|
-
defaultValue={currentPage.toString()}
|
|
38
|
-
items={pages}
|
|
39
|
-
onChange={onPageChange}
|
|
40
|
-
/>
|
|
41
|
-
<Button
|
|
42
|
-
color="secondary"
|
|
43
|
-
disabled={currentPage === totalPages}
|
|
44
|
-
onClick={onNextPage}
|
|
45
|
-
>
|
|
46
|
-
<IconChevronRight />
|
|
47
|
-
</Button>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
TableControls.propTypes = {
|
|
54
|
-
currentPage: PropTypes.number.isRequired,
|
|
55
|
-
totalPages: PropTypes.number.isRequired,
|
|
56
|
-
onPageChange: PropTypes.func.isRequired,
|
|
57
|
-
onPreviousPage: PropTypes.func.isRequired,
|
|
58
|
-
onNextPage: PropTypes.func.isRequired,
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export default TableControls;
|