@zohodesk/components 1.2.63 → 1.3.0

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 (66) hide show
  1. package/.cli/config/variables/variableMapping.json +7 -0
  2. package/.cli/propValidation_report.html +1 -1
  3. package/README.md +8 -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 +52 -6
  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 +5 -2
  30. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  31. package/es/MultiSelect/props/propTypes.js +3 -0
  32. package/es/Radio/props/propTypes.js +1 -1
  33. package/es/common/common.module.css +10 -0
  34. package/es/utils/dropDownUtils.js +33 -8
  35. package/es/v1/Radio/props/propTypes.js +1 -1
  36. package/lib/ListItem/ListContainer.js +3 -2
  37. package/lib/ListItem/ListItem.module.css +52 -6
  38. package/lib/ListItem/ListItemWithAvatar.js +16 -5
  39. package/lib/ListItem/ListItemWithCheckBox.js +17 -5
  40. package/lib/ListItem/ListItemWithIcon.js +19 -6
  41. package/lib/ListItem/ListItemWithRadio.js +18 -5
  42. package/lib/ListItem/__tests__/ListContainer.spec.js +8 -0
  43. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +35 -0
  44. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +35 -0
  45. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +35 -0
  46. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +35 -0
  47. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +13 -0
  48. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +200 -2
  49. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +451 -30
  50. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +202 -4
  51. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +447 -30
  52. package/lib/ListItem/props/defaultProps.js +13 -5
  53. package/lib/ListItem/props/propTypes.js +12 -2
  54. package/lib/MultiSelect/AdvancedMultiSelect.js +76 -69
  55. package/lib/MultiSelect/MultiSelect.js +8 -4
  56. package/lib/MultiSelect/MultiSelect.module.css +9 -1
  57. package/lib/MultiSelect/MultiSelectWithAvatar.js +6 -2
  58. package/lib/MultiSelect/Suggestions.js +5 -2
  59. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  60. package/lib/MultiSelect/props/propTypes.js +4 -1
  61. package/lib/Radio/props/propTypes.js +1 -1
  62. package/lib/common/common.module.css +10 -0
  63. package/lib/utils/dropDownUtils.js +41 -11
  64. package/lib/v1/Radio/props/propTypes.js +1 -1
  65. package/package.json +6 -6
  66. 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
  }, {
@@ -98,6 +98,7 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
98
98
  }, suggestions.map(function (suggestion, index) {
99
99
  var id = suggestion.id,
100
100
  value = suggestion.value,
101
+ secondaryValue = suggestion.secondaryValue,
101
102
  photoURL = suggestion.photoURL,
102
103
  icon = suggestion.icon,
103
104
  optionType = suggestion.optionType,
@@ -143,7 +144,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
143
144
  size: listItemSize,
144
145
  avatarPalette: avatarPalette,
145
146
  palette: palette,
146
- a11y: list_a11y
147
+ a11y: list_a11y,
148
+ secondaryValue: secondaryValue
147
149
  }));
148
150
  } else if (optionType === 'icon') {
149
151
  return /*#__PURE__*/_react["default"].createElement(_ListItemWithIcon["default"], _extends({}, commonProps, {
@@ -163,7 +165,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
163
165
  iconSize: iconSize,
164
166
  size: listItemSize,
165
167
  palette: palette,
166
- a11y: list_a11y
168
+ a11y: list_a11y,
169
+ secondaryValue: secondaryValue
167
170
  }));
168
171
  }
169
172
 
@@ -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>
@@ -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;
@@ -305,6 +307,7 @@ var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_
305
307
  //For grouping multiSelect
306
308
  optionType: _propTypes["default"].oneOf(['default', 'avatar', 'icon']),
307
309
  needEffect: _propTypes["default"].bool,
310
+ secondaryField: _propTypes["default"].string,
308
311
  animationStyle: _propTypes["default"].string,
309
312
  defaultDropBoxPosition: _propTypes["default"].oneOf(['bottom', 'top', 'left', 'right']),
310
313
  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,38 @@ 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
+ };
154
+
155
+ var isObjectContainsSearchString = function isObjectContainsSearchString() {
156
+ var searchFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
157
+ var searchStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
158
+ var obj = arguments.length > 2 ? arguments[2] : undefined;
159
+ var matchedFields = searchFields.filter(function (element) {
160
+ return (0, _Common.getSearchString)(obj[element]).indexOf(searchStr) !== -1;
161
+ });
162
+ return matchedFields.length !== 0;
163
+ };
164
+
145
165
  var getAllowValueFallback = function getAllowValueFallback(props) {
146
166
  return props.allowValueFallback !== false;
147
167
  };
148
168
 
149
169
  var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSuggestions() {
150
- return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions) {
170
+ return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch, getKeepSelectedOptions, getSearchFields], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch, keepSelectedOptions, searchFields) {
151
171
  var suggestions = [];
152
172
  var suggestionIds = [];
153
173
  options.forEach(function (option) {
154
- var id = option.id,
155
- _option$value = option.value,
174
+ var searchString = (0, _Common.getSearchString)(searchStr);
175
+ var _option$value = option.value,
156
176
  value = _option$value === void 0 ? '' : _option$value;
157
177
  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;
178
+ var isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : isObjectContainsSearchString(searchFields, searchString, option) : true;
160
179
 
161
- if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
180
+ if (selectedOptions.indexOf(option.id) === -1 && isMatch || keepSelectedOptions) {
162
181
  suggestions.push(option);
163
- suggestionIds.push(id);
182
+ suggestionIds.push(option.id);
164
183
  }
165
184
  });
166
185
  return {
@@ -232,7 +251,7 @@ var extractOptionIdFromJson = function extractOptionIdFromJson(id, localData) {
232
251
  exports.extractOptionIdFromJson = extractOptionIdFromJson;
233
252
 
234
253
  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) {
254
+ 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
255
  var revampOptions = [];
237
256
  var remvampOptionIds = [];
238
257
  var normalizedAllOptions = {};
@@ -243,23 +262,34 @@ var makeFormatOptions = function makeFormatOptions() {
243
262
  var impValueField = option.valueField,
244
263
  impTextField = option.textField,
245
264
  impImageField = option.imageField,
265
+ impSecondaryField = option.secondaryField,
246
266
  impOptionType = option.optionType,
247
267
  impIconName = option.iconName,
248
268
  impIconSize = option.iconSize,
249
269
  listStyle = option.listItemProps;
250
270
  var id = _typeof(option) === 'object' ? option[impValueField || valueField] : option;
251
271
  var value = _typeof(option) === 'object' ? option[impTextField || textField] : allowValueFallback ? option : '';
272
+ var secondaryValue = _typeof(option) === 'object' ? option[impSecondaryField || secondaryField] : '';
252
273
  var photoURL = _typeof(option) === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
253
274
 
254
275
  id = !(0, _Common.getIsEmptyValue)(id) ? optionIdGrouping(id, prefixText) : '';
276
+ var additionalSearchFieldData = searchFields.reduce(function (value, item) {
277
+ if (_typeof(option) === 'object' && option.hasOwnProperty(item)) {
278
+ value[item] = option[item];
279
+ }
280
+
281
+ return value;
282
+ }, {});
255
283
 
256
284
  if (remvampOptionIds.indexOf(id) === -1 && !(0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(value)) {
257
285
  remvampOptionIds.push(id);
258
- var optionDetails = {
286
+
287
+ var optionDetails = _objectSpread(_objectSpread({}, additionalSearchFieldData), {}, {
259
288
  id: id,
260
289
  value: value,
290
+ secondaryValue: secondaryValue,
261
291
  optionType: impOptionType || optionType
262
- };
292
+ });
263
293
 
264
294
  if (imageField) {
265
295
  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.0",
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",
@@ -68,10 +68,10 @@
68
68
  "@zohodesk-private/css-variable-migrator": "^1.0.7",
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
  }