@zohodesk/components 1.2.61 → 1.2.63

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 (49) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +11 -0
  3. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +8 -0
  4. package/assets/Appearance/light/mode/Component_LightMode.module.css +8 -0
  5. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +8 -0
  6. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  7. package/es/Button/css/Button.module.css +57 -10
  8. package/es/Button/css/cssJSLogic.js +1 -1
  9. package/es/Button/props/propTypes.js +1 -1
  10. package/es/MultiSelect/AdvancedGroupMultiSelect.js +12 -4
  11. package/es/MultiSelect/AdvancedMultiSelect.js +12 -6
  12. package/es/MultiSelect/MultiSelect.js +10 -4
  13. package/es/MultiSelect/MultiSelectWithAvatar.js +4 -2
  14. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +28 -0
  15. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +390 -0
  16. package/es/MultiSelect/props/defaultProps.js +8 -4
  17. package/es/MultiSelect/props/propTypes.js +4 -2
  18. package/es/RippleEffect/RippleEffect.module.css +16 -0
  19. package/es/RippleEffect/props/propTypes.js +1 -1
  20. package/es/Select/GroupSelect.js +4 -2
  21. package/es/Select/Select.js +3 -1
  22. package/es/Select/SelectWithAvatar.js +4 -2
  23. package/es/Select/props/defaultProps.js +4 -2
  24. package/es/Select/props/propTypes.js +4 -2
  25. package/es/Tag/Tag.js +1 -1
  26. package/es/utils/dropDownUtils.js +10 -6
  27. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +2 -2
  28. package/lib/Button/css/Button.module.css +57 -10
  29. package/lib/Button/css/cssJSLogic.js +1 -1
  30. package/lib/Button/props/propTypes.js +1 -1
  31. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +11 -5
  32. package/lib/MultiSelect/AdvancedMultiSelect.js +12 -6
  33. package/lib/MultiSelect/MultiSelect.js +8 -4
  34. package/lib/MultiSelect/MultiSelectWithAvatar.js +4 -2
  35. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +28 -0
  36. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +390 -0
  37. package/lib/MultiSelect/props/defaultProps.js +8 -4
  38. package/lib/MultiSelect/props/propTypes.js +3 -2
  39. package/lib/RippleEffect/RippleEffect.module.css +16 -0
  40. package/lib/RippleEffect/props/propTypes.js +1 -1
  41. package/lib/Select/GroupSelect.js +4 -2
  42. package/lib/Select/Select.js +3 -1
  43. package/lib/Select/SelectWithAvatar.js +4 -2
  44. package/lib/Select/props/defaultProps.js +4 -2
  45. package/lib/Select/props/propTypes.js +4 -2
  46. package/lib/Tag/Tag.js +1 -1
  47. package/lib/utils/dropDownUtils.js +12 -6
  48. package/package.json +1 -1
  49. package/result.json +1 -1
package/README.md CHANGED
@@ -32,6 +32,17 @@ In this Package, we Provide Some Basic Components to Build Web App
32
32
  - TextBoxIcon
33
33
  - Tooltip
34
34
 
35
+ # 1.2.63
36
+
37
+ - **AdvancedGroupMultiSelect, AdvancedMultiSelect, MultiSelect, MultiSelectWithAvatar, GroupSelect, Select, SelectWithAvatar** - `allowValueFallback` prop supported.
38
+ - **dropDownUtils** - Support string fallback for the object via the `allowValueFallback` prop.
39
+
40
+ # 1.2.62
41
+
42
+ - **Button**: Added new `palette` options: `plainDanger`, `plainSuccess`, and `success`.
43
+ - **RippleEffect**: Added new `palette` option: `secondary`.
44
+ - **Tag**: Enhanced the `onRemove` event to the `event` object `e` as the second argument for better event handling.
45
+
35
46
  # 1.2.61
36
47
 
37
48
  - **Textarea** - Handled the default height and width appropriately based on the rows and cols props.
@@ -46,6 +46,10 @@
46
46
  --zdt_button_secondary_border: var(--zdt_cta_grey_35_border);
47
47
  --zdt_button_secondary_hover_border: hsla(217, 7.76%, calc(54.51% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
48
48
  --zdt_button_danger_border: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
49
+ --zdt_button_success_hover_border: hsla(134, 67.66%, calc(32.75% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
50
+ --zdt_button_success_border: hsla(133, 48.36%, calc(52.16% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
51
+ --zdt_button_success_hover_text: hsla(134, 67.66%, calc(32.75% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
52
+ --zdt_button_success_text: hsla(133, 48.36%, calc(52.16% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
49
53
  --zdt_button_danger_text: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
50
54
  --zdt_button_danger_hover_border: hsla(1, 63.86%, calc(48.82% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
51
55
  --zdt_button_danger_hover_text: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
@@ -285,6 +289,10 @@
285
289
  --zdt_rippleeffect_navy_border: var(--zdt_cta_grey_40_border);
286
290
  --zdt_rippleeffect_danger_border: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
287
291
  --zdt_rippleeffect_danger_bg: hsla(0, 100.00%, calc(70.98% + var(--zdc_default)), calc( 0.05 + var(--zdc_alpha_high)));
292
+ --zdt_rippleeffect_secondary_border: var(--zdt_cta_grey_40_border);
293
+ --zdt_rippleeffect_secondary_bg: var(--zdt_cta_grey_20_bg);
294
+ --zdt_rippleeffect_secondary_active_border: var(--zdt_cta_secondary_light_border);
295
+ --zdt_rippleeffect_secondary_active_bg: var(--zdtm_cta_primary_light_bg_default_inverse_low);
288
296
 
289
297
  /* date time */
290
298
  --zdt_datetime_default_bg: hsla(217, 23.08%, calc(17.84% + var(--zdc_default)), calc(1 + var(--zdc_alpha_high)));
@@ -46,6 +46,10 @@
46
46
  --zdt_button_secondary_border: var(--zdt_cta_grey_35_border);
47
47
  --zdt_button_secondary_hover_border: hsla(218, 9.76%, calc(51.76% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
48
48
  --zdt_button_danger_border: hsla(0, 71.91%, calc(53.92% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
49
+ --zdt_button_success_hover_border: hsla(134, 78.63%, calc(25.69% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
50
+ --zdt_button_success_border: hsla(133, 63.29%, calc(40.59% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
51
+ --zdt_button_success_hover_text: hsla(134, 78.63%, calc(25.69% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
52
+ --zdt_button_success_text: hsla(133, 63.29%, calc(40.59% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
49
53
  --zdt_button_danger_text: hsla(0, 71.91%, calc(53.92% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
50
54
  --zdt_button_danger_hover_border: hsla(1, 75.38%, calc(38.24% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
51
55
  --zdt_button_danger_hover_text: hsla(1, 75.38%, calc(38.24% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
@@ -285,6 +289,10 @@
285
289
  --zdt_rippleeffect_navy_border: var(--zdt_cta_grey_40_border);
286
290
  --zdt_rippleeffect_danger_border: hsla(0, 71.91%, calc(53.92% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
287
291
  --zdt_rippleeffect_danger_bg: hsla(0, 71.43%, calc(97.25% + var(--zdc_default)), calc(1 + var(--zdc_alpha_high)));
292
+ --zdt_rippleeffect_secondary_border: var(--zdt_cta_grey_40_border);
293
+ --zdt_rippleeffect_secondary_bg: var(--zdt_cta_grey_20_bg);
294
+ --zdt_rippleeffect_secondary_active_border: var(--zdt_cta_secondary_light_border);
295
+ --zdt_rippleeffect_secondary_active_bg: var(--zdtm_cta_primary_light_bg_default_inverse_low);
288
296
 
289
297
  /* date time */
290
298
  --zdt_datetime_default_bg: hsla(0, 0.00%, calc(100.00% + var(--zdc_default)), calc(1 + var(--zdc_alpha_high)));
@@ -46,6 +46,10 @@
46
46
  --zdt_button_secondary_border: var(--zdt_cta_grey_35_border);
47
47
  --zdt_button_secondary_hover_border: hsla(217, 7.76%, calc(54.51% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
48
48
  --zdt_button_danger_border: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
49
+ --zdt_button_success_hover_border: hsla(134, 67.66%, calc(32.75% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
50
+ --zdt_button_success_border: hsla(133, 48.36%, calc(52.16% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
51
+ --zdt_button_success_hover_text: hsla(134, 67.66%, calc(32.75% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
52
+ --zdt_button_success_text: hsla(133, 48.36%, calc(52.16% + var(--zdc_default_inverse_low)), calc(1 + var(--zdc_alpha_low)));
49
53
  --zdt_button_danger_text: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
50
54
  --zdt_button_danger_hover_border: hsla(1, 63.86%, calc(48.82% + var(--zdc_default_inverse_medium)), calc(1 + var(--zdc_alpha_low)));
51
55
  --zdt_button_danger_hover_text: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
@@ -285,6 +289,10 @@
285
289
  --zdt_rippleeffect_navy_border: var(--zdt_cta_grey_40_border);
286
290
  --zdt_rippleeffect_danger_border: hsla(0, 100.00%, calc(70.98% + var(--zdc_default_inverse_lower)), calc(1 + var(--zdc_alpha_low)));
287
291
  --zdt_rippleeffect_danger_bg: hsla(0, 100.00%, calc(70.98% + var(--zdc_default)), calc( 0.05 + var(--zdc_alpha_high)));
292
+ --zdt_rippleeffect_secondary_border: var(--zdt_cta_grey_40_border);
293
+ --zdt_rippleeffect_secondary_bg: var(--zdt_cta_grey_20_bg);
294
+ --zdt_rippleeffect_secondary_active_border: var(--zdt_cta_secondary_light_border);
295
+ --zdt_rippleeffect_secondary_active_bg: var(--zdtm_cta_primary_light_bg_default_inverse_low);
288
296
 
289
297
  /* date time */
290
298
  --zdt_datetime_default_bg: hsla(0, 0.00%, calc(12.94% + var(--zdc_default)), calc(1 + var(--zdc_alpha_high)));
@@ -139,7 +139,7 @@ exports[`Button component Should render CustomStatusclassname of buttons - succe
139
139
  class="overlay"
140
140
  >
141
141
  <div
142
- class="success"
142
+ class="successstate"
143
143
  >
144
144
  <div
145
145
  class="customStautusClassName successelement primarysuccess"
@@ -260,7 +260,7 @@ exports[`Button component Should render Status of buttons - success 1`] = `
260
260
  class="overlay"
261
261
  >
262
262
  <div
263
- class="success"
263
+ class="successstate"
264
264
  >
265
265
  <div
266
266
  class="successelement primarysuccess"
@@ -25,6 +25,7 @@
25
25
  /* button success status default variable */
26
26
  --button_success_border_color: var(--zdt_button_success_default_border);
27
27
  }
28
+
28
29
  .native {
29
30
  composes: varClass;
30
31
  /* transition: all var(--zd_transition2) ease 0s; */
@@ -130,22 +131,43 @@
130
131
  composes: container;
131
132
  }
132
133
 
133
- .plainprimary {
134
- --button_text_color: var(--zdt_button_default_text);
134
+ .plainprimary,
135
+ .plaindanger,
136
+ .plainsuccess,
137
+ .plainsecondary {
135
138
  --button_padding: var(--zd_size5);
136
139
  --button_min_width: initial;
137
140
  --button_bg_color: var(--zdt_button_default_bg);
138
141
  }
142
+
143
+ .plainprimary {
144
+ --button_text_color: var(--zdt_button_default_text);
145
+ }
146
+
139
147
  .plainprimary:hover {
140
148
  --button_text_color: var(--zdt_button_plainprimary_hover_text);
141
149
  }
142
150
 
151
+ .plaindanger {
152
+ --button_text_color: var(--zdt_button_danger_text);
153
+ }
154
+
155
+ .plaindanger:hover {
156
+ --button_text_color: var(--zdt_button_danger_hover_text);
157
+ }
158
+
159
+ .plainsuccess {
160
+ --button_text_color: var(--zdt_button_success_text);
161
+ }
162
+
163
+ .plainsuccess:hover {
164
+ --button_text_color: var(--zdt_button_success_hover_text);
165
+ }
166
+
143
167
  .plainsecondary {
144
168
  --button_text_color: var(--zdt_button_secondary_text);
145
- --button_padding: var(--zd_size5);
146
- --button_min_width: initial;
147
- --button_bg_color: var(--zdt_button_default_bg);
148
169
  }
170
+
149
171
  .plainsecondary:hover {
150
172
  --button_text_color: var(--zdt_button_secondary_hover_text);
151
173
  }
@@ -156,10 +178,12 @@
156
178
  .dangerfilled,
157
179
  .secondary,
158
180
  .secondaryfilled,
181
+ .success,
159
182
  .successfilled,
160
183
  .tertiaryfilled {
161
184
  --button_border_width: 1px;
162
185
  }
186
+
163
187
  .primary:hover {
164
188
  --button_border_color: var(--zdt_button_primary_hover_border);
165
189
  --button_text_color: var(--zdt_button_primary_hover_text);
@@ -170,6 +194,7 @@
170
194
  --button_bg_color: var(--zdt_button_primaryfill_bg);
171
195
  --button_text_color: var(--zdt_button_primaryfill_text);
172
196
  }
197
+
173
198
  .primaryfilled:hover {
174
199
  --button_bg_color: var(--zdt_button_primaryfill_hover_bg);
175
200
  }
@@ -179,16 +204,29 @@
179
204
  --button_bg_color: var(--zdt_button_default_bg);
180
205
  --button_text_color: var(--zdt_button_danger_text);
181
206
  }
207
+
182
208
  .danger:hover {
183
209
  --button_border_color: var(--zdt_button_danger_hover_border);
184
210
  --button_text_color: var(--zdt_button_danger_hover_text);
185
211
  }
186
212
 
213
+ .success {
214
+ --button_border_color: var(--zdt_button_success_border);
215
+ --button_bg_color: var(--zdt_button_default_bg);
216
+ --button_text_color: var(--zdt_button_success_text);
217
+ }
218
+
219
+ .success:hover {
220
+ --button_border_color: var(--zdt_button_success_hover_border);
221
+ --button_text_color: var(--zdt_button_success_hover_text);
222
+ }
223
+
187
224
  .dangerfilled {
188
225
  --button_border_color: var(--zdt_button_primaryfill_border);
189
226
  --button_bg_color: var(--zdt_button_dangerfill_bg);
190
227
  --button_text_color: var(--zdt_button_dangerfill_text);
191
228
  }
229
+
192
230
  .dangerfilled:hover {
193
231
  --button_bg_color: var(--zdt_button_dangerfill_hover_bg);
194
232
  }
@@ -198,6 +236,7 @@
198
236
  --button_bg_color: var(--zdt_button_default_bg);
199
237
  --button_text_color: var(--zdt_button_secondary_text);
200
238
  }
239
+
201
240
  .secondary:hover {
202
241
  --button_border_color: var(--zdt_button_secondary_hover_border);
203
242
  --button_text_color: var(--zdt_button_secondary_hover_text);
@@ -208,6 +247,7 @@
208
247
  --button_bg_color: var(--zdt_button_secondaryfill_bg);
209
248
  --button_text_color: var(--zdt_button_secondary_text);
210
249
  }
250
+
211
251
  .secondaryfilled:hover {
212
252
  --button_text_color: var(--zdt_button_secondary_hover_text);
213
253
  }
@@ -217,6 +257,7 @@
217
257
  --button_bg_color: var(--zdt_button_successfill_bg);
218
258
  --button_text_color: var(--zdt_button_dangerfill_text);
219
259
  }
260
+
220
261
  .successfilled:hover {
221
262
  --button_border_color: var(--zdt_button_successfill_hover_border);
222
263
  --button_bg_color: var(--zdt_button_successfill_hover_bg);
@@ -227,6 +268,7 @@
227
268
  --button_bg_color: var(--zdt_button_tertiaryfill_bg);
228
269
  --button_text_color: var(--zdt_button_dangerfill_text);
229
270
  }
271
+
230
272
  .tertiaryfilled:hover {
231
273
  --button_bg_color: var(--zdt_button_tertiaryfill_hover_bg);
232
274
  }
@@ -326,18 +368,23 @@
326
368
  .loadingelement {
327
369
  --button_loading_bg_color: var(--zdt_button_primaryfill_bg);
328
370
  }
371
+
329
372
  .primaryelement {
330
373
  --button_loading_bg_color: var(--zdt_button_loading_default_bg);
331
374
  }
375
+
332
376
  .primaryfilledelement {
333
377
  --button_loading_bg_color: var(--zdt_button_primaryfill_bg);
334
378
  }
379
+
335
380
  .dangerelement {
336
381
  --button_loading_bg_color: var(--zdt_button_loading_default_bg);
337
382
  }
383
+
338
384
  .dangerfilledelement {
339
385
  --button_loading_bg_color: var(--zdt_button_dangerfill_bg);
340
386
  }
387
+
341
388
  .loadingelement:after,
342
389
  .primaryelement:after,
343
390
  .primaryfilledelement:after,
@@ -366,13 +413,13 @@
366
413
 
367
414
  .primaryelement:before {
368
415
  --button_loading_bg_color: var(--zdt_button_primaryfill_bg);
369
- --zdt_button_loading_linear_gradient:var(--zdt_button_loading_primary_linear_gradient);
416
+ --zdt_button_loading_linear_gradient: var(--zdt_button_loading_primary_linear_gradient);
370
417
  transform: rotateX(180deg);
371
418
  }
372
419
 
373
420
  .dangerelement:before {
374
421
  --button_loading_bg_color: var(--zdt_button_dangerfill_bg);
375
- --zdt_button_loading_linear_gradient:var(--zdt_button_loading_danger_linear_gradient);
422
+ --zdt_button_loading_linear_gradient: var(--zdt_button_loading_danger_linear_gradient);
376
423
  transform: rotateX(180deg);
377
424
  }
378
425
 
@@ -447,7 +494,7 @@
447
494
  -webkit-transform: scaleX(-1) rotate(360deg);
448
495
  }
449
496
  }
450
- .success {
497
+ .successstate {
451
498
  position: absolute;
452
499
  top: 50% ;
453
500
  left: 50% ;
@@ -523,6 +570,6 @@
523
570
  }
524
571
  }
525
572
 
526
- .loader{
527
- color:var(--dot_mirror)
573
+ .loader {
574
+ color: var(--dot_mirror)
528
575
  }
@@ -36,7 +36,7 @@ export default function cssJSLogic(_ref) {
36
36
  [customStatusSize]: !!customStatusSize,
37
37
  [style.loading]: statusLower === 'loading',
38
38
  [style[`${size}loading`]]: statusLower === 'loading',
39
- [style.success]: statusLower != 'loading'
39
+ [style.successstate]: statusLower != 'loading'
40
40
  });
41
41
  let loaderChildClass = compileClassNames({
42
42
  [customStatus]: !!customStatus,
@@ -8,7 +8,7 @@ export const propTypes = {
8
8
  isBold: PropTypes.bool,
9
9
  needAppearance: PropTypes.bool,
10
10
  onClick: PropTypes.func,
11
- palette: PropTypes.oneOf(['plainPrimary', 'plainSecondary', 'primary', 'primaryFilled', 'danger', 'dangerFilled', 'secondary', 'secondaryFilled', 'successFilled', 'info', 'tertiaryFilled']),
11
+ palette: PropTypes.oneOf(['plainPrimary', 'plainSecondary', 'plainDanger', 'plainSuccess', 'primary', 'primaryFilled', 'danger', 'dangerFilled', 'secondary', 'secondaryFilled', 'success', 'successFilled', 'info', 'tertiaryFilled']),
12
12
  rounded: PropTypes.bool,
13
13
  size: PropTypes.oneOf(['small', 'medium', 'large', 'xlarge']),
14
14
  status: PropTypes.oneOf(['loading', 'success', 'none']),
@@ -121,12 +121,14 @@ class AdvancedGroupMultiSelect extends React.Component {
121
121
  handleFormatSelectedOptions(selectedOptionDetails, props) {
122
122
  let {
123
123
  valueField,
124
- textField
124
+ textField,
125
+ allowValueFallback
125
126
  } = props;
126
127
  return this.formatSelectedOptions({
127
128
  options: selectedOptionDetails,
128
129
  valueField,
129
- textField
130
+ textField,
131
+ allowValueFallback
130
132
  });
131
133
  }
132
134
 
@@ -182,6 +184,9 @@ class AdvancedGroupMultiSelect extends React.Component {
182
184
  }
183
185
 
184
186
  handleSelectedOptionIdChange(selectedGroupOptions, normalizedFormatOptions, normalizedSelectedOptions) {
187
+ const {
188
+ allowValueFallback
189
+ } = this.props;
185
190
  let newSelectedOptions = selectedGroupOptions.map(option => optionIdGrouping(option.id, option.groupId));
186
191
  let selectedOptionsLength = newSelectedOptions.length;
187
192
  let formatOptions = this.objectConcat({
@@ -191,7 +196,8 @@ class AdvancedGroupMultiSelect extends React.Component {
191
196
  return this.getSelectedOptions({
192
197
  selectedOptions: newSelectedOptions,
193
198
  normalizedFormatOptions: formatOptions,
194
- selectedOptionsLength
199
+ selectedOptionsLength,
200
+ allowValueFallback
195
201
  });
196
202
  }
197
203
 
@@ -238,10 +244,12 @@ class AdvancedGroupMultiSelect extends React.Component {
238
244
 
239
245
  handleGetGroupSelectOptions(props) {
240
246
  let {
247
+ allowValueFallback,
241
248
  groupedOptions = []
242
249
  } = props;
243
250
  return this.getGroupSelectOptions({
244
- groupedOptions
251
+ groupedOptions,
252
+ allowValueFallback
245
253
  });
246
254
  }
247
255
 
@@ -146,7 +146,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
146
146
  iconSize,
147
147
  prefixText,
148
148
  optionType,
149
- disabledOptions
149
+ disabledOptions,
150
+ allowValueFallback
150
151
  } = props;
151
152
  return this.formatOptions({
152
153
  options,
@@ -157,7 +158,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
157
158
  prefixText,
158
159
  optionType,
159
160
  iconSize,
160
- disabledOptions
161
+ disabledOptions,
162
+ allowValueFallback
161
163
  });
162
164
  }
163
165
 
@@ -168,7 +170,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
168
170
  } = this.state || {};
169
171
  const {
170
172
  selectedOptionsLimit,
171
- selectedOptionDetails
173
+ selectedOptionDetails,
174
+ allowValueFallback
172
175
  } = props;
173
176
  showedSelectedOptionsCount = getIsEmptyValue(showedSelectedOptionsCount) ? selectedOptionsLimit : showedSelectedOptionsCount;
174
177
  const {
@@ -181,7 +184,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
181
184
  return this.getSelectedOptions({
182
185
  selectedOptions,
183
186
  normalizedFormatOptions: formatOptions,
184
- selectedOptionsLength: showedSelectedOptionsCount
187
+ selectedOptionsLength: showedSelectedOptionsCount,
188
+ allowValueFallback: allowValueFallback
185
189
  });
186
190
  }
187
191
 
@@ -193,7 +197,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
193
197
  optionType,
194
198
  iconName,
195
199
  iconSize,
196
- disabledOptions
200
+ disabledOptions,
201
+ allowValueFallback
197
202
  } = props;
198
203
  return this.formatSelectedOptions({
199
204
  options: selectedOptionDetails,
@@ -203,7 +208,8 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
203
208
  optionType,
204
209
  iconName,
205
210
  iconSize,
206
- disabledOptions
211
+ disabledOptions,
212
+ allowValueFallback
207
213
  });
208
214
  }
209
215
 
@@ -216,7 +216,8 @@ export class MultiSelectComponent extends React.Component {
216
216
  valueField,
217
217
  textField,
218
218
  prefixText,
219
- disabledOptions
219
+ disabledOptions,
220
+ allowValueFallback
220
221
  } = props;
221
222
  return this.formatOptions({
222
223
  options,
@@ -224,14 +225,19 @@ export class MultiSelectComponent extends React.Component {
224
225
  textField,
225
226
  prefixText,
226
227
  optionType: 'default',
227
- disabledOptions
228
+ disabledOptions,
229
+ allowValueFallback
228
230
  });
229
231
  }
230
232
 
231
- handleGetSelectedOptions(selectedOptions, normalizedFormatOptions) {
233
+ handleGetSelectedOptions(selectedOptions, normalizedFormatOptions, props) {
234
+ const {
235
+ allowValueFallback
236
+ } = props;
232
237
  return this.getSelectedOptions({
233
238
  selectedOptions,
234
- normalizedFormatOptions
239
+ normalizedFormatOptions,
240
+ allowValueFallback
235
241
  });
236
242
  }
237
243
 
@@ -41,7 +41,8 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
41
41
  valueField,
42
42
  textField,
43
43
  imageField,
44
- disabledOptions
44
+ disabledOptions,
45
+ allowValueFallback
45
46
  } = props;
46
47
  return this.formatOptions({
47
48
  options,
@@ -49,7 +50,8 @@ class MultiSelectWithAvatarComponent extends MultiSelectComponent {
49
50
  textField,
50
51
  imageField,
51
52
  optionType: 'avatar',
52
- disabledOptions
53
+ disabledOptions,
54
+ allowValueFallback
53
55
  });
54
56
  }
55
57
 
@@ -9,4 +9,32 @@ describe('AdvancedMultiSelect', () => {
9
9
  } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, null));
10
10
  expect(asFragment()).toMatchSnapshot();
11
11
  });
12
+ const options = [{
13
+ id: 1,
14
+ text: 'Apple'
15
+ }, {
16
+ id: 2,
17
+ text: 'Orange'
18
+ }, 'string test'];
19
+ test('rendering the options array with objects and string', () => {
20
+ const {
21
+ asFragment
22
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, {
23
+ isPopupOpen: true,
24
+ isPopupReady: true,
25
+ options: options
26
+ }));
27
+ expect(asFragment()).toMatchSnapshot();
28
+ });
29
+ test('rendering the options array with only objects using allowValueFallback', () => {
30
+ const {
31
+ asFragment
32
+ } = render( /*#__PURE__*/React.createElement(AdvancedMultiSelect, {
33
+ isPopupOpen: true,
34
+ isPopupReady: true,
35
+ options: options,
36
+ allowValueFallback: false
37
+ }));
38
+ expect(asFragment()).toMatchSnapshot();
39
+ });
12
40
  });