@hipay/hipay-material-ui 1.0.0-beta.1
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/AppBar/AppBar.js +144 -0
- package/AppBar/index.js +16 -0
- package/Avatar/Avatar.js +165 -0
- package/Avatar/index.js +16 -0
- package/Badge/Badge.js +142 -0
- package/Badge/index.js +16 -0
- package/BottomNavigation/BottomNavigation.js +113 -0
- package/BottomNavigation/BottomNavigationAction.js +219 -0
- package/BottomNavigation/index.js +25 -0
- package/Button/Button.js +298 -0
- package/Button/index.js +16 -0
- package/ButtonBase/ButtonBase.js +446 -0
- package/ButtonBase/Ripple.js +162 -0
- package/ButtonBase/TouchRipple.js +359 -0
- package/ButtonBase/createRippleHandler.js +28 -0
- package/ButtonBase/index.js +16 -0
- package/CHANGELOG.md +5481 -0
- package/Card/Card.js +48 -0
- package/Card/CardActions.js +94 -0
- package/Card/CardContent.js +76 -0
- package/Card/CardHeader.js +150 -0
- package/Card/CardMedia.js +113 -0
- package/Card/index.js +52 -0
- package/Checkbox/Checkbox.js +160 -0
- package/Checkbox/index.js +16 -0
- package/Chip/Chip.js +322 -0
- package/Chip/index.js +16 -0
- package/Dialog/Dialog.js +271 -0
- package/Dialog/DialogActions.js +94 -0
- package/Dialog/DialogContent.js +77 -0
- package/Dialog/DialogContentText.js +72 -0
- package/Dialog/DialogTitle.js +91 -0
- package/Dialog/index.js +61 -0
- package/Dialog/withMobileDialog.js +49 -0
- package/Divider/Divider.js +113 -0
- package/Divider/index.js +16 -0
- package/Drawer/Drawer.js +325 -0
- package/Drawer/index.js +16 -0
- package/ExpansionPanel/ExpansionPanel.js +257 -0
- package/ExpansionPanel/ExpansionPanelActions.js +79 -0
- package/ExpansionPanel/ExpansionPanelDetails.js +73 -0
- package/ExpansionPanel/ExpansionPanelSummary.js +250 -0
- package/ExpansionPanel/index.js +43 -0
- package/Form/FormControl.js +291 -0
- package/Form/FormControlLabel.js +168 -0
- package/Form/FormGroup.js +94 -0
- package/Form/FormHelperText.js +139 -0
- package/Form/FormLabel.js +158 -0
- package/Form/index.js +52 -0
- package/Grid/Grid.js +372 -0
- package/Grid/index.js +16 -0
- package/GridList/GridList.js +122 -0
- package/GridList/GridListTile.js +239 -0
- package/GridList/GridListTileBar.js +176 -0
- package/GridList/index.js +34 -0
- package/HiBadge/HiBadge.js +107 -0
- package/HiBadge/index.js +16 -0
- package/HiButton/HiButton.js +159 -0
- package/HiButton/index.js +16 -0
- package/HiCheckbox/HiCheckbox.js +171 -0
- package/HiCheckbox/index.js +16 -0
- package/HiChip/HiChip.js +185 -0
- package/HiChip/HiChipSwitch.js +306 -0
- package/HiChip/index.js +25 -0
- package/HiColoredLabel/HiColoredLabel.js +116 -0
- package/HiColoredLabel/index.js +16 -0
- package/HiDatePicker/Caption.js +93 -0
- package/HiDatePicker/HiDatePicker.js +411 -0
- package/HiDatePicker/HiDateRangePicker.js +713 -0
- package/HiDatePicker/HiDateRangeSelector.js +414 -0
- package/HiDatePicker/HiWeekPicker.js +389 -0
- package/HiDatePicker/ListPicker.js +154 -0
- package/HiDatePicker/Navbar.js +169 -0
- package/HiDatePicker/Overlays/CustomOverlayLayout.js +142 -0
- package/HiDatePicker/Overlays/MonthPickerOverlay.js +137 -0
- package/HiDatePicker/Overlays/Overlay.js +105 -0
- package/HiDatePicker/Overlays/TimePickerOverlay.js +291 -0
- package/HiDatePicker/Overlays/YearPickerOverlay.js +173 -0
- package/HiDatePicker/Overlays/index.js +52 -0
- package/HiDatePicker/Weekday.js +52 -0
- package/HiDatePicker/index.js +33 -0
- package/HiDatePicker/stylesheet.js +188 -0
- package/HiForm/HiEmailField.js +126 -0
- package/HiForm/HiFormControl.js +377 -0
- package/HiForm/HiFormLabel.js +180 -0
- package/HiForm/HiInput.js +546 -0
- package/HiForm/HiPasswordField.js +134 -0
- package/HiForm/HiSearchField.js +192 -0
- package/HiForm/HiTextField.js +293 -0
- package/HiForm/index.js +70 -0
- package/HiLoader/HiLoader.js +55 -0
- package/HiLoader/index.js +16 -0
- package/HiPins/HiPins.js +99 -0
- package/HiPins/index.js +16 -0
- package/HiRadio/HiRadio.js +99 -0
- package/HiRadio/index.js +16 -0
- package/HiSelect/HiSelect.js +830 -0
- package/HiSelect/HiSelectField.js +160 -0
- package/HiSelect/HiSuggestSelect.js +306 -0
- package/HiSelect/HiSuggestSelectField.js +143 -0
- package/HiSelect/SelectInput.js +329 -0
- package/HiSelect/index.js +41 -0
- package/HiSelectableList/HiSelectableList.js +258 -0
- package/HiSelectableList/HiSelectableListItem.js +520 -0
- package/HiSelectableList/index.js +25 -0
- package/HiSwitch/HiSwitch.js +208 -0
- package/HiSwitch/HiSwitchState.js +229 -0
- package/HiSwitch/index.js +25 -0
- package/HiTable/BodyCellBuilder.js +398 -0
- package/HiTable/BodyCells/CellAccount.js +100 -0
- package/HiTable/BodyCells/CellAccountNumber.js +220 -0
- package/HiTable/BodyCells/CellAddress.js +199 -0
- package/HiTable/BodyCells/CellCountry.js +172 -0
- package/HiTable/BodyCells/CellDate.js +177 -0
- package/HiTable/BodyCells/CellIcon.js +148 -0
- package/HiTable/BodyCells/CellImage.js +177 -0
- package/HiTable/BodyCells/CellLayout.js +281 -0
- package/HiTable/BodyCells/CellNumeric.js +135 -0
- package/HiTable/BodyCells/CellRate.js +197 -0
- package/HiTable/BodyCells/CellSentinel.js +213 -0
- package/HiTable/BodyCells/CellStatus.js +136 -0
- package/HiTable/BodyCells/CellText.js +267 -0
- package/HiTable/BodyCells/CellThirdPartySecurity.js +144 -0
- package/HiTable/BodyCells/index.js +133 -0
- package/HiTable/BodyRow.js +388 -0
- package/HiTable/ChildRow.js +432 -0
- package/HiTable/ColumnFilter.js +490 -0
- package/HiTable/HeaderCell.js +463 -0
- package/HiTable/HiStickyRow.js +300 -0
- package/HiTable/HiTable.js +1012 -0
- package/HiTable/HiTableBody.js +547 -0
- package/HiTable/HiTableContextMenu.js +214 -0
- package/HiTable/HiTableFooterScroll.js +202 -0
- package/HiTable/HiTableHead.js +489 -0
- package/HiTable/OrderColumns.js +557 -0
- package/HiTable/constants.js +105 -0
- package/HiTable/index.js +25 -0
- package/HiTopBar/HiTopBar.js +635 -0
- package/HiTopBar/index.js +16 -0
- package/Hidden/Hidden.js +130 -0
- package/Hidden/HiddenCss.js +175 -0
- package/Hidden/HiddenJs.js +149 -0
- package/Hidden/index.js +16 -0
- package/Icon/Icon.js +109 -0
- package/Icon/index.js +16 -0
- package/IconButton/IconButton.js +146 -0
- package/IconButton/index.js +16 -0
- package/Input/Input.js +682 -0
- package/Input/InputAdornment.js +116 -0
- package/Input/InputLabel.js +163 -0
- package/Input/Textarea.js +301 -0
- package/Input/index.js +34 -0
- package/LICENSE +21 -0
- package/List/List.js +167 -0
- package/List/ListItem.js +279 -0
- package/List/ListItemAvatar.js +100 -0
- package/List/ListItemIcon.js +77 -0
- package/List/ListItemSecondaryAction.js +76 -0
- package/List/ListItemText.js +145 -0
- package/List/ListSubheader.js +127 -0
- package/List/index.js +70 -0
- package/Menu/Menu.js +274 -0
- package/Menu/MenuItem.js +113 -0
- package/Menu/MenuList.js +253 -0
- package/Menu/index.js +34 -0
- package/MobileStepper/MobileStepper.js +173 -0
- package/MobileStepper/index.js +16 -0
- package/Modal/Backdrop.js +102 -0
- package/Modal/Modal.js +502 -0
- package/Modal/ModalManager.js +210 -0
- package/Modal/index.js +34 -0
- package/Modal/isOverflowing.js +43 -0
- package/Modal/manageAriaHidden.js +45 -0
- package/Paper/Paper.js +111 -0
- package/Paper/index.js +16 -0
- package/Popover/Popover.js +564 -0
- package/Popover/index.js +16 -0
- package/Portal/LegacyPortal.js +158 -0
- package/Portal/Portal.js +144 -0
- package/Portal/index.js +21 -0
- package/Progress/CircularProgress.js +228 -0
- package/Progress/LinearProgress.js +258 -0
- package/Progress/index.js +25 -0
- package/README.md +237 -0
- package/Radio/Radio.js +155 -0
- package/Radio/RadioGroup.js +168 -0
- package/Radio/index.js +25 -0
- package/Reboot/Reboot.js +106 -0
- package/Reboot/index.js +16 -0
- package/Select/Select.js +229 -0
- package/Select/SelectInput.js +502 -0
- package/Select/index.js +16 -0
- package/Snackbar/Snackbar.js +451 -0
- package/Snackbar/SnackbarContent.js +135 -0
- package/Snackbar/index.js +25 -0
- package/Stepper/Step.js +151 -0
- package/Stepper/StepButton.js +143 -0
- package/Stepper/StepConnector.js +118 -0
- package/Stepper/StepContent.js +153 -0
- package/Stepper/StepIcon.js +86 -0
- package/Stepper/StepLabel.js +200 -0
- package/Stepper/StepPositionIcon.js +95 -0
- package/Stepper/Stepper.js +161 -0
- package/Stepper/index.js +61 -0
- package/SvgIcon/SvgIcon.js +147 -0
- package/SvgIcon/index.js +16 -0
- package/Switch/Switch.js +215 -0
- package/Switch/index.js +16 -0
- package/Table/Table.js +127 -0
- package/Table/TableBody.js +121 -0
- package/Table/TableCell.js +181 -0
- package/Table/TableFooter.js +93 -0
- package/Table/TableHead.js +121 -0
- package/Table/TablePagination.js +310 -0
- package/Table/TablePaginationActions.js +183 -0
- package/Table/TableRow.js +127 -0
- package/Table/TableSortLabel.js +145 -0
- package/Table/index.js +79 -0
- package/Tabs/Tab.js +340 -0
- package/Tabs/TabIndicator.js +95 -0
- package/Tabs/TabScrollButton.js +112 -0
- package/Tabs/Tabs.js +530 -0
- package/Tabs/index.js +25 -0
- package/TextField/TextField.js +290 -0
- package/TextField/index.js +16 -0
- package/Toolbar/Toolbar.js +89 -0
- package/Toolbar/index.js +16 -0
- package/Tooltip/Tooltip.js +514 -0
- package/Tooltip/index.js +16 -0
- package/Typography/Typography.js +192 -0
- package/Typography/index.js +16 -0
- package/colors/amber.js +23 -0
- package/colors/blue.js +23 -0
- package/colors/blueGrey.js +23 -0
- package/colors/brown.js +23 -0
- package/colors/common.js +11 -0
- package/colors/cyan.js +23 -0
- package/colors/deepOrange.js +23 -0
- package/colors/deepPurple.js +23 -0
- package/colors/green.js +23 -0
- package/colors/grey.js +23 -0
- package/colors/index.js +187 -0
- package/colors/indigo.js +23 -0
- package/colors/lightBlue.js +23 -0
- package/colors/lightGreen.js +23 -0
- package/colors/lime.js +23 -0
- package/colors/orange.js +23 -0
- package/colors/pink.js +23 -0
- package/colors/purple.js +23 -0
- package/colors/red.js +23 -0
- package/colors/teal.js +23 -0
- package/colors/yellow.js +23 -0
- package/es/AppBar/AppBar.js +106 -0
- package/es/AppBar/index.js +1 -0
- package/es/Avatar/Avatar.js +136 -0
- package/es/Avatar/index.js +1 -0
- package/es/Badge/Badge.js +112 -0
- package/es/Badge/index.js +1 -0
- package/es/BottomNavigation/BottomNavigation.js +86 -0
- package/es/BottomNavigation/BottomNavigationAction.js +153 -0
- package/es/BottomNavigation/index.js +2 -0
- package/es/Button/Button.js +274 -0
- package/es/Button/index.js +1 -0
- package/es/ButtonBase/ButtonBase.js +358 -0
- package/es/ButtonBase/Ripple.js +102 -0
- package/es/ButtonBase/TouchRipple.js +268 -0
- package/es/ButtonBase/createRippleHandler.js +23 -0
- package/es/ButtonBase/index.js +1 -0
- package/es/Card/Card.js +27 -0
- package/es/Card/CardActions.js +58 -0
- package/es/Card/CardContent.js +45 -0
- package/es/Card/CardHeader.js +120 -0
- package/es/Card/CardMedia.js +76 -0
- package/es/Card/index.js +5 -0
- package/es/Checkbox/Checkbox.js +117 -0
- package/es/Checkbox/index.js +1 -0
- package/es/Chip/Chip.js +241 -0
- package/es/Chip/index.js +1 -0
- package/es/Dialog/Dialog.js +231 -0
- package/es/Dialog/DialogActions.js +58 -0
- package/es/Dialog/DialogContent.js +48 -0
- package/es/Dialog/DialogContentText.js +41 -0
- package/es/Dialog/DialogTitle.js +57 -0
- package/es/Dialog/index.js +6 -0
- package/es/Dialog/withMobileDialog.js +25 -0
- package/es/Divider/Divider.js +83 -0
- package/es/Divider/index.js +1 -0
- package/es/Drawer/Drawer.js +252 -0
- package/es/Drawer/index.js +1 -0
- package/es/ExpansionPanel/ExpansionPanel.js +194 -0
- package/es/ExpansionPanel/ExpansionPanelActions.js +47 -0
- package/es/ExpansionPanel/ExpansionPanelDetails.js +42 -0
- package/es/ExpansionPanel/ExpansionPanelSummary.js +182 -0
- package/es/ExpansionPanel/index.js +4 -0
- package/es/Form/FormControl.js +214 -0
- package/es/Form/FormControlLabel.js +137 -0
- package/es/Form/FormGroup.js +62 -0
- package/es/Form/FormHelperText.js +110 -0
- package/es/Form/FormLabel.js +132 -0
- package/es/Form/index.js +5 -0
- package/es/Grid/Grid.js +353 -0
- package/es/Grid/index.js +1 -0
- package/es/GridList/GridList.js +97 -0
- package/es/GridList/GridListTile.js +153 -0
- package/es/GridList/GridListTileBar.js +152 -0
- package/es/GridList/index.js +3 -0
- package/es/HiBadge/HiBadge.js +76 -0
- package/es/HiBadge/index.js +1 -0
- package/es/HiButton/HiButton.js +130 -0
- package/es/HiButton/index.js +1 -0
- package/es/HiCheckbox/HiCheckbox.js +101 -0
- package/es/HiCheckbox/index.js +1 -0
- package/es/HiChip/HiChip.js +148 -0
- package/es/HiChip/HiChipSwitch.js +244 -0
- package/es/HiChip/index.js +2 -0
- package/es/HiColoredLabel/HiColoredLabel.js +84 -0
- package/es/HiColoredLabel/index.js +1 -0
- package/es/HiDatePicker/Caption.js +67 -0
- package/es/HiDatePicker/HiDatePicker.js +314 -0
- package/es/HiDatePicker/HiDateRangePicker.js +565 -0
- package/es/HiDatePicker/HiDateRangeSelector.js +337 -0
- package/es/HiDatePicker/HiWeekPicker.js +296 -0
- package/es/HiDatePicker/ListPicker.js +93 -0
- package/es/HiDatePicker/Navbar.js +130 -0
- package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +114 -0
- package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +80 -0
- package/es/HiDatePicker/Overlays/Overlay.js +76 -0
- package/es/HiDatePicker/Overlays/TimePickerOverlay.js +218 -0
- package/es/HiDatePicker/Overlays/YearPickerOverlay.js +109 -0
- package/es/HiDatePicker/Overlays/index.js +5 -0
- package/es/HiDatePicker/Weekday.js +34 -0
- package/es/HiDatePicker/index.js +7 -0
- package/es/HiDatePicker/stylesheet.js +175 -0
- package/es/HiForm/HiEmailField.js +71 -0
- package/es/HiForm/HiFormControl.js +298 -0
- package/es/HiForm/HiFormLabel.js +122 -0
- package/es/HiForm/HiInput.js +485 -0
- package/es/HiForm/HiPasswordField.js +70 -0
- package/es/HiForm/HiSearchField.js +135 -0
- package/es/HiForm/HiTextField.js +239 -0
- package/es/HiForm/index.js +7 -0
- package/es/HiLoader/HiLoader.js +33 -0
- package/es/HiLoader/index.js +1 -0
- package/es/HiPins/HiPins.js +66 -0
- package/es/HiPins/index.js +1 -0
- package/es/HiRadio/HiRadio.js +41 -0
- package/es/HiRadio/index.js +1 -0
- package/es/HiSelect/HiSelect.js +713 -0
- package/es/HiSelect/HiSelectField.js +106 -0
- package/es/HiSelect/HiSuggestSelect.js +223 -0
- package/es/HiSelect/HiSuggestSelectField.js +89 -0
- package/es/HiSelect/SelectInput.js +262 -0
- package/es/HiSelect/index.js +11 -0
- package/es/HiSelectableList/HiSelectableList.js +195 -0
- package/es/HiSelectableList/HiSelectableListItem.js +441 -0
- package/es/HiSelectableList/index.js +2 -0
- package/es/HiSwitch/HiSwitch.js +138 -0
- package/es/HiSwitch/HiSwitchState.js +169 -0
- package/es/HiSwitch/index.js +2 -0
- package/es/HiTable/BodyCellBuilder.js +345 -0
- package/es/HiTable/BodyCells/CellAccount.js +40 -0
- package/es/HiTable/BodyCells/CellAccountNumber.js +166 -0
- package/es/HiTable/BodyCells/CellAddress.js +129 -0
- package/es/HiTable/BodyCells/CellCountry.js +107 -0
- package/es/HiTable/BodyCells/CellDate.js +111 -0
- package/es/HiTable/BodyCells/CellIcon.js +83 -0
- package/es/HiTable/BodyCells/CellImage.js +115 -0
- package/es/HiTable/BodyCells/CellLayout.js +198 -0
- package/es/HiTable/BodyCells/CellNumeric.js +71 -0
- package/es/HiTable/BodyCells/CellRate.js +131 -0
- package/es/HiTable/BodyCells/CellSentinel.js +153 -0
- package/es/HiTable/BodyCells/CellStatus.js +73 -0
- package/es/HiTable/BodyCells/CellText.js +188 -0
- package/es/HiTable/BodyCells/CellThirdPartySecurity.js +89 -0
- package/es/HiTable/BodyCells/index.js +16 -0
- package/es/HiTable/BodyRow.js +314 -0
- package/es/HiTable/ChildRow.js +345 -0
- package/es/HiTable/ColumnFilter.js +394 -0
- package/es/HiTable/HeaderCell.js +376 -0
- package/es/HiTable/HiStickyRow.js +217 -0
- package/es/HiTable/HiTable.js +876 -0
- package/es/HiTable/HiTableBody.js +454 -0
- package/es/HiTable/HiTableContextMenu.js +150 -0
- package/es/HiTable/HiTableFooterScroll.js +144 -0
- package/es/HiTable/HiTableHead.js +403 -0
- package/es/HiTable/OrderColumns.js +437 -0
- package/es/HiTable/constants.js +180 -0
- package/es/HiTable/index.js +2 -0
- package/es/HiTopBar/HiTopBar.js +527 -0
- package/es/HiTopBar/index.js +1 -0
- package/es/Hidden/Hidden.js +107 -0
- package/es/Hidden/HiddenCss.js +151 -0
- package/es/Hidden/HiddenJs.js +129 -0
- package/es/Hidden/index.js +1 -0
- package/es/Icon/Icon.js +74 -0
- package/es/Icon/index.js +1 -0
- package/es/IconButton/IconButton.js +106 -0
- package/es/IconButton/index.js +1 -0
- package/es/Input/Input.js +616 -0
- package/es/Input/InputAdornment.js +83 -0
- package/es/Input/InputLabel.js +138 -0
- package/es/Input/Textarea.js +234 -0
- package/es/Input/index.js +3 -0
- package/es/List/List.js +106 -0
- package/es/List/ListItem.js +212 -0
- package/es/List/ListItemAvatar.js +63 -0
- package/es/List/ListItemIcon.js +46 -0
- package/es/List/ListItemSecondaryAction.js +45 -0
- package/es/List/ListItemText.js +114 -0
- package/es/List/ListSubheader.js +90 -0
- package/es/List/index.js +7 -0
- package/es/Menu/Menu.js +205 -0
- package/es/Menu/MenuItem.js +75 -0
- package/es/Menu/MenuList.js +168 -0
- package/es/Menu/index.js +3 -0
- package/es/MobileStepper/MobileStepper.js +137 -0
- package/es/MobileStepper/index.js +1 -0
- package/es/Modal/Backdrop.js +67 -0
- package/es/Modal/Modal.js +398 -0
- package/es/Modal/ModalManager.js +162 -0
- package/es/Modal/index.js +3 -0
- package/es/Modal/isOverflowing.js +25 -0
- package/es/Modal/manageAriaHidden.js +33 -0
- package/es/Paper/Paper.js +81 -0
- package/es/Paper/index.js +1 -0
- package/es/Popover/Popover.js +455 -0
- package/es/Popover/index.js +1 -0
- package/es/Portal/LegacyPortal.js +97 -0
- package/es/Portal/Portal.js +82 -0
- package/es/Portal/index.js +5 -0
- package/es/Progress/CircularProgress.js +201 -0
- package/es/Progress/LinearProgress.js +235 -0
- package/es/Progress/index.js +2 -0
- package/es/Radio/Radio.js +113 -0
- package/es/Radio/RadioGroup.js +101 -0
- package/es/Radio/index.js +2 -0
- package/es/Reboot/Reboot.js +55 -0
- package/es/Reboot/index.js +1 -0
- package/es/Select/Select.js +199 -0
- package/es/Select/SelectInput.js +414 -0
- package/es/Select/index.js +1 -0
- package/es/Snackbar/Snackbar.js +370 -0
- package/es/Snackbar/SnackbarContent.js +96 -0
- package/es/Snackbar/index.js +2 -0
- package/es/Stepper/Step.js +120 -0
- package/es/Stepper/StepButton.js +111 -0
- package/es/Stepper/StepConnector.js +85 -0
- package/es/Stepper/StepContent.js +116 -0
- package/es/Stepper/StepIcon.js +54 -0
- package/es/Stepper/StepLabel.js +170 -0
- package/es/Stepper/StepPositionIcon.js +64 -0
- package/es/Stepper/Stepper.js +126 -0
- package/es/Stepper/index.js +6 -0
- package/es/SvgIcon/SvgIcon.js +117 -0
- package/es/SvgIcon/index.js +1 -0
- package/es/Switch/Switch.js +178 -0
- package/es/Switch/index.js +1 -0
- package/es/Table/Table.js +64 -0
- package/es/Table/TableBody.js +61 -0
- package/es/Table/TableCell.js +153 -0
- package/es/Table/TableFooter.js +44 -0
- package/es/Table/TableHead.js +61 -0
- package/es/Table/TablePagination.js +224 -0
- package/es/Table/TablePaginationActions.js +116 -0
- package/es/Table/TableRow.js +99 -0
- package/es/Table/TableSortLabel.js +101 -0
- package/es/Table/index.js +8 -0
- package/es/Tabs/Tab.js +271 -0
- package/es/Tabs/TabIndicator.js +63 -0
- package/es/Tabs/TabScrollButton.js +70 -0
- package/es/Tabs/Tabs.js +425 -0
- package/es/Tabs/index.js +2 -0
- package/es/TextField/TextField.js +259 -0
- package/es/TextField/index.js +1 -0
- package/es/Toolbar/Toolbar.js +55 -0
- package/es/Toolbar/index.js +1 -0
- package/es/Tooltip/Tooltip.js +425 -0
- package/es/Tooltip/index.js +1 -0
- package/es/Typography/Typography.js +164 -0
- package/es/Typography/index.js +1 -0
- package/es/colors/amber.js +18 -0
- package/es/colors/blue.js +18 -0
- package/es/colors/blueGrey.js +18 -0
- package/es/colors/brown.js +18 -0
- package/es/colors/common.js +6 -0
- package/es/colors/cyan.js +18 -0
- package/es/colors/deepOrange.js +18 -0
- package/es/colors/deepPurple.js +18 -0
- package/es/colors/green.js +18 -0
- package/es/colors/grey.js +18 -0
- package/es/colors/index.js +20 -0
- package/es/colors/indigo.js +18 -0
- package/es/colors/lightBlue.js +18 -0
- package/es/colors/lightGreen.js +18 -0
- package/es/colors/lime.js +18 -0
- package/es/colors/orange.js +18 -0
- package/es/colors/pink.js +18 -0
- package/es/colors/purple.js +18 -0
- package/es/colors/red.js +18 -0
- package/es/colors/teal.js +18 -0
- package/es/colors/yellow.js +18 -0
- package/es/index.js +64 -0
- package/es/internal/RefHolder.js +20 -0
- package/es/internal/SwitchBase.js +219 -0
- package/es/internal/svg-icons/ArrowDownward.js +20 -0
- package/es/internal/svg-icons/ArrowDropDown.js +20 -0
- package/es/internal/svg-icons/Cancel.js +19 -0
- package/es/internal/svg-icons/CheckBox.js +19 -0
- package/es/internal/svg-icons/CheckBoxOutlineBlank.js +19 -0
- package/es/internal/svg-icons/CheckCircle.js +19 -0
- package/es/internal/svg-icons/IndeterminateCheckBox.js +19 -0
- package/es/internal/svg-icons/KeyboardArrowLeft.js +19 -0
- package/es/internal/svg-icons/KeyboardArrowRight.js +19 -0
- package/es/internal/svg-icons/RadioButtonChecked.js +19 -0
- package/es/internal/svg-icons/RadioButtonUnchecked.js +19 -0
- package/es/styles/MuiThemeProvider.js +125 -0
- package/es/styles/colorManipulator.js +221 -0
- package/es/styles/createBreakpoints.js +69 -0
- package/es/styles/createGenerateClassName.js +72 -0
- package/es/styles/createHiMuiTheme.js +296 -0
- package/es/styles/createMixins.js +25 -0
- package/es/styles/createMuiTheme.js +45 -0
- package/es/styles/createPalette.js +164 -0
- package/es/styles/createTypography.js +116 -0
- package/es/styles/getStylesCreator.js +34 -0
- package/es/styles/index.js +7 -0
- package/es/styles/jssPreset.js +16 -0
- package/es/styles/shadows.js +11 -0
- package/es/styles/spacing.js +5 -0
- package/es/styles/themeListener.js +31 -0
- package/es/styles/transitions.js +80 -0
- package/es/styles/withStyles.js +300 -0
- package/es/styles/withTheme.js +65 -0
- package/es/styles/zIndex.js +12 -0
- package/es/svg-icons/ArrowDownward.js +20 -0
- package/es/svg-icons/ArrowDropDown.js +20 -0
- package/es/svg-icons/Cancel.js +19 -0
- package/es/svg-icons/CheckBox.js +19 -0
- package/es/svg-icons/CheckBoxOutlineBlank.js +19 -0
- package/es/svg-icons/CheckCircle.js +19 -0
- package/es/svg-icons/HiAccount.js +33 -0
- package/es/svg-icons/HiAll.js +43 -0
- package/es/svg-icons/HiBilling.js +33 -0
- package/es/svg-icons/HiCatalog.js +33 -0
- package/es/svg-icons/HiCustomer.js +39 -0
- package/es/svg-icons/HiFinance.js +33 -0
- package/es/svg-icons/HiRoute.js +33 -0
- package/es/svg-icons/HiSettlement.js +36 -0
- package/es/svg-icons/HiSizeLarge.js +19 -0
- package/es/svg-icons/HiSizeMedium.js +19 -0
- package/es/svg-icons/HiSizeSmall.js +19 -0
- package/es/svg-icons/HiTransaction.js +33 -0
- package/es/svg-icons/HiUser.js +39 -0
- package/es/svg-icons/HiWidget.js +43 -0
- package/es/svg-icons/IndeterminateCheckBox.js +19 -0
- package/es/svg-icons/KeyboardArrowLeft.js +19 -0
- package/es/svg-icons/KeyboardArrowRight.js +19 -0
- package/es/svg-icons/RadioButtonChecked.js +19 -0
- package/es/svg-icons/RadioButtonUnchecked.js +19 -0
- package/es/svg-icons/index.js +11 -0
- package/es/test-utils/createMount.js +32 -0
- package/es/test-utils/createRender.js +16 -0
- package/es/test-utils/createShallow.js +33 -0
- package/es/test-utils/getClasses.js +21 -0
- package/es/test-utils/index.js +5 -0
- package/es/test-utils/until.js +32 -0
- package/es/test-utils/unwrap.js +5 -0
- package/es/transitions/Collapse.js +245 -0
- package/es/transitions/Fade.js +132 -0
- package/es/transitions/Grow.js +173 -0
- package/es/transitions/Slide.js +291 -0
- package/es/transitions/Zoom.js +129 -0
- package/es/transitions/index.js +5 -0
- package/es/transitions/utils.js +10 -0
- package/es/utils/ClickAwayListener.js +65 -0
- package/es/utils/HiIconBuilder.js +99 -0
- package/es/utils/addEventListener.js +11 -0
- package/es/utils/exactProp.js +21 -0
- package/es/utils/helpers.js +65 -0
- package/es/utils/hiGetMdiIcon.js +12 -0
- package/es/utils/hiHelpers.js +173 -0
- package/es/utils/keyboardFocus.js +51 -0
- package/es/utils/manageAriaHidden.js +33 -0
- package/es/utils/reactHelpers.js +21 -0
- package/es/utils/requirePropFactory.js +16 -0
- package/es/utils/withWidth.js +141 -0
- package/index.es.js +69 -0
- package/index.js +853 -0
- package/internal/RefHolder.js +64 -0
- package/internal/SwitchBase.js +287 -0
- package/internal/svg-icons/ArrowDownward.js +37 -0
- package/internal/svg-icons/ArrowDropDown.js +37 -0
- package/internal/svg-icons/Cancel.js +36 -0
- package/internal/svg-icons/CheckBox.js +36 -0
- package/internal/svg-icons/CheckBoxOutlineBlank.js +36 -0
- package/internal/svg-icons/CheckCircle.js +36 -0
- package/internal/svg-icons/IndeterminateCheckBox.js +36 -0
- package/internal/svg-icons/KeyboardArrowLeft.js +36 -0
- package/internal/svg-icons/KeyboardArrowRight.js +36 -0
- package/internal/svg-icons/RadioButtonChecked.js +36 -0
- package/internal/svg-icons/RadioButtonUnchecked.js +36 -0
- package/package.json +77 -0
- package/styles/MuiThemeProvider.js +197 -0
- package/styles/colorManipulator.js +255 -0
- package/styles/createBreakpoints.js +86 -0
- package/styles/createGenerateClassName.js +88 -0
- package/styles/createHiMuiTheme.js +328 -0
- package/styles/createMixins.js +42 -0
- package/styles/createMuiTheme.js +91 -0
- package/styles/createPalette.js +208 -0
- package/styles/createTypography.js +138 -0
- package/styles/getStylesCreator.js +55 -0
- package/styles/index.js +70 -0
- package/styles/jssPreset.js +41 -0
- package/styles/shadows.js +16 -0
- package/styles/spacing.js +10 -0
- package/styles/themeListener.js +44 -0
- package/styles/transitions.js +112 -0
- package/styles/withStyles.js +416 -0
- package/styles/withTheme.js +127 -0
- package/styles/zIndex.js +17 -0
- package/svg-icons/ArrowDownward.js +37 -0
- package/svg-icons/ArrowDropDown.js +37 -0
- package/svg-icons/Cancel.js +36 -0
- package/svg-icons/CheckBox.js +36 -0
- package/svg-icons/CheckBoxOutlineBlank.js +36 -0
- package/svg-icons/CheckCircle.js +36 -0
- package/svg-icons/HiAccount.js +52 -0
- package/svg-icons/HiAll.js +62 -0
- package/svg-icons/HiBilling.js +52 -0
- package/svg-icons/HiCatalog.js +52 -0
- package/svg-icons/HiCustomer.js +58 -0
- package/svg-icons/HiFinance.js +52 -0
- package/svg-icons/HiRoute.js +52 -0
- package/svg-icons/HiSettlement.js +52 -0
- package/svg-icons/HiSizeLarge.js +36 -0
- package/svg-icons/HiSizeMedium.js +36 -0
- package/svg-icons/HiSizeSmall.js +36 -0
- package/svg-icons/HiTransaction.js +52 -0
- package/svg-icons/HiUser.js +58 -0
- package/svg-icons/HiWidget.js +62 -0
- package/svg-icons/IndeterminateCheckBox.js +36 -0
- package/svg-icons/KeyboardArrowLeft.js +36 -0
- package/svg-icons/KeyboardArrowRight.js +36 -0
- package/svg-icons/RadioButtonChecked.js +36 -0
- package/svg-icons/RadioButtonUnchecked.js +36 -0
- package/svg-icons/index.js +106 -0
- package/test-utils/createMount.js +53 -0
- package/test-utils/createRender.js +36 -0
- package/test-utils/createShallow.js +60 -0
- package/test-utils/getClasses.js +47 -0
- package/test-utils/index.js +52 -0
- package/test-utils/until.js +54 -0
- package/test-utils/unwrap.js +11 -0
- package/transitions/Collapse.js +324 -0
- package/transitions/Fade.js +207 -0
- package/transitions/Grow.js +251 -0
- package/transitions/Slide.js +381 -0
- package/transitions/Zoom.js +204 -0
- package/transitions/index.js +52 -0
- package/transitions/utils.js +21 -0
- package/umd/hipay-material-ui.development.js +113768 -0
- package/umd/hipay-material-ui.production.min.js +21 -0
- package/utils/ClickAwayListener.js +122 -0
- package/utils/HiIconBuilder.js +168 -0
- package/utils/addEventListener.js +26 -0
- package/utils/exactProp.js +40 -0
- package/utils/helpers.js +97 -0
- package/utils/hiGetMdiIcon.js +20 -0
- package/utils/hiHelpers.js +195 -0
- package/utils/keyboardFocus.js +75 -0
- package/utils/manageAriaHidden.js +49 -0
- package/utils/reactHelpers.js +27 -0
- package/utils/requirePropFactory.js +23 -0
- package/utils/withWidth.js +214 -0
|
@@ -0,0 +1,1012 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SORTED_COLUMN_ERROR_MESSAGE = exports.MANDATORY_COLUMN_ERROR_MESSAGE = exports.styles = undefined;
|
|
7
|
+
|
|
8
|
+
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
|
|
11
|
+
|
|
12
|
+
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
|
|
13
|
+
|
|
14
|
+
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
|
|
15
|
+
|
|
16
|
+
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
|
17
|
+
|
|
18
|
+
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
19
|
+
|
|
20
|
+
var _createClass2 = require('babel-runtime/helpers/createClass');
|
|
21
|
+
|
|
22
|
+
var _createClass3 = _interopRequireDefault(_createClass2);
|
|
23
|
+
|
|
24
|
+
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
|
|
25
|
+
|
|
26
|
+
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
|
|
27
|
+
|
|
28
|
+
var _inherits2 = require('babel-runtime/helpers/inherits');
|
|
29
|
+
|
|
30
|
+
var _inherits3 = _interopRequireDefault(_inherits2);
|
|
31
|
+
|
|
32
|
+
var _react = require('react');
|
|
33
|
+
|
|
34
|
+
var _react2 = _interopRequireDefault(_react);
|
|
35
|
+
|
|
36
|
+
var _propTypes = require('prop-types');
|
|
37
|
+
|
|
38
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
39
|
+
|
|
40
|
+
var _Table = require('material-ui/Table');
|
|
41
|
+
|
|
42
|
+
var _Table2 = _interopRequireDefault(_Table);
|
|
43
|
+
|
|
44
|
+
var _ArrowUp = require('mdi-material-ui/ArrowUp');
|
|
45
|
+
|
|
46
|
+
var _ArrowUp2 = _interopRequireDefault(_ArrowUp);
|
|
47
|
+
|
|
48
|
+
var _reactProptypeConditionalRequire = require('react-proptype-conditional-require');
|
|
49
|
+
|
|
50
|
+
var _reactProptypeConditionalRequire2 = _interopRequireDefault(_reactProptypeConditionalRequire);
|
|
51
|
+
|
|
52
|
+
var _HiButton = require('../HiButton');
|
|
53
|
+
|
|
54
|
+
var _HiButton2 = _interopRequireDefault(_HiButton);
|
|
55
|
+
|
|
56
|
+
var _styles = require('../styles');
|
|
57
|
+
|
|
58
|
+
var _HiTableHead = require('./HiTableHead');
|
|
59
|
+
|
|
60
|
+
var _HiTableHead2 = _interopRequireDefault(_HiTableHead);
|
|
61
|
+
|
|
62
|
+
var _HiTableBody = require('./HiTableBody');
|
|
63
|
+
|
|
64
|
+
var _HiTableBody2 = _interopRequireDefault(_HiTableBody);
|
|
65
|
+
|
|
66
|
+
var _HiTableFooterScroll = require('./HiTableFooterScroll');
|
|
67
|
+
|
|
68
|
+
var _HiTableFooterScroll2 = _interopRequireDefault(_HiTableFooterScroll);
|
|
69
|
+
|
|
70
|
+
var _constants = require('./constants');
|
|
71
|
+
|
|
72
|
+
var cst = _interopRequireWildcard(_constants);
|
|
73
|
+
|
|
74
|
+
var _HiTableContextMenu = require('./HiTableContextMenu');
|
|
75
|
+
|
|
76
|
+
var _HiTableContextMenu2 = _interopRequireDefault(_HiTableContextMenu);
|
|
77
|
+
|
|
78
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
79
|
+
|
|
80
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
81
|
+
|
|
82
|
+
var styles = exports.styles = function styles(theme) {
|
|
83
|
+
return {
|
|
84
|
+
root: {
|
|
85
|
+
position: 'relative',
|
|
86
|
+
backgroundColor: theme.palette.background3
|
|
87
|
+
},
|
|
88
|
+
tableWrapper: {
|
|
89
|
+
overflowX: 'auto',
|
|
90
|
+
overflowY: 'hidden'
|
|
91
|
+
},
|
|
92
|
+
filter: {
|
|
93
|
+
position: 'relative',
|
|
94
|
+
top: 2,
|
|
95
|
+
left: 2,
|
|
96
|
+
cursor: 'pointer'
|
|
97
|
+
},
|
|
98
|
+
table: {
|
|
99
|
+
position: 'relative',
|
|
100
|
+
width: '100%',
|
|
101
|
+
overflow: 'hidden',
|
|
102
|
+
borderCollapse: 'collapse',
|
|
103
|
+
backgroundColor: theme.palette.background3,
|
|
104
|
+
zIndex: 10
|
|
105
|
+
},
|
|
106
|
+
backToTopButtonContainer: {
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
width: '100%',
|
|
109
|
+
textAlign: 'center',
|
|
110
|
+
height: 48,
|
|
111
|
+
top: -99999
|
|
112
|
+
},
|
|
113
|
+
backToTopButton: {
|
|
114
|
+
zIndex: 11
|
|
115
|
+
},
|
|
116
|
+
backToTopButtonArrow: {
|
|
117
|
+
height: 18,
|
|
118
|
+
width: 18,
|
|
119
|
+
position: 'relative',
|
|
120
|
+
top: -2,
|
|
121
|
+
margin: 2
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var MANDATORY_COLUMN_ERROR_MESSAGE = exports.MANDATORY_COLUMN_ERROR_MESSAGE = 'Vous devez saisir la propriété "mandatoryColumnId" pour les tableaux "orderable"';
|
|
127
|
+
var SORTED_COLUMN_ERROR_MESSAGE = exports.SORTED_COLUMN_ERROR_MESSAGE = 'Vous devez saisir la propriété "sortedColumnId" pour les tableaux "sortable"';
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Display a list of elements in a table
|
|
131
|
+
* The click on FilterVariant opens a menu that allows the user
|
|
132
|
+
* to filter by value or to order by a specific column
|
|
133
|
+
*
|
|
134
|
+
* Renderer behaviors:
|
|
135
|
+
* - Widths:
|
|
136
|
+
* - all cells types have default width size (px) for each kind of view (L/M/S).
|
|
137
|
+
* - if view isn't set we use the largest one (large).
|
|
138
|
+
* - cell width can be overriden by column's props.
|
|
139
|
+
* - if there is not enough space to render all cells,
|
|
140
|
+
* we use horizontal scroll and cells width are fixed
|
|
141
|
+
* - if there is enough space, no scroll and only the first cell (column),
|
|
142
|
+
* which is not explicitly set as unfixed (fixedWidth = false),
|
|
143
|
+
* has not fixed width and may enlarge his width to fit available space.
|
|
144
|
+
*
|
|
145
|
+
* - Fixed Header:
|
|
146
|
+
* - header rows should be fixed and always be visible on body scroll.
|
|
147
|
+
* - vertical scrollbar should be hidden
|
|
148
|
+
* - if nbRows * cellHeight > tableHeight,
|
|
149
|
+
* we virtually enlarge the table then crop arbitrary width to hide the scrollbar.
|
|
150
|
+
* as each browsers may have different scrollbar widths,
|
|
151
|
+
* it may trouble column header alignment.
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
var _ref = _react2.default.createElement('div', null);
|
|
155
|
+
|
|
156
|
+
var _ref2 = _react2.default.createElement('div', null);
|
|
157
|
+
|
|
158
|
+
var _ref3 = _react2.default.createElement('div', null);
|
|
159
|
+
|
|
160
|
+
var _ref4 = _react2.default.createElement('div', null);
|
|
161
|
+
|
|
162
|
+
var _ref5 = _react2.default.createElement('div', null);
|
|
163
|
+
|
|
164
|
+
var _ref6 = _react2.default.createElement('div', null);
|
|
165
|
+
|
|
166
|
+
var _ref7 = _react2.default.createElement('div', null);
|
|
167
|
+
|
|
168
|
+
var _ref8 = _react2.default.createElement('div', null);
|
|
169
|
+
|
|
170
|
+
var HiTable = function (_React$Component) {
|
|
171
|
+
(0, _inherits3.default)(HiTable, _React$Component);
|
|
172
|
+
|
|
173
|
+
function HiTable(props) {
|
|
174
|
+
(0, _classCallCheck3.default)(this, HiTable);
|
|
175
|
+
|
|
176
|
+
var _this = (0, _possibleConstructorReturn3.default)(this, (HiTable.__proto__ || (0, _getPrototypeOf2.default)(HiTable)).call(this, props));
|
|
177
|
+
|
|
178
|
+
_this.wrapperDiv = _ref;
|
|
179
|
+
_this.wrapperWidth = 0;
|
|
180
|
+
_this.tHead = _ref2;
|
|
181
|
+
_this.tHeadLeftPadding = _ref3;
|
|
182
|
+
_this.tHeadRightPadding = _ref4;
|
|
183
|
+
_this.tHeadFirst = _ref5;
|
|
184
|
+
_this.tBody = _ref6;
|
|
185
|
+
_this.tBodyScrollbarWidth = 0;
|
|
186
|
+
_this.tBodyLeftPaddingElements = [];
|
|
187
|
+
_this.tBodyRightPaddingElements = [];
|
|
188
|
+
_this.tBodyFirstElements = [];
|
|
189
|
+
_this.tFoot = _ref7;
|
|
190
|
+
_this.tFootCenteredDiv = _ref8;
|
|
191
|
+
_this.backToTopButton = null;
|
|
192
|
+
_this.liveDataSpan = null;
|
|
193
|
+
_this.scrollTop = 0;
|
|
194
|
+
_this.scrollLeft = 0;
|
|
195
|
+
_this.groupByRowsPositions = [];
|
|
196
|
+
|
|
197
|
+
_this.updateFloatingBodyElementRefs = function () {
|
|
198
|
+
_this.tBodyScrollbarWidth = _this.tBody.offsetWidth - _this.tBody.clientWidth;
|
|
199
|
+
|
|
200
|
+
if (_this.tHead && _this.tBodyScrollbarWidth > 0) {
|
|
201
|
+
_this.tHead.style.width = 'calc(100% - ' + _this.tBodyScrollbarWidth + 'px)';
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
_this.tBodyLeftPaddingElements = _this.tBody.querySelectorAll('tr td:nth-child(1), .floating-parent-row-label');
|
|
205
|
+
_this.tBodyRightPaddingElements = _this.tBody.querySelectorAll('tr td:nth-last-child(1), .floating-parent-row-indicator');
|
|
206
|
+
|
|
207
|
+
_this.tBodyFirstElements = _this.tBody.querySelectorAll('tr td:nth-child(2)');
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
_this.addNewRowRefs = function () {
|
|
211
|
+
// delayed refs getting to let time at new rows to build up
|
|
212
|
+
setTimeout(function () {
|
|
213
|
+
_this.updateFloatingBodyElementRefs();
|
|
214
|
+
_this.placeHorizontalFloatingElement();
|
|
215
|
+
}, 10);
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
_this.state = {
|
|
219
|
+
dateUpdate: Date.now(),
|
|
220
|
+
isScrollToBottom: false,
|
|
221
|
+
groupByIds: {}
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// create associative array (object) with sticky row key & its values
|
|
225
|
+
// => used for sticky row badges
|
|
226
|
+
if (props.groupBy) {
|
|
227
|
+
props.dataSource.map(function (row) {
|
|
228
|
+
var value = row.datas[props.groupBy].value;
|
|
229
|
+
var date = new Date(value);
|
|
230
|
+
|
|
231
|
+
if (date instanceof Date && isFinite(date)) {
|
|
232
|
+
value = value.substr(0, 10);
|
|
233
|
+
}
|
|
234
|
+
if (!_this.state.groupByIds.hasOwnProperty(value)) {
|
|
235
|
+
_this.state.groupByIds[value] = [];
|
|
236
|
+
}
|
|
237
|
+
_this.state.groupByIds[value].push(row.datas);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Orderable
|
|
242
|
+
_this.openOrderColumnsMenu = _this.openOrderColumnsMenu.bind(_this);
|
|
243
|
+
_this.closeOrderColumnsMenu = _this.closeOrderColumnsMenu.bind(_this);
|
|
244
|
+
|
|
245
|
+
// Selectable
|
|
246
|
+
_this.toggleItem = _this.toggleItem.bind(_this);
|
|
247
|
+
_this.toggleAll = _this.toggleAll.bind(_this);
|
|
248
|
+
_this.selectAll = _this.selectAll.bind(_this);
|
|
249
|
+
_this.deselectAll = _this.deselectAll.bind(_this);
|
|
250
|
+
|
|
251
|
+
// Manage scrolling
|
|
252
|
+
_this.handleHorizontalScroll = _this.handleHorizontalScroll.bind(_this);
|
|
253
|
+
_this.handleVerticalScroll = _this.handleVerticalScroll.bind(_this);
|
|
254
|
+
_this.placeHorizontalFloatingElement = _this.placeHorizontalFloatingElement.bind(_this);
|
|
255
|
+
_this.scrollToTop = _this.scrollToTop.bind(_this);
|
|
256
|
+
|
|
257
|
+
_this.isScrollToBottom = _this.isScrollToBottom.bind(_this);
|
|
258
|
+
_this.handleRequestLiveDatas = _this.handleRequestLiveDatas.bind(_this);
|
|
259
|
+
_this.handleNextStickyRow = _this.handleNextStickyRow.bind(_this);
|
|
260
|
+
_this.handleStickyRowPositions = _this.handleStickyRowPositions.bind(_this);
|
|
261
|
+
return _this;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* DOM references
|
|
266
|
+
* use to replace element on horizontal & vertical scroll
|
|
267
|
+
*/
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
(0, _createClass3.default)(HiTable, [{
|
|
271
|
+
key: 'componentDidMount',
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
/** Lifecycle methods */
|
|
275
|
+
|
|
276
|
+
value: function componentDidMount() {
|
|
277
|
+
this.wrapperScrollOffset = this.wrapperDiv.scrollWidth - this.wrapperDiv.offsetWidth;
|
|
278
|
+
|
|
279
|
+
// Set DOM references
|
|
280
|
+
this.tHead = this.wrapperDiv.querySelector('table thead');
|
|
281
|
+
this.tHeadLeftPadding = this.tHead.querySelector('tr th:nth-child(1)');
|
|
282
|
+
this.tHeadRightPadding = this.tHead.querySelector('tr th:nth-last-child(1)');
|
|
283
|
+
this.tHeadFirst = this.tHead.querySelector('tr th:nth-child(2)');
|
|
284
|
+
this.tBody = this.wrapperDiv.querySelector('table tbody');
|
|
285
|
+
this.tFoot = this.wrapperDiv.querySelector('table tfoot');
|
|
286
|
+
this.tFootCenteredDiv = this.wrapperDiv.querySelector('table tfoot tr td div');
|
|
287
|
+
this.backToTopButton = this.wrapperDiv.querySelector('.back-to-top-button');
|
|
288
|
+
|
|
289
|
+
this.updateFloatingBodyElementRefs();
|
|
290
|
+
|
|
291
|
+
// Detect if root has horizontal scroll bar
|
|
292
|
+
if (this.wrapperDiv.scrollWidth > this.wrapperDiv.offsetWidth) {
|
|
293
|
+
// adapt first column to fixed width
|
|
294
|
+
if (this.tHeadFirst && this.tHeadFirst.style) {
|
|
295
|
+
this.tHeadFirst.style.width = 'auto';
|
|
296
|
+
}
|
|
297
|
+
// fixed footer width
|
|
298
|
+
if (this.tFootCenteredDiv && this.tFootCenteredDiv.style) {
|
|
299
|
+
this.tFootCenteredDiv.style.width = Math.round(this.wrapperDiv.offsetWidth / 2) + 'px';
|
|
300
|
+
this.tFootCenteredDiv.style.position = 'absolute';
|
|
301
|
+
this.tFootCenteredDiv.style.bottom = '0px';
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
this.updateStickyRowsPosition();
|
|
306
|
+
|
|
307
|
+
this.placeHorizontalFloatingElement();
|
|
308
|
+
}
|
|
309
|
+
}, {
|
|
310
|
+
key: 'componentDidUpdate',
|
|
311
|
+
value: function componentDidUpdate(prevProps, prevState, prevContext) {
|
|
312
|
+
var _this2 = this;
|
|
313
|
+
|
|
314
|
+
this.wrapperScrollOffset = this.wrapperDiv.scrollWidth - this.wrapperDiv.offsetWidth;
|
|
315
|
+
|
|
316
|
+
// If orderedColumns has change, possibly the sticky cells has changed too
|
|
317
|
+
if (this.props.orderedColumns[0].colId !== prevProps.orderedColumns[0].colId) {
|
|
318
|
+
this.tHeadFirst = this.tHead.querySelector('tr th:nth-child(2)');
|
|
319
|
+
this.tBodyFirstElements = this.wrapperDiv.querySelectorAll('table tbody tr td:nth-child(2)');
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// If there is new rows, update tbody first element list and left padding cells
|
|
323
|
+
if (this.props.dataSource.length > prevProps.dataSource.length) {
|
|
324
|
+
this.updateFloatingBodyElementRefs();
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
if (this.props.countLiveDatas > 0) {
|
|
328
|
+
this.liveDataSpan = this.tHead.querySelector('tr:nth-child(2) th span');
|
|
329
|
+
this.backToTopButton.style.top = '-99999px';
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (prevProps.countLiveDatas > this.props.countLiveDatas) {
|
|
333
|
+
this.setState({
|
|
334
|
+
dateUpdate: Date.now()
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Only if needed
|
|
339
|
+
if (this.props.dataSource.length > prevProps.dataSource.length || this.props.dense !== prevProps.dense || this.props.sortedColumnId !== prevProps.sortedColumnId || this.props.sortDirection !== prevProps.sortDirection) {
|
|
340
|
+
this.updateStickyRowsPosition();
|
|
341
|
+
if (this.props.dataSource.length > prevProps.dataSource.length) {
|
|
342
|
+
this.handleStickyRowPositions();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (this.props.dataSource.length > prevProps.dataSource.length && this.props.groupBy) {
|
|
346
|
+
// create associative array (object) with sticky row key & its values
|
|
347
|
+
// => used for sticky row badges
|
|
348
|
+
var groupByIds = {};
|
|
349
|
+
this.props.dataSource.map(function (row) {
|
|
350
|
+
var value = row.datas[_this2.props.groupBy].value;
|
|
351
|
+
var date = new Date(value);
|
|
352
|
+
|
|
353
|
+
if (date instanceof Date && isFinite(date)) {
|
|
354
|
+
value = value.substr(0, 10);
|
|
355
|
+
}
|
|
356
|
+
if (!groupByIds.hasOwnProperty(value)) {
|
|
357
|
+
groupByIds[value] = [];
|
|
358
|
+
}
|
|
359
|
+
groupByIds[value].push(row.datas);
|
|
360
|
+
});
|
|
361
|
+
this.setState({ groupByIds: groupByIds });
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
this.isScrollToBottom(this.scrollTop === this.tBody.scrollHeight - this.tBody.offsetHeight);
|
|
365
|
+
|
|
366
|
+
this.placeHorizontalFloatingElement();
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/** END Lifecycle methods */
|
|
370
|
+
|
|
371
|
+
}, {
|
|
372
|
+
key: 'updateStickyRowsPosition',
|
|
373
|
+
value: function updateStickyRowsPosition() {
|
|
374
|
+
var _this3 = this;
|
|
375
|
+
|
|
376
|
+
var rowHeight = this.props.dense ? cst.CELL_HEIGHT_DENSE : cst.CELL_HEIGHT;
|
|
377
|
+
this.groupByRowsPositions = [];
|
|
378
|
+
// Initialize new stickyRows position
|
|
379
|
+
var tableBody = document.getElementById(this.props.tabId + '-body');
|
|
380
|
+
var stickyRows = tableBody.getElementsByClassName('stickyGroupBy');
|
|
381
|
+
if (stickyRows.length > 0) {
|
|
382
|
+
Array.prototype.filter.call(stickyRows, function (stickyRow) {
|
|
383
|
+
_this3.groupByRowsPositions.push(stickyRow.nextSibling.nextSibling.offsetTop - rowHeight);
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}, {
|
|
388
|
+
key: 'isScrollToBottom',
|
|
389
|
+
value: function isScrollToBottom(value) {
|
|
390
|
+
if (this.state.isScrollToBottom !== value) {
|
|
391
|
+
this.setState({
|
|
392
|
+
isScrollToBottom: value
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Ajoute / Supprime l'id de l'item du selectedIdList
|
|
399
|
+
* @param item
|
|
400
|
+
*/
|
|
401
|
+
|
|
402
|
+
}, {
|
|
403
|
+
key: 'toggleItem',
|
|
404
|
+
value: function toggleItem(item) {
|
|
405
|
+
if (this.props.selectedIdList.includes(item.rowId)) {
|
|
406
|
+
this.props.onSelect(this.props.selectedIdList.filter(function (itemId) {
|
|
407
|
+
return itemId !== item.rowId;
|
|
408
|
+
}));
|
|
409
|
+
} else {
|
|
410
|
+
this.props.onSelect([].concat((0, _toConsumableArray3.default)(this.props.selectedIdList), [item.rowId]));
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Sélectionne / Déselectionne tous les éléments en fonction de l'état de la liste
|
|
416
|
+
*/
|
|
417
|
+
|
|
418
|
+
}, {
|
|
419
|
+
key: 'toggleAll',
|
|
420
|
+
value: function toggleAll() {
|
|
421
|
+
if (this.props.selectedIdList.length === this.props.dataSource.length) {
|
|
422
|
+
this.deselectAll();
|
|
423
|
+
} else {
|
|
424
|
+
this.selectAll();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Sélectionne tous les items
|
|
430
|
+
*/
|
|
431
|
+
|
|
432
|
+
}, {
|
|
433
|
+
key: 'selectAll',
|
|
434
|
+
value: function selectAll() {
|
|
435
|
+
this.props.onSelect(this.props.dataSource.map(function (item) {
|
|
436
|
+
return item.rowId;
|
|
437
|
+
}));
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Désélectionne tous les items
|
|
442
|
+
*/
|
|
443
|
+
|
|
444
|
+
}, {
|
|
445
|
+
key: 'deselectAll',
|
|
446
|
+
value: function deselectAll() {
|
|
447
|
+
this.props.onSelect([]);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Handle horizontal scroll (wrapperDiv)
|
|
452
|
+
* - replace each first cells body & header & add right shadows
|
|
453
|
+
*/
|
|
454
|
+
|
|
455
|
+
}, {
|
|
456
|
+
key: 'handleHorizontalScroll',
|
|
457
|
+
value: function handleHorizontalScroll(event) {
|
|
458
|
+
// cancel if scroll is from tbody OR it didn't change
|
|
459
|
+
if (event.target.nodeName === 'TBODY' || this.scrollLeft === event.target.scrollLeft) {
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
this.scrollLeft = event.target.scrollLeft;
|
|
464
|
+
|
|
465
|
+
// Replace live datas notification
|
|
466
|
+
this.placeHorizontalFloatingElement();
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Handle vertical scroll (tbody)
|
|
471
|
+
* - add bottom shadow
|
|
472
|
+
* - place back to top button
|
|
473
|
+
* - request next datas if reach bottom
|
|
474
|
+
*/
|
|
475
|
+
|
|
476
|
+
}, {
|
|
477
|
+
key: 'handleVerticalScroll',
|
|
478
|
+
value: function handleVerticalScroll(event) {
|
|
479
|
+
// cancel if scroll is not from tbody OR it didn't change
|
|
480
|
+
if (event.target.nodeName !== 'TBODY' || this.scrollTop === event.target.scrollTop) return;
|
|
481
|
+
|
|
482
|
+
var scrollingUp = this.scrollTop > event.target.scrollTop;
|
|
483
|
+
|
|
484
|
+
this.scrollTop = event.target.scrollTop;
|
|
485
|
+
|
|
486
|
+
// Add bottom shadow to header row
|
|
487
|
+
var shadowBottom = '0px 0px 2px 0px rgba(128, 128, 128, 0.32)';
|
|
488
|
+
this.tHead.style['box-shadow'] = this.scrollTop > 0 ? shadowBottom : 'none';
|
|
489
|
+
var rowHeight = this.props.dense ? cst.CELL_HEIGHT_DENSE : cst.CELL_HEIGHT;
|
|
490
|
+
|
|
491
|
+
// Add back to top button when scrolling up from constant defined scroll point
|
|
492
|
+
// if there not live data notification
|
|
493
|
+
if (this.props.countLiveDatas === 0) {
|
|
494
|
+
if (scrollingUp && this.scrollTop >= cst.NB_ROWS_BACK_TO_TOP * rowHeight) {
|
|
495
|
+
this.backToTopButton.style.top = rowHeight * 1.5 + ' px';
|
|
496
|
+
} else {
|
|
497
|
+
this.backToTopButton.style.top = -99999 + 'px';
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
this.handleStickyRowPositions();
|
|
502
|
+
|
|
503
|
+
this.isScrollToBottom(this.scrollTop === event.target.scrollHeight - this.tBody.offsetHeight);
|
|
504
|
+
}
|
|
505
|
+
}, {
|
|
506
|
+
key: 'handleStickyRowPositions',
|
|
507
|
+
value: function handleStickyRowPositions() {
|
|
508
|
+
var _this4 = this;
|
|
509
|
+
|
|
510
|
+
var tableBody = document.getElementById(this.props.tabId + '-body');
|
|
511
|
+
var stickyRows = tableBody.getElementsByClassName('stickyGroupBy');
|
|
512
|
+
var rowHeight = this.props.dense ? cst.CELL_HEIGHT_DENSE : cst.CELL_HEIGHT;
|
|
513
|
+
if (stickyRows.length > 0) {
|
|
514
|
+
Array.prototype.filter.call(stickyRows, function (stickyRow, index) {
|
|
515
|
+
var fakeTr = stickyRow.nextSibling;
|
|
516
|
+
if (tableBody.scrollTop > _this4.groupByRowsPositions[index]) {
|
|
517
|
+
// Calcul de la position du 'pinned' item
|
|
518
|
+
// positionnement juste en dessous du header
|
|
519
|
+
if (typeof stickyRows[index + 1] === 'undefined' || tableBody.scrollTop < stickyRows[index + 1].offsetTop) {
|
|
520
|
+
// Si la prochaine ligne est aussi un 'pinned' item,
|
|
521
|
+
// il pousse le précédent vers le haut
|
|
522
|
+
if (typeof _this4.groupByRowsPositions[index + 1] !== 'undefined' && _this4.groupByRowsPositions[index + 1] - tableBody.scrollTop < rowHeight - 10) {
|
|
523
|
+
stickyRow.style.top = tableBody.scrollTop + _this4.groupByRowsPositions[index + 1] - tableBody.scrollTop - rowHeight + '\n px';
|
|
524
|
+
} else {
|
|
525
|
+
stickyRow.style.top = tableBody.scrollTop + 'px';
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
if (stickyRow.style.position !== 'absolute') {
|
|
529
|
+
// Repositionnement des éléments dans une row en position absolute
|
|
530
|
+
stickyRow.style.position = 'absolute';
|
|
531
|
+
fakeTr.style.display = 'inline-block';
|
|
532
|
+
stickyRow.style.height = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 8 + 'px' : cst.CELL_HEIGHT - 8 + 'px';
|
|
533
|
+
stickyRow.querySelector('button').style.maxHeight = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 16 + 'px' : cst.CELL_HEIGHT - 16 + 'px';
|
|
534
|
+
stickyRow.querySelector('button').style.minHeight = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 16 + 'px' : cst.CELL_HEIGHT - 16 + 'px';
|
|
535
|
+
stickyRow.querySelector('button').style.top = '-3px';
|
|
536
|
+
stickyRow.querySelector('#stickyRowContent').style.top = !_this4.props.dense ? '4px' : '-3px';
|
|
537
|
+
stickyRow.querySelector('td').style.height = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 8 + 'px' : cst.CELL_HEIGHT - 8 + 'px';
|
|
538
|
+
if (_this4.props.dense) {
|
|
539
|
+
stickyRow.querySelector('button').style.top = '0px';
|
|
540
|
+
stickyRow.querySelector('button span').style.position = 'relative';
|
|
541
|
+
stickyRow.querySelector('button span').style.top = '-4px';
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
} else if (stickyRow.style.position !== 'relative') {
|
|
546
|
+
// Repositionnement normal
|
|
547
|
+
stickyRow.style.position = 'relative';
|
|
548
|
+
stickyRow.style.top = '0px';
|
|
549
|
+
fakeTr.style.display = 'none';
|
|
550
|
+
stickyRow.style.height = _this4.props.dense ? cst.CELL_HEIGHT_DENSE + 'px' : cst.CELL_HEIGHT + 'px';
|
|
551
|
+
stickyRow.querySelector('#sticky-badge').style.top = '0px';
|
|
552
|
+
stickyRow.querySelector('#stickyRowContent').style.top = '2px';
|
|
553
|
+
stickyRow.querySelector('td').style.height = _this4.props.dense ? cst.CELL_HEIGHT_DENSE + 'px' : cst.CELL_HEIGHT + 'px';
|
|
554
|
+
stickyRow.querySelector('button').style.maxHeight = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 2 + 'px' : cst.CELL_HEIGHT - 8 + 'px';
|
|
555
|
+
stickyRow.querySelector('button').style.minHeight = _this4.props.dense ? cst.CELL_HEIGHT_DENSE - 2 + 'px' : cst.CELL_HEIGHT - 8 + 'px';
|
|
556
|
+
if (_this4.props.dense) {
|
|
557
|
+
stickyRow.querySelector('button span').style.top = '0px';
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Some element must be replace "manually"
|
|
566
|
+
*/
|
|
567
|
+
|
|
568
|
+
}, {
|
|
569
|
+
key: 'placeHorizontalFloatingElement',
|
|
570
|
+
value: function placeHorizontalFloatingElement() {
|
|
571
|
+
var _this5 = this;
|
|
572
|
+
|
|
573
|
+
// live datas notification
|
|
574
|
+
if (this.liveDataSpan) {
|
|
575
|
+
this.liveDataSpan.style.left = this.wrapperDiv.clientWidth / 2 - 100 + this.scrollLeft + 'px';
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// Replace left padding cells
|
|
579
|
+
[].concat((0, _toConsumableArray3.default)(this.tBodyLeftPaddingElements), [this.tHeadLeftPadding]).forEach(function (element) {
|
|
580
|
+
element.style.left = _this5.scrollLeft + 'px';
|
|
581
|
+
});
|
|
582
|
+
|
|
583
|
+
// TODO - FIX
|
|
584
|
+
// Les éléments de droite sont décalés de 22px lorsque de nouvelles lignes sont
|
|
585
|
+
// visible (children ou details)
|
|
586
|
+
|
|
587
|
+
// Replace right padding cells
|
|
588
|
+
[].concat((0, _toConsumableArray3.default)(this.tBodyRightPaddingElements), [this.tHeadRightPadding]).forEach(function (element) {
|
|
589
|
+
element.style.right = Math.max(0, _this5.wrapperScrollOffset - _this5.scrollLeft - _this5.tBodyScrollbarWidth) + 'px';
|
|
590
|
+
});
|
|
591
|
+
|
|
592
|
+
// Replace first cells & add right shadows
|
|
593
|
+
if (this.props.sticky) {
|
|
594
|
+
var shadowRight = '1px 0px 0px 0px rgba(128, 128, 128, 0.32)';
|
|
595
|
+
[].concat((0, _toConsumableArray3.default)(this.tBodyFirstElements), [this.tHeadFirst]).forEach(function (element) {
|
|
596
|
+
element.style.left = _this5.scrollLeft + 'px';
|
|
597
|
+
element.style['box-shadow'] = _this5.scrollLeft > 0 ? shadowRight : 'none';
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// Replace centered elements (elements width should be 50% of wrapper)
|
|
602
|
+
if (this.tFootCenteredDiv) {
|
|
603
|
+
this.tFootCenteredDiv.style.left = Math.round(this.wrapperDiv.offsetWidth / 4) + this.scrollLeft + 'px';
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
// Replace stickyRowContent
|
|
607
|
+
var tableBody = document.getElementById(this.props.tabId + '-body');
|
|
608
|
+
var stickyRowContentDiv = tableBody.getElementsByClassName('stickyRowContent');
|
|
609
|
+
if (stickyRowContentDiv.length > 0) {
|
|
610
|
+
Array.prototype.filter.call(stickyRowContentDiv, function (div) {
|
|
611
|
+
div.style.left = _this5.wrapperDiv.scrollLeft + (_this5.props.selectable ? 25 : 0) + 'px';
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}, {
|
|
616
|
+
key: 'handleRequestLiveDatas',
|
|
617
|
+
value: function handleRequestLiveDatas() {
|
|
618
|
+
this.scrollToTop();
|
|
619
|
+
this.props.requestLiveDatas();
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* Scroll back to table top
|
|
624
|
+
*/
|
|
625
|
+
|
|
626
|
+
}, {
|
|
627
|
+
key: 'scrollToTop',
|
|
628
|
+
value: function scrollToTop() {
|
|
629
|
+
// Hide back to top button
|
|
630
|
+
this.backToTopButton['style'].top = -99999 + 'px';
|
|
631
|
+
|
|
632
|
+
// Set scroll top to 0
|
|
633
|
+
this.tBody.scrollTop = 0;
|
|
634
|
+
this.scrollTop = 0;
|
|
635
|
+
}
|
|
636
|
+
}, {
|
|
637
|
+
key: 'openOrderColumnsMenu',
|
|
638
|
+
value: function openOrderColumnsMenu(event) {
|
|
639
|
+
this.setState({
|
|
640
|
+
orderColumnsAnchor: event.currentTarget,
|
|
641
|
+
orderColumnsMenuOpen: true
|
|
642
|
+
});
|
|
643
|
+
}
|
|
644
|
+
}, {
|
|
645
|
+
key: 'closeOrderColumnsMenu',
|
|
646
|
+
value: function closeOrderColumnsMenu() {
|
|
647
|
+
this.setState({
|
|
648
|
+
orderColumnsAnchor: null,
|
|
649
|
+
orderColumnsMenuOpen: false
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* This function is pass to table body to be advised when new rows are dynamically added (ex detail rows)
|
|
655
|
+
* we can then update our list of floating body elements refs
|
|
656
|
+
**/
|
|
657
|
+
|
|
658
|
+
}, {
|
|
659
|
+
key: 'handleNextStickyRow',
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* Scroll jusqu'au prochain stickRow
|
|
664
|
+
*
|
|
665
|
+
* @param stickyRowIndex
|
|
666
|
+
*/
|
|
667
|
+
value: function handleNextStickyRow(stickyRowIndex) {
|
|
668
|
+
if (this.groupByRowsPositions.length - 1 > stickyRowIndex) {
|
|
669
|
+
var tableBody = document.getElementById(this.props.tabId + '-body');
|
|
670
|
+
tableBody.scrollTop = this.groupByRowsPositions[stickyRowIndex + 1];
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}, {
|
|
674
|
+
key: 'render',
|
|
675
|
+
value: function render() {
|
|
676
|
+
var _this6 = this;
|
|
677
|
+
|
|
678
|
+
var _props = this.props,
|
|
679
|
+
classes = _props.classes,
|
|
680
|
+
tabId = _props.tabId,
|
|
681
|
+
columns = _props.columns,
|
|
682
|
+
orderedColumns = _props.orderedColumns,
|
|
683
|
+
dataSource = _props.dataSource,
|
|
684
|
+
orderable = _props.orderable,
|
|
685
|
+
onColumnsOrderUpdate = _props.onColumnsOrderUpdate,
|
|
686
|
+
mandatoryColumnId = _props.mandatoryColumnId,
|
|
687
|
+
selectable = _props.selectable,
|
|
688
|
+
selectedIdList = _props.selectedIdList,
|
|
689
|
+
onRowClick = _props.onRowClick,
|
|
690
|
+
sortable = _props.sortable,
|
|
691
|
+
sortedColumnId = _props.sortedColumnId,
|
|
692
|
+
sortDirection = _props.sortDirection,
|
|
693
|
+
onSort = _props.onSort,
|
|
694
|
+
filterable = _props.filterable,
|
|
695
|
+
onFilterChange = _props.onFilterChange,
|
|
696
|
+
infiniteScroll = _props.infiniteScroll,
|
|
697
|
+
hasNextDatas = _props.hasNextDatas,
|
|
698
|
+
requestNextDatas = _props.requestNextDatas,
|
|
699
|
+
countLiveDatas = _props.countLiveDatas,
|
|
700
|
+
dateLocale = _props.dateLocale,
|
|
701
|
+
numberLocale = _props.numberLocale,
|
|
702
|
+
dense = _props.dense,
|
|
703
|
+
height = _props.height,
|
|
704
|
+
sticky = _props.sticky,
|
|
705
|
+
translations = _props.translations,
|
|
706
|
+
view = _props.view,
|
|
707
|
+
groupBy = _props.groupBy,
|
|
708
|
+
lookupColumns = _props.lookupColumns;
|
|
709
|
+
var _state = this.state,
|
|
710
|
+
dateUpdate = _state.dateUpdate,
|
|
711
|
+
isScrollToBottom = _state.isScrollToBottom,
|
|
712
|
+
groupByIds = _state.groupByIds;
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
var headerHeight = dense ? cst.CELL_HEADER_HEIGHT_DENSE : cst.CELL_HEADER_HEIGHT;
|
|
716
|
+
|
|
717
|
+
return _react2.default.createElement(
|
|
718
|
+
'div',
|
|
719
|
+
{ className: classes.root },
|
|
720
|
+
_react2.default.createElement(
|
|
721
|
+
'div',
|
|
722
|
+
{
|
|
723
|
+
id: tabId,
|
|
724
|
+
className: classes.tableWrapper,
|
|
725
|
+
ref: function ref(div) {
|
|
726
|
+
return _this6.wrapperDiv = div;
|
|
727
|
+
},
|
|
728
|
+
onScroll: this.handleHorizontalScroll
|
|
729
|
+
},
|
|
730
|
+
_react2.default.createElement(
|
|
731
|
+
_Table2.default,
|
|
732
|
+
{ className: classes.table, style: { height: height } },
|
|
733
|
+
_react2.default.createElement(_HiTableHead2.default, {
|
|
734
|
+
columns: columns,
|
|
735
|
+
orderedColumns: orderedColumns,
|
|
736
|
+
dataSource: dataSource,
|
|
737
|
+
selectable: selectable,
|
|
738
|
+
selectedIdList: selectedIdList,
|
|
739
|
+
onSelect: this.toggleAll,
|
|
740
|
+
sortable: sortable,
|
|
741
|
+
sortedColumnId: sortedColumnId,
|
|
742
|
+
sortDirection: sortDirection,
|
|
743
|
+
onSort: onSort,
|
|
744
|
+
filterable: filterable,
|
|
745
|
+
onFilterChange: onFilterChange,
|
|
746
|
+
orderable: orderable,
|
|
747
|
+
onColumnsOrderUpdate: onColumnsOrderUpdate,
|
|
748
|
+
mandatoryColumnId: mandatoryColumnId,
|
|
749
|
+
onRequestLiveDatas: this.handleRequestLiveDatas,
|
|
750
|
+
countLiveDatas: countLiveDatas,
|
|
751
|
+
dateLocale: dateLocale,
|
|
752
|
+
numberLocale: numberLocale,
|
|
753
|
+
dense: dense,
|
|
754
|
+
height: headerHeight,
|
|
755
|
+
sticky: sticky,
|
|
756
|
+
view: view,
|
|
757
|
+
translations: translations,
|
|
758
|
+
lookupColumns: lookupColumns
|
|
759
|
+
}),
|
|
760
|
+
_react2.default.createElement(_HiTableBody2.default, {
|
|
761
|
+
tabId: tabId,
|
|
762
|
+
columns: columns,
|
|
763
|
+
orderedColumns: orderedColumns,
|
|
764
|
+
dataSource: dataSource,
|
|
765
|
+
selectable: selectable,
|
|
766
|
+
selectedIdList: selectedIdList,
|
|
767
|
+
sortedColumnId: sortedColumnId,
|
|
768
|
+
onSelect: this.toggleItem,
|
|
769
|
+
dateUpdate: dateUpdate,
|
|
770
|
+
dateLocale: dateLocale,
|
|
771
|
+
numberLocale: numberLocale,
|
|
772
|
+
dense: dense,
|
|
773
|
+
height: height - headerHeight,
|
|
774
|
+
sticky: sticky,
|
|
775
|
+
view: view,
|
|
776
|
+
onRowClick: onRowClick,
|
|
777
|
+
onScroll: this.handleVerticalScroll,
|
|
778
|
+
addNewRowRefs: this.addNewRowRefs,
|
|
779
|
+
translations: translations,
|
|
780
|
+
groupBy: groupBy,
|
|
781
|
+
onClickNext: this.handleNextStickyRow,
|
|
782
|
+
groupByIds: groupByIds,
|
|
783
|
+
lookupColumns: lookupColumns
|
|
784
|
+
}),
|
|
785
|
+
infiniteScroll && _react2.default.createElement(_HiTableFooterScroll2.default, {
|
|
786
|
+
tabId: tabId,
|
|
787
|
+
hasNextDatas: hasNextDatas,
|
|
788
|
+
requestNextDatas: requestNextDatas,
|
|
789
|
+
maxAutoRequest: 3,
|
|
790
|
+
isScrollToBottom: isScrollToBottom,
|
|
791
|
+
translations: translations
|
|
792
|
+
})
|
|
793
|
+
),
|
|
794
|
+
_react2.default.createElement(_HiTableContextMenu2.default, {
|
|
795
|
+
tabId: tabId,
|
|
796
|
+
onSearch: this.props.onSearch,
|
|
797
|
+
onRedirect: this.props.onRedirect
|
|
798
|
+
}),
|
|
799
|
+
_react2.default.createElement(
|
|
800
|
+
'div',
|
|
801
|
+
{ className: 'back-to-top-button ' + classes.backToTopButtonContainer },
|
|
802
|
+
_react2.default.createElement(
|
|
803
|
+
_HiButton2.default,
|
|
804
|
+
{
|
|
805
|
+
raised: true,
|
|
806
|
+
color: 'primary',
|
|
807
|
+
className: classes.backToTopButton,
|
|
808
|
+
onClick: function onClick() {
|
|
809
|
+
return _this6.scrollToTop();
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
_react2.default.createElement(_ArrowUp2.default, { className: classes.backToTopButtonArrow }),
|
|
813
|
+
translations.back_to_top,
|
|
814
|
+
_react2.default.createElement(_ArrowUp2.default, { className: classes.backToTopButtonArrow })
|
|
815
|
+
)
|
|
816
|
+
)
|
|
817
|
+
)
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
}]);
|
|
821
|
+
return HiTable;
|
|
822
|
+
}(_react2.default.Component);
|
|
823
|
+
|
|
824
|
+
HiTable.defaultProps = {
|
|
825
|
+
orderable: false,
|
|
826
|
+
selectable: false,
|
|
827
|
+
sortable: true,
|
|
828
|
+
sortDirection: 'asc',
|
|
829
|
+
filterable: true,
|
|
830
|
+
infiniteScroll: false,
|
|
831
|
+
hasNextDatas: false,
|
|
832
|
+
countLiveDatas: 0,
|
|
833
|
+
dateLocale: 'en-EN',
|
|
834
|
+
numberLocale: 'en-EN',
|
|
835
|
+
dense: false,
|
|
836
|
+
height: 450,
|
|
837
|
+
sticky: true,
|
|
838
|
+
translations: {
|
|
839
|
+
load_more: 'Load More',
|
|
840
|
+
back_to_top: 'Back to top',
|
|
841
|
+
get_the_n_new_items: 'See %s new items',
|
|
842
|
+
choose_and_organize_columns: 'Choose & organize columns',
|
|
843
|
+
search: 'Search',
|
|
844
|
+
time: 'Time',
|
|
845
|
+
stickyRow: {
|
|
846
|
+
button: {
|
|
847
|
+
next: 'Next day'
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
view: 'l',
|
|
852
|
+
lookupColumns: []
|
|
853
|
+
};
|
|
854
|
+
HiTable.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
855
|
+
/**
|
|
856
|
+
* Useful to extend the style applied to components.
|
|
857
|
+
*/
|
|
858
|
+
classes: _propTypes2.default.object,
|
|
859
|
+
/**
|
|
860
|
+
* Colonnes du tableau (label, largeur, données, ... )
|
|
861
|
+
*/
|
|
862
|
+
columns: _propTypes2.default.object.isRequired,
|
|
863
|
+
/**
|
|
864
|
+
* Nombre de nouvelles données disponibles (live)
|
|
865
|
+
*/
|
|
866
|
+
countLiveDatas: _propTypes2.default.number,
|
|
867
|
+
/**
|
|
868
|
+
* Tableau des données
|
|
869
|
+
*/
|
|
870
|
+
dataSource: _propTypes2.default.array.isRequired,
|
|
871
|
+
/**
|
|
872
|
+
* Locale utilisé pour le format des dates
|
|
873
|
+
*/
|
|
874
|
+
dateLocale: _propTypes2.default.string,
|
|
875
|
+
/**
|
|
876
|
+
* Densité d'affichage (joue sur la hauteur des lignes)
|
|
877
|
+
*/
|
|
878
|
+
dense: _propTypes2.default.bool,
|
|
879
|
+
/**
|
|
880
|
+
* Active le filtre sur les colonnes filtrables
|
|
881
|
+
*/
|
|
882
|
+
filterable: _propTypes2.default.bool,
|
|
883
|
+
/**
|
|
884
|
+
* Ajoute le loader et le requestNextDatas en fin de tableau (si infiniteScroll activé)
|
|
885
|
+
*/
|
|
886
|
+
hasNextDatas: _propTypes2.default.bool,
|
|
887
|
+
/**
|
|
888
|
+
* Hauteur du tableau (px)
|
|
889
|
+
*/
|
|
890
|
+
height: _propTypes2.default.number,
|
|
891
|
+
/**
|
|
892
|
+
* Ajoute l'infinite scroll
|
|
893
|
+
*/
|
|
894
|
+
infiniteScroll: _propTypes2.default.bool,
|
|
895
|
+
/**
|
|
896
|
+
* Identifiant de la ou des colonnes sur la/lesquelles il y a une 'lookup' search
|
|
897
|
+
*/
|
|
898
|
+
lookupColumns: _propTypes2.default.array,
|
|
899
|
+
/**
|
|
900
|
+
* Pour les tableaux "orderable" uniquement : Id de la colonne obligatoire,
|
|
901
|
+
* elle sera toujours affichée dans le tableau et ne pourra pas être cachée.
|
|
902
|
+
*/
|
|
903
|
+
mandatoryColumnId: (0, _reactProptypeConditionalRequire2.default)(_propTypes2.default.string, function (props) {
|
|
904
|
+
return props.hasOwnProperty('orderable') && props.orderable === true;
|
|
905
|
+
}, MANDATORY_COLUMN_ERROR_MESSAGE),
|
|
906
|
+
/**
|
|
907
|
+
* Locale utilisé pour le format des nombres
|
|
908
|
+
*/
|
|
909
|
+
numberLocale: _propTypes2.default.string,
|
|
910
|
+
/**
|
|
911
|
+
* Fonction de callback qui prend en paramètre le tableau des colonnes mis à jour.
|
|
912
|
+
*/
|
|
913
|
+
onColumnsOrderUpdate: _propTypes2.default.func,
|
|
914
|
+
/**
|
|
915
|
+
* Fonction de callback sur le filtre d'une colonne
|
|
916
|
+
* Passe l'id de la colonne et la liste des id des éléments inclus
|
|
917
|
+
*/
|
|
918
|
+
onFilterChange: _propTypes2.default.func,
|
|
919
|
+
/**
|
|
920
|
+
* Fonction de callback appelée au clic sur l'item redirection
|
|
921
|
+
* du menu contextuel ouvert au clic droit
|
|
922
|
+
*
|
|
923
|
+
* @param {int} id
|
|
924
|
+
*/
|
|
925
|
+
onRedirect: _propTypes2.default.func,
|
|
926
|
+
/**
|
|
927
|
+
* Fonction de callback au click sur une ligne
|
|
928
|
+
* Passe l'element (row)
|
|
929
|
+
*/
|
|
930
|
+
onRowClick: _propTypes2.default.func,
|
|
931
|
+
/**
|
|
932
|
+
* Fonction de callback appelée au clic sur les items de recherche
|
|
933
|
+
* du menu contextuel ouvert au clic droit
|
|
934
|
+
*
|
|
935
|
+
* @param {string} searched field
|
|
936
|
+
* @param {string} searched value
|
|
937
|
+
* @param {string} search type (lookup, exclude)
|
|
938
|
+
*/
|
|
939
|
+
onSearch: _propTypes2.default.func,
|
|
940
|
+
/**
|
|
941
|
+
* Fonction de callback sur la sélection d'une ligne
|
|
942
|
+
* (ou sélection/déselection de tous dans le header)
|
|
943
|
+
* Passe la liste des id des lignes sélectionnées (selectedIdList)
|
|
944
|
+
*/
|
|
945
|
+
onSelect: _propTypes2.default.func,
|
|
946
|
+
/**
|
|
947
|
+
* Fonction de callback sur le tri d'une colonne
|
|
948
|
+
* Passe l'id de la colonne et la direction du tri (ou false si tri par défaut)
|
|
949
|
+
*/
|
|
950
|
+
onSort: _propTypes2.default.func,
|
|
951
|
+
/**
|
|
952
|
+
* L'utilisateur peut changer l'ordre des colonnes,
|
|
953
|
+
* les afficher ou non, et changer la vue de chaque colonne (small, medium, large).
|
|
954
|
+
*/
|
|
955
|
+
orderable: _propTypes2.default.bool,
|
|
956
|
+
/**
|
|
957
|
+
* Tableau des colonnes affichées (ordonnées, visibles/cachées, l/m/s)
|
|
958
|
+
*/
|
|
959
|
+
orderedColumns: _propTypes2.default.array.isRequired,
|
|
960
|
+
/**
|
|
961
|
+
* Fonction de callback requérant l'affichage des nouvelles données (live)
|
|
962
|
+
*/
|
|
963
|
+
requestLiveDatas: _propTypes2.default.func,
|
|
964
|
+
/**
|
|
965
|
+
* Fonction de callback requérant l'affichage des données suivantes
|
|
966
|
+
*/
|
|
967
|
+
requestNextDatas: _propTypes2.default.func,
|
|
968
|
+
/**
|
|
969
|
+
* [v2 - à venir] Les lignes sont sélectionnables (affichage d'une checkbox)
|
|
970
|
+
*/
|
|
971
|
+
selectable: _propTypes2.default.bool,
|
|
972
|
+
/**
|
|
973
|
+
* Liste des id des lignes sélectionnées
|
|
974
|
+
*/
|
|
975
|
+
selectedIdList: _propTypes2.default.array,
|
|
976
|
+
/**
|
|
977
|
+
* Active le tri sur les colonnes
|
|
978
|
+
*/
|
|
979
|
+
sortable: _propTypes2.default.bool,
|
|
980
|
+
/**
|
|
981
|
+
* Sens du tri
|
|
982
|
+
*/
|
|
983
|
+
sortDirection: _propTypes2.default.oneOf(['asc', 'desc']),
|
|
984
|
+
/**
|
|
985
|
+
* Id de la colonne trié
|
|
986
|
+
*/
|
|
987
|
+
sortedColumnId: (0, _reactProptypeConditionalRequire2.default)(_propTypes2.default.string, function (props) {
|
|
988
|
+
return props.hasOwnProperty('sortable') && props.sortable === true;
|
|
989
|
+
}, SORTED_COLUMN_ERROR_MESSAGE),
|
|
990
|
+
/**
|
|
991
|
+
* Fixe la première colonne
|
|
992
|
+
*/
|
|
993
|
+
sticky: _propTypes2.default.bool,
|
|
994
|
+
/**
|
|
995
|
+
* Identifiant unique à spécifier si on utilise plusieurs composants HiTable
|
|
996
|
+
*/
|
|
997
|
+
tabId: _propTypes2.default.string.isRequired,
|
|
998
|
+
/**
|
|
999
|
+
* Traduction des chaînes affichées
|
|
1000
|
+
*/
|
|
1001
|
+
translations: _propTypes2.default.object,
|
|
1002
|
+
/**
|
|
1003
|
+
* Taille du tableau (L/M/S),
|
|
1004
|
+
* définit l'espace entre les cellules et leurs tailles par default
|
|
1005
|
+
*/
|
|
1006
|
+
view: _propTypes2.default.oneOf(['l', 'm', 's']),
|
|
1007
|
+
/**
|
|
1008
|
+
* Id de la colonne par laquelle sont regroupé les éléments
|
|
1009
|
+
*/
|
|
1010
|
+
groupBy: _propTypes2.default.string
|
|
1011
|
+
} : {};
|
|
1012
|
+
exports.default = (0, _styles.withStyles)(styles, { withTheme: true, name: 'HmuiHiTable' })(HiTable);
|