@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/MultiSelect.module.css';
23
23
 
24
+ import style from '../../MultiSelect/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,12 +513,11 @@ class AdvancedGroupMultiSelect extends React.Component {
472
513
  shiftKeyPressHighLighted: 0
473
514
  });
474
515
  }
475
- }
476
- // eslint-disable-next-line
477
- else if (keyCode === 27) {
478
- // this.handlePopupClose(e);
516
+ } // eslint-disable-next-line
517
+ else if (keyCode === 27) {// this.handlePopupClose(e);
479
518
  }
480
519
  }
520
+
481
521
  handleMouseEnter(id, val, hoverOptionIndex, e) {
482
522
  e && e.preventDefault();
483
523
  let {
@@ -489,10 +529,12 @@ class AdvancedGroupMultiSelect extends React.Component {
489
529
  hoverIndex: newHoverIndex
490
530
  });
491
531
  }
532
+
492
533
  handleFetchOptions() {
493
534
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
494
535
  args[_key] = arguments[_key];
495
536
  }
537
+
496
538
  let [APICall, searchStr] = args;
497
539
  let {
498
540
  isFetchingOptions
@@ -500,10 +542,12 @@ class AdvancedGroupMultiSelect extends React.Component {
500
542
  let {
501
543
  _isMounted
502
544
  } = this;
545
+
503
546
  if (!isFetchingOptions && APICall) {
504
547
  this.setState({
505
548
  isFetchingOptions: true
506
549
  });
550
+
507
551
  try {
508
552
  return APICall(searchStr).then(() => {
509
553
  _isMounted && this.setState({
@@ -521,6 +565,7 @@ class AdvancedGroupMultiSelect extends React.Component {
521
565
  }
522
566
  }
523
567
  }
568
+
524
569
  handleSearchOptions() {
525
570
  let {
526
571
  onSearch
@@ -530,6 +575,7 @@ class AdvancedGroupMultiSelect extends React.Component {
530
575
  } = this.state;
531
576
  searchStr && this.handleFetchOptions(onSearch, searchStr);
532
577
  }
578
+
533
579
  handleSearch(value, e) {
534
580
  let {
535
581
  onSearch,
@@ -552,14 +598,17 @@ class AdvancedGroupMultiSelect extends React.Component {
552
598
  }
553
599
  });
554
600
  }
601
+
555
602
  handleScroll(e) {
556
603
  let {
557
604
  isNextOptions
558
605
  } = this.props;
606
+
559
607
  if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1 && isNextOptions) {
560
608
  this.handleScrollFuncCall();
561
609
  }
562
610
  }
611
+
563
612
  handleScrollFuncCall() {
564
613
  let {
565
614
  getNextOptions
@@ -569,6 +618,7 @@ class AdvancedGroupMultiSelect extends React.Component {
569
618
  } = this.state;
570
619
  getNextOptions && getNextOptions(searchStr);
571
620
  }
621
+
572
622
  handleSelectAll(e) {
573
623
  e && e.preventDefault();
574
624
  let {
@@ -580,19 +630,23 @@ class AdvancedGroupMultiSelect extends React.Component {
580
630
  let newSelectedOptions = suggestionOptionIds.filter(id => selectedOptionIds.indexOf(id) === -1);
581
631
  this.handleChange([...selectedOptionIds, ...newSelectedOptions]);
582
632
  }
633
+
583
634
  handleDeselectAll(e) {
584
635
  e && e.preventDefault();
585
636
  let {
586
637
  highLightedSelectOptions
587
638
  } = this.state;
639
+
588
640
  if (highLightedSelectOptions.length) {
589
641
  this.setState({
590
642
  highLightedSelectOptions: [],
591
643
  lastHighLightedSelectOption: ''
592
644
  });
593
645
  }
646
+
594
647
  this.handleChange([]);
595
648
  }
649
+
596
650
  handleChange() {
597
651
  let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
598
652
  let e = arguments.length > 1 ? arguments[1] : undefined;
@@ -607,37 +661,45 @@ class AdvancedGroupMultiSelect extends React.Component {
607
661
  } = this.state;
608
662
  let newSelectedOptions = selectedOptions.map(option => extractOptionId(option));
609
663
  onChange([...newSelectedOptions]);
664
+
610
665
  if (searchStr.trim() != '' && isSearchClearOnSelect) {
611
666
  this.handleSearch('');
612
667
  }
668
+
613
669
  this.searchInput && this.searchInput.focus({
614
670
  preventScroll: true
615
671
  });
672
+
616
673
  if (needToCloseOnSelect) {
617
674
  e && togglePopup(e);
618
675
  }
619
676
  }
677
+
620
678
  handleSelectOption(id, val, index, e) {
621
679
  e && e.preventDefault();
622
680
  let {
623
681
  selectedOptionIds
624
682
  } = this.state;
683
+
625
684
  if (selectedOptionIds.indexOf(id) === -1) {
626
685
  this.handleChange([...selectedOptionIds, id], e);
627
686
  } else {
628
687
  this.handleRemoveOption(id);
629
688
  }
630
689
  }
690
+
631
691
  handleActive(e) {
632
692
  let {
633
693
  searchStr,
634
694
  isActive
635
695
  } = this.state;
696
+
636
697
  if (!isActive) {
637
698
  this.setState({
638
699
  isActive: true
639
700
  });
640
701
  }
702
+
641
703
  let {
642
704
  target
643
705
  } = e || {};
@@ -647,16 +709,19 @@ class AdvancedGroupMultiSelect extends React.Component {
647
709
  } = this.props;
648
710
  onFocus && onFocus(searchStr);
649
711
  }
712
+
650
713
  handleInactive() {
651
714
  let {
652
715
  isActive
653
716
  } = this.state;
717
+
654
718
  if (isActive) {
655
719
  this.setState({
656
720
  isActive: false
657
721
  });
658
722
  }
659
723
  }
724
+
660
725
  handleInputFocus() {
661
726
  let {
662
727
  isDisabled,
@@ -666,12 +731,15 @@ class AdvancedGroupMultiSelect extends React.Component {
666
731
  preventScroll: true
667
732
  });
668
733
  }
734
+
669
735
  componentDidMount() {
670
736
  this._isMounted = true;
671
737
  }
738
+
672
739
  componentWillUnmount() {
673
740
  this._isMounted = false;
674
741
  }
742
+
675
743
  componentDidUpdate(prevProps) {
676
744
  let {
677
745
  groupedOptions,
@@ -686,6 +754,7 @@ class AdvancedGroupMultiSelect extends React.Component {
686
754
  hoverIndex
687
755
  } = this.state;
688
756
  let newOptionIds = this.state.allOptionIds;
757
+
689
758
  if (prevProps.groupedOptions != groupedOptions) {
690
759
  let {
691
760
  revampedGroups,
@@ -706,6 +775,7 @@ class AdvancedGroupMultiSelect extends React.Component {
706
775
  groupDetails: normalizedGroupedOptions
707
776
  });
708
777
  }
778
+
709
779
  if (prevProps.selectedOptionDetails != selectedOptionDetails || prevProps.selectedGroupOptions != selectedGroupOptions) {
710
780
  let {
711
781
  groupDetails,
@@ -727,11 +797,11 @@ class AdvancedGroupMultiSelect extends React.Component {
727
797
  selectedOptionIds
728
798
  });
729
799
  }
800
+
730
801
  let hoverId = getIsEmptyValue(newOptionIds[hoverIndex]) ? '' : newOptionIds[hoverIndex];
731
802
  let selSuggestion = this[`suggestion_${hoverId}`];
732
- isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion);
803
+ isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion); //When suggestions length less than 5, getNextOptions function call
733
804
 
734
- //When suggestions length less than 5, getNextOptions function call
735
805
  let {
736
806
  isNextOptions,
737
807
  getNextOptions,
@@ -741,13 +811,16 @@ class AdvancedGroupMultiSelect extends React.Component {
741
811
  suggestionOptionIds: suggestions
742
812
  } = this.handleFilterSuggestions();
743
813
  let suggestionsLen = suggestions.length;
814
+
744
815
  if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
745
816
  this.handleFetchOptions(getNextOptions, searchStr);
746
817
  }
818
+
747
819
  if (prevProps.isPopupOpen != isPopupOpen) {
748
820
  notifyPopupToggle && notifyPopupToggle(isPopupOpen);
749
821
  }
750
822
  }
823
+
751
824
  responsiveFunc(_ref) {
752
825
  let {
753
826
  mediaQueryOR
@@ -758,6 +831,7 @@ class AdvancedGroupMultiSelect extends React.Component {
758
831
  }])
759
832
  };
760
833
  }
834
+
761
835
  render() {
762
836
  let {
763
837
  size,
@@ -988,13 +1062,14 @@ class AdvancedGroupMultiSelect extends React.Component {
988
1062
  }, /*#__PURE__*/React.createElement(Loader, null)) : null)));
989
1063
  }) : null);
990
1064
  }
1065
+
991
1066
  }
1067
+
992
1068
  AdvancedGroupMultiSelect.defaultProps = AdvancedGroupMultiSelect_defaultProps;
993
1069
  AdvancedGroupMultiSelect.propTypes = AdvancedGroupMultiSelect_propTypes;
994
1070
  const AdvancedGroupMultiSelectComponent = Popup(AdvancedGroupMultiSelect);
995
1071
  AdvancedGroupMultiSelectComponent.defaultProps = AdvancedGroupMultiSelect.defaultProps;
996
- AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes;
997
- // if (__DOCS__) {
1072
+ AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes; // if (__DOCS__) {
998
1073
  // AdvancedGroupMultiSelect.docs = {
999
1074
  // componentGroup: 'Form Elements',
1000
1075
  // folderName: 'Style Guide'