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

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