@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.module.css';
|
|
23
23
|
|
|
24
|
+
import style from './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,10 +513,10 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
472
513
|
shiftKeyPressHighLighted: 0
|
|
473
514
|
});
|
|
474
515
|
}
|
|
475
|
-
} else if (keyCode === 27) {
|
|
476
|
-
// this.handlePopupClose(e);
|
|
516
|
+
} else if (keyCode === 27) {// this.handlePopupClose(e);
|
|
477
517
|
}
|
|
478
518
|
}
|
|
519
|
+
|
|
479
520
|
handleMouseEnter(id, val, hoverOptionIndex, e) {
|
|
480
521
|
e && e.preventDefault();
|
|
481
522
|
let {
|
|
@@ -487,10 +528,12 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
487
528
|
hoverIndex: newHoverIndex
|
|
488
529
|
});
|
|
489
530
|
}
|
|
531
|
+
|
|
490
532
|
handleFetchOptions() {
|
|
491
533
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
492
534
|
args[_key] = arguments[_key];
|
|
493
535
|
}
|
|
536
|
+
|
|
494
537
|
let [APICall, searchStr] = args;
|
|
495
538
|
let {
|
|
496
539
|
isFetchingOptions
|
|
@@ -498,10 +541,12 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
498
541
|
let {
|
|
499
542
|
_isMounted
|
|
500
543
|
} = this;
|
|
544
|
+
|
|
501
545
|
if (!isFetchingOptions && APICall) {
|
|
502
546
|
this.setState({
|
|
503
547
|
isFetchingOptions: true
|
|
504
548
|
});
|
|
549
|
+
|
|
505
550
|
try {
|
|
506
551
|
return APICall(searchStr).then(() => {
|
|
507
552
|
_isMounted && this.setState({
|
|
@@ -519,6 +564,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
519
564
|
}
|
|
520
565
|
}
|
|
521
566
|
}
|
|
567
|
+
|
|
522
568
|
handleSearchOptions() {
|
|
523
569
|
let {
|
|
524
570
|
onSearch
|
|
@@ -528,6 +574,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
528
574
|
} = this.state;
|
|
529
575
|
searchStr && this.handleFetchOptions(onSearch, searchStr);
|
|
530
576
|
}
|
|
577
|
+
|
|
531
578
|
handleSearch(value, e) {
|
|
532
579
|
let {
|
|
533
580
|
onSearch,
|
|
@@ -550,14 +597,17 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
550
597
|
}
|
|
551
598
|
});
|
|
552
599
|
}
|
|
600
|
+
|
|
553
601
|
handleScroll(e) {
|
|
554
602
|
let {
|
|
555
603
|
isNextOptions
|
|
556
604
|
} = this.props;
|
|
605
|
+
|
|
557
606
|
if (e.target.scrollTop + e.target.offsetHeight > e.target.scrollHeight - 1 && isNextOptions) {
|
|
558
607
|
this.handleScrollFuncCall();
|
|
559
608
|
}
|
|
560
609
|
}
|
|
610
|
+
|
|
561
611
|
handleScrollFuncCall() {
|
|
562
612
|
let {
|
|
563
613
|
getNextOptions
|
|
@@ -567,6 +617,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
567
617
|
} = this.state;
|
|
568
618
|
getNextOptions && getNextOptions(searchStr);
|
|
569
619
|
}
|
|
620
|
+
|
|
570
621
|
handleSelectAll(e) {
|
|
571
622
|
e && e.preventDefault();
|
|
572
623
|
let {
|
|
@@ -578,19 +629,23 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
578
629
|
let newSelectedOptions = suggestionOptionIds.filter(id => selectedOptionIds.indexOf(id) === -1);
|
|
579
630
|
this.handleChange([...selectedOptionIds, ...newSelectedOptions]);
|
|
580
631
|
}
|
|
632
|
+
|
|
581
633
|
handleDeselectAll(e) {
|
|
582
634
|
e && e.preventDefault();
|
|
583
635
|
let {
|
|
584
636
|
highLightedSelectOptions
|
|
585
637
|
} = this.state;
|
|
638
|
+
|
|
586
639
|
if (highLightedSelectOptions.length) {
|
|
587
640
|
this.setState({
|
|
588
641
|
highLightedSelectOptions: [],
|
|
589
642
|
lastHighLightedSelectOption: ''
|
|
590
643
|
});
|
|
591
644
|
}
|
|
645
|
+
|
|
592
646
|
this.handleChange([]);
|
|
593
647
|
}
|
|
648
|
+
|
|
594
649
|
handleChange() {
|
|
595
650
|
let selectedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
596
651
|
let e = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -605,37 +660,45 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
605
660
|
} = this.state;
|
|
606
661
|
let newSelectedOptions = selectedOptions.map(option => extractOptionId(option));
|
|
607
662
|
onChange([...newSelectedOptions]);
|
|
663
|
+
|
|
608
664
|
if (searchStr.trim() != '' && isSearchClearOnSelect) {
|
|
609
665
|
this.handleSearch('');
|
|
610
666
|
}
|
|
667
|
+
|
|
611
668
|
this.searchInput && this.searchInput.focus({
|
|
612
669
|
preventScroll: true
|
|
613
670
|
});
|
|
671
|
+
|
|
614
672
|
if (needToCloseOnSelect) {
|
|
615
673
|
e && togglePopup(e);
|
|
616
674
|
}
|
|
617
675
|
}
|
|
676
|
+
|
|
618
677
|
handleSelectOption(id, val, index, e) {
|
|
619
678
|
e && e.preventDefault();
|
|
620
679
|
let {
|
|
621
680
|
selectedOptionIds
|
|
622
681
|
} = this.state;
|
|
682
|
+
|
|
623
683
|
if (selectedOptionIds.indexOf(id) === -1) {
|
|
624
684
|
this.handleChange([...selectedOptionIds, id], e);
|
|
625
685
|
} else {
|
|
626
686
|
this.handleRemoveOption(id);
|
|
627
687
|
}
|
|
628
688
|
}
|
|
689
|
+
|
|
629
690
|
handleActive(e) {
|
|
630
691
|
let {
|
|
631
692
|
searchStr,
|
|
632
693
|
isActive
|
|
633
694
|
} = this.state;
|
|
695
|
+
|
|
634
696
|
if (!isActive) {
|
|
635
697
|
this.setState({
|
|
636
698
|
isActive: true
|
|
637
699
|
});
|
|
638
700
|
}
|
|
701
|
+
|
|
639
702
|
let {
|
|
640
703
|
target
|
|
641
704
|
} = e || {};
|
|
@@ -645,16 +708,19 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
645
708
|
} = this.props;
|
|
646
709
|
onFocus && onFocus(searchStr);
|
|
647
710
|
}
|
|
711
|
+
|
|
648
712
|
handleInactive() {
|
|
649
713
|
let {
|
|
650
714
|
isActive
|
|
651
715
|
} = this.state;
|
|
716
|
+
|
|
652
717
|
if (isActive) {
|
|
653
718
|
this.setState({
|
|
654
719
|
isActive: false
|
|
655
720
|
});
|
|
656
721
|
}
|
|
657
722
|
}
|
|
723
|
+
|
|
658
724
|
handleInputFocus() {
|
|
659
725
|
let {
|
|
660
726
|
isDisabled,
|
|
@@ -664,12 +730,15 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
664
730
|
preventScroll: true
|
|
665
731
|
});
|
|
666
732
|
}
|
|
733
|
+
|
|
667
734
|
componentDidMount() {
|
|
668
735
|
this._isMounted = true;
|
|
669
736
|
}
|
|
737
|
+
|
|
670
738
|
componentWillUnmount() {
|
|
671
739
|
this._isMounted = false;
|
|
672
740
|
}
|
|
741
|
+
|
|
673
742
|
componentDidUpdate(prevProps) {
|
|
674
743
|
let {
|
|
675
744
|
groupedOptions,
|
|
@@ -684,6 +753,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
684
753
|
hoverIndex
|
|
685
754
|
} = this.state;
|
|
686
755
|
let newOptionIds = this.state.allOptionIds;
|
|
756
|
+
|
|
687
757
|
if (prevProps.groupedOptions != groupedOptions) {
|
|
688
758
|
let {
|
|
689
759
|
revampedGroups,
|
|
@@ -704,6 +774,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
704
774
|
groupDetails: normalizedGroupedOptions
|
|
705
775
|
});
|
|
706
776
|
}
|
|
777
|
+
|
|
707
778
|
if (prevProps.selectedOptionDetails != selectedOptionDetails || prevProps.selectedGroupOptions != selectedGroupOptions) {
|
|
708
779
|
let {
|
|
709
780
|
groupDetails,
|
|
@@ -725,11 +796,11 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
725
796
|
selectedOptionIds
|
|
726
797
|
});
|
|
727
798
|
}
|
|
799
|
+
|
|
728
800
|
let hoverId = getIsEmptyValue(newOptionIds[hoverIndex]) ? '' : newOptionIds[hoverIndex];
|
|
729
801
|
let selSuggestion = this[`suggestion_${hoverId}`];
|
|
730
|
-
isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion);
|
|
802
|
+
isPopupOpen && scrollTo(this.suggestionContainer, selSuggestion); //When suggestions length less than 5, getNextOptions function call
|
|
731
803
|
|
|
732
|
-
//When suggestions length less than 5, getNextOptions function call
|
|
733
804
|
let {
|
|
734
805
|
isNextOptions,
|
|
735
806
|
getNextOptions,
|
|
@@ -739,13 +810,16 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
739
810
|
suggestionOptionIds: suggestions
|
|
740
811
|
} = this.handleFilterSuggestions();
|
|
741
812
|
let suggestionsLen = suggestions.length;
|
|
813
|
+
|
|
742
814
|
if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
|
|
743
815
|
this.handleFetchOptions(getNextOptions, searchStr);
|
|
744
816
|
}
|
|
817
|
+
|
|
745
818
|
if (prevProps.isPopupOpen != isPopupOpen) {
|
|
746
819
|
notifyPopupToggle && notifyPopupToggle(isPopupOpen);
|
|
747
820
|
}
|
|
748
821
|
}
|
|
822
|
+
|
|
749
823
|
responsiveFunc(_ref) {
|
|
750
824
|
let {
|
|
751
825
|
mediaQueryOR
|
|
@@ -756,6 +830,7 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
756
830
|
}])
|
|
757
831
|
};
|
|
758
832
|
}
|
|
833
|
+
|
|
759
834
|
render() {
|
|
760
835
|
let {
|
|
761
836
|
size,
|
|
@@ -986,13 +1061,14 @@ class AdvancedGroupMultiSelect extends React.Component {
|
|
|
986
1061
|
}, /*#__PURE__*/React.createElement(Loader, null)) : null)));
|
|
987
1062
|
}) : null);
|
|
988
1063
|
}
|
|
1064
|
+
|
|
989
1065
|
}
|
|
1066
|
+
|
|
990
1067
|
AdvancedGroupMultiSelect.defaultProps = AdvancedGroupMultiSelect_defaultProps;
|
|
991
1068
|
AdvancedGroupMultiSelect.propTypes = AdvancedGroupMultiSelect_propTypes;
|
|
992
1069
|
const AdvancedGroupMultiSelectComponent = Popup(AdvancedGroupMultiSelect);
|
|
993
1070
|
AdvancedGroupMultiSelectComponent.defaultProps = AdvancedGroupMultiSelect.defaultProps;
|
|
994
|
-
AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes;
|
|
995
|
-
// if (__DOCS__) {
|
|
1071
|
+
AdvancedGroupMultiSelectComponent.propTypes = AdvancedGroupMultiSelect.propTypes; // if (__DOCS__) {
|
|
996
1072
|
// AdvancedGroupMultiSelect.docs = {
|
|
997
1073
|
// componentGroup: 'Form Elements',
|
|
998
1074
|
// folderName: 'Style Guide'
|