@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.
Files changed (675) hide show
  1. package/AppBar/AppBar.js +144 -0
  2. package/AppBar/index.js +16 -0
  3. package/Avatar/Avatar.js +165 -0
  4. package/Avatar/index.js +16 -0
  5. package/Badge/Badge.js +142 -0
  6. package/Badge/index.js +16 -0
  7. package/BottomNavigation/BottomNavigation.js +113 -0
  8. package/BottomNavigation/BottomNavigationAction.js +219 -0
  9. package/BottomNavigation/index.js +25 -0
  10. package/Button/Button.js +298 -0
  11. package/Button/index.js +16 -0
  12. package/ButtonBase/ButtonBase.js +446 -0
  13. package/ButtonBase/Ripple.js +162 -0
  14. package/ButtonBase/TouchRipple.js +359 -0
  15. package/ButtonBase/createRippleHandler.js +28 -0
  16. package/ButtonBase/index.js +16 -0
  17. package/CHANGELOG.md +5481 -0
  18. package/Card/Card.js +48 -0
  19. package/Card/CardActions.js +94 -0
  20. package/Card/CardContent.js +76 -0
  21. package/Card/CardHeader.js +150 -0
  22. package/Card/CardMedia.js +113 -0
  23. package/Card/index.js +52 -0
  24. package/Checkbox/Checkbox.js +160 -0
  25. package/Checkbox/index.js +16 -0
  26. package/Chip/Chip.js +322 -0
  27. package/Chip/index.js +16 -0
  28. package/Dialog/Dialog.js +271 -0
  29. package/Dialog/DialogActions.js +94 -0
  30. package/Dialog/DialogContent.js +77 -0
  31. package/Dialog/DialogContentText.js +72 -0
  32. package/Dialog/DialogTitle.js +91 -0
  33. package/Dialog/index.js +61 -0
  34. package/Dialog/withMobileDialog.js +49 -0
  35. package/Divider/Divider.js +113 -0
  36. package/Divider/index.js +16 -0
  37. package/Drawer/Drawer.js +325 -0
  38. package/Drawer/index.js +16 -0
  39. package/ExpansionPanel/ExpansionPanel.js +257 -0
  40. package/ExpansionPanel/ExpansionPanelActions.js +79 -0
  41. package/ExpansionPanel/ExpansionPanelDetails.js +73 -0
  42. package/ExpansionPanel/ExpansionPanelSummary.js +250 -0
  43. package/ExpansionPanel/index.js +43 -0
  44. package/Form/FormControl.js +291 -0
  45. package/Form/FormControlLabel.js +168 -0
  46. package/Form/FormGroup.js +94 -0
  47. package/Form/FormHelperText.js +139 -0
  48. package/Form/FormLabel.js +158 -0
  49. package/Form/index.js +52 -0
  50. package/Grid/Grid.js +372 -0
  51. package/Grid/index.js +16 -0
  52. package/GridList/GridList.js +122 -0
  53. package/GridList/GridListTile.js +239 -0
  54. package/GridList/GridListTileBar.js +176 -0
  55. package/GridList/index.js +34 -0
  56. package/HiBadge/HiBadge.js +107 -0
  57. package/HiBadge/index.js +16 -0
  58. package/HiButton/HiButton.js +159 -0
  59. package/HiButton/index.js +16 -0
  60. package/HiCheckbox/HiCheckbox.js +171 -0
  61. package/HiCheckbox/index.js +16 -0
  62. package/HiChip/HiChip.js +185 -0
  63. package/HiChip/HiChipSwitch.js +306 -0
  64. package/HiChip/index.js +25 -0
  65. package/HiColoredLabel/HiColoredLabel.js +116 -0
  66. package/HiColoredLabel/index.js +16 -0
  67. package/HiDatePicker/Caption.js +93 -0
  68. package/HiDatePicker/HiDatePicker.js +411 -0
  69. package/HiDatePicker/HiDateRangePicker.js +713 -0
  70. package/HiDatePicker/HiDateRangeSelector.js +414 -0
  71. package/HiDatePicker/HiWeekPicker.js +389 -0
  72. package/HiDatePicker/ListPicker.js +154 -0
  73. package/HiDatePicker/Navbar.js +169 -0
  74. package/HiDatePicker/Overlays/CustomOverlayLayout.js +142 -0
  75. package/HiDatePicker/Overlays/MonthPickerOverlay.js +137 -0
  76. package/HiDatePicker/Overlays/Overlay.js +105 -0
  77. package/HiDatePicker/Overlays/TimePickerOverlay.js +291 -0
  78. package/HiDatePicker/Overlays/YearPickerOverlay.js +173 -0
  79. package/HiDatePicker/Overlays/index.js +52 -0
  80. package/HiDatePicker/Weekday.js +52 -0
  81. package/HiDatePicker/index.js +33 -0
  82. package/HiDatePicker/stylesheet.js +188 -0
  83. package/HiForm/HiEmailField.js +126 -0
  84. package/HiForm/HiFormControl.js +377 -0
  85. package/HiForm/HiFormLabel.js +180 -0
  86. package/HiForm/HiInput.js +546 -0
  87. package/HiForm/HiPasswordField.js +134 -0
  88. package/HiForm/HiSearchField.js +192 -0
  89. package/HiForm/HiTextField.js +293 -0
  90. package/HiForm/index.js +70 -0
  91. package/HiLoader/HiLoader.js +55 -0
  92. package/HiLoader/index.js +16 -0
  93. package/HiPins/HiPins.js +99 -0
  94. package/HiPins/index.js +16 -0
  95. package/HiRadio/HiRadio.js +99 -0
  96. package/HiRadio/index.js +16 -0
  97. package/HiSelect/HiSelect.js +830 -0
  98. package/HiSelect/HiSelectField.js +160 -0
  99. package/HiSelect/HiSuggestSelect.js +306 -0
  100. package/HiSelect/HiSuggestSelectField.js +143 -0
  101. package/HiSelect/SelectInput.js +329 -0
  102. package/HiSelect/index.js +41 -0
  103. package/HiSelectableList/HiSelectableList.js +258 -0
  104. package/HiSelectableList/HiSelectableListItem.js +520 -0
  105. package/HiSelectableList/index.js +25 -0
  106. package/HiSwitch/HiSwitch.js +208 -0
  107. package/HiSwitch/HiSwitchState.js +229 -0
  108. package/HiSwitch/index.js +25 -0
  109. package/HiTable/BodyCellBuilder.js +398 -0
  110. package/HiTable/BodyCells/CellAccount.js +100 -0
  111. package/HiTable/BodyCells/CellAccountNumber.js +220 -0
  112. package/HiTable/BodyCells/CellAddress.js +199 -0
  113. package/HiTable/BodyCells/CellCountry.js +172 -0
  114. package/HiTable/BodyCells/CellDate.js +177 -0
  115. package/HiTable/BodyCells/CellIcon.js +148 -0
  116. package/HiTable/BodyCells/CellImage.js +177 -0
  117. package/HiTable/BodyCells/CellLayout.js +281 -0
  118. package/HiTable/BodyCells/CellNumeric.js +135 -0
  119. package/HiTable/BodyCells/CellRate.js +197 -0
  120. package/HiTable/BodyCells/CellSentinel.js +213 -0
  121. package/HiTable/BodyCells/CellStatus.js +136 -0
  122. package/HiTable/BodyCells/CellText.js +267 -0
  123. package/HiTable/BodyCells/CellThirdPartySecurity.js +144 -0
  124. package/HiTable/BodyCells/index.js +133 -0
  125. package/HiTable/BodyRow.js +388 -0
  126. package/HiTable/ChildRow.js +432 -0
  127. package/HiTable/ColumnFilter.js +490 -0
  128. package/HiTable/HeaderCell.js +463 -0
  129. package/HiTable/HiStickyRow.js +300 -0
  130. package/HiTable/HiTable.js +1012 -0
  131. package/HiTable/HiTableBody.js +547 -0
  132. package/HiTable/HiTableContextMenu.js +214 -0
  133. package/HiTable/HiTableFooterScroll.js +202 -0
  134. package/HiTable/HiTableHead.js +489 -0
  135. package/HiTable/OrderColumns.js +557 -0
  136. package/HiTable/constants.js +105 -0
  137. package/HiTable/index.js +25 -0
  138. package/HiTopBar/HiTopBar.js +635 -0
  139. package/HiTopBar/index.js +16 -0
  140. package/Hidden/Hidden.js +130 -0
  141. package/Hidden/HiddenCss.js +175 -0
  142. package/Hidden/HiddenJs.js +149 -0
  143. package/Hidden/index.js +16 -0
  144. package/Icon/Icon.js +109 -0
  145. package/Icon/index.js +16 -0
  146. package/IconButton/IconButton.js +146 -0
  147. package/IconButton/index.js +16 -0
  148. package/Input/Input.js +682 -0
  149. package/Input/InputAdornment.js +116 -0
  150. package/Input/InputLabel.js +163 -0
  151. package/Input/Textarea.js +301 -0
  152. package/Input/index.js +34 -0
  153. package/LICENSE +21 -0
  154. package/List/List.js +167 -0
  155. package/List/ListItem.js +279 -0
  156. package/List/ListItemAvatar.js +100 -0
  157. package/List/ListItemIcon.js +77 -0
  158. package/List/ListItemSecondaryAction.js +76 -0
  159. package/List/ListItemText.js +145 -0
  160. package/List/ListSubheader.js +127 -0
  161. package/List/index.js +70 -0
  162. package/Menu/Menu.js +274 -0
  163. package/Menu/MenuItem.js +113 -0
  164. package/Menu/MenuList.js +253 -0
  165. package/Menu/index.js +34 -0
  166. package/MobileStepper/MobileStepper.js +173 -0
  167. package/MobileStepper/index.js +16 -0
  168. package/Modal/Backdrop.js +102 -0
  169. package/Modal/Modal.js +502 -0
  170. package/Modal/ModalManager.js +210 -0
  171. package/Modal/index.js +34 -0
  172. package/Modal/isOverflowing.js +43 -0
  173. package/Modal/manageAriaHidden.js +45 -0
  174. package/Paper/Paper.js +111 -0
  175. package/Paper/index.js +16 -0
  176. package/Popover/Popover.js +564 -0
  177. package/Popover/index.js +16 -0
  178. package/Portal/LegacyPortal.js +158 -0
  179. package/Portal/Portal.js +144 -0
  180. package/Portal/index.js +21 -0
  181. package/Progress/CircularProgress.js +228 -0
  182. package/Progress/LinearProgress.js +258 -0
  183. package/Progress/index.js +25 -0
  184. package/README.md +237 -0
  185. package/Radio/Radio.js +155 -0
  186. package/Radio/RadioGroup.js +168 -0
  187. package/Radio/index.js +25 -0
  188. package/Reboot/Reboot.js +106 -0
  189. package/Reboot/index.js +16 -0
  190. package/Select/Select.js +229 -0
  191. package/Select/SelectInput.js +502 -0
  192. package/Select/index.js +16 -0
  193. package/Snackbar/Snackbar.js +451 -0
  194. package/Snackbar/SnackbarContent.js +135 -0
  195. package/Snackbar/index.js +25 -0
  196. package/Stepper/Step.js +151 -0
  197. package/Stepper/StepButton.js +143 -0
  198. package/Stepper/StepConnector.js +118 -0
  199. package/Stepper/StepContent.js +153 -0
  200. package/Stepper/StepIcon.js +86 -0
  201. package/Stepper/StepLabel.js +200 -0
  202. package/Stepper/StepPositionIcon.js +95 -0
  203. package/Stepper/Stepper.js +161 -0
  204. package/Stepper/index.js +61 -0
  205. package/SvgIcon/SvgIcon.js +147 -0
  206. package/SvgIcon/index.js +16 -0
  207. package/Switch/Switch.js +215 -0
  208. package/Switch/index.js +16 -0
  209. package/Table/Table.js +127 -0
  210. package/Table/TableBody.js +121 -0
  211. package/Table/TableCell.js +181 -0
  212. package/Table/TableFooter.js +93 -0
  213. package/Table/TableHead.js +121 -0
  214. package/Table/TablePagination.js +310 -0
  215. package/Table/TablePaginationActions.js +183 -0
  216. package/Table/TableRow.js +127 -0
  217. package/Table/TableSortLabel.js +145 -0
  218. package/Table/index.js +79 -0
  219. package/Tabs/Tab.js +340 -0
  220. package/Tabs/TabIndicator.js +95 -0
  221. package/Tabs/TabScrollButton.js +112 -0
  222. package/Tabs/Tabs.js +530 -0
  223. package/Tabs/index.js +25 -0
  224. package/TextField/TextField.js +290 -0
  225. package/TextField/index.js +16 -0
  226. package/Toolbar/Toolbar.js +89 -0
  227. package/Toolbar/index.js +16 -0
  228. package/Tooltip/Tooltip.js +514 -0
  229. package/Tooltip/index.js +16 -0
  230. package/Typography/Typography.js +192 -0
  231. package/Typography/index.js +16 -0
  232. package/colors/amber.js +23 -0
  233. package/colors/blue.js +23 -0
  234. package/colors/blueGrey.js +23 -0
  235. package/colors/brown.js +23 -0
  236. package/colors/common.js +11 -0
  237. package/colors/cyan.js +23 -0
  238. package/colors/deepOrange.js +23 -0
  239. package/colors/deepPurple.js +23 -0
  240. package/colors/green.js +23 -0
  241. package/colors/grey.js +23 -0
  242. package/colors/index.js +187 -0
  243. package/colors/indigo.js +23 -0
  244. package/colors/lightBlue.js +23 -0
  245. package/colors/lightGreen.js +23 -0
  246. package/colors/lime.js +23 -0
  247. package/colors/orange.js +23 -0
  248. package/colors/pink.js +23 -0
  249. package/colors/purple.js +23 -0
  250. package/colors/red.js +23 -0
  251. package/colors/teal.js +23 -0
  252. package/colors/yellow.js +23 -0
  253. package/es/AppBar/AppBar.js +106 -0
  254. package/es/AppBar/index.js +1 -0
  255. package/es/Avatar/Avatar.js +136 -0
  256. package/es/Avatar/index.js +1 -0
  257. package/es/Badge/Badge.js +112 -0
  258. package/es/Badge/index.js +1 -0
  259. package/es/BottomNavigation/BottomNavigation.js +86 -0
  260. package/es/BottomNavigation/BottomNavigationAction.js +153 -0
  261. package/es/BottomNavigation/index.js +2 -0
  262. package/es/Button/Button.js +274 -0
  263. package/es/Button/index.js +1 -0
  264. package/es/ButtonBase/ButtonBase.js +358 -0
  265. package/es/ButtonBase/Ripple.js +102 -0
  266. package/es/ButtonBase/TouchRipple.js +268 -0
  267. package/es/ButtonBase/createRippleHandler.js +23 -0
  268. package/es/ButtonBase/index.js +1 -0
  269. package/es/Card/Card.js +27 -0
  270. package/es/Card/CardActions.js +58 -0
  271. package/es/Card/CardContent.js +45 -0
  272. package/es/Card/CardHeader.js +120 -0
  273. package/es/Card/CardMedia.js +76 -0
  274. package/es/Card/index.js +5 -0
  275. package/es/Checkbox/Checkbox.js +117 -0
  276. package/es/Checkbox/index.js +1 -0
  277. package/es/Chip/Chip.js +241 -0
  278. package/es/Chip/index.js +1 -0
  279. package/es/Dialog/Dialog.js +231 -0
  280. package/es/Dialog/DialogActions.js +58 -0
  281. package/es/Dialog/DialogContent.js +48 -0
  282. package/es/Dialog/DialogContentText.js +41 -0
  283. package/es/Dialog/DialogTitle.js +57 -0
  284. package/es/Dialog/index.js +6 -0
  285. package/es/Dialog/withMobileDialog.js +25 -0
  286. package/es/Divider/Divider.js +83 -0
  287. package/es/Divider/index.js +1 -0
  288. package/es/Drawer/Drawer.js +252 -0
  289. package/es/Drawer/index.js +1 -0
  290. package/es/ExpansionPanel/ExpansionPanel.js +194 -0
  291. package/es/ExpansionPanel/ExpansionPanelActions.js +47 -0
  292. package/es/ExpansionPanel/ExpansionPanelDetails.js +42 -0
  293. package/es/ExpansionPanel/ExpansionPanelSummary.js +182 -0
  294. package/es/ExpansionPanel/index.js +4 -0
  295. package/es/Form/FormControl.js +214 -0
  296. package/es/Form/FormControlLabel.js +137 -0
  297. package/es/Form/FormGroup.js +62 -0
  298. package/es/Form/FormHelperText.js +110 -0
  299. package/es/Form/FormLabel.js +132 -0
  300. package/es/Form/index.js +5 -0
  301. package/es/Grid/Grid.js +353 -0
  302. package/es/Grid/index.js +1 -0
  303. package/es/GridList/GridList.js +97 -0
  304. package/es/GridList/GridListTile.js +153 -0
  305. package/es/GridList/GridListTileBar.js +152 -0
  306. package/es/GridList/index.js +3 -0
  307. package/es/HiBadge/HiBadge.js +76 -0
  308. package/es/HiBadge/index.js +1 -0
  309. package/es/HiButton/HiButton.js +130 -0
  310. package/es/HiButton/index.js +1 -0
  311. package/es/HiCheckbox/HiCheckbox.js +101 -0
  312. package/es/HiCheckbox/index.js +1 -0
  313. package/es/HiChip/HiChip.js +148 -0
  314. package/es/HiChip/HiChipSwitch.js +244 -0
  315. package/es/HiChip/index.js +2 -0
  316. package/es/HiColoredLabel/HiColoredLabel.js +84 -0
  317. package/es/HiColoredLabel/index.js +1 -0
  318. package/es/HiDatePicker/Caption.js +67 -0
  319. package/es/HiDatePicker/HiDatePicker.js +314 -0
  320. package/es/HiDatePicker/HiDateRangePicker.js +565 -0
  321. package/es/HiDatePicker/HiDateRangeSelector.js +337 -0
  322. package/es/HiDatePicker/HiWeekPicker.js +296 -0
  323. package/es/HiDatePicker/ListPicker.js +93 -0
  324. package/es/HiDatePicker/Navbar.js +130 -0
  325. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +114 -0
  326. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +80 -0
  327. package/es/HiDatePicker/Overlays/Overlay.js +76 -0
  328. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +218 -0
  329. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +109 -0
  330. package/es/HiDatePicker/Overlays/index.js +5 -0
  331. package/es/HiDatePicker/Weekday.js +34 -0
  332. package/es/HiDatePicker/index.js +7 -0
  333. package/es/HiDatePicker/stylesheet.js +175 -0
  334. package/es/HiForm/HiEmailField.js +71 -0
  335. package/es/HiForm/HiFormControl.js +298 -0
  336. package/es/HiForm/HiFormLabel.js +122 -0
  337. package/es/HiForm/HiInput.js +485 -0
  338. package/es/HiForm/HiPasswordField.js +70 -0
  339. package/es/HiForm/HiSearchField.js +135 -0
  340. package/es/HiForm/HiTextField.js +239 -0
  341. package/es/HiForm/index.js +7 -0
  342. package/es/HiLoader/HiLoader.js +33 -0
  343. package/es/HiLoader/index.js +1 -0
  344. package/es/HiPins/HiPins.js +66 -0
  345. package/es/HiPins/index.js +1 -0
  346. package/es/HiRadio/HiRadio.js +41 -0
  347. package/es/HiRadio/index.js +1 -0
  348. package/es/HiSelect/HiSelect.js +713 -0
  349. package/es/HiSelect/HiSelectField.js +106 -0
  350. package/es/HiSelect/HiSuggestSelect.js +223 -0
  351. package/es/HiSelect/HiSuggestSelectField.js +89 -0
  352. package/es/HiSelect/SelectInput.js +262 -0
  353. package/es/HiSelect/index.js +11 -0
  354. package/es/HiSelectableList/HiSelectableList.js +195 -0
  355. package/es/HiSelectableList/HiSelectableListItem.js +441 -0
  356. package/es/HiSelectableList/index.js +2 -0
  357. package/es/HiSwitch/HiSwitch.js +138 -0
  358. package/es/HiSwitch/HiSwitchState.js +169 -0
  359. package/es/HiSwitch/index.js +2 -0
  360. package/es/HiTable/BodyCellBuilder.js +345 -0
  361. package/es/HiTable/BodyCells/CellAccount.js +40 -0
  362. package/es/HiTable/BodyCells/CellAccountNumber.js +166 -0
  363. package/es/HiTable/BodyCells/CellAddress.js +129 -0
  364. package/es/HiTable/BodyCells/CellCountry.js +107 -0
  365. package/es/HiTable/BodyCells/CellDate.js +111 -0
  366. package/es/HiTable/BodyCells/CellIcon.js +83 -0
  367. package/es/HiTable/BodyCells/CellImage.js +115 -0
  368. package/es/HiTable/BodyCells/CellLayout.js +198 -0
  369. package/es/HiTable/BodyCells/CellNumeric.js +71 -0
  370. package/es/HiTable/BodyCells/CellRate.js +131 -0
  371. package/es/HiTable/BodyCells/CellSentinel.js +153 -0
  372. package/es/HiTable/BodyCells/CellStatus.js +73 -0
  373. package/es/HiTable/BodyCells/CellText.js +188 -0
  374. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +89 -0
  375. package/es/HiTable/BodyCells/index.js +16 -0
  376. package/es/HiTable/BodyRow.js +314 -0
  377. package/es/HiTable/ChildRow.js +345 -0
  378. package/es/HiTable/ColumnFilter.js +394 -0
  379. package/es/HiTable/HeaderCell.js +376 -0
  380. package/es/HiTable/HiStickyRow.js +217 -0
  381. package/es/HiTable/HiTable.js +876 -0
  382. package/es/HiTable/HiTableBody.js +454 -0
  383. package/es/HiTable/HiTableContextMenu.js +150 -0
  384. package/es/HiTable/HiTableFooterScroll.js +144 -0
  385. package/es/HiTable/HiTableHead.js +403 -0
  386. package/es/HiTable/OrderColumns.js +437 -0
  387. package/es/HiTable/constants.js +180 -0
  388. package/es/HiTable/index.js +2 -0
  389. package/es/HiTopBar/HiTopBar.js +527 -0
  390. package/es/HiTopBar/index.js +1 -0
  391. package/es/Hidden/Hidden.js +107 -0
  392. package/es/Hidden/HiddenCss.js +151 -0
  393. package/es/Hidden/HiddenJs.js +129 -0
  394. package/es/Hidden/index.js +1 -0
  395. package/es/Icon/Icon.js +74 -0
  396. package/es/Icon/index.js +1 -0
  397. package/es/IconButton/IconButton.js +106 -0
  398. package/es/IconButton/index.js +1 -0
  399. package/es/Input/Input.js +616 -0
  400. package/es/Input/InputAdornment.js +83 -0
  401. package/es/Input/InputLabel.js +138 -0
  402. package/es/Input/Textarea.js +234 -0
  403. package/es/Input/index.js +3 -0
  404. package/es/List/List.js +106 -0
  405. package/es/List/ListItem.js +212 -0
  406. package/es/List/ListItemAvatar.js +63 -0
  407. package/es/List/ListItemIcon.js +46 -0
  408. package/es/List/ListItemSecondaryAction.js +45 -0
  409. package/es/List/ListItemText.js +114 -0
  410. package/es/List/ListSubheader.js +90 -0
  411. package/es/List/index.js +7 -0
  412. package/es/Menu/Menu.js +205 -0
  413. package/es/Menu/MenuItem.js +75 -0
  414. package/es/Menu/MenuList.js +168 -0
  415. package/es/Menu/index.js +3 -0
  416. package/es/MobileStepper/MobileStepper.js +137 -0
  417. package/es/MobileStepper/index.js +1 -0
  418. package/es/Modal/Backdrop.js +67 -0
  419. package/es/Modal/Modal.js +398 -0
  420. package/es/Modal/ModalManager.js +162 -0
  421. package/es/Modal/index.js +3 -0
  422. package/es/Modal/isOverflowing.js +25 -0
  423. package/es/Modal/manageAriaHidden.js +33 -0
  424. package/es/Paper/Paper.js +81 -0
  425. package/es/Paper/index.js +1 -0
  426. package/es/Popover/Popover.js +455 -0
  427. package/es/Popover/index.js +1 -0
  428. package/es/Portal/LegacyPortal.js +97 -0
  429. package/es/Portal/Portal.js +82 -0
  430. package/es/Portal/index.js +5 -0
  431. package/es/Progress/CircularProgress.js +201 -0
  432. package/es/Progress/LinearProgress.js +235 -0
  433. package/es/Progress/index.js +2 -0
  434. package/es/Radio/Radio.js +113 -0
  435. package/es/Radio/RadioGroup.js +101 -0
  436. package/es/Radio/index.js +2 -0
  437. package/es/Reboot/Reboot.js +55 -0
  438. package/es/Reboot/index.js +1 -0
  439. package/es/Select/Select.js +199 -0
  440. package/es/Select/SelectInput.js +414 -0
  441. package/es/Select/index.js +1 -0
  442. package/es/Snackbar/Snackbar.js +370 -0
  443. package/es/Snackbar/SnackbarContent.js +96 -0
  444. package/es/Snackbar/index.js +2 -0
  445. package/es/Stepper/Step.js +120 -0
  446. package/es/Stepper/StepButton.js +111 -0
  447. package/es/Stepper/StepConnector.js +85 -0
  448. package/es/Stepper/StepContent.js +116 -0
  449. package/es/Stepper/StepIcon.js +54 -0
  450. package/es/Stepper/StepLabel.js +170 -0
  451. package/es/Stepper/StepPositionIcon.js +64 -0
  452. package/es/Stepper/Stepper.js +126 -0
  453. package/es/Stepper/index.js +6 -0
  454. package/es/SvgIcon/SvgIcon.js +117 -0
  455. package/es/SvgIcon/index.js +1 -0
  456. package/es/Switch/Switch.js +178 -0
  457. package/es/Switch/index.js +1 -0
  458. package/es/Table/Table.js +64 -0
  459. package/es/Table/TableBody.js +61 -0
  460. package/es/Table/TableCell.js +153 -0
  461. package/es/Table/TableFooter.js +44 -0
  462. package/es/Table/TableHead.js +61 -0
  463. package/es/Table/TablePagination.js +224 -0
  464. package/es/Table/TablePaginationActions.js +116 -0
  465. package/es/Table/TableRow.js +99 -0
  466. package/es/Table/TableSortLabel.js +101 -0
  467. package/es/Table/index.js +8 -0
  468. package/es/Tabs/Tab.js +271 -0
  469. package/es/Tabs/TabIndicator.js +63 -0
  470. package/es/Tabs/TabScrollButton.js +70 -0
  471. package/es/Tabs/Tabs.js +425 -0
  472. package/es/Tabs/index.js +2 -0
  473. package/es/TextField/TextField.js +259 -0
  474. package/es/TextField/index.js +1 -0
  475. package/es/Toolbar/Toolbar.js +55 -0
  476. package/es/Toolbar/index.js +1 -0
  477. package/es/Tooltip/Tooltip.js +425 -0
  478. package/es/Tooltip/index.js +1 -0
  479. package/es/Typography/Typography.js +164 -0
  480. package/es/Typography/index.js +1 -0
  481. package/es/colors/amber.js +18 -0
  482. package/es/colors/blue.js +18 -0
  483. package/es/colors/blueGrey.js +18 -0
  484. package/es/colors/brown.js +18 -0
  485. package/es/colors/common.js +6 -0
  486. package/es/colors/cyan.js +18 -0
  487. package/es/colors/deepOrange.js +18 -0
  488. package/es/colors/deepPurple.js +18 -0
  489. package/es/colors/green.js +18 -0
  490. package/es/colors/grey.js +18 -0
  491. package/es/colors/index.js +20 -0
  492. package/es/colors/indigo.js +18 -0
  493. package/es/colors/lightBlue.js +18 -0
  494. package/es/colors/lightGreen.js +18 -0
  495. package/es/colors/lime.js +18 -0
  496. package/es/colors/orange.js +18 -0
  497. package/es/colors/pink.js +18 -0
  498. package/es/colors/purple.js +18 -0
  499. package/es/colors/red.js +18 -0
  500. package/es/colors/teal.js +18 -0
  501. package/es/colors/yellow.js +18 -0
  502. package/es/index.js +64 -0
  503. package/es/internal/RefHolder.js +20 -0
  504. package/es/internal/SwitchBase.js +219 -0
  505. package/es/internal/svg-icons/ArrowDownward.js +20 -0
  506. package/es/internal/svg-icons/ArrowDropDown.js +20 -0
  507. package/es/internal/svg-icons/Cancel.js +19 -0
  508. package/es/internal/svg-icons/CheckBox.js +19 -0
  509. package/es/internal/svg-icons/CheckBoxOutlineBlank.js +19 -0
  510. package/es/internal/svg-icons/CheckCircle.js +19 -0
  511. package/es/internal/svg-icons/IndeterminateCheckBox.js +19 -0
  512. package/es/internal/svg-icons/KeyboardArrowLeft.js +19 -0
  513. package/es/internal/svg-icons/KeyboardArrowRight.js +19 -0
  514. package/es/internal/svg-icons/RadioButtonChecked.js +19 -0
  515. package/es/internal/svg-icons/RadioButtonUnchecked.js +19 -0
  516. package/es/styles/MuiThemeProvider.js +125 -0
  517. package/es/styles/colorManipulator.js +221 -0
  518. package/es/styles/createBreakpoints.js +69 -0
  519. package/es/styles/createGenerateClassName.js +72 -0
  520. package/es/styles/createHiMuiTheme.js +296 -0
  521. package/es/styles/createMixins.js +25 -0
  522. package/es/styles/createMuiTheme.js +45 -0
  523. package/es/styles/createPalette.js +164 -0
  524. package/es/styles/createTypography.js +116 -0
  525. package/es/styles/getStylesCreator.js +34 -0
  526. package/es/styles/index.js +7 -0
  527. package/es/styles/jssPreset.js +16 -0
  528. package/es/styles/shadows.js +11 -0
  529. package/es/styles/spacing.js +5 -0
  530. package/es/styles/themeListener.js +31 -0
  531. package/es/styles/transitions.js +80 -0
  532. package/es/styles/withStyles.js +300 -0
  533. package/es/styles/withTheme.js +65 -0
  534. package/es/styles/zIndex.js +12 -0
  535. package/es/svg-icons/ArrowDownward.js +20 -0
  536. package/es/svg-icons/ArrowDropDown.js +20 -0
  537. package/es/svg-icons/Cancel.js +19 -0
  538. package/es/svg-icons/CheckBox.js +19 -0
  539. package/es/svg-icons/CheckBoxOutlineBlank.js +19 -0
  540. package/es/svg-icons/CheckCircle.js +19 -0
  541. package/es/svg-icons/HiAccount.js +33 -0
  542. package/es/svg-icons/HiAll.js +43 -0
  543. package/es/svg-icons/HiBilling.js +33 -0
  544. package/es/svg-icons/HiCatalog.js +33 -0
  545. package/es/svg-icons/HiCustomer.js +39 -0
  546. package/es/svg-icons/HiFinance.js +33 -0
  547. package/es/svg-icons/HiRoute.js +33 -0
  548. package/es/svg-icons/HiSettlement.js +36 -0
  549. package/es/svg-icons/HiSizeLarge.js +19 -0
  550. package/es/svg-icons/HiSizeMedium.js +19 -0
  551. package/es/svg-icons/HiSizeSmall.js +19 -0
  552. package/es/svg-icons/HiTransaction.js +33 -0
  553. package/es/svg-icons/HiUser.js +39 -0
  554. package/es/svg-icons/HiWidget.js +43 -0
  555. package/es/svg-icons/IndeterminateCheckBox.js +19 -0
  556. package/es/svg-icons/KeyboardArrowLeft.js +19 -0
  557. package/es/svg-icons/KeyboardArrowRight.js +19 -0
  558. package/es/svg-icons/RadioButtonChecked.js +19 -0
  559. package/es/svg-icons/RadioButtonUnchecked.js +19 -0
  560. package/es/svg-icons/index.js +11 -0
  561. package/es/test-utils/createMount.js +32 -0
  562. package/es/test-utils/createRender.js +16 -0
  563. package/es/test-utils/createShallow.js +33 -0
  564. package/es/test-utils/getClasses.js +21 -0
  565. package/es/test-utils/index.js +5 -0
  566. package/es/test-utils/until.js +32 -0
  567. package/es/test-utils/unwrap.js +5 -0
  568. package/es/transitions/Collapse.js +245 -0
  569. package/es/transitions/Fade.js +132 -0
  570. package/es/transitions/Grow.js +173 -0
  571. package/es/transitions/Slide.js +291 -0
  572. package/es/transitions/Zoom.js +129 -0
  573. package/es/transitions/index.js +5 -0
  574. package/es/transitions/utils.js +10 -0
  575. package/es/utils/ClickAwayListener.js +65 -0
  576. package/es/utils/HiIconBuilder.js +99 -0
  577. package/es/utils/addEventListener.js +11 -0
  578. package/es/utils/exactProp.js +21 -0
  579. package/es/utils/helpers.js +65 -0
  580. package/es/utils/hiGetMdiIcon.js +12 -0
  581. package/es/utils/hiHelpers.js +173 -0
  582. package/es/utils/keyboardFocus.js +51 -0
  583. package/es/utils/manageAriaHidden.js +33 -0
  584. package/es/utils/reactHelpers.js +21 -0
  585. package/es/utils/requirePropFactory.js +16 -0
  586. package/es/utils/withWidth.js +141 -0
  587. package/index.es.js +69 -0
  588. package/index.js +853 -0
  589. package/internal/RefHolder.js +64 -0
  590. package/internal/SwitchBase.js +287 -0
  591. package/internal/svg-icons/ArrowDownward.js +37 -0
  592. package/internal/svg-icons/ArrowDropDown.js +37 -0
  593. package/internal/svg-icons/Cancel.js +36 -0
  594. package/internal/svg-icons/CheckBox.js +36 -0
  595. package/internal/svg-icons/CheckBoxOutlineBlank.js +36 -0
  596. package/internal/svg-icons/CheckCircle.js +36 -0
  597. package/internal/svg-icons/IndeterminateCheckBox.js +36 -0
  598. package/internal/svg-icons/KeyboardArrowLeft.js +36 -0
  599. package/internal/svg-icons/KeyboardArrowRight.js +36 -0
  600. package/internal/svg-icons/RadioButtonChecked.js +36 -0
  601. package/internal/svg-icons/RadioButtonUnchecked.js +36 -0
  602. package/package.json +77 -0
  603. package/styles/MuiThemeProvider.js +197 -0
  604. package/styles/colorManipulator.js +255 -0
  605. package/styles/createBreakpoints.js +86 -0
  606. package/styles/createGenerateClassName.js +88 -0
  607. package/styles/createHiMuiTheme.js +328 -0
  608. package/styles/createMixins.js +42 -0
  609. package/styles/createMuiTheme.js +91 -0
  610. package/styles/createPalette.js +208 -0
  611. package/styles/createTypography.js +138 -0
  612. package/styles/getStylesCreator.js +55 -0
  613. package/styles/index.js +70 -0
  614. package/styles/jssPreset.js +41 -0
  615. package/styles/shadows.js +16 -0
  616. package/styles/spacing.js +10 -0
  617. package/styles/themeListener.js +44 -0
  618. package/styles/transitions.js +112 -0
  619. package/styles/withStyles.js +416 -0
  620. package/styles/withTheme.js +127 -0
  621. package/styles/zIndex.js +17 -0
  622. package/svg-icons/ArrowDownward.js +37 -0
  623. package/svg-icons/ArrowDropDown.js +37 -0
  624. package/svg-icons/Cancel.js +36 -0
  625. package/svg-icons/CheckBox.js +36 -0
  626. package/svg-icons/CheckBoxOutlineBlank.js +36 -0
  627. package/svg-icons/CheckCircle.js +36 -0
  628. package/svg-icons/HiAccount.js +52 -0
  629. package/svg-icons/HiAll.js +62 -0
  630. package/svg-icons/HiBilling.js +52 -0
  631. package/svg-icons/HiCatalog.js +52 -0
  632. package/svg-icons/HiCustomer.js +58 -0
  633. package/svg-icons/HiFinance.js +52 -0
  634. package/svg-icons/HiRoute.js +52 -0
  635. package/svg-icons/HiSettlement.js +52 -0
  636. package/svg-icons/HiSizeLarge.js +36 -0
  637. package/svg-icons/HiSizeMedium.js +36 -0
  638. package/svg-icons/HiSizeSmall.js +36 -0
  639. package/svg-icons/HiTransaction.js +52 -0
  640. package/svg-icons/HiUser.js +58 -0
  641. package/svg-icons/HiWidget.js +62 -0
  642. package/svg-icons/IndeterminateCheckBox.js +36 -0
  643. package/svg-icons/KeyboardArrowLeft.js +36 -0
  644. package/svg-icons/KeyboardArrowRight.js +36 -0
  645. package/svg-icons/RadioButtonChecked.js +36 -0
  646. package/svg-icons/RadioButtonUnchecked.js +36 -0
  647. package/svg-icons/index.js +106 -0
  648. package/test-utils/createMount.js +53 -0
  649. package/test-utils/createRender.js +36 -0
  650. package/test-utils/createShallow.js +60 -0
  651. package/test-utils/getClasses.js +47 -0
  652. package/test-utils/index.js +52 -0
  653. package/test-utils/until.js +54 -0
  654. package/test-utils/unwrap.js +11 -0
  655. package/transitions/Collapse.js +324 -0
  656. package/transitions/Fade.js +207 -0
  657. package/transitions/Grow.js +251 -0
  658. package/transitions/Slide.js +381 -0
  659. package/transitions/Zoom.js +204 -0
  660. package/transitions/index.js +52 -0
  661. package/transitions/utils.js +21 -0
  662. package/umd/hipay-material-ui.development.js +113768 -0
  663. package/umd/hipay-material-ui.production.min.js +21 -0
  664. package/utils/ClickAwayListener.js +122 -0
  665. package/utils/HiIconBuilder.js +168 -0
  666. package/utils/addEventListener.js +26 -0
  667. package/utils/exactProp.js +40 -0
  668. package/utils/helpers.js +97 -0
  669. package/utils/hiGetMdiIcon.js +20 -0
  670. package/utils/hiHelpers.js +195 -0
  671. package/utils/keyboardFocus.js +75 -0
  672. package/utils/manageAriaHidden.js +49 -0
  673. package/utils/reactHelpers.js +27 -0
  674. package/utils/requirePropFactory.js +23 -0
  675. 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: '&#8203' } }),
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';