@zohodesk/components 1.0.0-temp-212 → 1.0.0-temp-199.4

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 (339) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +9 -1
  3. package/es/Accordion/Accordion.js +2 -2
  4. package/es/Accordion/AccordionItem.js +4 -4
  5. package/es/Accordion/__tests__/Accordion.spec.js +1 -1
  6. package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
  7. package/es/Accordion/index.js +2 -2
  8. package/es/Animation/Animation.js +3 -3
  9. package/es/Animation/__tests__/Animation.spec.js +1 -1
  10. package/es/Animation/utils.js +1 -1
  11. package/es/AppContainer/AppContainer.js +9 -9
  12. package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
  13. package/es/Avatar/Avatar.js +5 -5
  14. package/es/Avatar/__tests__/Avatar.spec.js +1 -1
  15. package/es/AvatarTeam/AvatarTeam.js +4 -4
  16. package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
  17. package/es/Button/Button.js +6 -13
  18. package/es/Button/__tests__/Button.spec.js +1 -1
  19. package/es/Button/css/Button.module.css +0 -78
  20. package/es/Button/css/cssJSLogic.js +3 -7
  21. package/es/Button/index.js +2 -2
  22. package/es/Button/props/defaultProps.js +1 -1
  23. package/es/Buttongroup/Buttongroup.js +3 -3
  24. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  25. package/es/Card/Card.js +5 -5
  26. package/es/Card/__tests__/Card.spec.js +1 -1
  27. package/es/Card/index.js +4 -4
  28. package/es/CheckBox/CheckBox.js +6 -6
  29. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  30. package/es/DateTime/CalendarView.js +6 -6
  31. package/es/DateTime/DateTime.js +15 -15
  32. package/es/DateTime/DateTimePopupFooter.js +5 -5
  33. package/es/DateTime/DateTimePopupHeader.js +4 -4
  34. package/es/DateTime/DateWidget.js +17 -17
  35. package/es/DateTime/DaysRow.js +3 -3
  36. package/es/DateTime/Time.js +5 -5
  37. package/es/DateTime/YearView.js +6 -6
  38. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  39. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  40. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  41. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  42. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  43. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  44. package/es/DateTime/__tests__/Time.spec.js +1 -1
  45. package/es/DateTime/__tests__/YearView.spec.js +1 -1
  46. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  47. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  48. package/es/DateTime/dateFormatUtils/index.js +3 -3
  49. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  50. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  51. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  52. package/es/DateTime/index.js +1 -1
  53. package/es/DateTime/props/propTypes.js +1 -1
  54. package/es/DateTime/validator.js +2 -2
  55. package/es/DropBox/DropBox.js +9 -9
  56. package/es/DropBox/DropBoxElement/DropBoxElement.js +9 -7
  57. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  58. package/es/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -0
  59. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  60. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  61. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  62. package/es/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -0
  63. package/es/DropBox/css/cssJSLogic.js +1 -1
  64. package/es/DropBox/props/defaultProps.js +1 -1
  65. package/es/DropBox/props/propTypes.js +1 -1
  66. package/es/DropBox/utils/isMobilePopover.js +1 -1
  67. package/es/DropDown/DropDown.js +4 -4
  68. package/es/DropDown/DropDownHeading.js +3 -3
  69. package/es/DropDown/DropDownItem.js +3 -3
  70. package/es/DropDown/DropDownSearch.js +4 -4
  71. package/es/DropDown/DropDownSeparator.js +2 -2
  72. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  73. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  74. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  75. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  76. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  77. package/es/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +1 -0
  78. package/es/DropDown/index.js +7 -7
  79. package/es/DropDown/props/propTypes.js +1 -1
  80. package/es/Heading/Heading.js +4 -4
  81. package/es/Heading/__tests__/Heading.spec.js +1 -1
  82. package/es/Label/Label.js +4 -4
  83. package/es/Label/__tests__/Label.spec.js +1 -1
  84. package/es/Layout/Box.js +4 -4
  85. package/es/Layout/Container.js +4 -4
  86. package/es/Layout/__tests__/Box.spec.js +1 -1
  87. package/es/Layout/__tests__/Container.spec.js +1 -1
  88. package/es/Layout/index.js +2 -2
  89. package/es/ListItem/ListContainer.js +6 -6
  90. package/es/ListItem/ListItem.js +7 -7
  91. package/es/ListItem/ListItem.module.css +85 -18
  92. package/es/ListItem/ListItemWithAvatar.js +10 -10
  93. package/es/ListItem/ListItemWithCheckBox.js +6 -6
  94. package/es/ListItem/ListItemWithIcon.js +7 -7
  95. package/es/ListItem/ListItemWithRadio.js +6 -6
  96. package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
  97. package/es/ListItem/__tests__/ListItem.spec.js +1 -1
  98. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
  99. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
  100. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
  101. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
  102. package/es/ListItem/index.js +6 -6
  103. package/es/Modal/Modal.js +3 -3
  104. package/es/Modal/__tests__/Modal.spec.js +1 -1
  105. package/es/MultiSelect/AdvancedGroupMultiSelect.js +24 -19
  106. package/es/MultiSelect/AdvancedMultiSelect.js +19 -18
  107. package/es/MultiSelect/EmptyState.js +3 -3
  108. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  109. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  110. package/es/MultiSelect/MultiSelect.js +27 -22
  111. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  112. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  113. package/es/MultiSelect/SelectedOptions.js +5 -5
  114. package/es/MultiSelect/Suggestions.js +14 -10
  115. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  116. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
  117. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  118. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  119. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  120. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  121. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  122. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  123. package/es/MultiSelect/index.js +4 -4
  124. package/es/MultiSelect/props/defaultProps.js +7 -5
  125. package/es/MultiSelect/props/propTypes.js +6 -3
  126. package/es/PopOver/PopOver.js +6 -6
  127. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  128. package/es/PopOver/index.js +3 -3
  129. package/es/Popup/Popup.js +110 -11
  130. package/es/Popup/intersectionObserver.js +39 -0
  131. package/es/Popup/props/propTypes.js +30 -0
  132. package/es/Provider/AvatarSize.js +1 -1
  133. package/es/Provider/CssProvider.js +1 -1
  134. package/es/Provider/IdProvider.js +2 -2
  135. package/es/Provider/LibraryContext.js +3 -5
  136. package/es/Provider/ZindexProvider.js +2 -2
  137. package/es/Provider/index.js +4 -4
  138. package/es/Radio/Radio.js +5 -5
  139. package/es/Radio/__tests__/Radio.spec.js +1 -1
  140. package/es/Responsive/CustomResponsive.js +7 -7
  141. package/es/Responsive/ResizeComponent.js +2 -2
  142. package/es/Responsive/Responsive.js +6 -6
  143. package/es/Responsive/index.js +3 -3
  144. package/es/Responsive/utils/index.js +1 -1
  145. package/es/Responsive/windowResizeObserver.js +1 -1
  146. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  147. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  148. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1 -0
  149. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  150. package/es/Ribbon/Ribbon.js +3 -3
  151. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  152. package/es/RippleEffect/RippleEffect.js +4 -4
  153. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  154. package/es/Select/GroupSelect.js +23 -18
  155. package/es/Select/Select.js +15 -15
  156. package/es/Select/SelectWithAvatar.js +24 -19
  157. package/es/Select/SelectWithIcon.js +17 -15
  158. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  159. package/es/Select/__tests__/Select.spec.js +1 -1
  160. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  161. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  162. package/es/Select/index.js +4 -4
  163. package/es/Select/props/defaultProps.js +5 -3
  164. package/es/Select/props/propTypes.js +4 -2
  165. package/es/Stencils/Stencils.js +3 -3
  166. package/es/Stencils/__tests__/Stencils.spec.js +1 -1
  167. package/es/Switch/Switch.js +5 -5
  168. package/es/Switch/__tests__/Switch.spec.js +1 -1
  169. package/es/Tab/Tab.js +5 -5
  170. package/es/Tab/TabContent.js +4 -4
  171. package/es/Tab/TabContentWrapper.js +3 -3
  172. package/es/Tab/TabWrapper.js +3 -3
  173. package/es/Tab/Tabs.js +13 -13
  174. package/es/Tab/__tests__/Tab.spec.js +1 -1
  175. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  176. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  177. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  178. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  179. package/es/Tab/index.js +5 -5
  180. package/es/Tag/Tag.js +7 -7
  181. package/es/Tag/__tests__/Tag.spec.js +1 -1
  182. package/es/TextBox/TextBox.js +4 -4
  183. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  184. package/es/TextBoxIcon/TextBoxIcon.js +6 -6
  185. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  186. package/es/TextBoxIcon/props/propTypes.js +1 -1
  187. package/es/Textarea/Textarea.js +3 -3
  188. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  189. package/es/Tooltip/Tooltip.js +6 -6
  190. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  191. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  192. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  193. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  194. package/es/VelocityAnimation/index.js +2 -2
  195. package/es/css.js +37 -37
  196. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  197. package/es/index.js +39 -39
  198. package/es/semantic/Button/Button.js +3 -3
  199. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  200. package/es/semantic/index.js +1 -1
  201. package/es/utils/Common.js +1 -1
  202. package/es/utils/ContextOptimizer.js +1 -1
  203. package/es/utils/cssUtils.js +1 -1
  204. package/es/utils/datetime/common.js +1 -1
  205. package/es/utils/dropDownUtils.js +1 -1
  206. package/es/utils/index.js +1 -1
  207. package/es/v1/Accordion/Accordion.js +2 -2
  208. package/es/v1/Accordion/AccordionItem.js +4 -4
  209. package/es/v1/Accordion/index.js +2 -2
  210. package/es/v1/Animation/Animation.js +3 -3
  211. package/es/v1/Animation/utils.js +1 -1
  212. package/es/v1/AppContainer/AppContainer.js +8 -8
  213. package/es/v1/Avatar/Avatar.js +5 -5
  214. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  215. package/es/v1/Button/Button.js +4 -4
  216. package/es/v1/Button/props/defaultProps.js +1 -1
  217. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  218. package/es/v1/Card/Card.js +5 -5
  219. package/es/v1/Card/index.js +4 -4
  220. package/es/v1/CheckBox/CheckBox.js +6 -6
  221. package/es/v1/DateTime/CalendarView.js +7 -7
  222. package/es/v1/DateTime/DateTime.js +15 -15
  223. package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
  224. package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
  225. package/es/v1/DateTime/DateWidget.js +17 -17
  226. package/es/v1/DateTime/DaysRow.js +3 -3
  227. package/es/v1/DateTime/Time.js +5 -5
  228. package/es/v1/DateTime/YearView.js +6 -6
  229. package/es/v1/DateTime/index.js +1 -1
  230. package/es/v1/DateTime/props/propTypes.js +1 -1
  231. package/es/v1/DropBox/DropBox.js +9 -9
  232. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  233. package/es/v1/DropBox/props/defaultProps.js +1 -1
  234. package/es/v1/DropBox/props/propTypes.js +1 -1
  235. package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
  236. package/es/v1/DropDown/DropDown.js +4 -4
  237. package/es/v1/DropDown/DropDownHeading.js +3 -3
  238. package/es/v1/DropDown/DropDownItem.js +3 -3
  239. package/es/v1/DropDown/DropDownSearch.js +4 -4
  240. package/es/v1/DropDown/DropDownSeparator.js +2 -2
  241. package/es/v1/DropDown/props/propTypes.js +1 -1
  242. package/es/v1/Heading/Heading.js +4 -4
  243. package/es/v1/Label/Label.js +4 -4
  244. package/es/v1/Layout/Box.js +4 -4
  245. package/es/v1/Layout/Container.js +4 -4
  246. package/es/v1/Layout/index.js +2 -2
  247. package/es/v1/ListItem/ListContainer.js +6 -6
  248. package/es/v1/ListItem/ListItem.js +5 -5
  249. package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
  250. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  251. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  252. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  253. package/es/v1/ListItem/index.js +6 -6
  254. package/es/v1/Modal/Modal.js +3 -3
  255. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  256. package/es/v1/MultiSelect/AdvancedMultiSelect.js +19 -18
  257. package/es/v1/MultiSelect/EmptyState.js +3 -3
  258. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  259. package/es/v1/MultiSelect/MultiSelect.js +26 -21
  260. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  261. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  262. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  263. package/es/v1/MultiSelect/Suggestions.js +14 -10
  264. package/es/v1/MultiSelect/index.js +4 -4
  265. package/es/v1/MultiSelect/props/defaultProps.js +5 -3
  266. package/es/v1/MultiSelect/props/propTypes.js +6 -2
  267. package/es/v1/PopOver/PopOver.js +6 -6
  268. package/es/v1/Popup/Popup.js +3 -3
  269. package/es/v1/Radio/Radio.js +5 -5
  270. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  271. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  272. package/es/v1/Ribbon/Ribbon.js +3 -3
  273. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  274. package/es/v1/Select/GroupSelect.js +23 -18
  275. package/es/v1/Select/Select.js +15 -15
  276. package/es/v1/Select/SelectWithAvatar.js +24 -19
  277. package/es/v1/Select/SelectWithIcon.js +13 -13
  278. package/es/v1/Select/index.js +4 -4
  279. package/es/v1/Select/props/defaultProps.js +5 -3
  280. package/es/v1/Select/props/propTypes.js +6 -2
  281. package/es/v1/Stencils/Stencils.js +3 -3
  282. package/es/v1/Switch/Switch.js +5 -5
  283. package/es/v1/Tab/Tab.js +5 -5
  284. package/es/v1/Tab/TabContent.js +4 -4
  285. package/es/v1/Tab/TabContentWrapper.js +3 -3
  286. package/es/v1/Tab/TabWrapper.js +3 -3
  287. package/es/v1/Tab/Tabs.js +13 -13
  288. package/es/v1/Tab/index.js +5 -5
  289. package/es/v1/Tag/Tag.js +7 -7
  290. package/es/v1/TextBox/TextBox.js +3 -3
  291. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  292. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  293. package/es/v1/Textarea/Textarea.js +3 -3
  294. package/es/v1/Tooltip/Tooltip.js +6 -6
  295. package/es/v1/Typography/Typography.js +4 -4
  296. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  297. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  298. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  299. package/es/v1/semantic/Button/Button.js +3 -3
  300. package/es/v1/semantic/index.js +1 -1
  301. package/lib/Button/Button.js +2 -24
  302. package/lib/Button/css/Button.module.css +0 -78
  303. package/lib/Button/css/cssJSLogic.js +10 -13
  304. package/lib/DropBox/DropBoxElement/DropBoxElement.js +3 -1
  305. package/lib/DropBox/DropBoxElement/__tests__/__snapshots__/DropBoxElement.spec.js.snap +1 -0
  306. package/lib/DropBox/__tests__/__snapshots__/DropBox.spec.js.snap +1 -0
  307. package/lib/DropDown/__tests__/__snapshots__/DropDown.spec.js.snap +1 -0
  308. package/lib/ListItem/ListItem.js +2 -2
  309. package/lib/ListItem/ListItem.module.css +85 -18
  310. package/lib/ListItem/ListItemWithAvatar.js +3 -3
  311. package/lib/ListItem/ListItemWithIcon.js +2 -2
  312. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +7 -3
  313. package/lib/MultiSelect/AdvancedMultiSelect.js +3 -1
  314. package/lib/MultiSelect/MultiSelect.js +6 -3
  315. package/lib/MultiSelect/Suggestions.js +8 -4
  316. package/lib/MultiSelect/props/defaultProps.js +6 -4
  317. package/lib/MultiSelect/props/propTypes.js +8 -6
  318. package/lib/Popup/Popup.js +118 -9
  319. package/lib/Popup/intersectionObserver.js +62 -0
  320. package/lib/Popup/props/propTypes.js +51 -0
  321. package/lib/Provider/LibraryContext.js +1 -3
  322. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1 -0
  323. package/lib/Select/GroupSelect.js +8 -3
  324. package/lib/Select/SelectWithAvatar.js +8 -3
  325. package/lib/Select/SelectWithIcon.js +5 -3
  326. package/lib/Select/props/defaultProps.js +4 -2
  327. package/lib/Select/props/propTypes.js +4 -2
  328. package/lib/TextBox/TextBox.js +1 -1
  329. package/lib/v1/MultiSelect/AdvancedMultiSelect.js +3 -1
  330. package/lib/v1/MultiSelect/MultiSelect.js +8 -3
  331. package/lib/v1/MultiSelect/Suggestions.js +8 -4
  332. package/lib/v1/MultiSelect/props/defaultProps.js +4 -2
  333. package/lib/v1/MultiSelect/props/propTypes.js +6 -2
  334. package/lib/v1/Select/GroupSelect.js +8 -3
  335. package/lib/v1/Select/SelectWithAvatar.js +8 -3
  336. package/lib/v1/Select/props/defaultProps.js +4 -2
  337. package/lib/v1/Select/props/propTypes.js +6 -2
  338. package/package.json +5 -5
  339. package/result.json +1 -1
package/es/Popup/Popup.js CHANGED
@@ -1,13 +1,14 @@
1
1
  /**** Libraries ****/
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import hoistStatics from 'hoist-non-react-statics';
4
+ import { PopupPropTypes, ContextTypes } from "./props/propTypes";
5
5
  /**** Methods ****/
6
6
 
7
- import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from '../utils/Common.js';
8
- import viewPort from './viewPort';
9
- import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from './PositionMapping.js';
7
+ import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from "../utils/Common.js";
8
+ import viewPort from "./viewPort";
9
+ import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from "./PositionMapping.js";
10
10
  import ResizeObserver from '@zohodesk/virtualizer/lib/commons/ResizeObserver.js';
11
+ import { addIntersectionObserver, removeIntersectionObserver } from "./intersectionObserver";
11
12
  let lastOpenedGroup = [];
12
13
  let popups = {};
13
14
 
@@ -89,6 +90,12 @@ const Popup = function (Component) {
89
90
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
90
91
  this.handleDocumentFocus = this.handleDocumentFocus.bind(this);
91
92
  this.handleGetNeedPrevent = this.handleGetNeedPrevent.bind(this);
93
+ this.handleBlockScroll = this.handleBlockScroll.bind(this);
94
+ this.handlePositionChange = this.handlePositionChange.bind(this);
95
+ this.preventKeyboardScroll = this.preventKeyboardScroll.bind(this);
96
+ this.addScrollBlockListeners = this.addScrollBlockListeners.bind(this);
97
+ this.removeScrollBlockListeners = this.removeScrollBlockListeners.bind(this);
98
+ this.handleIntersectionObserver = this.handleIntersectionObserver.bind(this);
92
99
  this.popupObserver = new ResizeObserver(this.handlePopupResize); //dropBoxSize
93
100
 
94
101
  this.size = null;
@@ -101,6 +108,7 @@ const Popup = function (Component) {
101
108
  scrollDebounceTime
102
109
  } = this.getScrollDebounceTime(this);
103
110
  this.handleScroll = debounce(this.handleScroll.bind(this), scrollDebounceTime);
111
+ this.handleDebouncedPositionChange = debounce(this.handlePositionChange.bind(this), 100);
104
112
  }
105
113
 
106
114
  componentDidMount() {
@@ -144,7 +152,9 @@ const Popup = function (Component) {
144
152
  dropElement
145
153
  } = this;
146
154
  const {
147
- needResizeHandling: propResizeHandling
155
+ needResizeHandling: propResizeHandling,
156
+ isAbsolutePositioningNeeded,
157
+ isOutsideScrollBlocked
148
158
  } = this.props;
149
159
 
150
160
  if (oldStateOpen !== isPopupReady) {
@@ -154,6 +164,16 @@ const Popup = function (Component) {
154
164
  this.size = null;
155
165
  this.popupObserver.disconnect();
156
166
  }
167
+
168
+ if (isOutsideScrollBlocked && !isAbsolutePositioningNeeded) {
169
+ if (isPopupReady) {
170
+ addIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
171
+ this.addScrollBlockListeners();
172
+ } else {
173
+ removeIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
174
+ this.removeScrollBlockListeners();
175
+ }
176
+ }
157
177
  }
158
178
  }
159
179
 
@@ -169,6 +189,8 @@ const Popup = function (Component) {
169
189
 
170
190
  return res;
171
191
  }, popups);
192
+ removeIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
193
+ this.removeScrollBlockListeners();
172
194
  let noPopups = true;
173
195
 
174
196
  for (const i in popups) {
@@ -193,6 +215,82 @@ const Popup = function (Component) {
193
215
  }
194
216
  }
195
217
 
218
+ addScrollBlockListeners() {
219
+ document.addEventListener('wheel', this.handleBlockScroll, {
220
+ capture: true,
221
+ passive: false
222
+ });
223
+ document.addEventListener('touchmove', this.handleBlockScroll, {
224
+ capture: true,
225
+ passive: false
226
+ });
227
+ document.addEventListener('scroll', this.handleDebouncedPositionChange, {
228
+ capture: true,
229
+ passive: false
230
+ });
231
+ document.addEventListener('keydown', this.preventKeyboardScroll, {
232
+ capture: true,
233
+ passive: false
234
+ });
235
+ }
236
+
237
+ removeScrollBlockListeners() {
238
+ document.removeEventListener('wheel', this.handleBlockScroll, {
239
+ capture: true,
240
+ passive: false
241
+ });
242
+ document.removeEventListener('touchmove', this.handleBlockScroll, {
243
+ capture: true,
244
+ passive: false
245
+ });
246
+ document.removeEventListener('scroll', this.handleDebouncedPositionChange, {
247
+ capture: true,
248
+ passive: false
249
+ });
250
+ document.removeEventListener('keydown', this.preventKeyboardScroll, {
251
+ capture: true,
252
+ passive: false
253
+ });
254
+ }
255
+
256
+ handleBlockScroll(event) {
257
+ // const targetElement = this.placeHolderElement;
258
+ const containerElement = this.dropElement;
259
+
260
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target)) {
261
+ // --- Scroll exclude Target & Container elements --- For reference. Will adopt in future
262
+ // if(
263
+ // (containerElement && (containerElement !== event.target && !containerElement.contains(event.target)))
264
+ // && (targetElement && (targetElement !== event.target && !targetElement.contains(event.target)))
265
+ // ) {
266
+ event.preventDefault();
267
+ }
268
+ }
269
+
270
+ handlePositionChange(event) {
271
+ const targetElement = this.placeHolderElement;
272
+ const containerElement = this.dropElement;
273
+
274
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && targetElement && targetElement !== event.target && !targetElement.contains(event.target) && event.target.contains(targetElement)) {
275
+ this.handlePopupPosition(this.state.position); // this.closePopupOnly(event);
276
+ }
277
+ }
278
+
279
+ preventKeyboardScroll(event) {
280
+ const containerElement = this.dropElement;
281
+ const keys = [32, 37, 38, 39, 40]; // Space, Arrow keys
282
+
283
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && keys.includes(event.keyCode)) {
284
+ event.preventDefault();
285
+ }
286
+ }
287
+
288
+ handleIntersectionObserver(entry) {
289
+ if (entry.intersectionRatio === 0) {
290
+ this.closePopupOnly();
291
+ }
292
+ }
293
+
196
294
  getGroup() {
197
295
  const {
198
296
  popupGroup
@@ -523,13 +621,15 @@ const Popup = function (Component) {
523
621
  } = betterPosition || {};
524
622
  const {
525
623
  left: oldLeft = '',
526
- top: oldTop = ''
624
+ top: oldTop = '',
625
+ bottom: oldBottom = ''
527
626
  } = positionsOffset[position] || {};
528
627
  const {
529
628
  left = '',
530
- top = ''
629
+ top = '',
630
+ bottom = ''
531
631
  } = viewsOffset[view] || {};
532
- const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
632
+ const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top || oldBottom !== bottom; // let isInViewPort = viewPort.isInViewPort(
533
633
  // placeHolderElement,
534
634
  // scrollContainer
535
635
  // );
@@ -635,9 +735,8 @@ const Popup = function (Component) {
635
735
  }
636
736
 
637
737
  Popup.displayName = Component.displayName || Component.name || Popup.name;
638
- Popup.contextTypes = {
639
- direction: PropTypes.string
640
- };
738
+ Popup.contextTypes = ContextTypes;
739
+ Popup.propTypes = PopupPropTypes;
641
740
  return hoistStatics(Popup, Component);
642
741
  };
643
742
 
@@ -0,0 +1,39 @@
1
+ let observerCallbacks = null;
2
+ let intersectionObserver = null;
3
+
4
+ function handleObserverCallbacks(entries) {
5
+ entries.map((entry, i) => {
6
+ let oldCallbacks = observerCallbacks.get(entry.target);
7
+ oldCallbacks.length && oldCallbacks.forEach(callback => {
8
+ callback && callback(entry);
9
+ });
10
+ });
11
+ }
12
+
13
+ export function addIntersectionObserver(element, callback, options) {
14
+ if (intersectionObserver === null && observerCallbacks === null) {
15
+ intersectionObserver = new IntersectionObserver(entries => {
16
+ handleObserverCallbacks(entries);
17
+ }, options);
18
+ observerCallbacks = new Map();
19
+ }
20
+
21
+ intersectionObserver.observe(element);
22
+ let oldCallbacks = observerCallbacks.get(element) || [];
23
+ observerCallbacks.set(element, [...oldCallbacks, callback]);
24
+ }
25
+ export function removeIntersectionObserver(element, callback) {
26
+ let oldCallbacks = observerCallbacks ? observerCallbacks.get(element) : [];
27
+ oldCallbacks = oldCallbacks.filter(handler => handler !== callback);
28
+
29
+ if (intersectionObserver && oldCallbacks.length === 0) {
30
+ observerCallbacks.delete(element);
31
+ intersectionObserver.unobserve(element);
32
+ }
33
+
34
+ if (intersectionObserver && observerCallbacks && observerCallbacks.size === 0) {
35
+ intersectionObserver.disconnect();
36
+ intersectionObserver = null;
37
+ observerCallbacks = null;
38
+ }
39
+ }
@@ -0,0 +1,30 @@
1
+ import PropTypes from 'prop-types';
2
+ export const ContextTypes = {
3
+ direction: PropTypes.string
4
+ };
5
+ export const PopupPropTypes = {
6
+ popupGroup: PropTypes.string,
7
+ isArrow: PropTypes.bool,
8
+ isPopupOpen: PropTypes.bool,
9
+ closeOnScroll: PropTypes.bool,
10
+ isOutsideScrollBlocked: PropTypes.bool,
11
+ needResizeHandling: PropTypes.bool,
12
+ isAbsolutePositioningNeeded: PropTypes.bool,
13
+ scrollDebounceTime: PropTypes.number,
14
+ customOrder: PropTypes.arrayOf(PropTypes.string),
15
+ checkBeforeClose: PropTypes.func
16
+ };
17
+ export const PopupWrappersPropTypes = {
18
+ openPopupOnly: PropTypes.func,
19
+ closePopupOnly: PropTypes.func,
20
+ togglePopup: PropTypes.func,
21
+ removeClose: PropTypes.func,
22
+ isPopupReady: PropTypes.bool,
23
+ position: PropTypes.oneOf(['bottomRight', 'bottomLeft', 'bottomCenter', 'topRight', 'topLeft', 'topCenter', 'rightTop', 'rightBottom', 'rightCenter', 'leftTop', 'leftBottom', 'leftCenter']),
24
+ getTargetRef: PropTypes.func,
25
+ getContainerRef: PropTypes.func,
26
+ ...PopupPropTypes,
27
+ isRestrictScroll: PropTypes.bool,
28
+ positionsOffset: PropTypes.object,
29
+ targetOffset: PropTypes.object
30
+ };
@@ -1,4 +1,4 @@
1
- import style from '../common/avatarsizes.module.css';
1
+ import style from "../common/avatarsizes.module.css";
2
2
  let styleList = {
3
3
  small: style.small,
4
4
  xsmall: style.xsmall,
@@ -1,4 +1,4 @@
1
- import style from '../common/common.module.css';
1
+ import style from "../common/common.module.css";
2
2
  let styleList = {
3
3
  hide: style.hide,
4
4
  isDisabled: style.disabled,
@@ -1,5 +1,5 @@
1
- import { useNumberGenerator, getNumberGenerators } from './NumberGenerator/NumberGenerator';
2
- import { getLibraryConfig } from './Config';
1
+ import { useNumberGenerator, getNumberGenerators } from "./NumberGenerator/NumberGenerator";
2
+ import { getLibraryConfig } from "./Config";
3
3
  let globalId = getLibraryConfig('idCounter'),
4
4
  deletedIndexes = [],
5
5
  globalPrefix;
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import LibraryContextInit from './LibraryContextInit';
4
- import { getLibraryConfig } from './Config';
3
+ import LibraryContextInit from "./LibraryContextInit";
4
+ import { getLibraryConfig } from "./Config";
5
5
 
6
6
  const LibraryContextProvider = _ref => {
7
7
  let {
@@ -9,15 +9,13 @@ const LibraryContextProvider = _ref => {
9
9
  direction,
10
10
  coloredTagVariant,
11
11
  hasTagColorInheritedToText,
12
- a11y_strikeThroughButtons,
13
12
  children
14
13
  } = _ref;
15
14
  const [value, setValue] = useState({
16
15
  isReducedMotion,
17
16
  direction,
18
17
  coloredTagVariant,
19
- hasTagColorInheritedToText,
20
- a11y_strikeThroughButtons
18
+ hasTagColorInheritedToText
21
19
  });
22
20
 
23
21
  function setGlobalContext(key, data) {
@@ -1,5 +1,5 @@
1
- import { useNumberGenerator, getNumberGenerators } from './NumberGenerator/NumberGenerator';
2
- import { getLibraryConfig } from './Config';
1
+ import { useNumberGenerator, getNumberGenerators } from "./NumberGenerator/NumberGenerator";
2
+ import { getLibraryConfig } from "./Config";
3
3
  let globalId = getLibraryConfig('zindexCounter'),
4
4
  deletedIndexes = [],
5
5
  globalPrefix;
@@ -1,4 +1,4 @@
1
- export { getLibraryConfig, setLibraryConfig } from './Config';
2
- export { default as LibraryContextProvider } from './LibraryContext';
3
- export { removeGlobalZIndexPrefix, setInitialZIndex, useZIndex, getZIndex } from './ZindexProvider';
4
- export { setGlobalIdPrefix, removeGlobalIdPrefix, useUniqueId, getUniqueId } from './IdProvider';
1
+ export { getLibraryConfig, setLibraryConfig } from "./Config";
2
+ export { default as LibraryContextProvider } from "./LibraryContext";
3
+ export { removeGlobalZIndexPrefix, setInitialZIndex, useZIndex, getZIndex } from "./ZindexProvider";
4
+ export { setGlobalIdPrefix, removeGlobalIdPrefix, useUniqueId, getUniqueId } from "./IdProvider";
package/es/Radio/Radio.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: ['small', 'medium'] }] */
2
2
  import React from 'react';
3
- import { defaultProps } from './props/defaultProps';
4
- import { propTypes } from './props/propTypes';
5
- import Label from '../Label/Label';
6
- import { Container, Box } from '../Layout';
7
- import style from './Radio.module.css';
3
+ import { defaultProps } from "./props/defaultProps";
4
+ import { propTypes } from "./props/propTypes";
5
+ import Label from "../Label/Label";
6
+ import { Container, Box } from "../Layout";
7
+ import style from "./Radio.module.css";
8
8
  export default class Radio extends React.Component {
9
9
  constructor(props) {
10
10
  super(props);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Radio from '../Radio.js';
3
+ import Radio from "../Radio.js";
4
4
  describe('Radio', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -1,11 +1,11 @@
1
1
  import React, { useContext, useEffect, useState, useRef, useMemo } from 'react';
2
- import { CustomResponsiveSender_defaultProps, CustomResponsiveReceiver_defaultProps } from './props/defaultProps';
3
- import { CustomResponsiveSender_propTypes, CustomResponsiveReceiver_propTypes } from './props/propTypes';
4
- import ResizeObserver from './ResizeObserver';
5
- import DOMRefWrapper from './RefWrapper';
6
- import shallowCompare from './utils/shallowCompare';
7
- import { isBreackPointMatched, Subscribale, isTouchDevice, windowResizeObserver } from './sizeObservers';
8
- import { ContextOptimizer } from '../utils/ContextOptimizer'; // const commonBreakPoints = [ 480, 640, 768, 1024, 1440 ];
2
+ import { CustomResponsiveSender_defaultProps, CustomResponsiveReceiver_defaultProps } from "./props/defaultProps";
3
+ import { CustomResponsiveSender_propTypes, CustomResponsiveReceiver_propTypes } from "./props/propTypes";
4
+ import ResizeObserver from "./ResizeObserver";
5
+ import DOMRefWrapper from "./RefWrapper";
6
+ import shallowCompare from "./utils/shallowCompare";
7
+ import { isBreackPointMatched, Subscribale, isTouchDevice, windowResizeObserver } from "./sizeObservers";
8
+ import { ContextOptimizer } from "../utils/ContextOptimizer"; // const commonBreakPoints = [ 480, 640, 768, 1024, 1440 ];
9
9
  // const otherBreakPoints = [320, 360, 375, 720, 1280, 1600, 1920];
10
10
  // defaultResponsiveId means if ResponsiveSender do not recive id This will be id
11
11
 
@@ -4,8 +4,8 @@
4
4
  // 2) debounce Mutation observer and resize observer
5
5
  import React from 'react';
6
6
  import PropTypes from 'prop-types';
7
- import ResizeObserver from './ResizeObserver';
8
- import { getElementSpace, debounce } from '../utils/Common';
7
+ import ResizeObserver from "./ResizeObserver";
8
+ import { getElementSpace, debounce } from "../utils/Common";
9
9
  export default class ResizeComponent extends React.Component {
10
10
  constructor(props) {
11
11
  super(props);
@@ -1,11 +1,11 @@
1
1
  import React, { useContext, useEffect, useState, useMemo } from 'react'; // import React, { useState, useMemo, useCallback, useContext } from 'react';
2
2
 
3
- import { ResponsiveSender_defaultProps, ResponsiveReceiver_defaultProps } from './props/defaultProps';
4
- import { ResponsiveSender_propTypes, ResponsiveReceiver_propTypes } from './props/propTypes';
5
- import ResizeObserver from './ResizeObserver';
6
- import DOMRefWrapper from './RefWrapper';
7
- import { windowResizeObserver } from './windowResizeObserver';
8
- import { getBreakPointValue, defaultMatcher } from './utils/'; // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
3
+ import { ResponsiveSender_defaultProps, ResponsiveReceiver_defaultProps } from "./props/defaultProps";
4
+ import { ResponsiveSender_propTypes, ResponsiveReceiver_propTypes } from "./props/propTypes";
5
+ import ResizeObserver from "./ResizeObserver";
6
+ import DOMRefWrapper from "./RefWrapper";
7
+ import { windowResizeObserver } from "./windowResizeObserver";
8
+ import { getBreakPointValue, defaultMatcher } from "./utils/"; // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
9
9
 
10
10
  export const ResponsiveContext = /*#__PURE__*/React.createContext({});
11
11
  const defaultResponsiveId = 'parentReceiver';
@@ -1,6 +1,6 @@
1
- export { ResponsiveSender as CustomResponsiveSender, ResponsiveReceiver as CustomResponsiveReceiver, useResponsiveReceiver as useCustomResponsiveReceiver } from './CustomResponsive';
2
- export { ResponsiveSender, ResponsiveReceiver, useResponsiveReceiver } from './Responsive';
3
- export { default as ResizeComponent } from './ResizeComponent'; // let Responsive = {
1
+ export { ResponsiveSender as CustomResponsiveSender, ResponsiveReceiver as CustomResponsiveReceiver, useResponsiveReceiver as useCustomResponsiveReceiver } from "./CustomResponsive";
2
+ export { ResponsiveSender, ResponsiveReceiver, useResponsiveReceiver } from "./Responsive";
3
+ export { default as ResizeComponent } from "./ResizeComponent"; // let Responsive = {
4
4
  // docs: {
5
5
  // componentGroup: 'Layout',
6
6
  // folderName: 'Style Guide'
@@ -1,4 +1,4 @@
1
- import { getHTMLFontSize } from '../../utils/getHTMLFontSize';
1
+ import { getHTMLFontSize } from "../../utils/getHTMLFontSize";
2
2
  export const breakPoints = {
3
3
  // common break points
4
4
  MOBILE: 30,
@@ -1,4 +1,4 @@
1
- import { defaultMatcher } from './utils/';
1
+ import { defaultMatcher } from "./utils/";
2
2
  export const windowResizeObserver = (() => {
3
3
  let listeners = [];
4
4
  let size = {
@@ -1,10 +1,10 @@
1
1
  import React, { Component } from 'react';
2
- import { defaultProps } from './props/defaultProps';
3
- import { propTypes } from './props/propTypes';
4
- import DropBox from '../DropBox/DropBox';
5
- import { Container } from '../Layout';
6
- import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
7
- import style from './ResponsiveDropBox.module.css';
2
+ import { defaultProps } from "./props/defaultProps";
3
+ import { propTypes } from "./props/propTypes";
4
+ import DropBox from "../DropBox/DropBox";
5
+ import { Container } from "../Layout";
6
+ import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
7
+ import style from "./ResponsiveDropBox.module.css";
8
8
  export default class ResponsiveDropBox extends Component {
9
9
  constructor(props) {
10
10
  super(props);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import ResponsiveDropBox from '../ResponsiveDropBox';
3
+ import ResponsiveDropBox from "../ResponsiveDropBox";
4
4
  describe('ResponsiveDropBox', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -9,6 +9,7 @@ exports[`ResponsiveDropBox rendering the defult props 1`] = `
9
9
  data-position="bottomStart"
10
10
  data-selector-id="dropBox"
11
11
  data-test-id="dropBox"
12
+ dot-ui-element="dropbox"
12
13
  >
13
14
  <div
14
15
  class="subContainer bottom_shadow radius defaultPalette"
@@ -1,5 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
- import { DropBoxPropTypes } from './../../DropBox/props/propTypes';
2
+ import { DropBoxPropTypes } from "./../../DropBox/props/propTypes";
3
3
  export const propTypes = { ...DropBoxPropTypes,
4
4
  children: PropTypes.element,
5
5
  customClass: PropTypes.object,
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { defaultProps } from './props/defaultProps';
3
- import { propTypes } from './props/propTypes';
2
+ import { defaultProps } from "./props/defaultProps";
3
+ import { propTypes } from "./props/propTypes";
4
4
  /* eslint css-modules/no-unused-class: [2, { markAsUsed: [default, flag, plain, ribbon, box, stamp, sticker, small, medium, large, xlarge, palette_default, palette_danger, palette_primary, palette_secondary, palette_info, palette_dark, plain_default, plain_danger, plain_primary, plain_secondary, plain_info, plain_dark, tag] }] */
5
5
 
6
- import style from './Ribbon.module.css';
6
+ import style from "./Ribbon.module.css";
7
7
  export default class Ribbon extends React.Component {
8
8
  render() {
9
9
  let {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import Ribbon from '../Ribbon.js';
3
+ import Ribbon from "../Ribbon.js";
4
4
  describe('Label', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { defaultProps } from './props/defaultProps';
3
- import { propTypes } from './props/propTypes';
4
- import CssProvider from '../Provider/CssProvider';
5
- import style from './RippleEffect.module.css';
2
+ import { defaultProps } from "./props/defaultProps";
3
+ import { propTypes } from "./props/propTypes";
4
+ import CssProvider from "../Provider/CssProvider";
5
+ import style from "./RippleEffect.module.css";
6
6
  export default function RippleEffect(props) {
7
7
  let {
8
8
  children,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render } from '@testing-library/react';
3
- import RippleEffect from '../RippleEffect.js';
3
+ import RippleEffect from "../RippleEffect.js";
4
4
  describe('RippleEffect', () => {
5
5
  test('rendering the defult props', () => {
6
6
  const {
@@ -1,27 +1,27 @@
1
1
  /**** Libraries ****/
2
2
  import React, { PureComponent } from 'react';
3
- import { GroupSelect_defaultProps } from './props/defaultProps';
4
- import { GroupSelect_propTypes } from './props/propTypes';
3
+ import { GroupSelect_defaultProps } from "./props/defaultProps";
4
+ import { GroupSelect_propTypes } from "./props/propTypes";
5
5
  /**** Components ****/
6
6
 
7
- import Popup from '../Popup/Popup';
8
- import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
9
- import Textbox from '../TextBox/TextBox';
10
- import Card, { CardHeader, CardContent, CardFooter } from '../Card/Card';
11
- import Suggestions from '../MultiSelect/Suggestions';
12
- import EmptyState from '../MultiSelect/EmptyState';
7
+ import Popup from "../Popup/Popup";
8
+ import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
9
+ import Textbox from "../TextBox/TextBox";
10
+ import Card, { CardHeader, CardContent, CardFooter } from "../Card/Card";
11
+ import Suggestions from "../MultiSelect/Suggestions";
12
+ import EmptyState from "../MultiSelect/EmptyState";
13
13
  import { Icon } from '@zohodesk/icons';
14
14
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
15
- import DropDownHeading from '../DropDown/DropDownHeading';
16
- import { Container, Box } from '../Layout';
17
- import { getUniqueId } from '../Provider/IdProvider';
18
- import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
19
- import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
20
- import style from './Select.module.css';
15
+ import DropDownHeading from "../DropDown/DropDownHeading";
16
+ import { Container, Box } from "../Layout";
17
+ import { getUniqueId } from "../Provider/IdProvider";
18
+ import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
19
+ import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
20
+ import style from "./Select.module.css";
21
21
  /**** Methods ****/
22
22
 
23
- import { makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, extractOptionId, extractOptionIdFromJson } from '../utils/dropDownUtils';
24
- import { getIsEmptyValue, scrollTo, debounce, getSearchString, findScrollEnd, getKeyValue } from '../utils/Common';
23
+ import { makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, extractOptionId, extractOptionIdFromJson } from "../utils/dropDownUtils";
24
+ import { getIsEmptyValue, scrollTo, debounce, getSearchString, findScrollEnd, getKeyValue } from "../utils/Common";
25
25
  /* eslint-disable react/no-unused-prop-types */
26
26
 
27
27
  /* eslint-disable react/sort-prop-types */
@@ -588,8 +588,12 @@ export class GroupSelectComponent extends PureComponent {
588
588
  htmlId,
589
589
  iconOnHover,
590
590
  isLoading,
591
- dataSelectorId
591
+ dataSelectorId,
592
+ customProps
592
593
  } = this.props;
594
+ const {
595
+ suggestionsProps = {}
596
+ } = customProps;
593
597
  i18nKeys = Object.assign({}, i18nKeys, {
594
598
  emptyText: i18nKeys.emptyText || emptyMessage,
595
599
  searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage
@@ -782,7 +786,8 @@ export class GroupSelectComponent extends PureComponent {
782
786
  ariaParentRole: 'listbox',
783
787
  role: 'option'
784
788
  },
785
- dataId: `${dataId}_Options`
789
+ dataId: `${dataId}_Options`,
790
+ ...suggestionsProps
786
791
  }));
787
792
  }) : /*#__PURE__*/React.createElement(EmptyState, {
788
793
  options: revampedGroups,