@zohodesk/components 1.4.8 → 1.4.10-exp-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 (47) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +22 -0
  3. package/es/MultiSelect/AdvancedGroupMultiSelect.js +16 -8
  4. package/es/MultiSelect/AdvancedMultiSelect.js +13 -6
  5. package/es/MultiSelect/EmptyState.js +2 -1
  6. package/es/MultiSelect/MultiSelect.js +36 -15
  7. package/es/MultiSelect/MultiSelectWithAvatar.js +9 -2
  8. package/es/MultiSelect/SelectedOptions.js +4 -2
  9. package/es/MultiSelect/Suggestions.js +174 -97
  10. package/es/MultiSelect/__tests__/MultiSelect.spec.js +25 -0
  11. package/es/MultiSelect/__tests__/Suggestions.spec.js +58 -0
  12. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +253 -0
  13. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +343 -0
  14. package/es/MultiSelect/constants.js +6 -0
  15. package/es/MultiSelect/props/defaultProps.js +2 -0
  16. package/es/MultiSelect/props/propTypes.js +18 -55
  17. package/es/Select/Select.js +13 -3
  18. package/es/Select/SelectWithIcon.js +1 -1
  19. package/es/Select/__tests__/Select.spec.js +16 -8
  20. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +281 -0
  21. package/es/Select/props/defaultProps.js +1 -0
  22. package/es/Select/props/propTypes.js +1 -0
  23. package/es/utils/Common.js +3 -2
  24. package/es/utils/dropDownUtils.js +28 -7
  25. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +94 -83
  26. package/lib/MultiSelect/AdvancedMultiSelect.js +16 -7
  27. package/lib/MultiSelect/EmptyState.js +3 -1
  28. package/lib/MultiSelect/MultiSelect.js +39 -15
  29. package/lib/MultiSelect/MultiSelectWithAvatar.js +11 -3
  30. package/lib/MultiSelect/SelectedOptions.js +4 -2
  31. package/lib/MultiSelect/Suggestions.js +176 -100
  32. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +25 -0
  33. package/lib/MultiSelect/__tests__/Suggestions.spec.js +58 -0
  34. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +253 -0
  35. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +343 -0
  36. package/lib/MultiSelect/constants.js +13 -0
  37. package/lib/MultiSelect/props/defaultProps.js +2 -0
  38. package/lib/MultiSelect/props/propTypes.js +17 -55
  39. package/lib/Select/Select.js +13 -2
  40. package/lib/Select/SelectWithIcon.js +1 -1
  41. package/lib/Select/__tests__/Select.spec.js +165 -155
  42. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +281 -0
  43. package/lib/Select/props/defaultProps.js +1 -0
  44. package/lib/Select/props/propTypes.js +1 -0
  45. package/lib/utils/Common.js +5 -3
  46. package/lib/utils/dropDownUtils.js +27 -4
  47. package/package.json +9 -8
@@ -50,17 +50,20 @@ var MultiSelect_propTypes = {
50
50
  disableAction: _propTypes["default"].bool,
51
51
  dropBoxSize: _propTypes["default"].oneOf(['small', 'medium', 'large']),
52
52
  emptyMessage: _propTypes["default"].string.isRequired,
53
+ isVirtualizerEnabled: _propTypes["default"].bool,
53
54
  getContainerRef: _propTypes["default"].func,
54
55
  getNextOptions: _propTypes["default"].func,
55
56
  getPublicMethods: _propTypes["default"].func,
56
57
  getRef: _propTypes["default"].func,
57
58
  getTargetRef: _propTypes["default"].func,
58
59
  i18nKeys: _propTypes["default"].shape({
60
+ searchText: _propTypes["default"].string,
59
61
  clearText: _propTypes["default"].string,
60
62
  loadingText: _propTypes["default"].string,
61
63
  emptyText: _propTypes["default"].string,
62
64
  noMoreText: _propTypes["default"].string,
63
- searchEmptyText: _propTypes["default"].string
65
+ searchEmptyText: _propTypes["default"].string,
66
+ limitReachedMessage: _propTypes["default"].string
64
67
  }),
65
68
  a11y: _propTypes["default"].shape({
66
69
  clearLabel: _propTypes["default"].string
@@ -135,7 +138,8 @@ var MultiSelect_propTypes = {
135
138
  isFocus: _propTypes["default"].bool,
136
139
  allowValueFallback: _propTypes["default"].bool,
137
140
  renderCustomClearComponent: _propTypes["default"].func,
138
- renderCustomToggleIndicator: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node])
141
+ renderCustomToggleIndicator: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]),
142
+ limit: _propTypes["default"].number
139
143
  };
140
144
  exports.MultiSelect_propTypes = MultiSelect_propTypes;
141
145
  var MultiSelectHeader_propTypes = {
@@ -176,7 +180,8 @@ var SelectedOptions_propTypes = {
176
180
  })),
177
181
  size: _propTypes["default"].oneOf(['medium', 'xmedium']),
178
182
  palette: _propTypes["default"].string,
179
- dataId: _propTypes["default"].string
183
+ dataId: _propTypes["default"].string,
184
+ limit: _propTypes["default"].number
180
185
  };
181
186
  exports.SelectedOptions_propTypes = SelectedOptions_propTypes;
182
187
  var Suggestions_propTypes = {
@@ -188,6 +193,8 @@ var Suggestions_propTypes = {
188
193
  avatarPalette: _propTypes["default"].string,
189
194
  className: _propTypes["default"].string,
190
195
  dataId: _propTypes["default"].string,
196
+ isVirtualizerEnabled: _propTypes["default"].bool,
197
+ setVirtualizerContainerRefFunction: _propTypes["default"].func,
191
198
  getRef: _propTypes["default"].func,
192
199
  hoverId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
193
200
  hoverOption: _propTypes["default"].number,
@@ -207,7 +214,9 @@ var Suggestions_propTypes = {
207
214
  logo: _propTypes["default"].string,
208
215
  optionType: _propTypes["default"].string,
209
216
  listItemProps: _propTypes["default"].object
210
- }))
217
+ })),
218
+ limit: _propTypes["default"].number,
219
+ limitReachedMessage: _propTypes["default"].string
211
220
  };
212
221
  exports.Suggestions_propTypes = Suggestions_propTypes;
213
222
  var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
@@ -226,7 +235,8 @@ var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
226
235
  loadingText: _propTypes["default"].string,
227
236
  emptyText: _propTypes["default"].string,
228
237
  noMoreText: _propTypes["default"].string,
229
- searchEmptyText: _propTypes["default"].string
238
+ searchEmptyText: _propTypes["default"].string,
239
+ limitReachedMessage: _propTypes["default"].string
230
240
  }),
231
241
  a11y: _propTypes["default"].shape({
232
242
  clearLabel: _propTypes["default"].string
@@ -278,7 +288,7 @@ var AdvancedGroupMultiSelect_propTypes = (_AdvancedGroupMultiSe = {
278
288
  needToCloseOnSelect: _propTypes["default"].func,
279
289
  searchStr: _propTypes["default"].string,
280
290
  children: _propTypes["default"].node
281
- }, _defineProperty(_AdvancedGroupMultiSe, "dataSelectorId", _propTypes["default"].string), _defineProperty(_AdvancedGroupMultiSe, "isFocus", _propTypes["default"].bool), _defineProperty(_AdvancedGroupMultiSe, "allowValueFallback", _propTypes["default"].bool), _AdvancedGroupMultiSe);
291
+ }, _defineProperty(_AdvancedGroupMultiSe, "dataSelectorId", _propTypes["default"].string), _defineProperty(_AdvancedGroupMultiSe, "isFocus", _propTypes["default"].bool), _defineProperty(_AdvancedGroupMultiSe, "allowValueFallback", _propTypes["default"].bool), _defineProperty(_AdvancedGroupMultiSe, "limit", _propTypes["default"].number), _AdvancedGroupMultiSe);
282
292
  exports.AdvancedGroupMultiSelect_propTypes = AdvancedGroupMultiSelect_propTypes;
283
293
 
284
294
  var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_propTypes), {}, {
@@ -293,70 +303,22 @@ var AdvancedMultiSelect_propTypes = _objectSpread(_objectSpread({}, MultiSelect_
293
303
  selectedOptions: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])).isRequired,
294
304
  selectedOptionsLimit: _propTypes["default"].number,
295
305
  getSelectedOptionDetails: _propTypes["default"].func,
296
- emptyMessage: _propTypes["default"].string.isRequired,
297
- isDisabled: _propTypes["default"].bool,
298
- isReadOnly: _propTypes["default"].bool,
299
- needLocalSearch: _propTypes["default"].bool,
300
- needSelectAll: _propTypes["default"].bool,
301
- onChange: _propTypes["default"].func.isRequired,
302
- searchEmptyMessage: _propTypes["default"].string,
303
- placeHolder: _propTypes["default"].string,
304
- selectAllText: _propTypes["default"].string,
305
- textField: _propTypes["default"].string,
306
- valueField: _propTypes["default"].string,
307
306
  imageField: _propTypes["default"].string,
308
307
  iconName: _propTypes["default"].string,
309
308
  prefixText: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
310
309
  //For grouping multiSelect
311
310
  optionType: _propTypes["default"].oneOf(['default', 'avatar', 'icon']),
312
- needEffect: _propTypes["default"].bool,
313
311
  secondaryField: _propTypes["default"].string,
314
- animationStyle: _propTypes["default"].string,
315
- defaultDropBoxPosition: _propTypes["default"].oneOf(['bottom', 'top', 'left', 'right']),
316
- dropBoxSize: _propTypes["default"].oneOf(['small', 'medium', 'large']),
317
- isAnimate: _propTypes["default"].bool,
318
- size: _propTypes["default"].oneOf(['medium', 'xmedium']),
319
- textBoxSize: _propTypes["default"].oneOf(['small', 'medium', 'xmedium']),
320
- title: _propTypes["default"].string,
321
- variant: _propTypes["default"].string,
322
312
  dataIdClearIcon: _propTypes["default"].string,
323
313
  dataIdLoading: _propTypes["default"].string,
324
314
  dataIdMultiSelectComp: _propTypes["default"].string,
325
315
  dataIdSelectAllEle: _propTypes["default"].string,
326
-
327
- /**** Popup Props ****/
328
- isPopupOpen: _propTypes["default"].bool,
329
- isPopupReady: _propTypes["default"].bool,
330
- togglePopup: _propTypes["default"].func,
331
- getContainerRef: _propTypes["default"].func,
332
- position: _propTypes["default"].string,
333
- removeClose: _propTypes["default"].func,
334
316
  listItemSize: _propTypes["default"].oneOf(['small', 'medium', 'large']),
335
- needBorder: _propTypes["default"].bool,
336
- htmlId: _propTypes["default"].string,
337
- i18nKeys: _propTypes["default"].shape({
338
- clearText: _propTypes["default"].string,
339
- loadingText: _propTypes["default"].string,
340
- emptyText: _propTypes["default"].string,
341
- noMoreText: _propTypes["default"].string,
342
- searchEmptyText: _propTypes["default"].string
343
- }),
344
- a11y: _propTypes["default"].shape({
345
- clearLabel: _propTypes["default"].string
346
- }),
347
- borderColor: _propTypes["default"].oneOf(['transparent', 'default', 'dark']),
348
- isBoxPaddingNeed: _propTypes["default"].bool,
349
- isSearchClearOnSelect: _propTypes["default"].bool,
350
- disabledOptions: _propTypes["default"].arrayOf(_propTypes["default"].string),
351
- getFooter: _propTypes["default"].func,
352
317
  customProps: _propTypes["default"].shape({
353
318
  SuggestionsProps: _propTypes["default"].object,
354
319
  DropBoxProps: _propTypes["default"].object
355
320
  }),
356
- isLoading: _propTypes["default"].bool,
357
- dataSelectorId: _propTypes["default"].string,
358
- customClass: _propTypes["default"].object,
359
- isFocus: _propTypes["default"].bool
321
+ customClass: _propTypes["default"].object
360
322
  });
361
323
 
362
324
  exports.AdvancedMultiSelect_propTypes = AdvancedMultiSelect_propTypes;
@@ -168,6 +168,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
168
168
  _this.handleAddNewOption = _this.handleAddNewOption.bind(_assertThisInitialized(_this));
169
169
  _this.handleExposePopupHandlers = _this.handleExposePopupHandlers.bind(_assertThisInitialized(_this));
170
170
  _this.handleGetAddNewOptionText = _this.handleGetAddNewOptionText.bind(_assertThisInitialized(_this));
171
+ _this.setSuggestionsVirtualizerContainerRefFunction = _this.setSuggestionsVirtualizerContainerRefFunction.bind(_assertThisInitialized(_this));
171
172
  _this.valueInputTypeString = '';
172
173
  _this.valueInputSearchString = '';
173
174
  _this.autoSelectSuggestions = [];
@@ -309,9 +310,9 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
309
310
  textField = props.textField,
310
311
  allowValueFallback = props.allowValueFallback,
311
312
  _props$customProps = props.customProps,
312
- customProps = _props$customProps === void 0 ? {} : _props$customProps;
313
+ customProps = _props$customProps === void 0 ? _dropDownUtils.dummyObj : _props$customProps;
313
314
  var _customProps$listItem = customProps.listItemProps,
314
- listItemProps = _customProps$listItem === void 0 ? {} : _customProps$listItem;
315
+ listItemProps = _customProps$listItem === void 0 ? _dropDownUtils.dummyObj : _customProps$listItem;
315
316
  return this.formatOptions({
316
317
  options: options,
317
318
  valueField: valueField,
@@ -574,6 +575,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
574
575
  key: "suggestionContainerRef",
575
576
  value: function suggestionContainerRef(el) {
576
577
  this.suggestionContainer = el;
578
+ typeof this.setSuggestionsVirtualizerRef === 'function' && this.setSuggestionsVirtualizerRef(el);
577
579
  }
578
580
  }, {
579
581
  key: "suggestionItemRef",
@@ -721,6 +723,12 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
721
723
  onAddNewOption: this.handleAddNewOption
722
724
  });
723
725
  }
726
+ }, {
727
+ key: "setSuggestionsVirtualizerContainerRefFunction",
728
+ value: function setSuggestionsVirtualizerContainerRefFunction(refFunc) {
729
+ this.setSuggestionsVirtualizerRef = refFunc;
730
+ this.suggestionContainer && refFunc(this.suggestionContainer);
731
+ }
724
732
  }, {
725
733
  key: "render",
726
734
  value: function render() {
@@ -777,6 +785,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
777
785
  targetOffset = _this$props11.targetOffset,
778
786
  isRestrictScroll = _this$props11.isRestrictScroll,
779
787
  dropBoxPortalId = _this$props11.dropBoxPortalId,
788
+ isVirtualizerEnabled = _this$props11.isVirtualizerEnabled,
780
789
  renderCustomToggleIndicator = _this$props11.renderCustomToggleIndicator,
781
790
  renderCustomSearchClearComponent = _this$props11.renderCustomSearchClearComponent;
782
791
  var _i18nKeys = i18nKeys,
@@ -976,6 +985,8 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
976
985
  eleRef: _this7.suggestionContainerRef
977
986
  }, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
978
987
  activeId: selectedId,
988
+ isVirtualizerEnabled: isVirtualizerEnabled,
989
+ setVirtualizerContainerRefFunction: _this7.setSuggestionsVirtualizerContainerRefFunction,
979
990
  suggestions: suggestions,
980
991
  getRef: _this7.suggestionItemRef,
981
992
  hoverOption: hoverIndex,
@@ -261,7 +261,7 @@ var SelectWithIcon = /*#__PURE__*/function (_Component) {
261
261
 
262
262
  if (options.length) {
263
263
  datas = options.filter(function (obj) {
264
- return obj[valueKey].toLowerCase().includes(searchValue.toLowerCase());
264
+ return obj[valueKey].toLowerCase().includes(searchValue.toLowerCase().trim());
265
265
  });
266
266
  }
267
267