@zohodesk/components 1.0.0-temp-199.5 → 1.0.0-temp-214
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/README.md +3 -0
- package/es/Accordion/Accordion.js +2 -2
- package/es/Accordion/AccordionItem.js +4 -4
- package/es/Accordion/__tests__/Accordion.spec.js +1 -1
- package/es/Accordion/__tests__/AccordionItem.spec.js +1 -1
- package/es/Accordion/index.js +2 -2
- package/es/Animation/Animation.js +3 -3
- package/es/Animation/__tests__/Animation.spec.js +1 -1
- package/es/Animation/utils.js +1 -1
- package/es/AppContainer/AppContainer.js +9 -9
- package/es/AppContainer/__tests__/AppContainer.spec.js +1 -1
- package/es/Avatar/Avatar.js +5 -5
- package/es/Avatar/__tests__/Avatar.spec.js +1 -1
- package/es/AvatarTeam/AvatarTeam.js +4 -4
- package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -1
- package/es/Button/Button.js +4 -4
- package/es/Button/__tests__/Button.spec.js +1 -1
- package/es/Button/index.js +2 -2
- package/es/Button/props/defaultProps.js +1 -1
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/__tests__/Buttongroup.spec.js +1 -1
- package/es/Card/Card.js +5 -5
- package/es/Card/__tests__/Card.spec.js +1 -1
- package/es/Card/index.js +4 -4
- package/es/CheckBox/CheckBox.js +6 -6
- package/es/CheckBox/__tests__/CheckBox.spec.js +1 -1
- package/es/DateTime/CalendarView.js +6 -6
- package/es/DateTime/DateTime.js +15 -15
- package/es/DateTime/DateTimePopupFooter.js +5 -5
- package/es/DateTime/DateTimePopupHeader.js +4 -4
- package/es/DateTime/DateWidget.js +17 -17
- package/es/DateTime/DaysRow.js +3 -3
- package/es/DateTime/Time.js +5 -5
- package/es/DateTime/YearView.js +6 -6
- package/es/DateTime/__tests__/CalendarView.spec.js +1 -1
- package/es/DateTime/__tests__/DateTime.spec.js +1 -1
- package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +1 -1
- package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +1 -1
- package/es/DateTime/__tests__/DateWidget.spec.js +1 -1
- package/es/DateTime/__tests__/DaysRow.spec.js +1 -1
- package/es/DateTime/__tests__/Time.spec.js +1 -1
- package/es/DateTime/__tests__/YearView.spec.js +1 -1
- package/es/DateTime/dateFormatUtils/dateFormat.js +4 -4
- package/es/DateTime/dateFormatUtils/dayChange.js +2 -2
- package/es/DateTime/dateFormatUtils/index.js +3 -3
- package/es/DateTime/dateFormatUtils/monthChange.js +2 -2
- package/es/DateTime/dateFormatUtils/timeChange.js +2 -2
- package/es/DateTime/dateFormatUtils/yearChange.js +2 -2
- package/es/DateTime/index.js +1 -1
- package/es/DateTime/props/propTypes.js +1 -1
- package/es/DateTime/validator.js +2 -2
- package/es/DropBox/DropBox.js +9 -9
- package/es/DropBox/DropBoxElement/DropBoxElement.js +6 -6
- package/es/DropBox/DropBoxElement/__tests__/DropBoxElement.spec.js +1 -1
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +1 -1
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +1 -1
- package/es/DropBox/__tests__/DropBox.spec.js +1 -1
- package/es/DropBox/css/cssJSLogic.js +1 -1
- package/es/DropBox/props/defaultProps.js +1 -1
- package/es/DropBox/props/propTypes.js +1 -1
- package/es/DropBox/utils/isMobilePopover.js +1 -1
- package/es/DropDown/DropDown.js +4 -4
- package/es/DropDown/DropDownHeading.js +3 -3
- package/es/DropDown/DropDownItem.js +3 -3
- package/es/DropDown/DropDownSearch.js +4 -4
- package/es/DropDown/DropDownSeparator.js +2 -2
- package/es/DropDown/__tests__/DropDown.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownHeading.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownItem.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownSearch.spec.js +1 -1
- package/es/DropDown/__tests__/DropDownSeparator.spec.js +1 -1
- package/es/DropDown/index.js +7 -7
- package/es/DropDown/props/propTypes.js +1 -1
- package/es/Heading/Heading.js +4 -4
- package/es/Heading/__tests__/Heading.spec.js +1 -1
- package/es/Label/Label.js +4 -4
- package/es/Label/__tests__/Label.spec.js +1 -1
- package/es/Layout/Box.js +4 -4
- package/es/Layout/Container.js +4 -4
- package/es/Layout/__tests__/Box.spec.js +1 -1
- package/es/Layout/__tests__/Container.spec.js +1 -1
- package/es/Layout/index.js +2 -2
- package/es/ListItem/ListContainer.js +6 -6
- package/es/ListItem/ListItem.js +7 -7
- package/es/ListItem/ListItem.module.css +18 -85
- package/es/ListItem/ListItemWithAvatar.js +17 -13
- package/es/ListItem/ListItemWithCheckBox.js +6 -6
- package/es/ListItem/ListItemWithIcon.js +7 -7
- package/es/ListItem/ListItemWithRadio.js +6 -6
- package/es/ListItem/__tests__/ListContainer.spec.js +1 -1
- package/es/ListItem/__tests__/ListItem.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithIcon.spec.js +1 -1
- package/es/ListItem/__tests__/ListItemWithRadio.spec.js +1 -1
- package/es/ListItem/index.js +6 -6
- package/es/ListItem/props/propTypes.js +4 -1
- package/es/Modal/Modal.js +3 -3
- package/es/Modal/__tests__/Modal.spec.js +1 -1
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +19 -24
- package/es/MultiSelect/AdvancedMultiSelect.js +18 -19
- package/es/MultiSelect/EmptyState.js +3 -3
- package/es/MultiSelect/MobileHeader/MobileHeader.js +5 -5
- package/es/MultiSelect/MobileHeader/__tests__/MobileHeader.spec.js +1 -1
- package/es/MultiSelect/MultiSelect.js +22 -27
- package/es/MultiSelect/MultiSelectHeader.js +4 -4
- package/es/MultiSelect/MultiSelectWithAvatar.js +16 -16
- package/es/MultiSelect/SelectedOptions.js +5 -5
- package/es/MultiSelect/Suggestions.js +10 -14
- package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/EmptyState.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +1 -1
- package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +1 -1
- package/es/MultiSelect/__tests__/SelectedOptions.spec.js +1 -1
- package/es/MultiSelect/__tests__/Suggestions.spec.js +1 -1
- package/es/MultiSelect/index.js +4 -4
- package/es/MultiSelect/props/defaultProps.js +5 -7
- package/es/MultiSelect/props/propTypes.js +3 -6
- package/es/PopOver/PopOver.js +6 -6
- package/es/PopOver/__tests__/PopOver.spec.js +1 -1
- package/es/PopOver/index.js +3 -3
- package/es/Popup/Popup.js +37 -18
- package/es/Popup/intersectionObserver.js +33 -23
- package/es/Provider/AvatarSize.js +1 -1
- package/es/Provider/CssProvider.js +1 -1
- package/es/Provider/IdProvider.js +2 -2
- package/es/Provider/LibraryContext.js +2 -2
- package/es/Provider/ZindexProvider.js +2 -2
- package/es/Provider/index.js +4 -4
- package/es/Radio/Radio.js +5 -5
- package/es/Radio/__tests__/Radio.spec.js +1 -1
- package/es/Responsive/CustomResponsive.js +7 -7
- package/es/Responsive/ResizeComponent.js +2 -2
- package/es/Responsive/Responsive.js +6 -6
- package/es/Responsive/index.js +3 -3
- package/es/Responsive/utils/index.js +1 -1
- package/es/Responsive/windowResizeObserver.js +1 -1
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
- package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +1 -1
- package/es/ResponsiveDropBox/props/propTypes.js +1 -1
- package/es/Ribbon/Ribbon.js +3 -3
- package/es/Ribbon/__tests__/Ribbon.spec.js +1 -1
- package/es/RippleEffect/RippleEffect.js +4 -4
- package/es/RippleEffect/__tests__/RippleEffect.spec.js +1 -1
- package/es/Select/GroupSelect.js +18 -23
- package/es/Select/Select.js +15 -15
- package/es/Select/SelectWithAvatar.js +19 -24
- package/es/Select/SelectWithIcon.js +15 -17
- package/es/Select/__tests__/GroupSelect.spec.js +1 -1
- package/es/Select/__tests__/Select.spec.js +1 -1
- package/es/Select/__tests__/SelectWithAvatar.spec.js +1 -1
- package/es/Select/__tests__/SelectWithIcon.spec.js +1 -1
- package/es/Select/index.js +4 -4
- package/es/Select/props/defaultProps.js +3 -5
- package/es/Select/props/propTypes.js +2 -4
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/__tests__/Stencils.spec.js +1 -1
- package/es/Switch/Switch.js +5 -5
- package/es/Switch/__tests__/Switch.spec.js +1 -1
- package/es/Tab/Tab.js +5 -5
- package/es/Tab/TabContent.js +4 -4
- package/es/Tab/TabContentWrapper.js +3 -3
- package/es/Tab/TabWrapper.js +3 -3
- package/es/Tab/Tabs.js +13 -13
- package/es/Tab/__tests__/Tab.spec.js +1 -1
- package/es/Tab/__tests__/TabContent.spec.js +1 -1
- package/es/Tab/__tests__/TabContentWrapper.spec.js +1 -1
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -1
- package/es/Tab/__tests__/Tabs.spec.js +1 -1
- package/es/Tab/index.js +5 -5
- package/es/Tag/Tag.js +7 -7
- package/es/Tag/__tests__/Tag.spec.js +1 -1
- package/es/TextBox/TextBox.js +3 -3
- package/es/TextBox/__tests__/TextBox.spec.js +1 -1
- package/es/TextBoxIcon/TextBoxIcon.js +6 -6
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -1
- package/es/TextBoxIcon/props/propTypes.js +1 -1
- package/es/Textarea/Textarea.js +3 -3
- package/es/Textarea/__tests__/Textarea.spec.js +1 -1
- package/es/Tooltip/Tooltip.js +6 -6
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
- package/es/VelocityAnimation/VelocityAnimation/__tests__/VelocityAnimation.spec.js +1 -1
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
- package/es/VelocityAnimation/VelocityAnimationGroup/__tests__/VelocityAnimationGroup.spec.js +1 -1
- package/es/VelocityAnimation/index.js +2 -2
- package/es/css.js +37 -37
- package/es/deprecated/PortalLayer/PortalLayer.js +3 -3
- package/es/index.js +39 -39
- package/es/semantic/Button/Button.js +3 -3
- package/es/semantic/Button/__tests__/Button.spec.js +1 -1
- package/es/semantic/index.js +1 -1
- package/es/utils/Common.js +1 -1
- package/es/utils/ContextOptimizer.js +1 -1
- package/es/utils/cssUtils.js +1 -1
- package/es/utils/datetime/common.js +1 -1
- package/es/utils/dropDownUtils.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/v1/Accordion/Accordion.js +2 -2
- package/es/v1/Accordion/AccordionItem.js +4 -4
- package/es/v1/Accordion/index.js +2 -2
- package/es/v1/Animation/Animation.js +3 -3
- package/es/v1/Animation/utils.js +1 -1
- package/es/v1/AppContainer/AppContainer.js +8 -8
- package/es/v1/Avatar/Avatar.js +5 -5
- package/es/v1/AvatarTeam/AvatarTeam.js +4 -4
- package/es/v1/Button/Button.js +4 -4
- package/es/v1/Button/props/defaultProps.js +1 -1
- package/es/v1/Buttongroup/Buttongroup.js +3 -3
- package/es/v1/Card/Card.js +5 -5
- package/es/v1/Card/index.js +4 -4
- package/es/v1/CheckBox/CheckBox.js +6 -6
- package/es/v1/DateTime/CalendarView.js +7 -7
- package/es/v1/DateTime/DateTime.js +15 -15
- package/es/v1/DateTime/DateTimePopupFooter.js +5 -5
- package/es/v1/DateTime/DateTimePopupHeader.js +4 -4
- package/es/v1/DateTime/DateWidget.js +17 -17
- package/es/v1/DateTime/DaysRow.js +3 -3
- package/es/v1/DateTime/Time.js +5 -5
- package/es/v1/DateTime/YearView.js +6 -6
- package/es/v1/DateTime/index.js +1 -1
- package/es/v1/DateTime/props/propTypes.js +1 -1
- package/es/v1/DropBox/DropBox.js +9 -9
- package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +6 -6
- package/es/v1/DropBox/props/defaultProps.js +1 -1
- package/es/v1/DropBox/props/propTypes.js +1 -1
- package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
- package/es/v1/DropDown/DropDown.js +4 -4
- package/es/v1/DropDown/DropDownHeading.js +3 -3
- package/es/v1/DropDown/DropDownItem.js +3 -3
- package/es/v1/DropDown/DropDownSearch.js +4 -4
- package/es/v1/DropDown/DropDownSeparator.js +2 -2
- package/es/v1/DropDown/props/propTypes.js +1 -1
- package/es/v1/Heading/Heading.js +4 -4
- package/es/v1/Label/Label.js +4 -4
- package/es/v1/Layout/Box.js +4 -4
- package/es/v1/Layout/Container.js +4 -4
- package/es/v1/Layout/index.js +2 -2
- package/es/v1/ListItem/ListContainer.js +6 -6
- package/es/v1/ListItem/ListItem.js +5 -5
- package/es/v1/ListItem/ListItemWithAvatar.js +7 -7
- package/es/v1/ListItem/ListItemWithCheckBox.js +6 -6
- package/es/v1/ListItem/ListItemWithIcon.js +5 -5
- package/es/v1/ListItem/ListItemWithRadio.js +6 -6
- package/es/v1/ListItem/index.js +6 -6
- package/es/v1/Modal/Modal.js +3 -3
- package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +17 -17
- package/es/v1/MultiSelect/AdvancedMultiSelect.js +18 -19
- package/es/v1/MultiSelect/EmptyState.js +3 -3
- package/es/v1/MultiSelect/MobileHeader/MobileHeader.js +5 -5
- package/es/v1/MultiSelect/MultiSelect.js +21 -26
- package/es/v1/MultiSelect/MultiSelectHeader.js +4 -4
- package/es/v1/MultiSelect/MultiSelectWithAvatar.js +16 -16
- package/es/v1/MultiSelect/SelectedOptions.js +5 -5
- package/es/v1/MultiSelect/Suggestions.js +10 -14
- package/es/v1/MultiSelect/index.js +4 -4
- package/es/v1/MultiSelect/props/defaultProps.js +3 -5
- package/es/v1/MultiSelect/props/propTypes.js +2 -6
- package/es/v1/PopOver/PopOver.js +6 -6
- package/es/v1/Popup/Popup.js +3 -3
- package/es/v1/Radio/Radio.js +5 -5
- package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +6 -6
- package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -1
- package/es/v1/Ribbon/Ribbon.js +3 -3
- package/es/v1/RippleEffect/RippleEffect.js +4 -4
- package/es/v1/Select/GroupSelect.js +18 -23
- package/es/v1/Select/Select.js +15 -15
- package/es/v1/Select/SelectWithAvatar.js +19 -24
- package/es/v1/Select/SelectWithIcon.js +13 -13
- package/es/v1/Select/index.js +4 -4
- package/es/v1/Select/props/defaultProps.js +3 -5
- package/es/v1/Select/props/propTypes.js +2 -6
- package/es/v1/Stencils/Stencils.js +3 -3
- package/es/v1/Switch/Switch.js +5 -5
- package/es/v1/Tab/Tab.js +5 -5
- package/es/v1/Tab/TabContent.js +4 -4
- package/es/v1/Tab/TabContentWrapper.js +3 -3
- package/es/v1/Tab/TabWrapper.js +3 -3
- package/es/v1/Tab/Tabs.js +13 -13
- package/es/v1/Tab/index.js +5 -5
- package/es/v1/Tag/Tag.js +7 -7
- package/es/v1/TextBox/TextBox.js +3 -3
- package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -6
- package/es/v1/TextBoxIcon/props/propTypes.js +1 -1
- package/es/v1/Textarea/Textarea.js +3 -3
- package/es/v1/Tooltip/Tooltip.js +6 -6
- package/es/v1/Typography/Typography.js +4 -4
- package/es/v1/Typography/css/cssJSLogic.js +1 -1
- package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -3
- package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +3 -3
- package/es/v1/semantic/Button/Button.js +3 -3
- package/es/v1/semantic/index.js +1 -1
- package/lib/ListItem/ListItem.js +2 -2
- package/lib/ListItem/ListItem.module.css +18 -85
- package/lib/ListItem/ListItemWithAvatar.js +11 -7
- package/lib/ListItem/ListItemWithIcon.js +2 -2
- package/lib/ListItem/props/propTypes.js +4 -1
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +3 -7
- package/lib/MultiSelect/AdvancedMultiSelect.js +1 -3
- package/lib/MultiSelect/MultiSelect.js +3 -6
- package/lib/MultiSelect/Suggestions.js +4 -8
- package/lib/MultiSelect/props/defaultProps.js +4 -6
- package/lib/MultiSelect/props/propTypes.js +6 -8
- package/lib/Popup/Popup.js +32 -14
- package/lib/Popup/intersectionObserver.js +35 -25
- package/lib/Select/GroupSelect.js +3 -8
- package/lib/Select/SelectWithAvatar.js +3 -8
- package/lib/Select/SelectWithIcon.js +3 -5
- package/lib/Select/props/defaultProps.js +2 -4
- package/lib/Select/props/propTypes.js +2 -4
- package/lib/v1/MultiSelect/AdvancedMultiSelect.js +1 -3
- package/lib/v1/MultiSelect/MultiSelect.js +3 -8
- package/lib/v1/MultiSelect/Suggestions.js +4 -8
- package/lib/v1/MultiSelect/props/defaultProps.js +2 -4
- package/lib/v1/MultiSelect/props/propTypes.js +2 -6
- package/lib/v1/Select/GroupSelect.js +3 -8
- package/lib/v1/Select/SelectWithAvatar.js +3 -8
- package/lib/v1/Select/props/defaultProps.js +2 -4
- package/lib/v1/Select/props/propTypes.js +2 -6
- package/package.json +2 -2
- package/result.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { EmptyState_propTypes } from
|
|
4
|
-
import { EmptyState_defaultProps } from
|
|
3
|
+
import { EmptyState_propTypes } from './props/propTypes';
|
|
4
|
+
import { EmptyState_defaultProps } from './props/defaultProps';
|
|
5
5
|
/**** CSS ****/
|
|
6
6
|
|
|
7
|
-
import style from
|
|
7
|
+
import style from './MultiSelect.module.css';
|
|
8
8
|
export default class EmptyState extends React.PureComponent {
|
|
9
9
|
render() {
|
|
10
10
|
let {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import Button from
|
|
3
|
-
import { Container, Box } from
|
|
4
|
-
import { defaultProps } from
|
|
5
|
-
import { propTypes } from
|
|
6
|
-
import style from
|
|
2
|
+
import Button from '../../Button/Button';
|
|
3
|
+
import { Container, Box } from '../../Layout';
|
|
4
|
+
import { defaultProps } from './props/defaultProps';
|
|
5
|
+
import { propTypes } from './props/propTypes';
|
|
6
|
+
import style from './MobileHeader.module.css';
|
|
7
7
|
export default function MobileHeader(props) {
|
|
8
8
|
let {
|
|
9
9
|
i18nKeys,
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { MultiSelect_propTypes } from
|
|
4
|
-
import { MultiSelect_defaultProps } from
|
|
5
|
-
import { defaultProps as MobileHeader_defaultProps } from
|
|
3
|
+
import { MultiSelect_propTypes } from './props/propTypes';
|
|
4
|
+
import { MultiSelect_defaultProps } from './props/defaultProps';
|
|
5
|
+
import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
|
|
6
6
|
/**** Components ****/
|
|
7
7
|
|
|
8
|
-
import Popup from
|
|
9
|
-
import TextBoxIcon from
|
|
10
|
-
import { Container, Box } from
|
|
11
|
-
import Card, { CardContent, CardFooter, CardHeader } from
|
|
12
|
-
import SelectedOptions from
|
|
13
|
-
import Suggestions from
|
|
14
|
-
import EmptyState from
|
|
15
|
-
import CssProvider from
|
|
16
|
-
import { getUniqueId } from
|
|
17
|
-
import ResponsiveDropBox from
|
|
18
|
-
|
|
19
|
-
import MultiSelectHeader from
|
|
8
|
+
import Popup from '../Popup/Popup';
|
|
9
|
+
import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
|
|
10
|
+
import { Container, Box } from '../Layout';
|
|
11
|
+
import Card, { CardContent, CardFooter, CardHeader } from '../Card/Card';
|
|
12
|
+
import SelectedOptions from './SelectedOptions';
|
|
13
|
+
import Suggestions from './Suggestions';
|
|
14
|
+
import EmptyState from './EmptyState';
|
|
15
|
+
import CssProvider from '../Provider/CssProvider';
|
|
16
|
+
import { getUniqueId } from '../Provider/IdProvider';
|
|
17
|
+
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox'; // import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
18
|
+
|
|
19
|
+
import MultiSelectHeader from './MultiSelectHeader';
|
|
20
20
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
21
|
-
import isMobilePopover from
|
|
21
|
+
import isMobilePopover from '../DropBox/utils/isMobilePopover';
|
|
22
22
|
/**** Icons ****/
|
|
23
23
|
|
|
24
24
|
import { Icon } from '@zohodesk/icons';
|
|
25
25
|
/**** CSS ****/
|
|
26
26
|
|
|
27
|
-
import style from
|
|
27
|
+
import style from './MultiSelect.module.css';
|
|
28
28
|
/**** Methods ****/
|
|
29
29
|
|
|
30
|
-
import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString, findScrollEnd } from
|
|
31
|
-
import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from
|
|
32
|
-
import MobileHeader from
|
|
30
|
+
import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString, findScrollEnd } from '../utils/Common.js';
|
|
31
|
+
import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from '../utils/dropDownUtils';
|
|
32
|
+
import MobileHeader from './MobileHeader/MobileHeader';
|
|
33
33
|
/* eslint-disable react/forbid-component-props */
|
|
34
34
|
|
|
35
35
|
/* eslint-disable react/no-unused-prop-types */
|
|
@@ -1015,12 +1015,8 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1015
1015
|
boxSize,
|
|
1016
1016
|
isLoading,
|
|
1017
1017
|
selectAllText,
|
|
1018
|
-
needSelectAll
|
|
1019
|
-
customProps
|
|
1018
|
+
needSelectAll
|
|
1020
1019
|
} = this.props;
|
|
1021
|
-
const {
|
|
1022
|
-
suggestionsProps = {}
|
|
1023
|
-
} = customProps;
|
|
1024
1020
|
const {
|
|
1025
1021
|
selectedOptions,
|
|
1026
1022
|
searchStr,
|
|
@@ -1110,8 +1106,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1110
1106
|
selectedOptions: selectedOptionIds,
|
|
1111
1107
|
a11y: {
|
|
1112
1108
|
role: 'option'
|
|
1113
|
-
}
|
|
1114
|
-
...suggestionsProps
|
|
1109
|
+
}
|
|
1115
1110
|
}) : /*#__PURE__*/React.createElement(EmptyState, {
|
|
1116
1111
|
isLoading: isFetchingOptions,
|
|
1117
1112
|
options: options,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { MultiSelectHeader_propTypes } from
|
|
4
|
-
import { MultiSelectHeader_defaultProps } from
|
|
3
|
+
import { MultiSelectHeader_propTypes } from './props/propTypes';
|
|
4
|
+
import { MultiSelectHeader_defaultProps } from './props/defaultProps';
|
|
5
5
|
/**** Icons ****/
|
|
6
6
|
|
|
7
|
-
import ListItemWithIcon from
|
|
7
|
+
import ListItemWithIcon from '../ListItem/ListItemWithIcon';
|
|
8
8
|
/**** CSS ****/
|
|
9
9
|
|
|
10
|
-
import style from
|
|
10
|
+
import style from './MultiSelect.module.css';
|
|
11
11
|
export default class MultiSelectHeader extends React.PureComponent {
|
|
12
12
|
render() {
|
|
13
13
|
let {
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { MultiSelectWithAvatar_propTypes } from
|
|
4
|
-
import { MultiSelectWithAvatar_defaultProps } from
|
|
5
|
-
import { defaultProps as MobileHeader_defaultProps } from
|
|
3
|
+
import { MultiSelectWithAvatar_propTypes } from './props/propTypes';
|
|
4
|
+
import { MultiSelectWithAvatar_defaultProps } from './props/defaultProps';
|
|
5
|
+
import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
|
|
6
6
|
/**** Components ****/
|
|
7
7
|
|
|
8
|
-
import { MultiSelectComponent } from
|
|
9
|
-
import Popup from
|
|
10
|
-
import { Container, Box } from
|
|
11
|
-
import Card, { CardContent, CardHeader } from
|
|
12
|
-
import Suggestions from
|
|
13
|
-
import EmptyState from
|
|
14
|
-
import CssProvider from
|
|
15
|
-
import { getUniqueId } from
|
|
16
|
-
import ResponsiveDropBox from
|
|
8
|
+
import { MultiSelectComponent } from './MultiSelect';
|
|
9
|
+
import Popup from '../Popup/Popup';
|
|
10
|
+
import { Container, Box } from '../Layout';
|
|
11
|
+
import Card, { CardContent, CardHeader } from '../Card/Card';
|
|
12
|
+
import Suggestions from './Suggestions';
|
|
13
|
+
import EmptyState from './EmptyState';
|
|
14
|
+
import CssProvider from '../Provider/CssProvider';
|
|
15
|
+
import { getUniqueId } from '../Provider/IdProvider';
|
|
16
|
+
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox'; // import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
17
17
|
|
|
18
18
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
19
|
-
import MultiSelectHeader from
|
|
20
|
-
import isMobilePopover from
|
|
19
|
+
import MultiSelectHeader from './MultiSelectHeader';
|
|
20
|
+
import isMobilePopover from '../DropBox/utils/isMobilePopover';
|
|
21
21
|
/**** CSS ****/
|
|
22
22
|
|
|
23
|
-
import style from
|
|
24
|
-
import MobileHeader from
|
|
23
|
+
import style from './MultiSelect.module.css';
|
|
24
|
+
import MobileHeader from './MobileHeader/MobileHeader';
|
|
25
25
|
/*eslint-disable react/sort-prop-types*/
|
|
26
26
|
|
|
27
27
|
/* eslint-disable react/forbid-component-props */
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { SelectedOptions_propTypes } from
|
|
4
|
-
import { SelectedOptions_defaultProps } from
|
|
3
|
+
import { SelectedOptions_propTypes } from './props/propTypes';
|
|
4
|
+
import { SelectedOptions_defaultProps } from './props/defaultProps';
|
|
5
5
|
/**** Components ****/
|
|
6
6
|
|
|
7
|
-
import Tag from
|
|
8
|
-
import { Box } from
|
|
7
|
+
import Tag from '../Tag/Tag';
|
|
8
|
+
import { Box } from '../Layout';
|
|
9
9
|
/**** Style ****/
|
|
10
10
|
|
|
11
|
-
import style from
|
|
11
|
+
import style from './SelectedOptions.module.css';
|
|
12
12
|
/* eslint-disable react/forbid-component-props */
|
|
13
13
|
|
|
14
14
|
export default class SelectedOptions extends React.PureComponent {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { Suggestions_propTypes } from
|
|
4
|
-
import { Suggestions_defaultProps } from
|
|
3
|
+
import { Suggestions_propTypes } from './props/propTypes';
|
|
4
|
+
import { Suggestions_defaultProps } from './props/defaultProps';
|
|
5
5
|
/**** Components ****/
|
|
6
6
|
|
|
7
|
-
import ListItem from
|
|
8
|
-
import ListItemWithAvatar from
|
|
9
|
-
import ListItemWithIcon from
|
|
10
|
-
import { Container, Box } from
|
|
7
|
+
import ListItem from '../ListItem/ListItem';
|
|
8
|
+
import ListItemWithAvatar from '../ListItem/ListItemWithAvatar';
|
|
9
|
+
import ListItemWithIcon from '../ListItem/ListItemWithIcon';
|
|
10
|
+
import { Container, Box } from '../Layout';
|
|
11
11
|
export default class Suggestions extends React.PureComponent {
|
|
12
12
|
render() {
|
|
13
13
|
const {
|
|
@@ -27,8 +27,7 @@ export default class Suggestions extends React.PureComponent {
|
|
|
27
27
|
avatarPalette,
|
|
28
28
|
palette,
|
|
29
29
|
htmlId,
|
|
30
|
-
a11y
|
|
31
|
-
needMultiLineText
|
|
30
|
+
a11y
|
|
32
31
|
} = this.props;
|
|
33
32
|
const {
|
|
34
33
|
ariaParentRole,
|
|
@@ -93,8 +92,7 @@ export default class Suggestions extends React.PureComponent {
|
|
|
93
92
|
size: listItemSize,
|
|
94
93
|
avatarPalette: avatarPalette,
|
|
95
94
|
palette: palette,
|
|
96
|
-
a11y: list_a11y
|
|
97
|
-
needMultiLineText: needMultiLineText
|
|
95
|
+
a11y: list_a11y
|
|
98
96
|
});
|
|
99
97
|
} else if (optionType === 'icon') {
|
|
100
98
|
return /*#__PURE__*/React.createElement(ListItemWithIcon, { ...commonProps,
|
|
@@ -114,8 +112,7 @@ export default class Suggestions extends React.PureComponent {
|
|
|
114
112
|
iconSize: iconSize,
|
|
115
113
|
size: listItemSize,
|
|
116
114
|
palette: palette,
|
|
117
|
-
a11y: list_a11y
|
|
118
|
-
needMultiLineText: needMultiLineText
|
|
115
|
+
a11y: list_a11y
|
|
119
116
|
});
|
|
120
117
|
}
|
|
121
118
|
|
|
@@ -134,8 +131,7 @@ export default class Suggestions extends React.PureComponent {
|
|
|
134
131
|
active: isActive,
|
|
135
132
|
size: listItemSize,
|
|
136
133
|
palette: palette,
|
|
137
|
-
a11y: list_a11y
|
|
138
|
-
needMultiLineText: needMultiLineText
|
|
134
|
+
a11y: list_a11y
|
|
139
135
|
});
|
|
140
136
|
})));
|
|
141
137
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import AdvancedGroupMultiSelect from
|
|
3
|
+
import AdvancedGroupMultiSelect from '../AdvancedGroupMultiSelect';
|
|
4
4
|
describe('AdvancedGroupMultiSelect', () => {
|
|
5
5
|
test('rendering the defult props', () => {
|
|
6
6
|
const mockOnChange = jest.fn();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import AdvancedMultiSelect from
|
|
3
|
+
import AdvancedMultiSelect from '../AdvancedMultiSelect';
|
|
4
4
|
describe('AdvancedMultiSelect', () => {
|
|
5
5
|
test('rendering the defult props', () => {
|
|
6
6
|
const mockOnChange = jest.fn();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import MultiSelectHeader from
|
|
3
|
+
import MultiSelectHeader from '../MultiSelectHeader';
|
|
4
4
|
describe('MultiSelectHeader', () => {
|
|
5
5
|
test('rendering the defult props', () => {
|
|
6
6
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import MultiSelectWithAvatar from
|
|
3
|
+
import MultiSelectWithAvatar from '../MultiSelectWithAvatar';
|
|
4
4
|
describe('MultiSelectWithAvatar', () => {
|
|
5
5
|
test('rendering the defult props', () => {
|
|
6
6
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
|
-
import SelectedOptions from
|
|
3
|
+
import SelectedOptions from '../SelectedOptions';
|
|
4
4
|
describe('SelectedOptions', () => {
|
|
5
5
|
test('rendering the defult props', () => {
|
|
6
6
|
const {
|
package/es/MultiSelect/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as MultiSelect } from
|
|
2
|
-
export { default as MultiSelectWithAvatar } from
|
|
3
|
-
export { default as AdvancedMultiSelect } from
|
|
4
|
-
export { default as AdvancedGroupMultiSelect } from
|
|
1
|
+
export { default as MultiSelect } from './MultiSelect';
|
|
2
|
+
export { default as MultiSelectWithAvatar } from './MultiSelectWithAvatar';
|
|
3
|
+
export { default as AdvancedMultiSelect } from './AdvancedMultiSelect';
|
|
4
|
+
export { default as AdvancedGroupMultiSelect } from './AdvancedGroupMultiSelect';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getLibraryConfig } from
|
|
1
|
+
import { getLibraryConfig } from '../../Provider/Config';
|
|
2
2
|
export const AdvancedGroupMultiSelect_defaultProps = {
|
|
3
3
|
animationStyle: 'bounce',
|
|
4
4
|
autoComplete: getLibraryConfig('autoComplete'),
|
|
@@ -37,8 +37,7 @@ export const AdvancedGroupMultiSelect_defaultProps = {
|
|
|
37
37
|
needEffect: true,
|
|
38
38
|
palette: 'default',
|
|
39
39
|
isLoading: false,
|
|
40
|
-
dataSelectorId: 'advancedGroupMultiSelect'
|
|
41
|
-
customProps: {}
|
|
40
|
+
dataSelectorId: 'advancedGroupMultiSelect'
|
|
42
41
|
};
|
|
43
42
|
export const AdvancedMultiSelect_defaultProps = {
|
|
44
43
|
animationStyle: 'bounce',
|
|
@@ -155,14 +154,13 @@ export const MultiSelectWithAvatar_defaultProps = {
|
|
|
155
154
|
isLoading: false,
|
|
156
155
|
dataSelectorId: 'multiSelectWithAvatar',
|
|
157
156
|
keepSelectedOptions: false,
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
customProps: {},
|
|
158
|
+
needResponsive: true
|
|
160
159
|
};
|
|
161
160
|
export const SelectedOptions_defaultProps = {
|
|
162
161
|
size: 'medium',
|
|
163
162
|
dataId: 'selectedOptions'
|
|
164
163
|
};
|
|
165
164
|
export const Suggestions_defaultProps = {
|
|
166
|
-
a11y: {}
|
|
167
|
-
needMultiLineText: false
|
|
165
|
+
a11y: {}
|
|
168
166
|
};
|
|
@@ -110,8 +110,7 @@ export const MultiSelect_propTypes = {
|
|
|
110
110
|
setAriaId: PropTypes.string,
|
|
111
111
|
ariaErrorId: PropTypes.string,
|
|
112
112
|
customProps: PropTypes.shape({
|
|
113
|
-
TextBoxIconProps: PropTypes.object
|
|
114
|
-
suggestionsProps: PropTypes.object
|
|
113
|
+
TextBoxIconProps: PropTypes.object
|
|
115
114
|
})
|
|
116
115
|
};
|
|
117
116
|
export const MultiSelectHeader_propTypes = {
|
|
@@ -177,8 +176,7 @@ export const Suggestions_propTypes = {
|
|
|
177
176
|
logo: PropTypes.string,
|
|
178
177
|
optionType: PropTypes.string,
|
|
179
178
|
listItemProps: PropTypes.object
|
|
180
|
-
}))
|
|
181
|
-
needMultiLineText: PropTypes.bool
|
|
179
|
+
}))
|
|
182
180
|
};
|
|
183
181
|
export const AdvancedGroupMultiSelect_propTypes = {
|
|
184
182
|
animationStyle: PropTypes.string,
|
|
@@ -248,8 +246,7 @@ export const AdvancedGroupMultiSelect_propTypes = {
|
|
|
248
246
|
needToCloseOnSelect: PropTypes.func,
|
|
249
247
|
searchStr: PropTypes.string,
|
|
250
248
|
children: PropTypes.node,
|
|
251
|
-
dataSelectorId: PropTypes.string
|
|
252
|
-
customProps: PropTypes.string
|
|
249
|
+
dataSelectorId: PropTypes.string
|
|
253
250
|
};
|
|
254
251
|
export const AdvancedMultiSelect_propTypes = { ...MultiSelect_propTypes,
|
|
255
252
|
selectedOptionDetails: PropTypes.string,
|
package/es/PopOver/PopOver.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { PopOver_defaultProps, PopOverContainer_defaultProps } from
|
|
3
|
-
import { PopOver_propTypes, PopOverTarget_propTypes, PopOverContainer_propTypes } from
|
|
4
|
-
import Popup from
|
|
5
|
-
import { Box } from
|
|
6
|
-
import ResponsiveDropBox from
|
|
7
|
-
import style from
|
|
2
|
+
import { PopOver_defaultProps, PopOverContainer_defaultProps } from './props/defaultProps';
|
|
3
|
+
import { PopOver_propTypes, PopOverTarget_propTypes, PopOverContainer_propTypes } from './props/propTypes';
|
|
4
|
+
import Popup from '../Popup/Popup';
|
|
5
|
+
import { Box } from '../Layout';
|
|
6
|
+
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
7
|
+
import style from './PopOver.module.css';
|
|
8
8
|
|
|
9
9
|
class PopOver extends React.Component {
|
|
10
10
|
constructor(props) {
|
package/es/PopOver/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as PopOver } from
|
|
2
|
-
export { PopOverTarget } from
|
|
3
|
-
export { PopOverContainer } from
|
|
1
|
+
export { default as PopOver } from './PopOver';
|
|
2
|
+
export { PopOverTarget } from './PopOver';
|
|
3
|
+
export { PopOverContainer } from './PopOver';
|
package/es/Popup/Popup.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**** Libraries ****/
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import hoistStatics from 'hoist-non-react-statics';
|
|
4
|
-
import { PopupPropTypes, ContextTypes } from
|
|
4
|
+
import { PopupPropTypes, ContextTypes } from './props/propTypes';
|
|
5
5
|
/**** Methods ****/
|
|
6
6
|
|
|
7
|
-
import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from
|
|
8
|
-
import viewPort from
|
|
9
|
-
import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from
|
|
7
|
+
import { debounce, isDescendant, isTextSelected, cancelBubblingEffect } from '../utils/Common.js';
|
|
8
|
+
import viewPort from './viewPort';
|
|
9
|
+
import { absolutePositionMapping, rtlAbsolutePositionMapping, rtlFixedPositionMapping } from './PositionMapping.js';
|
|
10
10
|
import ResizeObserver from '@zohodesk/virtualizer/lib/commons/ResizeObserver.js';
|
|
11
|
-
import { addIntersectionObserver, removeIntersectionObserver } from
|
|
11
|
+
import { addIntersectionObserver, removeIntersectionObserver } from './intersectionObserver';
|
|
12
12
|
let lastOpenedGroup = [];
|
|
13
13
|
let popups = {};
|
|
14
14
|
|
|
@@ -95,6 +95,8 @@ const Popup = function (Component) {
|
|
|
95
95
|
this.preventKeyboardScroll = this.preventKeyboardScroll.bind(this);
|
|
96
96
|
this.addScrollBlockListeners = this.addScrollBlockListeners.bind(this);
|
|
97
97
|
this.removeScrollBlockListeners = this.removeScrollBlockListeners.bind(this);
|
|
98
|
+
this.handleAddingScrollBlock = this.handleAddingScrollBlock.bind(this);
|
|
99
|
+
this.handleRemovingScrollBlock = this.handleRemovingScrollBlock.bind(this);
|
|
98
100
|
this.handleIntersectionObserver = this.handleIntersectionObserver.bind(this);
|
|
99
101
|
this.popupObserver = new ResizeObserver(this.handlePopupResize); //dropBoxSize
|
|
100
102
|
|
|
@@ -152,9 +154,7 @@ const Popup = function (Component) {
|
|
|
152
154
|
dropElement
|
|
153
155
|
} = this;
|
|
154
156
|
const {
|
|
155
|
-
needResizeHandling: propResizeHandling
|
|
156
|
-
isAbsolutePositioningNeeded,
|
|
157
|
-
isOutsideScrollBlocked
|
|
157
|
+
needResizeHandling: propResizeHandling
|
|
158
158
|
} = this.props;
|
|
159
159
|
|
|
160
160
|
if (oldStateOpen !== isPopupReady) {
|
|
@@ -165,14 +165,10 @@ const Popup = function (Component) {
|
|
|
165
165
|
this.popupObserver.disconnect();
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
if (
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
} else {
|
|
173
|
-
removeIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
|
|
174
|
-
this.removeScrollBlockListeners();
|
|
175
|
-
}
|
|
168
|
+
if (isPopupReady) {
|
|
169
|
+
this.handleAddingScrollBlock();
|
|
170
|
+
} else {
|
|
171
|
+
this.handleRemovingScrollBlock();
|
|
176
172
|
}
|
|
177
173
|
}
|
|
178
174
|
}
|
|
@@ -189,8 +185,7 @@ const Popup = function (Component) {
|
|
|
189
185
|
|
|
190
186
|
return res;
|
|
191
187
|
}, popups);
|
|
192
|
-
|
|
193
|
-
this.removeScrollBlockListeners();
|
|
188
|
+
this.handleRemovingScrollBlock();
|
|
194
189
|
let noPopups = true;
|
|
195
190
|
|
|
196
191
|
for (const i in popups) {
|
|
@@ -215,6 +210,30 @@ const Popup = function (Component) {
|
|
|
215
210
|
}
|
|
216
211
|
}
|
|
217
212
|
|
|
213
|
+
handleAddingScrollBlock() {
|
|
214
|
+
const {
|
|
215
|
+
isAbsolutePositioningNeeded,
|
|
216
|
+
isOutsideScrollBlocked
|
|
217
|
+
} = this.props;
|
|
218
|
+
|
|
219
|
+
if (isOutsideScrollBlocked && !isAbsolutePositioningNeeded) {
|
|
220
|
+
addIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
|
|
221
|
+
this.addScrollBlockListeners();
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
handleRemovingScrollBlock() {
|
|
226
|
+
const {
|
|
227
|
+
isAbsolutePositioningNeeded,
|
|
228
|
+
isOutsideScrollBlocked
|
|
229
|
+
} = this.props;
|
|
230
|
+
|
|
231
|
+
if (isOutsideScrollBlocked && !isAbsolutePositioningNeeded) {
|
|
232
|
+
removeIntersectionObserver(this.placeHolderElement, this.handleIntersectionObserver);
|
|
233
|
+
this.removeScrollBlockListeners();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
218
237
|
addScrollBlockListeners() {
|
|
219
238
|
document.addEventListener('wheel', this.handleBlockScroll, {
|
|
220
239
|
capture: true,
|
|
@@ -2,38 +2,48 @@ let observerCallbacks = null;
|
|
|
2
2
|
let intersectionObserver = null;
|
|
3
3
|
|
|
4
4
|
function handleObserverCallbacks(entries) {
|
|
5
|
-
entries.
|
|
5
|
+
entries.forEach(entry => {
|
|
6
6
|
let oldCallbacks = observerCallbacks.get(entry.target);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
if (Array.isArray(oldCallbacks) && oldCallbacks.length) {
|
|
9
|
+
oldCallbacks.forEach(callback => {
|
|
10
|
+
callback && callback(entry);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
10
13
|
});
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
export function addIntersectionObserver(element, callback, options) {
|
|
14
|
-
if (
|
|
15
|
-
intersectionObserver
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
if (!!element && typeof callback == 'function') {
|
|
18
|
+
if (intersectionObserver === null && observerCallbacks === null) {
|
|
19
|
+
intersectionObserver = new IntersectionObserver(entries => {
|
|
20
|
+
handleObserverCallbacks(entries);
|
|
21
|
+
}, options);
|
|
22
|
+
observerCallbacks = new Map();
|
|
23
|
+
}
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
intersectionObserver.observe(element);
|
|
26
|
+
let oldCallbacks = observerCallbacks.get(element) || [];
|
|
27
|
+
observerCallbacks.set(element, [...oldCallbacks, callback]);
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
export function removeIntersectionObserver(element, callback) {
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
if (!!element && typeof callback == 'function') {
|
|
32
|
+
let oldCallbacks = observerCallbacks ? observerCallbacks.get(element) : null;
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
if (Array.isArray(oldCallbacks)) {
|
|
35
|
+
let callbacks = oldCallbacks.filter(handler => handler !== callback);
|
|
36
|
+
|
|
37
|
+
if (intersectionObserver && callbacks.length === 0) {
|
|
38
|
+
observerCallbacks.delete(element);
|
|
39
|
+
intersectionObserver.unobserve(element);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
if (intersectionObserver && observerCallbacks && observerCallbacks.size === 0) {
|
|
44
|
+
intersectionObserver.disconnect();
|
|
45
|
+
intersectionObserver = null;
|
|
46
|
+
observerCallbacks = null;
|
|
47
|
+
}
|
|
38
48
|
}
|
|
39
49
|
}
|