@zohodesk/components 1.0.0-alpha-271 → 1.0.0-alpha-272
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/AvatarTeam/AvatarTeam.js +3 -3
- package/es/Button/Button.js +4 -3
- package/es/Buttongroup/Buttongroup.js +3 -3
- package/es/Card/Card.js +21 -10
- package/es/CheckBox/CheckBox.js +5 -3
- package/es/DateTime/CalendarView.js +32 -20
- package/es/DateTime/DateTime.js +75 -10
- 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/__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/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/DropDownHeading.js +4 -5
- package/es/DropDown/DropDownItem.js +6 -0
- package/es/DropDown/DropDownSearch.js +4 -0
- package/es/DropDown/DropDownSeparator.js +1 -0
- package/es/DropDown/__tests__/DropDown.spec.js +1 -2
- package/es/Heading/Heading.js +2 -3
- package/es/Label/Label.js +2 -3
- 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/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/MultiSelectHeader.js +3 -0
- package/es/MultiSelect/MultiSelectWithAvatar.js +12 -6
- package/es/MultiSelect/SelectedOptions.js +6 -3
- 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/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/Ribbon/Ribbon.js +3 -2
- package/es/RippleEffect/RippleEffect.js +1 -3
- package/es/Select/GroupSelect.js +58 -14
- package/es/Select/Select.js +79 -33
- 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/Switch/Switch.js +5 -3
- package/es/Tab/Tab.js +4 -4
- 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/__tests__/Tab.spec.js +1 -3
- package/es/Tab/__tests__/TabWrapper.spec.js +1 -0
- package/es/Tag/Tag.js +6 -3
- package/es/TextBox/TextBox.js +15 -3
- package/es/TextBox/__tests__/TextBox.spec.js +1 -4
- package/es/TextBoxIcon/TextBoxIcon.js +9 -2
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +2 -7
- package/es/Textarea/Textarea.js +12 -3
- package/es/Textarea/__tests__/Textarea.spec.js +2 -2
- package/es/Tooltip/Tooltip.js +58 -14
- 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/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/__tests__/Avatar.spec.js +44 -0
- package/lib/Avatar/props/propTypes.js +3 -0
- package/lib/AvatarTeam/AvatarTeam.js +52 -30
- 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/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/__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/__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 +246 -158
- package/lib/DateTime/DateTimePopupFooter.js +31 -8
- package/lib/DateTime/DateTimePopupHeader.js +48 -17
- package/lib/DateTime/DateWidget.js +352 -250
- package/lib/DateTime/DaysRow.js +27 -5
- package/lib/DateTime/Time.js +73 -32
- package/lib/DateTime/YearView.js +77 -28
- 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 +34 -10
- package/lib/DropBox/DropBoxElement/DropBoxElement.js +59 -38
- package/lib/DropBox/DropBoxElement/css/cssJSLogic.js +42 -34
- package/lib/DropBox/DropBoxElement/props/propTypes.js +3 -0
- package/lib/DropBox/DropBoxElement/useDropboxPosCalc.js +14 -9
- package/lib/DropBox/__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/DropDownHeading.js +39 -20
- package/lib/DropDown/DropDownItem.js +42 -20
- package/lib/DropDown/DropDownSearch.js +40 -17
- package/lib/DropDown/DropDownSeparator.js +24 -4
- 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/props/propTypes.js +3 -0
- package/lib/Label/Label.js +39 -19
- package/lib/Label/__tests__/Label.spec.js +14 -1
- package/lib/Label/props/propTypes.js +3 -0
- 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 +48 -27
- package/lib/ListItem/ListItem.js +69 -45
- 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 +294 -166
- package/lib/MultiSelect/AdvancedMultiSelect.js +202 -125
- package/lib/MultiSelect/EmptyState.js +45 -24
- package/lib/MultiSelect/MultiSelect.js +323 -206
- package/lib/MultiSelect/MultiSelectHeader.js +30 -8
- package/lib/MultiSelect/MultiSelectWithAvatar.js +105 -63
- package/lib/MultiSelect/SelectedOptions.js +43 -17
- 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 -81
- 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/__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 +62 -36
- package/lib/Responsive/ResizeObserver.js +24 -10
- package/lib/Responsive/Responsive.js +80 -30
- package/lib/Responsive/index.js +4 -0
- package/lib/Responsive/props/propTypes.js +3 -0
- package/lib/Responsive/sizeObservers.js +53 -17
- package/lib/Responsive/utils/index.js +11 -3
- package/lib/Responsive/utils/shallowCompare.js +11 -2
- package/lib/Responsive/windowResizeObserver.js +8 -0
- package/lib/ResponsiveDropBox/ResponsiveDropBox.js +45 -17
- package/lib/ResponsiveDropBox/props/propTypes.js +3 -0
- package/lib/Ribbon/Ribbon.js +33 -13
- 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 +229 -130
- package/lib/Select/Select.js +290 -209
- package/lib/Select/SelectWithAvatar.js +102 -56
- package/lib/Select/SelectWithIcon.js +132 -76
- 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/__tests__/Stencils.spec.js +12 -0
- package/lib/Stencils/props/propTypes.js +3 -0
- package/lib/Switch/Switch.js +57 -34
- package/lib/Switch/props/propTypes.js +3 -0
- package/lib/Tab/Tab.js +40 -27
- 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 +171 -91
- 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/__tests__/Tag.spec.js +14 -8
- package/lib/Tag/props/propTypes.js +3 -0
- package/lib/TextBox/TextBox.js +85 -59
- 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/__tests__/TextBoxIcon.spec.js +14 -5
- package/lib/TextBoxIcon/props/propTypes.js +3 -0
- package/lib/Textarea/Textarea.js +54 -29
- 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/__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/css.js +40 -0
- package/lib/deprecated/PortalLayer/PortalLayer.js +46 -23
- package/lib/deprecated/PortalLayer/props/propTypes.js +3 -0
- package/lib/index.js +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 +110 -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 +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 +1 -1
|
@@ -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
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
function isSame(a, b) {
|
|
2
2
|
return a === b;
|
|
3
3
|
}
|
|
4
|
+
|
|
4
5
|
const {
|
|
5
6
|
hasOwnProperty
|
|
6
7
|
} = Object.prototype;
|
|
@@ -8,16 +9,20 @@ export default function shallowCompare(objA, objB) {
|
|
|
8
9
|
if (objA && objB && typeof objA === 'object' && typeof objB === 'object') {
|
|
9
10
|
const keysA = Object.keys(objA);
|
|
10
11
|
const keysB = Object.keys(objB);
|
|
12
|
+
|
|
11
13
|
if (keysA.length !== keysB.length) {
|
|
12
14
|
return false;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
+
} // Test for A's keys different from B.
|
|
16
|
+
|
|
17
|
+
|
|
15
18
|
for (let key of keysA) {
|
|
16
19
|
if (!hasOwnProperty.call(objB, key) || !isSame(objA[key], objB[key])) {
|
|
17
20
|
return false;
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
|
|
20
24
|
return true;
|
|
21
25
|
}
|
|
26
|
+
|
|
22
27
|
return isSame(objA, objB);
|
|
23
28
|
}
|
|
@@ -6,6 +6,7 @@ export const windowResizeObserver = (() => {
|
|
|
6
6
|
width: 0
|
|
7
7
|
};
|
|
8
8
|
let breackPoint = null;
|
|
9
|
+
|
|
9
10
|
function handleResize() {
|
|
10
11
|
const newSize = {
|
|
11
12
|
height: window.innerHeight,
|
|
@@ -13,26 +14,32 @@ export const windowResizeObserver = (() => {
|
|
|
13
14
|
};
|
|
14
15
|
size = newSize;
|
|
15
16
|
const newBreackPoint = defaultMatcher(size);
|
|
17
|
+
|
|
16
18
|
if (newBreackPoint !== breackPoint) {
|
|
17
19
|
breackPoint = newBreackPoint;
|
|
18
20
|
listeners.forEach(listener => listener(newBreackPoint));
|
|
19
21
|
}
|
|
20
22
|
}
|
|
23
|
+
|
|
21
24
|
function addResizeListener() {
|
|
22
25
|
window.addEventListener('resize', handleResize);
|
|
23
26
|
handleResize();
|
|
24
27
|
}
|
|
28
|
+
|
|
25
29
|
function removeResizeListener() {
|
|
26
30
|
window.removeEventListener('resize', handleResize);
|
|
27
31
|
}
|
|
32
|
+
|
|
28
33
|
return {
|
|
29
34
|
observe: function (listener) {
|
|
30
35
|
listeners.push(listener);
|
|
31
36
|
listener.length === 1 && addResizeListener();
|
|
32
37
|
},
|
|
38
|
+
|
|
33
39
|
getBreackPoint() {
|
|
34
40
|
return breackPoint;
|
|
35
41
|
},
|
|
42
|
+
|
|
36
43
|
getSize: function () {
|
|
37
44
|
return size;
|
|
38
45
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
2
3
|
import React, { Component } from 'react';
|
|
3
4
|
import { defaultProps } from './props/defaultProps';
|
|
4
5
|
import { propTypes } from './props/propTypes';
|
|
@@ -11,6 +12,7 @@ export default class ResponsiveDropBox extends Component {
|
|
|
11
12
|
super(props);
|
|
12
13
|
this.responsiveFunc = this.responsiveFunc.bind(this);
|
|
13
14
|
}
|
|
15
|
+
|
|
14
16
|
responsiveFunc(_ref) {
|
|
15
17
|
let {
|
|
16
18
|
mediaQueryOR
|
|
@@ -21,6 +23,7 @@ export default class ResponsiveDropBox extends Component {
|
|
|
21
23
|
}])
|
|
22
24
|
};
|
|
23
25
|
}
|
|
26
|
+
|
|
24
27
|
render() {
|
|
25
28
|
const {
|
|
26
29
|
children,
|
|
@@ -58,6 +61,7 @@ export default class ResponsiveDropBox extends Component {
|
|
|
58
61
|
}, children);
|
|
59
62
|
}));
|
|
60
63
|
}
|
|
64
|
+
|
|
61
65
|
}
|
|
62
66
|
ResponsiveDropBox.propTypes = propTypes;
|
|
63
67
|
ResponsiveDropBox.defaultProps = defaultProps;
|
package/es/Ribbon/Ribbon.js
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { defaultProps } from './props/defaultProps';
|
|
3
3
|
import { propTypes } from './props/propTypes';
|
|
4
4
|
/* eslint css-modules/no-unused-class: [2, { markAsUsed: [default, flag, plain, ribbon, box, stamp, sticker, small, medium, large, xlarge, palette_default, palette_danger, palette_primary, palette_secondary, palette_info, palette_dark, plain_default, plain_danger, plain_primary, plain_secondary, plain_info, plain_dark, tag] }] */
|
|
5
|
+
|
|
5
6
|
import style from './Ribbon.module.css';
|
|
6
7
|
export default class Ribbon extends React.Component {
|
|
7
8
|
render() {
|
|
@@ -30,10 +31,10 @@ export default class Ribbon extends React.Component {
|
|
|
30
31
|
className: style.before
|
|
31
32
|
}) : null);
|
|
32
33
|
}
|
|
34
|
+
|
|
33
35
|
}
|
|
34
36
|
Ribbon.propTypes = propTypes;
|
|
35
|
-
Ribbon.defaultProps = defaultProps;
|
|
36
|
-
// if (__DOCS__) {
|
|
37
|
+
Ribbon.defaultProps = defaultProps; // if (__DOCS__) {
|
|
37
38
|
// Ribbon.docs = {
|
|
38
39
|
// componentGroup: 'Atom',
|
|
39
40
|
// folderName: 'Style Guide',
|
|
@@ -21,9 +21,7 @@ export default function RippleEffect(props) {
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
RippleEffect.defaultProps = defaultProps;
|
|
24
|
-
RippleEffect.propTypes = propTypes;
|
|
25
|
-
|
|
26
|
-
// if (__DOCS__) {
|
|
24
|
+
RippleEffect.propTypes = propTypes; // if (__DOCS__) {
|
|
27
25
|
// RippleEffect.docs = {
|
|
28
26
|
// componentGroup: 'RippleEffect',
|
|
29
27
|
// folderName: 'Style Guide'
|