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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) 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 +19 -40
  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 +100 -115
  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 +20 -49
  33. package/HiTable/BodyCells/CellNumeric.js +2 -7
  34. package/HiTable/BodyCells/CellSentinel.js +17 -26
  35. package/HiTable/BodyCells/CellStatus.js +3 -7
  36. package/HiTable/BodyCells/CellText.js +1 -2
  37. package/HiTable/BodyCells/CellThirdPartySecurity.js +22 -45
  38. package/HiTable/BodyRow.js +62 -106
  39. package/HiTable/ChildRow.js +9 -3
  40. package/HiTable/ColumnFilter.js +15 -28
  41. package/HiTable/HeaderCell.js +16 -20
  42. package/HiTable/HiTable.js +11 -75
  43. package/HiTable/HiTableBody.js +36 -80
  44. package/HiTable/HiTableContextMenu.js +3 -7
  45. package/HiTable/HiTableFooterScroll.js +1 -1
  46. package/HiTable/HiTableHead.js +7 -24
  47. package/HiTable/OrderColumns.js +2 -6
  48. package/HiTopBar/HiTopBar.js +117 -37
  49. package/es/HiCheckbox/HiCheckbox.js +1 -4
  50. package/es/HiChip/HiChip.js +4 -4
  51. package/es/HiChip/HiChipSwitch.js +4 -11
  52. package/es/HiColoredLabel/HiColoredLabel.js +4 -9
  53. package/es/HiDatePicker/HiDatePicker.js +25 -30
  54. package/es/HiDatePicker/HiDateRangePicker.js +32 -72
  55. package/es/HiDatePicker/HiDateRangeSelector.js +14 -34
  56. package/es/HiDatePicker/ListPicker.js +20 -39
  57. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +1 -3
  58. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +1 -5
  59. package/es/HiDatePicker/Overlays/Overlay.js +4 -18
  60. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +1 -2
  61. package/es/HiDatePicker/stylesheet.js +0 -7
  62. package/es/HiForm/HiFormControl.js +18 -32
  63. package/es/HiForm/HiInput.js +18 -35
  64. package/es/HiForm/HiSearchField.js +2 -2
  65. package/es/HiForm/index.js +1 -3
  66. package/es/HiPins/HiPins.js +1 -0
  67. package/es/HiSelect/HiSelect.js +324 -375
  68. package/es/HiSelect/HiSelectField.js +7 -9
  69. package/es/HiSelect/HiSuggestSelect.js +39 -26
  70. package/es/HiSelect/HiSuggestSelectField.js +69 -77
  71. package/es/HiSelect/SelectInput.js +23 -44
  72. package/es/HiSelectableList/HiSelectableList.js +4 -10
  73. package/es/HiSelectableList/HiSelectableListItem.js +55 -91
  74. package/es/HiSwitch/HiSwitchState.js +1 -1
  75. package/es/HiSwitch/index.js +0 -1
  76. package/es/HiTable/BodyCellBuilder.js +101 -111
  77. package/es/HiTable/BodyCells/CellCountry.js +35 -10
  78. package/es/HiTable/BodyCells/CellIcon.js +9 -18
  79. package/es/HiTable/BodyCells/CellImage.js +23 -42
  80. package/es/HiTable/BodyCells/CellLayout.js +23 -50
  81. package/es/HiTable/BodyCells/CellNumeric.js +2 -6
  82. package/es/HiTable/BodyCells/CellSentinel.js +9 -20
  83. package/es/HiTable/BodyCells/CellStatus.js +3 -7
  84. package/es/HiTable/BodyCells/CellText.js +1 -2
  85. package/es/HiTable/BodyCells/CellThirdPartySecurity.js +18 -42
  86. package/es/HiTable/BodyRow.js +61 -106
  87. package/es/HiTable/ChildRow.js +10 -3
  88. package/es/HiTable/ColumnFilter.js +9 -15
  89. package/es/HiTable/HeaderCell.js +16 -20
  90. package/es/HiTable/HiTable.js +12 -73
  91. package/es/HiTable/HiTableBody.js +32 -71
  92. package/es/HiTable/HiTableContextMenu.js +3 -7
  93. package/es/HiTable/HiTableFooterScroll.js +1 -1
  94. package/es/HiTable/HiTableHead.js +7 -19
  95. package/es/HiTable/OrderColumns.js +2 -6
  96. package/es/HiTopBar/HiTopBar.js +108 -40
  97. package/es/styles/createHiMuiTheme.js +0 -11
  98. package/es/utils/hiHelpers.js +5 -6
  99. package/index.es.js +1 -1
  100. package/index.js +1 -1
  101. package/package.json +44 -45
  102. package/styles/createHiMuiTheme.js +0 -11
  103. package/umd/hipay-material-ui.development.js +10243 -11324
  104. package/umd/hipay-material-ui.production.min.js +5 -5
  105. package/utils/hiHelpers.js +4 -6
  106. package/HI-CHANGELOG.md +0 -58
  107. package/HiAlertModal/HiAlertModal.js +0 -247
  108. package/HiAlertModal/index.js +0 -16
  109. package/HiBreadcrumb/HiBreadcrumb.js +0 -149
  110. package/HiBreadcrumb/HiStep.js +0 -159
  111. package/HiBreadcrumb/HiStepConnector.js +0 -207
  112. package/HiBreadcrumb/HiStepContent.js +0 -122
  113. package/HiBreadcrumb/HiStepIcon.js +0 -191
  114. package/HiBreadcrumb/HiStepLabel.js +0 -248
  115. package/HiBreadcrumb/HiStepper.js +0 -106
  116. package/HiBreadcrumb/index.js +0 -16
  117. package/HiDotsStepper/HiDot.js +0 -151
  118. package/HiDotsStepper/HiDotsStepper.js +0 -146
  119. package/HiDotsStepper/index.js +0 -16
  120. package/HiExpansionPanel/HiExpansionPanel.js +0 -231
  121. package/HiExpansionPanel/index.js +0 -16
  122. package/HiForm/HiAddressField.js +0 -204
  123. package/HiForm/HiSlider.js +0 -399
  124. package/HiPdfReader/HiPdfReader.js +0 -282
  125. package/HiPdfReader/index.js +0 -16
  126. package/HiTable/HiTableFooter.js +0 -131
  127. package/es/HiAlertModal/HiAlertModal.js +0 -189
  128. package/es/HiAlertModal/index.js +0 -1
  129. package/es/HiBreadcrumb/HiBreadcrumb.js +0 -81
  130. package/es/HiBreadcrumb/HiStep.js +0 -94
  131. package/es/HiBreadcrumb/HiStepConnector.js +0 -143
  132. package/es/HiBreadcrumb/HiStepContent.js +0 -63
  133. package/es/HiBreadcrumb/HiStepIcon.js +0 -149
  134. package/es/HiBreadcrumb/HiStepLabel.js +0 -197
  135. package/es/HiBreadcrumb/HiStepper.js +0 -46
  136. package/es/HiBreadcrumb/index.js +0 -1
  137. package/es/HiDotsStepper/HiDot.js +0 -92
  138. package/es/HiDotsStepper/HiDotsStepper.js +0 -83
  139. package/es/HiDotsStepper/index.js +0 -1
  140. package/es/HiExpansionPanel/HiExpansionPanel.js +0 -170
  141. package/es/HiExpansionPanel/index.js +0 -1
  142. package/es/HiForm/HiAddressField.js +0 -142
  143. package/es/HiForm/HiSlider.js +0 -309
  144. package/es/HiPdfReader/HiPdfReader.js +0 -198
  145. package/es/HiPdfReader/index.js +0 -1
  146. package/es/HiTable/HiTableFooter.js +0 -74
  147. package/hmu/images/countries/ad.svg +0 -151
  148. package/hmu/images/countries/ae.svg +0 -6
  149. package/hmu/images/countries/af.svg +0 -83
  150. package/hmu/images/countries/ag.svg +0 -15
  151. package/hmu/images/countries/ai.svg +0 -767
  152. package/hmu/images/countries/al.svg +0 -5
  153. package/hmu/images/countries/am.svg +0 -5
  154. package/hmu/images/countries/ao.svg +0 -13
  155. package/hmu/images/countries/aq.svg +0 -6
  156. package/hmu/images/countries/ar.svg +0 -32
  157. package/hmu/images/countries/as.svg +0 -33
  158. package/hmu/images/countries/at.svg +0 -6
  159. package/hmu/images/countries/au.svg +0 -9
  160. package/hmu/images/countries/aw.svg +0 -186
  161. package/hmu/images/countries/ax.svg +0 -18
  162. package/hmu/images/countries/az.svg +0 -8
  163. package/hmu/images/countries/ba.svg +0 -12
  164. package/hmu/images/countries/bb.svg +0 -6
  165. package/hmu/images/countries/bd.svg +0 -4
  166. package/hmu/images/countries/be.svg +0 -7
  167. package/hmu/images/countries/bf.svg +0 -7
  168. package/hmu/images/countries/bg.svg +0 -7
  169. package/hmu/images/countries/bh.svg +0 -11
  170. package/hmu/images/countries/bi.svg +0 -15
  171. package/hmu/images/countries/bj.svg +0 -14
  172. package/hmu/images/countries/bl.svg +0 -7
  173. package/hmu/images/countries/bm.svg +0 -99
  174. package/hmu/images/countries/bn.svg +0 -36
  175. package/hmu/images/countries/bo.svg +0 -686
  176. package/hmu/images/countries/bq.svg +0 -5
  177. package/hmu/images/countries/br.svg +0 -45
  178. package/hmu/images/countries/bs.svg +0 -13
  179. package/hmu/images/countries/bt.svg +0 -89
  180. package/hmu/images/countries/bv.svg +0 -13
  181. package/hmu/images/countries/bw.svg +0 -7
  182. package/hmu/images/countries/by.svg +0 -61
  183. package/hmu/images/countries/bz.svg +0 -146
  184. package/hmu/images/countries/ca.svg +0 -4
  185. package/hmu/images/countries/cc.svg +0 -19
  186. package/hmu/images/countries/cd.svg +0 -5
  187. package/hmu/images/countries/cf.svg +0 -15
  188. package/hmu/images/countries/cg.svg +0 -12
  189. package/hmu/images/countries/ch.svg +0 -9
  190. package/hmu/images/countries/ci.svg +0 -7
  191. package/hmu/images/countries/ck.svg +0 -9
  192. package/hmu/images/countries/cl.svg +0 -13
  193. package/hmu/images/countries/cm.svg +0 -15
  194. package/hmu/images/countries/cn.svg +0 -11
  195. package/hmu/images/countries/co.svg +0 -7
  196. package/hmu/images/countries/cr.svg +0 -7
  197. package/hmu/images/countries/cu.svg +0 -13
  198. package/hmu/images/countries/cv.svg +0 -13
  199. package/hmu/images/countries/cw.svg +0 -14
  200. package/hmu/images/countries/cx.svg +0 -15
  201. package/hmu/images/countries/cy.svg +0 -6
  202. package/hmu/images/countries/cz.svg +0 -12
  203. package/hmu/images/countries/de.svg +0 -5
  204. package/hmu/images/countries/dj.svg +0 -13
  205. package/hmu/images/countries/dk.svg +0 -5
  206. package/hmu/images/countries/dm.svg +0 -152
  207. package/hmu/images/countries/do.svg +0 -6745
  208. package/hmu/images/countries/dz.svg +0 -5
  209. package/hmu/images/countries/ec.svg +0 -141
  210. package/hmu/images/countries/ee.svg +0 -7
  211. package/hmu/images/countries/eg.svg +0 -38
  212. package/hmu/images/countries/eh.svg +0 -15
  213. package/hmu/images/countries/er.svg +0 -8
  214. package/hmu/images/countries/es-ct.svg +0 -4
  215. package/hmu/images/countries/es.svg +0 -581
  216. package/hmu/images/countries/et.svg +0 -14
  217. package/hmu/images/countries/eu.svg +0 -28
  218. package/hmu/images/countries/fi.svg +0 -5
  219. package/hmu/images/countries/fj.svg +0 -124
  220. package/hmu/images/countries/fk.svg +0 -90
  221. package/hmu/images/countries/fm.svg +0 -11
  222. package/hmu/images/countries/fo.svg +0 -12
  223. package/hmu/images/countries/fr.svg +0 -7
  224. package/hmu/images/countries/ga.svg +0 -7
  225. package/hmu/images/countries/gb-eng.svg +0 -5
  226. package/hmu/images/countries/gb-nir.svg +0 -137
  227. package/hmu/images/countries/gb-sct.svg +0 -4
  228. package/hmu/images/countries/gb-wls.svg +0 -9
  229. package/hmu/images/countries/gb.svg +0 -15
  230. package/hmu/images/countries/gd.svg +0 -27
  231. package/hmu/images/countries/ge.svg +0 -6
  232. package/hmu/images/countries/gf.svg +0 -5
  233. package/hmu/images/countries/gg.svg +0 -9
  234. package/hmu/images/countries/gh.svg +0 -6
  235. package/hmu/images/countries/gi.svg +0 -33
  236. package/hmu/images/countries/gl.svg +0 -4
  237. package/hmu/images/countries/gm.svg +0 -14
  238. package/hmu/images/countries/gn.svg +0 -7
  239. package/hmu/images/countries/gp.svg +0 -7
  240. package/hmu/images/countries/gq.svg +0 -23
  241. package/hmu/images/countries/gr.svg +0 -22
  242. package/hmu/images/countries/gs.svg +0 -205
  243. package/hmu/images/countries/gt.svg +0 -204
  244. package/hmu/images/countries/gu.svg +0 -39
  245. package/hmu/images/countries/gw.svg +0 -13
  246. package/hmu/images/countries/gy.svg +0 -9
  247. package/hmu/images/countries/hk.svg +0 -32
  248. package/hmu/images/countries/hm.svg +0 -9
  249. package/hmu/images/countries/hn.svg +0 -18
  250. package/hmu/images/countries/hr.svg +0 -59
  251. package/hmu/images/countries/ht.svg +0 -122
  252. package/hmu/images/countries/hu.svg +0 -7
  253. package/hmu/images/countries/id.svg +0 -6
  254. package/hmu/images/countries/ie.svg +0 -7
  255. package/hmu/images/countries/il.svg +0 -14
  256. package/hmu/images/countries/im.svg +0 -36
  257. package/hmu/images/countries/in.svg +0 -25
  258. package/hmu/images/countries/io.svg +0 -148
  259. package/hmu/images/countries/iq.svg +0 -10
  260. package/hmu/images/countries/ir.svg +0 -219
  261. package/hmu/images/countries/is.svg +0 -12
  262. package/hmu/images/countries/it.svg +0 -7
  263. package/hmu/images/countries/je.svg +0 -32
  264. package/hmu/images/countries/jm.svg +0 -8
  265. package/hmu/images/countries/jo.svg +0 -16
  266. package/hmu/images/countries/jp.svg +0 -11
  267. package/hmu/images/countries/ke.svg +0 -23
  268. package/hmu/images/countries/kg.svg +0 -15
  269. package/hmu/images/countries/kh.svg +0 -69
  270. package/hmu/images/countries/ki.svg +0 -36
  271. package/hmu/images/countries/km.svg +0 -16
  272. package/hmu/images/countries/kn.svg +0 -14
  273. package/hmu/images/countries/kp.svg +0 -15
  274. package/hmu/images/countries/kr.svg +0 -24
  275. package/hmu/images/countries/kw.svg +0 -13
  276. package/hmu/images/countries/ky.svg +0 -63
  277. package/hmu/images/countries/kz.svg +0 -23
  278. package/hmu/images/countries/la.svg +0 -12
  279. package/hmu/images/countries/lb.svg +0 -15
  280. package/hmu/images/countries/lc.svg +0 -8
  281. package/hmu/images/countries/li.svg +0 -43
  282. package/hmu/images/countries/lk.svg +0 -22
  283. package/hmu/images/countries/lr.svg +0 -14
  284. package/hmu/images/countries/ls.svg +0 -8
  285. package/hmu/images/countries/lt.svg +0 -7
  286. package/hmu/images/countries/lu.svg +0 -5
  287. package/hmu/images/countries/lv.svg +0 -6
  288. package/hmu/images/countries/ly.svg +0 -13
  289. package/hmu/images/countries/ma.svg +0 -4
  290. package/hmu/images/countries/mc.svg +0 -6
  291. package/hmu/images/countries/md.svg +0 -72
  292. package/hmu/images/countries/me.svg +0 -118
  293. package/hmu/images/countries/mf.svg +0 -7
  294. package/hmu/images/countries/mg.svg +0 -7
  295. package/hmu/images/countries/mh.svg +0 -7
  296. package/hmu/images/countries/mk.svg +0 -5
  297. package/hmu/images/countries/ml.svg +0 -7
  298. package/hmu/images/countries/mm.svg +0 -16
  299. package/hmu/images/countries/mn.svg +0 -13
  300. package/hmu/images/countries/mo.svg +0 -9
  301. package/hmu/images/countries/mp.svg +0 -86
  302. package/hmu/images/countries/mq.svg +0 -7
  303. package/hmu/images/countries/mr.svg +0 -6
  304. package/hmu/images/countries/ms.svg +0 -39
  305. package/hmu/images/countries/mt.svg +0 -49
  306. package/hmu/images/countries/mu.svg +0 -8
  307. package/hmu/images/countries/mv.svg +0 -6
  308. package/hmu/images/countries/mw.svg +0 -10
  309. package/hmu/images/countries/mx.svg +0 -385
  310. package/hmu/images/countries/my.svg +0 -15
  311. package/hmu/images/countries/mz.svg +0 -21
  312. package/hmu/images/countries/na.svg +0 -16
  313. package/hmu/images/countries/nc.svg +0 -7
  314. package/hmu/images/countries/ne.svg +0 -6
  315. package/hmu/images/countries/nf.svg +0 -9
  316. package/hmu/images/countries/ng.svg +0 -6
  317. package/hmu/images/countries/ni.svg +0 -131
  318. package/hmu/images/countries/nl.svg +0 -7
  319. package/hmu/images/countries/no.svg +0 -7
  320. package/hmu/images/countries/np.svg +0 -14
  321. package/hmu/images/countries/nr.svg +0 -12
  322. package/hmu/images/countries/nu.svg +0 -26
  323. package/hmu/images/countries/nz.svg +0 -41
  324. package/hmu/images/countries/om.svg +0 -116
  325. package/hmu/images/countries/pa.svg +0 -14
  326. package/hmu/images/countries/pe.svg +0 -279
  327. package/hmu/images/countries/pf.svg +0 -19
  328. package/hmu/images/countries/pg.svg +0 -9
  329. package/hmu/images/countries/ph.svg +0 -28
  330. package/hmu/images/countries/pk.svg +0 -15
  331. package/hmu/images/countries/pl.svg +0 -6
  332. package/hmu/images/countries/pm.svg +0 -7
  333. package/hmu/images/countries/pn.svg +0 -62
  334. package/hmu/images/countries/pr.svg +0 -13
  335. package/hmu/images/countries/ps.svg +0 -15
  336. package/hmu/images/countries/pt.svg +0 -57
  337. package/hmu/images/countries/pw.svg +0 -11
  338. package/hmu/images/countries/py.svg +0 -157
  339. package/hmu/images/countries/qa.svg +0 -4
  340. package/hmu/images/countries/re.svg +0 -7
  341. package/hmu/images/countries/ro.svg +0 -7
  342. package/hmu/images/countries/rs.svg +0 -292
  343. package/hmu/images/countries/ru.svg +0 -7
  344. package/hmu/images/countries/rw.svg +0 -13
  345. package/hmu/images/countries/sa.svg +0 -26
  346. package/hmu/images/countries/sb.svg +0 -13
  347. package/hmu/images/countries/sc.svg +0 -14
  348. package/hmu/images/countries/sd.svg +0 -13
  349. package/hmu/images/countries/se.svg +0 -16
  350. package/hmu/images/countries/sg.svg +0 -13
  351. package/hmu/images/countries/sh.svg +0 -74
  352. package/hmu/images/countries/si.svg +0 -18
  353. package/hmu/images/countries/sj.svg +0 -7
  354. package/hmu/images/countries/sk.svg +0 -9
  355. package/hmu/images/countries/sl.svg +0 -7
  356. package/hmu/images/countries/sm.svg +0 -91
  357. package/hmu/images/countries/sn.svg +0 -8
  358. package/hmu/images/countries/so.svg +0 -11
  359. package/hmu/images/countries/sr.svg +0 -6
  360. package/hmu/images/countries/ss.svg +0 -8
  361. package/hmu/images/countries/st.svg +0 -16
  362. package/hmu/images/countries/sv.svg +0 -618
  363. package/hmu/images/countries/sx.svg +0 -56
  364. package/hmu/images/countries/sy.svg +0 -6
  365. package/hmu/images/countries/sz.svg +0 -45
  366. package/hmu/images/countries/tc.svg +0 -67
  367. package/hmu/images/countries/td.svg +0 -7
  368. package/hmu/images/countries/tf.svg +0 -15
  369. package/hmu/images/countries/tg.svg +0 -14
  370. package/hmu/images/countries/th.svg +0 -7
  371. package/hmu/images/countries/tj.svg +0 -22
  372. package/hmu/images/countries/tk.svg +0 -5
  373. package/hmu/images/countries/tl.svg +0 -13
  374. package/hmu/images/countries/tm.svg +0 -213
  375. package/hmu/images/countries/tn.svg +0 -13
  376. package/hmu/images/countries/to.svg +0 -10
  377. package/hmu/images/countries/tr.svg +0 -8
  378. package/hmu/images/countries/tt.svg +0 -5
  379. package/hmu/images/countries/tv.svg +0 -27
  380. package/hmu/images/countries/tw.svg +0 -14
  381. package/hmu/images/countries/tz.svg +0 -13
  382. package/hmu/images/countries/ua.svg +0 -6
  383. package/hmu/images/countries/ug.svg +0 -30
  384. package/hmu/images/countries/um.svg +0 -23
  385. package/hmu/images/countries/un.svg +0 -16
  386. package/hmu/images/countries/us.svg +0 -12
  387. package/hmu/images/countries/uy.svg +0 -28
  388. package/hmu/images/countries/uz.svg +0 -30
  389. package/hmu/images/countries/va.svg +0 -483
  390. package/hmu/images/countries/vc.svg +0 -8
  391. package/hmu/images/countries/ve.svg +0 -26
  392. package/hmu/images/countries/vg.svg +0 -133
  393. package/hmu/images/countries/vi.svg +0 -31
  394. package/hmu/images/countries/vn.svg +0 -11
  395. package/hmu/images/countries/vu.svg +0 -18
  396. package/hmu/images/countries/wf.svg +0 -7
  397. package/hmu/images/countries/ws.svg +0 -7
  398. package/hmu/images/countries/ye.svg +0 -7
  399. package/hmu/images/countries/yt.svg +0 -7
  400. package/hmu/images/countries/za.svg +0 -17
  401. package/hmu/images/countries/zm.svg +0 -27
  402. package/hmu/images/countries/zw.svg +0 -21
  403. package/hmu/images/hipay-white-logo.svg +0 -42
  404. 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
  */