@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
@@ -9,10 +9,10 @@ exports["default"] = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
12
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
15
13
 
14
+ var _propTypes = require("../../Popup/props/propTypes.js");
15
+
16
16
  var _Common = require("../../utils/Common.js");
17
17
 
18
18
  var _viewPort = _interopRequireDefault(require("../../Popup/viewPort"));
@@ -151,6 +151,11 @@ var Popup = function Popup(Component) {
151
151
  _this.handleDocumentMouseDown = _this.handleDocumentMouseDown.bind(_assertThisInitialized(_this));
152
152
  _this.handleDocumentFocus = _this.handleDocumentFocus.bind(_assertThisInitialized(_this));
153
153
  _this.handleGetNeedPrevent = _this.handleGetNeedPrevent.bind(_assertThisInitialized(_this));
154
+ _this.handleBlockScroll = _this.handleBlockScroll.bind(_assertThisInitialized(_this));
155
+ _this.handlePositionChange = _this.handlePositionChange.bind(_assertThisInitialized(_this));
156
+ _this.preventKeyboardScroll = _this.preventKeyboardScroll.bind(_assertThisInitialized(_this));
157
+ _this.addScrollBlockListeners = _this.addScrollBlockListeners.bind(_assertThisInitialized(_this));
158
+ _this.removeScrollBlockListeners = _this.removeScrollBlockListeners.bind(_assertThisInitialized(_this));
154
159
  _this.popupObserver = new _ResizeObserver["default"](_this.handlePopupResize); //dropBoxSize
155
160
 
156
161
  _this.size = null;
@@ -164,6 +169,7 @@ var Popup = function Popup(Component) {
164
169
  scrollDebounceTime = _this$getScrollDeboun.scrollDebounceTime;
165
170
 
166
171
  _this.handleScroll = (0, _Common.debounce)(_this.handleScroll.bind(_assertThisInitialized(_this)), scrollDebounceTime);
172
+ _this.handleDebouncedPositionChange = (0, _Common.debounce)(_this.handlePositionChange.bind(_assertThisInitialized(_this)), 100);
167
173
  return _this;
168
174
  }
169
175
 
@@ -207,7 +213,10 @@ var Popup = function Popup(Component) {
207
213
  oldStateOpen = _ref2$isPopupReady === void 0 ? false : _ref2$isPopupReady;
208
214
 
209
215
  var dropElement = this.dropElement;
210
- var propResizeHandling = this.props.needResizeHandling;
216
+ var _this$props = this.props,
217
+ propResizeHandling = _this$props.needResizeHandling,
218
+ isAbsolutePositioningNeeded = _this$props.isAbsolutePositioningNeeded,
219
+ isBlockedOutsideScroll = _this$props.isBlockedOutsideScroll;
211
220
 
212
221
  if (oldStateOpen !== isPopupReady) {
213
222
  if (isPopupReady && dropElement && (propResizeHandling !== undefined ? propResizeHandling : needResizeHandling)) {
@@ -216,6 +225,14 @@ var Popup = function Popup(Component) {
216
225
  this.size = null;
217
226
  this.popupObserver.disconnect();
218
227
  }
228
+
229
+ if (isBlockedOutsideScroll && !isAbsolutePositioningNeeded) {
230
+ if (isPopupReady) {
231
+ this.addScrollBlockListeners();
232
+ } else {
233
+ this.removeScrollBlockListeners();
234
+ }
235
+ }
219
236
  }
220
237
  }
221
238
  }, {
@@ -236,6 +253,7 @@ var Popup = function Popup(Component) {
236
253
 
237
254
  return res;
238
255
  }, popups);
256
+ this.removeScrollBlockListeners();
239
257
  var noPopups = true;
240
258
 
241
259
  for (var i in popups) {
@@ -259,6 +277,81 @@ var Popup = function Popup(Component) {
259
277
  document.removeEventListener('focus', this.handleDocumentFocus, true);
260
278
  }
261
279
  }
280
+ }, {
281
+ key: "addScrollBlockListeners",
282
+ value: function addScrollBlockListeners() {
283
+ document.addEventListener('wheel', this.handleBlockScroll, {
284
+ capture: true,
285
+ passive: false
286
+ });
287
+ document.addEventListener('touchmove', this.handleBlockScroll, {
288
+ capture: true,
289
+ passive: false
290
+ });
291
+ document.addEventListener('scroll', this.handleDebouncedPositionChange, {
292
+ capture: true,
293
+ passive: false
294
+ });
295
+ document.addEventListener('keydown', this.preventKeyboardScroll, {
296
+ capture: true,
297
+ passive: false
298
+ });
299
+ }
300
+ }, {
301
+ key: "removeScrollBlockListeners",
302
+ value: function removeScrollBlockListeners() {
303
+ document.removeEventListener('wheel', this.handleBlockScroll, {
304
+ capture: true,
305
+ passive: false
306
+ });
307
+ document.removeEventListener('touchmove', this.handleBlockScroll, {
308
+ capture: true,
309
+ passive: false
310
+ });
311
+ document.removeEventListener('scroll', this.handleDebouncedPositionChange, {
312
+ capture: true,
313
+ passive: false
314
+ });
315
+ document.removeEventListener('keydown', this.preventKeyboardScroll, {
316
+ capture: true,
317
+ passive: false
318
+ });
319
+ }
320
+ }, {
321
+ key: "handleBlockScroll",
322
+ value: function handleBlockScroll(event) {
323
+ // const targetElement = this.placeHolderElement;
324
+ var containerElement = this.dropElement;
325
+
326
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target)) {
327
+ // --- Scroll exclude Target & Container elements --- For reference. Will adopt in future
328
+ // if(
329
+ // (containerElement && (containerElement !== event.target && !containerElement.contains(event.target)))
330
+ // && (targetElement && (targetElement !== event.target && !targetElement.contains(event.target)))
331
+ // ) {
332
+ event.preventDefault();
333
+ }
334
+ }
335
+ }, {
336
+ key: "handlePositionChange",
337
+ value: function handlePositionChange(event) {
338
+ var targetElement = this.placeHolderElement;
339
+ var containerElement = this.dropElement;
340
+
341
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && targetElement && targetElement !== event.target && !targetElement.contains(event.target) && event.target.contains(targetElement)) {
342
+ this.handlePopupPosition(this.state.position);
343
+ }
344
+ }
345
+ }, {
346
+ key: "preventKeyboardScroll",
347
+ value: function preventKeyboardScroll(event) {
348
+ var containerElement = this.dropElement;
349
+ var keys = [32, 37, 38, 39, 40]; // Space, Arrow keys
350
+
351
+ if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && keys.includes(event.keyCode)) {
352
+ event.preventDefault();
353
+ }
354
+ }
262
355
  }, {
263
356
  key: "getGroup",
264
357
  value: function getGroup() {
@@ -587,15 +680,19 @@ var Popup = function Popup(Component) {
587
680
  _ref6$left = _ref6.left,
588
681
  oldLeft = _ref6$left === void 0 ? '' : _ref6$left,
589
682
  _ref6$top = _ref6.top,
590
- oldTop = _ref6$top === void 0 ? '' : _ref6$top;
683
+ oldTop = _ref6$top === void 0 ? '' : _ref6$top,
684
+ _ref6$bottom = _ref6.bottom,
685
+ oldBottom = _ref6$bottom === void 0 ? '' : _ref6$bottom;
591
686
 
592
687
  var _ref7 = viewsOffset[view] || {},
593
688
  _ref7$left = _ref7.left,
594
689
  left = _ref7$left === void 0 ? '' : _ref7$left,
595
690
  _ref7$top = _ref7.top,
596
- top = _ref7$top === void 0 ? '' : _ref7$top;
691
+ top = _ref7$top === void 0 ? '' : _ref7$top,
692
+ _ref7$bottom = _ref7.bottom,
693
+ bottom = _ref7$bottom === void 0 ? '' : _ref7$bottom;
597
694
 
598
- var changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top; // let isInViewPort = viewPort.isInViewPort(
695
+ var changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top || oldBottom !== bottom; // let isInViewPort = viewPort.isInViewPort(
599
696
  // placeHolderElement,
600
697
  // scrollContainer
601
698
  // );
@@ -705,9 +802,8 @@ var Popup = function Popup(Component) {
705
802
  }(_react["default"].Component);
706
803
 
707
804
  Popup.displayName = Component.displayName || Component.name || Popup.name;
708
- Popup.contextTypes = {
709
- direction: _propTypes["default"].string
710
- };
805
+ Popup.contextTypes = _propTypes.ContextTypes;
806
+ Popup.propTypes = _propTypes.PopupPropTypes;
711
807
  return (0, _hoistNonReactStatics["default"])(Popup, Component);
712
808
  };
713
809
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/components",
3
- "version": "1.0.0-temp-209",
3
+ "version": "1.0.0-temp-210",
4
4
  "main": "es/index.js",
5
5
  "module": "es/index.js",
6
6
  "private": false,
@@ -38,7 +38,7 @@
38
38
  "build:css:umd": "npm run clean && npm run init && react-cli build:css:umd",
39
39
  "coverage": "react-cli coverage",
40
40
  "prepare": "npm run init && npm run build && npm run rtl && npm run cssVariableConvert ",
41
- "prepublishOnly": "node prePublish.js && npm run download",
41
+ "prepublishOnly": "node prePublish.js && npm run download && npm run css:review && npm run review:props ",
42
42
  "postpublish": "node postPublish.js",
43
43
  "report": "react-cli publish:report",
44
44
  "test": "react-cli test",