@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
@@ -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
- componentDidUpdate(prevProps, prevState) {
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
- } //scrollTo handling
171
-
208
+ }
172
209
 
173
- if (isVirtualizerEnabled && !!this.virtualizerMethods) {
174
- let position = prevState.hoverOption > hoverOption ? 'top' : 'bottom';
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,
@@ -160,7 +160,8 @@ export default class Suggestions extends React.PureComponent {
160
160
  active: isActive,
161
161
  size: listItemSize,
162
162
  palette: palette,
163
- a11y: list_a11y
163
+ a11y: list_a11y,
164
+ secondaryValue: secondaryValue
164
165
  });
165
166
  }
166
167
 
@@ -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"
@@ -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,