@zohodesk/components 1.0.0-temp-240 → 1.0.0-temp-242
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 +51 -1
- package/assets/Appearance/dark/mode/Component_DarkMode.module.css +4 -0
- package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +3 -0
- package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +3 -0
- package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +3 -0
- package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +3 -0
- package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +3 -0
- package/assets/Appearance/light/mode/Component_LightMode.module.css +4 -0
- package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +3 -0
- package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +3 -0
- package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +3 -0
- package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +3 -0
- package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +3 -0
- package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +4 -0
- package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +3 -0
- package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +3 -0
- package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +3 -0
- package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +3 -0
- package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +3 -0
- package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
- package/es/Button/css/Button.module.css +60 -6
- package/es/Button/css/cssJSLogic.js +2 -2
- package/es/Card/__tests__/Card.spec.js +48 -0
- package/es/Card/__tests__/CardContent.spec.js +61 -0
- package/es/Card/__tests__/CardHeader.spec.js +33 -0
- package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +125 -0
- package/es/Card/__tests__/__snapshots__/CardContent.spec.js.snap +177 -0
- package/es/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +51 -0
- package/es/ListItem/ListItem.js +10 -3
- package/es/ListItem/ListItemWithAvatar.js +15 -6
- package/es/ListItem/ListItemWithCheckBox.js +13 -6
- package/es/ListItem/ListItemWithIcon.js +14 -5
- package/es/ListItem/ListItemWithRadio.js +13 -6
- package/es/ListItem/__tests__/ListItem.spec.js +19 -0
- package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +19 -0
- package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +19 -0
- package/es/ListItem/__tests__/ListItemWithIcon.spec.js +17 -0
- package/es/ListItem/__tests__/ListItemWithRadio.spec.js +19 -0
- package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +78 -0
- package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +140 -46
- package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +251 -49
- package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +144 -50
- package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +252 -52
- package/es/ListItem/props/propTypes.js +15 -5
- package/es/MultiSelect/MultiSelect.js +55 -23
- package/es/MultiSelect/Suggestions.js +2 -1
- package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +6 -6
- package/es/MultiSelect/props/propTypes.js +2 -3
- package/es/Popup/Popup.js +21 -1041
- package/es/Select/GroupSelect.js +4 -2
- package/es/Select/Select.js +50 -22
- package/es/Select/SelectWithAvatar.js +17 -4
- package/es/Select/SelectWithIcon.js +15 -5
- package/es/Select/props/defaultProps.js +3 -0
- package/es/Select/props/propTypes.js +6 -0
- package/es/Typography/__tests__/Typography.spec.js +225 -0
- package/es/Typography/__tests__/__snapshots__/Typography.spec.js.snap +1226 -0
- package/es/common/common.module.css +1 -1
- package/es/utils/Common.js +1 -1
- package/es/utils/dropDownUtils.js +13 -4
- package/es/v1/Popup/Popup.js +1 -1
- package/es/v1/Switch/__tests__/Switch.spec.js +41 -6
- package/es/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +176 -5
- package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
- package/lib/Button/css/Button.module.css +60 -6
- package/lib/Button/css/cssJSLogic.js +1 -1
- package/lib/Card/__tests__/Card.spec.js +54 -6
- package/lib/Card/__tests__/CardContent.spec.js +68 -0
- package/lib/Card/__tests__/CardHeader.spec.js +40 -0
- package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +125 -0
- package/lib/Card/__tests__/__snapshots__/CardContent.spec.js.snap +177 -0
- package/lib/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +51 -0
- package/lib/ListItem/ListItem.js +10 -3
- package/lib/ListItem/ListItemWithAvatar.js +15 -6
- package/lib/ListItem/ListItemWithCheckBox.js +15 -6
- package/lib/ListItem/ListItemWithIcon.js +13 -5
- package/lib/ListItem/ListItemWithRadio.js +15 -6
- package/lib/ListItem/__tests__/ListItem.spec.js +23 -0
- package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +23 -0
- package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +23 -0
- package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +21 -0
- package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +23 -0
- package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +78 -0
- package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +140 -46
- package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +251 -49
- package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +144 -50
- package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +252 -52
- package/lib/ListItem/props/propTypes.js +15 -6
- package/lib/MultiSelect/MultiSelect.js +50 -24
- package/lib/MultiSelect/Suggestions.js +2 -1
- package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +6 -6
- package/lib/MultiSelect/props/propTypes.js +3 -4
- package/lib/Popup/Popup.js +25 -1149
- package/lib/Select/GroupSelect.js +4 -3
- package/lib/Select/Select.js +45 -20
- package/lib/Select/SelectWithAvatar.js +17 -7
- package/lib/Select/SelectWithIcon.js +15 -5
- package/lib/Select/props/defaultProps.js +3 -1
- package/lib/Select/props/propTypes.js +6 -0
- package/lib/Typography/__tests__/Typography.spec.js +232 -0
- package/lib/Typography/__tests__/__snapshots__/Typography.spec.js.snap +1226 -0
- package/lib/common/common.module.css +1 -1
- package/lib/utils/Common.js +1 -1
- package/lib/utils/dropDownUtils.js +17 -4
- package/lib/v1/Popup/Popup.js +1 -1
- package/lib/v1/Switch/__tests__/Switch.spec.js +41 -6
- package/lib/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +176 -5
- package/package.json +13 -18
- package/es/Popup/PositionMapping.js +0 -72
- package/es/Popup/Registry.js +0 -36
- package/es/Popup/intersectionObserver.js +0 -49
- package/es/Popup/viewPort.js +0 -373
- package/lib/Popup/PositionMapping.js +0 -81
- package/lib/Popup/Registry.js +0 -46
- package/lib/Popup/intersectionObserver.js +0 -72
- package/lib/Popup/viewPort.js +0 -367
|
@@ -82,6 +82,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
82
82
|
this.handleScroll = this.handleScroll.bind(this);
|
|
83
83
|
this.handleScrollFuncCall = debounce(this.handleScrollFuncCall.bind(this), 500);
|
|
84
84
|
this.getVirtualizerPublicMethods = this.getVirtualizerPublicMethods.bind(this);
|
|
85
|
+
this.scrollToHighlightedIndex = this.scrollToHighlightedIndex.bind(this);
|
|
85
86
|
this.setSuggestionsVirtualizerContainerRefFunction = this.setSuggestionsVirtualizerContainerRefFunction.bind(this);
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -141,11 +142,49 @@ export class MultiSelectComponent extends React.Component {
|
|
|
141
142
|
}
|
|
142
143
|
}
|
|
143
144
|
|
|
144
|
-
|
|
145
|
+
scrollToHighlightedIndex() {
|
|
146
|
+
const {
|
|
147
|
+
suggestionContainer,
|
|
148
|
+
selectedOptionContainer,
|
|
149
|
+
suggestionsOrder
|
|
150
|
+
} = this;
|
|
151
|
+
|
|
152
|
+
if (!suggestionContainer) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
145
156
|
const {
|
|
146
157
|
hoverOption,
|
|
147
158
|
highLightedSelectOptions,
|
|
148
|
-
selectedOptions
|
|
159
|
+
selectedOptions
|
|
160
|
+
} = this.state;
|
|
161
|
+
const {
|
|
162
|
+
isVirtualizerEnabled
|
|
163
|
+
} = this.props;
|
|
164
|
+
const hoverId = suggestionsOrder[hoverOption] || '';
|
|
165
|
+
const lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
|
|
166
|
+
const selectedOption = this[`selectedOption_${lastHighLightedSelectOption}`];
|
|
167
|
+
selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption);
|
|
168
|
+
const selectedSuggestion = this[`suggestion_${hoverId}`];
|
|
169
|
+
|
|
170
|
+
if (selectedSuggestion) {
|
|
171
|
+
scrollTo(suggestionContainer, selectedSuggestion);
|
|
172
|
+
} else {
|
|
173
|
+
// Hack: Virtualizer not having options order properly all the time, so scrollToIndex method used here.
|
|
174
|
+
if (isVirtualizerEnabled && !!this.virtualizerMethods) {
|
|
175
|
+
this.virtualizerMethods.scrollToIndex(hoverOption, 'auto', {
|
|
176
|
+
speed: 0,
|
|
177
|
+
duration: 0,
|
|
178
|
+
onComplete: () => {
|
|
179
|
+
scrollTo(suggestionContainer, selectedSuggestion);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
componentDidUpdate(prevProps, prevState) {
|
|
187
|
+
const {
|
|
149
188
|
searchStr
|
|
150
189
|
} = this.state;
|
|
151
190
|
const {
|
|
@@ -153,8 +192,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
153
192
|
isPopupOpen,
|
|
154
193
|
onDropBoxClose,
|
|
155
194
|
onDropBoxOpen,
|
|
156
|
-
isSearchClearOnClose
|
|
157
|
-
isVirtualizerEnabled
|
|
195
|
+
isSearchClearOnClose
|
|
158
196
|
} = this.props; //handle dropbox open & close
|
|
159
197
|
|
|
160
198
|
if (prevProps.isPopupOpen !== isPopupOpen) {
|
|
@@ -167,24 +205,10 @@ export class MultiSelectComponent extends React.Component {
|
|
|
167
205
|
isSearchClearOnClose && searchStr && this.handleSearch('');
|
|
168
206
|
onDropBoxClose && onDropBoxClose();
|
|
169
207
|
}
|
|
170
|
-
}
|
|
171
|
-
|
|
208
|
+
}
|
|
172
209
|
|
|
173
|
-
if (
|
|
174
|
-
|
|
175
|
-
this.virtualizerMethods.getElementVisiblePercentage(hoverOption) < 50 && this.virtualizerMethods.scrollToIndex(hoverOption, position);
|
|
176
|
-
} else {
|
|
177
|
-
const {
|
|
178
|
-
suggestionContainer,
|
|
179
|
-
selectedOptionContainer,
|
|
180
|
-
suggestionsOrder
|
|
181
|
-
} = this;
|
|
182
|
-
const hoverId = suggestionsOrder[hoverOption] || '';
|
|
183
|
-
const selectedSuggestion = this[`suggestion_${hoverId}`];
|
|
184
|
-
const lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
|
|
185
|
-
const selectedOption = this[`selectedOption_${lastHighLightedSelectOption}`];
|
|
186
|
-
isPopupOpen && scrollTo(suggestionContainer, selectedSuggestion);
|
|
187
|
-
selectedOptions.length && selectedOption && scrollTo(selectedOptionContainer, selectedOption);
|
|
210
|
+
if (isPopupOpen) {
|
|
211
|
+
this.scrollToHighlightedIndex();
|
|
188
212
|
} //When suggestions length less than 5, getNextOptions function call
|
|
189
213
|
|
|
190
214
|
|
|
@@ -225,6 +249,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
225
249
|
options,
|
|
226
250
|
valueField,
|
|
227
251
|
textField,
|
|
252
|
+
secondaryField,
|
|
228
253
|
prefixText,
|
|
229
254
|
disabledOptions,
|
|
230
255
|
allowValueFallback,
|
|
@@ -238,6 +263,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
238
263
|
optionType: 'default',
|
|
239
264
|
disabledOptions,
|
|
240
265
|
allowValueFallback,
|
|
266
|
+
secondaryField,
|
|
241
267
|
searchFields
|
|
242
268
|
});
|
|
243
269
|
}
|
|
@@ -1061,6 +1087,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1061
1087
|
isLoading,
|
|
1062
1088
|
selectAllText,
|
|
1063
1089
|
needSelectAll,
|
|
1090
|
+
customProps,
|
|
1064
1091
|
isVirtualizerEnabled,
|
|
1065
1092
|
limit
|
|
1066
1093
|
} = this.props;
|
|
@@ -1085,6 +1112,9 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1085
1112
|
noMoreText: i18nKeys.noMoreText || noMoreOptionsMessage
|
|
1086
1113
|
});
|
|
1087
1114
|
let isModel = isMobilePopover(needResponsive);
|
|
1115
|
+
let {
|
|
1116
|
+
SuggestionsProps
|
|
1117
|
+
} = customProps;
|
|
1088
1118
|
return /*#__PURE__*/React.createElement("div", {
|
|
1089
1119
|
className: `${style.wrapper} ${isDisabled ? style.disabled : ''} ${isReadOnly ? style.readOnly : ''} ${disableAction ? CssProvider('isBlock') : ''} ${borderColor === 'transparent' ? style.transparentContainer : ''} ${needEffect && !(isDisabled || isReadOnly) ? style.effect : ''}`,
|
|
1090
1120
|
"data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
|
|
@@ -1097,7 +1127,8 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1097
1127
|
boxPosition: position || `${defaultDropBoxPosition}`,
|
|
1098
1128
|
getRef: getContainerRef,
|
|
1099
1129
|
isActive: isPopupReady,
|
|
1100
|
-
isAnimate: isAnimate
|
|
1130
|
+
isAnimate: isAnimate && !isVirtualizerEnabled // Note: Virtualizer gets element height at mount itself which causes issue with options height
|
|
1131
|
+
,
|
|
1101
1132
|
isArrow: false,
|
|
1102
1133
|
onClick: removeClose,
|
|
1103
1134
|
needResponsive: needResponsive,
|
|
@@ -1160,7 +1191,8 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1160
1191
|
role: 'option'
|
|
1161
1192
|
},
|
|
1162
1193
|
limit: limit,
|
|
1163
|
-
limitReachedMessage: limitReachedMessage
|
|
1194
|
+
limitReachedMessage: limitReachedMessage,
|
|
1195
|
+
...SuggestionsProps
|
|
1164
1196
|
}) : /*#__PURE__*/React.createElement(EmptyState, {
|
|
1165
1197
|
isLoading: isFetchingOptions,
|
|
1166
1198
|
options: options,
|
|
@@ -35,19 +35,19 @@ exports[`MultiSelectHeader rendering the basic value 1`] = `
|
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
37
|
<div
|
|
38
|
-
class="grow basis
|
|
38
|
+
class="leftBox grow basis shrinkOff"
|
|
39
39
|
data-id="boxComponent"
|
|
40
40
|
data-selector-id="box"
|
|
41
41
|
data-test-id="boxComponent"
|
|
42
42
|
>
|
|
43
43
|
<div
|
|
44
|
-
class="
|
|
45
|
-
data-id="
|
|
46
|
-
data-selector-id="
|
|
47
|
-
data-test-id="
|
|
44
|
+
class="titleBox shrinkOff"
|
|
45
|
+
data-id="boxComponent"
|
|
46
|
+
data-selector-id="box"
|
|
47
|
+
data-test-id="boxComponent"
|
|
48
48
|
>
|
|
49
49
|
<div
|
|
50
|
-
class="value
|
|
50
|
+
class="value basisAuto shrinkOn"
|
|
51
51
|
data-id="MultiSelectHeader_selectAll_Text"
|
|
52
52
|
data-selector-id="box"
|
|
53
53
|
data-test-id="MultiSelectHeader_selectAll_Text"
|
|
@@ -120,7 +120,8 @@ export const MultiSelect_propTypes = {
|
|
|
120
120
|
allowValueFallback: PropTypes.bool,
|
|
121
121
|
renderCustomClearComponent: PropTypes.func,
|
|
122
122
|
renderCustomToggleIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
|
|
123
|
-
limit: PropTypes.number
|
|
123
|
+
limit: PropTypes.number,
|
|
124
|
+
secondaryField: PropTypes.string
|
|
124
125
|
};
|
|
125
126
|
export const MultiSelectHeader_propTypes = {
|
|
126
127
|
dataId: PropTypes.string,
|
|
@@ -139,7 +140,6 @@ export const MultiSelectWithAvatar_propTypes = {
|
|
|
139
140
|
SuggestionsProps: PropTypes.object,
|
|
140
141
|
DropBoxProps: PropTypes.object
|
|
141
142
|
}),
|
|
142
|
-
secondaryField: PropTypes.string,
|
|
143
143
|
...MultiSelect_propTypes
|
|
144
144
|
};
|
|
145
145
|
export const SelectedOptions_propTypes = {
|
|
@@ -286,7 +286,6 @@ export const AdvancedMultiSelect_propTypes = { ...MultiSelect_propTypes,
|
|
|
286
286
|
prefixText: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
287
287
|
//For grouping multiSelect
|
|
288
288
|
optionType: PropTypes.oneOf(['default', 'avatar', 'icon']),
|
|
289
|
-
secondaryField: PropTypes.string,
|
|
290
289
|
dataIdClearIcon: PropTypes.string,
|
|
291
290
|
dataIdLoading: PropTypes.string,
|
|
292
291
|
dataIdMultiSelectComp: PropTypes.string,
|