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

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 (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
+ });