@zohodesk/components 1.2.28 → 1.2.30
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/.cli/PropLessFiles.html +1 -1
- package/.cli/propValidation_report.html +1 -1
- package/README.md +8 -0
- package/es/AppContainer/AppContainer.js +10 -9
- package/es/Avatar/Avatar.js +4 -5
- package/es/Avatar/Avatar.module.css +0 -12
- package/es/AvatarTeam/AvatarTeam.js +7 -7
- package/es/AvatarTeam/AvatarTeam.module.css +0 -4
- package/es/Button/Button.js +5 -6
- package/es/Button/css/Button.module.css +0 -6
- package/es/Buttongroup/Buttongroup.module.css +0 -2
- package/es/CheckBox/CheckBox.js +8 -8
- package/es/CheckBox/CheckBox.module.css +0 -2
- package/es/DateTime/DateTime.module.css +0 -1
- package/es/DropBox/DropBox.js +10 -11
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +0 -7
- package/es/DropBox/css/DropBox.module.css +0 -1
- package/es/DropDown/DropDown.js +2 -1
- package/es/DropDown/DropDownHeading.module.css +0 -6
- package/es/DropDown/DropDownItem.module.css +0 -3
- package/es/Label/Label.module.css +0 -1
- package/es/ListItem/ListContainer.js +6 -5
- package/es/ListItem/ListItem.js +4 -5
- package/es/ListItem/ListItem.module.css +0 -21
- package/es/ListItem/ListItemWithAvatar.js +4 -5
- package/es/ListItem/ListItemWithCheckBox.js +4 -5
- package/es/ListItem/ListItemWithIcon.js +4 -5
- package/es/ListItem/ListItemWithRadio.js +4 -5
- package/es/Modal/Modal.js +4 -5
- package/es/MultiSelect/AdvancedMultiSelect.js +8 -9
- package/es/MultiSelect/MultiSelectWithAvatar.js +4 -5
- package/es/MultiSelect/SelectedOptions.js +6 -8
- package/es/MultiSelect/Suggestions.js +6 -8
- package/es/MultiSelect/props/defaultProps.js +4 -2
- package/es/PopOver/PopOver.module.css +3 -3
- package/es/Popup/Popup.js +3 -4
- package/es/Radio/Radio.js +8 -8
- package/es/Radio/Radio.module.css +0 -1
- package/es/ResponsiveDropBox/ResponsiveDropBox.js +2 -4
- package/es/Ribbon/Ribbon.module.css +0 -4
- package/es/Select/Select.js +4 -5
- package/es/Switch/Switch.js +8 -8
- package/es/Switch/Switch.module.css +0 -2
- package/es/Tab/Tab.js +4 -5
- package/es/Tab/TabContentWrapper.js +4 -5
- package/es/Tab/TabWrapper.js +2 -4
- package/es/Tab/Tabs.js +16 -16
- package/es/Tag/Tag.module.css +0 -6
- package/es/TextBox/TextBox.js +5 -5
- package/es/TextBox/TextBox.module.css +1 -21
- package/es/TextBoxIcon/TextBoxIcon.js +2 -4
- package/es/TextBoxIcon/TextBoxIcon.module.css +0 -5
- package/es/Textarea/Textarea.js +4 -6
- package/es/Textarea/Textarea.module.css +0 -6
- package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +4 -5
- package/es/common/customscroll.module.css +27 -3
- package/es/deprecated/PortalLayer/PortalLayer.js +8 -6
- package/es/v1/Animation/Animation.js +1 -1
- package/es/v1/AppContainer/AppContainer.js +10 -9
- package/es/v1/Avatar/Avatar.js +4 -5
- package/es/v1/AvatarTeam/AvatarTeam.js +7 -7
- package/es/v1/Button/Button.js +5 -6
- package/es/v1/Card/Card.js +1 -1
- package/es/v1/CheckBox/CheckBox.js +9 -9
- package/es/v1/DropBox/DropBox.js +10 -11
- package/es/v1/DropBox/utils/isMobilePopover.js +1 -1
- package/es/v1/DropDown/DropDown.js +2 -1
- package/es/v1/ListItem/ListContainer.js +7 -6
- package/es/v1/ListItem/ListItem.js +4 -5
- package/es/v1/ListItem/ListItemWithAvatar.js +4 -5
- package/es/v1/ListItem/ListItemWithCheckBox.js +4 -5
- package/es/v1/ListItem/ListItemWithIcon.js +4 -5
- package/es/v1/ListItem/ListItemWithRadio.js +4 -5
- package/es/v1/Modal/Modal.js +4 -5
- package/es/v1/MultiSelect/AdvancedGroupMultiSelect.js +1 -1
- package/es/v1/MultiSelect/AdvancedMultiSelect.js +9 -10
- package/es/v1/MultiSelect/MultiSelectWithAvatar.js +5 -6
- package/es/v1/MultiSelect/SelectedOptions.js +6 -8
- package/es/v1/MultiSelect/Suggestions.js +6 -8
- package/es/v1/MultiSelect/props/defaultProps.js +5 -3
- package/es/v1/Popup/Popup.js +3 -4
- package/es/v1/Radio/Radio.js +8 -8
- package/es/v1/ResponsiveDropBox/ResponsiveDropBox.js +3 -5
- package/es/v1/Select/GroupSelect.js +1 -1
- package/es/v1/Select/Select.js +5 -6
- package/es/v1/Select/SelectWithAvatar.js +1 -1
- package/es/v1/Select/SelectWithIcon.js +1 -1
- package/es/v1/Select/props/defaultProps.js +1 -1
- package/es/v1/Switch/Switch.js +8 -8
- package/es/v1/Tab/Tab.js +4 -5
- package/es/v1/Tab/TabContentWrapper.js +4 -5
- package/es/v1/Tab/TabWrapper.js +2 -4
- package/es/v1/Tab/Tabs.js +18 -18
- package/es/v1/TextBox/TextBox.js +5 -5
- package/es/v1/TextBoxIcon/TextBoxIcon.js +2 -4
- package/es/v1/Textarea/Textarea.js +4 -6
- package/es/v1/Tooltip/Tooltip.js +1 -1
- package/es/v1/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +4 -5
- package/lib/Avatar/Avatar.module.css +0 -12
- package/lib/AvatarTeam/AvatarTeam.module.css +0 -4
- package/lib/Button/css/Button.module.css +0 -6
- package/lib/Buttongroup/Buttongroup.module.css +0 -2
- package/lib/CheckBox/CheckBox.module.css +0 -2
- package/lib/DateTime/DateTime.module.css +0 -1
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +0 -7
- package/lib/DropBox/css/DropBox.module.css +0 -1
- package/lib/DropDown/DropDownHeading.module.css +0 -6
- package/lib/DropDown/DropDownItem.module.css +0 -3
- package/lib/Label/Label.module.css +0 -1
- package/lib/ListItem/ListItem.module.css +0 -21
- package/lib/MultiSelect/props/defaultProps.js +4 -2
- package/lib/PopOver/PopOver.module.css +3 -3
- package/lib/Radio/Radio.module.css +0 -1
- package/lib/Ribbon/Ribbon.module.css +0 -4
- package/lib/Switch/Switch.module.css +0 -2
- package/lib/Tag/Tag.module.css +0 -6
- package/lib/TextBox/TextBox.module.css +1 -21
- package/lib/TextBoxIcon/TextBoxIcon.module.css +0 -5
- package/lib/Textarea/Textarea.module.css +0 -6
- package/lib/common/customscroll.module.css +27 -3
- package/lib/v1/Animation/Animation.js +1 -1
- package/lib/v1/Card/Card.js +1 -1
- package/lib/v1/CheckBox/CheckBox.js +1 -1
- package/lib/v1/DropBox/utils/isMobilePopover.js +1 -1
- package/lib/v1/ListItem/ListContainer.js +1 -1
- package/lib/v1/MultiSelect/AdvancedGroupMultiSelect.js +1 -1
- package/lib/v1/MultiSelect/AdvancedMultiSelect.js +1 -1
- package/lib/v1/MultiSelect/props/defaultProps.js +5 -3
- package/lib/v1/ResponsiveDropBox/ResponsiveDropBox.js +1 -1
- package/lib/v1/Select/GroupSelect.js +1 -1
- package/lib/v1/Select/Select.js +1 -1
- package/lib/v1/Select/SelectWithAvatar.js +1 -1
- package/lib/v1/Select/SelectWithIcon.js +1 -1
- package/lib/v1/Select/props/defaultProps.js +1 -1
- package/lib/v1/Tab/Tabs.js +2 -2
- package/lib/v1/Tooltip/Tooltip.js +1 -1
- package/package.json +10 -10
- package/result.json +1 -1
- package/es/v1/Provider/AvatarSize.js +0 -13
- package/es/v1/Provider/Config.js +0 -18
- package/es/v1/Provider/CssProvider.js +0 -16
- package/es/v1/Provider/IdProvider.js +0 -66
- package/es/v1/Provider/LibraryContext.js +0 -37
- package/es/v1/Provider/LibraryContextInit.js +0 -3
- package/es/v1/Provider/NumberGenerator/NumberGenerator.js +0 -136
- package/es/v1/Provider/ZindexProvider.js +0 -57
- package/es/v1/Provider/index.js +0 -4
- package/es/v1/Responsive/CustomResponsive.js +0 -195
- package/es/v1/Responsive/RefWrapper.js +0 -39
- package/es/v1/Responsive/ResizeComponent.js +0 -197
- package/es/v1/Responsive/ResizeObserver.js +0 -140
- package/es/v1/Responsive/Responsive.js +0 -194
- package/es/v1/Responsive/index.js +0 -9
- package/es/v1/Responsive/props/defaultProps.js +0 -13
- package/es/v1/Responsive/props/propTypes.js +0 -25
- package/lib/v1/Provider/AvatarSize.js +0 -24
- package/lib/v1/Provider/Config.js +0 -27
- package/lib/v1/Provider/CssProvider.js +0 -27
- package/lib/v1/Provider/IdProvider.js +0 -79
- package/lib/v1/Provider/LibraryContext.js +0 -76
- package/lib/v1/Provider/LibraryContextInit.js +0 -15
- package/lib/v1/Provider/NumberGenerator/NumberGenerator.js +0 -174
- package/lib/v1/Provider/ZindexProvider.js +0 -69
- package/lib/v1/Provider/index.js +0 -81
- package/lib/v1/Responsive/CustomResponsive.js +0 -242
- package/lib/v1/Responsive/RefWrapper.js +0 -57
- package/lib/v1/Responsive/ResizeComponent.js +0 -268
- package/lib/v1/Responsive/ResizeObserver.js +0 -168
- package/lib/v1/Responsive/Responsive.js +0 -274
- package/lib/v1/Responsive/index.js +0 -55
- package/lib/v1/Responsive/props/defaultProps.js +0 -23
- package/lib/v1/Responsive/props/propTypes.js +0 -39
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
// QUestions to be discussed
|
|
3
|
-
//1) mutation.type === 'characterData' needed ???
|
|
4
|
-
// 2) debounce Mutation observer and resize observer
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import PropTypes from 'prop-types';
|
|
7
|
-
import ResizeObserver from './ResizeObserver';
|
|
8
|
-
import { getElementSpace, debounce } from '../../utils/Common';
|
|
9
|
-
export default class ResizeComponent extends React.Component {
|
|
10
|
-
constructor(props) {
|
|
11
|
-
super(props);
|
|
12
|
-
this.noSpaceForChildren = false;
|
|
13
|
-
this.childrenCurrentList = [];
|
|
14
|
-
this.widthCheck = debounce(this.widthCheck.bind(this), 10); // this.widthCheck = this.widthCheck.bind(this);
|
|
15
|
-
|
|
16
|
-
this.onResize = this.onResize.bind(this);
|
|
17
|
-
this.onResizeMutation = this.onResizeMutation.bind(this);
|
|
18
|
-
this.tabsObserver = new ResizeObserver(this.onResize);
|
|
19
|
-
this.tabObserver = new MutationObserver(this.onResizeMutation);
|
|
20
|
-
this.reset = this.reset.bind(this);
|
|
21
|
-
this.constructChildren = this.constructChildren.bind(this);
|
|
22
|
-
this.querySelector = this.querySelector.bind(this);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
querySelector() {
|
|
26
|
-
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
27
|
-
return this.props.wrapperDivRef.current.querySelectorAll('[data-responsive="true"]');
|
|
28
|
-
} else {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
onResizeMutation(mutations) {
|
|
34
|
-
// console.log(mutations);
|
|
35
|
-
let {
|
|
36
|
-
childrenList
|
|
37
|
-
} = this.props;
|
|
38
|
-
|
|
39
|
-
for (const mutation of mutations) {
|
|
40
|
-
if (mutation.type === 'childList') {
|
|
41
|
-
if (mutation.addedNodes.length) {
|
|
42
|
-
let newAdded = false;
|
|
43
|
-
mutation.addedNodes.forEach(mut => {
|
|
44
|
-
// Here we can listen for icon nodes. Confirm with bk
|
|
45
|
-
if (mut.attributes && mut.attributes['data-responsive'] && (childrenList.length !== this.querySelector().length || this.childrenCurrentList.length !== this.querySelector().length)) {
|
|
46
|
-
newAdded = true;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
if (newAdded) {
|
|
51
|
-
//console.log('A child node has been added ', mutation);
|
|
52
|
-
this.onResize();
|
|
53
|
-
}
|
|
54
|
-
} else if (mutation.removedNodes.length) {// ?? removed nodes ku check pannanum ah ??
|
|
55
|
-
// console.log('A child node has been removed ', mutation);
|
|
56
|
-
}
|
|
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
|
-
// this.onResize();
|
|
60
|
-
}
|
|
61
|
-
} // mutations.forEach(mutation => {
|
|
62
|
-
// if (mutation.target === foo &&
|
|
63
|
-
// mutation.attributeName === 'style' &&
|
|
64
|
-
// oldWidth !== foo.style.width) {
|
|
65
|
-
// foo.textContent = 'Width changed from ' +
|
|
66
|
-
// oldWidth + ' to ' + foo.style.width;
|
|
67
|
-
// oldWidth = foo.style.width;
|
|
68
|
-
// }
|
|
69
|
-
// });
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
componentDidMount() {
|
|
74
|
-
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
75
|
-
this.tabsObserver.observe(this.props.wrapperDivRef.current);
|
|
76
|
-
this.tabObserver.observe(this.props.wrapperDivRef.current, {
|
|
77
|
-
characterData: true,
|
|
78
|
-
attributes: true,
|
|
79
|
-
childList: true,
|
|
80
|
-
subtree: true,
|
|
81
|
-
attributeFilter: ['data-responsive']
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
componentWillUnmount() {
|
|
87
|
-
this.reset();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
reset() {
|
|
91
|
-
this.childrenCurrentList = [];
|
|
92
|
-
this.tabsObserver.disconnect();
|
|
93
|
-
this.tabObserver && this.tabObserver.disconnect();
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
componentDidUpdate(prevProps) {
|
|
97
|
-
if (this.childrenCurrentList.length === 0) {
|
|
98
|
-
this.childrenCurrentList = this.querySelector();
|
|
99
|
-
this.widthCheck();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (this.props.resizeId !== prevProps.resizeId) {
|
|
103
|
-
// Completely reset the observers and set new observer if id is changed
|
|
104
|
-
this.reset();
|
|
105
|
-
|
|
106
|
-
if (this.props.wrapperDivRef && this.props.wrapperDivRef.current) {
|
|
107
|
-
this.tabsObserver.observe(this.props.wrapperDivRef.current);
|
|
108
|
-
this.tabObserver.observe(this.props.wrapperDivRef.current, {
|
|
109
|
-
characterData: true,
|
|
110
|
-
attributes: true,
|
|
111
|
-
childList: true,
|
|
112
|
-
subtree: true,
|
|
113
|
-
attributeFilter: ['data-responsive']
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
onResize() {
|
|
120
|
-
// if (this.childrenCurrentList.length !== 0) {
|
|
121
|
-
this.childrenCurrentList = [];
|
|
122
|
-
this.constructChildren(0, false); //}
|
|
123
|
-
} // shouldComponentUpdate() {
|
|
124
|
-
// return this.childrenCurrentList.length === 0
|
|
125
|
-
// }
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
widthCheck() {
|
|
129
|
-
let wrapperDivRef = this.props.wrapperDivRef.current;
|
|
130
|
-
let moreDivRef = this.props.moreDivRef.current;
|
|
131
|
-
|
|
132
|
-
if (wrapperDivRef && this.childrenCurrentList.length > 0) {
|
|
133
|
-
const childrenWidthList = this.childrenCurrentList; // this.childrenCurrentList = childrenWidthList;
|
|
134
|
-
|
|
135
|
-
const moreWidth = getElementSpace(moreDivRef).neededSpace; //console.log(moreWidth,'moreWidth');
|
|
136
|
-
|
|
137
|
-
let totalWidth = getElementSpace(wrapperDivRef).availableInsideSpace - moreWidth;
|
|
138
|
-
let _childrenTotalWidth = 0;
|
|
139
|
-
let dataCount = 0;
|
|
140
|
-
this.noSpaceForChildren = false;
|
|
141
|
-
|
|
142
|
-
if (totalWidth <= moreWidth) {
|
|
143
|
-
this.noSpaceForChildren = true;
|
|
144
|
-
} else {
|
|
145
|
-
for (let i = 0; i < childrenWidthList.length; i++) {
|
|
146
|
-
let currentWidth = getElementSpace(childrenWidthList[i]).neededSpace;
|
|
147
|
-
_childrenTotalWidth += currentWidth; // console.log(_childrenTotalWidth, currentWidth, totalWidth)
|
|
148
|
-
|
|
149
|
-
if (i === childrenWidthList.length - 1 && moreWidth >= currentWidth) {
|
|
150
|
-
totalWidth += moreWidth;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (totalWidth <= _childrenTotalWidth) {
|
|
154
|
-
dataCount = i;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
this.constructChildren(dataCount, true);
|
|
161
|
-
} else {
|
|
162
|
-
this.constructChildren(0, false);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
constructChildren() {
|
|
167
|
-
let dataCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
168
|
-
let responsive = arguments.length > 1 ? arguments[1] : undefined;
|
|
169
|
-
const {
|
|
170
|
-
childrenList,
|
|
171
|
-
getData
|
|
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
|
-
|
|
174
|
-
dataCount = dataCount || childrenList && childrenList.length;
|
|
175
|
-
getData({
|
|
176
|
-
responsiveHook: responsive,
|
|
177
|
-
validListCount: this.noSpaceForChildren ? 0 : dataCount
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
render() {
|
|
182
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, this.props.children);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
ResizeComponent.propTypes = {
|
|
187
|
-
children: PropTypes.node,
|
|
188
|
-
getData: PropTypes.func,
|
|
189
|
-
resizeId: PropTypes.number,
|
|
190
|
-
childrenList: PropTypes.array,
|
|
191
|
-
wrapperDivRef: PropTypes.any,
|
|
192
|
-
moreDivRef: PropTypes.any
|
|
193
|
-
};
|
|
194
|
-
ResizeComponent.defaultProps = {
|
|
195
|
-
getData: () => {},
|
|
196
|
-
resizeId: null
|
|
197
|
-
};
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
const hasResizeObserver = !!window.ResizeObserver;
|
|
2
|
-
const mutationObserverOptions = {
|
|
3
|
-
//NOTE: we donot consider child Count
|
|
4
|
-
// childList: true,
|
|
5
|
-
attributes: true
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
function getSize(element) {
|
|
9
|
-
let {
|
|
10
|
-
offsetHeight,
|
|
11
|
-
offsetWidth
|
|
12
|
-
} = element; // const { height, width } = element.getBoundingClientRect();
|
|
13
|
-
|
|
14
|
-
return {
|
|
15
|
-
height: offsetHeight,
|
|
16
|
-
width: offsetWidth
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function dispatch() {
|
|
21
|
-
let resizeResponsive = new Event('resizeResponsive');
|
|
22
|
-
window.dispatchEvent(resizeResponsive);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (!hasResizeObserver) {
|
|
26
|
-
let interval = null;
|
|
27
|
-
window.addEventListener('resize', () => {
|
|
28
|
-
clearTimeout(interval);
|
|
29
|
-
interval = setTimeout(dispatch, 100);
|
|
30
|
-
});
|
|
31
|
-
} // NOTE: this is not full polyfill , we just wrote what types of changes wlli
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
export default class ResizeObserverPolyfill {
|
|
35
|
-
constructor(onResize) {
|
|
36
|
-
// method finding
|
|
37
|
-
this.transitionEndHandler = this.transitionEndHandler.bind(this);
|
|
38
|
-
this.resizeHandlerDispatch = this.resizeHandlerDispatch.bind(this);
|
|
39
|
-
this.resizeHandler = this.resizeHandler.bind(this);
|
|
40
|
-
this.replaceResizeHandler = this.replaceResizeHandler.bind(this);
|
|
41
|
-
this.debounce = this.debounce.bind(this);
|
|
42
|
-
this.onResize = onResize;
|
|
43
|
-
this.targetNode = null;
|
|
44
|
-
this.size = {
|
|
45
|
-
height: 0,
|
|
46
|
-
width: 0
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
if (hasResizeObserver) {
|
|
50
|
-
this.resizeObserverInstance = new window.ResizeObserver(this.resizeHandlerDispatch);
|
|
51
|
-
} else {
|
|
52
|
-
this.mutationObserverInstance = new window.MutationObserver(this.resizeHandlerDispatch);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
replaceResizeHandler(onResize) {
|
|
57
|
-
this.onResize = onResize;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
resizeHandler() {
|
|
61
|
-
if (!this.targetNode) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const currentSize = getSize(this.targetNode); // if (this.size && shallowCompare(currentSize, this.size)) {
|
|
66
|
-
|
|
67
|
-
if (this.size && currentSize.height === this.size.height && currentSize.width === this.size.width) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
this.size = currentSize;
|
|
72
|
-
this.onResize(this.size, this.targetNode);
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
resizeHandlerDispatch() {
|
|
77
|
-
if (!this.resizeHandler() || hasResizeObserver) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
dispatch();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
debounce() {
|
|
85
|
-
clearTimeout(this.interval);
|
|
86
|
-
this.interval = setTimeout(this.resizeHandler, 100);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
transitionEndHandler(event) {
|
|
90
|
-
if (event.propertyName.indexOf('color') === -1) {
|
|
91
|
-
this.resizeHandlerDispatch();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
addEventListeners(targetNode) {
|
|
96
|
-
targetNode.addEventListener('transitionend', this.transitionEndHandler);
|
|
97
|
-
window.addEventListener('resizeResponsive', this.debounce);
|
|
98
|
-
targetNode.addEventListener('animationend', this.resizeHandlerDispatch);
|
|
99
|
-
targetNode.addEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
removeEventListeners(targetNode) {
|
|
103
|
-
targetNode.removeEventListener('transitionend', this.transitionEndHandler);
|
|
104
|
-
window.removeEventListener('resizeResponsive', this.debounce);
|
|
105
|
-
targetNode.removeEventListener('animationend', this.resizeHandlerDispatch);
|
|
106
|
-
targetNode.removeEventListener('webkitAnimationEnd', this.resizeHandlerDispatch);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
observe(targetNode) {
|
|
110
|
-
this.targetNode = targetNode;
|
|
111
|
-
|
|
112
|
-
if (hasResizeObserver) {
|
|
113
|
-
this.resizeObserverInstance.observe(targetNode);
|
|
114
|
-
} else {
|
|
115
|
-
this.addEventListeners(targetNode);
|
|
116
|
-
this.mutationObserverInstance.observe(targetNode, mutationObserverOptions);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
replaceObservationElement(targetNode) {
|
|
121
|
-
if (this.targetNode === targetNode) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
this.targetNode && this.disconnect();
|
|
126
|
-
targetNode && this.observe(targetNode);
|
|
127
|
-
targetNode && this.resizeHandlerDispatch();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
disconnect() {
|
|
131
|
-
this.targetNode && this.removeEventListeners(this.targetNode);
|
|
132
|
-
hasResizeObserver ? this.resizeObserverInstance.disconnect() : this.mutationObserverInstance.disconnect();
|
|
133
|
-
this.targetNode = null;
|
|
134
|
-
this.size = {
|
|
135
|
-
height: 0,
|
|
136
|
-
width: 0
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useEffect, useState, useMemo } from 'react'; // import React, { useState, useMemo, useCallback, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
import { ResponsiveSender_defaultProps, ResponsiveReceiver_defaultProps } from './props/defaultProps';
|
|
4
|
-
import { ResponsiveSender_propTypes, ResponsiveReceiver_propTypes } from './props/propTypes';
|
|
5
|
-
import ResizeObserver from './ResizeObserver';
|
|
6
|
-
import DOMRefWrapper from './RefWrapper';
|
|
7
|
-
import { windowResizeObserver } from '../../Responsive/windowResizeObserver';
|
|
8
|
-
import { getBreakPointValue, defaultMatcher } from '../../Responsive/utils/'; // const sortedBreackPointKey = [ 'MOBILE_XS', 'MOBILE_S', 'MOBILE_M', 'MOBILE', 'TABLET_S', 'TABLET_M', 'TABLET', 'LAPTOP_S', 'LAPTOP_M', 'LAPTOP', 'MONITOR_M', 'MONITOR'];
|
|
9
|
-
|
|
10
|
-
export const ResponsiveContext = /*#__PURE__*/React.createContext({});
|
|
11
|
-
const defaultResponsiveId = 'parentReceiver';
|
|
12
|
-
export class ResponsiveSender extends React.Component {
|
|
13
|
-
constructor(props) {
|
|
14
|
-
super(props); // method binding
|
|
15
|
-
|
|
16
|
-
this.onResize = this.onResize.bind(this);
|
|
17
|
-
this.containerRef = this.containerRef.bind(this);
|
|
18
|
-
this.getWidth = this.getWidth.bind(this);
|
|
19
|
-
this.state = {
|
|
20
|
-
breakPoint: null,
|
|
21
|
-
getWidth: this.getWidth
|
|
22
|
-
}; // variables
|
|
23
|
-
|
|
24
|
-
this.observer = new ResizeObserver(this.onResize);
|
|
25
|
-
this.size = null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getWidth() {
|
|
29
|
-
if (!this.size) {
|
|
30
|
-
return 0;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const {
|
|
34
|
-
width
|
|
35
|
-
} = this.size;
|
|
36
|
-
return width;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
onResize(size) {
|
|
40
|
-
// const { matcher } = this.props;
|
|
41
|
-
const {
|
|
42
|
-
breakPoint
|
|
43
|
-
} = this.state;
|
|
44
|
-
const newBreakPoint = defaultMatcher(size);
|
|
45
|
-
this.size = size;
|
|
46
|
-
|
|
47
|
-
if (breakPoint !== newBreakPoint) {
|
|
48
|
-
this.setState({
|
|
49
|
-
breakPoint: newBreakPoint
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
containerRef(node) {
|
|
55
|
-
this.observer.replaceObservationElement(node);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
isChanged(data, key) {
|
|
59
|
-
this.memo = this.memo || {};
|
|
60
|
-
const changed = this.memo[key] !== data;
|
|
61
|
-
this.memo[key] = data;
|
|
62
|
-
return changed;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
render() {
|
|
66
|
-
const parentContext = this.context;
|
|
67
|
-
const {
|
|
68
|
-
children,
|
|
69
|
-
domRefKey,
|
|
70
|
-
responsiveId
|
|
71
|
-
} = this.props;
|
|
72
|
-
let {
|
|
73
|
-
childContext
|
|
74
|
-
} = this; // NOTE: this method called here ,Because of we must update local memo.
|
|
75
|
-
|
|
76
|
-
const isStateChanged = this.isChanged(this.state, 'state');
|
|
77
|
-
|
|
78
|
-
if (this.isChanged(this.context, 'context') || isStateChanged) {
|
|
79
|
-
childContext = Object.assign({}, parentContext);
|
|
80
|
-
childContext[responsiveId] = this.state;
|
|
81
|
-
childContext[defaultResponsiveId] = this.state; // NOTE: this for fallback of if responsive receiver id wrong
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
this.childContext = childContext;
|
|
85
|
-
return /*#__PURE__*/React.createElement(ResponsiveContext.Provider, {
|
|
86
|
-
value: childContext
|
|
87
|
-
}, /*#__PURE__*/React.createElement(DOMRefWrapper, {
|
|
88
|
-
domRefKey: domRefKey,
|
|
89
|
-
ref: this.containerRef
|
|
90
|
-
}, children));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
ResponsiveSender.defaultProps = { ...ResponsiveSender_defaultProps,
|
|
95
|
-
responsiveId: defaultResponsiveId
|
|
96
|
-
};
|
|
97
|
-
ResponsiveSender.contextType = ResponsiveContext;
|
|
98
|
-
ResponsiveSender.propTypes = ResponsiveSender_propTypes;
|
|
99
|
-
export function useResponsiveReceiver() {
|
|
100
|
-
let responsiveId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultResponsiveId;
|
|
101
|
-
const [_, forceUpdate] = useState();
|
|
102
|
-
let totalContextData = useContext(ResponsiveContext);
|
|
103
|
-
let contextData = totalContextData[responsiveId] || totalContextData[defaultResponsiveId]; // NOTE: this for fallback of if responsive receiver id wrong
|
|
104
|
-
|
|
105
|
-
let data = contextData;
|
|
106
|
-
useEffect(() => {
|
|
107
|
-
!contextData && windowResizeObserver.observe(forceUpdate);
|
|
108
|
-
return () => !contextData && windowResizeObserver.unobserve(forceUpdate);
|
|
109
|
-
}, [!!contextData]);
|
|
110
|
-
|
|
111
|
-
if (!contextData) {
|
|
112
|
-
data = {
|
|
113
|
-
breakPoint: windowResizeObserver.getBreackPoint(),
|
|
114
|
-
getWidth: () => windowResizeObserver.getSize().width
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const {
|
|
119
|
-
breakPoint,
|
|
120
|
-
getWidth
|
|
121
|
-
} = data;
|
|
122
|
-
const childArg = useMemo(() => {
|
|
123
|
-
const isTouchDevice = 'ontouchstart' in window && navigator.userAgent.match(/mobi/i) ? true : false;
|
|
124
|
-
return {
|
|
125
|
-
breakPoint,
|
|
126
|
-
isTouchDevice,
|
|
127
|
-
|
|
128
|
-
deviceBetween(breakPoint1, breakPoint2) {
|
|
129
|
-
const width = getWidth();
|
|
130
|
-
|
|
131
|
-
if (!width) {
|
|
132
|
-
return false;
|
|
133
|
-
} // const smallBreakPointIndex = sortedBreackPointKey.indexOf(breakPoint1);
|
|
134
|
-
// const value1 = smallBreakPointIndex < 1 ? 0 : getBreakPointValue(sortedBreackPointKey[smallBreakPointIndex-1]);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const value1 = getBreakPointValue(breakPoint1);
|
|
138
|
-
const value2 = getBreakPointValue(breakPoint2);
|
|
139
|
-
|
|
140
|
-
if (value1 > value2) {
|
|
141
|
-
return this.deviceBetween(breakPoint2, breakPoint1);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return value1 <= width && value2 >= width || breakPoint1 === breakPoint || breakPoint2 === breakPoint;
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
deviceOnly() {
|
|
148
|
-
let breakPoints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
149
|
-
return breakPoints.includes(breakPoint);
|
|
150
|
-
},
|
|
151
|
-
|
|
152
|
-
deviceUpto(breakPoint) {
|
|
153
|
-
const width = getWidth();
|
|
154
|
-
|
|
155
|
-
if (!width) {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return width <= getBreakPointValue(breakPoint);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
};
|
|
163
|
-
}, [breakPoint, getWidth]);
|
|
164
|
-
return childArg;
|
|
165
|
-
} // function ResponsiveReceiverFunc({ children, hiddenSizes }, ref) {
|
|
166
|
-
// const { breakPoint, methods } = useResponsiveReceiver();
|
|
167
|
-
// console.log(hiddenSizes);
|
|
168
|
-
// return hiddenSizes.indexOf(breakPoint) === -1 ? (
|
|
169
|
-
// <RefWrapper ref={ref}>{children(breakPoint, methods)}</RefWrapper>
|
|
170
|
-
// ) : null;
|
|
171
|
-
// }
|
|
172
|
-
|
|
173
|
-
export function ResponsiveReceiver(_ref) {
|
|
174
|
-
let {
|
|
175
|
-
children,
|
|
176
|
-
responsiveId,
|
|
177
|
-
hiddenSizes,
|
|
178
|
-
eleRef,
|
|
179
|
-
domRefKey
|
|
180
|
-
} = _ref;
|
|
181
|
-
const data = useResponsiveReceiver(responsiveId);
|
|
182
|
-
const {
|
|
183
|
-
breakPoint
|
|
184
|
-
} = data;
|
|
185
|
-
const child = children(data);
|
|
186
|
-
return !hiddenSizes.includes(breakPoint) ? eleRef ? /*#__PURE__*/React.createElement(DOMRefWrapper, {
|
|
187
|
-
domRefKey: domRefKey,
|
|
188
|
-
ref: eleRef
|
|
189
|
-
}, child) : child : null;
|
|
190
|
-
}
|
|
191
|
-
ResponsiveReceiver.defaultProps = { ...ResponsiveReceiver_defaultProps,
|
|
192
|
-
responsiveId: defaultResponsiveId
|
|
193
|
-
};
|
|
194
|
-
ResponsiveReceiver.propTypes = ResponsiveReceiver_propTypes;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { ResponsiveSender as CustomResponsiveSender, ResponsiveReceiver as CustomResponsiveReceiver, useResponsiveReceiver as useCustomResponsiveReceiver } from './CustomResponsive';
|
|
2
|
-
export { ResponsiveSender, ResponsiveReceiver, useResponsiveReceiver } from './Responsive';
|
|
3
|
-
export { default as ResizeComponent } from './ResizeComponent'; // let Responsive = {
|
|
4
|
-
// docs: {
|
|
5
|
-
// componentGroup: 'Layout',
|
|
6
|
-
// folderName: 'Style Guide'
|
|
7
|
-
// }
|
|
8
|
-
// };
|
|
9
|
-
// export { Responsive };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const CustomResponsiveSender_defaultProps = {
|
|
2
|
-
domRefKey: 'eleRef'
|
|
3
|
-
};
|
|
4
|
-
export const CustomResponsiveReceiver_defaultProps = {
|
|
5
|
-
domRefKey: 'eleRef'
|
|
6
|
-
};
|
|
7
|
-
export const ResponsiveSender_defaultProps = {
|
|
8
|
-
domRefKey: 'eleRef'
|
|
9
|
-
};
|
|
10
|
-
export const ResponsiveReceiver_defaultProps = {
|
|
11
|
-
domRefKey: 'eleRef',
|
|
12
|
-
hiddenSizes: []
|
|
13
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
|
-
export const CustomResponsiveSender_propTypes = {
|
|
3
|
-
children: PropTypes.any.isRequired,
|
|
4
|
-
domRefKey: PropTypes.string,
|
|
5
|
-
responsiveId: PropTypes.string
|
|
6
|
-
};
|
|
7
|
-
export const CustomResponsiveReceiver_propTypes = {
|
|
8
|
-
children: PropTypes.func,
|
|
9
|
-
domRefKey: PropTypes.string,
|
|
10
|
-
eleRef: PropTypes.func,
|
|
11
|
-
query: PropTypes.func,
|
|
12
|
-
responsiveId: PropTypes.string
|
|
13
|
-
};
|
|
14
|
-
export const ResponsiveSender_propTypes = {
|
|
15
|
-
children: PropTypes.any.isRequired,
|
|
16
|
-
domRefKey: PropTypes.string,
|
|
17
|
-
responsiveId: PropTypes.string
|
|
18
|
-
};
|
|
19
|
-
export const ResponsiveReceiver_propTypes = {
|
|
20
|
-
children: PropTypes.func,
|
|
21
|
-
domRefKey: PropTypes.string,
|
|
22
|
-
eleRef: PropTypes.func,
|
|
23
|
-
hiddenSizes: PropTypes.array,
|
|
24
|
-
responsiveId: PropTypes.string
|
|
25
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = CssProvider;
|
|
7
|
-
|
|
8
|
-
var _avatarsizesModule = _interopRequireDefault(require("../../common/avatarsizes.module.css"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
-
|
|
12
|
-
var styleList = {
|
|
13
|
-
small: _avatarsizesModule["default"].small,
|
|
14
|
-
xsmall: _avatarsizesModule["default"].xsmall,
|
|
15
|
-
xxsmall: _avatarsizesModule["default"].xxsmall,
|
|
16
|
-
medium: _avatarsizesModule["default"].medium,
|
|
17
|
-
xmedium: _avatarsizesModule["default"].xmedium,
|
|
18
|
-
large: _avatarsizesModule["default"].large,
|
|
19
|
-
xlarge: _avatarsizesModule["default"].xlarge
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
function CssProvider(name) {
|
|
23
|
-
return styleList[name] || '';
|
|
24
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getLibraryConfig = getLibraryConfig;
|
|
7
|
-
exports.setLibraryConfig = setLibraryConfig;
|
|
8
|
-
var id = {
|
|
9
|
-
mobileWidth: 640,
|
|
10
|
-
zindexCounter: 3,
|
|
11
|
-
idCounter: 0,
|
|
12
|
-
idPrefix: 'ZD',
|
|
13
|
-
scrollFetchLimit: 80,
|
|
14
|
-
isReducedMotion: false,
|
|
15
|
-
direction: 'ltr',
|
|
16
|
-
tooltipDebounce: 175,
|
|
17
|
-
getTooltipContainer: function getTooltipContainer() {},
|
|
18
|
-
autoComplete: false
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
function getLibraryConfig(key) {
|
|
22
|
-
return id[key];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function setLibraryConfig(configObj) {
|
|
26
|
-
id = Object.assign({}, id, configObj);
|
|
27
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = CssProvider;
|
|
7
|
-
|
|
8
|
-
var _commonModule = _interopRequireDefault(require("../../common/common.module.css"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
-
|
|
12
|
-
var styleList = {
|
|
13
|
-
hide: _commonModule["default"].hide,
|
|
14
|
-
isDisabled: _commonModule["default"].disabled,
|
|
15
|
-
isDisable: _commonModule["default"].disable,
|
|
16
|
-
isBlock: _commonModule["default"].blockEvent,
|
|
17
|
-
isFlexible: _commonModule["default"].flexgrow,
|
|
18
|
-
dotted: _commonModule["default"].dotted,
|
|
19
|
-
vMiddle: _commonModule["default"].yMiddle,
|
|
20
|
-
hMiddle: _commonModule["default"].xMiddle,
|
|
21
|
-
smooth: _commonModule["default"].ftsmooth,
|
|
22
|
-
clamp: _commonModule["default"].clamp
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
function CssProvider(name) {
|
|
26
|
-
return styleList[name] || '';
|
|
27
|
-
}
|