@zohodesk/components 1.2.23 → 1.2.25

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 (635) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +8 -0
  3. package/es/Accordion/Accordion.js +7 -3
  4. package/es/Accordion/AccordionItem.js +4 -2
  5. package/es/Animation/Animation.js +7 -89
  6. package/es/Animation/utils.js +83 -0
  7. package/es/AppContainer/AppContainer.js +14 -3
  8. package/es/AppContainer/AppContainer.module.css +2 -2
  9. package/es/Avatar/Avatar.js +23 -11
  10. package/es/Avatar/Avatar.module.css +18 -18
  11. package/es/AvatarTeam/AvatarTeam.js +3 -3
  12. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  13. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
  14. package/es/Button/Button.js +4 -3
  15. package/es/Button/css/Button.module.css +70 -70
  16. package/es/Buttongroup/Buttongroup.js +3 -3
  17. package/es/Buttongroup/Buttongroup.module.css +13 -15
  18. package/es/Card/Card.js +21 -10
  19. package/es/CheckBox/CheckBox.js +5 -3
  20. package/es/CheckBox/CheckBox.module.css +15 -15
  21. package/es/DateTime/CalendarView.js +32 -20
  22. package/es/DateTime/DateTime.js +69 -6
  23. package/es/DateTime/DateTime.module.css +40 -40
  24. package/es/DateTime/DateTimePopupFooter.js +4 -1
  25. package/es/DateTime/DateTimePopupHeader.js +8 -2
  26. package/es/DateTime/DateWidget.js +98 -35
  27. package/es/DateTime/DateWidget.module.css +5 -5
  28. package/es/DateTime/DaysRow.js +4 -1
  29. package/es/DateTime/Time.js +10 -1
  30. package/es/DateTime/YearView.js +28 -4
  31. package/es/DateTime/YearView.module.css +15 -15
  32. package/es/DateTime/common.js +3 -0
  33. package/es/DateTime/constants.js +1 -0
  34. package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
  35. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  36. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  37. package/es/DateTime/dateFormatUtils/index.js +31 -1
  38. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  39. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  40. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  41. package/es/DateTime/objectUtils.js +14 -20
  42. package/es/DateTime/typeChecker.js +3 -0
  43. package/es/DateTime/validator.js +58 -6
  44. package/es/DropBox/DropBox.js +6 -2
  45. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  46. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  47. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  48. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  49. package/es/DropBox/css/DropBox.module.css +6 -6
  50. package/es/DropBox/props/defaultProps.js +1 -2
  51. package/es/DropBox/props/propTypes.js +1 -2
  52. package/es/DropDown/DropDown.js +7 -1
  53. package/es/DropDown/DropDown.module.css +2 -2
  54. package/es/DropDown/DropDownHeading.js +4 -5
  55. package/es/DropDown/DropDownHeading.module.css +6 -6
  56. package/es/DropDown/DropDownItem.js +6 -0
  57. package/es/DropDown/DropDownItem.module.css +12 -12
  58. package/es/DropDown/DropDownSearch.js +4 -0
  59. package/es/DropDown/DropDownSearch.module.css +3 -3
  60. package/es/DropDown/DropDownSeparator.js +1 -0
  61. package/es/DropDown/DropDownSeparator.module.css +2 -2
  62. package/es/DropDown/props/propTypes.js +1 -2
  63. package/es/Heading/Heading.js +2 -3
  64. package/es/Heading/Heading.module.css +2 -2
  65. package/es/Label/Label.js +2 -3
  66. package/es/Label/Label.module.css +5 -5
  67. package/es/Label/__tests__/Label.spec.js +1 -2
  68. package/es/Layout/Box.js +15 -2
  69. package/es/Layout/Container.js +14 -3
  70. package/es/Layout/Layout.module.css +15 -15
  71. package/es/Layout/index.js +1 -2
  72. package/es/Layout/utils.js +1 -0
  73. package/es/ListItem/ListContainer.js +8 -3
  74. package/es/ListItem/ListItem.js +9 -3
  75. package/es/ListItem/ListItem.module.css +27 -38
  76. package/es/ListItem/ListItemWithAvatar.js +9 -3
  77. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  78. package/es/ListItem/ListItemWithIcon.js +8 -3
  79. package/es/ListItem/ListItemWithRadio.js +7 -3
  80. package/es/Modal/Modal.js +28 -11
  81. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  82. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  83. package/es/MultiSelect/EmptyState.js +2 -0
  84. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  85. package/es/MultiSelect/MultiSelect.js +99 -30
  86. package/es/MultiSelect/MultiSelect.module.css +31 -31
  87. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  88. package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
  89. package/es/MultiSelect/SelectedOptions.js +6 -3
  90. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  91. package/es/MultiSelect/Suggestions.js +7 -3
  92. package/es/MultiSelect/props/propTypes.js +2 -2
  93. package/es/PopOver/PopOver.js +16 -0
  94. package/es/Popup/Popup.js +77 -24
  95. package/es/Popup/viewPort.js +16 -4
  96. package/es/Provider/IdProvider.js +10 -5
  97. package/es/Provider/LibraryContext.js +6 -4
  98. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  99. package/es/Provider/ZindexProvider.js +9 -2
  100. package/es/Radio/Radio.js +3 -0
  101. package/es/Radio/Radio.module.css +9 -9
  102. package/es/Responsive/CustomResponsive.js +30 -18
  103. package/es/Responsive/RefWrapper.js +6 -7
  104. package/es/Responsive/ResizeComponent.js +35 -25
  105. package/es/Responsive/ResizeObserver.js +26 -6
  106. package/es/Responsive/Responsive.js +34 -20
  107. package/es/Responsive/index.js +1 -3
  108. package/es/Responsive/sizeObservers.js +28 -7
  109. package/es/Responsive/utils/index.js +7 -5
  110. package/es/Responsive/utils/shallowCompare.js +7 -2
  111. package/es/Responsive/windowResizeObserver.js +7 -0
  112. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  113. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  114. package/es/ResponsiveDropBox/props/propTypes.js +1 -2
  115. package/es/Ribbon/Ribbon.js +3 -2
  116. package/es/Ribbon/Ribbon.module.css +45 -48
  117. package/es/RippleEffect/RippleEffect.js +4 -5
  118. package/es/RippleEffect/props/defaultProps.js +1 -0
  119. package/es/RippleEffect/props/propTypes.js +1 -0
  120. package/es/Select/GroupSelect.js +58 -14
  121. package/es/Select/Select.js +79 -33
  122. package/es/Select/Select.module.css +23 -23
  123. package/es/Select/SelectWithAvatar.js +17 -4
  124. package/es/Select/SelectWithIcon.js +46 -5
  125. package/es/Select/props/propTypes.js +2 -2
  126. package/es/Stencils/Stencils.js +3 -3
  127. package/es/Stencils/Stencils.module.css +11 -11
  128. package/es/Switch/Switch.js +5 -3
  129. package/es/Switch/Switch.module.css +23 -23
  130. package/es/Tab/Tab.js +4 -4
  131. package/es/Tab/Tab.module.css +14 -14
  132. package/es/Tab/TabContent.js +1 -0
  133. package/es/Tab/TabContentWrapper.js +3 -0
  134. package/es/Tab/TabWrapper.js +5 -2
  135. package/es/Tab/Tabs.js +54 -7
  136. package/es/Tab/Tabs.module.css +22 -22
  137. package/es/Tag/Tag.js +6 -3
  138. package/es/Tag/Tag.module.css +24 -25
  139. package/es/TextBox/TextBox.js +16 -3
  140. package/es/TextBox/TextBox.module.css +9 -9
  141. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  142. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  143. package/es/TextBoxIcon/props/propTypes.js +1 -2
  144. package/es/Textarea/Textarea.js +12 -3
  145. package/es/Textarea/Textarea.module.css +21 -21
  146. package/es/Tooltip/Tooltip.js +58 -14
  147. package/es/Tooltip/Tooltip.module.css +5 -5
  148. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  149. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  150. package/es/common/animation.module.css +8 -8
  151. package/es/common/avatarsizes.module.css +16 -16
  152. package/es/common/basicReset.module.css +3 -3
  153. package/es/common/common.module.css +24 -24
  154. package/es/common/customscroll.module.css +2 -2
  155. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  156. package/es/semantic/Button/Button.js +3 -2
  157. package/es/semantic/Button/semanticButton.module.css +1 -1
  158. package/es/utils/Common.js +54 -9
  159. package/es/utils/ContextOptimizer.js +4 -5
  160. package/es/utils/constructFullName.js +2 -0
  161. package/es/utils/datetime/common.js +16 -5
  162. package/es/utils/debounce.js +5 -1
  163. package/es/utils/dropDownUtils.js +68 -11
  164. package/es/utils/getInitial.js +4 -0
  165. package/es/utils/shallowEqual.js +6 -0
  166. package/es/v1/Accordion/Accordion.js +4 -3
  167. package/es/v1/Accordion/AccordionItem.js +4 -2
  168. package/es/v1/Animation/Animation.js +5 -89
  169. package/es/v1/Animation/utils.js +83 -0
  170. package/es/v1/AppContainer/AppContainer.js +9 -3
  171. package/es/v1/Avatar/Avatar.js +18 -6
  172. package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
  173. package/es/v1/Button/Button.js +3 -3
  174. package/es/v1/Card/Card.js +16 -8
  175. package/es/v1/CheckBox/CheckBox.js +6 -3
  176. package/es/v1/DateTime/CalendarView.js +32 -20
  177. package/es/v1/DateTime/DateTime.js +69 -6
  178. package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
  179. package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
  180. package/es/v1/DateTime/DateWidget.js +98 -35
  181. package/es/v1/DateTime/DaysRow.js +4 -1
  182. package/es/v1/DateTime/Time.js +10 -1
  183. package/es/v1/DateTime/YearView.js +28 -4
  184. package/es/v1/DropBox/DropBox.js +6 -2
  185. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  186. package/es/v1/DropBox/props/defaultProps.js +1 -2
  187. package/es/v1/DropBox/props/propTypes.js +1 -2
  188. package/es/v1/DropDown/DropDown.js +3 -0
  189. package/es/v1/DropDown/DropDownHeading.js +2 -2
  190. package/es/v1/DropDown/DropDownItem.js +5 -0
  191. package/es/v1/DropDown/DropDownSearch.js +3 -2
  192. package/es/v1/DropDown/props/propTypes.js +1 -2
  193. package/es/v1/Heading/Heading.js +1 -3
  194. package/es/v1/Layout/Box.js +15 -2
  195. package/es/v1/Layout/Container.js +14 -3
  196. package/es/v1/ListItem/ListContainer.js +8 -3
  197. package/es/v1/ListItem/ListItem.js +10 -3
  198. package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
  199. package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
  200. package/es/v1/ListItem/ListItemWithIcon.js +9 -3
  201. package/es/v1/ListItem/ListItemWithRadio.js +8 -3
  202. package/es/v1/Modal/Modal.js +17 -1
  203. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
  204. package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
  205. package/es/v1/MultiSelect/EmptyState.js +2 -0
  206. package/es/v1/MultiSelect/MultiSelect.js +100 -31
  207. package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
  208. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
  209. package/es/v1/MultiSelect/SelectedOptions.js +6 -3
  210. package/es/v1/MultiSelect/Suggestions.js +7 -3
  211. package/es/v1/MultiSelect/props/propTypes.js +2 -2
  212. package/es/v1/PopOver/PopOver.js +11 -0
  213. package/es/v1/Popup/Popup.js +77 -24
  214. package/es/v1/Provider/IdProvider.js +10 -5
  215. package/es/v1/Provider/LibraryContext.js +6 -4
  216. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
  217. package/es/v1/Provider/ZindexProvider.js +9 -2
  218. package/es/v1/Radio/Radio.js +5 -2
  219. package/es/v1/Responsive/CustomResponsive.js +30 -18
  220. package/es/v1/Responsive/RefWrapper.js +6 -7
  221. package/es/v1/Responsive/ResizeComponent.js +35 -25
  222. package/es/v1/Responsive/ResizeObserver.js +26 -6
  223. package/es/v1/Responsive/Responsive.js +34 -20
  224. package/es/v1/Responsive/index.js +1 -3
  225. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
  226. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
  227. package/es/v1/RippleEffect/RippleEffect.js +3 -2
  228. package/es/v1/RippleEffect/props/defaultProps.js +1 -0
  229. package/es/v1/RippleEffect/props/propTypes.js +1 -0
  230. package/es/v1/Select/GroupSelect.js +58 -14
  231. package/es/v1/Select/Select.js +81 -37
  232. package/es/v1/Select/SelectWithAvatar.js +17 -4
  233. package/es/v1/Select/SelectWithIcon.js +46 -5
  234. package/es/v1/Select/props/propTypes.js +2 -2
  235. package/es/v1/Stencils/Stencils.js +2 -0
  236. package/es/v1/Switch/Switch.js +6 -3
  237. package/es/v1/Tab/Tab.js +3 -3
  238. package/es/v1/Tab/TabContent.js +1 -0
  239. package/es/v1/Tab/TabContentWrapper.js +3 -0
  240. package/es/v1/Tab/TabWrapper.js +5 -2
  241. package/es/v1/Tab/Tabs.js +54 -9
  242. package/es/v1/Tab/v1Tab.module.css +14 -14
  243. package/es/v1/Tab/v1Tabs.module.css +22 -22
  244. package/es/v1/Tag/Tag.js +5 -1
  245. package/es/v1/TextBox/TextBox.js +14 -0
  246. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
  247. package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
  248. package/es/v1/Textarea/Textarea.js +10 -3
  249. package/es/v1/Tooltip/Tooltip.js +58 -14
  250. package/es/v1/Typography/Typography.js +2 -0
  251. package/es/v1/Typography/css/Typography.module.css +31 -31
  252. package/es/v1/Typography/css/cssJSLogic.js +3 -0
  253. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
  254. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  255. package/es/v1/semantic/Button/Button.js +1 -2
  256. package/lib/Accordion/Accordion.js +42 -18
  257. package/lib/Accordion/AccordionItem.js +40 -18
  258. package/lib/Accordion/index.js +3 -0
  259. package/lib/Accordion/props/propTypes.js +3 -0
  260. package/lib/Animation/Animation.js +42 -104
  261. package/lib/Animation/props/propTypes.js +3 -0
  262. package/lib/Animation/utils.js +94 -0
  263. package/lib/AppContainer/AppContainer.js +58 -20
  264. package/lib/AppContainer/AppContainer.module.css +2 -2
  265. package/lib/AppContainer/props/propTypes.js +3 -0
  266. package/lib/Avatar/Avatar.js +78 -38
  267. package/lib/Avatar/Avatar.module.css +18 -18
  268. package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
  269. package/lib/Avatar/props/propTypes.js +3 -0
  270. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  271. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  272. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
  273. package/lib/AvatarTeam/props/propTypes.js +3 -0
  274. package/lib/Button/Button.js +33 -22
  275. package/lib/Button/__tests__/Button.spec.js +65 -48
  276. package/lib/Button/css/Button.module.css +70 -70
  277. package/lib/Button/css/cssJSLogic.js +18 -17
  278. package/lib/Button/index.js +3 -0
  279. package/lib/Button/props/defaultProps.js +2 -0
  280. package/lib/Button/props/propTypes.js +3 -0
  281. package/lib/Buttongroup/Buttongroup.js +32 -12
  282. package/lib/Buttongroup/Buttongroup.module.css +13 -15
  283. package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
  284. package/lib/Buttongroup/props/propTypes.js +3 -0
  285. package/lib/Card/Card.js +102 -46
  286. package/lib/Card/index.js +4 -0
  287. package/lib/Card/props/propTypes.js +3 -0
  288. package/lib/CheckBox/CheckBox.js +71 -47
  289. package/lib/CheckBox/CheckBox.module.css +15 -15
  290. package/lib/CheckBox/props/propTypes.js +3 -0
  291. package/lib/DateTime/CalendarView.js +82 -42
  292. package/lib/DateTime/DateTime.js +244 -156
  293. package/lib/DateTime/DateTime.module.css +40 -40
  294. package/lib/DateTime/DateTimePopupFooter.js +33 -8
  295. package/lib/DateTime/DateTimePopupHeader.js +49 -17
  296. package/lib/DateTime/DateWidget.js +350 -249
  297. package/lib/DateTime/DateWidget.module.css +5 -5
  298. package/lib/DateTime/DaysRow.js +28 -5
  299. package/lib/DateTime/Time.js +75 -32
  300. package/lib/DateTime/YearView.js +76 -27
  301. package/lib/DateTime/YearView.module.css +15 -15
  302. package/lib/DateTime/common.js +6 -0
  303. package/lib/DateTime/constants.js +1 -0
  304. package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
  305. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  306. package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
  307. package/lib/DateTime/dateFormatUtils/index.js +73 -16
  308. package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
  309. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  310. package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
  311. package/lib/DateTime/index.js +2 -0
  312. package/lib/DateTime/objectUtils.js +24 -20
  313. package/lib/DateTime/props/propTypes.js +11 -1
  314. package/lib/DateTime/typeChecker.js +4 -0
  315. package/lib/DateTime/validator.js +73 -10
  316. package/lib/DropBox/DropBox.js +45 -21
  317. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  318. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  319. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  320. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  321. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  322. package/lib/DropBox/css/DropBox.module.css +6 -6
  323. package/lib/DropBox/css/cssJSLogic.js +3 -1
  324. package/lib/DropBox/props/defaultProps.js +8 -4
  325. package/lib/DropBox/props/propTypes.js +10 -4
  326. package/lib/DropDown/DropDown.js +51 -5
  327. package/lib/DropDown/DropDown.module.css +2 -2
  328. package/lib/DropDown/DropDownHeading.js +39 -20
  329. package/lib/DropDown/DropDownHeading.module.css +6 -6
  330. package/lib/DropDown/DropDownItem.js +42 -20
  331. package/lib/DropDown/DropDownItem.module.css +12 -12
  332. package/lib/DropDown/DropDownSearch.js +40 -17
  333. package/lib/DropDown/DropDownSearch.module.css +3 -3
  334. package/lib/DropDown/DropDownSeparator.js +24 -4
  335. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  336. package/lib/DropDown/index.js +9 -0
  337. package/lib/DropDown/props/propTypes.js +10 -4
  338. package/lib/Heading/Heading.js +37 -15
  339. package/lib/Heading/Heading.module.css +2 -2
  340. package/lib/Heading/props/propTypes.js +3 -0
  341. package/lib/Label/Label.js +41 -21
  342. package/lib/Label/Label.module.css +5 -5
  343. package/lib/Label/__tests__/Label.spec.js +48 -34
  344. package/lib/Label/props/propTypes.js +3 -0
  345. package/lib/Layout/Box.js +35 -15
  346. package/lib/Layout/Container.js +33 -14
  347. package/lib/Layout/Layout.module.css +15 -15
  348. package/lib/Layout/index.js +3 -0
  349. package/lib/Layout/props/propTypes.js +3 -0
  350. package/lib/Layout/utils.js +11 -0
  351. package/lib/ListItem/ListContainer.js +55 -30
  352. package/lib/ListItem/ListItem.js +74 -45
  353. package/lib/ListItem/ListItem.module.css +27 -38
  354. package/lib/ListItem/ListItemWithAvatar.js +80 -48
  355. package/lib/ListItem/ListItemWithCheckBox.js +70 -40
  356. package/lib/ListItem/ListItemWithIcon.js +73 -44
  357. package/lib/ListItem/ListItemWithRadio.js +71 -42
  358. package/lib/ListItem/index.js +7 -0
  359. package/lib/ListItem/props/propTypes.js +6 -4
  360. package/lib/Modal/Modal.js +45 -10
  361. package/lib/Modal/props/propTypes.js +3 -0
  362. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
  363. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  364. package/lib/MultiSelect/EmptyState.js +45 -24
  365. package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  366. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  367. package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  368. package/lib/MultiSelect/MultiSelect.js +333 -214
  369. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  370. package/lib/MultiSelect/MultiSelectHeader.js +29 -7
  371. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
  372. package/lib/MultiSelect/SelectedOptions.js +43 -17
  373. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  374. package/lib/MultiSelect/Suggestions.js +64 -32
  375. package/lib/MultiSelect/index.js +5 -0
  376. package/lib/MultiSelect/props/defaultProps.js +2 -0
  377. package/lib/MultiSelect/props/propTypes.js +14 -4
  378. package/lib/PopOver/PopOver.js +94 -47
  379. package/lib/PopOver/index.js +4 -0
  380. package/lib/PopOver/props/propTypes.js +3 -0
  381. package/lib/Popup/Popup.js +158 -81
  382. package/lib/Popup/viewPort.js +28 -14
  383. package/lib/Provider/AvatarSize.js +4 -0
  384. package/lib/Provider/Config.js +2 -0
  385. package/lib/Provider/CssProvider.js +4 -0
  386. package/lib/Provider/IdProvider.js +17 -6
  387. package/lib/Provider/LibraryContext.js +35 -15
  388. package/lib/Provider/LibraryContextInit.js +4 -0
  389. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  390. package/lib/Provider/ZindexProvider.js +15 -3
  391. package/lib/Provider/index.js +5 -0
  392. package/lib/Radio/Radio.js +60 -36
  393. package/lib/Radio/Radio.module.css +9 -9
  394. package/lib/Radio/__tests__/Radio.spec.js +134 -103
  395. package/lib/Radio/props/propTypes.js +3 -0
  396. package/lib/Responsive/CustomResponsive.js +73 -29
  397. package/lib/Responsive/RefWrapper.js +17 -11
  398. package/lib/Responsive/ResizeComponent.js +62 -36
  399. package/lib/Responsive/ResizeObserver.js +24 -10
  400. package/lib/Responsive/Responsive.js +80 -30
  401. package/lib/Responsive/index.js +4 -0
  402. package/lib/Responsive/props/propTypes.js +3 -0
  403. package/lib/Responsive/sizeObservers.js +53 -17
  404. package/lib/Responsive/utils/index.js +11 -3
  405. package/lib/Responsive/utils/shallowCompare.js +11 -2
  406. package/lib/Responsive/windowResizeObserver.js +8 -0
  407. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  408. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  409. package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
  410. package/lib/Ribbon/Ribbon.js +33 -13
  411. package/lib/Ribbon/Ribbon.module.css +45 -48
  412. package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
  413. package/lib/Ribbon/props/propTypes.js +3 -0
  414. package/lib/RippleEffect/RippleEffect.js +22 -13
  415. package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
  416. package/lib/RippleEffect/props/defaultProps.js +1 -0
  417. package/lib/RippleEffect/props/propTypes.js +4 -0
  418. package/lib/Select/GroupSelect.js +229 -130
  419. package/lib/Select/Select.js +295 -211
  420. package/lib/Select/Select.module.css +23 -23
  421. package/lib/Select/SelectWithAvatar.js +102 -56
  422. package/lib/Select/SelectWithIcon.js +131 -76
  423. package/lib/Select/index.js +5 -0
  424. package/lib/Select/props/defaultProps.js +5 -4
  425. package/lib/Select/props/propTypes.js +10 -4
  426. package/lib/Stencils/Stencils.js +29 -10
  427. package/lib/Stencils/Stencils.module.css +11 -11
  428. package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
  429. package/lib/Stencils/props/propTypes.js +3 -0
  430. package/lib/Switch/Switch.js +57 -34
  431. package/lib/Switch/Switch.module.css +23 -23
  432. package/lib/Switch/__tests__/Switch.spec.js +91 -72
  433. package/lib/Switch/props/propTypes.js +3 -0
  434. package/lib/Tab/Tab.js +40 -27
  435. package/lib/Tab/Tab.module.css +14 -14
  436. package/lib/Tab/TabContent.js +12 -5
  437. package/lib/Tab/TabContentWrapper.js +16 -8
  438. package/lib/Tab/TabWrapper.js +37 -19
  439. package/lib/Tab/Tabs.js +171 -91
  440. package/lib/Tab/Tabs.module.css +22 -22
  441. package/lib/Tab/index.js +6 -0
  442. package/lib/Tab/props/propTypes.js +3 -0
  443. package/lib/Tag/Tag.js +72 -43
  444. package/lib/Tag/Tag.module.css +24 -25
  445. package/lib/Tag/props/propTypes.js +3 -0
  446. package/lib/TextBox/TextBox.js +86 -60
  447. package/lib/TextBox/TextBox.module.css +9 -9
  448. package/lib/TextBox/props/propTypes.js +6 -4
  449. package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
  450. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  451. package/lib/TextBoxIcon/props/propTypes.js +9 -4
  452. package/lib/Textarea/Textarea.js +54 -29
  453. package/lib/Textarea/Textarea.module.css +21 -21
  454. package/lib/Textarea/props/propTypes.js +3 -0
  455. package/lib/Tooltip/Tooltip.js +94 -31
  456. package/lib/Tooltip/Tooltip.module.css +5 -5
  457. package/lib/Tooltip/props/propTypes.js +3 -0
  458. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  459. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  460. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  461. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  462. package/lib/VelocityAnimation/index.js +3 -0
  463. package/lib/common/animation.module.css +8 -8
  464. package/lib/common/avatarsizes.module.css +16 -16
  465. package/lib/common/basicReset.module.css +3 -3
  466. package/lib/common/common.module.css +24 -24
  467. package/lib/common/customscroll.module.css +2 -2
  468. package/lib/css.js +40 -0
  469. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  470. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  471. package/lib/index.js +58 -0
  472. package/lib/semantic/Button/Button.js +42 -22
  473. package/lib/semantic/Button/props/propTypes.js +3 -0
  474. package/lib/semantic/Button/semanticButton.module.css +1 -1
  475. package/lib/semantic/index.js +2 -0
  476. package/lib/utils/Common.js +111 -18
  477. package/lib/utils/ContextOptimizer.js +16 -10
  478. package/lib/utils/constructFullName.js +13 -4
  479. package/lib/utils/datetime/common.js +34 -5
  480. package/lib/utils/debounce.js +6 -1
  481. package/lib/utils/dropDownUtils.js +175 -59
  482. package/lib/utils/dummyFunction.js +2 -0
  483. package/lib/utils/getHTMLFontSize.js +1 -0
  484. package/lib/utils/getInitial.js +6 -0
  485. package/lib/utils/index.js +1 -0
  486. package/lib/utils/scrollTo.js +2 -0
  487. package/lib/utils/shallowEqual.js +8 -0
  488. package/lib/v1/Accordion/Accordion.js +38 -19
  489. package/lib/v1/Accordion/AccordionItem.js +23 -13
  490. package/lib/v1/Accordion/index.js +3 -0
  491. package/lib/v1/Accordion/props/propTypes.js +3 -0
  492. package/lib/v1/Animation/Animation.js +24 -100
  493. package/lib/v1/Animation/props/propTypes.js +3 -0
  494. package/lib/v1/Animation/utils.js +94 -0
  495. package/lib/v1/AppContainer/AppContainer.js +46 -17
  496. package/lib/v1/AppContainer/props/propTypes.js +3 -0
  497. package/lib/v1/Avatar/Avatar.js +68 -32
  498. package/lib/v1/Avatar/props/propTypes.js +3 -0
  499. package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
  500. package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
  501. package/lib/v1/Button/Button.js +32 -22
  502. package/lib/v1/Button/props/defaultProps.js +2 -0
  503. package/lib/v1/Button/props/propTypes.js +3 -0
  504. package/lib/v1/Buttongroup/Buttongroup.js +13 -5
  505. package/lib/v1/Buttongroup/props/propTypes.js +3 -0
  506. package/lib/v1/Card/Card.js +78 -44
  507. package/lib/v1/Card/index.js +4 -0
  508. package/lib/v1/Card/props/propTypes.js +3 -0
  509. package/lib/v1/CheckBox/CheckBox.js +52 -41
  510. package/lib/v1/CheckBox/props/propTypes.js +3 -0
  511. package/lib/v1/DateTime/CalendarView.js +89 -48
  512. package/lib/v1/DateTime/DateTime.js +246 -158
  513. package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
  514. package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
  515. package/lib/v1/DateTime/DateWidget.js +352 -251
  516. package/lib/v1/DateTime/DaysRow.js +28 -5
  517. package/lib/v1/DateTime/Time.js +75 -32
  518. package/lib/v1/DateTime/YearView.js +76 -27
  519. package/lib/v1/DateTime/index.js +2 -0
  520. package/lib/v1/DateTime/props/propTypes.js +11 -1
  521. package/lib/v1/DropBox/DropBox.js +45 -21
  522. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  523. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
  524. package/lib/v1/DropBox/props/defaultProps.js +8 -4
  525. package/lib/v1/DropBox/props/propTypes.js +10 -4
  526. package/lib/v1/DropDown/DropDown.js +23 -3
  527. package/lib/v1/DropDown/DropDownHeading.js +20 -13
  528. package/lib/v1/DropDown/DropDownItem.js +26 -11
  529. package/lib/v1/DropDown/DropDownSearch.js +28 -16
  530. package/lib/v1/DropDown/DropDownSeparator.js +7 -1
  531. package/lib/v1/DropDown/props/propTypes.js +10 -4
  532. package/lib/v1/Heading/Heading.js +19 -14
  533. package/lib/v1/Heading/props/propTypes.js +3 -0
  534. package/lib/v1/Label/Label.js +22 -14
  535. package/lib/v1/Label/props/propTypes.js +3 -0
  536. package/lib/v1/Layout/Box.js +35 -15
  537. package/lib/v1/Layout/Container.js +33 -14
  538. package/lib/v1/Layout/index.js +3 -0
  539. package/lib/v1/Layout/props/propTypes.js +3 -0
  540. package/lib/v1/ListItem/ListContainer.js +55 -30
  541. package/lib/v1/ListItem/ListItem.js +53 -38
  542. package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
  543. package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
  544. package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
  545. package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
  546. package/lib/v1/ListItem/index.js +7 -0
  547. package/lib/v1/ListItem/props/propTypes.js +6 -4
  548. package/lib/v1/Modal/Modal.js +46 -9
  549. package/lib/v1/Modal/props/propTypes.js +3 -0
  550. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
  551. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
  552. package/lib/v1/MultiSelect/EmptyState.js +45 -24
  553. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  554. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  555. package/lib/v1/MultiSelect/MultiSelect.js +335 -216
  556. package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
  557. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
  558. package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
  559. package/lib/v1/MultiSelect/Suggestions.js +64 -32
  560. package/lib/v1/MultiSelect/index.js +5 -0
  561. package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
  562. package/lib/v1/MultiSelect/props/propTypes.js +14 -4
  563. package/lib/v1/PopOver/PopOver.js +71 -40
  564. package/lib/v1/PopOver/props/propTypes.js +3 -0
  565. package/lib/v1/Popup/Popup.js +158 -81
  566. package/lib/v1/Provider/AvatarSize.js +4 -0
  567. package/lib/v1/Provider/Config.js +2 -0
  568. package/lib/v1/Provider/CssProvider.js +4 -0
  569. package/lib/v1/Provider/IdProvider.js +17 -6
  570. package/lib/v1/Provider/LibraryContext.js +35 -15
  571. package/lib/v1/Provider/LibraryContextInit.js +4 -0
  572. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
  573. package/lib/v1/Provider/ZindexProvider.js +15 -3
  574. package/lib/v1/Provider/index.js +5 -0
  575. package/lib/v1/Radio/Radio.js +42 -32
  576. package/lib/v1/Radio/props/propTypes.js +3 -0
  577. package/lib/v1/Responsive/CustomResponsive.js +73 -29
  578. package/lib/v1/Responsive/RefWrapper.js +17 -11
  579. package/lib/v1/Responsive/ResizeComponent.js +62 -36
  580. package/lib/v1/Responsive/ResizeObserver.js +24 -10
  581. package/lib/v1/Responsive/Responsive.js +80 -30
  582. package/lib/v1/Responsive/index.js +4 -0
  583. package/lib/v1/Responsive/props/propTypes.js +3 -0
  584. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
  585. package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
  586. package/lib/v1/Ribbon/Ribbon.js +14 -7
  587. package/lib/v1/Ribbon/props/propTypes.js +3 -0
  588. package/lib/v1/RippleEffect/RippleEffect.js +21 -10
  589. package/lib/v1/RippleEffect/props/defaultProps.js +1 -0
  590. package/lib/v1/RippleEffect/props/propTypes.js +4 -0
  591. package/lib/v1/Select/GroupSelect.js +229 -130
  592. package/lib/v1/Select/Select.js +297 -214
  593. package/lib/v1/Select/SelectWithAvatar.js +102 -56
  594. package/lib/v1/Select/SelectWithIcon.js +131 -76
  595. package/lib/v1/Select/index.js +5 -0
  596. package/lib/v1/Select/props/defaultProps.js +5 -4
  597. package/lib/v1/Select/props/propTypes.js +10 -4
  598. package/lib/v1/Stencils/Stencils.js +13 -3
  599. package/lib/v1/Stencils/props/propTypes.js +3 -0
  600. package/lib/v1/Switch/Switch.js +38 -25
  601. package/lib/v1/Switch/props/propTypes.js +3 -0
  602. package/lib/v1/Tab/Tab.js +40 -27
  603. package/lib/v1/Tab/TabContent.js +12 -5
  604. package/lib/v1/Tab/TabContentWrapper.js +16 -8
  605. package/lib/v1/Tab/TabWrapper.js +37 -19
  606. package/lib/v1/Tab/Tabs.js +170 -83
  607. package/lib/v1/Tab/index.js +6 -0
  608. package/lib/v1/Tab/props/propTypes.js +3 -0
  609. package/lib/v1/Tab/v1Tab.module.css +14 -14
  610. package/lib/v1/Tab/v1Tabs.module.css +22 -22
  611. package/lib/v1/Tag/Tag.js +50 -32
  612. package/lib/v1/Tag/props/propTypes.js +3 -0
  613. package/lib/v1/TextBox/TextBox.js +70 -47
  614. package/lib/v1/TextBox/props/propTypes.js +6 -4
  615. package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
  616. package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
  617. package/lib/v1/Textarea/Textarea.js +45 -28
  618. package/lib/v1/Textarea/props/propTypes.js +3 -0
  619. package/lib/v1/Tooltip/Tooltip.js +94 -31
  620. package/lib/v1/Tooltip/props/propTypes.js +3 -0
  621. package/lib/v1/Typography/Typography.js +26 -15
  622. package/lib/v1/Typography/css/Typography.module.css +31 -31
  623. package/lib/v1/Typography/css/cssJSLogic.js +25 -20
  624. package/lib/v1/Typography/props/propTypes.js +3 -0
  625. package/lib/v1/Typography/utils/index.js +1 -0
  626. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
  627. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  628. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
  629. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  630. package/lib/v1/semantic/Button/Button.js +24 -18
  631. package/lib/v1/semantic/Button/props/propTypes.js +3 -0
  632. package/lib/v1/semantic/index.js +2 -0
  633. package/package.json +2 -2
  634. package/result.json +1 -1
  635. package/.DS_Store +0 -0
@@ -2,8 +2,8 @@
2
2
  import React, { PureComponent } from 'react';
3
3
  import { GroupSelect_defaultProps } from './props/defaultProps';
4
4
  import { GroupSelect_propTypes } from './props/propTypes';
5
-
6
5
  /**** Components ****/
6
+
7
7
  import Popup from '../Popup/Popup';
8
8
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
9
9
  import Textbox from '../TextBox/TextBox';
@@ -18,13 +18,14 @@ import { getUniqueId } from '../../Provider/IdProvider';
18
18
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
19
19
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
20
20
  import style from '../../Select/Select.module.css';
21
-
22
21
  /**** Methods ****/
22
+
23
23
  import { makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, extractOptionId } from '../../utils/dropDownUtils';
24
24
  import { getIsEmptyValue, scrollTo, debounce, getSearchString, findScrollEnd, getKeyValue } from '../../utils/Common';
25
-
26
25
  /* eslint-disable react/no-unused-prop-types */
26
+
27
27
  /* eslint-disable react/sort-prop-types */
28
+
28
29
  /* eslint-disable react/forbid-component-props */
29
30
 
30
31
  export class GroupSelectComponent extends PureComponent {
@@ -84,9 +85,11 @@ export class GroupSelectComponent extends PureComponent {
84
85
  };
85
86
  this._isMounted = false;
86
87
  }
88
+
87
89
  componentDidMount() {
88
90
  this._isMounted = true;
89
91
  }
92
+
90
93
  componentDidUpdate(prevProps) {
91
94
  let {
92
95
  groupedOptions,
@@ -106,6 +109,7 @@ export class GroupSelectComponent extends PureComponent {
106
109
  } = this;
107
110
  let newOptionIds = allOptionIds;
108
111
  let newSelectedId = selectedId;
112
+
109
113
  if (groupedOptions !== prevProps.groupedOptions) {
110
114
  let {
111
115
  revampedGroups,
@@ -121,6 +125,7 @@ export class GroupSelectComponent extends PureComponent {
121
125
  allOptionIds
122
126
  });
123
127
  }
128
+
124
129
  if (selectedOption !== prevProps.selectedOption) {
125
130
  let {
126
131
  selectedId,
@@ -132,12 +137,14 @@ export class GroupSelectComponent extends PureComponent {
132
137
  hoverIndex
133
138
  });
134
139
  }
140
+
135
141
  let {
136
142
  suggestionOptionIds
137
143
  } = this.handleFilterSuggestions();
138
144
  let hoverId = getIsEmptyValue(suggestionOptionIds[hoverIndex]) ? '' : suggestionOptionIds[hoverIndex];
139
145
  let selSuggestion = this[`suggestion_${hoverId}`];
140
146
  isPopupOpen && scrollTo(suggestionContainer, selSuggestion);
147
+
141
148
  if (isPopupOpen !== prevProps.isPopupOpen) {
142
149
  if (isPopupOpen) {
143
150
  setTimeout(() => {
@@ -156,9 +163,11 @@ export class GroupSelectComponent extends PureComponent {
156
163
  }
157
164
  }
158
165
  }
166
+
159
167
  componentWillUnmount() {
160
168
  this._isMounted = false;
161
169
  }
170
+
162
171
  handleGetGroupSelectOptions(props) {
163
172
  let {
164
173
  groupedOptions
@@ -167,6 +176,7 @@ export class GroupSelectComponent extends PureComponent {
167
176
  groupedOptions
168
177
  });
169
178
  }
179
+
170
180
  handleGetSelectedId(props, allOptionIds) {
171
181
  let {
172
182
  selectedOption,
@@ -178,19 +188,23 @@ export class GroupSelectComponent extends PureComponent {
178
188
  } = selectedOption;
179
189
  let selectedId = optionIdGrouping(selected, groupId);
180
190
  let selectedIdIndex = allOptionIds.indexOf(selectedId);
191
+
181
192
  if (selectedIdIndex === -1) {
182
193
  selectedIdIndex = 0;
194
+
183
195
  if (isDefaultSelectValue) {
184
196
  [selectedId] = allOptionIds;
185
197
  } else {
186
198
  selectedId = '';
187
199
  }
188
200
  }
201
+
189
202
  return {
190
203
  selectedId,
191
204
  hoverIndex: selectedIdIndex
192
205
  };
193
206
  }
207
+
194
208
  handleFilterSuggestions() {
195
209
  let {
196
210
  needSearch,
@@ -201,6 +215,7 @@ export class GroupSelectComponent extends PureComponent {
201
215
  searchStr = '',
202
216
  allOptionIds
203
217
  } = this.state;
218
+
204
219
  if (needSearch && searchStr && searchStr.trim().length) {
205
220
  searchStr = getSearchString(searchStr);
206
221
  let {
@@ -216,11 +231,13 @@ export class GroupSelectComponent extends PureComponent {
216
231
  suggestionOptionIds
217
232
  };
218
233
  }
234
+
219
235
  return {
220
236
  suggestionGroups: revampedGroups,
221
237
  suggestionOptionIds: allOptionIds
222
238
  };
223
239
  }
240
+
224
241
  handleSearchOptions() {
225
242
  let {
226
243
  onSearch
@@ -230,6 +247,7 @@ export class GroupSelectComponent extends PureComponent {
230
247
  } = this.state;
231
248
  searchStr && this.handleFetchOptions(onSearch, searchStr);
232
249
  }
250
+
233
251
  handleSearch(value) {
234
252
  // let { value = '' } = e.target;
235
253
  let {
@@ -252,6 +270,7 @@ export class GroupSelectComponent extends PureComponent {
252
270
  }
253
271
  });
254
272
  }
273
+
255
274
  handleKeyDown(e) {
256
275
  let {
257
276
  isPopupOpen,
@@ -267,35 +286,40 @@ export class GroupSelectComponent extends PureComponent {
267
286
  let {
268
287
  keyCode
269
288
  } = e;
289
+
270
290
  if (!isPopupOpen && !isPopupOpenOnEnter) {
271
291
  onKeyDown && onKeyDown(e);
272
292
  }
293
+
273
294
  if (isPopupOpen && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
274
295
  e.preventDefault(); //prevent body scroll
275
296
  } else if (!isPopupOpen && keyCode === 40) {
276
297
  e.preventDefault(); //prevent body scroll
298
+
277
299
  this.togglePopup(e);
278
300
  }
301
+
279
302
  if (keyCode === 38 && isPopupOpen && suggestionOptionIds.length) {
280
303
  // eslint-disable-next-line
281
- if (hoverIndex === 0) {
282
- // hoverIndex = options.length - 1;
304
+ if (hoverIndex === 0) {// hoverIndex = options.length - 1;
283
305
  } else {
284
306
  hoverIndex -= 1;
285
307
  }
308
+
286
309
  this.setState({
287
310
  hoverIndex
288
311
  });
289
312
  } else if (keyCode === 40 && isPopupOpen && suggestionOptionIds.length) {
290
313
  // eslint-disable-next-line
291
- if (hoverIndex === suggestionOptionIds.length - 1) {
292
- // hoverIndex = 0;
314
+ if (hoverIndex === suggestionOptionIds.length - 1) {// hoverIndex = 0;
293
315
  } else {
294
316
  if (hoverIndex === suggestionOptionIds.length - 3) {
295
317
  this.handleGetNextOptions();
296
318
  }
319
+
297
320
  hoverIndex += 1;
298
321
  }
322
+
299
323
  this.setState({
300
324
  hoverIndex
301
325
  });
@@ -306,8 +330,7 @@ export class GroupSelectComponent extends PureComponent {
306
330
  } else if (keyCode === 27) {
307
331
  this.valueInput && this.valueInput.focus({
308
332
  preventScroll: true
309
- });
310
- // this.handlePopupClose(e);
333
+ }); // this.handlePopupClose(e);
311
334
  }
312
335
  }
313
336
 
@@ -323,6 +346,7 @@ export class GroupSelectComponent extends PureComponent {
323
346
  hoverIndex: newHoverIndex
324
347
  });
325
348
  }
349
+
326
350
  handleChange(id, value, index, e) {
327
351
  e && e.preventDefault && e.preventDefault();
328
352
  let {
@@ -336,13 +360,13 @@ export class GroupSelectComponent extends PureComponent {
336
360
  id: selected,
337
361
  groupId
338
362
  } = extractOptionId(id);
363
+
339
364
  if (!getIsEmptyValue(id) && !isReadOnly) {
340
365
  onChange && onChange({
341
366
  groupId,
342
367
  selected
343
368
  }, normalizedAllOptions[id]);
344
- this.handlePopupClose();
345
- // this.valueInput && this.valueInput.focus({preventScroll:true});
369
+ this.handlePopupClose(); // this.valueInput && this.valueInput.focus({preventScroll:true});
346
370
  }
347
371
  }
348
372
 
@@ -354,6 +378,7 @@ export class GroupSelectComponent extends PureComponent {
354
378
  } = this.props;
355
379
  !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}Center` : null);
356
380
  }
381
+
357
382
  handlePopupClose(e) {
358
383
  let {
359
384
  closePopupOnly,
@@ -364,15 +389,19 @@ export class GroupSelectComponent extends PureComponent {
364
389
  });
365
390
  isPopupOpen && closePopupOnly(e);
366
391
  }
392
+
367
393
  suggestionContainerRef(el) {
368
394
  this.suggestionContainer = el;
369
395
  }
396
+
370
397
  suggestionItemRef(el, index, id) {
371
398
  this[`suggestion_${id}`] = el;
372
399
  }
400
+
373
401
  searchInputRef(el) {
374
402
  this.searchInput = el;
375
403
  }
404
+
376
405
  valueInputRef(el) {
377
406
  let {
378
407
  getRef
@@ -380,12 +409,14 @@ export class GroupSelectComponent extends PureComponent {
380
409
  this.valueInput = el;
381
410
  getRef && getRef(el);
382
411
  }
412
+
383
413
  handleSelectFocus(e) {
384
414
  let {
385
415
  target
386
416
  } = e || {};
387
417
  target && target.setSelectionRange(target, 0);
388
418
  }
419
+
389
420
  handleClearSearch() {
390
421
  this.handleSearch('');
391
422
  setTimeout(() => {
@@ -394,28 +425,33 @@ export class GroupSelectComponent extends PureComponent {
394
425
  });
395
426
  }, 1);
396
427
  }
428
+
397
429
  handleValueInputChange(e) {
398
430
  let typeString = getKeyValue(e);
399
431
  let {
400
432
  isPopupOpen,
401
433
  autoSelectOnType
402
434
  } = this.props;
435
+
403
436
  if (!isPopupOpen && autoSelectOnType) {
404
437
  this.valueInputTypeString += (typeString || '').trim();
405
438
  this.handleChangeOnType();
406
439
  }
407
440
  }
441
+
408
442
  handleChangeOnType() {
409
443
  let {
410
444
  revampedGroups
411
445
  } = this.state;
412
446
  let typeString = this.valueInputTypeString;
413
447
  this.valueInputTypeString = '';
448
+
414
449
  let changeValue = () => {
415
450
  let id = this.autoSelectSuggestions[this.autoSelectIndex];
416
451
  let {
417
452
  suggestionOptionIds
418
453
  } = this.handleFilterSuggestions();
454
+
419
455
  if (!getIsEmptyValue(id)) {
420
456
  this.handleChange(id);
421
457
  let hoverIndex = suggestionOptionIds.indexOf(id);
@@ -424,12 +460,14 @@ export class GroupSelectComponent extends PureComponent {
424
460
  });
425
461
  }
426
462
  };
463
+
427
464
  if (typeString && typeString === this.valueInputSearchString) {
428
465
  if (this.autoSelectIndex < this.autoSelectSuggestions.length - 1) {
429
466
  this.autoSelectIndex += 1;
430
467
  } else {
431
468
  this.autoSelectIndex = 0;
432
469
  }
470
+
433
471
  changeValue();
434
472
  } else if (typeString) {
435
473
  this.valueInputSearchString = typeString;
@@ -446,11 +484,13 @@ export class GroupSelectComponent extends PureComponent {
446
484
  changeValue();
447
485
  }
448
486
  }
487
+
449
488
  handleScroll(e) {
450
489
  let ele = e.target;
451
490
  let isScrollReachedBottom = findScrollEnd(ele);
452
491
  isScrollReachedBottom && this.handleGetNextOptions();
453
492
  }
493
+
454
494
  handleFetchOptions(APICall) {
455
495
  let searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
456
496
  // let funcArgs = args.slice(1, args.length);
@@ -460,10 +500,12 @@ export class GroupSelectComponent extends PureComponent {
460
500
  let {
461
501
  _isMounted
462
502
  } = this;
503
+
463
504
  if (!isFetchingOptions && APICall) {
464
505
  this.setState({
465
506
  isFetchingOptions: true
466
507
  });
508
+
467
509
  try {
468
510
  return APICall(searchStr).then(() => {
469
511
  _isMounted && this.setState({
@@ -481,6 +523,7 @@ export class GroupSelectComponent extends PureComponent {
481
523
  }
482
524
  }
483
525
  }
526
+
484
527
  handleGetNextOptions() {
485
528
  let {
486
529
  isNextOptions,
@@ -491,6 +534,7 @@ export class GroupSelectComponent extends PureComponent {
491
534
  } = this.state;
492
535
  isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
493
536
  }
537
+
494
538
  responsiveFunc(_ref) {
495
539
  let {
496
540
  mediaQueryOR
@@ -501,6 +545,7 @@ export class GroupSelectComponent extends PureComponent {
501
545
  }])
502
546
  };
503
547
  }
548
+
504
549
  render() {
505
550
  let {
506
551
  isDisabled,
@@ -737,6 +782,7 @@ export class GroupSelectComponent extends PureComponent {
737
782
  }, /*#__PURE__*/React.createElement(Loader, null))), getFooter ? /*#__PURE__*/React.createElement(CardFooter, null, getFooter()) : null)));
738
783
  }) : null);
739
784
  }
785
+
740
786
  }
741
787
  GroupSelectComponent.propTypes = GroupSelect_propTypes;
742
788
  GroupSelectComponent.defaultProps = GroupSelect_defaultProps;
@@ -744,9 +790,7 @@ GroupSelectComponent.displayName = 'GroupSelect';
744
790
  let GroupSelect = Popup(GroupSelectComponent);
745
791
  GroupSelect.defaultProps = GroupSelectComponent.defaultProps;
746
792
  GroupSelect.propTypes = GroupSelectComponent.propTypes;
747
- export default GroupSelect;
748
-
749
- // if (__DOCS__) {
793
+ export default GroupSelect; // if (__DOCS__) {
750
794
  // GroupSelect.docs = {
751
795
  // componentGroup: 'Form Elements',
752
796
  // folderName: 'Style Guide'