@hipay/hipay-material-ui 1.0.0-beta.9 → 2.0.0-beta.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1059) 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 +196 -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 +28 -44
  54. package/HiIcon/HiIcon.js +178 -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 -242
  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 +434 -520
  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 +163 -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 +1 -2
  126. package/es/HiIcon/HiIcon.js +157 -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 -181
  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 +396 -444
  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 +112 -31
  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 +38 -42
  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 +147 -77
  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 +75478 -100515
  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/HiDotsStepper/HiDot.js +0 -151
  334. package/HiDotsStepper/HiDotsStepper.js +0 -146
  335. package/HiDotsStepper/index.js +0 -16
  336. package/HiForm/HiAddressField.js +0 -204
  337. package/HiPdfReader/HiPdfReader.js +0 -282
  338. package/HiPdfReader/index.js +0 -16
  339. package/HiPins/HiPins.js +0 -98
  340. package/HiPins/index.js +0 -16
  341. package/HiRadio/HiRadio.js +0 -99
  342. package/HiRadio/index.js +0 -16
  343. package/HiTable/BodyCellBuilder.js +0 -397
  344. package/HiTable/BodyCells/CellAccount.js +0 -100
  345. package/HiTable/BodyCells/CellAccountNumber.js +0 -220
  346. package/HiTable/BodyCells/CellAddress.js +0 -199
  347. package/HiTable/BodyCells/CellCountry.js +0 -172
  348. package/HiTable/BodyCells/CellDate.js +0 -177
  349. package/HiTable/BodyCells/CellIcon.js +0 -148
  350. package/HiTable/BodyCells/CellImage.js +0 -177
  351. package/HiTable/BodyCells/CellLayout.js +0 -287
  352. package/HiTable/BodyCells/CellNumeric.js +0 -135
  353. package/HiTable/BodyCells/CellRate.js +0 -197
  354. package/HiTable/BodyCells/CellSentinel.js +0 -221
  355. package/HiTable/BodyCells/CellStatus.js +0 -140
  356. package/HiTable/BodyCells/CellText.js +0 -268
  357. package/HiTable/BodyCells/CellThirdPartySecurity.js +0 -144
  358. package/HiTable/BodyCells/index.js +0 -133
  359. package/HiTable/BodyRow.js +0 -394
  360. package/HiTable/ChildRow.js +0 -432
  361. package/HiTable/ColumnFilter.js +0 -494
  362. package/HiTable/HeaderCell.js +0 -466
  363. package/HiTable/HiStickyRow.js +0 -300
  364. package/HiTable/HiTable.js +0 -1028
  365. package/HiTable/HiTableBody.js +0 -571
  366. package/HiTable/HiTableContextMenu.js +0 -214
  367. package/HiTable/HiTableFooterScroll.js +0 -202
  368. package/HiTable/HiTableHead.js +0 -506
  369. package/HiTable/OrderColumns.js +0 -561
  370. package/HiTable/constants.js +0 -105
  371. package/HiTable/index.js +0 -25
  372. package/HiTopBar/HiTopBar.js +0 -553
  373. package/HiTopBar/index.js +0 -16
  374. package/Hidden/Hidden.js +0 -130
  375. package/Hidden/HiddenCss.js +0 -175
  376. package/Hidden/HiddenJs.js +0 -149
  377. package/Hidden/index.js +0 -16
  378. package/Icon/Icon.js +0 -109
  379. package/Icon/index.js +0 -16
  380. package/IconButton/IconButton.js +0 -146
  381. package/IconButton/index.js +0 -16
  382. package/Input/Input.js +0 -682
  383. package/Input/InputAdornment.js +0 -116
  384. package/Input/InputLabel.js +0 -163
  385. package/Input/Textarea.js +0 -301
  386. package/Input/index.js +0 -34
  387. package/List/List.js +0 -167
  388. package/List/ListItem.js +0 -279
  389. package/List/ListItemAvatar.js +0 -100
  390. package/List/ListItemIcon.js +0 -77
  391. package/List/ListItemSecondaryAction.js +0 -76
  392. package/List/ListItemText.js +0 -145
  393. package/List/ListSubheader.js +0 -127
  394. package/List/index.js +0 -70
  395. package/Menu/Menu.js +0 -274
  396. package/Menu/MenuItem.js +0 -113
  397. package/Menu/MenuList.js +0 -253
  398. package/Menu/index.js +0 -34
  399. package/MobileStepper/MobileStepper.js +0 -173
  400. package/MobileStepper/index.js +0 -16
  401. package/Modal/Backdrop.js +0 -102
  402. package/Modal/Modal.js +0 -502
  403. package/Modal/ModalManager.js +0 -210
  404. package/Modal/index.js +0 -34
  405. package/Modal/isOverflowing.js +0 -43
  406. package/Modal/manageAriaHidden.js +0 -45
  407. package/Paper/Paper.js +0 -111
  408. package/Paper/index.js +0 -16
  409. package/Popover/Popover.js +0 -564
  410. package/Popover/index.js +0 -16
  411. package/Portal/LegacyPortal.js +0 -158
  412. package/Portal/Portal.js +0 -144
  413. package/Portal/index.js +0 -21
  414. package/Progress/CircularProgress.js +0 -228
  415. package/Progress/LinearProgress.js +0 -258
  416. package/Progress/index.js +0 -25
  417. package/Radio/Radio.js +0 -155
  418. package/Radio/RadioGroup.js +0 -168
  419. package/Radio/index.js +0 -25
  420. package/Reboot/Reboot.js +0 -106
  421. package/Reboot/index.js +0 -16
  422. package/Select/Select.js +0 -229
  423. package/Select/SelectInput.js +0 -502
  424. package/Select/index.js +0 -16
  425. package/Snackbar/Snackbar.js +0 -451
  426. package/Snackbar/SnackbarContent.js +0 -135
  427. package/Snackbar/index.js +0 -25
  428. package/Stepper/Step.js +0 -151
  429. package/Stepper/StepButton.js +0 -143
  430. package/Stepper/StepConnector.js +0 -118
  431. package/Stepper/StepContent.js +0 -153
  432. package/Stepper/StepIcon.js +0 -86
  433. package/Stepper/StepLabel.js +0 -200
  434. package/Stepper/StepPositionIcon.js +0 -95
  435. package/Stepper/Stepper.js +0 -161
  436. package/Stepper/index.js +0 -61
  437. package/SvgIcon/SvgIcon.js +0 -147
  438. package/SvgIcon/index.js +0 -16
  439. package/Switch/Switch.js +0 -215
  440. package/Switch/index.js +0 -16
  441. package/Table/Table.js +0 -127
  442. package/Table/TableBody.js +0 -121
  443. package/Table/TableCell.js +0 -181
  444. package/Table/TableFooter.js +0 -93
  445. package/Table/TableHead.js +0 -121
  446. package/Table/TablePagination.js +0 -310
  447. package/Table/TablePaginationActions.js +0 -183
  448. package/Table/TableRow.js +0 -127
  449. package/Table/TableSortLabel.js +0 -145
  450. package/Table/index.js +0 -79
  451. package/Tabs/Tab.js +0 -340
  452. package/Tabs/TabIndicator.js +0 -95
  453. package/Tabs/TabScrollButton.js +0 -112
  454. package/Tabs/Tabs.js +0 -530
  455. package/Tabs/index.js +0 -25
  456. package/TextField/TextField.js +0 -290
  457. package/TextField/index.js +0 -16
  458. package/Toolbar/Toolbar.js +0 -89
  459. package/Toolbar/index.js +0 -16
  460. package/Tooltip/Tooltip.js +0 -514
  461. package/Tooltip/index.js +0 -16
  462. package/Typography/Typography.js +0 -192
  463. package/Typography/index.js +0 -16
  464. package/colors/amber.js +0 -23
  465. package/colors/blue.js +0 -23
  466. package/colors/blueGrey.js +0 -23
  467. package/colors/brown.js +0 -23
  468. package/colors/common.js +0 -11
  469. package/colors/cyan.js +0 -23
  470. package/colors/deepOrange.js +0 -23
  471. package/colors/deepPurple.js +0 -23
  472. package/colors/green.js +0 -23
  473. package/colors/grey.js +0 -23
  474. package/colors/index.js +0 -187
  475. package/colors/indigo.js +0 -23
  476. package/colors/lightBlue.js +0 -23
  477. package/colors/lightGreen.js +0 -23
  478. package/colors/lime.js +0 -23
  479. package/colors/orange.js +0 -23
  480. package/colors/pink.js +0 -23
  481. package/colors/purple.js +0 -23
  482. package/colors/red.js +0 -23
  483. package/colors/teal.js +0 -23
  484. package/colors/yellow.js +0 -23
  485. package/es/AppBar/AppBar.js +0 -106
  486. package/es/AppBar/index.js +0 -1
  487. package/es/Avatar/Avatar.js +0 -136
  488. package/es/Avatar/index.js +0 -1
  489. package/es/Badge/Badge.js +0 -112
  490. package/es/Badge/index.js +0 -1
  491. package/es/BottomNavigation/BottomNavigation.js +0 -86
  492. package/es/BottomNavigation/BottomNavigationAction.js +0 -153
  493. package/es/BottomNavigation/index.js +0 -2
  494. package/es/Button/Button.js +0 -274
  495. package/es/Button/index.js +0 -1
  496. package/es/ButtonBase/ButtonBase.js +0 -358
  497. package/es/ButtonBase/Ripple.js +0 -102
  498. package/es/ButtonBase/TouchRipple.js +0 -268
  499. package/es/ButtonBase/createRippleHandler.js +0 -23
  500. package/es/ButtonBase/index.js +0 -1
  501. package/es/Card/Card.js +0 -27
  502. package/es/Card/CardActions.js +0 -58
  503. package/es/Card/CardContent.js +0 -45
  504. package/es/Card/CardHeader.js +0 -120
  505. package/es/Card/CardMedia.js +0 -76
  506. package/es/Card/index.js +0 -5
  507. package/es/Checkbox/Checkbox.js +0 -117
  508. package/es/Checkbox/index.js +0 -1
  509. package/es/Chip/Chip.js +0 -241
  510. package/es/Chip/index.js +0 -1
  511. package/es/Dialog/Dialog.js +0 -231
  512. package/es/Dialog/DialogActions.js +0 -58
  513. package/es/Dialog/DialogContent.js +0 -48
  514. package/es/Dialog/DialogContentText.js +0 -41
  515. package/es/Dialog/DialogTitle.js +0 -57
  516. package/es/Dialog/index.js +0 -6
  517. package/es/Divider/Divider.js +0 -83
  518. package/es/Divider/index.js +0 -1
  519. package/es/Drawer/Drawer.js +0 -252
  520. package/es/Drawer/index.js +0 -1
  521. package/es/ExpansionPanel/ExpansionPanel.js +0 -194
  522. package/es/ExpansionPanel/ExpansionPanelActions.js +0 -47
  523. package/es/ExpansionPanel/ExpansionPanelDetails.js +0 -42
  524. package/es/ExpansionPanel/ExpansionPanelSummary.js +0 -182
  525. package/es/ExpansionPanel/index.js +0 -4
  526. package/es/Form/FormControl.js +0 -214
  527. package/es/Form/FormControlLabel.js +0 -137
  528. package/es/Form/FormGroup.js +0 -62
  529. package/es/Form/FormHelperText.js +0 -110
  530. package/es/Form/FormLabel.js +0 -132
  531. package/es/Form/index.js +0 -5
  532. package/es/Grid/Grid.js +0 -353
  533. package/es/Grid/index.js +0 -1
  534. package/es/GridList/GridList.js +0 -97
  535. package/es/GridList/GridListTile.js +0 -153
  536. package/es/GridList/GridListTileBar.js +0 -152
  537. package/es/GridList/index.js +0 -3
  538. package/es/HiDatePicker/HiDateRangePicker.js +0 -567
  539. package/es/HiDatePicker/HiDateRangeSelector.js +0 -345
  540. package/es/HiDatePicker/HiWeekPicker.js +0 -296
  541. package/es/HiDatePicker/Navbar.js +0 -130
  542. package/es/HiDatePicker/index.js +0 -7
  543. package/es/HiDotsStepper/HiDot.js +0 -92
  544. package/es/HiDotsStepper/HiDotsStepper.js +0 -83
  545. package/es/HiDotsStepper/index.js +0 -1
  546. package/es/HiForm/HiAddressField.js +0 -142
  547. package/es/HiPdfReader/HiPdfReader.js +0 -198
  548. package/es/HiPdfReader/index.js +0 -1
  549. package/es/HiPins/HiPins.js +0 -65
  550. package/es/HiPins/index.js +0 -1
  551. package/es/HiRadio/HiRadio.js +0 -41
  552. package/es/HiRadio/index.js +0 -1
  553. package/es/HiTable/BodyCellBuilder.js +0 -344
  554. package/es/HiTable/BodyCells/CellAccount.js +0 -40
  555. package/es/HiTable/BodyCells/CellAccountNumber.js +0 -166
  556. package/es/HiTable/BodyCells/CellAddress.js +0 -129
  557. package/es/HiTable/BodyCells/CellCountry.js +0 -107
  558. package/es/HiTable/BodyCells/CellDate.js +0 -111
  559. package/es/HiTable/BodyCells/CellIcon.js +0 -83
  560. package/es/HiTable/BodyCells/CellImage.js +0 -115
  561. package/es/HiTable/BodyCells/CellLayout.js +0 -204
  562. package/es/HiTable/BodyCells/CellNumeric.js +0 -71
  563. package/es/HiTable/BodyCells/CellRate.js +0 -131
  564. package/es/HiTable/BodyCells/CellSentinel.js +0 -161
  565. package/es/HiTable/BodyCells/CellStatus.js +0 -77
  566. package/es/HiTable/BodyCells/CellText.js +0 -189
  567. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +0 -89
  568. package/es/HiTable/BodyCells/index.js +0 -16
  569. package/es/HiTable/BodyRow.js +0 -320
  570. package/es/HiTable/ChildRow.js +0 -345
  571. package/es/HiTable/ColumnFilter.js +0 -398
  572. package/es/HiTable/HeaderCell.js +0 -379
  573. package/es/HiTable/HiStickyRow.js +0 -217
  574. package/es/HiTable/HiTable.js +0 -892
  575. package/es/HiTable/HiTableBody.js +0 -477
  576. package/es/HiTable/HiTableContextMenu.js +0 -150
  577. package/es/HiTable/HiTableFooterScroll.js +0 -144
  578. package/es/HiTable/HiTableHead.js +0 -415
  579. package/es/HiTable/OrderColumns.js +0 -441
  580. package/es/HiTable/constants.js +0 -180
  581. package/es/HiTable/index.js +0 -2
  582. package/es/HiTopBar/HiTopBar.js +0 -458
  583. package/es/HiTopBar/index.js +0 -1
  584. package/es/Hidden/Hidden.js +0 -107
  585. package/es/Hidden/HiddenCss.js +0 -151
  586. package/es/Hidden/HiddenJs.js +0 -129
  587. package/es/Hidden/index.js +0 -1
  588. package/es/Icon/Icon.js +0 -74
  589. package/es/Icon/index.js +0 -1
  590. package/es/IconButton/IconButton.js +0 -106
  591. package/es/IconButton/index.js +0 -1
  592. package/es/Input/Input.js +0 -616
  593. package/es/Input/InputAdornment.js +0 -83
  594. package/es/Input/InputLabel.js +0 -138
  595. package/es/Input/Textarea.js +0 -234
  596. package/es/Input/index.js +0 -3
  597. package/es/List/List.js +0 -106
  598. package/es/List/ListItem.js +0 -212
  599. package/es/List/ListItemAvatar.js +0 -63
  600. package/es/List/ListItemIcon.js +0 -46
  601. package/es/List/ListItemSecondaryAction.js +0 -45
  602. package/es/List/ListItemText.js +0 -114
  603. package/es/List/ListSubheader.js +0 -90
  604. package/es/List/index.js +0 -7
  605. package/es/Menu/Menu.js +0 -205
  606. package/es/Menu/MenuItem.js +0 -75
  607. package/es/Menu/MenuList.js +0 -168
  608. package/es/Menu/index.js +0 -3
  609. package/es/MobileStepper/MobileStepper.js +0 -137
  610. package/es/MobileStepper/index.js +0 -1
  611. package/es/Modal/Backdrop.js +0 -67
  612. package/es/Modal/Modal.js +0 -398
  613. package/es/Modal/ModalManager.js +0 -162
  614. package/es/Modal/index.js +0 -3
  615. package/es/Modal/isOverflowing.js +0 -25
  616. package/es/Modal/manageAriaHidden.js +0 -33
  617. package/es/Paper/Paper.js +0 -81
  618. package/es/Paper/index.js +0 -1
  619. package/es/Popover/Popover.js +0 -455
  620. package/es/Popover/index.js +0 -1
  621. package/es/Portal/LegacyPortal.js +0 -97
  622. package/es/Portal/Portal.js +0 -82
  623. package/es/Portal/index.js +0 -5
  624. package/es/Progress/CircularProgress.js +0 -201
  625. package/es/Progress/LinearProgress.js +0 -235
  626. package/es/Progress/index.js +0 -2
  627. package/es/Radio/Radio.js +0 -113
  628. package/es/Radio/RadioGroup.js +0 -101
  629. package/es/Radio/index.js +0 -2
  630. package/es/Reboot/Reboot.js +0 -55
  631. package/es/Reboot/index.js +0 -1
  632. package/es/Select/Select.js +0 -199
  633. package/es/Select/SelectInput.js +0 -414
  634. package/es/Select/index.js +0 -1
  635. package/es/Snackbar/Snackbar.js +0 -370
  636. package/es/Snackbar/SnackbarContent.js +0 -96
  637. package/es/Snackbar/index.js +0 -2
  638. package/es/Stepper/Step.js +0 -120
  639. package/es/Stepper/StepButton.js +0 -111
  640. package/es/Stepper/StepConnector.js +0 -85
  641. package/es/Stepper/StepContent.js +0 -116
  642. package/es/Stepper/StepIcon.js +0 -54
  643. package/es/Stepper/StepLabel.js +0 -170
  644. package/es/Stepper/StepPositionIcon.js +0 -64
  645. package/es/Stepper/Stepper.js +0 -126
  646. package/es/Stepper/index.js +0 -6
  647. package/es/SvgIcon/SvgIcon.js +0 -117
  648. package/es/SvgIcon/index.js +0 -1
  649. package/es/Switch/Switch.js +0 -178
  650. package/es/Switch/index.js +0 -1
  651. package/es/Table/Table.js +0 -64
  652. package/es/Table/TableBody.js +0 -61
  653. package/es/Table/TableCell.js +0 -153
  654. package/es/Table/TableFooter.js +0 -44
  655. package/es/Table/TableHead.js +0 -61
  656. package/es/Table/TablePagination.js +0 -224
  657. package/es/Table/TablePaginationActions.js +0 -116
  658. package/es/Table/TableRow.js +0 -99
  659. package/es/Table/TableSortLabel.js +0 -101
  660. package/es/Table/index.js +0 -8
  661. package/es/Tabs/Tab.js +0 -271
  662. package/es/Tabs/TabIndicator.js +0 -63
  663. package/es/Tabs/TabScrollButton.js +0 -70
  664. package/es/Tabs/Tabs.js +0 -425
  665. package/es/Tabs/index.js +0 -2
  666. package/es/TextField/TextField.js +0 -259
  667. package/es/TextField/index.js +0 -1
  668. package/es/Toolbar/Toolbar.js +0 -55
  669. package/es/Toolbar/index.js +0 -1
  670. package/es/Tooltip/Tooltip.js +0 -425
  671. package/es/Tooltip/index.js +0 -1
  672. package/es/Typography/Typography.js +0 -164
  673. package/es/Typography/index.js +0 -1
  674. package/es/colors/amber.js +0 -18
  675. package/es/colors/blue.js +0 -18
  676. package/es/colors/blueGrey.js +0 -18
  677. package/es/colors/brown.js +0 -18
  678. package/es/colors/common.js +0 -6
  679. package/es/colors/cyan.js +0 -18
  680. package/es/colors/deepOrange.js +0 -18
  681. package/es/colors/deepPurple.js +0 -18
  682. package/es/colors/green.js +0 -18
  683. package/es/colors/grey.js +0 -18
  684. package/es/colors/index.js +0 -20
  685. package/es/colors/indigo.js +0 -18
  686. package/es/colors/lightBlue.js +0 -18
  687. package/es/colors/lightGreen.js +0 -18
  688. package/es/colors/lime.js +0 -18
  689. package/es/colors/orange.js +0 -18
  690. package/es/colors/pink.js +0 -18
  691. package/es/colors/purple.js +0 -18
  692. package/es/colors/red.js +0 -18
  693. package/es/colors/teal.js +0 -18
  694. package/es/colors/yellow.js +0 -18
  695. package/es/internal/RefHolder.js +0 -20
  696. package/es/internal/SwitchBase.js +0 -219
  697. package/es/internal/svg-icons/ArrowDownward.js +0 -20
  698. package/es/internal/svg-icons/ArrowDropDown.js +0 -20
  699. package/es/internal/svg-icons/Cancel.js +0 -19
  700. package/es/internal/svg-icons/CheckBox.js +0 -19
  701. package/es/internal/svg-icons/CheckBoxOutlineBlank.js +0 -19
  702. package/es/internal/svg-icons/CheckCircle.js +0 -19
  703. package/es/internal/svg-icons/IndeterminateCheckBox.js +0 -19
  704. package/es/internal/svg-icons/KeyboardArrowLeft.js +0 -19
  705. package/es/internal/svg-icons/KeyboardArrowRight.js +0 -19
  706. package/es/internal/svg-icons/RadioButtonChecked.js +0 -19
  707. package/es/internal/svg-icons/RadioButtonUnchecked.js +0 -19
  708. package/es/styles/createHiMuiTheme.js +0 -307
  709. package/es/svg-icons/ArrowDownward.js +0 -20
  710. package/es/svg-icons/ArrowDropDown.js +0 -20
  711. package/es/svg-icons/Cancel.js +0 -19
  712. package/es/svg-icons/CheckBox.js +0 -19
  713. package/es/svg-icons/CheckBoxOutlineBlank.js +0 -19
  714. package/es/svg-icons/CheckCircle.js +0 -19
  715. package/es/svg-icons/HiAccount.js +0 -33
  716. package/es/svg-icons/HiAll.js +0 -43
  717. package/es/svg-icons/HiBilling.js +0 -33
  718. package/es/svg-icons/HiCatalog.js +0 -33
  719. package/es/svg-icons/HiCustomer.js +0 -39
  720. package/es/svg-icons/HiFinance.js +0 -33
  721. package/es/svg-icons/HiRoute.js +0 -33
  722. package/es/svg-icons/HiSettlement.js +0 -36
  723. package/es/svg-icons/HiSizeLarge.js +0 -19
  724. package/es/svg-icons/HiSizeMedium.js +0 -19
  725. package/es/svg-icons/HiSizeSmall.js +0 -19
  726. package/es/svg-icons/HiTransaction.js +0 -33
  727. package/es/svg-icons/HiUser.js +0 -39
  728. package/es/svg-icons/HiWidget.js +0 -43
  729. package/es/svg-icons/IndeterminateCheckBox.js +0 -19
  730. package/es/svg-icons/KeyboardArrowLeft.js +0 -19
  731. package/es/svg-icons/KeyboardArrowRight.js +0 -19
  732. package/es/svg-icons/RadioButtonChecked.js +0 -19
  733. package/es/svg-icons/RadioButtonUnchecked.js +0 -19
  734. package/es/transitions/Collapse.js +0 -245
  735. package/es/transitions/Fade.js +0 -132
  736. package/es/transitions/Grow.js +0 -173
  737. package/es/transitions/Slide.js +0 -291
  738. package/es/transitions/Zoom.js +0 -129
  739. package/es/transitions/index.js +0 -5
  740. package/es/utils/ClickAwayListener.js +0 -65
  741. package/es/utils/HiIconBuilder.js +0 -107
  742. package/es/utils/addEventListener.js +0 -11
  743. package/es/utils/hiGetMdiIcon.js +0 -12
  744. package/es/utils/hiHelpers.js +0 -173
  745. package/es/utils/keyboardFocus.js +0 -51
  746. package/es/utils/manageAriaHidden.js +0 -33
  747. package/es/utils/withWidth.js +0 -141
  748. package/hmu/images/countries/ad.svg +0 -151
  749. package/hmu/images/countries/ae.svg +0 -6
  750. package/hmu/images/countries/af.svg +0 -83
  751. package/hmu/images/countries/ag.svg +0 -15
  752. package/hmu/images/countries/ai.svg +0 -767
  753. package/hmu/images/countries/al.svg +0 -5
  754. package/hmu/images/countries/am.svg +0 -5
  755. package/hmu/images/countries/ao.svg +0 -13
  756. package/hmu/images/countries/aq.svg +0 -6
  757. package/hmu/images/countries/ar.svg +0 -32
  758. package/hmu/images/countries/as.svg +0 -33
  759. package/hmu/images/countries/at.svg +0 -6
  760. package/hmu/images/countries/au.svg +0 -9
  761. package/hmu/images/countries/aw.svg +0 -186
  762. package/hmu/images/countries/ax.svg +0 -18
  763. package/hmu/images/countries/az.svg +0 -8
  764. package/hmu/images/countries/ba.svg +0 -12
  765. package/hmu/images/countries/bb.svg +0 -6
  766. package/hmu/images/countries/bd.svg +0 -4
  767. package/hmu/images/countries/be.svg +0 -7
  768. package/hmu/images/countries/bf.svg +0 -7
  769. package/hmu/images/countries/bg.svg +0 -7
  770. package/hmu/images/countries/bh.svg +0 -11
  771. package/hmu/images/countries/bi.svg +0 -15
  772. package/hmu/images/countries/bj.svg +0 -14
  773. package/hmu/images/countries/bl.svg +0 -7
  774. package/hmu/images/countries/bm.svg +0 -99
  775. package/hmu/images/countries/bn.svg +0 -36
  776. package/hmu/images/countries/bo.svg +0 -686
  777. package/hmu/images/countries/bq.svg +0 -5
  778. package/hmu/images/countries/br.svg +0 -45
  779. package/hmu/images/countries/bs.svg +0 -13
  780. package/hmu/images/countries/bt.svg +0 -89
  781. package/hmu/images/countries/bv.svg +0 -13
  782. package/hmu/images/countries/bw.svg +0 -7
  783. package/hmu/images/countries/by.svg +0 -61
  784. package/hmu/images/countries/bz.svg +0 -146
  785. package/hmu/images/countries/ca.svg +0 -4
  786. package/hmu/images/countries/cc.svg +0 -19
  787. package/hmu/images/countries/cd.svg +0 -5
  788. package/hmu/images/countries/cf.svg +0 -15
  789. package/hmu/images/countries/cg.svg +0 -12
  790. package/hmu/images/countries/ch.svg +0 -9
  791. package/hmu/images/countries/ci.svg +0 -7
  792. package/hmu/images/countries/ck.svg +0 -9
  793. package/hmu/images/countries/cl.svg +0 -13
  794. package/hmu/images/countries/cm.svg +0 -15
  795. package/hmu/images/countries/cn.svg +0 -11
  796. package/hmu/images/countries/co.svg +0 -7
  797. package/hmu/images/countries/cr.svg +0 -7
  798. package/hmu/images/countries/cu.svg +0 -13
  799. package/hmu/images/countries/cv.svg +0 -13
  800. package/hmu/images/countries/cw.svg +0 -14
  801. package/hmu/images/countries/cx.svg +0 -15
  802. package/hmu/images/countries/cy.svg +0 -6
  803. package/hmu/images/countries/cz.svg +0 -12
  804. package/hmu/images/countries/de.svg +0 -5
  805. package/hmu/images/countries/dj.svg +0 -13
  806. package/hmu/images/countries/dk.svg +0 -5
  807. package/hmu/images/countries/dm.svg +0 -152
  808. package/hmu/images/countries/do.svg +0 -6745
  809. package/hmu/images/countries/dz.svg +0 -5
  810. package/hmu/images/countries/ec.svg +0 -141
  811. package/hmu/images/countries/ee.svg +0 -7
  812. package/hmu/images/countries/eg.svg +0 -38
  813. package/hmu/images/countries/eh.svg +0 -15
  814. package/hmu/images/countries/er.svg +0 -8
  815. package/hmu/images/countries/es-ct.svg +0 -4
  816. package/hmu/images/countries/es.svg +0 -581
  817. package/hmu/images/countries/et.svg +0 -14
  818. package/hmu/images/countries/eu.svg +0 -28
  819. package/hmu/images/countries/fi.svg +0 -5
  820. package/hmu/images/countries/fj.svg +0 -124
  821. package/hmu/images/countries/fk.svg +0 -90
  822. package/hmu/images/countries/fm.svg +0 -11
  823. package/hmu/images/countries/fo.svg +0 -12
  824. package/hmu/images/countries/fr.svg +0 -7
  825. package/hmu/images/countries/ga.svg +0 -7
  826. package/hmu/images/countries/gb-eng.svg +0 -5
  827. package/hmu/images/countries/gb-nir.svg +0 -137
  828. package/hmu/images/countries/gb-sct.svg +0 -4
  829. package/hmu/images/countries/gb-wls.svg +0 -9
  830. package/hmu/images/countries/gb.svg +0 -15
  831. package/hmu/images/countries/gd.svg +0 -27
  832. package/hmu/images/countries/ge.svg +0 -6
  833. package/hmu/images/countries/gf.svg +0 -5
  834. package/hmu/images/countries/gg.svg +0 -9
  835. package/hmu/images/countries/gh.svg +0 -6
  836. package/hmu/images/countries/gi.svg +0 -33
  837. package/hmu/images/countries/gl.svg +0 -4
  838. package/hmu/images/countries/gm.svg +0 -14
  839. package/hmu/images/countries/gn.svg +0 -7
  840. package/hmu/images/countries/gp.svg +0 -7
  841. package/hmu/images/countries/gq.svg +0 -23
  842. package/hmu/images/countries/gr.svg +0 -22
  843. package/hmu/images/countries/gs.svg +0 -205
  844. package/hmu/images/countries/gt.svg +0 -204
  845. package/hmu/images/countries/gu.svg +0 -39
  846. package/hmu/images/countries/gw.svg +0 -13
  847. package/hmu/images/countries/gy.svg +0 -9
  848. package/hmu/images/countries/hk.svg +0 -32
  849. package/hmu/images/countries/hm.svg +0 -9
  850. package/hmu/images/countries/hn.svg +0 -18
  851. package/hmu/images/countries/hr.svg +0 -59
  852. package/hmu/images/countries/ht.svg +0 -122
  853. package/hmu/images/countries/hu.svg +0 -7
  854. package/hmu/images/countries/id.svg +0 -6
  855. package/hmu/images/countries/ie.svg +0 -7
  856. package/hmu/images/countries/il.svg +0 -14
  857. package/hmu/images/countries/im.svg +0 -36
  858. package/hmu/images/countries/in.svg +0 -25
  859. package/hmu/images/countries/io.svg +0 -148
  860. package/hmu/images/countries/iq.svg +0 -10
  861. package/hmu/images/countries/ir.svg +0 -219
  862. package/hmu/images/countries/is.svg +0 -12
  863. package/hmu/images/countries/it.svg +0 -7
  864. package/hmu/images/countries/je.svg +0 -32
  865. package/hmu/images/countries/jm.svg +0 -8
  866. package/hmu/images/countries/jo.svg +0 -16
  867. package/hmu/images/countries/jp.svg +0 -11
  868. package/hmu/images/countries/ke.svg +0 -23
  869. package/hmu/images/countries/kg.svg +0 -15
  870. package/hmu/images/countries/kh.svg +0 -69
  871. package/hmu/images/countries/ki.svg +0 -36
  872. package/hmu/images/countries/km.svg +0 -16
  873. package/hmu/images/countries/kn.svg +0 -14
  874. package/hmu/images/countries/kp.svg +0 -15
  875. package/hmu/images/countries/kr.svg +0 -24
  876. package/hmu/images/countries/kw.svg +0 -13
  877. package/hmu/images/countries/ky.svg +0 -63
  878. package/hmu/images/countries/kz.svg +0 -23
  879. package/hmu/images/countries/la.svg +0 -12
  880. package/hmu/images/countries/lb.svg +0 -15
  881. package/hmu/images/countries/lc.svg +0 -8
  882. package/hmu/images/countries/li.svg +0 -43
  883. package/hmu/images/countries/lk.svg +0 -22
  884. package/hmu/images/countries/lr.svg +0 -14
  885. package/hmu/images/countries/ls.svg +0 -8
  886. package/hmu/images/countries/lt.svg +0 -7
  887. package/hmu/images/countries/lu.svg +0 -5
  888. package/hmu/images/countries/lv.svg +0 -6
  889. package/hmu/images/countries/ly.svg +0 -13
  890. package/hmu/images/countries/ma.svg +0 -4
  891. package/hmu/images/countries/mc.svg +0 -6
  892. package/hmu/images/countries/md.svg +0 -72
  893. package/hmu/images/countries/me.svg +0 -118
  894. package/hmu/images/countries/mf.svg +0 -7
  895. package/hmu/images/countries/mg.svg +0 -7
  896. package/hmu/images/countries/mh.svg +0 -7
  897. package/hmu/images/countries/mk.svg +0 -5
  898. package/hmu/images/countries/ml.svg +0 -7
  899. package/hmu/images/countries/mm.svg +0 -16
  900. package/hmu/images/countries/mn.svg +0 -13
  901. package/hmu/images/countries/mo.svg +0 -9
  902. package/hmu/images/countries/mp.svg +0 -86
  903. package/hmu/images/countries/mq.svg +0 -7
  904. package/hmu/images/countries/mr.svg +0 -6
  905. package/hmu/images/countries/ms.svg +0 -39
  906. package/hmu/images/countries/mt.svg +0 -49
  907. package/hmu/images/countries/mu.svg +0 -8
  908. package/hmu/images/countries/mv.svg +0 -6
  909. package/hmu/images/countries/mw.svg +0 -10
  910. package/hmu/images/countries/mx.svg +0 -385
  911. package/hmu/images/countries/my.svg +0 -15
  912. package/hmu/images/countries/mz.svg +0 -21
  913. package/hmu/images/countries/na.svg +0 -16
  914. package/hmu/images/countries/nc.svg +0 -7
  915. package/hmu/images/countries/ne.svg +0 -6
  916. package/hmu/images/countries/nf.svg +0 -9
  917. package/hmu/images/countries/ng.svg +0 -6
  918. package/hmu/images/countries/ni.svg +0 -131
  919. package/hmu/images/countries/nl.svg +0 -7
  920. package/hmu/images/countries/no.svg +0 -7
  921. package/hmu/images/countries/np.svg +0 -14
  922. package/hmu/images/countries/nr.svg +0 -12
  923. package/hmu/images/countries/nu.svg +0 -26
  924. package/hmu/images/countries/nz.svg +0 -41
  925. package/hmu/images/countries/om.svg +0 -116
  926. package/hmu/images/countries/pa.svg +0 -14
  927. package/hmu/images/countries/pe.svg +0 -279
  928. package/hmu/images/countries/pf.svg +0 -19
  929. package/hmu/images/countries/pg.svg +0 -9
  930. package/hmu/images/countries/ph.svg +0 -28
  931. package/hmu/images/countries/pk.svg +0 -15
  932. package/hmu/images/countries/pl.svg +0 -6
  933. package/hmu/images/countries/pm.svg +0 -7
  934. package/hmu/images/countries/pn.svg +0 -62
  935. package/hmu/images/countries/pr.svg +0 -13
  936. package/hmu/images/countries/ps.svg +0 -15
  937. package/hmu/images/countries/pt.svg +0 -57
  938. package/hmu/images/countries/pw.svg +0 -11
  939. package/hmu/images/countries/py.svg +0 -157
  940. package/hmu/images/countries/qa.svg +0 -4
  941. package/hmu/images/countries/re.svg +0 -7
  942. package/hmu/images/countries/ro.svg +0 -7
  943. package/hmu/images/countries/rs.svg +0 -292
  944. package/hmu/images/countries/ru.svg +0 -7
  945. package/hmu/images/countries/rw.svg +0 -13
  946. package/hmu/images/countries/sa.svg +0 -26
  947. package/hmu/images/countries/sb.svg +0 -13
  948. package/hmu/images/countries/sc.svg +0 -14
  949. package/hmu/images/countries/sd.svg +0 -13
  950. package/hmu/images/countries/se.svg +0 -16
  951. package/hmu/images/countries/sg.svg +0 -13
  952. package/hmu/images/countries/sh.svg +0 -74
  953. package/hmu/images/countries/si.svg +0 -18
  954. package/hmu/images/countries/sj.svg +0 -7
  955. package/hmu/images/countries/sk.svg +0 -9
  956. package/hmu/images/countries/sl.svg +0 -7
  957. package/hmu/images/countries/sm.svg +0 -91
  958. package/hmu/images/countries/sn.svg +0 -8
  959. package/hmu/images/countries/so.svg +0 -11
  960. package/hmu/images/countries/sr.svg +0 -6
  961. package/hmu/images/countries/ss.svg +0 -8
  962. package/hmu/images/countries/st.svg +0 -16
  963. package/hmu/images/countries/sv.svg +0 -618
  964. package/hmu/images/countries/sx.svg +0 -56
  965. package/hmu/images/countries/sy.svg +0 -6
  966. package/hmu/images/countries/sz.svg +0 -45
  967. package/hmu/images/countries/tc.svg +0 -67
  968. package/hmu/images/countries/td.svg +0 -7
  969. package/hmu/images/countries/tf.svg +0 -15
  970. package/hmu/images/countries/tg.svg +0 -14
  971. package/hmu/images/countries/th.svg +0 -7
  972. package/hmu/images/countries/tj.svg +0 -22
  973. package/hmu/images/countries/tk.svg +0 -5
  974. package/hmu/images/countries/tl.svg +0 -13
  975. package/hmu/images/countries/tm.svg +0 -213
  976. package/hmu/images/countries/tn.svg +0 -13
  977. package/hmu/images/countries/to.svg +0 -10
  978. package/hmu/images/countries/tr.svg +0 -8
  979. package/hmu/images/countries/tt.svg +0 -5
  980. package/hmu/images/countries/tv.svg +0 -27
  981. package/hmu/images/countries/tw.svg +0 -14
  982. package/hmu/images/countries/tz.svg +0 -13
  983. package/hmu/images/countries/ua.svg +0 -6
  984. package/hmu/images/countries/ug.svg +0 -30
  985. package/hmu/images/countries/um.svg +0 -23
  986. package/hmu/images/countries/un.svg +0 -16
  987. package/hmu/images/countries/us.svg +0 -12
  988. package/hmu/images/countries/uy.svg +0 -28
  989. package/hmu/images/countries/uz.svg +0 -30
  990. package/hmu/images/countries/va.svg +0 -483
  991. package/hmu/images/countries/vc.svg +0 -8
  992. package/hmu/images/countries/ve.svg +0 -26
  993. package/hmu/images/countries/vg.svg +0 -133
  994. package/hmu/images/countries/vi.svg +0 -31
  995. package/hmu/images/countries/vn.svg +0 -11
  996. package/hmu/images/countries/vu.svg +0 -18
  997. package/hmu/images/countries/wf.svg +0 -7
  998. package/hmu/images/countries/ws.svg +0 -7
  999. package/hmu/images/countries/ye.svg +0 -7
  1000. package/hmu/images/countries/yt.svg +0 -7
  1001. package/hmu/images/countries/za.svg +0 -17
  1002. package/hmu/images/countries/zm.svg +0 -27
  1003. package/hmu/images/countries/zw.svg +0 -21
  1004. package/hmu/images/hipay-white-logo.svg +0 -42
  1005. package/hmu/images/logo_visa_75wx45h.gif +0 -0
  1006. package/internal/RefHolder.js +0 -64
  1007. package/internal/SwitchBase.js +0 -287
  1008. package/internal/svg-icons/ArrowDownward.js +0 -37
  1009. package/internal/svg-icons/ArrowDropDown.js +0 -37
  1010. package/internal/svg-icons/Cancel.js +0 -36
  1011. package/internal/svg-icons/CheckBox.js +0 -36
  1012. package/internal/svg-icons/CheckBoxOutlineBlank.js +0 -36
  1013. package/internal/svg-icons/CheckCircle.js +0 -36
  1014. package/internal/svg-icons/IndeterminateCheckBox.js +0 -36
  1015. package/internal/svg-icons/KeyboardArrowLeft.js +0 -36
  1016. package/internal/svg-icons/KeyboardArrowRight.js +0 -36
  1017. package/internal/svg-icons/RadioButtonChecked.js +0 -36
  1018. package/internal/svg-icons/RadioButtonUnchecked.js +0 -36
  1019. package/styles/createHiMuiTheme.js +0 -339
  1020. package/svg-icons/ArrowDownward.js +0 -37
  1021. package/svg-icons/ArrowDropDown.js +0 -37
  1022. package/svg-icons/Cancel.js +0 -36
  1023. package/svg-icons/CheckBox.js +0 -36
  1024. package/svg-icons/CheckBoxOutlineBlank.js +0 -36
  1025. package/svg-icons/CheckCircle.js +0 -36
  1026. package/svg-icons/HiAccount.js +0 -52
  1027. package/svg-icons/HiAll.js +0 -62
  1028. package/svg-icons/HiBilling.js +0 -52
  1029. package/svg-icons/HiCatalog.js +0 -52
  1030. package/svg-icons/HiCustomer.js +0 -58
  1031. package/svg-icons/HiFinance.js +0 -52
  1032. package/svg-icons/HiRoute.js +0 -52
  1033. package/svg-icons/HiSettlement.js +0 -52
  1034. package/svg-icons/HiSizeLarge.js +0 -36
  1035. package/svg-icons/HiSizeMedium.js +0 -36
  1036. package/svg-icons/HiSizeSmall.js +0 -36
  1037. package/svg-icons/HiTransaction.js +0 -52
  1038. package/svg-icons/HiUser.js +0 -58
  1039. package/svg-icons/HiWidget.js +0 -62
  1040. package/svg-icons/IndeterminateCheckBox.js +0 -36
  1041. package/svg-icons/KeyboardArrowLeft.js +0 -36
  1042. package/svg-icons/KeyboardArrowRight.js +0 -36
  1043. package/svg-icons/RadioButtonChecked.js +0 -36
  1044. package/svg-icons/RadioButtonUnchecked.js +0 -36
  1045. package/svg-icons/index.js +0 -106
  1046. package/transitions/Collapse.js +0 -324
  1047. package/transitions/Fade.js +0 -207
  1048. package/transitions/Grow.js +0 -251
  1049. package/transitions/Slide.js +0 -381
  1050. package/transitions/Zoom.js +0 -204
  1051. package/transitions/index.js +0 -52
  1052. package/utils/ClickAwayListener.js +0 -122
  1053. package/utils/HiIconBuilder.js +0 -178
  1054. package/utils/addEventListener.js +0 -26
  1055. package/utils/hiGetMdiIcon.js +0 -20
  1056. package/utils/hiHelpers.js +0 -195
  1057. package/utils/keyboardFocus.js +0 -75
  1058. package/utils/manageAriaHidden.js +0 -49
  1059. 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);