@zohodesk/components 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/README.md +18 -1
  2. package/_react-cli.config.js +24 -0
  3. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +330 -321
  4. package/assets/Appearance/dark/mode/Component_v1_DarkMode.module.css +15 -9
  5. package/assets/Appearance/dark/themes/blue/blue_CTA_DarkModifyCategory.module.css +466 -466
  6. package/assets/Appearance/dark/themes/blue/blue_CTA_DarkTheme.module.css +34 -34
  7. package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +33 -29
  8. package/assets/Appearance/dark/themes/green/green_CTA_DarkModifyCategory.module.css +466 -466
  9. package/assets/Appearance/dark/themes/green/green_CTA_DarkTheme.module.css +34 -34
  10. package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +33 -29
  11. package/assets/Appearance/dark/themes/orange/orange_CTA_DarkModifyCategory.module.css +466 -466
  12. package/assets/Appearance/dark/themes/orange/orange_CTA_DarkTheme.module.css +34 -34
  13. package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +33 -29
  14. package/assets/Appearance/dark/themes/red/red_CTA_DarkModifyCategory.module.css +466 -466
  15. package/assets/Appearance/dark/themes/red/red_CTA_DarkTheme.module.css +34 -34
  16. package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +33 -29
  17. package/assets/Appearance/dark/themes/yellow/yellow_CTA_DarkModifyCategory.module.css +466 -466
  18. package/assets/Appearance/dark/themes/yellow/yellow_CTA_DarkTheme.module.css +34 -34
  19. package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +33 -29
  20. package/assets/Appearance/light/mode/Component_LightMode.module.css +330 -321
  21. package/assets/Appearance/light/mode/Component_v1_LightMode.module.css +15 -9
  22. package/assets/Appearance/light/themes/blue/blue_CTA_LightModifyCategory.module.css +466 -466
  23. package/assets/Appearance/light/themes/blue/blue_CTA_LightTheme.module.css +34 -34
  24. package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +33 -29
  25. package/assets/Appearance/light/themes/green/green_CTA_LightModifyCategory.module.css +466 -466
  26. package/assets/Appearance/light/themes/green/green_CTA_LightTheme.module.css +34 -34
  27. package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +33 -29
  28. package/assets/Appearance/light/themes/orange/orange_CTA_LightModifyCategory.module.css +466 -466
  29. package/assets/Appearance/light/themes/orange/orange_CTA_LightTheme.module.css +34 -34
  30. package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +33 -29
  31. package/assets/Appearance/light/themes/red/red_CTA_LightModifyCategory.module.css +466 -466
  32. package/assets/Appearance/light/themes/red/red_CTA_LightTheme.module.css +34 -34
  33. package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +33 -29
  34. package/assets/Appearance/light/themes/yellow/yellow_CTA_LightModifyCategory.module.css +466 -466
  35. package/assets/Appearance/light/themes/yellow/yellow_CTA_LightTheme.module.css +34 -34
  36. package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +33 -29
  37. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +330 -321
  38. package/assets/Appearance/pureDark/mode/Component_v1_PureDarkMode.module.css +15 -9
  39. package/assets/Appearance/pureDark/themes/blue/blue_CTA_PureDarkModifyCategory.module.css +466 -466
  40. package/assets/Appearance/pureDark/themes/blue/blue_CTA_PureDarkTheme.module.css +34 -34
  41. package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +33 -29
  42. package/assets/Appearance/pureDark/themes/green/green_CTA_PureDarkModifyCategory.module.css +466 -466
  43. package/assets/Appearance/pureDark/themes/green/green_CTA_PureDarkTheme.module.css +34 -34
  44. package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +33 -29
  45. package/assets/Appearance/pureDark/themes/orange/orange_CTA_PureDarkModifyCategory.module.css +466 -466
  46. package/assets/Appearance/pureDark/themes/orange/orange_CTA_PureDarkTheme.module.css +34 -34
  47. package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +33 -29
  48. package/assets/Appearance/pureDark/themes/red/red_CTA_PureDarkModifyCategory.module.css +466 -466
  49. package/assets/Appearance/pureDark/themes/red/red_CTA_PureDarkTheme.module.css +34 -34
  50. package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +33 -29
  51. package/assets/Appearance/pureDark/themes/yellow/yellow_CTA_PureDarkModifyCategory.module.css +466 -466
  52. package/assets/Appearance/pureDark/themes/yellow/yellow_CTA_PureDarkTheme.module.css +34 -34
  53. package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +33 -29
  54. package/assets/Contrast/darkContrastLightness.module.css +36 -36
  55. package/assets/Contrast/lightContrastLightness.module.css +36 -36
  56. package/assets/Contrast/pureDarkContrastLightness.module.css +36 -36
  57. package/cbt.config.js +41 -0
  58. package/es/AppContainer/AppContainer.js +9 -10
  59. package/es/Avatar/Avatar.js +5 -4
  60. package/es/Avatar/Avatar.module.css +8 -8
  61. package/es/AvatarTeam/AvatarTeam.js +7 -7
  62. package/es/AvatarTeam/AvatarTeam.module.css +30 -30
  63. package/es/Button/Button.js +6 -5
  64. package/es/Button/css/Button.module.css +19 -19
  65. package/es/Buttongroup/Buttongroup.js +0 -0
  66. package/es/Buttongroup/Buttongroup.module.css +5 -3
  67. package/es/Card/Card.js +0 -0
  68. package/es/CheckBox/CheckBox.js +11 -11
  69. package/es/ColorSelect/ColorMultiSelect.js +4 -2
  70. package/es/ColorSelect/ColorSingleSelect.js +4 -2
  71. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.js +4 -3
  72. package/es/ColorSelect/_shared/ColorIndicator/ColorIndicator.module.css +2 -2
  73. package/es/ColorSelect/_shared/ColoredTag/ColoredTag.js +4 -2
  74. package/es/ColorSelect/_shared/helpers/renderHelpers.js +6 -4
  75. package/es/DateTime/CalendarView.js +0 -0
  76. package/es/DateTime/DateTime.js +5 -4
  77. package/es/DateTime/DateWidget.js +5 -4
  78. package/es/DateTime/Time.js +11 -12
  79. package/es/DateTime/YearView.js +0 -0
  80. package/es/DateTime/common.js +0 -0
  81. package/es/DateTime/index.js +0 -0
  82. package/es/DateTime/objectUtils.js +0 -0
  83. package/es/DateTime/typeChecker.js +0 -0
  84. package/es/DateTime/validator.js +0 -0
  85. package/es/DropBox/DropBox.js +11 -10
  86. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +6 -3
  87. package/es/DropDown/DropDown.js +1 -2
  88. package/es/DropDown/DropDownHeading.js +0 -0
  89. package/es/DropDown/DropDownHeading.module.css +4 -4
  90. package/es/DropDown/DropDownItem.js +0 -0
  91. package/es/DropDown/DropDownItem.module.css +4 -4
  92. package/es/DropDown/DropDownSearch.js +0 -0
  93. package/es/DropDown/DropDownSearch.module.css +3 -3
  94. package/es/DropDown/DropDownSeparator.js +0 -0
  95. package/es/Label/Label.js +7 -7
  96. package/es/Label/Label.module.css +5 -5
  97. package/es/Layout/Box.js +0 -0
  98. package/es/Layout/Container.js +0 -0
  99. package/es/Layout/utils.js +0 -0
  100. package/es/ListItem/ListContainer.js +5 -6
  101. package/es/ListItem/ListItem.js +5 -4
  102. package/es/ListItem/ListItem.module.css +30 -19
  103. package/es/ListItem/ListItemWithAvatar.js +10 -11
  104. package/es/ListItem/ListItemWithCheckBox.js +5 -4
  105. package/es/ListItem/ListItemWithIcon.js +5 -4
  106. package/es/ListItem/ListItemWithRadio.js +5 -4
  107. package/es/Modal/Modal.js +5 -4
  108. package/es/MultiSelect/AdvancedGroupMultiSelect.js +2 -0
  109. package/es/MultiSelect/AdvancedMultiSelect.js +11 -8
  110. package/es/MultiSelect/EmptyState.js +16 -2
  111. package/es/MultiSelect/MultiSelect.js +10 -8
  112. package/es/MultiSelect/MultiSelectWithAvatar.js +7 -4
  113. package/es/MultiSelect/SelectedOptions.js +8 -6
  114. package/es/MultiSelect/Suggestions.js +8 -6
  115. package/es/MultiSelect/props/propTypes.js +3 -0
  116. package/es/Popup/Popup.js +0 -0
  117. package/es/Provider/LibraryContext.js +11 -3
  118. package/es/Radio/Radio.js +11 -11
  119. package/es/Radio/Radio.module.css +9 -8
  120. package/es/Responsive/CustomResponsive.js +0 -0
  121. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -2
  122. package/es/Ribbon/Ribbon.js +0 -0
  123. package/es/Ribbon/Ribbon.module.css +25 -20
  124. package/es/Select/GroupSelect.js +13 -12
  125. package/es/Select/Select.js +14 -12
  126. package/es/Select/SelectWithAvatar.js +13 -12
  127. package/es/Select/SelectWithIcon.js +10 -8
  128. package/es/Select/props/propTypes.js +3 -0
  129. package/es/Stencils/Stencils.js +0 -0
  130. package/es/Stencils/Stencils.module.css +11 -11
  131. package/es/Switch/Switch.js +8 -8
  132. package/es/Tab/Tab.js +5 -4
  133. package/es/Tab/TabContentWrapper.js +5 -4
  134. package/es/Tab/TabWrapper.js +4 -2
  135. package/es/Tab/Tabs.js +19 -20
  136. package/es/Tag/Tag.js +11 -12
  137. package/es/Tag/Tag.module.css +18 -17
  138. package/es/TextBox/TextBox.js +5 -5
  139. package/es/TextBox/TextBox.module.css +9 -9
  140. package/es/TextBoxIcon/TextBoxIcon.js +4 -2
  141. package/es/TextBoxIcon/TextBoxIcon.module.css +1 -1
  142. package/es/Textarea/Textarea.js +7 -6
  143. package/es/Textarea/Textarea.module.css +18 -18
  144. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  145. package/es/common/avatarsizes.module.css +16 -16
  146. package/es/common/common.module.css +2 -2
  147. package/es/deprecated/PortalLayer/PortalLayer.js +6 -8
  148. package/es/deprecated/Switch/Switch.js +8 -8
  149. package/es/shared/ArrowIcon/ArrowIcon.js +6 -6
  150. package/es/shared/InputFieldLine/InputFieldLine.js +6 -6
  151. package/es/shared/InputFieldLine/InputFieldLine.module.css +2 -2
  152. package/es/utils/Common.js +0 -0
  153. package/es/utils/dropDownUtils.js +0 -0
  154. package/es/v1/Label/Label.js +98 -33
  155. package/es/v1/Label/__tests__/Label.spec.js +214 -0
  156. package/es/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +457 -0
  157. package/es/v1/Label/constants/index.js +8 -0
  158. package/es/v1/Label/css/Label_v1.module.css +42 -0
  159. package/es/v1/Label/css/cssJSLogic.js +44 -0
  160. package/es/v1/Label/props/defaultProps.js +14 -9
  161. package/es/v1/Label/props/propTypes.js +34 -14
  162. package/es/v1/Switch/Switch.js +7 -6
  163. package/es/v1/Switch/css/Switch_v1.module.css +28 -28
  164. package/lib/Avatar/Avatar.module.css +8 -8
  165. package/lib/AvatarTeam/AvatarTeam.js +0 -0
  166. package/lib/AvatarTeam/AvatarTeam.module.css +30 -30
  167. package/lib/Button/Button.js +0 -0
  168. package/lib/Button/css/Button.module.css +19 -19
  169. package/lib/Buttongroup/Buttongroup.js +0 -0
  170. package/lib/Buttongroup/Buttongroup.module.css +5 -3
  171. package/lib/Card/Card.js +0 -0
  172. package/lib/CheckBox/CheckBox.js +0 -0
  173. package/lib/ColorSelect/_shared/ColorIndicator/ColorIndicator.module.css +2 -2
  174. package/lib/DateTime/CalendarView.js +0 -0
  175. package/lib/DateTime/DateTime.js +0 -0
  176. package/lib/DateTime/DateWidget.js +0 -0
  177. package/lib/DateTime/YearView.js +0 -0
  178. package/lib/DateTime/common.js +0 -0
  179. package/lib/DateTime/index.js +0 -0
  180. package/lib/DateTime/objectUtils.js +0 -0
  181. package/lib/DateTime/typeChecker.js +0 -0
  182. package/lib/DateTime/validator.js +0 -0
  183. package/lib/DropBox/DropBox.js +0 -0
  184. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +6 -3
  185. package/lib/DropDown/DropDown.js +0 -0
  186. package/lib/DropDown/DropDownHeading.js +0 -0
  187. package/lib/DropDown/DropDownHeading.module.css +4 -4
  188. package/lib/DropDown/DropDownItem.js +0 -0
  189. package/lib/DropDown/DropDownItem.module.css +4 -4
  190. package/lib/DropDown/DropDownSearch.js +0 -0
  191. package/lib/DropDown/DropDownSearch.module.css +3 -3
  192. package/lib/DropDown/DropDownSeparator.js +0 -0
  193. package/lib/Label/Label.js +0 -0
  194. package/lib/Label/Label.module.css +5 -5
  195. package/lib/Layout/Box.js +0 -0
  196. package/lib/Layout/Container.js +0 -0
  197. package/lib/Layout/utils.js +0 -0
  198. package/lib/ListItem/ListItem.js +0 -0
  199. package/lib/ListItem/ListItem.module.css +30 -19
  200. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +2 -0
  201. package/lib/MultiSelect/AdvancedMultiSelect.js +2 -0
  202. package/lib/MultiSelect/EmptyState.js +17 -2
  203. package/lib/MultiSelect/MultiSelect.js +2 -0
  204. package/lib/MultiSelect/MultiSelectWithAvatar.js +2 -0
  205. package/lib/MultiSelect/props/propTypes.js +3 -0
  206. package/lib/Popup/Popup.js +0 -0
  207. package/lib/Provider/LibraryContext.js +11 -3
  208. package/lib/Radio/Radio.js +0 -0
  209. package/lib/Radio/Radio.module.css +9 -8
  210. package/lib/Responsive/CustomResponsive.js +0 -0
  211. package/lib/Ribbon/Ribbon.js +0 -0
  212. package/lib/Ribbon/Ribbon.module.css +25 -20
  213. package/lib/Select/GroupSelect.js +2 -0
  214. package/lib/Select/Select.js +2 -0
  215. package/lib/Select/SelectWithAvatar.js +2 -0
  216. package/lib/Select/SelectWithIcon.js +2 -0
  217. package/lib/Select/props/propTypes.js +3 -0
  218. package/lib/Stencils/Stencils.js +0 -0
  219. package/lib/Stencils/Stencils.module.css +11 -11
  220. package/lib/Switch/Switch.js +0 -0
  221. package/lib/Tag/Tag.js +0 -0
  222. package/lib/Tag/Tag.module.css +18 -17
  223. package/lib/TextBox/TextBox.js +0 -0
  224. package/lib/TextBox/TextBox.module.css +9 -9
  225. package/lib/TextBoxIcon/TextBoxIcon.js +0 -0
  226. package/lib/TextBoxIcon/TextBoxIcon.module.css +1 -1
  227. package/lib/Textarea/Textarea.js +0 -0
  228. package/lib/Textarea/Textarea.module.css +18 -18
  229. package/lib/common/avatarsizes.module.css +16 -16
  230. package/lib/common/common.module.css +2 -2
  231. package/lib/deprecated/Switch/Switch.js +0 -0
  232. package/lib/shared/InputFieldLine/InputFieldLine.module.css +2 -2
  233. package/lib/utils/Common.js +0 -0
  234. package/lib/utils/dropDownUtils.js +0 -0
  235. package/lib/v1/Label/Label.js +104 -36
  236. package/lib/v1/Label/__tests__/Label.spec.js +221 -0
  237. package/lib/v1/Label/__tests__/__snapshots__/Label.spec.js.snap +457 -0
  238. package/lib/v1/Label/constants/index.js +16 -0
  239. package/lib/v1/Label/css/Label_v1.module.css +42 -0
  240. package/lib/v1/Label/css/cssJSLogic.js +38 -0
  241. package/lib/v1/Label/props/defaultProps.js +16 -11
  242. package/lib/v1/Label/props/propTypes.js +36 -16
  243. package/lib/v1/Switch/css/Switch_v1.module.css +28 -28
  244. package/package.json +15 -20
  245. package/es/v1/Accordion/Accordion.js +0 -66
  246. package/es/v1/Accordion/AccordionItem.js +0 -57
  247. package/es/v1/Accordion/index.js +0 -2
  248. package/es/v1/Accordion/props/defaultProps.js +0 -12
  249. package/es/v1/Accordion/props/propTypes.js +0 -33
  250. package/es/v1/Animation/Animation.js +0 -45
  251. package/es/v1/Animation/props/defaultProps.js +0 -7
  252. package/es/v1/Animation/props/propTypes.js +0 -12
  253. package/es/v1/Animation/utils.js +0 -83
  254. package/es/v1/AppContainer/AppContainer.js +0 -115
  255. package/es/v1/AppContainer/props/defaultProps.js +0 -10
  256. package/es/v1/AppContainer/props/propTypes.js +0 -17
  257. package/es/v1/Avatar/Avatar.js +0 -139
  258. package/es/v1/Avatar/props/defaultProps.js +0 -17
  259. package/es/v1/Avatar/props/propTypes.js +0 -26
  260. package/es/v1/AvatarTeam/AvatarTeam.js +0 -70
  261. package/es/v1/AvatarTeam/props/defaultProps.js +0 -17
  262. package/es/v1/AvatarTeam/props/propTypes.js +0 -27
  263. package/es/v1/Button/Button.js +0 -67
  264. package/es/v1/Button/props/defaultProps.js +0 -18
  265. package/es/v1/Button/props/propTypes.js +0 -28
  266. package/es/v1/Buttongroup/Buttongroup.js +0 -31
  267. package/es/v1/Buttongroup/props/defaultProps.js +0 -6
  268. package/es/v1/Buttongroup/props/propTypes.js +0 -9
  269. package/es/v1/Card/Card.js +0 -237
  270. package/es/v1/Card/index.js +0 -4
  271. package/es/v1/Card/props/defaultProps.js +0 -25
  272. package/es/v1/Card/props/propTypes.js +0 -48
  273. package/es/v1/CheckBox/CheckBox.js +0 -161
  274. package/es/v1/CheckBox/props/defaultProps.js +0 -18
  275. package/es/v1/CheckBox/props/propTypes.js +0 -41
  276. package/es/v1/DateTime/CalendarView.js +0 -254
  277. package/es/v1/DateTime/DateTime.js +0 -779
  278. package/es/v1/DateTime/DateTimePopupFooter.js +0 -47
  279. package/es/v1/DateTime/DateTimePopupHeader.js +0 -105
  280. package/es/v1/DateTime/DateWidget.js +0 -1134
  281. package/es/v1/DateTime/DaysRow.js +0 -32
  282. package/es/v1/DateTime/Time.js +0 -181
  283. package/es/v1/DateTime/YearView.js +0 -264
  284. package/es/v1/DateTime/index.js +0 -1
  285. package/es/v1/DateTime/props/defaultProps.js +0 -63
  286. package/es/v1/DateTime/props/propTypes.js +0 -206
  287. package/es/v1/DropBox/DropBox.js +0 -79
  288. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +0 -133
  289. package/es/v1/DropBox/DropBoxElement/props/defaultProps.js +0 -18
  290. package/es/v1/DropBox/DropBoxElement/props/propTypes.js +0 -51
  291. package/es/v1/DropBox/props/defaultProps.js +0 -14
  292. package/es/v1/DropBox/props/propTypes.js +0 -16
  293. package/es/v1/DropBox/utils/isMobilePopover.js +0 -17
  294. package/es/v1/DropDown/DropDown.js +0 -53
  295. package/es/v1/DropDown/DropDownHeading.js +0 -36
  296. package/es/v1/DropDown/DropDownItem.js +0 -56
  297. package/es/v1/DropDown/DropDownSearch.js +0 -58
  298. package/es/v1/DropDown/DropDownSeparator.js +0 -12
  299. package/es/v1/DropDown/props/defaultProps.js +0 -21
  300. package/es/v1/DropDown/props/propTypes.js +0 -66
  301. package/es/v1/Heading/Heading.js +0 -35
  302. package/es/v1/Heading/props/defaultProps.js +0 -5
  303. package/es/v1/Heading/props/propTypes.js +0 -12
  304. package/es/v1/Layout/Box.js +0 -115
  305. package/es/v1/Layout/Container.js +0 -132
  306. package/es/v1/Layout/index.js +0 -2
  307. package/es/v1/Layout/props/defaultProps.js +0 -16
  308. package/es/v1/Layout/props/propTypes.js +0 -46
  309. package/es/v1/ListItem/ListContainer.js +0 -104
  310. package/es/v1/ListItem/ListItem.js +0 -123
  311. package/es/v1/ListItem/ListItemWithAvatar.js +0 -143
  312. package/es/v1/ListItem/ListItemWithCheckBox.js +0 -104
  313. package/es/v1/ListItem/ListItemWithIcon.js +0 -126
  314. package/es/v1/ListItem/ListItemWithRadio.js +0 -105
  315. package/es/v1/ListItem/index.js +0 -6
  316. package/es/v1/ListItem/props/defaultProps.js +0 -97
  317. package/es/v1/ListItem/props/propTypes.js +0 -202
  318. package/es/v1/Modal/Modal.js +0 -125
  319. package/es/v1/Modal/props/defaultProps.js +0 -3
  320. package/es/v1/Modal/props/propTypes.js +0 -7
  321. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +0 -1092
  322. package/es/v1/MultiSelect/AdvancedMultiSelect.js +0 -583
  323. package/es/v1/MultiSelect/EmptyState.js +0 -64
  324. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +0 -50
  325. package/es/v1/MultiSelect/MobileHeader/props/defaultProps.js +0 -7
  326. package/es/v1/MultiSelect/MobileHeader/props/propTypes.js +0 -7
  327. package/es/v1/MultiSelect/MultiSelect.js +0 -1119
  328. package/es/v1/MultiSelect/MultiSelectHeader.js +0 -32
  329. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +0 -208
  330. package/es/v1/MultiSelect/SelectedOptions.js +0 -84
  331. package/es/v1/MultiSelect/Suggestions.js +0 -141
  332. package/es/v1/MultiSelect/index.js +0 -4
  333. package/es/v1/MultiSelect/props/defaultProps.js +0 -165
  334. package/es/v1/MultiSelect/props/propTypes.js +0 -322
  335. package/es/v1/PopOver/PopOver.js +0 -176
  336. package/es/v1/PopOver/props/defaultProps.js +0 -7
  337. package/es/v1/PopOver/props/propTypes.js +0 -53
  338. package/es/v1/Popup/Popup.js +0 -644
  339. package/es/v1/Radio/Radio.js +0 -130
  340. package/es/v1/Radio/props/defaultProps.js +0 -15
  341. package/es/v1/Radio/props/propTypes.js +0 -40
  342. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +0 -56
  343. package/es/v1/ResponsiveDropBox/props/defaultProps.js +0 -4
  344. package/es/v1/ResponsiveDropBox/props/propTypes.js +0 -8
  345. package/es/v1/Ribbon/Ribbon.js +0 -33
  346. package/es/v1/Ribbon/props/defaultProps.js +0 -9
  347. package/es/v1/Ribbon/props/propTypes.js +0 -11
  348. package/es/v1/RippleEffect/RippleEffect.js +0 -25
  349. package/es/v1/RippleEffect/props/defaultProps.js +0 -10
  350. package/es/v1/RippleEffect/props/propTypes.js +0 -12
  351. package/es/v1/Select/GroupSelect.js +0 -818
  352. package/es/v1/Select/Select.js +0 -975
  353. package/es/v1/Select/SelectWithAvatar.js +0 -356
  354. package/es/v1/Select/SelectWithIcon.js +0 -545
  355. package/es/v1/Select/index.js +0 -4
  356. package/es/v1/Select/props/defaultProps.js +0 -126
  357. package/es/v1/Select/props/propTypes.js +0 -297
  358. package/es/v1/Stencils/Stencils.js +0 -26
  359. package/es/v1/Stencils/props/defaultProps.js +0 -6
  360. package/es/v1/Stencils/props/propTypes.js +0 -7
  361. package/es/v1/Tab/Tab.js +0 -106
  362. package/es/v1/Tab/TabContent.js +0 -30
  363. package/es/v1/Tab/TabContentWrapper.js +0 -33
  364. package/es/v1/Tab/TabWrapper.js +0 -55
  365. package/es/v1/Tab/Tabs.js +0 -619
  366. package/es/v1/Tab/index.js +0 -5
  367. package/es/v1/Tab/props/defaultProps.js +0 -51
  368. package/es/v1/Tab/props/propTypes.js +0 -117
  369. package/es/v1/Tab/v1Tab.module.css +0 -100
  370. package/es/v1/Tab/v1TabContent.module.css +0 -4
  371. package/es/v1/Tab/v1Tabs.module.css +0 -167
  372. package/es/v1/Tag/Tag.js +0 -140
  373. package/es/v1/Tag/props/defaultProps.js +0 -15
  374. package/es/v1/Tag/props/propTypes.js +0 -36
  375. package/es/v1/TextBox/TextBox.js +0 -160
  376. package/es/v1/TextBox/props/defaultProps.js +0 -20
  377. package/es/v1/TextBox/props/propTypes.js +0 -56
  378. package/es/v1/TextBoxIcon/TextBoxIcon.js +0 -166
  379. package/es/v1/TextBoxIcon/props/defaultProps.js +0 -24
  380. package/es/v1/TextBoxIcon/props/propTypes.js +0 -53
  381. package/es/v1/Textarea/Textarea.js +0 -100
  382. package/es/v1/Textarea/props/defaultProps.js +0 -17
  383. package/es/v1/Textarea/props/propTypes.js +0 -31
  384. package/es/v1/Tooltip/Tooltip.js +0 -530
  385. package/es/v1/Tooltip/props/defaultProps.js +0 -4
  386. package/es/v1/Tooltip/props/propTypes.js +0 -5
  387. package/es/v1/Typography/Typography.js +0 -38
  388. package/es/v1/Typography/css/cssJSLogic.js +0 -56
  389. package/es/v1/Typography/css/v1_Typography.module.css +0 -380
  390. package/es/v1/Typography/props/defaultProps.js +0 -8
  391. package/es/v1/Typography/props/propTypes.js +0 -27
  392. package/es/v1/Typography/utils/index.js +0 -50
  393. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +0 -69
  394. package/es/v1/VelocityAnimation/VelocityAnimation/props/defaultProps.js +0 -7
  395. package/es/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -12
  396. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +0 -99
  397. package/es/v1/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +0 -15
  398. package/es/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -19
  399. package/es/v1/semantic/Button/Button.js +0 -53
  400. package/es/v1/semantic/Button/props/defaultProps.js +0 -12
  401. package/es/v1/semantic/Button/props/propTypes.js +0 -22
  402. package/es/v1/semantic/index.js +0 -1
  403. package/lib/v1/Accordion/Accordion.js +0 -98
  404. package/lib/v1/Accordion/AccordionItem.js +0 -68
  405. package/lib/v1/Accordion/index.js +0 -23
  406. package/lib/v1/Accordion/props/defaultProps.js +0 -20
  407. package/lib/v1/Accordion/props/propTypes.js +0 -45
  408. package/lib/v1/Animation/Animation.js +0 -61
  409. package/lib/v1/Animation/props/defaultProps.js +0 -14
  410. package/lib/v1/Animation/props/propTypes.js +0 -23
  411. package/lib/v1/Animation/utils.js +0 -94
  412. package/lib/v1/AppContainer/AppContainer.js +0 -146
  413. package/lib/v1/AppContainer/props/defaultProps.js +0 -17
  414. package/lib/v1/AppContainer/props/propTypes.js +0 -28
  415. package/lib/v1/Avatar/Avatar.js +0 -191
  416. package/lib/v1/Avatar/props/defaultProps.js +0 -24
  417. package/lib/v1/Avatar/props/propTypes.js +0 -37
  418. package/lib/v1/AvatarTeam/AvatarTeam.js +0 -81
  419. package/lib/v1/AvatarTeam/props/defaultProps.js +0 -24
  420. package/lib/v1/AvatarTeam/props/propTypes.js +0 -38
  421. package/lib/v1/Button/Button.js +0 -82
  422. package/lib/v1/Button/props/defaultProps.js +0 -27
  423. package/lib/v1/Button/props/propTypes.js +0 -40
  424. package/lib/v1/Buttongroup/Buttongroup.js +0 -44
  425. package/lib/v1/Buttongroup/props/defaultProps.js +0 -13
  426. package/lib/v1/Buttongroup/props/propTypes.js +0 -20
  427. package/lib/v1/Card/Card.js +0 -269
  428. package/lib/v1/Card/index.js +0 -37
  429. package/lib/v1/Card/props/defaultProps.js +0 -35
  430. package/lib/v1/Card/props/propTypes.js +0 -62
  431. package/lib/v1/CheckBox/CheckBox.js +0 -172
  432. package/lib/v1/CheckBox/props/defaultProps.js +0 -25
  433. package/lib/v1/CheckBox/props/propTypes.js +0 -52
  434. package/lib/v1/DateTime/CalendarView.js +0 -322
  435. package/lib/v1/DateTime/DateTime.js +0 -877
  436. package/lib/v1/DateTime/DateTimePopupFooter.js +0 -96
  437. package/lib/v1/DateTime/DateTimePopupHeader.js +0 -166
  438. package/lib/v1/DateTime/DateWidget.js +0 -1163
  439. package/lib/v1/DateTime/DaysRow.js +0 -81
  440. package/lib/v1/DateTime/Time.js +0 -270
  441. package/lib/v1/DateTime/YearView.js +0 -325
  442. package/lib/v1/DateTime/index.js +0 -15
  443. package/lib/v1/DateTime/props/defaultProps.js +0 -76
  444. package/lib/v1/DateTime/props/propTypes.js +0 -238
  445. package/lib/v1/DropBox/DropBox.js +0 -109
  446. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +0 -146
  447. package/lib/v1/DropBox/DropBoxElement/props/defaultProps.js +0 -25
  448. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +0 -62
  449. package/lib/v1/DropBox/props/defaultProps.js +0 -30
  450. package/lib/v1/DropBox/props/propTypes.js +0 -35
  451. package/lib/v1/DropBox/utils/isMobilePopover.js +0 -25
  452. package/lib/v1/DropDown/DropDown.js +0 -74
  453. package/lib/v1/DropDown/DropDownHeading.js +0 -47
  454. package/lib/v1/DropDown/DropDownItem.js +0 -75
  455. package/lib/v1/DropDown/DropDownSearch.js +0 -77
  456. package/lib/v1/DropDown/DropDownSeparator.js +0 -24
  457. package/lib/v1/DropDown/props/defaultProps.js +0 -31
  458. package/lib/v1/DropDown/props/propTypes.js +0 -87
  459. package/lib/v1/Heading/Heading.js +0 -53
  460. package/lib/v1/Heading/props/defaultProps.js +0 -12
  461. package/lib/v1/Heading/props/propTypes.js +0 -23
  462. package/lib/v1/Layout/Box.js +0 -128
  463. package/lib/v1/Layout/Container.js +0 -145
  464. package/lib/v1/Layout/index.js +0 -23
  465. package/lib/v1/Layout/props/defaultProps.js +0 -24
  466. package/lib/v1/Layout/props/propTypes.js +0 -58
  467. package/lib/v1/ListItem/ListContainer.js +0 -128
  468. package/lib/v1/ListItem/ListItem.js +0 -138
  469. package/lib/v1/ListItem/ListItemWithAvatar.js +0 -167
  470. package/lib/v1/ListItem/ListItemWithCheckBox.js +0 -126
  471. package/lib/v1/ListItem/ListItemWithIcon.js +0 -143
  472. package/lib/v1/ListItem/ListItemWithRadio.js +0 -127
  473. package/lib/v1/ListItem/index.js +0 -55
  474. package/lib/v1/ListItem/props/defaultProps.js +0 -109
  475. package/lib/v1/ListItem/props/propTypes.js +0 -196
  476. package/lib/v1/Modal/Modal.js +0 -166
  477. package/lib/v1/Modal/props/defaultProps.js +0 -10
  478. package/lib/v1/Modal/props/propTypes.js +0 -18
  479. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +0 -1180
  480. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +0 -649
  481. package/lib/v1/MultiSelect/EmptyState.js +0 -112
  482. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +0 -62
  483. package/lib/v1/MultiSelect/MobileHeader/props/defaultProps.js +0 -14
  484. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +0 -18
  485. package/lib/v1/MultiSelect/MultiSelect.js +0 -1202
  486. package/lib/v1/MultiSelect/MultiSelectHeader.js +0 -78
  487. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +0 -262
  488. package/lib/v1/MultiSelect/SelectedOptions.js +0 -130
  489. package/lib/v1/MultiSelect/Suggestions.js +0 -196
  490. package/lib/v1/MultiSelect/index.js +0 -39
  491. package/lib/v1/MultiSelect/props/defaultProps.js +0 -181
  492. package/lib/v1/MultiSelect/props/propTypes.js +0 -350
  493. package/lib/v1/PopOver/PopOver.js +0 -197
  494. package/lib/v1/PopOver/props/defaultProps.js +0 -15
  495. package/lib/v1/PopOver/props/propTypes.js +0 -66
  496. package/lib/v1/Popup/Popup.js +0 -715
  497. package/lib/v1/Radio/Radio.js +0 -141
  498. package/lib/v1/Radio/props/defaultProps.js +0 -22
  499. package/lib/v1/Radio/props/propTypes.js +0 -51
  500. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +0 -79
  501. package/lib/v1/ResponsiveDropBox/props/defaultProps.js +0 -11
  502. package/lib/v1/ResponsiveDropBox/props/propTypes.js +0 -27
  503. package/lib/v1/Ribbon/Ribbon.js +0 -44
  504. package/lib/v1/Ribbon/props/defaultProps.js +0 -16
  505. package/lib/v1/Ribbon/props/propTypes.js +0 -22
  506. package/lib/v1/RippleEffect/RippleEffect.js +0 -40
  507. package/lib/v1/RippleEffect/props/defaultProps.js +0 -17
  508. package/lib/v1/RippleEffect/props/propTypes.js +0 -23
  509. package/lib/v1/Select/GroupSelect.js +0 -894
  510. package/lib/v1/Select/Select.js +0 -1025
  511. package/lib/v1/Select/SelectWithAvatar.js +0 -406
  512. package/lib/v1/Select/SelectWithIcon.js +0 -607
  513. package/lib/v1/Select/index.js +0 -39
  514. package/lib/v1/Select/props/defaultProps.js +0 -125
  515. package/lib/v1/Select/props/propTypes.js +0 -319
  516. package/lib/v1/Stencils/Stencils.js +0 -43
  517. package/lib/v1/Stencils/props/defaultProps.js +0 -13
  518. package/lib/v1/Stencils/props/propTypes.js +0 -18
  519. package/lib/v1/Tab/Tab.js +0 -132
  520. package/lib/v1/Tab/TabContent.js +0 -42
  521. package/lib/v1/Tab/TabContentWrapper.js +0 -47
  522. package/lib/v1/Tab/TabWrapper.js +0 -89
  523. package/lib/v1/Tab/Tabs.js +0 -688
  524. package/lib/v1/Tab/index.js +0 -47
  525. package/lib/v1/Tab/props/defaultProps.js +0 -62
  526. package/lib/v1/Tab/props/propTypes.js +0 -132
  527. package/lib/v1/Tab/v1Tab.module.css +0 -100
  528. package/lib/v1/Tab/v1TabContent.module.css +0 -4
  529. package/lib/v1/Tab/v1Tabs.module.css +0 -167
  530. package/lib/v1/Tag/Tag.js +0 -160
  531. package/lib/v1/Tag/props/defaultProps.js +0 -22
  532. package/lib/v1/Tag/props/propTypes.js +0 -47
  533. package/lib/v1/TextBox/TextBox.js +0 -175
  534. package/lib/v1/TextBox/props/defaultProps.js +0 -27
  535. package/lib/v1/TextBox/props/propTypes.js +0 -62
  536. package/lib/v1/TextBoxIcon/TextBoxIcon.js +0 -206
  537. package/lib/v1/TextBoxIcon/props/defaultProps.js +0 -31
  538. package/lib/v1/TextBoxIcon/props/propTypes.js +0 -72
  539. package/lib/v1/Textarea/Textarea.js +0 -118
  540. package/lib/v1/Textarea/props/defaultProps.js +0 -24
  541. package/lib/v1/Textarea/props/propTypes.js +0 -42
  542. package/lib/v1/Tooltip/Tooltip.js +0 -599
  543. package/lib/v1/Tooltip/props/defaultProps.js +0 -11
  544. package/lib/v1/Tooltip/props/propTypes.js +0 -16
  545. package/lib/v1/Typography/Typography.js +0 -56
  546. package/lib/v1/Typography/css/cssJSLogic.js +0 -48
  547. package/lib/v1/Typography/css/v1_Typography.module.css +0 -380
  548. package/lib/v1/Typography/props/defaultProps.js +0 -15
  549. package/lib/v1/Typography/props/propTypes.js +0 -38
  550. package/lib/v1/Typography/utils/index.js +0 -59
  551. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +0 -90
  552. package/lib/v1/VelocityAnimation/VelocityAnimation/props/defaultProps.js +0 -14
  553. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -23
  554. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +0 -126
  555. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +0 -22
  556. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -30
  557. package/lib/v1/semantic/Button/Button.js +0 -63
  558. package/lib/v1/semantic/Button/props/defaultProps.js +0 -19
  559. package/lib/v1/semantic/Button/props/propTypes.js +0 -33
  560. package/lib/v1/semantic/index.js +0 -15
@@ -1,1092 +0,0 @@
1
- import React from 'react';
2
- import { AdvancedGroupMultiSelect_propTypes } from "./props/propTypes";
3
- import { AdvancedGroupMultiSelect_defaultProps } from "./props/defaultProps";
4
- /**** Components ****/
5
-
6
- import Loader from '@zohodesk/svg/lib/Loader/Loader';
7
- import Popup from "../Popup/Popup";
8
- import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
9
- import { Container, Box } from "../Layout";
10
- import DropDownHeading from "../DropDown/DropDownHeading";
11
- import MultiSelectHeader from "./MultiSelectHeader";
12
- import SelectedOptions from "./SelectedOptions";
13
- import Suggestions from "./Suggestions";
14
- import EmptyState from "./EmptyState";
15
- import Card, { CardContent, CardHeader, CardFooter } from "../Card/Card";
16
- import { getUniqueId } from "../../Provider/IdProvider";
17
- import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
18
- import { ResponsiveReceiver } from "../../Responsive/CustomResponsive";
19
- /**** Icons ****/
20
-
21
- import { Icon } from '@zohodesk/icons';
22
- /**** CSS ****/
23
-
24
- import style from "../../MultiSelect/MultiSelect.module.css";
25
- /**** Methods ****/
26
-
27
- import { debounce, scrollTo, getIsEmptyValue, getSearchString } from "../../utils/Common.js";
28
- import { makeGetMultiSelectSelectedOptions, makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, makeGetOptionIdChange, extractOptionId, makeFormatOptions, makeObjectConcat } from "../../utils/dropDownUtils";
29
- /* eslint-disable react/forbid-component-props */
30
-
31
- /* eslint-disable react/no-unused-prop-types */
32
-
33
- class AdvancedGroupMultiSelect extends React.Component {
34
- constructor(props) {
35
- super(props);
36
- this.getNextAriaId = getUniqueId(this);
37
- this.objectConcat = makeObjectConcat();
38
- this.getGroupSelectOptions = makeGetGroupSelectOptions();
39
- this.getFilterSuggestions = makeGetGroupSelectFilterSuggestions();
40
- this.getSelectedOptions = makeGetMultiSelectSelectedOptions();
41
- this.getOptionIdChange = makeGetOptionIdChange();
42
- this.formatSelectedOptions = makeFormatOptions();
43
- let {
44
- searchDebounceTime = 500,
45
- selectedGroupOptions
46
- } = props;
47
- let {
48
- revampedGroups,
49
- normalizedAllOptions,
50
- normalizedFormatOptions,
51
- allOptionIds,
52
- groupIds,
53
- normalizedGroupedOptions: groupDetails
54
- } = this.handleGetGroupSelectOptions(props);
55
- let changedSelectedOptionDetails = this.handleSelectedOptionDetailsIdChange(props, {
56
- groupIds,
57
- groupDetails
58
- });
59
- let {
60
- normalizedSelectedOptions
61
- } = this.handleGetSelectedOptions(changedSelectedOptionDetails);
62
- let {
63
- formatSelectedOptions,
64
- selectedOptionIds
65
- } = this.handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions);
66
- this.handleGetGroupSelectOptions = this.handleGetGroupSelectOptions.bind(this);
67
- this.selectedOptionContainerRef = this.selectedOptionContainerRef.bind(this);
68
- this.suggestionContainerRef = this.suggestionContainerRef.bind(this);
69
- this.suggestionItemRef = this.suggestionItemRef.bind(this);
70
- this.searchInputRef = this.searchInputRef.bind(this);
71
- this.handleScroll = this.handleScroll.bind(this);
72
- this.handleScrollFuncCall = debounce(this.handleScrollFuncCall.bind(this), 500);
73
- this.handleInputCick = this.handleInputCick.bind(this);
74
- this.togglePopup = this.togglePopup.bind(this);
75
- this.handleSelectedOptionIdChange = this.handleSelectedOptionIdChange.bind(this);
76
- this.handleMouseEnter = this.handleMouseEnter.bind(this);
77
- this.handleSelectOption = this.handleSelectOption.bind(this);
78
- this.selectedOptionRef = this.selectedOptionRef.bind(this);
79
- this.handleClickSelectedOption = this.handleClickSelectedOption.bind(this);
80
- this.handleRemoveOption = this.handleRemoveOption.bind(this);
81
- this.handleKeyDown = this.handleKeyDown.bind(this);
82
- this.handleChange = this.handleChange.bind(this);
83
- this.handleFetchOptions = this.handleFetchOptions.bind(this);
84
- this.handleSearch = this.handleSearch.bind(this);
85
- this.handleSearchOptions = debounce(this.handleSearchOptions.bind(this), searchDebounceTime);
86
- this.handleSelectAll = this.handleSelectAll.bind(this);
87
- this.handleDeselectAll = this.handleDeselectAll.bind(this);
88
- this.handleActive = this.handleActive.bind(this);
89
- this.handleInactive = this.handleInactive.bind(this);
90
- this.handleInputFocus = this.handleInputFocus.bind(this);
91
- this.state = {
92
- isActive: false,
93
- searchStr: '',
94
- revampedGroups,
95
- normalizedAllOptions,
96
- normalizedFormatOptions,
97
- allOptionIds,
98
- selectedOptionIds,
99
- formatSelectedOptions,
100
- hoverIndex: 0,
101
- highLightedSelectOptions: [],
102
- lastHighLightedSelectOption: '',
103
- shiftKeyPressHighLighted: 0,
104
- isActive: false,
105
- isFetchingOptions: false,
106
- groupIds,
107
- groupDetails
108
- };
109
- this._isMounted = false;
110
- }
111
-
112
- handleGetSelectedOptions(selectedOptionDetails) {
113
- let {
114
- normalizedFormatOptions: normalizedSelectedOptions
115
- } = this.handleFormatSelectedOptions(selectedOptionDetails, this.props);
116
- return {
117
- normalizedSelectedOptions
118
- };
119
- }
120
-
121
- handleFormatSelectedOptions(selectedOptionDetails, props) {
122
- let {
123
- valueField,
124
- textField
125
- } = props;
126
- return this.formatSelectedOptions({
127
- options: selectedOptionDetails,
128
- valueField,
129
- textField
130
- });
131
- }
132
-
133
- handleSelectedOptionDetailsIdChange(props, state) {
134
- let {
135
- groupIds,
136
- groupDetails
137
- } = state;
138
- let {
139
- selectedOptionDetails = {}
140
- } = props;
141
- let newSelectedOptionDetails = [];
142
- groupIds.forEach(groupId => {
143
- let {
144
- valueField,
145
- textField,
146
- optionType
147
- } = groupDetails[groupId];
148
- let changedDetails = this.getOptionIdChange({
149
- options: selectedOptionDetails[groupId],
150
- valueField,
151
- prefixText: groupId,
152
- textField,
153
- optionType
154
- });
155
- newSelectedOptionDetails = [...newSelectedOptionDetails, ...changedDetails];
156
- });
157
- return newSelectedOptionDetails;
158
- }
159
-
160
- selectedOptionRef(el, id) {
161
- this[`selectedOption_${id}`] = el;
162
- }
163
-
164
- suggestionContainerRef(el) {
165
- this.suggestionContainer = el;
166
- }
167
-
168
- selectedOptionContainerRef(el) {
169
- let {
170
- getTargetRef
171
- } = this.props;
172
- this.selectedOptionContainer = el;
173
- getTargetRef(el);
174
- }
175
-
176
- suggestionItemRef(el, index, id) {
177
- this[`suggestion_${id}`] = el;
178
- }
179
-
180
- searchInputRef(ref) {
181
- this.searchInput = ref;
182
- }
183
-
184
- handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions) {
185
- let newSelectedOptions = selectedGroupOptions.map(option => optionIdGrouping(option.id, option.groupId));
186
- let selectedOptionsLength = newSelectedOptions.length;
187
- let formatOptions = this.objectConcat({
188
- obj1: normalizedFormatOptions,
189
- obj2: normalizedSelectedOptions
190
- });
191
- return this.getSelectedOptions({
192
- selectedOptions: newSelectedOptions,
193
- normalizedFormatOptions: formatOptions,
194
- selectedOptionsLength
195
- });
196
- }
197
-
198
- togglePopup(e) {
199
- let {
200
- togglePopup,
201
- defaultDropBoxPosition,
202
- isReadOnly
203
- } = this.props;
204
- !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}Center` : null);
205
- }
206
-
207
- handleFilterSuggestions() {
208
- let {
209
- revampedGroups,
210
- searchStr = '',
211
- allOptionIds
212
- } = this.state;
213
- let {
214
- needLocalSearch
215
- } = this.props;
216
-
217
- if (searchStr && searchStr.trim().length) {
218
- searchStr = getSearchString(searchStr);
219
- let {
220
- suggestionGroups,
221
- suggestionOptionIds
222
- } = this.getFilterSuggestions({
223
- revampedGroups,
224
- searchStr,
225
- needSearch: needLocalSearch
226
- });
227
- return {
228
- suggestionGroups,
229
- suggestionOptionIds
230
- };
231
- }
232
-
233
- return {
234
- suggestionGroups: revampedGroups,
235
- suggestionOptionIds: allOptionIds
236
- };
237
- }
238
-
239
- handleGetGroupSelectOptions(props) {
240
- let {
241
- groupedOptions = []
242
- } = props;
243
- return this.getGroupSelectOptions({
244
- groupedOptions
245
- });
246
- }
247
-
248
- handleInputCick(e) {
249
- let {
250
- highLightedSelectOptions
251
- } = this.state;
252
- highLightedSelectOptions.length ? this.setState({
253
- highLightedSelectOptions: [],
254
- shiftKeyPressHighLighted: 0,
255
- lastHighLightedSelectOption: ''
256
- }) : this.togglePopup(e);
257
- }
258
-
259
- handleClickSelectedOption() {
260
- let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
261
- let e = arguments.length > 1 ? arguments[1] : undefined;
262
- let {
263
- selectedOptionIds
264
- } = this.state;
265
- let {
266
- highLightedSelectOptions,
267
- lastHighLightedSelectOption
268
- } = this.state;
269
- let {
270
- metaKey,
271
- ctrlKey,
272
- shiftKey
273
- } = e;
274
-
275
- if (e && shiftKey) {
276
- //shift+click
277
- let from = selectedOptionIds.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptionIds.indexOf(lastHighLightedSelectOption) : 0;
278
- let to = id && selectedOptionIds.indexOf(id) >= 0 ? selectedOptionIds.indexOf(id) : null;
279
-
280
- if (to >= 0 && to < from) {
281
- [to] = [from, from = to];
282
- }
283
-
284
- to += 1;
285
- let newSelectedHighlights = to ? selectedOptionIds.slice(from, to) : [];
286
- to && this.setState({
287
- highLightedSelectOptions: newSelectedHighlights,
288
- lastHighLightedSelectOption: id
289
- });
290
- } else if (e && (ctrlKey || metaKey)) {
291
- //ctrl+click
292
- let isRemove = highLightedSelectOptions.indexOf(id) >= 0;
293
- let newSelectedHighlights = [];
294
-
295
- if (isRemove) {
296
- lastHighLightedSelectOption = id === lastHighLightedSelectOption ? '' : lastHighLightedSelectOption;
297
- newSelectedHighlights = highLightedSelectOptions.filter(option => option !== id);
298
- } else {
299
- lastHighLightedSelectOption = id;
300
- newSelectedHighlights = [...highLightedSelectOptions, id];
301
- }
302
-
303
- this.setState({
304
- highLightedSelectOptions: newSelectedHighlights,
305
- lastHighLightedSelectOption
306
- });
307
- } else {
308
- this.setState({
309
- highLightedSelectOptions: [id],
310
- lastHighLightedSelectOption: id
311
- });
312
- }
313
-
314
- this.setState({
315
- shiftKeyPressHighLighted: 0
316
- });
317
- this.searchInput && this.searchInput.focus({
318
- preventScroll: true
319
- });
320
- }
321
-
322
- handleRemoveOption(options) {
323
- let newOptions = !getIsEmptyValue(options) && !Array.isArray(options) ? [options] : options;
324
- let {
325
- isReadOnly
326
- } = this.props;
327
- let {
328
- selectedOptionIds
329
- } = this.state;
330
- let {
331
- highLightedSelectOptions,
332
- lastHighLightedSelectOption,
333
- shiftKeyPressHighLighted
334
- } = this.state;
335
-
336
- if (newOptions.length && !isReadOnly) {
337
- let newSelectedOptions = selectedOptionIds.filter(option => newOptions.indexOf(option) === -1);
338
- let newHighLightedSelectOptions = highLightedSelectOptions.filter(option => newSelectedOptions.indexOf(option) >= 0);
339
- let isHighlightedRemoved = false;
340
- let newOptionsLen = newOptions.length;
341
-
342
- for (let i = 0; i < newOptionsLen; i++) {
343
- let removedOption = newOptions[i];
344
-
345
- if (highLightedSelectOptions.indexOf(removedOption) >= 0) {
346
- isHighlightedRemoved = true;
347
- break;
348
- }
349
- }
350
-
351
- this.setState({
352
- lastHighLightedSelectOption: newSelectedOptions.indexOf(lastHighLightedSelectOption) >= 0 && !isHighlightedRemoved ? lastHighLightedSelectOption : '',
353
- highLightedSelectOptions: isHighlightedRemoved ? [] : newHighLightedSelectOptions,
354
- shiftKeyPressHighLighted: isHighlightedRemoved ? 0 : shiftKeyPressHighLighted
355
- });
356
- this.handleChange(newSelectedOptions);
357
- }
358
-
359
- this.searchInput && this.searchInput.focus({
360
- preventScroll: true
361
- });
362
- }
363
-
364
- handleKeyDown(e) {
365
- let {
366
- keyCode,
367
- ctrlKey,
368
- metaKey,
369
- shiftKey
370
- } = e;
371
- let suggestions = [];
372
- let {
373
- hoverIndex,
374
- searchStr,
375
- highLightedSelectOptions,
376
- lastHighLightedSelectOption,
377
- shiftKeyPressHighLighted,
378
- selectedOptionIds: selectedOptions
379
- } = this.state;
380
- let {
381
- isNextOptions,
382
- getNextOptions,
383
- isPopupOpen,
384
- isPopupOpenOnEnter,
385
- onKeyDown
386
- } = this.props;
387
- let highLightedSelectOptionsLen = highLightedSelectOptions.length;
388
-
389
- if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13 || keyCode === 27)) {
390
- let {
391
- suggestionOptionIds
392
- } = this.handleFilterSuggestions();
393
- suggestions = suggestionOptionIds;
394
- }
395
-
396
- if (!isPopupOpen && !isPopupOpenOnEnter) {
397
- onKeyDown && onKeyDown(e);
398
- }
399
-
400
- if (!isPopupOpen && keyCode === 40) {
401
- //down arrow press popup open
402
- e.preventDefault(); //prevent body scroll
403
-
404
- this.togglePopup(e);
405
- }
406
-
407
- let suggestionsLen = suggestions.length;
408
-
409
- if (suggestionsLen && isPopupOpen && keyCode === 38) {
410
- //up arrow
411
-
412
- /*if (hoverOption === 0) { //disable first to last option higlight
413
- !isNextOptions && this.setState({ hoverOption: suggestionsLen - 1 });
414
- }*/
415
- if (hoverIndex) {
416
- this.setState({
417
- hoverIndex: hoverIndex - 1
418
- });
419
- }
420
- } else if (suggestionsLen && isPopupOpen && keyCode === 40) {
421
- //down arrow
422
-
423
- /*else if (hoverOption === suggestionsLen - 1 || hoverOption === null) {
424
- //disable last to first option higlight
425
- !isNextOptions && this.setState({ hoverOption: 0 });
426
- }*/
427
- if (isNextOptions && suggestionsLen >= 5 && hoverIndex === suggestionsLen - 3) {
428
- getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
429
- this.setState({
430
- hoverIndex: hoverIndex + 1
431
- });
432
- } else if (suggestionsLen - 1 > hoverIndex) {
433
- this.setState({
434
- hoverIndex: hoverIndex + 1
435
- });
436
- }
437
- } else if (keyCode === 13) {
438
- //enter key
439
- let id = suggestions[hoverIndex] || {};
440
- isPopupOpen && !getIsEmptyValue(id) && this.handleSelectOption(id, null, null, e);
441
- !isPopupOpen && isPopupOpenOnEnter && this.togglePopup(e);
442
- } else if (selectedOptions.length && keyCode === 8 && !searchStr.length) {
443
- //backspace key
444
- if (highLightedSelectOptionsLen) {
445
- this.handleRemoveOption(highLightedSelectOptions);
446
- } else {
447
- this.handleRemoveOption(selectedOptions.slice(-1)); // this.setState({
448
- // highLightedSelectOptions: selectedOptions.slice(-1)
449
- // });
450
- }
451
- } else if (selectedOptions && keyCode === 65 && (ctrlKey || metaKey) && !searchStr.length) {
452
- //ctrl+a key
453
- this.setState({
454
- highLightedSelectOptions: selectedOptions,
455
- shiftKeyPressHighLighted: 0
456
- });
457
- } else if (keyCode === 39 && shiftKey && selectedOptions.length && !searchStr.length) {
458
- //shift+right arrow=39
459
- let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption && selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
460
- let newShiftKeyPressHighLighted = shiftKeyPressHighLighted ? shiftKeyPressHighLighted : shiftKeyPressHighLighted + 1;
461
- let newHighLightedSelectOption = lastHighLightedSelectOptionIndex !== null ? selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted] : selectedOptions[0];
462
-
463
- if (!getIsEmptyValue(newHighLightedSelectOption)) {
464
- let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions[0];
465
- highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
466
- let isRemove = highLightedSelectOptions.indexOf(newHighLightedSelectOption) >= 0 && newHighLightedSelectOption !== lastHighLightedSelectOption ? true : false;
467
- let newHighLightedSelectOptions = isRemove ? highLightedSelectOptions.filter(option => option !== newHighLightedSelectOption) : [...highLightedSelectOptions, newHighLightedSelectOption];
468
- this.setState({
469
- highLightedSelectOptions: newHighLightedSelectOptions,
470
- shiftKeyPressHighLighted: newShiftKeyPressHighLighted + 1,
471
- lastHighLightedSelectOption: newLastHighLightedSelectOption
472
- });
473
- }
474
- } else if (keyCode === 37 && shiftKey && selectedOptions.length && !searchStr.length) {
475
- // shift+left arrow=37
476
- let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption ? selectedOptions.indexOf(lastHighLightedSelectOption) : selectedOptions.length - 1;
477
- let newShiftKeyPressHighLighted = shiftKeyPressHighLighted !== 1 ? shiftKeyPressHighLighted : shiftKeyPressHighLighted - 1;
478
- let newHighLightedSelectOption = selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted - 1];
479
-
480
- if (!getIsEmptyValue(newHighLightedSelectOption)) {
481
- let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions.slice(-1)[0];
482
- highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
483
- let isRemove = highLightedSelectOptions.indexOf(newHighLightedSelectOption) >= 0 && newHighLightedSelectOption !== lastHighLightedSelectOption ? true : false;
484
- let newHighLightedSelectOptions = isRemove ? highLightedSelectOptions.filter(option => option !== newHighLightedSelectOption) : [...highLightedSelectOptions, newHighLightedSelectOption];
485
- this.setState({
486
- highLightedSelectOptions: newHighLightedSelectOptions,
487
- shiftKeyPressHighLighted: newShiftKeyPressHighLighted - 1,
488
- lastHighLightedSelectOption: newLastHighLightedSelectOption
489
- });
490
- }
491
- } else if ((keyCode === 39 || keyCode === 37) && selectedOptions.length && !searchStr.length) {
492
- let isRightArrow = keyCode === 39 ? true : false; // let isLefttArrow = keyCode === 37 ? true : false;
493
-
494
- if (highLightedSelectOptions.length) {
495
- let [lastHighLightedSelectOption] = highLightedSelectOptions.slice(-1);
496
- let lastHighLightedSelectOptionIndex = selectedOptions.indexOf(lastHighLightedSelectOption);
497
- let newLastHighLightedSelectOptionIndex = isRightArrow ? lastHighLightedSelectOptionIndex === selectedOptions.length - 1 ? lastHighLightedSelectOptionIndex : lastHighLightedSelectOptionIndex + 1 : lastHighLightedSelectOptionIndex - 1;
498
- let newLastHighLightedSelectOption = selectedOptions[newLastHighLightedSelectOptionIndex];
499
- let isEmptyHighlighted = isRightArrow && highLightedSelectOptions.length === 1 && selectedOptions.slice(-1)[0] === lastHighLightedSelectOption ? true : false;
500
-
501
- if (!getIsEmptyValue(newLastHighLightedSelectOption)) {
502
- this.setState({
503
- lastHighLightedSelectOption: isEmptyHighlighted ? '' : newLastHighLightedSelectOption,
504
- highLightedSelectOptions: isEmptyHighlighted ? [] : [newLastHighLightedSelectOption],
505
- shiftKeyPressHighLighted: 0
506
- });
507
- }
508
- } else {
509
- let [newLastHighLightedSelectOption] = isRightArrow ? selectedOptions : selectedOptions.slice(-1);
510
- this.setState({
511
- lastHighLightedSelectOption: newLastHighLightedSelectOption,
512
- highLightedSelectOptions: [newLastHighLightedSelectOption],
513
- shiftKeyPressHighLighted: 0
514
- });
515
- }
516
- } // eslint-disable-next-line
517
- else if (keyCode === 27) {// this.handlePopupClose(e);
518
- }
519
- }
520
-
521
- handleMouseEnter(id, val, hoverOptionIndex, e) {
522
- e && e.preventDefault();
523
- let {
524
- hoverIndex,
525
- allOptionIds
526
- } = this.state;
527
- let newHoverIndex = allOptionIds.indexOf(id);
528
- hoverIndex !== newHoverIndex && this.setState({
529
- hoverIndex: newHoverIndex
530
- });
531
- }
532
-
533
- handleFetchOptions() {
534
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
535
- args[_key] = arguments[_key];
536
- }
537
-
538
- let [APICall, searchStr] = args;
539
- let {
540
- isFetchingOptions
541
- } = this.state;
542
- let {
543
- _isMounted
544
- } = this;
545
-
546
- if (!isFetchingOptions && APICall) {
547
- this.setState({
548
- isFetchingOptions: true
549
- });
550
-
551
- try {
552
- return APICall(searchStr).then(() => {
553
- _isMounted && this.setState({
554
- isFetchingOptions: false
555
- });
556
- }, () => {
557
- _isMounted && this.setState({
558
- isFetchingOptions: false
559
- });
560
- });
561
- } catch (e) {
562
- _isMounted && this.setState({
563
- isFetchingOptions: false
564
- });
565
- }
566
- }
567
- }
568
-
569
- handleSearchOptions() {
570
- let {
571
- onSearch
572
- } = this.props;
573
- let {
574
- searchStr
575
- } = this.state;
576
- searchStr && this.handleFetchOptions(onSearch, searchStr);
577
- }
578
-
579
- handleSearch(value, e) {
580
- let {
581
- onSearch,
582
- isPopupOpen
583
- } = this.props;
584
- !isPopupOpen && e && this.togglePopup(e);
585
- let {
586
- searchStr = ''
587
- } = this.state;
588
- let searchStrRegex = getSearchString(searchStr);
589
- let valueStrRegex = getSearchString(value);
590
- let isSearch = searchStrRegex !== valueStrRegex ? true : false;
591
- this.setState({
592
- searchStr: value
593
- }, () => {
594
- if (!value) {
595
- onSearch && onSearch('');
596
- } else if (isSearch && onSearch) {
597
- this.handleSearchOptions();
598
- }
599
- });
600
- }
601
-
602
- handleScroll(e) {
603
- let {
604
- isNextOptions
605
- } = this.props;
606
-
607
- if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1 && isNextOptions) {
608
- this.handleScrollFuncCall();
609
- }
610
- }
611
-
612
- handleScrollFuncCall() {
613
- let {
614
- getNextOptions
615
- } = this.props;
616
- let {
617
- searchStr
618
- } = this.state;
619
- getNextOptions && getNextOptions(searchStr);
620
- }
621
-
622
- handleSelectAll(e) {
623
- e && e.preventDefault();
624
- let {
625
- suggestionOptionIds
626
- } = this.handleFilterSuggestions();
627
- let {
628
- selectedOptionIds
629
- } = this.state;
630
- let newSelectedOptions = suggestionOptionIds.filter(id => selectedOptionIds.indexOf(id) === -1);
631
- this.handleChange([...selectedOptionIds, ...newSelectedOptions]);
632
- }
633
-
634
- handleDeselectAll(e) {
635
- e && e.preventDefault();
636
- let {
637
- highLightedSelectOptions
638
- } = this.state;
639
-
640
- if (highLightedSelectOptions.length) {
641
- this.setState({
642
- highLightedSelectOptions: [],
643
- lastHighLightedSelectOption: ''
644
- });
645
- }
646
-
647
- this.handleChange([]);
648
- }
649
-
650
- handleChange() {
651
- let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
652
- let e = arguments.length > 1 ? arguments[1] : undefined;
653
- let {
654
- onChange,
655
- needToCloseOnSelect,
656
- togglePopup,
657
- isSearchClearOnSelect
658
- } = this.props;
659
- let {
660
- searchStr
661
- } = this.state;
662
- let newSelectedOptions = selectedOptions.map(option => extractOptionId(option));
663
- onChange([...newSelectedOptions]);
664
-
665
- if (searchStr.trim() != '' && isSearchClearOnSelect) {
666
- this.handleSearch('');
667
- }
668
-
669
- this.searchInput && this.searchInput.focus({
670
- preventScroll: true
671
- });
672
-
673
- if (needToCloseOnSelect) {
674
- e && togglePopup(e);
675
- }
676
- }
677
-
678
- handleSelectOption(id, val, index, e) {
679
- e && e.preventDefault();
680
- let {
681
- selectedOptionIds
682
- } = this.state;
683
-
684
- if (selectedOptionIds.indexOf(id) === -1) {
685
- this.handleChange([...selectedOptionIds, id], e);
686
- } else {
687
- this.handleRemoveOption(id);
688
- }
689
- }
690
-
691
- handleActive(e) {
692
- let {
693
- searchStr,
694
- isActive
695
- } = this.state;
696
-
697
- if (!isActive) {
698
- this.setState({
699
- isActive: true
700
- });
701
- }
702
-
703
- let {
704
- target
705
- } = e || {};
706
- target && target.setSelectionRange(target, 0);
707
- let {
708
- onFocus
709
- } = this.props;
710
- onFocus && onFocus(searchStr);
711
- }
712
-
713
- handleInactive() {
714
- let {
715
- isActive
716
- } = this.state;
717
-
718
- if (isActive) {
719
- this.setState({
720
- isActive: false
721
- });
722
- }
723
- }
724
-
725
- handleInputFocus() {
726
- let {
727
- isDisabled,
728
- isReadOnly
729
- } = this.props;
730
- this.searchInput && !isDisabled && !isReadOnly && this.searchInput.focus({
731
- preventScroll: true
732
- });
733
- }
734
-
735
- componentDidMount() {
736
- this._isMounted = true;
737
- }
738
-
739
- componentWillUnmount() {
740
- this._isMounted = false;
741
- }
742
-
743
- componentDidUpdate(prevProps) {
744
- let {
745
- groupedOptions,
746
- selectedGroupOptions,
747
- isPopupOpen,
748
- selectedOptionDetails,
749
- searchStr,
750
- notifyPopupToggle
751
- } = this.props;
752
- let {
753
- normalizedFormatOptions,
754
- hoverIndex
755
- } = this.state;
756
- let newOptionIds = this.state.allOptionIds;
757
-
758
- if (prevProps.groupedOptions != groupedOptions) {
759
- let {
760
- revampedGroups,
761
- normalizedAllOptions,
762
- normalizedFormatOptions: formatNoramlizer,
763
- allOptionIds,
764
- groupIds,
765
- normalizedGroupedOptions
766
- } = this.handleGetGroupSelectOptions(this.props);
767
- normalizedFormatOptions = formatNoramlizer;
768
- newOptionIds = allOptionIds;
769
- this.setState({
770
- revampedGroups,
771
- normalizedAllOptions,
772
- normalizedFormatOptions: formatNoramlizer,
773
- allOptionIds,
774
- groupIds,
775
- groupDetails: normalizedGroupedOptions
776
- });
777
- }
778
-
779
- if (prevProps.selectedOptionDetails != selectedOptionDetails || prevProps.selectedGroupOptions != selectedGroupOptions) {
780
- let {
781
- groupDetails,
782
- groupIds
783
- } = this.state;
784
- let changedSelectedOptionDetails = this.handleSelectedOptionDetailsIdChange(this.props, {
785
- groupIds,
786
- groupDetails
787
- });
788
- let {
789
- normalizedSelectedOptions
790
- } = this.handleGetSelectedOptions(changedSelectedOptionDetails);
791
- let {
792
- formatSelectedOptions,
793
- selectedOptionIds
794
- } = this.handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions);
795
- this.setState({
796
- formatSelectedOptions,
797
- selectedOptionIds
798
- });
799
- }
800
-
801
- let hoverId = getIsEmptyValue(newOptionIds[hoverIndex]) ? '' : newOptionIds[hoverIndex];
802
- let selSuggestion = this[`suggestion_${hoverId}`];
803
- isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion); //When suggestions length less than 5, getNextOptions function call
804
-
805
- let {
806
- isNextOptions,
807
- getNextOptions,
808
- needLocalSearch
809
- } = this.props;
810
- let {
811
- suggestionOptionIds: suggestions
812
- } = this.handleFilterSuggestions();
813
- let suggestionsLen = suggestions.length;
814
-
815
- if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
816
- this.handleFetchOptions(getNextOptions, searchStr);
817
- }
818
-
819
- if (prevProps.isPopupOpen != isPopupOpen) {
820
- notifyPopupToggle && notifyPopupToggle(isPopupOpen);
821
- }
822
- }
823
-
824
- responsiveFunc(_ref) {
825
- let {
826
- mediaQueryOR
827
- } = _ref;
828
- return {
829
- tabletMode: mediaQueryOR([{
830
- maxWidth: 700
831
- }])
832
- };
833
- }
834
-
835
- render() {
836
- let {
837
- size,
838
- textBoxSize,
839
- selectedGroupOptions,
840
- placeHolder,
841
- dataId,
842
- dataSelectorId,
843
- isReadOnly,
844
- isDisabled,
845
- isPopupOpen,
846
- isPopupReady,
847
- defaultDropBoxPosition,
848
- removeClose,
849
- needResponsive,
850
- animationStyle,
851
- needSelectAll,
852
- selectAllText,
853
- dropBoxSize,
854
- position,
855
- getContainerRef,
856
- isAbsolutePositioningNeeded,
857
- positionsOffset,
858
- targetOffset,
859
- isRestrictScroll,
860
- emptyMessage,
861
- searchEmptyMessage,
862
- title,
863
- variant,
864
- children,
865
- listItemSize,
866
- isDataLoaded,
867
- needBorder,
868
- isNextOptions,
869
- getFooter,
870
- customClass,
871
- borderColor,
872
- isPadding,
873
- htmlId,
874
- i18nKeys,
875
- a11y,
876
- palette,
877
- needEffect,
878
- autoComplete,
879
- getTargetRef
880
- } = this.props;
881
- let {
882
- clearText = 'Clear all'
883
- } = i18nKeys;
884
- let {
885
- clearLabel = 'Clear all'
886
- } = a11y;
887
- i18nKeys = Object.assign({}, i18nKeys, {
888
- emptyText: i18nKeys.emptyText || emptyMessage,
889
- searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage
890
- });
891
- let {
892
- isActive,
893
- searchStr,
894
- revampedGroups = [],
895
- selectedOptionIds,
896
- formatSelectedOptions,
897
- hoverIndex,
898
- highLightedSelectOptions,
899
- isFetchingOptions
900
- } = this.state;
901
- let {
902
- suggestionGroups,
903
- suggestionOptionIds
904
- } = this.handleFilterSuggestions();
905
- let setAriaId = this.getNextAriaId();
906
- let ariaErrorId = this.getNextAriaId();
907
- const isShowClearIcon = !isReadOnly && !isDisabled && selectedGroupOptions.length > 1;
908
- return /*#__PURE__*/React.createElement("div", {
909
- className: `${style.wrapper} ${isDisabled ? style.disabled : ''} ${needEffect && !(isDisabled || isReadOnly) ? style.effect : ''}`,
910
- "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
911
- "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
912
- "data-title": isDisabled ? title : null,
913
- onClick: this.handleInputFocus,
914
- "data-selector-id": dataSelectorId
915
- }, children ? /*#__PURE__*/React.createElement(Container, {
916
- align: "vertical",
917
- alignBox: "row",
918
- onClick: this.togglePopup,
919
- className: customClass,
920
- eleRef: getTargetRef
921
- }, children) : /*#__PURE__*/React.createElement(Container, {
922
- align: "vertical",
923
- alignBox: "row",
924
- className: `${style.container} ${style[size]} ${isActive && needBorder ? style.active : ''} ${needBorder ? style.hasBorder : ''} ${style[`borderColor_${borderColor}`]} ${customClass}`,
925
- eleRef: this.selectedOptionContainerRef,
926
- wrap: "wrap"
927
- }, /*#__PURE__*/React.createElement(SelectedOptions, {
928
- selectedOptions: formatSelectedOptions,
929
- highLightedSelectOptions: highLightedSelectOptions,
930
- isReadOnly: isReadOnly,
931
- getRef: this.selectedOptionRef,
932
- onRemove: this.handleRemoveOption,
933
- onSelect: this.handleClickSelectedOption,
934
- isGroupSelect: true,
935
- dataId: `${dataId}_selectedOptions`
936
- }), /*#__PURE__*/React.createElement(Box, {
937
- flexible: true,
938
- className: style.wrapper,
939
- adjust: true,
940
- shrink: true
941
- }, /*#__PURE__*/React.createElement("span", {
942
- className: ` ${style.custmSpan} ${textBoxSize === 'xmedium' ? style.custmSpanXmedium : style.custmSpanMedium} ${isShowClearIcon ? style.clearIconSpace : ''}
943
- `
944
- }, searchStr), /*#__PURE__*/React.createElement(TextBoxIcon, {
945
- isDisabled: isDisabled,
946
- inputRef: this.searchInputRef,
947
- needBorder: false,
948
- onBlur: this.handleInactive,
949
- onChange: this.handleSearch,
950
- onClick: this.handleInputCick,
951
- onFocus: this.handleActive,
952
- onKeyDown: this.handleKeyDown,
953
- placeHolder: selectedGroupOptions.length >= 1 ? '' : placeHolder,
954
- size: textBoxSize,
955
- value: searchStr,
956
- variant: variant,
957
- dataId: `${dataId}_textBox`,
958
- isReadOnly: isReadOnly,
959
- customClass: {
960
- customTBoxWrap: style.custmInputWrapper
961
- },
962
- tabindex: isDisabled && '-1',
963
- htmlId: htmlId,
964
- a11y: {
965
- ariaExpanded: !isReadOnly && !isDisabled && isPopupOpen ? true : false,
966
- ariaHaspopup: true,
967
- role: 'combobox',
968
- ariaControls: setAriaId,
969
- ariaOwns: setAriaId,
970
- ariaDescribedby: ariaErrorId
971
- },
972
- autoComplete: autoComplete
973
- }, isShowClearIcon ? /*#__PURE__*/React.createElement(Container, {
974
- alignBox: "row",
975
- align: "vertical"
976
- }, /*#__PURE__*/React.createElement(Box, {
977
- className: `${style.delete} ${style[`${palette}Delete`]}`,
978
- dataId: `${dataId}_clearIcon`,
979
- "data-title": clearText,
980
- onClick: this.handleDeselectAll,
981
- tagName: "button",
982
- "aria-label": clearLabel
983
- }, /*#__PURE__*/React.createElement(Icon, {
984
- name: "ZD-delete",
985
- size: "15"
986
- }))) : null))), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/React.createElement(ResponsiveReceiver, {
987
- query: this.responsiveFunc,
988
- responsiveId: "Helmet"
989
- }, _ref2 => {
990
- let {
991
- tabletMode
992
- } = _ref2;
993
- return /*#__PURE__*/React.createElement(ResponsiveDropBox, {
994
- animationStyle: animationStyle,
995
- boxPosition: position || `${defaultDropBoxPosition}Center`,
996
- getRef: getContainerRef,
997
- isActive: isPopupReady,
998
- isAnimate: true,
999
- isArrow: false,
1000
- onClick: removeClose,
1001
- needResponsive: needResponsive,
1002
- isPadding: isPadding,
1003
- isBoxPaddingNeed: !needSelectAll,
1004
- isAbsolutePositioningNeeded: isAbsolutePositioningNeeded,
1005
- positionsOffset: positionsOffset,
1006
- targetOffset: targetOffset,
1007
- isRestrictScroll: isRestrictScroll,
1008
- htmlId: setAriaId,
1009
- a11y: {
1010
- role: 'listbox',
1011
- ariaMultiselectable: true
1012
- },
1013
- alignBox: "row",
1014
- dataId: `${dataId}_dropbox`
1015
- }, /*#__PURE__*/React.createElement(Box, {
1016
- flexible: true
1017
- }, /*#__PURE__*/React.createElement(Card, {
1018
- customClass: `${style.box} ${style[`${palette}Box`]}`,
1019
- onScroll: this.handleScroll
1020
- }, needSelectAll ? /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
1021
- onSelect: this.handleSelectAll,
1022
- selectAllText: selectAllText,
1023
- suggestions: suggestionOptionIds,
1024
- dataId: dataId
1025
- })) : null, isDataLoaded ? /*#__PURE__*/React.createElement(CardContent, {
1026
- shrink: true,
1027
- customClass: !tabletMode && dropBoxSize ? style[dropBoxSize] : '',
1028
- eleRef: this.suggestionContainerRef
1029
- }, /*#__PURE__*/React.createElement(React.Fragment, {
1030
- key: 'SuggestonsParent'
1031
- }, suggestionGroups.length ? suggestionGroups.map(group => {
1032
- let {
1033
- options: suggestions = []
1034
- } = group;
1035
- let groupId = group.id;
1036
- let groupName = group.name;
1037
- let hoverId = suggestionOptionIds[hoverIndex];
1038
- return /*#__PURE__*/React.createElement(React.Fragment, {
1039
- key: groupId
1040
- }, groupName && /*#__PURE__*/React.createElement("div", {
1041
- className: style.groupTitle
1042
- }, /*#__PURE__*/React.createElement(DropDownHeading, {
1043
- text: groupName,
1044
- a11y: {
1045
- role: 'heading'
1046
- }
1047
- })), /*#__PURE__*/React.createElement(Suggestions, {
1048
- suggestions: suggestions,
1049
- selectedOptions: selectedOptionIds,
1050
- getRef: this.suggestionItemRef,
1051
- hoverId: hoverId,
1052
- onClick: this.handleSelectOption,
1053
- onMouseEnter: this.handleMouseEnter,
1054
- needTick: true,
1055
- listItemSize: listItemSize,
1056
- a11y: {
1057
- role: 'option'
1058
- },
1059
- dataId: `${dataId}_Options`
1060
- }));
1061
- }) : /*#__PURE__*/React.createElement(EmptyState, {
1062
- options: revampedGroups,
1063
- searchString: searchStr,
1064
- suggestions: suggestionGroups,
1065
- dataId: dataId,
1066
- isLoading: isFetchingOptions,
1067
- i18nKeys: i18nKeys,
1068
- htmlId: ariaErrorId
1069
- }), isNextOptions && /*#__PURE__*/React.createElement("div", {
1070
- className: style.loader
1071
- }, /*#__PURE__*/React.createElement(Loader, null)))) : /*#__PURE__*/React.createElement("div", {
1072
- className: style.loader
1073
- }, /*#__PURE__*/React.createElement(Loader, null)), getFooter ? isDataLoaded ? /*#__PURE__*/React.createElement(CardFooter, null, getFooter()) : /*#__PURE__*/React.createElement("div", {
1074
- className: style.loader
1075
- }, /*#__PURE__*/React.createElement(Loader, null)) : null)));
1076
- }) : null);
1077
- }
1078
-
1079
- }
1080
-
1081
- AdvancedGroupMultiSelect.defaultProps = AdvancedGroupMultiSelect_defaultProps;
1082
- AdvancedGroupMultiSelect.propTypes = AdvancedGroupMultiSelect_propTypes;
1083
- const AdvancedGroupMultiSelectComponent = Popup(AdvancedGroupMultiSelect);
1084
- AdvancedGroupMultiSelectComponent.defaultProps = AdvancedGroupMultiSelect.defaultProps;
1085
- AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes; // if (__DOCS__) {
1086
- // AdvancedGroupMultiSelect.docs = {
1087
- // componentGroup: 'Form Elements',
1088
- // folderName: 'Style Guide'
1089
- // };
1090
- // }
1091
-
1092
- export default AdvancedGroupMultiSelectComponent;