@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
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { AdvancedGroupMultiSelect_propTypes } from './props/propTypes';
|
|
3
3
|
import { AdvancedGroupMultiSelect_defaultProps } from './props/defaultProps';
|
|
4
4
|
/**** Components ****/
|
|
5
|
+
|
|
5
6
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
6
7
|
import Popup from '../Popup/Popup';
|
|
7
8
|
import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
|
|
@@ -15,19 +16,20 @@ import Card, { CardContent, CardHeader, CardFooter } from '../Card/Card';
|
|
|
15
16
|
import { getUniqueId } from '../../Provider/IdProvider';
|
|
16
17
|
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
17
18
|
import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
18
|
-
|
|
19
19
|
/**** Icons ****/
|
|
20
|
+
|
|
20
21
|
import { Icon } from '@zohodesk/icons';
|
|
21
22
|
/**** CSS ****/
|
|
22
|
-
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
23
23
|
|
|
24
|
+
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
24
25
|
/**** Methods ****/
|
|
26
|
+
|
|
25
27
|
import { debounce, scrollTo, getIsEmptyValue, getSearchString } from '../../utils/Common.js';
|
|
26
28
|
import { makeGetMultiSelectSelectedOptions, makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, makeGetOptionIdChange, extractOptionId, makeFormatOptions, makeObjectConcat } from '../../utils/dropDownUtils';
|
|
27
|
-
|
|
28
29
|
/* eslint-disable react/forbid-component-props */
|
|
29
30
|
|
|
30
31
|
/* eslint-disable react/no-unused-prop-types */
|
|
32
|
+
|
|
31
33
|
class AdvancedGroupMultiSelect extends React.Component {
|
|
32
34
|
constructor(props) {
|
|
33
35
|
super(props);
|
|
@@ -106,6 +108,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
106
108
|
};
|
|
107
109
|
this._isMounted = false;
|
|
108
110
|
}
|
|
111
|
+
|
|
109
112
|
handleGetSelectedOptions(selectedOptionDetails) {
|
|
110
113
|
let {
|
|
111
114
|
normalizedFormatOptions: normalizedSelectedOptions
|
|
@@ -114,6 +117,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
114
117
|
normalizedSelectedOptions
|
|
115
118
|
};
|
|
116
119
|
}
|
|
120
|
+
|
|
117
121
|
handleFormatSelectedOptions(selectedOptionDetails, props) {
|
|
118
122
|
let {
|
|
119
123
|
valueField,
|
|
@@ -125,6 +129,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
125
129
|
textField
|
|
126
130
|
});
|
|
127
131
|
}
|
|
132
|
+
|
|
128
133
|
handleSelectedOptionDetailsIdChange(props, state) {
|
|
129
134
|
let {
|
|
130
135
|
groupIds,
|
|
@@ -151,12 +156,15 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
151
156
|
});
|
|
152
157
|
return newSelectedOptionDetails;
|
|
153
158
|
}
|
|
159
|
+
|
|
154
160
|
selectedOptionRef(el, id) {
|
|
155
161
|
this[`selectedOption_${id}`] = el;
|
|
156
162
|
}
|
|
163
|
+
|
|
157
164
|
suggestionContainerRef(el) {
|
|
158
165
|
this.suggestionContainer = el;
|
|
159
166
|
}
|
|
167
|
+
|
|
160
168
|
selectedOptionContainerRef(el) {
|
|
161
169
|
let {
|
|
162
170
|
getTargetRef
|
|
@@ -164,12 +172,15 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
164
172
|
this.selectedOptionContainer = el;
|
|
165
173
|
getTargetRef(el);
|
|
166
174
|
}
|
|
175
|
+
|
|
167
176
|
suggestionItemRef(el, index, id) {
|
|
168
177
|
this[`suggestion_${id}`] = el;
|
|
169
178
|
}
|
|
179
|
+
|
|
170
180
|
searchInputRef(ref) {
|
|
171
181
|
this.searchInput = ref;
|
|
172
182
|
}
|
|
183
|
+
|
|
173
184
|
handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions) {
|
|
174
185
|
let newSelectedOptions = selectedGroupOptions.map(option => optionIdGrouping(option.id, option.groupId));
|
|
175
186
|
let selectedOptionsLength = newSelectedOptions.length;
|
|
@@ -183,6 +194,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
183
194
|
selectedOptionsLength
|
|
184
195
|
});
|
|
185
196
|
}
|
|
197
|
+
|
|
186
198
|
togglePopup(e) {
|
|
187
199
|
let {
|
|
188
200
|
togglePopup,
|
|
@@ -191,6 +203,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
191
203
|
} = this.props;
|
|
192
204
|
!isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}Center` : null);
|
|
193
205
|
}
|
|
206
|
+
|
|
194
207
|
handleFilterSuggestions() {
|
|
195
208
|
let {
|
|
196
209
|
revampedGroups,
|
|
@@ -200,6 +213,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
200
213
|
let {
|
|
201
214
|
needLocalSearch
|
|
202
215
|
} = this.props;
|
|
216
|
+
|
|
203
217
|
if (searchStr && searchStr.trim().length) {
|
|
204
218
|
searchStr = getSearchString(searchStr);
|
|
205
219
|
let {
|
|
@@ -215,11 +229,13 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
215
229
|
suggestionOptionIds
|
|
216
230
|
};
|
|
217
231
|
}
|
|
232
|
+
|
|
218
233
|
return {
|
|
219
234
|
suggestionGroups: revampedGroups,
|
|
220
235
|
suggestionOptionIds: allOptionIds
|
|
221
236
|
};
|
|
222
237
|
}
|
|
238
|
+
|
|
223
239
|
handleGetGroupSelectOptions(props) {
|
|
224
240
|
let {
|
|
225
241
|
groupedOptions = []
|
|
@@ -228,6 +244,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
228
244
|
groupedOptions
|
|
229
245
|
});
|
|
230
246
|
}
|
|
247
|
+
|
|
231
248
|
handleInputCick(e) {
|
|
232
249
|
let {
|
|
233
250
|
highLightedSelectOptions
|
|
@@ -238,6 +255,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
238
255
|
lastHighLightedSelectOption: ''
|
|
239
256
|
}) : this.togglePopup(e);
|
|
240
257
|
}
|
|
258
|
+
|
|
241
259
|
handleClickSelectedOption() {
|
|
242
260
|
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
243
261
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -253,13 +271,16 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
253
271
|
ctrlKey,
|
|
254
272
|
shiftKey
|
|
255
273
|
} = e;
|
|
274
|
+
|
|
256
275
|
if (e && shiftKey) {
|
|
257
276
|
//shift+click
|
|
258
277
|
let from = selectedOptionIds.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptionIds.indexOf(lastHighLightedSelectOption) : 0;
|
|
259
278
|
let to = id && selectedOptionIds.indexOf(id) >= 0 ? selectedOptionIds.indexOf(id) : null;
|
|
279
|
+
|
|
260
280
|
if (to >= 0 && to < from) {
|
|
261
281
|
[to] = [from, from = to];
|
|
262
282
|
}
|
|
283
|
+
|
|
263
284
|
to += 1;
|
|
264
285
|
let newSelectedHighlights = to ? selectedOptionIds.slice(from, to) : [];
|
|
265
286
|
to && this.setState({
|
|
@@ -270,6 +291,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
270
291
|
//ctrl+click
|
|
271
292
|
let isRemove = highLightedSelectOptions.indexOf(id) >= 0;
|
|
272
293
|
let newSelectedHighlights = [];
|
|
294
|
+
|
|
273
295
|
if (isRemove) {
|
|
274
296
|
lastHighLightedSelectOption = id === lastHighLightedSelectOption ? '' : lastHighLightedSelectOption;
|
|
275
297
|
newSelectedHighlights = highLightedSelectOptions.filter(option => option !== id);
|
|
@@ -277,6 +299,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
277
299
|
lastHighLightedSelectOption = id;
|
|
278
300
|
newSelectedHighlights = [...highLightedSelectOptions, id];
|
|
279
301
|
}
|
|
302
|
+
|
|
280
303
|
this.setState({
|
|
281
304
|
highLightedSelectOptions: newSelectedHighlights,
|
|
282
305
|
lastHighLightedSelectOption
|
|
@@ -287,6 +310,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
287
310
|
lastHighLightedSelectOption: id
|
|
288
311
|
});
|
|
289
312
|
}
|
|
313
|
+
|
|
290
314
|
this.setState({
|
|
291
315
|
shiftKeyPressHighLighted: 0
|
|
292
316
|
});
|
|
@@ -294,6 +318,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
294
318
|
preventScroll: true
|
|
295
319
|
});
|
|
296
320
|
}
|
|
321
|
+
|
|
297
322
|
handleRemoveOption(options) {
|
|
298
323
|
let newOptions = !getIsEmptyValue(options) && !Array.isArray(options) ? [options] : options;
|
|
299
324
|
let {
|
|
@@ -307,18 +332,22 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
307
332
|
lastHighLightedSelectOption,
|
|
308
333
|
shiftKeyPressHighLighted
|
|
309
334
|
} = this.state;
|
|
335
|
+
|
|
310
336
|
if (newOptions.length && !isReadOnly) {
|
|
311
337
|
let newSelectedOptions = selectedOptionIds.filter(option => newOptions.indexOf(option) === -1);
|
|
312
338
|
let newHighLightedSelectOptions = highLightedSelectOptions.filter(option => newSelectedOptions.indexOf(option) >= 0);
|
|
313
339
|
let isHighlightedRemoved = false;
|
|
314
340
|
let newOptionsLen = newOptions.length;
|
|
341
|
+
|
|
315
342
|
for (let i = 0; i < newOptionsLen; i++) {
|
|
316
343
|
let removedOption = newOptions[i];
|
|
344
|
+
|
|
317
345
|
if (highLightedSelectOptions.indexOf(removedOption) >= 0) {
|
|
318
346
|
isHighlightedRemoved = true;
|
|
319
347
|
break;
|
|
320
348
|
}
|
|
321
349
|
}
|
|
350
|
+
|
|
322
351
|
this.setState({
|
|
323
352
|
lastHighLightedSelectOption: newSelectedOptions.indexOf(lastHighLightedSelectOption) >= 0 && !isHighlightedRemoved ? lastHighLightedSelectOption : '',
|
|
324
353
|
highLightedSelectOptions: isHighlightedRemoved ? [] : newHighLightedSelectOptions,
|
|
@@ -326,10 +355,12 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
326
355
|
});
|
|
327
356
|
this.handleChange(newSelectedOptions);
|
|
328
357
|
}
|
|
358
|
+
|
|
329
359
|
this.searchInput && this.searchInput.focus({
|
|
330
360
|
preventScroll: true
|
|
331
361
|
});
|
|
332
362
|
}
|
|
363
|
+
|
|
333
364
|
handleKeyDown(e) {
|
|
334
365
|
let {
|
|
335
366
|
keyCode,
|
|
@@ -354,23 +385,30 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
354
385
|
onKeyDown
|
|
355
386
|
} = this.props;
|
|
356
387
|
let highLightedSelectOptionsLen = highLightedSelectOptions.length;
|
|
388
|
+
|
|
357
389
|
if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13 || keyCode === 27)) {
|
|
358
390
|
let {
|
|
359
391
|
suggestionOptionIds
|
|
360
392
|
} = this.handleFilterSuggestions();
|
|
361
393
|
suggestions = suggestionOptionIds;
|
|
362
394
|
}
|
|
395
|
+
|
|
363
396
|
if (!isPopupOpen && !isPopupOpenOnEnter) {
|
|
364
397
|
onKeyDown && onKeyDown(e);
|
|
365
398
|
}
|
|
399
|
+
|
|
366
400
|
if (!isPopupOpen && keyCode === 40) {
|
|
367
401
|
//down arrow press popup open
|
|
368
402
|
e.preventDefault(); //prevent body scroll
|
|
403
|
+
|
|
369
404
|
this.togglePopup(e);
|
|
370
405
|
}
|
|
406
|
+
|
|
371
407
|
let suggestionsLen = suggestions.length;
|
|
408
|
+
|
|
372
409
|
if (suggestionsLen && isPopupOpen && keyCode === 38) {
|
|
373
410
|
//up arrow
|
|
411
|
+
|
|
374
412
|
/*if (hoverOption === 0) { //disable first to last option higlight
|
|
375
413
|
!isNextOptions && this.setState({ hoverOption: suggestionsLen - 1 });
|
|
376
414
|
}*/
|
|
@@ -381,6 +419,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
381
419
|
}
|
|
382
420
|
} else if (suggestionsLen && isPopupOpen && keyCode === 40) {
|
|
383
421
|
//down arrow
|
|
422
|
+
|
|
384
423
|
/*else if (hoverOption === suggestionsLen - 1 || hoverOption === null) {
|
|
385
424
|
//disable last to first option higlight
|
|
386
425
|
!isNextOptions && this.setState({ hoverOption: 0 });
|
|
@@ -405,8 +444,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
405
444
|
if (highLightedSelectOptionsLen) {
|
|
406
445
|
this.handleRemoveOption(highLightedSelectOptions);
|
|
407
446
|
} else {
|
|
408
|
-
this.handleRemoveOption(selectedOptions.slice(-1));
|
|
409
|
-
// this.setState({
|
|
447
|
+
this.handleRemoveOption(selectedOptions.slice(-1)); // this.setState({
|
|
410
448
|
// highLightedSelectOptions: selectedOptions.slice(-1)
|
|
411
449
|
// });
|
|
412
450
|
}
|
|
@@ -421,6 +459,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
421
459
|
let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption && selectedOptions.indexOf(lastHighLightedSelectOption) >= 0 ? selectedOptions.indexOf(lastHighLightedSelectOption) : 0;
|
|
422
460
|
let newShiftKeyPressHighLighted = shiftKeyPressHighLighted ? shiftKeyPressHighLighted : shiftKeyPressHighLighted + 1;
|
|
423
461
|
let newHighLightedSelectOption = lastHighLightedSelectOptionIndex !== null ? selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted] : selectedOptions[0];
|
|
462
|
+
|
|
424
463
|
if (!getIsEmptyValue(newHighLightedSelectOption)) {
|
|
425
464
|
let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions[0];
|
|
426
465
|
highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
|
|
@@ -437,6 +476,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
437
476
|
let lastHighLightedSelectOptionIndex = lastHighLightedSelectOption ? selectedOptions.indexOf(lastHighLightedSelectOption) : selectedOptions.length - 1;
|
|
438
477
|
let newShiftKeyPressHighLighted = shiftKeyPressHighLighted !== 1 ? shiftKeyPressHighLighted : shiftKeyPressHighLighted - 1;
|
|
439
478
|
let newHighLightedSelectOption = selectedOptions[lastHighLightedSelectOptionIndex + newShiftKeyPressHighLighted - 1];
|
|
479
|
+
|
|
440
480
|
if (!getIsEmptyValue(newHighLightedSelectOption)) {
|
|
441
481
|
let newLastHighLightedSelectOption = lastHighLightedSelectOption ? lastHighLightedSelectOption : selectedOptions.slice(-1)[0];
|
|
442
482
|
highLightedSelectOptions = !shiftKeyPressHighLighted ? [newLastHighLightedSelectOption] : highLightedSelectOptions;
|
|
@@ -449,14 +489,15 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
449
489
|
});
|
|
450
490
|
}
|
|
451
491
|
} else if ((keyCode === 39 || keyCode === 37) && selectedOptions.length && !searchStr.length) {
|
|
452
|
-
let isRightArrow = keyCode === 39 ? true : false;
|
|
453
|
-
|
|
492
|
+
let isRightArrow = keyCode === 39 ? true : false; // let isLefttArrow = keyCode === 37 ? true : false;
|
|
493
|
+
|
|
454
494
|
if (highLightedSelectOptions.length) {
|
|
455
495
|
let [lastHighLightedSelectOption] = highLightedSelectOptions.slice(-1);
|
|
456
496
|
let lastHighLightedSelectOptionIndex = selectedOptions.indexOf(lastHighLightedSelectOption);
|
|
457
497
|
let newLastHighLightedSelectOptionIndex = isRightArrow ? lastHighLightedSelectOptionIndex === selectedOptions.length - 1 ? lastHighLightedSelectOptionIndex : lastHighLightedSelectOptionIndex + 1 : lastHighLightedSelectOptionIndex - 1;
|
|
458
498
|
let newLastHighLightedSelectOption = selectedOptions[newLastHighLightedSelectOptionIndex];
|
|
459
499
|
let isEmptyHighlighted = isRightArrow && highLightedSelectOptions.length === 1 && selectedOptions.slice(-1)[0] === lastHighLightedSelectOption ? true : false;
|
|
500
|
+
|
|
460
501
|
if (!getIsEmptyValue(newLastHighLightedSelectOption)) {
|
|
461
502
|
this.setState({
|
|
462
503
|
lastHighLightedSelectOption: isEmptyHighlighted ? '' : newLastHighLightedSelectOption,
|
|
@@ -472,12 +513,11 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
472
513
|
shiftKeyPressHighLighted: 0
|
|
473
514
|
});
|
|
474
515
|
}
|
|
475
|
-
}
|
|
476
|
-
//
|
|
477
|
-
else if (keyCode === 27) {
|
|
478
|
-
// this.handlePopupClose(e);
|
|
516
|
+
} // eslint-disable-next-line
|
|
517
|
+
else if (keyCode === 27) {// this.handlePopupClose(e);
|
|
479
518
|
}
|
|
480
519
|
}
|
|
520
|
+
|
|
481
521
|
handleMouseEnter(id, val, hoverOptionIndex, e) {
|
|
482
522
|
e && e.preventDefault();
|
|
483
523
|
let {
|
|
@@ -489,10 +529,12 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
489
529
|
hoverIndex: newHoverIndex
|
|
490
530
|
});
|
|
491
531
|
}
|
|
532
|
+
|
|
492
533
|
handleFetchOptions() {
|
|
493
534
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
494
535
|
args[_key] = arguments[_key];
|
|
495
536
|
}
|
|
537
|
+
|
|
496
538
|
let [APICall, searchStr] = args;
|
|
497
539
|
let {
|
|
498
540
|
isFetchingOptions
|
|
@@ -500,10 +542,12 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
500
542
|
let {
|
|
501
543
|
_isMounted
|
|
502
544
|
} = this;
|
|
545
|
+
|
|
503
546
|
if (!isFetchingOptions && APICall) {
|
|
504
547
|
this.setState({
|
|
505
548
|
isFetchingOptions: true
|
|
506
549
|
});
|
|
550
|
+
|
|
507
551
|
try {
|
|
508
552
|
return APICall(searchStr).then(() => {
|
|
509
553
|
_isMounted && this.setState({
|
|
@@ -521,6 +565,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
521
565
|
}
|
|
522
566
|
}
|
|
523
567
|
}
|
|
568
|
+
|
|
524
569
|
handleSearchOptions() {
|
|
525
570
|
let {
|
|
526
571
|
onSearch
|
|
@@ -530,6 +575,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
530
575
|
} = this.state;
|
|
531
576
|
searchStr && this.handleFetchOptions(onSearch, searchStr);
|
|
532
577
|
}
|
|
578
|
+
|
|
533
579
|
handleSearch(value, e) {
|
|
534
580
|
let {
|
|
535
581
|
onSearch,
|
|
@@ -552,14 +598,17 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
552
598
|
}
|
|
553
599
|
});
|
|
554
600
|
}
|
|
601
|
+
|
|
555
602
|
handleScroll(e) {
|
|
556
603
|
let {
|
|
557
604
|
isNextOptions
|
|
558
605
|
} = this.props;
|
|
606
|
+
|
|
559
607
|
if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1 && isNextOptions) {
|
|
560
608
|
this.handleScrollFuncCall();
|
|
561
609
|
}
|
|
562
610
|
}
|
|
611
|
+
|
|
563
612
|
handleScrollFuncCall() {
|
|
564
613
|
let {
|
|
565
614
|
getNextOptions
|
|
@@ -569,6 +618,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
569
618
|
} = this.state;
|
|
570
619
|
getNextOptions && getNextOptions(searchStr);
|
|
571
620
|
}
|
|
621
|
+
|
|
572
622
|
handleSelectAll(e) {
|
|
573
623
|
e && e.preventDefault();
|
|
574
624
|
let {
|
|
@@ -580,19 +630,23 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
580
630
|
let newSelectedOptions = suggestionOptionIds.filter(id => selectedOptionIds.indexOf(id) === -1);
|
|
581
631
|
this.handleChange([...selectedOptionIds, ...newSelectedOptions]);
|
|
582
632
|
}
|
|
633
|
+
|
|
583
634
|
handleDeselectAll(e) {
|
|
584
635
|
e && e.preventDefault();
|
|
585
636
|
let {
|
|
586
637
|
highLightedSelectOptions
|
|
587
638
|
} = this.state;
|
|
639
|
+
|
|
588
640
|
if (highLightedSelectOptions.length) {
|
|
589
641
|
this.setState({
|
|
590
642
|
highLightedSelectOptions: [],
|
|
591
643
|
lastHighLightedSelectOption: ''
|
|
592
644
|
});
|
|
593
645
|
}
|
|
646
|
+
|
|
594
647
|
this.handleChange([]);
|
|
595
648
|
}
|
|
649
|
+
|
|
596
650
|
handleChange() {
|
|
597
651
|
let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
598
652
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -607,37 +661,45 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
607
661
|
} = this.state;
|
|
608
662
|
let newSelectedOptions = selectedOptions.map(option => extractOptionId(option));
|
|
609
663
|
onChange([...newSelectedOptions]);
|
|
664
|
+
|
|
610
665
|
if (searchStr.trim() != '' && isSearchClearOnSelect) {
|
|
611
666
|
this.handleSearch('');
|
|
612
667
|
}
|
|
668
|
+
|
|
613
669
|
this.searchInput && this.searchInput.focus({
|
|
614
670
|
preventScroll: true
|
|
615
671
|
});
|
|
672
|
+
|
|
616
673
|
if (needToCloseOnSelect) {
|
|
617
674
|
e && togglePopup(e);
|
|
618
675
|
}
|
|
619
676
|
}
|
|
677
|
+
|
|
620
678
|
handleSelectOption(id, val, index, e) {
|
|
621
679
|
e && e.preventDefault();
|
|
622
680
|
let {
|
|
623
681
|
selectedOptionIds
|
|
624
682
|
} = this.state;
|
|
683
|
+
|
|
625
684
|
if (selectedOptionIds.indexOf(id) === -1) {
|
|
626
685
|
this.handleChange([...selectedOptionIds, id], e);
|
|
627
686
|
} else {
|
|
628
687
|
this.handleRemoveOption(id);
|
|
629
688
|
}
|
|
630
689
|
}
|
|
690
|
+
|
|
631
691
|
handleActive(e) {
|
|
632
692
|
let {
|
|
633
693
|
searchStr,
|
|
634
694
|
isActive
|
|
635
695
|
} = this.state;
|
|
696
|
+
|
|
636
697
|
if (!isActive) {
|
|
637
698
|
this.setState({
|
|
638
699
|
isActive: true
|
|
639
700
|
});
|
|
640
701
|
}
|
|
702
|
+
|
|
641
703
|
let {
|
|
642
704
|
target
|
|
643
705
|
} = e || {};
|
|
@@ -647,16 +709,19 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
647
709
|
} = this.props;
|
|
648
710
|
onFocus && onFocus(searchStr);
|
|
649
711
|
}
|
|
712
|
+
|
|
650
713
|
handleInactive() {
|
|
651
714
|
let {
|
|
652
715
|
isActive
|
|
653
716
|
} = this.state;
|
|
717
|
+
|
|
654
718
|
if (isActive) {
|
|
655
719
|
this.setState({
|
|
656
720
|
isActive: false
|
|
657
721
|
});
|
|
658
722
|
}
|
|
659
723
|
}
|
|
724
|
+
|
|
660
725
|
handleInputFocus() {
|
|
661
726
|
let {
|
|
662
727
|
isDisabled,
|
|
@@ -666,12 +731,15 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
666
731
|
preventScroll: true
|
|
667
732
|
});
|
|
668
733
|
}
|
|
734
|
+
|
|
669
735
|
componentDidMount() {
|
|
670
736
|
this._isMounted = true;
|
|
671
737
|
}
|
|
738
|
+
|
|
672
739
|
componentWillUnmount() {
|
|
673
740
|
this._isMounted = false;
|
|
674
741
|
}
|
|
742
|
+
|
|
675
743
|
componentDidUpdate(prevProps) {
|
|
676
744
|
let {
|
|
677
745
|
groupedOptions,
|
|
@@ -686,6 +754,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
686
754
|
hoverIndex
|
|
687
755
|
} = this.state;
|
|
688
756
|
let newOptionIds = this.state.allOptionIds;
|
|
757
|
+
|
|
689
758
|
if (prevProps.groupedOptions != groupedOptions) {
|
|
690
759
|
let {
|
|
691
760
|
revampedGroups,
|
|
@@ -706,6 +775,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
706
775
|
groupDetails: normalizedGroupedOptions
|
|
707
776
|
});
|
|
708
777
|
}
|
|
778
|
+
|
|
709
779
|
if (prevProps.selectedOptionDetails != selectedOptionDetails || prevProps.selectedGroupOptions != selectedGroupOptions) {
|
|
710
780
|
let {
|
|
711
781
|
groupDetails,
|
|
@@ -727,11 +797,11 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
727
797
|
selectedOptionIds
|
|
728
798
|
});
|
|
729
799
|
}
|
|
800
|
+
|
|
730
801
|
let hoverId = getIsEmptyValue(newOptionIds[hoverIndex]) ? '' : newOptionIds[hoverIndex];
|
|
731
802
|
let selSuggestion = this[`suggestion_${hoverId}`];
|
|
732
|
-
isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion);
|
|
803
|
+
isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion); //When suggestions length less than 5, getNextOptions function call
|
|
733
804
|
|
|
734
|
-
//When suggestions length less than 5, getNextOptions function call
|
|
735
805
|
let {
|
|
736
806
|
isNextOptions,
|
|
737
807
|
getNextOptions,
|
|
@@ -741,13 +811,16 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
741
811
|
suggestionOptionIds: suggestions
|
|
742
812
|
} = this.handleFilterSuggestions();
|
|
743
813
|
let suggestionsLen = suggestions.length;
|
|
814
|
+
|
|
744
815
|
if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
|
|
745
816
|
this.handleFetchOptions(getNextOptions, searchStr);
|
|
746
817
|
}
|
|
818
|
+
|
|
747
819
|
if (prevProps.isPopupOpen != isPopupOpen) {
|
|
748
820
|
notifyPopupToggle && notifyPopupToggle(isPopupOpen);
|
|
749
821
|
}
|
|
750
822
|
}
|
|
823
|
+
|
|
751
824
|
responsiveFunc(_ref) {
|
|
752
825
|
let {
|
|
753
826
|
mediaQueryOR
|
|
@@ -758,6 +831,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
758
831
|
}])
|
|
759
832
|
};
|
|
760
833
|
}
|
|
834
|
+
|
|
761
835
|
render() {
|
|
762
836
|
let {
|
|
763
837
|
size,
|
|
@@ -988,13 +1062,14 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
988
1062
|
}, /*#__PURE__*/React.createElement(Loader, null)) : null)));
|
|
989
1063
|
}) : null);
|
|
990
1064
|
}
|
|
1065
|
+
|
|
991
1066
|
}
|
|
1067
|
+
|
|
992
1068
|
AdvancedGroupMultiSelect.defaultProps = AdvancedGroupMultiSelect_defaultProps;
|
|
993
1069
|
AdvancedGroupMultiSelect.propTypes = AdvancedGroupMultiSelect_propTypes;
|
|
994
1070
|
const AdvancedGroupMultiSelectComponent = Popup(AdvancedGroupMultiSelect);
|
|
995
1071
|
AdvancedGroupMultiSelectComponent.defaultProps = AdvancedGroupMultiSelect.defaultProps;
|
|
996
|
-
AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes;
|
|
997
|
-
// if (__DOCS__) {
|
|
1072
|
+
AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes; // if (__DOCS__) {
|
|
998
1073
|
// AdvancedGroupMultiSelect.docs = {
|
|
999
1074
|
// componentGroup: 'Form Elements',
|
|
1000
1075
|
// folderName: 'Style Guide'
|