@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
@@ -3,8 +3,8 @@ import React from 'react';
3
3
  import { MultiSelect_propTypes } from './props/propTypes';
4
4
  import { MultiSelect_defaultProps } from './props/defaultProps';
5
5
  import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
6
-
7
6
  /**** Components ****/
7
+
8
8
  import Popup from '../Popup/Popup';
9
9
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
10
10
  import { Container, Box } from '../Layout';
@@ -18,18 +18,19 @@ import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
18
18
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
19
19
  import MultiSelectHeader from './MultiSelectHeader';
20
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
21
-
22
21
  /**** Icons ****/
22
+
23
23
  import { Icon } from '@zohodesk/icons';
24
24
  /**** CSS ****/
25
- import style from './MultiSelect.module.css';
26
25
 
26
+ import style from './MultiSelect.module.css';
27
27
  /**** Methods ****/
28
+
28
29
  import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString, findScrollEnd } from '../utils/Common.js';
29
30
  import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from '../utils/dropDownUtils';
30
31
  import MobileHeader from './MobileHeader/MobileHeader';
31
-
32
32
  /* eslint-disable react/forbid-component-props */
33
+
33
34
  /* eslint-disable react/no-unused-prop-types */
34
35
 
35
36
  const dummyArray = [];
@@ -40,9 +41,8 @@ export class MultiSelectComponent extends React.Component {
40
41
  this.getFilterSuggestions = makeGetFilterSuggestions();
41
42
  this.formatOptions = makeFormatOptions();
42
43
  this.getSelectedOptions = makeGetSelectedOptions();
43
- this.getIsShowClearIcon = makeGetIsShowClearIcon();
44
+ this.getIsShowClearIcon = makeGetIsShowClearIcon(); //Use in AdvancedMultiSelect component
44
45
 
45
- //Use in AdvancedMultiSelect component
46
46
  this.objectConcat = makeObjectConcat();
47
47
  this.formatSelectedOptions = makeFormatOptions();
48
48
  const {
@@ -80,11 +80,11 @@ export class MultiSelectComponent extends React.Component {
80
80
  this.handleScroll = this.handleScroll.bind(this);
81
81
  this.handleScrollFuncCall = debounce(this.handleScrollFuncCall.bind(this), 500);
82
82
  }
83
+
83
84
  componentDidMount() {
84
85
  // let { suggestionContainer } = this;
85
86
  this._isMounted = true;
86
- this.handleExposedPublicMethods();
87
- // suggestionContainer &&
87
+ this.handleExposedPublicMethods(); // suggestionContainer &&
88
88
  // suggestionContainer.addEventListener('scroll', this.handleScroll);
89
89
  }
90
90
 
@@ -97,6 +97,7 @@ export class MultiSelectComponent extends React.Component {
97
97
  prefixText
98
98
  } = nextProps;
99
99
  const oldProps = this.props;
100
+
100
101
  if (selectedOptions !== oldProps.selectedOptions || options !== oldProps.options || valueField !== oldProps.valueField || textField !== oldProps.textField || prefixText !== oldProps.prefixText //For GroupMultiSelect component
101
102
  ) {
102
103
  const {
@@ -135,6 +136,7 @@ export class MultiSelectComponent extends React.Component {
135
136
  });
136
137
  }
137
138
  }
139
+
138
140
  componentDidUpdate(prevProps, prevState) {
139
141
  const {
140
142
  suggestionContainer,
@@ -153,11 +155,11 @@ export class MultiSelectComponent extends React.Component {
153
155
  onDropBoxClose,
154
156
  onDropBoxOpen,
155
157
  isSearchClearOnClose
156
- } = this.props;
158
+ } = this.props; //handle dropbox open & close
157
159
 
158
- //handle dropbox open & close
159
160
  if (prevProps.isPopupOpen !== isPopupOpen) {
160
161
  isPopupOpen && onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
162
+
161
163
  if (!isPopupOpen) {
162
164
  this.setState({
163
165
  hoverOption: 0
@@ -165,41 +167,42 @@ export class MultiSelectComponent extends React.Component {
165
167
  isSearchClearOnClose && searchStr && this.handleSearch('');
166
168
  onDropBoxClose && onDropBoxClose();
167
169
  }
168
- }
170
+ } //scrollTo handling
171
+
169
172
 
170
- //scrollTo handling
171
173
  const hoverId = suggestionsOrder[hoverOption] || '';
172
174
  const selectedSuggestion = this[`suggestion_${hoverId}`];
173
175
  const lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
174
176
  const selectedOption = this[`selectedOption_${lastHighLightedSelectOption}`];
175
177
  isPopupOpen && scrollTo(suggestionContainer, selectedSuggestion);
176
- selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption);
178
+ selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption); //When suggestions length less than 5, getNextOptions function call
177
179
 
178
- //When suggestions length less than 5, getNextOptions function call
179
180
  const {
180
181
  isNextOptions,
181
182
  getNextOptions
182
- } = this.props;
183
- // let { searchStr } = this.state;
183
+ } = this.props; // let { searchStr } = this.state;
184
+
184
185
  const suggestions = this.handleFilterSuggestions();
185
186
  const suggestionsLen = suggestions.length;
187
+
186
188
  if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
187
189
  this.handleFetchOptions(getNextOptions, searchStr);
188
- }
190
+ } //Need To MultiselectNew Component
191
+
189
192
 
190
- //Need To MultiselectNew Component
191
193
  this.handleComponentDidUpdate(prevProps, prevState);
192
194
  }
195
+
193
196
  componentWillUnmount() {
194
197
  // let { suggestionContainer } = this;
195
- this._isMounted = false;
196
- // suggestionContainer &&
198
+ this._isMounted = false; // suggestionContainer &&
197
199
  // suggestionContainer.removeEventListener('scroll', this.handleScroll);
198
200
  }
199
201
 
200
202
  handleComponentDidUpdate() {
201
203
  return;
202
204
  }
205
+
203
206
  handleFormatOptions(props) {
204
207
  const {
205
208
  options,
@@ -217,12 +220,14 @@ export class MultiSelectComponent extends React.Component {
217
220
  disabledOptions
218
221
  });
219
222
  }
223
+
220
224
  handleGetSelectedOptions(selectedOptions, normalizedFormatOptions) {
221
225
  return this.getSelectedOptions({
222
226
  selectedOptions,
223
227
  normalizedFormatOptions
224
228
  });
225
229
  }
230
+
226
231
  handleInputCick(e) {
227
232
  const {
228
233
  removeClose
@@ -231,6 +236,7 @@ export class MultiSelectComponent extends React.Component {
231
236
  highLightedSelectOptions,
232
237
  searchStr = ''
233
238
  } = this.state;
239
+
234
240
  if (highLightedSelectOptions.length) {
235
241
  this.setState({
236
242
  highLightedSelectOptions: [],
@@ -244,6 +250,7 @@ export class MultiSelectComponent extends React.Component {
244
250
  this.togglePopup(e);
245
251
  }
246
252
  }
253
+
247
254
  handleFilterSuggestions() {
248
255
  const {
249
256
  options = dummyArray,
@@ -267,6 +274,7 @@ export class MultiSelectComponent extends React.Component {
267
274
  this.suggestionsOrder = suggestionIds;
268
275
  return suggestions;
269
276
  }
277
+
270
278
  handleKeyDown(e) {
271
279
  const {
272
280
  keyCode,
@@ -291,20 +299,27 @@ export class MultiSelectComponent extends React.Component {
291
299
  onKeyDown
292
300
  } = this.props;
293
301
  const highLightedSelectOptionsLen = highLightedSelectOptions.length;
302
+
294
303
  if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13 || keyCode === 27 || keyCode === 9)) {
295
304
  suggestions = this.handleFilterSuggestions();
296
305
  }
306
+
297
307
  if (!isPopupOpen && !isPopupOpenOnEnter) {
298
308
  onKeyDown && onKeyDown(e);
299
309
  }
310
+
300
311
  if (!isPopupOpen && keyCode === 40) {
301
312
  //down arrow press popup open
302
313
  e.preventDefault(); //prevent body scroll
314
+
303
315
  this.togglePopup(e);
304
316
  }
317
+
305
318
  const suggestionsLen = suggestions.length;
319
+
306
320
  if (suggestionsLen && isPopupOpen && keyCode === 38) {
307
321
  //up arrow
322
+
308
323
  /*if (hoverOption === 0) { //disable first to last option higlight
309
324
  !isNextOptions && this.setState({ hoverOption: suggestionsLen - 1 });
310
325
  }*/
@@ -315,6 +330,7 @@ export class MultiSelectComponent extends React.Component {
315
330
  }
316
331
  } else if (suggestionsLen && isPopupOpen && keyCode === 40) {
317
332
  //down arrow
333
+
318
334
  /*else if (hoverOption === suggestionsLen - 1 || hoverOption === null) {
319
335
  //disable last to first option higlight
320
336
  !isNextOptions && this.setState({ hoverOption: 0 });
@@ -342,8 +358,7 @@ export class MultiSelectComponent extends React.Component {
342
358
  if (highLightedSelectOptionsLen) {
343
359
  this.handleRemoveOption(highLightedSelectOptions);
344
360
  } else {
345
- this.handleRemoveOption(selectedOptions.slice(-1));
346
- // this.setState({
361
+ this.handleRemoveOption(selectedOptions.slice(-1)); // this.setState({
347
362
  // highLightedSelectOptions: selectedOptions.slice(-1)
348
363
  // });
349
364
  }
@@ -358,6 +373,7 @@ export class MultiSelectComponent extends React.Component {
358
373
  const lastHighLightedSelectOptionIndex = lastHighLightedSelectOption && selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
359
374
  const newShiftKeyPressHighLighted = shiftKeyPressHighLighted ? shiftKeyPressHighLighted : shiftKeyPressHighLighted + 1;
360
375
  const newHighLightedSelectOption = lastHighLightedSelectOptionIndex !== null ? selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted] : selectedOptions[0];
376
+
361
377
  if (!getIsEmptyValue(newHighLightedSelectOption)) {
362
378
  const newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions[0];
363
379
  highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
@@ -374,6 +390,7 @@ export class MultiSelectComponent extends React.Component {
374
390
  const lastHighLightedSelectOptionIndex = lastHighLightedSelectOption ? selectedOptions.indexOf(lastHighLightedSelectOption) : selectedOptions.length - 1;
375
391
  const newShiftKeyPressHighLighted = shiftKeyPressHighLighted !== 1 ? shiftKeyPressHighLighted : shiftKeyPressHighLighted - 1;
376
392
  const newHighLightedSelectOption = selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted - 1];
393
+
377
394
  if (!getIsEmptyValue(newHighLightedSelectOption)) {
378
395
  const newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions.slice(-1)[0];
379
396
  highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
@@ -386,14 +403,15 @@ export class MultiSelectComponent extends React.Component {
386
403
  });
387
404
  }
388
405
  } else if ((keyCode === 39 || keyCode === 37) && selectedOptions.length && !searchStr.length) {
389
- const isRightArrow = keyCode === 39 ? true : false;
390
- // let isLefttArrow = keyCode === 37 ? true : false;
406
+ const isRightArrow = keyCode === 39 ? true : false; // let isLefttArrow = keyCode === 37 ? true : false;
407
+
391
408
  if (highLightedSelectOptions.length) {
392
409
  const [lastHighLightedSelectOption] = highLightedSelectOptions.slice(-1);
393
410
  const lastHighLightedSelectOptionIndex = selectedOptions.indexOf(lastHighLightedSelectOption);
394
411
  const newLastHighLightedSelectOptionIndex = isRightArrow ? lastHighLightedSelectOptionIndex === selectedOptions.length - 1 ? lastHighLightedSelectOptionIndex : lastHighLightedSelectOptionIndex + 1 : lastHighLightedSelectOptionIndex - 1;
395
412
  const newLastHighLightedSelectOption = selectedOptions[newLastHighLightedSelectOptionIndex];
396
413
  const isEmptyHighlighted = isRightArrow && highLightedSelectOptions.length === 1 && selectedOptions.slice(-1)[0] === lastHighLightedSelectOption ? true : false;
414
+
397
415
  if (!getIsEmptyValue(newLastHighLightedSelectOption)) {
398
416
  this.setState({
399
417
  lastHighLightedSelectOption: isEmptyHighlighted ? '' : newLastHighLightedSelectOption,
@@ -409,12 +427,12 @@ export class MultiSelectComponent extends React.Component {
409
427
  shiftKeyPressHighLighted: 0
410
428
  });
411
429
  }
412
- } else if (keyCode === 27) {
413
- // this.handlePopupClose(e);
430
+ } else if (keyCode === 27) {// this.handlePopupClose(e);
414
431
  } else if (keyCode === 9) {
415
432
  this.handlePopupClose(e);
416
433
  }
417
434
  }
435
+
418
436
  handleSelectAll(e) {
419
437
  e && e.preventDefault();
420
438
  const suggestions = this.handleFilterSuggestions();
@@ -426,12 +444,12 @@ export class MultiSelectComponent extends React.Component {
426
444
  const {
427
445
  id
428
446
  } = option;
447
+
429
448
  if (selectedOptions.indexOf(id) === -1) {
430
449
  newSelectedOptions.push(id);
431
450
  }
432
451
  });
433
- this.handleChange([...selectedOptions, ...newSelectedOptions]);
434
- // this.handlePopupClose(e);
452
+ this.handleChange([...selectedOptions, ...newSelectedOptions]); // this.handlePopupClose(e);
435
453
  }
436
454
 
437
455
  handleDeselectAll(e) {
@@ -442,15 +460,18 @@ export class MultiSelectComponent extends React.Component {
442
460
  const {
443
461
  highLightedSelectOptions
444
462
  } = this.state;
463
+
445
464
  if (highLightedSelectOptions.length) {
446
465
  this.setState({
447
466
  highLightedSelectOptions: [],
448
467
  lastHighLightedSelectOption: ''
449
468
  });
450
469
  }
470
+
451
471
  removeClose(e);
452
472
  this.handleChange([]);
453
473
  }
474
+
454
475
  handleSelectOption(option, value, index, e) {
455
476
  const {
456
477
  selectedOptions,
@@ -460,9 +481,11 @@ export class MultiSelectComponent extends React.Component {
460
481
  const {
461
482
  searchStr
462
483
  } = this.state;
484
+
463
485
  if (searchStr.trim() != '' && isSearchClearOnSelect) {
464
486
  this.handleSearch('');
465
487
  }
488
+
466
489
  if (keepSelectedOptions && selectedOptions.indexOf(option) != -1) {
467
490
  let newSelectedOptions = selectedOptions.filter(id => {
468
491
  return id != option;
@@ -472,6 +495,7 @@ export class MultiSelectComponent extends React.Component {
472
495
  this.handleChange([...selectedOptions, option], e);
473
496
  }
474
497
  }
498
+
475
499
  handleRemoveOption(options) {
476
500
  const newOptions = !getIsEmptyValue(options) && !Array.isArray(options) ? [options] : options;
477
501
  const {
@@ -483,18 +507,22 @@ export class MultiSelectComponent extends React.Component {
483
507
  lastHighLightedSelectOption,
484
508
  shiftKeyPressHighLighted
485
509
  } = this.state;
510
+
486
511
  if (newOptions.length && !isReadOnly) {
487
512
  const newSelectedOptions = selectedOptions.filter(option => newOptions.indexOf(option) === -1);
488
513
  const newHighLightedSelectOptions = highLightedSelectOptions.filter(option => newSelectedOptions.indexOf(option) >= 0);
489
514
  let isHighlightedRemoved = false;
490
515
  const newOptionsLen = newOptions.length;
516
+
491
517
  for (let i = 0; i < newOptionsLen; i++) {
492
518
  const removedOption = newOptions[i];
519
+
493
520
  if (highLightedSelectOptions.indexOf(removedOption) >= 0) {
494
521
  isHighlightedRemoved = true;
495
522
  break;
496
523
  }
497
524
  }
525
+
498
526
  this.setState({
499
527
  lastHighLightedSelectOption: newSelectedOptions.indexOf(lastHighLightedSelectOption) >= 0 && !isHighlightedRemoved ? lastHighLightedSelectOption : '',
500
528
  highLightedSelectOptions: isHighlightedRemoved ? [] : newHighLightedSelectOptions,
@@ -502,8 +530,10 @@ export class MultiSelectComponent extends React.Component {
502
530
  });
503
531
  this.handleChange(newSelectedOptions);
504
532
  }
533
+
505
534
  this.moveFocusToTextbox();
506
535
  }
536
+
507
537
  handleMouseEnter(id, val, hoverOptionIndex, e) {
508
538
  e && e.preventDefault();
509
539
  const {
@@ -513,16 +543,19 @@ export class MultiSelectComponent extends React.Component {
513
543
  suggestionsOrder
514
544
  } = this;
515
545
  const newHoverIndex = suggestionsOrder.indexOf(id);
546
+
516
547
  if (newHoverIndex !== hoverOption) {
517
548
  this.setState({
518
549
  hoverOption: newHoverIndex
519
550
  });
520
551
  }
521
552
  }
553
+
522
554
  handleFetchOptions() {
523
555
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
524
556
  args[_key] = arguments[_key];
525
557
  }
558
+
526
559
  const [APICall, searchStr] = args;
527
560
  const {
528
561
  isFetchingOptions
@@ -531,10 +564,12 @@ export class MultiSelectComponent extends React.Component {
531
564
  _isMounted
532
565
  } = this;
533
566
  const isForce = isFetchingOptions && searchStr ? true : false;
567
+
534
568
  if (!isFetchingOptions && APICall || isForce) {
535
569
  this.setState({
536
570
  isFetchingOptions: true
537
571
  });
572
+
538
573
  try {
539
574
  return APICall(searchStr).then(() => {
540
575
  _isMounted && this.setState({
@@ -552,6 +587,7 @@ export class MultiSelectComponent extends React.Component {
552
587
  }
553
588
  }
554
589
  }
590
+
555
591
  handleSearchOptions() {
556
592
  const {
557
593
  onSearch
@@ -561,6 +597,7 @@ export class MultiSelectComponent extends React.Component {
561
597
  } = this.state;
562
598
  searchStr && this.handleFetchOptions(onSearch, searchStr);
563
599
  }
600
+
564
601
  handleSearch(value, e) {
565
602
  const {
566
603
  onSearch,
@@ -583,6 +620,7 @@ export class MultiSelectComponent extends React.Component {
583
620
  }
584
621
  });
585
622
  }
623
+
586
624
  handleClickSelectedOption() {
587
625
  let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
588
626
  let e = arguments.length > 1 ? arguments[1] : undefined;
@@ -598,13 +636,16 @@ export class MultiSelectComponent extends React.Component {
598
636
  ctrlKey,
599
637
  shiftKey
600
638
  } = e;
639
+
601
640
  if (e && shiftKey) {
602
641
  //shift+click
603
642
  let from = selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
604
643
  let to = id && selectedOptions.indexOf(id) >= 0 ? selectedOptions.indexOf(id) : null;
644
+
605
645
  if (to >= 0 && to < from) {
606
646
  [to] = [from, from = to];
607
647
  }
648
+
608
649
  to += 1;
609
650
  const newSelectedHighlights = to ? selectedOptions.slice(from, to) : [];
610
651
  to && this.setState({
@@ -615,6 +656,7 @@ export class MultiSelectComponent extends React.Component {
615
656
  //ctrl+click
616
657
  const isRemove = highLightedSelectOptions.indexOf(id) >= 0;
617
658
  let newSelectedHighlights = [];
659
+
618
660
  if (isRemove) {
619
661
  lastHighLightedSelectOption = id === lastHighLightedSelectOption ? '' : lastHighLightedSelectOption;
620
662
  newSelectedHighlights = highLightedSelectOptions.filter(option => option !== id);
@@ -622,6 +664,7 @@ export class MultiSelectComponent extends React.Component {
622
664
  lastHighLightedSelectOption = id;
623
665
  newSelectedHighlights = [...highLightedSelectOptions, id];
624
666
  }
667
+
625
668
  this.setState({
626
669
  highLightedSelectOptions: newSelectedHighlights,
627
670
  lastHighLightedSelectOption
@@ -632,16 +675,19 @@ export class MultiSelectComponent extends React.Component {
632
675
  lastHighLightedSelectOption: id
633
676
  });
634
677
  }
678
+
635
679
  this.setState({
636
680
  shiftKeyPressHighLighted: 0
637
681
  });
638
682
  this.moveFocusToTextbox();
639
683
  }
684
+
640
685
  handleScroll(e) {
641
686
  let ele = e.target;
642
687
  let isScrollReachedBottom = findScrollEnd(ele);
643
688
  isScrollReachedBottom && this.handleScrollFuncCall();
644
689
  }
690
+
645
691
  handleScrollFuncCall() {
646
692
  const {
647
693
  getNextOptions,
@@ -652,6 +698,7 @@ export class MultiSelectComponent extends React.Component {
652
698
  } = this.state;
653
699
  isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
654
700
  }
701
+
655
702
  handleChange() {
656
703
  let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
657
704
  let e = arguments.length > 1 ? arguments[1] : undefined;
@@ -674,17 +721,21 @@ export class MultiSelectComponent extends React.Component {
674
721
  });
675
722
  const selectedOptionsLen = newSelectedOptions.length;
676
723
  const allSelectedOptionsDetails = [];
724
+
677
725
  for (let i = 0; i < selectedOptionsLen; i++) {
678
726
  const id = newSelectedOptions[i];
679
727
  allSelectedOptionsDetails.push(optionsNormalize[id]);
680
728
  }
681
- onChange && onChange(newSelectedOptions, allSelectedOptionsDetails);
682
- // this.setState({ searchStr: '' });
729
+
730
+ onChange && onChange(newSelectedOptions, allSelectedOptionsDetails); // this.setState({ searchStr: '' });
731
+
683
732
  this.moveFocusToTextbox();
733
+
684
734
  if (needToCloseOnSelect) {
685
735
  togglePopup(e);
686
736
  }
687
737
  }
738
+
688
739
  togglePopup(e) {
689
740
  const {
690
741
  togglePopup,
@@ -693,12 +744,14 @@ export class MultiSelectComponent extends React.Component {
693
744
  } = this.props;
694
745
  !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}` : null);
695
746
  }
747
+
696
748
  handlePopupClose(e) {
697
749
  const {
698
750
  closePopupOnly
699
751
  } = this.props;
700
752
  closePopupOnly(e);
701
753
  }
754
+
702
755
  searchInputRef(el) {
703
756
  const {
704
757
  getRef
@@ -706,6 +759,7 @@ export class MultiSelectComponent extends React.Component {
706
759
  this.searchInput = el;
707
760
  getRef && getRef(el);
708
761
  }
762
+
709
763
  selectedOptionContainerRef(el) {
710
764
  const {
711
765
  getTargetRef
@@ -713,25 +767,31 @@ export class MultiSelectComponent extends React.Component {
713
767
  this.selectedOptionContainer = el;
714
768
  getTargetRef(el);
715
769
  }
770
+
716
771
  selectedOptionRef(el, id) {
717
772
  this[`selectedOption_${id}`] = el;
718
773
  }
774
+
719
775
  suggestionContainerRef(el) {
720
776
  this.suggestionContainer = el;
721
777
  }
778
+
722
779
  suggestionItemRef(el, index, id) {
723
780
  this[`suggestion_${id}`] = el;
724
781
  }
782
+
725
783
  handleActive(e) {
726
784
  const {
727
785
  searchStr,
728
786
  isActive
729
787
  } = this.state;
788
+
730
789
  if (!isActive) {
731
790
  this.setState({
732
791
  isActive: true
733
792
  });
734
793
  }
794
+
735
795
  const {
736
796
  target
737
797
  } = e || {};
@@ -741,16 +801,19 @@ export class MultiSelectComponent extends React.Component {
741
801
  } = this.props;
742
802
  onFocus && onFocus(searchStr);
743
803
  }
804
+
744
805
  handleInactive() {
745
806
  const {
746
807
  isActive
747
808
  } = this.state;
809
+
748
810
  if (isActive) {
749
811
  this.setState({
750
812
  isActive: false
751
813
  });
752
814
  }
753
815
  }
816
+
754
817
  handleInputFocus() {
755
818
  const {
756
819
  isDisabled,
@@ -758,11 +821,13 @@ export class MultiSelectComponent extends React.Component {
758
821
  } = this.props;
759
822
  !isDisabled && !isReadOnly && this.moveFocusToTextbox();
760
823
  }
824
+
761
825
  moveFocusToTextbox() {
762
826
  this.searchInput && this.searchInput.focus({
763
827
  preventScroll: true
764
828
  });
765
829
  }
830
+
766
831
  handleExposedPublicMethods() {
767
832
  const {
768
833
  getPublicMethods,
@@ -772,6 +837,7 @@ export class MultiSelectComponent extends React.Component {
772
837
  openPopupOnly
773
838
  });
774
839
  }
840
+
775
841
  responsiveFunc(_ref) {
776
842
  let {
777
843
  mediaQueryOR
@@ -782,6 +848,7 @@ export class MultiSelectComponent extends React.Component {
782
848
  }])
783
849
  };
784
850
  }
851
+
785
852
  getSelectionUI() {
786
853
  let isResponsive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
787
854
  let {
@@ -901,6 +968,7 @@ export class MultiSelectComponent extends React.Component {
901
968
  dataId: `${dataId}_children`
902
969
  }, children) : null))));
903
970
  }
971
+
904
972
  render() {
905
973
  let {
906
974
  isReadOnly,
@@ -1040,6 +1108,7 @@ export class MultiSelectComponent extends React.Component {
1040
1108
  }, /*#__PURE__*/React.createElement(Loader, null))), getFooter ? /*#__PURE__*/React.createElement(CardFooter, null, getFooter()) : null)));
1041
1109
  }) : null);
1042
1110
  }
1111
+
1043
1112
  }
1044
1113
  MultiSelectComponent.propTypes = MultiSelect_propTypes;
1045
1114
  MultiSelectComponent.defaultProps = MultiSelect_defaultProps;