@hipay/hipay-material-ui 1.0.0-beta.8 → 2.0.0-beta.35

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 (1047) hide show
  1. package/CHANGELOG.md +1922 -21
  2. package/HiAlertModal/HiAlertModal.js +185 -210
  3. package/HiAlertModal/index.js +6 -7
  4. package/HiAppBar/HiAppBar.js +199 -0
  5. package/HiAppBar/index.js +15 -0
  6. package/HiBadge/HiBadge.js +119 -95
  7. package/HiBadge/index.js +6 -7
  8. package/HiBreadcrumb/HiBreadcrumb.js +90 -115
  9. package/HiBreadcrumb/HiStep.js +155 -98
  10. package/HiBreadcrumb/HiStepConnector.js +170 -109
  11. package/HiBreadcrumb/HiStepContent.js +108 -0
  12. package/HiBreadcrumb/HiStepIcon.js +166 -123
  13. package/HiBreadcrumb/HiStepLabel.js +209 -172
  14. package/HiBreadcrumb/HiStepper.js +76 -104
  15. package/HiBreadcrumb/index.js +6 -7
  16. package/HiButton/HiButton.js +192 -136
  17. package/HiButton/index.js +6 -7
  18. package/HiCheckbox/HiCheckbox.js +190 -147
  19. package/HiCheckbox/index.js +6 -7
  20. package/HiChip/HiChip.js +254 -174
  21. package/HiChip/HiChipSwitch.js +279 -289
  22. package/HiChip/index.js +10 -12
  23. package/HiColoredLabel/HiColoredLabel.js +179 -100
  24. package/HiColoredLabel/index.js +6 -7
  25. package/HiDatePicker/Caption.js +77 -82
  26. package/HiDatePicker/Caption.spec.js +88 -0
  27. package/HiDatePicker/HiDatePicker.js +369 -373
  28. package/HiDatePicker/ListPicker.js +137 -148
  29. package/HiDatePicker/ListPicker.spec.js +68 -0
  30. package/HiDatePicker/NavBar.js +146 -0
  31. package/HiDatePicker/NavBar.spec.js +56 -0
  32. package/HiDatePicker/Overlays/CustomOverlayLayout.js +113 -132
  33. package/HiDatePicker/Overlays/MonthPickerOverlay.js +95 -115
  34. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +74 -0
  35. package/HiDatePicker/Overlays/Overlay.js +102 -94
  36. package/HiDatePicker/Overlays/Overlay.spec.js +38 -0
  37. package/HiDatePicker/Overlays/TimePickerOverlay.js +242 -281
  38. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +71 -0
  39. package/HiDatePicker/Overlays/YearPickerOverlay.js +124 -144
  40. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +127 -0
  41. package/HiDatePicker/Overlays/index.js +22 -27
  42. package/HiDatePicker/Weekday.js +20 -23
  43. package/HiDatePicker/stylesheet.js +198 -181
  44. package/HiExpansionPanel/HiExpansionPanel.js +153 -204
  45. package/HiExpansionPanel/index.js +6 -7
  46. package/HiForm/HiEmailField.js +90 -102
  47. package/HiForm/HiFormControl.js +319 -341
  48. package/HiForm/HiFormLabel.js +129 -152
  49. package/HiForm/HiInput.js +519 -481
  50. package/HiForm/HiPasswordField.js +93 -103
  51. package/HiForm/HiSearchField.js +158 -163
  52. package/HiForm/HiTextField.js +143 -134
  53. package/HiForm/index.js +30 -37
  54. package/HiIcon/HiIcon.js +194 -0
  55. package/HiIcon/index.js +15 -0
  56. package/HiIconButton/HiIconButton.js +120 -0
  57. package/HiIconButton/index.js +15 -0
  58. package/HiLoader/HiLoader.js +53 -39
  59. package/HiLoader/index.js +6 -7
  60. package/HiPin/HiPin.js +117 -0
  61. package/HiPin/index.js +15 -0
  62. package/HiSelect/HiSelect.js +901 -744
  63. package/HiSelect/HiSelectField.js +88 -104
  64. package/HiSelect/HiSuggestSelect.js +288 -240
  65. package/HiSelect/HiSuggestSelectField.js +76 -92
  66. package/HiSelect/SelectInput.js +293 -298
  67. package/HiSelect/index.js +34 -28
  68. package/HiSelectNew/HiDynamicSelect.js +238 -0
  69. package/HiSelectNew/HiNestedSelect.js +453 -0
  70. package/HiSelectNew/HiSelect.js +698 -0
  71. package/HiSelectNew/HiSelectField.js +146 -0
  72. package/HiSelectNew/HiSelectInput.js +349 -0
  73. package/HiSelectNew/index.js +39 -0
  74. package/HiSelectableList/HiSelectableList.js +188 -228
  75. package/HiSelectableList/HiSelectableListHierarchic.js +233 -0
  76. package/HiSelectableList/HiSelectableListItem.js +430 -521
  77. package/HiSelectableList/index.js +18 -12
  78. package/HiSwitch/HiSwitch.js +228 -200
  79. package/HiSwitch/HiSwitchState.js +206 -216
  80. package/HiSwitch/index.js +9 -17
  81. package/README.md +100 -185
  82. package/es/HiAlertModal/HiAlertModal.js +158 -173
  83. package/es/HiAppBar/HiAppBar.js +151 -0
  84. package/es/HiAppBar/index.js +1 -0
  85. package/es/HiBadge/HiBadge.js +106 -64
  86. package/es/HiBreadcrumb/HiBreadcrumb.js +58 -59
  87. package/es/HiBreadcrumb/HiStep.js +112 -80
  88. package/es/HiBreadcrumb/HiStepConnector.js +141 -67
  89. package/es/HiBreadcrumb/HiStepContent.js +66 -0
  90. package/es/HiBreadcrumb/HiStepIcon.js +134 -64
  91. package/es/HiBreadcrumb/HiStepLabel.js +173 -138
  92. package/es/HiBreadcrumb/HiStepper.js +41 -49
  93. package/es/HiButton/HiButton.js +187 -114
  94. package/es/HiCheckbox/HiCheckbox.js +157 -84
  95. package/es/HiChip/HiChip.js +231 -132
  96. package/es/HiChip/HiChipSwitch.js +239 -226
  97. package/es/HiColoredLabel/HiColoredLabel.js +158 -67
  98. package/es/HiDatePicker/Caption.js +59 -57
  99. package/es/HiDatePicker/Caption.spec.js +68 -0
  100. package/es/HiDatePicker/HiDatePicker.js +307 -276
  101. package/es/HiDatePicker/ListPicker.js +93 -92
  102. package/es/HiDatePicker/ListPicker.spec.js +51 -0
  103. package/es/HiDatePicker/NavBar.js +117 -0
  104. package/es/HiDatePicker/NavBar.spec.js +40 -0
  105. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +90 -100
  106. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +66 -65
  107. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +53 -0
  108. package/es/HiDatePicker/Overlays/Overlay.js +84 -64
  109. package/es/HiDatePicker/Overlays/Overlay.spec.js +27 -0
  110. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +178 -192
  111. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +53 -0
  112. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +92 -89
  113. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +92 -0
  114. package/es/HiDatePicker/Overlays/index.js +1 -0
  115. package/es/HiDatePicker/Weekday.js +14 -9
  116. package/es/HiDatePicker/stylesheet.js +188 -172
  117. package/es/HiExpansionPanel/HiExpansionPanel.js +121 -154
  118. package/es/HiForm/HiEmailField.js +58 -51
  119. package/es/HiForm/HiFormControl.js +283 -285
  120. package/es/HiForm/HiFormLabel.js +96 -103
  121. package/es/HiForm/HiInput.js +471 -415
  122. package/es/HiForm/HiPasswordField.js +59 -51
  123. package/es/HiForm/HiSearchField.js +120 -107
  124. package/es/HiForm/HiTextField.js +70 -47
  125. package/es/HiForm/index.js +2 -2
  126. package/es/HiIcon/HiIcon.js +173 -0
  127. package/es/HiIcon/index.js +1 -0
  128. package/es/HiIconButton/HiIconButton.js +100 -0
  129. package/es/HiIconButton/index.js +1 -0
  130. package/es/HiLoader/HiLoader.js +45 -22
  131. package/es/HiPin/HiPin.js +101 -0
  132. package/es/HiPin/index.js +1 -0
  133. package/es/HiSelect/HiSelect.js +857 -659
  134. package/es/HiSelect/HiSelectField.js +39 -36
  135. package/es/HiSelect/HiSuggestSelect.js +247 -179
  136. package/es/HiSelect/HiSuggestSelectField.js +36 -33
  137. package/es/HiSelect/SelectInput.js +260 -254
  138. package/es/HiSelect/index.js +4 -10
  139. package/es/HiSelectNew/HiDynamicSelect.js +203 -0
  140. package/es/HiSelectNew/HiNestedSelect.js +401 -0
  141. package/es/HiSelectNew/HiSelect.js +619 -0
  142. package/es/HiSelectNew/HiSelectField.js +111 -0
  143. package/es/HiSelectNew/HiSelectInput.js +307 -0
  144. package/es/HiSelectNew/index.js +4 -0
  145. package/es/HiSelectableList/HiSelectableList.js +144 -184
  146. package/es/HiSelectableList/HiSelectableListHierarchic.js +175 -0
  147. package/es/HiSelectableList/HiSelectableListItem.js +392 -445
  148. package/es/HiSelectableList/index.js +2 -1
  149. package/es/HiSwitch/HiSwitch.js +199 -124
  150. package/es/HiSwitch/HiSwitchState.js +182 -151
  151. package/es/HiSwitch/index.js +0 -1
  152. package/es/hi-svg-icons/HiAccount.js +38 -0
  153. package/es/hi-svg-icons/HiAll.js +43 -0
  154. package/es/hi-svg-icons/HiBilling.js +38 -0
  155. package/es/hi-svg-icons/HiBriefcaseRescue.js +14 -0
  156. package/es/hi-svg-icons/HiCatalog.js +38 -0
  157. package/es/hi-svg-icons/HiCustomer.js +38 -0
  158. package/es/hi-svg-icons/HiFinance.js +38 -0
  159. package/es/hi-svg-icons/HiRoute.js +38 -0
  160. package/es/hi-svg-icons/HiSettlement.js +38 -0
  161. package/es/hi-svg-icons/HiSizeLarge.js +25 -0
  162. package/es/hi-svg-icons/HiSizeMedium.js +25 -0
  163. package/es/hi-svg-icons/HiSizeSmall.js +25 -0
  164. package/es/hi-svg-icons/HiTransaction.js +38 -0
  165. package/es/hi-svg-icons/HiUser.js +38 -0
  166. package/es/hi-svg-icons/HiWidget.js +43 -0
  167. package/es/{svg-icons → hi-svg-icons}/index.js +4 -0
  168. package/es/hi-svg-icons/index.text.js +41 -0
  169. package/es/index.js +16 -63
  170. package/es/styles/MuiThemeProvider.js +36 -26
  171. package/es/styles/colorManipulator.js +71 -43
  172. package/es/styles/createBreakpoints.js +5 -6
  173. package/es/styles/createGenerateClassName.js +29 -27
  174. package/es/styles/createMixins.js +4 -4
  175. package/es/styles/createMuiTheme.js +26 -17
  176. package/es/styles/createPalette.js +111 -30
  177. package/es/styles/createStyles.js +3 -0
  178. package/es/styles/createTypography.js +91 -33
  179. package/es/styles/getStylesCreator.js +14 -7
  180. package/es/styles/getThemeProps.js +14 -0
  181. package/es/styles/index.js +2 -2
  182. package/es/styles/jssPreset.js +2 -3
  183. package/es/styles/mergeClasses.js +29 -0
  184. package/es/styles/shadows.js +0 -1
  185. package/es/styles/shape.js +4 -0
  186. package/es/styles/spacing.js +4 -3
  187. package/es/styles/themeListener.js +2 -5
  188. package/es/styles/transitions.js +15 -19
  189. package/es/styles/withStyles.js +115 -98
  190. package/es/styles/withTheme.js +29 -10
  191. package/es/styles/zIndex.js +0 -1
  192. package/es/test-utils/createMount.js +9 -10
  193. package/es/test-utils/createRender.js +8 -8
  194. package/es/test-utils/createShallow.js +23 -23
  195. package/es/test-utils/getClasses.js +4 -8
  196. package/es/test-utils/until.js +14 -10
  197. package/es/test-utils/unwrap.js +0 -2
  198. package/es/transitions/utils.js +4 -3
  199. package/es/utils/exactProp.js +17 -10
  200. package/es/utils/helpers.js +102 -40
  201. package/es/utils/ownerDocument.js +5 -0
  202. package/es/utils/ownerWindow.js +8 -0
  203. package/es/utils/reactHelpers.js +10 -12
  204. package/es/utils/requirePropFactory.js +7 -3
  205. package/es/utils/unsupportedProp.js +16 -0
  206. package/es/withMobileDialog/index.js +1 -0
  207. package/es/{Dialog → withMobileDialog}/withMobileDialog.js +9 -6
  208. package/es/withWidth/index.js +2 -0
  209. package/es/withWidth/withWidth.js +176 -0
  210. package/hi-svg-icons/HiAccount.js +52 -0
  211. package/hi-svg-icons/HiAll.js +57 -0
  212. package/hi-svg-icons/HiBilling.js +52 -0
  213. package/hi-svg-icons/HiBriefcaseRescue.js +27 -0
  214. package/hi-svg-icons/HiCatalog.js +52 -0
  215. package/hi-svg-icons/HiCustomer.js +52 -0
  216. package/hi-svg-icons/HiFinance.js +52 -0
  217. package/hi-svg-icons/HiRoute.js +52 -0
  218. package/hi-svg-icons/HiSettlement.js +52 -0
  219. package/hi-svg-icons/HiSizeLarge.js +36 -0
  220. package/hi-svg-icons/HiSizeMedium.js +36 -0
  221. package/hi-svg-icons/HiSizeSmall.js +36 -0
  222. package/hi-svg-icons/HiTransaction.js +52 -0
  223. package/hi-svg-icons/HiUser.js +52 -0
  224. package/hi-svg-icons/HiWidget.js +57 -0
  225. package/hi-svg-icons/index.js +127 -0
  226. package/hi-svg-icons/index.text.js +51 -0
  227. package/index.es.js +17 -64
  228. package/index.js +64 -733
  229. package/package.json +36 -41
  230. package/styles/MuiThemeProvider.js +78 -93
  231. package/styles/colorManipulator.js +88 -57
  232. package/styles/createBreakpoints.js +18 -23
  233. package/styles/createGenerateClassName.js +36 -38
  234. package/styles/createMixins.js +11 -17
  235. package/styles/createMuiTheme.js +51 -65
  236. package/styles/createPalette.js +146 -76
  237. package/styles/createStyles.js +10 -0
  238. package/styles/createTypography.js +103 -56
  239. package/styles/getStylesCreator.js +22 -23
  240. package/styles/getThemeProps.js +20 -0
  241. package/styles/index.js +30 -37
  242. package/styles/jssPreset.js +13 -23
  243. package/styles/mergeClasses.js +41 -0
  244. package/styles/shadows.js +5 -4
  245. package/styles/shape.js +11 -0
  246. package/styles/spacing.js +6 -3
  247. package/styles/themeListener.js +11 -15
  248. package/styles/transitions.js +41 -47
  249. package/styles/withStyles.js +162 -200
  250. package/styles/withTheme.js +58 -59
  251. package/styles/zIndex.js +3 -2
  252. package/test-utils/createMount.js +12 -21
  253. package/test-utils/createRender.js +10 -17
  254. package/test-utils/createShallow.js +36 -48
  255. package/test-utils/getClasses.js +15 -26
  256. package/test-utils/index.js +22 -27
  257. package/test-utils/until.js +14 -19
  258. package/test-utils/unwrap.js +0 -1
  259. package/transitions/utils.js +7 -5
  260. package/umd/hipay-material-ui.development.js +75471 -100230
  261. package/umd/hipay-material-ui.production.min.js +5 -20
  262. package/utils/exactProp.js +28 -25
  263. package/utils/helpers.js +125 -55
  264. package/utils/ownerDocument.js +13 -0
  265. package/utils/ownerWindow.js +19 -0
  266. package/utils/reactHelpers.js +17 -8
  267. package/utils/requirePropFactory.js +15 -6
  268. package/utils/unsupportedProp.js +24 -0
  269. package/withMobileDialog/index.js +15 -0
  270. package/withMobileDialog/withMobileDialog.js +45 -0
  271. package/withWidth/index.js +27 -0
  272. package/withWidth/withWidth.js +229 -0
  273. package/AppBar/AppBar.js +0 -144
  274. package/AppBar/index.js +0 -16
  275. package/Avatar/Avatar.js +0 -165
  276. package/Avatar/index.js +0 -16
  277. package/Badge/Badge.js +0 -142
  278. package/Badge/index.js +0 -16
  279. package/BottomNavigation/BottomNavigation.js +0 -113
  280. package/BottomNavigation/BottomNavigationAction.js +0 -219
  281. package/BottomNavigation/index.js +0 -25
  282. package/Button/Button.js +0 -298
  283. package/Button/index.js +0 -16
  284. package/ButtonBase/ButtonBase.js +0 -446
  285. package/ButtonBase/Ripple.js +0 -162
  286. package/ButtonBase/TouchRipple.js +0 -359
  287. package/ButtonBase/createRippleHandler.js +0 -28
  288. package/ButtonBase/index.js +0 -16
  289. package/Card/Card.js +0 -48
  290. package/Card/CardActions.js +0 -94
  291. package/Card/CardContent.js +0 -76
  292. package/Card/CardHeader.js +0 -150
  293. package/Card/CardMedia.js +0 -113
  294. package/Card/index.js +0 -52
  295. package/Checkbox/Checkbox.js +0 -160
  296. package/Checkbox/index.js +0 -16
  297. package/Chip/Chip.js +0 -322
  298. package/Chip/index.js +0 -16
  299. package/Dialog/Dialog.js +0 -271
  300. package/Dialog/DialogActions.js +0 -94
  301. package/Dialog/DialogContent.js +0 -77
  302. package/Dialog/DialogContentText.js +0 -72
  303. package/Dialog/DialogTitle.js +0 -91
  304. package/Dialog/index.js +0 -61
  305. package/Dialog/withMobileDialog.js +0 -49
  306. package/Divider/Divider.js +0 -113
  307. package/Divider/index.js +0 -16
  308. package/Drawer/Drawer.js +0 -325
  309. package/Drawer/index.js +0 -16
  310. package/ExpansionPanel/ExpansionPanel.js +0 -257
  311. package/ExpansionPanel/ExpansionPanelActions.js +0 -79
  312. package/ExpansionPanel/ExpansionPanelDetails.js +0 -73
  313. package/ExpansionPanel/ExpansionPanelSummary.js +0 -250
  314. package/ExpansionPanel/index.js +0 -43
  315. package/Form/FormControl.js +0 -291
  316. package/Form/FormControlLabel.js +0 -168
  317. package/Form/FormGroup.js +0 -94
  318. package/Form/FormHelperText.js +0 -139
  319. package/Form/FormLabel.js +0 -158
  320. package/Form/index.js +0 -52
  321. package/Grid/Grid.js +0 -372
  322. package/Grid/index.js +0 -16
  323. package/GridList/GridList.js +0 -122
  324. package/GridList/GridListTile.js +0 -239
  325. package/GridList/GridListTileBar.js +0 -176
  326. package/GridList/index.js +0 -34
  327. package/HI-CHANGELOG.md +0 -42
  328. package/HiDatePicker/HiDateRangePicker.js +0 -715
  329. package/HiDatePicker/HiDateRangeSelector.js +0 -422
  330. package/HiDatePicker/HiWeekPicker.js +0 -389
  331. package/HiDatePicker/Navbar.js +0 -169
  332. package/HiDatePicker/index.js +0 -33
  333. package/HiPins/HiPins.js +0 -98
  334. package/HiPins/index.js +0 -16
  335. package/HiRadio/HiRadio.js +0 -99
  336. package/HiRadio/index.js +0 -16
  337. package/HiTable/BodyCellBuilder.js +0 -398
  338. package/HiTable/BodyCells/CellAccount.js +0 -100
  339. package/HiTable/BodyCells/CellAccountNumber.js +0 -220
  340. package/HiTable/BodyCells/CellAddress.js +0 -199
  341. package/HiTable/BodyCells/CellCountry.js +0 -172
  342. package/HiTable/BodyCells/CellDate.js +0 -177
  343. package/HiTable/BodyCells/CellIcon.js +0 -148
  344. package/HiTable/BodyCells/CellImage.js +0 -177
  345. package/HiTable/BodyCells/CellLayout.js +0 -285
  346. package/HiTable/BodyCells/CellNumeric.js +0 -135
  347. package/HiTable/BodyCells/CellRate.js +0 -197
  348. package/HiTable/BodyCells/CellSentinel.js +0 -213
  349. package/HiTable/BodyCells/CellStatus.js +0 -140
  350. package/HiTable/BodyCells/CellText.js +0 -268
  351. package/HiTable/BodyCells/CellThirdPartySecurity.js +0 -144
  352. package/HiTable/BodyCells/index.js +0 -133
  353. package/HiTable/BodyRow.js +0 -388
  354. package/HiTable/ChildRow.js +0 -432
  355. package/HiTable/ColumnFilter.js +0 -494
  356. package/HiTable/HeaderCell.js +0 -463
  357. package/HiTable/HiStickyRow.js +0 -300
  358. package/HiTable/HiTable.js +0 -1019
  359. package/HiTable/HiTableBody.js +0 -557
  360. package/HiTable/HiTableContextMenu.js +0 -214
  361. package/HiTable/HiTableFooterScroll.js +0 -202
  362. package/HiTable/HiTableHead.js +0 -489
  363. package/HiTable/OrderColumns.js +0 -561
  364. package/HiTable/constants.js +0 -105
  365. package/HiTable/index.js +0 -25
  366. package/HiTopBar/HiTopBar.js +0 -553
  367. package/HiTopBar/index.js +0 -16
  368. package/Hidden/Hidden.js +0 -130
  369. package/Hidden/HiddenCss.js +0 -175
  370. package/Hidden/HiddenJs.js +0 -149
  371. package/Hidden/index.js +0 -16
  372. package/Icon/Icon.js +0 -109
  373. package/Icon/index.js +0 -16
  374. package/IconButton/IconButton.js +0 -146
  375. package/IconButton/index.js +0 -16
  376. package/Input/Input.js +0 -682
  377. package/Input/InputAdornment.js +0 -116
  378. package/Input/InputLabel.js +0 -163
  379. package/Input/Textarea.js +0 -301
  380. package/Input/index.js +0 -34
  381. package/List/List.js +0 -167
  382. package/List/ListItem.js +0 -279
  383. package/List/ListItemAvatar.js +0 -100
  384. package/List/ListItemIcon.js +0 -77
  385. package/List/ListItemSecondaryAction.js +0 -76
  386. package/List/ListItemText.js +0 -145
  387. package/List/ListSubheader.js +0 -127
  388. package/List/index.js +0 -70
  389. package/Menu/Menu.js +0 -274
  390. package/Menu/MenuItem.js +0 -113
  391. package/Menu/MenuList.js +0 -253
  392. package/Menu/index.js +0 -34
  393. package/MobileStepper/MobileStepper.js +0 -173
  394. package/MobileStepper/index.js +0 -16
  395. package/Modal/Backdrop.js +0 -102
  396. package/Modal/Modal.js +0 -502
  397. package/Modal/ModalManager.js +0 -210
  398. package/Modal/index.js +0 -34
  399. package/Modal/isOverflowing.js +0 -43
  400. package/Modal/manageAriaHidden.js +0 -45
  401. package/Paper/Paper.js +0 -111
  402. package/Paper/index.js +0 -16
  403. package/Popover/Popover.js +0 -564
  404. package/Popover/index.js +0 -16
  405. package/Portal/LegacyPortal.js +0 -158
  406. package/Portal/Portal.js +0 -144
  407. package/Portal/index.js +0 -21
  408. package/Progress/CircularProgress.js +0 -228
  409. package/Progress/LinearProgress.js +0 -258
  410. package/Progress/index.js +0 -25
  411. package/Radio/Radio.js +0 -155
  412. package/Radio/RadioGroup.js +0 -168
  413. package/Radio/index.js +0 -25
  414. package/Reboot/Reboot.js +0 -106
  415. package/Reboot/index.js +0 -16
  416. package/Select/Select.js +0 -229
  417. package/Select/SelectInput.js +0 -502
  418. package/Select/index.js +0 -16
  419. package/Snackbar/Snackbar.js +0 -451
  420. package/Snackbar/SnackbarContent.js +0 -135
  421. package/Snackbar/index.js +0 -25
  422. package/Stepper/Step.js +0 -151
  423. package/Stepper/StepButton.js +0 -143
  424. package/Stepper/StepConnector.js +0 -118
  425. package/Stepper/StepContent.js +0 -153
  426. package/Stepper/StepIcon.js +0 -86
  427. package/Stepper/StepLabel.js +0 -200
  428. package/Stepper/StepPositionIcon.js +0 -95
  429. package/Stepper/Stepper.js +0 -161
  430. package/Stepper/index.js +0 -61
  431. package/SvgIcon/SvgIcon.js +0 -147
  432. package/SvgIcon/index.js +0 -16
  433. package/Switch/Switch.js +0 -215
  434. package/Switch/index.js +0 -16
  435. package/Table/Table.js +0 -127
  436. package/Table/TableBody.js +0 -121
  437. package/Table/TableCell.js +0 -181
  438. package/Table/TableFooter.js +0 -93
  439. package/Table/TableHead.js +0 -121
  440. package/Table/TablePagination.js +0 -310
  441. package/Table/TablePaginationActions.js +0 -183
  442. package/Table/TableRow.js +0 -127
  443. package/Table/TableSortLabel.js +0 -145
  444. package/Table/index.js +0 -79
  445. package/Tabs/Tab.js +0 -340
  446. package/Tabs/TabIndicator.js +0 -95
  447. package/Tabs/TabScrollButton.js +0 -112
  448. package/Tabs/Tabs.js +0 -530
  449. package/Tabs/index.js +0 -25
  450. package/TextField/TextField.js +0 -290
  451. package/TextField/index.js +0 -16
  452. package/Toolbar/Toolbar.js +0 -89
  453. package/Toolbar/index.js +0 -16
  454. package/Tooltip/Tooltip.js +0 -514
  455. package/Tooltip/index.js +0 -16
  456. package/Typography/Typography.js +0 -192
  457. package/Typography/index.js +0 -16
  458. package/colors/amber.js +0 -23
  459. package/colors/blue.js +0 -23
  460. package/colors/blueGrey.js +0 -23
  461. package/colors/brown.js +0 -23
  462. package/colors/common.js +0 -11
  463. package/colors/cyan.js +0 -23
  464. package/colors/deepOrange.js +0 -23
  465. package/colors/deepPurple.js +0 -23
  466. package/colors/green.js +0 -23
  467. package/colors/grey.js +0 -23
  468. package/colors/index.js +0 -187
  469. package/colors/indigo.js +0 -23
  470. package/colors/lightBlue.js +0 -23
  471. package/colors/lightGreen.js +0 -23
  472. package/colors/lime.js +0 -23
  473. package/colors/orange.js +0 -23
  474. package/colors/pink.js +0 -23
  475. package/colors/purple.js +0 -23
  476. package/colors/red.js +0 -23
  477. package/colors/teal.js +0 -23
  478. package/colors/yellow.js +0 -23
  479. package/es/AppBar/AppBar.js +0 -106
  480. package/es/AppBar/index.js +0 -1
  481. package/es/Avatar/Avatar.js +0 -136
  482. package/es/Avatar/index.js +0 -1
  483. package/es/Badge/Badge.js +0 -112
  484. package/es/Badge/index.js +0 -1
  485. package/es/BottomNavigation/BottomNavigation.js +0 -86
  486. package/es/BottomNavigation/BottomNavigationAction.js +0 -153
  487. package/es/BottomNavigation/index.js +0 -2
  488. package/es/Button/Button.js +0 -274
  489. package/es/Button/index.js +0 -1
  490. package/es/ButtonBase/ButtonBase.js +0 -358
  491. package/es/ButtonBase/Ripple.js +0 -102
  492. package/es/ButtonBase/TouchRipple.js +0 -268
  493. package/es/ButtonBase/createRippleHandler.js +0 -23
  494. package/es/ButtonBase/index.js +0 -1
  495. package/es/Card/Card.js +0 -27
  496. package/es/Card/CardActions.js +0 -58
  497. package/es/Card/CardContent.js +0 -45
  498. package/es/Card/CardHeader.js +0 -120
  499. package/es/Card/CardMedia.js +0 -76
  500. package/es/Card/index.js +0 -5
  501. package/es/Checkbox/Checkbox.js +0 -117
  502. package/es/Checkbox/index.js +0 -1
  503. package/es/Chip/Chip.js +0 -241
  504. package/es/Chip/index.js +0 -1
  505. package/es/Dialog/Dialog.js +0 -231
  506. package/es/Dialog/DialogActions.js +0 -58
  507. package/es/Dialog/DialogContent.js +0 -48
  508. package/es/Dialog/DialogContentText.js +0 -41
  509. package/es/Dialog/DialogTitle.js +0 -57
  510. package/es/Dialog/index.js +0 -6
  511. package/es/Divider/Divider.js +0 -83
  512. package/es/Divider/index.js +0 -1
  513. package/es/Drawer/Drawer.js +0 -252
  514. package/es/Drawer/index.js +0 -1
  515. package/es/ExpansionPanel/ExpansionPanel.js +0 -194
  516. package/es/ExpansionPanel/ExpansionPanelActions.js +0 -47
  517. package/es/ExpansionPanel/ExpansionPanelDetails.js +0 -42
  518. package/es/ExpansionPanel/ExpansionPanelSummary.js +0 -182
  519. package/es/ExpansionPanel/index.js +0 -4
  520. package/es/Form/FormControl.js +0 -214
  521. package/es/Form/FormControlLabel.js +0 -137
  522. package/es/Form/FormGroup.js +0 -62
  523. package/es/Form/FormHelperText.js +0 -110
  524. package/es/Form/FormLabel.js +0 -132
  525. package/es/Form/index.js +0 -5
  526. package/es/Grid/Grid.js +0 -353
  527. package/es/Grid/index.js +0 -1
  528. package/es/GridList/GridList.js +0 -97
  529. package/es/GridList/GridListTile.js +0 -153
  530. package/es/GridList/GridListTileBar.js +0 -152
  531. package/es/GridList/index.js +0 -3
  532. package/es/HiDatePicker/HiDateRangePicker.js +0 -567
  533. package/es/HiDatePicker/HiDateRangeSelector.js +0 -345
  534. package/es/HiDatePicker/HiWeekPicker.js +0 -296
  535. package/es/HiDatePicker/Navbar.js +0 -130
  536. package/es/HiDatePicker/index.js +0 -7
  537. package/es/HiPins/HiPins.js +0 -65
  538. package/es/HiPins/index.js +0 -1
  539. package/es/HiRadio/HiRadio.js +0 -41
  540. package/es/HiRadio/index.js +0 -1
  541. package/es/HiTable/BodyCellBuilder.js +0 -345
  542. package/es/HiTable/BodyCells/CellAccount.js +0 -40
  543. package/es/HiTable/BodyCells/CellAccountNumber.js +0 -166
  544. package/es/HiTable/BodyCells/CellAddress.js +0 -129
  545. package/es/HiTable/BodyCells/CellCountry.js +0 -107
  546. package/es/HiTable/BodyCells/CellDate.js +0 -111
  547. package/es/HiTable/BodyCells/CellIcon.js +0 -83
  548. package/es/HiTable/BodyCells/CellImage.js +0 -115
  549. package/es/HiTable/BodyCells/CellLayout.js +0 -202
  550. package/es/HiTable/BodyCells/CellNumeric.js +0 -71
  551. package/es/HiTable/BodyCells/CellRate.js +0 -131
  552. package/es/HiTable/BodyCells/CellSentinel.js +0 -153
  553. package/es/HiTable/BodyCells/CellStatus.js +0 -77
  554. package/es/HiTable/BodyCells/CellText.js +0 -189
  555. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +0 -89
  556. package/es/HiTable/BodyCells/index.js +0 -16
  557. package/es/HiTable/BodyRow.js +0 -314
  558. package/es/HiTable/ChildRow.js +0 -345
  559. package/es/HiTable/ColumnFilter.js +0 -398
  560. package/es/HiTable/HeaderCell.js +0 -376
  561. package/es/HiTable/HiStickyRow.js +0 -217
  562. package/es/HiTable/HiTable.js +0 -883
  563. package/es/HiTable/HiTableBody.js +0 -464
  564. package/es/HiTable/HiTableContextMenu.js +0 -150
  565. package/es/HiTable/HiTableFooterScroll.js +0 -144
  566. package/es/HiTable/HiTableHead.js +0 -403
  567. package/es/HiTable/OrderColumns.js +0 -441
  568. package/es/HiTable/constants.js +0 -180
  569. package/es/HiTable/index.js +0 -2
  570. package/es/HiTopBar/HiTopBar.js +0 -458
  571. package/es/HiTopBar/index.js +0 -1
  572. package/es/Hidden/Hidden.js +0 -107
  573. package/es/Hidden/HiddenCss.js +0 -151
  574. package/es/Hidden/HiddenJs.js +0 -129
  575. package/es/Hidden/index.js +0 -1
  576. package/es/Icon/Icon.js +0 -74
  577. package/es/Icon/index.js +0 -1
  578. package/es/IconButton/IconButton.js +0 -106
  579. package/es/IconButton/index.js +0 -1
  580. package/es/Input/Input.js +0 -616
  581. package/es/Input/InputAdornment.js +0 -83
  582. package/es/Input/InputLabel.js +0 -138
  583. package/es/Input/Textarea.js +0 -234
  584. package/es/Input/index.js +0 -3
  585. package/es/List/List.js +0 -106
  586. package/es/List/ListItem.js +0 -212
  587. package/es/List/ListItemAvatar.js +0 -63
  588. package/es/List/ListItemIcon.js +0 -46
  589. package/es/List/ListItemSecondaryAction.js +0 -45
  590. package/es/List/ListItemText.js +0 -114
  591. package/es/List/ListSubheader.js +0 -90
  592. package/es/List/index.js +0 -7
  593. package/es/Menu/Menu.js +0 -205
  594. package/es/Menu/MenuItem.js +0 -75
  595. package/es/Menu/MenuList.js +0 -168
  596. package/es/Menu/index.js +0 -3
  597. package/es/MobileStepper/MobileStepper.js +0 -137
  598. package/es/MobileStepper/index.js +0 -1
  599. package/es/Modal/Backdrop.js +0 -67
  600. package/es/Modal/Modal.js +0 -398
  601. package/es/Modal/ModalManager.js +0 -162
  602. package/es/Modal/index.js +0 -3
  603. package/es/Modal/isOverflowing.js +0 -25
  604. package/es/Modal/manageAriaHidden.js +0 -33
  605. package/es/Paper/Paper.js +0 -81
  606. package/es/Paper/index.js +0 -1
  607. package/es/Popover/Popover.js +0 -455
  608. package/es/Popover/index.js +0 -1
  609. package/es/Portal/LegacyPortal.js +0 -97
  610. package/es/Portal/Portal.js +0 -82
  611. package/es/Portal/index.js +0 -5
  612. package/es/Progress/CircularProgress.js +0 -201
  613. package/es/Progress/LinearProgress.js +0 -235
  614. package/es/Progress/index.js +0 -2
  615. package/es/Radio/Radio.js +0 -113
  616. package/es/Radio/RadioGroup.js +0 -101
  617. package/es/Radio/index.js +0 -2
  618. package/es/Reboot/Reboot.js +0 -55
  619. package/es/Reboot/index.js +0 -1
  620. package/es/Select/Select.js +0 -199
  621. package/es/Select/SelectInput.js +0 -414
  622. package/es/Select/index.js +0 -1
  623. package/es/Snackbar/Snackbar.js +0 -370
  624. package/es/Snackbar/SnackbarContent.js +0 -96
  625. package/es/Snackbar/index.js +0 -2
  626. package/es/Stepper/Step.js +0 -120
  627. package/es/Stepper/StepButton.js +0 -111
  628. package/es/Stepper/StepConnector.js +0 -85
  629. package/es/Stepper/StepContent.js +0 -116
  630. package/es/Stepper/StepIcon.js +0 -54
  631. package/es/Stepper/StepLabel.js +0 -170
  632. package/es/Stepper/StepPositionIcon.js +0 -64
  633. package/es/Stepper/Stepper.js +0 -126
  634. package/es/Stepper/index.js +0 -6
  635. package/es/SvgIcon/SvgIcon.js +0 -117
  636. package/es/SvgIcon/index.js +0 -1
  637. package/es/Switch/Switch.js +0 -178
  638. package/es/Switch/index.js +0 -1
  639. package/es/Table/Table.js +0 -64
  640. package/es/Table/TableBody.js +0 -61
  641. package/es/Table/TableCell.js +0 -153
  642. package/es/Table/TableFooter.js +0 -44
  643. package/es/Table/TableHead.js +0 -61
  644. package/es/Table/TablePagination.js +0 -224
  645. package/es/Table/TablePaginationActions.js +0 -116
  646. package/es/Table/TableRow.js +0 -99
  647. package/es/Table/TableSortLabel.js +0 -101
  648. package/es/Table/index.js +0 -8
  649. package/es/Tabs/Tab.js +0 -271
  650. package/es/Tabs/TabIndicator.js +0 -63
  651. package/es/Tabs/TabScrollButton.js +0 -70
  652. package/es/Tabs/Tabs.js +0 -425
  653. package/es/Tabs/index.js +0 -2
  654. package/es/TextField/TextField.js +0 -259
  655. package/es/TextField/index.js +0 -1
  656. package/es/Toolbar/Toolbar.js +0 -55
  657. package/es/Toolbar/index.js +0 -1
  658. package/es/Tooltip/Tooltip.js +0 -425
  659. package/es/Tooltip/index.js +0 -1
  660. package/es/Typography/Typography.js +0 -164
  661. package/es/Typography/index.js +0 -1
  662. package/es/colors/amber.js +0 -18
  663. package/es/colors/blue.js +0 -18
  664. package/es/colors/blueGrey.js +0 -18
  665. package/es/colors/brown.js +0 -18
  666. package/es/colors/common.js +0 -6
  667. package/es/colors/cyan.js +0 -18
  668. package/es/colors/deepOrange.js +0 -18
  669. package/es/colors/deepPurple.js +0 -18
  670. package/es/colors/green.js +0 -18
  671. package/es/colors/grey.js +0 -18
  672. package/es/colors/index.js +0 -20
  673. package/es/colors/indigo.js +0 -18
  674. package/es/colors/lightBlue.js +0 -18
  675. package/es/colors/lightGreen.js +0 -18
  676. package/es/colors/lime.js +0 -18
  677. package/es/colors/orange.js +0 -18
  678. package/es/colors/pink.js +0 -18
  679. package/es/colors/purple.js +0 -18
  680. package/es/colors/red.js +0 -18
  681. package/es/colors/teal.js +0 -18
  682. package/es/colors/yellow.js +0 -18
  683. package/es/internal/RefHolder.js +0 -20
  684. package/es/internal/SwitchBase.js +0 -219
  685. package/es/internal/svg-icons/ArrowDownward.js +0 -20
  686. package/es/internal/svg-icons/ArrowDropDown.js +0 -20
  687. package/es/internal/svg-icons/Cancel.js +0 -19
  688. package/es/internal/svg-icons/CheckBox.js +0 -19
  689. package/es/internal/svg-icons/CheckBoxOutlineBlank.js +0 -19
  690. package/es/internal/svg-icons/CheckCircle.js +0 -19
  691. package/es/internal/svg-icons/IndeterminateCheckBox.js +0 -19
  692. package/es/internal/svg-icons/KeyboardArrowLeft.js +0 -19
  693. package/es/internal/svg-icons/KeyboardArrowRight.js +0 -19
  694. package/es/internal/svg-icons/RadioButtonChecked.js +0 -19
  695. package/es/internal/svg-icons/RadioButtonUnchecked.js +0 -19
  696. package/es/styles/createHiMuiTheme.js +0 -300
  697. package/es/svg-icons/ArrowDownward.js +0 -20
  698. package/es/svg-icons/ArrowDropDown.js +0 -20
  699. package/es/svg-icons/Cancel.js +0 -19
  700. package/es/svg-icons/CheckBox.js +0 -19
  701. package/es/svg-icons/CheckBoxOutlineBlank.js +0 -19
  702. package/es/svg-icons/CheckCircle.js +0 -19
  703. package/es/svg-icons/HiAccount.js +0 -33
  704. package/es/svg-icons/HiAll.js +0 -43
  705. package/es/svg-icons/HiBilling.js +0 -33
  706. package/es/svg-icons/HiCatalog.js +0 -33
  707. package/es/svg-icons/HiCustomer.js +0 -39
  708. package/es/svg-icons/HiFinance.js +0 -33
  709. package/es/svg-icons/HiRoute.js +0 -33
  710. package/es/svg-icons/HiSettlement.js +0 -36
  711. package/es/svg-icons/HiSizeLarge.js +0 -19
  712. package/es/svg-icons/HiSizeMedium.js +0 -19
  713. package/es/svg-icons/HiSizeSmall.js +0 -19
  714. package/es/svg-icons/HiTransaction.js +0 -33
  715. package/es/svg-icons/HiUser.js +0 -39
  716. package/es/svg-icons/HiWidget.js +0 -43
  717. package/es/svg-icons/IndeterminateCheckBox.js +0 -19
  718. package/es/svg-icons/KeyboardArrowLeft.js +0 -19
  719. package/es/svg-icons/KeyboardArrowRight.js +0 -19
  720. package/es/svg-icons/RadioButtonChecked.js +0 -19
  721. package/es/svg-icons/RadioButtonUnchecked.js +0 -19
  722. package/es/transitions/Collapse.js +0 -245
  723. package/es/transitions/Fade.js +0 -132
  724. package/es/transitions/Grow.js +0 -173
  725. package/es/transitions/Slide.js +0 -291
  726. package/es/transitions/Zoom.js +0 -129
  727. package/es/transitions/index.js +0 -5
  728. package/es/utils/ClickAwayListener.js +0 -65
  729. package/es/utils/HiIconBuilder.js +0 -107
  730. package/es/utils/addEventListener.js +0 -11
  731. package/es/utils/hiGetMdiIcon.js +0 -12
  732. package/es/utils/hiHelpers.js +0 -173
  733. package/es/utils/keyboardFocus.js +0 -51
  734. package/es/utils/manageAriaHidden.js +0 -33
  735. package/es/utils/withWidth.js +0 -141
  736. package/hmu/images/countries/ad.svg +0 -151
  737. package/hmu/images/countries/ae.svg +0 -6
  738. package/hmu/images/countries/af.svg +0 -83
  739. package/hmu/images/countries/ag.svg +0 -15
  740. package/hmu/images/countries/ai.svg +0 -767
  741. package/hmu/images/countries/al.svg +0 -5
  742. package/hmu/images/countries/am.svg +0 -5
  743. package/hmu/images/countries/ao.svg +0 -13
  744. package/hmu/images/countries/aq.svg +0 -6
  745. package/hmu/images/countries/ar.svg +0 -32
  746. package/hmu/images/countries/as.svg +0 -33
  747. package/hmu/images/countries/at.svg +0 -6
  748. package/hmu/images/countries/au.svg +0 -9
  749. package/hmu/images/countries/aw.svg +0 -186
  750. package/hmu/images/countries/ax.svg +0 -18
  751. package/hmu/images/countries/az.svg +0 -8
  752. package/hmu/images/countries/ba.svg +0 -12
  753. package/hmu/images/countries/bb.svg +0 -6
  754. package/hmu/images/countries/bd.svg +0 -4
  755. package/hmu/images/countries/be.svg +0 -7
  756. package/hmu/images/countries/bf.svg +0 -7
  757. package/hmu/images/countries/bg.svg +0 -7
  758. package/hmu/images/countries/bh.svg +0 -11
  759. package/hmu/images/countries/bi.svg +0 -15
  760. package/hmu/images/countries/bj.svg +0 -14
  761. package/hmu/images/countries/bl.svg +0 -7
  762. package/hmu/images/countries/bm.svg +0 -99
  763. package/hmu/images/countries/bn.svg +0 -36
  764. package/hmu/images/countries/bo.svg +0 -686
  765. package/hmu/images/countries/bq.svg +0 -5
  766. package/hmu/images/countries/br.svg +0 -45
  767. package/hmu/images/countries/bs.svg +0 -13
  768. package/hmu/images/countries/bt.svg +0 -89
  769. package/hmu/images/countries/bv.svg +0 -13
  770. package/hmu/images/countries/bw.svg +0 -7
  771. package/hmu/images/countries/by.svg +0 -61
  772. package/hmu/images/countries/bz.svg +0 -146
  773. package/hmu/images/countries/ca.svg +0 -4
  774. package/hmu/images/countries/cc.svg +0 -19
  775. package/hmu/images/countries/cd.svg +0 -5
  776. package/hmu/images/countries/cf.svg +0 -15
  777. package/hmu/images/countries/cg.svg +0 -12
  778. package/hmu/images/countries/ch.svg +0 -9
  779. package/hmu/images/countries/ci.svg +0 -7
  780. package/hmu/images/countries/ck.svg +0 -9
  781. package/hmu/images/countries/cl.svg +0 -13
  782. package/hmu/images/countries/cm.svg +0 -15
  783. package/hmu/images/countries/cn.svg +0 -11
  784. package/hmu/images/countries/co.svg +0 -7
  785. package/hmu/images/countries/cr.svg +0 -7
  786. package/hmu/images/countries/cu.svg +0 -13
  787. package/hmu/images/countries/cv.svg +0 -13
  788. package/hmu/images/countries/cw.svg +0 -14
  789. package/hmu/images/countries/cx.svg +0 -15
  790. package/hmu/images/countries/cy.svg +0 -6
  791. package/hmu/images/countries/cz.svg +0 -12
  792. package/hmu/images/countries/de.svg +0 -5
  793. package/hmu/images/countries/dj.svg +0 -13
  794. package/hmu/images/countries/dk.svg +0 -5
  795. package/hmu/images/countries/dm.svg +0 -152
  796. package/hmu/images/countries/do.svg +0 -6745
  797. package/hmu/images/countries/dz.svg +0 -5
  798. package/hmu/images/countries/ec.svg +0 -141
  799. package/hmu/images/countries/ee.svg +0 -7
  800. package/hmu/images/countries/eg.svg +0 -38
  801. package/hmu/images/countries/eh.svg +0 -15
  802. package/hmu/images/countries/er.svg +0 -8
  803. package/hmu/images/countries/es-ct.svg +0 -4
  804. package/hmu/images/countries/es.svg +0 -581
  805. package/hmu/images/countries/et.svg +0 -14
  806. package/hmu/images/countries/eu.svg +0 -28
  807. package/hmu/images/countries/fi.svg +0 -5
  808. package/hmu/images/countries/fj.svg +0 -124
  809. package/hmu/images/countries/fk.svg +0 -90
  810. package/hmu/images/countries/fm.svg +0 -11
  811. package/hmu/images/countries/fo.svg +0 -12
  812. package/hmu/images/countries/fr.svg +0 -7
  813. package/hmu/images/countries/ga.svg +0 -7
  814. package/hmu/images/countries/gb-eng.svg +0 -5
  815. package/hmu/images/countries/gb-nir.svg +0 -137
  816. package/hmu/images/countries/gb-sct.svg +0 -4
  817. package/hmu/images/countries/gb-wls.svg +0 -9
  818. package/hmu/images/countries/gb.svg +0 -15
  819. package/hmu/images/countries/gd.svg +0 -27
  820. package/hmu/images/countries/ge.svg +0 -6
  821. package/hmu/images/countries/gf.svg +0 -5
  822. package/hmu/images/countries/gg.svg +0 -9
  823. package/hmu/images/countries/gh.svg +0 -6
  824. package/hmu/images/countries/gi.svg +0 -33
  825. package/hmu/images/countries/gl.svg +0 -4
  826. package/hmu/images/countries/gm.svg +0 -14
  827. package/hmu/images/countries/gn.svg +0 -7
  828. package/hmu/images/countries/gp.svg +0 -7
  829. package/hmu/images/countries/gq.svg +0 -23
  830. package/hmu/images/countries/gr.svg +0 -22
  831. package/hmu/images/countries/gs.svg +0 -205
  832. package/hmu/images/countries/gt.svg +0 -204
  833. package/hmu/images/countries/gu.svg +0 -39
  834. package/hmu/images/countries/gw.svg +0 -13
  835. package/hmu/images/countries/gy.svg +0 -9
  836. package/hmu/images/countries/hk.svg +0 -32
  837. package/hmu/images/countries/hm.svg +0 -9
  838. package/hmu/images/countries/hn.svg +0 -18
  839. package/hmu/images/countries/hr.svg +0 -59
  840. package/hmu/images/countries/ht.svg +0 -122
  841. package/hmu/images/countries/hu.svg +0 -7
  842. package/hmu/images/countries/id.svg +0 -6
  843. package/hmu/images/countries/ie.svg +0 -7
  844. package/hmu/images/countries/il.svg +0 -14
  845. package/hmu/images/countries/im.svg +0 -36
  846. package/hmu/images/countries/in.svg +0 -25
  847. package/hmu/images/countries/io.svg +0 -148
  848. package/hmu/images/countries/iq.svg +0 -10
  849. package/hmu/images/countries/ir.svg +0 -219
  850. package/hmu/images/countries/is.svg +0 -12
  851. package/hmu/images/countries/it.svg +0 -7
  852. package/hmu/images/countries/je.svg +0 -32
  853. package/hmu/images/countries/jm.svg +0 -8
  854. package/hmu/images/countries/jo.svg +0 -16
  855. package/hmu/images/countries/jp.svg +0 -11
  856. package/hmu/images/countries/ke.svg +0 -23
  857. package/hmu/images/countries/kg.svg +0 -15
  858. package/hmu/images/countries/kh.svg +0 -69
  859. package/hmu/images/countries/ki.svg +0 -36
  860. package/hmu/images/countries/km.svg +0 -16
  861. package/hmu/images/countries/kn.svg +0 -14
  862. package/hmu/images/countries/kp.svg +0 -15
  863. package/hmu/images/countries/kr.svg +0 -24
  864. package/hmu/images/countries/kw.svg +0 -13
  865. package/hmu/images/countries/ky.svg +0 -63
  866. package/hmu/images/countries/kz.svg +0 -23
  867. package/hmu/images/countries/la.svg +0 -12
  868. package/hmu/images/countries/lb.svg +0 -15
  869. package/hmu/images/countries/lc.svg +0 -8
  870. package/hmu/images/countries/li.svg +0 -43
  871. package/hmu/images/countries/lk.svg +0 -22
  872. package/hmu/images/countries/lr.svg +0 -14
  873. package/hmu/images/countries/ls.svg +0 -8
  874. package/hmu/images/countries/lt.svg +0 -7
  875. package/hmu/images/countries/lu.svg +0 -5
  876. package/hmu/images/countries/lv.svg +0 -6
  877. package/hmu/images/countries/ly.svg +0 -13
  878. package/hmu/images/countries/ma.svg +0 -4
  879. package/hmu/images/countries/mc.svg +0 -6
  880. package/hmu/images/countries/md.svg +0 -72
  881. package/hmu/images/countries/me.svg +0 -118
  882. package/hmu/images/countries/mf.svg +0 -7
  883. package/hmu/images/countries/mg.svg +0 -7
  884. package/hmu/images/countries/mh.svg +0 -7
  885. package/hmu/images/countries/mk.svg +0 -5
  886. package/hmu/images/countries/ml.svg +0 -7
  887. package/hmu/images/countries/mm.svg +0 -16
  888. package/hmu/images/countries/mn.svg +0 -13
  889. package/hmu/images/countries/mo.svg +0 -9
  890. package/hmu/images/countries/mp.svg +0 -86
  891. package/hmu/images/countries/mq.svg +0 -7
  892. package/hmu/images/countries/mr.svg +0 -6
  893. package/hmu/images/countries/ms.svg +0 -39
  894. package/hmu/images/countries/mt.svg +0 -49
  895. package/hmu/images/countries/mu.svg +0 -8
  896. package/hmu/images/countries/mv.svg +0 -6
  897. package/hmu/images/countries/mw.svg +0 -10
  898. package/hmu/images/countries/mx.svg +0 -385
  899. package/hmu/images/countries/my.svg +0 -15
  900. package/hmu/images/countries/mz.svg +0 -21
  901. package/hmu/images/countries/na.svg +0 -16
  902. package/hmu/images/countries/nc.svg +0 -7
  903. package/hmu/images/countries/ne.svg +0 -6
  904. package/hmu/images/countries/nf.svg +0 -9
  905. package/hmu/images/countries/ng.svg +0 -6
  906. package/hmu/images/countries/ni.svg +0 -131
  907. package/hmu/images/countries/nl.svg +0 -7
  908. package/hmu/images/countries/no.svg +0 -7
  909. package/hmu/images/countries/np.svg +0 -14
  910. package/hmu/images/countries/nr.svg +0 -12
  911. package/hmu/images/countries/nu.svg +0 -26
  912. package/hmu/images/countries/nz.svg +0 -41
  913. package/hmu/images/countries/om.svg +0 -116
  914. package/hmu/images/countries/pa.svg +0 -14
  915. package/hmu/images/countries/pe.svg +0 -279
  916. package/hmu/images/countries/pf.svg +0 -19
  917. package/hmu/images/countries/pg.svg +0 -9
  918. package/hmu/images/countries/ph.svg +0 -28
  919. package/hmu/images/countries/pk.svg +0 -15
  920. package/hmu/images/countries/pl.svg +0 -6
  921. package/hmu/images/countries/pm.svg +0 -7
  922. package/hmu/images/countries/pn.svg +0 -62
  923. package/hmu/images/countries/pr.svg +0 -13
  924. package/hmu/images/countries/ps.svg +0 -15
  925. package/hmu/images/countries/pt.svg +0 -57
  926. package/hmu/images/countries/pw.svg +0 -11
  927. package/hmu/images/countries/py.svg +0 -157
  928. package/hmu/images/countries/qa.svg +0 -4
  929. package/hmu/images/countries/re.svg +0 -7
  930. package/hmu/images/countries/ro.svg +0 -7
  931. package/hmu/images/countries/rs.svg +0 -292
  932. package/hmu/images/countries/ru.svg +0 -7
  933. package/hmu/images/countries/rw.svg +0 -13
  934. package/hmu/images/countries/sa.svg +0 -26
  935. package/hmu/images/countries/sb.svg +0 -13
  936. package/hmu/images/countries/sc.svg +0 -14
  937. package/hmu/images/countries/sd.svg +0 -13
  938. package/hmu/images/countries/se.svg +0 -16
  939. package/hmu/images/countries/sg.svg +0 -13
  940. package/hmu/images/countries/sh.svg +0 -74
  941. package/hmu/images/countries/si.svg +0 -18
  942. package/hmu/images/countries/sj.svg +0 -7
  943. package/hmu/images/countries/sk.svg +0 -9
  944. package/hmu/images/countries/sl.svg +0 -7
  945. package/hmu/images/countries/sm.svg +0 -91
  946. package/hmu/images/countries/sn.svg +0 -8
  947. package/hmu/images/countries/so.svg +0 -11
  948. package/hmu/images/countries/sr.svg +0 -6
  949. package/hmu/images/countries/ss.svg +0 -8
  950. package/hmu/images/countries/st.svg +0 -16
  951. package/hmu/images/countries/sv.svg +0 -618
  952. package/hmu/images/countries/sx.svg +0 -56
  953. package/hmu/images/countries/sy.svg +0 -6
  954. package/hmu/images/countries/sz.svg +0 -45
  955. package/hmu/images/countries/tc.svg +0 -67
  956. package/hmu/images/countries/td.svg +0 -7
  957. package/hmu/images/countries/tf.svg +0 -15
  958. package/hmu/images/countries/tg.svg +0 -14
  959. package/hmu/images/countries/th.svg +0 -7
  960. package/hmu/images/countries/tj.svg +0 -22
  961. package/hmu/images/countries/tk.svg +0 -5
  962. package/hmu/images/countries/tl.svg +0 -13
  963. package/hmu/images/countries/tm.svg +0 -213
  964. package/hmu/images/countries/tn.svg +0 -13
  965. package/hmu/images/countries/to.svg +0 -10
  966. package/hmu/images/countries/tr.svg +0 -8
  967. package/hmu/images/countries/tt.svg +0 -5
  968. package/hmu/images/countries/tv.svg +0 -27
  969. package/hmu/images/countries/tw.svg +0 -14
  970. package/hmu/images/countries/tz.svg +0 -13
  971. package/hmu/images/countries/ua.svg +0 -6
  972. package/hmu/images/countries/ug.svg +0 -30
  973. package/hmu/images/countries/um.svg +0 -23
  974. package/hmu/images/countries/un.svg +0 -16
  975. package/hmu/images/countries/us.svg +0 -12
  976. package/hmu/images/countries/uy.svg +0 -28
  977. package/hmu/images/countries/uz.svg +0 -30
  978. package/hmu/images/countries/va.svg +0 -483
  979. package/hmu/images/countries/vc.svg +0 -8
  980. package/hmu/images/countries/ve.svg +0 -26
  981. package/hmu/images/countries/vg.svg +0 -133
  982. package/hmu/images/countries/vi.svg +0 -31
  983. package/hmu/images/countries/vn.svg +0 -11
  984. package/hmu/images/countries/vu.svg +0 -18
  985. package/hmu/images/countries/wf.svg +0 -7
  986. package/hmu/images/countries/ws.svg +0 -7
  987. package/hmu/images/countries/ye.svg +0 -7
  988. package/hmu/images/countries/yt.svg +0 -7
  989. package/hmu/images/countries/za.svg +0 -17
  990. package/hmu/images/countries/zm.svg +0 -27
  991. package/hmu/images/countries/zw.svg +0 -21
  992. package/hmu/images/hipay-white-logo.svg +0 -42
  993. package/hmu/images/logo_visa_75wx45h.gif +0 -0
  994. package/internal/RefHolder.js +0 -64
  995. package/internal/SwitchBase.js +0 -287
  996. package/internal/svg-icons/ArrowDownward.js +0 -37
  997. package/internal/svg-icons/ArrowDropDown.js +0 -37
  998. package/internal/svg-icons/Cancel.js +0 -36
  999. package/internal/svg-icons/CheckBox.js +0 -36
  1000. package/internal/svg-icons/CheckBoxOutlineBlank.js +0 -36
  1001. package/internal/svg-icons/CheckCircle.js +0 -36
  1002. package/internal/svg-icons/IndeterminateCheckBox.js +0 -36
  1003. package/internal/svg-icons/KeyboardArrowLeft.js +0 -36
  1004. package/internal/svg-icons/KeyboardArrowRight.js +0 -36
  1005. package/internal/svg-icons/RadioButtonChecked.js +0 -36
  1006. package/internal/svg-icons/RadioButtonUnchecked.js +0 -36
  1007. package/styles/createHiMuiTheme.js +0 -332
  1008. package/svg-icons/ArrowDownward.js +0 -37
  1009. package/svg-icons/ArrowDropDown.js +0 -37
  1010. package/svg-icons/Cancel.js +0 -36
  1011. package/svg-icons/CheckBox.js +0 -36
  1012. package/svg-icons/CheckBoxOutlineBlank.js +0 -36
  1013. package/svg-icons/CheckCircle.js +0 -36
  1014. package/svg-icons/HiAccount.js +0 -52
  1015. package/svg-icons/HiAll.js +0 -62
  1016. package/svg-icons/HiBilling.js +0 -52
  1017. package/svg-icons/HiCatalog.js +0 -52
  1018. package/svg-icons/HiCustomer.js +0 -58
  1019. package/svg-icons/HiFinance.js +0 -52
  1020. package/svg-icons/HiRoute.js +0 -52
  1021. package/svg-icons/HiSettlement.js +0 -52
  1022. package/svg-icons/HiSizeLarge.js +0 -36
  1023. package/svg-icons/HiSizeMedium.js +0 -36
  1024. package/svg-icons/HiSizeSmall.js +0 -36
  1025. package/svg-icons/HiTransaction.js +0 -52
  1026. package/svg-icons/HiUser.js +0 -58
  1027. package/svg-icons/HiWidget.js +0 -62
  1028. package/svg-icons/IndeterminateCheckBox.js +0 -36
  1029. package/svg-icons/KeyboardArrowLeft.js +0 -36
  1030. package/svg-icons/KeyboardArrowRight.js +0 -36
  1031. package/svg-icons/RadioButtonChecked.js +0 -36
  1032. package/svg-icons/RadioButtonUnchecked.js +0 -36
  1033. package/svg-icons/index.js +0 -106
  1034. package/transitions/Collapse.js +0 -324
  1035. package/transitions/Fade.js +0 -207
  1036. package/transitions/Grow.js +0 -251
  1037. package/transitions/Slide.js +0 -381
  1038. package/transitions/Zoom.js +0 -204
  1039. package/transitions/index.js +0 -52
  1040. package/utils/ClickAwayListener.js +0 -122
  1041. package/utils/HiIconBuilder.js +0 -178
  1042. package/utils/addEventListener.js +0 -26
  1043. package/utils/hiGetMdiIcon.js +0 -20
  1044. package/utils/hiHelpers.js +0 -195
  1045. package/utils/keyboardFocus.js +0 -75
  1046. package/utils/manageAriaHidden.js +0 -49
  1047. package/utils/withWidth.js +0 -214
@@ -1,54 +1,53 @@
1
- import _Object$keys from 'babel-runtime/core-js/object/keys';
2
- import _extends from 'babel-runtime/helpers/extends';
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _objectSpread from "@babel/runtime/helpers/objectSpread";
3
4
  // @inheritedComponent Input
4
-
5
5
  import React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import classNames from 'classnames';
8
- import Grow from 'material-ui/transitions/Grow';
8
+ import Grow from '@material-ui/core/Grow';
9
9
  import { findDOMNode } from 'react-dom';
10
- import Paper from 'material-ui/Paper';
11
- import ClickAwayListener from 'material-ui/utils/ClickAwayListener';
12
- import { Manager, Target, Popper } from 'react-popper';
13
- import { CheckboxBlankOutline, CheckboxMarked } from 'mdi-material-ui';
10
+ import Scrollbars from 'react-custom-scrollbars';
11
+ import Paper from '@material-ui/core/Paper';
12
+ import ClickAwayListener from '@material-ui/core/ClickAwayListener';
13
+ import Popper from '@material-ui/core/Popper';
14
14
  import HiSelectableList from '../HiSelectableList';
15
- import { HiSearchField } from '../HiForm';
15
+ import HiSearchField from '../HiForm/HiSearchField';
16
16
  import SelectInput from './SelectInput';
17
17
  import HiChip from '../HiChip/HiChip';
18
18
  import { withStyles } from '../styles';
19
- import { arrayUnique, getNextItemSelectable } from '../utils/hiHelpers';
20
- import HiIconBuilder from '../utils/HiIconBuilder';
21
-
19
+ import { arrayUnique, getNextItemSelectable } from '../utils/helpers';
20
+ import HiIcon from '../HiIcon';
21
+ export const INFINITESCROLL_ERROR_MESSAGE = 'La propriété "loadMoreResults" est obligatoire si la prop "infiniteScroll" est à true';
22
22
  export const styles = theme => ({
23
- root: {
24
- backgroundColor: theme.palette.background2,
25
- maxWidth: 500,
26
- width: '100%',
27
- position: 'relative'
28
- },
29
- popper: {
30
- width: '100%',
31
- zIndex: 9
32
- },
33
- paper: {
34
- borderRadius: '0px 2px',
35
- maxHeight: 440,
36
- transition: 'none !important'
37
- },
38
- labelIcon: {
39
- marginRight: 10
40
- },
41
- selectIconLabel: _extends({
42
- whiteSpace: 'nowrap',
43
- overflow: 'hidden',
44
- textOverflow: 'ellipsis',
45
- paddingRight: 16
46
- }, theme.typography.body1, {
47
- display: 'inline-flex',
48
- width: '100%'
49
- })
23
+ root: {
24
+ backgroundColor: theme.palette.background2,
25
+ maxWidth: 500,
26
+ width: '100%',
27
+ position: 'relative'
28
+ },
29
+ popper: {
30
+ width: '100%',
31
+ zIndex: 1200
32
+ },
33
+ paper: {
34
+ borderRadius: '0px 2px',
35
+ maxHeight: 440,
36
+ transition: 'none !important'
37
+ },
38
+ labelIcon: {
39
+ marginRight: 10
40
+ },
41
+ selectIconLabel: _objectSpread({
42
+ whiteSpace: 'nowrap',
43
+ overflow: 'hidden',
44
+ textOverflow: 'ellipsis',
45
+ paddingRight: 16
46
+ }, theme.typography.b1, {
47
+ display: 'inline-flex',
48
+ width: '100%'
49
+ })
50
50
  });
51
-
52
51
  /**
53
52
  *
54
53
  * Utilisé pour tous types de selects dans les formulaires.
@@ -64,671 +63,870 @@ export const styles = theme => ({
64
63
  * il filtre la liste des suggestions
65
64
  * - HiSelectableList : affiche la liste des suggestions selon le type des éléments
66
65
  */
67
- class HiSelect extends React.PureComponent {
68
-
69
- constructor(props) {
70
- super(props);
71
-
72
- _initialiseProps.call(this);
73
-
74
- this.state = {
75
- open: false,
76
- focused: false,
77
- suggestions: [],
78
- hierarchySelected: {},
79
- hierarchy: {},
80
- nbOptions: 0,
81
- dynamic: false
82
- };
83
-
84
- // Check if value is in options
85
- let valueInOptions = false;
86
- const val = props.value;
87
- // No options provided.
88
- if (!props.options.length || !val || !val.length) {
89
- valueInOptions = true;
90
- } else {
91
- // Check if an option match value prop.
92
- props.options.forEach(item => {
93
- if (!valueInOptions && val.indexOf(item.id) !== -1) {
94
- valueInOptions = true;
95
- }
96
- });
97
- }
98
-
99
- if (!valueInOptions) {
100
- throw new Error('prop value provided does not match any option.');
101
- }
102
-
103
- if (props.hierarchic === true && props.options.length > 1) {
104
- const hierarchyTrees = this.buildHierarchyTrees(props);
105
-
106
- this.state.hierarchy = hierarchyTrees.hierarchy;
107
- this.state.hierarchySelected = hierarchyTrees.hierarchySelected;
108
- }
109
-
110
- if (props.options.length > 0) {
111
- // Get real options number (parent & _all are not real options)
112
- let optionsLength = 0;
113
- props.options.forEach(option => {
114
- if (option.hasChildren !== true && option.id !== '_all') {
115
- optionsLength++;
116
- }
117
- });
118
- this.state.nbOptions = optionsLength;
119
- } else {
120
- this.state.dynamic = true;
121
- }
122
-
123
- this.handleSelect = this.handleSelect.bind(this);
124
- this.handleClick = this.handleClick.bind(this);
125
- this.handleClose = this.handleClose.bind(this);
126
- this.handleRequestDelete = this.handleRequestDelete.bind(this);
127
- this.handleSuggestions = this.handleSuggestions.bind(this);
128
- this.handleFocus = this.handleFocus.bind(this);
129
- this.handleBlur = this.handleBlur.bind(this);
130
- }
131
-
132
- componentWillReceiveProps(nextProps) {
133
- if (typeof this.props.onSearch !== 'undefined' && this.props.options && this.props.options.length > 0) {
134
- this.handleSuggestions(nextProps.options);
135
- let optionsLength = 0;
136
- nextProps.options.forEach(option => {
137
- if (option.hasChildren !== true && option.id !== '_all') {
138
- optionsLength++;
139
- }
140
- });
141
- this.setState({ nbOptions: optionsLength });
142
- }
143
-
144
- if (nextProps.hierarchic === true && nextProps.options.length > 1) {
145
- const hierarchyTrees = this.buildHierarchyTrees(nextProps);
146
- this.setState({ hierarchy: hierarchyTrees.hierarchy, hierarchySelected: hierarchyTrees.hierarchySelected });
147
- }
148
- }
149
-
150
- buildHierarchyTrees(props) {
151
- // Construct two associative arrays
152
- // hierarchy[parentId] => children
153
- // hierarchySelected[parentId] => selected children
154
- const hierarchy = {};
155
- const hierarchySelected = {};
156
- let value = props.value || [];
157
- if (!Array.isArray(value)) value = [props.value];
158
- props.options.forEach(option => {
159
- if (option.hasChildren === true && !hierarchy.hasOwnProperty(option.id)) {
160
- hierarchy[option.id] = [];
161
- hierarchySelected[option.id] = [];
162
- } else if (option.hasOwnProperty('parentId')) {
163
- hierarchy[option.parentId].push(option.id);
164
- if (value.includes(option.id)) {
165
- hierarchySelected[option.parentId].push(option.id);
166
- }
167
- }
168
- });
169
- return { hierarchy, hierarchySelected };
170
- }
171
-
172
- // Key down on list items
173
-
174
-
175
- // Key down on search input
176
-
177
-
178
- /**
179
- * Call onChange with the updated value
180
- *
181
- * - handle single value
182
- * - handle multiple value
183
- * - handle '_all' id
184
- *
185
- * @param event
186
- * @param item
187
- */
188
-
189
-
190
- /**
191
- * Update suggestions list
192
- * - add '_no_result' item if suggestion list is empty
193
- * - add '_all' item if suggestion list is complete
194
- * @param suggestions
195
- */
196
-
197
-
198
- render() {
199
- const {
200
- classes,
201
- disabled,
202
- error,
203
- options,
204
- checkbox,
205
- searchable,
206
- displayAsChip,
207
- type,
208
- value,
209
- translations,
210
- parentItemSelectable,
211
- icon,
212
- parentIcon,
213
- hoverIcon,
214
- checkedIcon,
215
- hierarchic,
216
- id,
217
- placeholder
218
- } = this.props;
219
-
220
- const { open, suggestions, focused } = this.state;
221
-
222
- let display = '';
223
- const selectedIdList = Array.isArray(value) ? value : value ? [value] : [];
224
-
225
- if (this.state.dynamic && selectedIdList.length === 1) {
226
- display = translations.one_item_selected.replace('%s', selectedIdList.length);
227
- } else if (this.state.nbOptions !== selectedIdList.length && selectedIdList.length > 1) {
228
- display = translations.n_items_selected.replace('%s', selectedIdList.length);
229
- } else if (this.state.nbOptions === selectedIdList.length && this.state.nbOptions >= 1) {
230
- display = translations.all;
231
- } else if (selectedIdList.length === 1) {
232
- if (type !== 'icon') {
233
- display = options.find(o => o.id === selectedIdList[0]).label;
234
- } else {
235
- const optionSelected = options.find(o => o.id === selectedIdList[0]);
236
- display = React.createElement(
237
- 'span',
238
- { className: classes.selectIconLabel },
239
- React.createElement(HiIconBuilder, { icon: optionSelected.icon, className: classes.labelIcon }),
240
- optionSelected.label
241
- );
242
- }
243
- }
244
-
245
- if (displayAsChip) {
246
- const chipFilter = React.createElement(HiChip, { label: placeholder || display, onDelete: this.handleRequestDelete });
247
- if (display) {
248
- display = chipFilter;
249
- }
250
- }
251
-
252
- const popperClass = classNames(classes.popper, {
253
- [classes.popperClose]: !open
254
- });
255
-
256
- let allSelected = false;
257
- if (selectedIdList.length === this.state.nbOptions) {
258
- allSelected = true;
259
- }
260
-
261
- let popperStyle = {};
262
- if (this.props.containerWidth > 0) {
263
- popperStyle = { width: this.props.containerWidth };
264
- }
265
-
266
- return React.createElement(
267
- 'div',
268
- {
269
- className: classes.root,
270
- ref: el => {
271
- this.overlay = el;
272
- }
273
- },
274
- React.createElement(
275
- Manager,
276
- null,
277
- React.createElement(
278
- Target,
279
- null,
280
- React.createElement(SelectInput, {
281
- id: id,
282
- value: placeholder || display,
283
- open: open,
284
- focused: focused,
285
- type: type,
286
- disabled: disabled,
287
- noButton: displayAsChip,
288
- error: error,
289
- onClick: this.handleClick,
290
- onFocus: this.handleFocus,
291
- onBlur: this.handleBlur,
292
- onMouseEnter: this.props.onMouseEnter,
293
- onMouseLeave: this.props.onMouseLeave,
294
- refElement: el => {
295
- this.selectInputElement = el;
296
- }
297
- })
298
- ),
299
- open && React.createElement(
300
- Popper,
301
- {
302
- placement: 'bottom-start',
303
- eventsEnabled: open,
304
- className: popperClass,
305
- style: popperStyle
306
- },
307
- React.createElement(
308
- ClickAwayListener,
309
- { onClickAway: this.handleClose },
310
- React.createElement(
311
- Grow,
312
- { 'in': open, id: 'menu-list', style: { transformOrigin: '0 0 0' } },
313
- React.createElement(
314
- Paper,
315
- { className: classes.paper },
316
- !!searchable && React.createElement(HiSearchField, {
317
- itemList: options,
318
- callbackFilteredList: this.handleSuggestions,
319
- filterPropertyList: ['label'],
320
- placeholder: translations.search,
321
- autoFocus: true,
322
- onSearch: this.props.onSearch,
323
- inputRef: el => {
324
- this.searchField = el;
325
- },
326
- onKeyDown: this.handleKeyDownSearch
327
- }),
328
- React.createElement(HiSelectableList, {
329
- type: type,
330
- parentItemSelectable: parentItemSelectable,
331
- itemList: suggestions,
332
- onSelect: this.handleSelect,
333
- selectedIdList: selectedIdList,
334
- checkbox: checkbox,
335
- hierarchy: this.state.hierarchy,
336
- hierarchic: hierarchic,
337
- hierarchySelected: this.state.hierarchySelected,
338
- translations: translations,
339
- icon: icon,
340
- parentIcon: parentIcon,
341
- hoverIcon: hoverIcon,
342
- checkedIcon: checkedIcon,
343
- allSelected: allSelected,
344
- value: value,
345
- onKeyDown: this.handleKeyDown
346
- })
347
- )
348
- )
349
- )
350
- )
351
- )
352
- );
353
- }
354
- }
355
66
 
356
- HiSelect.defaultProps = {
357
- disabled: false,
358
- error: false,
359
- multiple: false,
360
- type: 'text',
361
- checkbox: false,
362
- searchable: false,
363
- hasAll: false,
364
- iconAll: false,
365
- hierarchic: false,
366
- parentItemSelectable: false,
367
- displayAsChip: false,
368
- icon: React.createElement(CheckboxBlankOutline, { style: { width: 20, height: 20 } }),
369
- parentIcon: React.createElement(CheckboxBlankOutline, { style: { width: 20, height: 20 } }),
370
- hoverIcon: React.createElement(CheckboxBlankOutline, { style: { width: 20, height: 20 } }),
371
- checkedIcon: React.createElement(CheckboxMarked, { style: { width: 20, height: 20 } }),
372
- translations: {
373
- all: 'All',
374
- no_result_match: 'No result match',
375
- search: 'Search',
376
- n_items_selected: '%s items selected',
377
- one_item_selected: '%s item selected',
378
- n_children: '%s items',
379
- one_child: '%s item'
380
- }
381
- };
67
+ class HiSelect extends React.PureComponent {
68
+ constructor(_props) {
69
+ super(_props);
382
70
 
383
- var _initialiseProps = function () {
384
71
  this.handleClick = () => {
385
- document.body.style.overflow = 'hidden';
386
- this.setState({ open: true });
72
+ if (this.state.open) {
73
+ this.handleClose();
74
+ } else {
75
+ this.setState({
76
+ open: true
77
+ });
387
78
  const options = this.props.options.slice();
388
79
  this.handleSuggestions(options);
389
80
 
390
81
  if (this.props.onClick) {
391
- this.props.onClick();
82
+ this.props.onClick();
83
+ } // Gestion du focus
84
+
85
+
86
+ if (!this.props.searchable) {
87
+ // sinon focus sur le dernier élément selectionné
88
+ this.focusOnSelectedItem();
392
89
  }
90
+ }
91
+ };
393
92
 
394
- // Gestion du focus
395
- if (this.searchField) {
396
- // si searchable, focus sur le champs de recherche
397
- const searchField = this.searchField;
398
- setTimeout(() => {
399
- searchField.focus();
400
- }, 1);
401
- } else if (this.overlay) {
402
- // sinon focus sur le dernier élément selectionné
403
- this.focusOnSelectedItem();
93
+ this.buildHierarchyTrees = props => {
94
+ // Construct two associative arrays
95
+ // hierarchy[parentId] => children
96
+ // hierarchySelected[parentId] => selected children
97
+ const hierarchy = {};
98
+ const hierarchySelected = {};
99
+ let value = props.value || [];
100
+ if (!Array.isArray(value)) value = [props.value];
101
+ props.options.forEach(option => {
102
+ if (option.hasChildren === true && !hierarchy.hasOwnProperty(option.id)) {
103
+ hierarchy[option.id] = [];
104
+ hierarchySelected[option.id] = [];
105
+ } else if (option.hasOwnProperty('parentId')) {
106
+ hierarchy[option.parentId].push(option.id);
107
+
108
+ if (value.includes(option.id)) {
109
+ hierarchySelected[option.parentId].push(option.id);
110
+ }
404
111
  }
112
+ });
113
+ return {
114
+ hierarchy,
115
+ hierarchySelected
116
+ };
405
117
  };
406
118
 
407
119
  this.focusOnSelectedItem = () => {
408
- // On récupère la div parent "overlay"
409
- const overlay = findDOMNode(this.overlay);
410
- const multiple = this.props.multiple;
411
- const value = this.props.value;
412
- const selectedIdList = Array.isArray(value) ? value : [value];
413
- setTimeout(() => {
414
- let focused = false;
415
- // Si un ou plusieurs items sont selectionnés, on focus sur le dernier
416
- if (selectedIdList.length > 0) {
417
- const itemSelected = overlay.querySelector(`[data-id="${selectedIdList[selectedIdList.length - 1]}"]`);
418
- if (itemSelected && itemSelected.parentElement.tagName === 'LI') {
419
- itemSelected.parentElement.focus();
420
- focused = true;
421
- }
422
- }
423
- // Si pas d'item selectionné, ou pas visible (en cas de recherche), focus sur le premier
424
- if (selectedIdList.length === 0 || !focused) {
425
- // On recupère tous les items
426
- const items = overlay.getElementsByTagName('li');
427
- let itemToFocus = items[0];
428
- // Si select multiple, et qu'au moins un selectionné, focus sur le 2e item
429
- if (multiple && selectedIdList.length > 0) {
430
- itemToFocus = items[1];
431
- }
432
- if (itemToFocus) {
433
- itemToFocus.focus();
434
- }
435
- }
436
- }, 1);
120
+ // On récupère la div parent "overlay"
121
+ const overlay = findDOMNode(this.overlay);
122
+ const multiple = this.props.multiple;
123
+ const value = this.props.value;
124
+ const selectedIdList = Array.isArray(value) ? value : [value];
125
+ setTimeout(() => {
126
+ let focused = false; // Si un ou plusieurs items sont selectionnés, on focus sur le dernier
127
+
128
+ if (selectedIdList.length > 0) {
129
+ const itemSelected = overlay.querySelector(`[data-id="${selectedIdList[selectedIdList.length - 1]}"]`);
130
+
131
+ if (itemSelected && itemSelected.parentElement.tagName === 'LI') {
132
+ itemSelected.parentElement.focus();
133
+ focused = true;
134
+ }
135
+ } // Si pas d'item selectionné, ou pas visible (en cas de recherche), focus sur le premier
136
+
137
+
138
+ if (selectedIdList.length === 0 || !focused) {
139
+ // On recupère tous les items
140
+ const items = overlay.getElementsByTagName('li');
141
+ let itemToFocus = items[0]; // Si select multiple, et qu'au moins un selectionné, focus sur le 2e item
142
+
143
+ if (multiple && selectedIdList.length > 0) {
144
+ itemToFocus = items[1];
145
+ }
146
+
147
+ if (itemToFocus) {
148
+ itemToFocus.focus();
149
+ }
150
+ }
151
+ }, 1);
437
152
  };
438
153
 
439
154
  this.handleKeyDown = event => {
440
- let nextItem;
441
- if (event.key === 'ArrowDown') {
442
- nextItem = getNextItemSelectable(document.activeElement, 'down');
443
- } else if (event.key === 'ArrowUp') {
444
- nextItem = getNextItemSelectable(document.activeElement, 'up');
445
- } else if (event.key === 'Tab') {
155
+ let nextItem;
156
+
157
+ if (event.key === 'ArrowDown') {
158
+ nextItem = getNextItemSelectable(document.activeElement, 'down');
159
+ } else if (event.key === 'ArrowUp') {
160
+ nextItem = getNextItemSelectable(document.activeElement, 'up');
161
+ } else if (event.key === 'Tab') {
162
+ /* if (!this.props.staticPosition) {
446
163
  document.body.style.overflow = 'auto';
447
- this.setState({ open: false });
448
- }
449
- if (nextItem) {
450
- nextItem.focus();
451
- }
164
+ } */
165
+ this.setState({
166
+ open: false
167
+ });
168
+ } else if (event.key === 'Escape') {
169
+ this.setState({
170
+ open: false
171
+ });
172
+ }
173
+
174
+ if (nextItem) {
175
+ nextItem.focus();
176
+ }
452
177
  };
453
178
 
454
179
  this.handleKeyDownSearch = event => {
455
- if (this.overlay && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
456
- this.focusOnSelectedItem();
457
- }
180
+ if (this.overlay && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
181
+ this.focusOnSelectedItem();
182
+ } else if (event.key === 'Enter' && this.props.onSubmit) {
183
+ this.props.onSubmit(event);
184
+ }
458
185
  };
459
186
 
460
187
  this.handleFocus = () => {
461
- this.setState({ focused: true });
188
+ this.setState({
189
+ focused: true
190
+ });
462
191
  };
463
192
 
464
193
  this.handleBlur = () => {
465
- this.setState({ focused: false });
194
+ this.setState({
195
+ focused: false
196
+ });
466
197
  };
467
198
 
468
199
  this.handleClose = () => {
469
- document.body.style.overflow = 'auto';
470
- this.setState({
471
- open: false
472
- });
200
+ if (this.props.onClose) {
201
+ this.props.onClose();
202
+ }
473
203
 
474
- if (this.props.onClose) {
475
- this.props.onClose();
476
- }
477
- if (this.selectInputElement) {
478
- this.selectInputElement.focus();
479
- }
204
+ if (this.selectInputElement) {
205
+ this.selectInputElement.focus();
206
+ }
207
+
208
+ this.setState({
209
+ open: false
210
+ });
211
+ };
212
+
213
+ this.handleClickAway = event => {
214
+ // Au clic sur le bouton, on laisse le handleClick fermer le select
215
+ if (!this.selectInputElement.contains(event.target)) {
216
+ this.handleClose(event);
217
+ }
480
218
  };
481
219
 
482
220
  this.handleSelect = (event, item) => {
483
- const { multiple, value, name, onChange, options, hierarchic } = this.props;
484
- const { hierarchySelected, hierarchy, nbOptions } = this.state;
485
- const hiSelected = _extends({}, hierarchySelected);
486
-
487
- if (multiple) {
488
- let valueList = value;
489
- if (item.id === '_all') {
490
- if (valueList.length === nbOptions) {
491
- valueList = [];
492
- if (hierarchic) {
493
- // if hierarchic select => empty associative array of selected children
494
- _Object$keys(hiSelected).forEach(key => {
495
- hiSelected[key] = [];
496
- });
497
- }
498
- } else {
499
- options.forEach(option => {
500
- if (option.hasChildren !== true && !valueList.includes(option.id) && option.id !== '_all') {
501
- valueList.push(option.id);
502
- } else if (option.hasChildren === true) {
503
- // if hierarchic select => fill associative array of selected children
504
- hiSelected[option.id] = hierarchy[option.id];
505
- }
506
- });
507
- }
508
- } else if (valueList.includes(item.id) || item.hasChildren === true && hierarchySelected[item.id].length === hierarchy[item.id].length) {
509
- // item déjà sélectionné => on le déselectionne
510
- if (item.hasChildren !== true) {
511
- valueList = valueList.filter(val => {
512
- return val !== item.id;
513
- });
514
- }
515
-
516
- if (item.hasChildren === true) {
517
- // remove all children
518
- valueList = valueList.filter(val => {
519
- return !this.state.hierarchy[item.id].includes(val);
520
- });
521
- hiSelected[item.id] = [];
522
- } else if (item.hasOwnProperty('parentId')) {
523
- // Si item est un enfant on l'enlève du tableau associatif des
524
- // elmts sélectionnés
525
- hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
526
- }
527
- } else {
528
- // item non sélectionné => on le sélectionne
529
- if (item.hasChildren !== true) valueList.push(item.id);
530
-
531
- if (item.hasChildren === true) {
532
- // Si item parent => on ajoute tous les enfants
533
- // Ou on les supprime s'ils sont déjà tous sélectionnés (dans une liste filtrée)
534
- const idsInSuggestions = [];
535
- this.state.suggestions.forEach(suggestion => {
536
- if (this.state.hierarchy[item.id].includes(suggestion.id)) {
537
- idsInSuggestions.push(suggestion.id);
538
- }
539
- });
540
- // if(hierarchySelected[item.id].length > 0) {}
541
- let allChildrenSuggestionsSelected = true;
542
- idsInSuggestions.forEach(id => {
543
- if (!hierarchySelected[item.id].includes(id)) {
544
- allChildrenSuggestionsSelected = false;
545
- }
546
- });
547
-
548
- if (allChildrenSuggestionsSelected === true) {
549
- // On supprime les enfants car déjà tous sélectionnés
550
- idsInSuggestions.forEach(id => {
551
- valueList.splice(valueList.indexOf(id), 1);
552
- hiSelected[item.id].splice(hiSelected[item.id].indexOf(id), 1);
553
- });
554
- } else {
555
- // On ajoute tous les enfants filtrés au éléments sélectionnés
556
- valueList = arrayUnique(valueList.concat(idsInSuggestions));
557
- hiSelected[item.id] = arrayUnique(hiSelected[item.id].concat(idsInSuggestions));
558
- }
559
-
560
- this.setState({ hierarchySelected: hiSelected });
561
- } else if (item.hasOwnProperty('parentId')) {
562
- // Si item est un enfant on l'ajoute du tableau associatif des
563
- // elmts sélectionnés
564
- hiSelected[item.parentId].push(item.id);
565
- }
221
+ const {
222
+ multiple,
223
+ value,
224
+ onChange,
225
+ options,
226
+ hierarchic,
227
+ pinnedItem
228
+ } = this.props;
229
+ const {
230
+ hierarchySelected,
231
+ hierarchy,
232
+ nbOptions
233
+ } = this.state;
234
+
235
+ const hiSelected = _objectSpread({}, hierarchySelected);
236
+
237
+ if (multiple) {
238
+ let valueList = value;
239
+
240
+ if (item.id === '_all') {
241
+ if (valueList.length === nbOptions) {
242
+ valueList = [];
243
+
244
+ if (hierarchic) {
245
+ // if hierarchic select => empty associative array of selected children
246
+ Object.keys(hiSelected).forEach(key => {
247
+ hiSelected[key] = [];
248
+ });
566
249
  }
567
- this.setState({ hierarchySelected: hiSelected });
568
- onChange(event, valueList);
250
+ } else {
251
+ options.forEach(option => {
252
+ if (option.hasChildren !== true && !valueList.includes(option.id) && option.id !== '_all') {
253
+ valueList.push(option.id);
254
+ } else if (option.hasChildren === true) {
255
+ // if hierarchic select => fill associative array of selected children
256
+ hiSelected[option.id] = hierarchy[option.id];
257
+ }
258
+ });
259
+ }
260
+ } else if (valueList.includes(item.id) || item.hasChildren === true && hierarchySelected[item.id].length === hierarchy[item.id].length) {
261
+ // item déjà sélectionné => on le déselectionne
262
+ if (item.hasChildren !== true) {
263
+ valueList = valueList.filter(val => {
264
+ return val !== item.id;
265
+ });
266
+ }
267
+
268
+ if (item.hasChildren === true) {
269
+ // remove all children
270
+ valueList = valueList.filter(val => {
271
+ return !this.state.hierarchy[item.id].includes(val);
272
+ });
273
+ hiSelected[item.id] = [];
274
+ } else if (item.hasOwnProperty('parentId')) {
275
+ // Si item est un enfant on l'enlève du tableau associatif des
276
+ // elmts sélectionnés
277
+ hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
278
+ }
569
279
  } else {
570
- onChange(event, item.id);
571
- this.handleClose();
572
- }
573
- };
280
+ if (pinnedItem && item.id === pinnedItem.id) {
281
+ Object.keys(hiSelected).map(parentItemId => {
282
+ hiSelected[parentItemId] = [];
283
+ return true;
284
+ });
285
+ valueList = [item.id];
286
+ } else {
287
+ // item non sélectionné => on le sélectionne
288
+ if (item.hasChildren !== true) valueList.push(item.id);
574
289
 
575
- this.handleSuggestions = suggestions => {
576
- const { options, hasAll, iconAll, translations, multiple } = this.props;
577
-
578
- if (suggestions.length === 0) {
579
- // Handle No Result
580
- // FIX to remove all item
581
- suggestions = [];
582
- suggestions.push({
583
- id: '_no_result',
584
- type: 'text',
585
- disabled: true,
586
- centered: true,
587
- checkbox: false,
588
- label: translations.no_result_match
290
+ if (pinnedItem && valueList.includes(pinnedItem.id)) {
291
+ valueList.splice(valueList.indexOf(pinnedItem.id), 1);
292
+ }
293
+ }
294
+
295
+ if (item.hasChildren === true) {
296
+ // Si item parent => on ajoute tous les enfants
297
+ // Ou on les supprime s'ils sont déjà tous sélectionnés (dans une liste filtrée)
298
+ const idsInSuggestions = [];
299
+ this.state.suggestions.forEach(suggestion => {
300
+ if (this.state.hierarchy[item.id].includes(suggestion.id)) {
301
+ idsInSuggestions.push(suggestion.id);
302
+ }
303
+ }); // if(hierarchySelected[item.id].length > 0) {}
304
+
305
+ let allChildrenSuggestionsSelected = true;
306
+ idsInSuggestions.forEach(id => {
307
+ if (!hierarchySelected[item.id].includes(id)) {
308
+ allChildrenSuggestionsSelected = false;
309
+ }
589
310
  });
590
- } else if (hasAll && suggestions.length > 0 && suggestions.length === options.length && multiple === true) {
591
- // Handle 'All'
592
- if (suggestions.filter(suggestion => suggestion.id === '_all').length === 0) {
593
- const allItem = {
594
- id: '_all',
595
- icon: iconAll,
596
- label: translations.all
597
- };
598
- if (iconAll !== false) {
599
- allItem.type = 'icon';
600
- }
601
- suggestions.unshift(allItem);
311
+
312
+ if (allChildrenSuggestionsSelected === true) {
313
+ // On supprime les enfants car déjà tous sélectionnés
314
+ idsInSuggestions.forEach(id => {
315
+ valueList.splice(valueList.indexOf(id), 1);
316
+ hiSelected[item.id].splice(hiSelected[item.id].indexOf(id), 1);
317
+ });
318
+ } else {
319
+ // On ajoute tous les enfants filtrés au éléments sélectionnés
320
+ valueList = arrayUnique(valueList.concat(idsInSuggestions));
321
+ hiSelected[item.id] = arrayUnique(hiSelected[item.id].concat(idsInSuggestions));
602
322
  }
323
+
324
+ this.setState({
325
+ hierarchySelected: hiSelected
326
+ });
327
+ } else if (item.hasOwnProperty('parentId')) {
328
+ // Si item est un enfant on l'ajoute du tableau associatif des
329
+ // elmts sélectionnés
330
+ hiSelected[item.parentId].push(item.id);
331
+ }
603
332
  }
604
333
 
605
334
  this.setState({
606
- suggestions
335
+ hierarchySelected: hiSelected
607
336
  });
337
+ onChange(event, valueList, item);
338
+ } else {
339
+ onChange(event, item.id, item);
340
+ this.handleClose();
341
+ }
342
+ };
343
+
344
+ this.handleSuggestions = suggestions => {
345
+ const {
346
+ options,
347
+ hasAll,
348
+ iconAll,
349
+ translations,
350
+ multiple
351
+ } = this.props;
352
+
353
+ if (suggestions.length === 0) {
354
+ // Handle No Result
355
+ // FIX to remove all item
356
+ suggestions = [];
357
+ suggestions.push({
358
+ id: '_no_result',
359
+ type: 'text',
360
+ disabled: true,
361
+ centered: true,
362
+ checkbox: false,
363
+ label: translations.no_result_match
364
+ });
365
+ } else if (hasAll && suggestions.length > 0 && suggestions.length === options.length && multiple === true) {
366
+ // Handle 'All'
367
+ if (suggestions.filter(suggestion => suggestion.id === '_all').length === 0) {
368
+ const allItem = {
369
+ id: '_all',
370
+ icon: iconAll,
371
+ label: translations.all
372
+ };
373
+
374
+ if (iconAll !== false) {
375
+ allItem.type = 'icon';
376
+ }
377
+
378
+ suggestions.unshift(allItem);
379
+ }
380
+ }
381
+
382
+ this.setState({
383
+ suggestions
384
+ });
608
385
  };
609
386
 
610
387
  this.handleRequestDelete = evt => {
611
- evt.stopPropagation();
612
- this.props.onChange(this.props.name, []);
388
+ evt.stopPropagation();
389
+ this.props.onChange(this.props.name, []);
613
390
  };
614
- };
615
391
 
392
+ this.handleScroll = event => {
393
+ if (!this.props.loadingMoreResults && this.props.hasMore && event.target.scrollHeight - event.target.clientHeight - event.target.scrollTop < 15) {
394
+ this.props.loadMoreResults(this.state.resultsPageNumber + 1);
395
+ this.setState(prevState => ({
396
+ resultsPageNumber: prevState.resultsPageNumber + 1
397
+ }));
398
+ }
399
+ };
400
+
401
+ this.state = {
402
+ open: false,
403
+ focused: false,
404
+ suggestions: [],
405
+ hierarchySelected: {},
406
+ hierarchy: {},
407
+ nbOptions: 0,
408
+ dynamic: _props.dynamic || false,
409
+ resultsPageNumber: 1
410
+ }; // Check if value is in options
411
+
412
+ let valueInOptions = false;
413
+ const _val = _props.value; // No options provided.
414
+
415
+ if (!_props.options.length || !_val || !_val.length) {
416
+ valueInOptions = true;
417
+ } else {
418
+ // Check if an option match value prop.
419
+ _props.options.forEach(item => {
420
+ if (!valueInOptions && _val.indexOf(item.id) !== -1) {
421
+ valueInOptions = true;
422
+ }
423
+ });
424
+
425
+ if (!valueInOptions && _props.pinnedItem) {
426
+ if (_props.value.indexOf(_props.pinnedItem.id) >= 0) {
427
+ valueInOptions = true;
428
+ }
429
+ }
430
+ }
431
+
432
+ if (!valueInOptions) {
433
+ throw new Error('prop value provided does not match any option.');
434
+ }
435
+
436
+ if (_props.hierarchic === true && _props.options.length > 1) {
437
+ const hierarchyTrees = this.buildHierarchyTrees(_props);
438
+ this.state.hierarchy = hierarchyTrees.hierarchy;
439
+ this.state.hierarchySelected = hierarchyTrees.hierarchySelected;
440
+ }
441
+
442
+ if (_props.options.length > 0) {
443
+ // Get real options number (parent & _all are not real options)
444
+ let optionsLength = 0;
445
+
446
+ _props.options.forEach(option => {
447
+ if (option.hasChildren !== true && option.id !== '_all') {
448
+ optionsLength += 1;
449
+ }
450
+ });
451
+
452
+ this.state.nbOptions = optionsLength;
453
+ } else if (!_props.dynamic) {
454
+ this.state.dynamic = true;
455
+ }
456
+
457
+ this.handleSelect = this.handleSelect.bind(this);
458
+ this.handleClick = this.handleClick.bind(this);
459
+ this.handleClose = this.handleClose.bind(this);
460
+ this.handleClickAway = this.handleClickAway.bind(this);
461
+ this.handleRequestDelete = this.handleRequestDelete.bind(this);
462
+ this.handleSuggestions = this.handleSuggestions.bind(this);
463
+ this.handleFocus = this.handleFocus.bind(this);
464
+ this.handleBlur = this.handleBlur.bind(this);
465
+ this.handleScroll = this.handleScroll.bind(this);
466
+ }
467
+
468
+ componentWillReceiveProps(nextProps) {
469
+ if (typeof this.props.onSearch !== 'undefined' && this.props.options && this.props.options.length > 0) {
470
+ this.handleSuggestions(nextProps.options);
471
+ let optionsLength = 0;
472
+ nextProps.options.forEach(option => {
473
+ if (option.hasChildren !== true && option.id !== '_all') {
474
+ optionsLength += 1;
475
+ }
476
+ });
477
+ this.setState({
478
+ nbOptions: optionsLength
479
+ });
480
+ }
481
+
482
+ if (nextProps.hierarchic === true && nextProps.options.length > 1) {
483
+ const hierarchyTrees = this.buildHierarchyTrees(nextProps);
484
+ this.setState({
485
+ hierarchy: hierarchyTrees.hierarchy,
486
+ hierarchySelected: hierarchyTrees.hierarchySelected
487
+ });
488
+ }
489
+ }
490
+
491
+ render() {
492
+ const _this$props = this.props,
493
+ {
494
+ classes,
495
+ disabled,
496
+ error,
497
+ loading,
498
+ options,
499
+ searchable,
500
+ displayAsChip,
501
+ type,
502
+ value,
503
+ translations,
504
+ parentItemSelectable,
505
+ icon,
506
+ parentIcon,
507
+ hoverIcon,
508
+ checkedIcon,
509
+ id,
510
+ placeholder,
511
+ staticPosition,
512
+ pinnedItem,
513
+ hasAll,
514
+ infiniteScroll,
515
+ loadingMoreResults,
516
+ multiple
517
+ } = _this$props,
518
+ other = _objectWithoutProperties(_this$props, ["classes", "disabled", "error", "loading", "options", "searchable", "displayAsChip", "type", "value", "translations", "parentItemSelectable", "icon", "parentIcon", "hoverIcon", "checkedIcon", "id", "placeholder", "staticPosition", "pinnedItem", "hasAll", "infiniteScroll", "loadingMoreResults", "multiple"]);
519
+
520
+ const {
521
+ open,
522
+ suggestions: stateSuggestions,
523
+ focused,
524
+ dynamic
525
+ } = this.state;
526
+ let display = '';
527
+ let selectedIdList;
528
+
529
+ if (Array.isArray(value)) {
530
+ selectedIdList = value;
531
+ } else if (value) {
532
+ selectedIdList = [value];
533
+ } else {
534
+ selectedIdList = [];
535
+ }
536
+
537
+ const suggestions = [...stateSuggestions];
538
+
539
+ if (pinnedItem) {
540
+ suggestions.unshift(pinnedItem);
541
+ } // If loading
542
+
543
+
544
+ if (loading && !loadingMoreResults) {
545
+ suggestions.unshift({
546
+ id: '_loading',
547
+ type: 'loader',
548
+ disabled: true,
549
+ centered: true,
550
+ checkbox: false,
551
+ label: 'loading'
552
+ });
553
+ }
554
+
555
+ if ((dynamic || loading) && selectedIdList.length === 1) {
556
+ display = translations.one_item_selected;
557
+ } else if ((this.state.nbOptions !== selectedIdList.length || !hasAll) && selectedIdList.length > 1) {
558
+ display = translations.n_items_selected.replace('%s', selectedIdList.length);
559
+ } else if (this.state.nbOptions === selectedIdList.length && this.state.nbOptions > 1) {
560
+ display = translations.all;
561
+ } else if (selectedIdList.length === 1) {
562
+ let item = options.find(o => o.id === selectedIdList[0]);
563
+
564
+ if (item === undefined) {
565
+ display = translations.one_item_selected;
566
+ } else if (type !== 'icon') {
567
+ if (pinnedItem) {
568
+ item = pinnedItem;
569
+ }
570
+
571
+ display = item.label;
572
+ } else {
573
+ display = React.createElement("span", {
574
+ className: classes.selectIconLabel
575
+ }, React.createElement(HiIcon, {
576
+ icon: item.icon,
577
+ className: classes.labelIcon
578
+ }), item.label);
579
+ }
580
+ }
581
+
582
+ if (displayAsChip) {
583
+ const chipFilter = React.createElement(HiChip, {
584
+ label: placeholder || display,
585
+ onDelete: this.handleRequestDelete
586
+ });
587
+
588
+ if (display) {
589
+ display = chipFilter;
590
+ }
591
+ }
592
+
593
+ const popperClass = classNames(classes.popper, {
594
+ [classes.popperClose]: !open
595
+ });
596
+ let allSelected = false;
597
+
598
+ if (selectedIdList.length === this.state.nbOptions) {
599
+ allSelected = true;
600
+ }
601
+
602
+ let popperStyle = {};
603
+
604
+ if (this.props.containerWidth > 0) {
605
+ popperStyle = {
606
+ width: this.props.containerWidth
607
+ };
608
+ }
609
+
610
+ if (infiniteScroll && loadingMoreResults) {
611
+ suggestions.push({
612
+ id: '_loading',
613
+ type: 'loader',
614
+ disabled: true,
615
+ centered: true,
616
+ checkbox: false,
617
+ label: 'loading'
618
+ });
619
+ }
620
+
621
+ const content = React.createElement(ClickAwayListener, {
622
+ onClickAway: this.handleClickAway
623
+ }, React.createElement(Grow, {
624
+ in: open,
625
+ id: "menu-list",
626
+ style: {
627
+ transformOrigin: '0 0 0'
628
+ }
629
+ }, React.createElement(Paper, {
630
+ className: classes.paper
631
+ }, !!searchable && React.createElement(HiSearchField, {
632
+ itemList: options,
633
+ onFilteredList: this.handleSuggestions,
634
+ filterPropertyList: ['label'],
635
+ placeholder: translations.search,
636
+ autoFocus: true,
637
+ onSearch: this.props.onSearch,
638
+ inputRef: el => {
639
+ this.searchField = el;
640
+ },
641
+ onKeyDown: this.handleKeyDownSearch
642
+ }), React.createElement(Scrollbars, {
643
+ ref: contentEl => {
644
+ this.optionsContent = contentEl;
645
+ },
646
+ autoHeight: true,
647
+ autoHeightMax: 400,
648
+ onScroll: this.handleScroll
649
+ }, React.createElement(HiSelectableList, _extends({
650
+ type: type,
651
+ parentItemSelectable: parentItemSelectable,
652
+ itemList: suggestions,
653
+ onSelect: this.handleSelect,
654
+ selectedItemIdList: selectedIdList,
655
+ hideCheckbox: !multiple,
656
+ translations: translations,
657
+ icon: icon,
658
+ parentIcon: parentIcon,
659
+ hoverIcon: hoverIcon,
660
+ checkedIcon: checkedIcon,
661
+ allSelected: allSelected,
662
+ value: value,
663
+ onKeyDown: this.handleKeyDown
664
+ }, other))))));
665
+ return React.createElement("div", {
666
+ className: classes.root,
667
+ ref: el => {
668
+ this.overlay = el;
669
+ }
670
+ }, React.createElement(SelectInput, {
671
+ id: id,
672
+ value: placeholder || display,
673
+ open: open,
674
+ focused: focused,
675
+ type: type,
676
+ disabled: disabled,
677
+ noButton: displayAsChip,
678
+ error: error,
679
+ onClick: this.handleClick,
680
+ onFocus: this.handleFocus,
681
+ onBlur: this.handleBlur,
682
+ onMouseEnter: this.props.onMouseEnter,
683
+ onMouseLeave: this.props.onMouseLeave,
684
+ refElement: el => {
685
+ this.selectInputElement = el;
686
+ }
687
+ }), open && staticPosition ? React.createElement("div", {
688
+ style: popperStyle
689
+ }, content) : React.createElement(Popper, {
690
+ anchorEl: this.inputEl,
691
+ placement: "bottom-start",
692
+ open: open,
693
+ eventsEnabled: open,
694
+ className: popperClass,
695
+ style: popperStyle,
696
+ disablePortal: true
697
+ }, content));
698
+ }
699
+
700
+ }
701
+
702
+ HiSelect.defaultProps = {
703
+ containerWidth: 0,
704
+ disabled: false,
705
+ displayAsChip: false,
706
+ dynamic: false,
707
+ error: false,
708
+ hasAll: false,
709
+ hasMore: false,
710
+ hierarchic: false,
711
+ iconAll: false,
712
+ infiniteScroll: false,
713
+ loadingMoreResults: false,
714
+ multiple: false,
715
+ parentItemSelectable: false,
716
+ type: 'text',
717
+ translations: {
718
+ all: 'All',
719
+ no_result_match: 'No result match',
720
+ search: 'Search',
721
+ n_items_selected: '%s items selected',
722
+ one_item_selected: '%s item selected',
723
+ n_children: '%s items',
724
+ one_child: '%s item'
725
+ },
726
+ searchable: false,
727
+ staticPosition: false
728
+ };
616
729
  HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
617
- /**
618
- * Affiche une checkbox pour chaque éléments, par défaut si options est nested
619
- */
620
- checkbox: PropTypes.bool,
621
- /**
622
- * Icon affiché lorsque l'item est sélectionné
623
- */
624
- checkedIcon: PropTypes.node,
625
- /**
626
- * Useful to extend the style applied to components.
627
- */
628
- classes: PropTypes.object,
629
- /**
630
- * Inactif
631
- */
632
- disabled: PropTypes.bool,
633
- /**
634
- * Option permettant d'afficher les sélection sous forme de Chip.
635
- */
636
- displayAsChip: PropTypes.bool,
637
- /**
638
- * Applique le style error
639
- */
640
- error: PropTypes.bool,
641
- /**
642
- * Affiche l'élément 'All'
643
- */
644
- hasAll: PropTypes.bool,
645
- /**
646
- * Les items sont hiérarchisés
647
- */
648
- hierarchic: PropTypes.bool,
649
- /**
650
- * Icon affiché lorsque l'item n'est pas sélectionné et qu'on le survole
651
- */
652
- hoverIcon: PropTypes.node,
653
- /**
654
- * Icon affiché lorsque l'item n'est pas sélectionné
655
- */
656
- icon: PropTypes.node,
657
- /**
658
- * Nom de l'icône
659
- */
660
- iconAll: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
661
- /**
662
- * id du select
663
- */
664
- id: PropTypes.string,
665
- /**
666
- * Autorise la sélection de plusieurs valeurs
667
- */
668
- multiple: PropTypes.bool,
669
- /**
670
- * Nom du champ de formulaire
671
- */
672
- name: PropTypes.string.isRequired,
673
- /**
674
- * Fonction de callback qui renvoit la/les valeurs sélectionnées
675
- *
676
- * @param {object} event
677
- * @param {string || array} value
678
- */
679
- onChange: PropTypes.func.isRequired,
680
- /**
681
- * Fonction de callback appelée lorsqu'on ferme le select
682
- */
683
- onClose: PropTypes.func,
684
- /**
685
- * Fonction de callback appelée lorsqu'on survole le champs
686
- */
687
- onMouseEnter: PropTypes.func,
688
- /**
689
- * Fonction de callback appelée lorsque le curseur quitte le champs
690
- */
691
- onMouseLeave: PropTypes.func,
692
- /**
693
- * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
694
- * A utiliser pour les selects avec des données dynamiques
695
- *
696
- * @param {object} event
697
- * @param {string} value
698
- */
699
- onSearch: PropTypes.func,
700
- /**
701
- * Listes des options du select
702
- */
703
- options: PropTypes.array.isRequired,
704
- /**
705
- * Icon affiché lorsqu'un item parent n'est pas sélectionné
706
- */
707
- parentIcon: PropTypes.node,
708
- /**
709
- * Les items parents sont sélectionnables
710
- */
711
- parentItemSelectable: PropTypes.bool,
712
- /**
713
- * Placeholder affiché lorsque le select est fermé
714
- * Surcharge le placeholder par défaut
715
- */
716
- placeholder: PropTypes.string,
717
- /**
718
- * Affiche un input de recherche permettant de filtrer les options
719
- */
720
- searchable: PropTypes.bool,
721
- /**
722
- * Traductions (par défaut en anglais)
723
- */
724
- translations: PropTypes.object,
725
- /**
726
- * Type des éléments du select, définit le rendu d'un élément
727
- */
728
- type: PropTypes.oneOf(['icon', 'text', 'image', 'primary-highlight']),
729
- /**
730
- * Value(s) du select
731
- */
732
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])
730
+ /**
731
+ * Icon affiché lorsque l'item est sélectionné
732
+ */
733
+ checkedIcon: PropTypes.node,
734
+
735
+ /**
736
+ * Useful to extend the style applied to components.
737
+ */
738
+ classes: PropTypes.object,
739
+
740
+ /**
741
+ * Popper width
742
+ */
743
+ containerWidth: PropTypes.number,
744
+
745
+ /**
746
+ * Inactif
747
+ */
748
+ disabled: PropTypes.bool,
749
+
750
+ /**
751
+ * Option permettant d'afficher les sélection sous forme de Chip.
752
+ */
753
+ displayAsChip: PropTypes.bool,
754
+
755
+ /**
756
+ * Option permettant de définir si les options du select sont dynamiques.
757
+ * Si les options du select sont initialisées à vide, alors ce sera mis à true
758
+ * automatiquement.
759
+ */
760
+ dynamic: PropTypes.bool,
761
+
762
+ /**
763
+ * Applique le style error
764
+ */
765
+ error: PropTypes.bool,
766
+
767
+ /**
768
+ * Affiche l'élément 'All'
769
+ */
770
+ hasAll: PropTypes.bool,
771
+
772
+ /**
773
+ * Indique si l'infinite scroll doit rechercher de nouveaux résultats
774
+ */
775
+ hasMore: PropTypes.bool,
776
+
777
+ /**
778
+ * Les items sont hiérarchisés
779
+ */
780
+ hierarchic: PropTypes.bool,
781
+
782
+ /**
783
+ * Icon affiché lorsque l'item n'est pas sélectionné et qu'on le survole
784
+ */
785
+ hoverIcon: PropTypes.node,
786
+
787
+ /**
788
+ * Icon affiché lorsque l'item n'est pas sélectionné
789
+ */
790
+ icon: PropTypes.node,
791
+
792
+ /**
793
+ * Nom de l'icône
794
+ */
795
+ iconAll: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
796
+
797
+ /**
798
+ * id du select
799
+ */
800
+ id: PropTypes.string,
801
+
802
+ /**
803
+ * Infinite scroll dans le select dans le cas où il y a beaucoup de résultats à afficher
804
+ * afin d'éviter un lag du navigateur
805
+ */
806
+ infiniteScroll: PropTypes.bool,
807
+
808
+ /**
809
+ * Ajoute un loader
810
+ */
811
+ loading: PropTypes.bool,
812
+
813
+ /**
814
+ * Ajoute un loader en bas pour l'infiniteScroll
815
+ */
816
+ loadingMoreResults: PropTypes.bool,
817
+
818
+ /**
819
+ * Fonction de callback appelée lorsque l'utilisateur arrive en bas de la liste des options
820
+ * afin de charger les nouvelles options
821
+ *
822
+ * @param {int} pageNumber
823
+ */
824
+ loadMoreResults: PropTypes.func,
825
+
826
+ /**
827
+ * Autorise la sélection de plusieurs valeurs
828
+ */
829
+ multiple: PropTypes.bool,
830
+
831
+ /**
832
+ * Nom du champ de formulaire
833
+ */
834
+ name: PropTypes.string.isRequired,
835
+
836
+ /**
837
+ * Fonction de callback qui renvoit la/les valeurs sélectionnées
838
+ *
839
+ * @param {object} event
840
+ * @param {string || array} value
841
+ */
842
+ onChange: PropTypes.func.isRequired,
843
+
844
+ /**
845
+ * Fonction de callback appelée click dans l'input
846
+ */
847
+ onClick: PropTypes.func,
848
+
849
+ /**
850
+ * Fonction de callback appelée lorsqu'on ferme le select
851
+ */
852
+ onClose: PropTypes.func,
853
+
854
+ /**
855
+ * Fonction de callback appelée lorsqu'on survole le champs
856
+ */
857
+ onMouseEnter: PropTypes.func,
858
+
859
+ /**
860
+ * Fonction de callback appelée lorsque le curseur quitte le champs
861
+ */
862
+ onMouseLeave: PropTypes.func,
863
+
864
+ /**
865
+ * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
866
+ * A utiliser pour les selects avec des données dynamiques
867
+ *
868
+ * @param {object} event
869
+ * @param {string} value
870
+ */
871
+ onSearch: PropTypes.func,
872
+
873
+ /**
874
+ * Fonction de callback à la pression de la touche "Entrée"
875
+ */
876
+ onSubmit: PropTypes.func,
877
+
878
+ /**
879
+ * Listes des options du select
880
+ */
881
+ options: PropTypes.array.isRequired,
882
+
883
+ /**
884
+ * Icon affiché lorsqu'un item parent n'est pas sélectionné
885
+ */
886
+ parentIcon: PropTypes.node,
887
+
888
+ /**
889
+ * Les items parents sont sélectionnables
890
+ */
891
+ parentItemSelectable: PropTypes.bool,
892
+
893
+ /**
894
+ * Item épinglé en début de liste
895
+ */
896
+ pinnedItem: PropTypes.object,
897
+
898
+ /**
899
+ * Placeholder affiché lorsque le select est fermé
900
+ * Surcharge le placeholder par défaut
901
+ */
902
+ placeholder: PropTypes.string,
903
+
904
+ /**
905
+ * Affiche un input de recherche permettant de filtrer les options
906
+ */
907
+ searchable: PropTypes.bool,
908
+
909
+ /**
910
+ * Si true, le contenu du select sera dans une div static plutot que dans une popper absolute
911
+ */
912
+ staticPosition: PropTypes.bool,
913
+
914
+ /**
915
+ * Traductions (par défaut en anglais)
916
+ */
917
+ translations: PropTypes.object,
918
+
919
+ /**
920
+ * Type des éléments du select, définit le rendu d'un élément
921
+ */
922
+ type: PropTypes.oneOf(['icon', 'text', 'image', 'primary-highlight']),
923
+
924
+ /**
925
+ * Value(s) du select
926
+ */
927
+ value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])
733
928
  } : {};
734
- export default withStyles(styles, { name: 'HmuiHiSelect' })(HiSelect);
929
+ export default withStyles(styles, {
930
+ hiComponent: true,
931
+ name: 'HmuiHiSelect'
932
+ })(HiSelect);