@zohodesk/components 1.0.0-temp-163 → 1.0.0-temp-165
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 +25 -0
- package/es/Accordion/Accordion.js +8 -3
- package/es/Accordion/AccordionItem.js +5 -2
- package/es/Animation/Animation.js +3 -3
- package/es/AppContainer/AppContainer.js +27 -10
- package/es/AppContainer/AppContainer.module.css +2 -2
- package/es/AppContainer/props/defaultProps.js +2 -1
- package/es/AppContainer/props/propTypes.js +1 -0
- package/es/Avatar/Avatar.js +26 -11
- package/es/Avatar/Avatar.module.css +18 -18
- package/es/AvatarTeam/AvatarTeam.js +4 -3
- package/es/AvatarTeam/AvatarTeam.module.css +35 -35
- package/es/Button/Button.js +5 -3
- package/es/Button/css/Button.module.css +70 -70
- package/es/Buttongroup/Buttongroup.js +4 -3
- package/es/Buttongroup/Buttongroup.module.css +14 -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 +33 -20
- package/es/DateTime/DateTime.js +78 -11
- package/es/DateTime/DateTime.module.css +39 -39
- package/es/DateTime/DateTimePopupFooter.js +4 -2
- package/es/DateTime/DateTimePopupHeader.js +8 -2
- package/es/DateTime/DateWidget.js +100 -35
- package/es/DateTime/DateWidget.module.css +5 -5
- package/es/DateTime/DaysRow.js +4 -2
- package/es/DateTime/Time.js +10 -2
- package/es/DateTime/YearView.js +28 -4
- package/es/DateTime/YearView.module.css +15 -15
- package/es/DateTime/__tests__/CalendarView.spec.js +1 -0
- package/es/DateTime/__tests__/DateTime.spec.js +1 -0
- package/es/DateTime/__tests__/DateWidget.spec.js +2 -3
- package/es/DateTime/common.js +3 -0
- package/es/DateTime/constants.js +1 -0
- package/es/DateTime/dateFormatUtils/dateFormat.js +63 -30
- package/es/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/es/DateTime/dateFormatUtils/dayChange.js +13 -4
- package/es/DateTime/dateFormatUtils/index.js +32 -2
- 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/props/defaultProps.js +2 -1
- package/es/DateTime/typeChecker.js +3 -0
- package/es/DateTime/validator.js +58 -6
- package/es/DropBox/DropBox.js +9 -5
- package/es/DropBox/DropBoxElement/DropBoxElement.js +18 -6
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +6 -4
- package/es/DropBox/DropBoxElement/props/propTypes.js +1 -1
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
- package/es/DropBox/__tests__/DropBox.spec.js +2 -2
- 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 +10 -5
- package/es/DropDown/DropDown.module.css +2 -2
- package/es/DropDown/DropDownHeading.js +5 -5
- package/es/DropDown/DropDownHeading.module.css +6 -6
- package/es/DropDown/DropDownItem.js +8 -1
- 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/__tests__/DropDown.spec.js +1 -2
- package/es/Heading/Heading.js +3 -3
- package/es/Heading/Heading.module.css +2 -2
- package/es/Label/Label.js +10 -5
- package/es/Label/Label.module.css +5 -5
- package/es/Label/props/propTypes.js +4 -1
- package/es/Layout/Box.js +17 -3
- package/es/Layout/Container.js +16 -4
- package/es/Layout/Layout.module.css +15 -15
- package/es/Layout/index.js +1 -2
- package/es/Layout/props/defaultProps.js +2 -0
- package/es/Layout/props/propTypes.js +2 -0
- package/es/Layout/utils.js +5 -1
- package/es/ListItem/ListContainer.js +8 -3
- package/es/ListItem/ListItem.js +9 -3
- package/es/ListItem/ListItem.module.css +38 -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 +90 -13
- package/es/MultiSelect/AdvancedMultiSelect.js +33 -9
- package/es/MultiSelect/EmptyState.js +6 -0
- package/es/MultiSelect/MultiSelect.js +100 -32
- package/es/MultiSelect/MultiSelect.module.css +31 -31
- package/es/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +13 -6
- 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/__tests__/MultiSelect.spec.js +4 -6
- package/es/MultiSelect/props/propTypes.js +2 -0
- package/es/PopOver/PopOver.js +18 -2
- package/es/PopOver/__tests__/PopOver.spec.js +2 -1
- package/es/Popup/Popup.js +77 -27
- package/es/Popup/__tests__/Popup.spec.js +17 -5
- 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 +4 -2
- 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 +37 -39
- 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/Ribbon/Ribbon.js +4 -2
- package/es/Ribbon/Ribbon.module.css +46 -48
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +59 -14
- package/es/Select/Select.js +81 -34
- package/es/Select/Select.module.css +23 -23
- package/es/Select/SelectWithAvatar.js +19 -4
- package/es/Select/SelectWithIcon.js +48 -6
- package/es/Select/__tests__/Select.spec.js +6 -8
- package/es/Select/props/propTypes.js +1 -0
- package/es/Stencils/Stencils.js +3 -3
- package/es/Stencils/Stencils.module.css +11 -11
- package/es/Switch/Switch.js +6 -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 +2 -0
- package/es/Tab/TabWrapper.js +5 -2
- package/es/Tab/Tabs.js +63 -28
- package/es/Tab/Tabs.module.css +24 -42
- package/es/Tab/__tests__/Tab.spec.js +1 -3
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
- package/es/Tag/Tag.js +7 -3
- package/es/Tag/Tag.module.css +25 -25
- package/es/TextBox/TextBox.js +16 -3
- package/es/TextBox/TextBox.module.css +9 -9
- package/es/TextBox/__tests__/TextBox.spec.js +1 -4
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
- package/es/Textarea/Textarea.js +13 -3
- package/es/Textarea/Textarea.module.css +21 -21
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +60 -15
- package/es/Tooltip/Tooltip.module.css +5 -5
- package/es/Tooltip/__tests__/Tooltip.spec.js +5 -0
- 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/AdvancedMultiSelect.module.css +18 -18
- package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
- package/es/semantic/Button/Button.js +4 -2
- package/es/semantic/Button/semanticButton.module.css +1 -1
- package/es/utils/Common.js +58 -9
- package/es/utils/ContextOptimizer.js +4 -5
- package/es/utils/__tests__/debounce.spec.js +2 -2
- package/es/utils/constructFullName.js +2 -0
- package/es/utils/css/compileClassNames.js +5 -0
- package/es/utils/css/mergeStyle.js +7 -6
- package/es/utils/css/utils.js +1 -0
- package/es/utils/datetime/GMTZones.js +48 -0
- package/es/utils/datetime/common.js +31 -7
- 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/lib/Accordion/Accordion.js +43 -18
- package/lib/Accordion/AccordionItem.js +41 -18
- package/lib/Accordion/__tests__/Accordion.spec.js +3 -0
- package/lib/Accordion/index.js +3 -0
- package/lib/Accordion/props/propTypes.js +3 -0
- package/lib/Animation/Animation.js +38 -18
- package/lib/Animation/__tests__/Animation.spec.js +11 -7
- package/lib/Animation/props/propTypes.js +3 -0
- package/lib/AppContainer/AppContainer.js +66 -26
- package/lib/AppContainer/AppContainer.module.css +2 -2
- package/lib/AppContainer/props/defaultProps.js +2 -1
- package/lib/AppContainer/props/propTypes.js +4 -0
- package/lib/Avatar/Avatar.js +81 -38
- package/lib/Avatar/Avatar.module.css +18 -18
- package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +53 -30
- package/lib/AvatarTeam/AvatarTeam.module.css +35 -35
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
- package/lib/AvatarTeam/props/propTypes.js +3 -0
- package/lib/Button/Button.js +32 -20
- 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 +33 -12
- package/lib/Buttongroup/Buttongroup.module.css +14 -15
- package/lib/Buttongroup/__test__/Buttongroup.spec.js +10 -0
- package/lib/Buttongroup/props/propTypes.js +3 -0
- package/lib/Card/Card.js +102 -46
- package/lib/Card/__tests__/Card.spec.js +10 -1
- 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/__tests__/CheckBox.spec.js +3 -0
- package/lib/CheckBox/props/propTypes.js +3 -0
- package/lib/DateTime/CalendarView.js +83 -42
- package/lib/DateTime/DateTime.js +249 -159
- package/lib/DateTime/DateTime.module.css +39 -39
- package/lib/DateTime/DateTimePopupFooter.js +31 -8
- package/lib/DateTime/DateTimePopupHeader.js +48 -17
- package/lib/DateTime/DateWidget.js +354 -250
- package/lib/DateTime/DateWidget.module.css +5 -5
- package/lib/DateTime/DaysRow.js +27 -5
- package/lib/DateTime/Time.js +73 -32
- package/lib/DateTime/YearView.js +77 -28
- package/lib/DateTime/YearView.module.css +15 -15
- package/lib/DateTime/__tests__/CalendarView.spec.js +13 -5
- package/lib/DateTime/__tests__/DateTime.spec.js +51 -37
- package/lib/DateTime/__tests__/DateWidget.spec.js +10 -8
- package/lib/DateTime/common.js +6 -0
- package/lib/DateTime/constants.js +1 -0
- package/lib/DateTime/dateFormatUtils/dateFormat.js +184 -122
- package/lib/DateTime/dateFormatUtils/dateFormats.js +0 -1
- package/lib/DateTime/dateFormatUtils/dayChange.js +14 -7
- package/lib/DateTime/dateFormatUtils/index.js +74 -16
- package/lib/DateTime/dateFormatUtils/monthChange.js +19 -9
- package/lib/DateTime/dateFormatUtils/timeChange.js +54 -22
- package/lib/DateTime/dateFormatUtils/yearChange.js +22 -11
- package/lib/DateTime/index.js +2 -0
- package/lib/DateTime/objectUtils.js +24 -20
- package/lib/DateTime/props/defaultProps.js +2 -1
- 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 +36 -12
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +68 -42
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +85 -79
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +43 -34
- package/lib/DropBox/DropBoxElement/props/propTypes.js +4 -1
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
- package/lib/DropBox/__tests__/DropBox.spec.js +8 -4
- 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 +54 -9
- package/lib/DropDown/DropDown.module.css +2 -2
- package/lib/DropDown/DropDownHeading.js +40 -20
- package/lib/DropDown/DropDownHeading.module.css +6 -6
- package/lib/DropDown/DropDownItem.js +44 -21
- 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/__tests__/DropDown.spec.js +15 -9
- package/lib/DropDown/__tests__/DropDownItem.spec.js +9 -4
- package/lib/DropDown/__tests__/DropDownSearch.spec.js +3 -0
- package/lib/DropDown/index.js +9 -0
- package/lib/DropDown/props/propTypes.js +6 -4
- package/lib/Heading/Heading.js +39 -16
- package/lib/Heading/Heading.module.css +2 -2
- package/lib/Heading/props/propTypes.js +3 -0
- package/lib/Label/Label.js +45 -20
- package/lib/Label/Label.module.css +5 -5
- package/lib/Label/__tests__/Label.spec.js +14 -1
- package/lib/Label/props/propTypes.js +7 -1
- package/lib/Layout/Box.js +39 -15
- package/lib/Layout/Container.js +37 -14
- package/lib/Layout/Layout.module.css +15 -15
- package/lib/Layout/__tests__/Box.spec.js +65 -49
- package/lib/Layout/__tests__/Container.spec.js +67 -50
- package/lib/Layout/index.js +3 -0
- package/lib/Layout/props/defaultProps.js +2 -0
- package/lib/Layout/props/propTypes.js +5 -0
- package/lib/Layout/utils.js +15 -1
- package/lib/ListItem/ListContainer.js +48 -27
- package/lib/ListItem/ListItem.js +69 -45
- package/lib/ListItem/ListItem.module.css +38 -38
- package/lib/ListItem/ListItemWithAvatar.js +75 -48
- package/lib/ListItem/ListItemWithCheckBox.js +64 -39
- package/lib/ListItem/ListItemWithIcon.js +68 -44
- package/lib/ListItem/ListItemWithRadio.js +65 -41
- 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 +295 -166
- package/lib/MultiSelect/AdvancedMultiSelect.js +203 -125
- package/lib/MultiSelect/EmptyState.js +49 -24
- package/lib/MultiSelect/MultiSelect.js +324 -206
- package/lib/MultiSelect/MultiSelect.module.css +31 -31
- package/lib/MultiSelect/MultiSelectHeader.js +30 -8
- package/lib/MultiSelect/MultiSelectWithAvatar.js +106 -63
- 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/__tests__/MultiSelect.spec.js +86 -75
- package/lib/MultiSelect/index.js +5 -0
- package/lib/MultiSelect/props/defaultProps.js +2 -0
- package/lib/MultiSelect/props/propTypes.js +5 -0
- package/lib/PopOver/PopOver.js +95 -49
- package/lib/PopOver/__tests__/PopOver.spec.js +4 -1
- package/lib/PopOver/index.js +4 -0
- package/lib/PopOver/props/propTypes.js +3 -0
- package/lib/Popup/Popup.js +158 -84
- package/lib/Popup/__tests__/Popup.spec.js +43 -8
- 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 +61 -38
- package/lib/Radio/Radio.module.css +9 -9
- package/lib/Radio/__tests__/Radiospec.js +9 -5
- 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 +63 -49
- 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 +3 -0
- package/lib/Ribbon/Ribbon.js +34 -13
- package/lib/Ribbon/Ribbon.module.css +46 -48
- package/lib/Ribbon/__tests__/Ribbon.spec.js +22 -0
- package/lib/Ribbon/props/propTypes.js +3 -0
- package/lib/RippleEffect/RippleEffect.js +18 -10
- package/lib/RippleEffect/props/propTypes.js +3 -0
- package/lib/Select/GroupSelect.js +230 -130
- package/lib/Select/Select.js +292 -210
- package/lib/Select/Select.module.css +23 -23
- package/lib/Select/SelectWithAvatar.js +104 -56
- package/lib/Select/SelectWithIcon.js +134 -77
- package/lib/Select/__tests__/Select.spec.js +133 -91
- package/lib/Select/index.js +5 -0
- package/lib/Select/props/defaultProps.js +5 -4
- package/lib/Select/props/propTypes.js +4 -0
- package/lib/Stencils/Stencils.js +29 -10
- package/lib/Stencils/Stencils.module.css +11 -11
- package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +58 -34
- package/lib/Switch/Switch.module.css +23 -23
- 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 +13 -6
- package/lib/Tab/TabWrapper.js +37 -19
- package/lib/Tab/Tabs.js +191 -121
- package/lib/Tab/Tabs.module.css +24 -42
- package/lib/Tab/__tests__/Tab.spec.js +67 -58
- package/lib/Tab/__tests__/TabContent.spec.js +10 -6
- package/lib/Tab/__tests__/TabContentWrapper.spec.js +28 -20
- package/lib/Tab/__tests__/TabWrapper.spec.js +12 -0
- package/lib/Tab/__tests__/Tabs.spec.js +53 -39
- package/lib/Tab/index.js +6 -0
- package/lib/Tab/props/propTypes.js +3 -0
- package/lib/Tag/Tag.js +73 -43
- package/lib/Tag/Tag.module.css +25 -25
- package/lib/Tag/__tests__/Tag.spec.js +14 -8
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +86 -59
- package/lib/TextBox/TextBox.module.css +9 -9
- package/lib/TextBox/__tests__/TextBox.spec.js +14 -4
- package/lib/TextBox/props/propTypes.js +6 -4
- package/lib/TextBoxIcon/TextBoxIcon.js +79 -52
- package/lib/TextBoxIcon/TextBoxIcon.module.css +7 -7
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -5
- package/lib/TextBoxIcon/props/propTypes.js +3 -0
- package/lib/Textarea/Textarea.js +55 -29
- package/lib/Textarea/Textarea.module.css +21 -21
- package/lib/Textarea/__tests__/Textarea.spec.js +14 -2
- package/lib/Textarea/props/propTypes.js +3 -0
- package/lib/Tooltip/Tooltip.js +96 -32
- package/lib/Tooltip/Tooltip.module.css +5 -5
- package/lib/Tooltip/__tests__/Tooltip.spec.js +24 -3
- 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/AdvancedMultiSelect.module.css +18 -18
- package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
- package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
- package/lib/index.js +57 -0
- package/lib/semantic/Button/Button.js +43 -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 +117 -19
- package/lib/utils/ContextOptimizer.js +16 -10
- package/lib/utils/__tests__/constructFullName.spec.js +1 -0
- package/lib/utils/__tests__/debounce.spec.js +3 -2
- package/lib/utils/__tests__/getInitial.spec.js +1 -0
- package/lib/utils/constructFullName.js +13 -4
- package/lib/utils/css/compileClassNames.js +6 -0
- package/lib/utils/css/mergeStyle.js +10 -7
- package/lib/utils/css/utils.js +8 -0
- package/lib/utils/datetime/GMTZones.js +55 -0
- package/lib/utils/datetime/common.js +52 -7
- 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 +4 -0
- package/lib/utils/scrollTo.js +2 -0
- package/lib/utils/shallowEqual.js +8 -0
- package/package.json +15 -24
|
@@ -5,27 +5,15 @@
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import ResizeObserver from './ResizeObserver';
|
|
8
|
-
import { getElementSpace } from '../utils/Common';
|
|
8
|
+
import { getElementSpace, debounce } from '../utils/Common';
|
|
9
9
|
export default class ResizeComponent extends React.Component {
|
|
10
10
|
constructor(props) {
|
|
11
11
|
super(props);
|
|
12
12
|
this.noSpaceForChildren = false;
|
|
13
13
|
this.childrenCurrentList = [];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return () => {
|
|
18
|
-
if (timeoutId) {
|
|
19
|
-
clearTimeout(timeoutId);
|
|
20
|
-
}
|
|
21
|
-
timeoutId = setTimeout(() => {
|
|
22
|
-
cb();
|
|
23
|
-
}, timer);
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
this.widthCheck = debounce(this.widthCheck.bind(this), 500); // this.widthCheck = this.widthCheck.bind(this);
|
|
27
|
-
|
|
28
|
-
this.onResize = debounce(this.onResize.bind(this), 500);
|
|
14
|
+
this.widthCheck = debounce(this.widthCheck.bind(this), 10); // this.widthCheck = this.widthCheck.bind(this);
|
|
15
|
+
|
|
16
|
+
this.onResize = this.onResize.bind(this);
|
|
29
17
|
this.onResizeMutation = this.onResizeMutation.bind(this);
|
|
30
18
|
this.tabsObserver = new ResizeObserver(this.onResize);
|
|
31
19
|
this.tabObserver = new MutationObserver(this.onResizeMutation);
|
|
@@ -33,6 +21,7 @@ export default class ResizeComponent extends React.Component {
|
|
|
33
21
|
this.constructChildren = this.constructChildren.bind(this);
|
|
34
22
|
this.querySelector = this.querySelector.bind(this);
|
|
35
23
|
}
|
|
24
|
+
|
|
36
25
|
querySelector() {
|
|
37
26
|
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
38
27
|
return this.props.wrapperDivRef.current.querySelectorAll('[data-responsive="true"]');
|
|
@@ -40,11 +29,13 @@ export default class ResizeComponent extends React.Component {
|
|
|
40
29
|
return [];
|
|
41
30
|
}
|
|
42
31
|
}
|
|
32
|
+
|
|
43
33
|
onResizeMutation(mutations) {
|
|
44
34
|
// console.log(mutations);
|
|
45
35
|
let {
|
|
46
36
|
childrenList
|
|
47
37
|
} = this.props;
|
|
38
|
+
|
|
48
39
|
for (const mutation of mutations) {
|
|
49
40
|
if (mutation.type === 'childList') {
|
|
50
41
|
if (mutation.addedNodes.length) {
|
|
@@ -55,24 +46,19 @@ export default class ResizeComponent extends React.Component {
|
|
|
55
46
|
newAdded = true;
|
|
56
47
|
}
|
|
57
48
|
});
|
|
49
|
+
|
|
58
50
|
if (newAdded) {
|
|
59
51
|
//console.log('A child node has been added ', mutation);
|
|
60
|
-
|
|
61
52
|
this.onResize();
|
|
62
53
|
}
|
|
63
|
-
} else if (mutation.removedNodes.length) {
|
|
64
|
-
// ?? removed nodes ku check pannanum ah ??
|
|
54
|
+
} else if (mutation.removedNodes.length) {// ?? removed nodes ku check pannanum ah ??
|
|
65
55
|
// console.log('A child node has been removed ', mutation);
|
|
66
56
|
}
|
|
67
|
-
} else if (mutation.type === 'attributes') {
|
|
68
|
-
|
|
69
|
-
} else if (mutation.type === 'characterData') {
|
|
70
|
-
// To Call While Changing InnerText, Remove Below line If Required. But It might affect Performance.
|
|
57
|
+
} else if (mutation.type === 'attributes') {//console.log('The ' + mutation.attributeName + ' attribute was modified.', mutation);
|
|
58
|
+
} else if (mutation.type === 'characterData') {// To Call While Changing InnerText, Remove Below line If Required. But It might affect Performance.
|
|
71
59
|
// this.onResize();
|
|
72
60
|
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// mutations.forEach(mutation => {
|
|
61
|
+
} // mutations.forEach(mutation => {
|
|
76
62
|
// if (mutation.target === foo &&
|
|
77
63
|
// mutation.attributeName === 'style' &&
|
|
78
64
|
// oldWidth !== foo.style.width) {
|
|
@@ -81,6 +67,7 @@ export default class ResizeComponent extends React.Component {
|
|
|
81
67
|
// oldWidth = foo.style.width;
|
|
82
68
|
// }
|
|
83
69
|
// });
|
|
70
|
+
|
|
84
71
|
}
|
|
85
72
|
|
|
86
73
|
componentDidMount() {
|
|
@@ -95,22 +82,27 @@ export default class ResizeComponent extends React.Component {
|
|
|
95
82
|
});
|
|
96
83
|
}
|
|
97
84
|
}
|
|
85
|
+
|
|
98
86
|
componentWillUnmount() {
|
|
99
87
|
this.reset();
|
|
100
88
|
}
|
|
89
|
+
|
|
101
90
|
reset() {
|
|
102
91
|
this.childrenCurrentList = [];
|
|
103
92
|
this.tabsObserver.disconnect();
|
|
104
93
|
this.tabObserver && this.tabObserver.disconnect();
|
|
105
94
|
}
|
|
95
|
+
|
|
106
96
|
componentDidUpdate(prevProps) {
|
|
107
97
|
if (this.childrenCurrentList.length === 0) {
|
|
108
98
|
this.childrenCurrentList = this.querySelector();
|
|
109
99
|
this.widthCheck();
|
|
110
100
|
}
|
|
101
|
+
|
|
111
102
|
if (this.props.resizeId !== prevProps.resizeId) {
|
|
112
103
|
// Completely reset the observers and set new observer if id is changed
|
|
113
104
|
this.reset();
|
|
105
|
+
|
|
114
106
|
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
115
107
|
this.tabsObserver.observe(this.props.wrapperDivRef.current);
|
|
116
108
|
this.tabObserver.observe(this.props.wrapperDivRef.current, {
|
|
@@ -123,67 +115,73 @@ export default class ResizeComponent extends React.Component {
|
|
|
123
115
|
}
|
|
124
116
|
}
|
|
125
117
|
}
|
|
118
|
+
|
|
126
119
|
onResize() {
|
|
127
120
|
// if (this.childrenCurrentList.length !== 0) {
|
|
128
121
|
this.childrenCurrentList = [];
|
|
129
|
-
this.constructChildren(0, false);
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// shouldComponentUpdate() {
|
|
122
|
+
this.constructChildren(0, false); //}
|
|
123
|
+
} // shouldComponentUpdate() {
|
|
134
124
|
// return this.childrenCurrentList.length === 0
|
|
135
125
|
// }
|
|
136
126
|
|
|
127
|
+
|
|
137
128
|
widthCheck() {
|
|
138
129
|
let wrapperDivRef = this.props.wrapperDivRef.current;
|
|
139
130
|
let moreDivRef = this.props.moreDivRef.current;
|
|
131
|
+
|
|
140
132
|
if (wrapperDivRef && this.childrenCurrentList.length > 0) {
|
|
141
|
-
const childrenWidthList = this.childrenCurrentList;
|
|
142
|
-
|
|
143
|
-
const moreWidth = getElementSpace(moreDivRef).neededSpace;
|
|
144
|
-
|
|
133
|
+
const childrenWidthList = this.childrenCurrentList; // this.childrenCurrentList = childrenWidthList;
|
|
134
|
+
|
|
135
|
+
const moreWidth = getElementSpace(moreDivRef).neededSpace; //console.log(moreWidth,'moreWidth');
|
|
136
|
+
|
|
145
137
|
let totalWidth = getElementSpace(wrapperDivRef).availableInsideSpace - moreWidth;
|
|
146
138
|
let _childrenTotalWidth = 0;
|
|
147
139
|
let dataCount = 0;
|
|
148
140
|
this.noSpaceForChildren = false;
|
|
141
|
+
|
|
149
142
|
if (totalWidth <= moreWidth) {
|
|
150
143
|
this.noSpaceForChildren = true;
|
|
151
144
|
} else {
|
|
152
145
|
for (let i = 0; i < childrenWidthList.length; i++) {
|
|
153
146
|
let currentWidth = getElementSpace(childrenWidthList[i]).neededSpace;
|
|
154
|
-
_childrenTotalWidth += currentWidth;
|
|
155
|
-
|
|
147
|
+
_childrenTotalWidth += currentWidth; // console.log(_childrenTotalWidth, currentWidth, totalWidth)
|
|
148
|
+
|
|
156
149
|
if (i === childrenWidthList.length - 1 && moreWidth >= currentWidth) {
|
|
157
150
|
totalWidth += moreWidth;
|
|
158
151
|
}
|
|
152
|
+
|
|
159
153
|
if (totalWidth <= _childrenTotalWidth) {
|
|
160
154
|
dataCount = i;
|
|
161
155
|
break;
|
|
162
156
|
}
|
|
163
157
|
}
|
|
164
158
|
}
|
|
159
|
+
|
|
165
160
|
this.constructChildren(dataCount, true);
|
|
166
161
|
} else {
|
|
167
162
|
this.constructChildren(0, false);
|
|
168
163
|
}
|
|
169
164
|
}
|
|
165
|
+
|
|
170
166
|
constructChildren() {
|
|
171
167
|
let dataCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
172
168
|
let responsive = arguments.length > 1 ? arguments[1] : undefined;
|
|
173
169
|
const {
|
|
174
170
|
childrenList,
|
|
175
171
|
getData
|
|
176
|
-
} = this.props;
|
|
177
|
-
|
|
172
|
+
} = this.props; // If the data count is zero we assume that we can render all the items - data count will be zero only when we want to calculate the whole list width
|
|
173
|
+
|
|
178
174
|
dataCount = dataCount || childrenList && childrenList.length;
|
|
179
175
|
getData({
|
|
180
176
|
responsiveHook: responsive,
|
|
181
177
|
validListCount: this.noSpaceForChildren ? 0 : dataCount
|
|
182
178
|
});
|
|
183
179
|
}
|
|
180
|
+
|
|
184
181
|
render() {
|
|
185
182
|
return /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children);
|
|
186
183
|
}
|
|
184
|
+
|
|
187
185
|
}
|
|
188
186
|
ResizeComponent.propTypes = {
|
|
189
187
|
children: PropTypes.node,
|
|
@@ -4,30 +4,33 @@ const mutationObserverOptions = {
|
|
|
4
4
|
// childList: true,
|
|
5
5
|
attributes: true
|
|
6
6
|
};
|
|
7
|
+
|
|
7
8
|
function getSize(element) {
|
|
8
9
|
let {
|
|
9
10
|
offsetHeight,
|
|
10
11
|
offsetWidth
|
|
11
|
-
} = element;
|
|
12
|
-
|
|
12
|
+
} = element; // const { height, width } = element.getBoundingClientRect();
|
|
13
|
+
|
|
13
14
|
return {
|
|
14
15
|
height: offsetHeight,
|
|
15
16
|
width: offsetWidth
|
|
16
17
|
};
|
|
17
18
|
}
|
|
19
|
+
|
|
18
20
|
function dispatch() {
|
|
19
21
|
let resizeResponsive = new Event('resizeResponsive');
|
|
20
22
|
window.dispatchEvent(resizeResponsive);
|
|
21
23
|
}
|
|
24
|
+
|
|
22
25
|
if (!hasResizeObserver) {
|
|
23
26
|
let interval = null;
|
|
24
27
|
window.addEventListener('resize', () => {
|
|
25
28
|
clearTimeout(interval);
|
|
26
29
|
interval = setTimeout(dispatch, 100);
|
|
27
30
|
});
|
|
28
|
-
}
|
|
31
|
+
} // NOTE: this is not full polyfill , we just wrote what types of changes wlli
|
|
32
|
+
|
|
29
33
|
|
|
30
|
-
// NOTE: this is not full polyfill , we just wrote what types of changes wlli
|
|
31
34
|
export default class ResizeObserverPolyfill {
|
|
32
35
|
constructor(onResize) {
|
|
33
36
|
// method finding
|
|
@@ -42,57 +45,70 @@ export default class ResizeObserverPolyfill {
|
|
|
42
45
|
height: 0,
|
|
43
46
|
width: 0
|
|
44
47
|
};
|
|
48
|
+
|
|
45
49
|
if (hasResizeObserver) {
|
|
46
50
|
this.resizeObserverInstance = new window.ResizeObserver(this.resizeHandlerDispatch);
|
|
47
51
|
} else {
|
|
48
52
|
this.mutationObserverInstance = new window.MutationObserver(this.resizeHandlerDispatch);
|
|
49
53
|
}
|
|
50
54
|
}
|
|
55
|
+
|
|
51
56
|
replaceResizeHandler(onResize) {
|
|
52
57
|
this.onResize = onResize;
|
|
53
58
|
}
|
|
59
|
+
|
|
54
60
|
resizeHandler() {
|
|
55
61
|
if (!this.targetNode) {
|
|
56
62
|
return;
|
|
57
63
|
}
|
|
58
|
-
|
|
59
|
-
// if (this.size && shallowCompare(currentSize, this.size)) {
|
|
64
|
+
|
|
65
|
+
const currentSize = getSize(this.targetNode); // if (this.size && shallowCompare(currentSize, this.size)) {
|
|
66
|
+
|
|
60
67
|
if (this.size && currentSize.height === this.size.height && currentSize.width === this.size.width) {
|
|
61
68
|
return;
|
|
62
69
|
}
|
|
70
|
+
|
|
63
71
|
this.size = currentSize;
|
|
64
72
|
this.onResize(this.size, this.targetNode);
|
|
65
73
|
return true;
|
|
66
74
|
}
|
|
75
|
+
|
|
67
76
|
resizeHandlerDispatch() {
|
|
68
77
|
if (!this.resizeHandler() || hasResizeObserver) {
|
|
69
78
|
return;
|
|
70
79
|
}
|
|
80
|
+
|
|
71
81
|
dispatch();
|
|
72
82
|
}
|
|
83
|
+
|
|
73
84
|
debounce() {
|
|
74
85
|
clearTimeout(this.interval);
|
|
75
86
|
this.interval = setTimeout(this.resizeHandler, 100);
|
|
76
87
|
}
|
|
88
|
+
|
|
77
89
|
transitionEndHandler(event) {
|
|
78
90
|
if (event.propertyName.indexOf('color') === -1) {
|
|
79
91
|
this.resizeHandlerDispatch();
|
|
80
92
|
}
|
|
81
93
|
}
|
|
94
|
+
|
|
82
95
|
addEventListeners(targetNode) {
|
|
83
96
|
targetNode.addEventListener('transitionend', this.transitionEndHandler);
|
|
84
97
|
window.addEventListener('resizeResponsive', this.debounce);
|
|
85
98
|
targetNode.addEventListener('animationend', this.resizeHandlerDispatch);
|
|
86
99
|
targetNode.addEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
|
|
87
100
|
}
|
|
101
|
+
|
|
88
102
|
removeEventListeners(targetNode) {
|
|
89
103
|
targetNode.removeEventListener('transitionend', this.transitionEndHandler);
|
|
90
104
|
window.removeEventListener('resizeResponsive', this.debounce);
|
|
91
105
|
targetNode.removeEventListener('animationend', this.resizeHandlerDispatch);
|
|
92
106
|
targetNode.removeEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
|
|
93
107
|
}
|
|
108
|
+
|
|
94
109
|
observe(targetNode) {
|
|
95
110
|
this.targetNode = targetNode;
|
|
111
|
+
|
|
96
112
|
if (hasResizeObserver) {
|
|
97
113
|
this.resizeObserverInstance.observe(targetNode);
|
|
98
114
|
} else {
|
|
@@ -100,14 +116,17 @@ export default class ResizeObserverPolyfill {
|
|
|
100
116
|
this.mutationObserverInstance.observe(targetNode, mutationObserverOptions);
|
|
101
117
|
}
|
|
102
118
|
}
|
|
119
|
+
|
|
103
120
|
replaceObservationElement(targetNode) {
|
|
104
121
|
if (this.targetNode === targetNode) {
|
|
105
122
|
return;
|
|
106
123
|
}
|
|
124
|
+
|
|
107
125
|
this.targetNode && this.disconnect();
|
|
108
126
|
targetNode && this.observe(targetNode);
|
|
109
127
|
targetNode && this.resizeHandlerDispatch();
|
|
110
128
|
}
|
|
129
|
+
|
|
111
130
|
disconnect() {
|
|
112
131
|
this.targetNode && this.removeEventListeners(this.targetNode);
|
|
113
132
|
hasResizeObserver ? this.resizeObserverInstance.disconnect() : this.mutationObserverInstance.disconnect();
|
|
@@ -117,4 +136,5 @@ export default class ResizeObserverPolyfill {
|
|
|
117
136
|
width: 0
|
|
118
137
|
};
|
|
119
138
|
}
|
|
139
|
+
|
|
120
140
|
}
|
|
@@ -1,42 +1,41 @@
|
|
|
1
|
-
import React, { useContext, useEffect, useState, useMemo } from 'react';
|
|
2
|
-
|
|
1
|
+
import React, { useContext, useEffect, useState, useMemo } from 'react'; // import React, { useState, useMemo, useCallback, useContext } from 'react';
|
|
2
|
+
|
|
3
3
|
import { ResponsiveSender_defaultProps, ResponsiveReceiver_defaultProps } from './props/defaultProps';
|
|
4
4
|
import { ResponsiveSender_propTypes, ResponsiveReceiver_propTypes } from './props/propTypes';
|
|
5
5
|
import ResizeObserver from './ResizeObserver';
|
|
6
6
|
import DOMRefWrapper from './RefWrapper';
|
|
7
7
|
import { windowResizeObserver } from './windowResizeObserver';
|
|
8
|
-
import { getBreakPointValue, defaultMatcher } from './utils/';
|
|
9
|
-
|
|
10
|
-
// const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
|
|
8
|
+
import { getBreakPointValue, defaultMatcher } from './utils/'; // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
|
|
11
9
|
|
|
12
10
|
export const ResponsiveContext = /*#__PURE__*/React.createContext({});
|
|
13
11
|
const defaultResponsiveId = 'parentReceiver';
|
|
14
12
|
export class ResponsiveSender extends React.Component {
|
|
15
13
|
constructor(props) {
|
|
16
|
-
super(props);
|
|
14
|
+
super(props); // method binding
|
|
17
15
|
|
|
18
|
-
// method binding
|
|
19
16
|
this.onResize = this.onResize.bind(this);
|
|
20
17
|
this.containerRef = this.containerRef.bind(this);
|
|
21
18
|
this.getWidth = this.getWidth.bind(this);
|
|
22
19
|
this.state = {
|
|
23
20
|
breakPoint: null,
|
|
24
21
|
getWidth: this.getWidth
|
|
25
|
-
};
|
|
22
|
+
}; // variables
|
|
26
23
|
|
|
27
|
-
// variables
|
|
28
24
|
this.observer = new ResizeObserver(this.onResize);
|
|
29
25
|
this.size = null;
|
|
30
26
|
}
|
|
27
|
+
|
|
31
28
|
getWidth() {
|
|
32
29
|
if (!this.size) {
|
|
33
30
|
return 0;
|
|
34
31
|
}
|
|
32
|
+
|
|
35
33
|
const {
|
|
36
34
|
width
|
|
37
35
|
} = this.size;
|
|
38
36
|
return width;
|
|
39
37
|
}
|
|
38
|
+
|
|
40
39
|
onResize(size) {
|
|
41
40
|
// const { matcher } = this.props;
|
|
42
41
|
const {
|
|
@@ -44,21 +43,25 @@ export class ResponsiveSender extends React.Component {
|
|
|
44
43
|
} = this.state;
|
|
45
44
|
const newBreakPoint = defaultMatcher(size);
|
|
46
45
|
this.size = size;
|
|
46
|
+
|
|
47
47
|
if (breakPoint !== newBreakPoint) {
|
|
48
48
|
this.setState({
|
|
49
49
|
breakPoint: newBreakPoint
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
|
|
53
54
|
containerRef(node) {
|
|
54
55
|
this.observer.replaceObservationElement(node);
|
|
55
56
|
}
|
|
57
|
+
|
|
56
58
|
isChanged(data, key) {
|
|
57
59
|
this.memo = this.memo || {};
|
|
58
60
|
const changed = this.memo[key] !== data;
|
|
59
61
|
this.memo[key] = data;
|
|
60
62
|
return changed;
|
|
61
63
|
}
|
|
64
|
+
|
|
62
65
|
render() {
|
|
63
66
|
const parentContext = this.context;
|
|
64
67
|
const {
|
|
@@ -68,9 +71,10 @@ export class ResponsiveSender extends React.Component {
|
|
|
68
71
|
} = this.props;
|
|
69
72
|
let {
|
|
70
73
|
childContext
|
|
71
|
-
} = this;
|
|
72
|
-
|
|
74
|
+
} = this; // NOTE: this method called here ,Because of we must update local memo.
|
|
75
|
+
|
|
73
76
|
const isStateChanged = this.isChanged(this.state, 'state');
|
|
77
|
+
|
|
74
78
|
if (this.isChanged(this.context, 'context') || isStateChanged) {
|
|
75
79
|
childContext = Object.assign({}, parentContext);
|
|
76
80
|
childContext[responsiveId] = this.state;
|
|
@@ -85,9 +89,9 @@ export class ResponsiveSender extends React.Component {
|
|
|
85
89
|
ref: this.containerRef
|
|
86
90
|
}, children));
|
|
87
91
|
}
|
|
92
|
+
|
|
88
93
|
}
|
|
89
|
-
ResponsiveSender.defaultProps = {
|
|
90
|
-
...ResponsiveSender_defaultProps,
|
|
94
|
+
ResponsiveSender.defaultProps = { ...ResponsiveSender_defaultProps,
|
|
91
95
|
responsiveId: defaultResponsiveId
|
|
92
96
|
};
|
|
93
97
|
ResponsiveSender.contextType = ResponsiveContext;
|
|
@@ -97,17 +101,20 @@ export function useResponsiveReceiver() {
|
|
|
97
101
|
const [_, forceUpdate] = useState();
|
|
98
102
|
let totalContextData = useContext(ResponsiveContext);
|
|
99
103
|
let contextData = totalContextData[responsiveId] || totalContextData[defaultResponsiveId]; // NOTE: this for fallback of if responsive receiver id wrong
|
|
104
|
+
|
|
100
105
|
let data = contextData;
|
|
101
106
|
useEffect(() => {
|
|
102
107
|
!contextData && windowResizeObserver.observe(forceUpdate);
|
|
103
108
|
return () => !contextData && windowResizeObserver.unobserve(forceUpdate);
|
|
104
109
|
}, [!!contextData]);
|
|
110
|
+
|
|
105
111
|
if (!contextData) {
|
|
106
112
|
data = {
|
|
107
113
|
breakPoint: windowResizeObserver.getBreackPoint(),
|
|
108
114
|
getWidth: () => windowResizeObserver.getSize().width
|
|
109
115
|
};
|
|
110
116
|
}
|
|
117
|
+
|
|
111
118
|
const {
|
|
112
119
|
breakPoint,
|
|
113
120
|
getWidth
|
|
@@ -117,37 +124,45 @@ export function useResponsiveReceiver() {
|
|
|
117
124
|
return {
|
|
118
125
|
breakPoint,
|
|
119
126
|
isTouchDevice,
|
|
127
|
+
|
|
120
128
|
deviceBetween(breakPoint1, breakPoint2) {
|
|
121
129
|
const width = getWidth();
|
|
130
|
+
|
|
122
131
|
if (!width) {
|
|
123
132
|
return false;
|
|
124
|
-
}
|
|
125
|
-
// const smallBreakPointIndex = sortedBreackPointKey.indexOf(breakPoint1);
|
|
133
|
+
} // const smallBreakPointIndex = sortedBreackPointKey.indexOf(breakPoint1);
|
|
126
134
|
// const value1 = smallBreakPointIndex < 1 ? 0 : getBreakPointValue(sortedBreackPointKey[smallBreakPointIndex-1]);
|
|
135
|
+
|
|
136
|
+
|
|
127
137
|
const value1 = getBreakPointValue(breakPoint1);
|
|
128
138
|
const value2 = getBreakPointValue(breakPoint2);
|
|
139
|
+
|
|
129
140
|
if (value1 > value2) {
|
|
130
141
|
return this.deviceBetween(breakPoint2, breakPoint1);
|
|
131
142
|
}
|
|
143
|
+
|
|
132
144
|
return value1 <= width && value2 >= width || breakPoint1 === breakPoint || breakPoint2 === breakPoint;
|
|
133
145
|
},
|
|
146
|
+
|
|
134
147
|
deviceOnly() {
|
|
135
148
|
let breakPoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
136
149
|
return breakPoints.includes(breakPoint);
|
|
137
150
|
},
|
|
151
|
+
|
|
138
152
|
deviceUpto(breakPoint) {
|
|
139
153
|
const width = getWidth();
|
|
154
|
+
|
|
140
155
|
if (!width) {
|
|
141
156
|
return false;
|
|
142
157
|
}
|
|
158
|
+
|
|
143
159
|
return width <= getBreakPointValue(breakPoint);
|
|
144
160
|
}
|
|
161
|
+
|
|
145
162
|
};
|
|
146
163
|
}, [breakPoint, getWidth]);
|
|
147
164
|
return childArg;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// function ResponsiveReceiverFunc({ children, hiddenSizes }, ref) {
|
|
165
|
+
} // function ResponsiveReceiverFunc({ children, hiddenSizes }, ref) {
|
|
151
166
|
// const { breakPoint, methods } = useResponsiveReceiver();
|
|
152
167
|
// console.log(hiddenSizes);
|
|
153
168
|
// return hiddenSizes.indexOf(breakPoint) === -1 ? (
|
|
@@ -173,8 +188,7 @@ export function ResponsiveReceiver(_ref) {
|
|
|
173
188
|
ref: eleRef
|
|
174
189
|
}, child) : child : null;
|
|
175
190
|
}
|
|
176
|
-
ResponsiveReceiver.defaultProps = {
|
|
177
|
-
...ResponsiveReceiver_defaultProps,
|
|
191
|
+
ResponsiveReceiver.defaultProps = { ...ResponsiveReceiver_defaultProps,
|
|
178
192
|
responsiveId: defaultResponsiveId
|
|
179
193
|
};
|
|
180
194
|
ResponsiveReceiver.propTypes = ResponsiveReceiver_propTypes;
|
package/es/Responsive/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export { ResponsiveSender as CustomResponsiveSender, ResponsiveReceiver as CustomResponsiveReceiver, useResponsiveReceiver as useCustomResponsiveReceiver } from './CustomResponsive';
|
|
2
2
|
export { ResponsiveSender, ResponsiveReceiver, useResponsiveReceiver } from './Responsive';
|
|
3
|
-
export { default as ResizeComponent } from './ResizeComponent';
|
|
4
|
-
|
|
5
|
-
// let Responsive = {
|
|
3
|
+
export { default as ResizeComponent } from './ResizeComponent'; // let Responsive = {
|
|
6
4
|
// docs: {
|
|
7
5
|
// componentGroup: 'Layout',
|
|
8
6
|
// folderName: 'Style Guide'
|
|
@@ -4,34 +4,39 @@ const breakPointKeys = {
|
|
|
4
4
|
minWidth: true,
|
|
5
5
|
maxWidth: true
|
|
6
6
|
};
|
|
7
|
+
|
|
7
8
|
function isValideBreakPoint(breakPoint) {
|
|
8
9
|
return Object.keys(breakPoint).every(key => breakPointKeys[key]);
|
|
9
10
|
}
|
|
11
|
+
|
|
10
12
|
function rangeCheck(minValue, maxValue, screenValue) {
|
|
11
13
|
if (minValue === undefined) {
|
|
12
14
|
if (maxValue === undefined) {
|
|
13
15
|
return undefined;
|
|
14
16
|
}
|
|
17
|
+
|
|
15
18
|
return maxValue >= screenValue;
|
|
16
19
|
}
|
|
20
|
+
|
|
17
21
|
if (maxValue === undefined) {
|
|
18
22
|
return minValue <= screenValue;
|
|
19
23
|
}
|
|
24
|
+
|
|
20
25
|
return minValue <= screenValue && maxValue >= screenValue;
|
|
21
26
|
}
|
|
27
|
+
|
|
22
28
|
function isTouchDeviceFunc() {
|
|
23
29
|
// return window.matchMedia("(pointer: coarse)").matches
|
|
24
30
|
return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// export const isTouchDevice =
|
|
31
|
+
} // export const isTouchDevice =
|
|
28
32
|
// 'ontouchstart' in window && navigator.userAgent.match(/mobi/i) ? true : false;
|
|
33
|
+
|
|
34
|
+
|
|
29
35
|
export const isTouchDevice = isTouchDeviceFunc();
|
|
30
36
|
export function isBreackPointMatched(object, screen) {
|
|
31
37
|
if (!isValideBreakPoint(object)) {
|
|
32
38
|
// eslint-disable-next-line no-console
|
|
33
|
-
console.error('only minHeight,maxHeight,minWidth,maxWidth these keys are allowed, your object', JSON.stringify(object));
|
|
34
|
-
// return;
|
|
39
|
+
console.error('only minHeight,maxHeight,minWidth,maxWidth these keys are allowed, your object', JSON.stringify(object)); // return;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
const {
|
|
@@ -55,46 +60,59 @@ export class Subscribale {
|
|
|
55
60
|
constructor() {
|
|
56
61
|
this.subscribers = [];
|
|
57
62
|
}
|
|
63
|
+
|
|
58
64
|
connect() {}
|
|
65
|
+
|
|
59
66
|
disconnect() {}
|
|
67
|
+
|
|
60
68
|
subscribe(func) {
|
|
61
69
|
this.subscribers.length && this.connect();
|
|
62
70
|
this.subscribers.push(func);
|
|
63
71
|
}
|
|
72
|
+
|
|
64
73
|
unsubscribe(func) {
|
|
65
74
|
this.subscribers = this.subscribers.filter(s => s !== func);
|
|
66
75
|
this.subscribers.length && this.disconnect();
|
|
67
76
|
}
|
|
77
|
+
|
|
68
78
|
dispatch() {
|
|
69
79
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
70
80
|
args[_key] = arguments[_key];
|
|
71
81
|
}
|
|
82
|
+
|
|
72
83
|
this.subscribers.forEach(subscriber => {
|
|
73
84
|
subscriber(...args);
|
|
74
85
|
});
|
|
75
86
|
}
|
|
87
|
+
|
|
76
88
|
}
|
|
89
|
+
|
|
77
90
|
class InitSubscribale extends Subscribale {
|
|
78
91
|
// must be OverWrite
|
|
79
|
-
connect() {}
|
|
92
|
+
connect() {} // must be OverWrite
|
|
93
|
+
|
|
80
94
|
|
|
81
|
-
// must be OverWrite
|
|
82
95
|
disconnect() {}
|
|
96
|
+
|
|
83
97
|
subscribe(func) {
|
|
84
98
|
!this.subscribers.length && this.connect();
|
|
85
99
|
super.subscribe(func);
|
|
86
100
|
}
|
|
101
|
+
|
|
87
102
|
unsubscribe(func) {
|
|
88
103
|
super.unsubscribe(func);
|
|
89
104
|
!this.subscribers.length && this.disconnect();
|
|
90
105
|
}
|
|
106
|
+
|
|
91
107
|
}
|
|
108
|
+
|
|
92
109
|
export const windowResizeObserver = (() => {
|
|
93
110
|
const subscribaleInstance = new InitSubscribale();
|
|
94
111
|
let size = {
|
|
95
112
|
heigth: window.innerHeight,
|
|
96
113
|
width: window.innerWidth
|
|
97
114
|
};
|
|
115
|
+
|
|
98
116
|
function handleResize() {
|
|
99
117
|
const newSize = {
|
|
100
118
|
height: window.innerHeight,
|
|
@@ -103,13 +121,16 @@ export const windowResizeObserver = (() => {
|
|
|
103
121
|
size = newSize;
|
|
104
122
|
subscribaleInstance.dispatch(newSize);
|
|
105
123
|
}
|
|
124
|
+
|
|
106
125
|
function addResizeListener() {
|
|
107
126
|
window.addEventListener('resize', handleResize);
|
|
108
127
|
handleResize();
|
|
109
128
|
}
|
|
129
|
+
|
|
110
130
|
function removeResizeListener() {
|
|
111
131
|
window.removeEventListener('resize', handleResize);
|
|
112
132
|
}
|
|
133
|
+
|
|
113
134
|
subscribaleInstance.connect = addResizeListener;
|
|
114
135
|
subscribaleInstance.disconnect = removeResizeListener;
|
|
115
136
|
return {
|
|
@@ -11,7 +11,6 @@ export const breakPoints = {
|
|
|
11
11
|
//1024
|
|
12
12
|
LAPTOP: 90,
|
|
13
13
|
//1440
|
|
14
|
-
|
|
15
14
|
// other break points
|
|
16
15
|
MOBILE_XS: 20,
|
|
17
16
|
//320
|
|
@@ -26,25 +25,28 @@ export const breakPoints = {
|
|
|
26
25
|
MONITOR_M: 100,
|
|
27
26
|
//1600
|
|
28
27
|
MONITOR: 120 //1920
|
|
29
|
-
};
|
|
30
28
|
|
|
29
|
+
};
|
|
31
30
|
export function getBreakPointValue(breakPoint) {
|
|
32
|
-
return breakPoints[breakPoint] * getHTMLFontSize();
|
|
33
|
-
// return breakPoints[breakPoint] * 16;
|
|
31
|
+
return breakPoints[breakPoint] * getHTMLFontSize(); // return breakPoints[breakPoint] * 16;
|
|
34
32
|
}
|
|
35
|
-
|
|
36
33
|
export const sortedBreackPointKey = Object.keys(breakPoints).sort((a, b) => breakPoints[a] - breakPoints[b]);
|
|
37
34
|
export function defaultMatcher(size) {
|
|
38
35
|
let currentSize = '';
|
|
36
|
+
|
|
39
37
|
if (!size) {
|
|
40
38
|
return currentSize;
|
|
41
39
|
}
|
|
40
|
+
|
|
42
41
|
let key;
|
|
42
|
+
|
|
43
43
|
for (let i = 0; i < sortedBreackPointKey.length; i++) {
|
|
44
44
|
key = sortedBreackPointKey[i];
|
|
45
|
+
|
|
45
46
|
if (getBreakPointValue(key) >= size.width) {
|
|
46
47
|
break;
|
|
47
48
|
}
|
|
48
49
|
}
|
|
50
|
+
|
|
49
51
|
return key;
|
|
50
52
|
}
|