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