@zohodesk/components 1.0.0-alpha-213 → 1.0.0-alpha-217

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 (64) hide show
  1. package/README.md +21 -1
  2. package/es/Appearance/dark/mode/darkMode.module.css +3 -13
  3. package/es/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +17 -0
  4. package/es/Appearance/dark/themes/green/greenDarkCTATheme.module.css +1 -1
  5. package/es/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +17 -0
  6. package/es/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +17 -0
  7. package/es/Appearance/dark/themes/red/redDarkCTATheme.module.css +1 -1
  8. package/es/Appearance/dark/themes/red/redDarkComponentTheme.module.css +17 -0
  9. package/es/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +17 -0
  10. package/es/Appearance/default/mode/defaultMode.module.css +9 -17
  11. package/es/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +17 -0
  12. package/es/Appearance/default/themes/green/greenDefaultCTATheme.module.css +1 -1
  13. package/es/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +17 -0
  14. package/es/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +1 -1
  15. package/es/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +17 -0
  16. package/es/Appearance/default/themes/red/redDefaultCTATheme.module.css +1 -1
  17. package/es/Appearance/default/themes/red/redDefaultComponentTheme.module.css +17 -0
  18. package/es/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +17 -0
  19. package/es/ListItem/ListItemWithAvatar.js +11 -3
  20. package/es/ListItem/ListItemWithIcon.js +12 -4
  21. package/es/MultiSelect/AdvancedMultiSelect.js +21 -9
  22. package/es/MultiSelect/MultiSelect.js +1 -1
  23. package/es/MultiSelect/Suggestions.js +11 -2
  24. package/es/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +18 -3
  25. package/es/Select/GroupSelect.js +4 -4
  26. package/es/Select/Select.js +37 -10
  27. package/es/Select/docs/Select__default.docs.js +79 -0
  28. package/es/Tag/Tag.module.css +1 -0
  29. package/es/TextBox/TextBox.js +7 -4
  30. package/es/TextBoxIcon/TextBoxIcon.js +13 -4
  31. package/es/utils/Common.js +1 -1
  32. package/es/utils/dropDownUtils.js +12 -5
  33. package/lib/Appearance/dark/mode/darkMode.module.css +3 -13
  34. package/lib/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +17 -0
  35. package/lib/Appearance/dark/themes/green/greenDarkCTATheme.module.css +1 -1
  36. package/lib/Appearance/dark/themes/green/greenDarkComponentTheme.module.css +17 -0
  37. package/lib/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.css +17 -0
  38. package/lib/Appearance/dark/themes/red/redDarkCTATheme.module.css +1 -1
  39. package/lib/Appearance/dark/themes/red/redDarkComponentTheme.module.css +17 -0
  40. package/lib/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css +17 -0
  41. package/lib/Appearance/default/mode/defaultMode.module.css +9 -17
  42. package/lib/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +17 -0
  43. package/lib/Appearance/default/themes/green/greenDefaultCTATheme.module.css +1 -1
  44. package/lib/Appearance/default/themes/green/greenDefaultComponentTheme.module.css +17 -0
  45. package/lib/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +1 -1
  46. package/lib/Appearance/default/themes/orange/orangeDefaultComponentTheme.module.css +17 -0
  47. package/lib/Appearance/default/themes/red/redDefaultCTATheme.module.css +1 -1
  48. package/lib/Appearance/default/themes/red/redDefaultComponentTheme.module.css +17 -0
  49. package/lib/Appearance/default/themes/yellow/yellowDefaultComponentTheme.module.css +17 -0
  50. package/lib/ListItem/ListItemWithAvatar.js +9 -3
  51. package/lib/ListItem/ListItemWithIcon.js +11 -4
  52. package/lib/MultiSelect/AdvancedMultiSelect.js +20 -8
  53. package/lib/MultiSelect/MultiSelect.js +1 -1
  54. package/lib/MultiSelect/Suggestions.js +16 -2
  55. package/lib/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +18 -3
  56. package/lib/Select/GroupSelect.js +3 -3
  57. package/lib/Select/Select.js +37 -10
  58. package/lib/Select/docs/Select__default.docs.js +79 -0
  59. package/lib/Tag/Tag.module.css +1 -0
  60. package/lib/TextBox/TextBox.js +6 -4
  61. package/lib/TextBoxIcon/TextBoxIcon.js +12 -4
  62. package/lib/utils/Common.js +1 -1
  63. package/lib/utils/dropDownUtils.js +13 -4
  64. package/package.json +1 -1
@@ -47,6 +47,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
47
47
 
48
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
49
49
 
50
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
51
+
50
52
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
51
53
 
52
54
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -131,7 +133,7 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
131
133
  var _this$getFilterSugges = this.getFilterSuggestions({
132
134
  options: options,
133
135
  selectedOptions: dummyArray,
134
- searchStr: searchStr.replace(/\s+/g, '').toLowerCase(),
136
+ searchStr: (0, _Common.getSearchString)(searchStr),
135
137
  needSearch: needLocalSearch
136
138
  }),
137
139
  suggestions = _this$getFilterSugges.suggestions,
@@ -408,7 +410,12 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
408
410
  a11y = _this$props5.a11y,
409
411
  borderColor = _this$props5.borderColor,
410
412
  isBoxPaddingNeed = _this$props5.isBoxPaddingNeed,
411
- getFooter = _this$props5.getFooter;
413
+ getFooter = _this$props5.getFooter,
414
+ customProps = _this$props5.customProps;
415
+ var _customProps$Suggesti = customProps.SuggestionsProps,
416
+ SuggestionsProps = _customProps$Suggesti === void 0 ? {} : _customProps$Suggesti,
417
+ _customProps$DropBoxP = customProps.DropBoxProps,
418
+ DropBoxProps = _customProps$DropBoxP === void 0 ? {} : _customProps$DropBoxP;
412
419
  var _i18nKeys = i18nKeys,
413
420
  _i18nKeys$clearText = _i18nKeys.clearText,
414
421
  clearText = _i18nKeys$clearText === void 0 ? 'Clear all' : _i18nKeys$clearText;
@@ -492,7 +499,7 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
492
499
  }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
493
500
  name: "ZD-delete",
494
501
  size: "15"
495
- })) : null), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/_react["default"].createElement(_DropBox["default"], {
502
+ })) : null), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/_react["default"].createElement(_DropBox["default"], _extends({
496
503
  animationStyle: animationStyle,
497
504
  boxPosition: position || "".concat(defaultDropBoxPosition, "Center"),
498
505
  getRef: getContainerRef,
@@ -507,7 +514,7 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
507
514
  role: 'listbox',
508
515
  ariaMultiselectable: true
509
516
  }
510
- }, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
517
+ }, DropBoxProps), /*#__PURE__*/_react["default"].createElement(_Card["default"], {
511
518
  customClass: _AdvancedMultiSelectModule["default"].box,
512
519
  onScroll: this.handleScroll
513
520
  }, /*#__PURE__*/_react["default"].createElement(_Card.CardHeader, null, /*#__PURE__*/_react["default"].createElement(_MultiSelectHeader["default"], {
@@ -519,7 +526,7 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
519
526
  })), /*#__PURE__*/_react["default"].createElement(_Card.CardContent, {
520
527
  customClass: dropBoxSize ? _AdvancedMultiSelectModule["default"][dropBoxSize] : '',
521
528
  eleRef: this.suggestionContainerRef
522
- }, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
529
+ }, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
523
530
  suggestions: suggestions,
524
531
  selectedOptions: allselectedOptionIds,
525
532
  getRef: this.suggestionItemRef,
@@ -531,7 +538,7 @@ var AdvancedMultiSelectComponent = /*#__PURE__*/function (_MultiSelectComponent)
531
538
  a11y: {
532
539
  role: 'option'
533
540
  }
534
- }) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
541
+ }, SuggestionsProps)) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
535
542
  isLoading: isFetchingOptions,
536
543
  options: options,
537
544
  searchString: searchStr,
@@ -623,7 +630,11 @@ AdvancedMultiSelectComponent.propTypes = {
623
630
  isBoxPaddingNeed: _propTypes["default"].bool,
624
631
  isSearchClearOnSelect: _propTypes["default"].bool,
625
632
  disabledOptions: _propTypes["default"].arrayOf(_propTypes["default"].string),
626
- getFooter: _propTypes["default"].func
633
+ getFooter: _propTypes["default"].func,
634
+ customProps: _propTypes["default"].shape({
635
+ SuggestionsProps: _propTypes["default"].object,
636
+ DropBoxProps: _propTypes["default"].object
637
+ })
627
638
  };
628
639
  AdvancedMultiSelectComponent.defaultProps = {
629
640
  animationStyle: 'bounce',
@@ -650,7 +661,8 @@ AdvancedMultiSelectComponent.defaultProps = {
650
661
  a11y: {},
651
662
  borderColor: 'default',
652
663
  isBoxPaddingNeed: true,
653
- isSearchClearOnSelect: true
664
+ isSearchClearOnSelect: true,
665
+ customProps: {}
654
666
  };
655
667
  AdvancedMultiSelectComponent.displayName = 'AdvancedMultiSelect';
656
668
  var AdvancedMultiSelect = (0, _Popup["default"])(AdvancedMultiSelectComponent);
@@ -335,7 +335,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
335
335
  var _this$getFilterSugges = this.getFilterSuggestions({
336
336
  options: options,
337
337
  selectedOptions: selectedOptions,
338
- searchStr: searchStr.replace(/\s+/g, '').toLowerCase(),
338
+ searchStr: (0, _Common.getSearchString)(searchStr),
339
339
  needSearch: needLocalSearch
340
340
  }),
341
341
  suggestions = _this$getFilterSugges.suggestions,
@@ -23,6 +23,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
23
23
 
24
24
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
25
 
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
+
30
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
+
26
32
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
33
 
28
34
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -94,7 +100,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
94
100
  icon = suggestion.icon,
95
101
  optionType = suggestion.optionType,
96
102
  iconSize = suggestion.iconSize,
97
- isDisabled = suggestion.isDisabled;
103
+ isDisabled = suggestion.isDisabled,
104
+ listItemProps = suggestion.listItemProps;
98
105
  var isActive = activeId === id || selectedOptions.indexOf(id) >= 0;
99
106
  var isHighlight = hoverOption === index || id === hoverId ? true : false;
100
107
  var list_a11y = Object.assign({}, a11y, {
@@ -104,6 +111,12 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
104
111
  isDisabled: isDisabled
105
112
  };
106
113
 
114
+ if (listItemProps) {
115
+ commonProps.customProps = {
116
+ 'ListItemProps': _objectSpread({}, listItemProps)
117
+ };
118
+ }
119
+
107
120
  if (optionType === 'avatar') {
108
121
  return /*#__PURE__*/_react["default"].createElement(_ListItemWithAvatar["default"], _extends({}, commonProps, {
109
122
  autoHover: false,
@@ -197,7 +210,8 @@ Suggestions.propTypes = {
197
210
  value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
198
211
  photoURL: _propTypes["default"].string,
199
212
  logo: _propTypes["default"].string,
200
- optionType: _propTypes["default"].string
213
+ optionType: _propTypes["default"].string,
214
+ listItemProps: _propTypes["default"].object
201
215
  }))
202
216
  };
203
217
  Suggestions.defaultProps = {
@@ -51,10 +51,20 @@ var AdvancedMultiSelect__default = /*#__PURE__*/function (_Component) {
51
51
  _this.state = {
52
52
  options: [{
53
53
  id: 2,
54
- text: 'text2'
54
+ text: 'text2',
55
+ listItemProps: {
56
+ style: {
57
+ color: 'red'
58
+ }
59
+ }
55
60
  }, {
56
61
  id: 3,
57
- text: 'text3'
62
+ text: 'text3',
63
+ listItemProps: {
64
+ style: {
65
+ color: 'blue'
66
+ }
67
+ }
58
68
  }, {
59
69
  id: 4,
60
70
  text: 'text4'
@@ -132,7 +142,12 @@ var AdvancedMultiSelect__default = /*#__PURE__*/function (_Component) {
132
142
  noMoreText: 'No More Options .',
133
143
  searchEmptyText: 'No Matches Found .'
134
144
  },
135
- getFooter: this.getFooter
145
+ getFooter: this.getFooter,
146
+ customProps: {
147
+ SuggestionsProps: {
148
+ needBorder: false
149
+ }
150
+ }
136
151
  });
137
152
  }
138
153
  }]);
@@ -283,7 +283,7 @@ var GroupSelectComponent = /*#__PURE__*/function (_PureComponent) {
283
283
  allOptionIds = _this$state2.allOptionIds;
284
284
 
285
285
  if (needSearch && searchStr && searchStr.trim().length) {
286
- searchStr = searchStr.toLowerCase().replace(/\s+/g, '');
286
+ searchStr = (0, _Common.getSearchString)(searchStr);
287
287
 
288
288
  var _this$getFilterSugges = this.getFilterSuggestions({
289
289
  revampedGroups: revampedGroups,
@@ -320,8 +320,8 @@ var GroupSelectComponent = /*#__PURE__*/function (_PureComponent) {
320
320
  var _this$state$searchStr = this.state.searchStr,
321
321
  searchStr = _this$state$searchStr === void 0 ? '' : _this$state$searchStr;
322
322
  var onSearch = this.props.onSearch;
323
- var searchStrRegex = searchStr.toLowerCase().replace(/\s+/g, '');
324
- var valueStrRegex = value.toLowerCase().replace(/\s+/g, '');
323
+ var searchStrRegex = (0, _Common.getSearchString)(searchStr);
324
+ var valueStrRegex = (0, _Common.getSearchString)(value);
325
325
  var isSearch = searchStrRegex !== valueStrRegex ? true : false;
326
326
  this.setState({
327
327
  searchStr: value,
@@ -43,6 +43,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
43
 
44
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
45
 
46
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
47
+
46
48
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
47
49
 
48
50
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -292,11 +294,15 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
292
294
  value: function handleFormatOptions(props) {
293
295
  var options = props.options,
294
296
  valueField = props.valueField,
295
- textField = props.textField;
297
+ textField = props.textField,
298
+ customProps = props.customProps;
299
+ var _customProps$listItem = customProps.listItemProps,
300
+ listItemProps = _customProps$listItem === void 0 ? {} : _customProps$listItem;
296
301
  return this.formatOptions({
297
302
  options: options,
298
303
  valueField: valueField,
299
- textField: textField
304
+ textField: textField,
305
+ listItemProps: listItemProps
300
306
  });
301
307
  }
302
308
  }, {
@@ -729,7 +735,8 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
729
735
  i18nKeys = _this$props11.i18nKeys,
730
736
  htmlId = _this$props11.htmlId,
731
737
  children = _this$props11.children,
732
- iconOnHover = _this$props11.iconOnHover;
738
+ iconOnHover = _this$props11.iconOnHover,
739
+ customProps = _this$props11.customProps;
733
740
  var _i18nKeys = i18nKeys,
734
741
  TextBoxIcon_i18n = _i18nKeys.TextBoxIcon_i18n,
735
742
  _i18nKeys$TextBox_all = _i18nKeys.TextBox_ally_label,
@@ -748,6 +755,12 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
748
755
  var suggestions = this.handleFilterSuggestions();
749
756
  var setAriaId = this.getNextAriaId();
750
757
  var ariaErrorId = this.getNextAriaId();
758
+ var _customProps$TextBoxP = customProps.TextBoxProps,
759
+ TextBoxProps = _customProps$TextBoxP === void 0 ? {} : _customProps$TextBoxP,
760
+ _customProps$Dropdown = customProps.DropdownSearchTextBoxProps,
761
+ DropdownSearchTextBoxProps = _customProps$Dropdown === void 0 ? {} : _customProps$Dropdown,
762
+ _customProps$Suggesti = customProps.SuggestionsProps,
763
+ SuggestionsProps = _customProps$Suggesti === void 0 ? {} : _customProps$Suggesti;
751
764
  return /*#__PURE__*/_react["default"].createElement("div", {
752
765
  className: "".concat(isParentBased || isReadOnly || isDisabled ? _SelectModule["default"].container : '', " ").concat(_SelectModule["default"]["box_".concat(size)], " ").concat(isReadOnly ? _SelectModule["default"].readonly : '', " ").concat(borderColor === 'transparent' ? _SelectModule["default"].transparentContainer : '', " ").concat(iconOnHover && (isReadOnly || isDisabled) ? _SelectModule["default"].iconOnHoverReadonly : iconOnHover && !(isReadOnly || isDisabled) ? _SelectModule["default"].iconOnHoverStyle : ''),
753
766
  "data-title": isDisabled ? title : ''
@@ -790,7 +803,10 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
790
803
  borderColor: borderColor,
791
804
  htmlId: htmlId,
792
805
  isFocus: isPopupReady,
793
- autoComplete: false
806
+ autoComplete: false,
807
+ customProps: {
808
+ TextBoxProps: TextBoxProps
809
+ }
794
810
  }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
795
811
  alignBox: "row",
796
812
  align: "both"
@@ -835,7 +851,8 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
835
851
  borderColor: borderColor,
836
852
  htmlId: htmlId,
837
853
  autoComplete: false,
838
- isFocus: isPopupReady
854
+ isFocus: isPopupReady,
855
+ customProps: TextBoxProps
839
856
  })), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/_react["default"].createElement(_DropBox["default"], {
840
857
  animationStyle: animationStyle,
841
858
  boxPosition: position || "".concat(defaultDropBoxPosition, "Center"),
@@ -868,11 +885,14 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
868
885
  onClear: this.handleClearSearch,
869
886
  dataId: "".concat(dataId, "_search"),
870
887
  i18nKeys: TextBoxIcon_i18n,
871
- autoComplete: false
888
+ autoComplete: false,
889
+ customProps: {
890
+ TextBoxProps: DropdownSearchTextBoxProps
891
+ }
872
892
  }))) : null, /*#__PURE__*/_react["default"].createElement(_Card.CardContent, {
873
893
  customClass: dropBoxSize ? _SelectModule["default"][dropBoxSize] : '',
874
894
  eleRef: this.suggestionContainerRef
875
- }, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
895
+ }, suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
876
896
  activeId: selectedId,
877
897
  suggestions: suggestions,
878
898
  getRef: this.suggestionItemRef,
@@ -890,7 +910,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
890
910
  ariaParentRole: 'listbox',
891
911
  role: 'option'
892
912
  }
893
- }) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
913
+ }, SuggestionsProps)) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
894
914
  isLoading: isFetchingOptions,
895
915
  options: options,
896
916
  searchString: searchStr,
@@ -984,7 +1004,13 @@ SelectComponent.propTypes = {
984
1004
  htmlId: _propTypes["default"].string,
985
1005
  children: _propTypes["default"].node,
986
1006
  onFocus: _propTypes["default"].func,
987
- iconOnHover: _propTypes["default"].bool
1007
+ iconOnHover: _propTypes["default"].bool,
1008
+ customProps: _propTypes["default"].shape({
1009
+ TextBoxProps: _propTypes["default"].object,
1010
+ DropdownSearchTextBoxProps: _propTypes["default"].object,
1011
+ listItemProps: _propTypes["default"].object,
1012
+ SuggestionsProps: _propTypes["default"].object
1013
+ })
988
1014
  };
989
1015
  SelectComponent.defaultProps = {
990
1016
  animationStyle: 'bounce',
@@ -1016,7 +1042,8 @@ SelectComponent.defaultProps = {
1016
1042
  isParentBased: true,
1017
1043
  isSearchClearOnClose: true,
1018
1044
  i18nKeys: {},
1019
- iconOnHover: false
1045
+ iconOnHover: false,
1046
+ customProps: {}
1020
1047
  };
1021
1048
  SelectComponent.displayName = 'Select';
1022
1049
  var Select = (0, _Popup["default"])(SelectComponent);
@@ -73,6 +73,40 @@ var option = [{
73
73
  text: 'Pineapple',
74
74
  id: '10'
75
75
  }];
76
+ var customOption = [{
77
+ text: 'Apple',
78
+ id: 0,
79
+ listItemProps: {
80
+ style: {
81
+ 'color': 'red'
82
+ }
83
+ }
84
+ }, {
85
+ text: 'Banana',
86
+ id: '1',
87
+ listItemProps: {
88
+ style: {
89
+ 'color': 'orange'
90
+ }
91
+ }
92
+ }, {
93
+ text: 'Blackberries',
94
+ id: '2',
95
+ listItemProps: {
96
+ style: {
97
+ 'color': 'blue'
98
+ }
99
+ }
100
+ }, {
101
+ text: 'Guava',
102
+ id: '3'
103
+ }, {
104
+ text: 'Grapes',
105
+ id: '4'
106
+ }, {
107
+ text: 'Jackfruit',
108
+ id: '5'
109
+ }];
76
110
 
77
111
  var Select__default = /*#__PURE__*/function (_React$Component) {
78
112
  _inherits(Select__default, _React$Component);
@@ -142,6 +176,51 @@ var Select__default = /*#__PURE__*/function (_React$Component) {
142
176
  searchBoxPlaceHolder: "Search",
143
177
  isDefaultSelectValue: false,
144
178
  isDisabled: true
179
+ }), /*#__PURE__*/_react["default"].createElement("div", null, "Custom Props"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
180
+ options: customOption,
181
+ onChange: this.handleChange,
182
+ selectedValue: value,
183
+ needSearch: true,
184
+ emptyMessage: "No matches found",
185
+ placeHolder: "PlaceHolder",
186
+ searchBoxPlaceHolder: "Search",
187
+ isDefaultSelectValue: false,
188
+ i18nKeys: {
189
+ loadingText: 'Loading',
190
+ emptyText: 'emptyText',
191
+ noMoreText: 'noMoreText',
192
+ searchEmptyText: 'searchEmptyText',
193
+ TextBoxIcon_i18n: {
194
+ clearText: 'Clear Data'
195
+ }
196
+ },
197
+ customProps: {
198
+ listItemProps: {
199
+ style: {
200
+ 'color': 'green'
201
+ }
202
+ },
203
+ TextBoxProps: {
204
+ style: {
205
+ 'color': 'brown'
206
+ }
207
+ },
208
+ DropdownSearchTextBoxProps: {
209
+ style: {
210
+ 'color': 'purple'
211
+ }
212
+ }
213
+ }
214
+ }), /*#__PURE__*/_react["default"].createElement("div", null, "Disabled"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
215
+ options: option,
216
+ onChange: this.handleChange,
217
+ selectedValue: value,
218
+ needSearch: true,
219
+ emptyMessage: "No matches found",
220
+ placeHolder: "isDisabled",
221
+ searchBoxPlaceHolder: "Search",
222
+ isDefaultSelectValue: false,
223
+ isDisabled: true
145
224
  }), /*#__PURE__*/_react["default"].createElement("div", null, "Readonly"), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
146
225
  options: option,
147
226
  onChange: this.handleChange,
@@ -230,6 +230,7 @@
230
230
  }
231
231
  .dark:hover {
232
232
  --tag_bg_color: var(--zdt_tag_dark_hover_bg);
233
+ --tag_text_color: var(--zdt_tag_dark_hover_text);
233
234
  }
234
235
  .darkTagClose {
235
236
  --tag_closeicon_bg_color: var(--zdt_tag_dark_close_bg);
@@ -137,7 +137,8 @@ var Textbox = /*#__PURE__*/function (_React$PureComponent) {
137
137
  htmlId = _this$props4.htmlId,
138
138
  a11y = _this$props4.a11y,
139
139
  customClass = _this$props4.customClass,
140
- isFocus = _this$props4.isFocus;
140
+ isFocus = _this$props4.isFocus,
141
+ customProps = _this$props4.customProps;
141
142
  var ariaLabel = a11y.ariaLabel,
142
143
  ariaAutocomplete = a11y.ariaAutocomplete,
143
144
  ariaControls = a11y.ariaControls,
@@ -204,7 +205,7 @@ var Textbox = /*#__PURE__*/function (_React$PureComponent) {
204
205
  value: value,
205
206
  onKeyPress: onKeyPress,
206
207
  onMouseDown: onMouseDown
207
- }, options));
208
+ }, options, customProps));
208
209
  }
209
210
  }]);
210
211
 
@@ -228,7 +229,8 @@ Textbox.defaultProps = {
228
229
  autoComplete: true,
229
230
  borderColor: 'default',
230
231
  a11y: {},
231
- isFocus: false
232
+ isFocus: false,
233
+ customProps: {}
232
234
  };
233
235
  Textbox.propTypes = (_Textbox$propTypes = {
234
236
  autofocus: _propTypes["default"].bool,
@@ -275,7 +277,7 @@ Textbox.propTypes = (_Textbox$propTypes = {
275
277
  ariaActivedescendant: _propTypes["default"].string,
276
278
  ariaReadonly: _propTypes["default"].bool,
277
279
  ariaMultiselectable: _propTypes["default"].bool
278
- })), _defineProperty(_Textbox$propTypes, "isFocus", _propTypes["default"].bool), _Textbox$propTypes);
280
+ })), _defineProperty(_Textbox$propTypes, "isFocus", _propTypes["default"].bool), _defineProperty(_Textbox$propTypes, "customProps", _propTypes["default"].object), _Textbox$propTypes);
279
281
 
280
282
  if (false) {
281
283
  Textbox.docs = {
@@ -126,7 +126,8 @@ var TextBoxIcon = /*#__PURE__*/function (_React$Component) {
126
126
  customClass = _this$props2.customClass,
127
127
  iconOnHover = _this$props2.iconOnHover,
128
128
  isFocus = _this$props2.isFocus,
129
- onClearMouseDown = _this$props2.onClearMouseDown;
129
+ onClearMouseDown = _this$props2.onClearMouseDown,
130
+ customProps = _this$props2.customProps;
130
131
  var isActive = this.state.isActive;
131
132
  var _customClass$customTB = customClass.customTBoxWrap,
132
133
  customTBoxWrap = _customClass$customTB === void 0 ? '' : _customClass$customTB,
@@ -138,6 +139,8 @@ var TextBoxIcon = /*#__PURE__*/function (_React$Component) {
138
139
  customTBoxLine = _customClass$customTB3 === void 0 ? '' : _customClass$customTB3;
139
140
  var _i18nKeys$clearText = i18nKeys.clearText,
140
141
  clearText = _i18nKeys$clearText === void 0 ? 'Clear' : _i18nKeys$clearText;
142
+ var _customProps$TextBoxP = customProps.TextBoxProps,
143
+ TextBoxProps = _customProps$TextBoxP === void 0 ? {} : _customProps$TextBoxP;
141
144
  return /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
142
145
  alignBox: "row",
143
146
  isCover: false,
@@ -170,7 +173,8 @@ var TextBoxIcon = /*#__PURE__*/function (_React$Component) {
170
173
  onKeyPress: onKeyPress,
171
174
  onMouseDown: onMouseDown,
172
175
  needBorder: false,
173
- customClass: customTextBox
176
+ customClass: customTextBox,
177
+ customProps: TextBoxProps
174
178
  }))), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
175
179
  className: "".concat(_TextBoxIconModule["default"].iconContainer, " ").concat(customTBoxIcon)
176
180
  }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
@@ -218,7 +222,8 @@ TextBoxIcon.defaultProps = {
218
222
  i18nKeys: {},
219
223
  customClass: {},
220
224
  iconOnHover: false,
221
- isFocus: false
225
+ isFocus: false,
226
+ customProps: {}
222
227
  };
223
228
  TextBoxIcon.propTypes = {
224
229
  borderColor: _propTypes["default"].oneOf(['transparent', 'default', 'error']),
@@ -263,7 +268,10 @@ TextBoxIcon.propTypes = {
263
268
  }),
264
269
  iconOnHover: _propTypes["default"].bool,
265
270
  isFocus: _propTypes["default"].bool,
266
- onClearMouseDown: _propTypes["default"].func
271
+ onClearMouseDown: _propTypes["default"].func,
272
+ customProps: _propTypes["default"].shape({
273
+ TextBoxProps: _propTypes["default"].object
274
+ })
267
275
  };
268
276
 
269
277
  if (false) {
@@ -453,5 +453,5 @@ function getElementSpace(elementRef) {
453
453
 
454
454
  function getSearchString() {
455
455
  var charachers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
456
- return charachers.toLowerCase(); //.replace(/\s+/g, '');
456
+ return (charachers || '').toString().toLowerCase(); //.replace(/\s+/g, '');
457
457
  }
@@ -130,6 +130,10 @@ var getDisabledOptions = function getDisabledOptions(props) {
130
130
  return props.disabledOptions || dummyArray;
131
131
  };
132
132
 
133
+ var getListItemProps = function getListItemProps(props) {
134
+ return props.listItemProps || '';
135
+ };
136
+
133
137
  var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSuggestions() {
134
138
  return (0, _reselect.createSelector)([getOptions, getSelectedOptionsSel, getSearchStr, getNeedSearch, getIsStartWithSearch], function (options, selectedOptions, searchStr, needSearch, isStartsWithSearch) {
135
139
  var suggestions = [];
@@ -138,8 +142,8 @@ var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSugge
138
142
  var id = option.id,
139
143
  _option$value = option.value,
140
144
  value = _option$value === void 0 ? '' : _option$value;
141
- var valueString = value.toLowerCase();
142
- var searchString = searchStr.toLowerCase();
145
+ var valueString = (0, _Common.getSearchString)(value);
146
+ var searchString = (0, _Common.getSearchString)(searchStr);
143
147
  var isMatch = needSearch ? isStartsWithSearch ? valueString.startsWith(searchString) : valueString.indexOf(searchString) !== -1 : true;
144
148
 
145
149
  if (selectedOptions.indexOf(id) === -1 && isMatch) {
@@ -210,7 +214,7 @@ var extractOptionId = function extractOptionId(id) {
210
214
  exports.extractOptionId = extractOptionId;
211
215
 
212
216
  var makeFormatOptions = function makeFormatOptions() {
213
- return (0, _reselect.createSelector)([getOptions, getValueField, getTextField, getImageField, getPrefixText, getIconName, getIconSize, getOptionType, getDisabledOptions], function (options, valueField, textField, imageField, prefixText, iconName, iconSize, optionType, disabledOptions) {
217
+ return (0, _reselect.createSelector)([getOptions, getValueField, getTextField, getImageField, getPrefixText, getIconName, getIconSize, getOptionType, getDisabledOptions, getListItemProps], function (options, valueField, textField, imageField, prefixText, iconName, iconSize, optionType, disabledOptions, listItemProps) {
214
218
  var revampOptions = [];
215
219
  var remvampOptionIds = [];
216
220
  var normalizedAllOptions = {};
@@ -223,7 +227,8 @@ var makeFormatOptions = function makeFormatOptions() {
223
227
  impImageField = option.imageField,
224
228
  impOptionType = option.optionType,
225
229
  impIconName = option.iconName,
226
- impIconSize = option.iconSize;
230
+ impIconSize = option.iconSize,
231
+ listStyle = option.listItemProps;
227
232
  var id = _typeof(option) === 'object' ? option[impValueField || valueField] : option;
228
233
  var value = _typeof(option) === 'object' ? option[impTextField || textField] : option;
229
234
  var photoURL = _typeof(option) === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
@@ -254,6 +259,10 @@ var makeFormatOptions = function makeFormatOptions() {
254
259
  optionDetails.isDisabled = disabledOptions.indexOf(id) >= 0;
255
260
  }
256
261
 
262
+ if (listStyle || listItemProps) {
263
+ optionDetails.listItemProps = listStyle || listItemProps;
264
+ }
265
+
257
266
  normalizedFormatOptions[id] = optionDetails;
258
267
  normalizedAllOptions[id] = option;
259
268
  revampOptions.push(optionDetails);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/components",
3
- "version": "1.0.0-alpha-213",
3
+ "version": "1.0.0-alpha-217",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "jsnext:main": "es/index.js",