@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
package/es/v1/Select/Select.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
2
3
|
/**** Libraries ****/
|
|
3
4
|
import React, { Component } from 'react';
|
|
4
5
|
import { Select_defaultProps } from './props/defaultProps';
|
|
5
6
|
import { Select_propTypes } from './props/propTypes';
|
|
6
7
|
/**** Components ****/
|
|
8
|
+
|
|
7
9
|
import Popup from '../Popup/Popup';
|
|
8
10
|
import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
|
|
9
11
|
import { Container, Box } from '../Layout';
|
|
@@ -16,15 +18,16 @@ import { Icon } from '@zohodesk/icons';
|
|
|
16
18
|
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
17
19
|
import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
18
20
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
19
|
-
|
|
20
21
|
/**** Methods ****/
|
|
22
|
+
|
|
21
23
|
import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetSelectedValueText as makeGetSelectedValue } from '../../utils/dropDownUtils';
|
|
22
24
|
import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue } from '../../utils/Common.js';
|
|
23
25
|
/**** CSS ****/
|
|
26
|
+
|
|
24
27
|
import style from '../../Select/Select.module.css';
|
|
25
28
|
import { getLibraryConfig } from '../../Provider/Config';
|
|
26
|
-
|
|
27
29
|
/* eslint-disable react/no-deprecated */
|
|
30
|
+
|
|
28
31
|
/* eslint-disable react/no-unused-prop-types */
|
|
29
32
|
|
|
30
33
|
let dummyArray = [];
|
|
@@ -64,11 +67,11 @@ export class SelectComponent extends Component {
|
|
|
64
67
|
isDefaultSelectValue,
|
|
65
68
|
valueField,
|
|
66
69
|
textField
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
if (isSelfValueChanged) {
|
|
70
|
-
// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
|
|
70
|
+
}); // eslint-disable-next-line
|
|
71
|
+
|
|
72
|
+
if (isSelfValueChanged) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
|
|
71
73
|
}
|
|
74
|
+
|
|
72
75
|
this.state = {
|
|
73
76
|
selected,
|
|
74
77
|
options: allOptions,
|
|
@@ -111,10 +114,10 @@ export class SelectComponent extends Component {
|
|
|
111
114
|
this.autoSelectSuggestions = [];
|
|
112
115
|
this.autoSelectIndex = 0;
|
|
113
116
|
}
|
|
117
|
+
|
|
114
118
|
componentDidMount() {
|
|
115
119
|
this._isMounted = true;
|
|
116
|
-
this.handleExposePopupHandlers();
|
|
117
|
-
// let { suggestionContainer } = this;
|
|
120
|
+
this.handleExposePopupHandlers(); // let { suggestionContainer } = this;
|
|
118
121
|
// suggestionContainer &&
|
|
119
122
|
// suggestionContainer.addEventListener('scroll', this.handleScroll);
|
|
120
123
|
}
|
|
@@ -155,11 +158,11 @@ export class SelectComponent extends Component {
|
|
|
155
158
|
});
|
|
156
159
|
let {
|
|
157
160
|
selectedValue: oldSelectedValue
|
|
158
|
-
} = this.props;
|
|
159
|
-
|
|
160
|
-
if (isSelfValueChanged && oldSelectedValue !== selectedValue) {
|
|
161
|
-
// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
|
|
161
|
+
} = this.props; // eslint-disable-next-line
|
|
162
|
+
|
|
163
|
+
if (isSelfValueChanged && oldSelectedValue !== selectedValue) {// onChange && onChange(selectedId, normalizedAllOptions[selectedId]);
|
|
162
164
|
}
|
|
165
|
+
|
|
163
166
|
this.selectedFormatOptions = Object.assign(oldSelectedFormatOptions, selectedValueDetails);
|
|
164
167
|
this.normalizedFormatOptions = normalizedFormatOptions;
|
|
165
168
|
this.optionsOrder = optionsOrder;
|
|
@@ -172,6 +175,7 @@ export class SelectComponent extends Component {
|
|
|
172
175
|
selectedValueIndex: hoverIndex
|
|
173
176
|
});
|
|
174
177
|
}
|
|
178
|
+
|
|
175
179
|
componentDidUpdate(prevProps) {
|
|
176
180
|
let {
|
|
177
181
|
suggestionContainer,
|
|
@@ -194,6 +198,7 @@ export class SelectComponent extends Component {
|
|
|
194
198
|
let hoverId = getIsEmptyValue(optionsOrder[hoverIndex]) ? '' : optionsOrder[hoverIndex];
|
|
195
199
|
let selSuggestion = this[`suggestion_${hoverId}`];
|
|
196
200
|
isPopupOpen && scrollTo(suggestionContainer, selSuggestion);
|
|
201
|
+
|
|
197
202
|
if (prevProps.isPopupOpen !== isPopupOpen) {
|
|
198
203
|
if (isPopupOpen) {
|
|
199
204
|
onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
|
|
@@ -211,20 +216,22 @@ export class SelectComponent extends Component {
|
|
|
211
216
|
hoverIndex: selectedValueIndex
|
|
212
217
|
});
|
|
213
218
|
}
|
|
214
|
-
}
|
|
219
|
+
} //When suggestions length less than 5, getNextOptions function call
|
|
220
|
+
|
|
215
221
|
|
|
216
|
-
//When suggestions length less than 5, getNextOptions function call
|
|
217
222
|
let {
|
|
218
223
|
isNextOptions,
|
|
219
224
|
getNextOptions
|
|
220
|
-
} = this.props;
|
|
221
|
-
|
|
225
|
+
} = this.props; // let { searchStr } = this.state;
|
|
226
|
+
|
|
222
227
|
let suggestions = isPopupOpen ? this.handleFilterSuggestions() : [];
|
|
223
228
|
let suggestionsLen = suggestions.length;
|
|
229
|
+
|
|
224
230
|
if (isPopupOpen && suggestionsLen <= 5 && isNextOptions && getNextOptions && !needLocalSearch) {
|
|
225
231
|
this.handleFetchOptions(getNextOptions, searchStr);
|
|
226
232
|
}
|
|
227
233
|
}
|
|
234
|
+
|
|
228
235
|
componentWillUnmount() {
|
|
229
236
|
this._isMounted = false;
|
|
230
237
|
let {
|
|
@@ -236,8 +243,7 @@ export class SelectComponent extends Component {
|
|
|
236
243
|
closePopup: null,
|
|
237
244
|
togglePopup: null
|
|
238
245
|
};
|
|
239
|
-
getPopupHandlers && getPopupHandlers(methods);
|
|
240
|
-
// let { suggestionContainer } = this;
|
|
246
|
+
getPopupHandlers && getPopupHandlers(methods); // let { suggestionContainer } = this;
|
|
241
247
|
// suggestionContainer &&
|
|
242
248
|
// suggestionContainer.removeEventListener('scroll', this.handleScroll);
|
|
243
249
|
}
|
|
@@ -259,6 +265,7 @@ export class SelectComponent extends Component {
|
|
|
259
265
|
listItemProps
|
|
260
266
|
});
|
|
261
267
|
}
|
|
268
|
+
|
|
262
269
|
handleChange(id, value, index, e) {
|
|
263
270
|
e && e.preventDefault && e.preventDefault();
|
|
264
271
|
let {
|
|
@@ -269,10 +276,11 @@ export class SelectComponent extends Component {
|
|
|
269
276
|
let {
|
|
270
277
|
optionsNormalize
|
|
271
278
|
} = this.state;
|
|
272
|
-
!isReadOnly && onChange && onChange(id, optionsNormalize[id]);
|
|
273
|
-
|
|
279
|
+
!isReadOnly && onChange && onChange(id, optionsNormalize[id]); // this.valueInput && this.valueInput.focus({preventScroll:true});
|
|
280
|
+
|
|
274
281
|
needCloseOnSelect && this.handlePopupClose(e);
|
|
275
282
|
}
|
|
283
|
+
|
|
276
284
|
responsiveFunc(_ref) {
|
|
277
285
|
let {
|
|
278
286
|
mediaQueryOR
|
|
@@ -283,6 +291,7 @@ export class SelectComponent extends Component {
|
|
|
283
291
|
}])
|
|
284
292
|
};
|
|
285
293
|
}
|
|
294
|
+
|
|
286
295
|
handleKeyDown(e) {
|
|
287
296
|
let {
|
|
288
297
|
onChange,
|
|
@@ -300,35 +309,40 @@ export class SelectComponent extends Component {
|
|
|
300
309
|
let {
|
|
301
310
|
keyCode
|
|
302
311
|
} = e;
|
|
312
|
+
|
|
303
313
|
if (!isPopupOpen && !isPopupOpenOnEnter) {
|
|
304
314
|
onKeyDown && onKeyDown(e);
|
|
305
315
|
}
|
|
316
|
+
|
|
306
317
|
if (isPopupOpen && (keyCode === 38 || keyCode === 40 || keyCode === 13) && e.preventDefault) {
|
|
307
318
|
e.preventDefault(); //prevent body scroll and enter key prevent
|
|
308
319
|
} else if (!isPopupOpen && keyCode === 40) {
|
|
309
320
|
e.preventDefault(); //prevent body scroll
|
|
321
|
+
|
|
310
322
|
this.togglePopup(e);
|
|
311
323
|
}
|
|
324
|
+
|
|
312
325
|
if (keyCode === 38 && isPopupOpen && options.length) {
|
|
313
326
|
// eslint-disable-next-line
|
|
314
|
-
if (hoverIndex === 0) {
|
|
315
|
-
// hoverIndex = options.length - 1;
|
|
327
|
+
if (hoverIndex === 0) {// hoverIndex = options.length - 1;
|
|
316
328
|
} else {
|
|
317
329
|
hoverIndex -= 1;
|
|
318
330
|
}
|
|
331
|
+
|
|
319
332
|
this.setState({
|
|
320
333
|
hoverIndex
|
|
321
334
|
});
|
|
322
335
|
} else if (keyCode === 40 && isPopupOpen && options.length) {
|
|
323
336
|
// eslint-disable-next-line
|
|
324
|
-
if (hoverIndex === options.length - 1) {
|
|
325
|
-
// hoverIndex = 0;
|
|
337
|
+
if (hoverIndex === options.length - 1) {// hoverIndex = 0;
|
|
326
338
|
} else {
|
|
327
339
|
if (hoverIndex === options.length - 3) {
|
|
328
340
|
this.handleGetNextOptions();
|
|
329
341
|
}
|
|
342
|
+
|
|
330
343
|
hoverIndex += 1;
|
|
331
344
|
}
|
|
345
|
+
|
|
332
346
|
this.setState({
|
|
333
347
|
hoverIndex
|
|
334
348
|
});
|
|
@@ -337,32 +351,36 @@ export class SelectComponent extends Component {
|
|
|
337
351
|
let {
|
|
338
352
|
id
|
|
339
353
|
} = option || {};
|
|
354
|
+
|
|
340
355
|
if (isPopupReady && !getIsEmptyValue(id) && onChange) {
|
|
341
356
|
onChange(id, optionsNormalize[id]);
|
|
342
357
|
needCloseOnSelect && this.handlePopupClose(e);
|
|
343
358
|
}
|
|
359
|
+
|
|
344
360
|
if (!isPopupReady && isPopupOpenOnEnter) {
|
|
345
361
|
this.togglePopup(e);
|
|
346
362
|
}
|
|
347
363
|
} else if (keyCode === 27) {
|
|
348
364
|
this.valueInput && this.valueInput.focus({
|
|
349
365
|
preventScroll: true
|
|
350
|
-
});
|
|
351
|
-
//this.handlePopupClose(e);
|
|
366
|
+
}); //this.handlePopupClose(e);
|
|
352
367
|
} else if (keyCode === 9) {
|
|
353
368
|
let option = options[hoverIndex];
|
|
354
369
|
let {
|
|
355
370
|
id
|
|
356
371
|
} = option || {};
|
|
372
|
+
|
|
357
373
|
if (isPopupOpen && !getIsEmptyValue(id)) {
|
|
358
374
|
onChange && onChange(id, optionsNormalize[id]);
|
|
359
375
|
needCloseOnSelect && this.handlePopupClose(e);
|
|
360
376
|
}
|
|
377
|
+
|
|
361
378
|
if (!isPopupOpen && isPopupOpenOnEnter) {
|
|
362
379
|
this.togglePopup(e);
|
|
363
380
|
}
|
|
364
381
|
}
|
|
365
382
|
}
|
|
383
|
+
|
|
366
384
|
handleSearchOptions() {
|
|
367
385
|
let {
|
|
368
386
|
onSearch
|
|
@@ -372,6 +390,7 @@ export class SelectComponent extends Component {
|
|
|
372
390
|
} = this.state;
|
|
373
391
|
searchStr && this.handleFetchOptions(onSearch, searchStr);
|
|
374
392
|
}
|
|
393
|
+
|
|
375
394
|
handleSearch(value) {
|
|
376
395
|
// let { value = '' } = e.target;
|
|
377
396
|
let {
|
|
@@ -394,7 +413,10 @@ export class SelectComponent extends Component {
|
|
|
394
413
|
}
|
|
395
414
|
});
|
|
396
415
|
}
|
|
397
|
-
|
|
416
|
+
|
|
417
|
+
handleMouseEnter(id
|
|
418
|
+
/*val, index*/
|
|
419
|
+
) {
|
|
398
420
|
let {
|
|
399
421
|
hoverIndex
|
|
400
422
|
} = this.state;
|
|
@@ -406,21 +428,21 @@ export class SelectComponent extends Component {
|
|
|
406
428
|
hoverIndex: newHoverIndex
|
|
407
429
|
});
|
|
408
430
|
}
|
|
431
|
+
|
|
409
432
|
handleFilterSuggestions() {
|
|
410
433
|
let {
|
|
411
434
|
needLocalSearch,
|
|
412
|
-
excludeOptions = dummyArray
|
|
413
|
-
|
|
435
|
+
excludeOptions = dummyArray // needSearch
|
|
436
|
+
|
|
414
437
|
} = this.props;
|
|
415
438
|
let {
|
|
416
439
|
options = dummyArray,
|
|
417
440
|
searchStr = ''
|
|
418
|
-
} = this.state;
|
|
419
|
-
|
|
420
|
-
// if (
|
|
441
|
+
} = this.state; // if (
|
|
421
442
|
// (needSearch && searchStr && searchStr.trim().length) ||
|
|
422
443
|
// (excludeOptions && excludeOptions.length)
|
|
423
444
|
// ) {
|
|
445
|
+
|
|
424
446
|
searchStr = getSearchString(searchStr);
|
|
425
447
|
let {
|
|
426
448
|
suggestions,
|
|
@@ -432,8 +454,7 @@ export class SelectComponent extends Component {
|
|
|
432
454
|
needSearch: needLocalSearch
|
|
433
455
|
});
|
|
434
456
|
this.optionsOrder = suggestionIds;
|
|
435
|
-
return suggestions;
|
|
436
|
-
// }
|
|
457
|
+
return suggestions; // }
|
|
437
458
|
// return options;
|
|
438
459
|
}
|
|
439
460
|
|
|
@@ -442,6 +463,7 @@ export class SelectComponent extends Component {
|
|
|
442
463
|
let isScrollReachedBottom = findScrollEnd(ele);
|
|
443
464
|
isScrollReachedBottom && this.handleGetNextOptions();
|
|
444
465
|
}
|
|
466
|
+
|
|
445
467
|
handleFetchOptions(APICall) {
|
|
446
468
|
let searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
447
469
|
// let funcArgs = args.slice(1, args.length);
|
|
@@ -451,10 +473,12 @@ export class SelectComponent extends Component {
|
|
|
451
473
|
let {
|
|
452
474
|
_isMounted
|
|
453
475
|
} = this;
|
|
476
|
+
|
|
454
477
|
if (!isFetchingOptions && APICall) {
|
|
455
478
|
this.setState({
|
|
456
479
|
isFetchingOptions: true
|
|
457
480
|
});
|
|
481
|
+
|
|
458
482
|
try {
|
|
459
483
|
return APICall(searchStr).then(() => {
|
|
460
484
|
_isMounted && this.setState({
|
|
@@ -472,6 +496,7 @@ export class SelectComponent extends Component {
|
|
|
472
496
|
}
|
|
473
497
|
}
|
|
474
498
|
}
|
|
499
|
+
|
|
475
500
|
handleGetNextOptions() {
|
|
476
501
|
let {
|
|
477
502
|
isNextOptions,
|
|
@@ -482,6 +507,7 @@ export class SelectComponent extends Component {
|
|
|
482
507
|
} = this.state;
|
|
483
508
|
isNextOptions && getNextOptions && this.handleFetchOptions(getNextOptions, searchStr);
|
|
484
509
|
}
|
|
510
|
+
|
|
485
511
|
togglePopup(e) {
|
|
486
512
|
let {
|
|
487
513
|
togglePopup,
|
|
@@ -493,6 +519,7 @@ export class SelectComponent extends Component {
|
|
|
493
519
|
!isReadOnly && togglePopup(e, defaultDropBoxPosition ? `${defaultDropBoxPosition}` : null);
|
|
494
520
|
!isPopupOpen && typeof onFocus === 'function' && onFocus(e);
|
|
495
521
|
}
|
|
522
|
+
|
|
496
523
|
handlePopupClose(e) {
|
|
497
524
|
let {
|
|
498
525
|
closePopupOnly
|
|
@@ -502,15 +529,19 @@ export class SelectComponent extends Component {
|
|
|
502
529
|
});
|
|
503
530
|
closePopupOnly(e);
|
|
504
531
|
}
|
|
532
|
+
|
|
505
533
|
suggestionContainerRef(el) {
|
|
506
534
|
this.suggestionContainer = el;
|
|
507
535
|
}
|
|
536
|
+
|
|
508
537
|
suggestionItemRef(el, index, id) {
|
|
509
538
|
this[`suggestion_${id}`] = el;
|
|
510
539
|
}
|
|
540
|
+
|
|
511
541
|
searchInputRef(el) {
|
|
512
542
|
this.searchInput = el;
|
|
513
543
|
}
|
|
544
|
+
|
|
514
545
|
valueInputRef(el) {
|
|
515
546
|
let {
|
|
516
547
|
getRef
|
|
@@ -518,12 +549,14 @@ export class SelectComponent extends Component {
|
|
|
518
549
|
this.valueInput = el;
|
|
519
550
|
getRef && getRef(el);
|
|
520
551
|
}
|
|
552
|
+
|
|
521
553
|
handleSelectFocus() {
|
|
522
554
|
let {
|
|
523
555
|
valueInput
|
|
524
556
|
} = this;
|
|
525
557
|
valueInput && valueInput.setSelectionRange(valueInput, 0);
|
|
526
558
|
}
|
|
559
|
+
|
|
527
560
|
handleClearSearch() {
|
|
528
561
|
this.handleSearch('');
|
|
529
562
|
setTimeout(() => {
|
|
@@ -532,17 +565,20 @@ export class SelectComponent extends Component {
|
|
|
532
565
|
});
|
|
533
566
|
}, 1);
|
|
534
567
|
}
|
|
568
|
+
|
|
535
569
|
handleValueInputChange(e) {
|
|
536
570
|
let typeString = getKeyValue(e);
|
|
537
571
|
let {
|
|
538
572
|
isPopupOpen,
|
|
539
573
|
autoSelectOnType
|
|
540
574
|
} = this.props;
|
|
575
|
+
|
|
541
576
|
if (!isPopupOpen && autoSelectOnType) {
|
|
542
577
|
this.valueInputTypeString += (typeString || '').trim();
|
|
543
578
|
this.handleChangeOnType();
|
|
544
579
|
}
|
|
545
580
|
}
|
|
581
|
+
|
|
546
582
|
handleChangeOnType() {
|
|
547
583
|
let {
|
|
548
584
|
excludeOptions = dummyArray
|
|
@@ -555,11 +591,13 @@ export class SelectComponent extends Component {
|
|
|
555
591
|
} = this;
|
|
556
592
|
let typeString = this.valueInputTypeString;
|
|
557
593
|
this.valueInputTypeString = '';
|
|
594
|
+
|
|
558
595
|
let changeValue = () => {
|
|
559
596
|
let optionDetails = this.autoSelectSuggestions[this.autoSelectIndex];
|
|
560
597
|
let {
|
|
561
598
|
id
|
|
562
599
|
} = optionDetails || {};
|
|
600
|
+
|
|
563
601
|
if (!getIsEmptyValue(id)) {
|
|
564
602
|
this.handleChange(id);
|
|
565
603
|
let hoverIndex = optionsOrder.indexOf(id);
|
|
@@ -568,12 +606,14 @@ export class SelectComponent extends Component {
|
|
|
568
606
|
});
|
|
569
607
|
}
|
|
570
608
|
};
|
|
609
|
+
|
|
571
610
|
if (typeString && typeString === this.valueInputSearchString) {
|
|
572
611
|
if (this.autoSelectIndex < this.autoSelectSuggestions.length - 1) {
|
|
573
612
|
this.autoSelectIndex += 1;
|
|
574
613
|
} else {
|
|
575
614
|
this.autoSelectIndex = 0;
|
|
576
615
|
}
|
|
616
|
+
|
|
577
617
|
changeValue();
|
|
578
618
|
} else if (typeString) {
|
|
579
619
|
this.valueInputSearchString = typeString;
|
|
@@ -591,6 +631,7 @@ export class SelectComponent extends Component {
|
|
|
591
631
|
changeValue();
|
|
592
632
|
}
|
|
593
633
|
}
|
|
634
|
+
|
|
594
635
|
handleAddNewOption() {
|
|
595
636
|
let {
|
|
596
637
|
searchStr
|
|
@@ -599,6 +640,7 @@ export class SelectComponent extends Component {
|
|
|
599
640
|
onAddNewOption,
|
|
600
641
|
getCustomEmptyState
|
|
601
642
|
} = this.props;
|
|
643
|
+
|
|
602
644
|
if (getCustomEmptyState) {
|
|
603
645
|
this.setState({
|
|
604
646
|
searchStr: ''
|
|
@@ -606,6 +648,7 @@ export class SelectComponent extends Component {
|
|
|
606
648
|
this.handleFetchOptions(onAddNewOption, searchStr);
|
|
607
649
|
}
|
|
608
650
|
}
|
|
651
|
+
|
|
609
652
|
handleExposePopupHandlers() {
|
|
610
653
|
let {
|
|
611
654
|
removeClose,
|
|
@@ -622,6 +665,7 @@ export class SelectComponent extends Component {
|
|
|
622
665
|
};
|
|
623
666
|
getPopupHandlers && getPopupHandlers(methods);
|
|
624
667
|
}
|
|
668
|
+
|
|
625
669
|
handleGetAddNewOptionText() {
|
|
626
670
|
let {
|
|
627
671
|
searchStr
|
|
@@ -634,6 +678,7 @@ export class SelectComponent extends Component {
|
|
|
634
678
|
onAddNewOption: this.handleAddNewOption
|
|
635
679
|
});
|
|
636
680
|
}
|
|
681
|
+
|
|
637
682
|
render() {
|
|
638
683
|
let {
|
|
639
684
|
needSearch,
|
|
@@ -909,6 +954,7 @@ export class SelectComponent extends Component {
|
|
|
909
954
|
}, getChildren())));
|
|
910
955
|
}) : null);
|
|
911
956
|
}
|
|
957
|
+
|
|
912
958
|
}
|
|
913
959
|
SelectComponent.propTypes = Select_propTypes;
|
|
914
960
|
SelectComponent.defaultProps = Select_defaultProps;
|
|
@@ -917,9 +963,7 @@ let Select = Popup(SelectComponent);
|
|
|
917
963
|
Select.defaultProps = SelectComponent.defaultProps;
|
|
918
964
|
Select.propTypes = Select_propTypes;
|
|
919
965
|
Select.displayName = 'Select';
|
|
920
|
-
export default Select;
|
|
921
|
-
|
|
922
|
-
// if (__DOCS__) {
|
|
966
|
+
export default Select; // if (__DOCS__) {
|
|
923
967
|
// Select.docs = {
|
|
924
968
|
// componentGroup: 'Form Elements',
|
|
925
969
|
// folderName: 'Style Guide',
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { SelectWithAvatar_defaultProps } from './props/defaultProps';
|
|
4
4
|
import { SelectWithAvatar_propTypes } from './props/propTypes';
|
|
5
5
|
/**** Components ****/
|
|
6
|
+
|
|
6
7
|
import { SelectComponent } from './Select';
|
|
7
8
|
import Popup from '../Popup/Popup';
|
|
8
9
|
import Tag from '../Tag/Tag';
|
|
@@ -17,10 +18,11 @@ import { getUniqueId } from '../../Provider/IdProvider';
|
|
|
17
18
|
import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
|
|
18
19
|
import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
|
|
19
20
|
import Loader from '@zohodesk/svg/lib/Loader/Loader';
|
|
20
|
-
|
|
21
21
|
/**** CSS ****/
|
|
22
|
+
|
|
22
23
|
import style from '../../MultiSelect/MultiSelect.module.css';
|
|
23
24
|
import selectStyle from '../../Select/Select.module.css';
|
|
25
|
+
|
|
24
26
|
class SelectWithAvatarComponent extends SelectComponent {
|
|
25
27
|
constructor(props) {
|
|
26
28
|
super(props);
|
|
@@ -32,6 +34,7 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
32
34
|
this.handleRemoveOption = this.handleRemoveOption.bind(this);
|
|
33
35
|
this.getNextAriaId = getUniqueId(this);
|
|
34
36
|
}
|
|
37
|
+
|
|
35
38
|
handleFormatOptions(props) {
|
|
36
39
|
let {
|
|
37
40
|
options,
|
|
@@ -47,15 +50,18 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
47
50
|
optionType: 'avatar'
|
|
48
51
|
});
|
|
49
52
|
}
|
|
53
|
+
|
|
50
54
|
handleActive(e) {
|
|
51
55
|
let {
|
|
52
56
|
isActive
|
|
53
57
|
} = this.state;
|
|
58
|
+
|
|
54
59
|
if (!isActive) {
|
|
55
60
|
this.setState({
|
|
56
61
|
isActive: true
|
|
57
62
|
});
|
|
58
63
|
}
|
|
64
|
+
|
|
59
65
|
let {
|
|
60
66
|
target
|
|
61
67
|
} = e || {};
|
|
@@ -65,16 +71,19 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
65
71
|
} = this.props;
|
|
66
72
|
onFocus && onFocus(this.state.searchStr);
|
|
67
73
|
}
|
|
74
|
+
|
|
68
75
|
handleInactive() {
|
|
69
76
|
let {
|
|
70
77
|
isActive
|
|
71
78
|
} = this.state;
|
|
79
|
+
|
|
72
80
|
if (isActive) {
|
|
73
81
|
this.setState({
|
|
74
82
|
isActive: false
|
|
75
83
|
});
|
|
76
84
|
}
|
|
77
85
|
}
|
|
86
|
+
|
|
78
87
|
handleSearchChange(e) {
|
|
79
88
|
let {
|
|
80
89
|
isPopupOpen
|
|
@@ -82,6 +91,7 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
82
91
|
!isPopupOpen && this.togglePopup(e);
|
|
83
92
|
this.handleSearch(e);
|
|
84
93
|
}
|
|
94
|
+
|
|
85
95
|
handleRemoveOption(e) {
|
|
86
96
|
let {
|
|
87
97
|
keyCode
|
|
@@ -92,12 +102,14 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
92
102
|
let {
|
|
93
103
|
isDefaultSelectValue
|
|
94
104
|
} = this.props;
|
|
105
|
+
|
|
95
106
|
if (keyCode === 8 && searchStr.length === 0 && !isDefaultSelectValue) {
|
|
96
107
|
this.handleChange('');
|
|
97
108
|
} else {
|
|
98
109
|
this.handleKeyDown(e);
|
|
99
110
|
}
|
|
100
111
|
}
|
|
112
|
+
|
|
101
113
|
responsiveFunc(_ref) {
|
|
102
114
|
let {
|
|
103
115
|
mediaQueryOR
|
|
@@ -108,6 +120,7 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
108
120
|
}])
|
|
109
121
|
};
|
|
110
122
|
}
|
|
123
|
+
|
|
111
124
|
render() {
|
|
112
125
|
let {
|
|
113
126
|
dropBoxSize,
|
|
@@ -311,15 +324,15 @@ class SelectWithAvatarComponent extends SelectComponent {
|
|
|
311
324
|
}, /*#__PURE__*/React.createElement(Loader, null))))));
|
|
312
325
|
}) : null);
|
|
313
326
|
}
|
|
327
|
+
|
|
314
328
|
}
|
|
329
|
+
|
|
315
330
|
SelectWithAvatarComponent.propTypes = SelectWithAvatar_propTypes;
|
|
316
331
|
SelectWithAvatarComponent.defaultProps = SelectWithAvatar_defaultProps;
|
|
317
332
|
SelectWithAvatarComponent.displayName = 'SelectWithAvatar';
|
|
318
333
|
let SelectWithAvatar = Popup(SelectWithAvatarComponent);
|
|
319
334
|
SelectWithAvatar.defaultProps = SelectWithAvatarComponent.defaultProps;
|
|
320
|
-
SelectWithAvatar.propTypes = SelectWithAvatarComponent.propTypes;
|
|
321
|
-
|
|
322
|
-
// if (__DOCS__) {
|
|
335
|
+
SelectWithAvatar.propTypes = SelectWithAvatarComponent.propTypes; // if (__DOCS__) {
|
|
323
336
|
// SelectWithAvatar.docs = {
|
|
324
337
|
// componentGroup: 'Form Elements',
|
|
325
338
|
// folderName: 'Style Guide'
|