@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
@@ -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,
@@ -445,20 +466,19 @@ class SelectWithIcon extends Component {
445
466
  dataId: dataId,
446
467
  i18nKeys: i18nKeys,
447
468
  htmlId: ariaErrorId
448
- })))));
469
+ }), isFetchingOptions && /*#__PURE__*/React.createElement(Container, {
470
+ isCover: false,
471
+ align: "both"
472
+ }, /*#__PURE__*/React.createElement(Loader, null))))));
449
473
  }) : null);
450
474
  }
451
-
452
475
  }
453
-
454
476
  SelectWithIcon.propTypes = SelectWithIcon_propTypes;
455
477
  SelectWithIcon.defaultProps = SelectWithIcon_defaultProps;
456
-
457
478
  if (false) {
458
479
  SelectWithIcon.docs = {
459
480
  componentGroup: 'Form Elements',
460
481
  folderName: 'Style Guide'
461
482
  };
462
483
  }
463
-
464
484
  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
  });
@@ -1,7 +1,7 @@
1
1
  /**** Libraries ****/
2
2
  import React, { Component } from 'react';
3
- /**** Components ****/
4
3
 
4
+ /**** Components ****/
5
5
  import GroupSelect from '../GroupSelect';
6
6
  let groupedOptions = [{
7
7
  id: 'tickets',
@@ -100,17 +100,14 @@ export default class GroupSelect__default extends Component {
100
100
  this.handleChange = this.handleChange.bind(this);
101
101
  this.groupFooter = this.groupFooter.bind(this);
102
102
  }
103
-
104
103
  handleChange(selectedOption) {
105
104
  this.setState({
106
105
  selectedOption
107
106
  });
108
107
  }
109
-
110
108
  groupFooter() {
111
109
  return /*#__PURE__*/React.createElement("div", null, "Footer");
112
110
  }
113
-
114
111
  render() {
115
112
  let {
116
113
  selectedOption
@@ -138,9 +135,7 @@ export default class GroupSelect__default extends Component {
138
135
  getFooter: this.groupFooter
139
136
  }, "Children"));
140
137
  }
141
-
142
138
  }
143
-
144
139
  if (false) {
145
140
  GroupSelect__default.docs = {
146
141
  componentGroup: 'Form Elements',
@@ -40,13 +40,11 @@ export default class SelectWithAvatar__default extends Component {
40
40
  };
41
41
  this.handleChange = this.handleChange.bind(this);
42
42
  }
43
-
44
43
  handleChange(value) {
45
44
  this.setState({
46
45
  value
47
46
  });
48
47
  }
49
-
50
48
  render() {
51
49
  let {
52
50
  value
@@ -86,9 +84,7 @@ export default class SelectWithAvatar__default extends Component {
86
84
  isDisabled: true
87
85
  })));
88
86
  }
89
-
90
87
  }
91
-
92
88
  if (false) {
93
89
  SelectWithAvatar__default.docs = {
94
90
  componentGroup: 'Form Elements',
@@ -52,7 +52,6 @@ export default class SelectWithIcon__default extends Component {
52
52
  };
53
53
  this.handleChange = this.handleChange.bind(this);
54
54
  }
55
-
56
55
  handleChange(selectedId, selectedValue, index, e) {
57
56
  this.setState({
58
57
  selectedValue,
@@ -61,7 +60,6 @@ export default class SelectWithIcon__default extends Component {
61
60
  selectedIconSize: this.options[index].iconSize
62
61
  });
63
62
  }
64
-
65
63
  render() {
66
64
  let {
67
65
  selectedValue,
@@ -127,9 +125,7 @@ export default class SelectWithIcon__default extends Component {
127
125
  iconName: selectedIcon
128
126
  })));
129
127
  }
130
-
131
128
  }
132
-
133
129
  if (false) {
134
130
  SelectWithIcon__default.docs = {
135
131
  componentGroup: 'Form Elements',
@@ -80,18 +80,15 @@ export default class Select__default extends React.Component {
80
80
  this.handleChange = this.handleChange.bind(this);
81
81
  this.customChildren = this.customChildren.bind(this);
82
82
  }
83
-
84
83
  handleChange(value) {
85
84
  this.setState({
86
85
  value
87
86
  });
88
87
  }
89
-
90
88
  customChildren() {
91
89
  let serach = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
92
90
  return /*#__PURE__*/React.createElement("div", null, serach.searchString, "Custom Children");
93
91
  }
94
-
95
92
  render() {
96
93
  let {
97
94
  value
@@ -275,9 +272,7 @@ export default class Select__default extends React.Component {
275
272
  size: "18"
276
273
  })))));
277
274
  }
278
-
279
275
  }
280
-
281
276
  if (false) {
282
277
  Select__default.docs = {
283
278
  componentGroup: 'Form Elements',
@@ -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',
@@ -32,9 +32,7 @@ export default class Stencils__custom extends React.Component {
32
32
  size: "small"
33
33
  }))));
34
34
  }
35
-
36
35
  }
37
-
38
36
  if (false) {
39
37
  Stencils__custom.docs = {
40
38
  componentGroup: 'Atom',
@@ -37,9 +37,7 @@ export default class Stencils__default extends React.Component {
37
37
  size: "large"
38
38
  }))));
39
39
  }
40
-
41
40
  }
42
-
43
41
  if (false) {
44
42
  Stencils__default.docs = {
45
43
  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',
@@ -4,18 +4,18 @@ import styles from '../../common/docStyle.module.css';
4
4
  export default class Switch__custom extends React.Component {
5
5
  render() {
6
6
  let style = {
7
- margin: '10px'
8
- },
9
- titleStyle = {
10
- fontSize: '13px',
11
- padding: '15px 0',
12
- textTransform: 'upperCase',
13
- borderBottom: '1px solid #e3e6eb'
14
- },
15
- spanStyle = {
16
- display: 'inline-block',
17
- margin: '10px 10px 10px 0'
18
- };
7
+ margin: '10px'
8
+ },
9
+ titleStyle = {
10
+ fontSize: '13px',
11
+ padding: '15px 0',
12
+ textTransform: 'upperCase',
13
+ borderBottom: '1px solid #e3e6eb'
14
+ },
15
+ spanStyle = {
16
+ display: 'inline-block',
17
+ margin: '10px 10px 10px 0'
18
+ };
19
19
  return /*#__PURE__*/React.createElement("div", {
20
20
  style: style
21
21
  }, /*#__PURE__*/React.createElement("div", {
@@ -141,9 +141,7 @@ export default class Switch__custom extends React.Component {
141
141
  text: "Disabled"
142
142
  }))));
143
143
  }
144
-
145
144
  }
146
-
147
145
  if (false) {
148
146
  Switch__custom.docs = {
149
147
  componentGroup: 'Form Elements',