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

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 (534) hide show
  1. package/README.md +18 -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/Accordion/docs/Accordion__Demo.docs.js +0 -2
  8. package/es/Animation/Animation.js +0 -3
  9. package/es/Animation/docs/Animation__default.docs.js +0 -2
  10. package/es/Animation/docs/Animation__fadeIn.docs.js +0 -2
  11. package/es/Animation/docs/Animation__scaleIn.docs.js +0 -2
  12. package/es/Animation/docs/Animation__skewIn.docs.js +0 -2
  13. package/es/Animation/docs/Animation__slideDown.docs.js +0 -2
  14. package/es/Animation/docs/Animation__slideLeft.docs.js +0 -2
  15. package/es/Animation/docs/Animation__zoomIn.docs.js +0 -2
  16. package/es/AppContainer/AppContainer.js +2 -13
  17. package/es/AppContainer/docs/AppContainer__default.docs.js +0 -2
  18. package/es/Avatar/Avatar.js +7 -21
  19. package/es/Avatar/docs/Avatar__custom.docs.js +1 -3
  20. package/es/Avatar/docs/Avatar__default.docs.js +1 -3
  21. package/es/Avatar/docs/Avatar__palette.docs.js +1 -3
  22. package/es/Avatar/docs/Avatar__text.docs.js +1 -3
  23. package/es/AvatarTeam/AvatarTeam.js +0 -3
  24. package/es/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -2
  25. package/es/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -2
  26. package/es/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -2
  27. package/es/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -2
  28. package/es/Button/Button.js +0 -4
  29. package/es/Button/docs/Button__custom.docs.js +11 -13
  30. package/es/Button/docs/Button__default.docs.js +11 -13
  31. package/es/Buttongroup/Buttongroup.js +0 -3
  32. package/es/Buttongroup/docs/Buttongroup__custom.docs.js +0 -2
  33. package/es/Buttongroup/docs/Buttongroup__footer.docs.js +0 -2
  34. package/es/Buttongroup/docs/Buttongroup__header.docs.js +0 -2
  35. package/es/Card/Card.js +7 -22
  36. package/es/Card/docs/Card__Custom.docs.js +0 -2
  37. package/es/Card/docs/Card__Default.docs.js +0 -2
  38. package/es/Card/docs/Card__Scroll.docs.js +0 -3
  39. package/es/CheckBox/CheckBox.js +0 -5
  40. package/es/CheckBox/docs/CheckBox__custom.docs.js +12 -16
  41. package/es/CheckBox/docs/CheckBox__default.docs.js +12 -16
  42. package/es/DateTime/CalendarView.js +26 -34
  43. package/es/DateTime/DateTime.js +22 -77
  44. package/es/DateTime/DateTime.module.css +50 -5
  45. package/es/DateTime/DateTimePopupFooter.js +2 -4
  46. package/es/DateTime/DateTimePopupHeader.js +2 -8
  47. package/es/DateTime/DateWidget.js +34 -101
  48. package/es/DateTime/DaysRow.js +2 -4
  49. package/es/DateTime/Time.js +2 -10
  50. package/es/DateTime/YearView.js +4 -28
  51. package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
  52. package/es/DateTime/__tests__/DateTime.spec.js +0 -1
  53. package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
  54. package/es/DateTime/common.js +0 -3
  55. package/es/DateTime/constants.js +0 -1
  56. package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
  57. package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
  58. package/es/DateTime/dateFormatUtils/index.js +2 -28
  59. package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
  60. package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
  61. package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
  62. package/es/DateTime/docs/DateTime__default.docs.js +6 -9
  63. package/es/DateTime/docs/DateWidget__default.docs.js +0 -5
  64. package/es/DateTime/objectUtils.js +20 -14
  65. package/es/DateTime/props/propTypes.js +4 -2
  66. package/es/DateTime/typeChecker.js +0 -3
  67. package/es/DateTime/validator.js +6 -58
  68. package/es/DropBox/DropBox.js +5 -28
  69. package/es/DropBox/docs/DropBox__custom.docs.js +25 -27
  70. package/es/DropBox/docs/DropBox__customOrder.docs.js +0 -7
  71. package/es/DropBox/docs/DropBox__fixedPosition.docs.js +0 -7
  72. package/es/DropBox/docs/DropBox__position.docs.js +35 -37
  73. package/es/DropBox/docs/DropBox__size.docs.js +28 -30
  74. package/es/DropDown/DropDown.js +1 -9
  75. package/es/DropDown/DropDownHeading.js +2 -4
  76. package/es/DropDown/DropDownItem.js +0 -6
  77. package/es/DropDown/DropDownSearch.js +0 -4
  78. package/es/DropDown/DropDownSeparator.js +0 -1
  79. package/es/DropDown/__tests__/DropDown.spec.js +2 -1
  80. package/es/DropDown/docs/DropDownHeading__custom.docs.js +0 -2
  81. package/es/DropDown/docs/DropDownHeading__default.docs.js +0 -2
  82. package/es/Heading/Heading.js +0 -2
  83. package/es/Heading/Heading.module.css +3 -3
  84. package/es/Heading/docs/Heading__default.docs.js +0 -2
  85. package/es/Label/Label.js +0 -2
  86. package/es/Label/docs/Label__clipped.docs.js +0 -2
  87. package/es/Label/docs/Label__custom.docs.js +0 -2
  88. package/es/Label/docs/Label__palette.docs.js +0 -2
  89. package/es/Label/docs/Label__size.docs.js +0 -2
  90. package/es/Label/docs/Label__type.docs.js +0 -2
  91. package/es/Layout/Box.js +0 -13
  92. package/es/Layout/Container.js +1 -12
  93. package/es/Layout/docs/Layout__Hidden.docs.js +0 -1
  94. package/es/Layout/docs/Layout__default.docs.js +0 -1
  95. package/es/Layout/docs/Layout__four_Column.docs.js +0 -1
  96. package/es/Layout/docs/Layout__three_Column.docs.js +0 -1
  97. package/es/Layout/docs/Layout__two_Column.docs.js +0 -1
  98. package/es/LightNightMode/docs/AlternativeColors.docs.js +0 -2
  99. package/es/ListItem/ListContainer.js +0 -8
  100. package/es/ListItem/ListItem.js +0 -9
  101. package/es/ListItem/ListItemWithAvatar.js +1 -9
  102. package/es/ListItem/ListItemWithCheckBox.js +0 -7
  103. package/es/ListItem/ListItemWithIcon.js +0 -8
  104. package/es/ListItem/ListItemWithRadio.js +0 -7
  105. package/es/ListItem/docs/ListItemWithAvatar__custom.docs.js +0 -2
  106. package/es/ListItem/docs/ListItemWithAvatar__default.docs.js +0 -2
  107. package/es/ListItem/docs/ListItemWithCheckBox__custom.docs.js +0 -2
  108. package/es/ListItem/docs/ListItemWithCheckBox__default.docs.js +0 -2
  109. package/es/ListItem/docs/ListItemWithIcon__custom.docs.js +0 -2
  110. package/es/ListItem/docs/ListItemWithIcon__default.docs.js +0 -2
  111. package/es/ListItem/docs/ListItemWithRadio__custom.docs.js +0 -2
  112. package/es/ListItem/docs/ListItemWithRadio__default.docs.js +0 -2
  113. package/es/ListItem/docs/ListItem__custom.docs.js +0 -2
  114. package/es/ListItem/docs/ListItem__default.docs.js +0 -2
  115. package/es/Modal/Modal.js +8 -28
  116. package/es/Modal/__docs__/Modal__default.docs.js +1 -5
  117. package/es/MultiSelect/AdvancedGroupMultiSelect.js +11 -90
  118. package/es/MultiSelect/AdvancedMultiSelect.js +21 -39
  119. package/es/MultiSelect/EmptyState.js +0 -2
  120. package/es/MultiSelect/MultiSelect.js +49 -112
  121. package/es/MultiSelect/MultiSelectHeader.js +0 -3
  122. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -17
  123. package/es/MultiSelect/SelectedOptions.js +3 -6
  124. package/es/MultiSelect/Suggestions.js +3 -7
  125. package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
  126. package/es/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +0 -7
  127. package/es/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +1 -7
  128. package/es/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +1 -5
  129. package/es/MultiSelect/docs/MultiSelect__default.docs.js +1 -6
  130. package/es/MultiSelect/props/defaultProps.js +8 -4
  131. package/es/MultiSelect/props/propTypes.js +8 -6
  132. package/es/PopOver/PopOver.js +0 -18
  133. package/es/PopOver/__tests__/PopOver.spec.js +1 -2
  134. package/es/PopOver/docs/PopOver__default.docs.js +0 -2
  135. package/es/Popup/Popup.js +24 -77
  136. package/es/Popup/__tests__/Popup.spec.js +5 -17
  137. package/es/Popup/viewPort.js +4 -16
  138. package/es/Provider/IdProvider.js +2 -9
  139. package/es/Provider/LibraryContext.js +4 -6
  140. package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
  141. package/es/Provider/ZindexProvider.js +2 -9
  142. package/es/Provider/docs/Provider_Id__Class.docs.js +3 -4
  143. package/es/Provider/docs/Provider_Id__Function.docs.js +0 -1
  144. package/es/Provider/docs/Provider_Zindex__Class.docs.js +3 -4
  145. package/es/Provider/docs/Provider_Zindex__Function.docs.js +0 -1
  146. package/es/Provider.js +3 -7
  147. package/es/Radio/Radio.js +0 -4
  148. package/es/Radio/docs/Radio__custom.docs.js +12 -16
  149. package/es/Radio/docs/Radio__default.docs.js +12 -16
  150. package/es/Responsive/CustomResponsive.js +18 -28
  151. package/es/Responsive/RefWrapper.js +7 -6
  152. package/es/Responsive/ResizeComponent.js +25 -35
  153. package/es/Responsive/ResizeObserver.js +6 -26
  154. package/es/Responsive/Responsive.js +20 -34
  155. package/es/Responsive/docs/Responsive__Custom.docs.js +22 -14
  156. package/es/Responsive/docs/Responsive__default.docs.js +1 -3
  157. package/es/Responsive/sizeObservers.js +7 -28
  158. package/es/Responsive/utils/index.js +5 -7
  159. package/es/Responsive/utils/shallowCompare.js +2 -7
  160. package/es/Responsive/windowResizeObserver.js +0 -7
  161. package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
  162. package/es/Ribbon/Ribbon.js +0 -3
  163. package/es/Ribbon/docs/Ribbon__custom.docs.js +13 -14
  164. package/es/Ribbon/docs/Ribbon__default.docs.js +13 -14
  165. package/es/RippleEffect/RippleEffect.js +0 -1
  166. package/es/RippleEffect/docs/RippleEffect__default.docs.js +12 -14
  167. package/es/Select/GroupSelect.js +28 -67
  168. package/es/Select/Select.js +47 -97
  169. package/es/Select/Select.module.css +3 -0
  170. package/es/Select/SelectWithAvatar.js +15 -24
  171. package/es/Select/SelectWithIcon.js +73 -53
  172. package/es/Select/__tests__/Select.spec.js +8 -6
  173. package/es/Select/docs/GroupSelect__default.docs.js +1 -6
  174. package/es/Select/docs/SelectWithAvatar__default.docs.js +0 -4
  175. package/es/Select/docs/SelectWithIcon__default.docs.js +0 -4
  176. package/es/Select/docs/Select__default.docs.js +0 -5
  177. package/es/Select/props/defaultProps.js +8 -4
  178. package/es/Select/props/propTypes.js +8 -5
  179. package/es/Stencils/Stencils.js +0 -3
  180. package/es/Stencils/docs/Stencils__custom.docs.js +0 -2
  181. package/es/Stencils/docs/Stencils__default.docs.js +0 -2
  182. package/es/Switch/Switch.js +0 -5
  183. package/es/Switch/docs/Switch__custom.docs.js +12 -14
  184. package/es/Switch/docs/Switch__default.docs.js +12 -14
  185. package/es/Tab/Tab.js +1 -4
  186. package/es/Tab/TabContent.js +0 -1
  187. package/es/Tab/TabContentWrapper.js +0 -2
  188. package/es/Tab/TabWrapper.js +2 -5
  189. package/es/Tab/Tabs.js +7 -54
  190. package/es/Tab/__tests__/Tab.spec.js +2 -1
  191. package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
  192. package/es/Tab/docs/Tab__default.docs.js +0 -5
  193. package/es/Tag/Tag.js +1 -6
  194. package/es/Tag/docs/Tag__custom.docs.js +11 -13
  195. package/es/Tag/docs/Tag__default.docs.js +11 -13
  196. package/es/TextBox/TextBox.js +0 -15
  197. package/es/TextBox/__tests__/TextBox.spec.js +4 -1
  198. package/es/TextBox/docs/TextBox__custom.docs.js +0 -2
  199. package/es/TextBox/docs/TextBox__default.docs.js +0 -2
  200. package/es/TextBox/docs/TextBox__size.docs.js +0 -2
  201. package/es/TextBox/docs/TextBox__variant.docs.js +0 -2
  202. package/es/TextBoxIcon/TextBoxIcon.js +0 -7
  203. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
  204. package/es/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -2
  205. package/es/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -2
  206. package/es/Textarea/Textarea.js +0 -12
  207. package/es/Textarea/__tests__/Textarea.spec.js +2 -2
  208. package/es/Textarea/docs/Textarea__animated.docs.js +0 -2
  209. package/es/Textarea/docs/Textarea__custom.docs.js +0 -2
  210. package/es/Textarea/docs/Textarea__default.docs.js +0 -2
  211. package/es/Textarea/docs/Textarea__disabled.docs.js +0 -2
  212. package/es/Tooltip/Tooltip.js +11 -58
  213. package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
  214. package/es/Tooltip/docs/Tooltip__default.docs.js +63 -67
  215. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +0 -3
  216. package/es/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +0 -5
  217. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +2 -7
  218. package/es/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +17 -28
  219. package/es/deprecated/PortalLayer/PortalLayer.js +17 -25
  220. package/es/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +0 -7
  221. package/es/index.js +2 -1
  222. package/es/semantic/Button/Button.js +0 -3
  223. package/es/semantic/Button/docs/Button__default.docs.js +0 -3
  224. package/es/utils/Common.js +23 -47
  225. package/es/utils/ContextOptimizer.js +5 -4
  226. package/es/utils/__tests__/debounce.spec.js +2 -2
  227. package/es/utils/constructFullName.js +0 -2
  228. package/es/utils/datetime/common.js +5 -16
  229. package/es/utils/debounce.js +1 -5
  230. package/es/utils/dropDownUtils.js +11 -67
  231. package/es/utils/getInitial.js +0 -4
  232. package/es/utils/shallowEqual.js +0 -6
  233. package/lib/Accordion/Accordion.js +10 -39
  234. package/lib/Accordion/AccordionItem.js +12 -38
  235. package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
  236. package/lib/Accordion/docs/Accordion__Demo.docs.js +0 -22
  237. package/lib/Accordion/index.js +0 -3
  238. package/lib/Accordion/props/propTypes.js +0 -3
  239. package/lib/Animation/Animation.js +12 -37
  240. package/lib/Animation/__tests__/Animation.spec.js +7 -11
  241. package/lib/Animation/docs/Animation__default.docs.js +0 -24
  242. package/lib/Animation/docs/Animation__fadeIn.docs.js +0 -24
  243. package/lib/Animation/docs/Animation__scaleIn.docs.js +0 -24
  244. package/lib/Animation/docs/Animation__skewIn.docs.js +0 -24
  245. package/lib/Animation/docs/Animation__slideDown.docs.js +0 -24
  246. package/lib/Animation/docs/Animation__slideLeft.docs.js +0 -24
  247. package/lib/Animation/docs/Animation__zoomIn.docs.js +0 -24
  248. package/lib/Animation/props/propTypes.js +0 -3
  249. package/lib/AppContainer/AppContainer.js +14 -52
  250. package/lib/AppContainer/docs/AppContainer__default.docs.js +0 -23
  251. package/lib/AppContainer/props/propTypes.js +0 -3
  252. package/lib/Avatar/Avatar.js +27 -71
  253. package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
  254. package/lib/Avatar/docs/Avatar__custom.docs.js +1 -26
  255. package/lib/Avatar/docs/Avatar__default.docs.js +1 -24
  256. package/lib/Avatar/docs/Avatar__palette.docs.js +1 -26
  257. package/lib/Avatar/docs/Avatar__text.docs.js +1 -26
  258. package/lib/Avatar/props/propTypes.js +0 -3
  259. package/lib/AvatarTeam/AvatarTeam.js +20 -47
  260. package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
  261. package/lib/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -24
  262. package/lib/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -24
  263. package/lib/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -24
  264. package/lib/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -24
  265. package/lib/AvatarTeam/props/propTypes.js +0 -3
  266. package/lib/Button/Button.js +19 -44
  267. package/lib/Button/__tests__/Button.spec.js +0 -40
  268. package/lib/Button/docs/Button__custom.docs.js +11 -37
  269. package/lib/Button/docs/Button__default.docs.js +11 -36
  270. package/lib/Button/props/defaultProps.js +0 -2
  271. package/lib/Button/props/propTypes.js +0 -3
  272. package/lib/Buttongroup/Buttongroup.js +5 -31
  273. package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
  274. package/lib/Buttongroup/docs/Buttongroup__custom.docs.js +0 -25
  275. package/lib/Buttongroup/docs/Buttongroup__footer.docs.js +0 -25
  276. package/lib/Buttongroup/docs/Buttongroup__header.docs.js +0 -27
  277. package/lib/Buttongroup/props/propTypes.js +0 -3
  278. package/lib/Card/Card.js +41 -102
  279. package/lib/Card/__tests__/Card.spec.js +1 -10
  280. package/lib/Card/docs/Card__Custom.docs.js +0 -27
  281. package/lib/Card/docs/Card__Default.docs.js +0 -26
  282. package/lib/Card/docs/Card__Scroll.docs.js +3 -30
  283. package/lib/Card/index.js +0 -4
  284. package/lib/Card/props/propTypes.js +0 -3
  285. package/lib/CheckBox/CheckBox.js +40 -69
  286. package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
  287. package/lib/CheckBox/docs/CheckBox__custom.docs.js +12 -37
  288. package/lib/CheckBox/docs/CheckBox__default.docs.js +12 -36
  289. package/lib/CheckBox/props/propTypes.js +0 -3
  290. package/lib/DateTime/CalendarView.js +40 -79
  291. package/lib/DateTime/DateTime.js +164 -245
  292. package/lib/DateTime/DateTime.module.css +50 -5
  293. package/lib/DateTime/DateTimePopupFooter.js +5 -30
  294. package/lib/DateTime/DateTimePopupHeader.js +13 -45
  295. package/lib/DateTime/DateWidget.js +243 -349
  296. package/lib/DateTime/DaysRow.js +2 -26
  297. package/lib/DateTime/Time.js +29 -72
  298. package/lib/DateTime/YearView.js +25 -75
  299. package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
  300. package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
  301. package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
  302. package/lib/DateTime/common.js +0 -6
  303. package/lib/DateTime/constants.js +0 -1
  304. package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
  305. package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
  306. package/lib/DateTime/dateFormatUtils/index.js +12 -61
  307. package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
  308. package/lib/DateTime/dateFormatUtils/timeChange.js +20 -52
  309. package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
  310. package/lib/DateTime/docs/DateTime__default.docs.js +10 -33
  311. package/lib/DateTime/docs/DateWidget__default.docs.js +2 -30
  312. package/lib/DateTime/index.js +0 -2
  313. package/lib/DateTime/objectUtils.js +20 -24
  314. package/lib/DateTime/props/propTypes.js +4 -5
  315. package/lib/DateTime/typeChecker.js +0 -4
  316. package/lib/DateTime/validator.js +6 -69
  317. package/lib/DropBox/DropBox.js +58 -119
  318. package/lib/DropBox/__tests__/DropBox.spec.js +2 -6
  319. package/lib/DropBox/docs/DropBox__custom.docs.js +25 -50
  320. package/lib/DropBox/docs/DropBox__customOrder.docs.js +9 -36
  321. package/lib/DropBox/docs/DropBox__fixedPosition.docs.js +9 -36
  322. package/lib/DropBox/docs/DropBox__position.docs.js +35 -59
  323. package/lib/DropBox/docs/DropBox__size.docs.js +28 -52
  324. package/lib/DropBox/props/propTypes.js +0 -3
  325. package/lib/DropDown/DropDown.js +3 -53
  326. package/lib/DropDown/DropDownHeading.js +11 -35
  327. package/lib/DropDown/DropDownItem.js +17 -41
  328. package/lib/DropDown/DropDownSearch.js +15 -41
  329. package/lib/DropDown/DropDownSeparator.js +1 -23
  330. package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
  331. package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
  332. package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
  333. package/lib/DropDown/docs/DropDownHeading__custom.docs.js +0 -23
  334. package/lib/DropDown/docs/DropDownHeading__default.docs.js +0 -22
  335. package/lib/DropDown/props/propTypes.js +0 -5
  336. package/lib/Heading/Heading.js +8 -35
  337. package/lib/Heading/Heading.module.css +3 -3
  338. package/lib/Heading/docs/Heading__default.docs.js +0 -24
  339. package/lib/Heading/props/propTypes.js +0 -3
  340. package/lib/Label/Label.js +11 -36
  341. package/lib/Label/__tests__/Label.spec.js +1 -14
  342. package/lib/Label/docs/Label__clipped.docs.js +0 -25
  343. package/lib/Label/docs/Label__custom.docs.js +0 -26
  344. package/lib/Label/docs/Label__palette.docs.js +0 -25
  345. package/lib/Label/docs/Label__size.docs.js +0 -25
  346. package/lib/Label/docs/Label__type.docs.js +0 -25
  347. package/lib/Label/props/propTypes.js +0 -3
  348. package/lib/Layout/Box.js +11 -31
  349. package/lib/Layout/Container.js +10 -29
  350. package/lib/Layout/__tests__/Box.spec.js +49 -65
  351. package/lib/Layout/__tests__/Container.spec.js +50 -67
  352. package/lib/Layout/docs/Layout__Hidden.docs.js +0 -22
  353. package/lib/Layout/docs/Layout__default.docs.js +0 -21
  354. package/lib/Layout/docs/Layout__four_Column.docs.js +0 -22
  355. package/lib/Layout/docs/Layout__three_Column.docs.js +0 -22
  356. package/lib/Layout/docs/Layout__two_Column.docs.js +0 -22
  357. package/lib/Layout/index.js +0 -4
  358. package/lib/Layout/props/propTypes.js +0 -3
  359. package/lib/Layout/utils.js +0 -10
  360. package/lib/LightNightMode/docs/AlternativeColors.docs.js +1 -26
  361. package/lib/ListItem/ListContainer.js +25 -46
  362. package/lib/ListItem/ListItem.js +37 -66
  363. package/lib/ListItem/ListItemWithAvatar.js +41 -72
  364. package/lib/ListItem/ListItemWithCheckBox.js +32 -61
  365. package/lib/ListItem/ListItemWithIcon.js +36 -65
  366. package/lib/ListItem/ListItemWithRadio.js +33 -62
  367. package/lib/ListItem/docs/ListItemWithAvatar__custom.docs.js +0 -24
  368. package/lib/ListItem/docs/ListItemWithAvatar__default.docs.js +0 -23
  369. package/lib/ListItem/docs/ListItemWithCheckBox__custom.docs.js +0 -24
  370. package/lib/ListItem/docs/ListItemWithCheckBox__default.docs.js +0 -23
  371. package/lib/ListItem/docs/ListItemWithIcon__custom.docs.js +0 -24
  372. package/lib/ListItem/docs/ListItemWithIcon__default.docs.js +0 -23
  373. package/lib/ListItem/docs/ListItemWithRadio__custom.docs.js +0 -24
  374. package/lib/ListItem/docs/ListItemWithRadio__default.docs.js +0 -23
  375. package/lib/ListItem/docs/ListItem__custom.docs.js +0 -23
  376. package/lib/ListItem/docs/ListItem__default.docs.js +0 -22
  377. package/lib/ListItem/props/propTypes.js +0 -5
  378. package/lib/Modal/Modal.js +4 -44
  379. package/lib/Modal/__docs__/Modal__default.docs.js +0 -23
  380. package/lib/Modal/props/propTypes.js +0 -3
  381. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +157 -289
  382. package/lib/MultiSelect/AdvancedMultiSelect.js +130 -203
  383. package/lib/MultiSelect/EmptyState.js +21 -44
  384. package/lib/MultiSelect/MultiSelect.js +213 -325
  385. package/lib/MultiSelect/MultiSelectHeader.js +5 -29
  386. package/lib/MultiSelect/MultiSelectWithAvatar.js +61 -98
  387. package/lib/MultiSelect/SelectedOptions.js +15 -44
  388. package/lib/MultiSelect/Suggestions.js +26 -59
  389. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
  390. package/lib/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +0 -23
  391. package/lib/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +3 -28
  392. package/lib/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +2 -28
  393. package/lib/MultiSelect/docs/MultiSelect__default.docs.js +2 -30
  394. package/lib/MultiSelect/props/defaultProps.js +8 -6
  395. package/lib/MultiSelect/props/propTypes.js +8 -9
  396. package/lib/PopOver/PopOver.js +44 -94
  397. package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
  398. package/lib/PopOver/docs/PopOver__default.docs.js +0 -25
  399. package/lib/PopOver/props/propTypes.js +0 -3
  400. package/lib/Popup/Popup.js +77 -156
  401. package/lib/Popup/__tests__/Popup.spec.js +5 -42
  402. package/lib/Popup/viewPort.js +14 -28
  403. package/lib/Provider/AvatarSize.js +0 -4
  404. package/lib/Provider/Config.js +0 -2
  405. package/lib/Provider/CssProvider.js +0 -4
  406. package/lib/Provider/IdProvider.js +3 -17
  407. package/lib/Provider/LibraryContext.js +10 -32
  408. package/lib/Provider/LibraryContextInit.js +0 -4
  409. package/lib/Provider/NumberGenerator/NumberGenerator.js +14 -43
  410. package/lib/Provider/ZindexProvider.js +3 -15
  411. package/lib/Provider/docs/Provider_Id__Class.docs.js +3 -24
  412. package/lib/Provider/docs/Provider_Id__Function.docs.js +0 -5
  413. package/lib/Provider/docs/Provider_Zindex__Class.docs.js +3 -24
  414. package/lib/Provider/docs/Provider_Zindex__Function.docs.js +0 -5
  415. package/lib/Provider.js +2 -61
  416. package/lib/Radio/Radio.js +33 -60
  417. package/lib/Radio/__tests__/Radiospec.js +5 -9
  418. package/lib/Radio/docs/Radio__custom.docs.js +12 -38
  419. package/lib/Radio/docs/Radio__default.docs.js +12 -37
  420. package/lib/Radio/props/propTypes.js +0 -3
  421. package/lib/Responsive/CustomResponsive.js +23 -67
  422. package/lib/Responsive/RefWrapper.js +7 -15
  423. package/lib/Responsive/ResizeComponent.js +27 -58
  424. package/lib/Responsive/ResizeObserver.js +6 -23
  425. package/lib/Responsive/Responsive.js +24 -76
  426. package/lib/Responsive/docs/Responsive__Custom.docs.js +29 -54
  427. package/lib/Responsive/docs/Responsive__default.docs.js +4 -28
  428. package/lib/Responsive/index.js +0 -2
  429. package/lib/Responsive/props/propTypes.js +0 -3
  430. package/lib/Responsive/sizeObservers.js +13 -51
  431. package/lib/Responsive/utils/index.js +3 -11
  432. package/lib/Responsive/utils/shallowCompare.js +2 -11
  433. package/lib/Responsive/windowResizeObserver.js +0 -8
  434. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +14 -44
  435. package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
  436. package/lib/Ribbon/Ribbon.js +7 -31
  437. package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
  438. package/lib/Ribbon/docs/Ribbon__custom.docs.js +13 -36
  439. package/lib/Ribbon/docs/Ribbon__default.docs.js +13 -35
  440. package/lib/Ribbon/props/propTypes.js +0 -3
  441. package/lib/RippleEffect/RippleEffect.js +7 -18
  442. package/lib/RippleEffect/docs/RippleEffect__default.docs.js +12 -34
  443. package/lib/RippleEffect/props/propTypes.js +0 -3
  444. package/lib/Select/GroupSelect.js +138 -230
  445. package/lib/Select/Select.js +213 -297
  446. package/lib/Select/Select.module.css +3 -0
  447. package/lib/Select/SelectWithAvatar.js +61 -104
  448. package/lib/Select/SelectWithIcon.js +149 -143
  449. package/lib/Select/__tests__/Select.spec.js +89 -131
  450. package/lib/Select/docs/GroupSelect__default.docs.js +0 -26
  451. package/lib/Select/docs/SelectWithAvatar__default.docs.js +0 -28
  452. package/lib/Select/docs/SelectWithIcon__default.docs.js +4 -29
  453. package/lib/Select/docs/Select__default.docs.js +0 -27
  454. package/lib/Select/props/defaultProps.js +7 -8
  455. package/lib/Select/props/propTypes.js +8 -8
  456. package/lib/Stencils/Stencils.js +4 -28
  457. package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
  458. package/lib/Stencils/docs/Stencils__custom.docs.js +0 -24
  459. package/lib/Stencils/docs/Stencils__default.docs.js +0 -24
  460. package/lib/Stencils/props/propTypes.js +0 -3
  461. package/lib/Switch/Switch.js +27 -55
  462. package/lib/Switch/docs/Switch__custom.docs.js +12 -35
  463. package/lib/Switch/docs/Switch__default.docs.js +12 -34
  464. package/lib/Switch/props/propTypes.js +0 -3
  465. package/lib/Tab/Tab.js +23 -39
  466. package/lib/Tab/TabContent.js +4 -11
  467. package/lib/Tab/TabContentWrapper.js +5 -12
  468. package/lib/Tab/TabWrapper.js +16 -34
  469. package/lib/Tab/Tabs.js +85 -166
  470. package/lib/Tab/__tests__/Tab.spec.js +63 -74
  471. package/lib/Tab/__tests__/TabContent.spec.js +6 -10
  472. package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
  473. package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
  474. package/lib/Tab/__tests__/Tabs.spec.js +39 -53
  475. package/lib/Tab/docs/Tab__default.docs.js +0 -25
  476. package/lib/Tab/index.js +0 -6
  477. package/lib/Tab/props/propTypes.js +0 -3
  478. package/lib/Tag/Tag.js +37 -70
  479. package/lib/Tag/__tests__/Tag.spec.js +8 -14
  480. package/lib/Tag/docs/Tag__custom.docs.js +11 -37
  481. package/lib/Tag/docs/Tag__default.docs.js +11 -36
  482. package/lib/Tag/props/propTypes.js +0 -3
  483. package/lib/TextBox/TextBox.js +52 -83
  484. package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
  485. package/lib/TextBox/docs/TextBox__custom.docs.js +0 -26
  486. package/lib/TextBox/docs/TextBox__default.docs.js +0 -26
  487. package/lib/TextBox/docs/TextBox__size.docs.js +0 -26
  488. package/lib/TextBox/docs/TextBox__variant.docs.js +0 -26
  489. package/lib/TextBox/props/propTypes.js +0 -5
  490. package/lib/TextBoxIcon/TextBoxIcon.js +48 -80
  491. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
  492. package/lib/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -27
  493. package/lib/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -27
  494. package/lib/TextBoxIcon/props/propTypes.js +0 -3
  495. package/lib/Textarea/Textarea.js +22 -52
  496. package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
  497. package/lib/Textarea/docs/Textarea__animated.docs.js +0 -25
  498. package/lib/Textarea/docs/Textarea__custom.docs.js +0 -26
  499. package/lib/Textarea/docs/Textarea__default.docs.js +0 -25
  500. package/lib/Textarea/docs/Textarea__disabled.docs.js +0 -25
  501. package/lib/Textarea/props/propTypes.js +0 -3
  502. package/lib/Tooltip/Tooltip.js +25 -92
  503. package/lib/Tooltip/__tests__/Tooltip.spec.js +0 -23
  504. package/lib/Tooltip/docs/Tooltip__default.docs.js +63 -91
  505. package/lib/Tooltip/props/propTypes.js +0 -3
  506. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +11 -39
  507. package/lib/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +2 -29
  508. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
  509. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +18 -51
  510. package/lib/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +22 -54
  511. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
  512. package/lib/css.js +0 -39
  513. package/lib/deprecated/PortalLayer/PortalLayer.js +17 -45
  514. package/lib/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +2 -36
  515. package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
  516. package/lib/index.js +0 -158
  517. package/lib/semantic/Button/Button.js +17 -41
  518. package/lib/semantic/Button/docs/Button__default.docs.js +0 -23
  519. package/lib/semantic/Button/props/propTypes.js +0 -3
  520. package/lib/utils/Common.js +29 -95
  521. package/lib/utils/ContextOptimizer.js +10 -16
  522. package/lib/utils/__tests__/constructFullName.spec.js +0 -1
  523. package/lib/utils/__tests__/debounce.spec.js +2 -3
  524. package/lib/utils/__tests__/getInitial.spec.js +0 -1
  525. package/lib/utils/constructFullName.js +2 -11
  526. package/lib/utils/datetime/common.js +5 -32
  527. package/lib/utils/debounce.js +1 -6
  528. package/lib/utils/dropDownUtils.js +54 -171
  529. package/lib/utils/dummyFunction.js +0 -2
  530. package/lib/utils/getHTMLFontSize.js +0 -1
  531. package/lib/utils/getInitial.js +0 -6
  532. package/lib/utils/scrollTo.js +0 -2
  533. package/lib/utils/shallowEqual.js +0 -8
  534. package/package.json +1 -1
@@ -1,84 +1,53 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _defaultProps = require("./props/defaultProps");
13
-
14
10
  var _propTypes = require("./props/propTypes");
15
-
16
11
  var _Popup = _interopRequireDefault(require("../Popup/Popup"));
17
-
18
12
  var _TextBoxIcon = _interopRequireDefault(require("../TextBoxIcon/TextBoxIcon"));
19
-
20
13
  var _Icon = _interopRequireDefault(require("@zohodesk/icons/lib/Icon"));
21
-
22
14
  var _ListItemWithIcon = _interopRequireDefault(require("../ListItem/ListItemWithIcon"));
23
-
24
15
  var _Card = _interopRequireWildcard(require("../Card/Card"));
25
-
26
16
  var _EmptyState = _interopRequireDefault(require("../MultiSelect/EmptyState"));
27
-
28
17
  var _Layout = require("../Layout");
29
-
30
18
  var _IdProvider = require("../Provider/IdProvider");
31
-
32
19
  var _ResponsiveDropBox = _interopRequireDefault(require("../ResponsiveDropBox/ResponsiveDropBox"));
33
-
34
20
  var _CustomResponsive = require("../Responsive/CustomResponsive");
35
-
21
+ var _Loader = _interopRequireDefault(require("@zohodesk/svg/lib/Loader/Loader"));
36
22
  var _Common = require("../utils/Common.js");
37
-
38
23
  var _SelectModule = _interopRequireDefault(require("./Select.module.css"));
39
-
40
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
41
-
42
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
-
44
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
-
46
27
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
47
-
48
28
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
49
-
50
29
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
51
-
52
30
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
53
-
54
31
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
55
-
56
32
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
57
-
58
33
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
59
-
60
34
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
61
-
62
35
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
63
-
64
36
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
65
-
66
37
  var SelectWithIcon = /*#__PURE__*/function (_Component) {
67
38
  _inherits(SelectWithIcon, _Component);
68
-
69
39
  var _super = _createSuper(SelectWithIcon);
70
-
71
40
  function SelectWithIcon(props) {
72
41
  var _this;
73
-
74
42
  _classCallCheck(this, SelectWithIcon);
75
-
76
43
  _this = _super.call(this, props);
77
44
  _this.state = {
78
45
  searchValue: '',
79
46
  selectedIndex: 0,
80
- options: props.options
47
+ options: props.options,
48
+ isFetchingOptions: false
81
49
  };
50
+ _this._isMounted = false;
82
51
  _this.onSearchClear = _this.onSearchClear.bind(_assertThisInitialized(_this));
83
52
  _this.onSearch = _this.onSearch.bind(_assertThisInitialized(_this));
84
53
  _this.togglePopup = _this.togglePopup.bind(_assertThisInitialized(_this));
@@ -91,10 +60,21 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
91
60
  _this.inputRef = _this.inputRef.bind(_assertThisInitialized(_this));
92
61
  _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_this));
93
62
  _this.getNextAriaId = (0, _IdProvider.getUniqueId)(_assertThisInitialized(_this));
63
+ _this.handleGetNextOptions = _this.handleGetNextOptions.bind(_assertThisInitialized(_this));
64
+ _this.handleFetchOptions = _this.handleFetchOptions.bind(_assertThisInitialized(_this));
94
65
  return _this;
95
66
  }
96
-
97
67
  _createClass(SelectWithIcon, [{
68
+ key: "componentDidMount",
69
+ value: function componentDidMount() {
70
+ this._isMounted = true;
71
+ }
72
+ }, {
73
+ key: "componentWillUnmount",
74
+ value: function componentWillUnmount() {
75
+ this._isMounted = false;
76
+ }
77
+ }, {
98
78
  key: "inputRef",
99
79
  value: function inputRef(el) {
100
80
  this.input = el;
@@ -113,7 +93,6 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
113
93
  key: "scrollContentRef",
114
94
  value: function scrollContentRef(el) {
115
95
  var isPopupOpen = this.props.isPopupOpen;
116
-
117
96
  if (isPopupOpen) {
118
97
  this.optionsContainer = el;
119
98
  }
@@ -129,24 +108,19 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
129
108
  key: "handleKeyDown",
130
109
  value: function handleKeyDown(e) {
131
110
  var _this2 = this;
132
-
133
111
  var keyCode = e.keyCode;
134
112
  var _this$state = this.state,
135
- selectedIndex = _this$state.selectedIndex,
136
- options = _this$state.options;
113
+ selectedIndex = _this$state.selectedIndex,
114
+ options = _this$state.options;
137
115
  var _this$props = this.props,
138
- isNextOptions = _this$props.isNextOptions,
139
- getNextOptions = _this$props.getNextOptions,
140
- idKey = _this$props.idKey,
141
- valueKey = _this$props.valueKey,
142
- isPopupOpen = _this$props.isPopupOpen,
143
- selectedId = _this$props.selectedId;
144
-
116
+ idKey = _this$props.idKey,
117
+ valueKey = _this$props.valueKey,
118
+ isPopupOpen = _this$props.isPopupOpen,
119
+ selectedId = _this$props.selectedId;
145
120
  if (isPopupOpen && (keyCode === 38 || keyCode === 40) && e.preventDefault) {
146
121
  e.preventDefault(); //prevent body scroll
147
122
  } else if (!isPopupOpen && (keyCode === 40 || keyCode === 13)) {
148
123
  e.preventDefault(); //prevent body scroll
149
-
150
124
  this.togglePopup(e);
151
125
  options.map(function (list, index) {
152
126
  if (list.id === selectedId) {
@@ -156,7 +130,6 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
156
130
  }
157
131
  });
158
132
  }
159
-
160
133
  if (isPopupOpen) {
161
134
  switch (keyCode) {
162
135
  case 40:
@@ -166,16 +139,13 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
166
139
  });
167
140
  } else {
168
141
  if (selectedIndex === options.length - 3) {
169
- isNextOptions && getNextOptions && getNextOptions();
142
+ this.handleGetNextOptions();
170
143
  }
171
-
172
144
  this.setState({
173
145
  selectedIndex: selectedIndex + 1
174
146
  });
175
147
  }
176
-
177
148
  break;
178
-
179
149
  case 38:
180
150
  if (selectedIndex === 0) {
181
151
  this.setState({
@@ -186,9 +156,7 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
186
156
  selectedIndex: selectedIndex - 1
187
157
  });
188
158
  }
189
-
190
159
  break;
191
-
192
160
  case 13:
193
161
  var option = options[selectedIndex];
194
162
  this.handleChange && this.handleChange(option[idKey], option[valueKey], selectedIndex, e);
@@ -200,15 +168,13 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
200
168
  key: "componentDidUpdate",
201
169
  value: function componentDidUpdate(prevProps) {
202
170
  var _this3 = this;
203
-
204
171
  var _this$props2 = this.props,
205
- idKey = _this$props2.idKey,
206
- isPopupOpen = _this$props2.isPopupOpen,
207
- needSearch = _this$props2.needSearch;
172
+ idKey = _this$props2.idKey,
173
+ isPopupOpen = _this$props2.isPopupOpen,
174
+ needSearch = _this$props2.needSearch;
208
175
  var _this$state2 = this.state,
209
- selectedIndex = _this$state2.selectedIndex,
210
- options = _this$state2.options;
211
-
176
+ selectedIndex = _this$state2.selectedIndex,
177
+ options = _this$state2.options;
212
178
  if (prevProps.isPopupOpen != isPopupOpen) {
213
179
  setTimeout(function () {
214
180
  isPopupOpen ? needSearch ? _this3.searchInput.focus({
@@ -220,11 +186,9 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
220
186
  });
221
187
  }, 10);
222
188
  }
223
-
224
189
  var option = options[selectedIndex];
225
190
  var id = option && option[idKey] || {};
226
191
  var selSuggestion = this["suggestion_".concat(id)];
227
-
228
192
  if (isPopupOpen) {
229
193
  this.optionsContainer && (0, _Common.scrollTo)(this.optionsContainer, selSuggestion);
230
194
  }
@@ -234,22 +198,20 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
234
198
  value: function searchList(searchValue) {
235
199
  var datas = [];
236
200
  var _this$props3 = this.props,
237
- options = _this$props3.options,
238
- valueKey = _this$props3.valueKey;
239
-
201
+ options = _this$props3.options,
202
+ valueKey = _this$props3.valueKey;
240
203
  if (options.length) {
241
204
  datas = options.filter(function (obj) {
242
205
  return obj[valueKey].toLowerCase().includes(searchValue.toLowerCase());
243
206
  });
244
207
  }
245
-
246
208
  return datas;
247
209
  }
248
210
  }, {
249
211
  key: "onSearchClear",
250
212
  value: function onSearchClear() {
251
- var options = this.searchList(''); // this.searchInput.focus({preventScroll:false});
252
-
213
+ var options = this.searchList('');
214
+ // this.searchInput.focus({preventScroll:false});
253
215
  this.setState({
254
216
  searchValue: '',
255
217
  options: options
@@ -269,29 +231,72 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
269
231
  key: "togglePopup",
270
232
  value: function togglePopup(e) {
271
233
  var _this$props4 = this.props,
272
- togglePopup = _this$props4.togglePopup,
273
- isReadOnly = _this$props4.isReadOnly,
274
- boxPosition = _this$props4.boxPosition;
234
+ togglePopup = _this$props4.togglePopup,
235
+ isReadOnly = _this$props4.isReadOnly,
236
+ boxPosition = _this$props4.boxPosition;
275
237
  !isReadOnly && togglePopup(e, boxPosition);
276
238
  }
277
239
  }, {
278
240
  key: "handleChange",
279
241
  value: function handleChange(id, value, index, e) {
280
242
  var _this$props5 = this.props,
281
- onChange = _this$props5.onChange,
282
- isReadOnly = _this$props5.isReadOnly;
243
+ onChange = _this$props5.onChange,
244
+ isReadOnly = _this$props5.isReadOnly;
283
245
  !isReadOnly && onChange && onChange(id, value, index, e);
284
246
  this.togglePopup(e);
285
247
  }
286
248
  }, {
287
249
  key: "handleScroll",
288
250
  value: function handleScroll(e) {
251
+ var ele = e.target;
252
+ var isScrollReachedBottom = (0, _Common.findScrollEnd)(ele);
253
+ isScrollReachedBottom && this.handleGetNextOptions();
254
+ }
255
+ }, {
256
+ key: "UNSAFE_componentWillReceiveProps",
257
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
258
+ if (nextProps.options.length != this.props.options.length) {
259
+ this.setState({
260
+ options: nextProps.options
261
+ });
262
+ }
263
+ }
264
+ }, {
265
+ key: "handleGetNextOptions",
266
+ value: function handleGetNextOptions() {
289
267
  var _this$props6 = this.props,
290
- isNextOptions = _this$props6.isNextOptions,
291
- getNextOptions = _this$props6.getNextOptions;
292
-
293
- if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1) {
294
- isNextOptions && getNextOptions && getNextOptions(e);
268
+ isNextOptions = _this$props6.isNextOptions,
269
+ getNextOptions = _this$props6.getNextOptions;
270
+ var searchValue = this.state.searchValue;
271
+ isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchValue);
272
+ }
273
+ }, {
274
+ key: "handleFetchOptions",
275
+ value: function handleFetchOptions(APICall) {
276
+ var _this4 = this;
277
+ var searchValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
278
+ var _this$state$isFetchin = this.state.isFetchingOptions,
279
+ isFetchingOptions = _this$state$isFetchin === void 0 ? false : _this$state$isFetchin;
280
+ var _isMounted = this._isMounted;
281
+ if (!isFetchingOptions && APICall) {
282
+ this.setState({
283
+ isFetchingOptions: true
284
+ });
285
+ try {
286
+ return APICall(searchValue).then(function () {
287
+ _isMounted && _this4.setState({
288
+ isFetchingOptions: false
289
+ });
290
+ }, function () {
291
+ _isMounted && _this4.setState({
292
+ isFetchingOptions: false
293
+ });
294
+ });
295
+ } catch (e) {
296
+ _isMounted && this.setState({
297
+ isFetchingOptions: false
298
+ });
299
+ }
295
300
  }
296
301
  }
297
302
  }, {
@@ -307,57 +312,57 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
307
312
  }, {
308
313
  key: "render",
309
314
  value: function render() {
310
- var _this4 = this;
311
-
315
+ var _this5 = this;
312
316
  var _this$props7 = this.props,
313
- animationStyle = _this$props7.animationStyle,
314
- removeClose = _this$props7.removeClose,
315
- selectedValue = _this$props7.selectedValue,
316
- searchBoxPlaceHolder = _this$props7.searchBoxPlaceHolder,
317
- needSearch = _this$props7.needSearch,
318
- searchEmptyMessage = _this$props7.searchEmptyMessage,
319
- dataId = _this$props7.dataId,
320
- maxLength = _this$props7.maxLength,
321
- isDisabled = _this$props7.isDisabled,
322
- isReadOnly = _this$props7.isReadOnly,
323
- placeHolder = _this$props7.placeHolder,
324
- textBoxSize = _this$props7.textBoxSize,
325
- textBoxVariant = _this$props7.textBoxVariant,
326
- selectedId = _this$props7.selectedId,
327
- isPopupOpen = _this$props7.isPopupOpen,
328
- isPopupReady = _this$props7.isPopupReady,
329
- position = _this$props7.position,
330
- getContainerRef = _this$props7.getContainerRef,
331
- valueKey = _this$props7.valueKey,
332
- idKey = _this$props7.idKey,
333
- needListBorder = _this$props7.needListBorder,
334
- needTick = _this$props7.needTick,
335
- size = _this$props7.size,
336
- borderColor = _this$props7.borderColor,
337
- title = _this$props7.title,
338
- className = _this$props7.className,
339
- needBorder = _this$props7.needBorder,
340
- searchBoxSize = _this$props7.searchBoxSize,
341
- getTargetRef = _this$props7.getTargetRef,
342
- needResponsive = _this$props7.needResponsive,
343
- boxSize = _this$props7.boxSize,
344
- dropBoxSize = _this$props7.dropBoxSize,
345
- emptyMessage = _this$props7.emptyMessage,
346
- isFetchingOptions = _this$props7.isFetchingOptions,
347
- needIcon = _this$props7.needIcon,
348
- iconName = _this$props7.iconName,
349
- iconSize = _this$props7.iconSize,
350
- iconClass = _this$props7.iconClass,
351
- i18nKeys = _this$props7.i18nKeys,
352
- htmlId = _this$props7.htmlId;
317
+ animationStyle = _this$props7.animationStyle,
318
+ removeClose = _this$props7.removeClose,
319
+ selectedValue = _this$props7.selectedValue,
320
+ searchBoxPlaceHolder = _this$props7.searchBoxPlaceHolder,
321
+ needSearch = _this$props7.needSearch,
322
+ searchEmptyMessage = _this$props7.searchEmptyMessage,
323
+ dataId = _this$props7.dataId,
324
+ maxLength = _this$props7.maxLength,
325
+ isDisabled = _this$props7.isDisabled,
326
+ isReadOnly = _this$props7.isReadOnly,
327
+ placeHolder = _this$props7.placeHolder,
328
+ textBoxSize = _this$props7.textBoxSize,
329
+ textBoxVariant = _this$props7.textBoxVariant,
330
+ selectedId = _this$props7.selectedId,
331
+ isPopupOpen = _this$props7.isPopupOpen,
332
+ isPopupReady = _this$props7.isPopupReady,
333
+ position = _this$props7.position,
334
+ getContainerRef = _this$props7.getContainerRef,
335
+ valueKey = _this$props7.valueKey,
336
+ idKey = _this$props7.idKey,
337
+ needListBorder = _this$props7.needListBorder,
338
+ needTick = _this$props7.needTick,
339
+ size = _this$props7.size,
340
+ borderColor = _this$props7.borderColor,
341
+ title = _this$props7.title,
342
+ className = _this$props7.className,
343
+ needBorder = _this$props7.needBorder,
344
+ searchBoxSize = _this$props7.searchBoxSize,
345
+ getTargetRef = _this$props7.getTargetRef,
346
+ needResponsive = _this$props7.needResponsive,
347
+ boxSize = _this$props7.boxSize,
348
+ dropBoxSize = _this$props7.dropBoxSize,
349
+ emptyMessage = _this$props7.emptyMessage,
350
+ needIcon = _this$props7.needIcon,
351
+ iconName = _this$props7.iconName,
352
+ iconSize = _this$props7.iconSize,
353
+ iconClass = _this$props7.iconClass,
354
+ i18nKeys = _this$props7.i18nKeys,
355
+ htmlId = _this$props7.htmlId,
356
+ isLoading = _this$props7.isLoading;
353
357
  i18nKeys = Object.assign({}, i18nKeys, {
354
358
  emptyText: i18nKeys.emptyText || emptyMessage,
355
359
  searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage
356
360
  });
357
361
  var _this$state3 = this.state,
358
- searchValue = _this$state3.searchValue,
359
- selectedIndex = _this$state3.selectedIndex,
360
- options = _this$state3.options;
362
+ searchValue = _this$state3.searchValue,
363
+ selectedIndex = _this$state3.selectedIndex,
364
+ options = _this$state3.options,
365
+ isFetchingOptions = _this$state3.isFetchingOptions;
361
366
  var setAriaId = this.getNextAriaId();
362
367
  var ariaErrorId = this.getNextAriaId();
363
368
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -437,10 +442,13 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
437
442
  isPadding: false,
438
443
  isResponsivePadding: true,
439
444
  alignBox: "row"
440
- }, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
445
+ }, isLoading ? /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
446
+ align: "both",
447
+ className: _SelectModule["default"].loader
448
+ }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null)) : /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
441
449
  flexible: true
442
450
  }, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
443
- onScroll: _this4.handleScroll,
451
+ onScroll: _this5.handleScroll,
444
452
  htmlId: setAriaId,
445
453
  a11y: {
446
454
  role: 'listbox'
@@ -448,13 +456,13 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
448
456
  }, needSearch ? /*#__PURE__*/_react["default"].createElement(_Card.CardHeader, null, /*#__PURE__*/_react["default"].createElement("div", {
449
457
  className: "".concat(_SelectModule["default"].search, " ").concat(_SelectModule["default"][size])
450
458
  }, /*#__PURE__*/_react["default"].createElement(_TextBoxIcon["default"], {
451
- onClear: _this4.onSearchClear,
452
- onChange: _this4.onSearch,
459
+ onClear: _this5.onSearchClear,
460
+ onChange: _this5.onSearch,
453
461
  placeHolder: searchBoxPlaceHolder,
454
462
  value: searchValue,
455
463
  maxLength: maxLength,
456
- onKeyDown: _this4.handleKeyDown,
457
- inputRef: _this4.searchInputRef,
464
+ onKeyDown: _this5.handleKeyDown,
465
+ inputRef: _this5.searchInputRef,
458
466
  size: searchBoxSize,
459
467
  dataId: "".concat(dataId, "_search"),
460
468
  a11y: {
@@ -464,16 +472,16 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
464
472
  }))) : null, /*#__PURE__*/_react["default"].createElement(_Card.CardContent, {
465
473
  customClass: "".concat(tabletMode ? _SelectModule["default"].responsivedropBoxList : _SelectModule["default"].dropBoxList, " ").concat(!tabletMode && dropBoxSize ? _SelectModule["default"][dropBoxSize] : ''),
466
474
  shrink: true,
467
- eleRef: _this4.scrollContentRef
475
+ eleRef: _this5.scrollContentRef
468
476
  }, options.length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, options.map(function (options, i) {
469
477
  var iconName = options.iconName,
470
- iconSize = options.iconSize,
471
- iconColor = options.iconColor;
478
+ iconSize = options.iconSize,
479
+ iconColor = options.iconColor;
472
480
  return /*#__PURE__*/_react["default"].createElement(_ListItemWithIcon["default"], {
473
481
  key: options[idKey],
474
482
  value: options[valueKey],
475
483
  size: "medium",
476
- onClick: _this4.handleChange,
484
+ onClick: _this5.handleChange,
477
485
  id: options[idKey],
478
486
  index: i,
479
487
  title: options[valueKey],
@@ -485,9 +493,9 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
485
493
  active: selectedId === options[idKey],
486
494
  needBorder: needListBorder,
487
495
  needTick: needTick,
488
- onMouseEnter: _this4.handleMouseEnter,
496
+ onMouseEnter: _this5.handleMouseEnter,
489
497
  highlight: selectedIndex === i,
490
- getRef: _this4.itemRef,
498
+ getRef: _this5.itemRef,
491
499
  a11y: {
492
500
  role: 'option',
493
501
  ariaSelected: selectedId === options[idKey]
@@ -501,24 +509,22 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
501
509
  dataId: dataId,
502
510
  i18nKeys: i18nKeys,
503
511
  htmlId: ariaErrorId
504
- })))));
512
+ }), isFetchingOptions && /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
513
+ isCover: false,
514
+ align: "both"
515
+ }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], null))))));
505
516
  }) : null);
506
517
  }
507
518
  }]);
508
-
509
519
  return SelectWithIcon;
510
520
  }(_react.Component);
511
-
512
521
  SelectWithIcon.propTypes = _propTypes.SelectWithIcon_propTypes;
513
522
  SelectWithIcon.defaultProps = _defaultProps.SelectWithIcon_defaultProps;
514
-
515
523
  if (false) {
516
524
  SelectWithIcon.docs = {
517
525
  componentGroup: 'Form Elements',
518
526
  folderName: 'Style Guide'
519
527
  };
520
528
  }
521
-
522
529
  var _default = (0, _Popup["default"])(SelectWithIcon);
523
-
524
530
  exports["default"] = _default;