@zohodesk/components 1.0.0-alpha-269 → 1.0.0-alpha-271
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 +16 -0
- package/es/Accordion/Accordion.js +3 -7
- package/es/Accordion/AccordionItem.js +2 -4
- package/es/Animation/Animation.js +3 -3
- package/es/AppContainer/AppContainer.js +5 -13
- package/es/AppContainer/AppContainer.module.css +2 -2
- package/es/Avatar/Avatar.js +11 -23
- 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/Button/Button.js +3 -4
- package/es/Button/css/Button.module.css +70 -70
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/Buttongroup.module.css +15 -14
- package/es/Card/Card.js +10 -21
- package/es/CheckBox/CheckBox.js +3 -5
- package/es/CheckBox/CheckBox.module.css +15 -15
- package/es/DateTime/CalendarView.js +20 -32
- package/es/DateTime/DateTime.js +6 -67
- package/es/DateTime/DateTime.module.css +39 -39
- package/es/DateTime/DateTimePopupFooter.js +2 -4
- package/es/DateTime/DateTimePopupHeader.js +2 -8
- package/es/DateTime/DateWidget.js +35 -98
- package/es/DateTime/DateWidget.module.css +5 -5
- package/es/DateTime/DaysRow.js +2 -4
- package/es/DateTime/Time.js +2 -10
- package/es/DateTime/YearView.js +4 -28
- package/es/DateTime/YearView.module.css +15 -15
- package/es/DateTime/__tests__/CalendarView.spec.js +0 -1
- package/es/DateTime/__tests__/DateTime.spec.js +0 -1
- package/es/DateTime/__tests__/DateWidget.spec.js +3 -2
- package/es/DateTime/common.js +0 -3
- package/es/DateTime/constants.js +0 -1
- package/es/DateTime/dateFormatUtils/dateFormat.js +30 -63
- package/es/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/es/DateTime/dateFormatUtils/dayChange.js +4 -13
- package/es/DateTime/dateFormatUtils/index.js +2 -32
- package/es/DateTime/dateFormatUtils/monthChange.js +0 -8
- package/es/DateTime/dateFormatUtils/timeChange.js +6 -22
- package/es/DateTime/dateFormatUtils/yearChange.js +2 -11
- package/es/DateTime/objectUtils.js +20 -14
- package/es/DateTime/typeChecker.js +0 -3
- package/es/DateTime/validator.js +6 -58
- package/es/DropBox/DropBox.js +5 -9
- package/es/DropBox/DropBoxElement/DropBoxElement.js +8 -13
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -7
- package/es/DropBox/DropBoxElement/props/propTypes.js +1 -1
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +0 -3
- package/es/DropBox/__tests__/DropBox.spec.js +2 -2
- package/es/DropBox/css/DropBox.module.css +6 -6
- package/es/DropBox/props/defaultProps.js +2 -1
- package/es/DropBox/props/propTypes.js +2 -1
- package/es/DropDown/DropDown.js +4 -8
- package/es/DropDown/DropDown.module.css +2 -2
- package/es/DropDown/DropDownHeading.js +5 -4
- package/es/DropDown/DropDownHeading.module.css +6 -6
- package/es/DropDown/DropDownItem.js +0 -6
- package/es/DropDown/DropDownItem.module.css +12 -12
- package/es/DropDown/DropDownSearch.js +0 -4
- package/es/DropDown/DropDownSearch.module.css +3 -3
- package/es/DropDown/DropDownSeparator.js +0 -1
- package/es/DropDown/DropDownSeparator.module.css +2 -2
- package/es/DropDown/__tests__/DropDown.spec.js +2 -1
- package/es/Heading/Heading.js +3 -2
- package/es/Heading/Heading.module.css +2 -2
- package/es/Label/Label.js +3 -2
- package/es/Label/Label.module.css +5 -5
- package/es/Layout/Box.js +0 -13
- package/es/Layout/Container.js +1 -12
- package/es/Layout/Layout.module.css +15 -15
- package/es/Layout/index.js +2 -1
- package/es/ListItem/ListContainer.js +3 -8
- package/es/ListItem/ListItem.js +3 -9
- package/es/ListItem/ListItem.module.css +38 -38
- package/es/ListItem/ListItemWithAvatar.js +3 -9
- package/es/ListItem/ListItemWithCheckBox.js +2 -7
- package/es/ListItem/ListItemWithIcon.js +3 -8
- package/es/ListItem/ListItemWithRadio.js +3 -7
- package/es/Modal/Modal.js +11 -28
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +13 -89
- package/es/MultiSelect/AdvancedMultiSelect.js +9 -32
- package/es/MultiSelect/EmptyState.js +0 -2
- package/es/MultiSelect/MultiSelect.js +32 -99
- package/es/MultiSelect/MultiSelect.module.css +31 -31
- package/es/MultiSelect/MultiSelectHeader.js +0 -3
- package/es/MultiSelect/MultiSelectWithAvatar.js +6 -12
- package/es/MultiSelect/SelectedOptions.js +3 -6
- package/es/MultiSelect/SelectedOptions.module.css +5 -5
- package/es/MultiSelect/Suggestions.js +3 -7
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +6 -4
- package/es/MultiSelect/props/propTypes.js +0 -2
- package/es/PopOver/PopOver.js +2 -18
- package/es/PopOver/__tests__/PopOver.spec.js +1 -2
- package/es/Popup/Popup.js +24 -77
- package/es/Popup/__tests__/Popup.spec.js +5 -17
- package/es/Popup/viewPort.js +4 -16
- package/es/Provider/IdProvider.js +5 -10
- package/es/Provider/LibraryContext.js +4 -6
- package/es/Provider/NumberGenerator/NumberGenerator.js +7 -21
- package/es/Provider/ZindexProvider.js +2 -9
- package/es/Radio/Radio.js +2 -4
- package/es/Radio/Radio.module.css +9 -9
- package/es/Responsive/CustomResponsive.js +18 -30
- package/es/Responsive/RefWrapper.js +7 -6
- package/es/Responsive/ResizeComponent.js +25 -35
- package/es/Responsive/ResizeObserver.js +6 -26
- package/es/Responsive/Responsive.js +20 -34
- package/es/Responsive/index.js +3 -1
- package/es/Responsive/sizeObservers.js +7 -28
- package/es/Responsive/utils/index.js +5 -7
- package/es/Responsive/utils/shallowCompare.js +2 -7
- package/es/Responsive/windowResizeObserver.js +0 -7
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +0 -4
- package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/es/Ribbon/Ribbon.js +2 -3
- package/es/Ribbon/Ribbon.module.css +48 -46
- package/es/RippleEffect/RippleEffect.js +3 -1
- package/es/Select/GroupSelect.js +14 -58
- package/es/Select/Select.js +33 -79
- package/es/Select/Select.module.css +23 -23
- package/es/Select/SelectWithAvatar.js +4 -17
- package/es/Select/SelectWithIcon.js +5 -46
- package/es/Select/__tests__/Select.spec.js +8 -6
- package/es/Select/props/propTypes.js +0 -1
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/Stencils.module.css +11 -11
- package/es/Switch/Switch.js +3 -5
- 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 +0 -1
- package/es/Tab/TabContentWrapper.js +0 -2
- package/es/Tab/TabWrapper.js +2 -5
- package/es/Tab/Tabs.js +7 -54
- package/es/Tab/Tabs.module.css +30 -37
- package/es/Tab/__tests__/Tab.spec.js +3 -1
- package/es/Tab/__tests__/TabWrapper.spec.js +0 -1
- package/es/Tag/Tag.js +3 -6
- package/es/Tag/Tag.module.css +25 -25
- package/es/TextBox/TextBox.js +3 -15
- package/es/TextBox/TextBox.module.css +9 -9
- package/es/TextBox/__tests__/TextBox.spec.js +4 -1
- package/es/TextBoxIcon/TextBoxIcon.js +2 -9
- package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +7 -2
- package/es/Textarea/Textarea.js +3 -12
- package/es/Textarea/Textarea.module.css +21 -21
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +14 -58
- package/es/Tooltip/Tooltip.module.css +5 -5
- package/es/Tooltip/__tests__/Tooltip.spec.js +0 -5
- package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +2 -3
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -7
- 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/AdvancedMultiSelect.module.css +18 -18
- package/es/deprecated/PortalLayer/PortalLayer.js +20 -25
- package/es/semantic/Button/Button.js +2 -3
- package/es/semantic/Button/semanticButton.module.css +1 -1
- package/es/utils/Common.js +13 -54
- package/es/utils/ContextOptimizer.js +5 -4
- package/es/utils/__tests__/debounce.spec.js +2 -2
- package/es/utils/constructFullName.js +0 -2
- package/es/utils/css/compileClassNames.js +0 -5
- package/es/utils/css/mergeStyle.js +7 -8
- package/es/utils/css/utils.js +0 -1
- package/es/utils/datetime/common.js +5 -16
- package/es/utils/debounce.js +1 -5
- package/es/utils/dropDownUtils.js +11 -68
- package/es/utils/getInitial.js +0 -4
- package/es/utils/shallowEqual.js +0 -6
- package/lib/Accordion/Accordion.js +18 -42
- package/lib/Accordion/AccordionItem.js +18 -40
- package/lib/Accordion/__tests__/Accordion.spec.js +0 -3
- package/lib/Accordion/index.js +0 -3
- package/lib/Accordion/props/propTypes.js +0 -3
- package/lib/Animation/Animation.js +18 -38
- package/lib/Animation/__tests__/Animation.spec.js +7 -11
- package/lib/Animation/props/propTypes.js +0 -3
- package/lib/AppContainer/AppContainer.js +21 -56
- package/lib/AppContainer/AppContainer.module.css +2 -2
- package/lib/AppContainer/props/propTypes.js +0 -3
- package/lib/Avatar/Avatar.js +38 -78
- package/lib/Avatar/Avatar.module.css +18 -18
- package/lib/Avatar/__tests__/Avatar.spec.js +0 -44
- package/lib/Avatar/props/propTypes.js +0 -3
- package/lib/AvatarTeam/AvatarTeam.js +30 -52
- package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +0 -13
- package/lib/AvatarTeam/props/propTypes.js +0 -3
- package/lib/Button/Button.js +20 -31
- package/lib/Button/css/Button.module.css +70 -70
- package/lib/Button/css/cssJSLogic.js +17 -18
- package/lib/Button/index.js +0 -3
- package/lib/Button/props/defaultProps.js +0 -2
- package/lib/Button/props/propTypes.js +0 -3
- package/lib/Buttongroup/Buttongroup.js +12 -32
- package/lib/Buttongroup/Buttongroup.module.css +15 -14
- package/lib/Buttongroup/__test__/Buttongroup.spec.js +0 -10
- package/lib/Buttongroup/props/propTypes.js +0 -3
- package/lib/Card/Card.js +46 -102
- package/lib/Card/__tests__/Card.spec.js +1 -10
- package/lib/Card/index.js +0 -4
- package/lib/Card/props/propTypes.js +0 -3
- package/lib/CheckBox/CheckBox.js +47 -71
- package/lib/CheckBox/CheckBox.module.css +15 -15
- package/lib/CheckBox/__tests__/CheckBox.spec.js +0 -3
- package/lib/CheckBox/props/propTypes.js +0 -3
- package/lib/DateTime/CalendarView.js +42 -82
- package/lib/DateTime/DateTime.js +155 -239
- package/lib/DateTime/DateTime.module.css +39 -39
- package/lib/DateTime/DateTimePopupFooter.js +8 -31
- package/lib/DateTime/DateTimePopupHeader.js +17 -48
- package/lib/DateTime/DateWidget.js +250 -352
- package/lib/DateTime/DateWidget.module.css +5 -5
- package/lib/DateTime/DaysRow.js +5 -27
- package/lib/DateTime/Time.js +32 -73
- package/lib/DateTime/YearView.js +28 -77
- package/lib/DateTime/YearView.module.css +15 -15
- package/lib/DateTime/__tests__/CalendarView.spec.js +5 -13
- package/lib/DateTime/__tests__/DateTime.spec.js +37 -51
- package/lib/DateTime/__tests__/DateWidget.spec.js +8 -10
- package/lib/DateTime/common.js +0 -6
- package/lib/DateTime/constants.js +0 -1
- package/lib/DateTime/dateFormatUtils/dateFormat.js +122 -184
- package/lib/DateTime/dateFormatUtils/dateFormats.js +1 -0
- package/lib/DateTime/dateFormatUtils/dayChange.js +7 -14
- package/lib/DateTime/dateFormatUtils/index.js +16 -74
- package/lib/DateTime/dateFormatUtils/monthChange.js +9 -19
- package/lib/DateTime/dateFormatUtils/timeChange.js +22 -54
- package/lib/DateTime/dateFormatUtils/yearChange.js +11 -22
- package/lib/DateTime/index.js +0 -2
- package/lib/DateTime/objectUtils.js +20 -24
- package/lib/DateTime/props/propTypes.js +1 -11
- package/lib/DateTime/typeChecker.js +0 -4
- package/lib/DateTime/validator.js +10 -73
- package/lib/DropBox/DropBox.js +12 -36
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +44 -63
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +35 -42
- package/lib/DropBox/DropBoxElement/props/propTypes.js +1 -4
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +9 -14
- package/lib/DropBox/__tests__/DropBox.spec.js +4 -8
- package/lib/DropBox/css/DropBox.module.css +6 -6
- package/lib/DropBox/css/cssJSLogic.js +1 -3
- package/lib/DropBox/props/defaultProps.js +4 -8
- package/lib/DropBox/props/propTypes.js +4 -10
- package/lib/DropDown/DropDown.js +8 -52
- package/lib/DropDown/DropDown.module.css +2 -2
- package/lib/DropDown/DropDownHeading.js +20 -39
- package/lib/DropDown/DropDownHeading.module.css +6 -6
- package/lib/DropDown/DropDownItem.js +20 -42
- package/lib/DropDown/DropDownItem.module.css +12 -12
- package/lib/DropDown/DropDownSearch.js +17 -40
- package/lib/DropDown/DropDownSearch.module.css +3 -3
- package/lib/DropDown/DropDownSeparator.js +4 -24
- package/lib/DropDown/DropDownSeparator.module.css +2 -2
- package/lib/DropDown/__tests__/DropDown.spec.js +9 -15
- package/lib/DropDown/__tests__/DropDownItem.spec.js +4 -9
- package/lib/DropDown/__tests__/DropDownSearch.spec.js +0 -3
- package/lib/DropDown/index.js +0 -9
- package/lib/DropDown/props/propTypes.js +4 -6
- package/lib/Heading/Heading.js +15 -37
- package/lib/Heading/Heading.module.css +2 -2
- package/lib/Heading/props/propTypes.js +0 -3
- package/lib/Label/Label.js +19 -39
- package/lib/Label/Label.module.css +5 -5
- package/lib/Label/__tests__/Label.spec.js +1 -14
- package/lib/Label/props/propTypes.js +0 -3
- package/lib/Layout/Box.js +11 -31
- package/lib/Layout/Container.js +10 -29
- package/lib/Layout/Layout.module.css +15 -15
- package/lib/Layout/__tests__/Box.spec.js +49 -65
- package/lib/Layout/__tests__/Container.spec.js +50 -67
- package/lib/Layout/index.js +0 -3
- package/lib/Layout/props/propTypes.js +0 -3
- package/lib/Layout/utils.js +0 -10
- package/lib/ListItem/ListContainer.js +27 -48
- package/lib/ListItem/ListItem.js +45 -69
- package/lib/ListItem/ListItem.module.css +38 -38
- package/lib/ListItem/ListItemWithAvatar.js +48 -75
- package/lib/ListItem/ListItemWithCheckBox.js +39 -64
- package/lib/ListItem/ListItemWithIcon.js +44 -68
- package/lib/ListItem/ListItemWithRadio.js +41 -65
- package/lib/ListItem/index.js +0 -7
- package/lib/ListItem/props/propTypes.js +4 -6
- package/lib/Modal/Modal.js +10 -45
- package/lib/Modal/props/propTypes.js +0 -3
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +166 -294
- package/lib/MultiSelect/AdvancedMultiSelect.js +125 -202
- package/lib/MultiSelect/EmptyState.js +24 -45
- package/lib/MultiSelect/MultiSelect.js +206 -323
- package/lib/MultiSelect/MultiSelect.module.css +31 -31
- package/lib/MultiSelect/MultiSelectHeader.js +8 -30
- package/lib/MultiSelect/MultiSelectWithAvatar.js +63 -105
- package/lib/MultiSelect/SelectedOptions.js +17 -43
- package/lib/MultiSelect/SelectedOptions.module.css +5 -5
- package/lib/MultiSelect/Suggestions.js +32 -64
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +75 -86
- package/lib/MultiSelect/index.js +0 -5
- package/lib/MultiSelect/props/defaultProps.js +0 -2
- package/lib/MultiSelect/props/propTypes.js +0 -5
- package/lib/PopOver/PopOver.js +49 -95
- package/lib/PopOver/__tests__/PopOver.spec.js +1 -4
- package/lib/PopOver/index.js +0 -4
- package/lib/PopOver/props/propTypes.js +0 -3
- package/lib/Popup/Popup.js +81 -158
- package/lib/Popup/__tests__/Popup.spec.js +8 -43
- package/lib/Popup/viewPort.js +14 -28
- package/lib/Provider/AvatarSize.js +0 -4
- package/lib/Provider/Config.js +0 -2
- package/lib/Provider/CssProvider.js +0 -4
- package/lib/Provider/IdProvider.js +6 -17
- package/lib/Provider/LibraryContext.js +15 -35
- package/lib/Provider/LibraryContextInit.js +0 -4
- package/lib/Provider/NumberGenerator/NumberGenerator.js +15 -44
- package/lib/Provider/ZindexProvider.js +3 -15
- package/lib/Provider/index.js +0 -5
- package/lib/Radio/Radio.js +38 -61
- package/lib/Radio/Radio.module.css +9 -9
- package/lib/Radio/__tests__/Radiospec.js +5 -9
- package/lib/Radio/props/propTypes.js +0 -3
- package/lib/Responsive/CustomResponsive.js +29 -73
- package/lib/Responsive/RefWrapper.js +11 -17
- package/lib/Responsive/ResizeComponent.js +36 -62
- package/lib/Responsive/ResizeObserver.js +10 -24
- package/lib/Responsive/Responsive.js +30 -80
- package/lib/Responsive/index.js +0 -4
- package/lib/Responsive/props/propTypes.js +0 -3
- package/lib/Responsive/sizeObservers.js +17 -53
- package/lib/Responsive/utils/index.js +3 -11
- package/lib/Responsive/utils/shallowCompare.js +2 -11
- package/lib/Responsive/windowResizeObserver.js +0 -8
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +17 -45
- package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +2 -2
- package/lib/ResponsiveDropBox/props/propTypes.js +0 -3
- package/lib/Ribbon/Ribbon.js +13 -33
- package/lib/Ribbon/Ribbon.module.css +48 -46
- package/lib/Ribbon/__tests__/Ribbon.spec.js +0 -22
- package/lib/Ribbon/props/propTypes.js +0 -3
- package/lib/RippleEffect/RippleEffect.js +10 -18
- package/lib/RippleEffect/props/propTypes.js +0 -3
- package/lib/Select/GroupSelect.js +130 -229
- package/lib/Select/Select.js +209 -290
- package/lib/Select/Select.module.css +23 -23
- package/lib/Select/SelectWithAvatar.js +56 -102
- package/lib/Select/SelectWithIcon.js +76 -132
- package/lib/Select/__tests__/Select.spec.js +91 -133
- package/lib/Select/index.js +0 -5
- package/lib/Select/props/defaultProps.js +4 -5
- package/lib/Select/props/propTypes.js +0 -4
- package/lib/Stencils/Stencils.js +10 -29
- package/lib/Stencils/Stencils.module.css +11 -11
- package/lib/Stencils/__tests__/Stencils.spec.js +0 -12
- package/lib/Stencils/props/propTypes.js +0 -3
- package/lib/Switch/Switch.js +34 -57
- package/lib/Switch/Switch.module.css +23 -23
- package/lib/Switch/props/propTypes.js +0 -3
- package/lib/Tab/Tab.js +27 -40
- package/lib/Tab/Tab.module.css +14 -14
- package/lib/Tab/TabContent.js +5 -12
- package/lib/Tab/TabContentWrapper.js +6 -13
- package/lib/Tab/TabWrapper.js +19 -37
- package/lib/Tab/Tabs.js +91 -171
- package/lib/Tab/Tabs.module.css +30 -37
- package/lib/Tab/__tests__/Tab.spec.js +58 -67
- package/lib/Tab/__tests__/TabContent.spec.js +6 -10
- package/lib/Tab/__tests__/TabContentWrapper.spec.js +20 -28
- package/lib/Tab/__tests__/TabWrapper.spec.js +0 -12
- package/lib/Tab/__tests__/Tabs.spec.js +39 -53
- package/lib/Tab/index.js +0 -6
- package/lib/Tab/props/propTypes.js +0 -3
- package/lib/Tag/Tag.js +43 -72
- package/lib/Tag/Tag.module.css +25 -25
- package/lib/Tag/__tests__/Tag.spec.js +8 -14
- package/lib/Tag/props/propTypes.js +0 -3
- package/lib/TextBox/TextBox.js +59 -85
- package/lib/TextBox/TextBox.module.css +9 -9
- package/lib/TextBox/__tests__/TextBox.spec.js +4 -14
- package/lib/TextBox/props/propTypes.js +4 -6
- package/lib/TextBoxIcon/TextBoxIcon.js +52 -79
- package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +5 -14
- package/lib/TextBoxIcon/props/propTypes.js +0 -3
- package/lib/Textarea/Textarea.js +29 -54
- package/lib/Textarea/Textarea.module.css +21 -21
- package/lib/Textarea/__tests__/Textarea.spec.js +2 -14
- package/lib/Textarea/props/propTypes.js +0 -3
- package/lib/Tooltip/Tooltip.js +31 -94
- package/lib/Tooltip/Tooltip.module.css +5 -5
- package/lib/Tooltip/__tests__/Tooltip.spec.js +3 -24
- package/lib/Tooltip/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +16 -40
- package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +25 -53
- package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +0 -3
- package/lib/VelocityAnimation/index.js +0 -3
- 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 +0 -40
- package/lib/deprecated/AdvancedMultiSelect.module.css +18 -18
- package/lib/deprecated/PortalLayer/PortalLayer.js +23 -46
- package/lib/deprecated/PortalLayer/props/propTypes.js +0 -3
- package/lib/index.js +0 -57
- package/lib/semantic/Button/Button.js +22 -42
- package/lib/semantic/Button/props/propTypes.js +0 -3
- package/lib/semantic/Button/semanticButton.module.css +1 -1
- package/lib/semantic/index.js +0 -2
- package/lib/utils/Common.js +25 -109
- package/lib/utils/ContextOptimizer.js +10 -16
- package/lib/utils/__tests__/constructFullName.spec.js +0 -1
- package/lib/utils/__tests__/debounce.spec.js +2 -3
- package/lib/utils/__tests__/getInitial.spec.js +0 -1
- package/lib/utils/constructFullName.js +4 -13
- package/lib/utils/css/compileClassNames.js +0 -6
- package/lib/utils/css/mergeStyle.js +8 -11
- package/lib/utils/css/utils.js +0 -8
- package/lib/utils/datetime/common.js +5 -32
- package/lib/utils/debounce.js +1 -6
- package/lib/utils/dropDownUtils.js +59 -175
- package/lib/utils/dummyFunction.js +0 -2
- package/lib/utils/getHTMLFontSize.js +0 -1
- package/lib/utils/getInitial.js +0 -6
- package/lib/utils/index.js +0 -4
- package/lib/utils/scrollTo.js +0 -2
- package/lib/utils/shallowEqual.js +0 -8
- package/package.json +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/** ** Libraries *** */
|
|
2
2
|
import { useContext, useRef } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import shallowEqual from './shallowEqual';
|
|
4
|
+
import shallowEqual from './shallowEqual';
|
|
5
|
+
|
|
6
|
+
// Please use this component with children as inline function for force this components rerender when parent rerender regardless of reason
|
|
5
7
|
// Because below componends only rerender when children or calculation are changed, unless no changes will update below
|
|
8
|
+
|
|
6
9
|
// this component logic based on return same children reference to stop rerender.
|
|
7
10
|
// Think before change logic
|
|
8
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
9
11
|
|
|
12
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
10
13
|
export function ContextOptimizer(props) {
|
|
11
14
|
const {
|
|
12
15
|
Context,
|
|
@@ -22,13 +25,11 @@ export function ContextOptimizer(props) {
|
|
|
22
25
|
data: null,
|
|
23
26
|
renderF: null
|
|
24
27
|
});
|
|
25
|
-
|
|
26
28
|
if (!shallowEqual(data, local.data) || local.renderF !== renderF) {
|
|
27
29
|
local.children = renderF(data);
|
|
28
30
|
local.data = data;
|
|
29
31
|
local.renderF = renderF;
|
|
30
32
|
}
|
|
31
|
-
|
|
32
33
|
return local.children;
|
|
33
34
|
}
|
|
34
35
|
ContextOptimizer.propTypes = {
|
|
@@ -6,8 +6,8 @@ describe('debounce specification', () => {
|
|
|
6
6
|
it('should call immediate', () => {
|
|
7
7
|
const mockfn = jest.fn();
|
|
8
8
|
const dMockfn = debounce(mockfn, 1000, true);
|
|
9
|
-
dMockfn();
|
|
10
|
-
|
|
9
|
+
dMockfn();
|
|
10
|
+
//expect(setTimeout).toHaveBeenCalledTimes(1);
|
|
11
11
|
expect(mockfn.mock.calls.length).toBe(1);
|
|
12
12
|
});
|
|
13
13
|
it('should call two times but it invoke multiple times', () => {
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
function constructFullName(firstName, lastName) {
|
|
2
2
|
return `${firstName ? `${firstName}${lastName ? ' ' : ''}` : ''}${lastName ? lastName : ''}`;
|
|
3
3
|
}
|
|
4
|
-
|
|
5
4
|
export function constructFullNameByPattern(firstName, lastName, namePattern) {
|
|
6
5
|
let [name0, name1] = namePattern;
|
|
7
|
-
|
|
8
6
|
if (name0 === 'FIRST_NAME' && name1 === 'LAST_NAME') {
|
|
9
7
|
return constructFullName(firstName, lastName);
|
|
10
8
|
} else if (name0 === 'LAST_NAME' && name1 === 'FIRST_NAME') {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { dataTypes, isDataTypeOf } from './utils';
|
|
2
|
-
|
|
3
2
|
const collectClassNames = function (processedClassNameList) {
|
|
4
3
|
for (let index = 0; index < (arguments.length <= 1 ? 0 : arguments.length - 1); index++) {
|
|
5
4
|
let classInfo = index + 1 < 1 || arguments.length <= index + 1 ? undefined : arguments[index + 1];
|
|
6
|
-
|
|
7
5
|
if (!classInfo) {
|
|
8
6
|
continue;
|
|
9
7
|
} else if (isDataTypeOf(classInfo, dataTypes.object)) {
|
|
@@ -15,14 +13,11 @@ const collectClassNames = function (processedClassNameList) {
|
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
};
|
|
18
|
-
|
|
19
16
|
export default function compileClassNames() {
|
|
20
17
|
let resultClassNameList = [];
|
|
21
|
-
|
|
22
18
|
for (var _len = arguments.length, classinfoList = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
23
19
|
classinfoList[_key] = arguments[_key];
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
collectClassNames(resultClassNameList, ...classinfoList);
|
|
27
22
|
return resultClassNameList.filter(a => a !== '').join(' ');
|
|
28
23
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
const REPLACER_SYMBOL = '$';
|
|
1
|
+
const REPLACER_SYMBOL = '$';
|
|
2
|
+
|
|
3
|
+
// $ startWith is used for replace the existing style.
|
|
2
4
|
// all other will be append
|
|
3
5
|
|
|
4
6
|
export default function mergeStyle(defaultStyle) {
|
|
@@ -7,16 +9,15 @@ export default function mergeStyle(defaultStyle) {
|
|
|
7
9
|
// if(!Object.keys(defaultStyle).includes('base')) {
|
|
8
10
|
// throw new Error(`STYLE CUSTOMIZATION RULE - Your style sheet should have "base" class name for customization`);
|
|
9
11
|
// }
|
|
12
|
+
|
|
10
13
|
return Object.keys(customStyle).reduce((res, next) => {
|
|
11
14
|
if (next.startsWith(REPLACER_SYMBOL)) {
|
|
12
15
|
let styleValue = customStyle[next];
|
|
13
16
|
let styleName = next.replace(REPLACER_SYMBOL, '');
|
|
14
|
-
|
|
15
17
|
if (!defaultStyle[styleName] && !additionalStyle.includes(styleName)) {
|
|
16
18
|
// return res;
|
|
17
19
|
throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${styleName}" is not available in that component style`);
|
|
18
20
|
}
|
|
19
|
-
|
|
20
21
|
if (additionalStyle.includes(styleName)) {
|
|
21
22
|
res[styleName] = styleValue;
|
|
22
23
|
} else {
|
|
@@ -25,7 +26,6 @@ export default function mergeStyle(defaultStyle) {
|
|
|
25
26
|
let styleKey = res[keyName];
|
|
26
27
|
let styleClasses = styleKey.split(' ');
|
|
27
28
|
let ind = styleClasses.indexOf(val);
|
|
28
|
-
|
|
29
29
|
if (ind !== -1) {
|
|
30
30
|
styleClasses[ind] = styleValue;
|
|
31
31
|
res[keyName] = styleClasses.join(' ');
|
|
@@ -38,7 +38,6 @@ export default function mergeStyle(defaultStyle) {
|
|
|
38
38
|
let styleKey = res[keyName];
|
|
39
39
|
let styleClasses = styleKey.split(' ');
|
|
40
40
|
let ind = styleClasses.indexOf(val);
|
|
41
|
-
|
|
42
41
|
if (ind !== -1) {
|
|
43
42
|
styleClasses[ind] = styleClasses[ind] + ' ' + customStyle[next];
|
|
44
43
|
res[keyName] = styleClasses.join(' ');
|
|
@@ -48,10 +47,10 @@ export default function mergeStyle(defaultStyle) {
|
|
|
48
47
|
res[next] = customStyle[next];
|
|
49
48
|
} else if (!defaultStyle[next] && !additionalStyle.includes(next)) {
|
|
50
49
|
// res[next] = customStyle[next];
|
|
51
|
-
`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style
|
|
50
|
+
throw new Error(`UNKNOWN CLASSNAME DETECTED - Given customStyle's key "${next}" is not available in that component style`);
|
|
52
51
|
}
|
|
53
|
-
|
|
54
52
|
return res;
|
|
55
|
-
}, {
|
|
53
|
+
}, {
|
|
54
|
+
...defaultStyle
|
|
56
55
|
});
|
|
57
56
|
}
|
package/es/utils/css/utils.js
CHANGED
|
@@ -56,7 +56,6 @@ export function formatDate(dateMill, mask) {
|
|
|
56
56
|
if (match in flags) {
|
|
57
57
|
return flags[match];
|
|
58
58
|
}
|
|
59
|
-
|
|
60
59
|
return match.slice(1, match.length - 1);
|
|
61
60
|
});
|
|
62
61
|
return dat;
|
|
@@ -71,7 +70,6 @@ export function replaceI18NValuesWithRegex(i18nStr, values) {
|
|
|
71
70
|
i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
|
-
|
|
75
73
|
return i18nStr;
|
|
76
74
|
}
|
|
77
75
|
export function unescapeUnicode(str) {
|
|
@@ -86,28 +84,25 @@ export function getI18NValue(i18n) {
|
|
|
86
84
|
if (typeof i18n === 'undefined') {
|
|
87
85
|
return key => key;
|
|
88
86
|
}
|
|
89
|
-
|
|
90
87
|
return (key, values) => {
|
|
91
88
|
let i18nStr = i18n[key];
|
|
92
|
-
|
|
93
89
|
if (i18nStr === undefined) {
|
|
94
90
|
return key;
|
|
95
91
|
}
|
|
96
|
-
|
|
97
92
|
i18nStr = replaceI18NValuesWithRegex(i18nStr, values);
|
|
98
93
|
return unescapeUnicode(i18nStr);
|
|
99
94
|
};
|
|
100
|
-
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// function getValues(params = [], diff) {
|
|
101
98
|
// return params.map(param => {
|
|
102
99
|
// return diff[param];
|
|
103
100
|
// });
|
|
104
101
|
// }
|
|
105
|
-
|
|
106
102
|
export function getI18NInfo(toDateObj, props, diffObj) {
|
|
107
103
|
let key = null,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
values,
|
|
105
|
+
text = null;
|
|
111
106
|
if (typeof props === 'function') {
|
|
112
107
|
let value = props(diffObj1);
|
|
113
108
|
key = value.key;
|
|
@@ -118,7 +113,6 @@ export function getI18NInfo(toDateObj, props, diffObj) {
|
|
|
118
113
|
} else if (typeof props === 'string') {
|
|
119
114
|
text = toDateObj.format(props);
|
|
120
115
|
}
|
|
121
|
-
|
|
122
116
|
return {
|
|
123
117
|
key,
|
|
124
118
|
values,
|
|
@@ -147,15 +141,12 @@ let oneYearInMillis = 31536000000;
|
|
|
147
141
|
let oneDayInMillis = 86400000;
|
|
148
142
|
let oneHourInMillis = 3600000;
|
|
149
143
|
let oneMinuteInMillis = 60000;
|
|
150
|
-
|
|
151
144
|
function convertAsNonExponential(number) {
|
|
152
145
|
if (number.toString().toLowerCase().indexOf('e') !== -1) {
|
|
153
146
|
return number.toFixed(20);
|
|
154
147
|
}
|
|
155
|
-
|
|
156
148
|
return number;
|
|
157
149
|
}
|
|
158
|
-
|
|
159
150
|
export function getDiffObj(diff) {
|
|
160
151
|
diff = Math.abs(diff);
|
|
161
152
|
let diffYears = diff / oneYearInMillis;
|
|
@@ -182,10 +173,8 @@ export function getDiffObj(diff) {
|
|
|
182
173
|
export function getMonthEnd(month, year) {
|
|
183
174
|
let monthend = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
184
175
|
let isLeapYear = year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
|
|
185
|
-
|
|
186
176
|
if (month === 1 && isLeapYear) {
|
|
187
177
|
return 29;
|
|
188
178
|
}
|
|
189
|
-
|
|
190
179
|
return monthend[month];
|
|
191
180
|
}
|
package/es/utils/debounce.js
CHANGED
|
@@ -2,20 +2,16 @@ export function debounce(func, wait, immediate) {
|
|
|
2
2
|
let timeout;
|
|
3
3
|
return function () {
|
|
4
4
|
let context = this,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
args = arguments;
|
|
7
6
|
let later = function () {
|
|
8
7
|
timeout = null;
|
|
9
|
-
|
|
10
8
|
if (!immediate) {
|
|
11
9
|
func.apply(context, args);
|
|
12
10
|
}
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
let callNow = immediate && !timeout;
|
|
16
13
|
clearTimeout(timeout);
|
|
17
14
|
timeout = setTimeout(later, wait);
|
|
18
|
-
|
|
19
15
|
if (callNow) {
|
|
20
16
|
func.apply(context, args);
|
|
21
17
|
}
|
|
@@ -4,42 +4,26 @@ import { getIsEmptyValue, getSearchString } from './Common';
|
|
|
4
4
|
export const dummyArray = [];
|
|
5
5
|
export const dummyObj = {};
|
|
6
6
|
export const getOptions = props => props.options || dummyArray;
|
|
7
|
-
|
|
8
7
|
const getOptionsOrder = props => props.optionsOrder || dummyArray;
|
|
9
|
-
|
|
10
8
|
const getSelectedOptionsSel = props => props.selectedOptions || dummyArray;
|
|
11
|
-
|
|
12
9
|
const getSearchStr = props => props.searchStr || '';
|
|
13
|
-
|
|
14
10
|
export const getValueField = props => props.valueField || '';
|
|
15
11
|
export const getTextField = props => props.textField || '';
|
|
16
12
|
export const getImageField = props => props.imageField || '';
|
|
17
13
|
export const getIconName = props => props.iconName || '';
|
|
18
14
|
export const getIconSize = props => props.iconSize || '';
|
|
19
15
|
export const getOptionType = props => props.optionType || '';
|
|
20
|
-
|
|
21
16
|
const getNeedSearch = props => props.needSearch;
|
|
22
|
-
|
|
23
17
|
const getIsDefaultSelectValue = props => props.isDefaultSelectValue;
|
|
24
|
-
|
|
25
18
|
const getSelectedOptionsLength = props => getIsEmptyValue(props.selectedOptionsLength) ? '' : props.selectedOptionsLength;
|
|
26
|
-
|
|
27
19
|
const getNormalizedFormatOptions = props => props.normalizedFormatOptions || dummyObj;
|
|
28
|
-
|
|
29
20
|
const getSelectedValue = props => getIsEmptyValue(props.selectedValue) ? '' : props.selectedValue;
|
|
30
|
-
|
|
31
21
|
const getSelectedFormatOptions = props => props.selectedFormatOptions || dummyObj;
|
|
32
|
-
|
|
33
22
|
export const getPrefixText = props => props.prefixText || '';
|
|
34
|
-
|
|
35
23
|
const getIsStartWithSearch = props => props.isStartsWithSearch;
|
|
36
|
-
|
|
37
24
|
const getKeepSelectedOptions = props => props.keepSelectedOptions;
|
|
38
|
-
|
|
39
25
|
const getDisabledOptions = props => props.disabledOptions || dummyArray;
|
|
40
|
-
|
|
41
26
|
const getListItemProps = props => props.listItemProps || '';
|
|
42
|
-
|
|
43
27
|
export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) => {
|
|
44
28
|
const suggestions = [];
|
|
45
29
|
const suggestionIds = [];
|
|
@@ -51,7 +35,6 @@ export const makeGetMultiSelectFilterSuggestions = () => createSelector([getOpti
|
|
|
51
35
|
const valueString = getSearchString(value);
|
|
52
36
|
const searchString = getSearchString(searchStr);
|
|
53
37
|
const isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
|
|
54
|
-
|
|
55
38
|
if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
|
|
56
39
|
suggestions.push(option);
|
|
57
40
|
suggestionIds.push(id);
|
|
@@ -66,11 +49,9 @@ export const optionIdGrouping = (id, prefixText) => {
|
|
|
66
49
|
if (getIsEmptyValue(id)) {
|
|
67
50
|
return '';
|
|
68
51
|
}
|
|
69
|
-
|
|
70
52
|
if (getIsEmptyValue(prefixText)) {
|
|
71
53
|
return id;
|
|
72
54
|
}
|
|
73
|
-
|
|
74
55
|
const prefixType = typeof prefixText === 'number' ? 'Int' : 'Str';
|
|
75
56
|
const idType = typeof id === 'number' ? 'Int' : 'Str';
|
|
76
57
|
return `${prefixType}_${prefixText}_${idType}_${id}`;
|
|
@@ -81,19 +62,15 @@ export const extractOptionId = id => {
|
|
|
81
62
|
id: ''
|
|
82
63
|
};
|
|
83
64
|
}
|
|
84
|
-
|
|
85
65
|
if (typeof id === 'number') {
|
|
86
66
|
return {
|
|
87
67
|
id
|
|
88
68
|
};
|
|
89
69
|
}
|
|
90
|
-
|
|
91
70
|
const splitedOption = id.split && id.split('_');
|
|
92
|
-
|
|
93
71
|
if (splitedOption.length === 1) {
|
|
94
72
|
return splitedOption[0];
|
|
95
73
|
}
|
|
96
|
-
|
|
97
74
|
if (splitedOption.length === 4) {
|
|
98
75
|
let [prefixType, prefixText, idType, id] = splitedOption;
|
|
99
76
|
id = idType === 'Int' ? Number.parseInt(id) : id;
|
|
@@ -123,10 +100,10 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
|
|
|
123
100
|
} = option;
|
|
124
101
|
let id = typeof option === 'object' ? option[impValueField || valueField] : option;
|
|
125
102
|
const value = typeof option === 'object' ? option[impTextField || textField] : option;
|
|
126
|
-
const photoURL = typeof option === 'object' ? option[impImageField || imageField] : '';
|
|
103
|
+
const photoURL = typeof option === 'object' ? option[impImageField || imageField] : '';
|
|
127
104
|
|
|
105
|
+
// grouping options (group select/MultiSelect)
|
|
128
106
|
id = !getIsEmptyValue(id) ? optionIdGrouping(id, prefixText) : '';
|
|
129
|
-
|
|
130
107
|
if (remvampOptionIds.indexOf(id) === -1 && !getIsEmptyValue(id) && !getIsEmptyValue(value)) {
|
|
131
108
|
remvampOptionIds.push(id);
|
|
132
109
|
const optionDetails = {
|
|
@@ -134,27 +111,21 @@ export const makeFormatOptions = () => createSelector([getOptions, getValueField
|
|
|
134
111
|
value,
|
|
135
112
|
optionType: impOptionType || optionType
|
|
136
113
|
};
|
|
137
|
-
|
|
138
114
|
if (imageField) {
|
|
139
115
|
optionDetails.photoURL = photoURL;
|
|
140
116
|
}
|
|
141
|
-
|
|
142
117
|
if (impIconName || iconName) {
|
|
143
118
|
optionDetails.icon = impIconName || iconName;
|
|
144
119
|
}
|
|
145
|
-
|
|
146
120
|
if (impIconSize || iconSize) {
|
|
147
121
|
optionDetails.iconSize = impIconSize || iconSize;
|
|
148
122
|
}
|
|
149
|
-
|
|
150
123
|
if (disabledOptions.length) {
|
|
151
124
|
optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
|
|
152
125
|
}
|
|
153
|
-
|
|
154
126
|
if (listStyle || listItemProps) {
|
|
155
127
|
optionDetails.listItemProps = listStyle || listItemProps;
|
|
156
128
|
}
|
|
157
|
-
|
|
158
129
|
normalizedFormatOptions[id] = optionDetails;
|
|
159
130
|
normalizedAllOptions[id] = option;
|
|
160
131
|
revampOptions.push(optionDetails);
|
|
@@ -173,13 +144,11 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
|
|
|
173
144
|
const revampSelectedOptions = [];
|
|
174
145
|
const normalizedSelectedOptions = {};
|
|
175
146
|
selectedOptionsLength = !getIsEmptyValue(selectedOptionsLength) ? selectedOptionsLength : selectedOptions.length;
|
|
176
|
-
|
|
177
147
|
for (let i = 0; i < selectedOptionsLength; i++) {
|
|
178
148
|
const option = selectedOptions[i];
|
|
179
149
|
const {
|
|
180
150
|
id
|
|
181
151
|
} = normalizedFormatOptions[option] || {};
|
|
182
|
-
|
|
183
152
|
if (revampSelectedOptions.indexOf(id) === -1 && !getIsEmptyValue(id)) {
|
|
184
153
|
revampSelectedOptions.push(id);
|
|
185
154
|
output.push(normalizedFormatOptions[option]);
|
|
@@ -194,7 +163,6 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
|
|
|
194
163
|
revampSelectedOptions.indexOf(option) === -1 ? revampSelectedOptions.push(option) : null;
|
|
195
164
|
}
|
|
196
165
|
}
|
|
197
|
-
|
|
198
166
|
return {
|
|
199
167
|
formatSelectedOptions: output,
|
|
200
168
|
normalizedSelectedOptions,
|
|
@@ -204,12 +172,10 @@ export const makeGetMultiSelectSelectedOptions = () => createSelector([getSelect
|
|
|
204
172
|
export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, getNormalizedFormatOptions, getSelectedValue, getSelectedFormatOptions, getIsDefaultSelectValue, getValueField, getTextField], (optionsOrder, normalizedFormatOptions, selectedValue, selectedFormatOptions, isDefaultSelectValue, valueField, textField) => {
|
|
205
173
|
let selectedValueIndex = optionsOrder.indexOf(selectedValue);
|
|
206
174
|
let isSelfValueChanged = false;
|
|
207
|
-
|
|
208
175
|
if (getIsEmptyValue(selectedValue) && isDefaultSelectValue) {
|
|
209
176
|
[selectedValue] = optionsOrder;
|
|
210
177
|
isSelfValueChanged = true;
|
|
211
178
|
}
|
|
212
|
-
|
|
213
179
|
const allOptions = Object.assign({}, selectedFormatOptions, normalizedFormatOptions);
|
|
214
180
|
const details = allOptions[selectedValue];
|
|
215
181
|
let hoverIndex = selectedValueIndex !== -1 ? selectedValueIndex : 0;
|
|
@@ -219,8 +185,9 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
|
|
|
219
185
|
let {
|
|
220
186
|
value: selectedValueText = '',
|
|
221
187
|
id: selectedId
|
|
222
|
-
} = details || dummyObj;
|
|
188
|
+
} = details || dummyObj;
|
|
223
189
|
|
|
190
|
+
//selectedValue is not included in options case
|
|
224
191
|
if (getIsEmptyValue(selectedId)) {
|
|
225
192
|
if (typeof selectedValue === 'object') {
|
|
226
193
|
const id = selectedValue[valueField];
|
|
@@ -238,7 +205,6 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
|
|
|
238
205
|
selectedId = selectedValue;
|
|
239
206
|
}
|
|
240
207
|
}
|
|
241
|
-
|
|
242
208
|
return {
|
|
243
209
|
selected: selectedValueText,
|
|
244
210
|
hoverIndex,
|
|
@@ -247,22 +213,17 @@ export const makeGetSelectedValueText = () => createSelector([getOptionsOrder, g
|
|
|
247
213
|
isSelfValueChanged
|
|
248
214
|
};
|
|
249
215
|
});
|
|
250
|
-
|
|
251
216
|
const getObj1 = props => props.obj1 || dummyObj;
|
|
252
|
-
|
|
253
217
|
const getObj2 = props => props.obj2 || dummyObj;
|
|
254
|
-
|
|
255
218
|
export const makeObjectConcat = () => createSelector([getObj1, getObj2], (obj1, obj2) => Object.assign({}, obj1, obj2));
|
|
256
|
-
/***** Group Select *****/
|
|
257
219
|
|
|
220
|
+
/***** Group Select *****/
|
|
258
221
|
const getGroupedOptions = props => props.groupedOptions || dummyArray;
|
|
259
|
-
|
|
260
222
|
const getFormatOptions = makeFormatOptions();
|
|
261
223
|
export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions], groupedOptions => {
|
|
262
224
|
const revampedGroups = [];
|
|
263
225
|
let allOptionIds = [];
|
|
264
226
|
let allNormalizedOptions = {}; //all group normalized options
|
|
265
|
-
|
|
266
227
|
let allNormalizedFormatOptions = {};
|
|
267
228
|
const groupIds = [];
|
|
268
229
|
const normalizedGroupedOptions = {};
|
|
@@ -274,7 +235,6 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
|
|
|
274
235
|
valueField,
|
|
275
236
|
textField
|
|
276
237
|
} = group;
|
|
277
|
-
|
|
278
238
|
if (!getIsEmptyValue(groupId) && groupIds.indexOf(groupId) === -1) {
|
|
279
239
|
groupIds.push(groupId);
|
|
280
240
|
normalizedGroupedOptions[groupId] = group;
|
|
@@ -289,7 +249,6 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
|
|
|
289
249
|
textField,
|
|
290
250
|
prefixText: groupId
|
|
291
251
|
});
|
|
292
|
-
|
|
293
252
|
if (optionsOrder.length) {
|
|
294
253
|
revampedGroups.push({
|
|
295
254
|
id: groupId,
|
|
@@ -311,9 +270,7 @@ export const makeGetGroupSelectOptions = () => createSelector([getGroupedOptions
|
|
|
311
270
|
normalizedGroupedOptions
|
|
312
271
|
};
|
|
313
272
|
});
|
|
314
|
-
|
|
315
273
|
const getGroups = props => props.revampedGroups;
|
|
316
|
-
|
|
317
274
|
const getFilterSuggestions = makeGetMultiSelectFilterSuggestions();
|
|
318
275
|
export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGroups, getSearchStr, getNeedSearch, getIsStartWithSearch], (groups, searchStr, needSearch, isStartsWithSearch) => {
|
|
319
276
|
const suggestionGroups = [];
|
|
@@ -331,7 +288,6 @@ export const makeGetGroupSelectFilterSuggestions = () => createSelector([getGrou
|
|
|
331
288
|
searchStr,
|
|
332
289
|
isStartsWithSearch
|
|
333
290
|
});
|
|
334
|
-
|
|
335
291
|
if (suggestionIds.length) {
|
|
336
292
|
suggestionGroups.push(Object.assign({}, group, {
|
|
337
293
|
options: suggestions
|
|
@@ -349,7 +305,6 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
|
|
|
349
305
|
return options.reduce((changedOptions, option) => {
|
|
350
306
|
let newOption;
|
|
351
307
|
const id = typeof option === 'object' ? option[valueField] : option;
|
|
352
|
-
|
|
353
308
|
if (typeof option === 'object' && !getIsEmptyValue(id)) {
|
|
354
309
|
newOption = Object.assign({}, option, {
|
|
355
310
|
[valueField]: optionIdGrouping(id, prefixText),
|
|
@@ -357,11 +312,9 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
|
|
|
357
312
|
textField,
|
|
358
313
|
optionType
|
|
359
314
|
});
|
|
360
|
-
|
|
361
315
|
if (imageField) {
|
|
362
316
|
newOption.imageField = imageField;
|
|
363
317
|
}
|
|
364
|
-
|
|
365
318
|
changedOptions.push(newOption);
|
|
366
319
|
} else if (!getIsEmptyValue(id)) {
|
|
367
320
|
newOption = {
|
|
@@ -375,7 +328,6 @@ export const makeGetOptionIdChange = () => createSelector([getOptions, getValueF
|
|
|
375
328
|
};
|
|
376
329
|
changedOptions.push(newOption);
|
|
377
330
|
}
|
|
378
|
-
|
|
379
331
|
return changedOptions;
|
|
380
332
|
}, newOptions);
|
|
381
333
|
});
|
|
@@ -386,23 +338,22 @@ export const filterSelectedOptions = function () {
|
|
|
386
338
|
disabledOptions = dummyArray
|
|
387
339
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
388
340
|
// eslint-disable-next-line no-param-reassign
|
|
389
|
-
selectedOptions = selectedOptions || dummyArray;
|
|
390
|
-
|
|
391
|
-
propSelectedOptions = propSelectedOptions || dummyArray;
|
|
392
|
-
|
|
341
|
+
selectedOptions = selectedOptions || dummyArray;
|
|
342
|
+
// eslint-disable-next-line no-param-reassign
|
|
343
|
+
propSelectedOptions = propSelectedOptions || dummyArray;
|
|
344
|
+
// eslint-disable-next-line no-param-reassign
|
|
393
345
|
disabledOptions = disabledOptions || dummyArray;
|
|
394
|
-
const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1);
|
|
346
|
+
const newlyAddedOptions = selectedOptions.filter(selectedOption => propSelectedOptions.indexOf(selectedOption) === -1);
|
|
395
347
|
|
|
348
|
+
// eslint-disable-next-line max-len
|
|
396
349
|
const oldValidSelectedOptions = propSelectedOptions.filter(selectedOption => {
|
|
397
350
|
const isRemoved = selectedOptions.indexOf(selectedOption) === -1;
|
|
398
351
|
const isDisabled = disabledOptions.indexOf(selectedOption) >= 0;
|
|
399
|
-
|
|
400
352
|
if (isDisabled) {
|
|
401
353
|
return true;
|
|
402
354
|
} else if (isRemoved) {
|
|
403
355
|
return false;
|
|
404
356
|
}
|
|
405
|
-
|
|
406
357
|
return true;
|
|
407
358
|
});
|
|
408
359
|
return {
|
|
@@ -413,36 +364,28 @@ export const makeGetIsShowClearIcon = () => createSelector([getSelectedOptionsSe
|
|
|
413
364
|
let countForShowClear = 2;
|
|
414
365
|
let enabledOptionsLength = 0;
|
|
415
366
|
let isShowClearIcon = selectedOptions.length >= countForShowClear;
|
|
416
|
-
|
|
417
367
|
if (disabledOptions.length) {
|
|
418
368
|
let isHaveEnabledOptions = false;
|
|
419
369
|
let isAllDisabled = disabledOptions.length === selectedOptions.length;
|
|
420
|
-
|
|
421
370
|
if (!isAllDisabled) {
|
|
422
371
|
isHaveEnabledOptions = selectedOptions.some(option => {
|
|
423
372
|
let {
|
|
424
373
|
isDisabled = false
|
|
425
374
|
} = option || {};
|
|
426
|
-
|
|
427
375
|
if (!isDisabled) {
|
|
428
376
|
enabledOptionsLength += 1;
|
|
429
|
-
|
|
430
377
|
if (enabledOptionsLength === countForShowClear) {
|
|
431
378
|
return true;
|
|
432
379
|
}
|
|
433
|
-
|
|
434
380
|
return false;
|
|
435
381
|
}
|
|
436
|
-
|
|
437
382
|
return false;
|
|
438
383
|
});
|
|
439
384
|
}
|
|
440
|
-
|
|
441
385
|
return {
|
|
442
386
|
isShowClearIcon: isAllDisabled ? !isAllDisabled : isHaveEnabledOptions
|
|
443
387
|
};
|
|
444
388
|
}
|
|
445
|
-
|
|
446
389
|
return {
|
|
447
390
|
isShowClearIcon
|
|
448
391
|
};
|
package/es/utils/getInitial.js
CHANGED
|
@@ -2,23 +2,19 @@ export function getInitial() {
|
|
|
2
2
|
let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
3
3
|
let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
4
4
|
let initial = '';
|
|
5
|
-
|
|
6
5
|
if (firstName) {
|
|
7
6
|
firstName = firstName.trim();
|
|
8
7
|
initial = firstName[0];
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
if (lastName) {
|
|
12
10
|
lastName = lastName.trim();
|
|
13
11
|
initial += initial ? lastName[0] : lastName.substring(0, 2);
|
|
14
12
|
}
|
|
15
|
-
|
|
16
13
|
return initial ? initial.toUpperCase() : initial;
|
|
17
14
|
}
|
|
18
15
|
export function getInitialByPattern(firstName, lastName, pattern) {
|
|
19
16
|
if (pattern[0] === 'FIRST_NAME') {
|
|
20
17
|
return getInitial(firstName, lastName);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
return getInitial(lastName, firstName);
|
|
24
20
|
}
|
package/es/utils/shallowEqual.js
CHANGED
|
@@ -5,28 +5,22 @@ function is(x, y) {
|
|
|
5
5
|
return x !== x && y !== y;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
|
|
9
8
|
export default function shallowEqual(objA, objB) {
|
|
10
9
|
if (is(objA, objB)) {
|
|
11
10
|
return true;
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
|
|
15
13
|
return false;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
const keysA = Object.keys(objA);
|
|
19
16
|
const keysB = Object.keys(objB);
|
|
20
|
-
|
|
21
17
|
if (keysA.length !== keysB.length) {
|
|
22
18
|
return false;
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
for (let i = 0; i < keysA.length; i++) {
|
|
26
21
|
if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
|
|
27
22
|
return false;
|
|
28
23
|
}
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
return true;
|
|
32
26
|
}
|