@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.
Files changed (116) hide show
  1. package/README.md +51 -1
  2. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +4 -0
  3. package/assets/Appearance/dark/themes/blue/blue_ComponentTheme_DarkTheme.module.css +3 -0
  4. package/assets/Appearance/dark/themes/green/green_ComponentTheme_DarkTheme.module.css +3 -0
  5. package/assets/Appearance/dark/themes/orange/orange_ComponentTheme_DarkTheme.module.css +3 -0
  6. package/assets/Appearance/dark/themes/red/red_ComponentTheme_DarkTheme.module.css +3 -0
  7. package/assets/Appearance/dark/themes/yellow/yellow_ComponentTheme_DarkTheme.module.css +3 -0
  8. package/assets/Appearance/light/mode/Component_LightMode.module.css +4 -0
  9. package/assets/Appearance/light/themes/blue/blue_ComponentTheme_LightTheme.module.css +3 -0
  10. package/assets/Appearance/light/themes/green/green_ComponentTheme_LightTheme.module.css +3 -0
  11. package/assets/Appearance/light/themes/orange/orange_ComponentTheme_LightTheme.module.css +3 -0
  12. package/assets/Appearance/light/themes/red/red_ComponentTheme_LightTheme.module.css +3 -0
  13. package/assets/Appearance/light/themes/yellow/yellow_ComponentTheme_LightTheme.module.css +3 -0
  14. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +4 -0
  15. package/assets/Appearance/pureDark/themes/blue/blue_ComponentTheme_PureDarkTheme.module.css +3 -0
  16. package/assets/Appearance/pureDark/themes/green/green_ComponentTheme_PureDarkTheme.module.css +3 -0
  17. package/assets/Appearance/pureDark/themes/orange/orange_ComponentTheme_PureDarkTheme.module.css +3 -0
  18. package/assets/Appearance/pureDark/themes/red/red_ComponentTheme_PureDarkTheme.module.css +3 -0
  19. package/assets/Appearance/pureDark/themes/yellow/yellow_ComponentTheme_PureDarkTheme.module.css +3 -0
  20. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  21. package/es/Button/css/Button.module.css +60 -6
  22. package/es/Button/css/cssJSLogic.js +2 -2
  23. package/es/Card/__tests__/Card.spec.js +48 -0
  24. package/es/Card/__tests__/CardContent.spec.js +61 -0
  25. package/es/Card/__tests__/CardHeader.spec.js +33 -0
  26. package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +125 -0
  27. package/es/Card/__tests__/__snapshots__/CardContent.spec.js.snap +177 -0
  28. package/es/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +51 -0
  29. package/es/ListItem/ListItem.js +10 -3
  30. package/es/ListItem/ListItemWithAvatar.js +15 -6
  31. package/es/ListItem/ListItemWithCheckBox.js +13 -6
  32. package/es/ListItem/ListItemWithIcon.js +14 -5
  33. package/es/ListItem/ListItemWithRadio.js +13 -6
  34. package/es/ListItem/__tests__/ListItem.spec.js +19 -0
  35. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +19 -0
  36. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +19 -0
  37. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +17 -0
  38. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +19 -0
  39. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +78 -0
  40. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +140 -46
  41. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +251 -49
  42. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +144 -50
  43. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +252 -52
  44. package/es/ListItem/props/propTypes.js +15 -5
  45. package/es/MultiSelect/MultiSelect.js +55 -23
  46. package/es/MultiSelect/Suggestions.js +2 -1
  47. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +6 -6
  48. package/es/MultiSelect/props/propTypes.js +2 -3
  49. package/es/Popup/Popup.js +21 -1041
  50. package/es/Select/GroupSelect.js +4 -2
  51. package/es/Select/Select.js +50 -22
  52. package/es/Select/SelectWithAvatar.js +17 -4
  53. package/es/Select/SelectWithIcon.js +15 -5
  54. package/es/Select/props/defaultProps.js +3 -0
  55. package/es/Select/props/propTypes.js +6 -0
  56. package/es/Typography/__tests__/Typography.spec.js +225 -0
  57. package/es/Typography/__tests__/__snapshots__/Typography.spec.js.snap +1226 -0
  58. package/es/common/common.module.css +1 -1
  59. package/es/utils/Common.js +1 -1
  60. package/es/utils/dropDownUtils.js +13 -4
  61. package/es/v1/Popup/Popup.js +1 -1
  62. package/es/v1/Switch/__tests__/Switch.spec.js +41 -6
  63. package/es/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +176 -5
  64. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  65. package/lib/Button/css/Button.module.css +60 -6
  66. package/lib/Button/css/cssJSLogic.js +1 -1
  67. package/lib/Card/__tests__/Card.spec.js +54 -6
  68. package/lib/Card/__tests__/CardContent.spec.js +68 -0
  69. package/lib/Card/__tests__/CardHeader.spec.js +40 -0
  70. package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +125 -0
  71. package/lib/Card/__tests__/__snapshots__/CardContent.spec.js.snap +177 -0
  72. package/lib/Card/__tests__/__snapshots__/CardHeader.spec.js.snap +51 -0
  73. package/lib/ListItem/ListItem.js +10 -3
  74. package/lib/ListItem/ListItemWithAvatar.js +15 -6
  75. package/lib/ListItem/ListItemWithCheckBox.js +15 -6
  76. package/lib/ListItem/ListItemWithIcon.js +13 -5
  77. package/lib/ListItem/ListItemWithRadio.js +15 -6
  78. package/lib/ListItem/__tests__/ListItem.spec.js +23 -0
  79. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +23 -0
  80. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +23 -0
  81. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +21 -0
  82. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +23 -0
  83. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +78 -0
  84. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +140 -46
  85. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +251 -49
  86. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +144 -50
  87. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +252 -52
  88. package/lib/ListItem/props/propTypes.js +15 -6
  89. package/lib/MultiSelect/MultiSelect.js +50 -24
  90. package/lib/MultiSelect/Suggestions.js +2 -1
  91. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +6 -6
  92. package/lib/MultiSelect/props/propTypes.js +3 -4
  93. package/lib/Popup/Popup.js +25 -1149
  94. package/lib/Select/GroupSelect.js +4 -3
  95. package/lib/Select/Select.js +45 -20
  96. package/lib/Select/SelectWithAvatar.js +17 -7
  97. package/lib/Select/SelectWithIcon.js +15 -5
  98. package/lib/Select/props/defaultProps.js +3 -1
  99. package/lib/Select/props/propTypes.js +6 -0
  100. package/lib/Typography/__tests__/Typography.spec.js +232 -0
  101. package/lib/Typography/__tests__/__snapshots__/Typography.spec.js.snap +1226 -0
  102. package/lib/common/common.module.css +1 -1
  103. package/lib/utils/Common.js +1 -1
  104. package/lib/utils/dropDownUtils.js +17 -4
  105. package/lib/v1/Popup/Popup.js +1 -1
  106. package/lib/v1/Switch/__tests__/Switch.spec.js +41 -6
  107. package/lib/v1/Switch/__tests__/__snapshots__/Switch.spec.js.snap +176 -5
  108. package/package.json +13 -18
  109. package/es/Popup/PositionMapping.js +0 -72
  110. package/es/Popup/Registry.js +0 -36
  111. package/es/Popup/intersectionObserver.js +0 -49
  112. package/es/Popup/viewPort.js +0 -373
  113. package/lib/Popup/PositionMapping.js +0 -81
  114. package/lib/Popup/Registry.js +0 -46
  115. package/lib/Popup/intersectionObserver.js +0 -72
  116. package/lib/Popup/viewPort.js +0 -367
@@ -163,6 +163,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
163
163
  _this.handleScroll = _this.handleScroll.bind(_assertThisInitialized(_this));
164
164
  _this.handleScrollFuncCall = (0, _Common.debounce)(_this.handleScrollFuncCall.bind(_assertThisInitialized(_this)), 500);
165
165
  _this.getVirtualizerPublicMethods = _this.getVirtualizerPublicMethods.bind(_assertThisInitialized(_this));
166
+ _this.scrollToHighlightedIndex = _this.scrollToHighlightedIndex.bind(_assertThisInitialized(_this));
166
167
  _this.setSuggestionsVirtualizerContainerRefFunction = _this.setSuggestionsVirtualizerContainerRefFunction.bind(_assertThisInitialized(_this));
167
168
  return _this;
168
169
  }
@@ -227,20 +228,52 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
227
228
  }
228
229
  }
229
230
  }, {
230
- key: "componentDidUpdate",
231
- value: function componentDidUpdate(prevProps, prevState) {
231
+ key: "scrollToHighlightedIndex",
232
+ value: function scrollToHighlightedIndex() {
233
+ var suggestionContainer = this.suggestionContainer,
234
+ selectedOptionContainer = this.selectedOptionContainer,
235
+ suggestionsOrder = this.suggestionsOrder;
236
+
237
+ if (!suggestionContainer) {
238
+ return;
239
+ }
240
+
232
241
  var _this$state = this.state,
233
242
  hoverOption = _this$state.hoverOption,
234
243
  highLightedSelectOptions = _this$state.highLightedSelectOptions,
235
- selectedOptions = _this$state.selectedOptions,
236
- searchStr = _this$state.searchStr;
244
+ selectedOptions = _this$state.selectedOptions;
245
+ var isVirtualizerEnabled = this.props.isVirtualizerEnabled;
246
+ var hoverId = suggestionsOrder[hoverOption] || '';
247
+ var lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
248
+ var selectedOption = this["selectedOption_".concat(lastHighLightedSelectOption)];
249
+ selectedOptions.length && selectedOption && (0, _Common.scrollTo)(selectedOptionContainer, selectedOption);
250
+ var selectedSuggestion = this["suggestion_".concat(hoverId)];
251
+
252
+ if (selectedSuggestion) {
253
+ (0, _Common.scrollTo)(suggestionContainer, selectedSuggestion);
254
+ } else {
255
+ // Hack: Virtualizer not having options order properly all the time, so scrollToIndex method used here.
256
+ if (isVirtualizerEnabled && !!this.virtualizerMethods) {
257
+ this.virtualizerMethods.scrollToIndex(hoverOption, 'auto', {
258
+ speed: 0,
259
+ duration: 0,
260
+ onComplete: function onComplete() {
261
+ (0, _Common.scrollTo)(suggestionContainer, selectedSuggestion);
262
+ }
263
+ });
264
+ }
265
+ }
266
+ }
267
+ }, {
268
+ key: "componentDidUpdate",
269
+ value: function componentDidUpdate(prevProps, prevState) {
270
+ var searchStr = this.state.searchStr;
237
271
  var _this$props2 = this.props,
238
272
  needLocalSearch = _this$props2.needLocalSearch,
239
273
  isPopupOpen = _this$props2.isPopupOpen,
240
274
  onDropBoxClose = _this$props2.onDropBoxClose,
241
275
  onDropBoxOpen = _this$props2.onDropBoxOpen,
242
- isSearchClearOnClose = _this$props2.isSearchClearOnClose,
243
- isVirtualizerEnabled = _this$props2.isVirtualizerEnabled; //handle dropbox open & close
276
+ isSearchClearOnClose = _this$props2.isSearchClearOnClose; //handle dropbox open & close
244
277
 
245
278
  if (prevProps.isPopupOpen !== isPopupOpen) {
246
279
  isPopupOpen && onDropBoxOpen && this.handleFetchOptions(onDropBoxOpen, searchStr);
@@ -252,22 +285,10 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
252
285
  isSearchClearOnClose && searchStr && this.handleSearch('');
253
286
  onDropBoxClose && onDropBoxClose();
254
287
  }
255
- } //scrollTo handling
256
-
288
+ }
257
289
 
258
- if (isVirtualizerEnabled && !!this.virtualizerMethods) {
259
- var position = prevState.hoverOption > hoverOption ? 'top' : 'bottom';
260
- this.virtualizerMethods.getElementVisiblePercentage(hoverOption) < 50 && this.virtualizerMethods.scrollToIndex(hoverOption, position);
261
- } else {
262
- var suggestionContainer = this.suggestionContainer,
263
- selectedOptionContainer = this.selectedOptionContainer,
264
- suggestionsOrder = this.suggestionsOrder;
265
- var hoverId = suggestionsOrder[hoverOption] || '';
266
- var selectedSuggestion = this["suggestion_".concat(hoverId)];
267
- var lastHighLightedSelectOption = highLightedSelectOptions.slice(-1).length ? highLightedSelectOptions.slice(-1)[0] : null;
268
- var selectedOption = this["selectedOption_".concat(lastHighLightedSelectOption)];
269
- isPopupOpen && (0, _Common.scrollTo)(suggestionContainer, selectedSuggestion);
270
- selectedOptions.length && selectedOption && (0, _Common.scrollTo)(selectedOptionContainer, selectedOption);
290
+ if (isPopupOpen) {
291
+ this.scrollToHighlightedIndex();
271
292
  } //When suggestions length less than 5, getNextOptions function call
272
293
 
273
294
 
@@ -309,6 +330,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
309
330
  var options = props.options,
310
331
  valueField = props.valueField,
311
332
  textField = props.textField,
333
+ secondaryField = props.secondaryField,
312
334
  prefixText = props.prefixText,
313
335
  disabledOptions = props.disabledOptions,
314
336
  allowValueFallback = props.allowValueFallback,
@@ -321,6 +343,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
321
343
  optionType: 'default',
322
344
  disabledOptions: disabledOptions,
323
345
  allowValueFallback: allowValueFallback,
346
+ secondaryField: secondaryField,
324
347
  searchFields: searchFields
325
348
  });
326
349
  }
@@ -1140,6 +1163,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1140
1163
  isLoading = _this$props15.isLoading,
1141
1164
  selectAllText = _this$props15.selectAllText,
1142
1165
  needSelectAll = _this$props15.needSelectAll,
1166
+ customProps = _this$props15.customProps,
1143
1167
  isVirtualizerEnabled = _this$props15.isVirtualizerEnabled,
1144
1168
  limit = _this$props15.limit;
1145
1169
  var _this$state9 = this.state,
@@ -1163,6 +1187,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1163
1187
  noMoreText: i18nKeys.noMoreText || noMoreOptionsMessage
1164
1188
  });
1165
1189
  var isModel = (0, _isMobilePopover["default"])(needResponsive);
1190
+ var SuggestionsProps = customProps.SuggestionsProps;
1166
1191
  return /*#__PURE__*/_react["default"].createElement("div", {
1167
1192
  className: "".concat(_MultiSelectModule["default"].wrapper, " ").concat(isDisabled ? _MultiSelectModule["default"].disabled : '', " ").concat(isReadOnly ? _MultiSelectModule["default"].readOnly : '', " ").concat(disableAction ? (0, _CssProvider["default"])('isBlock') : '', " ").concat(borderColor === 'transparent' ? _MultiSelectModule["default"].transparentContainer : '', " ").concat(needEffect && !(isDisabled || isReadOnly) ? _MultiSelectModule["default"].effect : ''),
1168
1193
  "data-id": "".concat(isDisabled ? "".concat(dataId, "_disabled") : isReadOnly ? "".concat(dataId, "_readOnly") : dataId),
@@ -1175,7 +1200,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1175
1200
  boxPosition: position || "".concat(defaultDropBoxPosition),
1176
1201
  getRef: getContainerRef,
1177
1202
  isActive: isPopupReady,
1178
- isAnimate: isAnimate,
1203
+ isAnimate: isAnimate && !isVirtualizerEnabled // Note: Virtualizer gets element height at mount itself which causes issue with options height
1204
+ ,
1179
1205
  isArrow: false,
1180
1206
  onClick: removeClose,
1181
1207
  needResponsive: needResponsive,
@@ -1220,7 +1246,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1220
1246
  eleRef: this.suggestionContainerRef
1221
1247
  }, isSearching ? /*#__PURE__*/_react["default"].createElement("div", {
1222
1248
  className: _MultiSelectModule["default"][palette]
1223
- }, searchText) : suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
1249
+ }, searchText) : suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
1224
1250
  key: searchStr.trim(),
1225
1251
  suggestions: suggestions,
1226
1252
  isVirtualizerEnabled: isVirtualizerEnabled,
@@ -1239,7 +1265,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1239
1265
  },
1240
1266
  limit: limit,
1241
1267
  limitReachedMessage: limitReachedMessage
1242
- }) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
1268
+ }, SuggestionsProps)) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
1243
1269
  isLoading: isFetchingOptions,
1244
1270
  options: options,
1245
1271
  searchString: searchStr,
@@ -213,7 +213,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
213
213
  active: isActive,
214
214
  size: listItemSize,
215
215
  palette: palette,
216
- a11y: list_a11y
216
+ a11y: list_a11y,
217
+ secondaryValue: secondaryValue
217
218
  }));
218
219
  }
219
220
  }, {
@@ -35,19 +35,19 @@ exports[`MultiSelectHeader rendering the basic value 1`] = `
35
35
  </div>
36
36
  </div>
37
37
  <div
38
- class="grow basis shrinkOn"
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="flex cover coldir"
45
- data-id="containerComponent"
46
- data-selector-id="container"
47
- data-test-id="containerComponent"
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 shrinkOff"
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"
@@ -139,7 +139,8 @@ var MultiSelect_propTypes = {
139
139
  allowValueFallback: _propTypes["default"].bool,
140
140
  renderCustomClearComponent: _propTypes["default"].func,
141
141
  renderCustomToggleIndicator: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
142
- limit: _propTypes["default"].number
142
+ limit: _propTypes["default"].number,
143
+ secondaryField: _propTypes["default"].string
143
144
  };
144
145
  exports.MultiSelect_propTypes = MultiSelect_propTypes;
145
146
  var MultiSelectHeader_propTypes = {
@@ -160,8 +161,7 @@ var MultiSelectWithAvatar_propTypes = _objectSpread({
160
161
  customProps: _propTypes["default"].shape({
161
162
  SuggestionsProps: _propTypes["default"].object,
162
163
  DropBoxProps: _propTypes["default"].object
163
- }),
164
- secondaryField: _propTypes["default"].string
164
+ })
165
165
  }, MultiSelect_propTypes);
166
166
 
167
167
  exports.MultiSelectWithAvatar_propTypes = MultiSelectWithAvatar_propTypes;
@@ -309,7 +309,6 @@ var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_
309
309
  prefixText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
310
310
  //For grouping multiSelect
311
311
  optionType: _propTypes["default"].oneOf(['default', 'avatar', 'icon']),
312
- secondaryField: _propTypes["default"].string,
313
312
  dataIdClearIcon: _propTypes["default"].string,
314
313
  dataIdLoading: _propTypes["default"].string,
315
314
  dataIdMultiSelectComp: _propTypes["default"].string,