@zohodesk/components 1.2.62 → 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 (84) hide show
  1. package/.cli/config/variables/variableMapping.json +7 -0
  2. package/.cli/propValidation_report.html +1 -1
  3. package/README.md +13 -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/AdvancedGroupMultiSelect.js +12 -4
  26. package/es/MultiSelect/AdvancedMultiSelect.js +20 -8
  27. package/es/MultiSelect/MultiSelect.js +16 -6
  28. package/es/MultiSelect/MultiSelect.module.css +9 -1
  29. package/es/MultiSelect/MultiSelectWithAvatar.js +8 -2
  30. package/es/MultiSelect/Suggestions.js +5 -2
  31. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +28 -0
  32. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +390 -0
  33. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  34. package/es/MultiSelect/props/defaultProps.js +8 -4
  35. package/es/MultiSelect/props/propTypes.js +7 -2
  36. package/es/Radio/props/propTypes.js +1 -1
  37. package/es/Select/GroupSelect.js +4 -2
  38. package/es/Select/Select.js +3 -1
  39. package/es/Select/SelectWithAvatar.js +4 -2
  40. package/es/Select/props/defaultProps.js +4 -2
  41. package/es/Select/props/propTypes.js +4 -2
  42. package/es/common/common.module.css +10 -0
  43. package/es/utils/dropDownUtils.js +42 -13
  44. package/es/v1/Radio/props/propTypes.js +1 -1
  45. package/lib/ListItem/ListContainer.js +3 -2
  46. package/lib/ListItem/ListItem.module.css +52 -6
  47. package/lib/ListItem/ListItemWithAvatar.js +16 -5
  48. package/lib/ListItem/ListItemWithCheckBox.js +17 -5
  49. package/lib/ListItem/ListItemWithIcon.js +19 -6
  50. package/lib/ListItem/ListItemWithRadio.js +18 -5
  51. package/lib/ListItem/__tests__/ListContainer.spec.js +8 -0
  52. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +35 -0
  53. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +35 -0
  54. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +35 -0
  55. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +35 -0
  56. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +13 -0
  57. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +200 -2
  58. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +451 -30
  59. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +202 -4
  60. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +447 -30
  61. package/lib/ListItem/props/defaultProps.js +13 -5
  62. package/lib/ListItem/props/propTypes.js +12 -2
  63. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +11 -5
  64. package/lib/MultiSelect/AdvancedMultiSelect.js +86 -73
  65. package/lib/MultiSelect/MultiSelect.js +14 -6
  66. package/lib/MultiSelect/MultiSelect.module.css +9 -1
  67. package/lib/MultiSelect/MultiSelectWithAvatar.js +8 -2
  68. package/lib/MultiSelect/Suggestions.js +5 -2
  69. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +28 -0
  70. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +390 -0
  71. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +34 -13
  72. package/lib/MultiSelect/props/defaultProps.js +8 -4
  73. package/lib/MultiSelect/props/propTypes.js +7 -3
  74. package/lib/Radio/props/propTypes.js +1 -1
  75. package/lib/Select/GroupSelect.js +4 -2
  76. package/lib/Select/Select.js +3 -1
  77. package/lib/Select/SelectWithAvatar.js +4 -2
  78. package/lib/Select/props/defaultProps.js +4 -2
  79. package/lib/Select/props/propTypes.js +4 -2
  80. package/lib/common/common.module.css +10 -0
  81. package/lib/utils/dropDownUtils.js +52 -16
  82. package/lib/v1/Radio/props/propTypes.js +1 -1
  83. package/package.json +6 -6
  84. package/result.json +1 -1
@@ -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,21 +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
+
165
+ var getAllowValueFallback = function getAllowValueFallback(props) {
166
+ return props.allowValueFallback !== false;
167
+ };
168
+
145
169
  var makeGetMultiSelectFilterSuggestions = function makeGetMultiSelectFilterSuggestions() {
146
- 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) {
147
171
  var suggestions = [];
148
172
  var suggestionIds = [];
149
173
  options.forEach(function (option) {
150
- var id = option.id,
151
- _option$value = option.value,
174
+ var searchString = (0, _Common.getSearchString)(searchStr);
175
+ var _option$value = option.value,
152
176
  value = _option$value === void 0 ? '' : _option$value;
153
177
  var valueString = (0, _Common.getSearchString)(value);
154
- var searchString = (0, _Common.getSearchString)(searchStr);
155
- 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;
156
179
 
157
- if (selectedOptions.indexOf(id) === -1 && isMatch || keepSelectedOptions) {
180
+ if (selectedOptions.indexOf(option.id) === -1 && isMatch || keepSelectedOptions) {
158
181
  suggestions.push(option);
159
- suggestionIds.push(id);
182
+ suggestionIds.push(option.id);
160
183
  }
161
184
  });
162
185
  return {
@@ -228,7 +251,7 @@ var extractOptionIdFromJson = function extractOptionIdFromJson(id, localData) {
228
251
  exports.extractOptionIdFromJson = extractOptionIdFromJson;
229
252
 
230
253
  var makeFormatOptions = function makeFormatOptions() {
231
- 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) {
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) {
232
255
  var revampOptions = [];
233
256
  var remvampOptionIds = [];
234
257
  var normalizedAllOptions = {};
@@ -239,23 +262,34 @@ var makeFormatOptions = function makeFormatOptions() {
239
262
  var impValueField = option.valueField,
240
263
  impTextField = option.textField,
241
264
  impImageField = option.imageField,
265
+ impSecondaryField = option.secondaryField,
242
266
  impOptionType = option.optionType,
243
267
  impIconName = option.iconName,
244
268
  impIconSize = option.iconSize,
245
269
  listStyle = option.listItemProps;
246
270
  var id = _typeof(option) === 'object' ? option[impValueField || valueField] : option;
247
- var value = _typeof(option) === 'object' ? option[impTextField || textField] : option;
271
+ var value = _typeof(option) === 'object' ? option[impTextField || textField] : allowValueFallback ? option : '';
272
+ var secondaryValue = _typeof(option) === 'object' ? option[impSecondaryField || secondaryField] : '';
248
273
  var photoURL = _typeof(option) === 'object' ? option[impImageField || imageField] : ''; // grouping options (group select/MultiSelect)
249
274
 
250
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
+ }, {});
251
283
 
252
284
  if (remvampOptionIds.indexOf(id) === -1 && !(0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(value)) {
253
285
  remvampOptionIds.push(id);
254
- var optionDetails = {
286
+
287
+ var optionDetails = _objectSpread(_objectSpread({}, additionalSearchFieldData), {}, {
255
288
  id: id,
256
289
  value: value,
290
+ secondaryValue: secondaryValue,
257
291
  optionType: impOptionType || optionType
258
- };
292
+ });
259
293
 
260
294
  if (imageField) {
261
295
  optionDetails.photoURL = photoURL;
@@ -297,7 +331,7 @@ var makeFormatOptions = function makeFormatOptions() {
297
331
  exports.makeFormatOptions = makeFormatOptions;
298
332
 
299
333
  var makeGetMultiSelectSelectedOptions = function makeGetMultiSelectSelectedOptions() {
300
- return (0, _reselect.createSelector)([getSelectedOptionsSel, getNormalizedFormatOptions, getSelectedOptionsLength], function (selectedOptions, normalizedFormatOptions, selectedOptionsLength) {
334
+ return (0, _reselect.createSelector)([getSelectedOptionsSel, getNormalizedFormatOptions, getSelectedOptionsLength, getAllowValueFallback], function (selectedOptions, normalizedFormatOptions, selectedOptionsLength, allowValueFallback) {
301
335
  var output = [];
302
336
  var revampSelectedOptions = [];
303
337
  var normalizedSelectedOptions = {};
@@ -313,7 +347,8 @@ var makeGetMultiSelectSelectedOptions = function makeGetMultiSelectSelectedOptio
313
347
  revampSelectedOptions.push(id);
314
348
  output.push(normalizedFormatOptions[option]);
315
349
  normalizedSelectedOptions[id] = normalizedFormatOptions[option];
316
- } else if ((0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(option) && revampSelectedOptions.indexOf(option) === -1) {
350
+ } else if (allowValueFallback && (0, _Common.getIsEmptyValue)(id) && !(0, _Common.getIsEmptyValue)(option) && revampSelectedOptions.indexOf(option) === -1) {
351
+ //fallback case
317
352
  var newObj = {
318
353
  id: option,
319
354
  value: option
@@ -412,7 +447,7 @@ var getGroupedOptions = function getGroupedOptions(props) {
412
447
  var getFormatOptions = makeFormatOptions();
413
448
 
414
449
  var makeGetGroupSelectOptions = function makeGetGroupSelectOptions() {
415
- return (0, _reselect.createSelector)([getGroupedOptions], function (groupedOptions) {
450
+ return (0, _reselect.createSelector)([getGroupedOptions, getAllowValueFallback], function (groupedOptions, allowValueFallback) {
416
451
  var revampedGroups = [];
417
452
  var allOptionIds = [];
418
453
  var allNormalizedOptions = {}; //all group normalized options
@@ -435,7 +470,8 @@ var makeGetGroupSelectOptions = function makeGetGroupSelectOptions() {
435
470
  options: options,
436
471
  valueField: valueField,
437
472
  textField: textField,
438
- prefixText: groupId
473
+ prefixText: groupId,
474
+ allowValueFallback: allowValueFallback
439
475
  }),
440
476
  allOptions = _getFormatOptions.allOptions,
441
477
  normalizedAllOptions = _getFormatOptions.normalizedAllOptions,
@@ -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.62",
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
  }