@hipay/hipay-material-ui 2.3.1-rc3 → 2.3.1-rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. package/App.test.js +8 -0
  2. package/HiAlertModal/HiAlertModal.js +48 -77
  3. package/HiAlertModal/HiAlertModal.test.js +189 -0
  4. package/HiAlertModal/index.js +1 -15
  5. package/HiAppBar/HiAppBar.js +34 -63
  6. package/HiAppBar/index.js +1 -15
  7. package/HiBadge/HiBadge.js +10 -29
  8. package/HiBadge/HiBadge.test.js +49 -0
  9. package/HiBadge/index.js +1 -15
  10. package/HiBreadcrumb/HiBreadcrumb.js +27 -43
  11. package/HiBreadcrumb/HiBreadcrumb.test.js +44 -0
  12. package/HiBreadcrumb/HiStep.js +35 -57
  13. package/HiBreadcrumb/HiStep.test.js +47 -0
  14. package/HiBreadcrumb/HiStepConnector.js +32 -57
  15. package/HiBreadcrumb/HiStepConnector.test.js +113 -0
  16. package/HiBreadcrumb/HiStepContent.js +25 -46
  17. package/HiBreadcrumb/HiStepContent.test.js +32 -0
  18. package/HiBreadcrumb/HiStepIcon.js +26 -46
  19. package/HiBreadcrumb/HiStepIcon.test.js +65 -0
  20. package/HiBreadcrumb/HiStepLabel.js +36 -61
  21. package/HiBreadcrumb/HiStepLabel.test.js +30 -0
  22. package/HiBreadcrumb/HiStepper.js +23 -45
  23. package/HiBreadcrumb/HiStepper.test.js +33 -0
  24. package/HiBreadcrumb/index.js +1 -15
  25. package/HiButton/HiButton.js +9 -27
  26. package/HiButton/index.js +2 -13
  27. package/HiCell/CellAddress.js +20 -40
  28. package/HiCell/CellAddress.test.js +75 -0
  29. package/HiCell/CellDate.js +26 -47
  30. package/HiCell/CellDate.test.js +173 -0
  31. package/HiCell/CellIcon.js +28 -49
  32. package/HiCell/CellIcon.test.js +57 -0
  33. package/HiCell/CellImage.js +23 -42
  34. package/HiCell/CellImage.test.js +49 -0
  35. package/HiCell/CellNumeric.js +25 -46
  36. package/HiCell/CellNumeric.test.js +46 -0
  37. package/HiCell/CellPinToAction.js +20 -41
  38. package/HiCell/CellRate.js +32 -55
  39. package/HiCell/CellRate.test.js +73 -0
  40. package/HiCell/CellSentinel.js +22 -42
  41. package/HiCell/CellSentinel.test.js +48 -0
  42. package/HiCell/CellSentinelScore.js +23 -44
  43. package/HiCell/CellText.js +37 -56
  44. package/HiCell/CellText.test.js +76 -0
  45. package/HiCell/CellTextStyled.js +8 -21
  46. package/HiCell/index.js +9 -79
  47. package/HiCheckbox/HiCheckbox.js +35 -60
  48. package/HiCheckbox/HiCheckbox.test.js +55 -0
  49. package/HiCheckbox/index.js +1 -15
  50. package/HiChip/HiChip.js +24 -44
  51. package/HiChip/HiChip.test.js +136 -0
  52. package/HiChip/HiChipSwitch.js +47 -70
  53. package/HiChip/HiChipSwitch.test.js +99 -0
  54. package/HiChip/index.js +2 -23
  55. package/HiColoredLabel/HiColoredLabel.js +28 -52
  56. package/HiColoredLabel/HiColoredLabel.test.js +96 -0
  57. package/HiColoredLabel/index.js +1 -15
  58. package/HiDatePicker/Caption.js +11 -28
  59. package/HiDatePicker/Caption.test.js +65 -0
  60. package/HiDatePicker/HiDatePicker.js +100 -115
  61. package/HiDatePicker/HiDatePicker.test.js +370 -0
  62. package/HiDatePicker/HiDatePickerMobile.js +32 -54
  63. package/HiDatePicker/HiDateRangePicker.js +138 -149
  64. package/HiDatePicker/HiDateRangePicker.test.js +703 -0
  65. package/HiDatePicker/HiDateRangeSelector.js +71 -103
  66. package/HiDatePicker/HiDateRangeSelector.test.js +193 -0
  67. package/HiDatePicker/ListPicker.js +33 -55
  68. package/HiDatePicker/ListPicker.test.js +53 -0
  69. package/HiDatePicker/NavBar.js +18 -45
  70. package/HiDatePicker/NavBar.test.js +39 -0
  71. package/HiDatePicker/Overlays/CustomOverlayLayout.js +23 -40
  72. package/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +22 -39
  73. package/HiDatePicker/Overlays/MonthPickerOverlay.js +29 -45
  74. package/HiDatePicker/Overlays/MonthPickerOverlay.test.js +50 -0
  75. package/HiDatePicker/Overlays/Overlay.js +18 -35
  76. package/HiDatePicker/Overlays/Overlay.test.js +20 -0
  77. package/HiDatePicker/Overlays/TimePickerOverlay.js +47 -73
  78. package/HiDatePicker/Overlays/TimePickerOverlay.test.js +48 -0
  79. package/HiDatePicker/Overlays/YearPickerOverlay.js +29 -45
  80. package/HiDatePicker/Overlays/YearPickerOverlay.test.js +79 -0
  81. package/HiDatePicker/Overlays/index.js +5 -47
  82. package/HiDatePicker/Weekday.js +3 -13
  83. package/HiDatePicker/hiLocaleUtils.js +1 -8
  84. package/HiDatePicker/hiLocaleUtils.test.js +51 -0
  85. package/HiDatePicker/index.js +1 -15
  86. package/HiDatePicker/stylesheet.js +9 -22
  87. package/HiDotsStepper/HiDot.js +30 -57
  88. package/HiDotsStepper/HiDot.test.js +55 -0
  89. package/HiDotsStepper/HiDotsStepper.js +29 -47
  90. package/HiDotsStepper/HiDotsStepper.test.js +90 -0
  91. package/HiDotsStepper/index.js +2 -23
  92. package/HiExpansionPanel/HiExpansionPanel.js +42 -72
  93. package/HiExpansionPanel/index.js +2 -13
  94. package/HiForm/HiAddressField.js +30 -47
  95. package/HiForm/HiAddressField.test.js +79 -0
  96. package/HiForm/HiEmailField.js +28 -46
  97. package/HiForm/HiEmailField.test.js +19 -0
  98. package/HiForm/HiFormControl.js +72 -100
  99. package/HiForm/HiFormControl.test.js +195 -0
  100. package/HiForm/HiFormLabel.js +29 -54
  101. package/HiForm/HiFormLabel.test.js +66 -0
  102. package/HiForm/HiInput.js +62 -86
  103. package/HiForm/HiInput.test.js +202 -0
  104. package/HiForm/HiPasswordField.js +29 -55
  105. package/HiForm/HiPasswordField.test.js +60 -0
  106. package/HiForm/HiSearchField.js +27 -44
  107. package/HiForm/HiSearchField.test.js +193 -0
  108. package/HiForm/HiSlider.js +42 -64
  109. package/HiForm/HiSlider.test.js +99 -0
  110. package/HiForm/HiTextField.js +29 -46
  111. package/HiForm/HiTextField.test.js +254 -0
  112. package/HiForm/HiUpload.js +54 -70
  113. package/HiForm/HiUpload.test.js +241 -0
  114. package/HiForm/HiUploadField.js +24 -41
  115. package/HiForm/HiUploadField.test.js +55 -0
  116. package/HiForm/HiUploadInput.js +56 -77
  117. package/HiForm/HiUploadInput.test.js +148 -0
  118. package/HiForm/index.js +11 -95
  119. package/HiIcon/HiIcon.js +22 -44
  120. package/HiIcon/index.js +1 -15
  121. package/HiIconButton/HiIconButton.js +18 -40
  122. package/HiIconButton/HiIconButton.test.js +69 -0
  123. package/HiIconButton/index.js +1 -15
  124. package/HiLoader/HiLoader.js +9 -24
  125. package/HiLoader/HiLoader.test.js +18 -0
  126. package/HiLoader/index.js +1 -15
  127. package/HiMap/HiMap.js +50 -77
  128. package/HiMap/HiMap.test.js +29 -0
  129. package/HiMap/HiMapExpand.js +39 -64
  130. package/HiMap/HiMapExpand.test.js +48 -0
  131. package/HiMap/index.js +2 -23
  132. package/HiNotice/HiKPI.js +33 -54
  133. package/HiNotice/HiKPI.test.js +171 -0
  134. package/HiNotice/HiKPINotice.js +7 -21
  135. package/HiNotice/HiKPINotice.test.js +88 -0
  136. package/HiNotice/index.js +2 -23
  137. package/HiPaymentMeans/HiPaymentMeans.js +112 -131
  138. package/HiPaymentMeans/HiPaymentMeans.test.js +162 -0
  139. package/HiPaymentMeans/index.js +1 -15
  140. package/HiPdfReader/HiPdfReader.js +51 -76
  141. package/HiPdfReader/index.js +1 -15
  142. package/HiPin/HiPin.js +9 -30
  143. package/HiPin/HiPin.test.js +61 -0
  144. package/HiPin/index.js +1 -15
  145. package/HiRadio/HiRadio.js +7 -24
  146. package/HiRadio/HiRadio.test.js +57 -0
  147. package/HiRadio/index.js +1 -15
  148. package/HiSelect/HiDynamicSelect.js +40 -56
  149. package/HiSelect/HiDynamicSelectField.js +22 -40
  150. package/HiSelect/HiNestedSelect.js +55 -84
  151. package/HiSelect/HiNestedSelectContent.js +46 -73
  152. package/HiSelect/HiNestedSelectField.js +22 -40
  153. package/HiSelect/HiSelect.js +123 -139
  154. package/HiSelect/HiSelect.test.js +1092 -0
  155. package/HiSelect/HiSelectContent.js +73 -95
  156. package/HiSelect/HiSelectField.js +22 -40
  157. package/HiSelect/HiSelectInput.js +63 -87
  158. package/HiSelect/HiSelectInput.test.js +21 -0
  159. package/HiSelect/HiSelectMobile.js +35 -54
  160. package/HiSelect/HiSuggestSelect.js +56 -78
  161. package/HiSelect/HiSuggestSelectField.js +22 -40
  162. package/HiSelect/index.js +8 -85
  163. package/HiSelectableList/HiSelectableList.js +49 -77
  164. package/HiSelectableList/HiSelectableList.test.js +173 -0
  165. package/HiSelectableList/HiSelectableListHierarchic.js +35 -56
  166. package/HiSelectableList/HiSelectableListItem.js +66 -98
  167. package/HiSelectableList/HiSelectableListItem.test.js +97 -0
  168. package/HiSelectableList/index.js +3 -31
  169. package/HiSwitch/HiSwitch.js +20 -45
  170. package/HiSwitch/HiSwitch.test.js +41 -0
  171. package/HiSwitch/HiSwitchState.js +15 -36
  172. package/HiSwitch/HiSwitchState.test.js +76 -0
  173. package/HiSwitch/index.js +2 -23
  174. package/HiTable/HiCellBuilder.js +44 -72
  175. package/HiTable/HiTable.js +29 -47
  176. package/HiTable/HiTable.test.js +29 -0
  177. package/HiTable/HiTableBody.js +19 -34
  178. package/HiTable/HiTableHeader.js +30 -53
  179. package/HiTable/HiTableRow.js +29 -56
  180. package/HiTable/constants.js +43 -94
  181. package/HiTable/index.js +1 -15
  182. package/es/App.test.js +8 -0
  183. package/es/HiAlertModal/HiAlertModal.js +48 -77
  184. package/es/HiAlertModal/HiAlertModal.test.js +189 -0
  185. package/es/HiAlertModal/index.js +1 -15
  186. package/es/HiAppBar/HiAppBar.js +34 -63
  187. package/es/HiAppBar/index.js +1 -15
  188. package/es/HiBadge/HiBadge.js +10 -29
  189. package/es/HiBadge/HiBadge.test.js +49 -0
  190. package/es/HiBadge/index.js +1 -15
  191. package/es/HiBreadcrumb/HiBreadcrumb.js +27 -43
  192. package/es/HiBreadcrumb/HiBreadcrumb.test.js +44 -0
  193. package/es/HiBreadcrumb/HiStep.js +35 -57
  194. package/es/HiBreadcrumb/HiStep.test.js +47 -0
  195. package/es/HiBreadcrumb/HiStepConnector.js +32 -57
  196. package/es/HiBreadcrumb/HiStepConnector.test.js +113 -0
  197. package/es/HiBreadcrumb/HiStepContent.js +25 -46
  198. package/es/HiBreadcrumb/HiStepContent.test.js +32 -0
  199. package/es/HiBreadcrumb/HiStepIcon.js +26 -46
  200. package/es/HiBreadcrumb/HiStepIcon.test.js +65 -0
  201. package/es/HiBreadcrumb/HiStepLabel.js +36 -61
  202. package/es/HiBreadcrumb/HiStepLabel.test.js +30 -0
  203. package/es/HiBreadcrumb/HiStepper.js +23 -45
  204. package/es/HiBreadcrumb/HiStepper.test.js +33 -0
  205. package/es/HiBreadcrumb/index.js +1 -15
  206. package/es/HiButton/HiButton.js +9 -27
  207. package/es/HiButton/index.js +2 -13
  208. package/es/HiCell/CellAddress.js +20 -40
  209. package/es/HiCell/CellAddress.test.js +75 -0
  210. package/es/HiCell/CellDate.js +26 -47
  211. package/es/HiCell/CellDate.test.js +173 -0
  212. package/es/HiCell/CellIcon.js +28 -49
  213. package/es/HiCell/CellIcon.test.js +57 -0
  214. package/es/HiCell/CellImage.js +23 -42
  215. package/es/HiCell/CellImage.test.js +49 -0
  216. package/es/HiCell/CellNumeric.js +25 -46
  217. package/es/HiCell/CellNumeric.test.js +46 -0
  218. package/es/HiCell/CellPinToAction.js +20 -41
  219. package/es/HiCell/CellRate.js +32 -55
  220. package/es/HiCell/CellRate.test.js +73 -0
  221. package/es/HiCell/CellSentinel.js +22 -42
  222. package/es/HiCell/CellSentinel.test.js +48 -0
  223. package/es/HiCell/CellSentinelScore.js +23 -44
  224. package/es/HiCell/CellText.js +37 -56
  225. package/es/HiCell/CellText.test.js +76 -0
  226. package/es/HiCell/CellTextStyled.js +8 -21
  227. package/es/HiCell/index.js +9 -79
  228. package/es/HiCheckbox/HiCheckbox.js +35 -60
  229. package/es/HiCheckbox/HiCheckbox.test.js +55 -0
  230. package/es/HiCheckbox/index.js +1 -15
  231. package/es/HiChip/HiChip.js +24 -44
  232. package/es/HiChip/HiChip.test.js +136 -0
  233. package/es/HiChip/HiChipSwitch.js +47 -70
  234. package/es/HiChip/HiChipSwitch.test.js +99 -0
  235. package/es/HiChip/index.js +2 -23
  236. package/es/HiColoredLabel/HiColoredLabel.js +28 -52
  237. package/es/HiColoredLabel/HiColoredLabel.test.js +96 -0
  238. package/es/HiColoredLabel/index.js +1 -15
  239. package/es/HiDatePicker/Caption.js +11 -28
  240. package/es/HiDatePicker/Caption.test.js +65 -0
  241. package/es/HiDatePicker/HiDatePicker.js +100 -115
  242. package/es/HiDatePicker/HiDatePicker.test.js +370 -0
  243. package/es/HiDatePicker/HiDatePickerMobile.js +32 -54
  244. package/es/HiDatePicker/HiDateRangePicker.js +138 -149
  245. package/es/HiDatePicker/HiDateRangePicker.test.js +703 -0
  246. package/es/HiDatePicker/HiDateRangeSelector.js +71 -103
  247. package/es/HiDatePicker/HiDateRangeSelector.test.js +193 -0
  248. package/es/HiDatePicker/ListPicker.js +33 -55
  249. package/es/HiDatePicker/ListPicker.test.js +53 -0
  250. package/es/HiDatePicker/NavBar.js +18 -45
  251. package/es/HiDatePicker/NavBar.test.js +39 -0
  252. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +23 -40
  253. package/es/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +22 -39
  254. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +29 -45
  255. package/es/HiDatePicker/Overlays/MonthPickerOverlay.test.js +50 -0
  256. package/es/HiDatePicker/Overlays/Overlay.js +18 -35
  257. package/es/HiDatePicker/Overlays/Overlay.test.js +20 -0
  258. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +47 -73
  259. package/es/HiDatePicker/Overlays/TimePickerOverlay.test.js +48 -0
  260. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +29 -45
  261. package/es/HiDatePicker/Overlays/YearPickerOverlay.test.js +79 -0
  262. package/es/HiDatePicker/Overlays/index.js +5 -47
  263. package/es/HiDatePicker/Weekday.js +3 -13
  264. package/es/HiDatePicker/hiLocaleUtils.js +1 -8
  265. package/es/HiDatePicker/hiLocaleUtils.test.js +51 -0
  266. package/es/HiDatePicker/index.js +1 -15
  267. package/es/HiDatePicker/stylesheet.js +9 -22
  268. package/es/HiDotsStepper/HiDot.js +30 -57
  269. package/es/HiDotsStepper/HiDot.test.js +55 -0
  270. package/es/HiDotsStepper/HiDotsStepper.js +29 -47
  271. package/es/HiDotsStepper/HiDotsStepper.test.js +90 -0
  272. package/es/HiDotsStepper/index.js +2 -23
  273. package/es/HiExpansionPanel/HiExpansionPanel.js +42 -72
  274. package/es/HiExpansionPanel/index.js +2 -13
  275. package/es/HiForm/HiAddressField.js +30 -47
  276. package/es/HiForm/HiAddressField.test.js +79 -0
  277. package/es/HiForm/HiEmailField.js +28 -46
  278. package/es/HiForm/HiEmailField.test.js +19 -0
  279. package/es/HiForm/HiFormControl.js +72 -100
  280. package/es/HiForm/HiFormControl.test.js +195 -0
  281. package/es/HiForm/HiFormLabel.js +29 -54
  282. package/es/HiForm/HiFormLabel.test.js +66 -0
  283. package/es/HiForm/HiInput.js +62 -86
  284. package/es/HiForm/HiInput.test.js +202 -0
  285. package/es/HiForm/HiPasswordField.js +29 -55
  286. package/es/HiForm/HiPasswordField.test.js +60 -0
  287. package/es/HiForm/HiSearchField.js +27 -44
  288. package/es/HiForm/HiSearchField.test.js +193 -0
  289. package/es/HiForm/HiSlider.js +42 -64
  290. package/es/HiForm/HiSlider.test.js +99 -0
  291. package/es/HiForm/HiTextField.js +29 -46
  292. package/es/HiForm/HiTextField.test.js +254 -0
  293. package/es/HiForm/HiUpload.js +54 -70
  294. package/es/HiForm/HiUpload.test.js +241 -0
  295. package/es/HiForm/HiUploadField.js +24 -41
  296. package/es/HiForm/HiUploadField.test.js +55 -0
  297. package/es/HiForm/HiUploadInput.js +56 -77
  298. package/es/HiForm/HiUploadInput.test.js +148 -0
  299. package/es/HiForm/index.js +11 -95
  300. package/es/HiIcon/HiIcon.js +22 -44
  301. package/es/HiIcon/index.js +1 -15
  302. package/es/HiIconButton/HiIconButton.js +18 -40
  303. package/es/HiIconButton/HiIconButton.test.js +69 -0
  304. package/es/HiIconButton/index.js +1 -15
  305. package/es/HiLoader/HiLoader.js +9 -24
  306. package/es/HiLoader/HiLoader.test.js +18 -0
  307. package/es/HiLoader/index.js +1 -15
  308. package/es/HiMap/HiMap.js +50 -77
  309. package/es/HiMap/HiMap.test.js +29 -0
  310. package/es/HiMap/HiMapExpand.js +39 -64
  311. package/es/HiMap/HiMapExpand.test.js +48 -0
  312. package/es/HiMap/index.js +2 -23
  313. package/es/HiNotice/HiKPI.js +33 -54
  314. package/es/HiNotice/HiKPI.test.js +171 -0
  315. package/es/HiNotice/HiKPINotice.js +7 -21
  316. package/es/HiNotice/HiKPINotice.test.js +88 -0
  317. package/es/HiNotice/index.js +2 -23
  318. package/es/HiPaymentMeans/HiPaymentMeans.js +112 -131
  319. package/es/HiPaymentMeans/HiPaymentMeans.test.js +162 -0
  320. package/es/HiPaymentMeans/index.js +1 -15
  321. package/es/HiPdfReader/HiPdfReader.js +51 -76
  322. package/es/HiPdfReader/index.js +1 -15
  323. package/es/HiPin/HiPin.js +9 -30
  324. package/es/HiPin/HiPin.test.js +61 -0
  325. package/es/HiPin/index.js +1 -15
  326. package/es/HiRadio/HiRadio.js +7 -24
  327. package/es/HiRadio/HiRadio.test.js +57 -0
  328. package/es/HiRadio/index.js +1 -15
  329. package/es/HiSelect/HiDynamicSelect.js +40 -56
  330. package/es/HiSelect/HiDynamicSelectField.js +22 -40
  331. package/es/HiSelect/HiNestedSelect.js +55 -84
  332. package/es/HiSelect/HiNestedSelectContent.js +46 -73
  333. package/es/HiSelect/HiNestedSelectField.js +22 -40
  334. package/es/HiSelect/HiSelect.js +123 -139
  335. package/es/HiSelect/HiSelect.test.js +1092 -0
  336. package/es/HiSelect/HiSelectContent.js +73 -95
  337. package/es/HiSelect/HiSelectField.js +22 -40
  338. package/es/HiSelect/HiSelectInput.js +63 -87
  339. package/es/HiSelect/HiSelectInput.test.js +21 -0
  340. package/es/HiSelect/HiSelectMobile.js +35 -54
  341. package/es/HiSelect/HiSuggestSelect.js +56 -78
  342. package/es/HiSelect/HiSuggestSelectField.js +22 -40
  343. package/es/HiSelect/index.js +8 -85
  344. package/es/HiSelectableList/HiSelectableList.js +49 -77
  345. package/es/HiSelectableList/HiSelectableList.test.js +173 -0
  346. package/es/HiSelectableList/HiSelectableListHierarchic.js +35 -56
  347. package/es/HiSelectableList/HiSelectableListItem.js +66 -98
  348. package/es/HiSelectableList/HiSelectableListItem.test.js +97 -0
  349. package/es/HiSelectableList/index.js +3 -31
  350. package/es/HiSwitch/HiSwitch.js +20 -45
  351. package/es/HiSwitch/HiSwitch.test.js +41 -0
  352. package/es/HiSwitch/HiSwitchState.js +15 -36
  353. package/es/HiSwitch/HiSwitchState.test.js +76 -0
  354. package/es/HiSwitch/index.js +2 -23
  355. package/es/HiTable/HiCellBuilder.js +44 -72
  356. package/es/HiTable/HiTable.js +29 -47
  357. package/es/HiTable/HiTable.test.js +29 -0
  358. package/es/HiTable/HiTableBody.js +19 -34
  359. package/es/HiTable/HiTableHeader.js +30 -53
  360. package/es/HiTable/HiTableRow.js +29 -56
  361. package/es/HiTable/constants.js +43 -94
  362. package/es/HiTable/index.js +1 -15
  363. package/es/hi-svg-icons/HiAccount.js +18 -36
  364. package/es/hi-svg-icons/HiActivity.js +17 -35
  365. package/es/hi-svg-icons/HiAll.js +22 -42
  366. package/es/hi-svg-icons/HiBilling.js +18 -36
  367. package/es/hi-svg-icons/HiBriefcaseRescue.js +10 -26
  368. package/es/hi-svg-icons/HiCatalog.js +18 -36
  369. package/es/hi-svg-icons/HiCustomer.js +18 -36
  370. package/es/hi-svg-icons/HiDownload.js +11 -25
  371. package/es/hi-svg-icons/HiFinance.js +18 -36
  372. package/es/hi-svg-icons/HiPermission.js +17 -35
  373. package/es/hi-svg-icons/HiRoute.js +18 -36
  374. package/es/hi-svg-icons/HiSettlement.js +18 -36
  375. package/es/hi-svg-icons/HiSizeLarge.js +12 -27
  376. package/es/hi-svg-icons/HiSizeMedium.js +11 -25
  377. package/es/hi-svg-icons/HiSizeSmall.js +11 -25
  378. package/es/hi-svg-icons/HiTransaction.js +18 -36
  379. package/es/hi-svg-icons/HiUser.js +18 -36
  380. package/es/hi-svg-icons/HiWidget.js +22 -42
  381. package/es/hi-svg-icons/index.js +18 -151
  382. package/es/hi-svg-icons/index.text.js +11 -21
  383. package/es/styleguide/Wrapper.js +19 -36
  384. package/es/styles/MuiThemeProvider.js +39 -59
  385. package/es/styles/colorManipulator.js +16 -44
  386. package/es/styles/colorManipulator.test.js +242 -0
  387. package/es/styles/createBreakpoints.js +6 -20
  388. package/es/styles/createBreakpoints.test.js +48 -0
  389. package/es/styles/createGenerateClassName.js +5 -15
  390. package/es/styles/createGenerateClassName.test.js +141 -0
  391. package/es/styles/createMixins.js +8 -19
  392. package/es/styles/createMixins.test.js +24 -0
  393. package/es/styles/createMuiTheme.js +34 -53
  394. package/es/styles/createMuiTheme.test.js +67 -0
  395. package/es/styles/createPalette.js +30 -50
  396. package/es/styles/createPalette.test.js +159 -0
  397. package/es/styles/createStyles.js +1 -8
  398. package/es/styles/createStyles.test.js +8 -0
  399. package/es/styles/createTypography.js +18 -30
  400. package/es/styles/createTypography.test.js +60 -0
  401. package/es/styles/getStylesCreator.js +11 -24
  402. package/es/styles/getStylesCreator.test.js +92 -0
  403. package/es/styles/getThemeProps.js +1 -9
  404. package/es/styles/getThemeProps.test.js +39 -0
  405. package/es/styles/index.js +5 -47
  406. package/es/styles/jssPreset.js +9 -25
  407. package/es/styles/mergeClasses.js +7 -19
  408. package/es/styles/shadows.js +1 -8
  409. package/es/styles/shape.js +1 -8
  410. package/es/styles/spacing.js +1 -9
  411. package/es/styles/themeListener.js +5 -18
  412. package/es/styles/themeListener.test.js +26 -0
  413. package/es/styles/transitions.js +18 -38
  414. package/es/styles/transitions.test.js +208 -0
  415. package/es/styles/zIndex.js +1 -8
  416. package/es/test-utils/createMount.js +11 -22
  417. package/es/test-utils/createRender.js +8 -19
  418. package/es/test-utils/createShallow.js +13 -23
  419. package/es/test-utils/getClasses.js +2 -11
  420. package/es/test-utils/index.js +5 -47
  421. package/es/test-utils/until.js +6 -16
  422. package/es/test-utils/until.test.js +157 -0
  423. package/es/test-utils/unwrap.js +1 -8
  424. package/es/theme/palette.js +2 -10
  425. package/es/theme/typography.js +2 -10
  426. package/es/theme.js +2 -11
  427. package/es/transitions/utils.js +2 -13
  428. package/es/utils/exactProp.js +5 -18
  429. package/es/utils/helpers.js +18 -55
  430. package/es/withMobileDialog/index.js +1 -15
  431. package/es/withMobileDialog/withMobileDialog.js +7 -22
  432. package/es/withMobileDialog/withMobileDialog.test.js +67 -0
  433. package/hi-svg-icons/HiAccount.js +18 -36
  434. package/hi-svg-icons/HiActivity.js +17 -35
  435. package/hi-svg-icons/HiAll.js +22 -42
  436. package/hi-svg-icons/HiBilling.js +18 -36
  437. package/hi-svg-icons/HiBriefcaseRescue.js +10 -26
  438. package/hi-svg-icons/HiCatalog.js +18 -36
  439. package/hi-svg-icons/HiCustomer.js +18 -36
  440. package/hi-svg-icons/HiDownload.js +11 -25
  441. package/hi-svg-icons/HiFinance.js +18 -36
  442. package/hi-svg-icons/HiPermission.js +17 -35
  443. package/hi-svg-icons/HiRoute.js +18 -36
  444. package/hi-svg-icons/HiSettlement.js +18 -36
  445. package/hi-svg-icons/HiSizeLarge.js +12 -27
  446. package/hi-svg-icons/HiSizeMedium.js +11 -25
  447. package/hi-svg-icons/HiSizeSmall.js +11 -25
  448. package/hi-svg-icons/HiTransaction.js +18 -36
  449. package/hi-svg-icons/HiUser.js +18 -36
  450. package/hi-svg-icons/HiWidget.js +22 -42
  451. package/hi-svg-icons/index.js +18 -151
  452. package/hi-svg-icons/index.text.js +11 -21
  453. package/package.json +1 -1
  454. package/styleguide/Wrapper.js +19 -36
  455. package/styles/MuiThemeProvider.js +39 -59
  456. package/styles/colorManipulator.js +16 -44
  457. package/styles/colorManipulator.test.js +242 -0
  458. package/styles/createBreakpoints.js +6 -20
  459. package/styles/createBreakpoints.test.js +48 -0
  460. package/styles/createGenerateClassName.js +5 -15
  461. package/styles/createGenerateClassName.test.js +141 -0
  462. package/styles/createMixins.js +8 -19
  463. package/styles/createMixins.test.js +24 -0
  464. package/styles/createMuiTheme.js +34 -53
  465. package/styles/createMuiTheme.test.js +67 -0
  466. package/styles/createPalette.js +30 -50
  467. package/styles/createPalette.test.js +159 -0
  468. package/styles/createStyles.js +1 -8
  469. package/styles/createStyles.test.js +8 -0
  470. package/styles/createTypography.js +18 -30
  471. package/styles/createTypography.test.js +60 -0
  472. package/styles/getStylesCreator.js +11 -24
  473. package/styles/getStylesCreator.test.js +92 -0
  474. package/styles/getThemeProps.js +1 -9
  475. package/styles/getThemeProps.test.js +39 -0
  476. package/styles/index.js +5 -47
  477. package/styles/jssPreset.js +9 -25
  478. package/styles/mergeClasses.js +7 -19
  479. package/styles/shadows.js +1 -8
  480. package/styles/shape.js +1 -8
  481. package/styles/spacing.js +1 -9
  482. package/styles/themeListener.js +5 -18
  483. package/styles/themeListener.test.js +26 -0
  484. package/styles/transitions.js +18 -38
  485. package/styles/transitions.test.js +208 -0
  486. package/styles/zIndex.js +1 -8
  487. package/test-utils/createMount.js +11 -22
  488. package/test-utils/createRender.js +8 -19
  489. package/test-utils/createShallow.js +13 -23
  490. package/test-utils/getClasses.js +2 -11
  491. package/test-utils/index.js +5 -47
  492. package/test-utils/until.js +6 -16
  493. package/test-utils/until.test.js +157 -0
  494. package/test-utils/unwrap.js +1 -8
  495. package/theme/palette.js +2 -10
  496. package/theme/typography.js +2 -10
  497. package/theme.js +2 -11
  498. package/transitions/utils.js +2 -13
  499. package/utils/exactProp.js +5 -18
  500. package/utils/helpers.js +18 -55
  501. package/withMobileDialog/index.js +1 -15
  502. package/withMobileDialog/withMobileDialog.js +7 -22
  503. package/withMobileDialog/withMobileDialog.test.js +67 -0
@@ -0,0 +1,1092 @@
1
+ import React from 'react';
2
+ import { assert } from 'chai';
3
+ import { spy } from 'sinon';
4
+ import { createShallow, createMount } from '../test-utils';
5
+ import { foldAccents } from '../utils/helpers';
6
+ import HiSelect from './HiSelect';
7
+ import HiSelectInput from './HiSelectInput';
8
+ import HiSelectableList from '../HiSelectableList';
9
+ import HiCheckbox from '../HiCheckbox';
10
+ import HiInput from '../HiForm/HiInput';
11
+ import HiSelectableListItem from '../HiSelectableList/HiSelectableListItem';
12
+ import Popper from '@material-ui/core/Popper';
13
+ import ListItem from '@material-ui/core/ListItem';
14
+ describe('<HiSelect />', function () {
15
+ var shallow;
16
+ var mount;
17
+ before(function () {
18
+ shallow = createShallow({
19
+ dive: true
20
+ });
21
+ });
22
+ beforeEach(function () {
23
+ mount = createMount();
24
+ });
25
+ afterEach(function () {
26
+ mount.cleanUp();
27
+ }); // const playerNumberItem = { id: 2, label: 'n°12' };
28
+
29
+ var playerNumberList = [{
30
+ id: 0,
31
+ label: 'aaa',
32
+ status: 'in'
33
+ }, {
34
+ id: 1,
35
+ label: 'bbb',
36
+ status: 'out'
37
+ }, {
38
+ id: 2,
39
+ label: 'AAA',
40
+ status: 'in'
41
+ }]; // const filteredPlayerNumberList = [
42
+ // { id: 0, label: 'n°1O' },
43
+ // { id: 2, label: 'n°12' },
44
+ // ];
45
+
46
+ it('should render a functional simple select', function () {
47
+ var handler = spy();
48
+ var wrapper = shallow(React.createElement(HiSelect, {
49
+ name: 'playerNumber',
50
+ onChange: handler,
51
+ options: playerNumberList,
52
+ value: 0,
53
+ multiple: false,
54
+ searchable: true,
55
+ hiSelectableListProps: {
56
+ lazy: false
57
+ }
58
+ }));
59
+ assert.strictEqual(wrapper.state().open, false, 'should be close on mount');
60
+ wrapper.find(HiSelectInput).dive().props().onClick();
61
+ assert.strictEqual(wrapper.state().open, true, 'should be open after select input click');
62
+ wrapper.update(); // open popper
63
+
64
+ assert.strictEqual(wrapper.state().suggestions.length, 3, 'should have complete options as suggestions'); // wrapper
65
+ // .find(HiSearchField)
66
+ // .dive()
67
+ // .props()
68
+ // .onFilteredList(filteredPlayerNumberList);
69
+ // assert.strictEqual(
70
+ // wrapper.state().suggestions.length,
71
+ // 2,
72
+ // 'should have filtered options as suggestions',
73
+ // );
74
+ //
75
+ // wrapper
76
+ // .find(HiSelectableList)
77
+ // .dive()
78
+ // .props()
79
+ // .onSelect(undefined, playerNumberItem);
80
+ // assert.strictEqual(handler.calledOnce, true, 'should onChange callback be called once');
81
+ // assert.strictEqual(
82
+ // handler.calledWith(undefined, playerNumberItem.id),
83
+ // true,
84
+ // 'should onChange callback be called with selected item',
85
+ // );
86
+ //
87
+ // wrapper.setProps({ value: [0, 1] });
88
+ // assert.strictEqual(
89
+ // wrapper
90
+ // .find(HiSelectInput)
91
+ // .dive()
92
+ // .props().value,
93
+ // '2 items selected',
94
+ // 'should display 2 items selected',
95
+ // );
96
+ //
97
+ // wrapper.setProps({ value: [0, 1, 2] });
98
+ // assert.strictEqual(
99
+ // wrapper
100
+ // .find(HiSelectInput)
101
+ // .dive()
102
+ // .props().value,
103
+ // '3 items selected',
104
+ // 'should display "3 items selected"',
105
+ // );
106
+ });
107
+ it('should render a functional custom select', function () {
108
+ var myFilter = function myFilter(item, search) {
109
+ return search === '' || foldAccents(item.label.toString().toLowerCase()).search(foldAccents(search.toLowerCase())) !== -1 || foldAccents(item.status.toString().toLowerCase()).search(foldAccents(search.toLowerCase())) !== -1;
110
+ };
111
+
112
+ var handler = spy();
113
+ var wrapper = shallow(React.createElement(HiSelect, {
114
+ name: 'playerNumber',
115
+ onChange: handler,
116
+ options: playerNumberList,
117
+ value: 0,
118
+ multiple: false,
119
+ searchable: true,
120
+ filterFunc: myFilter,
121
+ hiSelectableListProps: {
122
+ lazy: false
123
+ }
124
+ }));
125
+ assert.strictEqual(wrapper.state().open, false, 'should be close on mount');
126
+ wrapper.find(HiSelectInput).dive().props().onClick();
127
+ assert.strictEqual(wrapper.state().open, true, 'should be open after select input click');
128
+ wrapper.update(); // open popper
129
+
130
+ assert.strictEqual(wrapper.state().suggestions.length, 3, 'should have complete options as suggestions'); // test custom search function
131
+
132
+ var wrapper2 = mount(React.createElement(HiSelect, {
133
+ id: "select",
134
+ hideCheckbox: true,
135
+ hiSelectableListProps: {
136
+ hideCheckbox: true,
137
+ lazy: false
138
+ },
139
+ name: 'playerNumber',
140
+ onChange: handler,
141
+ options: playerNumberList,
142
+ value: 0,
143
+ multiple: false,
144
+ searchable: true,
145
+ filterFunc: myFilter
146
+ }));
147
+ wrapper2.find(HiSelectInput).simulate('click');
148
+ assert.strictEqual(wrapper2.find(HiSelectableList).length, 1, 'should have HiSelectableList');
149
+ assert.strictEqual(wrapper2.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
150
+ assert.strictEqual(wrapper2.find(HiInput).length, 1, 'should have 1 HiInput');
151
+ wrapper2.find('input[type="text"]').simulate('change', {
152
+ target: {
153
+ value: 'in'
154
+ }
155
+ });
156
+ assert.strictEqual(wrapper2.find(HiSelectableListItem).length, 2, 'should have 2 HiSelectableListItem');
157
+ assert.strictEqual(wrapper2.find(HiSelectableListItem).at(0).text(), 'aaa');
158
+ assert.strictEqual(wrapper2.find(HiSelectableListItem).at(1).text(), 'AAA');
159
+ });
160
+ it('tests to mount simple HiSelect', function () {
161
+ var handleChange = spy();
162
+ var handleSubmit = spy();
163
+ var wrapper = mount(React.createElement(HiSelect, {
164
+ id: "select",
165
+ name: 'playerNumber',
166
+ options: playerNumberList,
167
+ value: 0,
168
+ onChange: handleChange,
169
+ onSubmit: handleSubmit,
170
+ multiple: false,
171
+ hiSelectableListProps: {
172
+ lazy: false
173
+ }
174
+ })); // Check components when it is closed
175
+
176
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
177
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
178
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
179
+ assert.strictEqual(wrapper.find(HiInput).length, 0, 'should not have HiInput'); // Click on HiSelectInput => open
180
+
181
+ wrapper.find(HiSelectInput).simulate('click');
182
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
183
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
184
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem');
185
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 3, 'should have 3 HiCheckbox');
186
+ assert.strictEqual(wrapper.find(HiInput).length, 0, 'should not have HiInput'); // Click on HiSelectInput => close
187
+
188
+ wrapper.find(HiSelectInput).simulate('click');
189
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Press "space" on HiSelectInput => open
190
+
191
+ wrapper.find(HiSelectInput).simulate('keydown', {
192
+ keyCode: 32
193
+ });
194
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
195
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
196
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem'); // Click on ListItem => change and close
197
+
198
+ wrapper.find(ListItem).at(2).simulate('click');
199
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on change and close with click');
200
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have HiSelectableListItem');
201
+ assert.strictEqual(handleChange.callCount, 1);
202
+ assert.strictEqual(handleChange.args[0][1], 2);
203
+ assert.strictEqual(handleChange.args[0][2], playerNumberList[2]);
204
+ });
205
+ it('tests to mount HiSelect multiple with hasAll and search', function () {
206
+ var handleChange = spy();
207
+ var handleSubmit = spy();
208
+ var wrapper = mount(React.createElement(HiSelect, {
209
+ id: "select",
210
+ name: 'playerNumber',
211
+ options: playerNumberList,
212
+ value: [0],
213
+ onChange: handleChange,
214
+ onSubmit: handleSubmit,
215
+ multiple: true,
216
+ searchable: true,
217
+ hasAll: true,
218
+ hiSelectableListProps: {
219
+ lazy: false
220
+ }
221
+ })); // Check components when it is closed
222
+
223
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
224
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
225
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
226
+ assert.strictEqual(wrapper.find(HiInput).length, 0, 'should not have HiInput'); // Click on HiSelectInput => open
227
+
228
+ wrapper.find(HiSelectInput).simulate('click');
229
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
230
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
231
+ assert.strictEqual(wrapper.find(ListItem).length, 4, 'should have 4 ListItem');
232
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 4, 'should have 4 HiCheckbox');
233
+ assert.strictEqual(wrapper.find(HiInput).length, 1, 'should have 1 HiInput'); // Click on HiSelectInput => close
234
+
235
+ wrapper.find(HiSelectInput).simulate('click');
236
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Press "enter" on HiSelectInput => onSubmit
237
+
238
+ wrapper.find(HiSelectInput).simulate('keydown', {
239
+ keyCode: 13
240
+ });
241
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
242
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have HiSelectableListItem');
243
+ assert.strictEqual(handleSubmit.callCount, 1, 'should have been called once handleSubmit'); // Press "space" on HiSelectInput => open
244
+
245
+ wrapper.find(HiSelectInput).simulate('keydown', {
246
+ keyCode: 32
247
+ });
248
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
249
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
250
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 4, 'should have 4 HiCheckbox');
251
+ assert.strictEqual(wrapper.find(ListItem).length, 4, 'should have 4 ListItem'); // Click on ListItem => change and not close (because multiple)
252
+
253
+ wrapper.find(ListItem).at(3).simulate('click');
254
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
255
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
256
+ assert.strictEqual(handleChange.callCount, 1);
257
+ assert.strictEqual(handleChange.args[0][1].length, 2);
258
+ assert.strictEqual(handleChange.args[0][1][0], 0);
259
+ assert.strictEqual(handleChange.args[0][1][1], 2);
260
+ assert.strictEqual(handleChange.args[0][2], playerNumberList[2]); // Press "space" on ListItem => change and not close (because multiple)
261
+
262
+ wrapper.find(ListItem).at(2).simulate('keydown', {
263
+ keyCode: 32
264
+ });
265
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
266
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
267
+ assert.strictEqual(handleChange.callCount, 2);
268
+ assert.strictEqual(JSON.stringify(handleChange.args[1][1]), JSON.stringify([0, 1]));
269
+ assert.strictEqual(JSON.stringify(handleChange.args[1][2]), JSON.stringify(playerNumberList[1])); // assert.strictEqual(handleChange.args[1][2], playerNumberList[1]);
270
+ // Press "enter" on ListItem => close and no change (because multiple)
271
+
272
+ wrapper.find(ListItem).at(1).simulate('keydown', {
273
+ keyCode: 13
274
+ });
275
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
276
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 4 HiSelectableListItem');
277
+ assert.strictEqual(handleChange.callCount, 2); // Press "arrow up" on HiSelectInput => open
278
+
279
+ wrapper.find(HiSelectInput).simulate('keydown', {
280
+ keyCode: 38
281
+ });
282
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
283
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
284
+ assert.strictEqual(wrapper.find(ListItem).length, 4, 'should have 4 ListItem'); // Press "enter" on ListItem => close and no change (because multiple)
285
+
286
+ wrapper.find(ListItem).at(1).simulate('keydown', {
287
+ keyCode: 13
288
+ });
289
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
290
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 4 HiSelectableListItem');
291
+ assert.strictEqual(handleChange.callCount, 2); // Press "arrow down" on HiSelectInput => open
292
+
293
+ wrapper.find(HiSelectInput).simulate('keydown', {
294
+ keyCode: 40
295
+ });
296
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
297
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
298
+ assert.strictEqual(wrapper.find(ListItem).length, 4, 'should have 4 ListItem'); // Click on ListItem '_all' => change and not close (because multiple)
299
+
300
+ wrapper.find(ListItem).at(0).simulate('click');
301
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
302
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 4, 'should have 4 HiSelectableListItem');
303
+ assert.strictEqual(handleChange.callCount, 3);
304
+ assert.strictEqual(JSON.stringify(handleChange.args[2][1]), JSON.stringify([0, 1, 2]));
305
+ assert.strictEqual(JSON.stringify(handleChange.args[2][2]), JSON.stringify({
306
+ id: '_all',
307
+ label: 'All'
308
+ }));
309
+ });
310
+ it('tests unsorted select', function () {
311
+ var handleChange = spy();
312
+ var unsortList = [{
313
+ id: 0,
314
+ label: 'aaa'
315
+ }, {
316
+ id: 1,
317
+ label: 'bbb'
318
+ }, {
319
+ id: 2,
320
+ label: 'AAA'
321
+ }, {
322
+ id: 3,
323
+ label: 'Abc'
324
+ }, {
325
+ id: 4,
326
+ label: '123'
327
+ }, {
328
+ id: 5,
329
+ label: 'été'
330
+ }, {
331
+ id: 6,
332
+ label: 'avion'
333
+ }, {
334
+ id: 7,
335
+ label: 'BalLON'
336
+ }, {
337
+ id: 8,
338
+ label: 'evier'
339
+ }, {
340
+ id: 9,
341
+ label: 'zigzag'
342
+ }, {
343
+ id: 10,
344
+ label: 'éolienne'
345
+ }];
346
+ var wrapper = mount(React.createElement(HiSelect, {
347
+ id: "select",
348
+ name: 'playerNumber',
349
+ options: unsortList,
350
+ value: 0,
351
+ onChange: handleChange,
352
+ hiSelectableListProps: {
353
+ hideCheckbox: true,
354
+ lazy: false
355
+ }
356
+ })); // Check components when it is closed
357
+
358
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
359
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
360
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Click on HiSelectInput => open
361
+
362
+ wrapper.find(HiSelectInput).simulate('click');
363
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
364
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 11, 'should have 11 HiSelectableListItem');
365
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 0, 'should not have HiCheckbox');
366
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
367
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'bbb');
368
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'AAA');
369
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'Abc');
370
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), '123');
371
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'été');
372
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(6).text(), 'avion');
373
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(7).text(), 'BalLON');
374
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(8).text(), 'evier');
375
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(9).text(), 'zigzag');
376
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(10).text(), 'éolienne');
377
+ });
378
+ it('tests sorted select', function () {
379
+ var handleChange = spy();
380
+ var unsortList = [{
381
+ id: 0,
382
+ label: 'aaa'
383
+ }, {
384
+ id: 1,
385
+ label: 'bbb'
386
+ }, {
387
+ id: 2,
388
+ label: 'AAA'
389
+ }, {
390
+ id: 3,
391
+ label: 'Abc'
392
+ }, {
393
+ id: 4,
394
+ label: '123'
395
+ }, {
396
+ id: 5,
397
+ label: 'été'
398
+ }, {
399
+ id: 6,
400
+ label: 'avion'
401
+ }, {
402
+ id: 7,
403
+ label: 'BalLON'
404
+ }, {
405
+ id: 8,
406
+ label: 'evier'
407
+ }, {
408
+ id: 9,
409
+ label: 'zigzag'
410
+ }, {
411
+ id: 10,
412
+ label: 'éolienne'
413
+ }];
414
+ var wrapper = mount(React.createElement(HiSelect, {
415
+ id: "select",
416
+ name: 'playerNumber',
417
+ options: unsortList,
418
+ value: 0,
419
+ onChange: handleChange,
420
+ hiSelectableListProps: {
421
+ hideCheckbox: true,
422
+ sort: true,
423
+ lazy: false
424
+ }
425
+ })); // Check components when it is closed
426
+
427
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
428
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
429
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Click on HiSelectInput => open
430
+
431
+ wrapper.find(HiSelectInput).simulate('click');
432
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
433
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 11, 'should have 11 HiSelectableListItem');
434
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 0, 'should not have HiCheckbox');
435
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), '123');
436
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'aaa');
437
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'AAA');
438
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'Abc');
439
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'avion');
440
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'BalLON');
441
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(6).text(), 'bbb');
442
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(7).text(), 'éolienne');
443
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(8).text(), 'été');
444
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(9).text(), 'evier');
445
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(10).text(), 'zigzag');
446
+ });
447
+ it('tests search on unsorted select', function () {
448
+ var handleChange = spy();
449
+ var unsortList = [{
450
+ id: 0,
451
+ label: 'aaa'
452
+ }, {
453
+ id: 1,
454
+ label: 'bbb'
455
+ }, {
456
+ id: 2,
457
+ label: 'AAA'
458
+ }, {
459
+ id: 3,
460
+ label: 'Abc'
461
+ }, {
462
+ id: 4,
463
+ label: '123'
464
+ }, {
465
+ id: 5,
466
+ label: 'été'
467
+ }, {
468
+ id: 6,
469
+ label: 'avion'
470
+ }, {
471
+ id: 7,
472
+ label: 'BalLON'
473
+ }, {
474
+ id: 8,
475
+ label: 'evier'
476
+ }, {
477
+ id: 9,
478
+ label: 'zigzag'
479
+ }, {
480
+ id: 10,
481
+ label: 'éolienne'
482
+ }];
483
+ var wrapper = mount(React.createElement(HiSelect, {
484
+ id: "select",
485
+ name: 'playerNumber',
486
+ options: unsortList,
487
+ value: 0,
488
+ onChange: handleChange,
489
+ hiSelectableListProps: {
490
+ hideCheckbox: true,
491
+ lazy: false
492
+ },
493
+ searchable: true
494
+ })); // Check components when it is closed
495
+
496
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
497
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
498
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList');
499
+ assert.strictEqual(wrapper.find(HiInput).length, 0, 'should not have HiInput'); // Click on HiSelectInput => open
500
+
501
+ wrapper.find(HiSelectInput).simulate('click');
502
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
503
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 11, 'should have 11 HiSelectableListItem');
504
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 0, 'should not have HiCheckbox');
505
+ assert.strictEqual(wrapper.find(HiInput).length, 1, 'should have 1 HiInput');
506
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
507
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'bbb');
508
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'AAA');
509
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'Abc');
510
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), '123');
511
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'été');
512
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(6).text(), 'avion');
513
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(7).text(), 'BalLON');
514
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(8).text(), 'evier');
515
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(9).text(), 'zigzag');
516
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(10).text(), 'éolienne');
517
+ wrapper.find('input').simulate('change', {
518
+ target: {
519
+ value: 'a'
520
+ }
521
+ });
522
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 6, 'should have 6 HiSelectableListItem');
523
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
524
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
525
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'Abc');
526
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'avion');
527
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'BalLON');
528
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'zigzag');
529
+ wrapper.find('input').simulate('change', {
530
+ target: {
531
+ value: 'Aa'
532
+ }
533
+ });
534
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 2, 'should have 2 HiSelectableListItem');
535
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
536
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
537
+ wrapper.find('input').simulate('change', {
538
+ target: {
539
+ value: 'e'
540
+ }
541
+ });
542
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
543
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'été');
544
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'evier');
545
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'éolienne');
546
+ });
547
+ it('tests search on sorted select', function () {
548
+ var handleChange = spy();
549
+ var unsortList = [{
550
+ id: 0,
551
+ label: 'aaa'
552
+ }, {
553
+ id: 1,
554
+ label: 'bbb'
555
+ }, {
556
+ id: 2,
557
+ label: 'AAA'
558
+ }, {
559
+ id: 3,
560
+ label: 'Abc'
561
+ }, {
562
+ id: 4,
563
+ label: '123'
564
+ }, {
565
+ id: 5,
566
+ label: 'été'
567
+ }, {
568
+ id: 6,
569
+ label: 'avion'
570
+ }, {
571
+ id: 7,
572
+ label: 'BalLON'
573
+ }, {
574
+ id: 8,
575
+ label: 'evier'
576
+ }, {
577
+ id: 9,
578
+ label: 'zigzag'
579
+ }, {
580
+ id: 10,
581
+ label: 'éolienne'
582
+ }];
583
+ var wrapper = mount(React.createElement(HiSelect, {
584
+ id: "select",
585
+ name: 'playerNumber',
586
+ options: unsortList,
587
+ value: 0,
588
+ onChange: handleChange,
589
+ hiSelectableListProps: {
590
+ hideCheckbox: true,
591
+ sort: true,
592
+ lazy: false
593
+ },
594
+ searchable: true
595
+ })); // Check components when it is closed
596
+
597
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
598
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
599
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Click on HiSelectInput => open
600
+
601
+ wrapper.find(HiSelectInput).simulate('click');
602
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
603
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 11, 'should have 11 HiSelectableListItem');
604
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 0, 'should not have HiCheckbox');
605
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), '123');
606
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'aaa');
607
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'AAA');
608
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'Abc');
609
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'avion');
610
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'BalLON');
611
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(6).text(), 'bbb');
612
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(7).text(), 'éolienne');
613
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(8).text(), 'été');
614
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(9).text(), 'evier');
615
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(10).text(), 'zigzag');
616
+ wrapper.find('input').simulate('change', {
617
+ target: {
618
+ value: 'a'
619
+ }
620
+ });
621
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 6, 'should have 6 HiSelectableListItem');
622
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
623
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
624
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'Abc');
625
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'avion');
626
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'BalLON');
627
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'zigzag');
628
+ wrapper.find('input').simulate('change', {
629
+ target: {
630
+ value: 'Aa'
631
+ }
632
+ });
633
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 2, 'should have 2 HiSelectableListItem');
634
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
635
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
636
+ wrapper.find('input').simulate('change', {
637
+ target: {
638
+ value: 'e'
639
+ }
640
+ });
641
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
642
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'éolienne');
643
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'été');
644
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'evier');
645
+ });
646
+ it('other tests search on sorted select', function () {
647
+ var handleChange = spy();
648
+ var unsortList = [{
649
+ id: 0,
650
+ label: 'aaa'
651
+ }, {
652
+ id: 1,
653
+ label: 'bbb'
654
+ }, {
655
+ id: 2,
656
+ label: 'AAA'
657
+ }, {
658
+ id: 3,
659
+ label: 'Abc'
660
+ }, {
661
+ id: 4,
662
+ label: '123'
663
+ }, {
664
+ id: 5,
665
+ label: 'été'
666
+ }, {
667
+ id: 6,
668
+ label: 'avion'
669
+ }, {
670
+ id: 7,
671
+ label: 'BalLON'
672
+ }, {
673
+ id: 8,
674
+ label: 'evier'
675
+ }, {
676
+ id: 9,
677
+ label: 'zigzag'
678
+ }, {
679
+ id: 10,
680
+ label: 'éolienne'
681
+ }];
682
+ var wrapper = mount(React.createElement(HiSelect, {
683
+ id: "select",
684
+ name: 'playerNumber',
685
+ options: unsortList,
686
+ value: 0,
687
+ onChange: handleChange,
688
+ hiSelectableListProps: {
689
+ hideCheckbox: true,
690
+ sort: true,
691
+ lazy: false
692
+ },
693
+ searchable: true
694
+ })); // Check components when it is closed
695
+
696
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
697
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
698
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Click on HiSelectInput => open
699
+
700
+ wrapper.find(HiSelectInput).simulate('click');
701
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
702
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 11, 'should have 11 HiSelectableListItem');
703
+ assert.strictEqual(wrapper.find(HiCheckbox).length, 0, 'should not have HiCheckbox');
704
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), '123');
705
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'aaa');
706
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'AAA');
707
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'Abc');
708
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'avion');
709
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'BalLON');
710
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(6).text(), 'bbb');
711
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(7).text(), 'éolienne');
712
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(8).text(), 'été');
713
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(9).text(), 'evier');
714
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(10).text(), 'zigzag');
715
+ wrapper.find('input').simulate('change', {
716
+ target: {
717
+ value: 'a'
718
+ }
719
+ });
720
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 6, 'should have 6 HiSelectableListItem');
721
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
722
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
723
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'Abc');
724
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(3).text(), 'avion');
725
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(4).text(), 'BalLON');
726
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(5).text(), 'zigzag');
727
+ wrapper.find('input').simulate('change', {
728
+ target: {
729
+ value: 'Aa'
730
+ }
731
+ });
732
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 2, 'should have 2 HiSelectableListItem');
733
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'aaa');
734
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'AAA');
735
+ wrapper.find('input').simulate('change', {
736
+ target: {
737
+ value: 'e'
738
+ }
739
+ });
740
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
741
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(0).text(), 'éolienne');
742
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(1).text(), 'été');
743
+ assert.strictEqual(wrapper.find(HiSelectableListItem).at(2).text(), 'evier');
744
+ });
745
+ it('should handle keyboard on HiSelect simple', function () {
746
+ var handleChange = spy();
747
+ var handleSubmit = spy();
748
+ var wrapper = mount(React.createElement(HiSelect, {
749
+ id: "select",
750
+ name: 'playerNumber',
751
+ options: playerNumberList,
752
+ value: 0,
753
+ onChange: handleChange,
754
+ onSubmit: handleSubmit,
755
+ multiple: false,
756
+ hiSelectableListProps: {
757
+ lazy: false
758
+ }
759
+ })); // Press "space" on HiSelectInput => open
760
+
761
+ wrapper.find(HiSelectInput).simulate('keydown', {
762
+ keyCode: 32
763
+ });
764
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList on open with space');
765
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem on open with space');
766
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem on open with space'); // Press "space" on ListItem => change and close
767
+
768
+ wrapper.find(ListItem).at(1).simulate('keydown', {
769
+ keyCode: 32
770
+ });
771
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on change and close with space');
772
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 3 HiSelectableListItem on change and close with space');
773
+ assert.strictEqual(handleChange.callCount, 1);
774
+ assert.strictEqual(handleChange.args[0][1], 1);
775
+ assert.strictEqual(handleChange.args[0][2], playerNumberList[1]); // Press "arrow down" => open
776
+
777
+ wrapper.find(HiSelectInput).simulate('keydown', {
778
+ keyCode: 40
779
+ });
780
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList on open with arrow down');
781
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem on open with arrow down');
782
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem on open with arrow down'); // Press "enter" on ListItem => close
783
+
784
+ wrapper.find(ListItem).at(1).simulate('keydown', {
785
+ keyCode: 13
786
+ });
787
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on close with enter');
788
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 3 HiSelectableListItem on close with enter'); // Press "arrow up" => open
789
+
790
+ wrapper.find(HiSelectInput).simulate('keydown', {
791
+ keyCode: 38
792
+ });
793
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList on open with arrow up');
794
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem on open with arrow up');
795
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem on open with arrow up'); // Press "tab" on ListItem => close
796
+
797
+ wrapper.find(ListItem).at(1).simulate('keydown', {
798
+ keyCode: 9
799
+ });
800
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on close with tab');
801
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 3 HiSelectableListItem on close with tab'); // Press "space" on HiSelectInput => open
802
+
803
+ wrapper.find(HiSelectInput).simulate('keydown', {
804
+ keyCode: 32
805
+ }); // Press "escape" => close
806
+
807
+ wrapper.find(ListItem).at(1).simulate('keydown', {
808
+ keyCode: 27
809
+ });
810
+ assert.strictEqual(wrapper.find(HiSelectInput).length, 1, 'should have HiSelectInput');
811
+ assert.strictEqual(wrapper.find(Popper).length, 1, 'should have Popper');
812
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList'); // Press "space" on HiSelectInput => open
813
+
814
+ wrapper.find(HiSelectInput).simulate('keydown', {
815
+ keyCode: 32
816
+ }); // Press "enter" on ListItem => change and close
817
+
818
+ wrapper.find(ListItem).at(0).simulate('keydown', {
819
+ keyCode: 13
820
+ });
821
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on change and close with enter');
822
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have 3 HiSelectableListItem');
823
+ assert.strictEqual(handleChange.callCount, 3);
824
+ assert.strictEqual(handleChange.args[2][1], 0);
825
+ assert.strictEqual(handleChange.args[2][2], playerNumberList[0]); // Press "enter" on HiSelectInput => onSubmit
826
+
827
+ wrapper.find(HiSelectInput).simulate('keydown', {
828
+ keyCode: 13
829
+ });
830
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 0, 'should not have HiSelectableList on submit with enter');
831
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 0, 'should not have HiSelectableListItem on submit with enter');
832
+ assert.strictEqual(handleSubmit.callCount, 1, 'should have been called once handleSubmit');
833
+ });
834
+ it('should handle keyboard on HiSelect multiple', function () {
835
+ var valueMultiple = [0];
836
+ var handleCallCount = 0;
837
+
838
+ var handleChange = function handleChange(event, value) {
839
+ valueMultiple = value;
840
+ handleCallCount += 1;
841
+ };
842
+
843
+ var handleSubmit = spy();
844
+ var wrapper = mount(React.createElement(HiSelect, {
845
+ id: "select",
846
+ name: 'playerNumber',
847
+ options: playerNumberList,
848
+ value: valueMultiple,
849
+ onChange: handleChange,
850
+ onSubmit: handleSubmit,
851
+ multiple: true,
852
+ hiSelectableListProps: {
853
+ lazy: false
854
+ }
855
+ })); // Press "space" on HiSelectInput => open
856
+
857
+ wrapper.find(HiSelectInput).simulate('keydown', {
858
+ keyCode: 32
859
+ });
860
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList');
861
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
862
+ assert.strictEqual(wrapper.find(ListItem).length, 3, 'should have 3 ListItem'); // Press "space" on ListItem => change and do not close
863
+
864
+ wrapper.find(ListItem).at(2).simulate('keydown', {
865
+ keyCode: 32
866
+ });
867
+ assert.strictEqual(wrapper.find(HiSelectableList).length, 1, 'should have HiSelectableList on change with space');
868
+ assert.strictEqual(wrapper.find(HiSelectableListItem).length, 3, 'should have 3 HiSelectableListItem');
869
+ assert.strictEqual(handleCallCount, 1);
870
+ assert.deepEqual(valueMultiple, [0, 2]);
871
+ }); // it('should render a functional simple select with "all" item', () => {
872
+ // const handler = spy();
873
+ //
874
+ // const wrapper = shallow(
875
+ // <HiSelect
876
+ // name={'playerNumber'}
877
+ // onChange={handler}
878
+ // options={playerNumberList}
879
+ // value={0}
880
+ // multiple={false}
881
+ // searchable
882
+ // hasAll
883
+ // />,
884
+ // );
885
+ //
886
+ // assert.strictEqual(wrapper.state().open, false, 'should be close on mount');
887
+ // wrapper
888
+ // .find(HiSelectInput)
889
+ // .dive()
890
+ // .props()
891
+ // .onClick();
892
+ // assert.strictEqual(wrapper.state().open, true, 'should be open after select input click');
893
+ //
894
+ // wrapper.update(); // open popper
895
+ //
896
+ // assert.strictEqual(
897
+ // wrapper.state().suggestions.length,
898
+ // 3,
899
+ // 'should have complete options as suggestions',
900
+ // );
901
+ // wrapper
902
+ // .find(HiSearchField)
903
+ // .dive()
904
+ // .props()
905
+ // .onFilteredList(filteredPlayerNumberList);
906
+ //
907
+ // // wrapper.update();
908
+ // assert.strictEqual(
909
+ // wrapper.state().suggestions.length,
910
+ // 2,
911
+ // 'should have filtered options as suggestions',
912
+ // );
913
+ //
914
+ // wrapper
915
+ // .find(HiSelectableList)
916
+ // .dive()
917
+ // .props()
918
+ // .onSelect(undefined, playerNumberItem);
919
+ // assert.strictEqual(handler.calledOnce, true, 'should onChange callback be called once');
920
+ // assert.strictEqual(
921
+ // handler.calledWith(undefined, playerNumberItem.id),
922
+ // true,
923
+ // 'should onChange callback be called with selected item',
924
+ // );
925
+ //
926
+ // wrapper.setProps({ value: [0, 1, 2] });
927
+ // assert.strictEqual(
928
+ // wrapper
929
+ // .find(HiSelectInput)
930
+ // .dive()
931
+ // .props().value,
932
+ // 'All',
933
+ // 'should display all label',
934
+ // );
935
+ // });
936
+ //
937
+ // it('should render a functional multi select', () => {
938
+ // const handler = spy();
939
+ //
940
+ // const wrapper = shallow(
941
+ // <HiSelect
942
+ // name={'playerNumber'}
943
+ // onChange={handler}
944
+ // options={playerNumberList}
945
+ // value={[0, 1]}
946
+ // multiple
947
+ // searchable
948
+ // checkbox
949
+ // hasAll
950
+ // />,
951
+ // );
952
+ //
953
+ // assert.strictEqual(wrapper.state().open, false, 'should be close on mount');
954
+ // wrapper
955
+ // .find(HiSelectInput)
956
+ // .dive()
957
+ // .props()
958
+ // .onClick();
959
+ // assert.strictEqual(wrapper.state().open, true, 'should be open after select input click');
960
+ //
961
+ // wrapper.update(); // open popper
962
+ //
963
+ // // Handle suggestions
964
+ // assert.strictEqual(
965
+ // wrapper.state().suggestions.length,
966
+ // 4,
967
+ // "should have complete options with 'all' as suggestions",
968
+ // );
969
+ // wrapper
970
+ // .find(HiSearchField)
971
+ // .dive()
972
+ // .props()
973
+ // .onFilteredList(filteredPlayerNumberList);
974
+ // assert.strictEqual(
975
+ // wrapper.state().suggestions.length,
976
+ // 2,
977
+ // "should have filtered options without 'all' as suggestions",
978
+ // );
979
+ //
980
+ // // Select item
981
+ // wrapper
982
+ // .find(HiSelectableList)
983
+ // .dive()
984
+ // .props()
985
+ // .onSelect(undefined, playerNumberItem);
986
+ // assert.strictEqual(handler.calledOnce, true, 'should onChange callback be called once');
987
+ // assert.strictEqual(
988
+ // handler.calledWith(undefined, [0, 1, 2]),
989
+ // true,
990
+ // 'should onChange callback be called with new selected item',
991
+ // );
992
+ //
993
+ // // Deselect item
994
+ // wrapper
995
+ // .find(HiSelectableList)
996
+ // .dive()
997
+ // .props()
998
+ // .onSelect(undefined, { id: 0, label: 'n°10' });
999
+ // assert.strictEqual(handler.calledTwice, true, 'should onChange callback be called twice');
1000
+ // assert.strictEqual(
1001
+ // handler.calledWith(undefined, [1, 2]),
1002
+ // true,
1003
+ // 'should onChange callback be called without deselected item',
1004
+ // );
1005
+ // });
1006
+ //
1007
+ // it('should render add _all and _no_result option', () => {
1008
+ // const handler = spy();
1009
+ //
1010
+ // const wrapper = shallow(
1011
+ // <HiSelect
1012
+ // name={'playerNumber'}
1013
+ // onChange={handler}
1014
+ // options={playerNumberList}
1015
+ // value={[0, 1]}
1016
+ // multiple
1017
+ // searchable
1018
+ // checkbox
1019
+ // hasAll
1020
+ // />,
1021
+ // );
1022
+ //
1023
+ // wrapper
1024
+ // .find(HiSelectInput)
1025
+ // .dive()
1026
+ // .props()
1027
+ // .onClick();
1028
+ // wrapper.update(); // open popper
1029
+ //
1030
+ // assert.strictEqual(
1031
+ // wrapper.state().suggestions.length,
1032
+ // 4,
1033
+ // "should have complete options with 'all' as suggestions",
1034
+ // );
1035
+ // wrapper
1036
+ // .find(HiSearchField)
1037
+ // .dive()
1038
+ // .props()
1039
+ // .onFilteredList([]);
1040
+ // assert.strictEqual(
1041
+ // wrapper.state().suggestions.length,
1042
+ // 1,
1043
+ // "should have '_no_result' as suggestions",
1044
+ // );
1045
+ //
1046
+ // wrapper.setProps({ value: [0, 1, 2] });
1047
+ // assert.strictEqual(
1048
+ // wrapper
1049
+ // .find(HiSelectInput)
1050
+ // .dive()
1051
+ // .props().value,
1052
+ // 'All',
1053
+ // 'should display all label if all options are selected',
1054
+ // );
1055
+ //
1056
+ // // Click on _all (deselect / select)
1057
+ // wrapper
1058
+ // .find(HiSelectableList)
1059
+ // .dive()
1060
+ // .props()
1061
+ // .onSelect(undefined, { id: '_all', label: 'All' });
1062
+ // assert.strictEqual(
1063
+ // handler.calledWith(undefined, []),
1064
+ // true,
1065
+ // 'should onChange callback be called with all options id',
1066
+ // );
1067
+ //
1068
+ // wrapper.setProps({ value: [] });
1069
+ // wrapper.update();
1070
+ //
1071
+ // assert.strictEqual(
1072
+ // wrapper
1073
+ // .find(HiSelectInput)
1074
+ // .dive()
1075
+ // .props().value,
1076
+ // '',
1077
+ // 'should display blank label if none options are selected',
1078
+ // );
1079
+ // wrapper
1080
+ // .find(HiSelectableList)
1081
+ // .dive()
1082
+ // .props()
1083
+ // .onSelect(undefined, { id: '_all', label: 'All' });
1084
+ // assert.strictEqual(
1085
+ // handler.calledWith(undefined, [0, 1, 2]),
1086
+ // true,
1087
+ // 'should onChange callback be called with all options id',
1088
+ // );
1089
+ //
1090
+ // wrapper.setProps({ value: [0, 1, 2] });
1091
+ // });
1092
+ });