@zohodesk/components 1.2.23 → 1.2.24
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 +4 -0
- package/es/Accordion/Accordion.js +7 -3
- package/es/Accordion/AccordionItem.js +4 -2
- package/es/Animation/Animation.js +7 -89
- package/es/Animation/utils.js +83 -0
- package/es/AppContainer/AppContainer.js +14 -3
- package/es/AppContainer/AppContainer.module.css +2 -2
- package/es/Avatar/Avatar.js +23 -11
- package/es/Avatar/Avatar.module.css +18 -18
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/AvatarTeam/AvatarTeam.module.css +35 -35
- package/es/AvatarTeam/__tests__/AvatarTeam.spec.js +1 -2
- package/es/Button/Button.js +4 -3
- package/es/Button/css/Button.module.css +70 -70
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/Buttongroup.module.css +13 -15
- package/es/Card/Card.js +21 -10
- package/es/CheckBox/CheckBox.js +5 -3
- package/es/CheckBox/CheckBox.module.css +15 -15
- package/es/DateTime/CalendarView.js +32 -20
- package/es/DateTime/DateTime.js +69 -6
- package/es/DateTime/DateTime.module.css +40 -40
- package/es/DateTime/DateTimePopupFooter.js +4 -1
- package/es/DateTime/DateTimePopupHeader.js +8 -2
- package/es/DateTime/DateWidget.js +98 -35
- package/es/DateTime/DateWidget.module.css +5 -5
- package/es/DateTime/DaysRow.js +4 -1
- package/es/DateTime/Time.js +10 -1
- package/es/DateTime/YearView.js +28 -4
- package/es/DateTime/YearView.module.css +15 -15
- package/es/DateTime/common.js +3 -0
- package/es/DateTime/constants.js +1 -0
- package/es/DateTime/dateFormatUtils/dateFormat.js +65 -30
- package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
- package/es/DateTime/dateFormatUtils/index.js +31 -1
- package/es/DateTime/dateFormatUtils/monthChange.js +8 -0
- package/es/DateTime/dateFormatUtils/timeChange.js +22 -6
- package/es/DateTime/dateFormatUtils/yearChange.js +11 -2
- package/es/DateTime/objectUtils.js +14 -20
- package/es/DateTime/typeChecker.js +3 -0
- package/es/DateTime/validator.js +58 -6
- package/es/DropBox/DropBox.js +6 -2
- package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
- package/es/DropBox/css/DropBox.module.css +6 -6
- package/es/DropBox/props/defaultProps.js +1 -2
- package/es/DropBox/props/propTypes.js +1 -2
- package/es/DropDown/DropDown.js +7 -1
- package/es/DropDown/DropDown.module.css +2 -2
- package/es/DropDown/DropDownHeading.js +4 -5
- package/es/DropDown/DropDownHeading.module.css +6 -6
- package/es/DropDown/DropDownItem.js +6 -0
- package/es/DropDown/DropDownItem.module.css +12 -12
- package/es/DropDown/DropDownSearch.js +4 -0
- package/es/DropDown/DropDownSearch.module.css +3 -3
- package/es/DropDown/DropDownSeparator.js +1 -0
- package/es/DropDown/DropDownSeparator.module.css +2 -2
- package/es/DropDown/props/propTypes.js +1 -2
- package/es/Heading/Heading.js +2 -3
- package/es/Heading/Heading.module.css +2 -2
- package/es/Label/Label.js +2 -3
- package/es/Label/Label.module.css +5 -5
- package/es/Label/__tests__/Label.spec.js +1 -2
- package/es/Layout/Box.js +15 -2
- package/es/Layout/Container.js +14 -3
- package/es/Layout/Layout.module.css +15 -15
- package/es/Layout/index.js +1 -2
- package/es/Layout/utils.js +1 -0
- package/es/ListItem/ListContainer.js +8 -3
- package/es/ListItem/ListItem.js +9 -3
- package/es/ListItem/ListItem.module.css +27 -38
- package/es/ListItem/ListItemWithAvatar.js +9 -3
- package/es/ListItem/ListItemWithCheckBox.js +7 -2
- package/es/ListItem/ListItemWithIcon.js +8 -3
- package/es/ListItem/ListItemWithRadio.js +7 -3
- package/es/Modal/Modal.js +28 -11
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
- package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
- package/es/MultiSelect/EmptyState.js +2 -0
- package/es/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
- package/es/MultiSelect/MultiSelect.js +99 -30
- package/es/MultiSelect/MultiSelect.module.css +31 -31
- package/es/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +10 -3
- package/es/MultiSelect/SelectedOptions.js +6 -3
- package/es/MultiSelect/SelectedOptions.module.css +5 -5
- package/es/MultiSelect/Suggestions.js +7 -3
- package/es/MultiSelect/props/propTypes.js +2 -2
- package/es/PopOver/PopOver.js +16 -0
- package/es/Popup/Popup.js +77 -24
- package/es/Popup/viewPort.js +16 -4
- package/es/Provider/IdProvider.js +10 -5
- package/es/Provider/LibraryContext.js +6 -4
- package/es/Provider/NumberGenerator/NumberGenerator.js +21 -7
- package/es/Provider/ZindexProvider.js +9 -2
- package/es/Radio/Radio.js +3 -0
- package/es/Radio/Radio.module.css +9 -9
- package/es/Responsive/CustomResponsive.js +30 -18
- package/es/Responsive/RefWrapper.js +6 -7
- package/es/Responsive/ResizeComponent.js +35 -25
- package/es/Responsive/ResizeObserver.js +26 -6
- package/es/Responsive/Responsive.js +34 -20
- package/es/Responsive/index.js +1 -3
- package/es/Responsive/sizeObservers.js +28 -7
- package/es/Responsive/utils/index.js +7 -5
- package/es/Responsive/utils/shallowCompare.js +7 -2
- package/es/Responsive/windowResizeObserver.js +7 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/es/ResponsiveDropBox/props/propTypes.js +1 -2
- package/es/Ribbon/Ribbon.js +3 -2
- package/es/Ribbon/Ribbon.module.css +45 -48
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +58 -14
- package/es/Select/Select.js +79 -33
- package/es/Select/Select.module.css +23 -23
- package/es/Select/SelectWithAvatar.js +17 -4
- package/es/Select/SelectWithIcon.js +46 -5
- package/es/Select/props/propTypes.js +2 -2
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/Stencils.module.css +11 -11
- package/es/Switch/Switch.js +5 -3
- package/es/Switch/Switch.module.css +23 -23
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/Tab.module.css +14 -14
- package/es/Tab/TabContent.js +1 -0
- package/es/Tab/TabContentWrapper.js +3 -0
- package/es/Tab/TabWrapper.js +5 -2
- package/es/Tab/Tabs.js +54 -7
- package/es/Tab/Tabs.module.css +22 -22
- package/es/Tag/Tag.js +6 -3
- package/es/Tag/Tag.module.css +24 -25
- package/es/TextBox/TextBox.js +16 -3
- package/es/TextBox/TextBox.module.css +9 -9
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/es/TextBoxIcon/props/propTypes.js +1 -2
- package/es/Textarea/Textarea.js +12 -3
- package/es/Textarea/Textarea.module.css +21 -21
- package/es/Tooltip/Tooltip.js +58 -14
- package/es/Tooltip/Tooltip.module.css +5 -5
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +3 -2
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +7 -5
- package/es/common/animation.module.css +8 -8
- package/es/common/avatarsizes.module.css +16 -16
- package/es/common/basicReset.module.css +3 -3
- package/es/common/common.module.css +24 -24
- package/es/common/customscroll.module.css +2 -2
- package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
- package/es/semantic/Button/Button.js +3 -2
- package/es/semantic/Button/semanticButton.module.css +1 -1
- package/es/utils/Common.js +54 -9
- package/es/utils/ContextOptimizer.js +4 -5
- package/es/utils/constructFullName.js +2 -0
- package/es/utils/datetime/common.js +16 -5
- package/es/utils/debounce.js +5 -1
- package/es/utils/dropDownUtils.js +68 -11
- package/es/utils/getInitial.js +4 -0
- package/es/utils/shallowEqual.js +6 -0
- package/es/v1/Accordion/Accordion.js +4 -3
- package/es/v1/Accordion/AccordionItem.js +4 -2
- package/es/v1/Animation/Animation.js +5 -89
- package/es/v1/Animation/utils.js +83 -0
- package/es/v1/AppContainer/AppContainer.js +9 -3
- package/es/v1/Avatar/Avatar.js +18 -6
- package/es/v1/AvatarTeam/AvatarTeam.js +1 -0
- package/es/v1/Button/Button.js +3 -3
- package/es/v1/Card/Card.js +16 -8
- package/es/v1/CheckBox/CheckBox.js +6 -3
- package/es/v1/DateTime/CalendarView.js +32 -20
- package/es/v1/DateTime/DateTime.js +69 -6
- package/es/v1/DateTime/DateTimePopupFooter.js +4 -1
- package/es/v1/DateTime/DateTimePopupHeader.js +8 -2
- package/es/v1/DateTime/DateWidget.js +98 -35
- package/es/v1/DateTime/DaysRow.js +4 -1
- package/es/v1/DateTime/Time.js +10 -1
- package/es/v1/DateTime/YearView.js +28 -4
- package/es/v1/DropBox/DropBox.js +6 -2
- package/es/v1/DropBox/DropBoxElement/DropBoxElement.js +7 -0
- package/es/v1/DropBox/props/defaultProps.js +1 -2
- package/es/v1/DropBox/props/propTypes.js +1 -2
- package/es/v1/DropDown/DropDown.js +3 -0
- package/es/v1/DropDown/DropDownHeading.js +2 -2
- package/es/v1/DropDown/DropDownItem.js +5 -0
- package/es/v1/DropDown/DropDownSearch.js +3 -2
- package/es/v1/DropDown/props/propTypes.js +1 -2
- package/es/v1/Heading/Heading.js +1 -3
- package/es/v1/Layout/Box.js +15 -2
- package/es/v1/Layout/Container.js +14 -3
- package/es/v1/ListItem/ListContainer.js +8 -3
- package/es/v1/ListItem/ListItem.js +10 -3
- package/es/v1/ListItem/ListItemWithAvatar.js +9 -1
- package/es/v1/ListItem/ListItemWithCheckBox.js +8 -2
- package/es/v1/ListItem/ListItemWithIcon.js +9 -3
- package/es/v1/ListItem/ListItemWithRadio.js +8 -3
- package/es/v1/Modal/Modal.js +17 -1
- package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +90 -15
- package/es/v1/MultiSelect/AdvancedMultiSelect.js +32 -9
- package/es/v1/MultiSelect/EmptyState.js +2 -0
- package/es/v1/MultiSelect/MultiSelect.js +100 -31
- package/es/v1/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/v1/MultiSelect/MultiSelectWithAvatar.js +11 -3
- package/es/v1/MultiSelect/SelectedOptions.js +6 -3
- package/es/v1/MultiSelect/Suggestions.js +7 -3
- package/es/v1/MultiSelect/props/propTypes.js +2 -2
- package/es/v1/PopOver/PopOver.js +11 -0
- package/es/v1/Popup/Popup.js +77 -24
- package/es/v1/Provider/IdProvider.js +10 -5
- package/es/v1/Provider/LibraryContext.js +6 -4
- package/es/v1/Provider/NumberGenerator/NumberGenerator.js +21 -7
- package/es/v1/Provider/ZindexProvider.js +9 -2
- package/es/v1/Radio/Radio.js +5 -2
- package/es/v1/Responsive/CustomResponsive.js +30 -18
- package/es/v1/Responsive/RefWrapper.js +6 -7
- package/es/v1/Responsive/ResizeComponent.js +35 -25
- package/es/v1/Responsive/ResizeObserver.js +26 -6
- package/es/v1/Responsive/Responsive.js +34 -20
- package/es/v1/Responsive/index.js +1 -3
- package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -0
- package/es/v1/ResponsiveDropBox/props/propTypes.js +1 -2
- package/es/v1/Select/GroupSelect.js +58 -14
- package/es/v1/Select/Select.js +81 -37
- package/es/v1/Select/SelectWithAvatar.js +17 -4
- package/es/v1/Select/SelectWithIcon.js +46 -5
- package/es/v1/Select/props/propTypes.js +2 -2
- package/es/v1/Stencils/Stencils.js +2 -0
- package/es/v1/Switch/Switch.js +6 -3
- package/es/v1/Tab/Tab.js +3 -3
- package/es/v1/Tab/TabContent.js +1 -0
- package/es/v1/Tab/TabContentWrapper.js +3 -0
- package/es/v1/Tab/TabWrapper.js +5 -2
- package/es/v1/Tab/Tabs.js +54 -9
- package/es/v1/Tab/v1Tab.module.css +14 -14
- package/es/v1/Tab/v1Tabs.module.css +22 -22
- package/es/v1/Tag/Tag.js +5 -1
- package/es/v1/TextBox/TextBox.js +14 -0
- package/es/v1/TextBoxIcon/TextBoxIcon.js +6 -2
- package/es/v1/TextBoxIcon/props/propTypes.js +1 -2
- package/es/v1/Textarea/Textarea.js +10 -3
- package/es/v1/Tooltip/Tooltip.js +58 -14
- package/es/v1/Typography/Typography.js +2 -0
- package/es/v1/Typography/css/Typography.module.css +31 -31
- package/es/v1/Typography/css/cssJSLogic.js +3 -0
- package/es/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +1 -2
- package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -4
- package/es/v1/semantic/Button/Button.js +1 -2
- package/lib/Accordion/Accordion.js +42 -18
- package/lib/Accordion/AccordionItem.js +40 -18
- package/lib/Accordion/index.js +3 -0
- package/lib/Accordion/props/propTypes.js +3 -0
- package/lib/Animation/Animation.js +42 -104
- package/lib/Animation/props/propTypes.js +3 -0
- package/lib/Animation/utils.js +94 -0
- package/lib/AppContainer/AppContainer.js +58 -20
- package/lib/AppContainer/AppContainer.module.css +2 -2
- package/lib/AppContainer/props/propTypes.js +3 -0
- package/lib/Avatar/Avatar.js +78 -38
- package/lib/Avatar/Avatar.module.css +18 -18
- package/lib/Avatar/__tests__/Avatar.spec.js +95 -71
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +52 -30
- package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +77 -61
- package/lib/AvatarTeam/props/propTypes.js +3 -0
- package/lib/Button/Button.js +33 -22
- package/lib/Button/__tests__/Button.spec.js +65 -48
- package/lib/Button/css/Button.module.css +70 -70
- package/lib/Button/css/cssJSLogic.js +18 -17
- package/lib/Button/index.js +3 -0
- package/lib/Button/props/defaultProps.js +2 -0
- package/lib/Button/props/propTypes.js +3 -0
- package/lib/Buttongroup/Buttongroup.js +32 -12
- package/lib/Buttongroup/Buttongroup.module.css +13 -15
- package/lib/Buttongroup/__tests__/Buttongroup.spec.js +18 -10
- package/lib/Buttongroup/props/propTypes.js +3 -0
- package/lib/Card/Card.js +102 -46
- package/lib/Card/index.js +4 -0
- package/lib/Card/props/propTypes.js +3 -0
- package/lib/CheckBox/CheckBox.js +71 -47
- package/lib/CheckBox/CheckBox.module.css +15 -15
- package/lib/CheckBox/props/propTypes.js +3 -0
- package/lib/DateTime/CalendarView.js +82 -42
- package/lib/DateTime/DateTime.js +244 -156
- package/lib/DateTime/DateTime.module.css +40 -40
- package/lib/DateTime/DateTimePopupFooter.js +33 -8
- package/lib/DateTime/DateTimePopupHeader.js +49 -17
- package/lib/DateTime/DateWidget.js +350 -249
- package/lib/DateTime/DateWidget.module.css +5 -5
- package/lib/DateTime/DaysRow.js +28 -5
- package/lib/DateTime/Time.js +75 -32
- package/lib/DateTime/YearView.js +76 -27
- package/lib/DateTime/YearView.module.css +15 -15
- package/lib/DateTime/common.js +6 -0
- package/lib/DateTime/constants.js +1 -0
- package/lib/DateTime/dateFormatUtils/dateFormat.js +187 -122
- package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/lib/DateTime/dateFormatUtils/dayChange.js +15 -7
- package/lib/DateTime/dateFormatUtils/index.js +73 -16
- package/lib/DateTime/dateFormatUtils/monthChange.js +20 -9
- package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
- package/lib/DateTime/dateFormatUtils/yearChange.js +23 -11
- package/lib/DateTime/index.js +2 -0
- package/lib/DateTime/objectUtils.js +24 -20
- package/lib/DateTime/props/propTypes.js +11 -1
- package/lib/DateTime/typeChecker.js +4 -0
- package/lib/DateTime/validator.js +73 -10
- package/lib/DropBox/DropBox.js +45 -21
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +73 -76
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
- package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
- package/lib/DropBox/css/DropBox.module.css +6 -6
- package/lib/DropBox/css/cssJSLogic.js +3 -1
- package/lib/DropBox/props/defaultProps.js +8 -4
- package/lib/DropBox/props/propTypes.js +10 -4
- package/lib/DropDown/DropDown.js +51 -5
- package/lib/DropDown/DropDown.module.css +2 -2
- package/lib/DropDown/DropDownHeading.js +39 -20
- package/lib/DropDown/DropDownHeading.module.css +6 -6
- package/lib/DropDown/DropDownItem.js +42 -20
- package/lib/DropDown/DropDownItem.module.css +12 -12
- package/lib/DropDown/DropDownSearch.js +40 -17
- package/lib/DropDown/DropDownSearch.module.css +3 -3
- package/lib/DropDown/DropDownSeparator.js +24 -4
- package/lib/DropDown/DropDownSeparator.module.css +2 -2
- package/lib/DropDown/index.js +9 -0
- package/lib/DropDown/props/propTypes.js +10 -4
- package/lib/Heading/Heading.js +37 -15
- package/lib/Heading/Heading.module.css +2 -2
- package/lib/Heading/props/propTypes.js +3 -0
- package/lib/Label/Label.js +41 -21
- package/lib/Label/Label.module.css +5 -5
- package/lib/Label/__tests__/Label.spec.js +48 -34
- package/lib/Label/props/propTypes.js +3 -0
- package/lib/Layout/Box.js +35 -15
- package/lib/Layout/Container.js +33 -14
- package/lib/Layout/Layout.module.css +15 -15
- package/lib/Layout/index.js +3 -0
- package/lib/Layout/props/propTypes.js +3 -0
- package/lib/Layout/utils.js +11 -0
- package/lib/ListItem/ListContainer.js +55 -30
- package/lib/ListItem/ListItem.js +74 -45
- package/lib/ListItem/ListItem.module.css +27 -38
- package/lib/ListItem/ListItemWithAvatar.js +80 -48
- package/lib/ListItem/ListItemWithCheckBox.js +70 -40
- package/lib/ListItem/ListItemWithIcon.js +73 -44
- package/lib/ListItem/ListItemWithRadio.js +71 -42
- package/lib/ListItem/index.js +7 -0
- package/lib/ListItem/props/propTypes.js +6 -4
- package/lib/Modal/Modal.js +45 -10
- package/lib/Modal/props/propTypes.js +3 -0
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +293 -166
- package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/MultiSelect/EmptyState.js +45 -24
- package/lib/MultiSelect/MobileHeader/MobileHeader.js +14 -5
- package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +5 -5
- package/lib/MultiSelect/MobileHeader/props/propTypes.js +3 -0
- package/lib/MultiSelect/MultiSelect.js +333 -214
- package/lib/MultiSelect/MultiSelect.module.css +31 -31
- package/lib/MultiSelect/MultiSelectHeader.js +29 -7
- package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -43
- package/lib/MultiSelect/SelectedOptions.js +43 -17
- package/lib/MultiSelect/SelectedOptions.module.css +5 -5
- package/lib/MultiSelect/Suggestions.js +64 -32
- package/lib/MultiSelect/index.js +5 -0
- package/lib/MultiSelect/props/defaultProps.js +2 -0
- package/lib/MultiSelect/props/propTypes.js +14 -4
- package/lib/PopOver/PopOver.js +94 -47
- package/lib/PopOver/index.js +4 -0
- package/lib/PopOver/props/propTypes.js +3 -0
- package/lib/Popup/Popup.js +158 -81
- package/lib/Popup/viewPort.js +28 -14
- package/lib/Provider/AvatarSize.js +4 -0
- package/lib/Provider/Config.js +2 -0
- package/lib/Provider/CssProvider.js +4 -0
- package/lib/Provider/IdProvider.js +17 -6
- package/lib/Provider/LibraryContext.js +35 -15
- package/lib/Provider/LibraryContextInit.js +4 -0
- package/lib/Provider/NumberGenerator/NumberGenerator.js +44 -15
- package/lib/Provider/ZindexProvider.js +15 -3
- package/lib/Provider/index.js +5 -0
- package/lib/Radio/Radio.js +60 -36
- package/lib/Radio/Radio.module.css +9 -9
- package/lib/Radio/__tests__/Radio.spec.js +134 -103
- package/lib/Radio/props/propTypes.js +3 -0
- package/lib/Responsive/CustomResponsive.js +73 -29
- package/lib/Responsive/RefWrapper.js +17 -11
- package/lib/Responsive/ResizeComponent.js +62 -36
- package/lib/Responsive/ResizeObserver.js +24 -10
- package/lib/Responsive/Responsive.js +80 -30
- package/lib/Responsive/index.js +4 -0
- package/lib/Responsive/props/propTypes.js +3 -0
- package/lib/Responsive/sizeObservers.js +53 -17
- package/lib/Responsive/utils/index.js +11 -3
- package/lib/Responsive/utils/shallowCompare.js +11 -2
- package/lib/Responsive/windowResizeObserver.js +8 -0
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
- package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/lib/ResponsiveDropBox/props/propTypes.js +9 -4
- package/lib/Ribbon/Ribbon.js +33 -13
- package/lib/Ribbon/Ribbon.module.css +45 -48
- package/lib/Ribbon/__tests__/Ribbon.spec.js +24 -14
- package/lib/Ribbon/props/propTypes.js +3 -0
- package/lib/RippleEffect/RippleEffect.js +18 -10
- package/lib/RippleEffect/__tests__/RippleEffect.spec.js +34 -22
- package/lib/RippleEffect/props/propTypes.js +3 -0
- package/lib/Select/GroupSelect.js +229 -130
- package/lib/Select/Select.js +295 -211
- package/lib/Select/Select.module.css +23 -23
- package/lib/Select/SelectWithAvatar.js +102 -56
- package/lib/Select/SelectWithIcon.js +131 -76
- package/lib/Select/index.js +5 -0
- package/lib/Select/props/defaultProps.js +5 -4
- package/lib/Select/props/propTypes.js +10 -4
- package/lib/Stencils/Stencils.js +29 -10
- package/lib/Stencils/Stencils.module.css +11 -11
- package/lib/Stencils/__tests__/Stencils.spec.js +22 -13
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +57 -34
- package/lib/Switch/Switch.module.css +23 -23
- package/lib/Switch/__tests__/Switch.spec.js +91 -72
- package/lib/Switch/props/propTypes.js +3 -0
- package/lib/Tab/Tab.js +40 -27
- package/lib/Tab/Tab.module.css +14 -14
- package/lib/Tab/TabContent.js +12 -5
- package/lib/Tab/TabContentWrapper.js +16 -8
- package/lib/Tab/TabWrapper.js +37 -19
- package/lib/Tab/Tabs.js +171 -91
- package/lib/Tab/Tabs.module.css +22 -22
- package/lib/Tab/index.js +6 -0
- package/lib/Tab/props/propTypes.js +3 -0
- package/lib/Tag/Tag.js +72 -43
- package/lib/Tag/Tag.module.css +24 -25
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +86 -60
- package/lib/TextBox/TextBox.module.css +9 -9
- package/lib/TextBox/props/propTypes.js +6 -4
- package/lib/TextBoxIcon/TextBoxIcon.js +80 -53
- package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/lib/TextBoxIcon/props/propTypes.js +9 -4
- package/lib/Textarea/Textarea.js +54 -29
- package/lib/Textarea/Textarea.module.css +21 -21
- package/lib/Textarea/props/propTypes.js +3 -0
- package/lib/Tooltip/Tooltip.js +94 -31
- package/lib/Tooltip/Tooltip.module.css +5 -5
- package/lib/Tooltip/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +40 -16
- package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +53 -25
- package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
- package/lib/VelocityAnimation/index.js +3 -0
- package/lib/common/animation.module.css +8 -8
- package/lib/common/avatarsizes.module.css +16 -16
- package/lib/common/basicReset.module.css +3 -3
- package/lib/common/common.module.css +24 -24
- package/lib/common/customscroll.module.css +2 -2
- package/lib/css.js +40 -0
- package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
- package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
- package/lib/index.js +58 -0
- package/lib/semantic/Button/Button.js +42 -22
- package/lib/semantic/Button/props/propTypes.js +3 -0
- package/lib/semantic/Button/semanticButton.module.css +1 -1
- package/lib/semantic/index.js +2 -0
- package/lib/utils/Common.js +111 -18
- package/lib/utils/ContextOptimizer.js +16 -10
- package/lib/utils/constructFullName.js +13 -4
- package/lib/utils/datetime/common.js +34 -5
- package/lib/utils/debounce.js +6 -1
- package/lib/utils/dropDownUtils.js +175 -59
- package/lib/utils/dummyFunction.js +2 -0
- package/lib/utils/getHTMLFontSize.js +1 -0
- package/lib/utils/getInitial.js +6 -0
- package/lib/utils/index.js +1 -0
- package/lib/utils/scrollTo.js +2 -0
- package/lib/utils/shallowEqual.js +8 -0
- package/lib/v1/Accordion/Accordion.js +38 -19
- package/lib/v1/Accordion/AccordionItem.js +23 -13
- package/lib/v1/Accordion/index.js +3 -0
- package/lib/v1/Accordion/props/propTypes.js +3 -0
- package/lib/v1/Animation/Animation.js +24 -100
- package/lib/v1/Animation/props/propTypes.js +3 -0
- package/lib/v1/Animation/utils.js +94 -0
- package/lib/v1/AppContainer/AppContainer.js +46 -17
- package/lib/v1/AppContainer/props/propTypes.js +3 -0
- package/lib/v1/Avatar/Avatar.js +68 -32
- package/lib/v1/Avatar/props/propTypes.js +3 -0
- package/lib/v1/AvatarTeam/AvatarTeam.js +32 -24
- package/lib/v1/AvatarTeam/props/propTypes.js +3 -0
- package/lib/v1/Button/Button.js +32 -22
- package/lib/v1/Button/props/defaultProps.js +2 -0
- package/lib/v1/Button/props/propTypes.js +3 -0
- package/lib/v1/Buttongroup/Buttongroup.js +13 -5
- package/lib/v1/Buttongroup/props/propTypes.js +3 -0
- package/lib/v1/Card/Card.js +78 -44
- package/lib/v1/Card/index.js +4 -0
- package/lib/v1/Card/props/propTypes.js +3 -0
- package/lib/v1/CheckBox/CheckBox.js +52 -41
- package/lib/v1/CheckBox/props/propTypes.js +3 -0
- package/lib/v1/DateTime/CalendarView.js +89 -48
- package/lib/v1/DateTime/DateTime.js +246 -158
- package/lib/v1/DateTime/DateTimePopupFooter.js +33 -8
- package/lib/v1/DateTime/DateTimePopupHeader.js +49 -17
- package/lib/v1/DateTime/DateWidget.js +352 -251
- package/lib/v1/DateTime/DaysRow.js +28 -5
- package/lib/v1/DateTime/Time.js +75 -32
- package/lib/v1/DateTime/YearView.js +76 -27
- package/lib/v1/DateTime/index.js +2 -0
- package/lib/v1/DateTime/props/propTypes.js +11 -1
- package/lib/v1/DropBox/DropBox.js +45 -21
- package/lib/v1/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- package/lib/v1/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/v1/DropBox/props/defaultProps.js +8 -4
- package/lib/v1/DropBox/props/propTypes.js +10 -4
- package/lib/v1/DropDown/DropDown.js +23 -3
- package/lib/v1/DropDown/DropDownHeading.js +20 -13
- package/lib/v1/DropDown/DropDownItem.js +26 -11
- package/lib/v1/DropDown/DropDownSearch.js +28 -16
- package/lib/v1/DropDown/DropDownSeparator.js +7 -1
- package/lib/v1/DropDown/props/propTypes.js +10 -4
- package/lib/v1/Heading/Heading.js +19 -14
- package/lib/v1/Heading/props/propTypes.js +3 -0
- package/lib/v1/Label/Label.js +22 -14
- package/lib/v1/Label/props/propTypes.js +3 -0
- package/lib/v1/Layout/Box.js +35 -15
- package/lib/v1/Layout/Container.js +33 -14
- package/lib/v1/Layout/index.js +3 -0
- package/lib/v1/Layout/props/propTypes.js +3 -0
- package/lib/v1/ListItem/ListContainer.js +55 -30
- package/lib/v1/ListItem/ListItem.js +53 -38
- package/lib/v1/ListItem/ListItemWithAvatar.js +62 -39
- package/lib/v1/ListItem/ListItemWithCheckBox.js +49 -34
- package/lib/v1/ListItem/ListItemWithIcon.js +52 -37
- package/lib/v1/ListItem/ListItemWithRadio.js +49 -35
- package/lib/v1/ListItem/index.js +7 -0
- package/lib/v1/ListItem/props/propTypes.js +6 -4
- package/lib/v1/Modal/Modal.js +46 -9
- package/lib/v1/Modal/props/propTypes.js +3 -0
- package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +294 -168
- package/lib/v1/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/v1/MultiSelect/EmptyState.js +45 -24
- package/lib/v1/MultiSelect/MobileHeader/MobileHeader.js +14 -5
- package/lib/v1/MultiSelect/MobileHeader/props/propTypes.js +3 -0
- package/lib/v1/MultiSelect/MultiSelect.js +335 -216
- package/lib/v1/MultiSelect/MultiSelectHeader.js +29 -7
- package/lib/v1/MultiSelect/MultiSelectWithAvatar.js +86 -43
- package/lib/v1/MultiSelect/SelectedOptions.js +43 -17
- package/lib/v1/MultiSelect/Suggestions.js +64 -32
- package/lib/v1/MultiSelect/index.js +5 -0
- package/lib/v1/MultiSelect/props/defaultProps.js +2 -0
- package/lib/v1/MultiSelect/props/propTypes.js +14 -4
- package/lib/v1/PopOver/PopOver.js +71 -40
- package/lib/v1/PopOver/props/propTypes.js +3 -0
- package/lib/v1/Popup/Popup.js +158 -81
- package/lib/v1/Provider/AvatarSize.js +4 -0
- package/lib/v1/Provider/Config.js +2 -0
- package/lib/v1/Provider/CssProvider.js +4 -0
- package/lib/v1/Provider/IdProvider.js +17 -6
- package/lib/v1/Provider/LibraryContext.js +35 -15
- package/lib/v1/Provider/LibraryContextInit.js +4 -0
- package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +44 -15
- package/lib/v1/Provider/ZindexProvider.js +15 -3
- package/lib/v1/Provider/index.js +5 -0
- package/lib/v1/Radio/Radio.js +42 -32
- package/lib/v1/Radio/props/propTypes.js +3 -0
- package/lib/v1/Responsive/CustomResponsive.js +73 -29
- package/lib/v1/Responsive/RefWrapper.js +17 -11
- package/lib/v1/Responsive/ResizeComponent.js +62 -36
- package/lib/v1/Responsive/ResizeObserver.js +24 -10
- package/lib/v1/Responsive/Responsive.js +80 -30
- package/lib/v1/Responsive/index.js +4 -0
- package/lib/v1/Responsive/props/propTypes.js +3 -0
- package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +27 -13
- package/lib/v1/ResponsiveDropBox/props/propTypes.js +9 -4
- package/lib/v1/Ribbon/Ribbon.js +14 -7
- package/lib/v1/Ribbon/props/propTypes.js +3 -0
- package/lib/v1/RippleEffect/RippleEffect.js +17 -7
- package/lib/v1/RippleEffect/props/propTypes.js +3 -0
- package/lib/v1/Select/GroupSelect.js +229 -130
- package/lib/v1/Select/Select.js +297 -214
- package/lib/v1/Select/SelectWithAvatar.js +102 -56
- package/lib/v1/Select/SelectWithIcon.js +131 -76
- package/lib/v1/Select/index.js +5 -0
- package/lib/v1/Select/props/defaultProps.js +5 -4
- package/lib/v1/Select/props/propTypes.js +10 -4
- package/lib/v1/Stencils/Stencils.js +13 -3
- package/lib/v1/Stencils/props/propTypes.js +3 -0
- package/lib/v1/Switch/Switch.js +38 -25
- package/lib/v1/Switch/props/propTypes.js +3 -0
- package/lib/v1/Tab/Tab.js +40 -27
- package/lib/v1/Tab/TabContent.js +12 -5
- package/lib/v1/Tab/TabContentWrapper.js +16 -8
- package/lib/v1/Tab/TabWrapper.js +37 -19
- package/lib/v1/Tab/Tabs.js +170 -83
- package/lib/v1/Tab/index.js +6 -0
- package/lib/v1/Tab/props/propTypes.js +3 -0
- package/lib/v1/Tab/v1Tab.module.css +14 -14
- package/lib/v1/Tab/v1Tabs.module.css +22 -22
- package/lib/v1/Tag/Tag.js +50 -32
- package/lib/v1/Tag/props/propTypes.js +3 -0
- package/lib/v1/TextBox/TextBox.js +70 -47
- package/lib/v1/TextBox/props/propTypes.js +6 -4
- package/lib/v1/TextBoxIcon/TextBoxIcon.js +80 -55
- package/lib/v1/TextBoxIcon/props/propTypes.js +9 -4
- package/lib/v1/Textarea/Textarea.js +45 -28
- package/lib/v1/Textarea/props/propTypes.js +3 -0
- package/lib/v1/Tooltip/Tooltip.js +94 -31
- package/lib/v1/Tooltip/props/propTypes.js +3 -0
- package/lib/v1/Typography/Typography.js +26 -15
- package/lib/v1/Typography/css/Typography.module.css +31 -31
- package/lib/v1/Typography/css/cssJSLogic.js +25 -20
- package/lib/v1/Typography/props/propTypes.js +3 -0
- package/lib/v1/Typography/utils/index.js +1 -0
- package/lib/v1/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +25 -12
- package/lib/v1/VelocityAnimation/VelocityAnimation/props/propTypes.js +3 -0
- package/lib/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +38 -22
- package/lib/v1/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +3 -0
- package/lib/v1/semantic/Button/Button.js +24 -18
- package/lib/v1/semantic/Button/props/propTypes.js +3 -0
- package/lib/v1/semantic/index.js +2 -0
- package/package.json +2 -2
- package/result.json +1 -1
- package/.DS_Store +0 -0
|
@@ -3,8 +3,8 @@ import React from 'react';
|
|
|
3
3
|
import { MultiSelect_propTypes } from './props/propTypes';
|
|
4
4
|
import { MultiSelect_defaultProps } from './props/defaultProps';
|
|
5
5
|
import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
|
|
6
|
-
|
|
7
6
|
/**** Components ****/
|
|
7
|
+
|
|
8
8
|
import Popup from '../Popup/Popup';
|
|
9
9
|
import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
|
|
10
10
|
import { Container, Box } from '../Layout';
|
|
@@ -20,16 +20,18 @@ import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
|
20
20
|
import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
21
21
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
22
22
|
/**** Icons ****/
|
|
23
|
+
|
|
23
24
|
import { Icon } from '@zohodesk/icons';
|
|
24
25
|
/**** CSS ****/
|
|
25
|
-
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
26
26
|
|
|
27
|
+
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
27
28
|
/**** Methods ****/
|
|
29
|
+
|
|
28
30
|
import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString, findScrollEnd } from '../../utils/Common.js';
|
|
29
31
|
import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from '../../utils/dropDownUtils';
|
|
30
32
|
import { getLibraryConfig } from '../../Provider/Config';
|
|
31
|
-
|
|
32
33
|
/* eslint-disable react/forbid-component-props */
|
|
34
|
+
|
|
33
35
|
/* eslint-disable react/no-unused-prop-types */
|
|
34
36
|
|
|
35
37
|
const dummyArray = [];
|
|
@@ -40,9 +42,8 @@ export class MultiSelectComponent extends React.Component {
|
|
|
40
42
|
this.getFilterSuggestions = makeGetFilterSuggestions();
|
|
41
43
|
this.formatOptions = makeFormatOptions();
|
|
42
44
|
this.getSelectedOptions = makeGetSelectedOptions();
|
|
43
|
-
this.getIsShowClearIcon = makeGetIsShowClearIcon();
|
|
45
|
+
this.getIsShowClearIcon = makeGetIsShowClearIcon(); //Use in AdvancedMultiSelect component
|
|
44
46
|
|
|
45
|
-
//Use in AdvancedMultiSelect component
|
|
46
47
|
this.objectConcat = makeObjectConcat();
|
|
47
48
|
this.formatSelectedOptions = makeFormatOptions();
|
|
48
49
|
const {
|
|
@@ -80,11 +81,11 @@ export class MultiSelectComponent extends React.Component {
|
|
|
80
81
|
this.handleScroll = this.handleScroll.bind(this);
|
|
81
82
|
this.handleScrollFuncCall = debounce(this.handleScrollFuncCall.bind(this), 500);
|
|
82
83
|
}
|
|
84
|
+
|
|
83
85
|
componentDidMount() {
|
|
84
86
|
// let { suggestionContainer } = this;
|
|
85
87
|
this._isMounted = true;
|
|
86
|
-
this.handleExposedPublicMethods();
|
|
87
|
-
// suggestionContainer &&
|
|
88
|
+
this.handleExposedPublicMethods(); // suggestionContainer &&
|
|
88
89
|
// suggestionContainer.addEventListener('scroll', this.handleScroll);
|
|
89
90
|
}
|
|
90
91
|
|
|
@@ -97,6 +98,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
97
98
|
prefixText
|
|
98
99
|
} = nextProps;
|
|
99
100
|
const oldProps = this.props;
|
|
101
|
+
|
|
100
102
|
if (selectedOptions !== oldProps.selectedOptions || options !== oldProps.options || valueField !== oldProps.valueField || textField !== oldProps.textField || prefixText !== oldProps.prefixText //For GroupMultiSelect component
|
|
101
103
|
) {
|
|
102
104
|
const {
|
|
@@ -135,6 +137,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
135
137
|
});
|
|
136
138
|
}
|
|
137
139
|
}
|
|
140
|
+
|
|
138
141
|
componentDidUpdate(prevProps, prevState) {
|
|
139
142
|
const {
|
|
140
143
|
suggestionContainer,
|
|
@@ -153,11 +156,11 @@ export class MultiSelectComponent extends React.Component {
|
|
|
153
156
|
onDropBoxClose,
|
|
154
157
|
onDropBoxOpen,
|
|
155
158
|
isSearchClearOnClose
|
|
156
|
-
} = this.props;
|
|
159
|
+
} = this.props; //handle dropbox open & close
|
|
157
160
|
|
|
158
|
-
//handle dropbox open & close
|
|
159
161
|
if (prevProps.isPopupOpen !== isPopupOpen) {
|
|
160
162
|
isPopupOpen && onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
|
|
163
|
+
|
|
161
164
|
if (!isPopupOpen) {
|
|
162
165
|
this.setState({
|
|
163
166
|
hoverOption: 0
|
|
@@ -165,41 +168,42 @@ export class MultiSelectComponent extends React.Component {
|
|
|
165
168
|
isSearchClearOnClose && searchStr && this.handleSearch('');
|
|
166
169
|
onDropBoxClose && onDropBoxClose();
|
|
167
170
|
}
|
|
168
|
-
}
|
|
171
|
+
} //scrollTo handling
|
|
172
|
+
|
|
169
173
|
|
|
170
|
-
//scrollTo handling
|
|
171
174
|
const hoverId = suggestionsOrder[hoverOption] || '';
|
|
172
175
|
const selectedSuggestion = this[`suggestion_${hoverId}`];
|
|
173
176
|
const lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
|
|
174
177
|
const selectedOption = this[`selectedOption_${lastHighLightedSelectOption}`];
|
|
175
178
|
isPopupOpen && scrollTo(suggestionContainer, selectedSuggestion);
|
|
176
|
-
selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption);
|
|
179
|
+
selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption); //When suggestions length less than 5, getNextOptions function call
|
|
177
180
|
|
|
178
|
-
//When suggestions length less than 5, getNextOptions function call
|
|
179
181
|
const {
|
|
180
182
|
isNextOptions,
|
|
181
183
|
getNextOptions
|
|
182
|
-
} = this.props;
|
|
183
|
-
|
|
184
|
+
} = this.props; // let { searchStr } = this.state;
|
|
185
|
+
|
|
184
186
|
const suggestions = this.handleFilterSuggestions();
|
|
185
187
|
const suggestionsLen = suggestions.length;
|
|
188
|
+
|
|
186
189
|
if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
|
|
187
190
|
this.handleFetchOptions(getNextOptions, searchStr);
|
|
188
|
-
}
|
|
191
|
+
} //Need To MultiselectNew Component
|
|
192
|
+
|
|
189
193
|
|
|
190
|
-
//Need To MultiselectNew Component
|
|
191
194
|
this.handleComponentDidUpdate(prevProps, prevState);
|
|
192
195
|
}
|
|
196
|
+
|
|
193
197
|
componentWillUnmount() {
|
|
194
198
|
// let { suggestionContainer } = this;
|
|
195
|
-
this._isMounted = false;
|
|
196
|
-
// suggestionContainer &&
|
|
199
|
+
this._isMounted = false; // suggestionContainer &&
|
|
197
200
|
// suggestionContainer.removeEventListener('scroll', this.handleScroll);
|
|
198
201
|
}
|
|
199
202
|
|
|
200
203
|
handleComponentDidUpdate() {
|
|
201
204
|
return;
|
|
202
205
|
}
|
|
206
|
+
|
|
203
207
|
handleFormatOptions(props) {
|
|
204
208
|
const {
|
|
205
209
|
options,
|
|
@@ -217,12 +221,14 @@ export class MultiSelectComponent extends React.Component {
|
|
|
217
221
|
disabledOptions
|
|
218
222
|
});
|
|
219
223
|
}
|
|
224
|
+
|
|
220
225
|
handleGetSelectedOptions(selectedOptions, normalizedFormatOptions) {
|
|
221
226
|
return this.getSelectedOptions({
|
|
222
227
|
selectedOptions,
|
|
223
228
|
normalizedFormatOptions
|
|
224
229
|
});
|
|
225
230
|
}
|
|
231
|
+
|
|
226
232
|
handleInputCick(e) {
|
|
227
233
|
const {
|
|
228
234
|
removeClose
|
|
@@ -231,6 +237,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
231
237
|
highLightedSelectOptions,
|
|
232
238
|
searchStr = ''
|
|
233
239
|
} = this.state;
|
|
240
|
+
|
|
234
241
|
if (highLightedSelectOptions.length) {
|
|
235
242
|
this.setState({
|
|
236
243
|
highLightedSelectOptions: [],
|
|
@@ -244,6 +251,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
244
251
|
this.togglePopup(e);
|
|
245
252
|
}
|
|
246
253
|
}
|
|
254
|
+
|
|
247
255
|
handleFilterSuggestions() {
|
|
248
256
|
const {
|
|
249
257
|
options = dummyArray,
|
|
@@ -267,6 +275,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
267
275
|
this.suggestionsOrder = suggestionIds;
|
|
268
276
|
return suggestions;
|
|
269
277
|
}
|
|
278
|
+
|
|
270
279
|
handleKeyDown(e) {
|
|
271
280
|
const {
|
|
272
281
|
keyCode,
|
|
@@ -291,20 +300,27 @@ export class MultiSelectComponent extends React.Component {
|
|
|
291
300
|
onKeyDown
|
|
292
301
|
} = this.props;
|
|
293
302
|
const highLightedSelectOptionsLen = highLightedSelectOptions.length;
|
|
303
|
+
|
|
294
304
|
if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13 || keyCode === 27 || keyCode === 9)) {
|
|
295
305
|
suggestions = this.handleFilterSuggestions();
|
|
296
306
|
}
|
|
307
|
+
|
|
297
308
|
if (!isPopupOpen && !isPopupOpenOnEnter) {
|
|
298
309
|
onKeyDown && onKeyDown(e);
|
|
299
310
|
}
|
|
311
|
+
|
|
300
312
|
if (!isPopupOpen && keyCode === 40) {
|
|
301
313
|
//down arrow press popup open
|
|
302
314
|
e.preventDefault(); //prevent body scroll
|
|
315
|
+
|
|
303
316
|
this.togglePopup(e);
|
|
304
317
|
}
|
|
318
|
+
|
|
305
319
|
const suggestionsLen = suggestions.length;
|
|
320
|
+
|
|
306
321
|
if (suggestionsLen && isPopupOpen && keyCode === 38) {
|
|
307
322
|
//up arrow
|
|
323
|
+
|
|
308
324
|
/*if (hoverOption === 0) { //disable first to last option higlight
|
|
309
325
|
!isNextOptions && this.setState({ hoverOption: suggestionsLen - 1 });
|
|
310
326
|
}*/
|
|
@@ -315,6 +331,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
315
331
|
}
|
|
316
332
|
} else if (suggestionsLen && isPopupOpen && keyCode === 40) {
|
|
317
333
|
//down arrow
|
|
334
|
+
|
|
318
335
|
/*else if (hoverOption === suggestionsLen - 1 || hoverOption === null) {
|
|
319
336
|
//disable last to first option higlight
|
|
320
337
|
!isNextOptions && this.setState({ hoverOption: 0 });
|
|
@@ -342,8 +359,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
342
359
|
if (highLightedSelectOptionsLen) {
|
|
343
360
|
this.handleRemoveOption(highLightedSelectOptions);
|
|
344
361
|
} else {
|
|
345
|
-
this.handleRemoveOption(selectedOptions.slice(-1));
|
|
346
|
-
// this.setState({
|
|
362
|
+
this.handleRemoveOption(selectedOptions.slice(-1)); // this.setState({
|
|
347
363
|
// highLightedSelectOptions: selectedOptions.slice(-1)
|
|
348
364
|
// });
|
|
349
365
|
}
|
|
@@ -358,6 +374,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
358
374
|
const lastHighLightedSelectOptionIndex = lastHighLightedSelectOption && selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
|
|
359
375
|
const newShiftKeyPressHighLighted = shiftKeyPressHighLighted ? shiftKeyPressHighLighted : shiftKeyPressHighLighted + 1;
|
|
360
376
|
const newHighLightedSelectOption = lastHighLightedSelectOptionIndex !== null ? selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted] : selectedOptions[0];
|
|
377
|
+
|
|
361
378
|
if (!getIsEmptyValue(newHighLightedSelectOption)) {
|
|
362
379
|
const newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions[0];
|
|
363
380
|
highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
|
|
@@ -374,6 +391,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
374
391
|
const lastHighLightedSelectOptionIndex = lastHighLightedSelectOption ? selectedOptions.indexOf(lastHighLightedSelectOption) : selectedOptions.length - 1;
|
|
375
392
|
const newShiftKeyPressHighLighted = shiftKeyPressHighLighted !== 1 ? shiftKeyPressHighLighted : shiftKeyPressHighLighted - 1;
|
|
376
393
|
const newHighLightedSelectOption = selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted - 1];
|
|
394
|
+
|
|
377
395
|
if (!getIsEmptyValue(newHighLightedSelectOption)) {
|
|
378
396
|
const newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions.slice(-1)[0];
|
|
379
397
|
highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
|
|
@@ -386,14 +404,15 @@ export class MultiSelectComponent extends React.Component {
|
|
|
386
404
|
});
|
|
387
405
|
}
|
|
388
406
|
} else if ((keyCode === 39 || keyCode === 37) && selectedOptions.length && !searchStr.length) {
|
|
389
|
-
const isRightArrow = keyCode === 39 ? true : false;
|
|
390
|
-
|
|
407
|
+
const isRightArrow = keyCode === 39 ? true : false; // let isLefttArrow = keyCode === 37 ? true : false;
|
|
408
|
+
|
|
391
409
|
if (highLightedSelectOptions.length) {
|
|
392
410
|
const [lastHighLightedSelectOption] = highLightedSelectOptions.slice(-1);
|
|
393
411
|
const lastHighLightedSelectOptionIndex = selectedOptions.indexOf(lastHighLightedSelectOption);
|
|
394
412
|
const newLastHighLightedSelectOptionIndex = isRightArrow ? lastHighLightedSelectOptionIndex === selectedOptions.length - 1 ? lastHighLightedSelectOptionIndex : lastHighLightedSelectOptionIndex + 1 : lastHighLightedSelectOptionIndex - 1;
|
|
395
413
|
const newLastHighLightedSelectOption = selectedOptions[newLastHighLightedSelectOptionIndex];
|
|
396
414
|
const isEmptyHighlighted = isRightArrow && highLightedSelectOptions.length === 1 && selectedOptions.slice(-1)[0] === lastHighLightedSelectOption ? true : false;
|
|
415
|
+
|
|
397
416
|
if (!getIsEmptyValue(newLastHighLightedSelectOption)) {
|
|
398
417
|
this.setState({
|
|
399
418
|
lastHighLightedSelectOption: isEmptyHighlighted ? '' : newLastHighLightedSelectOption,
|
|
@@ -409,14 +428,13 @@ export class MultiSelectComponent extends React.Component {
|
|
|
409
428
|
shiftKeyPressHighLighted: 0
|
|
410
429
|
});
|
|
411
430
|
}
|
|
412
|
-
}
|
|
413
|
-
//
|
|
414
|
-
else if (keyCode === 27) {
|
|
415
|
-
// this.handlePopupClose(e);
|
|
431
|
+
} // eslint-disable-next-line
|
|
432
|
+
else if (keyCode === 27) {// this.handlePopupClose(e);
|
|
416
433
|
} else if (keyCode === 9) {
|
|
417
434
|
this.handlePopupClose(e);
|
|
418
435
|
}
|
|
419
436
|
}
|
|
437
|
+
|
|
420
438
|
handleSelectAll(e) {
|
|
421
439
|
e && e.preventDefault();
|
|
422
440
|
const suggestions = this.handleFilterSuggestions();
|
|
@@ -428,12 +446,12 @@ export class MultiSelectComponent extends React.Component {
|
|
|
428
446
|
const {
|
|
429
447
|
id
|
|
430
448
|
} = option;
|
|
449
|
+
|
|
431
450
|
if (selectedOptions.indexOf(id) === -1) {
|
|
432
451
|
newSelectedOptions.push(id);
|
|
433
452
|
}
|
|
434
453
|
});
|
|
435
|
-
this.handleChange([...selectedOptions, ...newSelectedOptions]);
|
|
436
|
-
// this.handlePopupClose(e);
|
|
454
|
+
this.handleChange([...selectedOptions, ...newSelectedOptions]); // this.handlePopupClose(e);
|
|
437
455
|
}
|
|
438
456
|
|
|
439
457
|
handleDeselectAll(e) {
|
|
@@ -444,15 +462,18 @@ export class MultiSelectComponent extends React.Component {
|
|
|
444
462
|
const {
|
|
445
463
|
highLightedSelectOptions
|
|
446
464
|
} = this.state;
|
|
465
|
+
|
|
447
466
|
if (highLightedSelectOptions.length) {
|
|
448
467
|
this.setState({
|
|
449
468
|
highLightedSelectOptions: [],
|
|
450
469
|
lastHighLightedSelectOption: ''
|
|
451
470
|
});
|
|
452
471
|
}
|
|
472
|
+
|
|
453
473
|
removeClose(e);
|
|
454
474
|
this.handleChange([]);
|
|
455
475
|
}
|
|
476
|
+
|
|
456
477
|
handleSelectOption(option, value, index, e) {
|
|
457
478
|
const {
|
|
458
479
|
selectedOptions,
|
|
@@ -462,9 +483,11 @@ export class MultiSelectComponent extends React.Component {
|
|
|
462
483
|
const {
|
|
463
484
|
searchStr
|
|
464
485
|
} = this.state;
|
|
486
|
+
|
|
465
487
|
if (searchStr.trim() != '' && isSearchClearOnSelect) {
|
|
466
488
|
this.handleSearch('');
|
|
467
489
|
}
|
|
490
|
+
|
|
468
491
|
if (keepSelectedOptions && selectedOptions.indexOf(option) != -1) {
|
|
469
492
|
let newSelectedOptions = selectedOptions.filter(id => {
|
|
470
493
|
return id != option;
|
|
@@ -474,6 +497,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
474
497
|
this.handleChange([...selectedOptions, option], e);
|
|
475
498
|
}
|
|
476
499
|
}
|
|
500
|
+
|
|
477
501
|
handleRemoveOption(options) {
|
|
478
502
|
const newOptions = !getIsEmptyValue(options) && !Array.isArray(options) ? [options] : options;
|
|
479
503
|
const {
|
|
@@ -485,18 +509,22 @@ export class MultiSelectComponent extends React.Component {
|
|
|
485
509
|
lastHighLightedSelectOption,
|
|
486
510
|
shiftKeyPressHighLighted
|
|
487
511
|
} = this.state;
|
|
512
|
+
|
|
488
513
|
if (newOptions.length && !isReadOnly) {
|
|
489
514
|
const newSelectedOptions = selectedOptions.filter(option => newOptions.indexOf(option) === -1);
|
|
490
515
|
const newHighLightedSelectOptions = highLightedSelectOptions.filter(option => newSelectedOptions.indexOf(option) >= 0);
|
|
491
516
|
let isHighlightedRemoved = false;
|
|
492
517
|
const newOptionsLen = newOptions.length;
|
|
518
|
+
|
|
493
519
|
for (let i = 0; i < newOptionsLen; i++) {
|
|
494
520
|
const removedOption = newOptions[i];
|
|
521
|
+
|
|
495
522
|
if (highLightedSelectOptions.indexOf(removedOption) >= 0) {
|
|
496
523
|
isHighlightedRemoved = true;
|
|
497
524
|
break;
|
|
498
525
|
}
|
|
499
526
|
}
|
|
527
|
+
|
|
500
528
|
this.setState({
|
|
501
529
|
lastHighLightedSelectOption: newSelectedOptions.indexOf(lastHighLightedSelectOption) >= 0 && !isHighlightedRemoved ? lastHighLightedSelectOption : '',
|
|
502
530
|
highLightedSelectOptions: isHighlightedRemoved ? [] : newHighLightedSelectOptions,
|
|
@@ -504,8 +532,10 @@ export class MultiSelectComponent extends React.Component {
|
|
|
504
532
|
});
|
|
505
533
|
this.handleChange(newSelectedOptions);
|
|
506
534
|
}
|
|
535
|
+
|
|
507
536
|
this.moveFocusToTextbox();
|
|
508
537
|
}
|
|
538
|
+
|
|
509
539
|
handleMouseEnter(id, val, hoverOptionIndex, e) {
|
|
510
540
|
e && e.preventDefault();
|
|
511
541
|
const {
|
|
@@ -515,16 +545,19 @@ export class MultiSelectComponent extends React.Component {
|
|
|
515
545
|
suggestionsOrder
|
|
516
546
|
} = this;
|
|
517
547
|
const newHoverIndex = suggestionsOrder.indexOf(id);
|
|
548
|
+
|
|
518
549
|
if (newHoverIndex !== hoverOption) {
|
|
519
550
|
this.setState({
|
|
520
551
|
hoverOption: newHoverIndex
|
|
521
552
|
});
|
|
522
553
|
}
|
|
523
554
|
}
|
|
555
|
+
|
|
524
556
|
handleFetchOptions() {
|
|
525
557
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
526
558
|
args[_key] = arguments[_key];
|
|
527
559
|
}
|
|
560
|
+
|
|
528
561
|
const [APICall, searchStr] = args;
|
|
529
562
|
const {
|
|
530
563
|
isFetchingOptions
|
|
@@ -533,10 +566,12 @@ export class MultiSelectComponent extends React.Component {
|
|
|
533
566
|
_isMounted
|
|
534
567
|
} = this;
|
|
535
568
|
const isForce = isFetchingOptions && searchStr ? true : false;
|
|
569
|
+
|
|
536
570
|
if (!isFetchingOptions && APICall || isForce) {
|
|
537
571
|
this.setState({
|
|
538
572
|
isFetchingOptions: true
|
|
539
573
|
});
|
|
574
|
+
|
|
540
575
|
try {
|
|
541
576
|
return APICall(searchStr).then(() => {
|
|
542
577
|
_isMounted && this.setState({
|
|
@@ -554,6 +589,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
554
589
|
}
|
|
555
590
|
}
|
|
556
591
|
}
|
|
592
|
+
|
|
557
593
|
handleSearchOptions() {
|
|
558
594
|
const {
|
|
559
595
|
onSearch
|
|
@@ -563,6 +599,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
563
599
|
} = this.state;
|
|
564
600
|
searchStr && this.handleFetchOptions(onSearch, searchStr);
|
|
565
601
|
}
|
|
602
|
+
|
|
566
603
|
handleSearch(value, e) {
|
|
567
604
|
const {
|
|
568
605
|
onSearch,
|
|
@@ -585,6 +622,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
585
622
|
}
|
|
586
623
|
});
|
|
587
624
|
}
|
|
625
|
+
|
|
588
626
|
handleClickSelectedOption() {
|
|
589
627
|
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
590
628
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -600,13 +638,16 @@ export class MultiSelectComponent extends React.Component {
|
|
|
600
638
|
ctrlKey,
|
|
601
639
|
shiftKey
|
|
602
640
|
} = e;
|
|
641
|
+
|
|
603
642
|
if (e && shiftKey) {
|
|
604
643
|
//shift+click
|
|
605
644
|
let from = selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
|
|
606
645
|
let to = id && selectedOptions.indexOf(id) >= 0 ? selectedOptions.indexOf(id) : null;
|
|
646
|
+
|
|
607
647
|
if (to >= 0 && to < from) {
|
|
608
648
|
[to] = [from, from = to];
|
|
609
649
|
}
|
|
650
|
+
|
|
610
651
|
to += 1;
|
|
611
652
|
const newSelectedHighlights = to ? selectedOptions.slice(from, to) : [];
|
|
612
653
|
to && this.setState({
|
|
@@ -617,6 +658,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
617
658
|
//ctrl+click
|
|
618
659
|
const isRemove = highLightedSelectOptions.indexOf(id) >= 0;
|
|
619
660
|
let newSelectedHighlights = [];
|
|
661
|
+
|
|
620
662
|
if (isRemove) {
|
|
621
663
|
lastHighLightedSelectOption = id === lastHighLightedSelectOption ? '' : lastHighLightedSelectOption;
|
|
622
664
|
newSelectedHighlights = highLightedSelectOptions.filter(option => option !== id);
|
|
@@ -624,6 +666,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
624
666
|
lastHighLightedSelectOption = id;
|
|
625
667
|
newSelectedHighlights = [...highLightedSelectOptions, id];
|
|
626
668
|
}
|
|
669
|
+
|
|
627
670
|
this.setState({
|
|
628
671
|
highLightedSelectOptions: newSelectedHighlights,
|
|
629
672
|
lastHighLightedSelectOption
|
|
@@ -634,16 +677,19 @@ export class MultiSelectComponent extends React.Component {
|
|
|
634
677
|
lastHighLightedSelectOption: id
|
|
635
678
|
});
|
|
636
679
|
}
|
|
680
|
+
|
|
637
681
|
this.setState({
|
|
638
682
|
shiftKeyPressHighLighted: 0
|
|
639
683
|
});
|
|
640
684
|
this.moveFocusToTextbox();
|
|
641
685
|
}
|
|
686
|
+
|
|
642
687
|
handleScroll(e) {
|
|
643
688
|
let ele = e.target;
|
|
644
689
|
let isScrollReachedBottom = findScrollEnd(ele);
|
|
645
690
|
isScrollReachedBottom && this.handleScrollFuncCall();
|
|
646
691
|
}
|
|
692
|
+
|
|
647
693
|
handleScrollFuncCall() {
|
|
648
694
|
const {
|
|
649
695
|
getNextOptions,
|
|
@@ -654,6 +700,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
654
700
|
} = this.state;
|
|
655
701
|
isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
|
|
656
702
|
}
|
|
703
|
+
|
|
657
704
|
handleChange() {
|
|
658
705
|
let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
659
706
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -676,17 +723,21 @@ export class MultiSelectComponent extends React.Component {
|
|
|
676
723
|
});
|
|
677
724
|
const selectedOptionsLen = newSelectedOptions.length;
|
|
678
725
|
const allSelectedOptionsDetails = [];
|
|
726
|
+
|
|
679
727
|
for (let i = 0; i < selectedOptionsLen; i++) {
|
|
680
728
|
const id = newSelectedOptions[i];
|
|
681
729
|
allSelectedOptionsDetails.push(optionsNormalize[id]);
|
|
682
730
|
}
|
|
683
|
-
|
|
684
|
-
// this.setState({ searchStr: '' });
|
|
731
|
+
|
|
732
|
+
onChange && onChange(newSelectedOptions, allSelectedOptionsDetails); // this.setState({ searchStr: '' });
|
|
733
|
+
|
|
685
734
|
this.moveFocusToTextbox();
|
|
735
|
+
|
|
686
736
|
if (needToCloseOnSelect) {
|
|
687
737
|
togglePopup(e);
|
|
688
738
|
}
|
|
689
739
|
}
|
|
740
|
+
|
|
690
741
|
togglePopup(e) {
|
|
691
742
|
const {
|
|
692
743
|
togglePopup,
|
|
@@ -695,12 +746,14 @@ export class MultiSelectComponent extends React.Component {
|
|
|
695
746
|
} = this.props;
|
|
696
747
|
!isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}` : null);
|
|
697
748
|
}
|
|
749
|
+
|
|
698
750
|
handlePopupClose(e) {
|
|
699
751
|
const {
|
|
700
752
|
closePopupOnly
|
|
701
753
|
} = this.props;
|
|
702
754
|
closePopupOnly(e);
|
|
703
755
|
}
|
|
756
|
+
|
|
704
757
|
searchInputRef(el) {
|
|
705
758
|
const {
|
|
706
759
|
getRef
|
|
@@ -708,6 +761,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
708
761
|
this.searchInput = el;
|
|
709
762
|
getRef && getRef(el);
|
|
710
763
|
}
|
|
764
|
+
|
|
711
765
|
selectedOptionContainerRef(el) {
|
|
712
766
|
const {
|
|
713
767
|
getTargetRef
|
|
@@ -715,25 +769,31 @@ export class MultiSelectComponent extends React.Component {
|
|
|
715
769
|
this.selectedOptionContainer = el;
|
|
716
770
|
getTargetRef(el);
|
|
717
771
|
}
|
|
772
|
+
|
|
718
773
|
selectedOptionRef(el, id) {
|
|
719
774
|
this[`selectedOption_${id}`] = el;
|
|
720
775
|
}
|
|
776
|
+
|
|
721
777
|
suggestionContainerRef(el) {
|
|
722
778
|
this.suggestionContainer = el;
|
|
723
779
|
}
|
|
780
|
+
|
|
724
781
|
suggestionItemRef(el, index, id) {
|
|
725
782
|
this[`suggestion_${id}`] = el;
|
|
726
783
|
}
|
|
784
|
+
|
|
727
785
|
handleActive(e) {
|
|
728
786
|
const {
|
|
729
787
|
searchStr,
|
|
730
788
|
isActive
|
|
731
789
|
} = this.state;
|
|
790
|
+
|
|
732
791
|
if (!isActive) {
|
|
733
792
|
this.setState({
|
|
734
793
|
isActive: true
|
|
735
794
|
});
|
|
736
795
|
}
|
|
796
|
+
|
|
737
797
|
const {
|
|
738
798
|
target
|
|
739
799
|
} = e || {};
|
|
@@ -743,16 +803,19 @@ export class MultiSelectComponent extends React.Component {
|
|
|
743
803
|
} = this.props;
|
|
744
804
|
onFocus && onFocus(searchStr);
|
|
745
805
|
}
|
|
806
|
+
|
|
746
807
|
handleInactive() {
|
|
747
808
|
const {
|
|
748
809
|
isActive
|
|
749
810
|
} = this.state;
|
|
811
|
+
|
|
750
812
|
if (isActive) {
|
|
751
813
|
this.setState({
|
|
752
814
|
isActive: false
|
|
753
815
|
});
|
|
754
816
|
}
|
|
755
817
|
}
|
|
818
|
+
|
|
756
819
|
handleInputFocus() {
|
|
757
820
|
const {
|
|
758
821
|
isDisabled,
|
|
@@ -760,11 +823,13 @@ export class MultiSelectComponent extends React.Component {
|
|
|
760
823
|
} = this.props;
|
|
761
824
|
!isDisabled && !isReadOnly && this.moveFocusToTextbox();
|
|
762
825
|
}
|
|
826
|
+
|
|
763
827
|
moveFocusToTextbox() {
|
|
764
828
|
this.searchInput && this.searchInput.focus({
|
|
765
829
|
preventScroll: true
|
|
766
830
|
});
|
|
767
831
|
}
|
|
832
|
+
|
|
768
833
|
handleExposedPublicMethods() {
|
|
769
834
|
const {
|
|
770
835
|
getPublicMethods,
|
|
@@ -774,6 +839,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
774
839
|
openPopupOnly
|
|
775
840
|
});
|
|
776
841
|
}
|
|
842
|
+
|
|
777
843
|
responsiveFunc(_ref) {
|
|
778
844
|
let {
|
|
779
845
|
mediaQueryOR
|
|
@@ -784,6 +850,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
784
850
|
}])
|
|
785
851
|
};
|
|
786
852
|
}
|
|
853
|
+
|
|
787
854
|
getSelectionUI() {
|
|
788
855
|
let isResponsive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
789
856
|
let {
|
|
@@ -903,6 +970,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
903
970
|
dataId: `${dataId}_children`
|
|
904
971
|
}, children) : null))));
|
|
905
972
|
}
|
|
973
|
+
|
|
906
974
|
render() {
|
|
907
975
|
let {
|
|
908
976
|
isReadOnly,
|
|
@@ -1042,6 +1110,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1042
1110
|
}, /*#__PURE__*/React.createElement(Loader, null))), getFooter ? /*#__PURE__*/React.createElement(CardFooter, null, getFooter()) : null)));
|
|
1043
1111
|
}) : null);
|
|
1044
1112
|
}
|
|
1113
|
+
|
|
1045
1114
|
}
|
|
1046
1115
|
MultiSelectComponent.propTypes = MultiSelect_propTypes;
|
|
1047
1116
|
MultiSelectComponent.defaultProps = MultiSelect_defaultProps;
|
|
@@ -3,8 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { MultiSelectHeader_propTypes } from './props/propTypes';
|
|
4
4
|
import { MultiSelectHeader_defaultProps } from './props/defaultProps';
|
|
5
5
|
/**** Icons ****/
|
|
6
|
+
|
|
6
7
|
import ListItemWithIcon from '../ListItem/ListItemWithIcon';
|
|
7
8
|
/**** CSS ****/
|
|
9
|
+
|
|
8
10
|
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
9
11
|
export default class MultiSelectHeader extends React.PureComponent {
|
|
10
12
|
render() {
|
|
@@ -24,6 +26,7 @@ export default class MultiSelectHeader extends React.PureComponent {
|
|
|
24
26
|
customClass: style.selectAll
|
|
25
27
|
}) : null);
|
|
26
28
|
}
|
|
29
|
+
|
|
27
30
|
}
|
|
28
31
|
MultiSelectHeader.propTypes = MultiSelectHeader_propTypes;
|
|
29
32
|
MultiSelectHeader.defaultProps = MultiSelectHeader_defaultProps;
|
|
@@ -1,11 +1,12 @@
|
|
|
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
|
+
|
|
2
3
|
/**** Libraries ****/
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { MultiSelectWithAvatar_propTypes } from './props/propTypes';
|
|
5
6
|
import { MultiSelectWithAvatar_defaultProps } from './props/defaultProps';
|
|
6
7
|
import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
|
|
7
|
-
|
|
8
8
|
/**** Components ****/
|
|
9
|
+
|
|
9
10
|
import { MultiSelectComponent } from './MultiSelect';
|
|
10
11
|
import Popup from '../Popup/Popup';
|
|
11
12
|
import { Container, Box } from '../Layout';
|
|
@@ -19,14 +20,16 @@ import { getUniqueId } from '../../Provider/IdProvider';
|
|
|
19
20
|
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
20
21
|
import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
21
22
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
22
|
-
|
|
23
23
|
/**** Icons ****/
|
|
24
|
+
|
|
24
25
|
import { Icon } from '@zohodesk/icons';
|
|
25
26
|
/**** CSS ****/
|
|
26
|
-
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
27
27
|
|
|
28
|
+
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
28
29
|
/*eslint-disable react/sort-prop-types*/
|
|
30
|
+
|
|
29
31
|
/* eslint-disable react/forbid-component-props */
|
|
32
|
+
|
|
30
33
|
/* eslint-disable react/no-unused-prop-types */
|
|
31
34
|
|
|
32
35
|
class MultiSelectWithAvatarComponent extends MultiSelectComponent {
|
|
@@ -35,6 +38,7 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
|
|
|
35
38
|
this.handleFormatOptions = this.handleFormatOptions.bind(this);
|
|
36
39
|
this.getNextAriaId = getUniqueId(this);
|
|
37
40
|
}
|
|
41
|
+
|
|
38
42
|
handleFormatOptions(props) {
|
|
39
43
|
const {
|
|
40
44
|
options,
|
|
@@ -52,6 +56,7 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
|
|
|
52
56
|
disabledOptions
|
|
53
57
|
});
|
|
54
58
|
}
|
|
59
|
+
|
|
55
60
|
responsiveFunc(_ref) {
|
|
56
61
|
let {
|
|
57
62
|
mediaQueryOR
|
|
@@ -62,6 +67,7 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
|
|
|
62
67
|
}])
|
|
63
68
|
};
|
|
64
69
|
}
|
|
70
|
+
|
|
65
71
|
render() {
|
|
66
72
|
let {
|
|
67
73
|
isReadOnly,
|
|
@@ -199,7 +205,9 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
|
|
|
199
205
|
}, /*#__PURE__*/React.createElement(Loader, null))))));
|
|
200
206
|
}) : null);
|
|
201
207
|
}
|
|
208
|
+
|
|
202
209
|
}
|
|
210
|
+
|
|
203
211
|
MultiSelectWithAvatarComponent.propTypes = MultiSelectWithAvatar_propTypes;
|
|
204
212
|
MultiSelectWithAvatarComponent.defaultProps = MultiSelectWithAvatar_defaultProps;
|
|
205
213
|
MultiSelectWithAvatarComponent.displayName = 'MultiSelectWithAvatar';
|