@zohodesk/components 1.0.0-alpha-250 → 1.0.0-alpha-253

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 (553) hide show
  1. package/README.md +24 -0
  2. package/assets/Appearance/dark/mode/darkMode.module.css +2 -1
  3. package/assets/Appearance/default/mode/defaultMode.module.css +2 -1
  4. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +2 -1
  5. package/es/Accordion/Accordion.js +0 -7
  6. package/es/Accordion/AccordionItem.js +0 -4
  7. package/es/Animation/Animation.js +0 -3
  8. package/es/AppContainer/AppContainer.js +2 -13
  9. package/es/Avatar/Avatar.js +9 -22
  10. package/es/AvatarTeam/AvatarTeam.js +0 -3
  11. package/es/Button/Button.js +0 -4
  12. package/es/Buttongroup/Buttongroup.js +0 -3
  13. package/es/Card/Card.js +7 -22
  14. package/es/Card/props/defaultProps.js +0 -1
  15. package/es/Card/props/propTypes.js +2 -2
  16. package/es/CheckBox/CheckBox.js +0 -5
  17. package/es/DateTime/CalendarView.js +30 -36
  18. package/es/DateTime/DateTime.js +22 -77
  19. package/es/DateTime/DateTime.module.css +51 -5
  20. package/es/DateTime/DateTimePopupFooter.js +2 -4
  21. package/es/DateTime/DateTimePopupHeader.js +23 -16
  22. package/es/DateTime/DateWidget.js +38 -103
  23. package/es/DateTime/DaysRow.js +4 -5
  24. package/es/DateTime/Time.js +2 -10
  25. package/es/DateTime/YearView.js +16 -32
  26. package/es/DateTime/YearView.module.css +19 -1
  27. package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
  28. package/es/DateTime/__tests__/DateTime.spec.js +0 -1
  29. package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
  30. package/es/DateTime/common.js +0 -3
  31. package/es/DateTime/constants.js +0 -1
  32. package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
  33. package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
  34. package/es/DateTime/dateFormatUtils/index.js +2 -28
  35. package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
  36. package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
  37. package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
  38. package/es/DateTime/objectUtils.js +20 -14
  39. package/es/DateTime/props/propTypes.js +4 -2
  40. package/es/DateTime/typeChecker.js +0 -3
  41. package/es/DateTime/validator.js +6 -58
  42. package/es/DropBox/DropBox.js +5 -28
  43. package/es/DropDown/DropDown.js +1 -9
  44. package/es/DropDown/DropDownHeading.js +5 -5
  45. package/es/DropDown/DropDownItem.js +0 -6
  46. package/es/DropDown/DropDownSearch.js +0 -4
  47. package/es/DropDown/DropDownSeparator.js +0 -1
  48. package/es/DropDown/__tests__/DropDown.spec.js +2 -1
  49. package/es/DropDown/props/propTypes.js +2 -1
  50. package/es/Heading/Heading.js +0 -2
  51. package/es/Heading/Heading.module.css +3 -3
  52. package/es/Label/Label.js +4 -4
  53. package/es/Layout/Box.js +0 -13
  54. package/es/Layout/Container.js +1 -12
  55. package/es/Layout/props/propTypes.js +3 -3
  56. package/es/ListItem/ListContainer.js +4 -10
  57. package/es/ListItem/ListItem.js +0 -9
  58. package/es/ListItem/ListItemWithAvatar.js +1 -9
  59. package/es/ListItem/ListItemWithCheckBox.js +0 -7
  60. package/es/ListItem/ListItemWithIcon.js +0 -8
  61. package/es/ListItem/ListItemWithRadio.js +0 -7
  62. package/es/Modal/Modal.js +8 -28
  63. package/es/MultiSelect/AdvancedGroupMultiSelect.js +11 -90
  64. package/es/MultiSelect/AdvancedMultiSelect.js +21 -39
  65. package/es/MultiSelect/EmptyState.js +0 -2
  66. package/es/MultiSelect/MultiSelect.js +53 -114
  67. package/es/MultiSelect/MultiSelectHeader.js +0 -3
  68. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -17
  69. package/es/MultiSelect/SelectedOptions.js +3 -6
  70. package/es/MultiSelect/Suggestions.js +5 -8
  71. package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
  72. package/es/MultiSelect/props/defaultProps.js +8 -4
  73. package/es/MultiSelect/props/propTypes.js +8 -6
  74. package/es/PopOver/PopOver.js +0 -18
  75. package/es/PopOver/__tests__/PopOver.spec.js +1 -2
  76. package/es/Popup/Popup.js +24 -77
  77. package/es/Popup/__tests__/Popup.spec.js +5 -17
  78. package/es/Popup/viewPort.js +4 -16
  79. package/es/Provider/IdProvider.js +2 -9
  80. package/es/Provider/LibraryContext.js +4 -6
  81. package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
  82. package/es/Provider/ZindexProvider.js +2 -9
  83. package/es/Radio/Radio.js +0 -4
  84. package/es/Responsive/CustomResponsive.js +25 -31
  85. package/es/Responsive/RefWrapper.js +7 -6
  86. package/es/Responsive/ResizeComponent.js +25 -35
  87. package/es/Responsive/ResizeObserver.js +6 -26
  88. package/es/Responsive/Responsive.js +20 -34
  89. package/es/Responsive/sizeObservers.js +7 -28
  90. package/es/Responsive/utils/index.js +5 -7
  91. package/es/Responsive/utils/shallowCompare.js +2 -7
  92. package/es/Responsive/windowResizeObserver.js +0 -7
  93. package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
  94. package/es/Ribbon/Ribbon.js +0 -3
  95. package/es/RippleEffect/RippleEffect.js +0 -1
  96. package/es/Select/GroupSelect.js +28 -67
  97. package/es/Select/Select.js +54 -101
  98. package/es/Select/Select.module.css +3 -0
  99. package/es/Select/SelectWithAvatar.js +15 -24
  100. package/es/Select/SelectWithIcon.js +75 -54
  101. package/es/Select/__tests__/Select.spec.js +8 -6
  102. package/es/Select/props/defaultProps.js +8 -4
  103. package/es/Select/props/propTypes.js +8 -5
  104. package/es/Stencils/Stencils.js +0 -3
  105. package/es/Switch/Switch.js +0 -5
  106. package/es/Tab/Tab.js +1 -4
  107. package/es/Tab/TabContent.js +0 -1
  108. package/es/Tab/TabContentWrapper.js +0 -2
  109. package/es/Tab/TabWrapper.js +2 -5
  110. package/es/Tab/Tabs.js +16 -58
  111. package/es/Tab/Tabs.module.css +1 -1
  112. package/es/Tab/__tests__/Tab.spec.js +2 -1
  113. package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
  114. package/es/Tag/Tag.js +1 -6
  115. package/es/TextBox/TextBox.js +0 -15
  116. package/es/TextBox/__tests__/TextBox.spec.js +4 -1
  117. package/es/TextBoxIcon/TextBoxIcon.js +0 -7
  118. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
  119. package/es/Textarea/Textarea.js +0 -12
  120. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  121. package/es/Tooltip/Tooltip.js +15 -59
  122. package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
  123. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +0 -3
  124. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +2 -7
  125. package/es/deprecated/PortalLayer/PortalLayer.js +17 -25
  126. package/es/index.js +108 -106
  127. package/es/semantic/Button/Button.js +0 -3
  128. package/es/utils/Common.js +23 -47
  129. package/es/utils/ContextOptimizer.js +5 -4
  130. package/es/utils/__tests__/debounce.spec.js +2 -2
  131. package/es/utils/constructFullName.js +0 -2
  132. package/es/utils/datetime/common.js +5 -16
  133. package/es/utils/debounce.js +1 -5
  134. package/es/utils/dropDownUtils.js +11 -67
  135. package/es/utils/getInitial.js +0 -4
  136. package/es/utils/shallowEqual.js +0 -6
  137. package/lib/Accordion/Accordion.js +10 -39
  138. package/lib/Accordion/AccordionItem.js +12 -38
  139. package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
  140. package/lib/Accordion/index.js +0 -3
  141. package/lib/Accordion/props/propTypes.js +0 -3
  142. package/lib/Animation/Animation.js +12 -37
  143. package/lib/Animation/__tests__/Animation.spec.js +7 -11
  144. package/lib/Animation/props/propTypes.js +0 -3
  145. package/lib/AppContainer/AppContainer.js +14 -52
  146. package/lib/AppContainer/props/propTypes.js +0 -3
  147. package/lib/Avatar/Avatar.js +29 -72
  148. package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
  149. package/lib/Avatar/props/propTypes.js +0 -3
  150. package/lib/AvatarTeam/AvatarTeam.js +20 -47
  151. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
  152. package/lib/AvatarTeam/props/propTypes.js +0 -3
  153. package/lib/Button/Button.js +19 -44
  154. package/lib/Button/__tests__/Button.spec.js +0 -40
  155. package/lib/Button/props/defaultProps.js +0 -2
  156. package/lib/Button/props/propTypes.js +0 -3
  157. package/lib/Buttongroup/Buttongroup.js +5 -31
  158. package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
  159. package/lib/Buttongroup/props/propTypes.js +0 -3
  160. package/lib/Card/Card.js +41 -102
  161. package/lib/Card/__tests__/Card.spec.js +1 -10
  162. package/lib/Card/index.js +0 -4
  163. package/lib/Card/props/defaultProps.js +0 -1
  164. package/lib/Card/props/propTypes.js +2 -5
  165. package/lib/CheckBox/CheckBox.js +40 -69
  166. package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
  167. package/lib/CheckBox/props/propTypes.js +0 -3
  168. package/lib/DateTime/CalendarView.js +44 -81
  169. package/lib/DateTime/DateTime.js +164 -245
  170. package/lib/DateTime/DateTime.module.css +51 -5
  171. package/lib/DateTime/DateTimePopupFooter.js +5 -30
  172. package/lib/DateTime/DateTimePopupHeader.js +33 -52
  173. package/lib/DateTime/DateWidget.js +246 -350
  174. package/lib/DateTime/DaysRow.js +4 -27
  175. package/lib/DateTime/Time.js +29 -72
  176. package/lib/DateTime/YearView.js +37 -79
  177. package/lib/DateTime/YearView.module.css +19 -1
  178. package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
  179. package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
  180. package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
  181. package/lib/DateTime/common.js +0 -6
  182. package/lib/DateTime/constants.js +0 -1
  183. package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
  184. package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
  185. package/lib/DateTime/dateFormatUtils/index.js +12 -61
  186. package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
  187. package/lib/DateTime/dateFormatUtils/timeChange.js +20 -52
  188. package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
  189. package/lib/DateTime/index.js +0 -2
  190. package/lib/DateTime/objectUtils.js +20 -24
  191. package/lib/DateTime/props/propTypes.js +4 -5
  192. package/lib/DateTime/typeChecker.js +0 -4
  193. package/lib/DateTime/validator.js +6 -69
  194. package/lib/DropBox/DropBox.js +58 -119
  195. package/lib/DropBox/__tests__/DropBox.spec.js +2 -6
  196. package/lib/DropBox/props/propTypes.js +0 -3
  197. package/lib/DropDown/DropDown.js +3 -53
  198. package/lib/DropDown/DropDownHeading.js +13 -35
  199. package/lib/DropDown/DropDownItem.js +17 -41
  200. package/lib/DropDown/DropDownSearch.js +15 -41
  201. package/lib/DropDown/DropDownSeparator.js +1 -23
  202. package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
  203. package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
  204. package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
  205. package/lib/DropDown/props/propTypes.js +2 -6
  206. package/lib/Heading/Heading.js +8 -35
  207. package/lib/Heading/Heading.module.css +3 -3
  208. package/lib/Heading/props/propTypes.js +0 -3
  209. package/lib/Label/Label.js +14 -37
  210. package/lib/Label/__tests__/Label.spec.js +1 -14
  211. package/lib/Label/props/propTypes.js +0 -3
  212. package/lib/Layout/Box.js +11 -31
  213. package/lib/Layout/Container.js +10 -29
  214. package/lib/Layout/__tests__/Box.spec.js +49 -65
  215. package/lib/Layout/__tests__/Container.spec.js +50 -67
  216. package/lib/Layout/index.js +0 -4
  217. package/lib/Layout/props/propTypes.js +3 -6
  218. package/lib/Layout/utils.js +0 -10
  219. package/lib/ListItem/ListContainer.js +28 -47
  220. package/lib/ListItem/ListItem.js +37 -66
  221. package/lib/ListItem/ListItemWithAvatar.js +41 -72
  222. package/lib/ListItem/ListItemWithCheckBox.js +32 -61
  223. package/lib/ListItem/ListItemWithIcon.js +36 -65
  224. package/lib/ListItem/ListItemWithRadio.js +33 -62
  225. package/lib/ListItem/props/propTypes.js +0 -5
  226. package/lib/Modal/Modal.js +4 -44
  227. package/lib/Modal/props/propTypes.js +0 -3
  228. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +157 -289
  229. package/lib/MultiSelect/AdvancedMultiSelect.js +130 -203
  230. package/lib/MultiSelect/EmptyState.js +21 -44
  231. package/lib/MultiSelect/MultiSelect.js +216 -326
  232. package/lib/MultiSelect/MultiSelectHeader.js +5 -29
  233. package/lib/MultiSelect/MultiSelectWithAvatar.js +61 -98
  234. package/lib/MultiSelect/SelectedOptions.js +15 -44
  235. package/lib/MultiSelect/Suggestions.js +28 -60
  236. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
  237. package/lib/MultiSelect/props/defaultProps.js +8 -6
  238. package/lib/MultiSelect/props/propTypes.js +8 -9
  239. package/lib/PopOver/PopOver.js +44 -94
  240. package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
  241. package/lib/PopOver/props/propTypes.js +0 -3
  242. package/lib/Popup/Popup.js +77 -156
  243. package/lib/Popup/__tests__/Popup.spec.js +5 -42
  244. package/lib/Popup/viewPort.js +14 -28
  245. package/lib/Provider/AvatarSize.js +0 -4
  246. package/lib/Provider/Config.js +0 -2
  247. package/lib/Provider/CssProvider.js +0 -4
  248. package/lib/Provider/IdProvider.js +3 -17
  249. package/lib/Provider/LibraryContext.js +10 -32
  250. package/lib/Provider/LibraryContextInit.js +0 -4
  251. package/lib/Provider/NumberGenerator/NumberGenerator.js +14 -43
  252. package/lib/Provider/ZindexProvider.js +3 -15
  253. package/lib/Radio/Radio.js +33 -60
  254. package/lib/Radio/__tests__/Radiospec.js +5 -9
  255. package/lib/Radio/props/propTypes.js +0 -3
  256. package/lib/Responsive/CustomResponsive.js +30 -70
  257. package/lib/Responsive/RefWrapper.js +7 -15
  258. package/lib/Responsive/ResizeComponent.js +27 -58
  259. package/lib/Responsive/ResizeObserver.js +6 -23
  260. package/lib/Responsive/Responsive.js +24 -76
  261. package/lib/Responsive/index.js +0 -2
  262. package/lib/Responsive/props/propTypes.js +0 -3
  263. package/lib/Responsive/sizeObservers.js +13 -51
  264. package/lib/Responsive/utils/index.js +3 -11
  265. package/lib/Responsive/utils/shallowCompare.js +2 -11
  266. package/lib/Responsive/windowResizeObserver.js +0 -8
  267. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +14 -44
  268. package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
  269. package/lib/Ribbon/Ribbon.js +7 -31
  270. package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
  271. package/lib/Ribbon/props/propTypes.js +0 -3
  272. package/lib/RippleEffect/RippleEffect.js +7 -18
  273. package/lib/RippleEffect/props/propTypes.js +0 -3
  274. package/lib/Select/GroupSelect.js +138 -230
  275. package/lib/Select/Select.js +220 -301
  276. package/lib/Select/Select.module.css +3 -0
  277. package/lib/Select/SelectWithAvatar.js +61 -104
  278. package/lib/Select/SelectWithIcon.js +151 -144
  279. package/lib/Select/__tests__/Select.spec.js +89 -131
  280. package/lib/Select/props/defaultProps.js +7 -8
  281. package/lib/Select/props/propTypes.js +8 -8
  282. package/lib/Stencils/Stencils.js +4 -28
  283. package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
  284. package/lib/Stencils/props/propTypes.js +0 -3
  285. package/lib/Switch/Switch.js +27 -55
  286. package/lib/Switch/props/propTypes.js +0 -3
  287. package/lib/Tab/Tab.js +23 -39
  288. package/lib/Tab/TabContent.js +4 -11
  289. package/lib/Tab/TabContentWrapper.js +5 -12
  290. package/lib/Tab/TabWrapper.js +16 -34
  291. package/lib/Tab/Tabs.js +94 -170
  292. package/lib/Tab/Tabs.module.css +1 -1
  293. package/lib/Tab/__tests__/Tab.spec.js +63 -74
  294. package/lib/Tab/__tests__/TabContent.spec.js +6 -10
  295. package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
  296. package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
  297. package/lib/Tab/__tests__/Tabs.spec.js +39 -53
  298. package/lib/Tab/index.js +0 -6
  299. package/lib/Tab/props/propTypes.js +0 -3
  300. package/lib/Tag/Tag.js +37 -70
  301. package/lib/Tag/__tests__/Tag.spec.js +8 -14
  302. package/lib/Tag/props/propTypes.js +0 -3
  303. package/lib/TextBox/TextBox.js +52 -83
  304. package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
  305. package/lib/TextBox/props/propTypes.js +0 -5
  306. package/lib/TextBoxIcon/TextBoxIcon.js +48 -80
  307. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
  308. package/lib/TextBoxIcon/props/propTypes.js +0 -3
  309. package/lib/Textarea/Textarea.js +22 -52
  310. package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
  311. package/lib/Textarea/props/propTypes.js +0 -3
  312. package/lib/Tooltip/Tooltip.js +29 -93
  313. package/lib/Tooltip/__tests__/Tooltip.spec.js +0 -23
  314. package/lib/Tooltip/props/propTypes.js +0 -3
  315. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +11 -39
  316. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
  317. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +18 -51
  318. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
  319. package/lib/css.js +0 -39
  320. package/lib/deprecated/PortalLayer/PortalLayer.js +17 -45
  321. package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
  322. package/lib/index.js +76 -1075
  323. package/lib/semantic/Button/Button.js +17 -41
  324. package/lib/semantic/Button/props/propTypes.js +0 -3
  325. package/lib/utils/Common.js +29 -95
  326. package/lib/utils/ContextOptimizer.js +10 -16
  327. package/lib/utils/__tests__/constructFullName.spec.js +0 -1
  328. package/lib/utils/__tests__/debounce.spec.js +2 -3
  329. package/lib/utils/__tests__/getInitial.spec.js +0 -1
  330. package/lib/utils/constructFullName.js +2 -11
  331. package/lib/utils/datetime/common.js +5 -32
  332. package/lib/utils/debounce.js +1 -6
  333. package/lib/utils/dropDownUtils.js +54 -171
  334. package/lib/utils/dummyFunction.js +0 -2
  335. package/lib/utils/getHTMLFontSize.js +0 -1
  336. package/lib/utils/getInitial.js +0 -6
  337. package/lib/utils/scrollTo.js +0 -2
  338. package/lib/utils/shallowEqual.js +0 -8
  339. package/package.json +10 -5
  340. package/es/Accordion/docs/Accordion__Demo.docs.js +0 -80
  341. package/es/Animation/docs/Animation__default.docs.js +0 -34
  342. package/es/Animation/docs/Animation__fadeIn.docs.js +0 -34
  343. package/es/Animation/docs/Animation__scaleIn.docs.js +0 -34
  344. package/es/Animation/docs/Animation__skewIn.docs.js +0 -34
  345. package/es/Animation/docs/Animation__slideDown.docs.js +0 -34
  346. package/es/Animation/docs/Animation__slideLeft.docs.js +0 -34
  347. package/es/Animation/docs/Animation__zoomIn.docs.js +0 -34
  348. package/es/AppContainer/docs/AppContainer__default.docs.js +0 -20
  349. package/es/Avatar/docs/Avatar__custom.docs.js +0 -29
  350. package/es/Avatar/docs/Avatar__default.docs.js +0 -29
  351. package/es/Avatar/docs/Avatar__palette.docs.js +0 -49
  352. package/es/Avatar/docs/Avatar__text.docs.js +0 -28
  353. package/es/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -73
  354. package/es/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -31
  355. package/es/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -50
  356. package/es/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -49
  357. package/es/Button/docs/Button__custom.docs.js +0 -771
  358. package/es/Button/docs/Button__default.docs.js +0 -536
  359. package/es/Buttongroup/docs/Buttongroup__custom.docs.js +0 -37
  360. package/es/Buttongroup/docs/Buttongroup__footer.docs.js +0 -33
  361. package/es/Buttongroup/docs/Buttongroup__header.docs.js +0 -42
  362. package/es/Card/docs/Card__Custom.docs.js +0 -34
  363. package/es/Card/docs/Card__Default.docs.js +0 -37
  364. package/es/Card/docs/Card__Scroll.docs.js +0 -59
  365. package/es/CheckBox/docs/CheckBox__custom.docs.js +0 -293
  366. package/es/CheckBox/docs/CheckBox__default.docs.js +0 -219
  367. package/es/DateTime/docs/DateTime__default.docs.js +0 -91
  368. package/es/DateTime/docs/DateWidget__default.docs.js +0 -183
  369. package/es/DateTime/docs/timezonedata.json +0 -1
  370. package/es/DropBox/docs/DropBox__custom.docs.js +0 -66
  371. package/es/DropBox/docs/DropBox__customOrder.docs.js +0 -92
  372. package/es/DropBox/docs/DropBox__fixedPosition.docs.js +0 -91
  373. package/es/DropBox/docs/DropBox__position.docs.js +0 -87
  374. package/es/DropBox/docs/DropBox__size.docs.js +0 -61
  375. package/es/DropDown/docs/DropDownHeading__custom.docs.js +0 -23
  376. package/es/DropDown/docs/DropDownHeading__default.docs.js +0 -21
  377. package/es/Heading/docs/Heading__default.docs.js +0 -21
  378. package/es/Label/docs/Label__clipped.docs.js +0 -27
  379. package/es/Label/docs/Label__custom.docs.js +0 -30
  380. package/es/Label/docs/Label__palette.docs.js +0 -42
  381. package/es/Label/docs/Label__size.docs.js +0 -29
  382. package/es/Label/docs/Label__type.docs.js +0 -37
  383. package/es/Layout/docs/Layout__Hidden.docs.js +0 -77
  384. package/es/Layout/docs/Layout__default.docs.js +0 -49
  385. package/es/Layout/docs/Layout__four_Column.docs.js +0 -79
  386. package/es/Layout/docs/Layout__three_Column.docs.js +0 -76
  387. package/es/Layout/docs/Layout__two_Column.docs.js +0 -69
  388. package/es/LightNightMode/Colors.json +0 -497
  389. package/es/LightNightMode/docs/AlternativeColors.docs.js +0 -94
  390. package/es/ListItem/docs/ListItemWithAvatar__custom.docs.js +0 -155
  391. package/es/ListItem/docs/ListItemWithAvatar__default.docs.js +0 -112
  392. package/es/ListItem/docs/ListItemWithCheckBox__custom.docs.js +0 -91
  393. package/es/ListItem/docs/ListItemWithCheckBox__default.docs.js +0 -65
  394. package/es/ListItem/docs/ListItemWithIcon__custom.docs.js +0 -68
  395. package/es/ListItem/docs/ListItemWithIcon__default.docs.js +0 -62
  396. package/es/ListItem/docs/ListItemWithRadio__custom.docs.js +0 -91
  397. package/es/ListItem/docs/ListItemWithRadio__default.docs.js +0 -65
  398. package/es/ListItem/docs/ListItem__custom.docs.js +0 -114
  399. package/es/ListItem/docs/ListItem__default.docs.js +0 -82
  400. package/es/Modal/__docs__/Modal__default.docs.js +0 -46
  401. package/es/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +0 -125
  402. package/es/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +0 -114
  403. package/es/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +0 -141
  404. package/es/MultiSelect/docs/MultiSelect__default.docs.js +0 -161
  405. package/es/PopOver/docs/PopOver__default.docs.js +0 -32
  406. package/es/Provider/docs/Provider_Id__Class.docs.js +0 -29
  407. package/es/Provider/docs/Provider_Id__Function.docs.js +0 -18
  408. package/es/Provider/docs/Provider_Zindex__Class.docs.js +0 -32
  409. package/es/Provider/docs/Provider_Zindex__Function.docs.js +0 -23
  410. package/es/Provider.js +0 -95
  411. package/es/Radio/docs/Radio__custom.docs.js +0 -245
  412. package/es/Radio/docs/Radio__default.docs.js +0 -169
  413. package/es/Responsive/docs/Responsive__Custom.docs.js +0 -206
  414. package/es/Responsive/docs/Responsive__default.docs.js +0 -97
  415. package/es/Responsive/docs/style.module.css +0 -56
  416. package/es/Ribbon/docs/Ribbon__custom.docs.js +0 -386
  417. package/es/Ribbon/docs/Ribbon__default.docs.js +0 -342
  418. package/es/RippleEffect/docs/RippleEffect__default.docs.js +0 -435
  419. package/es/Select/docs/GroupSelect__default.docs.js +0 -149
  420. package/es/Select/docs/SelectWithAvatar__default.docs.js +0 -97
  421. package/es/Select/docs/SelectWithIcon__default.docs.js +0 -138
  422. package/es/Select/docs/Select__default.docs.js +0 -288
  423. package/es/Stencils/docs/Stencils__custom.docs.js +0 -45
  424. package/es/Stencils/docs/Stencils__default.docs.js +0 -50
  425. package/es/Switch/docs/Switch__custom.docs.js +0 -153
  426. package/es/Switch/docs/Switch__default.docs.js +0 -107
  427. package/es/Tab/docs/Tab__default.docs.js +0 -258
  428. package/es/Tab/docs/tabdocs.module.css +0 -29
  429. package/es/Tag/docs/Tag__custom.docs.js +0 -368
  430. package/es/Tag/docs/Tag__default.docs.js +0 -323
  431. package/es/TextBox/docs/TextBox__custom.docs.js +0 -43
  432. package/es/TextBox/docs/TextBox__default.docs.js +0 -40
  433. package/es/TextBox/docs/TextBox__size.docs.js +0 -38
  434. package/es/TextBox/docs/TextBox__variant.docs.js +0 -38
  435. package/es/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -89
  436. package/es/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -61
  437. package/es/Textarea/docs/Textarea__animated.docs.js +0 -41
  438. package/es/Textarea/docs/Textarea__custom.docs.js +0 -82
  439. package/es/Textarea/docs/Textarea__default.docs.js +0 -76
  440. package/es/Textarea/docs/Textarea__disabled.docs.js +0 -29
  441. package/es/Tooltip/docs/Tooltip__default.docs.js +0 -371
  442. package/es/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +0 -97
  443. package/es/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +0 -150
  444. package/es/common/docStyle.module.css +0 -766
  445. package/es/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +0 -72
  446. package/es/semantic/Button/docs/Button__default.docs.js +0 -20
  447. package/lib/Accordion/docs/Accordion__Demo.docs.js +0 -126
  448. package/lib/Animation/docs/Animation__default.docs.js +0 -85
  449. package/lib/Animation/docs/Animation__fadeIn.docs.js +0 -85
  450. package/lib/Animation/docs/Animation__scaleIn.docs.js +0 -85
  451. package/lib/Animation/docs/Animation__skewIn.docs.js +0 -85
  452. package/lib/Animation/docs/Animation__slideDown.docs.js +0 -85
  453. package/lib/Animation/docs/Animation__slideLeft.docs.js +0 -85
  454. package/lib/Animation/docs/Animation__zoomIn.docs.js +0 -85
  455. package/lib/AppContainer/docs/AppContainer__default.docs.js +0 -70
  456. package/lib/Avatar/docs/Avatar__custom.docs.js +0 -87
  457. package/lib/Avatar/docs/Avatar__default.docs.js +0 -83
  458. package/lib/Avatar/docs/Avatar__palette.docs.js +0 -107
  459. package/lib/Avatar/docs/Avatar__text.docs.js +0 -86
  460. package/lib/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -124
  461. package/lib/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -82
  462. package/lib/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -101
  463. package/lib/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -100
  464. package/lib/Button/docs/Button__custom.docs.js +0 -826
  465. package/lib/Button/docs/Button__default.docs.js +0 -590
  466. package/lib/Buttongroup/docs/Buttongroup__custom.docs.js +0 -89
  467. package/lib/Buttongroup/docs/Buttongroup__footer.docs.js +0 -85
  468. package/lib/Buttongroup/docs/Buttongroup__header.docs.js +0 -98
  469. package/lib/Card/docs/Card__Custom.docs.js +0 -90
  470. package/lib/Card/docs/Card__Default.docs.js +0 -92
  471. package/lib/Card/docs/Card__Scroll.docs.js +0 -114
  472. package/lib/CheckBox/docs/CheckBox__custom.docs.js +0 -348
  473. package/lib/CheckBox/docs/CheckBox__default.docs.js +0 -273
  474. package/lib/DateTime/docs/DateTime__default.docs.js +0 -142
  475. package/lib/DateTime/docs/DateWidget__default.docs.js +0 -240
  476. package/lib/DateTime/docs/timezonedata.json +0 -1
  477. package/lib/DropBox/docs/DropBox__custom.docs.js +0 -122
  478. package/lib/DropBox/docs/DropBox__customOrder.docs.js +0 -141
  479. package/lib/DropBox/docs/DropBox__fixedPosition.docs.js +0 -140
  480. package/lib/DropBox/docs/DropBox__position.docs.js +0 -142
  481. package/lib/DropBox/docs/DropBox__size.docs.js +0 -116
  482. package/lib/DropDown/docs/DropDownHeading__custom.docs.js +0 -73
  483. package/lib/DropDown/docs/DropDownHeading__default.docs.js +0 -70
  484. package/lib/Heading/docs/Heading__default.docs.js +0 -74
  485. package/lib/Label/docs/Label__clipped.docs.js +0 -81
  486. package/lib/Label/docs/Label__custom.docs.js +0 -85
  487. package/lib/Label/docs/Label__palette.docs.js +0 -96
  488. package/lib/Label/docs/Label__size.docs.js +0 -83
  489. package/lib/Label/docs/Label__type.docs.js +0 -91
  490. package/lib/Layout/docs/Layout__Hidden.docs.js +0 -127
  491. package/lib/Layout/docs/Layout__default.docs.js +0 -98
  492. package/lib/Layout/docs/Layout__four_Column.docs.js +0 -129
  493. package/lib/Layout/docs/Layout__three_Column.docs.js +0 -126
  494. package/lib/Layout/docs/Layout__two_Column.docs.js +0 -119
  495. package/lib/LightNightMode/Colors.json +0 -497
  496. package/lib/LightNightMode/docs/AlternativeColors.docs.js +0 -153
  497. package/lib/ListItem/docs/ListItemWithAvatar__custom.docs.js +0 -206
  498. package/lib/ListItem/docs/ListItemWithAvatar__default.docs.js +0 -162
  499. package/lib/ListItem/docs/ListItemWithCheckBox__custom.docs.js +0 -142
  500. package/lib/ListItem/docs/ListItemWithCheckBox__default.docs.js +0 -115
  501. package/lib/ListItem/docs/ListItemWithIcon__custom.docs.js +0 -119
  502. package/lib/ListItem/docs/ListItemWithIcon__default.docs.js +0 -112
  503. package/lib/ListItem/docs/ListItemWithRadio__custom.docs.js +0 -142
  504. package/lib/ListItem/docs/ListItemWithRadio__default.docs.js +0 -115
  505. package/lib/ListItem/docs/ListItem__custom.docs.js +0 -164
  506. package/lib/ListItem/docs/ListItem__default.docs.js +0 -131
  507. package/lib/Modal/__docs__/Modal__default.docs.js +0 -88
  508. package/lib/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +0 -177
  509. package/lib/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +0 -165
  510. package/lib/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +0 -191
  511. package/lib/MultiSelect/docs/MultiSelect__default.docs.js +0 -214
  512. package/lib/PopOver/docs/PopOver__default.docs.js +0 -86
  513. package/lib/Provider/docs/Provider_Id__Class.docs.js +0 -77
  514. package/lib/Provider/docs/Provider_Id__Function.docs.js +0 -29
  515. package/lib/Provider/docs/Provider_Zindex__Class.docs.js +0 -80
  516. package/lib/Provider/docs/Provider_Zindex__Function.docs.js +0 -34
  517. package/lib/Provider.js +0 -175
  518. package/lib/Radio/docs/Radio__custom.docs.js +0 -299
  519. package/lib/Radio/docs/Radio__default.docs.js +0 -222
  520. package/lib/Responsive/docs/Responsive__Custom.docs.js +0 -272
  521. package/lib/Responsive/docs/Responsive__default.docs.js +0 -142
  522. package/lib/Responsive/docs/style.module.css +0 -56
  523. package/lib/Ribbon/docs/Ribbon__custom.docs.js +0 -437
  524. package/lib/Ribbon/docs/Ribbon__default.docs.js +0 -392
  525. package/lib/RippleEffect/docs/RippleEffect__default.docs.js +0 -484
  526. package/lib/Select/docs/GroupSelect__default.docs.js +0 -199
  527. package/lib/Select/docs/SelectWithAvatar__default.docs.js +0 -152
  528. package/lib/Select/docs/SelectWithIcon__default.docs.js +0 -190
  529. package/lib/Select/docs/Select__default.docs.js +0 -340
  530. package/lib/Stencils/docs/Stencils__custom.docs.js +0 -96
  531. package/lib/Stencils/docs/Stencils__default.docs.js +0 -101
  532. package/lib/Switch/docs/Switch__custom.docs.js +0 -203
  533. package/lib/Switch/docs/Switch__default.docs.js +0 -156
  534. package/lib/Tab/docs/Tab__default.docs.js +0 -308
  535. package/lib/Tab/docs/tabdocs.module.css +0 -29
  536. package/lib/Tag/docs/Tag__custom.docs.js +0 -423
  537. package/lib/Tag/docs/Tag__default.docs.js +0 -377
  538. package/lib/TextBox/docs/TextBox__custom.docs.js +0 -98
  539. package/lib/TextBox/docs/TextBox__default.docs.js +0 -95
  540. package/lib/TextBox/docs/TextBox__size.docs.js +0 -93
  541. package/lib/TextBox/docs/TextBox__variant.docs.js +0 -93
  542. package/lib/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -145
  543. package/lib/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -117
  544. package/lib/Textarea/docs/Textarea__animated.docs.js +0 -95
  545. package/lib/Textarea/docs/Textarea__custom.docs.js +0 -137
  546. package/lib/Textarea/docs/Textarea__default.docs.js +0 -130
  547. package/lib/Textarea/docs/Textarea__disabled.docs.js +0 -83
  548. package/lib/Tooltip/docs/Tooltip__default.docs.js +0 -430
  549. package/lib/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +0 -150
  550. package/lib/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +0 -206
  551. package/lib/common/docStyle.module.css +0 -766
  552. package/lib/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +0 -145
  553. package/lib/semantic/Button/docs/Button__default.docs.js +0 -66
@@ -3,7 +3,6 @@ import React from 'react';
3
3
  import { SelectWithAvatar_defaultProps } from './props/defaultProps';
4
4
  import { SelectWithAvatar_propTypes } from './props/propTypes';
5
5
  /**** Components ****/
6
-
7
6
  import { SelectComponent } from './Select';
8
7
  import Popup from '../Popup/Popup';
9
8
  import Tag from '../Tag/Tag';
@@ -17,11 +16,11 @@ import DropDownHeading from '../DropDown/DropDownHeading';
17
16
  import { getUniqueId } from '../Provider/IdProvider';
18
17
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
19
18
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
20
- /**** CSS ****/
19
+ import Loader from '@zohodesk/svg/lib/Loader/Loader';
21
20
 
21
+ /**** CSS ****/
22
22
  import style from '../MultiSelect/MultiSelect.module.css';
23
23
  import selectStyle from './Select.module.css';
24
-
25
24
  class SelectWithAvatarComponent extends SelectComponent {
26
25
  constructor(props) {
27
26
  super(props);
@@ -33,7 +32,6 @@ class SelectWithAvatarComponent extends SelectComponent {
33
32
  this.handleRemoveOption = this.handleRemoveOption.bind(this);
34
33
  this.getNextAriaId = getUniqueId(this);
35
34
  }
36
-
37
35
  handleFormatOptions(props) {
38
36
  let {
39
37
  options,
@@ -49,18 +47,15 @@ class SelectWithAvatarComponent extends SelectComponent {
49
47
  optionType: 'avatar'
50
48
  });
51
49
  }
52
-
53
50
  handleActive(e) {
54
51
  let {
55
52
  isActive
56
53
  } = this.state;
57
-
58
54
  if (!isActive) {
59
55
  this.setState({
60
56
  isActive: true
61
57
  });
62
58
  }
63
-
64
59
  let {
65
60
  target
66
61
  } = e || {};
@@ -70,19 +65,16 @@ class SelectWithAvatarComponent extends SelectComponent {
70
65
  } = this.props;
71
66
  onFocus && onFocus(this.state.searchStr);
72
67
  }
73
-
74
68
  handleInactive() {
75
69
  let {
76
70
  isActive
77
71
  } = this.state;
78
-
79
72
  if (isActive) {
80
73
  this.setState({
81
74
  isActive: false
82
75
  });
83
76
  }
84
77
  }
85
-
86
78
  handleSearchChange(e) {
87
79
  let {
88
80
  isPopupOpen
@@ -90,7 +82,6 @@ class SelectWithAvatarComponent extends SelectComponent {
90
82
  !isPopupOpen && this.togglePopup(e);
91
83
  this.handleSearch(e);
92
84
  }
93
-
94
85
  handleRemoveOption(e) {
95
86
  let {
96
87
  keyCode
@@ -101,14 +92,12 @@ class SelectWithAvatarComponent extends SelectComponent {
101
92
  let {
102
93
  isDefaultSelectValue
103
94
  } = this.props;
104
-
105
95
  if (keyCode === 8 && searchStr.length === 0 && !isDefaultSelectValue) {
106
96
  this.handleChange('');
107
97
  } else {
108
98
  this.handleKeyDown(e);
109
99
  }
110
100
  }
111
-
112
101
  responsiveFunc(_ref) {
113
102
  let {
114
103
  mediaQueryOR
@@ -119,7 +108,6 @@ class SelectWithAvatarComponent extends SelectComponent {
119
108
  }])
120
109
  };
121
110
  }
122
-
123
111
  render() {
124
112
  let {
125
113
  dropBoxSize,
@@ -155,7 +143,8 @@ class SelectWithAvatarComponent extends SelectComponent {
155
143
  groupName,
156
144
  i18nKeys,
157
145
  htmlId,
158
- needEffect
146
+ needEffect,
147
+ isLoading
159
148
  } = this.props;
160
149
  i18nKeys = Object.assign({}, i18nKeys, {
161
150
  emptyText: i18nKeys.emptyText || emptyMessage,
@@ -252,7 +241,10 @@ class SelectWithAvatarComponent extends SelectComponent {
252
241
  isPadding: false,
253
242
  isResponsivePadding: true,
254
243
  alignBox: "row"
255
- }, /*#__PURE__*/React.createElement(Box, {
244
+ }, isLoading ? /*#__PURE__*/React.createElement(Container, {
245
+ align: "both",
246
+ className: style.loader
247
+ }, /*#__PURE__*/React.createElement(Loader, null)) : /*#__PURE__*/React.createElement(Box, {
256
248
  flexible: true
257
249
  }, /*#__PURE__*/React.createElement(Card, {
258
250
  onScroll: this.handleScroll
@@ -309,25 +301,24 @@ class SelectWithAvatarComponent extends SelectComponent {
309
301
  dataId: dataId,
310
302
  i18nKeys: i18nKeys,
311
303
  htmlId: ariaErrorId
312
- })))));
304
+ }), isFetchingOptions && /*#__PURE__*/React.createElement(Container, {
305
+ isCover: false,
306
+ align: "both"
307
+ }, /*#__PURE__*/React.createElement(Loader, null))))));
313
308
  }) : null);
314
309
  }
315
-
316
310
  }
317
-
318
311
  SelectWithAvatarComponent.propTypes = SelectWithAvatar_propTypes;
319
312
  SelectWithAvatarComponent.defaultProps = SelectWithAvatar_defaultProps;
320
313
  SelectWithAvatarComponent.displayName = 'SelectWithAvatar';
321
314
  let SelectWithAvatar = Popup(SelectWithAvatarComponent);
322
315
  SelectWithAvatar.defaultProps = SelectWithAvatarComponent.defaultProps;
323
-
324
316
  if (false) {
325
317
  SelectWithAvatar.docs = {
326
318
  componentGroup: 'Form Elements',
327
319
  folderName: 'Style Guide'
328
- }; // eslint-disable-next-line react/forbid-foreign-prop-types
329
-
320
+ };
321
+ // eslint-disable-next-line react/forbid-foreign-prop-types
330
322
  SelectWithAvatar.propTypes = SelectWithAvatarComponent.propTypes;
331
323
  }
332
-
333
- export default Popup(SelectWithAvatar);
324
+ export default SelectWithAvatar;
@@ -2,7 +2,6 @@ import React, { Component } from 'react';
2
2
  import { SelectWithIcon_defaultProps } from './props/defaultProps';
3
3
  import { SelectWithIcon_propTypes } from './props/propTypes';
4
4
  /**** Components ****/
5
-
6
5
  import Popup from '../Popup/Popup';
7
6
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
8
7
  import Icon from '@zohodesk/icons/lib/Icon';
@@ -13,21 +12,21 @@ import { Container, Box } from '../Layout';
13
12
  import { getUniqueId } from '../Provider/IdProvider';
14
13
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
15
14
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
15
+ import Loader from '@zohodesk/svg/lib/Loader/Loader';
16
16
  /**** Methods ****/
17
-
18
- import { scrollTo } from '../utils/Common.js';
17
+ import { scrollTo, findScrollEnd } from '../utils/Common.js';
19
18
  /**** CSS ****/
20
-
21
19
  import style from './Select.module.css';
22
-
23
20
  class SelectWithIcon extends Component {
24
21
  constructor(props) {
25
22
  super(props);
26
23
  this.state = {
27
24
  searchValue: '',
28
25
  selectedIndex: 0,
29
- options: props.options
26
+ options: props.options,
27
+ isFetchingOptions: false
30
28
  };
29
+ this._isMounted = false;
31
30
  this.onSearchClear = this.onSearchClear.bind(this);
32
31
  this.onSearch = this.onSearch.bind(this);
33
32
  this.togglePopup = this.togglePopup.bind(this);
@@ -40,36 +39,37 @@ class SelectWithIcon extends Component {
40
39
  this.inputRef = this.inputRef.bind(this);
41
40
  this.handleScroll = this.handleScroll.bind(this);
42
41
  this.getNextAriaId = getUniqueId(this);
42
+ this.handleGetNextOptions = this.handleGetNextOptions.bind(this);
43
+ this.handleFetchOptions = this.handleFetchOptions.bind(this);
44
+ }
45
+ componentDidMount() {
46
+ this._isMounted = true;
47
+ }
48
+ componentWillUnmount() {
49
+ this._isMounted = false;
43
50
  }
44
-
45
51
  inputRef(el) {
46
52
  this.input = el;
47
53
  }
48
-
49
54
  itemRef(ele, index, id) {
50
55
  this[`suggestion_${id}`] = ele;
51
56
  }
52
-
53
57
  searchInputRef(el) {
54
58
  this.searchInput = el;
55
59
  }
56
-
57
60
  scrollContentRef(el) {
58
61
  let {
59
62
  isPopupOpen
60
63
  } = this.props;
61
-
62
64
  if (isPopupOpen) {
63
65
  this.optionsContainer = el;
64
66
  }
65
67
  }
66
-
67
68
  handleMouseEnter(id, value, index, e) {
68
69
  this.setState({
69
70
  selectedIndex: index
70
71
  });
71
72
  }
72
-
73
73
  handleKeyDown(e) {
74
74
  let {
75
75
  keyCode
@@ -79,19 +79,15 @@ class SelectWithIcon extends Component {
79
79
  options
80
80
  } = this.state;
81
81
  let {
82
- isNextOptions,
83
- getNextOptions,
84
82
  idKey,
85
83
  valueKey,
86
84
  isPopupOpen,
87
85
  selectedId
88
86
  } = this.props;
89
-
90
87
  if (isPopupOpen && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
91
88
  e.preventDefault(); //prevent body scroll
92
89
  } else if (!isPopupOpen && (keyCode === 40 || keyCode === 13)) {
93
90
  e.preventDefault(); //prevent body scroll
94
-
95
91
  this.togglePopup(e);
96
92
  options.map((list, index) => {
97
93
  if (list.id === selectedId) {
@@ -101,7 +97,6 @@ class SelectWithIcon extends Component {
101
97
  }
102
98
  });
103
99
  }
104
-
105
100
  if (isPopupOpen) {
106
101
  switch (keyCode) {
107
102
  case 40:
@@ -111,16 +106,13 @@ class SelectWithIcon extends Component {
111
106
  });
112
107
  } else {
113
108
  if (selectedIndex === options.length - 3) {
114
- isNextOptions && getNextOptions && getNextOptions();
109
+ this.handleGetNextOptions();
115
110
  }
116
-
117
111
  this.setState({
118
112
  selectedIndex: selectedIndex + 1
119
113
  });
120
114
  }
121
-
122
115
  break;
123
-
124
116
  case 38:
125
117
  if (selectedIndex === 0) {
126
118
  this.setState({
@@ -131,9 +123,7 @@ class SelectWithIcon extends Component {
131
123
  selectedIndex: selectedIndex - 1
132
124
  });
133
125
  }
134
-
135
126
  break;
136
-
137
127
  case 13:
138
128
  let option = options[selectedIndex];
139
129
  this.handleChange && this.handleChange(option[idKey], option[valueKey], selectedIndex, e);
@@ -141,7 +131,6 @@ class SelectWithIcon extends Component {
141
131
  }
142
132
  }
143
133
  }
144
-
145
134
  componentDidUpdate(prevProps) {
146
135
  let {
147
136
  idKey,
@@ -152,7 +141,6 @@ class SelectWithIcon extends Component {
152
141
  selectedIndex,
153
142
  options
154
143
  } = this.state;
155
-
156
144
  if (prevProps.isPopupOpen != isPopupOpen) {
157
145
  setTimeout(() => {
158
146
  isPopupOpen ? needSearch ? this.searchInput.focus({
@@ -164,39 +152,32 @@ class SelectWithIcon extends Component {
164
152
  });
165
153
  }, 10);
166
154
  }
167
-
168
155
  let option = options[selectedIndex];
169
156
  let id = option && option[idKey] || {};
170
157
  let selSuggestion = this[`suggestion_${id}`];
171
-
172
158
  if (isPopupOpen) {
173
159
  this.optionsContainer && scrollTo(this.optionsContainer, selSuggestion);
174
160
  }
175
161
  }
176
-
177
162
  searchList(searchValue) {
178
163
  let datas = [];
179
164
  let {
180
165
  options,
181
166
  valueKey
182
167
  } = this.props;
183
-
184
168
  if (options.length) {
185
169
  datas = options.filter(obj => obj[valueKey].toLowerCase().includes(searchValue.toLowerCase()));
186
170
  }
187
-
188
171
  return datas;
189
172
  }
190
-
191
173
  onSearchClear() {
192
- let options = this.searchList(''); // this.searchInput.focus({preventScroll:false});
193
-
174
+ let options = this.searchList('');
175
+ // this.searchInput.focus({preventScroll:false});
194
176
  this.setState({
195
177
  searchValue: '',
196
178
  options
197
179
  });
198
180
  }
199
-
200
181
  onSearch(searchValue) {
201
182
  let options = this.searchList(searchValue);
202
183
  this.setState({
@@ -205,7 +186,6 @@ class SelectWithIcon extends Component {
205
186
  options
206
187
  });
207
188
  }
208
-
209
189
  togglePopup(e) {
210
190
  let {
211
191
  togglePopup,
@@ -214,7 +194,6 @@ class SelectWithIcon extends Component {
214
194
  } = this.props;
215
195
  !isReadOnly && togglePopup(e, boxPosition);
216
196
  }
217
-
218
197
  handleChange(id, value, index, e) {
219
198
  let {
220
199
  onChange,
@@ -223,18 +202,57 @@ class SelectWithIcon extends Component {
223
202
  !isReadOnly && onChange && onChange(id, value, index, e);
224
203
  this.togglePopup(e);
225
204
  }
226
-
227
205
  handleScroll(e) {
228
- const {
206
+ let ele = e.target;
207
+ let isScrollReachedBottom = findScrollEnd(ele);
208
+ isScrollReachedBottom && this.handleGetNextOptions();
209
+ }
210
+ UNSAFE_componentWillReceiveProps(nextProps) {
211
+ if (nextProps.options.length != this.props.options.length) {
212
+ this.setState({
213
+ options: nextProps.options
214
+ });
215
+ }
216
+ }
217
+ handleGetNextOptions() {
218
+ let {
229
219
  isNextOptions,
230
220
  getNextOptions
231
221
  } = this.props;
232
-
233
- if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1) {
234
- isNextOptions && getNextOptions && getNextOptions(e);
222
+ let {
223
+ searchValue
224
+ } = this.state;
225
+ isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchValue);
226
+ }
227
+ handleFetchOptions(APICall) {
228
+ let searchValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
229
+ let {
230
+ isFetchingOptions = false
231
+ } = this.state;
232
+ let {
233
+ _isMounted
234
+ } = this;
235
+ if (!isFetchingOptions && APICall) {
236
+ this.setState({
237
+ isFetchingOptions: true
238
+ });
239
+ try {
240
+ return APICall(searchValue).then(() => {
241
+ _isMounted && this.setState({
242
+ isFetchingOptions: false
243
+ });
244
+ }, () => {
245
+ _isMounted && this.setState({
246
+ isFetchingOptions: false
247
+ });
248
+ });
249
+ } catch (e) {
250
+ _isMounted && this.setState({
251
+ isFetchingOptions: false
252
+ });
253
+ }
235
254
  }
236
255
  }
237
-
238
256
  responsiveFunc(_ref) {
239
257
  let {
240
258
  mediaQueryOR
@@ -245,7 +263,6 @@ class SelectWithIcon extends Component {
245
263
  }])
246
264
  };
247
265
  }
248
-
249
266
  render() {
250
267
  let {
251
268
  animationStyle,
@@ -281,13 +298,13 @@ class SelectWithIcon extends Component {
281
298
  boxSize,
282
299
  dropBoxSize,
283
300
  emptyMessage,
284
- isFetchingOptions,
285
301
  needIcon,
286
302
  iconName,
287
303
  iconSize,
288
304
  iconClass,
289
305
  i18nKeys,
290
- htmlId
306
+ htmlId,
307
+ isLoading
291
308
  } = this.props;
292
309
  i18nKeys = Object.assign({}, i18nKeys, {
293
310
  emptyText: i18nKeys.emptyText || emptyMessage,
@@ -296,7 +313,8 @@ class SelectWithIcon extends Component {
296
313
  let {
297
314
  searchValue,
298
315
  selectedIndex,
299
- options
316
+ options,
317
+ isFetchingOptions
300
318
  } = this.state;
301
319
  let setAriaId = this.getNextAriaId();
302
320
  let ariaErrorId = this.getNextAriaId();
@@ -379,7 +397,10 @@ class SelectWithIcon extends Component {
379
397
  isPadding: false,
380
398
  isResponsivePadding: true,
381
399
  alignBox: "row"
382
- }, /*#__PURE__*/React.createElement(Box, {
400
+ }, isLoading ? /*#__PURE__*/React.createElement(Container, {
401
+ align: "both",
402
+ className: style.loader
403
+ }, /*#__PURE__*/React.createElement(Loader, null)) : /*#__PURE__*/React.createElement(Box, {
383
404
  flexible: true
384
405
  }, /*#__PURE__*/React.createElement(Card, {
385
406
  onScroll: this.handleScroll,
@@ -434,7 +455,8 @@ class SelectWithIcon extends Component {
434
455
  getRef: this.itemRef,
435
456
  a11y: {
436
457
  role: 'option',
437
- ariaSelected: selectedId === options[idKey]
458
+ ariaSelected: selectedId === options[idKey],
459
+ ariaLabel: options[valueKey]
438
460
  }
439
461
  });
440
462
  })) : /*#__PURE__*/React.createElement(EmptyState, {
@@ -445,20 +467,19 @@ class SelectWithIcon extends Component {
445
467
  dataId: dataId,
446
468
  i18nKeys: i18nKeys,
447
469
  htmlId: ariaErrorId
448
- })))));
470
+ }), isFetchingOptions && /*#__PURE__*/React.createElement(Container, {
471
+ isCover: false,
472
+ align: "both"
473
+ }, /*#__PURE__*/React.createElement(Loader, null))))));
449
474
  }) : null);
450
475
  }
451
-
452
476
  }
453
-
454
477
  SelectWithIcon.propTypes = SelectWithIcon_propTypes;
455
478
  SelectWithIcon.defaultProps = SelectWithIcon_defaultProps;
456
-
457
479
  if (false) {
458
480
  SelectWithIcon.docs = {
459
481
  componentGroup: 'Form Elements',
460
482
  folderName: 'Style Guide'
461
483
  };
462
484
  }
463
-
464
485
  export default Popup(SelectWithIcon);
@@ -1,9 +1,8 @@
1
1
  /* eslint-disable no-undef */
2
-
3
2
  /**** Libraries ****/
4
3
  import expect from 'expect';
5
- /**** Components ****/
6
4
 
5
+ /**** Components ****/
7
6
  import Select from '../Select';
8
7
  import ListItem from '../../ListItem/ListItem';
9
8
  describe('Select component conditions', () => {
@@ -189,8 +188,9 @@ describe('Select component conditions', () => {
189
188
  target: {
190
189
  value: 'value changed'
191
190
  }
192
- }); //
191
+ });
193
192
 
193
+ //
194
194
  setTimeout(() => {
195
195
  expect(props.onSearch).toHaveBeenCalled();
196
196
  expect(props.onSearch.mock.calls[0][0]).toEqual('value changed');
@@ -202,8 +202,10 @@ describe('Select component conditions', () => {
202
202
  expect(loadingEleArr.length).toBe(0);
203
203
  cb();
204
204
  });
205
- }, searchDebounceTime); //
205
+ }, searchDebounceTime);
206
+ //
206
207
  });
208
+
207
209
  it('Should call onChange, When select list item', () => {
208
210
  let defaultProps = {
209
211
  options: [{
@@ -299,11 +301,11 @@ describe('Select component conditions', () => {
299
301
  };
300
302
  let {
301
303
  renderedDOM
302
- } = setup(Select, defaultProps); // let liteItemArr = TestUtils.scryRenderedComponentsWithTestid(
304
+ } = setup(Select, defaultProps);
305
+ // let liteItemArr = TestUtils.scryRenderedComponentsWithTestid(
303
306
  // renderedDOM,
304
307
  // 'listItem'
305
308
  // );
306
-
307
309
  let liteItemArr = TestUtils.scryRenderedComponentsWithType(renderedDOM, ListItem);
308
310
  expect(liteItemArr.length).toBe(3);
309
311
  });
@@ -30,7 +30,8 @@ export const Select_defaultProps = {
30
30
  isSearchClearOnClose: true,
31
31
  i18nKeys: {},
32
32
  iconOnHover: false,
33
- customProps: {}
33
+ customProps: {},
34
+ isLoading: false
34
35
  };
35
36
  export const GroupSelect_defaultProps = {
36
37
  animationStyle: 'bounce',
@@ -61,7 +62,8 @@ export const GroupSelect_defaultProps = {
61
62
  needLocalSearch: true,
62
63
  isSearchClearOnClose: true,
63
64
  i18nKeys: {},
64
- iconOnHover: false
65
+ iconOnHover: false,
66
+ isLoading: false
65
67
  };
66
68
  export const SelectWithAvatar_defaultProps = {
67
69
  animationStyle: 'bounce',
@@ -83,7 +85,8 @@ export const SelectWithAvatar_defaultProps = {
83
85
  borderColor: 'default',
84
86
  isSearchClearOnClose: true,
85
87
  i18nKeys: {},
86
- needEffect: true
88
+ needEffect: true,
89
+ isLoading: false
87
90
  };
88
91
  export const SelectWithIcon_defaultProps = {
89
92
  isReadOnly: false,
@@ -106,5 +109,6 @@ export const SelectWithIcon_defaultProps = {
106
109
  dropBoxSize: 'small',
107
110
  needIcon: true,
108
111
  iconSize: '14',
109
- i18nKeys: {}
112
+ i18nKeys: {},
113
+ isLoading: false
110
114
  };
@@ -83,7 +83,8 @@ export const Select_propTypes = {
83
83
  DropdownSearchTextBoxProps: PropTypes.object,
84
84
  listItemProps: PropTypes.object,
85
85
  SuggestionsProps: PropTypes.object
86
- })
86
+ }),
87
+ isLoading: PropTypes.bool
87
88
  };
88
89
  export const GroupSelect_propTypes = {
89
90
  groupedOptions: PropTypes.arrayOf(PropTypes.shape({
@@ -145,7 +146,6 @@ export const GroupSelect_propTypes = {
145
146
  getFooter: PropTypes.func,
146
147
  htmlId: PropTypes.string,
147
148
  iconOnHover: PropTypes.bool,
148
-
149
149
  /**** Popup Props ****/
150
150
  isPopupOpen: PropTypes.bool,
151
151
  isPopupReady: PropTypes.bool,
@@ -160,7 +160,8 @@ export const GroupSelect_propTypes = {
160
160
  emptyText: PropTypes.string,
161
161
  noMoreText: PropTypes.string,
162
162
  searchEmptyText: PropTypes.string
163
- })
163
+ }),
164
+ isLoading: PropTypes.bool
164
165
  };
165
166
  export const SelectWithAvatar_propTypes = {
166
167
  animationStyle: PropTypes.string,
@@ -217,7 +218,8 @@ export const SelectWithAvatar_propTypes = {
217
218
  togglePopup: PropTypes.func,
218
219
  valueField: PropTypes.string,
219
220
  htmlId: PropTypes.string,
220
- needEffect: PropTypes.bool
221
+ needEffect: PropTypes.bool,
222
+ isLoading: PropTypes.bool
221
223
  };
222
224
  export const SelectWithIcon_propTypes = {
223
225
  animationStyle: PropTypes.oneOf(['default', 'bounce']),
@@ -262,5 +264,6 @@ export const SelectWithIcon_propTypes = {
262
264
  textBoxVariant: PropTypes.oneOf(['primary', 'secondary', 'default']),
263
265
  togglePopup: PropTypes.func,
264
266
  valueKey: PropTypes.string,
265
- htmlId: PropTypes.string
267
+ htmlId: PropTypes.string,
268
+ isLoading: PropTypes.bool
266
269
  };
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import { defaultProps } from './props/defaultProps';
3
3
  import { propTypes } from './props/propTypes';
4
4
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: [primary, secondary, small, default, medium, large, clarge, cmedium, cdefault, csmall] }] */
5
-
6
5
  import style from './Stencils.module.css';
7
6
  export default class Stencils extends React.PureComponent {
8
7
  render() {
@@ -18,11 +17,9 @@ export default class Stencils extends React.PureComponent {
18
17
  className: `${style.container} ${shape} ${size} ${style[palette]} ${customClass}`
19
18
  });
20
19
  }
21
-
22
20
  }
23
21
  Stencils.propTypes = propTypes;
24
22
  Stencils.defaultProps = defaultProps;
25
-
26
23
  if (false) {
27
24
  Stencils.docs = {
28
25
  componentGroup: 'Atom',
@@ -1,5 +1,4 @@
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
-
3
2
  import React from 'react';
4
3
  import { defaultProps } from './props/defaultProps';
5
4
  import { propTypes } from './props/propTypes';
@@ -11,7 +10,6 @@ export default class Switch extends React.Component {
11
10
  super(props);
12
11
  this.onChange = this.onChange.bind(this);
13
12
  }
14
-
15
13
  onChange(e) {
16
14
  let {
17
15
  onChange,
@@ -19,7 +17,6 @@ export default class Switch extends React.Component {
19
17
  } = this.props;
20
18
  onChange && onChange(!checked, e);
21
19
  }
22
-
23
20
  render() {
24
21
  let {
25
22
  id,
@@ -85,11 +82,9 @@ export default class Switch extends React.Component {
85
82
  customClass: customLabel
86
83
  }, LabelProps)));
87
84
  }
88
-
89
85
  }
90
86
  Switch.defaultProps = defaultProps;
91
87
  Switch.propTypes = propTypes;
92
-
93
88
  if (false) {
94
89
  Switch.docs = {
95
90
  componentGroup: 'Form Elements',