@zohodesk/components 1.0.0-temp-209 → 1.0.0-temp-210

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 (294) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +7 -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 +4 -4
  18. package/es/Button/__tests__/Button.spec.js +1 -1
  19. package/es/Button/index.js +2 -2
  20. package/es/Button/props/defaultProps.js +1 -1
  21. package/es/Buttongroup/Buttongroup.js +3 -3
  22. package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
  23. package/es/Card/Card.js +5 -5
  24. package/es/Card/__tests__/Card.spec.js +1 -1
  25. package/es/Card/index.js +4 -4
  26. package/es/CheckBox/CheckBox.js +6 -6
  27. package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
  28. package/es/DateTime/CalendarView.js +6 -6
  29. package/es/DateTime/DateTime.js +15 -15
  30. package/es/DateTime/DateTimePopupFooter.js +5 -5
  31. package/es/DateTime/DateTimePopupHeader.js +4 -4
  32. package/es/DateTime/DateWidget.js +17 -17
  33. package/es/DateTime/DaysRow.js +3 -3
  34. package/es/DateTime/Time.js +5 -5
  35. package/es/DateTime/YearView.js +6 -6
  36. package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
  37. package/es/DateTime/__tests__/DateTime.spec.js +1 -1
  38. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
  39. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
  40. package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
  41. package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
  42. package/es/DateTime/__tests__/Time.spec.js +1 -1
  43. package/es/DateTime/__tests__/YearView.spec.js +1 -1
  44. package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
  45. package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
  46. package/es/DateTime/dateFormatUtils/index.js +3 -3
  47. package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
  48. package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
  49. package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
  50. package/es/DateTime/index.js +1 -1
  51. package/es/DateTime/props/propTypes.js +1 -1
  52. package/es/DateTime/validator.js +2 -2
  53. package/es/DropBox/DropBox.js +9 -9
  54. package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  55. package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
  56. package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
  57. package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
  58. package/es/DropBox/__tests__/DropBox.spec.js +1 -1
  59. package/es/DropBox/css/cssJSLogic.js +1 -1
  60. package/es/DropBox/props/defaultProps.js +1 -1
  61. package/es/DropBox/props/propTypes.js +1 -1
  62. package/es/DropBox/utils/isMobilePopover.js +1 -1
  63. package/es/DropDown/DropDown.js +4 -4
  64. package/es/DropDown/DropDownHeading.js +3 -3
  65. package/es/DropDown/DropDownItem.js +3 -3
  66. package/es/DropDown/DropDownSearch.js +4 -4
  67. package/es/DropDown/DropDownSeparator.js +2 -2
  68. package/es/DropDown/__tests__/DropDown.spec.js +1 -1
  69. package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
  70. package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
  71. package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
  72. package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
  73. package/es/DropDown/index.js +7 -7
  74. package/es/DropDown/props/propTypes.js +1 -1
  75. package/es/Heading/Heading.js +4 -4
  76. package/es/Heading/__tests__/Heading.spec.js +1 -1
  77. package/es/Label/Label.js +4 -4
  78. package/es/Label/__tests__/Label.spec.js +1 -1
  79. package/es/Layout/Box.js +4 -4
  80. package/es/Layout/Container.js +4 -4
  81. package/es/Layout/__tests__/Box.spec.js +1 -1
  82. package/es/Layout/__tests__/Container.spec.js +1 -1
  83. package/es/Layout/index.js +2 -2
  84. package/es/ListItem/ListContainer.js +6 -6
  85. package/es/ListItem/ListItem.js +5 -5
  86. package/es/ListItem/ListItemWithAvatar.js +7 -7
  87. package/es/ListItem/ListItemWithCheckBox.js +6 -6
  88. package/es/ListItem/ListItemWithIcon.js +5 -5
  89. package/es/ListItem/ListItemWithRadio.js +6 -6
  90. package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
  91. package/es/ListItem/__tests__/ListItem.spec.js +1 -1
  92. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
  93. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
  94. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
  95. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
  96. package/es/ListItem/index.js +6 -6
  97. package/es/Modal/Modal.js +3 -3
  98. package/es/Modal/__tests__/Modal.spec.js +1 -1
  99. package/es/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  100. package/es/MultiSelect/AdvancedMultiSelect.js +17 -17
  101. package/es/MultiSelect/EmptyState.js +3 -3
  102. package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  103. package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
  104. package/es/MultiSelect/MultiSelect.js +20 -20
  105. package/es/MultiSelect/MultiSelectHeader.js +4 -4
  106. package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
  107. package/es/MultiSelect/SelectedOptions.js +5 -5
  108. package/es/MultiSelect/Suggestions.js +6 -6
  109. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
  110. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
  111. package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
  112. package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
  113. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
  114. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
  115. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
  116. package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
  117. package/es/MultiSelect/index.js +4 -4
  118. package/es/MultiSelect/props/defaultProps.js +1 -1
  119. package/es/PopOver/PopOver.js +6 -6
  120. package/es/PopOver/__tests__/PopOver.spec.js +1 -1
  121. package/es/PopOver/index.js +3 -3
  122. package/es/Popup/Popup.js +99 -11
  123. package/es/Popup/props/propTypes.js +31 -0
  124. package/es/Provider/AvatarSize.js +1 -1
  125. package/es/Provider/CssProvider.js +1 -1
  126. package/es/Provider/IdProvider.js +2 -2
  127. package/es/Provider/LibraryContext.js +3 -12
  128. package/es/Provider/ZindexProvider.js +2 -2
  129. package/es/Provider/index.js +4 -4
  130. package/es/Radio/Radio.js +5 -5
  131. package/es/Radio/__tests__/Radio.spec.js +1 -1
  132. package/es/Responsive/CustomResponsive.js +7 -7
  133. package/es/Responsive/ResizeComponent.js +2 -2
  134. package/es/Responsive/Responsive.js +6 -6
  135. package/es/Responsive/index.js +3 -3
  136. package/es/Responsive/utils/index.js +1 -1
  137. package/es/Responsive/windowResizeObserver.js +1 -1
  138. package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  139. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
  140. package/es/ResponsiveDropBox/props/propTypes.js +1 -1
  141. package/es/Ribbon/Ribbon.js +3 -3
  142. package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
  143. package/es/RippleEffect/RippleEffect.js +4 -4
  144. package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
  145. package/es/Select/GroupSelect.js +16 -16
  146. package/es/Select/Select.js +15 -15
  147. package/es/Select/SelectWithAvatar.js +17 -17
  148. package/es/Select/SelectWithIcon.js +13 -13
  149. package/es/Select/__tests__/GroupSelect.spec.js +1 -1
  150. package/es/Select/__tests__/Select.spec.js +1 -1
  151. package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
  152. package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
  153. package/es/Select/index.js +4 -4
  154. package/es/Select/props/defaultProps.js +1 -1
  155. package/es/Stencils/Stencils.js +3 -3
  156. package/es/Stencils/__tests__/Stencils.spec.js +1 -1
  157. package/es/Switch/Switch.js +5 -5
  158. package/es/Switch/__tests__/Switch.spec.js +1 -1
  159. package/es/Tab/Tab.js +5 -5
  160. package/es/Tab/TabContent.js +4 -4
  161. package/es/Tab/TabContentWrapper.js +3 -3
  162. package/es/Tab/TabWrapper.js +3 -3
  163. package/es/Tab/Tabs.js +13 -13
  164. package/es/Tab/__tests__/Tab.spec.js +1 -1
  165. package/es/Tab/__tests__/TabContent.spec.js +1 -1
  166. package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
  167. package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
  168. package/es/Tab/__tests__/Tabs.spec.js +1 -1
  169. package/es/Tab/index.js +5 -5
  170. package/es/Tag/Tag.js +7 -7
  171. package/es/Tag/__tests__/Tag.spec.js +1 -1
  172. package/es/TextBox/TextBox.js +3 -3
  173. package/es/TextBox/__tests__/TextBox.spec.js +1 -1
  174. package/es/TextBoxIcon/TextBoxIcon.js +6 -6
  175. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
  176. package/es/TextBoxIcon/props/propTypes.js +1 -1
  177. package/es/Textarea/Textarea.js +3 -3
  178. package/es/Textarea/__tests__/Textarea.spec.js +1 -1
  179. package/es/Tooltip/Tooltip.js +6 -6
  180. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  181. package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
  182. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  183. package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
  184. package/es/VelocityAnimation/index.js +2 -2
  185. package/es/css.js +37 -37
  186. package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
  187. package/es/index.js +39 -39
  188. package/es/semantic/Button/Button.js +3 -3
  189. package/es/semantic/Button/__tests__/Button.spec.js +1 -1
  190. package/es/semantic/index.js +1 -1
  191. package/es/utils/Common.js +1 -1
  192. package/es/utils/ContextOptimizer.js +1 -1
  193. package/es/utils/cssUtils.js +1 -1
  194. package/es/utils/datetime/common.js +1 -1
  195. package/es/utils/dropDownUtils.js +1 -1
  196. package/es/utils/index.js +1 -1
  197. package/es/v1/Accordion/Accordion.js +2 -2
  198. package/es/v1/Accordion/AccordionItem.js +4 -4
  199. package/es/v1/Accordion/index.js +2 -2
  200. package/es/v1/Animation/Animation.js +3 -3
  201. package/es/v1/Animation/utils.js +1 -1
  202. package/es/v1/AppContainer/AppContainer.js +9 -9
  203. package/es/v1/Avatar/Avatar.js +5 -5
  204. package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
  205. package/es/v1/Button/Button.js +4 -4
  206. package/es/v1/Button/props/defaultProps.js +1 -1
  207. package/es/v1/Buttongroup/Buttongroup.js +3 -3
  208. package/es/v1/Card/Card.js +5 -5
  209. package/es/v1/Card/index.js +4 -4
  210. package/es/v1/CheckBox/CheckBox.js +6 -6
  211. package/es/v1/DateTime/CalendarView.js +7 -7
  212. package/es/v1/DateTime/DateTime.js +15 -15
  213. package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
  214. package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
  215. package/es/v1/DateTime/DateWidget.js +17 -17
  216. package/es/v1/DateTime/DaysRow.js +3 -3
  217. package/es/v1/DateTime/Time.js +5 -5
  218. package/es/v1/DateTime/YearView.js +6 -6
  219. package/es/v1/DateTime/index.js +1 -1
  220. package/es/v1/DateTime/props/propTypes.js +1 -1
  221. package/es/v1/DropBox/DropBox.js +9 -9
  222. package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
  223. package/es/v1/DropBox/props/defaultProps.js +1 -1
  224. package/es/v1/DropBox/props/propTypes.js +1 -1
  225. package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
  226. package/es/v1/DropDown/DropDown.js +4 -4
  227. package/es/v1/DropDown/DropDownHeading.js +3 -3
  228. package/es/v1/DropDown/DropDownItem.js +3 -3
  229. package/es/v1/DropDown/DropDownSearch.js +4 -4
  230. package/es/v1/DropDown/DropDownSeparator.js +2 -2
  231. package/es/v1/DropDown/props/propTypes.js +1 -1
  232. package/es/v1/Heading/Heading.js +4 -4
  233. package/es/v1/Label/Label.js +4 -4
  234. package/es/v1/Layout/Box.js +4 -4
  235. package/es/v1/Layout/Container.js +4 -4
  236. package/es/v1/Layout/index.js +2 -2
  237. package/es/v1/ListItem/ListContainer.js +6 -6
  238. package/es/v1/ListItem/ListItem.js +5 -5
  239. package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
  240. package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
  241. package/es/v1/ListItem/ListItemWithIcon.js +5 -5
  242. package/es/v1/ListItem/ListItemWithRadio.js +6 -6
  243. package/es/v1/ListItem/index.js +6 -6
  244. package/es/v1/Modal/Modal.js +3 -3
  245. package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
  246. package/es/v1/MultiSelect/AdvancedMultiSelect.js +17 -17
  247. package/es/v1/MultiSelect/EmptyState.js +3 -3
  248. package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
  249. package/es/v1/MultiSelect/MultiSelect.js +19 -19
  250. package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
  251. package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
  252. package/es/v1/MultiSelect/SelectedOptions.js +5 -5
  253. package/es/v1/MultiSelect/Suggestions.js +6 -6
  254. package/es/v1/MultiSelect/index.js +4 -4
  255. package/es/v1/MultiSelect/props/defaultProps.js +1 -1
  256. package/es/v1/PopOver/PopOver.js +6 -6
  257. package/es/v1/Popup/Popup.js +99 -11
  258. package/es/v1/Radio/Radio.js +5 -5
  259. package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
  260. package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -1
  261. package/es/v1/Ribbon/Ribbon.js +3 -3
  262. package/es/v1/RippleEffect/RippleEffect.js +4 -4
  263. package/es/v1/Select/GroupSelect.js +16 -16
  264. package/es/v1/Select/Select.js +15 -15
  265. package/es/v1/Select/SelectWithAvatar.js +17 -17
  266. package/es/v1/Select/SelectWithIcon.js +13 -13
  267. package/es/v1/Select/index.js +4 -4
  268. package/es/v1/Select/props/defaultProps.js +1 -1
  269. package/es/v1/Stencils/Stencils.js +3 -3
  270. package/es/v1/Switch/Switch.js +5 -5
  271. package/es/v1/Tab/Tab.js +5 -5
  272. package/es/v1/Tab/TabContent.js +4 -4
  273. package/es/v1/Tab/TabContentWrapper.js +3 -3
  274. package/es/v1/Tab/TabWrapper.js +3 -3
  275. package/es/v1/Tab/Tabs.js +13 -13
  276. package/es/v1/Tab/index.js +5 -5
  277. package/es/v1/Tag/Tag.js +7 -7
  278. package/es/v1/TextBox/TextBox.js +3 -3
  279. package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
  280. package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
  281. package/es/v1/Textarea/Textarea.js +3 -3
  282. package/es/v1/Tooltip/Tooltip.js +6 -6
  283. package/es/v1/Typography/Typography.js +4 -4
  284. package/es/v1/Typography/css/cssJSLogic.js +1 -1
  285. package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
  286. package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
  287. package/es/v1/semantic/Button/Button.js +3 -3
  288. package/es/v1/semantic/index.js +1 -1
  289. package/lib/Popup/Popup.js +105 -9
  290. package/lib/Popup/props/propTypes.js +44 -0
  291. package/lib/Provider/LibraryContext.js +1 -9
  292. package/lib/v1/Popup/Popup.js +105 -9
  293. package/package.json +2 -2
  294. package/result.json +1 -1
package/es/Popup/Popup.js CHANGED
@@ -1,12 +1,12 @@
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
11
  let lastOpenedGroup = [];
12
12
  let popups = {};
@@ -89,6 +89,11 @@ const Popup = function (Component) {
89
89
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
90
90
  this.handleDocumentFocus = this.handleDocumentFocus.bind(this);
91
91
  this.handleGetNeedPrevent = this.handleGetNeedPrevent.bind(this);
92
+ this.handleBlockScroll = this.handleBlockScroll.bind(this);
93
+ this.handlePositionChange = this.handlePositionChange.bind(this);
94
+ this.preventKeyboardScroll = this.preventKeyboardScroll.bind(this);
95
+ this.addScrollBlockListeners = this.addScrollBlockListeners.bind(this);
96
+ this.removeScrollBlockListeners = this.removeScrollBlockListeners.bind(this);
92
97
  this.popupObserver = new ResizeObserver(this.handlePopupResize); //dropBoxSize
93
98
 
94
99
  this.size = null;
@@ -101,6 +106,7 @@ const Popup = function (Component) {
101
106
  scrollDebounceTime
102
107
  } = this.getScrollDebounceTime(this);
103
108
  this.handleScroll = debounce(this.handleScroll.bind(this), scrollDebounceTime);
109
+ this.handleDebouncedPositionChange = debounce(this.handlePositionChange.bind(this), 100);
104
110
  }
105
111
 
106
112
  componentDidMount() {
@@ -144,7 +150,9 @@ const Popup = function (Component) {
144
150
  dropElement
145
151
  } = this;
146
152
  const {
147
- needResizeHandling: propResizeHandling
153
+ needResizeHandling: propResizeHandling,
154
+ isAbsolutePositioningNeeded,
155
+ isBlockedOutsideScroll
148
156
  } = this.props;
149
157
 
150
158
  if (oldStateOpen !== isPopupReady) {
@@ -154,6 +162,14 @@ const Popup = function (Component) {
154
162
  this.size = null;
155
163
  this.popupObserver.disconnect();
156
164
  }
165
+
166
+ if (isBlockedOutsideScroll && !isAbsolutePositioningNeeded) {
167
+ if (isPopupReady) {
168
+ this.addScrollBlockListeners();
169
+ } else {
170
+ this.removeScrollBlockListeners();
171
+ }
172
+ }
157
173
  }
158
174
  }
159
175
 
@@ -169,6 +185,7 @@ const Popup = function (Component) {
169
185
 
170
186
  return res;
171
187
  }, popups);
188
+ this.removeScrollBlockListeners();
172
189
  let noPopups = true;
173
190
 
174
191
  for (const i in popups) {
@@ -193,6 +210,76 @@ const Popup = function (Component) {
193
210
  }
194
211
  }
195
212
 
213
+ addScrollBlockListeners() {
214
+ document.addEventListener('wheel', this.handleBlockScroll, {
215
+ capture: true,
216
+ passive: false
217
+ });
218
+ document.addEventListener('touchmove', this.handleBlockScroll, {
219
+ capture: true,
220
+ passive: false
221
+ });
222
+ document.addEventListener('scroll', this.handleDebouncedPositionChange, {
223
+ capture: true,
224
+ passive: false
225
+ });
226
+ document.addEventListener('keydown', this.preventKeyboardScroll, {
227
+ capture: true,
228
+ passive: false
229
+ });
230
+ }
231
+
232
+ removeScrollBlockListeners() {
233
+ document.removeEventListener('wheel', this.handleBlockScroll, {
234
+ capture: true,
235
+ passive: false
236
+ });
237
+ document.removeEventListener('touchmove', this.handleBlockScroll, {
238
+ capture: true,
239
+ passive: false
240
+ });
241
+ document.removeEventListener('scroll', this.handleDebouncedPositionChange, {
242
+ capture: true,
243
+ passive: false
244
+ });
245
+ document.removeEventListener('keydown', this.preventKeyboardScroll, {
246
+ capture: true,
247
+ passive: false
248
+ });
249
+ }
250
+
251
+ handleBlockScroll(event) {
252
+ // const targetElement = this.placeHolderElement;
253
+ const containerElement = this.dropElement;
254
+
255
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target)) {
256
+ // --- Scroll exclude Target & Container elements --- For reference. Will adopt in future
257
+ // if(
258
+ // (containerElement && (containerElement !== event.target && !containerElement.contains(event.target)))
259
+ // && (targetElement && (targetElement !== event.target && !targetElement.contains(event.target)))
260
+ // ) {
261
+ event.preventDefault();
262
+ }
263
+ }
264
+
265
+ handlePositionChange(event) {
266
+ const targetElement = this.placeHolderElement;
267
+ const containerElement = this.dropElement;
268
+
269
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && targetElement && targetElement !== event.target && !targetElement.contains(event.target) && event.target.contains(targetElement)) {
270
+ this.handlePopupPosition(this.state.position);
271
+ }
272
+ }
273
+
274
+ preventKeyboardScroll(event) {
275
+ const containerElement = this.dropElement;
276
+ const keys = [32, 37, 38, 39, 40]; // Space, Arrow keys
277
+
278
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && keys.includes(event.keyCode)) {
279
+ event.preventDefault();
280
+ }
281
+ }
282
+
196
283
  getGroup() {
197
284
  const {
198
285
  popupGroup
@@ -523,13 +610,15 @@ const Popup = function (Component) {
523
610
  } = betterPosition || {};
524
611
  const {
525
612
  left: oldLeft = '',
526
- top: oldTop = ''
613
+ top: oldTop = '',
614
+ bottom: oldBottom = ''
527
615
  } = positionsOffset[position] || {};
528
616
  const {
529
617
  left = '',
530
- top = ''
618
+ top = '',
619
+ bottom = ''
531
620
  } = viewsOffset[view] || {};
532
- const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
621
+ const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top || oldBottom !== bottom; // let isInViewPort = viewPort.isInViewPort(
533
622
  // placeHolderElement,
534
623
  // scrollContainer
535
624
  // );
@@ -635,9 +724,8 @@ const Popup = function (Component) {
635
724
  }
636
725
 
637
726
  Popup.displayName = Component.displayName || Component.name || Popup.name;
638
- Popup.contextTypes = {
639
- direction: PropTypes.string
640
- };
727
+ Popup.contextTypes = ContextTypes;
728
+ Popup.propTypes = PopupPropTypes;
641
729
  return hoistStatics(Popup, Component);
642
730
  };
643
731
 
@@ -0,0 +1,31 @@
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
+ isBlockedOutsideScroll: 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
+ isPopupOpen: PropTypes.bool,
23
+ isPopupReady: PropTypes.bool,
24
+ position: PropTypes.oneOf(['bottomRight', 'bottomLeft', 'bottomCenter', 'topRight', 'topLeft', 'topCenter', 'rightTop', 'rightBottom', 'rightCenter', 'leftTop', 'leftBottom', 'leftCenter']),
25
+ getTargetRef: PropTypes.func,
26
+ getContainerRef: PropTypes.func,
27
+ isAbsolutePositioningNeeded: PropTypes.bool,
28
+ isRestrictScroll: PropTypes.bool,
29
+ positionsOffset: PropTypes.object,
30
+ targetOffset: PropTypes.object
31
+ };
@@ -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 {
@@ -26,18 +26,9 @@ const LibraryContextProvider = _ref => {
26
26
  }
27
27
  }
28
28
 
29
- function setCustomContext(currentData) {
30
- setValue({ ...value,
31
- preference: { ...currentData
32
- }
33
- });
34
- }
35
-
36
- ;
37
29
  return /*#__PURE__*/React.createElement(LibraryContextInit.Provider, {
38
30
  value: { ...value,
39
- setGlobalContext,
40
- setCustomContext
31
+ setGlobalContext
41
32
  }
42
33
  }, children);
43
34
  };
@@ -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 {
@@ -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 */
@@ -1,28 +1,28 @@
1
1
  /**** Libraries ****/
2
2
  import React, { Component } from 'react';
3
- import { Select_defaultProps } from './props/defaultProps';
4
- import { Select_propTypes } from './props/propTypes';
3
+ import { Select_defaultProps } from "./props/defaultProps";
4
+ import { Select_propTypes } from "./props/propTypes";
5
5
  /**** Components ****/
6
6
 
7
- import Popup from '../Popup/Popup';
8
- import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
9
- import { Container, Box } from '../Layout';
10
- import Textbox from '../TextBox/TextBox';
11
- import Card, { CardHeader, CardContent, CardFooter } from '../Card/Card';
12
- import Suggestions from '../MultiSelect/Suggestions';
13
- import EmptyState from '../MultiSelect/EmptyState';
14
- import { getUniqueId } from '../Provider/IdProvider';
7
+ import Popup from "../Popup/Popup";
8
+ import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
9
+ import { Container, Box } from "../Layout";
10
+ import Textbox from "../TextBox/TextBox";
11
+ import Card, { CardHeader, CardContent, CardFooter } from "../Card/Card";
12
+ import Suggestions from "../MultiSelect/Suggestions";
13
+ import EmptyState from "../MultiSelect/EmptyState";
14
+ import { getUniqueId } from "../Provider/IdProvider";
15
15
  import { Icon } from '@zohodesk/icons';
16
- import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
17
- import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
16
+ import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
17
+ import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
18
18
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
19
19
  /**** Methods ****/
20
20
 
21
- import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetSelectedValueText as makeGetSelectedValue } from '../utils/dropDownUtils';
22
- import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue } from '../utils/Common.js';
21
+ import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetSelectedValueText as makeGetSelectedValue } from "../utils/dropDownUtils";
22
+ import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue } from "../utils/Common.js";
23
23
  /**** CSS ****/
24
24
 
25
- import style from './Select.module.css';
25
+ import style from "./Select.module.css";
26
26
  /* eslint-disable react/no-deprecated */
27
27
 
28
28
  /* eslint-disable react/no-unused-prop-types */
@@ -1,27 +1,27 @@
1
1
  /**** Libraries ****/
2
2
  import React from 'react';
3
- import { SelectWithAvatar_defaultProps } from './props/defaultProps';
4
- import { SelectWithAvatar_propTypes } from './props/propTypes';
3
+ import { SelectWithAvatar_defaultProps } from "./props/defaultProps";
4
+ import { SelectWithAvatar_propTypes } from "./props/propTypes";
5
5
  /**** Components ****/
6
6
 
7
- import { SelectComponent } from './Select';
8
- import Popup from '../Popup/Popup';
9
- import Tag from '../Tag/Tag';
10
- import Textbox from '../TextBox/TextBox';
11
- import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
12
- import { Container, Box } from '../Layout';
13
- import Card, { CardContent, CardHeader } from '../Card/Card';
14
- import Suggestions from '../MultiSelect/Suggestions';
15
- import EmptyState from '../MultiSelect/EmptyState';
16
- import DropDownHeading from '../DropDown/DropDownHeading';
17
- import { getUniqueId } from '../Provider/IdProvider';
18
- import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
19
- import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
7
+ import { SelectComponent } from "./Select";
8
+ import Popup from "../Popup/Popup";
9
+ import Tag from "../Tag/Tag";
10
+ import Textbox from "../TextBox/TextBox";
11
+ import TextBoxIcon from "../TextBoxIcon/TextBoxIcon";
12
+ import { Container, Box } from "../Layout";
13
+ import Card, { CardContent, CardHeader } from "../Card/Card";
14
+ import Suggestions from "../MultiSelect/Suggestions";
15
+ import EmptyState from "../MultiSelect/EmptyState";
16
+ import DropDownHeading from "../DropDown/DropDownHeading";
17
+ import { getUniqueId } from "../Provider/IdProvider";
18
+ import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
19
+ import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
20
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
21
21
  /**** CSS ****/
22
22
 
23
- import style from '../MultiSelect/MultiSelect.module.css';
24
- import selectStyle from './Select.module.css';
23
+ import style from "../MultiSelect/MultiSelect.module.css";
24
+ import selectStyle from "./Select.module.css";
25
25
 
26
26
  class SelectWithAvatarComponent extends SelectComponent {
27
27
  constructor(props) {