@zohodesk/components 1.2.23 → 1.2.24

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 (627) hide show
  1. package/README.md +4 -0
  2. package/es/Accordion/Accordion.js +7 -3
  3. package/es/Accordion/AccordionItem.js +4 -2
  4. package/es/Animation/Animation.js +7 -89
  5. package/es/Animation/utils.js +83 -0
  6. package/es/AppContainer/AppContainer.js +14 -3
  7. package/es/AppContainer/AppContainer.module.css +2 -2
  8. package/es/Avatar/Avatar.js +23 -11
  9. package/es/Avatar/Avatar.module.css +18 -18
  10. package/es/AvatarTeam/AvatarTeam.js +3 -3
  11. package/es/AvatarTeam/AvatarTeam.module.css +35 -35
  12. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
  13. package/es/Button/Button.js +4 -3
  14. package/es/Button/css/Button.module.css +70 -70
  15. package/es/Buttongroup/Buttongroup.js +3 -3
  16. package/es/Buttongroup/Buttongroup.module.css +13 -15
  17. package/es/Card/Card.js +21 -10
  18. package/es/CheckBox/CheckBox.js +5 -3
  19. package/es/CheckBox/CheckBox.module.css +15 -15
  20. package/es/DateTime/CalendarView.js +32 -20
  21. package/es/DateTime/DateTime.js +69 -6
  22. package/es/DateTime/DateTime.module.css +40 -40
  23. package/es/DateTime/DateTimePopupFooter.js +4 -1
  24. package/es/DateTime/DateTimePopupHeader.js +8 -2
  25. package/es/DateTime/DateWidget.js +98 -35
  26. package/es/DateTime/DateWidget.module.css +5 -5
  27. package/es/DateTime/DaysRow.js +4 -1
  28. package/es/DateTime/Time.js +10 -1
  29. package/es/DateTime/YearView.js +28 -4
  30. package/es/DateTime/YearView.module.css +15 -15
  31. package/es/DateTime/common.js +3 -0
  32. package/es/DateTime/constants.js +1 -0
  33. package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
  34. package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
  35. package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
  36. package/es/DateTime/dateFormatUtils/index.js +31 -1
  37. package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
  38. package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
  39. package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
  40. package/es/DateTime/objectUtils.js +14 -20
  41. package/es/DateTime/typeChecker.js +3 -0
  42. package/es/DateTime/validator.js +58 -6
  43. package/es/DropBox/DropBox.js +6 -2
  44. package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  45. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  46. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
  47. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
  48. package/es/DropBox/css/DropBox.module.css +6 -6
  49. package/es/DropBox/props/defaultProps.js +1 -2
  50. package/es/DropBox/props/propTypes.js +1 -2
  51. package/es/DropDown/DropDown.js +7 -1
  52. package/es/DropDown/DropDown.module.css +2 -2
  53. package/es/DropDown/DropDownHeading.js +4 -5
  54. package/es/DropDown/DropDownHeading.module.css +6 -6
  55. package/es/DropDown/DropDownItem.js +6 -0
  56. package/es/DropDown/DropDownItem.module.css +12 -12
  57. package/es/DropDown/DropDownSearch.js +4 -0
  58. package/es/DropDown/DropDownSearch.module.css +3 -3
  59. package/es/DropDown/DropDownSeparator.js +1 -0
  60. package/es/DropDown/DropDownSeparator.module.css +2 -2
  61. package/es/DropDown/props/propTypes.js +1 -2
  62. package/es/Heading/Heading.js +2 -3
  63. package/es/Heading/Heading.module.css +2 -2
  64. package/es/Label/Label.js +2 -3
  65. package/es/Label/Label.module.css +5 -5
  66. package/es/Label/__tests__/Label.spec.js +1 -2
  67. package/es/Layout/Box.js +15 -2
  68. package/es/Layout/Container.js +14 -3
  69. package/es/Layout/Layout.module.css +15 -15
  70. package/es/Layout/index.js +1 -2
  71. package/es/Layout/utils.js +1 -0
  72. package/es/ListItem/ListContainer.js +8 -3
  73. package/es/ListItem/ListItem.js +9 -3
  74. package/es/ListItem/ListItem.module.css +27 -38
  75. package/es/ListItem/ListItemWithAvatar.js +9 -3
  76. package/es/ListItem/ListItemWithCheckBox.js +7 -2
  77. package/es/ListItem/ListItemWithIcon.js +8 -3
  78. package/es/ListItem/ListItemWithRadio.js +7 -3
  79. package/es/Modal/Modal.js +28 -11
  80. package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
  81. package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
  82. package/es/MultiSelect/EmptyState.js +2 -0
  83. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  84. package/es/MultiSelect/MultiSelect.js +99 -30
  85. package/es/MultiSelect/MultiSelect.module.css +31 -31
  86. package/es/MultiSelect/MultiSelectHeader.js +3 -0
  87. package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
  88. package/es/MultiSelect/SelectedOptions.js +6 -3
  89. package/es/MultiSelect/SelectedOptions.module.css +5 -5
  90. package/es/MultiSelect/Suggestions.js +7 -3
  91. package/es/MultiSelect/props/propTypes.js +2 -2
  92. package/es/PopOver/PopOver.js +16 -0
  93. package/es/Popup/Popup.js +77 -24
  94. package/es/Popup/viewPort.js +16 -4
  95. package/es/Provider/IdProvider.js +10 -5
  96. package/es/Provider/LibraryContext.js +6 -4
  97. package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
  98. package/es/Provider/ZindexProvider.js +9 -2
  99. package/es/Radio/Radio.js +3 -0
  100. package/es/Radio/Radio.module.css +9 -9
  101. package/es/Responsive/CustomResponsive.js +30 -18
  102. package/es/Responsive/RefWrapper.js +6 -7
  103. package/es/Responsive/ResizeComponent.js +35 -25
  104. package/es/Responsive/ResizeObserver.js +26 -6
  105. package/es/Responsive/Responsive.js +34 -20
  106. package/es/Responsive/index.js +1 -3
  107. package/es/Responsive/sizeObservers.js +28 -7
  108. package/es/Responsive/utils/index.js +7 -5
  109. package/es/Responsive/utils/shallowCompare.js +7 -2
  110. package/es/Responsive/windowResizeObserver.js +7 -0
  111. package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
  112. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  113. package/es/ResponsiveDropBox/props/propTypes.js +1 -2
  114. package/es/Ribbon/Ribbon.js +3 -2
  115. package/es/Ribbon/Ribbon.module.css +45 -48
  116. package/es/RippleEffect/RippleEffect.js +1 -3
  117. package/es/Select/GroupSelect.js +58 -14
  118. package/es/Select/Select.js +79 -33
  119. package/es/Select/Select.module.css +23 -23
  120. package/es/Select/SelectWithAvatar.js +17 -4
  121. package/es/Select/SelectWithIcon.js +46 -5
  122. package/es/Select/props/propTypes.js +2 -2
  123. package/es/Stencils/Stencils.js +3 -3
  124. package/es/Stencils/Stencils.module.css +11 -11
  125. package/es/Switch/Switch.js +5 -3
  126. package/es/Switch/Switch.module.css +23 -23
  127. package/es/Tab/Tab.js +4 -4
  128. package/es/Tab/Tab.module.css +14 -14
  129. package/es/Tab/TabContent.js +1 -0
  130. package/es/Tab/TabContentWrapper.js +3 -0
  131. package/es/Tab/TabWrapper.js +5 -2
  132. package/es/Tab/Tabs.js +54 -7
  133. package/es/Tab/Tabs.module.css +22 -22
  134. package/es/Tag/Tag.js +6 -3
  135. package/es/Tag/Tag.module.css +24 -25
  136. package/es/TextBox/TextBox.js +16 -3
  137. package/es/TextBox/TextBox.module.css +9 -9
  138. package/es/TextBoxIcon/TextBoxIcon.js +9 -2
  139. package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
  140. package/es/TextBoxIcon/props/propTypes.js +1 -2
  141. package/es/Textarea/Textarea.js +12 -3
  142. package/es/Textarea/Textarea.module.css +21 -21
  143. package/es/Tooltip/Tooltip.js +58 -14
  144. package/es/Tooltip/Tooltip.module.css +5 -5
  145. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
  146. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
  147. package/es/common/animation.module.css +8 -8
  148. package/es/common/avatarsizes.module.css +16 -16
  149. package/es/common/basicReset.module.css +3 -3
  150. package/es/common/common.module.css +24 -24
  151. package/es/common/customscroll.module.css +2 -2
  152. package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
  153. package/es/semantic/Button/Button.js +3 -2
  154. package/es/semantic/Button/semanticButton.module.css +1 -1
  155. package/es/utils/Common.js +54 -9
  156. package/es/utils/ContextOptimizer.js +4 -5
  157. package/es/utils/constructFullName.js +2 -0
  158. package/es/utils/datetime/common.js +16 -5
  159. package/es/utils/debounce.js +5 -1
  160. package/es/utils/dropDownUtils.js +68 -11
  161. package/es/utils/getInitial.js +4 -0
  162. package/es/utils/shallowEqual.js +6 -0
  163. package/es/v1/Accordion/Accordion.js +4 -3
  164. package/es/v1/Accordion/AccordionItem.js +4 -2
  165. package/es/v1/Animation/Animation.js +5 -89
  166. package/es/v1/Animation/utils.js +83 -0
  167. package/es/v1/AppContainer/AppContainer.js +9 -3
  168. package/es/v1/Avatar/Avatar.js +18 -6
  169. package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
  170. package/es/v1/Button/Button.js +3 -3
  171. package/es/v1/Card/Card.js +16 -8
  172. package/es/v1/CheckBox/CheckBox.js +6 -3
  173. package/es/v1/DateTime/CalendarView.js +32 -20
  174. package/es/v1/DateTime/DateTime.js +69 -6
  175. package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
  176. package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
  177. package/es/v1/DateTime/DateWidget.js +98 -35
  178. package/es/v1/DateTime/DaysRow.js +4 -1
  179. package/es/v1/DateTime/Time.js +10 -1
  180. package/es/v1/DateTime/YearView.js +28 -4
  181. package/es/v1/DropBox/DropBox.js +6 -2
  182. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
  183. package/es/v1/DropBox/props/defaultProps.js +1 -2
  184. package/es/v1/DropBox/props/propTypes.js +1 -2
  185. package/es/v1/DropDown/DropDown.js +3 -0
  186. package/es/v1/DropDown/DropDownHeading.js +2 -2
  187. package/es/v1/DropDown/DropDownItem.js +5 -0
  188. package/es/v1/DropDown/DropDownSearch.js +3 -2
  189. package/es/v1/DropDown/props/propTypes.js +1 -2
  190. package/es/v1/Heading/Heading.js +1 -3
  191. package/es/v1/Layout/Box.js +15 -2
  192. package/es/v1/Layout/Container.js +14 -3
  193. package/es/v1/ListItem/ListContainer.js +8 -3
  194. package/es/v1/ListItem/ListItem.js +10 -3
  195. package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
  196. package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
  197. package/es/v1/ListItem/ListItemWithIcon.js +9 -3
  198. package/es/v1/ListItem/ListItemWithRadio.js +8 -3
  199. package/es/v1/Modal/Modal.js +17 -1
  200. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
  201. package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
  202. package/es/v1/MultiSelect/EmptyState.js +2 -0
  203. package/es/v1/MultiSelect/MultiSelect.js +100 -31
  204. package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
  205. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
  206. package/es/v1/MultiSelect/SelectedOptions.js +6 -3
  207. package/es/v1/MultiSelect/Suggestions.js +7 -3
  208. package/es/v1/MultiSelect/props/propTypes.js +2 -2
  209. package/es/v1/PopOver/PopOver.js +11 -0
  210. package/es/v1/Popup/Popup.js +77 -24
  211. package/es/v1/Provider/IdProvider.js +10 -5
  212. package/es/v1/Provider/LibraryContext.js +6 -4
  213. package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
  214. package/es/v1/Provider/ZindexProvider.js +9 -2
  215. package/es/v1/Radio/Radio.js +5 -2
  216. package/es/v1/Responsive/CustomResponsive.js +30 -18
  217. package/es/v1/Responsive/RefWrapper.js +6 -7
  218. package/es/v1/Responsive/ResizeComponent.js +35 -25
  219. package/es/v1/Responsive/ResizeObserver.js +26 -6
  220. package/es/v1/Responsive/Responsive.js +34 -20
  221. package/es/v1/Responsive/index.js +1 -3
  222. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
  223. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
  224. package/es/v1/Select/GroupSelect.js +58 -14
  225. package/es/v1/Select/Select.js +81 -37
  226. package/es/v1/Select/SelectWithAvatar.js +17 -4
  227. package/es/v1/Select/SelectWithIcon.js +46 -5
  228. package/es/v1/Select/props/propTypes.js +2 -2
  229. package/es/v1/Stencils/Stencils.js +2 -0
  230. package/es/v1/Switch/Switch.js +6 -3
  231. package/es/v1/Tab/Tab.js +3 -3
  232. package/es/v1/Tab/TabContent.js +1 -0
  233. package/es/v1/Tab/TabContentWrapper.js +3 -0
  234. package/es/v1/Tab/TabWrapper.js +5 -2
  235. package/es/v1/Tab/Tabs.js +54 -9
  236. package/es/v1/Tab/v1Tab.module.css +14 -14
  237. package/es/v1/Tab/v1Tabs.module.css +22 -22
  238. package/es/v1/Tag/Tag.js +5 -1
  239. package/es/v1/TextBox/TextBox.js +14 -0
  240. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
  241. package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
  242. package/es/v1/Textarea/Textarea.js +10 -3
  243. package/es/v1/Tooltip/Tooltip.js +58 -14
  244. package/es/v1/Typography/Typography.js +2 -0
  245. package/es/v1/Typography/css/Typography.module.css +31 -31
  246. package/es/v1/Typography/css/cssJSLogic.js +3 -0
  247. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
  248. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
  249. package/es/v1/semantic/Button/Button.js +1 -2
  250. package/lib/Accordion/Accordion.js +42 -18
  251. package/lib/Accordion/AccordionItem.js +40 -18
  252. package/lib/Accordion/index.js +3 -0
  253. package/lib/Accordion/props/propTypes.js +3 -0
  254. package/lib/Animation/Animation.js +42 -104
  255. package/lib/Animation/props/propTypes.js +3 -0
  256. package/lib/Animation/utils.js +94 -0
  257. package/lib/AppContainer/AppContainer.js +58 -20
  258. package/lib/AppContainer/AppContainer.module.css +2 -2
  259. package/lib/AppContainer/props/propTypes.js +3 -0
  260. package/lib/Avatar/Avatar.js +78 -38
  261. package/lib/Avatar/Avatar.module.css +18 -18
  262. package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
  263. package/lib/Avatar/props/propTypes.js +3 -0
  264. package/lib/AvatarTeam/AvatarTeam.js +52 -30
  265. package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
  266. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
  267. package/lib/AvatarTeam/props/propTypes.js +3 -0
  268. package/lib/Button/Button.js +33 -22
  269. package/lib/Button/__tests__/Button.spec.js +65 -48
  270. package/lib/Button/css/Button.module.css +70 -70
  271. package/lib/Button/css/cssJSLogic.js +18 -17
  272. package/lib/Button/index.js +3 -0
  273. package/lib/Button/props/defaultProps.js +2 -0
  274. package/lib/Button/props/propTypes.js +3 -0
  275. package/lib/Buttongroup/Buttongroup.js +32 -12
  276. package/lib/Buttongroup/Buttongroup.module.css +13 -15
  277. package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
  278. package/lib/Buttongroup/props/propTypes.js +3 -0
  279. package/lib/Card/Card.js +102 -46
  280. package/lib/Card/index.js +4 -0
  281. package/lib/Card/props/propTypes.js +3 -0
  282. package/lib/CheckBox/CheckBox.js +71 -47
  283. package/lib/CheckBox/CheckBox.module.css +15 -15
  284. package/lib/CheckBox/props/propTypes.js +3 -0
  285. package/lib/DateTime/CalendarView.js +82 -42
  286. package/lib/DateTime/DateTime.js +244 -156
  287. package/lib/DateTime/DateTime.module.css +40 -40
  288. package/lib/DateTime/DateTimePopupFooter.js +33 -8
  289. package/lib/DateTime/DateTimePopupHeader.js +49 -17
  290. package/lib/DateTime/DateWidget.js +350 -249
  291. package/lib/DateTime/DateWidget.module.css +5 -5
  292. package/lib/DateTime/DaysRow.js +28 -5
  293. package/lib/DateTime/Time.js +75 -32
  294. package/lib/DateTime/YearView.js +76 -27
  295. package/lib/DateTime/YearView.module.css +15 -15
  296. package/lib/DateTime/common.js +6 -0
  297. package/lib/DateTime/constants.js +1 -0
  298. package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
  299. package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
  300. package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
  301. package/lib/DateTime/dateFormatUtils/index.js +73 -16
  302. package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
  303. package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
  304. package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
  305. package/lib/DateTime/index.js +2 -0
  306. package/lib/DateTime/objectUtils.js +24 -20
  307. package/lib/DateTime/props/propTypes.js +11 -1
  308. package/lib/DateTime/typeChecker.js +4 -0
  309. package/lib/DateTime/validator.js +73 -10
  310. package/lib/DropBox/DropBox.js +45 -21
  311. package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  312. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
  313. package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
  314. package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
  315. package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
  316. package/lib/DropBox/css/DropBox.module.css +6 -6
  317. package/lib/DropBox/css/cssJSLogic.js +3 -1
  318. package/lib/DropBox/props/defaultProps.js +8 -4
  319. package/lib/DropBox/props/propTypes.js +10 -4
  320. package/lib/DropDown/DropDown.js +51 -5
  321. package/lib/DropDown/DropDown.module.css +2 -2
  322. package/lib/DropDown/DropDownHeading.js +39 -20
  323. package/lib/DropDown/DropDownHeading.module.css +6 -6
  324. package/lib/DropDown/DropDownItem.js +42 -20
  325. package/lib/DropDown/DropDownItem.module.css +12 -12
  326. package/lib/DropDown/DropDownSearch.js +40 -17
  327. package/lib/DropDown/DropDownSearch.module.css +3 -3
  328. package/lib/DropDown/DropDownSeparator.js +24 -4
  329. package/lib/DropDown/DropDownSeparator.module.css +2 -2
  330. package/lib/DropDown/index.js +9 -0
  331. package/lib/DropDown/props/propTypes.js +10 -4
  332. package/lib/Heading/Heading.js +37 -15
  333. package/lib/Heading/Heading.module.css +2 -2
  334. package/lib/Heading/props/propTypes.js +3 -0
  335. package/lib/Label/Label.js +41 -21
  336. package/lib/Label/Label.module.css +5 -5
  337. package/lib/Label/__tests__/Label.spec.js +48 -34
  338. package/lib/Label/props/propTypes.js +3 -0
  339. package/lib/Layout/Box.js +35 -15
  340. package/lib/Layout/Container.js +33 -14
  341. package/lib/Layout/Layout.module.css +15 -15
  342. package/lib/Layout/index.js +3 -0
  343. package/lib/Layout/props/propTypes.js +3 -0
  344. package/lib/Layout/utils.js +11 -0
  345. package/lib/ListItem/ListContainer.js +55 -30
  346. package/lib/ListItem/ListItem.js +74 -45
  347. package/lib/ListItem/ListItem.module.css +27 -38
  348. package/lib/ListItem/ListItemWithAvatar.js +80 -48
  349. package/lib/ListItem/ListItemWithCheckBox.js +70 -40
  350. package/lib/ListItem/ListItemWithIcon.js +73 -44
  351. package/lib/ListItem/ListItemWithRadio.js +71 -42
  352. package/lib/ListItem/index.js +7 -0
  353. package/lib/ListItem/props/propTypes.js +6 -4
  354. package/lib/Modal/Modal.js +45 -10
  355. package/lib/Modal/props/propTypes.js +3 -0
  356. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
  357. package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
  358. package/lib/MultiSelect/EmptyState.js +45 -24
  359. package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  360. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
  361. package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  362. package/lib/MultiSelect/MultiSelect.js +333 -214
  363. package/lib/MultiSelect/MultiSelect.module.css +31 -31
  364. package/lib/MultiSelect/MultiSelectHeader.js +29 -7
  365. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
  366. package/lib/MultiSelect/SelectedOptions.js +43 -17
  367. package/lib/MultiSelect/SelectedOptions.module.css +5 -5
  368. package/lib/MultiSelect/Suggestions.js +64 -32
  369. package/lib/MultiSelect/index.js +5 -0
  370. package/lib/MultiSelect/props/defaultProps.js +2 -0
  371. package/lib/MultiSelect/props/propTypes.js +14 -4
  372. package/lib/PopOver/PopOver.js +94 -47
  373. package/lib/PopOver/index.js +4 -0
  374. package/lib/PopOver/props/propTypes.js +3 -0
  375. package/lib/Popup/Popup.js +158 -81
  376. package/lib/Popup/viewPort.js +28 -14
  377. package/lib/Provider/AvatarSize.js +4 -0
  378. package/lib/Provider/Config.js +2 -0
  379. package/lib/Provider/CssProvider.js +4 -0
  380. package/lib/Provider/IdProvider.js +17 -6
  381. package/lib/Provider/LibraryContext.js +35 -15
  382. package/lib/Provider/LibraryContextInit.js +4 -0
  383. package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
  384. package/lib/Provider/ZindexProvider.js +15 -3
  385. package/lib/Provider/index.js +5 -0
  386. package/lib/Radio/Radio.js +60 -36
  387. package/lib/Radio/Radio.module.css +9 -9
  388. package/lib/Radio/__tests__/Radio.spec.js +134 -103
  389. package/lib/Radio/props/propTypes.js +3 -0
  390. package/lib/Responsive/CustomResponsive.js +73 -29
  391. package/lib/Responsive/RefWrapper.js +17 -11
  392. package/lib/Responsive/ResizeComponent.js +62 -36
  393. package/lib/Responsive/ResizeObserver.js +24 -10
  394. package/lib/Responsive/Responsive.js +80 -30
  395. package/lib/Responsive/index.js +4 -0
  396. package/lib/Responsive/props/propTypes.js +3 -0
  397. package/lib/Responsive/sizeObservers.js +53 -17
  398. package/lib/Responsive/utils/index.js +11 -3
  399. package/lib/Responsive/utils/shallowCompare.js +11 -2
  400. package/lib/Responsive/windowResizeObserver.js +8 -0
  401. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
  402. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
  403. package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
  404. package/lib/Ribbon/Ribbon.js +33 -13
  405. package/lib/Ribbon/Ribbon.module.css +45 -48
  406. package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
  407. package/lib/Ribbon/props/propTypes.js +3 -0
  408. package/lib/RippleEffect/RippleEffect.js +18 -10
  409. package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
  410. package/lib/RippleEffect/props/propTypes.js +3 -0
  411. package/lib/Select/GroupSelect.js +229 -130
  412. package/lib/Select/Select.js +295 -211
  413. package/lib/Select/Select.module.css +23 -23
  414. package/lib/Select/SelectWithAvatar.js +102 -56
  415. package/lib/Select/SelectWithIcon.js +131 -76
  416. package/lib/Select/index.js +5 -0
  417. package/lib/Select/props/defaultProps.js +5 -4
  418. package/lib/Select/props/propTypes.js +10 -4
  419. package/lib/Stencils/Stencils.js +29 -10
  420. package/lib/Stencils/Stencils.module.css +11 -11
  421. package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
  422. package/lib/Stencils/props/propTypes.js +3 -0
  423. package/lib/Switch/Switch.js +57 -34
  424. package/lib/Switch/Switch.module.css +23 -23
  425. package/lib/Switch/__tests__/Switch.spec.js +91 -72
  426. package/lib/Switch/props/propTypes.js +3 -0
  427. package/lib/Tab/Tab.js +40 -27
  428. package/lib/Tab/Tab.module.css +14 -14
  429. package/lib/Tab/TabContent.js +12 -5
  430. package/lib/Tab/TabContentWrapper.js +16 -8
  431. package/lib/Tab/TabWrapper.js +37 -19
  432. package/lib/Tab/Tabs.js +171 -91
  433. package/lib/Tab/Tabs.module.css +22 -22
  434. package/lib/Tab/index.js +6 -0
  435. package/lib/Tab/props/propTypes.js +3 -0
  436. package/lib/Tag/Tag.js +72 -43
  437. package/lib/Tag/Tag.module.css +24 -25
  438. package/lib/Tag/props/propTypes.js +3 -0
  439. package/lib/TextBox/TextBox.js +86 -60
  440. package/lib/TextBox/TextBox.module.css +9 -9
  441. package/lib/TextBox/props/propTypes.js +6 -4
  442. package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
  443. package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
  444. package/lib/TextBoxIcon/props/propTypes.js +9 -4
  445. package/lib/Textarea/Textarea.js +54 -29
  446. package/lib/Textarea/Textarea.module.css +21 -21
  447. package/lib/Textarea/props/propTypes.js +3 -0
  448. package/lib/Tooltip/Tooltip.js +94 -31
  449. package/lib/Tooltip/Tooltip.module.css +5 -5
  450. package/lib/Tooltip/props/propTypes.js +3 -0
  451. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
  452. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  453. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
  454. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  455. package/lib/VelocityAnimation/index.js +3 -0
  456. package/lib/common/animation.module.css +8 -8
  457. package/lib/common/avatarsizes.module.css +16 -16
  458. package/lib/common/basicReset.module.css +3 -3
  459. package/lib/common/common.module.css +24 -24
  460. package/lib/common/customscroll.module.css +2 -2
  461. package/lib/css.js +40 -0
  462. package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
  463. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
  464. package/lib/index.js +58 -0
  465. package/lib/semantic/Button/Button.js +42 -22
  466. package/lib/semantic/Button/props/propTypes.js +3 -0
  467. package/lib/semantic/Button/semanticButton.module.css +1 -1
  468. package/lib/semantic/index.js +2 -0
  469. package/lib/utils/Common.js +111 -18
  470. package/lib/utils/ContextOptimizer.js +16 -10
  471. package/lib/utils/constructFullName.js +13 -4
  472. package/lib/utils/datetime/common.js +34 -5
  473. package/lib/utils/debounce.js +6 -1
  474. package/lib/utils/dropDownUtils.js +175 -59
  475. package/lib/utils/dummyFunction.js +2 -0
  476. package/lib/utils/getHTMLFontSize.js +1 -0
  477. package/lib/utils/getInitial.js +6 -0
  478. package/lib/utils/index.js +1 -0
  479. package/lib/utils/scrollTo.js +2 -0
  480. package/lib/utils/shallowEqual.js +8 -0
  481. package/lib/v1/Accordion/Accordion.js +38 -19
  482. package/lib/v1/Accordion/AccordionItem.js +23 -13
  483. package/lib/v1/Accordion/index.js +3 -0
  484. package/lib/v1/Accordion/props/propTypes.js +3 -0
  485. package/lib/v1/Animation/Animation.js +24 -100
  486. package/lib/v1/Animation/props/propTypes.js +3 -0
  487. package/lib/v1/Animation/utils.js +94 -0
  488. package/lib/v1/AppContainer/AppContainer.js +46 -17
  489. package/lib/v1/AppContainer/props/propTypes.js +3 -0
  490. package/lib/v1/Avatar/Avatar.js +68 -32
  491. package/lib/v1/Avatar/props/propTypes.js +3 -0
  492. package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
  493. package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
  494. package/lib/v1/Button/Button.js +32 -22
  495. package/lib/v1/Button/props/defaultProps.js +2 -0
  496. package/lib/v1/Button/props/propTypes.js +3 -0
  497. package/lib/v1/Buttongroup/Buttongroup.js +13 -5
  498. package/lib/v1/Buttongroup/props/propTypes.js +3 -0
  499. package/lib/v1/Card/Card.js +78 -44
  500. package/lib/v1/Card/index.js +4 -0
  501. package/lib/v1/Card/props/propTypes.js +3 -0
  502. package/lib/v1/CheckBox/CheckBox.js +52 -41
  503. package/lib/v1/CheckBox/props/propTypes.js +3 -0
  504. package/lib/v1/DateTime/CalendarView.js +89 -48
  505. package/lib/v1/DateTime/DateTime.js +246 -158
  506. package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
  507. package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
  508. package/lib/v1/DateTime/DateWidget.js +352 -251
  509. package/lib/v1/DateTime/DaysRow.js +28 -5
  510. package/lib/v1/DateTime/Time.js +75 -32
  511. package/lib/v1/DateTime/YearView.js +76 -27
  512. package/lib/v1/DateTime/index.js +2 -0
  513. package/lib/v1/DateTime/props/propTypes.js +11 -1
  514. package/lib/v1/DropBox/DropBox.js +45 -21
  515. package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
  516. package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
  517. package/lib/v1/DropBox/props/defaultProps.js +8 -4
  518. package/lib/v1/DropBox/props/propTypes.js +10 -4
  519. package/lib/v1/DropDown/DropDown.js +23 -3
  520. package/lib/v1/DropDown/DropDownHeading.js +20 -13
  521. package/lib/v1/DropDown/DropDownItem.js +26 -11
  522. package/lib/v1/DropDown/DropDownSearch.js +28 -16
  523. package/lib/v1/DropDown/DropDownSeparator.js +7 -1
  524. package/lib/v1/DropDown/props/propTypes.js +10 -4
  525. package/lib/v1/Heading/Heading.js +19 -14
  526. package/lib/v1/Heading/props/propTypes.js +3 -0
  527. package/lib/v1/Label/Label.js +22 -14
  528. package/lib/v1/Label/props/propTypes.js +3 -0
  529. package/lib/v1/Layout/Box.js +35 -15
  530. package/lib/v1/Layout/Container.js +33 -14
  531. package/lib/v1/Layout/index.js +3 -0
  532. package/lib/v1/Layout/props/propTypes.js +3 -0
  533. package/lib/v1/ListItem/ListContainer.js +55 -30
  534. package/lib/v1/ListItem/ListItem.js +53 -38
  535. package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
  536. package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
  537. package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
  538. package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
  539. package/lib/v1/ListItem/index.js +7 -0
  540. package/lib/v1/ListItem/props/propTypes.js +6 -4
  541. package/lib/v1/Modal/Modal.js +46 -9
  542. package/lib/v1/Modal/props/propTypes.js +3 -0
  543. package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
  544. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
  545. package/lib/v1/MultiSelect/EmptyState.js +45 -24
  546. package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
  547. package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
  548. package/lib/v1/MultiSelect/MultiSelect.js +335 -216
  549. package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
  550. package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
  551. package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
  552. package/lib/v1/MultiSelect/Suggestions.js +64 -32
  553. package/lib/v1/MultiSelect/index.js +5 -0
  554. package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
  555. package/lib/v1/MultiSelect/props/propTypes.js +14 -4
  556. package/lib/v1/PopOver/PopOver.js +71 -40
  557. package/lib/v1/PopOver/props/propTypes.js +3 -0
  558. package/lib/v1/Popup/Popup.js +158 -81
  559. package/lib/v1/Provider/AvatarSize.js +4 -0
  560. package/lib/v1/Provider/Config.js +2 -0
  561. package/lib/v1/Provider/CssProvider.js +4 -0
  562. package/lib/v1/Provider/IdProvider.js +17 -6
  563. package/lib/v1/Provider/LibraryContext.js +35 -15
  564. package/lib/v1/Provider/LibraryContextInit.js +4 -0
  565. package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
  566. package/lib/v1/Provider/ZindexProvider.js +15 -3
  567. package/lib/v1/Provider/index.js +5 -0
  568. package/lib/v1/Radio/Radio.js +42 -32
  569. package/lib/v1/Radio/props/propTypes.js +3 -0
  570. package/lib/v1/Responsive/CustomResponsive.js +73 -29
  571. package/lib/v1/Responsive/RefWrapper.js +17 -11
  572. package/lib/v1/Responsive/ResizeComponent.js +62 -36
  573. package/lib/v1/Responsive/ResizeObserver.js +24 -10
  574. package/lib/v1/Responsive/Responsive.js +80 -30
  575. package/lib/v1/Responsive/index.js +4 -0
  576. package/lib/v1/Responsive/props/propTypes.js +3 -0
  577. package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
  578. package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
  579. package/lib/v1/Ribbon/Ribbon.js +14 -7
  580. package/lib/v1/Ribbon/props/propTypes.js +3 -0
  581. package/lib/v1/RippleEffect/RippleEffect.js +17 -7
  582. package/lib/v1/RippleEffect/props/propTypes.js +3 -0
  583. package/lib/v1/Select/GroupSelect.js +229 -130
  584. package/lib/v1/Select/Select.js +297 -214
  585. package/lib/v1/Select/SelectWithAvatar.js +102 -56
  586. package/lib/v1/Select/SelectWithIcon.js +131 -76
  587. package/lib/v1/Select/index.js +5 -0
  588. package/lib/v1/Select/props/defaultProps.js +5 -4
  589. package/lib/v1/Select/props/propTypes.js +10 -4
  590. package/lib/v1/Stencils/Stencils.js +13 -3
  591. package/lib/v1/Stencils/props/propTypes.js +3 -0
  592. package/lib/v1/Switch/Switch.js +38 -25
  593. package/lib/v1/Switch/props/propTypes.js +3 -0
  594. package/lib/v1/Tab/Tab.js +40 -27
  595. package/lib/v1/Tab/TabContent.js +12 -5
  596. package/lib/v1/Tab/TabContentWrapper.js +16 -8
  597. package/lib/v1/Tab/TabWrapper.js +37 -19
  598. package/lib/v1/Tab/Tabs.js +170 -83
  599. package/lib/v1/Tab/index.js +6 -0
  600. package/lib/v1/Tab/props/propTypes.js +3 -0
  601. package/lib/v1/Tab/v1Tab.module.css +14 -14
  602. package/lib/v1/Tab/v1Tabs.module.css +22 -22
  603. package/lib/v1/Tag/Tag.js +50 -32
  604. package/lib/v1/Tag/props/propTypes.js +3 -0
  605. package/lib/v1/TextBox/TextBox.js +70 -47
  606. package/lib/v1/TextBox/props/propTypes.js +6 -4
  607. package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
  608. package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
  609. package/lib/v1/Textarea/Textarea.js +45 -28
  610. package/lib/v1/Textarea/props/propTypes.js +3 -0
  611. package/lib/v1/Tooltip/Tooltip.js +94 -31
  612. package/lib/v1/Tooltip/props/propTypes.js +3 -0
  613. package/lib/v1/Typography/Typography.js +26 -15
  614. package/lib/v1/Typography/css/Typography.module.css +31 -31
  615. package/lib/v1/Typography/css/cssJSLogic.js +25 -20
  616. package/lib/v1/Typography/props/propTypes.js +3 -0
  617. package/lib/v1/Typography/utils/index.js +1 -0
  618. package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
  619. package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
  620. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
  621. package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
  622. package/lib/v1/semantic/Button/Button.js +24 -18
  623. package/lib/v1/semantic/Button/props/propTypes.js +3 -0
  624. package/lib/v1/semantic/index.js +2 -0
  625. package/package.json +2 -2
  626. package/result.json +1 -1
  627. package/.DS_Store +0 -0
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { AdvancedGroupMultiSelect_propTypes } from './props/propTypes';
3
3
  import { AdvancedGroupMultiSelect_defaultProps } from './props/defaultProps';
4
4
  /**** Components ****/
5
+
5
6
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
6
7
  import Popup from '../Popup/Popup';
7
8
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
@@ -15,19 +16,20 @@ import Card, { CardContent, CardHeader, CardFooter } from '../Card/Card';
15
16
  import { getUniqueId } from '../Provider/IdProvider';
16
17
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
17
18
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
18
-
19
19
  /**** Icons ****/
20
+
20
21
  import { Icon } from '@zohodesk/icons';
21
22
  /**** CSS ****/
22
- import style from './MultiSelect.module.css';
23
23
 
24
+ import style from './MultiSelect.module.css';
24
25
  /**** Methods ****/
26
+
25
27
  import { debounce, scrollTo, getIsEmptyValue, getSearchString } from '../utils/Common.js';
26
28
  import { makeGetMultiSelectSelectedOptions, makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, makeGetOptionIdChange, extractOptionId, makeFormatOptions, makeObjectConcat } from '../utils/dropDownUtils';
27
-
28
29
  /* eslint-disable react/forbid-component-props */
29
30
 
30
31
  /* eslint-disable react/no-unused-prop-types */
32
+
31
33
  class AdvancedGroupMultiSelect extends React.Component {
32
34
  constructor(props) {
33
35
  super(props);
@@ -106,6 +108,7 @@ class AdvancedGroupMultiSelect extends React.Component {
106
108
  };
107
109
  this._isMounted = false;
108
110
  }
111
+
109
112
  handleGetSelectedOptions(selectedOptionDetails) {
110
113
  let {
111
114
  normalizedFormatOptions: normalizedSelectedOptions
@@ -114,6 +117,7 @@ class AdvancedGroupMultiSelect extends React.Component {
114
117
  normalizedSelectedOptions
115
118
  };
116
119
  }
120
+
117
121
  handleFormatSelectedOptions(selectedOptionDetails, props) {
118
122
  let {
119
123
  valueField,
@@ -125,6 +129,7 @@ class AdvancedGroupMultiSelect extends React.Component {
125
129
  textField
126
130
  });
127
131
  }
132
+
128
133
  handleSelectedOptionDetailsIdChange(props, state) {
129
134
  let {
130
135
  groupIds,
@@ -151,12 +156,15 @@ class AdvancedGroupMultiSelect extends React.Component {
151
156
  });
152
157
  return newSelectedOptionDetails;
153
158
  }
159
+
154
160
  selectedOptionRef(el, id) {
155
161
  this[`selectedOption_${id}`] = el;
156
162
  }
163
+
157
164
  suggestionContainerRef(el) {
158
165
  this.suggestionContainer = el;
159
166
  }
167
+
160
168
  selectedOptionContainerRef(el) {
161
169
  let {
162
170
  getTargetRef
@@ -164,12 +172,15 @@ class AdvancedGroupMultiSelect extends React.Component {
164
172
  this.selectedOptionContainer = el;
165
173
  getTargetRef(el);
166
174
  }
175
+
167
176
  suggestionItemRef(el, index, id) {
168
177
  this[`suggestion_${id}`] = el;
169
178
  }
179
+
170
180
  searchInputRef(ref) {
171
181
  this.searchInput = ref;
172
182
  }
183
+
173
184
  handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions) {
174
185
  let newSelectedOptions = selectedGroupOptions.map(option => optionIdGrouping(option.id, option.groupId));
175
186
  let selectedOptionsLength = newSelectedOptions.length;
@@ -183,6 +194,7 @@ class AdvancedGroupMultiSelect extends React.Component {
183
194
  selectedOptionsLength
184
195
  });
185
196
  }
197
+
186
198
  togglePopup(e) {
187
199
  let {
188
200
  togglePopup,
@@ -191,6 +203,7 @@ class AdvancedGroupMultiSelect extends React.Component {
191
203
  } = this.props;
192
204
  !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}Center` : null);
193
205
  }
206
+
194
207
  handleFilterSuggestions() {
195
208
  let {
196
209
  revampedGroups,
@@ -200,6 +213,7 @@ class AdvancedGroupMultiSelect extends React.Component {
200
213
  let {
201
214
  needLocalSearch
202
215
  } = this.props;
216
+
203
217
  if (searchStr && searchStr.trim().length) {
204
218
  searchStr = getSearchString(searchStr);
205
219
  let {
@@ -215,11 +229,13 @@ class AdvancedGroupMultiSelect extends React.Component {
215
229
  suggestionOptionIds
216
230
  };
217
231
  }
232
+
218
233
  return {
219
234
  suggestionGroups: revampedGroups,
220
235
  suggestionOptionIds: allOptionIds
221
236
  };
222
237
  }
238
+
223
239
  handleGetGroupSelectOptions(props) {
224
240
  let {
225
241
  groupedOptions = []
@@ -228,6 +244,7 @@ class AdvancedGroupMultiSelect extends React.Component {
228
244
  groupedOptions
229
245
  });
230
246
  }
247
+
231
248
  handleInputCick(e) {
232
249
  let {
233
250
  highLightedSelectOptions
@@ -238,6 +255,7 @@ class AdvancedGroupMultiSelect extends React.Component {
238
255
  lastHighLightedSelectOption: ''
239
256
  }) : this.togglePopup(e);
240
257
  }
258
+
241
259
  handleClickSelectedOption() {
242
260
  let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
243
261
  let e = arguments.length > 1 ? arguments[1] : undefined;
@@ -253,13 +271,16 @@ class AdvancedGroupMultiSelect extends React.Component {
253
271
  ctrlKey,
254
272
  shiftKey
255
273
  } = e;
274
+
256
275
  if (e && shiftKey) {
257
276
  //shift+click
258
277
  let from = selectedOptionIds.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptionIds.indexOf(lastHighLightedSelectOption) : 0;
259
278
  let to = id && selectedOptionIds.indexOf(id) >= 0 ? selectedOptionIds.indexOf(id) : null;
279
+
260
280
  if (to >= 0 && to < from) {
261
281
  [to] = [from, from = to];
262
282
  }
283
+
263
284
  to += 1;
264
285
  let newSelectedHighlights = to ? selectedOptionIds.slice(from, to) : [];
265
286
  to && this.setState({
@@ -270,6 +291,7 @@ class AdvancedGroupMultiSelect extends React.Component {
270
291
  //ctrl+click
271
292
  let isRemove = highLightedSelectOptions.indexOf(id) >= 0;
272
293
  let newSelectedHighlights = [];
294
+
273
295
  if (isRemove) {
274
296
  lastHighLightedSelectOption = id === lastHighLightedSelectOption ? '' : lastHighLightedSelectOption;
275
297
  newSelectedHighlights = highLightedSelectOptions.filter(option => option !== id);
@@ -277,6 +299,7 @@ class AdvancedGroupMultiSelect extends React.Component {
277
299
  lastHighLightedSelectOption = id;
278
300
  newSelectedHighlights = [...highLightedSelectOptions, id];
279
301
  }
302
+
280
303
  this.setState({
281
304
  highLightedSelectOptions: newSelectedHighlights,
282
305
  lastHighLightedSelectOption
@@ -287,6 +310,7 @@ class AdvancedGroupMultiSelect extends React.Component {
287
310
  lastHighLightedSelectOption: id
288
311
  });
289
312
  }
313
+
290
314
  this.setState({
291
315
  shiftKeyPressHighLighted: 0
292
316
  });
@@ -294,6 +318,7 @@ class AdvancedGroupMultiSelect extends React.Component {
294
318
  preventScroll: true
295
319
  });
296
320
  }
321
+
297
322
  handleRemoveOption(options) {
298
323
  let newOptions = !getIsEmptyValue(options) && !Array.isArray(options) ? [options] : options;
299
324
  let {
@@ -307,18 +332,22 @@ class AdvancedGroupMultiSelect extends React.Component {
307
332
  lastHighLightedSelectOption,
308
333
  shiftKeyPressHighLighted
309
334
  } = this.state;
335
+
310
336
  if (newOptions.length && !isReadOnly) {
311
337
  let newSelectedOptions = selectedOptionIds.filter(option => newOptions.indexOf(option) === -1);
312
338
  let newHighLightedSelectOptions = highLightedSelectOptions.filter(option => newSelectedOptions.indexOf(option) >= 0);
313
339
  let isHighlightedRemoved = false;
314
340
  let newOptionsLen = newOptions.length;
341
+
315
342
  for (let i = 0; i < newOptionsLen; i++) {
316
343
  let removedOption = newOptions[i];
344
+
317
345
  if (highLightedSelectOptions.indexOf(removedOption) >= 0) {
318
346
  isHighlightedRemoved = true;
319
347
  break;
320
348
  }
321
349
  }
350
+
322
351
  this.setState({
323
352
  lastHighLightedSelectOption: newSelectedOptions.indexOf(lastHighLightedSelectOption) >= 0 && !isHighlightedRemoved ? lastHighLightedSelectOption : '',
324
353
  highLightedSelectOptions: isHighlightedRemoved ? [] : newHighLightedSelectOptions,
@@ -326,10 +355,12 @@ class AdvancedGroupMultiSelect extends React.Component {
326
355
  });
327
356
  this.handleChange(newSelectedOptions);
328
357
  }
358
+
329
359
  this.searchInput && this.searchInput.focus({
330
360
  preventScroll: true
331
361
  });
332
362
  }
363
+
333
364
  handleKeyDown(e) {
334
365
  let {
335
366
  keyCode,
@@ -354,23 +385,30 @@ class AdvancedGroupMultiSelect extends React.Component {
354
385
  onKeyDown
355
386
  } = this.props;
356
387
  let highLightedSelectOptionsLen = highLightedSelectOptions.length;
388
+
357
389
  if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13 || keyCode === 27)) {
358
390
  let {
359
391
  suggestionOptionIds
360
392
  } = this.handleFilterSuggestions();
361
393
  suggestions = suggestionOptionIds;
362
394
  }
395
+
363
396
  if (!isPopupOpen && !isPopupOpenOnEnter) {
364
397
  onKeyDown && onKeyDown(e);
365
398
  }
399
+
366
400
  if (!isPopupOpen && keyCode === 40) {
367
401
  //down arrow press popup open
368
402
  e.preventDefault(); //prevent body scroll
403
+
369
404
  this.togglePopup(e);
370
405
  }
406
+
371
407
  let suggestionsLen = suggestions.length;
408
+
372
409
  if (suggestionsLen && isPopupOpen && keyCode === 38) {
373
410
  //up arrow
411
+
374
412
  /*if (hoverOption === 0) { //disable first to last option higlight
375
413
  !isNextOptions && this.setState({ hoverOption: suggestionsLen - 1 });
376
414
  }*/
@@ -381,6 +419,7 @@ class AdvancedGroupMultiSelect extends React.Component {
381
419
  }
382
420
  } else if (suggestionsLen && isPopupOpen && keyCode === 40) {
383
421
  //down arrow
422
+
384
423
  /*else if (hoverOption === suggestionsLen - 1 || hoverOption === null) {
385
424
  //disable last to first option higlight
386
425
  !isNextOptions && this.setState({ hoverOption: 0 });
@@ -405,8 +444,7 @@ class AdvancedGroupMultiSelect extends React.Component {
405
444
  if (highLightedSelectOptionsLen) {
406
445
  this.handleRemoveOption(highLightedSelectOptions);
407
446
  } else {
408
- this.handleRemoveOption(selectedOptions.slice(-1));
409
- // this.setState({
447
+ this.handleRemoveOption(selectedOptions.slice(-1)); // this.setState({
410
448
  // highLightedSelectOptions: selectedOptions.slice(-1)
411
449
  // });
412
450
  }
@@ -421,6 +459,7 @@ class AdvancedGroupMultiSelect extends React.Component {
421
459
  let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption && selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
422
460
  let newShiftKeyPressHighLighted = shiftKeyPressHighLighted ? shiftKeyPressHighLighted : shiftKeyPressHighLighted + 1;
423
461
  let newHighLightedSelectOption = lastHighLightedSelectOptionIndex !== null ? selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted] : selectedOptions[0];
462
+
424
463
  if (!getIsEmptyValue(newHighLightedSelectOption)) {
425
464
  let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions[0];
426
465
  highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
@@ -437,6 +476,7 @@ class AdvancedGroupMultiSelect extends React.Component {
437
476
  let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption ? selectedOptions.indexOf(lastHighLightedSelectOption) : selectedOptions.length - 1;
438
477
  let newShiftKeyPressHighLighted = shiftKeyPressHighLighted !== 1 ? shiftKeyPressHighLighted : shiftKeyPressHighLighted - 1;
439
478
  let newHighLightedSelectOption = selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted - 1];
479
+
440
480
  if (!getIsEmptyValue(newHighLightedSelectOption)) {
441
481
  let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions.slice(-1)[0];
442
482
  highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
@@ -449,14 +489,15 @@ class AdvancedGroupMultiSelect extends React.Component {
449
489
  });
450
490
  }
451
491
  } else if ((keyCode === 39 || keyCode === 37) && selectedOptions.length && !searchStr.length) {
452
- let isRightArrow = keyCode === 39 ? true : false;
453
- // let isLefttArrow = keyCode === 37 ? true : false;
492
+ let isRightArrow = keyCode === 39 ? true : false; // let isLefttArrow = keyCode === 37 ? true : false;
493
+
454
494
  if (highLightedSelectOptions.length) {
455
495
  let [lastHighLightedSelectOption] = highLightedSelectOptions.slice(-1);
456
496
  let lastHighLightedSelectOptionIndex = selectedOptions.indexOf(lastHighLightedSelectOption);
457
497
  let newLastHighLightedSelectOptionIndex = isRightArrow ? lastHighLightedSelectOptionIndex === selectedOptions.length - 1 ? lastHighLightedSelectOptionIndex : lastHighLightedSelectOptionIndex + 1 : lastHighLightedSelectOptionIndex - 1;
458
498
  let newLastHighLightedSelectOption = selectedOptions[newLastHighLightedSelectOptionIndex];
459
499
  let isEmptyHighlighted = isRightArrow && highLightedSelectOptions.length === 1 && selectedOptions.slice(-1)[0] === lastHighLightedSelectOption ? true : false;
500
+
460
501
  if (!getIsEmptyValue(newLastHighLightedSelectOption)) {
461
502
  this.setState({
462
503
  lastHighLightedSelectOption: isEmptyHighlighted ? '' : newLastHighLightedSelectOption,
@@ -472,10 +513,10 @@ class AdvancedGroupMultiSelect extends React.Component {
472
513
  shiftKeyPressHighLighted: 0
473
514
  });
474
515
  }
475
- } else if (keyCode === 27) {
476
- // this.handlePopupClose(e);
516
+ } else if (keyCode === 27) {// this.handlePopupClose(e);
477
517
  }
478
518
  }
519
+
479
520
  handleMouseEnter(id, val, hoverOptionIndex, e) {
480
521
  e && e.preventDefault();
481
522
  let {
@@ -487,10 +528,12 @@ class AdvancedGroupMultiSelect extends React.Component {
487
528
  hoverIndex: newHoverIndex
488
529
  });
489
530
  }
531
+
490
532
  handleFetchOptions() {
491
533
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
492
534
  args[_key] = arguments[_key];
493
535
  }
536
+
494
537
  let [APICall, searchStr] = args;
495
538
  let {
496
539
  isFetchingOptions
@@ -498,10 +541,12 @@ class AdvancedGroupMultiSelect extends React.Component {
498
541
  let {
499
542
  _isMounted
500
543
  } = this;
544
+
501
545
  if (!isFetchingOptions && APICall) {
502
546
  this.setState({
503
547
  isFetchingOptions: true
504
548
  });
549
+
505
550
  try {
506
551
  return APICall(searchStr).then(() => {
507
552
  _isMounted && this.setState({
@@ -519,6 +564,7 @@ class AdvancedGroupMultiSelect extends React.Component {
519
564
  }
520
565
  }
521
566
  }
567
+
522
568
  handleSearchOptions() {
523
569
  let {
524
570
  onSearch
@@ -528,6 +574,7 @@ class AdvancedGroupMultiSelect extends React.Component {
528
574
  } = this.state;
529
575
  searchStr && this.handleFetchOptions(onSearch, searchStr);
530
576
  }
577
+
531
578
  handleSearch(value, e) {
532
579
  let {
533
580
  onSearch,
@@ -550,14 +597,17 @@ class AdvancedGroupMultiSelect extends React.Component {
550
597
  }
551
598
  });
552
599
  }
600
+
553
601
  handleScroll(e) {
554
602
  let {
555
603
  isNextOptions
556
604
  } = this.props;
605
+
557
606
  if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1 && isNextOptions) {
558
607
  this.handleScrollFuncCall();
559
608
  }
560
609
  }
610
+
561
611
  handleScrollFuncCall() {
562
612
  let {
563
613
  getNextOptions
@@ -567,6 +617,7 @@ class AdvancedGroupMultiSelect extends React.Component {
567
617
  } = this.state;
568
618
  getNextOptions && getNextOptions(searchStr);
569
619
  }
620
+
570
621
  handleSelectAll(e) {
571
622
  e && e.preventDefault();
572
623
  let {
@@ -578,19 +629,23 @@ class AdvancedGroupMultiSelect extends React.Component {
578
629
  let newSelectedOptions = suggestionOptionIds.filter(id => selectedOptionIds.indexOf(id) === -1);
579
630
  this.handleChange([...selectedOptionIds, ...newSelectedOptions]);
580
631
  }
632
+
581
633
  handleDeselectAll(e) {
582
634
  e && e.preventDefault();
583
635
  let {
584
636
  highLightedSelectOptions
585
637
  } = this.state;
638
+
586
639
  if (highLightedSelectOptions.length) {
587
640
  this.setState({
588
641
  highLightedSelectOptions: [],
589
642
  lastHighLightedSelectOption: ''
590
643
  });
591
644
  }
645
+
592
646
  this.handleChange([]);
593
647
  }
648
+
594
649
  handleChange() {
595
650
  let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
596
651
  let e = arguments.length > 1 ? arguments[1] : undefined;
@@ -605,37 +660,45 @@ class AdvancedGroupMultiSelect extends React.Component {
605
660
  } = this.state;
606
661
  let newSelectedOptions = selectedOptions.map(option => extractOptionId(option));
607
662
  onChange([...newSelectedOptions]);
663
+
608
664
  if (searchStr.trim() != '' && isSearchClearOnSelect) {
609
665
  this.handleSearch('');
610
666
  }
667
+
611
668
  this.searchInput && this.searchInput.focus({
612
669
  preventScroll: true
613
670
  });
671
+
614
672
  if (needToCloseOnSelect) {
615
673
  e && togglePopup(e);
616
674
  }
617
675
  }
676
+
618
677
  handleSelectOption(id, val, index, e) {
619
678
  e && e.preventDefault();
620
679
  let {
621
680
  selectedOptionIds
622
681
  } = this.state;
682
+
623
683
  if (selectedOptionIds.indexOf(id) === -1) {
624
684
  this.handleChange([...selectedOptionIds, id], e);
625
685
  } else {
626
686
  this.handleRemoveOption(id);
627
687
  }
628
688
  }
689
+
629
690
  handleActive(e) {
630
691
  let {
631
692
  searchStr,
632
693
  isActive
633
694
  } = this.state;
695
+
634
696
  if (!isActive) {
635
697
  this.setState({
636
698
  isActive: true
637
699
  });
638
700
  }
701
+
639
702
  let {
640
703
  target
641
704
  } = e || {};
@@ -645,16 +708,19 @@ class AdvancedGroupMultiSelect extends React.Component {
645
708
  } = this.props;
646
709
  onFocus && onFocus(searchStr);
647
710
  }
711
+
648
712
  handleInactive() {
649
713
  let {
650
714
  isActive
651
715
  } = this.state;
716
+
652
717
  if (isActive) {
653
718
  this.setState({
654
719
  isActive: false
655
720
  });
656
721
  }
657
722
  }
723
+
658
724
  handleInputFocus() {
659
725
  let {
660
726
  isDisabled,
@@ -664,12 +730,15 @@ class AdvancedGroupMultiSelect extends React.Component {
664
730
  preventScroll: true
665
731
  });
666
732
  }
733
+
667
734
  componentDidMount() {
668
735
  this._isMounted = true;
669
736
  }
737
+
670
738
  componentWillUnmount() {
671
739
  this._isMounted = false;
672
740
  }
741
+
673
742
  componentDidUpdate(prevProps) {
674
743
  let {
675
744
  groupedOptions,
@@ -684,6 +753,7 @@ class AdvancedGroupMultiSelect extends React.Component {
684
753
  hoverIndex
685
754
  } = this.state;
686
755
  let newOptionIds = this.state.allOptionIds;
756
+
687
757
  if (prevProps.groupedOptions != groupedOptions) {
688
758
  let {
689
759
  revampedGroups,
@@ -704,6 +774,7 @@ class AdvancedGroupMultiSelect extends React.Component {
704
774
  groupDetails: normalizedGroupedOptions
705
775
  });
706
776
  }
777
+
707
778
  if (prevProps.selectedOptionDetails != selectedOptionDetails || prevProps.selectedGroupOptions != selectedGroupOptions) {
708
779
  let {
709
780
  groupDetails,
@@ -725,11 +796,11 @@ class AdvancedGroupMultiSelect extends React.Component {
725
796
  selectedOptionIds
726
797
  });
727
798
  }
799
+
728
800
  let hoverId = getIsEmptyValue(newOptionIds[hoverIndex]) ? '' : newOptionIds[hoverIndex];
729
801
  let selSuggestion = this[`suggestion_${hoverId}`];
730
- isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion);
802
+ isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion); //When suggestions length less than 5, getNextOptions function call
731
803
 
732
- //When suggestions length less than 5, getNextOptions function call
733
804
  let {
734
805
  isNextOptions,
735
806
  getNextOptions,
@@ -739,13 +810,16 @@ class AdvancedGroupMultiSelect extends React.Component {
739
810
  suggestionOptionIds: suggestions
740
811
  } = this.handleFilterSuggestions();
741
812
  let suggestionsLen = suggestions.length;
813
+
742
814
  if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
743
815
  this.handleFetchOptions(getNextOptions, searchStr);
744
816
  }
817
+
745
818
  if (prevProps.isPopupOpen != isPopupOpen) {
746
819
  notifyPopupToggle && notifyPopupToggle(isPopupOpen);
747
820
  }
748
821
  }
822
+
749
823
  responsiveFunc(_ref) {
750
824
  let {
751
825
  mediaQueryOR
@@ -756,6 +830,7 @@ class AdvancedGroupMultiSelect extends React.Component {
756
830
  }])
757
831
  };
758
832
  }
833
+
759
834
  render() {
760
835
  let {
761
836
  size,
@@ -986,13 +1061,14 @@ class AdvancedGroupMultiSelect extends React.Component {
986
1061
  }, /*#__PURE__*/React.createElement(Loader, null)) : null)));
987
1062
  }) : null);
988
1063
  }
1064
+
989
1065
  }
1066
+
990
1067
  AdvancedGroupMultiSelect.defaultProps = AdvancedGroupMultiSelect_defaultProps;
991
1068
  AdvancedGroupMultiSelect.propTypes = AdvancedGroupMultiSelect_propTypes;
992
1069
  const AdvancedGroupMultiSelectComponent = Popup(AdvancedGroupMultiSelect);
993
1070
  AdvancedGroupMultiSelectComponent.defaultProps = AdvancedGroupMultiSelect.defaultProps;
994
- AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes;
995
- // if (__DOCS__) {
1071
+ AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes; // if (__DOCS__) {
996
1072
  // AdvancedGroupMultiSelect.docs = {
997
1073
  // componentGroup: 'Form Elements',
998
1074
  // folderName: 'Style Guide'