@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,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { withStyles } from '../styles';
|
|
4
|
+
import exactProp from '../utils/exactProp';
|
|
5
|
+
|
|
6
|
+
const styles = theme => ({
|
|
7
|
+
'@global': {
|
|
8
|
+
html: {
|
|
9
|
+
WebkitFontSmoothing: 'antialiased', // Antialiasing.
|
|
10
|
+
MozOsxFontSmoothing: 'grayscale', // Antialiasing.
|
|
11
|
+
// Change from `box-sizing: content-box` so that `width`
|
|
12
|
+
// is not affected by `padding` or `border`.
|
|
13
|
+
boxSizing: 'border-box'
|
|
14
|
+
},
|
|
15
|
+
'*, *::before, *::after': {
|
|
16
|
+
boxSizing: 'inherit'
|
|
17
|
+
},
|
|
18
|
+
body: {
|
|
19
|
+
margin: 0, // Remove the margin in all browsers.
|
|
20
|
+
backgroundColor: theme.palette.background.default,
|
|
21
|
+
'@media print': {
|
|
22
|
+
// Save printer ink.
|
|
23
|
+
backgroundColor: theme.palette.common.white
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Kickstart an elegant, consistent, and simple baseline to build upon.
|
|
31
|
+
*/
|
|
32
|
+
class Reboot extends React.Component {
|
|
33
|
+
render() {
|
|
34
|
+
return this.props.children;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
Reboot.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
39
|
+
/**
|
|
40
|
+
* You can only provide a single element with react@15, a node with react@16.
|
|
41
|
+
*/
|
|
42
|
+
children: PropTypes.node,
|
|
43
|
+
/**
|
|
44
|
+
* @ignore
|
|
45
|
+
*/
|
|
46
|
+
classes: PropTypes.object.isRequired
|
|
47
|
+
} : {};
|
|
48
|
+
|
|
49
|
+
Reboot.propTypes = process.env.NODE_ENV !== "production" ? exactProp(Reboot.propTypes, 'Reboot') : {};
|
|
50
|
+
|
|
51
|
+
Reboot.defaultProps = {
|
|
52
|
+
children: null
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default withStyles(styles, { name: 'MuiReboot' })(Reboot);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Reboot';
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import _extends from 'babel-runtime/helpers/extends';
|
|
2
|
+
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
|
3
|
+
// @inheritedComponent Input
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import SelectInput from './SelectInput';
|
|
8
|
+
import withStyles from '../styles/withStyles';
|
|
9
|
+
import Input from '../Input'; // Import to enforce the CSS injection order
|
|
10
|
+
|
|
11
|
+
export const styles = theme => ({
|
|
12
|
+
root: {
|
|
13
|
+
position: 'relative',
|
|
14
|
+
width: '100%'
|
|
15
|
+
},
|
|
16
|
+
select: {
|
|
17
|
+
'-moz-appearance': 'none', // Reset
|
|
18
|
+
'-webkit-appearance': 'none', // Reset
|
|
19
|
+
// When interacting quickly, the text can end up selected.
|
|
20
|
+
// Native select can't be selected either.
|
|
21
|
+
userSelect: 'none',
|
|
22
|
+
paddingRight: theme.spacing.unit * 4,
|
|
23
|
+
width: `calc(100% - ${theme.spacing.unit * 4}px)`,
|
|
24
|
+
minWidth: theme.spacing.unit * 2, // So it doesn't collapse.
|
|
25
|
+
cursor: 'pointer',
|
|
26
|
+
'&:focus': {
|
|
27
|
+
// Show that it's not an text input
|
|
28
|
+
background: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)',
|
|
29
|
+
borderRadius: 0 // Reset Chrome style
|
|
30
|
+
},
|
|
31
|
+
// Remove Firefox focus border
|
|
32
|
+
'&:-moz-focusring': {
|
|
33
|
+
color: 'transparent',
|
|
34
|
+
textShadow: '0 0 0 #000'
|
|
35
|
+
},
|
|
36
|
+
// Remove IE11 arrow
|
|
37
|
+
'&::-ms-expand': {
|
|
38
|
+
display: 'none'
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
selectMenu: {
|
|
42
|
+
width: 'auto', // Fix Safari textOverflow
|
|
43
|
+
textOverflow: 'ellipsis',
|
|
44
|
+
whiteSpace: 'nowrap',
|
|
45
|
+
overflow: 'hidden',
|
|
46
|
+
minHeight: '1.1875em' // Reset (19px), match the native input line-height
|
|
47
|
+
},
|
|
48
|
+
disabled: {
|
|
49
|
+
cursor: 'default'
|
|
50
|
+
},
|
|
51
|
+
icon: {
|
|
52
|
+
// We use a position absolute over a flexbox in order to forward the pointer events
|
|
53
|
+
// to the input.
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
right: 0,
|
|
56
|
+
top: 'calc(50% - 12px)', // Center vertically
|
|
57
|
+
color: theme.palette.action.active,
|
|
58
|
+
'pointer-events': 'none' // Don't block pointer events on the select under the icon.
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
function Select(props) {
|
|
63
|
+
const {
|
|
64
|
+
autoWidth,
|
|
65
|
+
children,
|
|
66
|
+
classes,
|
|
67
|
+
displayEmpty,
|
|
68
|
+
input,
|
|
69
|
+
inputProps,
|
|
70
|
+
MenuProps,
|
|
71
|
+
multiple,
|
|
72
|
+
native,
|
|
73
|
+
onClose,
|
|
74
|
+
onOpen,
|
|
75
|
+
open,
|
|
76
|
+
renderValue,
|
|
77
|
+
SelectDisplayProps
|
|
78
|
+
} = props,
|
|
79
|
+
other = _objectWithoutProperties(props, ['autoWidth', 'children', 'classes', 'displayEmpty', 'input', 'inputProps', 'MenuProps', 'multiple', 'native', 'onClose', 'onOpen', 'open', 'renderValue', 'SelectDisplayProps']);
|
|
80
|
+
|
|
81
|
+
return React.cloneElement(input, _extends({
|
|
82
|
+
// Most of the logic is implemented in `SelectInput`.
|
|
83
|
+
// The `Select` component is a simple API wrapper to expose something better to play with.
|
|
84
|
+
inputComponent: SelectInput,
|
|
85
|
+
inputProps: _extends({
|
|
86
|
+
autoWidth,
|
|
87
|
+
children,
|
|
88
|
+
classes,
|
|
89
|
+
displayEmpty,
|
|
90
|
+
MenuProps,
|
|
91
|
+
multiple,
|
|
92
|
+
native,
|
|
93
|
+
onClose,
|
|
94
|
+
onOpen,
|
|
95
|
+
open,
|
|
96
|
+
renderValue,
|
|
97
|
+
SelectDisplayProps,
|
|
98
|
+
type: undefined }, inputProps, input ? input.props.inputProps : {})
|
|
99
|
+
}, other));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
Select.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
103
|
+
/**
|
|
104
|
+
* If true, the width of the popover will automatically be set according to the items inside the
|
|
105
|
+
* menu, otherwise it will be at least the width of the select input.
|
|
106
|
+
*/
|
|
107
|
+
autoWidth: PropTypes.bool,
|
|
108
|
+
/**
|
|
109
|
+
* The option elements to populate the select with.
|
|
110
|
+
* Can be some `MenuItem` when `native` is false and `option` when `native` is true.
|
|
111
|
+
*/
|
|
112
|
+
children: PropTypes.node,
|
|
113
|
+
/**
|
|
114
|
+
* Useful to extend the style applied to components.
|
|
115
|
+
*/
|
|
116
|
+
classes: PropTypes.object.isRequired,
|
|
117
|
+
/**
|
|
118
|
+
* If `true`, the selected item is displayed even if its value is empty.
|
|
119
|
+
* You can only use it when the `native` property is `false` (default).
|
|
120
|
+
*/
|
|
121
|
+
displayEmpty: PropTypes.bool,
|
|
122
|
+
/**
|
|
123
|
+
* An `Input` element; does not have to be a material-ui specific `Input`.
|
|
124
|
+
*/
|
|
125
|
+
input: PropTypes.element,
|
|
126
|
+
/**
|
|
127
|
+
* Properties applied to the `input` element.
|
|
128
|
+
* When `native` is `true`, the properties are applied on the `select` element.
|
|
129
|
+
*/
|
|
130
|
+
inputProps: PropTypes.object,
|
|
131
|
+
/**
|
|
132
|
+
* Properties applied to the `Menu` element.
|
|
133
|
+
*/
|
|
134
|
+
MenuProps: PropTypes.object,
|
|
135
|
+
/**
|
|
136
|
+
* If true, `value` must be an array and the menu will support multiple selections.
|
|
137
|
+
* You can only use it when the `native` property is `false` (default).
|
|
138
|
+
*/
|
|
139
|
+
multiple: PropTypes.bool,
|
|
140
|
+
/**
|
|
141
|
+
* If `true`, the component will be using a native `select` element.
|
|
142
|
+
*/
|
|
143
|
+
native: PropTypes.bool,
|
|
144
|
+
/**
|
|
145
|
+
* Callback function fired when a menu item is selected.
|
|
146
|
+
*
|
|
147
|
+
* @param {object} event The event source of the callback
|
|
148
|
+
* @param {object} child The react element that was selected
|
|
149
|
+
*/
|
|
150
|
+
onChange: PropTypes.func,
|
|
151
|
+
/**
|
|
152
|
+
* Callback fired when the component requests to be closed.
|
|
153
|
+
* Useful in controlled mode (see open).
|
|
154
|
+
*
|
|
155
|
+
* @param {object} event The event source of the callback
|
|
156
|
+
*/
|
|
157
|
+
onClose: PropTypes.func,
|
|
158
|
+
/**
|
|
159
|
+
* Callback fired when the component requests to be opened.
|
|
160
|
+
* Useful in controlled mode (see open).
|
|
161
|
+
*
|
|
162
|
+
* @param {object} event The event source of the callback
|
|
163
|
+
*/
|
|
164
|
+
onOpen: PropTypes.func,
|
|
165
|
+
/**
|
|
166
|
+
* Control `select` open state.
|
|
167
|
+
* You can only use it when the `native` property is `false` (default).
|
|
168
|
+
*/
|
|
169
|
+
open: PropTypes.bool,
|
|
170
|
+
/**
|
|
171
|
+
* Render the selected value.
|
|
172
|
+
* You can only use it when the `native` property is `false` (default).
|
|
173
|
+
*
|
|
174
|
+
* @param {*} value The `value` provided to the component.
|
|
175
|
+
* @returns {ReactElement}
|
|
176
|
+
*/
|
|
177
|
+
renderValue: PropTypes.func,
|
|
178
|
+
/**
|
|
179
|
+
* Properties applied to the clickable div element.
|
|
180
|
+
*/
|
|
181
|
+
SelectDisplayProps: PropTypes.object,
|
|
182
|
+
/**
|
|
183
|
+
* The input value.
|
|
184
|
+
* This property is required when the `native` property is `false` (default).
|
|
185
|
+
*/
|
|
186
|
+
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))])
|
|
187
|
+
} : {};
|
|
188
|
+
|
|
189
|
+
Select.defaultProps = {
|
|
190
|
+
autoWidth: false,
|
|
191
|
+
displayEmpty: false,
|
|
192
|
+
input: React.createElement(Input, null),
|
|
193
|
+
multiple: false,
|
|
194
|
+
native: false
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
Select.muiName = 'Select';
|
|
198
|
+
|
|
199
|
+
export default withStyles(styles, { name: 'MuiSelect' })(Select);
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
|
2
|
+
import _extends from 'babel-runtime/helpers/extends';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import keycode from 'keycode';
|
|
7
|
+
import warning from 'warning';
|
|
8
|
+
import ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';
|
|
9
|
+
import Menu from '../Menu/Menu';
|
|
10
|
+
import { isDirty } from '../Input/Input';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @ignore - internal component.
|
|
14
|
+
*/
|
|
15
|
+
class SelectInput extends React.Component {
|
|
16
|
+
constructor(...args) {
|
|
17
|
+
var _temp;
|
|
18
|
+
|
|
19
|
+
return _temp = super(...args), this.state = {
|
|
20
|
+
open: false
|
|
21
|
+
}, this.ignoreNextBlur = false, this.displayNode = null, this.isControlled = this.props.open !== undefined, this.update = this.isControlled ? ({ event, open }) => {
|
|
22
|
+
if (open) {
|
|
23
|
+
this.props.onOpen(event);
|
|
24
|
+
} else {
|
|
25
|
+
this.props.onClose(event);
|
|
26
|
+
}
|
|
27
|
+
} : ({ open }) => this.setState({ open }), this.handleClick = event => {
|
|
28
|
+
// Opening the menu is going to blur the. It will be focused back when closed.
|
|
29
|
+
this.ignoreNextBlur = true;
|
|
30
|
+
this.update({
|
|
31
|
+
open: true,
|
|
32
|
+
event
|
|
33
|
+
});
|
|
34
|
+
}, this.handleClose = event => {
|
|
35
|
+
this.update({
|
|
36
|
+
open: false,
|
|
37
|
+
event
|
|
38
|
+
});
|
|
39
|
+
}, this.handleItemClick = child => event => {
|
|
40
|
+
if (!this.props.multiple) {
|
|
41
|
+
this.update({
|
|
42
|
+
open: false,
|
|
43
|
+
event
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const { onChange, name } = this.props;
|
|
48
|
+
|
|
49
|
+
if (onChange) {
|
|
50
|
+
let value;
|
|
51
|
+
let target;
|
|
52
|
+
|
|
53
|
+
if (event.target) {
|
|
54
|
+
target = event.target;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (this.props.multiple) {
|
|
58
|
+
value = Array.isArray(this.props.value) ? [...this.props.value] : [];
|
|
59
|
+
const itemIndex = value.indexOf(child.props.value);
|
|
60
|
+
if (itemIndex === -1) {
|
|
61
|
+
value.push(child.props.value);
|
|
62
|
+
} else {
|
|
63
|
+
value.splice(itemIndex, 1);
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
value = child.props.value;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
event.persist();
|
|
70
|
+
event.target = _extends({}, target, { value, name });
|
|
71
|
+
|
|
72
|
+
onChange(event, child);
|
|
73
|
+
}
|
|
74
|
+
}, this.handleBlur = event => {
|
|
75
|
+
if (this.ignoreNextBlur === true) {
|
|
76
|
+
// The parent components are relying on the bubbling of the event.
|
|
77
|
+
event.stopPropagation();
|
|
78
|
+
this.ignoreNextBlur = false;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (this.props.onBlur) {
|
|
83
|
+
this.props.onBlur(event);
|
|
84
|
+
}
|
|
85
|
+
}, this.handleKeyDown = event => {
|
|
86
|
+
if (this.props.readOnly) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (['space', 'up', 'down'].indexOf(keycode(event)) !== -1) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
// Opening the menu is going to blur the. It will be focused back when closed.
|
|
93
|
+
this.ignoreNextBlur = true;
|
|
94
|
+
this.update({
|
|
95
|
+
open: true,
|
|
96
|
+
event
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}, this.handleSelectRef = node => {
|
|
100
|
+
if (!this.props.inputRef) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
this.props.inputRef({
|
|
105
|
+
node,
|
|
106
|
+
// By pass the native input as we expose a rich object (array).
|
|
107
|
+
value: this.props.value
|
|
108
|
+
});
|
|
109
|
+
}, _temp;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
componentDidMount() {
|
|
113
|
+
if (this.isControlled && this.props.open) {
|
|
114
|
+
// Focus the display node so the focus is restored on this element once
|
|
115
|
+
// the menu is closed.
|
|
116
|
+
this.displayNode.focus();
|
|
117
|
+
// Rerender with the resolve `displayNode` reference.
|
|
118
|
+
this.forceUpdate();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
render() {
|
|
123
|
+
const _props = this.props,
|
|
124
|
+
{
|
|
125
|
+
autoWidth,
|
|
126
|
+
children,
|
|
127
|
+
classes,
|
|
128
|
+
className: classNameProp,
|
|
129
|
+
disabled,
|
|
130
|
+
displayEmpty,
|
|
131
|
+
inputRef,
|
|
132
|
+
MenuProps = {},
|
|
133
|
+
multiple,
|
|
134
|
+
name,
|
|
135
|
+
native,
|
|
136
|
+
onBlur,
|
|
137
|
+
onChange,
|
|
138
|
+
onClose,
|
|
139
|
+
onFocus,
|
|
140
|
+
onOpen,
|
|
141
|
+
open: openProp,
|
|
142
|
+
readOnly,
|
|
143
|
+
renderValue,
|
|
144
|
+
SelectDisplayProps,
|
|
145
|
+
tabIndex: tabIndexProp,
|
|
146
|
+
type = 'hidden',
|
|
147
|
+
value
|
|
148
|
+
} = _props,
|
|
149
|
+
other = _objectWithoutProperties(_props, ['autoWidth', 'children', 'classes', 'className', 'disabled', 'displayEmpty', 'inputRef', 'MenuProps', 'multiple', 'name', 'native', 'onBlur', 'onChange', 'onClose', 'onFocus', 'onOpen', 'open', 'readOnly', 'renderValue', 'SelectDisplayProps', 'tabIndex', 'type', 'value']);
|
|
150
|
+
const open = this.isControlled && this.displayNode ? openProp : this.state.open;
|
|
151
|
+
|
|
152
|
+
if (native) {
|
|
153
|
+
process.env.NODE_ENV !== "production" ? warning(multiple === false, 'Material-UI: you can not use the `native` and `multiple` properties ' + 'at the same time on a `Select` component.') : void 0;
|
|
154
|
+
process.env.NODE_ENV !== "production" ? warning(!renderValue, 'Material-UI: the `renderValue` property is not used by the native implementation.') : void 0;
|
|
155
|
+
process.env.NODE_ENV !== "production" ? warning(!displayEmpty, 'Material-UI: the `displayEmpty` property is not used by the native implementation.') : void 0;
|
|
156
|
+
|
|
157
|
+
return React.createElement(
|
|
158
|
+
'div',
|
|
159
|
+
{ className: classes.root },
|
|
160
|
+
React.createElement(
|
|
161
|
+
'select',
|
|
162
|
+
_extends({
|
|
163
|
+
className: classNames(classes.select, {
|
|
164
|
+
[classes.disabled]: disabled
|
|
165
|
+
}, classNameProp),
|
|
166
|
+
name: name,
|
|
167
|
+
disabled: disabled,
|
|
168
|
+
onBlur: onBlur,
|
|
169
|
+
onChange: onChange,
|
|
170
|
+
onFocus: onFocus,
|
|
171
|
+
value: value,
|
|
172
|
+
readOnly: readOnly,
|
|
173
|
+
ref: inputRef
|
|
174
|
+
}, other),
|
|
175
|
+
children
|
|
176
|
+
),
|
|
177
|
+
React.createElement(ArrowDropDownIcon, { className: classes.icon })
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (value === undefined) {
|
|
182
|
+
throw new Error('Material-UI: the `value` property is required ' + 'when using the `Select` component with `native=false` (default).');
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
let display;
|
|
186
|
+
let displaySingle = '';
|
|
187
|
+
const displayMultiple = [];
|
|
188
|
+
let computeDisplay = false;
|
|
189
|
+
|
|
190
|
+
// No need to display any value if the field is empty.
|
|
191
|
+
if (isDirty(this.props) || displayEmpty) {
|
|
192
|
+
if (renderValue) {
|
|
193
|
+
display = renderValue(value);
|
|
194
|
+
} else {
|
|
195
|
+
computeDisplay = true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const items = React.Children.map(children, child => {
|
|
200
|
+
if (!React.isValidElement(child)) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
let selected;
|
|
204
|
+
|
|
205
|
+
if (multiple) {
|
|
206
|
+
if (!Array.isArray(value)) {
|
|
207
|
+
throw new Error('Material-UI: the `value` property must be an array ' + 'when using the `Select` component with `multiple`.');
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
selected = value.indexOf(child.props.value) !== -1;
|
|
211
|
+
if (selected && computeDisplay) {
|
|
212
|
+
displayMultiple.push(child.props.children);
|
|
213
|
+
}
|
|
214
|
+
} else {
|
|
215
|
+
selected = value === child.props.value;
|
|
216
|
+
if (selected && computeDisplay) {
|
|
217
|
+
displaySingle = child.props.children;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return React.cloneElement(child, {
|
|
222
|
+
onClick: this.handleItemClick(child),
|
|
223
|
+
role: 'option',
|
|
224
|
+
selected,
|
|
225
|
+
value: undefined, // The value is most likely not a valid HTML attribute.
|
|
226
|
+
'data-value': value // Instead, we provide it as a data attribute.
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
if (computeDisplay) {
|
|
231
|
+
display = multiple ? displayMultiple.join(', ') : displaySingle;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const MenuMinWidth = this.displayNode && !autoWidth ? this.displayNode.clientWidth : undefined;
|
|
235
|
+
|
|
236
|
+
let tabIndex;
|
|
237
|
+
if (typeof tabIndexProp !== 'undefined') {
|
|
238
|
+
tabIndex = tabIndexProp;
|
|
239
|
+
} else {
|
|
240
|
+
tabIndex = disabled ? null : 0;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return React.createElement(
|
|
244
|
+
'div',
|
|
245
|
+
{ className: classes.root },
|
|
246
|
+
React.createElement(
|
|
247
|
+
'div',
|
|
248
|
+
_extends({
|
|
249
|
+
className: classNames(classes.select, classes.selectMenu, {
|
|
250
|
+
[classes.disabled]: disabled
|
|
251
|
+
}, classNameProp),
|
|
252
|
+
ref: node => {
|
|
253
|
+
this.displayNode = node;
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
'aria-pressed': open ? 'true' : 'false',
|
|
257
|
+
tabIndex: tabIndex,
|
|
258
|
+
role: 'button',
|
|
259
|
+
'aria-owns': open ? `menu-${name || ''}` : null,
|
|
260
|
+
'aria-haspopup': 'true',
|
|
261
|
+
onKeyDown: this.handleKeyDown,
|
|
262
|
+
onBlur: this.handleBlur,
|
|
263
|
+
onClick: disabled || readOnly ? null : this.handleClick,
|
|
264
|
+
onFocus: onFocus
|
|
265
|
+
}, SelectDisplayProps),
|
|
266
|
+
React.createElement('span', { dangerouslySetInnerHTML: { __html: '​' } }),
|
|
267
|
+
display
|
|
268
|
+
),
|
|
269
|
+
React.createElement('input', _extends({
|
|
270
|
+
value: Array.isArray(value) ? value.join(',') : value,
|
|
271
|
+
name: name,
|
|
272
|
+
readOnly: readOnly,
|
|
273
|
+
ref: this.handleSelectRef,
|
|
274
|
+
type: type
|
|
275
|
+
}, other)),
|
|
276
|
+
React.createElement(ArrowDropDownIcon, { className: classes.icon }),
|
|
277
|
+
React.createElement(
|
|
278
|
+
Menu,
|
|
279
|
+
_extends({
|
|
280
|
+
id: `menu-${name || ''}`,
|
|
281
|
+
anchorEl: this.displayNode,
|
|
282
|
+
open: open,
|
|
283
|
+
onClose: this.handleClose
|
|
284
|
+
}, MenuProps, {
|
|
285
|
+
MenuListProps: _extends({
|
|
286
|
+
role: 'listbox'
|
|
287
|
+
}, MenuProps.MenuListProps),
|
|
288
|
+
PaperProps: _extends({}, MenuProps.PaperProps, {
|
|
289
|
+
style: _extends({
|
|
290
|
+
minWidth: MenuMinWidth
|
|
291
|
+
}, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)
|
|
292
|
+
})
|
|
293
|
+
}),
|
|
294
|
+
items
|
|
295
|
+
)
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
SelectInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
301
|
+
/**
|
|
302
|
+
* If true, the width of the popover will automatically be set according to the items inside the
|
|
303
|
+
* menu, otherwise it will be at least the width of the select input.
|
|
304
|
+
*/
|
|
305
|
+
autoWidth: PropTypes.bool,
|
|
306
|
+
/**
|
|
307
|
+
* The option elements to populate the select with.
|
|
308
|
+
* Can be some `MenuItem` when `native` is false and `option` when `native` is true.
|
|
309
|
+
*/
|
|
310
|
+
children: PropTypes.node,
|
|
311
|
+
/**
|
|
312
|
+
* Useful to extend the style applied to components.
|
|
313
|
+
*/
|
|
314
|
+
classes: PropTypes.object.isRequired,
|
|
315
|
+
/**
|
|
316
|
+
* The CSS class name of the select element.
|
|
317
|
+
*/
|
|
318
|
+
className: PropTypes.string,
|
|
319
|
+
/**
|
|
320
|
+
* If `true`, the select will be disabled.
|
|
321
|
+
*/
|
|
322
|
+
disabled: PropTypes.bool,
|
|
323
|
+
/**
|
|
324
|
+
* If `true`, the selected item is displayed even if its value is empty.
|
|
325
|
+
* You can only use it when the `native` property is `false` (default).
|
|
326
|
+
*/
|
|
327
|
+
displayEmpty: PropTypes.bool,
|
|
328
|
+
/**
|
|
329
|
+
* Use that property to pass a ref callback to the native select element.
|
|
330
|
+
*/
|
|
331
|
+
inputRef: PropTypes.func,
|
|
332
|
+
/**
|
|
333
|
+
* Properties applied to the `Menu` element.
|
|
334
|
+
*/
|
|
335
|
+
MenuProps: PropTypes.object,
|
|
336
|
+
/**
|
|
337
|
+
* If true, `value` must be an array and the menu will support multiple selections.
|
|
338
|
+
* You can only use it when the `native` property is `false` (default).
|
|
339
|
+
*/
|
|
340
|
+
multiple: PropTypes.bool,
|
|
341
|
+
/**
|
|
342
|
+
* Name attribute of the `select` or hidden `input` element.
|
|
343
|
+
*/
|
|
344
|
+
name: PropTypes.string,
|
|
345
|
+
/**
|
|
346
|
+
* If `true`, the component will be using a native `select` element.
|
|
347
|
+
*/
|
|
348
|
+
native: PropTypes.bool,
|
|
349
|
+
/**
|
|
350
|
+
* @ignore
|
|
351
|
+
*/
|
|
352
|
+
onBlur: PropTypes.func,
|
|
353
|
+
/**
|
|
354
|
+
* Callback function fired when a menu item is selected.
|
|
355
|
+
*
|
|
356
|
+
* @param {object} event The event source of the callback
|
|
357
|
+
* @param {object} child The react element that was selected
|
|
358
|
+
*/
|
|
359
|
+
onChange: PropTypes.func,
|
|
360
|
+
/**
|
|
361
|
+
* Callback fired when the component requests to be closed.
|
|
362
|
+
* Useful in controlled mode (see open).
|
|
363
|
+
*
|
|
364
|
+
* @param {object} event The event source of the callback
|
|
365
|
+
*/
|
|
366
|
+
onClose: PropTypes.func,
|
|
367
|
+
/**
|
|
368
|
+
* @ignore
|
|
369
|
+
*/
|
|
370
|
+
onFocus: PropTypes.func,
|
|
371
|
+
/**
|
|
372
|
+
* Callback fired when the component requests to be opened.
|
|
373
|
+
* Useful in controlled mode (see open).
|
|
374
|
+
*
|
|
375
|
+
* @param {object} event The event source of the callback
|
|
376
|
+
*/
|
|
377
|
+
onOpen: PropTypes.func,
|
|
378
|
+
/**
|
|
379
|
+
* Control `select` open state.
|
|
380
|
+
* You can only use it when the `native` property is `false` (default).
|
|
381
|
+
*/
|
|
382
|
+
open: PropTypes.bool,
|
|
383
|
+
/**
|
|
384
|
+
* @ignore
|
|
385
|
+
*/
|
|
386
|
+
readOnly: PropTypes.bool,
|
|
387
|
+
/**
|
|
388
|
+
* Render the selected value.
|
|
389
|
+
* You can only use it when the `native` property is `false` (default).
|
|
390
|
+
*
|
|
391
|
+
* @param {*} value The `value` provided to the component.
|
|
392
|
+
* @returns {ReactElement}
|
|
393
|
+
*/
|
|
394
|
+
renderValue: PropTypes.func,
|
|
395
|
+
/**
|
|
396
|
+
* Properties applied to the clickable div element.
|
|
397
|
+
*/
|
|
398
|
+
SelectDisplayProps: PropTypes.object,
|
|
399
|
+
/**
|
|
400
|
+
* @ignore
|
|
401
|
+
*/
|
|
402
|
+
tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
403
|
+
/**
|
|
404
|
+
* @ignore
|
|
405
|
+
*/
|
|
406
|
+
type: PropTypes.string,
|
|
407
|
+
/**
|
|
408
|
+
* The input value.
|
|
409
|
+
* This property is required when the `native` property is `false` (default).
|
|
410
|
+
*/
|
|
411
|
+
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))])
|
|
412
|
+
} : {};
|
|
413
|
+
|
|
414
|
+
export default SelectInput;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Select';
|