@hipay/hipay-material-ui 1.0.0-beta.18 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/HiCheckbox/HiCheckbox.js +1 -4
  2. package/HiChip/HiChip.js +4 -4
  3. package/HiChip/HiChipSwitch.js +4 -11
  4. package/HiColoredLabel/HiColoredLabel.js +3 -9
  5. package/HiDatePicker/HiDatePicker.js +30 -34
  6. package/HiDatePicker/HiDateRangePicker.js +33 -76
  7. package/HiDatePicker/HiDateRangeSelector.js +13 -33
  8. package/HiDatePicker/ListPicker.js +7 -32
  9. package/HiDatePicker/Overlays/CustomOverlayLayout.js +1 -3
  10. package/HiDatePicker/Overlays/MonthPickerOverlay.js +1 -5
  11. package/HiDatePicker/Overlays/Overlay.js +4 -22
  12. package/HiDatePicker/Overlays/YearPickerOverlay.js +1 -2
  13. package/HiDatePicker/stylesheet.js +0 -7
  14. package/HiForm/HiFormControl.js +31 -39
  15. package/HiForm/HiInput.js +18 -39
  16. package/HiForm/HiSearchField.js +2 -2
  17. package/HiForm/index.js +0 -18
  18. package/HiPins/HiPins.js +1 -0
  19. package/HiSelect/HiSelect.js +353 -400
  20. package/HiSelect/HiSelectField.js +6 -8
  21. package/HiSelect/HiSuggestSelect.js +47 -27
  22. package/HiSelect/HiSuggestSelectField.js +80 -88
  23. package/HiSelect/SelectInput.js +23 -34
  24. package/HiSelectableList/HiSelectableList.js +3 -9
  25. package/HiSelectableList/HiSelectableListItem.js +55 -96
  26. package/HiSwitch/HiSwitchState.js +1 -1
  27. package/HiSwitch/index.js +0 -6
  28. package/HiTable/BodyCellBuilder.js +97 -97
  29. package/HiTable/BodyCells/CellCountry.js +36 -11
  30. package/HiTable/BodyCells/CellIcon.js +20 -29
  31. package/HiTable/BodyCells/CellImage.js +22 -43
  32. package/HiTable/BodyCells/CellLayout.js +19 -25
  33. package/HiTable/BodyCells/CellNumeric.js +2 -7
  34. package/HiTable/BodyCells/CellSentinel.js +17 -26
  35. package/HiTable/BodyCells/CellStatus.js +2 -6
  36. package/HiTable/BodyCells/CellText.js +1 -2
  37. package/HiTable/BodyCells/CellThirdPartySecurity.js +22 -45
  38. package/HiTable/BodyRow.js +57 -78
  39. package/HiTable/ColumnFilter.js +15 -28
  40. package/HiTable/HeaderCell.js +16 -20
  41. package/HiTable/HiTable.js +11 -61
  42. package/HiTable/HiTableBody.js +14 -46
  43. package/HiTable/HiTableContextMenu.js +3 -7
  44. package/HiTable/HiTableFooterScroll.js +1 -1
  45. package/HiTable/HiTableHead.js +7 -24
  46. package/HiTable/OrderColumns.js +2 -6
  47. package/HiTopBar/HiTopBar.js +117 -37
  48. package/es/HiCheckbox/HiCheckbox.js +1 -4
  49. package/es/HiChip/HiChip.js +4 -4
  50. package/es/HiChip/HiChipSwitch.js +4 -11
  51. package/es/HiColoredLabel/HiColoredLabel.js +4 -9
  52. package/es/HiDatePicker/HiDatePicker.js +25 -30
  53. package/es/HiDatePicker/HiDateRangePicker.js +32 -72
  54. package/es/HiDatePicker/HiDateRangeSelector.js +14 -34
  55. package/es/HiDatePicker/ListPicker.js +20 -39
  56. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +1 -3
  57. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +1 -5
  58. package/es/HiDatePicker/Overlays/Overlay.js +4 -18
  59. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +1 -2
  60. package/es/HiDatePicker/stylesheet.js +0 -7
  61. package/es/HiForm/HiFormControl.js +18 -32
  62. package/es/HiForm/HiInput.js +17 -34
  63. package/es/HiForm/HiSearchField.js +2 -2
  64. package/es/HiForm/index.js +1 -3
  65. package/es/HiPins/HiPins.js +1 -0
  66. package/es/HiSelect/HiSelect.js +324 -375
  67. package/es/HiSelect/HiSelectField.js +7 -9
  68. package/es/HiSelect/HiSuggestSelect.js +39 -26
  69. package/es/HiSelect/HiSuggestSelectField.js +69 -77
  70. package/es/HiSelect/SelectInput.js +23 -44
  71. package/es/HiSelectableList/HiSelectableList.js +4 -10
  72. package/es/HiSelectableList/HiSelectableListItem.js +55 -91
  73. package/es/HiSwitch/HiSwitchState.js +1 -1
  74. package/es/HiSwitch/index.js +0 -1
  75. package/es/HiTable/BodyCellBuilder.js +98 -96
  76. package/es/HiTable/BodyCells/CellCountry.js +35 -10
  77. package/es/HiTable/BodyCells/CellIcon.js +9 -18
  78. package/es/HiTable/BodyCells/CellImage.js +23 -42
  79. package/es/HiTable/BodyCells/CellLayout.js +21 -27
  80. package/es/HiTable/BodyCells/CellNumeric.js +2 -6
  81. package/es/HiTable/BodyCells/CellSentinel.js +9 -20
  82. package/es/HiTable/BodyCells/CellStatus.js +2 -6
  83. package/es/HiTable/BodyCells/CellText.js +1 -2
  84. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +18 -42
  85. package/es/HiTable/BodyRow.js +56 -79
  86. package/es/HiTable/ColumnFilter.js +9 -15
  87. package/es/HiTable/HeaderCell.js +16 -20
  88. package/es/HiTable/HiTable.js +12 -59
  89. package/es/HiTable/HiTableBody.js +11 -42
  90. package/es/HiTable/HiTableContextMenu.js +3 -7
  91. package/es/HiTable/HiTableFooterScroll.js +1 -1
  92. package/es/HiTable/HiTableHead.js +7 -19
  93. package/es/HiTable/OrderColumns.js +2 -6
  94. package/es/HiTopBar/HiTopBar.js +108 -40
  95. package/es/styles/createHiMuiTheme.js +0 -11
  96. package/es/utils/hiHelpers.js +5 -6
  97. package/index.es.js +1 -1
  98. package/index.js +1 -1
  99. package/package.json +44 -45
  100. package/styles/createHiMuiTheme.js +0 -11
  101. package/umd/hipay-material-ui.development.js +43603 -87235
  102. package/umd/hipay-material-ui.production.min.js +5 -5
  103. package/utils/hiHelpers.js +4 -6
  104. package/HI-CHANGELOG.md +0 -58
  105. package/HiAlertModal/HiAlertModal.js +0 -247
  106. package/HiAlertModal/index.js +0 -16
  107. package/HiBreadcrumb/HiBreadcrumb.js +0 -149
  108. package/HiBreadcrumb/HiStep.js +0 -159
  109. package/HiBreadcrumb/HiStepConnector.js +0 -207
  110. package/HiBreadcrumb/HiStepContent.js +0 -122
  111. package/HiBreadcrumb/HiStepIcon.js +0 -191
  112. package/HiBreadcrumb/HiStepLabel.js +0 -248
  113. package/HiBreadcrumb/HiStepper.js +0 -106
  114. package/HiBreadcrumb/index.js +0 -16
  115. package/HiDotsStepper/HiDot.js +0 -151
  116. package/HiDotsStepper/HiDotsStepper.js +0 -146
  117. package/HiDotsStepper/index.js +0 -16
  118. package/HiExpansionPanel/HiExpansionPanel.js +0 -231
  119. package/HiExpansionPanel/index.js +0 -16
  120. package/HiForm/HiAddressField.js +0 -204
  121. package/HiForm/HiSlider.js +0 -399
  122. package/HiPdfReader/HiPdfReader.js +0 -282
  123. package/HiPdfReader/index.js +0 -16
  124. package/HiTable/HiTableFooter.js +0 -131
  125. package/es/HiAlertModal/HiAlertModal.js +0 -189
  126. package/es/HiAlertModal/index.js +0 -1
  127. package/es/HiBreadcrumb/HiBreadcrumb.js +0 -81
  128. package/es/HiBreadcrumb/HiStep.js +0 -94
  129. package/es/HiBreadcrumb/HiStepConnector.js +0 -143
  130. package/es/HiBreadcrumb/HiStepContent.js +0 -63
  131. package/es/HiBreadcrumb/HiStepIcon.js +0 -149
  132. package/es/HiBreadcrumb/HiStepLabel.js +0 -197
  133. package/es/HiBreadcrumb/HiStepper.js +0 -46
  134. package/es/HiBreadcrumb/index.js +0 -1
  135. package/es/HiDotsStepper/HiDot.js +0 -92
  136. package/es/HiDotsStepper/HiDotsStepper.js +0 -83
  137. package/es/HiDotsStepper/index.js +0 -1
  138. package/es/HiExpansionPanel/HiExpansionPanel.js +0 -170
  139. package/es/HiExpansionPanel/index.js +0 -1
  140. package/es/HiForm/HiAddressField.js +0 -142
  141. package/es/HiForm/HiSlider.js +0 -309
  142. package/es/HiPdfReader/HiPdfReader.js +0 -198
  143. package/es/HiPdfReader/index.js +0 -1
  144. package/es/HiTable/HiTableFooter.js +0 -74
  145. package/hmu/images/countries/ad.svg +0 -151
  146. package/hmu/images/countries/ae.svg +0 -6
  147. package/hmu/images/countries/af.svg +0 -83
  148. package/hmu/images/countries/ag.svg +0 -15
  149. package/hmu/images/countries/ai.svg +0 -767
  150. package/hmu/images/countries/al.svg +0 -5
  151. package/hmu/images/countries/am.svg +0 -5
  152. package/hmu/images/countries/ao.svg +0 -13
  153. package/hmu/images/countries/aq.svg +0 -6
  154. package/hmu/images/countries/ar.svg +0 -32
  155. package/hmu/images/countries/as.svg +0 -33
  156. package/hmu/images/countries/at.svg +0 -6
  157. package/hmu/images/countries/au.svg +0 -9
  158. package/hmu/images/countries/aw.svg +0 -186
  159. package/hmu/images/countries/ax.svg +0 -18
  160. package/hmu/images/countries/az.svg +0 -8
  161. package/hmu/images/countries/ba.svg +0 -12
  162. package/hmu/images/countries/bb.svg +0 -6
  163. package/hmu/images/countries/bd.svg +0 -4
  164. package/hmu/images/countries/be.svg +0 -7
  165. package/hmu/images/countries/bf.svg +0 -7
  166. package/hmu/images/countries/bg.svg +0 -7
  167. package/hmu/images/countries/bh.svg +0 -11
  168. package/hmu/images/countries/bi.svg +0 -15
  169. package/hmu/images/countries/bj.svg +0 -14
  170. package/hmu/images/countries/bl.svg +0 -7
  171. package/hmu/images/countries/bm.svg +0 -99
  172. package/hmu/images/countries/bn.svg +0 -36
  173. package/hmu/images/countries/bo.svg +0 -686
  174. package/hmu/images/countries/bq.svg +0 -5
  175. package/hmu/images/countries/br.svg +0 -45
  176. package/hmu/images/countries/bs.svg +0 -13
  177. package/hmu/images/countries/bt.svg +0 -89
  178. package/hmu/images/countries/bv.svg +0 -13
  179. package/hmu/images/countries/bw.svg +0 -7
  180. package/hmu/images/countries/by.svg +0 -61
  181. package/hmu/images/countries/bz.svg +0 -146
  182. package/hmu/images/countries/ca.svg +0 -4
  183. package/hmu/images/countries/cc.svg +0 -19
  184. package/hmu/images/countries/cd.svg +0 -5
  185. package/hmu/images/countries/cf.svg +0 -15
  186. package/hmu/images/countries/cg.svg +0 -12
  187. package/hmu/images/countries/ch.svg +0 -9
  188. package/hmu/images/countries/ci.svg +0 -7
  189. package/hmu/images/countries/ck.svg +0 -9
  190. package/hmu/images/countries/cl.svg +0 -13
  191. package/hmu/images/countries/cm.svg +0 -15
  192. package/hmu/images/countries/cn.svg +0 -11
  193. package/hmu/images/countries/co.svg +0 -7
  194. package/hmu/images/countries/cr.svg +0 -7
  195. package/hmu/images/countries/cu.svg +0 -13
  196. package/hmu/images/countries/cv.svg +0 -13
  197. package/hmu/images/countries/cw.svg +0 -14
  198. package/hmu/images/countries/cx.svg +0 -15
  199. package/hmu/images/countries/cy.svg +0 -6
  200. package/hmu/images/countries/cz.svg +0 -12
  201. package/hmu/images/countries/de.svg +0 -5
  202. package/hmu/images/countries/dj.svg +0 -13
  203. package/hmu/images/countries/dk.svg +0 -5
  204. package/hmu/images/countries/dm.svg +0 -152
  205. package/hmu/images/countries/do.svg +0 -6745
  206. package/hmu/images/countries/dz.svg +0 -5
  207. package/hmu/images/countries/ec.svg +0 -141
  208. package/hmu/images/countries/ee.svg +0 -7
  209. package/hmu/images/countries/eg.svg +0 -38
  210. package/hmu/images/countries/eh.svg +0 -15
  211. package/hmu/images/countries/er.svg +0 -8
  212. package/hmu/images/countries/es-ct.svg +0 -4
  213. package/hmu/images/countries/es.svg +0 -581
  214. package/hmu/images/countries/et.svg +0 -14
  215. package/hmu/images/countries/eu.svg +0 -28
  216. package/hmu/images/countries/fi.svg +0 -5
  217. package/hmu/images/countries/fj.svg +0 -124
  218. package/hmu/images/countries/fk.svg +0 -90
  219. package/hmu/images/countries/fm.svg +0 -11
  220. package/hmu/images/countries/fo.svg +0 -12
  221. package/hmu/images/countries/fr.svg +0 -7
  222. package/hmu/images/countries/ga.svg +0 -7
  223. package/hmu/images/countries/gb-eng.svg +0 -5
  224. package/hmu/images/countries/gb-nir.svg +0 -137
  225. package/hmu/images/countries/gb-sct.svg +0 -4
  226. package/hmu/images/countries/gb-wls.svg +0 -9
  227. package/hmu/images/countries/gb.svg +0 -15
  228. package/hmu/images/countries/gd.svg +0 -27
  229. package/hmu/images/countries/ge.svg +0 -6
  230. package/hmu/images/countries/gf.svg +0 -5
  231. package/hmu/images/countries/gg.svg +0 -9
  232. package/hmu/images/countries/gh.svg +0 -6
  233. package/hmu/images/countries/gi.svg +0 -33
  234. package/hmu/images/countries/gl.svg +0 -4
  235. package/hmu/images/countries/gm.svg +0 -14
  236. package/hmu/images/countries/gn.svg +0 -7
  237. package/hmu/images/countries/gp.svg +0 -7
  238. package/hmu/images/countries/gq.svg +0 -23
  239. package/hmu/images/countries/gr.svg +0 -22
  240. package/hmu/images/countries/gs.svg +0 -205
  241. package/hmu/images/countries/gt.svg +0 -204
  242. package/hmu/images/countries/gu.svg +0 -39
  243. package/hmu/images/countries/gw.svg +0 -13
  244. package/hmu/images/countries/gy.svg +0 -9
  245. package/hmu/images/countries/hk.svg +0 -32
  246. package/hmu/images/countries/hm.svg +0 -9
  247. package/hmu/images/countries/hn.svg +0 -18
  248. package/hmu/images/countries/hr.svg +0 -59
  249. package/hmu/images/countries/ht.svg +0 -122
  250. package/hmu/images/countries/hu.svg +0 -7
  251. package/hmu/images/countries/id.svg +0 -6
  252. package/hmu/images/countries/ie.svg +0 -7
  253. package/hmu/images/countries/il.svg +0 -14
  254. package/hmu/images/countries/im.svg +0 -36
  255. package/hmu/images/countries/in.svg +0 -25
  256. package/hmu/images/countries/io.svg +0 -148
  257. package/hmu/images/countries/iq.svg +0 -10
  258. package/hmu/images/countries/ir.svg +0 -219
  259. package/hmu/images/countries/is.svg +0 -12
  260. package/hmu/images/countries/it.svg +0 -7
  261. package/hmu/images/countries/je.svg +0 -32
  262. package/hmu/images/countries/jm.svg +0 -8
  263. package/hmu/images/countries/jo.svg +0 -16
  264. package/hmu/images/countries/jp.svg +0 -11
  265. package/hmu/images/countries/ke.svg +0 -23
  266. package/hmu/images/countries/kg.svg +0 -15
  267. package/hmu/images/countries/kh.svg +0 -69
  268. package/hmu/images/countries/ki.svg +0 -36
  269. package/hmu/images/countries/km.svg +0 -16
  270. package/hmu/images/countries/kn.svg +0 -14
  271. package/hmu/images/countries/kp.svg +0 -15
  272. package/hmu/images/countries/kr.svg +0 -24
  273. package/hmu/images/countries/kw.svg +0 -13
  274. package/hmu/images/countries/ky.svg +0 -63
  275. package/hmu/images/countries/kz.svg +0 -23
  276. package/hmu/images/countries/la.svg +0 -12
  277. package/hmu/images/countries/lb.svg +0 -15
  278. package/hmu/images/countries/lc.svg +0 -8
  279. package/hmu/images/countries/li.svg +0 -43
  280. package/hmu/images/countries/lk.svg +0 -22
  281. package/hmu/images/countries/lr.svg +0 -14
  282. package/hmu/images/countries/ls.svg +0 -8
  283. package/hmu/images/countries/lt.svg +0 -7
  284. package/hmu/images/countries/lu.svg +0 -5
  285. package/hmu/images/countries/lv.svg +0 -6
  286. package/hmu/images/countries/ly.svg +0 -13
  287. package/hmu/images/countries/ma.svg +0 -4
  288. package/hmu/images/countries/mc.svg +0 -6
  289. package/hmu/images/countries/md.svg +0 -72
  290. package/hmu/images/countries/me.svg +0 -118
  291. package/hmu/images/countries/mf.svg +0 -7
  292. package/hmu/images/countries/mg.svg +0 -7
  293. package/hmu/images/countries/mh.svg +0 -7
  294. package/hmu/images/countries/mk.svg +0 -5
  295. package/hmu/images/countries/ml.svg +0 -7
  296. package/hmu/images/countries/mm.svg +0 -16
  297. package/hmu/images/countries/mn.svg +0 -13
  298. package/hmu/images/countries/mo.svg +0 -9
  299. package/hmu/images/countries/mp.svg +0 -86
  300. package/hmu/images/countries/mq.svg +0 -7
  301. package/hmu/images/countries/mr.svg +0 -6
  302. package/hmu/images/countries/ms.svg +0 -39
  303. package/hmu/images/countries/mt.svg +0 -49
  304. package/hmu/images/countries/mu.svg +0 -8
  305. package/hmu/images/countries/mv.svg +0 -6
  306. package/hmu/images/countries/mw.svg +0 -10
  307. package/hmu/images/countries/mx.svg +0 -385
  308. package/hmu/images/countries/my.svg +0 -15
  309. package/hmu/images/countries/mz.svg +0 -21
  310. package/hmu/images/countries/na.svg +0 -16
  311. package/hmu/images/countries/nc.svg +0 -7
  312. package/hmu/images/countries/ne.svg +0 -6
  313. package/hmu/images/countries/nf.svg +0 -9
  314. package/hmu/images/countries/ng.svg +0 -6
  315. package/hmu/images/countries/ni.svg +0 -131
  316. package/hmu/images/countries/nl.svg +0 -7
  317. package/hmu/images/countries/no.svg +0 -7
  318. package/hmu/images/countries/np.svg +0 -14
  319. package/hmu/images/countries/nr.svg +0 -12
  320. package/hmu/images/countries/nu.svg +0 -26
  321. package/hmu/images/countries/nz.svg +0 -41
  322. package/hmu/images/countries/om.svg +0 -116
  323. package/hmu/images/countries/pa.svg +0 -14
  324. package/hmu/images/countries/pe.svg +0 -279
  325. package/hmu/images/countries/pf.svg +0 -19
  326. package/hmu/images/countries/pg.svg +0 -9
  327. package/hmu/images/countries/ph.svg +0 -28
  328. package/hmu/images/countries/pk.svg +0 -15
  329. package/hmu/images/countries/pl.svg +0 -6
  330. package/hmu/images/countries/pm.svg +0 -7
  331. package/hmu/images/countries/pn.svg +0 -62
  332. package/hmu/images/countries/pr.svg +0 -13
  333. package/hmu/images/countries/ps.svg +0 -15
  334. package/hmu/images/countries/pt.svg +0 -57
  335. package/hmu/images/countries/pw.svg +0 -11
  336. package/hmu/images/countries/py.svg +0 -157
  337. package/hmu/images/countries/qa.svg +0 -4
  338. package/hmu/images/countries/re.svg +0 -7
  339. package/hmu/images/countries/ro.svg +0 -7
  340. package/hmu/images/countries/rs.svg +0 -292
  341. package/hmu/images/countries/ru.svg +0 -7
  342. package/hmu/images/countries/rw.svg +0 -13
  343. package/hmu/images/countries/sa.svg +0 -26
  344. package/hmu/images/countries/sb.svg +0 -13
  345. package/hmu/images/countries/sc.svg +0 -14
  346. package/hmu/images/countries/sd.svg +0 -13
  347. package/hmu/images/countries/se.svg +0 -16
  348. package/hmu/images/countries/sg.svg +0 -13
  349. package/hmu/images/countries/sh.svg +0 -74
  350. package/hmu/images/countries/si.svg +0 -18
  351. package/hmu/images/countries/sj.svg +0 -7
  352. package/hmu/images/countries/sk.svg +0 -9
  353. package/hmu/images/countries/sl.svg +0 -7
  354. package/hmu/images/countries/sm.svg +0 -91
  355. package/hmu/images/countries/sn.svg +0 -8
  356. package/hmu/images/countries/so.svg +0 -11
  357. package/hmu/images/countries/sr.svg +0 -6
  358. package/hmu/images/countries/ss.svg +0 -8
  359. package/hmu/images/countries/st.svg +0 -16
  360. package/hmu/images/countries/sv.svg +0 -618
  361. package/hmu/images/countries/sx.svg +0 -56
  362. package/hmu/images/countries/sy.svg +0 -6
  363. package/hmu/images/countries/sz.svg +0 -45
  364. package/hmu/images/countries/tc.svg +0 -67
  365. package/hmu/images/countries/td.svg +0 -7
  366. package/hmu/images/countries/tf.svg +0 -15
  367. package/hmu/images/countries/tg.svg +0 -14
  368. package/hmu/images/countries/th.svg +0 -7
  369. package/hmu/images/countries/tj.svg +0 -22
  370. package/hmu/images/countries/tk.svg +0 -5
  371. package/hmu/images/countries/tl.svg +0 -13
  372. package/hmu/images/countries/tm.svg +0 -213
  373. package/hmu/images/countries/tn.svg +0 -13
  374. package/hmu/images/countries/to.svg +0 -10
  375. package/hmu/images/countries/tr.svg +0 -8
  376. package/hmu/images/countries/tt.svg +0 -5
  377. package/hmu/images/countries/tv.svg +0 -27
  378. package/hmu/images/countries/tw.svg +0 -14
  379. package/hmu/images/countries/tz.svg +0 -13
  380. package/hmu/images/countries/ua.svg +0 -6
  381. package/hmu/images/countries/ug.svg +0 -30
  382. package/hmu/images/countries/um.svg +0 -23
  383. package/hmu/images/countries/un.svg +0 -16
  384. package/hmu/images/countries/us.svg +0 -12
  385. package/hmu/images/countries/uy.svg +0 -28
  386. package/hmu/images/countries/uz.svg +0 -30
  387. package/hmu/images/countries/va.svg +0 -483
  388. package/hmu/images/countries/vc.svg +0 -8
  389. package/hmu/images/countries/ve.svg +0 -26
  390. package/hmu/images/countries/vg.svg +0 -133
  391. package/hmu/images/countries/vi.svg +0 -31
  392. package/hmu/images/countries/vn.svg +0 -11
  393. package/hmu/images/countries/vu.svg +0 -18
  394. package/hmu/images/countries/wf.svg +0 -7
  395. package/hmu/images/countries/ws.svg +0 -7
  396. package/hmu/images/countries/ye.svg +0 -7
  397. package/hmu/images/countries/yt.svg +0 -7
  398. package/hmu/images/countries/za.svg +0 -17
  399. package/hmu/images/countries/zm.svg +0 -27
  400. package/hmu/images/countries/zw.svg +0 -21
  401. package/hmu/images/hipay-white-logo.svg +0 -42
  402. package/hmu/images/logo_visa_75wx45h.gif +0 -0
@@ -9,9 +9,11 @@ import Grow from 'material-ui/transitions/Grow';
9
9
  import { findDOMNode } from 'react-dom';
10
10
  import Paper from 'material-ui/Paper';
11
11
  import ClickAwayListener from 'material-ui/utils/ClickAwayListener';
12
+ import Collapse from 'material-ui/transitions/Collapse';
12
13
  import { Manager, Target, Popper } from 'react-popper';
13
14
  import { CheckboxBlankOutline, CheckboxMarked } from 'mdi-material-ui';
14
15
  import HiSelectableList from '../HiSelectableList';
16
+ import HiSelectableListItem from '../HiSelectableList/HiSelectableListItem';
15
17
  import { HiSearchField } from '../HiForm';
16
18
  import SelectInput from './SelectInput';
17
19
  import HiChip from '../HiChip/HiChip';
@@ -28,6 +30,7 @@ export const styles = theme => ({
28
30
  },
29
31
  popper: {
30
32
  width: '100%',
33
+ transform: 'none !important',
31
34
  zIndex: 9
32
35
  },
33
36
  paper: {
@@ -69,7 +72,231 @@ class HiSelect extends React.PureComponent {
69
72
  constructor(props) {
70
73
  super(props);
71
74
 
72
- _initialiseProps.call(this);
75
+ this.handleClick = () => {
76
+ document.body.style.overflow = 'hidden';
77
+ this.setState({ open: true });
78
+ const options = this.props.options.slice();
79
+ this.handleSuggestions(options);
80
+
81
+ if (this.props.onClick) {
82
+ this.props.onClick();
83
+ }
84
+
85
+ // Gestion du focus
86
+ if (this.searchField) {
87
+ // si searchable, focus sur le champs de recherche
88
+ const searchField = this.searchField;
89
+ setTimeout(() => {
90
+ searchField.focus();
91
+ }, 1);
92
+ } else if (this.overlay) {
93
+ // sinon focus sur le dernier élément selectionné
94
+ this.focusOnSelectedItem();
95
+ }
96
+ };
97
+
98
+ this.focusOnSelectedItem = () => {
99
+ // On récupère la div parent "overlay"
100
+ const overlay = findDOMNode(this.overlay);
101
+ const multiple = this.props.multiple;
102
+ const value = this.props.value;
103
+ const selectedIdList = Array.isArray(value) ? value : [value];
104
+ setTimeout(() => {
105
+ let focused = false;
106
+ // Si un ou plusieurs items sont selectionnés, on focus sur le dernier
107
+ if (selectedIdList.length > 0) {
108
+ const itemSelected = overlay.querySelector(`[data-id="${selectedIdList[selectedIdList.length - 1]}"]`);
109
+ if (itemSelected && itemSelected.parentElement.tagName === 'LI') {
110
+ itemSelected.parentElement.focus();
111
+ focused = true;
112
+ }
113
+ }
114
+ // Si pas d'item selectionné, ou pas visible (en cas de recherche), focus sur le premier
115
+ if (selectedIdList.length === 0 || !focused) {
116
+ // On recupère tous les items
117
+ const items = overlay.getElementsByTagName('li');
118
+ let itemToFocus = items[0];
119
+ // Si select multiple, et qu'au moins un selectionné, focus sur le 2e item
120
+ if (multiple && selectedIdList.length > 0) {
121
+ itemToFocus = items[1];
122
+ }
123
+ itemToFocus.focus();
124
+ }
125
+ }, 1);
126
+ };
127
+
128
+ this.handleKeyDown = event => {
129
+ let nextItem;
130
+ if (event.key === 'ArrowDown') {
131
+ nextItem = getNextItemSelectable(document.activeElement, 'down');
132
+ } else if (event.key === 'ArrowUp') {
133
+ nextItem = getNextItemSelectable(document.activeElement, 'up');
134
+ } else if (event.key === 'Tab') {
135
+ document.body.style.overflow = 'auto';
136
+ this.setState({ open: false });
137
+ }
138
+ if (nextItem) {
139
+ nextItem.focus();
140
+ }
141
+ };
142
+
143
+ this.handleKeyDownSearch = event => {
144
+ if (this.overlay && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
145
+ this.focusOnSelectedItem();
146
+ }
147
+ };
148
+
149
+ this.handleFocus = () => {
150
+ this.setState({ focused: true });
151
+ };
152
+
153
+ this.handleBlur = () => {
154
+ this.setState({ focused: false });
155
+ };
156
+
157
+ this.handleClose = () => {
158
+ document.body.style.overflow = 'auto';
159
+ this.setState({
160
+ open: false
161
+ });
162
+
163
+ if (this.props.onClose) {
164
+ this.props.onClose();
165
+ }
166
+ };
167
+
168
+ this.handleSelect = (event, item) => {
169
+ const { multiple, value, name, onChange, options, hierarchic } = this.props;
170
+ const { hierarchySelected, hierarchy, nbOptions } = this.state;
171
+ const hiSelected = _extends({}, hierarchySelected);
172
+
173
+ if (multiple) {
174
+ let valueList = value;
175
+ if (item.id === '_all') {
176
+ if (valueList.length === nbOptions) {
177
+ valueList = [];
178
+ if (hierarchic) {
179
+ // if hierarchic select => empty associative array of selected children
180
+ _Object$keys(hiSelected).forEach(key => {
181
+ hiSelected[key] = [];
182
+ });
183
+ }
184
+ } else {
185
+ options.forEach(option => {
186
+ if (option.hasChildren !== true && !valueList.includes(option.id) && option.id !== '_all') {
187
+ valueList.push(option.id);
188
+ } else if (option.hasChildren === true) {
189
+ // if hierarchic select => fill associative array of selected children
190
+ hiSelected[option.id] = hierarchy[option.id];
191
+ }
192
+ });
193
+ }
194
+ } else if (valueList.includes(item.id) || item.hasChildren === true && hierarchySelected[item.id].length === hierarchy[item.id].length) {
195
+ // item déjà sélectionné => on le déselectionne
196
+ if (item.hasChildren !== true) {
197
+ valueList = valueList.filter(val => {
198
+ return val !== item.id;
199
+ });
200
+ }
201
+
202
+ if (item.hasChildren === true) {
203
+ // remove all children
204
+ valueList = valueList.filter(val => {
205
+ return !this.state.hierarchy[item.id].includes(val);
206
+ });
207
+ hiSelected[item.id] = [];
208
+ } else if (item.hasOwnProperty('parentId')) {
209
+ // Si item est un enfant on l'enlève du tableau associatif des
210
+ // elmts sélectionnés
211
+ hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
212
+ }
213
+ } else {
214
+ // item non sélectionné => on le sélectionne
215
+ if (item.hasChildren !== true) valueList.push(item.id);
216
+
217
+ if (item.hasChildren === true) {
218
+ // Si item parent => on ajoute tous les enfants
219
+ // Ou on les supprime s'ils sont déjà tous sélectionnés (dans une liste filtrée)
220
+ const idsInSuggestions = [];
221
+ this.state.suggestions.forEach(suggestion => {
222
+ if (this.state.hierarchy[item.id].includes(suggestion.id)) {
223
+ idsInSuggestions.push(suggestion.id);
224
+ }
225
+ });
226
+ // if(hierarchySelected[item.id].length > 0) {}
227
+ let allChildrenSuggestionsSelected = true;
228
+ idsInSuggestions.forEach(id => {
229
+ if (!hierarchySelected[item.id].includes(id)) {
230
+ allChildrenSuggestionsSelected = false;
231
+ }
232
+ });
233
+
234
+ if (allChildrenSuggestionsSelected === true) {
235
+ // On supprime les enfants car déjà tous sélectionnés
236
+ idsInSuggestions.forEach(id => {
237
+ valueList.splice(valueList.indexOf(id), 1);
238
+ hiSelected[item.id].splice(hiSelected[item.id].indexOf(id), 1);
239
+ });
240
+ } else {
241
+ // On ajoute tous les enfants filtrés au éléments sélectionnés
242
+ valueList = arrayUnique(valueList.concat(idsInSuggestions));
243
+ hiSelected[item.id] = arrayUnique(hiSelected[item.id].concat(idsInSuggestions));
244
+ }
245
+
246
+ this.setState({ hierarchySelected: hiSelected });
247
+ } else if (item.hasOwnProperty('parentId')) {
248
+ // Si item est un enfant on l'ajoute du tableau associatif des
249
+ // elmts sélectionnés
250
+ hiSelected[item.parentId].push(item.id);
251
+ }
252
+ }
253
+ this.setState({ hierarchySelected: hiSelected });
254
+ onChange(event, valueList);
255
+ } else {
256
+ onChange(event, item.id);
257
+ this.handleClose();
258
+ }
259
+ };
260
+
261
+ this.handleSuggestions = suggestions => {
262
+ const { options, hasAll, iconAll, translations, multiple } = this.props;
263
+
264
+ if (suggestions.length === 0) {
265
+ // Handle No Result
266
+ // FIX to remove all item
267
+ suggestions = [];
268
+ suggestions.push({
269
+ id: '_no_result',
270
+ type: 'text',
271
+ disabled: true,
272
+ centered: true,
273
+ checkbox: false,
274
+ label: translations.no_result_match
275
+ });
276
+ } else if (hasAll && suggestions.length > 0 && suggestions.length === options.length && multiple === true) {
277
+ // Handle 'All'
278
+ if (suggestions.filter(suggestion => suggestion.id === '_all').length === 0) {
279
+ const allItem = {
280
+ id: '_all',
281
+ icon: iconAll,
282
+ label: translations.all
283
+ };
284
+ if (iconAll !== false) {
285
+ allItem.type = 'icon';
286
+ }
287
+ suggestions.unshift(allItem);
288
+ }
289
+ }
290
+
291
+ this.setState({
292
+ suggestions
293
+ });
294
+ };
295
+
296
+ this.handleRequestDelete = evt => {
297
+ evt.stopPropagation();
298
+ this.props.onChange(this.props.name, []);
299
+ };
73
300
 
74
301
  this.state = {
75
302
  open: false,
@@ -81,30 +308,28 @@ class HiSelect extends React.PureComponent {
81
308
  dynamic: false
82
309
  };
83
310
 
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;
311
+ if (props.hierarchic === true && props.options.length > 1) {
312
+ // Construct two associative arrays
313
+ // hierarchy[parentId] => children
314
+ // hierarchySelected[parentId] => selected children
315
+ const hierarchy = {};
316
+ const hierarchySelected = {};
317
+ let value = props.value || [];
318
+ if (!Array.isArray(value)) value = [props.value];
319
+ props.options.forEach(option => {
320
+ if (option.hasChildren === true && !hierarchy.hasOwnProperty(option.id)) {
321
+ hierarchy[option.id] = [];
322
+ hierarchySelected[option.id] = [];
323
+ } else if (option.hasOwnProperty('parentId')) {
324
+ hierarchy[option.parentId].push(option.id);
325
+ if (value.includes(option.id)) {
326
+ hierarchySelected[option.parentId].push(option.id);
327
+ }
95
328
  }
96
329
  });
97
- }
98
-
99
- if (!valueInOptions) {
100
- throw new Error('prop value provided does not match any option.');
101
- }
102
330
 
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;
331
+ this.state.hierarchy = hierarchy;
332
+ this.state.hierarchySelected = hierarchySelected;
108
333
  }
109
334
 
110
335
  if (props.options.length > 0) {
@@ -123,7 +348,6 @@ class HiSelect extends React.PureComponent {
123
348
  this.handleSelect = this.handleSelect.bind(this);
124
349
  this.handleClick = this.handleClick.bind(this);
125
350
  this.handleClose = this.handleClose.bind(this);
126
- this.handleClickAway = this.handleClickAway.bind(this);
127
351
  this.handleRequestDelete = this.handleRequestDelete.bind(this);
128
352
  this.handleSuggestions = this.handleSuggestions.bind(this);
129
353
  this.handleFocus = this.handleFocus.bind(this);
@@ -141,33 +365,6 @@ class HiSelect extends React.PureComponent {
141
365
  });
142
366
  this.setState({ nbOptions: optionsLength });
143
367
  }
144
-
145
- if (nextProps.hierarchic === true && nextProps.options.length > 1) {
146
- const hierarchyTrees = this.buildHierarchyTrees(nextProps);
147
- this.setState({ hierarchy: hierarchyTrees.hierarchy, hierarchySelected: hierarchyTrees.hierarchySelected });
148
- }
149
- }
150
-
151
- buildHierarchyTrees(props) {
152
- // Construct two associative arrays
153
- // hierarchy[parentId] => children
154
- // hierarchySelected[parentId] => selected children
155
- const hierarchy = {};
156
- const hierarchySelected = {};
157
- let value = props.value || [];
158
- if (!Array.isArray(value)) value = [props.value];
159
- props.options.forEach(option => {
160
- if (option.hasChildren === true && !hierarchy.hasOwnProperty(option.id)) {
161
- hierarchy[option.id] = [];
162
- hierarchySelected[option.id] = [];
163
- } else if (option.hasOwnProperty('parentId')) {
164
- hierarchy[option.parentId].push(option.id);
165
- if (value.includes(option.id)) {
166
- hierarchySelected[option.parentId].push(option.id);
167
- }
168
- }
169
- });
170
- return { hierarchy, hierarchySelected };
171
368
  }
172
369
 
173
370
  // Key down on list items
@@ -201,12 +398,14 @@ class HiSelect extends React.PureComponent {
201
398
  classes,
202
399
  disabled,
203
400
  error,
401
+ multiple,
204
402
  options,
205
403
  checkbox,
206
404
  searchable,
207
405
  displayAsChip,
208
406
  type,
209
407
  value,
408
+ hasSelectedCount = multiple,
210
409
  translations,
211
410
  parentItemSelectable,
212
411
  icon,
@@ -214,21 +413,19 @@ class HiSelect extends React.PureComponent {
214
413
  hoverIcon,
215
414
  checkedIcon,
216
415
  hierarchic,
217
- id,
218
- placeholder,
219
- staticPosition
416
+ id
220
417
  } = this.props;
221
418
 
222
419
  const { open, suggestions, focused } = this.state;
223
420
 
224
421
  let display = '';
225
- const selectedIdList = Array.isArray(value) ? value : value ? [value] : [];
422
+ const selectedIdList = Array.isArray(value) ? value : [value];
226
423
 
227
424
  if (this.state.dynamic && selectedIdList.length === 1) {
228
425
  display = translations.one_item_selected.replace('%s', selectedIdList.length);
229
426
  } else if (this.state.nbOptions !== selectedIdList.length && selectedIdList.length > 1) {
230
427
  display = translations.n_items_selected.replace('%s', selectedIdList.length);
231
- } else if (this.state.nbOptions === selectedIdList.length && this.state.nbOptions >= 1) {
428
+ } else if (this.state.nbOptions === selectedIdList.length) {
232
429
  display = translations.all;
233
430
  } else if (selectedIdList.length === 1) {
234
431
  if (type !== 'icon') {
@@ -245,7 +442,7 @@ class HiSelect extends React.PureComponent {
245
442
  }
246
443
 
247
444
  if (displayAsChip) {
248
- const chipFilter = React.createElement(HiChip, { label: placeholder || display, onDelete: this.handleRequestDelete });
445
+ const chipFilter = React.createElement(HiChip, { label: display, onDelete: this.handleRequestDelete });
249
446
  if (display) {
250
447
  display = chipFilter;
251
448
  }
@@ -265,50 +462,6 @@ class HiSelect extends React.PureComponent {
265
462
  popperStyle = { width: this.props.containerWidth };
266
463
  }
267
464
 
268
- const content = React.createElement(
269
- ClickAwayListener,
270
- { onClickAway: this.handleClickAway },
271
- React.createElement(
272
- Grow,
273
- { 'in': open, id: 'menu-list', style: { transformOrigin: '0 0 0' } },
274
- React.createElement(
275
- Paper,
276
- { className: classes.paper },
277
- !!searchable && React.createElement(HiSearchField, {
278
- itemList: options,
279
- callbackFilteredList: this.handleSuggestions,
280
- filterPropertyList: ['label'],
281
- placeholder: translations.search,
282
- autoFocus: true,
283
- onSearch: this.props.onSearch,
284
- inputRef: el => {
285
- this.searchField = el;
286
- },
287
- onKeyDown: this.handleKeyDownSearch
288
- }),
289
- React.createElement(HiSelectableList, {
290
- type: type,
291
- parentItemSelectable: parentItemSelectable,
292
- itemList: suggestions,
293
- onSelect: this.handleSelect,
294
- selectedIdList: selectedIdList,
295
- checkbox: checkbox,
296
- hierarchy: this.state.hierarchy,
297
- hierarchic: hierarchic,
298
- hierarchySelected: this.state.hierarchySelected,
299
- translations: translations,
300
- icon: icon,
301
- parentIcon: parentIcon,
302
- hoverIcon: hoverIcon,
303
- checkedIcon: checkedIcon,
304
- allSelected: allSelected,
305
- value: value,
306
- onKeyDown: this.handleKeyDown
307
- })
308
- )
309
- )
310
- );
311
-
312
465
  return React.createElement(
313
466
  'div',
314
467
  {
@@ -325,7 +478,7 @@ class HiSelect extends React.PureComponent {
325
478
  null,
326
479
  React.createElement(SelectInput, {
327
480
  id: id,
328
- value: placeholder || display,
481
+ value: display,
329
482
  open: open,
330
483
  focused: focused,
331
484
  type: type,
@@ -336,17 +489,10 @@ class HiSelect extends React.PureComponent {
336
489
  onFocus: this.handleFocus,
337
490
  onBlur: this.handleBlur,
338
491
  onMouseEnter: this.props.onMouseEnter,
339
- onMouseLeave: this.props.onMouseLeave,
340
- refElement: el => {
341
- this.selectInputElement = el;
342
- }
492
+ onMouseLeave: this.props.onMouseLeave
343
493
  })
344
494
  ),
345
- open && (staticPosition ? React.createElement(
346
- 'div',
347
- { style: popperStyle },
348
- content
349
- ) : React.createElement(
495
+ open && React.createElement(
350
496
  Popper,
351
497
  {
352
498
  placement: 'bottom-start',
@@ -354,8 +500,69 @@ class HiSelect extends React.PureComponent {
354
500
  className: popperClass,
355
501
  style: popperStyle
356
502
  },
357
- content
358
- ))
503
+ React.createElement(
504
+ ClickAwayListener,
505
+ { onClickAway: this.handleClose },
506
+ React.createElement(
507
+ Grow,
508
+ { 'in': open, id: 'menu-list', style: { transformOrigin: '0 0 0' } },
509
+ React.createElement(
510
+ Paper,
511
+ { className: classes.paper },
512
+ !!searchable && React.createElement(HiSearchField, {
513
+ itemList: options,
514
+ callbackFilteredList: this.handleSuggestions,
515
+ filterPropertyList: ['label'],
516
+ placeholder: translations.search,
517
+ autoFocus: true,
518
+ onSearch: this.props.onSearch,
519
+ inputRef: el => {
520
+ this.searchField = el;
521
+ },
522
+ onKeyDown: this.handleKeyDownSearch
523
+ }),
524
+ !!hasSelectedCount && React.createElement(
525
+ Collapse,
526
+ {
527
+ 'in': selectedIdList.length > 0,
528
+ timeout: 'auto',
529
+ unmountOnExit: true
530
+ },
531
+ React.createElement(HiSelectableListItem, {
532
+ key: '_selected_count',
533
+ item: {
534
+ id: '_selected_count',
535
+ type: 'text',
536
+ disabled: true,
537
+ checkbox: false,
538
+ label: selectedIdList.length < 2 ? translations.one_item_selected.replace('%s', selectedIdList.length) : translations.n_items_selected.replace('%s', selectedIdList.length),
539
+ centered: true
540
+ }
541
+ })
542
+ ),
543
+ React.createElement(HiSelectableList, {
544
+ type: type,
545
+ parentItemSelectable: parentItemSelectable,
546
+ itemList: suggestions,
547
+ onSelect: this.handleSelect,
548
+ selectedIdList: selectedIdList,
549
+ checkbox: checkbox,
550
+ hierarchy: this.state.hierarchy,
551
+ hierarchic: hierarchic,
552
+ hierarchySelected: this.state.hierarchySelected,
553
+ translations: translations,
554
+ icon: icon,
555
+ parentIcon: parentIcon,
556
+ hoverIcon: hoverIcon,
557
+ checkedIcon: checkedIcon,
558
+ allSelected: allSelected,
559
+ value: value,
560
+ onKeyDown: this.handleKeyDown
561
+ })
562
+ )
563
+ )
564
+ )
565
+ )
359
566
  )
360
567
  );
361
568
  }
@@ -385,260 +592,8 @@ HiSelect.defaultProps = {
385
592
  one_item_selected: '%s item selected',
386
593
  n_children: '%s items',
387
594
  one_child: '%s item'
388
- },
389
- staticPosition: false
390
- };
391
-
392
- var _initialiseProps = function () {
393
- this.handleClick = () => {
394
- if (this.state.open) {
395
- this.handleClose();
396
- } else {
397
- if (!this.props.staticPosition) {
398
- document.body.style.overflow = 'hidden';
399
- }
400
- this.setState({ open: true });
401
- const options = this.props.options.slice();
402
- this.handleSuggestions(options);
403
-
404
- if (this.props.onClick) {
405
- this.props.onClick();
406
- }
407
-
408
- // Gestion du focus
409
- if (this.searchField) {
410
- // si searchable, focus sur le champs de recherche
411
- const searchField = this.searchField;
412
- setTimeout(() => {
413
- searchField.focus();
414
- }, 1);
415
- } else if (this.overlay) {
416
- // sinon focus sur le dernier élément selectionné
417
- this.focusOnSelectedItem();
418
- }
419
- }
420
- };
421
-
422
- this.focusOnSelectedItem = () => {
423
- // On récupère la div parent "overlay"
424
- const overlay = findDOMNode(this.overlay);
425
- const multiple = this.props.multiple;
426
- const value = this.props.value;
427
- const selectedIdList = Array.isArray(value) ? value : [value];
428
- setTimeout(() => {
429
- let focused = false;
430
- // Si un ou plusieurs items sont selectionnés, on focus sur le dernier
431
- if (selectedIdList.length > 0) {
432
- const itemSelected = overlay.querySelector(`[data-id="${selectedIdList[selectedIdList.length - 1]}"]`);
433
- if (itemSelected && itemSelected.parentElement.tagName === 'LI') {
434
- itemSelected.parentElement.focus();
435
- focused = true;
436
- }
437
- }
438
- // Si pas d'item selectionné, ou pas visible (en cas de recherche), focus sur le premier
439
- if (selectedIdList.length === 0 || !focused) {
440
- // On recupère tous les items
441
- const items = overlay.getElementsByTagName('li');
442
- let itemToFocus = items[0];
443
- // Si select multiple, et qu'au moins un selectionné, focus sur le 2e item
444
- if (multiple && selectedIdList.length > 0) {
445
- itemToFocus = items[1];
446
- }
447
- if (itemToFocus) {
448
- itemToFocus.focus();
449
- }
450
- }
451
- }, 1);
452
- };
453
-
454
- this.handleKeyDown = event => {
455
- let nextItem;
456
- if (event.key === 'ArrowDown') {
457
- nextItem = getNextItemSelectable(document.activeElement, 'down');
458
- } else if (event.key === 'ArrowUp') {
459
- nextItem = getNextItemSelectable(document.activeElement, 'up');
460
- } else if (event.key === 'Tab') {
461
- if (!this.props.staticPosition) {
462
- document.body.style.overflow = 'auto';
463
- }
464
- this.setState({ open: false });
465
- }
466
- if (nextItem) {
467
- nextItem.focus();
468
- }
469
- };
470
-
471
- this.handleKeyDownSearch = event => {
472
- if (this.overlay && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
473
- this.focusOnSelectedItem();
474
- }
475
- };
476
-
477
- this.handleFocus = () => {
478
- this.setState({ focused: true });
479
- };
480
-
481
- this.handleBlur = () => {
482
- this.setState({ focused: false });
483
- };
484
-
485
- this.handleClose = () => {
486
- if (!this.props.staticPosition) {
487
- document.body.style.overflow = 'auto';
488
- }
489
- this.setState({
490
- open: false
491
- });
492
-
493
- if (this.props.onClose) {
494
- this.props.onClose();
495
- }
496
- if (this.selectInputElement) {
497
- this.selectInputElement.focus();
498
- }
499
- };
500
-
501
- this.handleClickAway = event => {
502
- // Au clic sur le bouton, on laisse le handleClick fermer le select
503
- if (!this.selectInputElement.contains(event.target)) {
504
- this.handleClose(event);
505
- }
506
- };
507
-
508
- this.handleSelect = (event, item) => {
509
- const { multiple, value, name, onChange, options, hierarchic } = this.props;
510
- const { hierarchySelected, hierarchy, nbOptions } = this.state;
511
- const hiSelected = _extends({}, hierarchySelected);
512
-
513
- if (multiple) {
514
- let valueList = value;
515
- if (item.id === '_all') {
516
- if (valueList.length === nbOptions) {
517
- valueList = [];
518
- if (hierarchic) {
519
- // if hierarchic select => empty associative array of selected children
520
- _Object$keys(hiSelected).forEach(key => {
521
- hiSelected[key] = [];
522
- });
523
- }
524
- } else {
525
- options.forEach(option => {
526
- if (option.hasChildren !== true && !valueList.includes(option.id) && option.id !== '_all') {
527
- valueList.push(option.id);
528
- } else if (option.hasChildren === true) {
529
- // if hierarchic select => fill associative array of selected children
530
- hiSelected[option.id] = hierarchy[option.id];
531
- }
532
- });
533
- }
534
- } else if (valueList.includes(item.id) || item.hasChildren === true && hierarchySelected[item.id].length === hierarchy[item.id].length) {
535
- // item déjà sélectionné => on le déselectionne
536
- if (item.hasChildren !== true) {
537
- valueList = valueList.filter(val => {
538
- return val !== item.id;
539
- });
540
- }
541
-
542
- if (item.hasChildren === true) {
543
- // remove all children
544
- valueList = valueList.filter(val => {
545
- return !this.state.hierarchy[item.id].includes(val);
546
- });
547
- hiSelected[item.id] = [];
548
- } else if (item.hasOwnProperty('parentId')) {
549
- // Si item est un enfant on l'enlève du tableau associatif des
550
- // elmts sélectionnés
551
- hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
552
- }
553
- } else {
554
- // item non sélectionné => on le sélectionne
555
- if (item.hasChildren !== true) valueList.push(item.id);
556
-
557
- if (item.hasChildren === true) {
558
- // Si item parent => on ajoute tous les enfants
559
- // Ou on les supprime s'ils sont déjà tous sélectionnés (dans une liste filtrée)
560
- const idsInSuggestions = [];
561
- this.state.suggestions.forEach(suggestion => {
562
- if (this.state.hierarchy[item.id].includes(suggestion.id)) {
563
- idsInSuggestions.push(suggestion.id);
564
- }
565
- });
566
- // if(hierarchySelected[item.id].length > 0) {}
567
- let allChildrenSuggestionsSelected = true;
568
- idsInSuggestions.forEach(id => {
569
- if (!hierarchySelected[item.id].includes(id)) {
570
- allChildrenSuggestionsSelected = false;
571
- }
572
- });
573
-
574
- if (allChildrenSuggestionsSelected === true) {
575
- // On supprime les enfants car déjà tous sélectionnés
576
- idsInSuggestions.forEach(id => {
577
- valueList.splice(valueList.indexOf(id), 1);
578
- hiSelected[item.id].splice(hiSelected[item.id].indexOf(id), 1);
579
- });
580
- } else {
581
- // On ajoute tous les enfants filtrés au éléments sélectionnés
582
- valueList = arrayUnique(valueList.concat(idsInSuggestions));
583
- hiSelected[item.id] = arrayUnique(hiSelected[item.id].concat(idsInSuggestions));
584
- }
585
-
586
- this.setState({ hierarchySelected: hiSelected });
587
- } else if (item.hasOwnProperty('parentId')) {
588
- // Si item est un enfant on l'ajoute du tableau associatif des
589
- // elmts sélectionnés
590
- hiSelected[item.parentId].push(item.id);
591
- }
592
- }
593
- this.setState({ hierarchySelected: hiSelected });
594
- onChange(event, valueList);
595
- } else {
596
- onChange(event, item.id);
597
- this.handleClose();
598
- }
599
- };
600
-
601
- this.handleSuggestions = suggestions => {
602
- const { options, hasAll, iconAll, translations, multiple } = this.props;
603
-
604
- if (suggestions.length === 0) {
605
- // Handle No Result
606
- // FIX to remove all item
607
- suggestions = [];
608
- suggestions.push({
609
- id: '_no_result',
610
- type: 'text',
611
- disabled: true,
612
- centered: true,
613
- checkbox: false,
614
- label: translations.no_result_match
615
- });
616
- } else if (hasAll && suggestions.length > 0 && suggestions.length === options.length && multiple === true) {
617
- // Handle 'All'
618
- if (suggestions.filter(suggestion => suggestion.id === '_all').length === 0) {
619
- const allItem = {
620
- id: '_all',
621
- icon: iconAll,
622
- label: translations.all
623
- };
624
- if (iconAll !== false) {
625
- allItem.type = 'icon';
626
- }
627
- suggestions.unshift(allItem);
628
- }
629
- }
630
-
631
- this.setState({
632
- suggestions
633
- });
634
- };
635
-
636
- this.handleRequestDelete = evt => {
637
- evt.stopPropagation();
638
- this.props.onChange(this.props.name, []);
639
- };
595
+ }
640
596
  };
641
-
642
597
  HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
643
598
  /**
644
599
  * Affiche une checkbox pour chaque éléments, par défaut si options est nested
@@ -668,6 +623,10 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
668
623
  * Affiche l'élément 'All'
669
624
  */
670
625
  hasAll: PropTypes.bool,
626
+ /**
627
+ * Affiche le compte d'éléments sélectionnés en haut de la liste
628
+ */
629
+ hasSelectedCount: PropTypes.bool,
671
630
  /**
672
631
  * Les items sont hiérarchisés
673
632
  */
@@ -719,7 +678,6 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
719
678
  * Fonction de callback appelée lorsqu'on écrit dans la barre de recherche
720
679
  * A utiliser pour les selects avec des données dynamiques
721
680
  *
722
- * @param {object} event
723
681
  * @param {string} value
724
682
  */
725
683
  onSearch: PropTypes.func,
@@ -735,19 +693,10 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? {
735
693
  * Les items parents sont sélectionnables
736
694
  */
737
695
  parentItemSelectable: PropTypes.bool,
738
- /**
739
- * Placeholder affiché lorsque le select est fermé
740
- * Surcharge le placeholder par défaut
741
- */
742
- placeholder: PropTypes.string,
743
696
  /**
744
697
  * Affiche un input de recherche permettant de filtrer les options
745
698
  */
746
699
  searchable: PropTypes.bool,
747
- /**
748
- * Si true, le contenu du select sera dans une div static plutot que dans une popper absolute
749
- */
750
- staticPosition: PropTypes.bool,
751
700
  /**
752
701
  * Traductions (par défaut en anglais)
753
702
  */