@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
@@ -1,9 +1,11 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  /**** Libraries ****/
3
4
  import React, { Component } from 'react';
4
5
  import { Select_defaultProps } from './props/defaultProps';
5
6
  import { Select_propTypes } from './props/propTypes';
6
7
  /**** Components ****/
8
+
7
9
  import Popup from '../Popup/Popup';
8
10
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
9
11
  import { Container, Box } from '../Layout';
@@ -16,15 +18,16 @@ import { Icon } from '@zohodesk/icons';
16
18
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
17
19
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
18
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
19
-
20
21
  /**** Methods ****/
22
+
21
23
  import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetSelectedValueText as makeGetSelectedValue } from '../../utils/dropDownUtils';
22
24
  import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue } from '../../utils/Common.js';
23
25
  /**** CSS ****/
26
+
24
27
  import style from '../../Select/Select.module.css';
25
28
  import { getLibraryConfig } from '../../Provider/Config';
26
-
27
29
  /* eslint-disable react/no-deprecated */
30
+
28
31
  /* eslint-disable react/no-unused-prop-types */
29
32
 
30
33
  let dummyArray = [];
@@ -64,11 +67,11 @@ export class SelectComponent extends Component {
64
67
  isDefaultSelectValue,
65
68
  valueField,
66
69
  textField
67
- });
68
- // eslint-disable-next-line
69
- if (isSelfValueChanged) {
70
- // onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
70
+ }); // eslint-disable-next-line
71
+
72
+ if (isSelfValueChanged) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
71
73
  }
74
+
72
75
  this.state = {
73
76
  selected,
74
77
  options: allOptions,
@@ -111,10 +114,10 @@ export class SelectComponent extends Component {
111
114
  this.autoSelectSuggestions = [];
112
115
  this.autoSelectIndex = 0;
113
116
  }
117
+
114
118
  componentDidMount() {
115
119
  this._isMounted = true;
116
- this.handleExposePopupHandlers();
117
- // let { suggestionContainer } = this;
120
+ this.handleExposePopupHandlers(); // let { suggestionContainer } = this;
118
121
  // suggestionContainer &&
119
122
  // suggestionContainer.addEventListener('scroll', this.handleScroll);
120
123
  }
@@ -155,11 +158,11 @@ export class SelectComponent extends Component {
155
158
  });
156
159
  let {
157
160
  selectedValue: oldSelectedValue
158
- } = this.props;
159
- // eslint-disable-next-line
160
- if (isSelfValueChanged && oldSelectedValue !== selectedValue) {
161
- // onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
161
+ } = this.props; // eslint-disable-next-line
162
+
163
+ if (isSelfValueChanged && oldSelectedValue !== selectedValue) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
162
164
  }
165
+
163
166
  this.selectedFormatOptions = Object.assign(oldSelectedFormatOptions, selectedValueDetails);
164
167
  this.normalizedFormatOptions = normalizedFormatOptions;
165
168
  this.optionsOrder = optionsOrder;
@@ -172,6 +175,7 @@ export class SelectComponent extends Component {
172
175
  selectedValueIndex: hoverIndex
173
176
  });
174
177
  }
178
+
175
179
  componentDidUpdate(prevProps) {
176
180
  let {
177
181
  suggestionContainer,
@@ -194,6 +198,7 @@ export class SelectComponent extends Component {
194
198
  let hoverId = getIsEmptyValue(optionsOrder[hoverIndex]) ? '' : optionsOrder[hoverIndex];
195
199
  let selSuggestion = this[`suggestion_${hoverId}`];
196
200
  isPopupOpen && scrollTo(suggestionContainer, selSuggestion);
201
+
197
202
  if (prevProps.isPopupOpen !== isPopupOpen) {
198
203
  if (isPopupOpen) {
199
204
  onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
@@ -211,20 +216,22 @@ export class SelectComponent extends Component {
211
216
  hoverIndex: selectedValueIndex
212
217
  });
213
218
  }
214
- }
219
+ } //When suggestions length less than 5, getNextOptions function call
220
+
215
221
 
216
- //When suggestions length less than 5, getNextOptions function call
217
222
  let {
218
223
  isNextOptions,
219
224
  getNextOptions
220
- } = this.props;
221
- // let { searchStr } = this.state;
225
+ } = this.props; // let { searchStr } = this.state;
226
+
222
227
  let suggestions = isPopupOpen ? this.handleFilterSuggestions() : [];
223
228
  let suggestionsLen = suggestions.length;
229
+
224
230
  if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
225
231
  this.handleFetchOptions(getNextOptions, searchStr);
226
232
  }
227
233
  }
234
+
228
235
  componentWillUnmount() {
229
236
  this._isMounted = false;
230
237
  let {
@@ -236,8 +243,7 @@ export class SelectComponent extends Component {
236
243
  closePopup: null,
237
244
  togglePopup: null
238
245
  };
239
- getPopupHandlers && getPopupHandlers(methods);
240
- // let { suggestionContainer } = this;
246
+ getPopupHandlers && getPopupHandlers(methods); // let { suggestionContainer } = this;
241
247
  // suggestionContainer &&
242
248
  // suggestionContainer.removeEventListener('scroll', this.handleScroll);
243
249
  }
@@ -259,6 +265,7 @@ export class SelectComponent extends Component {
259
265
  listItemProps
260
266
  });
261
267
  }
268
+
262
269
  handleChange(id, value, index, e) {
263
270
  e && e.preventDefault && e.preventDefault();
264
271
  let {
@@ -269,10 +276,11 @@ export class SelectComponent extends Component {
269
276
  let {
270
277
  optionsNormalize
271
278
  } = this.state;
272
- !isReadOnly && onChange && onChange(id, optionsNormalize[id]);
273
- // this.valueInput && this.valueInput.focus({preventScroll:true});
279
+ !isReadOnly && onChange && onChange(id, optionsNormalize[id]); // this.valueInput && this.valueInput.focus({preventScroll:true});
280
+
274
281
  needCloseOnSelect && this.handlePopupClose(e);
275
282
  }
283
+
276
284
  responsiveFunc(_ref) {
277
285
  let {
278
286
  mediaQueryOR
@@ -283,6 +291,7 @@ export class SelectComponent extends Component {
283
291
  }])
284
292
  };
285
293
  }
294
+
286
295
  handleKeyDown(e) {
287
296
  let {
288
297
  onChange,
@@ -300,35 +309,40 @@ export class SelectComponent extends Component {
300
309
  let {
301
310
  keyCode
302
311
  } = e;
312
+
303
313
  if (!isPopupOpen && !isPopupOpenOnEnter) {
304
314
  onKeyDown && onKeyDown(e);
305
315
  }
316
+
306
317
  if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13) && e.preventDefault) {
307
318
  e.preventDefault(); //prevent body scroll and enter key prevent
308
319
  } else if (!isPopupOpen && keyCode === 40) {
309
320
  e.preventDefault(); //prevent body scroll
321
+
310
322
  this.togglePopup(e);
311
323
  }
324
+
312
325
  if (keyCode === 38 && isPopupOpen && options.length) {
313
326
  // eslint-disable-next-line
314
- if (hoverIndex === 0) {
315
- // hoverIndex = options.length - 1;
327
+ if (hoverIndex === 0) {// hoverIndex = options.length - 1;
316
328
  } else {
317
329
  hoverIndex -= 1;
318
330
  }
331
+
319
332
  this.setState({
320
333
  hoverIndex
321
334
  });
322
335
  } else if (keyCode === 40 && isPopupOpen && options.length) {
323
336
  // eslint-disable-next-line
324
- if (hoverIndex === options.length - 1) {
325
- // hoverIndex = 0;
337
+ if (hoverIndex === options.length - 1) {// hoverIndex = 0;
326
338
  } else {
327
339
  if (hoverIndex === options.length - 3) {
328
340
  this.handleGetNextOptions();
329
341
  }
342
+
330
343
  hoverIndex += 1;
331
344
  }
345
+
332
346
  this.setState({
333
347
  hoverIndex
334
348
  });
@@ -337,32 +351,36 @@ export class SelectComponent extends Component {
337
351
  let {
338
352
  id
339
353
  } = option || {};
354
+
340
355
  if (isPopupReady && !getIsEmptyValue(id) && onChange) {
341
356
  onChange(id, optionsNormalize[id]);
342
357
  needCloseOnSelect && this.handlePopupClose(e);
343
358
  }
359
+
344
360
  if (!isPopupReady && isPopupOpenOnEnter) {
345
361
  this.togglePopup(e);
346
362
  }
347
363
  } else if (keyCode === 27) {
348
364
  this.valueInput && this.valueInput.focus({
349
365
  preventScroll: true
350
- });
351
- //this.handlePopupClose(e);
366
+ }); //this.handlePopupClose(e);
352
367
  } else if (keyCode === 9) {
353
368
  let option = options[hoverIndex];
354
369
  let {
355
370
  id
356
371
  } = option || {};
372
+
357
373
  if (isPopupOpen && !getIsEmptyValue(id)) {
358
374
  onChange && onChange(id, optionsNormalize[id]);
359
375
  needCloseOnSelect && this.handlePopupClose(e);
360
376
  }
377
+
361
378
  if (!isPopupOpen && isPopupOpenOnEnter) {
362
379
  this.togglePopup(e);
363
380
  }
364
381
  }
365
382
  }
383
+
366
384
  handleSearchOptions() {
367
385
  let {
368
386
  onSearch
@@ -372,6 +390,7 @@ export class SelectComponent extends Component {
372
390
  } = this.state;
373
391
  searchStr && this.handleFetchOptions(onSearch, searchStr);
374
392
  }
393
+
375
394
  handleSearch(value) {
376
395
  // let { value = '' } = e.target;
377
396
  let {
@@ -394,7 +413,10 @@ export class SelectComponent extends Component {
394
413
  }
395
414
  });
396
415
  }
397
- handleMouseEnter(id /*val, index*/) {
416
+
417
+ handleMouseEnter(id
418
+ /*val, index*/
419
+ ) {
398
420
  let {
399
421
  hoverIndex
400
422
  } = this.state;
@@ -406,21 +428,21 @@ export class SelectComponent extends Component {
406
428
  hoverIndex: newHoverIndex
407
429
  });
408
430
  }
431
+
409
432
  handleFilterSuggestions() {
410
433
  let {
411
434
  needLocalSearch,
412
- excludeOptions = dummyArray
413
- // needSearch
435
+ excludeOptions = dummyArray // needSearch
436
+
414
437
  } = this.props;
415
438
  let {
416
439
  options = dummyArray,
417
440
  searchStr = ''
418
- } = this.state;
419
-
420
- // if (
441
+ } = this.state; // if (
421
442
  // (needSearch && searchStr && searchStr.trim().length) ||
422
443
  // (excludeOptions && excludeOptions.length)
423
444
  // ) {
445
+
424
446
  searchStr = getSearchString(searchStr);
425
447
  let {
426
448
  suggestions,
@@ -432,8 +454,7 @@ export class SelectComponent extends Component {
432
454
  needSearch: needLocalSearch
433
455
  });
434
456
  this.optionsOrder = suggestionIds;
435
- return suggestions;
436
- // }
457
+ return suggestions; // }
437
458
  // return options;
438
459
  }
439
460
 
@@ -442,6 +463,7 @@ export class SelectComponent extends Component {
442
463
  let isScrollReachedBottom = findScrollEnd(ele);
443
464
  isScrollReachedBottom && this.handleGetNextOptions();
444
465
  }
466
+
445
467
  handleFetchOptions(APICall) {
446
468
  let searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
447
469
  // let funcArgs = args.slice(1, args.length);
@@ -451,10 +473,12 @@ export class SelectComponent extends Component {
451
473
  let {
452
474
  _isMounted
453
475
  } = this;
476
+
454
477
  if (!isFetchingOptions && APICall) {
455
478
  this.setState({
456
479
  isFetchingOptions: true
457
480
  });
481
+
458
482
  try {
459
483
  return APICall(searchStr).then(() => {
460
484
  _isMounted && this.setState({
@@ -472,6 +496,7 @@ export class SelectComponent extends Component {
472
496
  }
473
497
  }
474
498
  }
499
+
475
500
  handleGetNextOptions() {
476
501
  let {
477
502
  isNextOptions,
@@ -482,6 +507,7 @@ export class SelectComponent extends Component {
482
507
  } = this.state;
483
508
  isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
484
509
  }
510
+
485
511
  togglePopup(e) {
486
512
  let {
487
513
  togglePopup,
@@ -493,6 +519,7 @@ export class SelectComponent extends Component {
493
519
  !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}` : null);
494
520
  !isPopupOpen && typeof onFocus === 'function' && onFocus(e);
495
521
  }
522
+
496
523
  handlePopupClose(e) {
497
524
  let {
498
525
  closePopupOnly
@@ -502,15 +529,19 @@ export class SelectComponent extends Component {
502
529
  });
503
530
  closePopupOnly(e);
504
531
  }
532
+
505
533
  suggestionContainerRef(el) {
506
534
  this.suggestionContainer = el;
507
535
  }
536
+
508
537
  suggestionItemRef(el, index, id) {
509
538
  this[`suggestion_${id}`] = el;
510
539
  }
540
+
511
541
  searchInputRef(el) {
512
542
  this.searchInput = el;
513
543
  }
544
+
514
545
  valueInputRef(el) {
515
546
  let {
516
547
  getRef
@@ -518,12 +549,14 @@ export class SelectComponent extends Component {
518
549
  this.valueInput = el;
519
550
  getRef && getRef(el);
520
551
  }
552
+
521
553
  handleSelectFocus() {
522
554
  let {
523
555
  valueInput
524
556
  } = this;
525
557
  valueInput && valueInput.setSelectionRange(valueInput, 0);
526
558
  }
559
+
527
560
  handleClearSearch() {
528
561
  this.handleSearch('');
529
562
  setTimeout(() => {
@@ -532,17 +565,20 @@ export class SelectComponent extends Component {
532
565
  });
533
566
  }, 1);
534
567
  }
568
+
535
569
  handleValueInputChange(e) {
536
570
  let typeString = getKeyValue(e);
537
571
  let {
538
572
  isPopupOpen,
539
573
  autoSelectOnType
540
574
  } = this.props;
575
+
541
576
  if (!isPopupOpen && autoSelectOnType) {
542
577
  this.valueInputTypeString += (typeString || '').trim();
543
578
  this.handleChangeOnType();
544
579
  }
545
580
  }
581
+
546
582
  handleChangeOnType() {
547
583
  let {
548
584
  excludeOptions = dummyArray
@@ -555,11 +591,13 @@ export class SelectComponent extends Component {
555
591
  } = this;
556
592
  let typeString = this.valueInputTypeString;
557
593
  this.valueInputTypeString = '';
594
+
558
595
  let changeValue = () => {
559
596
  let optionDetails = this.autoSelectSuggestions[this.autoSelectIndex];
560
597
  let {
561
598
  id
562
599
  } = optionDetails || {};
600
+
563
601
  if (!getIsEmptyValue(id)) {
564
602
  this.handleChange(id);
565
603
  let hoverIndex = optionsOrder.indexOf(id);
@@ -568,12 +606,14 @@ export class SelectComponent extends Component {
568
606
  });
569
607
  }
570
608
  };
609
+
571
610
  if (typeString && typeString === this.valueInputSearchString) {
572
611
  if (this.autoSelectIndex < this.autoSelectSuggestions.length - 1) {
573
612
  this.autoSelectIndex += 1;
574
613
  } else {
575
614
  this.autoSelectIndex = 0;
576
615
  }
616
+
577
617
  changeValue();
578
618
  } else if (typeString) {
579
619
  this.valueInputSearchString = typeString;
@@ -591,6 +631,7 @@ export class SelectComponent extends Component {
591
631
  changeValue();
592
632
  }
593
633
  }
634
+
594
635
  handleAddNewOption() {
595
636
  let {
596
637
  searchStr
@@ -599,6 +640,7 @@ export class SelectComponent extends Component {
599
640
  onAddNewOption,
600
641
  getCustomEmptyState
601
642
  } = this.props;
643
+
602
644
  if (getCustomEmptyState) {
603
645
  this.setState({
604
646
  searchStr: ''
@@ -606,6 +648,7 @@ export class SelectComponent extends Component {
606
648
  this.handleFetchOptions(onAddNewOption, searchStr);
607
649
  }
608
650
  }
651
+
609
652
  handleExposePopupHandlers() {
610
653
  let {
611
654
  removeClose,
@@ -622,6 +665,7 @@ export class SelectComponent extends Component {
622
665
  };
623
666
  getPopupHandlers && getPopupHandlers(methods);
624
667
  }
668
+
625
669
  handleGetAddNewOptionText() {
626
670
  let {
627
671
  searchStr
@@ -634,6 +678,7 @@ export class SelectComponent extends Component {
634
678
  onAddNewOption: this.handleAddNewOption
635
679
  });
636
680
  }
681
+
637
682
  render() {
638
683
  let {
639
684
  needSearch,
@@ -909,6 +954,7 @@ export class SelectComponent extends Component {
909
954
  }, getChildren())));
910
955
  }) : null);
911
956
  }
957
+
912
958
  }
913
959
  SelectComponent.propTypes = Select_propTypes;
914
960
  SelectComponent.defaultProps = Select_defaultProps;
@@ -917,9 +963,7 @@ let Select = Popup(SelectComponent);
917
963
  Select.defaultProps = SelectComponent.defaultProps;
918
964
  Select.propTypes = Select_propTypes;
919
965
  Select.displayName = 'Select';
920
- export default Select;
921
-
922
- // if (__DOCS__) {
966
+ export default Select; // if (__DOCS__) {
923
967
  // Select.docs = {
924
968
  // componentGroup: 'Form Elements',
925
969
  // folderName: 'Style Guide',
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import { SelectWithAvatar_defaultProps } from './props/defaultProps';
4
4
  import { SelectWithAvatar_propTypes } from './props/propTypes';
5
5
  /**** Components ****/
6
+
6
7
  import { SelectComponent } from './Select';
7
8
  import Popup from '../Popup/Popup';
8
9
  import Tag from '../Tag/Tag';
@@ -17,10 +18,11 @@ import { getUniqueId } from '../../Provider/IdProvider';
17
18
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
18
19
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
19
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
20
-
21
21
  /**** CSS ****/
22
+
22
23
  import style from '../../MultiSelect/MultiSelect.module.css';
23
24
  import selectStyle from '../../Select/Select.module.css';
25
+
24
26
  class SelectWithAvatarComponent extends SelectComponent {
25
27
  constructor(props) {
26
28
  super(props);
@@ -32,6 +34,7 @@ class SelectWithAvatarComponent extends SelectComponent {
32
34
  this.handleRemoveOption = this.handleRemoveOption.bind(this);
33
35
  this.getNextAriaId = getUniqueId(this);
34
36
  }
37
+
35
38
  handleFormatOptions(props) {
36
39
  let {
37
40
  options,
@@ -47,15 +50,18 @@ class SelectWithAvatarComponent extends SelectComponent {
47
50
  optionType: 'avatar'
48
51
  });
49
52
  }
53
+
50
54
  handleActive(e) {
51
55
  let {
52
56
  isActive
53
57
  } = this.state;
58
+
54
59
  if (!isActive) {
55
60
  this.setState({
56
61
  isActive: true
57
62
  });
58
63
  }
64
+
59
65
  let {
60
66
  target
61
67
  } = e || {};
@@ -65,16 +71,19 @@ class SelectWithAvatarComponent extends SelectComponent {
65
71
  } = this.props;
66
72
  onFocus && onFocus(this.state.searchStr);
67
73
  }
74
+
68
75
  handleInactive() {
69
76
  let {
70
77
  isActive
71
78
  } = this.state;
79
+
72
80
  if (isActive) {
73
81
  this.setState({
74
82
  isActive: false
75
83
  });
76
84
  }
77
85
  }
86
+
78
87
  handleSearchChange(e) {
79
88
  let {
80
89
  isPopupOpen
@@ -82,6 +91,7 @@ class SelectWithAvatarComponent extends SelectComponent {
82
91
  !isPopupOpen && this.togglePopup(e);
83
92
  this.handleSearch(e);
84
93
  }
94
+
85
95
  handleRemoveOption(e) {
86
96
  let {
87
97
  keyCode
@@ -92,12 +102,14 @@ class SelectWithAvatarComponent extends SelectComponent {
92
102
  let {
93
103
  isDefaultSelectValue
94
104
  } = this.props;
105
+
95
106
  if (keyCode === 8 && searchStr.length === 0 && !isDefaultSelectValue) {
96
107
  this.handleChange('');
97
108
  } else {
98
109
  this.handleKeyDown(e);
99
110
  }
100
111
  }
112
+
101
113
  responsiveFunc(_ref) {
102
114
  let {
103
115
  mediaQueryOR
@@ -108,6 +120,7 @@ class SelectWithAvatarComponent extends SelectComponent {
108
120
  }])
109
121
  };
110
122
  }
123
+
111
124
  render() {
112
125
  let {
113
126
  dropBoxSize,
@@ -311,15 +324,15 @@ class SelectWithAvatarComponent extends SelectComponent {
311
324
  }, /*#__PURE__*/React.createElement(Loader, null))))));
312
325
  }) : null);
313
326
  }
327
+
314
328
  }
329
+
315
330
  SelectWithAvatarComponent.propTypes = SelectWithAvatar_propTypes;
316
331
  SelectWithAvatarComponent.defaultProps = SelectWithAvatar_defaultProps;
317
332
  SelectWithAvatarComponent.displayName = 'SelectWithAvatar';
318
333
  let SelectWithAvatar = Popup(SelectWithAvatarComponent);
319
334
  SelectWithAvatar.defaultProps = SelectWithAvatarComponent.defaultProps;
320
- SelectWithAvatar.propTypes = SelectWithAvatarComponent.propTypes;
321
-
322
- // if (__DOCS__) {
335
+ SelectWithAvatar.propTypes = SelectWithAvatarComponent.propTypes; // if (__DOCS__) {
323
336
  // SelectWithAvatar.docs = {
324
337
  // componentGroup: 'Form Elements',
325
338
  // folderName: 'Style Guide'