@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.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 = [];
@@ -65,9 +68,10 @@ export class SelectComponent extends Component {
65
68
  valueField,
66
69
  textField
67
70
  });
68
- if (isSelfValueChanged) {
69
- // onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
71
+
72
+ if (isSelfValueChanged) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
70
73
  }
74
+
71
75
  this.state = {
72
76
  selected,
73
77
  options: allOptions,
@@ -110,10 +114,10 @@ export class SelectComponent extends Component {
110
114
  this.autoSelectSuggestions = [];
111
115
  this.autoSelectIndex = 0;
112
116
  }
117
+
113
118
  componentDidMount() {
114
119
  this._isMounted = true;
115
- this.handleExposePopupHandlers();
116
- // let { suggestionContainer } = this;
120
+ this.handleExposePopupHandlers(); // let { suggestionContainer } = this;
117
121
  // suggestionContainer &&
118
122
  // suggestionContainer.addEventListener('scroll', this.handleScroll);
119
123
  }
@@ -155,9 +159,10 @@ export class SelectComponent extends Component {
155
159
  let {
156
160
  selectedValue: oldSelectedValue
157
161
  } = this.props;
158
- if (isSelfValueChanged && oldSelectedValue !== selectedValue) {
159
- // onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
162
+
163
+ if (isSelfValueChanged && oldSelectedValue !== selectedValue) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
160
164
  }
165
+
161
166
  this.selectedFormatOptions = Object.assign(oldSelectedFormatOptions, selectedValueDetails);
162
167
  this.normalizedFormatOptions = normalizedFormatOptions;
163
168
  this.optionsOrder = optionsOrder;
@@ -170,6 +175,7 @@ export class SelectComponent extends Component {
170
175
  selectedValueIndex: hoverIndex
171
176
  });
172
177
  }
178
+
173
179
  componentDidUpdate(prevProps) {
174
180
  let {
175
181
  suggestionContainer,
@@ -192,6 +198,7 @@ export class SelectComponent extends Component {
192
198
  let hoverId = getIsEmptyValue(optionsOrder[hoverIndex]) ? '' : optionsOrder[hoverIndex];
193
199
  let selSuggestion = this[`suggestion_${hoverId}`];
194
200
  isPopupOpen && scrollTo(suggestionContainer, selSuggestion);
201
+
195
202
  if (prevProps.isPopupOpen !== isPopupOpen) {
196
203
  if (isPopupOpen) {
197
204
  onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
@@ -209,20 +216,22 @@ export class SelectComponent extends Component {
209
216
  hoverIndex: selectedValueIndex
210
217
  });
211
218
  }
212
- }
219
+ } //When suggestions length less than 5, getNextOptions function call
220
+
213
221
 
214
- //When suggestions length less than 5, getNextOptions function call
215
222
  let {
216
223
  isNextOptions,
217
224
  getNextOptions
218
- } = this.props;
219
- // let { searchStr } = this.state;
225
+ } = this.props; // let { searchStr } = this.state;
226
+
220
227
  let suggestions = isPopupOpen ? this.handleFilterSuggestions() : [];
221
228
  let suggestionsLen = suggestions.length;
229
+
222
230
  if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
223
231
  this.handleFetchOptions(getNextOptions, searchStr);
224
232
  }
225
233
  }
234
+
226
235
  componentWillUnmount() {
227
236
  this._isMounted = false;
228
237
  let {
@@ -234,8 +243,7 @@ export class SelectComponent extends Component {
234
243
  closePopup: null,
235
244
  togglePopup: null
236
245
  };
237
- getPopupHandlers && getPopupHandlers(methods);
238
- // let { suggestionContainer } = this;
246
+ getPopupHandlers && getPopupHandlers(methods); // let { suggestionContainer } = this;
239
247
  // suggestionContainer &&
240
248
  // suggestionContainer.removeEventListener('scroll', this.handleScroll);
241
249
  }
@@ -257,6 +265,7 @@ export class SelectComponent extends Component {
257
265
  listItemProps
258
266
  });
259
267
  }
268
+
260
269
  handleChange(id, value, index, e) {
261
270
  e && e.preventDefault && e.preventDefault();
262
271
  let {
@@ -267,10 +276,11 @@ export class SelectComponent extends Component {
267
276
  let {
268
277
  optionsNormalize
269
278
  } = this.state;
270
- !isReadOnly && onChange && onChange(id, optionsNormalize[id]);
271
- // this.valueInput && this.valueInput.focus({preventScroll:true});
279
+ !isReadOnly && onChange && onChange(id, optionsNormalize[id]); // this.valueInput && this.valueInput.focus({preventScroll:true});
280
+
272
281
  needCloseOnSelect && this.handlePopupClose(e);
273
282
  }
283
+
274
284
  responsiveFunc(_ref) {
275
285
  let {
276
286
  mediaQueryOR
@@ -281,6 +291,7 @@ export class SelectComponent extends Component {
281
291
  }])
282
292
  };
283
293
  }
294
+
284
295
  handleKeyDown(e) {
285
296
  let {
286
297
  onChange,
@@ -298,33 +309,38 @@ export class SelectComponent extends Component {
298
309
  let {
299
310
  keyCode
300
311
  } = e;
312
+
301
313
  if (!isPopupOpen && !isPopupOpenOnEnter) {
302
314
  onKeyDown && onKeyDown(e);
303
315
  }
316
+
304
317
  if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13) && e.preventDefault) {
305
318
  e.preventDefault(); //prevent body scroll and enter key prevent
306
319
  } else if (!isPopupOpen && keyCode === 40) {
307
320
  e.preventDefault(); //prevent body scroll
321
+
308
322
  this.togglePopup(e);
309
323
  }
324
+
310
325
  if (keyCode === 38 && isPopupOpen && options.length) {
311
- if (hoverIndex === 0) {
312
- // hoverIndex = options.length - 1;
326
+ if (hoverIndex === 0) {// hoverIndex = options.length - 1;
313
327
  } else {
314
328
  hoverIndex -= 1;
315
329
  }
330
+
316
331
  this.setState({
317
332
  hoverIndex
318
333
  });
319
334
  } else if (keyCode === 40 && isPopupOpen && options.length) {
320
- if (hoverIndex === options.length - 1) {
321
- // hoverIndex = 0;
335
+ if (hoverIndex === options.length - 1) {// hoverIndex = 0;
322
336
  } else {
323
337
  if (hoverIndex === options.length - 3) {
324
338
  this.handleGetNextOptions();
325
339
  }
340
+
326
341
  hoverIndex += 1;
327
342
  }
343
+
328
344
  this.setState({
329
345
  hoverIndex
330
346
  });
@@ -333,32 +349,36 @@ export class SelectComponent extends Component {
333
349
  let {
334
350
  id
335
351
  } = option || {};
352
+
336
353
  if (isPopupReady && !getIsEmptyValue(id) && onChange) {
337
354
  onChange(id, optionsNormalize[id]);
338
355
  needCloseOnSelect && this.handlePopupClose(e);
339
356
  }
357
+
340
358
  if (!isPopupReady && isPopupOpenOnEnter) {
341
359
  this.togglePopup(e);
342
360
  }
343
361
  } else if (keyCode === 27) {
344
362
  this.valueInput && this.valueInput.focus({
345
363
  preventScroll: true
346
- });
347
- //this.handlePopupClose(e);
364
+ }); //this.handlePopupClose(e);
348
365
  } else if (keyCode === 9) {
349
366
  let option = options[hoverIndex];
350
367
  let {
351
368
  id
352
369
  } = option || {};
370
+
353
371
  if (isPopupOpen && !getIsEmptyValue(id)) {
354
372
  onChange && onChange(id, optionsNormalize[id]);
355
373
  needCloseOnSelect && this.handlePopupClose(e);
356
374
  }
375
+
357
376
  if (!isPopupOpen && isPopupOpenOnEnter) {
358
377
  this.togglePopup(e);
359
378
  }
360
379
  }
361
380
  }
381
+
362
382
  handleSearchOptions() {
363
383
  let {
364
384
  onSearch
@@ -368,6 +388,7 @@ export class SelectComponent extends Component {
368
388
  } = this.state;
369
389
  searchStr && this.handleFetchOptions(onSearch, searchStr);
370
390
  }
391
+
371
392
  handleSearch(value) {
372
393
  // let { value = '' } = e.target;
373
394
  let {
@@ -390,7 +411,10 @@ export class SelectComponent extends Component {
390
411
  }
391
412
  });
392
413
  }
393
- handleMouseEnter(id /*val, index*/) {
414
+
415
+ handleMouseEnter(id
416
+ /*val, index*/
417
+ ) {
394
418
  let {
395
419
  hoverIndex
396
420
  } = this.state;
@@ -402,21 +426,21 @@ export class SelectComponent extends Component {
402
426
  hoverIndex: newHoverIndex
403
427
  });
404
428
  }
429
+
405
430
  handleFilterSuggestions() {
406
431
  let {
407
432
  needLocalSearch,
408
- excludeOptions = dummyArray
409
- // needSearch
433
+ excludeOptions = dummyArray // needSearch
434
+
410
435
  } = this.props;
411
436
  let {
412
437
  options = dummyArray,
413
438
  searchStr = ''
414
- } = this.state;
415
-
416
- // if (
439
+ } = this.state; // if (
417
440
  // (needSearch && searchStr && searchStr.trim().length) ||
418
441
  // (excludeOptions && excludeOptions.length)
419
442
  // ) {
443
+
420
444
  searchStr = getSearchString(searchStr);
421
445
  let {
422
446
  suggestions,
@@ -428,8 +452,7 @@ export class SelectComponent extends Component {
428
452
  needSearch: needLocalSearch
429
453
  });
430
454
  this.optionsOrder = suggestionIds;
431
- return suggestions;
432
- // }
455
+ return suggestions; // }
433
456
  // return options;
434
457
  }
435
458
 
@@ -438,6 +461,7 @@ export class SelectComponent extends Component {
438
461
  let isScrollReachedBottom = findScrollEnd(ele);
439
462
  isScrollReachedBottom && this.handleGetNextOptions();
440
463
  }
464
+
441
465
  handleFetchOptions(APICall) {
442
466
  let searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
443
467
  // let funcArgs = args.slice(1, args.length);
@@ -447,10 +471,12 @@ export class SelectComponent extends Component {
447
471
  let {
448
472
  _isMounted
449
473
  } = this;
474
+
450
475
  if (!isFetchingOptions && APICall) {
451
476
  this.setState({
452
477
  isFetchingOptions: true
453
478
  });
479
+
454
480
  try {
455
481
  return APICall(searchStr).then(() => {
456
482
  _isMounted && this.setState({
@@ -468,6 +494,7 @@ export class SelectComponent extends Component {
468
494
  }
469
495
  }
470
496
  }
497
+
471
498
  handleGetNextOptions() {
472
499
  let {
473
500
  isNextOptions,
@@ -478,6 +505,7 @@ export class SelectComponent extends Component {
478
505
  } = this.state;
479
506
  isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
480
507
  }
508
+
481
509
  togglePopup(e) {
482
510
  let {
483
511
  togglePopup,
@@ -489,6 +517,7 @@ export class SelectComponent extends Component {
489
517
  !isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}` : null);
490
518
  !isPopupOpen && typeof onFocus === 'function' && onFocus(e);
491
519
  }
520
+
492
521
  handlePopupClose(e) {
493
522
  let {
494
523
  closePopupOnly
@@ -498,15 +527,19 @@ export class SelectComponent extends Component {
498
527
  });
499
528
  closePopupOnly(e);
500
529
  }
530
+
501
531
  suggestionContainerRef(el) {
502
532
  this.suggestionContainer = el;
503
533
  }
534
+
504
535
  suggestionItemRef(el, index, id) {
505
536
  this[`suggestion_${id}`] = el;
506
537
  }
538
+
507
539
  searchInputRef(el) {
508
540
  this.searchInput = el;
509
541
  }
542
+
510
543
  valueInputRef(el) {
511
544
  let {
512
545
  getRef
@@ -514,12 +547,14 @@ export class SelectComponent extends Component {
514
547
  this.valueInput = el;
515
548
  getRef && getRef(el);
516
549
  }
550
+
517
551
  handleSelectFocus() {
518
552
  let {
519
553
  valueInput
520
554
  } = this;
521
555
  valueInput && valueInput.setSelectionRange(valueInput, 0);
522
556
  }
557
+
523
558
  handleClearSearch() {
524
559
  this.handleSearch('');
525
560
  setTimeout(() => {
@@ -528,17 +563,20 @@ export class SelectComponent extends Component {
528
563
  });
529
564
  }, 1);
530
565
  }
566
+
531
567
  handleValueInputChange(e) {
532
568
  let typeString = getKeyValue(e);
533
569
  let {
534
570
  isPopupOpen,
535
571
  autoSelectOnType
536
572
  } = this.props;
573
+
537
574
  if (!isPopupOpen && autoSelectOnType) {
538
575
  this.valueInputTypeString += (typeString || '').trim();
539
576
  this.handleChangeOnType();
540
577
  }
541
578
  }
579
+
542
580
  handleChangeOnType() {
543
581
  let {
544
582
  excludeOptions = dummyArray
@@ -551,11 +589,13 @@ export class SelectComponent extends Component {
551
589
  } = this;
552
590
  let typeString = this.valueInputTypeString;
553
591
  this.valueInputTypeString = '';
592
+
554
593
  let changeValue = () => {
555
594
  let optionDetails = this.autoSelectSuggestions[this.autoSelectIndex];
556
595
  let {
557
596
  id
558
597
  } = optionDetails || {};
598
+
559
599
  if (!getIsEmptyValue(id)) {
560
600
  this.handleChange(id);
561
601
  let hoverIndex = optionsOrder.indexOf(id);
@@ -564,12 +604,14 @@ export class SelectComponent extends Component {
564
604
  });
565
605
  }
566
606
  };
607
+
567
608
  if (typeString && typeString === this.valueInputSearchString) {
568
609
  if (this.autoSelectIndex < this.autoSelectSuggestions.length - 1) {
569
610
  this.autoSelectIndex += 1;
570
611
  } else {
571
612
  this.autoSelectIndex = 0;
572
613
  }
614
+
573
615
  changeValue();
574
616
  } else if (typeString) {
575
617
  this.valueInputSearchString = typeString;
@@ -587,6 +629,7 @@ export class SelectComponent extends Component {
587
629
  changeValue();
588
630
  }
589
631
  }
632
+
590
633
  handleAddNewOption() {
591
634
  let {
592
635
  searchStr
@@ -595,6 +638,7 @@ export class SelectComponent extends Component {
595
638
  onAddNewOption,
596
639
  getCustomEmptyState
597
640
  } = this.props;
641
+
598
642
  if (getCustomEmptyState) {
599
643
  this.setState({
600
644
  searchStr: ''
@@ -602,6 +646,7 @@ export class SelectComponent extends Component {
602
646
  this.handleFetchOptions(onAddNewOption, searchStr);
603
647
  }
604
648
  }
649
+
605
650
  handleExposePopupHandlers() {
606
651
  let {
607
652
  removeClose,
@@ -618,6 +663,7 @@ export class SelectComponent extends Component {
618
663
  };
619
664
  getPopupHandlers && getPopupHandlers(methods);
620
665
  }
666
+
621
667
  handleGetAddNewOptionText() {
622
668
  let {
623
669
  searchStr
@@ -630,6 +676,7 @@ export class SelectComponent extends Component {
630
676
  onAddNewOption: this.handleAddNewOption
631
677
  });
632
678
  }
679
+
633
680
  render() {
634
681
  let {
635
682
  needSearch,
@@ -905,6 +952,7 @@ export class SelectComponent extends Component {
905
952
  }, getChildren())));
906
953
  }) : null);
907
954
  }
955
+
908
956
  }
909
957
  SelectComponent.propTypes = Select_propTypes;
910
958
  SelectComponent.defaultProps = Select_defaultProps;
@@ -913,9 +961,7 @@ let Select = Popup(SelectComponent);
913
961
  Select.defaultProps = SelectComponent.defaultProps;
914
962
  Select.propTypes = Select_propTypes;
915
963
  Select.displayName = 'Select';
916
- export default Select;
917
-
918
- // if (__DOCS__) {
964
+ export default Select; // if (__DOCS__) {
919
965
  // Select.docs = {
920
966
  // componentGroup: 'Form Elements',
921
967
  // folderName: 'Style Guide',
@@ -3,29 +3,29 @@
3
3
  }
4
4
 
5
5
  .small {
6
- max-height: 200px;
6
+ max-height: var(--zd_size200) ;
7
7
  }
8
8
 
9
9
  .medium {
10
- max-height: 350px;
10
+ max-height: var(--zd_size350) ;
11
11
  }
12
12
 
13
13
  .large {
14
- max-height: 400px;
14
+ max-height: var(--zd_size400) ;
15
15
  }
16
16
 
17
17
  .emptyState {
18
- font-size: 14px;
18
+ font-size: var(--zd_font_size14) ;
19
19
  color: var(--zdt_select_emptystate_text);
20
20
  composes: semibold from '../common/common.module.css';
21
21
  }
22
22
 
23
23
  .box_small .emptyState {
24
- padding: 12px 6px;
24
+ padding: var(--zd_size12) var(--zd_size6) ;
25
25
  }
26
26
 
27
27
  .box_medium .emptyState {
28
- padding: 12px 15px;
28
+ padding: var(--zd_size12) var(--zd_size15) ;
29
29
  }
30
30
 
31
31
  .hide {
@@ -37,32 +37,32 @@
37
37
  }
38
38
  /* css:lineheight-validation:ignore */
39
39
  .arrowIcon {
40
- height: 8px;
40
+ height: var(--zd_size8) ;
41
41
  line-height: var(--zd_size8);
42
42
  }
43
43
 
44
44
  .small.search {
45
- padding: 0 5px;
45
+ padding: 0 var(--zd_size5) ;
46
46
  }
47
47
 
48
48
  .medium.search {
49
- padding: 3px 20px 0;
49
+ padding: var(--zd_size3) var(--zd_size20) 0 ;
50
50
  }
51
51
 
52
52
  .title {
53
- margin-bottom: 6px;
53
+ margin-bottom: var(--zd_size6) ;
54
54
  }
55
55
 
56
56
  .groupTitle {
57
- margin: 6px 0;
57
+ margin: var(--zd_size6) 0 ;
58
58
  }
59
59
 
60
60
  .listItemContainer {
61
- padding: 10px 0;
61
+ padding: var(--zd_size10) 0 ;
62
62
  }
63
63
 
64
64
  .responsivelistItemContainer {
65
- padding: 10px 0 0;
65
+ padding: var(--zd_size10) 0 0 ;
66
66
  }
67
67
 
68
68
  .readonly {
@@ -85,33 +85,33 @@
85
85
 
86
86
  .leftIcon {
87
87
  position: absolute;
88
- top: 0;
89
- bottom: 0;
90
- width: 30px;
88
+ top: 0 ;
89
+ bottom: 0 ;
90
+ width: var(--zd_size30) ;
91
91
  }
92
92
 
93
93
  [dir=ltr] .leftIcon {
94
- left: 0;
94
+ left: 0 ;
95
95
  }
96
96
 
97
97
  [dir=rtl] .leftIcon {
98
- right: 0;
98
+ right: 0 ;
99
99
  }
100
100
 
101
101
  [dir=ltr] .iconSelect {
102
- padding-left: 30px;
102
+ padding-left: var(--zd_size30) ;
103
103
  }
104
104
 
105
105
  [dir=rtl] .iconSelect {
106
- padding-right: 30px;
106
+ padding-right: var(--zd_size30) ;
107
107
  }
108
108
 
109
109
  .dropBoxList {
110
- padding: 10px 0;
110
+ padding: var(--zd_size10) 0 ;
111
111
  }
112
112
 
113
113
  .responsivedropBoxList {
114
- padding: 10px 0 0 0;
114
+ padding: var(--zd_size10) 0 0 0 ;
115
115
  }
116
116
 
117
117
  .rotate {
@@ -131,5 +131,5 @@
131
131
  }
132
132
 
133
133
  .loader {
134
- padding: 10px;
134
+ padding: var(--zd_size10) ;
135
135
  }
@@ -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.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'