@zohodesk/components 1.2.63 → 1.3.1

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 (68) hide show
  1. package/.cli/config/variables/variableMapping.json +6 -0
  2. package/.cli/propValidation_report.html +1 -1
  3. package/README.md +12 -0
  4. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +1 -0
  5. package/assets/Appearance/light/mode/Component_LightMode.module.css +1 -0
  6. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +1 -0
  7. package/es/ListItem/ListContainer.js +3 -2
  8. package/es/ListItem/ListItem.module.css +54 -7
  9. package/es/ListItem/ListItemWithAvatar.js +17 -6
  10. package/es/ListItem/ListItemWithCheckBox.js +18 -6
  11. package/es/ListItem/ListItemWithIcon.js +20 -7
  12. package/es/ListItem/ListItemWithRadio.js +19 -6
  13. package/es/ListItem/__tests__/ListContainer.spec.js +8 -0
  14. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +35 -0
  15. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +35 -0
  16. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +35 -0
  17. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +35 -0
  18. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +13 -0
  19. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +200 -2
  20. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +451 -30
  21. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +202 -4
  22. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +447 -30
  23. package/es/ListItem/props/defaultProps.js +13 -5
  24. package/es/ListItem/props/propTypes.js +13 -1
  25. package/es/MultiSelect/AdvancedMultiSelect.js +10 -4
  26. package/es/MultiSelect/MultiSelect.js +8 -4
  27. package/es/MultiSelect/MultiSelect.module.css +9 -1
  28. package/es/MultiSelect/MultiSelectWithAvatar.js +6 -2
  29. package/es/MultiSelect/Suggestions.js +8 -3
  30. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  31. package/es/MultiSelect/props/defaultProps.js +2 -1
  32. package/es/MultiSelect/props/propTypes.js +4 -0
  33. package/es/Radio/props/propTypes.js +1 -1
  34. package/es/common/common.module.css +10 -0
  35. package/es/utils/dropDownUtils.js +41 -8
  36. package/es/v1/Radio/props/propTypes.js +1 -1
  37. package/lib/ListItem/ListContainer.js +3 -2
  38. package/lib/ListItem/ListItem.module.css +54 -7
  39. package/lib/ListItem/ListItemWithAvatar.js +16 -5
  40. package/lib/ListItem/ListItemWithCheckBox.js +17 -5
  41. package/lib/ListItem/ListItemWithIcon.js +19 -6
  42. package/lib/ListItem/ListItemWithRadio.js +18 -5
  43. package/lib/ListItem/__tests__/ListContainer.spec.js +8 -0
  44. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +35 -0
  45. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +35 -0
  46. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +35 -0
  47. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +35 -0
  48. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +13 -0
  49. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +200 -2
  50. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +451 -30
  51. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +202 -4
  52. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +447 -30
  53. package/lib/ListItem/props/defaultProps.js +13 -5
  54. package/lib/ListItem/props/propTypes.js +12 -2
  55. package/lib/MultiSelect/AdvancedMultiSelect.js +76 -69
  56. package/lib/MultiSelect/MultiSelect.js +8 -4
  57. package/lib/MultiSelect/MultiSelect.module.css +9 -1
  58. package/lib/MultiSelect/MultiSelectWithAvatar.js +6 -2
  59. package/lib/MultiSelect/Suggestions.js +9 -4
  60. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  61. package/lib/MultiSelect/props/defaultProps.js +2 -1
  62. package/lib/MultiSelect/props/propTypes.js +5 -1
  63. package/lib/Radio/props/propTypes.js +1 -1
  64. package/lib/common/common.module.css +10 -0
  65. package/lib/utils/dropDownUtils.js +49 -11
  66. package/lib/v1/Radio/props/propTypes.js +1 -1
  67. package/package.json +7 -7
  68. package/result.json +1 -1
@@ -135,13 +135,16 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
135
135
  _this$state$options = _this$state.options,
136
136
  options = _this$state$options === void 0 ? dummyArray : _this$state$options,
137
137
  searchStr = _this$state.searchStr;
138
- var needLocalSearch = this.props.needLocalSearch;
138
+ var _this$props2 = this.props,
139
+ needLocalSearch = _this$props2.needLocalSearch,
140
+ searchFields = _this$props2.searchFields;
139
141
 
140
142
  var _this$getFilterSugges = this.getFilterSuggestions({
141
143
  options: options,
142
144
  selectedOptions: dummyArray,
143
145
  searchStr: (0, _Common.getSearchString)(searchStr),
144
- needSearch: needLocalSearch
146
+ needSearch: needLocalSearch,
147
+ searchFields: searchFields
145
148
  }),
146
149
  suggestions = _this$getFilterSugges.suggestions,
147
150
  suggestionIds = _this$getFilterSugges.suggestionIds;
@@ -157,14 +160,14 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
157
160
  var _this$state2 = this.state,
158
161
  optionsNormalize = _this$state2.optionsNormalize,
159
162
  searchStr = _this$state2.searchStr;
160
- var _this$props2 = this.props,
161
- onChange = _this$props2.onChange,
162
- _this$props2$needToCl = _this$props2.needToCloseOnSelect,
163
- needToCloseOnSelect = _this$props2$needToCl === void 0 ? false : _this$props2$needToCl,
164
- togglePopup = _this$props2.togglePopup,
165
- isSearchClearOnSelect = _this$props2.isSearchClearOnSelect,
166
- propSelectedOptions = _this$props2.selectedOptions,
167
- disabledOptions = _this$props2.disabledOptions;
163
+ var _this$props3 = this.props,
164
+ onChange = _this$props3.onChange,
165
+ _this$props3$needToCl = _this$props3.needToCloseOnSelect,
166
+ needToCloseOnSelect = _this$props3$needToCl === void 0 ? false : _this$props3$needToCl,
167
+ togglePopup = _this$props3.togglePopup,
168
+ isSearchClearOnSelect = _this$props3.isSearchClearOnSelect,
169
+ propSelectedOptions = _this$props3.selectedOptions,
170
+ disabledOptions = _this$props3.disabledOptions;
168
171
 
169
172
  var _filterSelectedOption = (0, _dropDownUtils.filterSelectedOptions)({
170
173
  selectedOptions: selectedOptions,
@@ -219,7 +222,9 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
219
222
  prefixText = props.prefixText,
220
223
  optionType = props.optionType,
221
224
  disabledOptions = props.disabledOptions,
222
- allowValueFallback = props.allowValueFallback;
225
+ allowValueFallback = props.allowValueFallback,
226
+ searchFields = props.searchFields,
227
+ secondaryField = props.secondaryField;
223
228
  return this.formatOptions({
224
229
  options: options,
225
230
  valueField: valueField,
@@ -230,7 +235,9 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
230
235
  optionType: optionType,
231
236
  iconSize: iconSize,
232
237
  disabledOptions: disabledOptions,
233
- allowValueFallback: allowValueFallback
238
+ allowValueFallback: allowValueFallback,
239
+ searchFields: searchFields,
240
+ secondaryField: secondaryField
234
241
  });
235
242
  }
236
243
  }, {
@@ -288,11 +295,11 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
288
295
  var _this2 = this;
289
296
 
290
297
  var oldAllSelectedOptionsDetails = this.allSelectedOptionsDetails;
291
- var _this$props3 = this.props,
292
- selectedOptions = _this$props3.selectedOptions,
293
- selectedOptionsLimit = _this$props3.selectedOptionsLimit,
294
- id = _this$props3.id,
295
- selectedOptionDetails = _this$props3.selectedOptionDetails;
298
+ var _this$props4 = this.props,
299
+ selectedOptions = _this$props4.selectedOptions,
300
+ selectedOptionsLimit = _this$props4.selectedOptionsLimit,
301
+ id = _this$props4.id,
302
+ selectedOptionDetails = _this$props4.selectedOptionDetails;
296
303
  var oldSelectedOptions = prevProps.selectedOptions,
297
304
  oldSelectedOptionsLimit = prevProps.selectedOptionsLimit;
298
305
  var oldCount = this.state.showedSelectedOptionsCount;
@@ -360,11 +367,11 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
360
367
  var _this3 = this;
361
368
 
362
369
  var showedSelectedOptionsCount = this.state.showedSelectedOptionsCount;
363
- var _this$props4 = this.props,
364
- selectedOptionsLimit = _this$props4.selectedOptionsLimit,
365
- selectedOptions = _this$props4.selectedOptions,
366
- getSelectedOptionDetails = _this$props4.getSelectedOptionDetails,
367
- removeClose = _this$props4.removeClose;
370
+ var _this$props5 = this.props,
371
+ selectedOptionsLimit = _this$props5.selectedOptionsLimit,
372
+ selectedOptions = _this$props5.selectedOptions,
373
+ getSelectedOptionDetails = _this$props5.getSelectedOptionDetails,
374
+ removeClose = _this$props5.removeClose;
368
375
  removeClose(e);
369
376
  var selectedOptionsLen = selectedOptions.length;
370
377
 
@@ -401,53 +408,53 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
401
408
  value: function render() {
402
409
  var _this4 = this;
403
410
 
404
- var _this$props5 = this.props,
405
- isReadOnly = _this$props5.isReadOnly,
406
- needSelectAll = _this$props5.needSelectAll,
407
- searchEmptyMessage = _this$props5.searchEmptyMessage,
408
- emptyMessage = _this$props5.emptyMessage,
409
- noMoreOptionsMessage = _this$props5.noMoreOptionsMessage,
410
- dropBoxSize = _this$props5.dropBoxSize,
411
- placeHolder = _this$props5.placeHolder,
412
- isPopupOpen = _this$props5.isPopupOpen,
413
- isPopupReady = _this$props5.isPopupReady,
414
- position = _this$props5.position,
415
- defaultDropBoxPosition = _this$props5.defaultDropBoxPosition,
416
- selectAllText = _this$props5.selectAllText,
417
- getContainerRef = _this$props5.getContainerRef,
418
- removeClose = _this$props5.removeClose,
419
- isAnimate = _this$props5.isAnimate,
420
- animationStyle = _this$props5.animationStyle,
421
- textBoxSize = _this$props5.textBoxSize,
422
- variant = _this$props5.variant,
423
- size = _this$props5.size,
424
- isDisabled = _this$props5.isDisabled,
425
- title = _this$props5.title,
426
- dataIdMultiSelectComp = _this$props5.dataIdMultiSelectComp,
427
- dataIdClearIcon = _this$props5.dataIdClearIcon,
428
- dataIdSelectAllEle = _this$props5.dataIdSelectAllEle,
429
- dataIdLoading = _this$props5.dataIdLoading,
430
- _this$props5$selected = _this$props5.selectedOptions,
431
- allselectedOptionIds = _this$props5$selected === void 0 ? [] : _this$props5$selected,
432
- listItemSize = _this$props5.listItemSize,
433
- needBorder = _this$props5.needBorder,
434
- i18nKeys = _this$props5.i18nKeys,
435
- htmlId = _this$props5.htmlId,
436
- a11y = _this$props5.a11y,
437
- borderColor = _this$props5.borderColor,
438
- isBoxPaddingNeed = _this$props5.isBoxPaddingNeed,
439
- getFooter = _this$props5.getFooter,
440
- customProps = _this$props5.customProps,
441
- needEffect = _this$props5.needEffect,
442
- disabledOptions = _this$props5.disabledOptions,
443
- isLoading = _this$props5.isLoading,
444
- dataSelectorId = _this$props5.dataSelectorId,
445
- customClass = _this$props5.customClass,
446
- isAbsolutePositioningNeeded = _this$props5.isAbsolutePositioningNeeded,
447
- positionsOffset = _this$props5.positionsOffset,
448
- targetOffset = _this$props5.targetOffset,
449
- isRestrictScroll = _this$props5.isRestrictScroll,
450
- isFocus = _this$props5.isFocus;
411
+ var _this$props6 = this.props,
412
+ isReadOnly = _this$props6.isReadOnly,
413
+ needSelectAll = _this$props6.needSelectAll,
414
+ searchEmptyMessage = _this$props6.searchEmptyMessage,
415
+ emptyMessage = _this$props6.emptyMessage,
416
+ noMoreOptionsMessage = _this$props6.noMoreOptionsMessage,
417
+ dropBoxSize = _this$props6.dropBoxSize,
418
+ placeHolder = _this$props6.placeHolder,
419
+ isPopupOpen = _this$props6.isPopupOpen,
420
+ isPopupReady = _this$props6.isPopupReady,
421
+ position = _this$props6.position,
422
+ defaultDropBoxPosition = _this$props6.defaultDropBoxPosition,
423
+ selectAllText = _this$props6.selectAllText,
424
+ getContainerRef = _this$props6.getContainerRef,
425
+ removeClose = _this$props6.removeClose,
426
+ isAnimate = _this$props6.isAnimate,
427
+ animationStyle = _this$props6.animationStyle,
428
+ textBoxSize = _this$props6.textBoxSize,
429
+ variant = _this$props6.variant,
430
+ size = _this$props6.size,
431
+ isDisabled = _this$props6.isDisabled,
432
+ title = _this$props6.title,
433
+ dataIdMultiSelectComp = _this$props6.dataIdMultiSelectComp,
434
+ dataIdClearIcon = _this$props6.dataIdClearIcon,
435
+ dataIdSelectAllEle = _this$props6.dataIdSelectAllEle,
436
+ dataIdLoading = _this$props6.dataIdLoading,
437
+ _this$props6$selected = _this$props6.selectedOptions,
438
+ allselectedOptionIds = _this$props6$selected === void 0 ? [] : _this$props6$selected,
439
+ listItemSize = _this$props6.listItemSize,
440
+ needBorder = _this$props6.needBorder,
441
+ i18nKeys = _this$props6.i18nKeys,
442
+ htmlId = _this$props6.htmlId,
443
+ a11y = _this$props6.a11y,
444
+ borderColor = _this$props6.borderColor,
445
+ isBoxPaddingNeed = _this$props6.isBoxPaddingNeed,
446
+ getFooter = _this$props6.getFooter,
447
+ customProps = _this$props6.customProps,
448
+ needEffect = _this$props6.needEffect,
449
+ disabledOptions = _this$props6.disabledOptions,
450
+ isLoading = _this$props6.isLoading,
451
+ dataSelectorId = _this$props6.dataSelectorId,
452
+ customClass = _this$props6.customClass,
453
+ isAbsolutePositioningNeeded = _this$props6.isAbsolutePositioningNeeded,
454
+ positionsOffset = _this$props6.positionsOffset,
455
+ targetOffset = _this$props6.targetOffset,
456
+ isRestrictScroll = _this$props6.isRestrictScroll,
457
+ isFocus = _this$props6.isFocus;
451
458
  var _customProps$Suggesti = customProps.SuggestionsProps,
452
459
  SuggestionsProps = _customProps$Suggesti === void 0 ? {} : _customProps$Suggesti,
453
460
  _customProps$DropBoxP = customProps.DropBoxProps,
@@ -300,7 +300,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
300
300
  textField = props.textField,
301
301
  prefixText = props.prefixText,
302
302
  disabledOptions = props.disabledOptions,
303
- allowValueFallback = props.allowValueFallback;
303
+ allowValueFallback = props.allowValueFallback,
304
+ searchFields = props.searchFields;
304
305
  return this.formatOptions({
305
306
  options: options,
306
307
  valueField: valueField,
@@ -308,7 +309,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
308
309
  prefixText: prefixText,
309
310
  optionType: 'default',
310
311
  disabledOptions: disabledOptions,
311
- allowValueFallback: allowValueFallback
312
+ allowValueFallback: allowValueFallback,
313
+ searchFields: searchFields
312
314
  });
313
315
  }
314
316
  }, {
@@ -354,14 +356,16 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
354
356
  var _this$props4 = this.props,
355
357
  selectedOptions = _this$props4.selectedOptions,
356
358
  needLocalSearch = _this$props4.needLocalSearch,
357
- keepSelectedOptions = _this$props4.keepSelectedOptions;
359
+ keepSelectedOptions = _this$props4.keepSelectedOptions,
360
+ searchFields = _this$props4.searchFields;
358
361
 
359
362
  var _this$getFilterSugges = this.getFilterSuggestions({
360
363
  options: options,
361
364
  selectedOptions: selectedOptions,
362
365
  searchStr: (0, _Common.getSearchString)(searchStr),
363
366
  needSearch: needLocalSearch,
364
- keepSelectedOptions: keepSelectedOptions
367
+ keepSelectedOptions: keepSelectedOptions,
368
+ searchFields: searchFields
365
369
  }),
366
370
  suggestions = _this$getFilterSugges.suggestions,
367
371
  suggestionIds = _this$getFilterSugges.suggestionIds;
@@ -200,7 +200,15 @@
200
200
  cursor: pointer;
201
201
  margin-top: var(--zd_size5) ;
202
202
  background-color: var(--zdt_multiselect_delete_bg);
203
- border: 0;
203
+ border: 0
204
+ }
205
+
206
+ [dir=ltr] .more {
207
+ margin-right:var(--zd_size3)
208
+ }
209
+
210
+ [dir=rtl] .more {
211
+ margin-left:var(--zd_size3)
204
212
  }
205
213
 
206
214
  .rightPlaceholder{
@@ -100,7 +100,9 @@ var MultiSelectWithAvatarComponent = /*#__PURE__*/function (_MultiSelectComponen
100
100
  textField = props.textField,
101
101
  imageField = props.imageField,
102
102
  disabledOptions = props.disabledOptions,
103
- allowValueFallback = props.allowValueFallback;
103
+ allowValueFallback = props.allowValueFallback,
104
+ searchFields = props.searchFields,
105
+ secondaryField = props.secondaryField;
104
106
  return this.formatOptions({
105
107
  options: options,
106
108
  valueField: valueField,
@@ -108,7 +110,9 @@ var MultiSelectWithAvatarComponent = /*#__PURE__*/function (_MultiSelectComponen
108
110
  imageField: imageField,
109
111
  optionType: 'avatar',
110
112
  disabledOptions: disabledOptions,
111
- allowValueFallback: allowValueFallback
113
+ allowValueFallback: allowValueFallback,
114
+ searchFields: searchFields,
115
+ secondaryField: secondaryField
112
116
  });
113
117
  }
114
118
  }, {
@@ -83,7 +83,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
83
83
  avatarPalette = _this$props.avatarPalette,
84
84
  palette = _this$props.palette,
85
85
  htmlId = _this$props.htmlId,
86
- a11y = _this$props.a11y;
86
+ a11y = _this$props.a11y,
87
+ needMultiLineText = _this$props.needMultiLineText;
87
88
  var ariaParentRole = a11y.ariaParentRole,
88
89
  ariaMultiselectable = a11y.ariaMultiselectable;
89
90
  return /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
@@ -98,6 +99,7 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
98
99
  }, suggestions.map(function (suggestion, index) {
99
100
  var id = suggestion.id,
100
101
  value = suggestion.value,
102
+ secondaryValue = suggestion.secondaryValue,
101
103
  photoURL = suggestion.photoURL,
102
104
  icon = suggestion.icon,
103
105
  optionType = suggestion.optionType,
@@ -115,7 +117,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
115
117
  });
116
118
 
117
119
  var commonProps = _objectSpread({
118
- isDisabled: isDisabled
120
+ isDisabled: isDisabled,
121
+ needMultiLineText: needMultiLineText
119
122
  }, listItemCustomProps);
120
123
 
121
124
  if (listItemProps) {
@@ -143,7 +146,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
143
146
  size: listItemSize,
144
147
  avatarPalette: avatarPalette,
145
148
  palette: palette,
146
- a11y: list_a11y
149
+ a11y: list_a11y,
150
+ secondaryValue: secondaryValue
147
151
  }));
148
152
  } else if (optionType === 'icon') {
149
153
  return /*#__PURE__*/_react["default"].createElement(_ListItemWithIcon["default"], _extends({}, commonProps, {
@@ -163,7 +167,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
163
167
  iconSize: iconSize,
164
168
  size: listItemSize,
165
169
  palette: palette,
166
- a11y: list_a11y
170
+ a11y: list_a11y,
171
+ secondaryValue: secondaryValue
167
172
  }));
168
173
  }
169
174
 
@@ -13,27 +13,48 @@ exports[`MultiSelectHeader rendering the basic value 1`] = `
13
13
  >
14
14
  <div
15
15
  aria-hidden="true"
16
- class="iconBox shrinkOff"
16
+ class="iconBox lhsBox lhsJustifyContent_center shrinkOff selfStart"
17
17
  data-id="MultiSelectHeader_selectAll_Icon"
18
18
  data-selector-id="box"
19
19
  data-test-id="MultiSelectHeader_selectAll_Icon"
20
20
  >
21
- <i
22
- aria-hidden="true"
23
- class="zd_font_icons basic icon-androidd "
24
- data-id="fontIcon"
25
- data-selector-id="fontIcon"
26
- data-test-id="fontIcon"
27
- style="--zd-iconfont-size: var(--zd_font_size15);"
28
- />
21
+ <div
22
+ class="lhsBox_medium shrinkOff selfStart"
23
+ data-id="boxComponent"
24
+ data-selector-id="box"
25
+ data-test-id="boxComponent"
26
+ >
27
+ <i
28
+ aria-hidden="true"
29
+ class="zd_font_icons basic icon-androidd "
30
+ data-id="fontIcon"
31
+ data-selector-id="fontIcon"
32
+ data-test-id="fontIcon"
33
+ style="--zd-iconfont-size: var(--zd_font_size15);"
34
+ />
35
+ </div>
29
36
  </div>
30
37
  <div
31
- class="value grow basis shrinkOn"
32
- data-id="MultiSelectHeader_selectAll_Text"
38
+ class="grow basis shrinkOn"
39
+ data-id="boxComponent"
33
40
  data-selector-id="box"
34
- data-test-id="MultiSelectHeader_selectAll_Text"
41
+ data-test-id="boxComponent"
35
42
  >
36
- List
43
+ <div
44
+ class="flex cover coldir"
45
+ data-id="containerComponent"
46
+ data-selector-id="container"
47
+ data-test-id="containerComponent"
48
+ >
49
+ <div
50
+ class="value shrinkOff"
51
+ data-id="MultiSelectHeader_selectAll_Text"
52
+ data-selector-id="box"
53
+ data-test-id="MultiSelectHeader_selectAll_Text"
54
+ >
55
+ List
56
+ </div>
57
+ </div>
37
58
  </div>
38
59
  </li>
39
60
  </DocumentFragment>
@@ -181,6 +181,7 @@ var SelectedOptions_defaultProps = {
181
181
  };
182
182
  exports.SelectedOptions_defaultProps = SelectedOptions_defaultProps;
183
183
  var Suggestions_defaultProps = {
184
- a11y: {}
184
+ a11y: {},
185
+ needMultiLineText: false
185
186
  };
186
187
  exports.Suggestions_defaultProps = Suggestions_defaultProps;
@@ -65,6 +65,7 @@ var MultiSelect_propTypes = {
65
65
  a11y: _propTypes["default"].shape({
66
66
  clearLabel: _propTypes["default"].string
67
67
  }),
68
+ searchFields: _propTypes["default"].arrayOf(_propTypes["default"].string),
68
69
  isAnimate: _propTypes["default"].bool,
69
70
  isBoxPaddingNeed: _propTypes["default"].bool,
70
71
  isDisabled: _propTypes["default"].bool,
@@ -153,7 +154,8 @@ var MultiSelectWithAvatar_propTypes = _objectSpread({
153
154
  customProps: _propTypes["default"].shape({
154
155
  SuggestionsProps: _propTypes["default"].object,
155
156
  DropBoxProps: _propTypes["default"].object
156
- })
157
+ }),
158
+ secondaryField: _propTypes["default"].string
157
159
  }, MultiSelect_propTypes);
158
160
 
159
161
  exports.MultiSelectWithAvatar_propTypes = MultiSelectWithAvatar_propTypes;
@@ -195,6 +197,7 @@ var Suggestions_propTypes = {
195
197
  palette: _propTypes["default"].string,
196
198
  selectedOptions: _propTypes["default"].array,
197
199
  htmlId: _propTypes["default"].string,
200
+ needMultiLineText: _propTypes["default"].bool,
198
201
  suggestions: _propTypes["default"].arrayOf(_propTypes["default"].shape({
199
202
  id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
200
203
  value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
@@ -305,6 +308,7 @@ var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_
305
308
  //For grouping multiSelect
306
309
  optionType: _propTypes["default"].oneOf(['default', 'avatar', 'icon']),
307
310
  needEffect: _propTypes["default"].bool,
311
+ secondaryField: _propTypes["default"].string,
308
312
  animationStyle: _propTypes["default"].string,
309
313
  defaultDropBoxPosition: _propTypes["default"].oneOf(['bottom', 'top', 'left', 'right']),
310
314
  dropBoxSize: _propTypes["default"].oneOf(['small', 'medium', 'large']),
@@ -39,7 +39,7 @@ var propTypes = {
39
39
  ariaChecked: _propTypes["default"].bool,
40
40
  ariaHidden: _propTypes["default"].bool,
41
41
  role: _propTypes["default"].string,
42
- tabIndex: _propTypes["default"].oneOfType(_propTypes["default"].string, _propTypes["default"].number),
42
+ tabIndex: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
43
43
  ariaLabelledby: _propTypes["default"].string,
44
44
  ariaLabel: _propTypes["default"].string,
45
45
  ariaReadonly: _propTypes["default"].bool
@@ -260,6 +260,12 @@
260
260
  justify-content: space-between;
261
261
  }
262
262
 
263
+ .justifyFstart {
264
+ -webkit-box-pack: flex-start;
265
+ -ms-flex-pack: flex-start;
266
+ justify-content: flex-start;
267
+ }
268
+
263
269
  .justifyFend {
264
270
  -webkit-box-pack: flex-end;
265
271
  -ms-flex-pack: flex-end;
@@ -493,6 +499,10 @@
493
499
  display: -webkit-box;
494
500
  overflow: hidden;
495
501
  }
502
+ .lineClamp {
503
+ composes: wbreak clamp;
504
+ -webkit-line-clamp: var(--line-clamp,2);
505
+ }
496
506
 
497
507
  .offSelection {
498
508
  -webkit-user-select: none;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.optionIdGrouping = exports.makeObjectConcat = exports.makeGetSelectedValueText = exports.makeGetOptionIdChange = exports.makeGetMultiSelectSelectedOptions = exports.makeGetMultiSelectFilterSuggestions = exports.makeGetIsShowClearIcon = exports.makeGetGroupSelectOptions = exports.makeGetGroupSelectFilterSuggestions = exports.makeFormatOptions = exports.getValueField = exports.getTextField = exports.getPrefixText = exports.getOptions = exports.getOptionType = exports.getImageField = exports.getIconSize = exports.getIconName = exports.filterSelectedOptions = exports.extractOptionIdFromJson = exports.extractOptionId = exports.dummyObj = exports.dummyArray = void 0;
6
+ exports.optionIdGrouping = exports.makeObjectConcat = exports.makeGetSelectedValueText = exports.makeGetOptionIdChange = exports.makeGetMultiSelectSelectedOptions = exports.makeGetMultiSelectFilterSuggestions = exports.makeGetIsShowClearIcon = exports.makeGetGroupSelectOptions = exports.makeGetGroupSelectFilterSuggestions = exports.makeFormatOptions = exports.getValueField = exports.getTextField = exports.getSecondaryField = exports.getPrefixText = exports.getOptions = exports.getOptionType = exports.getImageField = exports.getIconSize = exports.getIconName = exports.filterSelectedOptions = exports.extractOptionIdFromJson = exports.extractOptionId = exports.dummyObj = exports.dummyArray = void 0;
7
7
 
8
8
  var _reselect = require("reselect");
9
9
 
@@ -66,6 +66,12 @@ var getValueField = function getValueField(props) {
66
66
 
67
67
  exports.getValueField = getValueField;
68
68
 
69
+ var getSecondaryField = function getSecondaryField(props) {
70
+ return props.secondaryField || '';
71
+ };
72
+
73
+ exports.getSecondaryField = getSecondaryField;
74
+
69
75
  var getTextField = function getTextField(props) {
70
76
  return props.textField || '';
71
77
  };
@@ -142,25 +148,46 @@ var getListItemProps = function getListItemProps(props) {
142
148
  return props.listItemProps || '';
143
149
  };
144
150
 
151
+ var getSearchFields = function getSearchFields(props) {
152
+ return props.searchFields || ['value'];
153
+ }; // const isObjectContainsSearchString = (searchFields = [], searchStr = '', obj) => {
154
+ // const matchedFields = searchFields.filter(element => {
155
+ // return getSearchString(obj[element]).indexOf(searchStr) !== -1
156
+ // });
157
+ // return matchedFields.length !== 0;
158
+ // }
159
+
160
+
161
+ var isObjectContainsSearchString = function isObjectContainsSearchString() {
162
+ var searchFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
163
+ var searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
164
+ var obj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
165
+ return searchFields.some(function (field) {
166
+ var val = obj[field];
167
+ if (val === null || val === undefined) return false;
168
+ var str = (0, _Common.getSearchString)(val);
169
+ return str && str.indexOf(searchStr) !== -1;
170
+ });
171
+ };
172
+
145
173
  var getAllowValueFallback = function getAllowValueFallback(props) {
146
174
  return props.allowValueFallback !== false;
147
175
  };
148
176
 
149
177
  var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSuggestions() {
150
- return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) {
178
+ return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions, getSearchFields], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions, searchFields) {
151
179
  var suggestions = [];
152
180
  var suggestionIds = [];
153
181
  options.forEach(function (option) {
154
- var id = option.id,
155
- _option$value = option.value,
182
+ var searchString = (0, _Common.getSearchString)(searchStr);
183
+ var _option$value = option.value,
156
184
  value = _option$value === void 0 ? '' : _option$value;
157
185
  var valueString = (0, _Common.getSearchString)(value);
158
- var searchString = (0, _Common.getSearchString)(searchStr);
159
- var isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
186
+ var isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : isObjectContainsSearchString(searchFields, searchString, option) : true;
160
187
 
161
- if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
188
+ if (selectedOptions.indexOf(option.id) === -1 && isMatch || keepSelectedOptions) {
162
189
  suggestions.push(option);
163
- suggestionIds.push(id);
190
+ suggestionIds.push(option.id);
164
191
  }
165
192
  });
166
193
  return {
@@ -232,7 +259,7 @@ var extractOptionIdFromJson = function extractOptionIdFromJson(id, localData) {
232
259
  exports.extractOptionIdFromJson = extractOptionIdFromJson;
233
260
 
234
261
  var makeFormatOptions = function makeFormatOptions() {
235
- return (0, _reselect.createSelector)([getOptions, getValueField, getTextField, getImageField, getPrefixText, getIconName, getIconSize, getOptionType, getDisabledOptions, getListItemProps, getAllowValueFallback], function (options, valueField, textField, imageField, prefixText, iconName, iconSize, optionType, disabledOptions, listItemProps, allowValueFallback) {
262
+ return (0, _reselect.createSelector)([getOptions, getValueField, getTextField, getImageField, getPrefixText, getIconName, getIconSize, getOptionType, getDisabledOptions, getListItemProps, getAllowValueFallback, getSearchFields, getSecondaryField], function (options, valueField, textField, imageField, prefixText, iconName, iconSize, optionType, disabledOptions, listItemProps, allowValueFallback, searchFields, secondaryField) {
236
263
  var revampOptions = [];
237
264
  var remvampOptionIds = [];
238
265
  var normalizedAllOptions = {};
@@ -243,23 +270,34 @@ var makeFormatOptions = function makeFormatOptions() {
243
270
  var impValueField = option.valueField,
244
271
  impTextField = option.textField,
245
272
  impImageField = option.imageField,
273
+ impSecondaryField = option.secondaryField,
246
274
  impOptionType = option.optionType,
247
275
  impIconName = option.iconName,
248
276
  impIconSize = option.iconSize,
249
277
  listStyle = option.listItemProps;
250
278
  var id = _typeof(option) === 'object' ? option[impValueField || valueField] : option;
251
279
  var value = _typeof(option) === 'object' ? option[impTextField || textField] : allowValueFallback ? option : '';
280
+ var secondaryValue = _typeof(option) === 'object' ? option[impSecondaryField || secondaryField] : '';
252
281
  var photoURL = _typeof(option) === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
253
282
 
254
283
  id = !(0, _Common.getIsEmptyValue)(id) ? optionIdGrouping(id, prefixText) : '';
284
+ var additionalSearchFieldData = searchFields.reduce(function (value, item) {
285
+ if (_typeof(option) === 'object' && option.hasOwnProperty(item)) {
286
+ value[item] = option[item];
287
+ }
288
+
289
+ return value;
290
+ }, {});
255
291
 
256
292
  if (remvampOptionIds.indexOf(id) === -1 && !(0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(value)) {
257
293
  remvampOptionIds.push(id);
258
- var optionDetails = {
294
+
295
+ var optionDetails = _objectSpread(_objectSpread({}, additionalSearchFieldData), {}, {
259
296
  id: id,
260
297
  value: value,
298
+ secondaryValue: secondaryValue,
261
299
  optionType: impOptionType || optionType
262
- };
300
+ });
263
301
 
264
302
  if (imageField) {
265
303
  optionDetails.photoURL = photoURL;
@@ -39,7 +39,7 @@ var propTypes = {
39
39
  ariaChecked: _propTypes["default"].bool,
40
40
  ariaHidden: _propTypes["default"].bool,
41
41
  role: _propTypes["default"].string,
42
- tabIndex: _propTypes["default"].oneOfType(_propTypes["default"].string, _propTypes["default"].number),
42
+ tabIndex: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
43
43
  ariaLabelledby: _propTypes["default"].string,
44
44
  ariaLabel: _propTypes["default"].string,
45
45
  ariaReadonly: _propTypes["default"].bool
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/components",
3
- "version": "1.2.63",
3
+ "version": "1.3.1",
4
4
  "main": "es/index.js",
5
5
  "module": "es/index.js",
6
6
  "private": false,
@@ -38,7 +38,7 @@
38
38
  "build:css:umd": "npm run clean && npm run init && react-cli build:css:umd",
39
39
  "coverage": "react-cli coverage",
40
40
  "prepare": "npm run init && npm run build && npm run rtl && npm run cssVariableConvert ",
41
- "prepublishOnly": "node prePublish.js && npm run test && npm run download && npm run css:review && npm run review:props ",
41
+ "prepublishOnly": "node prePublish.js && npm run test-clean && npm run test && npm run download && npm run css:review && npm run review:props ",
42
42
  "postpublish": "node postPublish.js",
43
43
  "report": "react-cli publish:report",
44
44
  "test": "react-cli test",
@@ -65,13 +65,13 @@
65
65
  "@testing-library/react-hooks": "^7.0.2",
66
66
  "@testing-library/user-event": "^13.0.10",
67
67
  "@zohodesk-private/color-variable-preprocessor": "1.2.0",
68
- "@zohodesk-private/css-variable-migrator": "^1.0.7",
68
+ "@zohodesk-private/css-variable-migrator": "^1.0.8",
69
69
  "@zohodesk-private/node-plugins": "1.1.8",
70
70
  "@zohodesk-private/react-prop-validator": "1.2.3",
71
- "@zohodesk/a11y": "2.3.1",
71
+ "@zohodesk/a11y": "2.3.4",
72
72
  "@zohodesk/docstool": "1.0.0-alpha-2",
73
73
  "@zohodesk/hooks": "2.0.5",
74
- "@zohodesk/icons": "1.0.72",
74
+ "@zohodesk/icons": "1.0.75",
75
75
  "@zohodesk/svg": "1.1.22",
76
76
  "@zohodesk/utils": "1.3.14",
77
77
  "@zohodesk/variables": "1.0.0",
@@ -86,7 +86,7 @@
86
86
  "selectn": "1.1.2"
87
87
  },
88
88
  "peerDependencies": {
89
- "@zohodesk/icons": "1.0.72",
89
+ "@zohodesk/icons": "1.0.75",
90
90
  "@zohodesk/variables": "1.0.0",
91
91
  "@zohodesk/svg": "1.1.22",
92
92
  "@zohodesk/virtualizer": "1.0.3",
@@ -94,6 +94,6 @@
94
94
  "react-sortable-hoc": "^0.8.3",
95
95
  "@zohodesk/hooks": "2.0.5",
96
96
  "@zohodesk/utils": "1.3.14",
97
- "@zohodesk/a11y": "2.3.1"
97
+ "@zohodesk/a11y": "2.3.4"
98
98
  }
99
99
  }