@zohodesk/components 1.0.0-temp-157 → 1.0.0-temp-158
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/es/Accordion/Accordion.js +7 -3
- package/es/Accordion/AccordionItem.js +4 -2
- package/es/Animation/Animation.js +3 -3
- package/es/AppContainer/AppContainer.js +13 -5
- package/es/Avatar/Avatar.js +23 -11
- package/es/Avatar/Avatar.module.css +8 -8
- package/es/AvatarTeam/AvatarTeam.js +3 -3
- package/es/AvatarTeam/AvatarTeam.module.css +33 -32
- package/es/Button/Button.js +4 -3
- package/es/Button/css/Button.module.css +49 -48
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Buttongroup/Buttongroup.module.css +10 -10
- package/es/Card/Card.js +21 -10
- package/es/CheckBox/CheckBox.js +5 -3
- package/es/CheckBox/CheckBox.module.css +14 -14
- package/es/DateTime/CalendarView.js +32 -20
- package/es/DateTime/DateTime.js +76 -11
- package/es/DateTime/DateTime.module.css +32 -32
- package/es/DateTime/DateTimePopupFooter.js +4 -2
- package/es/DateTime/DateTimePopupHeader.js +8 -2
- package/es/DateTime/DateWidget.js +98 -35
- 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 +12 -12
- 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 +6 -2
- package/es/DropBox/DropBoxElement/DropBoxElement.js +7 -0
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +42 -41
- package/es/DropBox/DropBoxElement/css/cssJSLogic.js +5 -3
- package/es/DropBox/DropBoxElement/useDropboxPosCalc.js +3 -0
- package/es/DropBox/props/defaultProps.js +1 -2
- package/es/DropBox/props/propTypes.js +1 -2
- package/es/DropDown/DropDown.js +8 -4
- package/es/DropDown/DropDown.module.css +2 -2
- package/es/DropDown/DropDownHeading.js +4 -5
- package/es/DropDown/DropDownHeading.module.css +5 -5
- package/es/DropDown/DropDownItem.js +6 -0
- package/es/DropDown/DropDownItem.module.css +7 -7
- 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 +2 -3
- package/es/Heading/Heading.module.css +1 -1
- package/es/Label/Label.js +4 -10
- package/es/Label/Label.module.css +6 -6
- package/es/Label/props/propTypes.js +1 -4
- package/es/Layout/Box.js +13 -0
- package/es/Layout/Container.js +12 -1
- package/es/Layout/index.js +1 -2
- package/es/ListItem/ListContainer.js +8 -3
- package/es/ListItem/ListItem.js +9 -3
- package/es/ListItem/ListItem.module.css +37 -37
- package/es/ListItem/ListItemWithAvatar.js +9 -3
- package/es/ListItem/ListItemWithCheckBox.js +7 -2
- package/es/ListItem/ListItemWithIcon.js +8 -3
- package/es/ListItem/ListItemWithRadio.js +7 -3
- package/es/Modal/Modal.js +28 -11
- package/es/MultiSelect/AdvancedGroupMultiSelect.js +89 -13
- package/es/MultiSelect/AdvancedMultiSelect.js +32 -9
- package/es/MultiSelect/EmptyState.js +2 -0
- package/es/MultiSelect/MultiSelect.js +99 -32
- package/es/MultiSelect/MultiSelect.module.css +25 -24
- package/es/MultiSelect/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
- package/es/MultiSelect/SelectedOptions.js +6 -3
- package/es/MultiSelect/SelectedOptions.module.css +4 -4
- 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 -24
- 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 +35 -25
- package/es/Responsive/ResizeObserver.js +26 -6
- package/es/Responsive/Responsive.js +34 -20
- package/es/Responsive/index.js +1 -3
- package/es/Responsive/sizeObservers.js +28 -7
- package/es/Responsive/utils/index.js +7 -5
- package/es/Responsive/utils/shallowCompare.js +7 -2
- package/es/Responsive/windowResizeObserver.js +7 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +4 -0
- package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +1 -1
- package/es/Ribbon/Ribbon.js +3 -2
- package/es/Ribbon/Ribbon.module.css +44 -42
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +58 -14
- package/es/Select/Select.js +79 -33
- package/es/Select/Select.module.css +19 -19
- package/es/Select/SelectWithAvatar.js +17 -4
- package/es/Select/SelectWithIcon.js +46 -5
- 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 +13 -13
- package/es/Switch/Switch.js +5 -3
- package/es/Switch/Switch.module.css +22 -22
- package/es/Tab/Tab.js +4 -4
- package/es/Tab/Tab.module.css +10 -10
- 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 +54 -7
- package/es/Tab/Tabs.module.css +12 -12
- package/es/Tab/__tests__/Tab.spec.js +1 -3
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
- package/es/Tag/Tag.js +6 -3
- package/es/Tag/Tag.module.css +20 -20
- package/es/TextBox/TextBox.js +15 -3
- package/es/TextBox/TextBox.module.css +15 -14
- package/es/TextBox/__tests__/TextBox.spec.js +1 -4
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/TextBoxIcon.module.css +2 -1
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
- package/es/Textarea/Textarea.js +12 -3
- package/es/Textarea/Textarea.module.css +21 -21
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +58 -14
- package/es/Tooltip/Tooltip.module.css +10 -3
- 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/avatarsizes.module.css +16 -16
- package/es/common/customscroll.module.css +2 -0
- package/es/common/reset.module.css +1 -0
- package/es/deprecated/AdvancedMultiSelect.module.css +16 -16
- package/es/deprecated/PortalLayer/PortalLayer.js +25 -20
- package/es/semantic/Button/Button.js +3 -2
- package/es/utils/Common.js +54 -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 +42 -18
- package/lib/Accordion/AccordionItem.js +40 -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 +56 -21
- package/lib/AppContainer/props/propTypes.js +3 -0
- package/lib/Avatar/Avatar.js +78 -38
- package/lib/Avatar/Avatar.module.css +8 -8
- package/lib/Avatar/__tests__/Avatar.spec.js +44 -0
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +52 -30
- package/lib/AvatarTeam/AvatarTeam.module.css +33 -32
- package/lib/AvatarTeam/__tests__/AvatarTeam.spec.js +13 -0
- package/lib/AvatarTeam/props/propTypes.js +3 -0
- package/lib/Button/Button.js +31 -20
- package/lib/Button/css/Button.module.css +49 -48
- package/lib/Button/css/cssJSLogic.js +18 -17
- package/lib/Button/index.js +3 -0
- package/lib/Button/props/defaultProps.js +2 -0
- package/lib/Button/props/propTypes.js +3 -0
- package/lib/Buttongroup/Buttongroup.js +32 -12
- package/lib/Buttongroup/Buttongroup.module.css +10 -10
- 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 +14 -14
- package/lib/CheckBox/__tests__/CheckBox.spec.js +3 -0
- package/lib/CheckBox/props/propTypes.js +3 -0
- package/lib/DateTime/CalendarView.js +82 -42
- package/lib/DateTime/DateTime.js +248 -160
- package/lib/DateTime/DateTime.module.css +32 -32
- package/lib/DateTime/DateTimePopupFooter.js +32 -9
- package/lib/DateTime/DateTimePopupHeader.js +49 -18
- package/lib/DateTime/DateWidget.js +353 -251
- package/lib/DateTime/DaysRow.js +28 -6
- package/lib/DateTime/Time.js +74 -33
- package/lib/DateTime/YearView.js +78 -29
- package/lib/DateTime/YearView.module.css +12 -12
- 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 +55 -23
- 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 +34 -10
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +58 -37
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +42 -41
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +41 -33
- package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
- package/lib/DropBox/__tests__/DropBox.spec.js +6 -2
- 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 +52 -8
- package/lib/DropDown/DropDown.module.css +2 -2
- package/lib/DropDown/DropDownHeading.js +39 -20
- package/lib/DropDown/DropDownHeading.module.css +5 -5
- package/lib/DropDown/DropDownItem.js +42 -20
- package/lib/DropDown/DropDownItem.module.css +7 -7
- 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 +37 -15
- package/lib/Heading/Heading.module.css +1 -1
- package/lib/Heading/props/propTypes.js +3 -0
- package/lib/Label/Label.js +41 -27
- package/lib/Label/Label.module.css +6 -6
- package/lib/Label/__tests__/Label.spec.js +14 -1
- package/lib/Label/props/propTypes.js +4 -4
- package/lib/Layout/Box.js +31 -11
- package/lib/Layout/Container.js +29 -10
- 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/propTypes.js +3 -0
- package/lib/Layout/utils.js +10 -0
- package/lib/ListItem/ListContainer.js +49 -28
- package/lib/ListItem/ListItem.js +70 -46
- package/lib/ListItem/ListItem.module.css +37 -37
- package/lib/ListItem/ListItemWithAvatar.js +76 -49
- package/lib/ListItem/ListItemWithCheckBox.js +64 -39
- package/lib/ListItem/ListItemWithIcon.js +69 -45
- 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 +46 -11
- package/lib/Modal/props/propTypes.js +3 -0
- package/lib/MultiSelect/AdvancedGroupMultiSelect.js +295 -167
- package/lib/MultiSelect/AdvancedMultiSelect.js +203 -125
- package/lib/MultiSelect/EmptyState.js +46 -25
- package/lib/MultiSelect/MultiSelect.js +324 -206
- package/lib/MultiSelect/MultiSelect.module.css +25 -24
- package/lib/MultiSelect/MultiSelectHeader.js +31 -9
- package/lib/MultiSelect/MultiSelectWithAvatar.js +106 -64
- package/lib/MultiSelect/SelectedOptions.js +44 -18
- package/lib/MultiSelect/SelectedOptions.module.css +4 -4
- package/lib/MultiSelect/Suggestions.js +65 -33
- 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 +159 -82
- package/lib/Popup/__tests__/Popup.spec.js +44 -9
- 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 +62 -39
- 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 -28
- package/lib/Responsive/RefWrapper.js +17 -11
- package/lib/Responsive/ResizeComponent.js +63 -39
- package/lib/Responsive/ResizeObserver.js +24 -10
- package/lib/Responsive/Responsive.js +81 -31
- 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 +1 -1
- package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
- package/lib/Ribbon/Ribbon.js +34 -14
- package/lib/Ribbon/Ribbon.module.css +44 -42
- 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 -131
- package/lib/Select/Select.js +291 -209
- package/lib/Select/Select.module.css +19 -19
- package/lib/Select/SelectWithAvatar.js +103 -57
- package/lib/Select/SelectWithIcon.js +133 -77
- package/lib/Select/__tests__/Select.spec.js +134 -92
- 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 +30 -11
- package/lib/Stencils/Stencils.module.css +13 -13
- package/lib/Stencils/__tests__/Stencils.spec.js +12 -0
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +57 -34
- package/lib/Switch/Switch.module.css +22 -22
- package/lib/Switch/props/propTypes.js +3 -0
- package/lib/Tab/Tab.js +41 -28
- package/lib/Tab/Tab.module.css +10 -10
- 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 +172 -98
- package/lib/Tab/Tabs.module.css +12 -12
- 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 +72 -43
- package/lib/Tag/Tag.module.css +20 -20
- package/lib/Tag/__tests__/Tag.spec.js +14 -8
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +86 -60
- package/lib/TextBox/TextBox.module.css +15 -14
- 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 +2 -1
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +14 -4
- package/lib/TextBoxIcon/props/propTypes.js +3 -0
- package/lib/Textarea/Textarea.js +55 -30
- 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 +94 -31
- package/lib/Tooltip/Tooltip.module.css +10 -3
- 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/avatarsizes.module.css +16 -16
- package/lib/common/customscroll.module.css +2 -0
- package/lib/common/reset.module.css +1 -0
- package/lib/css.js +40 -0
- package/lib/deprecated/AdvancedMultiSelect.module.css +16 -16
- package/lib/deprecated/PortalLayer/PortalLayer.js +47 -24
- package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
- package/lib/index.js +57 -0
- package/lib/semantic/Button/Button.js +42 -22
- package/lib/semantic/Button/props/propTypes.js +3 -0
- package/lib/semantic/index.js +2 -0
- package/lib/utils/Common.js +108 -18
- 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 +176 -60
- 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 +20 -13
|
@@ -11,8 +11,8 @@ export default class ResizeComponent extends React.Component {
|
|
|
11
11
|
super(props);
|
|
12
12
|
this.noSpaceForChildren = false;
|
|
13
13
|
this.childrenCurrentList = [];
|
|
14
|
-
this.widthCheck = debounce(this.widthCheck.bind(this), 10);
|
|
15
|
-
|
|
14
|
+
this.widthCheck = debounce(this.widthCheck.bind(this), 10); // this.widthCheck = this.widthCheck.bind(this);
|
|
15
|
+
|
|
16
16
|
this.onResize = this.onResize.bind(this);
|
|
17
17
|
this.onResizeMutation = this.onResizeMutation.bind(this);
|
|
18
18
|
this.tabsObserver = new ResizeObserver(this.onResize);
|
|
@@ -21,6 +21,7 @@ export default class ResizeComponent extends React.Component {
|
|
|
21
21
|
this.constructChildren = this.constructChildren.bind(this);
|
|
22
22
|
this.querySelector = this.querySelector.bind(this);
|
|
23
23
|
}
|
|
24
|
+
|
|
24
25
|
querySelector() {
|
|
25
26
|
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
26
27
|
return this.props.wrapperDivRef.current.querySelectorAll('[data-responsive="true"]');
|
|
@@ -28,11 +29,13 @@ export default class ResizeComponent extends React.Component {
|
|
|
28
29
|
return [];
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
|
|
31
33
|
onResizeMutation(mutations) {
|
|
32
34
|
// console.log(mutations);
|
|
33
35
|
let {
|
|
34
36
|
childrenList
|
|
35
37
|
} = this.props;
|
|
38
|
+
|
|
36
39
|
for (const mutation of mutations) {
|
|
37
40
|
if (mutation.type === 'childList') {
|
|
38
41
|
if (mutation.addedNodes.length) {
|
|
@@ -43,24 +46,19 @@ export default class ResizeComponent extends React.Component {
|
|
|
43
46
|
newAdded = true;
|
|
44
47
|
}
|
|
45
48
|
});
|
|
49
|
+
|
|
46
50
|
if (newAdded) {
|
|
47
51
|
//console.log('A child node has been added ', mutation);
|
|
48
|
-
|
|
49
52
|
this.onResize();
|
|
50
53
|
}
|
|
51
|
-
} else if (mutation.removedNodes.length) {
|
|
52
|
-
// ?? removed nodes ku check pannanum ah ??
|
|
54
|
+
} else if (mutation.removedNodes.length) {// ?? removed nodes ku check pannanum ah ??
|
|
53
55
|
// console.log('A child node has been removed ', mutation);
|
|
54
56
|
}
|
|
55
|
-
} else if (mutation.type === 'attributes') {
|
|
56
|
-
|
|
57
|
-
} else if (mutation.type === 'characterData') {
|
|
58
|
-
// 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.
|
|
59
59
|
// this.onResize();
|
|
60
60
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// mutations.forEach(mutation => {
|
|
61
|
+
} // mutations.forEach(mutation => {
|
|
64
62
|
// if (mutation.target === foo &&
|
|
65
63
|
// mutation.attributeName === 'style' &&
|
|
66
64
|
// oldWidth !== foo.style.width) {
|
|
@@ -69,6 +67,7 @@ export default class ResizeComponent extends React.Component {
|
|
|
69
67
|
// oldWidth = foo.style.width;
|
|
70
68
|
// }
|
|
71
69
|
// });
|
|
70
|
+
|
|
72
71
|
}
|
|
73
72
|
|
|
74
73
|
componentDidMount() {
|
|
@@ -83,22 +82,27 @@ export default class ResizeComponent extends React.Component {
|
|
|
83
82
|
});
|
|
84
83
|
}
|
|
85
84
|
}
|
|
85
|
+
|
|
86
86
|
componentWillUnmount() {
|
|
87
87
|
this.reset();
|
|
88
88
|
}
|
|
89
|
+
|
|
89
90
|
reset() {
|
|
90
91
|
this.childrenCurrentList = [];
|
|
91
92
|
this.tabsObserver.disconnect();
|
|
92
93
|
this.tabObserver && this.tabObserver.disconnect();
|
|
93
94
|
}
|
|
95
|
+
|
|
94
96
|
componentDidUpdate(prevProps) {
|
|
95
97
|
if (this.childrenCurrentList.length === 0) {
|
|
96
98
|
this.childrenCurrentList = this.querySelector();
|
|
97
99
|
this.widthCheck();
|
|
98
100
|
}
|
|
101
|
+
|
|
99
102
|
if (this.props.resizeId !== prevProps.resizeId) {
|
|
100
103
|
// Completely reset the observers and set new observer if id is changed
|
|
101
104
|
this.reset();
|
|
105
|
+
|
|
102
106
|
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
103
107
|
this.tabsObserver.observe(this.props.wrapperDivRef.current);
|
|
104
108
|
this.tabObserver.observe(this.props.wrapperDivRef.current, {
|
|
@@ -111,67 +115,73 @@ export default class ResizeComponent extends React.Component {
|
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
}
|
|
118
|
+
|
|
114
119
|
onResize() {
|
|
115
120
|
// if (this.childrenCurrentList.length !== 0) {
|
|
116
121
|
this.childrenCurrentList = [];
|
|
117
|
-
this.constructChildren(0, false);
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// shouldComponentUpdate() {
|
|
122
|
+
this.constructChildren(0, false); //}
|
|
123
|
+
} // shouldComponentUpdate() {
|
|
122
124
|
// return this.childrenCurrentList.length === 0
|
|
123
125
|
// }
|
|
124
126
|
|
|
127
|
+
|
|
125
128
|
widthCheck() {
|
|
126
129
|
let wrapperDivRef = this.props.wrapperDivRef.current;
|
|
127
130
|
let moreDivRef = this.props.moreDivRef.current;
|
|
131
|
+
|
|
128
132
|
if (wrapperDivRef && this.childrenCurrentList.length > 0) {
|
|
129
|
-
const childrenWidthList = this.childrenCurrentList;
|
|
130
|
-
|
|
131
|
-
const moreWidth = getElementSpace(moreDivRef).neededSpace;
|
|
132
|
-
|
|
133
|
+
const childrenWidthList = this.childrenCurrentList; // this.childrenCurrentList = childrenWidthList;
|
|
134
|
+
|
|
135
|
+
const moreWidth = getElementSpace(moreDivRef).neededSpace; //console.log(moreWidth,'moreWidth');
|
|
136
|
+
|
|
133
137
|
let totalWidth = getElementSpace(wrapperDivRef).availableInsideSpace - moreWidth;
|
|
134
138
|
let _childrenTotalWidth = 0;
|
|
135
139
|
let dataCount = 0;
|
|
136
140
|
this.noSpaceForChildren = false;
|
|
141
|
+
|
|
137
142
|
if (totalWidth <= moreWidth) {
|
|
138
143
|
this.noSpaceForChildren = true;
|
|
139
144
|
} else {
|
|
140
145
|
for (let i = 0; i < childrenWidthList.length; i++) {
|
|
141
146
|
let currentWidth = getElementSpace(childrenWidthList[i]).neededSpace;
|
|
142
|
-
_childrenTotalWidth += currentWidth;
|
|
143
|
-
|
|
147
|
+
_childrenTotalWidth += currentWidth; // console.log(_childrenTotalWidth, currentWidth, totalWidth)
|
|
148
|
+
|
|
144
149
|
if (i === childrenWidthList.length - 1 && moreWidth >= currentWidth) {
|
|
145
150
|
totalWidth += moreWidth;
|
|
146
151
|
}
|
|
152
|
+
|
|
147
153
|
if (totalWidth <= _childrenTotalWidth) {
|
|
148
154
|
dataCount = i;
|
|
149
155
|
break;
|
|
150
156
|
}
|
|
151
157
|
}
|
|
152
158
|
}
|
|
159
|
+
|
|
153
160
|
this.constructChildren(dataCount, true);
|
|
154
161
|
} else {
|
|
155
162
|
this.constructChildren(0, false);
|
|
156
163
|
}
|
|
157
164
|
}
|
|
165
|
+
|
|
158
166
|
constructChildren() {
|
|
159
167
|
let dataCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
160
168
|
let responsive = arguments.length > 1 ? arguments[1] : undefined;
|
|
161
169
|
const {
|
|
162
170
|
childrenList,
|
|
163
171
|
getData
|
|
164
|
-
} = this.props;
|
|
165
|
-
|
|
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
|
+
|
|
166
174
|
dataCount = dataCount || childrenList && childrenList.length;
|
|
167
175
|
getData({
|
|
168
176
|
responsiveHook: responsive,
|
|
169
177
|
validListCount: this.noSpaceForChildren ? 0 : dataCount
|
|
170
178
|
});
|
|
171
179
|
}
|
|
180
|
+
|
|
172
181
|
render() {
|
|
173
182
|
return /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children);
|
|
174
183
|
}
|
|
184
|
+
|
|
175
185
|
}
|
|
176
186
|
ResizeComponent.propTypes = {
|
|
177
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
|
}
|