@zohodesk/components 1.0.0-temp-158 → 1.0.0-temp-160
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.
- package/es/Accordion/Accordion.js +3 -7
- package/es/Accordion/AccordionItem.js +2 -4
- package/es/Animation/Animation.js +3 -3
- package/es/AppContainer/AppContainer.js +5 -13
- package/es/Avatar/Avatar.js +11 -23
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/Button/Button.js +3 -4
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Card/Card.js +10 -21
- package/es/CheckBox/CheckBox.js +3 -5
- package/es/DateTime/CalendarView.js +20 -32
- package/es/DateTime/DateTime.js +6 -67
- package/es/DateTime/DateTimePopupFooter.js +2 -4
- package/es/DateTime/DateTimePopupHeader.js +2 -8
- package/es/DateTime/DateWidget.js +35 -98
- package/es/DateTime/DaysRow.js +2 -4
- package/es/DateTime/Time.js +2 -10
- package/es/DateTime/YearView.js +4 -28
- package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
- package/es/DateTime/__tests__/DateTime.spec.js +0 -1
- package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
- package/es/DateTime/common.js +0 -3
- package/es/DateTime/constants.js +0 -1
- package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
- package/es/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
- package/es/DateTime/dateFormatUtils/index.js +2 -32
- package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
- package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
- package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
- package/es/DateTime/objectUtils.js +20 -14
- package/es/DateTime/typeChecker.js +0 -3
- package/es/DateTime/validator.js +6 -58
- package/es/DropBox/DropBox.js +2 -6
- package/es/DropBox/DropBoxElement/DropBoxElement.js +0 -7
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +3 -5
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +0 -3
- package/es/DropBox/props/defaultProps.js +2 -1
- package/es/DropBox/props/propTypes.js +2 -1
- package/es/DropDown/DropDown.js +4 -8
- package/es/DropDown/DropDownHeading.js +5 -4
- package/es/DropDown/DropDownItem.js +0 -6
- package/es/DropDown/DropDownSearch.js +0 -4
- package/es/DropDown/DropDownSeparator.js +0 -1
- package/es/DropDown/__tests__/DropDown.spec.js +2 -1
- package/es/Heading/Heading.js +3 -2
- package/es/Label/Label.js +3 -2
- package/es/Layout/Box.js +0 -13
- package/es/Layout/Container.js +1 -12
- package/es/Layout/index.js +2 -1
- package/es/ListItem/ListContainer.js +3 -8
- package/es/ListItem/ListItem.js +3 -9
- package/es/ListItem/ListItemWithAvatar.js +3 -9
- package/es/ListItem/ListItemWithCheckBox.js +2 -7
- package/es/ListItem/ListItemWithIcon.js +3 -8
- package/es/ListItem/ListItemWithRadio.js +3 -7
- package/es/Modal/Modal.js +11 -28
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +13 -89
- package/es/MultiSelect/AdvancedMultiSelect.js +9 -32
- package/es/MultiSelect/EmptyState.js +0 -2
- package/es/MultiSelect/MultiSelect.js +32 -99
- package/es/MultiSelect/MultiSelectHeader.js +0 -3
- package/es/MultiSelect/MultiSelectWithAvatar.js +6 -12
- package/es/MultiSelect/SelectedOptions.js +3 -6
- package/es/MultiSelect/Suggestions.js +3 -7
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
- package/es/MultiSelect/props/propTypes.js +0 -2
- package/es/PopOver/PopOver.js +2 -18
- package/es/PopOver/__tests__/PopOver.spec.js +1 -2
- package/es/Popup/Popup.js +24 -77
- package/es/Popup/__tests__/Popup.spec.js +5 -17
- package/es/Popup/viewPort.js +4 -16
- package/es/Provider/IdProvider.js +5 -10
- package/es/Provider/LibraryContext.js +4 -6
- package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
- package/es/Provider/ZindexProvider.js +2 -9
- package/es/Radio/Radio.js +2 -4
- package/es/Responsive/CustomResponsive.js +18 -30
- package/es/Responsive/RefWrapper.js +7 -6
- package/es/Responsive/ResizeComponent.js +25 -35
- package/es/Responsive/ResizeObserver.js +6 -26
- package/es/Responsive/Responsive.js +20 -34
- package/es/Responsive/index.js +3 -1
- package/es/Responsive/sizeObservers.js +7 -28
- package/es/Responsive/utils/index.js +5 -7
- package/es/Responsive/utils/shallowCompare.js +2 -7
- package/es/Responsive/windowResizeObserver.js +0 -7
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
- package/es/Ribbon/Ribbon.js +2 -3
- package/es/RippleEffect/RippleEffect.js +3 -1
- package/es/Select/GroupSelect.js +14 -58
- package/es/Select/Select.js +33 -79
- package/es/Select/SelectWithAvatar.js +4 -17
- package/es/Select/SelectWithIcon.js +5 -46
- package/es/Select/__tests__/Select.spec.js +8 -6
- package/es/Select/props/propTypes.js +0 -1
- package/es/Stencils/Stencils.js +3 -3
- package/es/Switch/Switch.js +3 -5
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/TabContent.js +0 -1
- package/es/Tab/TabContentWrapper.js +0 -2
- package/es/Tab/TabWrapper.js +2 -5
- package/es/Tab/Tabs.js +7 -54
- package/es/Tab/__tests__/Tab.spec.js +3 -1
- package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
- package/es/Tag/Tag.js +3 -6
- package/es/TextBox/TextBox.js +3 -15
- package/es/TextBox/__tests__/TextBox.spec.js +4 -1
- package/es/TextBoxIcon/TextBoxIcon.js +2 -9
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
- package/es/Textarea/Textarea.js +3 -12
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +14 -58
- package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -3
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -7
- package/es/deprecated/PortalLayer/PortalLayer.js +20 -25
- package/es/semantic/Button/Button.js +2 -3
- package/es/utils/Common.js +9 -54
- package/es/utils/ContextOptimizer.js +5 -4
- package/es/utils/__tests__/debounce.spec.js +2 -2
- package/es/utils/constructFullName.js +0 -2
- package/es/utils/css/compileClassNames.js +0 -5
- package/es/utils/css/mergeStyle.js +6 -7
- package/es/utils/css/utils.js +0 -1
- package/es/utils/datetime/common.js +5 -16
- package/es/utils/debounce.js +1 -5
- package/es/utils/dropDownUtils.js +11 -68
- package/es/utils/getInitial.js +0 -4
- package/es/utils/shallowEqual.js +0 -6
- package/lib/Accordion/Accordion.js +18 -42
- package/lib/Accordion/AccordionItem.js +18 -40
- package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
- package/lib/Accordion/index.js +0 -3
- package/lib/Accordion/props/propTypes.js +0 -3
- package/lib/Animation/Animation.js +18 -38
- package/lib/Animation/__tests__/Animation.spec.js +7 -11
- package/lib/Animation/props/propTypes.js +0 -3
- package/lib/AppContainer/AppContainer.js +21 -56
- package/lib/AppContainer/props/propTypes.js +0 -3
- package/lib/Avatar/Avatar.js +38 -78
- package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
- package/lib/Avatar/props/propTypes.js +0 -3
- package/lib/AvatarTeam/AvatarTeam.js +30 -52
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
- package/lib/AvatarTeam/props/propTypes.js +0 -3
- package/lib/Button/Button.js +20 -31
- package/lib/Button/css/cssJSLogic.js +17 -18
- package/lib/Button/index.js +0 -3
- package/lib/Button/props/defaultProps.js +0 -2
- package/lib/Button/props/propTypes.js +0 -3
- package/lib/Buttongroup/Buttongroup.js +12 -32
- package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
- package/lib/Buttongroup/props/propTypes.js +0 -3
- package/lib/Card/Card.js +46 -102
- package/lib/Card/__tests__/Card.spec.js +1 -10
- package/lib/Card/index.js +0 -4
- package/lib/Card/props/propTypes.js +0 -3
- package/lib/CheckBox/CheckBox.js +47 -71
- package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
- package/lib/CheckBox/props/propTypes.js +0 -3
- package/lib/DateTime/CalendarView.js +42 -82
- package/lib/DateTime/DateTime.js +156 -240
- package/lib/DateTime/DateTimePopupFooter.js +8 -31
- package/lib/DateTime/DateTimePopupHeader.js +17 -48
- package/lib/DateTime/DateWidget.js +250 -352
- package/lib/DateTime/DaysRow.js +5 -27
- package/lib/DateTime/Time.js +32 -73
- package/lib/DateTime/YearView.js +28 -77
- package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
- package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
- package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
- package/lib/DateTime/common.js +0 -6
- package/lib/DateTime/constants.js +0 -1
- package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
- package/lib/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
- package/lib/DateTime/dateFormatUtils/index.js +16 -74
- package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
- package/lib/DateTime/dateFormatUtils/timeChange.js +22 -54
- package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
- package/lib/DateTime/index.js +0 -2
- package/lib/DateTime/objectUtils.js +20 -24
- package/lib/DateTime/props/propTypes.js +1 -11
- package/lib/DateTime/typeChecker.js +0 -4
- package/lib/DateTime/validator.js +10 -73
- package/lib/DropBox/DropBox.js +10 -34
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +37 -58
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +33 -41
- package/lib/DropBox/DropBoxElement/props/propTypes.js +0 -3
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +9 -14
- package/lib/DropBox/__tests__/DropBox.spec.js +2 -6
- package/lib/DropBox/css/cssJSLogic.js +1 -3
- package/lib/DropBox/props/defaultProps.js +4 -8
- package/lib/DropBox/props/propTypes.js +4 -10
- package/lib/DropDown/DropDown.js +8 -52
- package/lib/DropDown/DropDownHeading.js +20 -39
- package/lib/DropDown/DropDownItem.js +20 -42
- package/lib/DropDown/DropDownSearch.js +17 -40
- package/lib/DropDown/DropDownSeparator.js +4 -24
- package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
- package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
- package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
- package/lib/DropDown/index.js +0 -9
- package/lib/DropDown/props/propTypes.js +4 -6
- package/lib/Heading/Heading.js +15 -37
- package/lib/Heading/props/propTypes.js +0 -3
- package/lib/Label/Label.js +19 -39
- package/lib/Label/__tests__/Label.spec.js +1 -14
- package/lib/Label/props/propTypes.js +0 -3
- package/lib/Layout/Box.js +11 -31
- package/lib/Layout/Container.js +10 -29
- package/lib/Layout/__tests__/Box.spec.js +49 -65
- package/lib/Layout/__tests__/Container.spec.js +50 -67
- package/lib/Layout/index.js +0 -3
- package/lib/Layout/props/propTypes.js +0 -3
- package/lib/Layout/utils.js +0 -10
- package/lib/ListItem/ListContainer.js +27 -48
- package/lib/ListItem/ListItem.js +45 -69
- package/lib/ListItem/ListItemWithAvatar.js +48 -75
- package/lib/ListItem/ListItemWithCheckBox.js +39 -64
- package/lib/ListItem/ListItemWithIcon.js +44 -68
- package/lib/ListItem/ListItemWithRadio.js +41 -65
- package/lib/ListItem/index.js +0 -7
- package/lib/ListItem/props/propTypes.js +4 -6
- package/lib/Modal/Modal.js +10 -45
- package/lib/Modal/props/propTypes.js +0 -3
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +166 -294
- package/lib/MultiSelect/AdvancedMultiSelect.js +125 -202
- package/lib/MultiSelect/EmptyState.js +24 -45
- package/lib/MultiSelect/MultiSelect.js +206 -323
- package/lib/MultiSelect/MultiSelectHeader.js +8 -30
- package/lib/MultiSelect/MultiSelectWithAvatar.js +63 -105
- package/lib/MultiSelect/SelectedOptions.js +17 -43
- package/lib/MultiSelect/Suggestions.js +32 -64
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
- package/lib/MultiSelect/index.js +0 -5
- package/lib/MultiSelect/props/defaultProps.js +0 -2
- package/lib/MultiSelect/props/propTypes.js +0 -5
- package/lib/PopOver/PopOver.js +49 -95
- package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
- package/lib/PopOver/index.js +0 -4
- package/lib/PopOver/props/propTypes.js +0 -3
- package/lib/Popup/Popup.js +81 -158
- package/lib/Popup/__tests__/Popup.spec.js +8 -43
- package/lib/Popup/viewPort.js +14 -28
- package/lib/Provider/AvatarSize.js +0 -4
- package/lib/Provider/Config.js +0 -2
- package/lib/Provider/CssProvider.js +0 -4
- package/lib/Provider/IdProvider.js +6 -17
- package/lib/Provider/LibraryContext.js +15 -35
- package/lib/Provider/LibraryContextInit.js +0 -4
- package/lib/Provider/NumberGenerator/NumberGenerator.js +15 -44
- package/lib/Provider/ZindexProvider.js +3 -15
- package/lib/Provider/index.js +0 -5
- package/lib/Radio/Radio.js +38 -61
- package/lib/Radio/__tests__/Radiospec.js +5 -9
- package/lib/Radio/props/propTypes.js +0 -3
- package/lib/Responsive/CustomResponsive.js +29 -73
- package/lib/Responsive/RefWrapper.js +11 -17
- package/lib/Responsive/ResizeComponent.js +36 -62
- package/lib/Responsive/ResizeObserver.js +10 -24
- package/lib/Responsive/Responsive.js +30 -80
- package/lib/Responsive/index.js +0 -4
- package/lib/Responsive/props/propTypes.js +0 -3
- package/lib/Responsive/sizeObservers.js +17 -53
- package/lib/Responsive/utils/index.js +3 -11
- package/lib/Responsive/utils/shallowCompare.js +2 -11
- package/lib/Responsive/windowResizeObserver.js +0 -8
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +17 -45
- package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
- package/lib/Ribbon/Ribbon.js +13 -33
- package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
- package/lib/Ribbon/props/propTypes.js +0 -3
- package/lib/RippleEffect/RippleEffect.js +10 -18
- package/lib/RippleEffect/props/propTypes.js +0 -3
- package/lib/Select/GroupSelect.js +130 -229
- package/lib/Select/Select.js +209 -290
- package/lib/Select/SelectWithAvatar.js +56 -102
- package/lib/Select/SelectWithIcon.js +76 -132
- package/lib/Select/__tests__/Select.spec.js +91 -133
- package/lib/Select/index.js +0 -5
- package/lib/Select/props/defaultProps.js +4 -5
- package/lib/Select/props/propTypes.js +0 -4
- package/lib/Stencils/Stencils.js +10 -29
- package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
- package/lib/Stencils/props/propTypes.js +0 -3
- package/lib/Switch/Switch.js +34 -57
- package/lib/Switch/props/propTypes.js +0 -3
- package/lib/Tab/Tab.js +27 -40
- package/lib/Tab/TabContent.js +5 -12
- package/lib/Tab/TabContentWrapper.js +6 -13
- package/lib/Tab/TabWrapper.js +19 -37
- package/lib/Tab/Tabs.js +91 -171
- package/lib/Tab/__tests__/Tab.spec.js +58 -67
- package/lib/Tab/__tests__/TabContent.spec.js +6 -10
- package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
- package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
- package/lib/Tab/__tests__/Tabs.spec.js +39 -53
- package/lib/Tab/index.js +0 -6
- package/lib/Tab/props/propTypes.js +0 -3
- package/lib/Tag/Tag.js +43 -72
- package/lib/Tag/__tests__/Tag.spec.js +8 -14
- package/lib/Tag/props/propTypes.js +0 -3
- package/lib/TextBox/TextBox.js +59 -85
- package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
- package/lib/TextBox/props/propTypes.js +4 -6
- package/lib/TextBoxIcon/TextBoxIcon.js +52 -79
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
- package/lib/TextBoxIcon/props/propTypes.js +0 -3
- package/lib/Textarea/Textarea.js +29 -54
- package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
- package/lib/Textarea/props/propTypes.js +0 -3
- package/lib/Tooltip/Tooltip.js +31 -94
- package/lib/Tooltip/__tests__/Tooltip.spec.js +3 -24
- package/lib/Tooltip/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +16 -40
- package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +25 -53
- package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/index.js +0 -3
- package/lib/css.js +0 -40
- package/lib/deprecated/PortalLayer/PortalLayer.js +23 -46
- package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
- package/lib/index.js +0 -57
- package/lib/semantic/Button/Button.js +22 -42
- package/lib/semantic/Button/props/propTypes.js +0 -3
- package/lib/semantic/index.js +0 -2
- package/lib/utils/Common.js +18 -108
- package/lib/utils/ContextOptimizer.js +10 -16
- package/lib/utils/__tests__/constructFullName.spec.js +0 -1
- package/lib/utils/__tests__/debounce.spec.js +2 -3
- package/lib/utils/__tests__/getInitial.spec.js +0 -1
- package/lib/utils/constructFullName.js +4 -13
- package/lib/utils/css/compileClassNames.js +0 -6
- package/lib/utils/css/mergeStyle.js +7 -10
- package/lib/utils/css/utils.js +0 -8
- package/lib/utils/datetime/common.js +5 -34
- package/lib/utils/debounce.js +1 -6
- package/lib/utils/dropDownUtils.js +59 -175
- package/lib/utils/dummyFunction.js +0 -2
- package/lib/utils/getHTMLFontSize.js +0 -1
- package/lib/utils/getInitial.js +0 -6
- package/lib/utils/index.js +0 -4
- package/lib/utils/scrollTo.js +0 -2
- package/lib/utils/shallowEqual.js +0 -8
- package/package.json +2 -2
package/es/Popup/Popup.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
/**** Libraries ****/
|
|
4
3
|
import React from 'react';
|
|
5
4
|
import PropTypes from 'prop-types';
|
|
6
5
|
import hoistStatics from 'hoist-non-react-statics';
|
|
7
|
-
/**** Methods ****/
|
|
8
6
|
|
|
7
|
+
/**** Methods ****/
|
|
9
8
|
import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from '../utils/Common.js';
|
|
10
9
|
import viewPort from './viewPort';
|
|
11
10
|
import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from './PositionMapping.json';
|
|
12
11
|
import ResizeObserver from '@zohodesk/virtualizer/lib/commons/ResizeObserver.js';
|
|
13
12
|
let lastOpenedGroup = [];
|
|
14
13
|
let popups = {};
|
|
15
|
-
|
|
16
14
|
global.closeGroupPopups = function (groupName) {
|
|
17
15
|
const groupPopups = popups[groupName] || [];
|
|
18
16
|
groupPopups.forEach(popup => {
|
|
@@ -22,7 +20,6 @@ global.closeGroupPopups = function (groupName) {
|
|
|
22
20
|
});
|
|
23
21
|
});
|
|
24
22
|
};
|
|
25
|
-
|
|
26
23
|
const defaultState = {
|
|
27
24
|
position: 'bottomCenter',
|
|
28
25
|
height: '0px',
|
|
@@ -36,8 +33,8 @@ const defaultState = {
|
|
|
36
33
|
//{height: ‘’, width: ‘’,}
|
|
37
34
|
isAbsolutePositioningNeeded: true
|
|
38
35
|
};
|
|
39
|
-
/* eslint-disable react/no-deprecated */
|
|
40
36
|
|
|
37
|
+
/* eslint-disable react/no-deprecated */
|
|
41
38
|
/* eslint-disable react/prop-types */
|
|
42
39
|
|
|
43
40
|
const Popup = function (Component) {
|
|
@@ -50,7 +47,6 @@ const Popup = function (Component) {
|
|
|
50
47
|
scrollDebounceTime: popupScrollDebounceTime = 0,
|
|
51
48
|
closeOnScroll: closeOnScrollPopup = false
|
|
52
49
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
53
|
-
|
|
54
50
|
class Popup extends React.Component {
|
|
55
51
|
constructor(props) {
|
|
56
52
|
super(props);
|
|
@@ -91,8 +87,9 @@ const Popup = function (Component) {
|
|
|
91
87
|
this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
|
|
92
88
|
this.handleDocumentFocus = this.handleDocumentFocus.bind(this);
|
|
93
89
|
this.handleGetNeedPrevent = this.handleGetNeedPrevent.bind(this);
|
|
94
|
-
this.popupObserver = new ResizeObserver(this.handlePopupResize);
|
|
90
|
+
this.popupObserver = new ResizeObserver(this.handlePopupResize);
|
|
95
91
|
|
|
92
|
+
//dropBoxSize
|
|
96
93
|
this.size = null;
|
|
97
94
|
this.isAbsolutePopup = isAbsolutePopup;
|
|
98
95
|
this.needPopupArrow = needPopupArrow;
|
|
@@ -104,29 +101,25 @@ const Popup = function (Component) {
|
|
|
104
101
|
} = this.getScrollDebounceTime(this);
|
|
105
102
|
this.handleScroll = debounce(this.handleScroll.bind(this), scrollDebounceTime);
|
|
106
103
|
}
|
|
107
|
-
|
|
108
104
|
componentDidMount() {
|
|
109
105
|
const group = this.getGroup();
|
|
110
106
|
const groupPopups = popups[group] || [];
|
|
111
107
|
groupPopups.push(this);
|
|
112
108
|
popups[group] = groupPopups;
|
|
113
|
-
|
|
114
109
|
if (Object.keys(popups).length === 1 && groupPopups.length === 1) {
|
|
115
110
|
document.addEventListener('click', this.documentClickHandler, false);
|
|
116
|
-
document.addEventListener('keyup', this.documentKeyupHandler, false);
|
|
117
|
-
|
|
111
|
+
document.addEventListener('keyup', this.documentKeyupHandler, false);
|
|
112
|
+
// document.addEventListener('scroll', this.handleScroll, true);
|
|
118
113
|
window.addEventListener('resize', this.handleResize);
|
|
119
114
|
document.addEventListener('click', this.documentClickHandler1, true);
|
|
120
115
|
document.addEventListener('mousedown', this.handleDocumentMouseDown, true);
|
|
121
116
|
document.addEventListener('focus', this.handleDocumentFocus, true);
|
|
122
117
|
}
|
|
123
118
|
}
|
|
124
|
-
|
|
125
119
|
componentWillReceiveProps(nextProps) {
|
|
126
120
|
const {
|
|
127
121
|
isPopupOpen
|
|
128
122
|
} = this.state;
|
|
129
|
-
|
|
130
123
|
if (typeof nextProps.isPopupOpen !== 'undefined' && nextProps.isPopupOpen !== isPopupOpen) {
|
|
131
124
|
this.setState({
|
|
132
125
|
isPopupOpen: nextProps.isPopupOpen,
|
|
@@ -134,7 +127,6 @@ const Popup = function (Component) {
|
|
|
134
127
|
});
|
|
135
128
|
}
|
|
136
129
|
}
|
|
137
|
-
|
|
138
130
|
componentDidUpdate(prevProps, prevState) {
|
|
139
131
|
const {
|
|
140
132
|
isPopupReady
|
|
@@ -148,7 +140,6 @@ const Popup = function (Component) {
|
|
|
148
140
|
const {
|
|
149
141
|
needResizeHandling: propResizeHandling
|
|
150
142
|
} = this.props;
|
|
151
|
-
|
|
152
143
|
if (oldStateOpen !== isPopupReady) {
|
|
153
144
|
if (isPopupReady && dropElement && (propResizeHandling !== undefined ? propResizeHandling : needResizeHandling)) {
|
|
154
145
|
this.popupObserver.replaceObservationElement(dropElement);
|
|
@@ -158,7 +149,6 @@ const Popup = function (Component) {
|
|
|
158
149
|
}
|
|
159
150
|
}
|
|
160
151
|
}
|
|
161
|
-
|
|
162
152
|
componentWillUnmount() {
|
|
163
153
|
const group = this.getGroup();
|
|
164
154
|
popups = Object.keys(popups).reduce((res, groupName) => {
|
|
@@ -168,40 +158,34 @@ const Popup = function (Component) {
|
|
|
168
158
|
newGroupPopups.length === 0 && lastOpenedGroup.indexOf(group) >= 0 && lastOpenedGroup.splice(lastOpenedGroup.indexOf(group), 1);
|
|
169
159
|
res[group] = newGroupPopups;
|
|
170
160
|
}
|
|
171
|
-
|
|
172
161
|
return res;
|
|
173
162
|
}, popups);
|
|
174
163
|
let noPopups = true;
|
|
175
|
-
|
|
176
164
|
for (const i in popups) {
|
|
177
165
|
if (popups[i].length >= 1) {
|
|
178
166
|
noPopups = false;
|
|
179
167
|
break;
|
|
180
168
|
}
|
|
181
169
|
}
|
|
182
|
-
|
|
183
170
|
if (this.popupObserver) {
|
|
184
171
|
this.popupObserver.disconnect();
|
|
185
172
|
}
|
|
186
|
-
|
|
187
173
|
if (noPopups) {
|
|
188
174
|
document.removeEventListener('click', this.documentClickHandler);
|
|
189
|
-
document.removeEventListener('keyup', this.documentKeyupHandler);
|
|
190
|
-
|
|
175
|
+
document.removeEventListener('keyup', this.documentKeyupHandler);
|
|
176
|
+
// document.removeEventListener('scroll', this.handleScroll);
|
|
191
177
|
window.removeEventListener('resize', this.handleResize);
|
|
192
178
|
document.removeEventListener('click', this.documentClickHandler1, true);
|
|
193
179
|
document.removeEventListener('mousedown', this.handleDocumentMouseDown, true);
|
|
194
180
|
document.removeEventListener('focus', this.handleDocumentFocus, true);
|
|
195
181
|
}
|
|
196
182
|
}
|
|
197
|
-
|
|
198
183
|
getGroup() {
|
|
199
184
|
const {
|
|
200
185
|
popupGroup
|
|
201
186
|
} = this.props;
|
|
202
187
|
return popupGroup || group;
|
|
203
188
|
}
|
|
204
|
-
|
|
205
189
|
getNeedArrow(popup) {
|
|
206
190
|
const {
|
|
207
191
|
isArrow
|
|
@@ -211,7 +195,6 @@ const Popup = function (Component) {
|
|
|
211
195
|
} = popup;
|
|
212
196
|
return isArrow !== undefined ? isArrow : needPopupArrow;
|
|
213
197
|
}
|
|
214
|
-
|
|
215
198
|
getScrollDebounceTime(popup) {
|
|
216
199
|
const {
|
|
217
200
|
scrollDebounceTime
|
|
@@ -221,7 +204,6 @@ const Popup = function (Component) {
|
|
|
221
204
|
} = popup;
|
|
222
205
|
return scrollDebounceTime !== undefined ? scrollDebounceTime : popupScrollDebounceTime;
|
|
223
206
|
}
|
|
224
|
-
|
|
225
207
|
getCloseOnScrollPopup(popup) {
|
|
226
208
|
const {
|
|
227
209
|
closeOnScroll
|
|
@@ -231,7 +213,6 @@ const Popup = function (Component) {
|
|
|
231
213
|
} = popup;
|
|
232
214
|
return closeOnScroll !== undefined ? closeOnScroll : closeOnScrollPopup;
|
|
233
215
|
}
|
|
234
|
-
|
|
235
216
|
getIsAbsolutePopup(popup) {
|
|
236
217
|
const {
|
|
237
218
|
isAbsolutePositioningNeeded
|
|
@@ -241,7 +222,6 @@ const Popup = function (Component) {
|
|
|
241
222
|
} = popup;
|
|
242
223
|
return isAbsolutePositioningNeeded !== undefined ? isAbsolutePositioningNeeded : isAbsolutePopup;
|
|
243
224
|
}
|
|
244
|
-
|
|
245
225
|
getCustomPositionOrder(popup) {
|
|
246
226
|
const {
|
|
247
227
|
customOrder = []
|
|
@@ -251,7 +231,6 @@ const Popup = function (Component) {
|
|
|
251
231
|
} = popup;
|
|
252
232
|
return customOrder.length !== 0 ? customOrder : customPositionOrder;
|
|
253
233
|
}
|
|
254
|
-
|
|
255
234
|
togglePopup(e, defaultPosition) {
|
|
256
235
|
const group = this.getGroup();
|
|
257
236
|
this.removeClose(e);
|
|
@@ -269,7 +248,6 @@ const Popup = function (Component) {
|
|
|
269
248
|
});
|
|
270
249
|
}
|
|
271
250
|
});
|
|
272
|
-
|
|
273
251
|
if (isPopupOpen) {
|
|
274
252
|
this.setState({
|
|
275
253
|
isPopupOpen: false,
|
|
@@ -279,21 +257,18 @@ const Popup = function (Component) {
|
|
|
279
257
|
this.handlePopupPosition(defaultPosition);
|
|
280
258
|
}
|
|
281
259
|
}
|
|
282
|
-
|
|
283
260
|
openPopupOnly(e, defaultPosition) {
|
|
284
261
|
const group = this.getGroup();
|
|
285
262
|
this.removeClose(e);
|
|
286
263
|
lastOpenedGroup = lastOpenedGroup.indexOf(group) === -1 ? [group, ...lastOpenedGroup] : lastOpenedGroup;
|
|
287
264
|
this.handlePopupPosition(defaultPosition);
|
|
288
265
|
}
|
|
289
|
-
|
|
290
266
|
closePopupOnly(e) {
|
|
291
267
|
this.removeClose(e);
|
|
292
268
|
lastOpenedGroup.splice(0, 1);
|
|
293
269
|
const {
|
|
294
270
|
isPopupOpen
|
|
295
271
|
} = this.state;
|
|
296
|
-
|
|
297
272
|
if (isPopupOpen) {
|
|
298
273
|
this.setState({
|
|
299
274
|
isPopupOpen: false,
|
|
@@ -301,7 +276,6 @@ const Popup = function (Component) {
|
|
|
301
276
|
});
|
|
302
277
|
}
|
|
303
278
|
}
|
|
304
|
-
|
|
305
279
|
handleCloseLastOpenedGroup() {
|
|
306
280
|
const groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] || [] : [];
|
|
307
281
|
lastOpenedGroup.splice(0, 1);
|
|
@@ -312,51 +286,44 @@ const Popup = function (Component) {
|
|
|
312
286
|
});
|
|
313
287
|
});
|
|
314
288
|
}
|
|
315
|
-
|
|
316
289
|
handleDocumentMouseDown(e) {
|
|
317
290
|
const needPrevent = this.handleGetNeedPrevent(e);
|
|
318
|
-
|
|
319
291
|
if (needPrevent) {
|
|
320
292
|
this.removeClose(e);
|
|
321
293
|
}
|
|
322
294
|
}
|
|
323
|
-
|
|
324
295
|
handleDocumentFocus(e) {
|
|
325
296
|
const needPrevent = this.handleGetNeedPrevent(e);
|
|
326
|
-
|
|
327
297
|
if (needPrevent) {
|
|
328
298
|
this.removeClose(e);
|
|
329
299
|
}
|
|
330
300
|
}
|
|
331
|
-
|
|
332
301
|
handleGetNeedPrevent(e) {
|
|
333
302
|
let needPrevent = false;
|
|
334
|
-
|
|
335
303
|
if (lastOpenedGroup.length > 1) {
|
|
336
304
|
const {
|
|
337
305
|
target
|
|
338
306
|
} = e;
|
|
339
307
|
const groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] : [];
|
|
340
|
-
let openedPopup = null;
|
|
341
|
-
|
|
308
|
+
let openedPopup = null;
|
|
309
|
+
// eslint-disable-next-line guard-for-in
|
|
342
310
|
for (const i in groupPopups) {
|
|
343
311
|
const {
|
|
344
312
|
isPopupOpen
|
|
345
313
|
} = groupPopups[i].state;
|
|
346
|
-
|
|
347
314
|
if (isPopupOpen) {
|
|
348
315
|
openedPopup = groupPopups[i];
|
|
349
316
|
break;
|
|
350
317
|
}
|
|
351
318
|
}
|
|
352
|
-
|
|
353
319
|
if (openedPopup) {
|
|
354
320
|
const {
|
|
355
321
|
dropElement,
|
|
356
322
|
placeHolderElement
|
|
357
323
|
} = openedPopup;
|
|
358
324
|
const isDropBoxChild = isDescendant(dropElement, target);
|
|
359
|
-
const isTargetChild = isDescendant(placeHolderElement, target);
|
|
325
|
+
const isTargetChild = isDescendant(placeHolderElement, target);
|
|
326
|
+
// const massUpdateParent = document.querySelector(
|
|
360
327
|
// '[data-id=massUpdatePopup]'
|
|
361
328
|
// );
|
|
362
329
|
// const isPopupMassUpdateChild = isDescendant(
|
|
@@ -364,25 +331,22 @@ const Popup = function (Component) {
|
|
|
364
331
|
// dropElement
|
|
365
332
|
// );
|
|
366
333
|
|
|
367
|
-
if (!isDropBoxChild && !isTargetChild
|
|
334
|
+
if (!isDropBoxChild && !isTargetChild
|
|
335
|
+
// && isPopupMassUpdateChild
|
|
368
336
|
) {
|
|
369
337
|
needPrevent = true;
|
|
370
338
|
}
|
|
371
339
|
}
|
|
372
340
|
}
|
|
373
|
-
|
|
374
341
|
return needPrevent;
|
|
375
342
|
}
|
|
376
|
-
|
|
377
343
|
documentClickHandler1(e) {
|
|
378
344
|
const needPrevent = this.handleGetNeedPrevent(e);
|
|
379
|
-
|
|
380
345
|
if (needPrevent) {
|
|
381
346
|
this.removeClose(e);
|
|
382
347
|
this.handleCloseLastOpenedGroup();
|
|
383
348
|
}
|
|
384
349
|
}
|
|
385
|
-
|
|
386
350
|
documentClickHandler() {
|
|
387
351
|
try {
|
|
388
352
|
Object.keys(popups).forEach(groupName => {
|
|
@@ -395,26 +359,25 @@ const Popup = function (Component) {
|
|
|
395
359
|
});
|
|
396
360
|
});
|
|
397
361
|
lastOpenedGroup = [];
|
|
398
|
-
} catch (e) {
|
|
362
|
+
} catch (e) {
|
|
363
|
+
// eslint-disable-next-line no-console
|
|
399
364
|
//console.error('popup component not unmounted properly', e);
|
|
400
365
|
}
|
|
401
366
|
}
|
|
402
|
-
|
|
403
367
|
documentKeyupHandler(e) {
|
|
404
368
|
try {
|
|
405
369
|
if (e.keyCode === 27) {
|
|
406
370
|
this.handleCloseLastOpenedGroup();
|
|
407
371
|
}
|
|
408
|
-
} catch (e) {
|
|
372
|
+
} catch (e) {
|
|
373
|
+
// eslint-disable-next-line no-console
|
|
409
374
|
//console.log('error', e);
|
|
410
375
|
}
|
|
411
376
|
}
|
|
412
|
-
|
|
413
377
|
removeClose(e) {
|
|
414
378
|
// e && e.preventDefault && e.preventDefault();
|
|
415
379
|
cancelBubblingEffect(e);
|
|
416
380
|
}
|
|
417
|
-
|
|
418
381
|
handlePopupPosition() {
|
|
419
382
|
let defaultPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bottomCenter';
|
|
420
383
|
let isResizeHandling = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -429,13 +392,11 @@ const Popup = function (Component) {
|
|
|
429
392
|
const needArrow = this.getNeedArrow(this);
|
|
430
393
|
const isAbsolute = this.getIsAbsolutePopup(this);
|
|
431
394
|
const customOrder = this.getCustomPositionOrder(this);
|
|
432
|
-
|
|
433
395
|
if (direction === 'rtl') {
|
|
434
396
|
defaultPosition = isAbsolute ? rtlAbsolutePositionMapping[defaultPosition] : rtlFixedPositionMapping[defaultPosition];
|
|
435
397
|
} else {
|
|
436
398
|
defaultPosition = isAbsolute ? absolutePositionMapping[defaultPosition] : defaultPosition;
|
|
437
399
|
}
|
|
438
|
-
|
|
439
400
|
if (!placeHolderElement && !dropElement) {
|
|
440
401
|
this.setState({
|
|
441
402
|
isPopupOpen: true,
|
|
@@ -443,7 +404,6 @@ const Popup = function (Component) {
|
|
|
443
404
|
});
|
|
444
405
|
return;
|
|
445
406
|
}
|
|
446
|
-
|
|
447
407
|
const setPosition = () => {
|
|
448
408
|
requestAnimationFrame(() => {
|
|
449
409
|
const {
|
|
@@ -467,7 +427,6 @@ const Popup = function (Component) {
|
|
|
467
427
|
targetOffset,
|
|
468
428
|
popupOffset
|
|
469
429
|
} = betterPosition || {};
|
|
470
|
-
|
|
471
430
|
if (position !== view || !isPopupReady) {
|
|
472
431
|
this.setState({
|
|
473
432
|
isPopupReady: true,
|
|
@@ -481,7 +440,6 @@ const Popup = function (Component) {
|
|
|
481
440
|
}
|
|
482
441
|
});
|
|
483
442
|
};
|
|
484
|
-
|
|
485
443
|
if (isResizeHandling) {
|
|
486
444
|
setPosition();
|
|
487
445
|
} else {
|
|
@@ -492,7 +450,6 @@ const Popup = function (Component) {
|
|
|
492
450
|
}, setPosition);
|
|
493
451
|
}
|
|
494
452
|
}
|
|
495
|
-
|
|
496
453
|
handleOpenPopupPositionChange() {
|
|
497
454
|
Object.keys(popups).forEach(groupName => {
|
|
498
455
|
const groupPopups = popups[groupName] || [];
|
|
@@ -507,7 +464,6 @@ const Popup = function (Component) {
|
|
|
507
464
|
position,
|
|
508
465
|
positionsOffset = {}
|
|
509
466
|
} = popup.state;
|
|
510
|
-
|
|
511
467
|
if (placeHolderElement && dropElement) {
|
|
512
468
|
const scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
|
|
513
469
|
requestAnimationFrame(() => {
|
|
@@ -534,7 +490,9 @@ const Popup = function (Component) {
|
|
|
534
490
|
left = '',
|
|
535
491
|
top = ''
|
|
536
492
|
} = viewsOffset[view] || {};
|
|
537
|
-
const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top;
|
|
493
|
+
const changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top;
|
|
494
|
+
|
|
495
|
+
// let isInViewPort = viewPort.isInViewPort(
|
|
538
496
|
// placeHolderElement,
|
|
539
497
|
// scrollContainer
|
|
540
498
|
// );
|
|
@@ -548,7 +506,9 @@ const Popup = function (Component) {
|
|
|
548
506
|
popupOffset,
|
|
549
507
|
isAbsolutePositioningNeeded: isAbsolute
|
|
550
508
|
});
|
|
551
|
-
}
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
// if (!isInViewPort && !isAbsolute) {
|
|
552
512
|
// popup.setState({ isPopupOpen: false, isPopupReady: false });
|
|
553
513
|
// } else if (view && changeState) {
|
|
554
514
|
// popup.setState({
|
|
@@ -560,7 +520,6 @@ const Popup = function (Component) {
|
|
|
560
520
|
// isAbsolutePositioningNeeded: isAbsolute
|
|
561
521
|
// });
|
|
562
522
|
// }
|
|
563
|
-
|
|
564
523
|
});
|
|
565
524
|
}
|
|
566
525
|
}
|
|
@@ -571,7 +530,6 @@ const Popup = function (Component) {
|
|
|
571
530
|
handleResize() {
|
|
572
531
|
this.handleOpenPopupPositionChange();
|
|
573
532
|
}
|
|
574
|
-
|
|
575
533
|
handleScroll(e) {
|
|
576
534
|
// this.handleOpenPopupPositionChange();
|
|
577
535
|
const {
|
|
@@ -580,17 +538,14 @@ const Popup = function (Component) {
|
|
|
580
538
|
const {
|
|
581
539
|
isPopupReady
|
|
582
540
|
} = this.state;
|
|
583
|
-
|
|
584
541
|
if (isPopupReady) {
|
|
585
542
|
console.log('onscrollPopupREady');
|
|
586
543
|
}
|
|
587
|
-
|
|
588
544
|
if (isPopupReady && closeOnScroll) {
|
|
589
545
|
console.log(this, 'handle Scroll');
|
|
590
546
|
this.togglePopup(e);
|
|
591
547
|
}
|
|
592
548
|
}
|
|
593
|
-
|
|
594
549
|
handlePopupResize(popupSize) {
|
|
595
550
|
const {
|
|
596
551
|
height,
|
|
@@ -604,22 +559,17 @@ const Popup = function (Component) {
|
|
|
604
559
|
isPopupReady,
|
|
605
560
|
position
|
|
606
561
|
} = this.state;
|
|
607
|
-
|
|
608
562
|
if (isPopupReady && this.size && (oldHeight !== height || width !== oldWidth)) {
|
|
609
563
|
this.handlePopupPosition(position, true);
|
|
610
564
|
}
|
|
611
|
-
|
|
612
565
|
this.size = popupSize;
|
|
613
566
|
}
|
|
614
|
-
|
|
615
567
|
getTargetRef(el) {
|
|
616
568
|
this.placeHolderElement = el;
|
|
617
569
|
}
|
|
618
|
-
|
|
619
570
|
getContainerRef(el) {
|
|
620
571
|
this.dropElement = el;
|
|
621
572
|
}
|
|
622
|
-
|
|
623
573
|
render() {
|
|
624
574
|
const {
|
|
625
575
|
isPopupReady,
|
|
@@ -635,14 +585,11 @@ const Popup = function (Component) {
|
|
|
635
585
|
getContainerRef: this.getContainerRef
|
|
636
586
|
}));
|
|
637
587
|
}
|
|
638
|
-
|
|
639
588
|
}
|
|
640
|
-
|
|
641
589
|
Popup.displayName = Component.displayName || Component.name || Popup.name;
|
|
642
590
|
Popup.contextTypes = {
|
|
643
591
|
direction: PropTypes.string
|
|
644
592
|
};
|
|
645
593
|
return hoistStatics(Popup, Component);
|
|
646
594
|
};
|
|
647
|
-
|
|
648
595
|
export default Popup;
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
/* eslint-disable no-undef */
|
|
2
|
-
|
|
3
2
|
/**** Libraries ****/
|
|
4
3
|
import React from 'react';
|
|
5
4
|
import ReactDOM from 'react-dom';
|
|
6
5
|
import PropTypes from 'prop-types';
|
|
7
6
|
/**** Components ****/
|
|
8
|
-
|
|
9
7
|
import Popup from '../Popup';
|
|
10
|
-
|
|
11
8
|
class SamplePopup extends React.Component {
|
|
12
9
|
constructor(props) {
|
|
13
10
|
super(props);
|
|
14
11
|
}
|
|
15
|
-
|
|
16
12
|
render() {
|
|
17
13
|
return /*#__PURE__*/React.createElement("div", null, "Sample Popup");
|
|
18
14
|
}
|
|
19
|
-
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
class SamplePopupCopy extends React.Component {
|
|
23
17
|
constructor(props) {
|
|
24
18
|
super(props);
|
|
25
19
|
}
|
|
26
|
-
|
|
27
20
|
render() {
|
|
28
21
|
return /*#__PURE__*/React.createElement("div", {
|
|
29
22
|
"data-id": "samplePopup",
|
|
@@ -32,33 +25,26 @@ class SamplePopupCopy extends React.Component {
|
|
|
32
25
|
}
|
|
33
26
|
}, "Sample Popup");
|
|
34
27
|
}
|
|
35
|
-
|
|
36
28
|
}
|
|
37
|
-
|
|
38
29
|
SamplePopupCopy.propTypes = {
|
|
39
30
|
removeClose: PropTypes.func
|
|
40
31
|
};
|
|
41
|
-
|
|
42
32
|
class SamplePopupCopy1 extends React.Component {
|
|
43
33
|
constructor(props) {
|
|
44
34
|
super(props);
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
render() {
|
|
48
37
|
return /*#__PURE__*/React.createElement("div", {
|
|
49
38
|
"data-id": "samplePopup"
|
|
50
39
|
}, "Sample Popup");
|
|
51
40
|
}
|
|
52
|
-
|
|
53
41
|
}
|
|
54
|
-
|
|
55
42
|
describe('Popup component conditions', () => {
|
|
56
43
|
it('should click same popup with removeClose', () => {
|
|
57
44
|
let PopupWrapperComponent = Popup(SamplePopupCopy);
|
|
58
45
|
let div = document.createElement('div');
|
|
59
46
|
document.body.append(div);
|
|
60
47
|
/*eslint-disable */
|
|
61
|
-
|
|
62
48
|
let popupDom = ReactDOM.render( /*#__PURE__*/React.createElement(PopupWrapperComponent, null), div);
|
|
63
49
|
/*eslint-enable */
|
|
64
50
|
|
|
@@ -101,7 +87,6 @@ describe('Popup component conditions', () => {
|
|
|
101
87
|
let div = document.createElement('div');
|
|
102
88
|
document.body.append(div);
|
|
103
89
|
/*eslint-disable */
|
|
104
|
-
|
|
105
90
|
let popupDom = ReactDOM.render( /*#__PURE__*/React.createElement(PopupWrapperComponent, null), div);
|
|
106
91
|
/*eslint-enable */
|
|
107
92
|
|
|
@@ -123,12 +108,15 @@ describe('Popup component conditions', () => {
|
|
|
123
108
|
let PopupWrapperComponent = Popup(SamplePopupCopy1);
|
|
124
109
|
let popupDom = TestUtils.renderIntoDocument( /*#__PURE__*/React.createElement(PopupWrapperComponent, null));
|
|
125
110
|
popupDom.togglePopup();
|
|
126
|
-
expect(popupDom.state.isPopupOpen).toBeTruthy();
|
|
111
|
+
expect(popupDom.state.isPopupOpen).toBeTruthy();
|
|
127
112
|
|
|
113
|
+
//TestUtils.Simulate.keyUp(document, {keyCode:27});
|
|
128
114
|
let e = document.createEvent('HTMLEvents');
|
|
129
115
|
e.initEvent('keyup', false, true);
|
|
130
116
|
e.keyCode = 27;
|
|
131
117
|
document.dispatchEvent(e);
|
|
132
118
|
expect(popupDom.state.isPopupOpen).toBeFalsy();
|
|
133
119
|
});
|
|
134
|
-
});
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
//Group Popup Handling Open and close
|
package/es/Popup/viewPort.js
CHANGED
|
@@ -4,7 +4,6 @@ let viewPort = {
|
|
|
4
4
|
if (!el) {
|
|
5
5
|
return;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
7
|
let rectTemp = el.getBoundingClientRect();
|
|
9
8
|
let rect = {
|
|
10
9
|
height: rectTemp.height || el.clientHeight,
|
|
@@ -27,11 +26,9 @@ let viewPort = {
|
|
|
27
26
|
x: 0,
|
|
28
27
|
y: 0
|
|
29
28
|
};
|
|
30
|
-
|
|
31
29
|
if (customFrame) {
|
|
32
30
|
customFrameRect = customFrame.getBoundingClientRect();
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
let newRect = {
|
|
36
33
|
top: rect.top - customFrameRect.top,
|
|
37
34
|
left: rect.left - customFrameRect.left,
|
|
@@ -64,7 +61,6 @@ let viewPort = {
|
|
|
64
61
|
if (!el) {
|
|
65
62
|
return;
|
|
66
63
|
}
|
|
67
|
-
|
|
68
64
|
let elRects = viewPort.frameRelativeRects(el, customFrame);
|
|
69
65
|
let {
|
|
70
66
|
rect
|
|
@@ -82,11 +78,9 @@ let viewPort = {
|
|
|
82
78
|
needArrow,
|
|
83
79
|
isAbsolute
|
|
84
80
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
85
|
-
|
|
86
81
|
if (!el) {
|
|
87
82
|
return;
|
|
88
83
|
}
|
|
89
|
-
|
|
90
84
|
let elViewPortEle = viewPort.getViewPortEle(el);
|
|
91
85
|
let elRects = viewPort.frameRelativeRects(el, customFrame, elViewPortEle);
|
|
92
86
|
let {
|
|
@@ -101,12 +95,13 @@ let viewPort = {
|
|
|
101
95
|
let relativeBoxDocumentRects = viewPort.frameRelativeRects(relativeBox, customFrame);
|
|
102
96
|
let {
|
|
103
97
|
rectGap: documentGap
|
|
104
|
-
} = relativeBoxDocumentRects;
|
|
98
|
+
} = relativeBoxDocumentRects;
|
|
99
|
+
|
|
100
|
+
//rect => PopOverContainer, relativeBoxGap => PopOverTarget
|
|
101
|
+
|
|
105
102
|
//Horizontal ~ ----- X axis
|
|
106
103
|
//Vertical ~ ||||||| Y axis
|
|
107
|
-
|
|
108
104
|
let paddingSpace = 5; // space between target and relative element
|
|
109
|
-
|
|
110
105
|
let arrowSize = needArrow ? 10 : 0;
|
|
111
106
|
rect.height = rect.height + (needArrow ? arrowSize : paddingSpace);
|
|
112
107
|
rect.width = rect.width + (needArrow ? arrowSize : paddingSpace);
|
|
@@ -289,7 +284,6 @@ let viewPort = {
|
|
|
289
284
|
if (!el) {
|
|
290
285
|
return;
|
|
291
286
|
}
|
|
292
|
-
|
|
293
287
|
let elRects = viewPort.frameRelativeRects(el, customFrame);
|
|
294
288
|
let {
|
|
295
289
|
rectGap
|
|
@@ -316,11 +310,9 @@ let viewPort = {
|
|
|
316
310
|
needArrow,
|
|
317
311
|
isAbsolute
|
|
318
312
|
});
|
|
319
|
-
|
|
320
313
|
if (!viewPortPossibilities) {
|
|
321
314
|
return;
|
|
322
315
|
}
|
|
323
|
-
|
|
324
316
|
let {
|
|
325
317
|
views,
|
|
326
318
|
viewsOffset,
|
|
@@ -329,12 +321,10 @@ let viewPort = {
|
|
|
329
321
|
} = viewPortPossibilities;
|
|
330
322
|
let view = null;
|
|
331
323
|
let isViewFound = false;
|
|
332
|
-
|
|
333
324
|
if (!isViewFound && defaultView && views[defaultView]) {
|
|
334
325
|
view = defaultView;
|
|
335
326
|
isViewFound = true;
|
|
336
327
|
}
|
|
337
|
-
|
|
338
328
|
if (!isViewFound) {
|
|
339
329
|
if (customOrder.length > 0) {
|
|
340
330
|
isViewFound = customOrder.some(position => {
|
|
@@ -352,11 +342,9 @@ let viewPort = {
|
|
|
352
342
|
});
|
|
353
343
|
}
|
|
354
344
|
}
|
|
355
|
-
|
|
356
345
|
if (!isViewFound) {
|
|
357
346
|
view = defaultView;
|
|
358
347
|
}
|
|
359
|
-
|
|
360
348
|
return {
|
|
361
349
|
view,
|
|
362
350
|
views,
|